diff --git a/.github/workflows/.tests-python.yml b/.github/workflows/.tests-python.yml index 9b63c8dcb..154bad0da 100644 --- a/.github/workflows/.tests-python.yml +++ b/.github/workflows/.tests-python.yml @@ -24,9 +24,7 @@ jobs: postgres: image: postgres:15 env: - POSTGRES_DB: fittrackee_test - POSTGRES_USER: fittrackee - POSTGRES_PASSWORD: fittrackee + POSTGRES_PASSWORD: postgres options: >- --health-cmd pg_isready --health-interval 10s @@ -43,6 +41,8 @@ jobs: pip install --quiet poetry poetry config virtualenvs.create false poetry install --no-interaction --quiet + - name: Create test databases + run: python db/create_ci_test_db.py - name: Bandit if: matrix.python-version == '3.11' run: bandit -r fittrackee -c pyproject.toml @@ -53,7 +53,7 @@ jobs: if: matrix.python-version == '3.11' run: mypy fittrackee - name: Pytest - run: pytest fittrackee -p no:warnings --cov fittrackee --cov-report term-missing --maxfail=1 + run: pytest fittrackee -n auto --maxprocesses=2 -p no:warnings --cov fittrackee --cov-report term-missing --maxfail=1 postgresql: if: ${{ github.event_name == 'push' || github.event.pull_request.head.repo.fork }} @@ -64,9 +64,7 @@ jobs: postgres: image: postgres:${{ matrix.psql-version }} env: - POSTGRES_DB: fittrackee_test - POSTGRES_USER: fittrackee - POSTGRES_PASSWORD: fittrackee + POSTGRES_PASSWORD: postgres options: >- --health-cmd pg_isready --health-interval 10s @@ -83,8 +81,10 @@ jobs: pip install --quiet poetry poetry config virtualenvs.create false poetry install --no-interaction --quiet + - name: Create test databases + run: python db/create_ci_test_db.py - name: Pytest - run: pytest fittrackee -p no:warnings --cov fittrackee --cov-report term-missing --maxfail=1 + run: pytest fittrackee -n auto --maxprocesses=2 -p no:warnings --cov fittrackee --cov-report term-missing --maxfail=1 end2end: if: ${{ github.event_name == 'push' || github.event.pull_request.head.repo.fork }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d4dd015c..b983f03eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,42 @@ # Change log +## Version 0.8.6 (2024/08/03) + +### Translations + +* [PR#590](https://github.com/SamR1/FitTrackee/pull/590) - Translations update (Italian) +* [PR#591](https://github.com/SamR1/FitTrackee/pull/591) - Translations update (Galician) +* [PR#592](https://github.com/SamR1/FitTrackee/pull/592) - Translations update (German, Dutch) +* [PR#593](https://github.com/SamR1/FitTrackee/pull/593) - Translations update (German) +* [fb10602](https://github.com/SamR1/FitTrackee/commit/fb10602c47c426c432f528a1ecaf0b2dd4759e93) - update and fix translations + +Translation status: +- Basque: 98% +- Czech: 73% +- Dutch: 100% +- English: 100% +- French: 100% +- Galician: 100% +- German: 99% +- Italian: 82% +- Norwegian Bokmål: 52% +- Polish: 92% +- Portuguese: 98% +- Spanish: 100% + +### Misc + +* [PR#595](https://github.com/SamR1/FitTrackee/pull/595) - CI - speed up tests + + +Thanks to the contributors: +- @ConfusedAlex +- @lukasitaly +- @simontb +- @slothje +- @xmgz + + ## Version 0.8.5 (2024/06/29) ### Features and enhancements diff --git a/VERSION b/VERSION index 7ada0d303..7fc2521fd 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.8.5 +0.8.6 diff --git a/db/create_ci_test_db.py b/db/create_ci_test_db.py new file mode 100644 index 000000000..db9268216 --- /dev/null +++ b/db/create_ci_test_db.py @@ -0,0 +1,22 @@ +import psycopg2 +from psycopg2 import sql + +conn = psycopg2.connect( + host="postgres", dbname="postgres", user="postgres", password="postgres" +) +conn.autocommit = True + +with conn.cursor() as cur: + cur.execute(sql.SQL(""" + CREATE USER fittrackee WITH PASSWORD 'fittrackee'; + """)) + cur.execute(sql.SQL(""" + CREATE SCHEMA fittrackee AUTHORIZATION fittrackee; + """)) + cur.execute(sql.SQL(""" + CREATE DATABASE fittrackee_test_gw0 OWNER fittrackee; + """)) + cur.execute(sql.SQL(""" + CREATE DATABASE fittrackee_test_gw1 OWNER fittrackee; + """)) +conn.close() diff --git a/docs/en/.buildinfo b/docs/en/.buildinfo index ba30720d6..e5fd8e932 100644 --- a/docs/en/.buildinfo +++ b/docs/en/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: bc6bee0ff2e81966b5d74a9d8d4b9f6d +config: 7bd0b689fbb54df0fe56151b8685e222 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/en/_images/fittrackee_screenshot-01.png b/docs/en/_images/fittrackee_screenshot-01.png index e1030eed8..6282b29e7 100644 Binary files a/docs/en/_images/fittrackee_screenshot-01.png and b/docs/en/_images/fittrackee_screenshot-01.png differ diff --git a/docs/en/_images/fittrackee_screenshot-02.png b/docs/en/_images/fittrackee_screenshot-02.png index 654540369..26beaf862 100644 Binary files a/docs/en/_images/fittrackee_screenshot-02.png and b/docs/en/_images/fittrackee_screenshot-02.png differ diff --git a/docs/en/_images/fittrackee_screenshot-03.png b/docs/en/_images/fittrackee_screenshot-03.png index 91cf15337..c41693d5d 100644 Binary files a/docs/en/_images/fittrackee_screenshot-03.png and b/docs/en/_images/fittrackee_screenshot-03.png differ diff --git a/docs/en/_images/fittrackee_screenshot-04.png b/docs/en/_images/fittrackee_screenshot-04.png index e8b2850d2..1c9d63b72 100644 Binary files a/docs/en/_images/fittrackee_screenshot-04.png and b/docs/en/_images/fittrackee_screenshot-04.png differ diff --git a/docs/en/_images/fittrackee_screenshot-05.png b/docs/en/_images/fittrackee_screenshot-05.png index ef4db1bf1..a5ec64732 100644 Binary files a/docs/en/_images/fittrackee_screenshot-05.png and b/docs/en/_images/fittrackee_screenshot-05.png differ diff --git a/docs/en/_images/fittrackee_screenshot-06.png b/docs/en/_images/fittrackee_screenshot-06.png index fb8bd5c81..360e7cff2 100644 Binary files a/docs/en/_images/fittrackee_screenshot-06.png and b/docs/en/_images/fittrackee_screenshot-06.png differ diff --git a/docs/en/_images/fittrackee_screenshot-07.png b/docs/en/_images/fittrackee_screenshot-07.png index 4614f1d2c..6007d0b7a 100644 Binary files a/docs/en/_images/fittrackee_screenshot-07.png and b/docs/en/_images/fittrackee_screenshot-07.png differ diff --git a/docs/en/_images/fittrackee_screenshot-08.png b/docs/en/_images/fittrackee_screenshot-08.png index 669672307..8205e95e9 100644 Binary files a/docs/en/_images/fittrackee_screenshot-08.png and b/docs/en/_images/fittrackee_screenshot-08.png differ diff --git a/docs/en/_images/fittrackee_screenshot-09.png b/docs/en/_images/fittrackee_screenshot-09.png index 918fd1fe7..5f43ba9ac 100644 Binary files a/docs/en/_images/fittrackee_screenshot-09.png and b/docs/en/_images/fittrackee_screenshot-09.png differ diff --git a/docs/en/_images/fittrackee_screenshot-10.png b/docs/en/_images/fittrackee_screenshot-10.png index 53aaadd38..93bd54037 100644 Binary files a/docs/en/_images/fittrackee_screenshot-10.png and b/docs/en/_images/fittrackee_screenshot-10.png differ diff --git a/docs/en/_images/fittrackee_screenshot-11.png b/docs/en/_images/fittrackee_screenshot-11.png index 068987149..dbadbf4f6 100644 Binary files a/docs/en/_images/fittrackee_screenshot-11.png and b/docs/en/_images/fittrackee_screenshot-11.png differ diff --git a/docs/en/_sources/changelog.md.txt b/docs/en/_sources/changelog.md.txt index 2d4dd015c..b983f03eb 100644 --- a/docs/en/_sources/changelog.md.txt +++ b/docs/en/_sources/changelog.md.txt @@ -1,5 +1,42 @@ # Change log +## Version 0.8.6 (2024/08/03) + +### Translations + +* [PR#590](https://github.com/SamR1/FitTrackee/pull/590) - Translations update (Italian) +* [PR#591](https://github.com/SamR1/FitTrackee/pull/591) - Translations update (Galician) +* [PR#592](https://github.com/SamR1/FitTrackee/pull/592) - Translations update (German, Dutch) +* [PR#593](https://github.com/SamR1/FitTrackee/pull/593) - Translations update (German) +* [fb10602](https://github.com/SamR1/FitTrackee/commit/fb10602c47c426c432f528a1ecaf0b2dd4759e93) - update and fix translations + +Translation status: +- Basque: 98% +- Czech: 73% +- Dutch: 100% +- English: 100% +- French: 100% +- Galician: 100% +- German: 99% +- Italian: 82% +- Norwegian Bokmål: 52% +- Polish: 92% +- Portuguese: 98% +- Spanish: 100% + +### Misc + +* [PR#595](https://github.com/SamR1/FitTrackee/pull/595) - CI - speed up tests + + +Thanks to the contributors: +- @ConfusedAlex +- @lukasitaly +- @simontb +- @slothje +- @xmgz + + ## Version 0.8.5 (2024/06/29) ### Features and enhancements diff --git a/docs/en/_sources/installation.rst.txt b/docs/en/_sources/installation.rst.txt index 38a47596b..56f40f089 100644 --- a/docs/en/_sources/installation.rst.txt +++ b/docs/en/_sources/installation.rst.txt @@ -529,13 +529,13 @@ Production environment .. warning:: | Note that FitTrackee is under heavy development, some features may be unstable. -- Download the last release (for now, it is the release v0.8.5): +- Download the last release (for now, it is the release v0.8.6): .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.8.5.tar.gz - $ tar -xzf v0.8.5.tar.gz - $ mv FitTrackee-0.8.5 FitTrackee + $ wget https://github.com/SamR1/FitTrackee/archive/v0.8.6.tar.gz + $ tar -xzf v0.8.6.tar.gz + $ mv FitTrackee-0.8.6 FitTrackee $ cd FitTrackee - Create **.env** from example and update it @@ -666,13 +666,13 @@ Prod environment - Change to the directory where FitTrackee directory is located -- Download the last release (for now, it is the release v0.8.5) and overwrite existing files: +- Download the last release (for now, it is the release v0.8.6) and overwrite existing files: .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.8.5.tar.gz - $ tar -xzf v0.8.5.tar.gz - $ cp -R FitTrackee-0.8.5/* FitTrackee/ + $ wget https://github.com/SamR1/FitTrackee/archive/v0.8.6.tar.gz + $ tar -xzf v0.8.6.tar.gz + $ cp -R FitTrackee-0.8.6/* FitTrackee/ $ cd FitTrackee - Update **.env** if needed (see `Environment variables `__). diff --git a/docs/en/_static/documentation_options.js b/docs/en/_static/documentation_options.js index 8f31658e6..3ba4d407e 100644 --- a/docs/en/_static/documentation_options.js +++ b/docs/en/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '0.8.5', + VERSION: '0.8.6', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/en/_static/scripts/furo.js b/docs/en/_static/scripts/furo.js index 0267c7e11..0abb2afac 100644 --- a/docs/en/_static/scripts/furo.js +++ b/docs/en/_static/scripts/furo.js @@ -1,3 +1,3 @@ /*! For license information please see furo.js.LICENSE.txt */ -(()=>{var t={856:function(t,e,n){var o,r;r=void 0!==n.g?n.g:"undefined"!=typeof window?window:this,o=function(){return function(t){"use strict";var e={navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:0,reflow:!1,events:!0},n=function(t,e,n){if(n.settings.events){var o=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n});e.dispatchEvent(o)}},o=function(t){var e=0;if(t.offsetParent)for(;t;)e+=t.offsetTop,t=t.offsetParent;return e>=0?e:0},r=function(t){t&&t.sort((function(t,e){return o(t.content)=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},l=function(t,e){var n=t[t.length-1];if(function(t,e){return!(!s()||!c(t.content,e,!0))}(n,e))return n;for(var o=t.length-1;o>=0;o--)if(c(t[o].content,e))return t[o]},a=function(t,e){if(e.nested&&t.parentNode){var n=t.parentNode.closest("li");n&&(n.classList.remove(e.nestedClass),a(n,e))}},i=function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.remove(e.navClass),t.content.classList.remove(e.contentClass),a(o,e),n("gumshoeDeactivate",o,{link:t.nav,content:t.content,settings:e}))}},u=function(t,e){if(e.nested){var n=t.parentNode.closest("li");n&&(n.classList.add(e.nestedClass),u(n,e))}};return function(o,c){var s,a,d,f,m,v={setup:function(){s=document.querySelectorAll(o),a=[],Array.prototype.forEach.call(s,(function(t){var e=document.getElementById(decodeURIComponent(t.hash.substr(1)));e&&a.push({nav:t,content:e})})),r(a)},detect:function(){var t=l(a,m);t?d&&t.content===d.content||(i(d,m),function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.add(e.navClass),t.content.classList.add(e.contentClass),u(o,e),n("gumshoeActivate",o,{link:t.nav,content:t.content,settings:e}))}}(t,m),d=t):d&&(i(d,m),d=null)}},h=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame(v.detect)},g=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame((function(){r(a),v.detect()}))};return v.destroy=function(){d&&i(d,m),t.removeEventListener("scroll",h,!1),m.reflow&&t.removeEventListener("resize",g,!1),a=null,s=null,d=null,f=null,m=null},m=function(){var t={};return Array.prototype.forEach.call(arguments,(function(e){for(var n in e){if(!e.hasOwnProperty(n))return;t[n]=e[n]}})),t}(e,c||{}),v.setup(),v.detect(),t.addEventListener("scroll",h,!1),m.reflow&&t.addEventListener("resize",g,!1),v}}(r)}.apply(e,[]),void 0===o||(t.exports=o)}},e={};function n(o){var r=e[o];if(void 0!==r)return r.exports;var c=e[o]={exports:{}};return t[o].call(c.exports,c,c.exports,n),c.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=n(856),e=n.n(t),o=null,r=null,c=window.pageYOffset||document.documentElement.scrollTop;const s=64;function l(){const t=localStorage.getItem("theme")||"auto";var e;"light"!==(e=window.matchMedia("(prefers-color-scheme: dark)").matches?"auto"===t?"light":"light"==t?"dark":"auto":"auto"===t?"dark":"dark"==t?"light":"auto")&&"dark"!==e&&"auto"!==e&&(console.error(`Got invalid theme mode: ${e}. Resetting to auto.`),e="auto"),document.body.dataset.theme=e,localStorage.setItem("theme",e),console.log(`Changed to ${e} mode.`)}function a(){!function(){const t=document.getElementsByClassName("theme-toggle");Array.from(t).forEach((t=>{t.addEventListener("click",l)}))}(),function(){let t=0,e=!1;window.addEventListener("scroll",(function(n){t=window.scrollY,e||(window.requestAnimationFrame((function(){var n;n=t,0==Math.floor(r.getBoundingClientRect().top)?r.classList.add("scrolled"):r.classList.remove("scrolled"),function(t){tc&&document.documentElement.classList.remove("show-back-to-top"),c=t}(n),function(t){null!==o&&(0==t?o.scrollTo(0,0):Math.ceil(t)>=Math.floor(document.documentElement.scrollHeight-window.innerHeight)?o.scrollTo(0,o.scrollHeight):document.querySelector(".scroll-current"))}(n),e=!1})),e=!0)})),window.scroll()}(),null!==o&&new(e())(".toc-tree a",{reflow:!0,recursive:!0,navClass:"scroll-current",offset:()=>{let t=parseFloat(getComputedStyle(document.documentElement).fontSize);return r.getBoundingClientRect().height+2.5*t+1}})}document.addEventListener("DOMContentLoaded",(function(){document.body.parentNode.classList.remove("no-js"),r=document.querySelector("header"),o=document.querySelector(".toc-scroll"),a()}))})()})(); +(()=>{var t={856:function(t,e,n){var o,r;r=void 0!==n.g?n.g:"undefined"!=typeof window?window:this,o=function(){return function(t){"use strict";var e={navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:0,reflow:!1,events:!0},n=function(t,e,n){if(n.settings.events){var o=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n});e.dispatchEvent(o)}},o=function(t){var e=0;if(t.offsetParent)for(;t;)e+=t.offsetTop,t=t.offsetParent;return e>=0?e:0},r=function(t){t&&t.sort((function(t,e){return o(t.content)=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},l=function(t,e){var n=t[t.length-1];if(function(t,e){return!(!s()||!c(t.content,e,!0))}(n,e))return n;for(var o=t.length-1;o>=0;o--)if(c(t[o].content,e))return t[o]},a=function(t,e){if(e.nested&&t.parentNode){var n=t.parentNode.closest("li");n&&(n.classList.remove(e.nestedClass),a(n,e))}},i=function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.remove(e.navClass),t.content.classList.remove(e.contentClass),a(o,e),n("gumshoeDeactivate",o,{link:t.nav,content:t.content,settings:e}))}},u=function(t,e){if(e.nested){var n=t.parentNode.closest("li");n&&(n.classList.add(e.nestedClass),u(n,e))}};return function(o,c){var s,a,d,f,m,v={setup:function(){s=document.querySelectorAll(o),a=[],Array.prototype.forEach.call(s,(function(t){var e=document.getElementById(decodeURIComponent(t.hash.substr(1)));e&&a.push({nav:t,content:e})})),r(a)},detect:function(){var t=l(a,m);t?d&&t.content===d.content||(i(d,m),function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.add(e.navClass),t.content.classList.add(e.contentClass),u(o,e),n("gumshoeActivate",o,{link:t.nav,content:t.content,settings:e}))}}(t,m),d=t):d&&(i(d,m),d=null)}},h=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame(v.detect)},g=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame((function(){r(a),v.detect()}))};return v.destroy=function(){d&&i(d,m),t.removeEventListener("scroll",h,!1),m.reflow&&t.removeEventListener("resize",g,!1),a=null,s=null,d=null,f=null,m=null},m=function(){var t={};return Array.prototype.forEach.call(arguments,(function(e){for(var n in e){if(!e.hasOwnProperty(n))return;t[n]=e[n]}})),t}(e,c||{}),v.setup(),v.detect(),t.addEventListener("scroll",h,!1),m.reflow&&t.addEventListener("resize",g,!1),v}}(r)}.apply(e,[]),void 0===o||(t.exports=o)}},e={};function n(o){var r=e[o];if(void 0!==r)return r.exports;var c=e[o]={exports:{}};return t[o].call(c.exports,c,c.exports,n),c.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=n(856),e=n.n(t),o=null,r=null,c=document.documentElement.scrollTop;const s=64;function l(){const t=localStorage.getItem("theme")||"auto";var e;"light"!==(e=window.matchMedia("(prefers-color-scheme: dark)").matches?"auto"===t?"light":"light"==t?"dark":"auto":"auto"===t?"dark":"dark"==t?"light":"auto")&&"dark"!==e&&"auto"!==e&&(console.error(`Got invalid theme mode: ${e}. Resetting to auto.`),e="auto"),document.body.dataset.theme=e,localStorage.setItem("theme",e),console.log(`Changed to ${e} mode.`)}function a(){!function(){const t=document.getElementsByClassName("theme-toggle");Array.from(t).forEach((t=>{t.addEventListener("click",l)}))}(),function(){let t=0,e=!1;window.addEventListener("scroll",(function(n){t=window.scrollY,e||(window.requestAnimationFrame((function(){var n;(function(t){const e=Math.floor(r.getBoundingClientRect().top);console.log(`headerTop: ${e}`),0==e&&t!=e?r.classList.add("scrolled"):r.classList.remove("scrolled")})(n=t),function(t){tc&&document.documentElement.classList.remove("show-back-to-top"),c=t}(n),function(t){null!==o&&(0==t?o.scrollTo(0,0):Math.ceil(t)>=Math.floor(document.documentElement.scrollHeight-window.innerHeight)?o.scrollTo(0,o.scrollHeight):document.querySelector(".scroll-current"))}(n),e=!1})),e=!0)})),window.scroll()}(),null!==o&&new(e())(".toc-tree a",{reflow:!0,recursive:!0,navClass:"scroll-current",offset:()=>{let t=parseFloat(getComputedStyle(document.documentElement).fontSize);return r.getBoundingClientRect().height+2.5*t+1}})}document.addEventListener("DOMContentLoaded",(function(){document.body.parentNode.classList.remove("no-js"),r=document.querySelector("header"),o=document.querySelector(".toc-scroll"),a()}))})()})(); //# sourceMappingURL=furo.js.map \ No newline at end of file diff --git a/docs/en/_static/scripts/furo.js.map b/docs/en/_static/scripts/furo.js.map index c3b37aaa9..80ea12b85 100644 --- a/docs/en/_static/scripts/furo.js.map +++ b/docs/en/_static/scripts/furo.js.map @@ -1 +1 @@ -{"version":3,"file":"scripts/furo.js","mappings":";iCAAA,MAQWA,SAWS,IAAX,EAAAC,EACH,EAAAA,EACkB,oBAAXC,OACLA,OACAC,KAbO,EAAF,WACP,OAaJ,SAAUD,GACR,aAMA,IAAIE,EAAW,CAEbC,SAAU,SACVC,aAAc,SAGdC,QAAQ,EACRC,YAAa,SAGbC,OAAQ,EACRC,QAAQ,EAGRC,QAAQ,GA6BNC,EAAY,SAAUC,EAAMC,EAAMC,GAEpC,GAAKA,EAAOC,SAASL,OAArB,CAGA,IAAIM,EAAQ,IAAIC,YAAYL,EAAM,CAChCM,SAAS,EACTC,YAAY,EACZL,OAAQA,IAIVD,EAAKO,cAAcJ,EAVgB,CAWrC,EAOIK,EAAe,SAAUR,GAC3B,IAAIS,EAAW,EACf,GAAIT,EAAKU,aACP,KAAOV,GACLS,GAAYT,EAAKW,UACjBX,EAAOA,EAAKU,aAGhB,OAAOD,GAAY,EAAIA,EAAW,CACpC,EAMIG,EAAe,SAAUC,GACvBA,GACFA,EAASC,MAAK,SAAUC,EAAOC,GAG7B,OAFcR,EAAaO,EAAME,SACnBT,EAAaQ,EAAMC,UACF,EACxB,CACT,GAEJ,EAwCIC,EAAW,SAAUlB,EAAME,EAAUiB,GACvC,IAAIC,EAASpB,EAAKqB,wBACd1B,EAnCU,SAAUO,GAExB,MAA+B,mBAApBA,EAASP,OACX2B,WAAWpB,EAASP,UAItB2B,WAAWpB,EAASP,OAC7B,CA2Be4B,CAAUrB,GACvB,OAAIiB,EAEAK,SAASJ,EAAOD,OAAQ,KACvB/B,EAAOqC,aAAeC,SAASC,gBAAgBC,cAG7CJ,SAASJ,EAAOS,IAAK,KAAOlC,CACrC,EAMImC,EAAa,WACf,OACEC,KAAKC,KAAK5C,EAAOqC,YAAcrC,EAAO6C,cAnCjCF,KAAKG,IACVR,SAASS,KAAKC,aACdV,SAASC,gBAAgBS,aACzBV,SAASS,KAAKE,aACdX,SAASC,gBAAgBU,aACzBX,SAASS,KAAKP,aACdF,SAASC,gBAAgBC,aAkC7B,EAmBIU,EAAY,SAAUzB,EAAUX,GAClC,IAAIqC,EAAO1B,EAASA,EAAS2B,OAAS,GACtC,GAbgB,SAAUC,EAAMvC,GAChC,SAAI4B,MAAgBZ,EAASuB,EAAKxB,QAASf,GAAU,GAEvD,CAUMwC,CAAYH,EAAMrC,GAAW,OAAOqC,EACxC,IAAK,IAAII,EAAI9B,EAAS2B,OAAS,EAAGG,GAAK,EAAGA,IACxC,GAAIzB,EAASL,EAAS8B,GAAG1B,QAASf,GAAW,OAAOW,EAAS8B,EAEjE,EAOIC,EAAmB,SAAUC,EAAK3C,GAEpC,GAAKA,EAAST,QAAWoD,EAAIC,WAA7B,CAGA,IAAIC,EAAKF,EAAIC,WAAWE,QAAQ,MAC3BD,IAGLA,EAAGE,UAAUC,OAAOhD,EAASR,aAG7BkD,EAAiBG,EAAI7C,GAV0B,CAWjD,EAOIiD,EAAa,SAAUC,EAAOlD,GAEhC,GAAKkD,EAAL,CAGA,IAAIL,EAAKK,EAAMP,IAAIG,QAAQ,MACtBD,IAGLA,EAAGE,UAAUC,OAAOhD,EAASX,UAC7B6D,EAAMnC,QAAQgC,UAAUC,OAAOhD,EAASV,cAGxCoD,EAAiBG,EAAI7C,GAGrBJ,EAAU,oBAAqBiD,EAAI,CACjCM,KAAMD,EAAMP,IACZ5B,QAASmC,EAAMnC,QACff,SAAUA,IAjBM,CAmBpB,EAOIoD,EAAiB,SAAUT,EAAK3C,GAElC,GAAKA,EAAST,OAAd,CAGA,IAAIsD,EAAKF,EAAIC,WAAWE,QAAQ,MAC3BD,IAGLA,EAAGE,UAAUM,IAAIrD,EAASR,aAG1B4D,EAAeP,EAAI7C,GAVS,CAW9B,EA6LA,OA1JkB,SAAUsD,EAAUC,GAKpC,IACIC,EAAU7C,EAAU8C,EAASC,EAAS1D,EADtC2D,EAAa,CAUjBA,MAAmB,WAEjBH,EAAWhC,SAASoC,iBAAiBN,GAGrC3C,EAAW,GAGXkD,MAAMC,UAAUC,QAAQC,KAAKR,GAAU,SAAUjB,GAE/C,IAAIxB,EAAUS,SAASyC,eACrBC,mBAAmB3B,EAAK4B,KAAKC,OAAO,KAEjCrD,GAGLJ,EAAS0D,KAAK,CACZ1B,IAAKJ,EACLxB,QAASA,GAEb,IAGAL,EAAaC,EACf,EAKAgD,OAAoB,WAElB,IAAIW,EAASlC,EAAUzB,EAAUX,GAG5BsE,EASDb,GAAWa,EAAOvD,UAAY0C,EAAQ1C,UAG1CkC,EAAWQ,EAASzD,GAzFT,SAAUkD,EAAOlD,GAE9B,GAAKkD,EAAL,CAGA,IAAIL,EAAKK,EAAMP,IAAIG,QAAQ,MACtBD,IAGLA,EAAGE,UAAUM,IAAIrD,EAASX,UAC1B6D,EAAMnC,QAAQgC,UAAUM,IAAIrD,EAASV,cAGrC8D,EAAeP,EAAI7C,GAGnBJ,EAAU,kBAAmBiD,EAAI,CAC/BM,KAAMD,EAAMP,IACZ5B,QAASmC,EAAMnC,QACff,SAAUA,IAjBM,CAmBpB,CAqEIuE,CAASD,EAAQtE,GAGjByD,EAAUa,GAfJb,IACFR,EAAWQ,EAASzD,GACpByD,EAAU,KAchB,GAMIe,EAAgB,SAAUvE,GAExByD,GACFxE,EAAOuF,qBAAqBf,GAI9BA,EAAUxE,EAAOwF,sBAAsBf,EAAWgB,OACpD,EAMIC,EAAgB,SAAU3E,GAExByD,GACFxE,EAAOuF,qBAAqBf,GAI9BA,EAAUxE,EAAOwF,uBAAsB,WACrChE,EAAaC,GACbgD,EAAWgB,QACb,GACF,EAkDA,OA7CAhB,EAAWkB,QAAU,WAEfpB,GACFR,EAAWQ,EAASzD,GAItBd,EAAO4F,oBAAoB,SAAUN,GAAe,GAChDxE,EAASN,QACXR,EAAO4F,oBAAoB,SAAUF,GAAe,GAItDjE,EAAW,KACX6C,EAAW,KACXC,EAAU,KACVC,EAAU,KACV1D,EAAW,IACb,EAOEA,EA3XS,WACX,IAAI+E,EAAS,CAAC,EAOd,OANAlB,MAAMC,UAAUC,QAAQC,KAAKgB,WAAW,SAAUC,GAChD,IAAK,IAAIC,KAAOD,EAAK,CACnB,IAAKA,EAAIE,eAAeD,GAAM,OAC9BH,EAAOG,GAAOD,EAAIC,EACpB,CACF,IACOH,CACT,CAkXeK,CAAOhG,EAAUmE,GAAW,CAAC,GAGxCI,EAAW0B,QAGX1B,EAAWgB,SAGXzF,EAAOoG,iBAAiB,SAAUd,GAAe,GAC7CxE,EAASN,QACXR,EAAOoG,iBAAiB,SAAUV,GAAe,GAS9CjB,CACT,CAOF,CArcW4B,CAAQvG,EAChB,UAFM,SAEN,uBCXDwG,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaE,QAGrB,IAAIC,EAASN,EAAyBE,GAAY,CAGjDG,QAAS,CAAC,GAOX,OAHAE,EAAoBL,GAAU1B,KAAK8B,EAAOD,QAASC,EAAQA,EAAOD,QAASJ,GAGpEK,EAAOD,OACf,CCrBAJ,EAAoBO,EAAKF,IACxB,IAAIG,EAASH,GAAUA,EAAOI,WAC7B,IAAOJ,EAAiB,QACxB,IAAM,EAEP,OADAL,EAAoBU,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,ECLdR,EAAoBU,EAAI,CAACN,EAASQ,KACjC,IAAI,IAAInB,KAAOmB,EACXZ,EAAoBa,EAAED,EAAYnB,KAASO,EAAoBa,EAAET,EAASX,IAC5EqB,OAAOC,eAAeX,EAASX,EAAK,CAAEuB,YAAY,EAAMC,IAAKL,EAAWnB,IAE1E,ECNDO,EAAoBxG,EAAI,WACvB,GAA0B,iBAAf0H,WAAyB,OAAOA,WAC3C,IACC,OAAOxH,MAAQ,IAAIyH,SAAS,cAAb,EAChB,CAAE,MAAOC,GACR,GAAsB,iBAAX3H,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBuG,EAAoBa,EAAI,CAACrB,EAAK6B,IAAUP,OAAOzC,UAAUqB,eAAenB,KAAKiB,EAAK6B,4CCK9EC,EAAY,KACZC,EAAS,KACTC,EAAgB/H,OAAO6C,aAAeP,SAASC,gBAAgByF,UACnE,MAAMC,EAAmB,GA2EzB,SAASC,IACP,MAAMC,EAAeC,aAAaC,QAAQ,UAAY,OAZxD,IAAkBC,EACH,WADGA,EAaItI,OAAOuI,WAAW,gCAAgCC,QAI/C,SAAjBL,EACO,QACgB,SAAhBA,EACA,OAEA,OAIU,SAAjBA,EACO,OACgB,QAAhBA,EACA,QAEA,SA9BoB,SAATG,GAA4B,SAATA,IACzCG,QAAQC,MAAM,2BAA2BJ,yBACzCA,EAAO,QAGThG,SAASS,KAAK4F,QAAQC,MAAQN,EAC9BF,aAAaS,QAAQ,QAASP,GAC9BG,QAAQK,IAAI,cAAcR,UA0B5B,CAkDA,SAASnC,KART,WAEE,MAAM4C,EAAUzG,SAAS0G,uBAAuB,gBAChDrE,MAAMsE,KAAKF,GAASlE,SAASqE,IAC3BA,EAAI9C,iBAAiB,QAAS8B,EAAe,GAEjD,CAGEiB,GA9CF,WAEE,IAAIC,EAA6B,EAC7BC,GAAU,EAEdrJ,OAAOoG,iBAAiB,UAAU,SAAUuB,GAC1CyB,EAA6BpJ,OAAOsJ,QAE/BD,IACHrJ,OAAOwF,uBAAsB,WAzDnC,IAAuB+D,IA0DDH,EA9GkC,GAAlDzG,KAAK6G,MAAM1B,EAAO7F,wBAAwBQ,KAC5CqF,EAAOjE,UAAUM,IAAI,YAErB2D,EAAOjE,UAAUC,OAAO,YAI5B,SAAmCyF,GAC7BA,EAAYtB,EACd3F,SAASC,gBAAgBsB,UAAUC,OAAO,oBAEtCyF,EAAYxB,EACdzF,SAASC,gBAAgBsB,UAAUM,IAAI,oBAC9BoF,EAAYxB,GACrBzF,SAASC,gBAAgBsB,UAAUC,OAAO,oBAG9CiE,EAAgBwB,CAClB,CAoCEE,CAA0BF,GAlC5B,SAA6BA,GACT,OAAd1B,IAKa,GAAb0B,EACF1B,EAAU6B,SAAS,EAAG,GAGtB/G,KAAKC,KAAK2G,IACV5G,KAAK6G,MAAMlH,SAASC,gBAAgBS,aAAehD,OAAOqC,aAE1DwF,EAAU6B,SAAS,EAAG7B,EAAU7E,cAGhBV,SAASqH,cAAc,mBAc3C,CAKEC,CAAoBL,GAwDdF,GAAU,CACZ,IAEAA,GAAU,EAEd,IACArJ,OAAO6J,QACT,CA6BEC,GA1BkB,OAAdjC,GAKJ,IAAI,IAAJ,CAAY,cAAe,CACzBrH,QAAQ,EACRuJ,WAAW,EACX5J,SAAU,iBACVI,OAAQ,KACN,IAAIyJ,EAAM9H,WAAW+H,iBAAiB3H,SAASC,iBAAiB2H,UAChE,OAAOpC,EAAO7F,wBAAwBkI,OAAS,IAAMH,EAAM,CAAC,GAiBlE,CAcA1H,SAAS8D,iBAAiB,oBAT1B,WACE9D,SAASS,KAAKW,WAAWG,UAAUC,OAAO,SAE1CgE,EAASxF,SAASqH,cAAc,UAChC9B,EAAYvF,SAASqH,cAAc,eAEnCxD,GACF","sources":["webpack:///./src/furo/assets/scripts/gumshoe-patched.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///./src/furo/assets/scripts/furo.js"],"sourcesContent":["/*!\n * gumshoejs v5.1.2 (patched by @pradyunsg)\n * A simple, framework-agnostic scrollspy script.\n * (c) 2019 Chris Ferdinandi\n * MIT License\n * http://github.com/cferdinandi/gumshoe\n */\n\n(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], function () {\n return factory(root);\n });\n } else if (typeof exports === \"object\") {\n module.exports = factory(root);\n } else {\n root.Gumshoe = factory(root);\n }\n})(\n typeof global !== \"undefined\"\n ? global\n : typeof window !== \"undefined\"\n ? window\n : this,\n function (window) {\n \"use strict\";\n\n //\n // Defaults\n //\n\n var defaults = {\n // Active classes\n navClass: \"active\",\n contentClass: \"active\",\n\n // Nested navigation\n nested: false,\n nestedClass: \"active\",\n\n // Offset & reflow\n offset: 0,\n reflow: false,\n\n // Event support\n events: true,\n };\n\n //\n // Methods\n //\n\n /**\n * Merge two or more objects together.\n * @param {Object} objects The objects to merge together\n * @returns {Object} Merged values of defaults and options\n */\n var extend = function () {\n var merged = {};\n Array.prototype.forEach.call(arguments, function (obj) {\n for (var key in obj) {\n if (!obj.hasOwnProperty(key)) return;\n merged[key] = obj[key];\n }\n });\n return merged;\n };\n\n /**\n * Emit a custom event\n * @param {String} type The event type\n * @param {Node} elem The element to attach the event to\n * @param {Object} detail Any details to pass along with the event\n */\n var emitEvent = function (type, elem, detail) {\n // Make sure events are enabled\n if (!detail.settings.events) return;\n\n // Create a new event\n var event = new CustomEvent(type, {\n bubbles: true,\n cancelable: true,\n detail: detail,\n });\n\n // Dispatch the event\n elem.dispatchEvent(event);\n };\n\n /**\n * Get an element's distance from the top of the Document.\n * @param {Node} elem The element\n * @return {Number} Distance from the top in pixels\n */\n var getOffsetTop = function (elem) {\n var location = 0;\n if (elem.offsetParent) {\n while (elem) {\n location += elem.offsetTop;\n elem = elem.offsetParent;\n }\n }\n return location >= 0 ? location : 0;\n };\n\n /**\n * Sort content from first to last in the DOM\n * @param {Array} contents The content areas\n */\n var sortContents = function (contents) {\n if (contents) {\n contents.sort(function (item1, item2) {\n var offset1 = getOffsetTop(item1.content);\n var offset2 = getOffsetTop(item2.content);\n if (offset1 < offset2) return -1;\n return 1;\n });\n }\n };\n\n /**\n * Get the offset to use for calculating position\n * @param {Object} settings The settings for this instantiation\n * @return {Float} The number of pixels to offset the calculations\n */\n var getOffset = function (settings) {\n // if the offset is a function run it\n if (typeof settings.offset === \"function\") {\n return parseFloat(settings.offset());\n }\n\n // Otherwise, return it as-is\n return parseFloat(settings.offset);\n };\n\n /**\n * Get the document element's height\n * @private\n * @returns {Number}\n */\n var getDocumentHeight = function () {\n return Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.offsetHeight,\n document.body.clientHeight,\n document.documentElement.clientHeight,\n );\n };\n\n /**\n * Determine if an element is in view\n * @param {Node} elem The element\n * @param {Object} settings The settings for this instantiation\n * @param {Boolean} bottom If true, check if element is above bottom of viewport instead\n * @return {Boolean} Returns true if element is in the viewport\n */\n var isInView = function (elem, settings, bottom) {\n var bounds = elem.getBoundingClientRect();\n var offset = getOffset(settings);\n if (bottom) {\n return (\n parseInt(bounds.bottom, 10) <\n (window.innerHeight || document.documentElement.clientHeight)\n );\n }\n return parseInt(bounds.top, 10) <= offset;\n };\n\n /**\n * Check if at the bottom of the viewport\n * @return {Boolean} If true, page is at the bottom of the viewport\n */\n var isAtBottom = function () {\n if (\n Math.ceil(window.innerHeight + window.pageYOffset) >=\n getDocumentHeight()\n )\n return true;\n return false;\n };\n\n /**\n * Check if the last item should be used (even if not at the top of the page)\n * @param {Object} item The last item\n * @param {Object} settings The settings for this instantiation\n * @return {Boolean} If true, use the last item\n */\n var useLastItem = function (item, settings) {\n if (isAtBottom() && isInView(item.content, settings, true)) return true;\n return false;\n };\n\n /**\n * Get the active content\n * @param {Array} contents The content areas\n * @param {Object} settings The settings for this instantiation\n * @return {Object} The content area and matching navigation link\n */\n var getActive = function (contents, settings) {\n var last = contents[contents.length - 1];\n if (useLastItem(last, settings)) return last;\n for (var i = contents.length - 1; i >= 0; i--) {\n if (isInView(contents[i].content, settings)) return contents[i];\n }\n };\n\n /**\n * Deactivate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var deactivateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested || !nav.parentNode) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Remove the active class\n li.classList.remove(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n deactivateNested(li, settings);\n };\n\n /**\n * Deactivate a nav and content area\n * @param {Object} items The nav item and content to deactivate\n * @param {Object} settings The settings for this instantiation\n */\n var deactivate = function (items, settings) {\n // Make sure there are items to deactivate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Remove the active class from the nav and content\n li.classList.remove(settings.navClass);\n items.content.classList.remove(settings.contentClass);\n\n // Deactivate any parent navs in a nested navigation\n deactivateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeDeactivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Activate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var activateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Add the active class\n li.classList.add(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n activateNested(li, settings);\n };\n\n /**\n * Activate a nav and content area\n * @param {Object} items The nav item and content to activate\n * @param {Object} settings The settings for this instantiation\n */\n var activate = function (items, settings) {\n // Make sure there are items to activate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Add the active class to the nav and content\n li.classList.add(settings.navClass);\n items.content.classList.add(settings.contentClass);\n\n // Activate any parent navs in a nested navigation\n activateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeActivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Create the Constructor object\n * @param {String} selector The selector to use for navigation items\n * @param {Object} options User options and settings\n */\n var Constructor = function (selector, options) {\n //\n // Variables\n //\n\n var publicAPIs = {};\n var navItems, contents, current, timeout, settings;\n\n //\n // Methods\n //\n\n /**\n * Set variables from DOM elements\n */\n publicAPIs.setup = function () {\n // Get all nav items\n navItems = document.querySelectorAll(selector);\n\n // Create contents array\n contents = [];\n\n // Loop through each item, get it's matching content, and push to the array\n Array.prototype.forEach.call(navItems, function (item) {\n // Get the content for the nav item\n var content = document.getElementById(\n decodeURIComponent(item.hash.substr(1)),\n );\n if (!content) return;\n\n // Push to the contents array\n contents.push({\n nav: item,\n content: content,\n });\n });\n\n // Sort contents by the order they appear in the DOM\n sortContents(contents);\n };\n\n /**\n * Detect which content is currently active\n */\n publicAPIs.detect = function () {\n // Get the active content\n var active = getActive(contents, settings);\n\n // if there's no active content, deactivate and bail\n if (!active) {\n if (current) {\n deactivate(current, settings);\n current = null;\n }\n return;\n }\n\n // If the active content is the one currently active, do nothing\n if (current && active.content === current.content) return;\n\n // Deactivate the current content and activate the new content\n deactivate(current, settings);\n activate(active, settings);\n\n // Update the currently active content\n current = active;\n };\n\n /**\n * Detect the active content on scroll\n * Debounced for performance\n */\n var scrollHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(publicAPIs.detect);\n };\n\n /**\n * Update content sorting on resize\n * Debounced for performance\n */\n var resizeHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(function () {\n sortContents(contents);\n publicAPIs.detect();\n });\n };\n\n /**\n * Destroy the current instantiation\n */\n publicAPIs.destroy = function () {\n // Undo DOM changes\n if (current) {\n deactivate(current, settings);\n }\n\n // Remove event listeners\n window.removeEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.removeEventListener(\"resize\", resizeHandler, false);\n }\n\n // Reset variables\n contents = null;\n navItems = null;\n current = null;\n timeout = null;\n settings = null;\n };\n\n /**\n * Initialize the current instantiation\n */\n var init = function () {\n // Merge user options into defaults\n settings = extend(defaults, options || {});\n\n // Setup variables based on the current DOM\n publicAPIs.setup();\n\n // Find the currently active content\n publicAPIs.detect();\n\n // Setup event listeners\n window.addEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.addEventListener(\"resize\", resizeHandler, false);\n }\n };\n\n //\n // Initialize and return the public APIs\n //\n\n init();\n return publicAPIs;\n };\n\n //\n // Return the Constructor\n //\n\n return Constructor;\n },\n);\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","import Gumshoe from \"./gumshoe-patched.js\";\n\n////////////////////////////////////////////////////////////////////////////////\n// Scroll Handling\n////////////////////////////////////////////////////////////////////////////////\nvar tocScroll = null;\nvar header = null;\nvar lastScrollTop = window.pageYOffset || document.documentElement.scrollTop;\nconst GO_TO_TOP_OFFSET = 64;\n\nfunction scrollHandlerForHeader() {\n if (Math.floor(header.getBoundingClientRect().top) == 0) {\n header.classList.add(\"scrolled\");\n } else {\n header.classList.remove(\"scrolled\");\n }\n}\n\nfunction scrollHandlerForBackToTop(positionY) {\n if (positionY < GO_TO_TOP_OFFSET) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n } else {\n if (positionY < lastScrollTop) {\n document.documentElement.classList.add(\"show-back-to-top\");\n } else if (positionY > lastScrollTop) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n }\n }\n lastScrollTop = positionY;\n}\n\nfunction scrollHandlerForTOC(positionY) {\n if (tocScroll === null) {\n return;\n }\n\n // top of page.\n if (positionY == 0) {\n tocScroll.scrollTo(0, 0);\n } else if (\n // bottom of page.\n Math.ceil(positionY) >=\n Math.floor(document.documentElement.scrollHeight - window.innerHeight)\n ) {\n tocScroll.scrollTo(0, tocScroll.scrollHeight);\n } else {\n // somewhere in the middle.\n const current = document.querySelector(\".scroll-current\");\n if (current == null) {\n return;\n }\n\n // https://github.com/pypa/pip/issues/9159 This breaks scroll behaviours.\n // // scroll the currently \"active\" heading in toc, into view.\n // const rect = current.getBoundingClientRect();\n // if (0 > rect.top) {\n // current.scrollIntoView(true); // the argument is \"alignTop\"\n // } else if (rect.bottom > window.innerHeight) {\n // current.scrollIntoView(false);\n // }\n }\n}\n\nfunction scrollHandler(positionY) {\n scrollHandlerForHeader();\n scrollHandlerForBackToTop(positionY);\n scrollHandlerForTOC(positionY);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Theme Toggle\n////////////////////////////////////////////////////////////////////////////////\nfunction setTheme(mode) {\n if (mode !== \"light\" && mode !== \"dark\" && mode !== \"auto\") {\n console.error(`Got invalid theme mode: ${mode}. Resetting to auto.`);\n mode = \"auto\";\n }\n\n document.body.dataset.theme = mode;\n localStorage.setItem(\"theme\", mode);\n console.log(`Changed to ${mode} mode.`);\n}\n\nfunction cycleThemeOnce() {\n const currentTheme = localStorage.getItem(\"theme\") || \"auto\";\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n\n if (prefersDark) {\n // Auto (dark) -> Light -> Dark\n if (currentTheme === \"auto\") {\n setTheme(\"light\");\n } else if (currentTheme == \"light\") {\n setTheme(\"dark\");\n } else {\n setTheme(\"auto\");\n }\n } else {\n // Auto (light) -> Dark -> Light\n if (currentTheme === \"auto\") {\n setTheme(\"dark\");\n } else if (currentTheme == \"dark\") {\n setTheme(\"light\");\n } else {\n setTheme(\"auto\");\n }\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Setup\n////////////////////////////////////////////////////////////////////////////////\nfunction setupScrollHandler() {\n // Taken from https://developer.mozilla.org/en-US/docs/Web/API/Document/scroll_event\n let last_known_scroll_position = 0;\n let ticking = false;\n\n window.addEventListener(\"scroll\", function (e) {\n last_known_scroll_position = window.scrollY;\n\n if (!ticking) {\n window.requestAnimationFrame(function () {\n scrollHandler(last_known_scroll_position);\n ticking = false;\n });\n\n ticking = true;\n }\n });\n window.scroll();\n}\n\nfunction setupScrollSpy() {\n if (tocScroll === null) {\n return;\n }\n\n // Scrollspy -- highlight table on contents, based on scroll\n new Gumshoe(\".toc-tree a\", {\n reflow: true,\n recursive: true,\n navClass: \"scroll-current\",\n offset: () => {\n let rem = parseFloat(getComputedStyle(document.documentElement).fontSize);\n return header.getBoundingClientRect().height + 2.5 * rem + 1;\n },\n });\n}\n\nfunction setupTheme() {\n // Attach event handlers for toggling themes\n const buttons = document.getElementsByClassName(\"theme-toggle\");\n Array.from(buttons).forEach((btn) => {\n btn.addEventListener(\"click\", cycleThemeOnce);\n });\n}\n\nfunction setup() {\n setupTheme();\n setupScrollHandler();\n setupScrollSpy();\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Main entrypoint\n////////////////////////////////////////////////////////////////////////////////\nfunction main() {\n document.body.parentNode.classList.remove(\"no-js\");\n\n header = document.querySelector(\"header\");\n tocScroll = document.querySelector(\".toc-scroll\");\n\n setup();\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", main);\n"],"names":["root","g","window","this","defaults","navClass","contentClass","nested","nestedClass","offset","reflow","events","emitEvent","type","elem","detail","settings","event","CustomEvent","bubbles","cancelable","dispatchEvent","getOffsetTop","location","offsetParent","offsetTop","sortContents","contents","sort","item1","item2","content","isInView","bottom","bounds","getBoundingClientRect","parseFloat","getOffset","parseInt","innerHeight","document","documentElement","clientHeight","top","isAtBottom","Math","ceil","pageYOffset","max","body","scrollHeight","offsetHeight","getActive","last","length","item","useLastItem","i","deactivateNested","nav","parentNode","li","closest","classList","remove","deactivate","items","link","activateNested","add","selector","options","navItems","current","timeout","publicAPIs","querySelectorAll","Array","prototype","forEach","call","getElementById","decodeURIComponent","hash","substr","push","active","activate","scrollHandler","cancelAnimationFrame","requestAnimationFrame","detect","resizeHandler","destroy","removeEventListener","merged","arguments","obj","key","hasOwnProperty","extend","setup","addEventListener","factory","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","n","getter","__esModule","d","a","definition","o","Object","defineProperty","enumerable","get","globalThis","Function","e","prop","tocScroll","header","lastScrollTop","scrollTop","GO_TO_TOP_OFFSET","cycleThemeOnce","currentTheme","localStorage","getItem","mode","matchMedia","matches","console","error","dataset","theme","setItem","log","buttons","getElementsByClassName","from","btn","setupTheme","last_known_scroll_position","ticking","scrollY","positionY","floor","scrollHandlerForBackToTop","scrollTo","querySelector","scrollHandlerForTOC","scroll","setupScrollHandler","recursive","rem","getComputedStyle","fontSize","height"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"scripts/furo.js","mappings":";iCAAA,MAQWA,SAWS,IAAX,EAAAC,EACH,EAAAA,EACkB,oBAAXC,OACLA,OACAC,KAbO,EAAF,WACP,OAaJ,SAAUD,GACR,aAMA,IAAIE,EAAW,CAEbC,SAAU,SACVC,aAAc,SAGdC,QAAQ,EACRC,YAAa,SAGbC,OAAQ,EACRC,QAAQ,EAGRC,QAAQ,GA6BNC,EAAY,SAAUC,EAAMC,EAAMC,GAEpC,GAAKA,EAAOC,SAASL,OAArB,CAGA,IAAIM,EAAQ,IAAIC,YAAYL,EAAM,CAChCM,SAAS,EACTC,YAAY,EACZL,OAAQA,IAIVD,EAAKO,cAAcJ,EAVgB,CAWrC,EAOIK,EAAe,SAAUR,GAC3B,IAAIS,EAAW,EACf,GAAIT,EAAKU,aACP,KAAOV,GACLS,GAAYT,EAAKW,UACjBX,EAAOA,EAAKU,aAGhB,OAAOD,GAAY,EAAIA,EAAW,CACpC,EAMIG,EAAe,SAAUC,GACvBA,GACFA,EAASC,MAAK,SAAUC,EAAOC,GAG7B,OAFcR,EAAaO,EAAME,SACnBT,EAAaQ,EAAMC,UACF,EACxB,CACT,GAEJ,EAwCIC,EAAW,SAAUlB,EAAME,EAAUiB,GACvC,IAAIC,EAASpB,EAAKqB,wBACd1B,EAnCU,SAAUO,GAExB,MAA+B,mBAApBA,EAASP,OACX2B,WAAWpB,EAASP,UAItB2B,WAAWpB,EAASP,OAC7B,CA2Be4B,CAAUrB,GACvB,OAAIiB,EAEAK,SAASJ,EAAOD,OAAQ,KACvB/B,EAAOqC,aAAeC,SAASC,gBAAgBC,cAG7CJ,SAASJ,EAAOS,IAAK,KAAOlC,CACrC,EAMImC,EAAa,WACf,OACEC,KAAKC,KAAK5C,EAAOqC,YAAcrC,EAAO6C,cAnCjCF,KAAKG,IACVR,SAASS,KAAKC,aACdV,SAASC,gBAAgBS,aACzBV,SAASS,KAAKE,aACdX,SAASC,gBAAgBU,aACzBX,SAASS,KAAKP,aACdF,SAASC,gBAAgBC,aAkC7B,EAmBIU,EAAY,SAAUzB,EAAUX,GAClC,IAAIqC,EAAO1B,EAASA,EAAS2B,OAAS,GACtC,GAbgB,SAAUC,EAAMvC,GAChC,SAAI4B,MAAgBZ,EAASuB,EAAKxB,QAASf,GAAU,GAEvD,CAUMwC,CAAYH,EAAMrC,GAAW,OAAOqC,EACxC,IAAK,IAAII,EAAI9B,EAAS2B,OAAS,EAAGG,GAAK,EAAGA,IACxC,GAAIzB,EAASL,EAAS8B,GAAG1B,QAASf,GAAW,OAAOW,EAAS8B,EAEjE,EAOIC,EAAmB,SAAUC,EAAK3C,GAEpC,GAAKA,EAAST,QAAWoD,EAAIC,WAA7B,CAGA,IAAIC,EAAKF,EAAIC,WAAWE,QAAQ,MAC3BD,IAGLA,EAAGE,UAAUC,OAAOhD,EAASR,aAG7BkD,EAAiBG,EAAI7C,GAV0B,CAWjD,EAOIiD,EAAa,SAAUC,EAAOlD,GAEhC,GAAKkD,EAAL,CAGA,IAAIL,EAAKK,EAAMP,IAAIG,QAAQ,MACtBD,IAGLA,EAAGE,UAAUC,OAAOhD,EAASX,UAC7B6D,EAAMnC,QAAQgC,UAAUC,OAAOhD,EAASV,cAGxCoD,EAAiBG,EAAI7C,GAGrBJ,EAAU,oBAAqBiD,EAAI,CACjCM,KAAMD,EAAMP,IACZ5B,QAASmC,EAAMnC,QACff,SAAUA,IAjBM,CAmBpB,EAOIoD,EAAiB,SAAUT,EAAK3C,GAElC,GAAKA,EAAST,OAAd,CAGA,IAAIsD,EAAKF,EAAIC,WAAWE,QAAQ,MAC3BD,IAGLA,EAAGE,UAAUM,IAAIrD,EAASR,aAG1B4D,EAAeP,EAAI7C,GAVS,CAW9B,EA6LA,OA1JkB,SAAUsD,EAAUC,GAKpC,IACIC,EAAU7C,EAAU8C,EAASC,EAAS1D,EADtC2D,EAAa,CAUjBA,MAAmB,WAEjBH,EAAWhC,SAASoC,iBAAiBN,GAGrC3C,EAAW,GAGXkD,MAAMC,UAAUC,QAAQC,KAAKR,GAAU,SAAUjB,GAE/C,IAAIxB,EAAUS,SAASyC,eACrBC,mBAAmB3B,EAAK4B,KAAKC,OAAO,KAEjCrD,GAGLJ,EAAS0D,KAAK,CACZ1B,IAAKJ,EACLxB,QAASA,GAEb,IAGAL,EAAaC,EACf,EAKAgD,OAAoB,WAElB,IAAIW,EAASlC,EAAUzB,EAAUX,GAG5BsE,EASDb,GAAWa,EAAOvD,UAAY0C,EAAQ1C,UAG1CkC,EAAWQ,EAASzD,GAzFT,SAAUkD,EAAOlD,GAE9B,GAAKkD,EAAL,CAGA,IAAIL,EAAKK,EAAMP,IAAIG,QAAQ,MACtBD,IAGLA,EAAGE,UAAUM,IAAIrD,EAASX,UAC1B6D,EAAMnC,QAAQgC,UAAUM,IAAIrD,EAASV,cAGrC8D,EAAeP,EAAI7C,GAGnBJ,EAAU,kBAAmBiD,EAAI,CAC/BM,KAAMD,EAAMP,IACZ5B,QAASmC,EAAMnC,QACff,SAAUA,IAjBM,CAmBpB,CAqEIuE,CAASD,EAAQtE,GAGjByD,EAAUa,GAfJb,IACFR,EAAWQ,EAASzD,GACpByD,EAAU,KAchB,GAMIe,EAAgB,SAAUvE,GAExByD,GACFxE,EAAOuF,qBAAqBf,GAI9BA,EAAUxE,EAAOwF,sBAAsBf,EAAWgB,OACpD,EAMIC,EAAgB,SAAU3E,GAExByD,GACFxE,EAAOuF,qBAAqBf,GAI9BA,EAAUxE,EAAOwF,uBAAsB,WACrChE,EAAaC,GACbgD,EAAWgB,QACb,GACF,EAkDA,OA7CAhB,EAAWkB,QAAU,WAEfpB,GACFR,EAAWQ,EAASzD,GAItBd,EAAO4F,oBAAoB,SAAUN,GAAe,GAChDxE,EAASN,QACXR,EAAO4F,oBAAoB,SAAUF,GAAe,GAItDjE,EAAW,KACX6C,EAAW,KACXC,EAAU,KACVC,EAAU,KACV1D,EAAW,IACb,EAOEA,EA3XS,WACX,IAAI+E,EAAS,CAAC,EAOd,OANAlB,MAAMC,UAAUC,QAAQC,KAAKgB,WAAW,SAAUC,GAChD,IAAK,IAAIC,KAAOD,EAAK,CACnB,IAAKA,EAAIE,eAAeD,GAAM,OAC9BH,EAAOG,GAAOD,EAAIC,EACpB,CACF,IACOH,CACT,CAkXeK,CAAOhG,EAAUmE,GAAW,CAAC,GAGxCI,EAAW0B,QAGX1B,EAAWgB,SAGXzF,EAAOoG,iBAAiB,SAAUd,GAAe,GAC7CxE,EAASN,QACXR,EAAOoG,iBAAiB,SAAUV,GAAe,GAS9CjB,CACT,CAOF,CArcW4B,CAAQvG,EAChB,UAFM,SAEN,uBCXDwG,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaE,QAGrB,IAAIC,EAASN,EAAyBE,GAAY,CAGjDG,QAAS,CAAC,GAOX,OAHAE,EAAoBL,GAAU1B,KAAK8B,EAAOD,QAASC,EAAQA,EAAOD,QAASJ,GAGpEK,EAAOD,OACf,CCrBAJ,EAAoBO,EAAKF,IACxB,IAAIG,EAASH,GAAUA,EAAOI,WAC7B,IAAOJ,EAAiB,QACxB,IAAM,EAEP,OADAL,EAAoBU,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,ECLdR,EAAoBU,EAAI,CAACN,EAASQ,KACjC,IAAI,IAAInB,KAAOmB,EACXZ,EAAoBa,EAAED,EAAYnB,KAASO,EAAoBa,EAAET,EAASX,IAC5EqB,OAAOC,eAAeX,EAASX,EAAK,CAAEuB,YAAY,EAAMC,IAAKL,EAAWnB,IAE1E,ECNDO,EAAoBxG,EAAI,WACvB,GAA0B,iBAAf0H,WAAyB,OAAOA,WAC3C,IACC,OAAOxH,MAAQ,IAAIyH,SAAS,cAAb,EAChB,CAAE,MAAOC,GACR,GAAsB,iBAAX3H,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBuG,EAAoBa,EAAI,CAACrB,EAAK6B,IAAUP,OAAOzC,UAAUqB,eAAenB,KAAKiB,EAAK6B,4CCK9EC,EAAY,KACZC,EAAS,KACTC,EAAgBzF,SAASC,gBAAgByF,UAC7C,MAAMC,EAAmB,GA8EzB,SAASC,IACP,MAAMC,EAAeC,aAAaC,QAAQ,UAAY,OAZxD,IAAkBC,EACH,WADGA,EAaItI,OAAOuI,WAAW,gCAAgCC,QAI/C,SAAjBL,EACO,QACgB,SAAhBA,EACA,OAEA,OAIU,SAAjBA,EACO,OACgB,QAAhBA,EACA,QAEA,SA9BoB,SAATG,GAA4B,SAATA,IACzCG,QAAQC,MAAM,2BAA2BJ,yBACzCA,EAAO,QAGThG,SAASS,KAAK4F,QAAQC,MAAQN,EAC9BF,aAAaS,QAAQ,QAASP,GAC9BG,QAAQK,IAAI,cAAcR,UA0B5B,CAkDA,SAASnC,KART,WAEE,MAAM4C,EAAUzG,SAAS0G,uBAAuB,gBAChDrE,MAAMsE,KAAKF,GAASlE,SAASqE,IAC3BA,EAAI9C,iBAAiB,QAAS8B,EAAe,GAEjD,CAGEiB,GA9CF,WAEE,IAAIC,EAA6B,EAC7BC,GAAU,EAEdrJ,OAAOoG,iBAAiB,UAAU,SAAUuB,GAC1CyB,EAA6BpJ,OAAOsJ,QAE/BD,IACHrJ,OAAOwF,uBAAsB,WAzDnC,IAAuB+D,GAxDvB,SAAgCA,GAC9B,MAAMC,EAAY7G,KAAK8G,MAAM3B,EAAO7F,wBAAwBQ,KAE5DgG,QAAQK,IAAI,cAAcU,KACT,GAAbA,GAAkBD,GAAaC,EACjC1B,EAAOjE,UAAUM,IAAI,YAErB2D,EAAOjE,UAAUC,OAAO,WAE5B,EAgDE4F,CADqBH,EA0DDH,GAvGtB,SAAmCG,GAC7BA,EAAYtB,EACd3F,SAASC,gBAAgBsB,UAAUC,OAAO,oBAEtCyF,EAAYxB,EACdzF,SAASC,gBAAgBsB,UAAUM,IAAI,oBAC9BoF,EAAYxB,GACrBzF,SAASC,gBAAgBsB,UAAUC,OAAO,oBAG9CiE,EAAgBwB,CAClB,CAoCEI,CAA0BJ,GAlC5B,SAA6BA,GACT,OAAd1B,IAKa,GAAb0B,EACF1B,EAAU+B,SAAS,EAAG,GAGtBjH,KAAKC,KAAK2G,IACV5G,KAAK8G,MAAMnH,SAASC,gBAAgBS,aAAehD,OAAOqC,aAE1DwF,EAAU+B,SAAS,EAAG/B,EAAU7E,cAGhBV,SAASuH,cAAc,mBAc3C,CAKEC,CAAoBP,GAwDdF,GAAU,CACZ,IAEAA,GAAU,EAEd,IACArJ,OAAO+J,QACT,CA6BEC,GA1BkB,OAAdnC,GAKJ,IAAI,IAAJ,CAAY,cAAe,CACzBrH,QAAQ,EACRyJ,WAAW,EACX9J,SAAU,iBACVI,OAAQ,KACN,IAAI2J,EAAMhI,WAAWiI,iBAAiB7H,SAASC,iBAAiB6H,UAChE,OAAOtC,EAAO7F,wBAAwBoI,OAAS,IAAMH,EAAM,CAAC,GAiBlE,CAcA5H,SAAS8D,iBAAiB,oBAT1B,WACE9D,SAASS,KAAKW,WAAWG,UAAUC,OAAO,SAE1CgE,EAASxF,SAASuH,cAAc,UAChChC,EAAYvF,SAASuH,cAAc,eAEnC1D,GACF","sources":["webpack:///./src/furo/assets/scripts/gumshoe-patched.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///./src/furo/assets/scripts/furo.js"],"sourcesContent":["/*!\n * gumshoejs v5.1.2 (patched by @pradyunsg)\n * A simple, framework-agnostic scrollspy script.\n * (c) 2019 Chris Ferdinandi\n * MIT License\n * http://github.com/cferdinandi/gumshoe\n */\n\n(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], function () {\n return factory(root);\n });\n } else if (typeof exports === \"object\") {\n module.exports = factory(root);\n } else {\n root.Gumshoe = factory(root);\n }\n})(\n typeof global !== \"undefined\"\n ? global\n : typeof window !== \"undefined\"\n ? window\n : this,\n function (window) {\n \"use strict\";\n\n //\n // Defaults\n //\n\n var defaults = {\n // Active classes\n navClass: \"active\",\n contentClass: \"active\",\n\n // Nested navigation\n nested: false,\n nestedClass: \"active\",\n\n // Offset & reflow\n offset: 0,\n reflow: false,\n\n // Event support\n events: true,\n };\n\n //\n // Methods\n //\n\n /**\n * Merge two or more objects together.\n * @param {Object} objects The objects to merge together\n * @returns {Object} Merged values of defaults and options\n */\n var extend = function () {\n var merged = {};\n Array.prototype.forEach.call(arguments, function (obj) {\n for (var key in obj) {\n if (!obj.hasOwnProperty(key)) return;\n merged[key] = obj[key];\n }\n });\n return merged;\n };\n\n /**\n * Emit a custom event\n * @param {String} type The event type\n * @param {Node} elem The element to attach the event to\n * @param {Object} detail Any details to pass along with the event\n */\n var emitEvent = function (type, elem, detail) {\n // Make sure events are enabled\n if (!detail.settings.events) return;\n\n // Create a new event\n var event = new CustomEvent(type, {\n bubbles: true,\n cancelable: true,\n detail: detail,\n });\n\n // Dispatch the event\n elem.dispatchEvent(event);\n };\n\n /**\n * Get an element's distance from the top of the Document.\n * @param {Node} elem The element\n * @return {Number} Distance from the top in pixels\n */\n var getOffsetTop = function (elem) {\n var location = 0;\n if (elem.offsetParent) {\n while (elem) {\n location += elem.offsetTop;\n elem = elem.offsetParent;\n }\n }\n return location >= 0 ? location : 0;\n };\n\n /**\n * Sort content from first to last in the DOM\n * @param {Array} contents The content areas\n */\n var sortContents = function (contents) {\n if (contents) {\n contents.sort(function (item1, item2) {\n var offset1 = getOffsetTop(item1.content);\n var offset2 = getOffsetTop(item2.content);\n if (offset1 < offset2) return -1;\n return 1;\n });\n }\n };\n\n /**\n * Get the offset to use for calculating position\n * @param {Object} settings The settings for this instantiation\n * @return {Float} The number of pixels to offset the calculations\n */\n var getOffset = function (settings) {\n // if the offset is a function run it\n if (typeof settings.offset === \"function\") {\n return parseFloat(settings.offset());\n }\n\n // Otherwise, return it as-is\n return parseFloat(settings.offset);\n };\n\n /**\n * Get the document element's height\n * @private\n * @returns {Number}\n */\n var getDocumentHeight = function () {\n return Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.offsetHeight,\n document.body.clientHeight,\n document.documentElement.clientHeight,\n );\n };\n\n /**\n * Determine if an element is in view\n * @param {Node} elem The element\n * @param {Object} settings The settings for this instantiation\n * @param {Boolean} bottom If true, check if element is above bottom of viewport instead\n * @return {Boolean} Returns true if element is in the viewport\n */\n var isInView = function (elem, settings, bottom) {\n var bounds = elem.getBoundingClientRect();\n var offset = getOffset(settings);\n if (bottom) {\n return (\n parseInt(bounds.bottom, 10) <\n (window.innerHeight || document.documentElement.clientHeight)\n );\n }\n return parseInt(bounds.top, 10) <= offset;\n };\n\n /**\n * Check if at the bottom of the viewport\n * @return {Boolean} If true, page is at the bottom of the viewport\n */\n var isAtBottom = function () {\n if (\n Math.ceil(window.innerHeight + window.pageYOffset) >=\n getDocumentHeight()\n )\n return true;\n return false;\n };\n\n /**\n * Check if the last item should be used (even if not at the top of the page)\n * @param {Object} item The last item\n * @param {Object} settings The settings for this instantiation\n * @return {Boolean} If true, use the last item\n */\n var useLastItem = function (item, settings) {\n if (isAtBottom() && isInView(item.content, settings, true)) return true;\n return false;\n };\n\n /**\n * Get the active content\n * @param {Array} contents The content areas\n * @param {Object} settings The settings for this instantiation\n * @return {Object} The content area and matching navigation link\n */\n var getActive = function (contents, settings) {\n var last = contents[contents.length - 1];\n if (useLastItem(last, settings)) return last;\n for (var i = contents.length - 1; i >= 0; i--) {\n if (isInView(contents[i].content, settings)) return contents[i];\n }\n };\n\n /**\n * Deactivate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var deactivateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested || !nav.parentNode) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Remove the active class\n li.classList.remove(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n deactivateNested(li, settings);\n };\n\n /**\n * Deactivate a nav and content area\n * @param {Object} items The nav item and content to deactivate\n * @param {Object} settings The settings for this instantiation\n */\n var deactivate = function (items, settings) {\n // Make sure there are items to deactivate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Remove the active class from the nav and content\n li.classList.remove(settings.navClass);\n items.content.classList.remove(settings.contentClass);\n\n // Deactivate any parent navs in a nested navigation\n deactivateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeDeactivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Activate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var activateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Add the active class\n li.classList.add(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n activateNested(li, settings);\n };\n\n /**\n * Activate a nav and content area\n * @param {Object} items The nav item and content to activate\n * @param {Object} settings The settings for this instantiation\n */\n var activate = function (items, settings) {\n // Make sure there are items to activate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Add the active class to the nav and content\n li.classList.add(settings.navClass);\n items.content.classList.add(settings.contentClass);\n\n // Activate any parent navs in a nested navigation\n activateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeActivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Create the Constructor object\n * @param {String} selector The selector to use for navigation items\n * @param {Object} options User options and settings\n */\n var Constructor = function (selector, options) {\n //\n // Variables\n //\n\n var publicAPIs = {};\n var navItems, contents, current, timeout, settings;\n\n //\n // Methods\n //\n\n /**\n * Set variables from DOM elements\n */\n publicAPIs.setup = function () {\n // Get all nav items\n navItems = document.querySelectorAll(selector);\n\n // Create contents array\n contents = [];\n\n // Loop through each item, get it's matching content, and push to the array\n Array.prototype.forEach.call(navItems, function (item) {\n // Get the content for the nav item\n var content = document.getElementById(\n decodeURIComponent(item.hash.substr(1)),\n );\n if (!content) return;\n\n // Push to the contents array\n contents.push({\n nav: item,\n content: content,\n });\n });\n\n // Sort contents by the order they appear in the DOM\n sortContents(contents);\n };\n\n /**\n * Detect which content is currently active\n */\n publicAPIs.detect = function () {\n // Get the active content\n var active = getActive(contents, settings);\n\n // if there's no active content, deactivate and bail\n if (!active) {\n if (current) {\n deactivate(current, settings);\n current = null;\n }\n return;\n }\n\n // If the active content is the one currently active, do nothing\n if (current && active.content === current.content) return;\n\n // Deactivate the current content and activate the new content\n deactivate(current, settings);\n activate(active, settings);\n\n // Update the currently active content\n current = active;\n };\n\n /**\n * Detect the active content on scroll\n * Debounced for performance\n */\n var scrollHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(publicAPIs.detect);\n };\n\n /**\n * Update content sorting on resize\n * Debounced for performance\n */\n var resizeHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(function () {\n sortContents(contents);\n publicAPIs.detect();\n });\n };\n\n /**\n * Destroy the current instantiation\n */\n publicAPIs.destroy = function () {\n // Undo DOM changes\n if (current) {\n deactivate(current, settings);\n }\n\n // Remove event listeners\n window.removeEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.removeEventListener(\"resize\", resizeHandler, false);\n }\n\n // Reset variables\n contents = null;\n navItems = null;\n current = null;\n timeout = null;\n settings = null;\n };\n\n /**\n * Initialize the current instantiation\n */\n var init = function () {\n // Merge user options into defaults\n settings = extend(defaults, options || {});\n\n // Setup variables based on the current DOM\n publicAPIs.setup();\n\n // Find the currently active content\n publicAPIs.detect();\n\n // Setup event listeners\n window.addEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.addEventListener(\"resize\", resizeHandler, false);\n }\n };\n\n //\n // Initialize and return the public APIs\n //\n\n init();\n return publicAPIs;\n };\n\n //\n // Return the Constructor\n //\n\n return Constructor;\n },\n);\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","import Gumshoe from \"./gumshoe-patched.js\";\n\n////////////////////////////////////////////////////////////////////////////////\n// Scroll Handling\n////////////////////////////////////////////////////////////////////////////////\nvar tocScroll = null;\nvar header = null;\nvar lastScrollTop = document.documentElement.scrollTop;\nconst GO_TO_TOP_OFFSET = 64;\n\nfunction scrollHandlerForHeader(positionY) {\n const headerTop = Math.floor(header.getBoundingClientRect().top);\n\n console.log(`headerTop: ${headerTop}`);\n if (headerTop == 0 && positionY != headerTop) {\n header.classList.add(\"scrolled\");\n } else {\n header.classList.remove(\"scrolled\");\n }\n}\n\nfunction scrollHandlerForBackToTop(positionY) {\n if (positionY < GO_TO_TOP_OFFSET) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n } else {\n if (positionY < lastScrollTop) {\n document.documentElement.classList.add(\"show-back-to-top\");\n } else if (positionY > lastScrollTop) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n }\n }\n lastScrollTop = positionY;\n}\n\nfunction scrollHandlerForTOC(positionY) {\n if (tocScroll === null) {\n return;\n }\n\n // top of page.\n if (positionY == 0) {\n tocScroll.scrollTo(0, 0);\n } else if (\n // bottom of page.\n Math.ceil(positionY) >=\n Math.floor(document.documentElement.scrollHeight - window.innerHeight)\n ) {\n tocScroll.scrollTo(0, tocScroll.scrollHeight);\n } else {\n // somewhere in the middle.\n const current = document.querySelector(\".scroll-current\");\n if (current == null) {\n return;\n }\n\n // https://github.com/pypa/pip/issues/9159 This breaks scroll behaviours.\n // // scroll the currently \"active\" heading in toc, into view.\n // const rect = current.getBoundingClientRect();\n // if (0 > rect.top) {\n // current.scrollIntoView(true); // the argument is \"alignTop\"\n // } else if (rect.bottom > window.innerHeight) {\n // current.scrollIntoView(false);\n // }\n }\n}\n\nfunction scrollHandler(positionY) {\n scrollHandlerForHeader(positionY);\n scrollHandlerForBackToTop(positionY);\n scrollHandlerForTOC(positionY);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Theme Toggle\n////////////////////////////////////////////////////////////////////////////////\nfunction setTheme(mode) {\n if (mode !== \"light\" && mode !== \"dark\" && mode !== \"auto\") {\n console.error(`Got invalid theme mode: ${mode}. Resetting to auto.`);\n mode = \"auto\";\n }\n\n document.body.dataset.theme = mode;\n localStorage.setItem(\"theme\", mode);\n console.log(`Changed to ${mode} mode.`);\n}\n\nfunction cycleThemeOnce() {\n const currentTheme = localStorage.getItem(\"theme\") || \"auto\";\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n\n if (prefersDark) {\n // Auto (dark) -> Light -> Dark\n if (currentTheme === \"auto\") {\n setTheme(\"light\");\n } else if (currentTheme == \"light\") {\n setTheme(\"dark\");\n } else {\n setTheme(\"auto\");\n }\n } else {\n // Auto (light) -> Dark -> Light\n if (currentTheme === \"auto\") {\n setTheme(\"dark\");\n } else if (currentTheme == \"dark\") {\n setTheme(\"light\");\n } else {\n setTheme(\"auto\");\n }\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Setup\n////////////////////////////////////////////////////////////////////////////////\nfunction setupScrollHandler() {\n // Taken from https://developer.mozilla.org/en-US/docs/Web/API/Document/scroll_event\n let last_known_scroll_position = 0;\n let ticking = false;\n\n window.addEventListener(\"scroll\", function (e) {\n last_known_scroll_position = window.scrollY;\n\n if (!ticking) {\n window.requestAnimationFrame(function () {\n scrollHandler(last_known_scroll_position);\n ticking = false;\n });\n\n ticking = true;\n }\n });\n window.scroll();\n}\n\nfunction setupScrollSpy() {\n if (tocScroll === null) {\n return;\n }\n\n // Scrollspy -- highlight table on contents, based on scroll\n new Gumshoe(\".toc-tree a\", {\n reflow: true,\n recursive: true,\n navClass: \"scroll-current\",\n offset: () => {\n let rem = parseFloat(getComputedStyle(document.documentElement).fontSize);\n return header.getBoundingClientRect().height + 2.5 * rem + 1;\n },\n });\n}\n\nfunction setupTheme() {\n // Attach event handlers for toggling themes\n const buttons = document.getElementsByClassName(\"theme-toggle\");\n Array.from(buttons).forEach((btn) => {\n btn.addEventListener(\"click\", cycleThemeOnce);\n });\n}\n\nfunction setup() {\n setupTheme();\n setupScrollHandler();\n setupScrollSpy();\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Main entrypoint\n////////////////////////////////////////////////////////////////////////////////\nfunction main() {\n document.body.parentNode.classList.remove(\"no-js\");\n\n header = document.querySelector(\"header\");\n tocScroll = document.querySelector(\".toc-scroll\");\n\n setup();\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", main);\n"],"names":["root","g","window","this","defaults","navClass","contentClass","nested","nestedClass","offset","reflow","events","emitEvent","type","elem","detail","settings","event","CustomEvent","bubbles","cancelable","dispatchEvent","getOffsetTop","location","offsetParent","offsetTop","sortContents","contents","sort","item1","item2","content","isInView","bottom","bounds","getBoundingClientRect","parseFloat","getOffset","parseInt","innerHeight","document","documentElement","clientHeight","top","isAtBottom","Math","ceil","pageYOffset","max","body","scrollHeight","offsetHeight","getActive","last","length","item","useLastItem","i","deactivateNested","nav","parentNode","li","closest","classList","remove","deactivate","items","link","activateNested","add","selector","options","navItems","current","timeout","publicAPIs","querySelectorAll","Array","prototype","forEach","call","getElementById","decodeURIComponent","hash","substr","push","active","activate","scrollHandler","cancelAnimationFrame","requestAnimationFrame","detect","resizeHandler","destroy","removeEventListener","merged","arguments","obj","key","hasOwnProperty","extend","setup","addEventListener","factory","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","n","getter","__esModule","d","a","definition","o","Object","defineProperty","enumerable","get","globalThis","Function","e","prop","tocScroll","header","lastScrollTop","scrollTop","GO_TO_TOP_OFFSET","cycleThemeOnce","currentTheme","localStorage","getItem","mode","matchMedia","matches","console","error","dataset","theme","setItem","log","buttons","getElementsByClassName","from","btn","setupTheme","last_known_scroll_position","ticking","scrollY","positionY","headerTop","floor","scrollHandlerForHeader","scrollHandlerForBackToTop","scrollTo","querySelector","scrollHandlerForTOC","scroll","setupScrollHandler","recursive","rem","getComputedStyle","fontSize","height"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/en/_static/styles/furo-extensions.css b/docs/en/_static/styles/furo-extensions.css index bc447f228..822958761 100644 --- a/docs/en/_static/styles/furo-extensions.css +++ b/docs/en/_static/styles/furo-extensions.css @@ -1,2 +1,2 @@ -#furo-sidebar-ad-placement{padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)}#furo-sidebar-ad-placement .ethical-sidebar{background:var(--color-background-secondary);border:none;box-shadow:none}#furo-sidebar-ad-placement .ethical-sidebar:hover{background:var(--color-background-hover)}#furo-sidebar-ad-placement .ethical-sidebar a{color:var(--color-foreground-primary)}#furo-sidebar-ad-placement .ethical-callout a{color:var(--color-foreground-secondary)!important}#furo-readthedocs-versions{background:transparent;display:block;position:static;width:100%}#furo-readthedocs-versions .rst-versions{background:#1a1c1e}#furo-readthedocs-versions .rst-current-version{background:var(--color-sidebar-item-background);cursor:unset}#furo-readthedocs-versions .rst-current-version:hover{background:var(--color-sidebar-item-background)}#furo-readthedocs-versions .rst-current-version .fa-book{color:var(--color-foreground-primary)}#furo-readthedocs-versions>.rst-other-versions{padding:0}#furo-readthedocs-versions>.rst-other-versions small{opacity:1}#furo-readthedocs-versions .injected .rst-versions{position:unset}#furo-readthedocs-versions:focus-within,#furo-readthedocs-versions:hover{box-shadow:0 0 0 1px var(--color-sidebar-background-border)}#furo-readthedocs-versions:focus-within .rst-current-version,#furo-readthedocs-versions:hover .rst-current-version{background:#1a1c1e;font-size:inherit;height:auto;line-height:inherit;padding:12px;text-align:right}#furo-readthedocs-versions:focus-within .rst-current-version .fa-book,#furo-readthedocs-versions:hover .rst-current-version .fa-book{color:#fff;float:left}#furo-readthedocs-versions:focus-within .fa-caret-down,#furo-readthedocs-versions:hover .fa-caret-down{display:none}#furo-readthedocs-versions:focus-within .injected,#furo-readthedocs-versions:focus-within .rst-current-version,#furo-readthedocs-versions:focus-within .rst-other-versions,#furo-readthedocs-versions:hover .injected,#furo-readthedocs-versions:hover .rst-current-version,#furo-readthedocs-versions:hover .rst-other-versions{display:block}#furo-readthedocs-versions:focus-within>.rst-current-version,#furo-readthedocs-versions:hover>.rst-current-version{display:none}.highlight:hover button.copybtn{color:var(--color-code-foreground)}.highlight button.copybtn{align-items:center;background-color:var(--color-code-background);border:none;color:var(--color-background-item);cursor:pointer;height:1.25em;opacity:1;right:.5rem;top:.625rem;transition:color .3s,opacity .3s;width:1.25em}.highlight button.copybtn:hover{background-color:var(--color-code-background);color:var(--color-brand-content)}.highlight button.copybtn:after{background-color:transparent;color:var(--color-code-foreground);display:none}.highlight button.copybtn.success{color:#22863a;transition:color 0ms}.highlight button.copybtn.success:after{display:block}.highlight button.copybtn svg{padding:0}body{--sd-color-primary:var(--color-brand-primary);--sd-color-primary-highlight:var(--color-brand-content);--sd-color-primary-text:var(--color-background-primary);--sd-color-shadow:rgba(0,0,0,.05);--sd-color-card-border:var(--color-card-border);--sd-color-card-border-hover:var(--color-brand-content);--sd-color-card-background:var(--color-card-background);--sd-color-card-text:var(--color-foreground-primary);--sd-color-card-header:var(--color-card-marginals-background);--sd-color-card-footer:var(--color-card-marginals-background);--sd-color-tabs-label-active:var(--color-brand-content);--sd-color-tabs-label-hover:var(--color-foreground-muted);--sd-color-tabs-label-inactive:var(--color-foreground-muted);--sd-color-tabs-underline-active:var(--color-brand-content);--sd-color-tabs-underline-hover:var(--color-foreground-border);--sd-color-tabs-underline-inactive:var(--color-background-border);--sd-color-tabs-overline:var(--color-background-border);--sd-color-tabs-underline:var(--color-background-border)}.sd-tab-content{box-shadow:0 -2px var(--sd-color-tabs-overline),0 1px var(--sd-color-tabs-underline)}.sd-card{box-shadow:0 .1rem .25rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)}.sd-shadow-sm{box-shadow:0 .1rem .25rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-shadow-md{box-shadow:0 .3rem .75rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-shadow-lg{box-shadow:0 .6rem 1.5rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-card-hover:hover{transform:none}.sd-cards-carousel{gap:.25rem;padding:.25rem}body{--tabs--label-text:var(--color-foreground-muted);--tabs--label-text--hover:var(--color-foreground-muted);--tabs--label-text--active:var(--color-brand-content);--tabs--label-text--active--hover:var(--color-brand-content);--tabs--label-background:transparent;--tabs--label-background--hover:transparent;--tabs--label-background--active:transparent;--tabs--label-background--active--hover:transparent;--tabs--padding-x:0.25em;--tabs--margin-x:1em;--tabs--border:var(--color-background-border);--tabs--label-border:transparent;--tabs--label-border--hover:var(--color-foreground-muted);--tabs--label-border--active:var(--color-brand-content);--tabs--label-border--active--hover:var(--color-brand-content)}[role=main] .container{max-width:none;padding-left:0;padding-right:0}.shadow.docutils{border:none;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)!important}.sphinx-bs .card{background-color:var(--color-background-secondary);color:var(--color-foreground)} +#furo-sidebar-ad-placement{padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)}#furo-sidebar-ad-placement .ethical-sidebar{background:var(--color-background-secondary);border:none;box-shadow:none}#furo-sidebar-ad-placement .ethical-sidebar:hover{background:var(--color-background-hover)}#furo-sidebar-ad-placement .ethical-sidebar a{color:var(--color-foreground-primary)}#furo-sidebar-ad-placement .ethical-callout a{color:var(--color-foreground-secondary)!important}#furo-readthedocs-versions{background:transparent;display:block;position:static;width:100%}#furo-readthedocs-versions .rst-versions{background:#1a1c1e}#furo-readthedocs-versions .rst-current-version{background:var(--color-sidebar-item-background);cursor:unset}#furo-readthedocs-versions .rst-current-version:hover{background:var(--color-sidebar-item-background)}#furo-readthedocs-versions .rst-current-version .fa-book{color:var(--color-foreground-primary)}#furo-readthedocs-versions>.rst-other-versions{padding:0}#furo-readthedocs-versions>.rst-other-versions small{opacity:1}#furo-readthedocs-versions .injected .rst-versions{position:unset}#furo-readthedocs-versions:focus-within,#furo-readthedocs-versions:hover{box-shadow:0 0 0 1px var(--color-sidebar-background-border)}#furo-readthedocs-versions:focus-within .rst-current-version,#furo-readthedocs-versions:hover .rst-current-version{background:#1a1c1e;font-size:inherit;height:auto;line-height:inherit;padding:12px;text-align:right}#furo-readthedocs-versions:focus-within .rst-current-version .fa-book,#furo-readthedocs-versions:hover .rst-current-version .fa-book{color:#fff;float:left}#furo-readthedocs-versions:focus-within .fa-caret-down,#furo-readthedocs-versions:hover .fa-caret-down{display:none}#furo-readthedocs-versions:focus-within .injected,#furo-readthedocs-versions:focus-within .rst-current-version,#furo-readthedocs-versions:focus-within .rst-other-versions,#furo-readthedocs-versions:hover .injected,#furo-readthedocs-versions:hover .rst-current-version,#furo-readthedocs-versions:hover .rst-other-versions{display:block}#furo-readthedocs-versions:focus-within>.rst-current-version,#furo-readthedocs-versions:hover>.rst-current-version{display:none}.highlight:hover button.copybtn{color:var(--color-code-foreground)}.highlight button.copybtn{align-items:center;background-color:var(--color-code-background);border:none;color:var(--color-background-item);cursor:pointer;height:1.25em;right:.5rem;top:.625rem;transition:color .3s,opacity .3s;width:1.25em}.highlight button.copybtn:hover{background-color:var(--color-code-background);color:var(--color-brand-content)}.highlight button.copybtn:after{background-color:transparent;color:var(--color-code-foreground);display:none}.highlight button.copybtn.success{color:#22863a;transition:color 0ms}.highlight button.copybtn.success:after{display:block}.highlight button.copybtn svg{padding:0}body{--sd-color-primary:var(--color-brand-primary);--sd-color-primary-highlight:var(--color-brand-content);--sd-color-primary-text:var(--color-background-primary);--sd-color-shadow:rgba(0,0,0,.05);--sd-color-card-border:var(--color-card-border);--sd-color-card-border-hover:var(--color-brand-content);--sd-color-card-background:var(--color-card-background);--sd-color-card-text:var(--color-foreground-primary);--sd-color-card-header:var(--color-card-marginals-background);--sd-color-card-footer:var(--color-card-marginals-background);--sd-color-tabs-label-active:var(--color-brand-content);--sd-color-tabs-label-hover:var(--color-foreground-muted);--sd-color-tabs-label-inactive:var(--color-foreground-muted);--sd-color-tabs-underline-active:var(--color-brand-content);--sd-color-tabs-underline-hover:var(--color-foreground-border);--sd-color-tabs-underline-inactive:var(--color-background-border);--sd-color-tabs-overline:var(--color-background-border);--sd-color-tabs-underline:var(--color-background-border)}.sd-tab-content{box-shadow:0 -2px var(--sd-color-tabs-overline),0 1px var(--sd-color-tabs-underline)}.sd-card{box-shadow:0 .1rem .25rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)}.sd-shadow-sm{box-shadow:0 .1rem .25rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-shadow-md{box-shadow:0 .3rem .75rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-shadow-lg{box-shadow:0 .6rem 1.5rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-card-hover:hover{transform:none}.sd-cards-carousel{gap:.25rem;padding:.25rem}body{--tabs--label-text:var(--color-foreground-muted);--tabs--label-text--hover:var(--color-foreground-muted);--tabs--label-text--active:var(--color-brand-content);--tabs--label-text--active--hover:var(--color-brand-content);--tabs--label-background:transparent;--tabs--label-background--hover:transparent;--tabs--label-background--active:transparent;--tabs--label-background--active--hover:transparent;--tabs--padding-x:0.25em;--tabs--margin-x:1em;--tabs--border:var(--color-background-border);--tabs--label-border:transparent;--tabs--label-border--hover:var(--color-foreground-muted);--tabs--label-border--active:var(--color-brand-content);--tabs--label-border--active--hover:var(--color-brand-content)}[role=main] .container{max-width:none;padding-left:0;padding-right:0}.shadow.docutils{border:none;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)!important}.sphinx-bs .card{background-color:var(--color-background-secondary);color:var(--color-foreground)} /*# sourceMappingURL=furo-extensions.css.map*/ \ No newline at end of file diff --git a/docs/en/_static/styles/furo-extensions.css.map b/docs/en/_static/styles/furo-extensions.css.map index 9ba5637f9..c26eac7f5 100644 --- a/docs/en/_static/styles/furo-extensions.css.map +++ b/docs/en/_static/styles/furo-extensions.css.map @@ -1 +1 @@ -{"version":3,"file":"styles/furo-extensions.css","mappings":"AAGA,2BACE,oFACA,4CAKE,6CAHA,YACA,eAEA,CACA,kDACE,yCAEF,8CACE,sCAEJ,8CACE,kDAEJ,2BAGE,uBACA,cAHA,gBACA,UAEA,CAGA,yCACE,mBAEF,gDAEE,gDADA,YACA,CACA,sDACE,gDACF,yDACE,sCAEJ,+CACE,UACA,qDACE,UAGF,mDACE,eAEJ,yEAEE,4DAEA,mHASE,mBAPA,kBAEA,YADA,oBAGA,aADA,gBAIA,CAEA,qIAEE,WADA,UACA,CAEJ,uGACE,aAEF,iUAGE,cAEF,mHACE,aC1EJ,gCACE,mCAEF,0BAKE,mBAUA,8CACA,YAFA,mCAKA,eAZA,cALA,UASA,YADA,YAYA,iCAdA,YAcA,CAEA,gCAEE,8CADA,gCACA,CAEF,gCAGE,6BADA,mCADA,YAEA,CAEF,kCAEE,cADA,oBACA,CACA,wCACE,cAEJ,8BACE,UC5CN,KAEE,6CAA8C,CAC9C,uDAAwD,CACxD,uDAAwD,CAGxD,iCAAsC,CAGtC,+CAAgD,CAChD,uDAAwD,CACxD,uDAAwD,CACxD,oDAAqD,CACrD,6DAA8D,CAC9D,6DAA8D,CAG9D,uDAAwD,CACxD,yDAA0D,CAC1D,4DAA6D,CAC7D,2DAA4D,CAC5D,8DAA+D,CAC/D,iEAAkE,CAClE,uDAAwD,CACxD,wDAAyD,CAG3D,gBACE,qFAGF,SACE,6EAEF,cACE,uFAEF,cACE,uFAEF,cACE,uFAGF,qBACE,eAEF,mBACE,WACA,eChDF,KACE,gDAAiD,CACjD,uDAAwD,CACxD,qDAAsD,CACtD,4DAA6D,CAC7D,oCAAqC,CACrC,2CAA4C,CAC5C,4CAA6C,CAC7C,mDAAoD,CACpD,wBAAyB,CACzB,oBAAqB,CACrB,6CAA8C,CAC9C,gCAAiC,CACjC,yDAA0D,CAC1D,uDAAwD,CACxD,8DAA+D,CCbjE,uBACE,eACA,eACA,gBAGF,iBACE,YACA,+EAGF,iBACE,mDACA","sources":["webpack:///./src/furo/assets/styles/extensions/_readthedocs.sass","webpack:///./src/furo/assets/styles/extensions/_copybutton.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-design.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-inline-tabs.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-panels.sass"],"sourcesContent":["// This file contains the styles used for tweaking how ReadTheDoc's embedded\n// contents would show up inside the theme.\n\n#furo-sidebar-ad-placement\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n .ethical-sidebar\n // Remove the border and box-shadow.\n border: none\n box-shadow: none\n // Manage the background colors.\n background: var(--color-background-secondary)\n &:hover\n background: var(--color-background-hover)\n // Ensure the text is legible.\n a\n color: var(--color-foreground-primary)\n\n .ethical-callout a\n color: var(--color-foreground-secondary) !important\n\n#furo-readthedocs-versions\n position: static\n width: 100%\n background: transparent\n display: block\n\n // Make the background color fit with the theme's aesthetic.\n .rst-versions\n background: rgb(26, 28, 30)\n\n .rst-current-version\n cursor: unset\n background: var(--color-sidebar-item-background)\n &:hover\n background: var(--color-sidebar-item-background)\n .fa-book\n color: var(--color-foreground-primary)\n\n > .rst-other-versions\n padding: 0\n small\n opacity: 1\n\n .injected\n .rst-versions\n position: unset\n\n &:hover,\n &:focus-within\n box-shadow: 0 0 0 1px var(--color-sidebar-background-border)\n\n .rst-current-version\n // Undo the tweaks done in RTD's CSS\n font-size: inherit\n line-height: inherit\n height: auto\n text-align: right\n padding: 12px\n\n // Match the rest of the body\n background: #1a1c1e\n\n .fa-book\n float: left\n color: white\n\n .fa-caret-down\n display: none\n\n .rst-current-version,\n .rst-other-versions,\n .injected\n display: block\n\n > .rst-current-version\n display: none\n",".highlight\n &:hover button.copybtn\n color: var(--color-code-foreground)\n\n button.copybtn\n // Make it visible\n opacity: 1\n\n // Align things correctly\n align-items: center\n\n height: 1.25em\n width: 1.25em\n\n top: 0.625rem // $code-spacing-vertical\n right: 0.5rem\n\n // Make it look better\n color: var(--color-background-item)\n background-color: var(--color-code-background)\n border: none\n\n // Change to cursor to make it obvious that you can click on it\n cursor: pointer\n\n // Transition smoothly, for aesthetics\n transition: color 300ms, opacity 300ms\n\n &:hover\n color: var(--color-brand-content)\n background-color: var(--color-code-background)\n\n &::after\n display: none\n color: var(--color-code-foreground)\n background-color: transparent\n\n &.success\n transition: color 0ms\n color: #22863a\n &::after\n display: block\n\n svg\n padding: 0\n","body\n // Colors\n --sd-color-primary: var(--color-brand-primary)\n --sd-color-primary-highlight: var(--color-brand-content)\n --sd-color-primary-text: var(--color-background-primary)\n\n // Shadows\n --sd-color-shadow: rgba(0, 0, 0, 0.05)\n\n // Cards\n --sd-color-card-border: var(--color-card-border)\n --sd-color-card-border-hover: var(--color-brand-content)\n --sd-color-card-background: var(--color-card-background)\n --sd-color-card-text: var(--color-foreground-primary)\n --sd-color-card-header: var(--color-card-marginals-background)\n --sd-color-card-footer: var(--color-card-marginals-background)\n\n // Tabs\n --sd-color-tabs-label-active: var(--color-brand-content)\n --sd-color-tabs-label-hover: var(--color-foreground-muted)\n --sd-color-tabs-label-inactive: var(--color-foreground-muted)\n --sd-color-tabs-underline-active: var(--color-brand-content)\n --sd-color-tabs-underline-hover: var(--color-foreground-border)\n --sd-color-tabs-underline-inactive: var(--color-background-border)\n --sd-color-tabs-overline: var(--color-background-border)\n --sd-color-tabs-underline: var(--color-background-border)\n\n// Tabs\n.sd-tab-content\n box-shadow: 0 -2px var(--sd-color-tabs-overline), 0 1px var(--sd-color-tabs-underline)\n\n// Shadows\n.sd-card // Have a shadow by default\n box-shadow: 0 0.1rem 0.25rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n.sd-shadow-sm\n box-shadow: 0 0.1rem 0.25rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n.sd-shadow-md\n box-shadow: 0 0.3rem 0.75rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n.sd-shadow-lg\n box-shadow: 0 0.6rem 1.5rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n// Cards\n.sd-card-hover:hover // Don't change scale on hover\n transform: none\n\n.sd-cards-carousel // Have a bit of gap in the carousel by default\n gap: 0.25rem\n padding: 0.25rem\n","// This file contains styles to tweak sphinx-inline-tabs to work well with Furo.\n\nbody\n --tabs--label-text: var(--color-foreground-muted)\n --tabs--label-text--hover: var(--color-foreground-muted)\n --tabs--label-text--active: var(--color-brand-content)\n --tabs--label-text--active--hover: var(--color-brand-content)\n --tabs--label-background: transparent\n --tabs--label-background--hover: transparent\n --tabs--label-background--active: transparent\n --tabs--label-background--active--hover: transparent\n --tabs--padding-x: 0.25em\n --tabs--margin-x: 1em\n --tabs--border: var(--color-background-border)\n --tabs--label-border: transparent\n --tabs--label-border--hover: var(--color-foreground-muted)\n --tabs--label-border--active: var(--color-brand-content)\n --tabs--label-border--active--hover: var(--color-brand-content)\n","// This file contains styles to tweak sphinx-panels to work well with Furo.\n\n// sphinx-panels includes Bootstrap 4, which uses .container which can conflict\n// with docutils' `.. container::` directive.\n[role=\"main\"] .container\n max-width: initial\n padding-left: initial\n padding-right: initial\n\n// Make the panels look nicer!\n.shadow.docutils\n border: none\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n// Make panel colors respond to dark mode\n.sphinx-bs .card\n background-color: var(--color-background-secondary)\n color: var(--color-foreground)\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"styles/furo-extensions.css","mappings":"AAGA,2BACE,oFACA,4CAKE,6CAHA,YACA,eAEA,CACA,kDACE,yCAEF,8CACE,sCAEJ,8CACE,kDAEJ,2BAGE,uBACA,cAHA,gBACA,UAEA,CAGA,yCACE,mBAEF,gDAEE,gDADA,YACA,CACA,sDACE,gDACF,yDACE,sCAEJ,+CACE,UACA,qDACE,UAGF,mDACE,eAEJ,yEAEE,4DAEA,mHASE,mBAPA,kBAEA,YADA,oBAGA,aADA,gBAIA,CAEA,qIAEE,WADA,UACA,CAEJ,uGACE,aAEF,iUAGE,cAEF,mHACE,aC1EJ,gCACE,mCAEF,0BAEE,mBAUA,8CACA,YAFA,mCAKA,eAZA,cAIA,YADA,YAYA,iCAdA,YAcA,CAEA,gCAEE,8CADA,gCACA,CAEF,gCAGE,6BADA,mCADA,YAEA,CAEF,kCAEE,cADA,oBACA,CACA,wCACE,cAEJ,8BACE,UCzCN,KAEE,6CAA8C,CAC9C,uDAAwD,CACxD,uDAAwD,CAGxD,iCAAsC,CAGtC,+CAAgD,CAChD,uDAAwD,CACxD,uDAAwD,CACxD,oDAAqD,CACrD,6DAA8D,CAC9D,6DAA8D,CAG9D,uDAAwD,CACxD,yDAA0D,CAC1D,4DAA6D,CAC7D,2DAA4D,CAC5D,8DAA+D,CAC/D,iEAAkE,CAClE,uDAAwD,CACxD,wDAAyD,CAG3D,gBACE,qFAGF,SACE,6EAEF,cACE,uFAEF,cACE,uFAEF,cACE,uFAGF,qBACE,eAEF,mBACE,WACA,eChDF,KACE,gDAAiD,CACjD,uDAAwD,CACxD,qDAAsD,CACtD,4DAA6D,CAC7D,oCAAqC,CACrC,2CAA4C,CAC5C,4CAA6C,CAC7C,mDAAoD,CACpD,wBAAyB,CACzB,oBAAqB,CACrB,6CAA8C,CAC9C,gCAAiC,CACjC,yDAA0D,CAC1D,uDAAwD,CACxD,8DAA+D,CCbjE,uBACE,eACA,eACA,gBAGF,iBACE,YACA,+EAGF,iBACE,mDACA","sources":["webpack:///./src/furo/assets/styles/extensions/_readthedocs.sass","webpack:///./src/furo/assets/styles/extensions/_copybutton.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-design.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-inline-tabs.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-panels.sass"],"sourcesContent":["// This file contains the styles used for tweaking how ReadTheDoc's embedded\n// contents would show up inside the theme.\n\n#furo-sidebar-ad-placement\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n .ethical-sidebar\n // Remove the border and box-shadow.\n border: none\n box-shadow: none\n // Manage the background colors.\n background: var(--color-background-secondary)\n &:hover\n background: var(--color-background-hover)\n // Ensure the text is legible.\n a\n color: var(--color-foreground-primary)\n\n .ethical-callout a\n color: var(--color-foreground-secondary) !important\n\n#furo-readthedocs-versions\n position: static\n width: 100%\n background: transparent\n display: block\n\n // Make the background color fit with the theme's aesthetic.\n .rst-versions\n background: rgb(26, 28, 30)\n\n .rst-current-version\n cursor: unset\n background: var(--color-sidebar-item-background)\n &:hover\n background: var(--color-sidebar-item-background)\n .fa-book\n color: var(--color-foreground-primary)\n\n > .rst-other-versions\n padding: 0\n small\n opacity: 1\n\n .injected\n .rst-versions\n position: unset\n\n &:hover,\n &:focus-within\n box-shadow: 0 0 0 1px var(--color-sidebar-background-border)\n\n .rst-current-version\n // Undo the tweaks done in RTD's CSS\n font-size: inherit\n line-height: inherit\n height: auto\n text-align: right\n padding: 12px\n\n // Match the rest of the body\n background: #1a1c1e\n\n .fa-book\n float: left\n color: white\n\n .fa-caret-down\n display: none\n\n .rst-current-version,\n .rst-other-versions,\n .injected\n display: block\n\n > .rst-current-version\n display: none\n",".highlight\n &:hover button.copybtn\n color: var(--color-code-foreground)\n\n button.copybtn\n // Align things correctly\n align-items: center\n\n height: 1.25em\n width: 1.25em\n\n top: 0.625rem // $code-spacing-vertical\n right: 0.5rem\n\n // Make it look better\n color: var(--color-background-item)\n background-color: var(--color-code-background)\n border: none\n\n // Change to cursor to make it obvious that you can click on it\n cursor: pointer\n\n // Transition smoothly, for aesthetics\n transition: color 300ms, opacity 300ms\n\n &:hover\n color: var(--color-brand-content)\n background-color: var(--color-code-background)\n\n &::after\n display: none\n color: var(--color-code-foreground)\n background-color: transparent\n\n &.success\n transition: color 0ms\n color: #22863a\n &::after\n display: block\n\n svg\n padding: 0\n","body\n // Colors\n --sd-color-primary: var(--color-brand-primary)\n --sd-color-primary-highlight: var(--color-brand-content)\n --sd-color-primary-text: var(--color-background-primary)\n\n // Shadows\n --sd-color-shadow: rgba(0, 0, 0, 0.05)\n\n // Cards\n --sd-color-card-border: var(--color-card-border)\n --sd-color-card-border-hover: var(--color-brand-content)\n --sd-color-card-background: var(--color-card-background)\n --sd-color-card-text: var(--color-foreground-primary)\n --sd-color-card-header: var(--color-card-marginals-background)\n --sd-color-card-footer: var(--color-card-marginals-background)\n\n // Tabs\n --sd-color-tabs-label-active: var(--color-brand-content)\n --sd-color-tabs-label-hover: var(--color-foreground-muted)\n --sd-color-tabs-label-inactive: var(--color-foreground-muted)\n --sd-color-tabs-underline-active: var(--color-brand-content)\n --sd-color-tabs-underline-hover: var(--color-foreground-border)\n --sd-color-tabs-underline-inactive: var(--color-background-border)\n --sd-color-tabs-overline: var(--color-background-border)\n --sd-color-tabs-underline: var(--color-background-border)\n\n// Tabs\n.sd-tab-content\n box-shadow: 0 -2px var(--sd-color-tabs-overline), 0 1px var(--sd-color-tabs-underline)\n\n// Shadows\n.sd-card // Have a shadow by default\n box-shadow: 0 0.1rem 0.25rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n.sd-shadow-sm\n box-shadow: 0 0.1rem 0.25rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n.sd-shadow-md\n box-shadow: 0 0.3rem 0.75rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n.sd-shadow-lg\n box-shadow: 0 0.6rem 1.5rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n// Cards\n.sd-card-hover:hover // Don't change scale on hover\n transform: none\n\n.sd-cards-carousel // Have a bit of gap in the carousel by default\n gap: 0.25rem\n padding: 0.25rem\n","// This file contains styles to tweak sphinx-inline-tabs to work well with Furo.\n\nbody\n --tabs--label-text: var(--color-foreground-muted)\n --tabs--label-text--hover: var(--color-foreground-muted)\n --tabs--label-text--active: var(--color-brand-content)\n --tabs--label-text--active--hover: var(--color-brand-content)\n --tabs--label-background: transparent\n --tabs--label-background--hover: transparent\n --tabs--label-background--active: transparent\n --tabs--label-background--active--hover: transparent\n --tabs--padding-x: 0.25em\n --tabs--margin-x: 1em\n --tabs--border: var(--color-background-border)\n --tabs--label-border: transparent\n --tabs--label-border--hover: var(--color-foreground-muted)\n --tabs--label-border--active: var(--color-brand-content)\n --tabs--label-border--active--hover: var(--color-brand-content)\n","// This file contains styles to tweak sphinx-panels to work well with Furo.\n\n// sphinx-panels includes Bootstrap 4, which uses .container which can conflict\n// with docutils' `.. container::` directive.\n[role=\"main\"] .container\n max-width: initial\n padding-left: initial\n padding-right: initial\n\n// Make the panels look nicer!\n.shadow.docutils\n border: none\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n// Make panel colors respond to dark mode\n.sphinx-bs .card\n background-color: var(--color-background-secondary)\n color: var(--color-foreground)\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/docs/en/_static/styles/furo.css b/docs/en/_static/styles/furo.css index e3d4e57b8..21836d6ab 100644 --- a/docs/en/_static/styles/furo.css +++ b/docs/en/_static/styles/furo.css @@ -1,2 +1,2 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}@media print{.content-icon-container,.headerlink,.mobile-header,.related-pages{display:none!important}.highlight{border:.1pt solid var(--color-foreground-border)}a,blockquote,dl,ol,pre,table,ul{page-break-inside:avoid}caption,figure,h1,h2,h3,h4,h5,h6,img{page-break-after:avoid;page-break-inside:avoid}dl,ol,ul{page-break-before:avoid}}.visually-hidden{height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;clip:rect(0,0,0,0)!important;background:var(--color-background-primary);border:0!important;color:var(--color-foreground-primary);white-space:nowrap!important}:-moz-focusring{outline:auto}body{--font-stack:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;--font-stack--monospace:"SFMono-Regular",Menlo,Consolas,Monaco,Liberation Mono,Lucida Console,monospace;--font-stack--headings:var(--font-stack);--font-size--normal:100%;--font-size--small:87.5%;--font-size--small--2:81.25%;--font-size--small--3:75%;--font-size--small--4:62.5%;--sidebar-caption-font-size:var(--font-size--small--2);--sidebar-item-font-size:var(--font-size--small);--sidebar-search-input-font-size:var(--font-size--small);--toc-font-size:var(--font-size--small--3);--toc-font-size--mobile:var(--font-size--normal);--toc-title-font-size:var(--font-size--small--4);--admonition-font-size:0.8125rem;--admonition-title-font-size:0.8125rem;--code-font-size:var(--font-size--small--2);--api-font-size:var(--font-size--small);--header-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*4);--header-padding:0.5rem;--sidebar-tree-space-above:1.5rem;--sidebar-caption-space-above:1rem;--sidebar-item-line-height:1rem;--sidebar-item-spacing-vertical:0.5rem;--sidebar-item-spacing-horizontal:1rem;--sidebar-item-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*2);--sidebar-expander-width:var(--sidebar-item-height);--sidebar-search-space-above:0.5rem;--sidebar-search-input-spacing-vertical:0.5rem;--sidebar-search-input-spacing-horizontal:0.5rem;--sidebar-search-input-height:1rem;--sidebar-search-icon-size:var(--sidebar-search-input-height);--toc-title-padding:0.25rem 0;--toc-spacing-vertical:1.5rem;--toc-spacing-horizontal:1.5rem;--toc-item-spacing-vertical:0.4rem;--toc-item-spacing-horizontal:1rem;--icon-search:url('data:image/svg+xml;charset=utf-8,');--icon-pencil:url('data:image/svg+xml;charset=utf-8,');--icon-abstract:url('data:image/svg+xml;charset=utf-8,');--icon-info:url('data:image/svg+xml;charset=utf-8,');--icon-flame:url('data:image/svg+xml;charset=utf-8,');--icon-question:url('data:image/svg+xml;charset=utf-8,');--icon-warning:url('data:image/svg+xml;charset=utf-8,');--icon-failure:url('data:image/svg+xml;charset=utf-8,');--icon-spark:url('data:image/svg+xml;charset=utf-8,');--color-admonition-title--caution:#ff9100;--color-admonition-title-background--caution:rgba(255,145,0,.2);--color-admonition-title--warning:#ff9100;--color-admonition-title-background--warning:rgba(255,145,0,.2);--color-admonition-title--danger:#ff5252;--color-admonition-title-background--danger:rgba(255,82,82,.2);--color-admonition-title--attention:#ff5252;--color-admonition-title-background--attention:rgba(255,82,82,.2);--color-admonition-title--error:#ff5252;--color-admonition-title-background--error:rgba(255,82,82,.2);--color-admonition-title--hint:#00c852;--color-admonition-title-background--hint:rgba(0,200,82,.2);--color-admonition-title--tip:#00c852;--color-admonition-title-background--tip:rgba(0,200,82,.2);--color-admonition-title--important:#00bfa5;--color-admonition-title-background--important:rgba(0,191,165,.2);--color-admonition-title--note:#00b0ff;--color-admonition-title-background--note:rgba(0,176,255,.2);--color-admonition-title--seealso:#448aff;--color-admonition-title-background--seealso:rgba(68,138,255,.2);--color-admonition-title--admonition-todo:grey;--color-admonition-title-background--admonition-todo:hsla(0,0%,50%,.2);--color-admonition-title:#651fff;--color-admonition-title-background:rgba(101,31,255,.2);--icon-admonition-default:var(--icon-abstract);--color-topic-title:#14b8a6;--color-topic-title-background:rgba(20,184,166,.2);--icon-topic-default:var(--icon-pencil);--color-problematic:#b30000;--color-foreground-primary:#000;--color-foreground-secondary:#5a5c63;--color-foreground-muted:#6b6f76;--color-foreground-border:#878787;--color-background-primary:#fff;--color-background-secondary:#f8f9fb;--color-background-hover:#efeff4;--color-background-hover--transparent:#efeff400;--color-background-border:#eeebee;--color-background-item:#ccc;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#0a4bff;--color-brand-content:#2757dd;--color-brand-visited:#872ee0;--color-api-background:var(--color-background-hover--transparent);--color-api-background-hover:var(--color-background-hover);--color-api-overall:var(--color-foreground-secondary);--color-api-name:var(--color-problematic);--color-api-pre-name:var(--color-problematic);--color-api-paren:var(--color-foreground-secondary);--color-api-keyword:var(--color-foreground-primary);--color-api-added:#21632c;--color-api-added-border:#38a84d;--color-api-changed:#046172;--color-api-changed-border:#06a1bc;--color-api-deprecated:#605706;--color-api-deprecated-border:#f0d90f;--color-api-removed:#b30000;--color-api-removed-border:#ff5c5c;--color-highlight-on-target:#ffc;--color-inline-code-background:var(--color-background-secondary);--color-highlighted-background:#def;--color-highlighted-text:var(--color-foreground-primary);--color-guilabel-background:#ddeeff80;--color-guilabel-border:#bedaf580;--color-guilabel-text:var(--color-foreground-primary);--color-admonition-background:transparent;--color-table-header-background:var(--color-background-secondary);--color-table-border:var(--color-background-border);--color-card-border:var(--color-background-secondary);--color-card-background:transparent;--color-card-marginals-background:var(--color-background-secondary);--color-header-background:var(--color-background-primary);--color-header-border:var(--color-background-border);--color-header-text:var(--color-foreground-primary);--color-sidebar-background:var(--color-background-secondary);--color-sidebar-background-border:var(--color-background-border);--color-sidebar-brand-text:var(--color-foreground-primary);--color-sidebar-caption-text:var(--color-foreground-muted);--color-sidebar-link-text:var(--color-foreground-secondary);--color-sidebar-link-text--top-level:var(--color-brand-primary);--color-sidebar-item-background:var(--color-sidebar-background);--color-sidebar-item-background--current:var( --color-sidebar-item-background );--color-sidebar-item-background--hover:linear-gradient(90deg,var(--color-background-hover--transparent) 0%,var(--color-background-hover) var(--sidebar-item-spacing-horizontal),var(--color-background-hover) 100%);--color-sidebar-item-expander-background:transparent;--color-sidebar-item-expander-background--hover:var( --color-background-hover );--color-sidebar-search-text:var(--color-foreground-primary);--color-sidebar-search-background:var(--color-background-secondary);--color-sidebar-search-background--focus:var(--color-background-primary);--color-sidebar-search-border:var(--color-background-border);--color-sidebar-search-icon:var(--color-foreground-muted);--color-toc-background:var(--color-background-primary);--color-toc-title-text:var(--color-foreground-muted);--color-toc-item-text:var(--color-foreground-secondary);--color-toc-item-text--hover:var(--color-foreground-primary);--color-toc-item-text--active:var(--color-brand-primary);--color-content-foreground:var(--color-foreground-primary);--color-content-background:transparent;--color-link:var(--color-brand-content);--color-link-underline:var(--color-background-border);--color-link--hover:var(--color-brand-content);--color-link-underline--hover:var(--color-foreground-border);--color-link--visited:var(--color-brand-visited);--color-link-underline--visited:var(--color-background-border);--color-link--visited--hover:var(--color-brand-visited);--color-link-underline--visited--hover:var(--color-foreground-border)}.only-light{display:block!important}html body .only-dark{display:none!important}@media not print{body[data-theme=dark]{--color-problematic:#ee5151;--color-foreground-primary:#cfd0d0;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#3d94ff;--color-brand-content:#5ca5ff;--color-brand-visited:#b27aeb;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-api-added:#3db854;--color-api-added-border:#267334;--color-api-changed:#09b0ce;--color-api-changed-border:#056d80;--color-api-deprecated:#b1a10b;--color-api-deprecated-border:#6e6407;--color-api-removed:#ff7575;--color-api-removed-border:#b03b3b;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body[data-theme=dark] .only-light{display:none!important}body[data-theme=dark] .only-dark{display:block!important}@media(prefers-color-scheme:dark){body:not([data-theme=light]){--color-problematic:#ee5151;--color-foreground-primary:#cfd0d0;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#3d94ff;--color-brand-content:#5ca5ff;--color-brand-visited:#b27aeb;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-api-added:#3db854;--color-api-added-border:#267334;--color-api-changed:#09b0ce;--color-api-changed-border:#056d80;--color-api-deprecated:#b1a10b;--color-api-deprecated-border:#6e6407;--color-api-removed:#ff7575;--color-api-removed-border:#b03b3b;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body:not([data-theme=light]) .only-light{display:none!important}body:not([data-theme=light]) .only-dark{display:block!important}}}body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto-light{display:block}@media(prefers-color-scheme:dark){body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto-dark{display:block}body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto-light{display:none}}body[data-theme=dark] .theme-toggle svg.theme-icon-when-dark,body[data-theme=light] .theme-toggle svg.theme-icon-when-light{display:block}body{font-family:var(--font-stack)}code,kbd,pre,samp{font-family:var(--font-stack--monospace)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}article{line-height:1.5}h1,h2,h3,h4,h5,h6{border-radius:.5rem;font-family:var(--font-stack--headings);font-weight:700;line-height:1.25;margin:.5rem -.5rem;padding-left:.5rem;padding-right:.5rem}h1+p,h2+p,h3+p,h4+p,h5+p,h6+p{margin-top:0}h1{font-size:2.5em;margin-bottom:1rem}h1,h2{margin-top:1.75rem}h2{font-size:2em}h3{font-size:1.5em}h4{font-size:1.25em}h5{font-size:1.125em}h6{font-size:1em}small{font-size:80%;opacity:75%}p{margin-bottom:.75rem;margin-top:.5rem}hr.docutils{background-color:var(--color-background-border);border:0;height:1px;margin:2rem 0;padding:0}.centered{text-align:center}a{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link-underline)}a:visited{color:var(--color-link--visited);text-decoration-color:var(--color-link-underline--visited)}a:visited:hover{color:var(--color-link--visited--hover);text-decoration-color:var(--color-link-underline--visited--hover)}a:hover{color:var(--color-link--hover);text-decoration-color:var(--color-link-underline--hover)}a.muted-link{color:inherit}a.muted-link:hover{color:var(--color-link--hover);text-decoration-color:var(--color-link-underline--hover)}a.muted-link:hover:visited{color:var(--color-link--visited--hover);text-decoration-color:var(--color-link-underline--visited--hover)}html{overflow-x:hidden;overflow-y:scroll;scroll-behavior:smooth}.sidebar-scroll,.toc-scroll,article[role=main] *{scrollbar-color:var(--color-foreground-border) transparent;scrollbar-width:thin}.sidebar-scroll::-webkit-scrollbar,.toc-scroll::-webkit-scrollbar,article[role=main] ::-webkit-scrollbar{height:.25rem;width:.25rem}.sidebar-scroll::-webkit-scrollbar-thumb,.toc-scroll::-webkit-scrollbar-thumb,article[role=main] ::-webkit-scrollbar-thumb{background-color:var(--color-foreground-border);border-radius:.125rem}body,html{height:100%}.skip-to-content,body,html{background:var(--color-background-primary);color:var(--color-foreground-primary)}.skip-to-content{border-radius:1rem;left:.25rem;padding:1rem;position:fixed;top:.25rem;transform:translateY(-200%);transition:transform .3s ease-in-out;z-index:40}.skip-to-content:focus-within{transform:translateY(0)}article{background:var(--color-content-background);color:var(--color-content-foreground);overflow-wrap:break-word}.page{display:flex;min-height:100%}.mobile-header{background-color:var(--color-header-background);border-bottom:1px solid var(--color-header-border);color:var(--color-header-text);display:none;height:var(--header-height);width:100%;z-index:10}.mobile-header.scrolled{border-bottom:none;box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2)}.mobile-header .header-center a{color:var(--color-header-text);text-decoration:none}.main{display:flex;flex:1}.sidebar-drawer{background:var(--color-sidebar-background);border-right:1px solid var(--color-sidebar-background-border);box-sizing:border-box;display:flex;justify-content:flex-end;min-width:15em;width:calc(50% - 26em)}.sidebar-container,.toc-drawer{box-sizing:border-box;width:15em}.toc-drawer{background:var(--color-toc-background);padding-right:1rem}.sidebar-sticky,.toc-sticky{display:flex;flex-direction:column;height:min(100%,100vh);height:100vh;position:sticky;top:0}.sidebar-scroll,.toc-scroll{flex-grow:1;flex-shrink:1;overflow:auto;scroll-behavior:smooth}.content{display:flex;flex-direction:column;justify-content:space-between;padding:0 3em;width:46em}.icon{display:inline-block;height:1rem;width:1rem}.icon svg{height:100%;width:100%}.announcement{align-items:center;background-color:var(--color-announcement-background);color:var(--color-announcement-text);display:flex;height:var(--header-height);overflow-x:auto}.announcement+.page{min-height:calc(100% - var(--header-height))}.announcement-content{box-sizing:border-box;min-width:100%;padding:.5rem;text-align:center;white-space:nowrap}.announcement-content a{color:var(--color-announcement-text);text-decoration-color:var(--color-announcement-text)}.announcement-content a:hover{color:var(--color-announcement-text);text-decoration-color:var(--color-link--hover)}.no-js .theme-toggle-container{display:none}.theme-toggle-container{vertical-align:middle}.theme-toggle{background:transparent;border:none;cursor:pointer;padding:0}.theme-toggle svg{color:var(--color-foreground-primary);display:none;height:1.25rem;vertical-align:middle;width:1.25rem}.theme-toggle-header{float:left;padding:1rem .5rem}.nav-overlay-icon,.toc-overlay-icon{cursor:pointer;display:none}.nav-overlay-icon .icon,.toc-overlay-icon .icon{color:var(--color-foreground-secondary);height:1.25rem;width:1.25rem}.nav-overlay-icon,.toc-header-icon{align-items:center;justify-content:center}.toc-content-icon{height:1.5rem;width:1.5rem}.content-icon-container{display:flex;float:right;gap:.5rem;margin-bottom:1rem;margin-left:1rem;margin-top:1.5rem}.content-icon-container .edit-this-page svg,.content-icon-container .view-this-page svg{color:inherit;height:1.25rem;width:1.25rem}.sidebar-toggle{display:none;position:absolute}.sidebar-toggle[name=__toc]{left:20px}.sidebar-toggle:checked{left:40px}.overlay{background-color:rgba(0,0,0,.54);height:0;opacity:0;position:fixed;top:0;transition:width 0ms,height 0ms,opacity .25s ease-out;width:0}.sidebar-overlay{z-index:20}.toc-overlay{z-index:40}.sidebar-drawer{transition:left .25s ease-in-out;z-index:30}.toc-drawer{transition:right .25s ease-in-out;z-index:50}#__navigation:checked~.sidebar-overlay{height:100%;opacity:1;width:100%}#__navigation:checked~.page .sidebar-drawer{left:0;top:0}#__toc:checked~.toc-overlay{height:100%;opacity:1;width:100%}#__toc:checked~.page .toc-drawer{right:0;top:0}.back-to-top{background:var(--color-background-primary);border-radius:1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 1px 0 hsla(220,9%,46%,.502);display:none;font-size:.8125rem;left:0;margin-left:50%;padding:.5rem .75rem .5rem .5rem;position:fixed;text-decoration:none;top:1rem;transform:translateX(-50%);z-index:10}.back-to-top svg{height:1rem;width:1rem;fill:currentColor;display:inline-block}.back-to-top span{margin-left:.25rem}.show-back-to-top .back-to-top{align-items:center;display:flex}@media(min-width:97em){html{font-size:110%}}@media(max-width:82em){.toc-content-icon{display:flex}.toc-drawer{border-left:1px solid var(--color-background-muted);height:100vh;position:fixed;right:-15em;top:0}.toc-tree{border-left:none;font-size:var(--toc-font-size--mobile)}.sidebar-drawer{width:calc(50% - 18.5em)}}@media(max-width:67em){.nav-overlay-icon{display:flex}.sidebar-drawer{height:100vh;left:-15em;position:fixed;top:0;width:15em}.toc-header-icon{display:flex}.theme-toggle-content,.toc-content-icon{display:none}.theme-toggle-header{display:block}.mobile-header{align-items:center;display:flex;justify-content:space-between;position:sticky;top:0}.mobile-header .header-left,.mobile-header .header-right{display:flex;height:var(--header-height);padding:0 var(--header-padding)}.mobile-header .header-left label,.mobile-header .header-right label{height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.nav-overlay-icon .icon,.theme-toggle svg{height:1.25rem;width:1.25rem}:target{scroll-margin-top:calc(var(--header-height) + 2.5rem)}.back-to-top{top:calc(var(--header-height) + .5rem)}.page{flex-direction:column;justify-content:center}.content{margin-left:auto;margin-right:auto}}@media(max-width:52em){.content{overflow-x:auto;width:100%}}@media(max-width:46em){.content{padding:0 1em}article aside.sidebar{float:none;margin:1rem 0;width:100%}}.admonition,.topic{background:var(--color-admonition-background);border-radius:.2rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1);font-size:var(--admonition-font-size);margin:1rem auto;overflow:hidden;padding:0 .5rem .5rem;page-break-inside:avoid}.admonition>:nth-child(2),.topic>:nth-child(2){margin-top:0}.admonition>:last-child,.topic>:last-child{margin-bottom:0}.admonition p.admonition-title,p.topic-title{font-size:var(--admonition-title-font-size);font-weight:500;line-height:1.3;margin:0 -.5rem .5rem;padding:.4rem .5rem .4rem 2rem;position:relative}.admonition p.admonition-title:before,p.topic-title:before{content:"";height:1rem;left:.5rem;position:absolute;width:1rem}p.admonition-title{background-color:var(--color-admonition-title-background)}p.admonition-title:before{background-color:var(--color-admonition-title);-webkit-mask-image:var(--icon-admonition-default);mask-image:var(--icon-admonition-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}p.topic-title{background-color:var(--color-topic-title-background)}p.topic-title:before{background-color:var(--color-topic-title);-webkit-mask-image:var(--icon-topic-default);mask-image:var(--icon-topic-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.admonition{border-left:.2rem solid var(--color-admonition-title)}.admonition.caution{border-left-color:var(--color-admonition-title--caution)}.admonition.caution>.admonition-title{background-color:var(--color-admonition-title-background--caution)}.admonition.caution>.admonition-title:before{background-color:var(--color-admonition-title--caution);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.warning{border-left-color:var(--color-admonition-title--warning)}.admonition.warning>.admonition-title{background-color:var(--color-admonition-title-background--warning)}.admonition.warning>.admonition-title:before{background-color:var(--color-admonition-title--warning);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.danger{border-left-color:var(--color-admonition-title--danger)}.admonition.danger>.admonition-title{background-color:var(--color-admonition-title-background--danger)}.admonition.danger>.admonition-title:before{background-color:var(--color-admonition-title--danger);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.attention{border-left-color:var(--color-admonition-title--attention)}.admonition.attention>.admonition-title{background-color:var(--color-admonition-title-background--attention)}.admonition.attention>.admonition-title:before{background-color:var(--color-admonition-title--attention);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.error{border-left-color:var(--color-admonition-title--error)}.admonition.error>.admonition-title{background-color:var(--color-admonition-title-background--error)}.admonition.error>.admonition-title:before{background-color:var(--color-admonition-title--error);-webkit-mask-image:var(--icon-failure);mask-image:var(--icon-failure)}.admonition.hint{border-left-color:var(--color-admonition-title--hint)}.admonition.hint>.admonition-title{background-color:var(--color-admonition-title-background--hint)}.admonition.hint>.admonition-title:before{background-color:var(--color-admonition-title--hint);-webkit-mask-image:var(--icon-question);mask-image:var(--icon-question)}.admonition.tip{border-left-color:var(--color-admonition-title--tip)}.admonition.tip>.admonition-title{background-color:var(--color-admonition-title-background--tip)}.admonition.tip>.admonition-title:before{background-color:var(--color-admonition-title--tip);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.important{border-left-color:var(--color-admonition-title--important)}.admonition.important>.admonition-title{background-color:var(--color-admonition-title-background--important)}.admonition.important>.admonition-title:before{background-color:var(--color-admonition-title--important);-webkit-mask-image:var(--icon-flame);mask-image:var(--icon-flame)}.admonition.note{border-left-color:var(--color-admonition-title--note)}.admonition.note>.admonition-title{background-color:var(--color-admonition-title-background--note)}.admonition.note>.admonition-title:before{background-color:var(--color-admonition-title--note);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition.seealso{border-left-color:var(--color-admonition-title--seealso)}.admonition.seealso>.admonition-title{background-color:var(--color-admonition-title-background--seealso)}.admonition.seealso>.admonition-title:before{background-color:var(--color-admonition-title--seealso);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.admonition-todo{border-left-color:var(--color-admonition-title--admonition-todo)}.admonition.admonition-todo>.admonition-title{background-color:var(--color-admonition-title-background--admonition-todo)}.admonition.admonition-todo>.admonition-title:before{background-color:var(--color-admonition-title--admonition-todo);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition-todo>.admonition-title{text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd{margin-left:2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:first-child{margin-top:.125rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list,dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:last-child{margin-bottom:.75rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list>dt{font-size:var(--font-size--small);text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd:empty{margin-bottom:.5rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul{margin-left:-1.2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p:nth-child(2){margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p+p:last-child:empty{margin-bottom:0;margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt{color:var(--color-api-overall)}.sig:not(.sig-inline){background:var(--color-api-background);border-radius:.25rem;font-family:var(--font-stack--monospace);font-size:var(--api-font-size);font-weight:700;margin-left:-.25rem;margin-right:-.25rem;padding:.25rem .5rem .25rem 3em;text-indent:-2.5em;transition:background .1s ease-out}.sig:not(.sig-inline):hover{background:var(--color-api-background-hover)}.sig:not(.sig-inline) a.reference .viewcode-link{font-weight:400;width:4.25rem}em.property{font-style:normal}em.property:first-child{color:var(--color-api-keyword)}.sig-name{color:var(--color-api-name)}.sig-prename{color:var(--color-api-pre-name);font-weight:400}.sig-paren{color:var(--color-api-paren)}.sig-param{font-style:normal}div.deprecated,div.versionadded,div.versionchanged,div.versionremoved{border-left:.1875rem solid;border-radius:.125rem;padding-left:.75rem}div.deprecated p,div.versionadded p,div.versionchanged p,div.versionremoved p{margin-bottom:.125rem;margin-top:.125rem}div.versionadded{border-color:var(--color-api-added-border)}div.versionadded .versionmodified{color:var(--color-api-added)}div.versionchanged{border-color:var(--color-api-changed-border)}div.versionchanged .versionmodified{color:var(--color-api-changed)}div.deprecated{border-color:var(--color-api-deprecated-border)}div.deprecated .versionmodified{color:var(--color-api-deprecated)}div.versionremoved{border-color:var(--color-api-removed-border)}div.versionremoved .versionmodified{color:var(--color-api-removed)}.viewcode-back,.viewcode-link{float:right;text-align:right}.line-block{margin-bottom:.75rem;margin-top:.5rem}.line-block .line-block{margin-bottom:0;margin-top:0;padding-left:1rem}.code-block-caption,article p.caption,table>caption{font-size:var(--font-size--small);text-align:center}.toctree-wrapper.compound .caption,.toctree-wrapper.compound :not(.caption)>.caption-text{font-size:var(--font-size--small);margin-bottom:0;text-align:initial;text-transform:uppercase}.toctree-wrapper.compound>ul{margin-bottom:0;margin-top:0}.sig-inline,code.literal{background:var(--color-inline-code-background);border-radius:.2em;font-size:var(--font-size--small--2);padding:.1em .2em}pre.literal-block .sig-inline,pre.literal-block code.literal{font-size:inherit;padding:0}p .sig-inline,p code.literal{border:1px solid var(--color-background-border)}.sig-inline{font-family:var(--font-stack--monospace)}div[class*=" highlight-"],div[class^=highlight-]{display:flex;margin:1em 0}div[class*=" highlight-"] .table-wrapper,div[class^=highlight-] .table-wrapper,pre{margin:0;padding:0}pre{overflow:auto}article[role=main] .highlight pre{line-height:1.5}.highlight pre,pre.literal-block{font-size:var(--code-font-size);padding:.625rem .875rem}pre.literal-block{background-color:var(--color-code-background);border-radius:.2rem;color:var(--color-code-foreground);margin-bottom:1rem;margin-top:1rem}.highlight{border-radius:.2rem;width:100%}.highlight .gp,.highlight span.linenos{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.highlight .hll{display:block;margin-left:-.875rem;margin-right:-.875rem;padding-left:.875rem;padding-right:.875rem}.code-block-caption{background-color:var(--color-code-background);border-bottom:1px solid;border-radius:.25rem;border-bottom-left-radius:0;border-bottom-right-radius:0;border-color:var(--color-background-border);color:var(--color-code-foreground);display:flex;font-weight:300;padding:.625rem .875rem}.code-block-caption+div[class]{margin-top:0}.code-block-caption+div[class] pre{border-top-left-radius:0;border-top-right-radius:0}.highlighttable{display:block;width:100%}.highlighttable tbody{display:block}.highlighttable tr{display:flex}.highlighttable td.linenos{background-color:var(--color-code-background);border-bottom-left-radius:.2rem;border-top-left-radius:.2rem;color:var(--color-code-foreground);padding:.625rem 0 .625rem .875rem}.highlighttable .linenodiv{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;font-size:var(--code-font-size);padding-right:.875rem}.highlighttable td.code{display:block;flex:1;overflow:hidden;padding:0}.highlighttable td.code .highlight{border-bottom-left-radius:0;border-top-left-radius:0}.highlight span.linenos{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;display:inline-block;margin-right:.875rem;padding-left:0;padding-right:.875rem}.footnote-reference{font-size:var(--font-size--small--4);vertical-align:super}dl.footnote.brackets{color:var(--color-foreground-secondary);display:grid;font-size:var(--font-size--small);grid-template-columns:max-content auto}dl.footnote.brackets dt{margin:0}dl.footnote.brackets dt>.fn-backref{margin-left:.25rem}dl.footnote.brackets dt:after{content:":"}dl.footnote.brackets dt .brackets:before{content:"["}dl.footnote.brackets dt .brackets:after{content:"]"}dl.footnote.brackets dd{margin:0;padding:0 1rem}aside.footnote{color:var(--color-foreground-secondary);font-size:var(--font-size--small)}aside.footnote>span,div.citation>span{float:left;font-weight:500;padding-right:.25rem}aside.footnote>:not(span),div.citation>p{margin-left:2rem}img{box-sizing:border-box;height:auto;max-width:100%}article .figure,article figure{border-radius:.2rem;margin:0}article .figure :last-child,article figure :last-child{margin-bottom:0}article .align-left{clear:left;float:left;margin:0 1rem 1rem}article .align-right{clear:right;float:right;margin:0 1rem 1rem}article .align-center,article .align-default{display:block;margin-left:auto;margin-right:auto;text-align:center}article table.align-default{display:table;text-align:initial}.domainindex-jumpbox,.genindex-jumpbox{border-bottom:1px solid var(--color-background-border);border-top:1px solid var(--color-background-border);padding:.25rem}.domainindex-section h2,.genindex-section h2{margin-bottom:.5rem;margin-top:.75rem}.domainindex-section ul,.genindex-section ul{margin-bottom:0;margin-top:0}ol,ul{margin-bottom:1rem;margin-top:1rem;padding-left:1.2rem}ol li>p:first-child,ul li>p:first-child{margin-bottom:.25rem;margin-top:.25rem}ol li>p:last-child,ul li>p:last-child{margin-top:.25rem}ol li>ol,ol li>ul,ul li>ol,ul li>ul{margin-bottom:.5rem;margin-top:.5rem}ol.arabic{list-style:decimal}ol.loweralpha{list-style:lower-alpha}ol.upperalpha{list-style:upper-alpha}ol.lowerroman{list-style:lower-roman}ol.upperroman{list-style:upper-roman}.simple li>ol,.simple li>ul,.toctree-wrapper li>ol,.toctree-wrapper li>ul{margin-bottom:0;margin-top:0}.field-list dt,.option-list dt,dl.footnote dt,dl.glossary dt,dl.simple dt,dl:not([class]) dt{font-weight:500;margin-top:.25rem}.field-list dt+dt,.option-list dt+dt,dl.footnote dt+dt,dl.glossary dt+dt,dl.simple dt+dt,dl:not([class]) dt+dt{margin-top:0}.field-list dt .classifier:before,.option-list dt .classifier:before,dl.footnote dt .classifier:before,dl.glossary dt .classifier:before,dl.simple dt .classifier:before,dl:not([class]) dt .classifier:before{content:":";margin-left:.2rem;margin-right:.2rem}.field-list dd ul,.field-list dd>p:first-child,.option-list dd ul,.option-list dd>p:first-child,dl.footnote dd ul,dl.footnote dd>p:first-child,dl.glossary dd ul,dl.glossary dd>p:first-child,dl.simple dd ul,dl.simple dd>p:first-child,dl:not([class]) dd ul,dl:not([class]) dd>p:first-child{margin-top:.125rem}.field-list dd ul,.option-list dd ul,dl.footnote dd ul,dl.glossary dd ul,dl.simple dd ul,dl:not([class]) dd ul{margin-bottom:.125rem}.math-wrapper{overflow-x:auto;width:100%}div.math{position:relative;text-align:center}div.math .headerlink,div.math:focus .headerlink{display:none}div.math:hover .headerlink{display:inline-block}div.math span.eqno{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);z-index:1}abbr[title]{cursor:help}.problematic{color:var(--color-problematic)}kbd:not(.compound){background-color:var(--color-background-secondary);border:1px solid var(--color-foreground-border);border-radius:.2rem;box-shadow:0 .0625rem 0 rgba(0,0,0,.2),inset 0 0 0 .125rem var(--color-background-primary);color:var(--color-foreground-primary);display:inline-block;font-size:var(--font-size--small--3);margin:0 .2rem;padding:0 .2rem;vertical-align:text-bottom}blockquote{background:var(--color-background-secondary);border-left:4px solid var(--color-background-border);margin-left:0;margin-right:0;padding:.5rem 1rem}blockquote .attribution{font-weight:600;text-align:right}blockquote.highlights,blockquote.pull-quote{font-size:1.25em}blockquote.epigraph,blockquote.pull-quote{border-left-width:0;border-radius:.5rem}blockquote.highlights{background:transparent;border-left-width:0}p .reference img{vertical-align:middle}p.rubric{font-size:1.125em;font-weight:700;line-height:1.25}dd p.rubric{font-size:var(--font-size--small);font-weight:inherit;line-height:inherit;text-transform:uppercase}article .sidebar{background-color:var(--color-background-secondary);border:1px solid var(--color-background-border);border-radius:.2rem;clear:right;float:right;margin-left:1rem;margin-right:0;width:30%}article .sidebar>*{padding-left:1rem;padding-right:1rem}article .sidebar>ol,article .sidebar>ul{padding-left:2.2rem}article .sidebar .sidebar-title{border-bottom:1px solid var(--color-background-border);font-weight:500;margin:0;padding:.5rem 1rem}.table-wrapper{margin-bottom:.5rem;margin-top:1rem;overflow-x:auto;padding:.2rem .2rem .75rem;width:100%}table.docutils{border-collapse:collapse;border-radius:.2rem;border-spacing:0;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)}table.docutils th{background:var(--color-table-header-background)}table.docutils td,table.docutils th{border-bottom:1px solid var(--color-table-border);border-left:1px solid var(--color-table-border);border-right:1px solid var(--color-table-border);padding:0 .25rem}table.docutils td p,table.docutils th p{margin:.25rem}table.docutils td:first-child,table.docutils th:first-child{border-left:none}table.docutils td:last-child,table.docutils th:last-child{border-right:none}table.docutils td.text-left,table.docutils th.text-left{text-align:left}table.docutils td.text-right,table.docutils th.text-right{text-align:right}table.docutils td.text-center,table.docutils th.text-center{text-align:center}:target{scroll-margin-top:2.5rem}@media(max-width:67em){:target{scroll-margin-top:calc(2.5rem + var(--header-height))}section>span:target{scroll-margin-top:calc(2.8rem + var(--header-height))}}.headerlink{font-weight:100;-webkit-user-select:none;-moz-user-select:none;user-select:none}.code-block-caption>.headerlink,dl dt>.headerlink,figcaption p>.headerlink,h1>.headerlink,h2>.headerlink,h3>.headerlink,h4>.headerlink,h5>.headerlink,h6>.headerlink,p.caption>.headerlink,table>caption>.headerlink{margin-left:.5rem;visibility:hidden}.code-block-caption:hover>.headerlink,dl dt:hover>.headerlink,figcaption p:hover>.headerlink,h1:hover>.headerlink,h2:hover>.headerlink,h3:hover>.headerlink,h4:hover>.headerlink,h5:hover>.headerlink,h6:hover>.headerlink,p.caption:hover>.headerlink,table>caption:hover>.headerlink{visibility:visible}.code-block-caption>.toc-backref,dl dt>.toc-backref,figcaption p>.toc-backref,h1>.toc-backref,h2>.toc-backref,h3>.toc-backref,h4>.toc-backref,h5>.toc-backref,h6>.toc-backref,p.caption>.toc-backref,table>caption>.toc-backref{color:inherit;text-decoration-line:none}figure:hover>figcaption>p>.headerlink,table:hover>caption>.headerlink{visibility:visible}:target>h1:first-of-type,:target>h2:first-of-type,:target>h3:first-of-type,:target>h4:first-of-type,:target>h5:first-of-type,:target>h6:first-of-type,span:target~h1:first-of-type,span:target~h2:first-of-type,span:target~h3:first-of-type,span:target~h4:first-of-type,span:target~h5:first-of-type,span:target~h6:first-of-type{background-color:var(--color-highlight-on-target)}:target>h1:first-of-type code.literal,:target>h2:first-of-type code.literal,:target>h3:first-of-type code.literal,:target>h4:first-of-type code.literal,:target>h5:first-of-type code.literal,:target>h6:first-of-type code.literal,span:target~h1:first-of-type code.literal,span:target~h2:first-of-type code.literal,span:target~h3:first-of-type code.literal,span:target~h4:first-of-type code.literal,span:target~h5:first-of-type code.literal,span:target~h6:first-of-type code.literal{background-color:transparent}.literal-block-wrapper:target .code-block-caption,.this-will-duplicate-information-and-it-is-still-useful-here li :target,figure:target,table:target>caption{background-color:var(--color-highlight-on-target)}dt:target{background-color:var(--color-highlight-on-target)!important}.footnote-reference:target,.footnote>dt:target+dd{background-color:var(--color-highlight-on-target)}.guilabel{background-color:var(--color-guilabel-background);border:1px solid var(--color-guilabel-border);border-radius:.5em;color:var(--color-guilabel-text);font-size:.9em;padding:0 .3em}footer{display:flex;flex-direction:column;font-size:var(--font-size--small);margin-top:2rem}.bottom-of-page{align-items:center;border-top:1px solid var(--color-background-border);color:var(--color-foreground-secondary);display:flex;justify-content:space-between;line-height:1.5;margin-top:1rem;padding-bottom:1rem;padding-top:1rem}@media(max-width:46em){.bottom-of-page{flex-direction:column-reverse;gap:.25rem;text-align:center}}.bottom-of-page .left-details{font-size:var(--font-size--small)}.bottom-of-page .right-details{display:flex;flex-direction:column;gap:.25rem;text-align:right}.bottom-of-page .icons{display:flex;font-size:1rem;gap:.25rem;justify-content:flex-end}.bottom-of-page .icons a{text-decoration:none}.bottom-of-page .icons img,.bottom-of-page .icons svg{font-size:1.125rem;height:1em;width:1em}.related-pages a{align-items:center;display:flex;text-decoration:none}.related-pages a:hover .page-info .title{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link-underline)}.related-pages a svg.furo-related-icon,.related-pages a svg.furo-related-icon>use{color:var(--color-foreground-border);flex-shrink:0;height:.75rem;margin:0 .5rem;width:.75rem}.related-pages a.next-page{clear:right;float:right;max-width:50%;text-align:right}.related-pages a.prev-page{clear:left;float:left;max-width:50%}.related-pages a.prev-page svg{transform:rotate(180deg)}.page-info{display:flex;flex-direction:column;overflow-wrap:anywhere}.next-page .page-info{align-items:flex-end}.page-info .context{align-items:center;color:var(--color-foreground-muted);display:flex;font-size:var(--font-size--small);padding-bottom:.1rem;text-decoration:none}ul.search{list-style:none;padding-left:0}ul.search li{border-bottom:1px solid var(--color-background-border);padding:1rem 0}[role=main] .highlighted{background-color:var(--color-highlighted-background);color:var(--color-highlighted-text)}.sidebar-brand{display:flex;flex-direction:column;flex-shrink:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none}.sidebar-brand-text{color:var(--color-sidebar-brand-text);font-size:1.5rem;overflow-wrap:break-word}.sidebar-brand-text,.sidebar-logo-container{margin:var(--sidebar-item-spacing-vertical) 0}.sidebar-logo{display:block;margin:0 auto;max-width:100%}.sidebar-search-container{align-items:center;background:var(--color-sidebar-search-background);display:flex;margin-top:var(--sidebar-search-space-above);position:relative}.sidebar-search-container:focus-within,.sidebar-search-container:hover{background:var(--color-sidebar-search-background--focus)}.sidebar-search-container:before{background-color:var(--color-sidebar-search-icon);content:"";height:var(--sidebar-search-icon-size);left:var(--sidebar-item-spacing-horizontal);-webkit-mask-image:var(--icon-search);mask-image:var(--icon-search);position:absolute;width:var(--sidebar-search-icon-size)}.sidebar-search{background:transparent;border:none;border-bottom:1px solid var(--color-sidebar-search-border);border-top:1px solid var(--color-sidebar-search-border);box-sizing:border-box;color:var(--color-sidebar-search-foreground);padding:var(--sidebar-search-input-spacing-vertical) var(--sidebar-search-input-spacing-horizontal) var(--sidebar-search-input-spacing-vertical) calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size));width:100%;z-index:10}.sidebar-search:focus{outline:none}.sidebar-search::-moz-placeholder{font-size:var(--sidebar-search-input-font-size)}.sidebar-search::placeholder{font-size:var(--sidebar-search-input-font-size)}#searchbox .highlight-link{margin:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0;text-align:center}#searchbox .highlight-link a{color:var(--color-sidebar-search-icon);font-size:var(--font-size--small--2)}.sidebar-tree{font-size:var(--sidebar-item-font-size);margin-bottom:var(--sidebar-item-spacing-vertical);margin-top:var(--sidebar-tree-space-above)}.sidebar-tree ul{display:flex;flex-direction:column;list-style:none;margin-bottom:0;margin-top:0;padding:0}.sidebar-tree li{margin:0;position:relative}.sidebar-tree li>ul{margin-left:var(--sidebar-item-spacing-horizontal)}.sidebar-tree .icon,.sidebar-tree .reference{color:var(--color-sidebar-link-text)}.sidebar-tree .reference{box-sizing:border-box;display:inline-block;height:100%;line-height:var(--sidebar-item-line-height);overflow-wrap:anywhere;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none;width:100%}.sidebar-tree .reference:hover{background:var(--color-sidebar-item-background--hover);color:var(--color-sidebar-link-text)}.sidebar-tree .reference.external:after{color:var(--color-sidebar-link-text);content:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23607D8B' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' viewBox='0 0 24 24'%3E%3Cpath stroke='none' d='M0 0h24v24H0z'/%3E%3Cpath d='M11 7H6a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2v-5M10 14 20 4M15 4h5v5'/%3E%3C/svg%3E");margin:0 .25rem;vertical-align:middle}.sidebar-tree .current-page>.reference{font-weight:700}.sidebar-tree label{align-items:center;cursor:pointer;display:flex;height:var(--sidebar-item-height);justify-content:center;position:absolute;right:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:var(--sidebar-expander-width)}.sidebar-tree .caption,.sidebar-tree :not(.caption)>.caption-text{color:var(--color-sidebar-caption-text);font-size:var(--sidebar-caption-font-size);font-weight:700;margin:var(--sidebar-caption-space-above) 0 0 0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-transform:uppercase}.sidebar-tree li.has-children>.reference{padding-right:var(--sidebar-expander-width)}.sidebar-tree .toctree-l1>.reference,.sidebar-tree .toctree-l1>label .icon{color:var(--color-sidebar-link-text--top-level)}.sidebar-tree label{background:var(--color-sidebar-item-expander-background)}.sidebar-tree label:hover{background:var(--color-sidebar-item-expander-background--hover)}.sidebar-tree .current>.reference{background:var(--color-sidebar-item-background--current)}.sidebar-tree .current>.reference:hover{background:var(--color-sidebar-item-background--hover)}.toctree-checkbox{display:none;position:absolute}.toctree-checkbox~ul{display:none}.toctree-checkbox~label .icon svg{transform:rotate(90deg)}.toctree-checkbox:checked~ul{display:block}.toctree-checkbox:checked~label .icon svg{transform:rotate(-90deg)}.toc-title-container{padding:var(--toc-title-padding);padding-top:var(--toc-spacing-vertical)}.toc-title{color:var(--color-toc-title-text);font-size:var(--toc-title-font-size);padding-left:var(--toc-spacing-horizontal);text-transform:uppercase}.no-toc{display:none}.toc-tree-container{padding-bottom:var(--toc-spacing-vertical)}.toc-tree{border-left:1px solid var(--color-background-border);font-size:var(--toc-font-size);line-height:1.3;padding-left:calc(var(--toc-spacing-horizontal) - var(--toc-item-spacing-horizontal))}.toc-tree>ul>li:first-child{padding-top:0}.toc-tree>ul>li:first-child>ul{padding-left:0}.toc-tree>ul>li:first-child>a{display:none}.toc-tree ul{list-style-type:none;margin-bottom:0;margin-top:0;padding-left:var(--toc-item-spacing-horizontal)}.toc-tree li{padding-top:var(--toc-item-spacing-vertical)}.toc-tree li.scroll-current>.reference{color:var(--color-toc-item-text--active);font-weight:700}.toc-tree a.reference{color:var(--color-toc-item-text);overflow-wrap:anywhere;text-decoration:none}.toc-scroll{max-height:100vh;overflow-y:scroll}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here){background:rgba(255,0,0,.25);color:var(--color-problematic)}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here):before{content:"ERROR: Adding a table of contents in Furo-based documentation is unnecessary, and does not work well with existing styling. Add a 'this-will-duplicate-information-and-it-is-still-useful-here' class, if you want an escape hatch."}.text-align\:left>p{text-align:left}.text-align\:center>p{text-align:center}.text-align\:right>p{text-align:right} +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}@media print{.content-icon-container,.headerlink,.mobile-header,.related-pages{display:none!important}.highlight{border:.1pt solid var(--color-foreground-border)}a,blockquote,dl,ol,pre,table,ul{page-break-inside:avoid}caption,figure,h1,h2,h3,h4,h5,h6,img{page-break-after:avoid;page-break-inside:avoid}dl,ol,ul{page-break-before:avoid}}.visually-hidden{height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;clip:rect(0,0,0,0)!important;background:var(--color-background-primary);border:0!important;color:var(--color-foreground-primary);white-space:nowrap!important}:-moz-focusring{outline:auto}body{--font-stack:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;--font-stack--monospace:"SFMono-Regular",Menlo,Consolas,Monaco,Liberation Mono,Lucida Console,monospace;--font-stack--headings:var(--font-stack);--font-size--normal:100%;--font-size--small:87.5%;--font-size--small--2:81.25%;--font-size--small--3:75%;--font-size--small--4:62.5%;--sidebar-caption-font-size:var(--font-size--small--2);--sidebar-item-font-size:var(--font-size--small);--sidebar-search-input-font-size:var(--font-size--small);--toc-font-size:var(--font-size--small--3);--toc-font-size--mobile:var(--font-size--normal);--toc-title-font-size:var(--font-size--small--4);--admonition-font-size:0.8125rem;--admonition-title-font-size:0.8125rem;--code-font-size:var(--font-size--small--2);--api-font-size:var(--font-size--small);--header-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*4);--header-padding:0.5rem;--sidebar-tree-space-above:1.5rem;--sidebar-caption-space-above:1rem;--sidebar-item-line-height:1rem;--sidebar-item-spacing-vertical:0.5rem;--sidebar-item-spacing-horizontal:1rem;--sidebar-item-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*2);--sidebar-expander-width:var(--sidebar-item-height);--sidebar-search-space-above:0.5rem;--sidebar-search-input-spacing-vertical:0.5rem;--sidebar-search-input-spacing-horizontal:0.5rem;--sidebar-search-input-height:1rem;--sidebar-search-icon-size:var(--sidebar-search-input-height);--toc-title-padding:0.25rem 0;--toc-spacing-vertical:1.5rem;--toc-spacing-horizontal:1.5rem;--toc-item-spacing-vertical:0.4rem;--toc-item-spacing-horizontal:1rem;--icon-search:url('data:image/svg+xml;charset=utf-8,');--icon-pencil:url('data:image/svg+xml;charset=utf-8,');--icon-abstract:url('data:image/svg+xml;charset=utf-8,');--icon-info:url('data:image/svg+xml;charset=utf-8,');--icon-flame:url('data:image/svg+xml;charset=utf-8,');--icon-question:url('data:image/svg+xml;charset=utf-8,');--icon-warning:url('data:image/svg+xml;charset=utf-8,');--icon-failure:url('data:image/svg+xml;charset=utf-8,');--icon-spark:url('data:image/svg+xml;charset=utf-8,');--color-admonition-title--caution:#ff9100;--color-admonition-title-background--caution:rgba(255,145,0,.2);--color-admonition-title--warning:#ff9100;--color-admonition-title-background--warning:rgba(255,145,0,.2);--color-admonition-title--danger:#ff5252;--color-admonition-title-background--danger:rgba(255,82,82,.2);--color-admonition-title--attention:#ff5252;--color-admonition-title-background--attention:rgba(255,82,82,.2);--color-admonition-title--error:#ff5252;--color-admonition-title-background--error:rgba(255,82,82,.2);--color-admonition-title--hint:#00c852;--color-admonition-title-background--hint:rgba(0,200,82,.2);--color-admonition-title--tip:#00c852;--color-admonition-title-background--tip:rgba(0,200,82,.2);--color-admonition-title--important:#00bfa5;--color-admonition-title-background--important:rgba(0,191,165,.2);--color-admonition-title--note:#00b0ff;--color-admonition-title-background--note:rgba(0,176,255,.2);--color-admonition-title--seealso:#448aff;--color-admonition-title-background--seealso:rgba(68,138,255,.2);--color-admonition-title--admonition-todo:grey;--color-admonition-title-background--admonition-todo:hsla(0,0%,50%,.2);--color-admonition-title:#651fff;--color-admonition-title-background:rgba(101,31,255,.2);--icon-admonition-default:var(--icon-abstract);--color-topic-title:#14b8a6;--color-topic-title-background:rgba(20,184,166,.2);--icon-topic-default:var(--icon-pencil);--color-problematic:#b30000;--color-foreground-primary:#000;--color-foreground-secondary:#5a5c63;--color-foreground-muted:#6b6f76;--color-foreground-border:#878787;--color-background-primary:#fff;--color-background-secondary:#f8f9fb;--color-background-hover:#efeff4;--color-background-hover--transparent:#efeff400;--color-background-border:#eeebee;--color-background-item:#ccc;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#0a4bff;--color-brand-content:#2757dd;--color-brand-visited:#872ee0;--color-api-background:var(--color-background-hover--transparent);--color-api-background-hover:var(--color-background-hover);--color-api-overall:var(--color-foreground-secondary);--color-api-name:var(--color-problematic);--color-api-pre-name:var(--color-problematic);--color-api-paren:var(--color-foreground-secondary);--color-api-keyword:var(--color-foreground-primary);--color-api-added:#21632c;--color-api-added-border:#38a84d;--color-api-changed:#046172;--color-api-changed-border:#06a1bc;--color-api-deprecated:#605706;--color-api-deprecated-border:#f0d90f;--color-api-removed:#b30000;--color-api-removed-border:#ff5c5c;--color-highlight-on-target:#ffc;--color-inline-code-background:var(--color-background-secondary);--color-highlighted-background:#def;--color-highlighted-text:var(--color-foreground-primary);--color-guilabel-background:#ddeeff80;--color-guilabel-border:#bedaf580;--color-guilabel-text:var(--color-foreground-primary);--color-admonition-background:transparent;--color-table-header-background:var(--color-background-secondary);--color-table-border:var(--color-background-border);--color-card-border:var(--color-background-secondary);--color-card-background:transparent;--color-card-marginals-background:var(--color-background-secondary);--color-header-background:var(--color-background-primary);--color-header-border:var(--color-background-border);--color-header-text:var(--color-foreground-primary);--color-sidebar-background:var(--color-background-secondary);--color-sidebar-background-border:var(--color-background-border);--color-sidebar-brand-text:var(--color-foreground-primary);--color-sidebar-caption-text:var(--color-foreground-muted);--color-sidebar-link-text:var(--color-foreground-secondary);--color-sidebar-link-text--top-level:var(--color-brand-primary);--color-sidebar-item-background:var(--color-sidebar-background);--color-sidebar-item-background--current:var( --color-sidebar-item-background );--color-sidebar-item-background--hover:linear-gradient(90deg,var(--color-background-hover--transparent) 0%,var(--color-background-hover) var(--sidebar-item-spacing-horizontal),var(--color-background-hover) 100%);--color-sidebar-item-expander-background:transparent;--color-sidebar-item-expander-background--hover:var( --color-background-hover );--color-sidebar-search-text:var(--color-foreground-primary);--color-sidebar-search-background:var(--color-background-secondary);--color-sidebar-search-background--focus:var(--color-background-primary);--color-sidebar-search-border:var(--color-background-border);--color-sidebar-search-icon:var(--color-foreground-muted);--color-toc-background:var(--color-background-primary);--color-toc-title-text:var(--color-foreground-muted);--color-toc-item-text:var(--color-foreground-secondary);--color-toc-item-text--hover:var(--color-foreground-primary);--color-toc-item-text--active:var(--color-brand-primary);--color-content-foreground:var(--color-foreground-primary);--color-content-background:transparent;--color-link:var(--color-brand-content);--color-link-underline:var(--color-background-border);--color-link--hover:var(--color-brand-content);--color-link-underline--hover:var(--color-foreground-border);--color-link--visited:var(--color-brand-visited);--color-link-underline--visited:var(--color-background-border);--color-link--visited--hover:var(--color-brand-visited);--color-link-underline--visited--hover:var(--color-foreground-border)}.only-light{display:block!important}html body .only-dark{display:none!important}@media not print{body[data-theme=dark]{--color-problematic:#ee5151;--color-foreground-primary:#cfd0d0;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#3d94ff;--color-brand-content:#5ca5ff;--color-brand-visited:#b27aeb;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-api-added:#3db854;--color-api-added-border:#267334;--color-api-changed:#09b0ce;--color-api-changed-border:#056d80;--color-api-deprecated:#b1a10b;--color-api-deprecated-border:#6e6407;--color-api-removed:#ff7575;--color-api-removed-border:#b03b3b;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body[data-theme=dark] .only-light{display:none!important}body[data-theme=dark] .only-dark{display:block!important}@media(prefers-color-scheme:dark){body:not([data-theme=light]){--color-problematic:#ee5151;--color-foreground-primary:#cfd0d0;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#3d94ff;--color-brand-content:#5ca5ff;--color-brand-visited:#b27aeb;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-api-added:#3db854;--color-api-added-border:#267334;--color-api-changed:#09b0ce;--color-api-changed-border:#056d80;--color-api-deprecated:#b1a10b;--color-api-deprecated-border:#6e6407;--color-api-removed:#ff7575;--color-api-removed-border:#b03b3b;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body:not([data-theme=light]) .only-light{display:none!important}body:not([data-theme=light]) .only-dark{display:block!important}}}body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto-light{display:block}@media(prefers-color-scheme:dark){body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto-dark{display:block}body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto-light{display:none}}body[data-theme=dark] .theme-toggle svg.theme-icon-when-dark,body[data-theme=light] .theme-toggle svg.theme-icon-when-light{display:block}body{font-family:var(--font-stack)}code,kbd,pre,samp{font-family:var(--font-stack--monospace)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}article{line-height:1.5}h1,h2,h3,h4,h5,h6{border-radius:.5rem;font-family:var(--font-stack--headings);font-weight:700;line-height:1.25;margin:.5rem -.5rem;padding-left:.5rem;padding-right:.5rem}h1+p,h2+p,h3+p,h4+p,h5+p,h6+p{margin-top:0}h1{font-size:2.5em;margin-bottom:1rem}h1,h2{margin-top:1.75rem}h2{font-size:2em}h3{font-size:1.5em}h4{font-size:1.25em}h5{font-size:1.125em}h6{font-size:1em}small{font-size:80%;opacity:75%}p{margin-bottom:.75rem;margin-top:.5rem}hr.docutils{background-color:var(--color-background-border);border:0;height:1px;margin:2rem 0;padding:0}.centered{text-align:center}a{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link-underline)}a:visited{color:var(--color-link--visited);text-decoration-color:var(--color-link-underline--visited)}a:visited:hover{color:var(--color-link--visited--hover);text-decoration-color:var(--color-link-underline--visited--hover)}a:hover{color:var(--color-link--hover);text-decoration-color:var(--color-link-underline--hover)}a.muted-link{color:inherit}a.muted-link:hover{color:var(--color-link--hover);text-decoration-color:var(--color-link-underline--hover)}a.muted-link:hover:visited{color:var(--color-link--visited--hover);text-decoration-color:var(--color-link-underline--visited--hover)}html{overflow-x:hidden;overflow-y:scroll;scroll-behavior:smooth}.sidebar-scroll,.toc-scroll,article[role=main] *{scrollbar-color:var(--color-foreground-border) transparent;scrollbar-width:thin}.sidebar-scroll::-webkit-scrollbar,.toc-scroll::-webkit-scrollbar,article[role=main] ::-webkit-scrollbar{height:.25rem;width:.25rem}.sidebar-scroll::-webkit-scrollbar-thumb,.toc-scroll::-webkit-scrollbar-thumb,article[role=main] ::-webkit-scrollbar-thumb{background-color:var(--color-foreground-border);border-radius:.125rem}body,html{height:100%}.skip-to-content,body,html{background:var(--color-background-primary);color:var(--color-foreground-primary)}.skip-to-content{border-radius:1rem;left:.25rem;padding:1rem;position:fixed;top:.25rem;transform:translateY(-200%);transition:transform .3s ease-in-out;z-index:40}.skip-to-content:focus-within{transform:translateY(0)}article{background:var(--color-content-background);color:var(--color-content-foreground);overflow-wrap:break-word}.page{display:flex;min-height:100%}.mobile-header{background-color:var(--color-header-background);border-bottom:1px solid var(--color-header-border);color:var(--color-header-text);display:none;height:var(--header-height);width:100%;z-index:10}.mobile-header.scrolled{border-bottom:none;box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2)}.mobile-header .header-center a{color:var(--color-header-text);text-decoration:none}.main{display:flex;flex:1}.sidebar-drawer{background:var(--color-sidebar-background);border-right:1px solid var(--color-sidebar-background-border);box-sizing:border-box;display:flex;justify-content:flex-end;min-width:15em;width:calc(50% - 26em)}.sidebar-container,.toc-drawer{box-sizing:border-box;width:15em}.toc-drawer{background:var(--color-toc-background);padding-right:1rem}.sidebar-sticky,.toc-sticky{display:flex;flex-direction:column;height:min(100%,100vh);height:100vh;position:sticky;top:0}.sidebar-scroll,.toc-scroll{flex-grow:1;flex-shrink:1;overflow:auto;scroll-behavior:smooth}.content{display:flex;flex-direction:column;justify-content:space-between;padding:0 3em;width:46em}.icon{display:inline-block;height:1rem;width:1rem}.icon svg{height:100%;width:100%}.announcement{align-items:center;background-color:var(--color-announcement-background);color:var(--color-announcement-text);display:flex;height:var(--header-height);overflow-x:auto}.announcement+.page{min-height:calc(100% - var(--header-height))}.announcement-content{box-sizing:border-box;min-width:100%;padding:.5rem;text-align:center;white-space:nowrap}.announcement-content a{color:var(--color-announcement-text);text-decoration-color:var(--color-announcement-text)}.announcement-content a:hover{color:var(--color-announcement-text);text-decoration-color:var(--color-link--hover)}.no-js .theme-toggle-container{display:none}.theme-toggle-container{display:flex}.theme-toggle{background:transparent;border:none;cursor:pointer;display:flex;padding:0}.theme-toggle svg{color:var(--color-foreground-primary);display:none;height:1.25rem;width:1.25rem}.theme-toggle-header{align-items:center;display:flex;justify-content:center}.nav-overlay-icon,.toc-overlay-icon{cursor:pointer;display:none}.nav-overlay-icon .icon,.toc-overlay-icon .icon{color:var(--color-foreground-secondary);height:1.5rem;width:1.5rem}.nav-overlay-icon,.toc-header-icon{align-items:center;justify-content:center}.toc-content-icon{height:1.5rem;width:1.5rem}.content-icon-container{display:flex;float:right;gap:.5rem;margin-bottom:1rem;margin-left:1rem;margin-top:1.5rem}.content-icon-container .edit-this-page svg,.content-icon-container .view-this-page svg{color:inherit;height:1.25rem;width:1.25rem}.sidebar-toggle{display:none;position:absolute}.sidebar-toggle[name=__toc]{left:20px}.sidebar-toggle:checked{left:40px}.overlay{background-color:rgba(0,0,0,.54);height:0;opacity:0;position:fixed;top:0;transition:width 0ms,height 0ms,opacity .25s ease-out;width:0}.sidebar-overlay{z-index:20}.toc-overlay{z-index:40}.sidebar-drawer{transition:left .25s ease-in-out;z-index:30}.toc-drawer{transition:right .25s ease-in-out;z-index:50}#__navigation:checked~.sidebar-overlay{height:100%;opacity:1;width:100%}#__navigation:checked~.page .sidebar-drawer{left:0;top:0}#__toc:checked~.toc-overlay{height:100%;opacity:1;width:100%}#__toc:checked~.page .toc-drawer{right:0;top:0}.back-to-top{background:var(--color-background-primary);border-radius:1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 1px 0 hsla(220,9%,46%,.502);display:none;font-size:.8125rem;left:0;margin-left:50%;padding:.5rem .75rem .5rem .5rem;position:fixed;text-decoration:none;top:1rem;transform:translateX(-50%);z-index:10}.back-to-top svg{height:1rem;width:1rem;fill:currentColor;display:inline-block}.back-to-top span{margin-left:.25rem}.show-back-to-top .back-to-top{align-items:center;display:flex}@media(min-width:97em){html{font-size:110%}}@media(max-width:82em){.toc-content-icon{display:flex}.toc-drawer{border-left:1px solid var(--color-background-muted);height:100vh;position:fixed;right:-15em;top:0}.toc-tree{border-left:none;font-size:var(--toc-font-size--mobile)}.sidebar-drawer{width:calc(50% - 18.5em)}}@media(max-width:67em){.nav-overlay-icon{display:flex}.sidebar-drawer{height:100vh;left:-15em;position:fixed;top:0;width:15em}.theme-toggle-header,.toc-header-icon{display:flex}.theme-toggle-content,.toc-content-icon{display:none}.mobile-header{align-items:center;display:flex;justify-content:space-between;position:sticky;top:0}.mobile-header .header-left,.mobile-header .header-right{display:flex;height:var(--header-height);padding:0 var(--header-padding)}.mobile-header .header-left label,.mobile-header .header-right label{height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.nav-overlay-icon .icon,.theme-toggle svg{height:1.5rem;width:1.5rem}:target{scroll-margin-top:calc(var(--header-height) + 2.5rem)}.back-to-top{top:calc(var(--header-height) + .5rem)}.page{flex-direction:column;justify-content:center}.content{margin-left:auto;margin-right:auto}}@media(max-width:52em){.content{overflow-x:auto;width:100%}}@media(max-width:46em){.content{padding:0 1em}article aside.sidebar{float:none;margin:1rem 0;width:100%}}.admonition,.topic{background:var(--color-admonition-background);border-radius:.2rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1);font-size:var(--admonition-font-size);margin:1rem auto;overflow:hidden;padding:0 .5rem .5rem;page-break-inside:avoid}.admonition>:nth-child(2),.topic>:nth-child(2){margin-top:0}.admonition>:last-child,.topic>:last-child{margin-bottom:0}.admonition p.admonition-title,p.topic-title{font-size:var(--admonition-title-font-size);font-weight:500;line-height:1.3;margin:0 -.5rem .5rem;padding:.4rem .5rem .4rem 2rem;position:relative}.admonition p.admonition-title:before,p.topic-title:before{content:"";height:1rem;left:.5rem;position:absolute;width:1rem}p.admonition-title{background-color:var(--color-admonition-title-background)}p.admonition-title:before{background-color:var(--color-admonition-title);-webkit-mask-image:var(--icon-admonition-default);mask-image:var(--icon-admonition-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}p.topic-title{background-color:var(--color-topic-title-background)}p.topic-title:before{background-color:var(--color-topic-title);-webkit-mask-image:var(--icon-topic-default);mask-image:var(--icon-topic-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.admonition{border-left:.2rem solid var(--color-admonition-title)}.admonition.caution{border-left-color:var(--color-admonition-title--caution)}.admonition.caution>.admonition-title{background-color:var(--color-admonition-title-background--caution)}.admonition.caution>.admonition-title:before{background-color:var(--color-admonition-title--caution);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.warning{border-left-color:var(--color-admonition-title--warning)}.admonition.warning>.admonition-title{background-color:var(--color-admonition-title-background--warning)}.admonition.warning>.admonition-title:before{background-color:var(--color-admonition-title--warning);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.danger{border-left-color:var(--color-admonition-title--danger)}.admonition.danger>.admonition-title{background-color:var(--color-admonition-title-background--danger)}.admonition.danger>.admonition-title:before{background-color:var(--color-admonition-title--danger);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.attention{border-left-color:var(--color-admonition-title--attention)}.admonition.attention>.admonition-title{background-color:var(--color-admonition-title-background--attention)}.admonition.attention>.admonition-title:before{background-color:var(--color-admonition-title--attention);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.error{border-left-color:var(--color-admonition-title--error)}.admonition.error>.admonition-title{background-color:var(--color-admonition-title-background--error)}.admonition.error>.admonition-title:before{background-color:var(--color-admonition-title--error);-webkit-mask-image:var(--icon-failure);mask-image:var(--icon-failure)}.admonition.hint{border-left-color:var(--color-admonition-title--hint)}.admonition.hint>.admonition-title{background-color:var(--color-admonition-title-background--hint)}.admonition.hint>.admonition-title:before{background-color:var(--color-admonition-title--hint);-webkit-mask-image:var(--icon-question);mask-image:var(--icon-question)}.admonition.tip{border-left-color:var(--color-admonition-title--tip)}.admonition.tip>.admonition-title{background-color:var(--color-admonition-title-background--tip)}.admonition.tip>.admonition-title:before{background-color:var(--color-admonition-title--tip);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.important{border-left-color:var(--color-admonition-title--important)}.admonition.important>.admonition-title{background-color:var(--color-admonition-title-background--important)}.admonition.important>.admonition-title:before{background-color:var(--color-admonition-title--important);-webkit-mask-image:var(--icon-flame);mask-image:var(--icon-flame)}.admonition.note{border-left-color:var(--color-admonition-title--note)}.admonition.note>.admonition-title{background-color:var(--color-admonition-title-background--note)}.admonition.note>.admonition-title:before{background-color:var(--color-admonition-title--note);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition.seealso{border-left-color:var(--color-admonition-title--seealso)}.admonition.seealso>.admonition-title{background-color:var(--color-admonition-title-background--seealso)}.admonition.seealso>.admonition-title:before{background-color:var(--color-admonition-title--seealso);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.admonition-todo{border-left-color:var(--color-admonition-title--admonition-todo)}.admonition.admonition-todo>.admonition-title{background-color:var(--color-admonition-title-background--admonition-todo)}.admonition.admonition-todo>.admonition-title:before{background-color:var(--color-admonition-title--admonition-todo);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition-todo>.admonition-title{text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd{margin-left:2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:first-child{margin-top:.125rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list,dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:last-child{margin-bottom:.75rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list>dt{font-size:var(--font-size--small);text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd:empty{margin-bottom:.5rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul{margin-left:-1.2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p:nth-child(2){margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p+p:last-child:empty{margin-bottom:0;margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt{color:var(--color-api-overall)}.sig:not(.sig-inline){background:var(--color-api-background);border-radius:.25rem;font-family:var(--font-stack--monospace);font-size:var(--api-font-size);font-weight:700;margin-left:-.25rem;margin-right:-.25rem;padding:.25rem .5rem .25rem 3em;text-indent:-2.5em;transition:background .1s ease-out}.sig:not(.sig-inline):hover{background:var(--color-api-background-hover)}.sig:not(.sig-inline) a.reference .viewcode-link{font-weight:400;width:4.25rem}em.property{font-style:normal}em.property:first-child{color:var(--color-api-keyword)}.sig-name{color:var(--color-api-name)}.sig-prename{color:var(--color-api-pre-name);font-weight:400}.sig-paren{color:var(--color-api-paren)}.sig-param{font-style:normal}div.deprecated,div.versionadded,div.versionchanged,div.versionremoved{border-left:.1875rem solid;border-radius:.125rem;padding-left:.75rem}div.deprecated p,div.versionadded p,div.versionchanged p,div.versionremoved p{margin-bottom:.125rem;margin-top:.125rem}div.versionadded{border-color:var(--color-api-added-border)}div.versionadded .versionmodified{color:var(--color-api-added)}div.versionchanged{border-color:var(--color-api-changed-border)}div.versionchanged .versionmodified{color:var(--color-api-changed)}div.deprecated{border-color:var(--color-api-deprecated-border)}div.deprecated .versionmodified{color:var(--color-api-deprecated)}div.versionremoved{border-color:var(--color-api-removed-border)}div.versionremoved .versionmodified{color:var(--color-api-removed)}.viewcode-back,.viewcode-link{float:right;text-align:right}.line-block{margin-bottom:.75rem;margin-top:.5rem}.line-block .line-block{margin-bottom:0;margin-top:0;padding-left:1rem}.code-block-caption,article p.caption,table>caption{font-size:var(--font-size--small);text-align:center}.toctree-wrapper.compound .caption,.toctree-wrapper.compound :not(.caption)>.caption-text{font-size:var(--font-size--small);margin-bottom:0;text-align:initial;text-transform:uppercase}.toctree-wrapper.compound>ul{margin-bottom:0;margin-top:0}.sig-inline,code.literal{background:var(--color-inline-code-background);border-radius:.2em;font-size:var(--font-size--small--2);padding:.1em .2em}pre.literal-block .sig-inline,pre.literal-block code.literal{font-size:inherit;padding:0}p .sig-inline,p code.literal{border:1px solid var(--color-background-border)}.sig-inline{font-family:var(--font-stack--monospace)}div[class*=" highlight-"],div[class^=highlight-]{display:flex;margin:1em 0}div[class*=" highlight-"] .table-wrapper,div[class^=highlight-] .table-wrapper,pre{margin:0;padding:0}pre{overflow:auto}article[role=main] .highlight pre{line-height:1.5}.highlight pre,pre.literal-block{font-size:var(--code-font-size);padding:.625rem .875rem}pre.literal-block{background-color:var(--color-code-background);border-radius:.2rem;color:var(--color-code-foreground);margin-bottom:1rem;margin-top:1rem}.highlight{border-radius:.2rem;width:100%}.highlight .gp,.highlight span.linenos{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.highlight .hll{display:block;margin-left:-.875rem;margin-right:-.875rem;padding-left:.875rem;padding-right:.875rem}.code-block-caption{background-color:var(--color-code-background);border-bottom:1px solid;border-radius:.25rem;border-bottom-left-radius:0;border-bottom-right-radius:0;border-color:var(--color-background-border);color:var(--color-code-foreground);display:flex;font-weight:300;padding:.625rem .875rem}.code-block-caption+div[class]{margin-top:0}.code-block-caption+div[class] pre{border-top-left-radius:0;border-top-right-radius:0}.highlighttable{display:block;width:100%}.highlighttable tbody{display:block}.highlighttable tr{display:flex}.highlighttable td.linenos{background-color:var(--color-code-background);border-bottom-left-radius:.2rem;border-top-left-radius:.2rem;color:var(--color-code-foreground);padding:.625rem 0 .625rem .875rem}.highlighttable .linenodiv{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;font-size:var(--code-font-size);padding-right:.875rem}.highlighttable td.code{display:block;flex:1;overflow:hidden;padding:0}.highlighttable td.code .highlight{border-bottom-left-radius:0;border-top-left-radius:0}.highlight span.linenos{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;display:inline-block;margin-right:.875rem;padding-left:0;padding-right:.875rem}.footnote-reference{font-size:var(--font-size--small--4);vertical-align:super}dl.footnote.brackets{color:var(--color-foreground-secondary);display:grid;font-size:var(--font-size--small);grid-template-columns:max-content auto}dl.footnote.brackets dt{margin:0}dl.footnote.brackets dt>.fn-backref{margin-left:.25rem}dl.footnote.brackets dt:after{content:":"}dl.footnote.brackets dt .brackets:before{content:"["}dl.footnote.brackets dt .brackets:after{content:"]"}dl.footnote.brackets dd{margin:0;padding:0 1rem}aside.footnote{color:var(--color-foreground-secondary);font-size:var(--font-size--small)}aside.footnote>span,div.citation>span{float:left;font-weight:500;padding-right:.25rem}aside.footnote>:not(span),div.citation>p{margin-left:2rem}img{box-sizing:border-box;height:auto;max-width:100%}article .figure,article figure{border-radius:.2rem;margin:0}article .figure :last-child,article figure :last-child{margin-bottom:0}article .align-left{clear:left;float:left;margin:0 1rem 1rem}article .align-right{clear:right;float:right;margin:0 1rem 1rem}article .align-center,article .align-default{display:block;margin-left:auto;margin-right:auto;text-align:center}article table.align-default{display:table;text-align:initial}.domainindex-jumpbox,.genindex-jumpbox{border-bottom:1px solid var(--color-background-border);border-top:1px solid var(--color-background-border);padding:.25rem}.domainindex-section h2,.genindex-section h2{margin-bottom:.5rem;margin-top:.75rem}.domainindex-section ul,.genindex-section ul{margin-bottom:0;margin-top:0}ol,ul{margin-bottom:1rem;margin-top:1rem;padding-left:1.2rem}ol li>p:first-child,ul li>p:first-child{margin-bottom:.25rem;margin-top:.25rem}ol li>p:last-child,ul li>p:last-child{margin-top:.25rem}ol li>ol,ol li>ul,ul li>ol,ul li>ul{margin-bottom:.5rem;margin-top:.5rem}ol.arabic{list-style:decimal}ol.loweralpha{list-style:lower-alpha}ol.upperalpha{list-style:upper-alpha}ol.lowerroman{list-style:lower-roman}ol.upperroman{list-style:upper-roman}.simple li>ol,.simple li>ul,.toctree-wrapper li>ol,.toctree-wrapper li>ul{margin-bottom:0;margin-top:0}.field-list dt,.option-list dt,dl.footnote dt,dl.glossary dt,dl.simple dt,dl:not([class]) dt{font-weight:500;margin-top:.25rem}.field-list dt+dt,.option-list dt+dt,dl.footnote dt+dt,dl.glossary dt+dt,dl.simple dt+dt,dl:not([class]) dt+dt{margin-top:0}.field-list dt .classifier:before,.option-list dt .classifier:before,dl.footnote dt .classifier:before,dl.glossary dt .classifier:before,dl.simple dt .classifier:before,dl:not([class]) dt .classifier:before{content:":";margin-left:.2rem;margin-right:.2rem}.field-list dd ul,.field-list dd>p:first-child,.option-list dd ul,.option-list dd>p:first-child,dl.footnote dd ul,dl.footnote dd>p:first-child,dl.glossary dd ul,dl.glossary dd>p:first-child,dl.simple dd ul,dl.simple dd>p:first-child,dl:not([class]) dd ul,dl:not([class]) dd>p:first-child{margin-top:.125rem}.field-list dd ul,.option-list dd ul,dl.footnote dd ul,dl.glossary dd ul,dl.simple dd ul,dl:not([class]) dd ul{margin-bottom:.125rem}.math-wrapper{overflow-x:auto;width:100%}div.math{position:relative;text-align:center}div.math .headerlink,div.math:focus .headerlink{display:none}div.math:hover .headerlink{display:inline-block}div.math span.eqno{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);z-index:1}abbr[title]{cursor:help}.problematic{color:var(--color-problematic)}kbd:not(.compound){background-color:var(--color-background-secondary);border:1px solid var(--color-foreground-border);border-radius:.2rem;box-shadow:0 .0625rem 0 rgba(0,0,0,.2),inset 0 0 0 .125rem var(--color-background-primary);color:var(--color-foreground-primary);display:inline-block;font-size:var(--font-size--small--3);margin:0 .2rem;padding:0 .2rem;vertical-align:text-bottom}blockquote{background:var(--color-background-secondary);border-left:4px solid var(--color-background-border);margin-left:0;margin-right:0;padding:.5rem 1rem}blockquote .attribution{font-weight:600;text-align:right}blockquote.highlights,blockquote.pull-quote{font-size:1.25em}blockquote.epigraph,blockquote.pull-quote{border-left-width:0;border-radius:.5rem}blockquote.highlights{background:transparent;border-left-width:0}p .reference img{vertical-align:middle}p.rubric{font-size:1.125em;font-weight:700;line-height:1.25}dd p.rubric{font-size:var(--font-size--small);font-weight:inherit;line-height:inherit;text-transform:uppercase}article .sidebar{background-color:var(--color-background-secondary);border:1px solid var(--color-background-border);border-radius:.2rem;clear:right;float:right;margin-left:1rem;margin-right:0;width:30%}article .sidebar>*{padding-left:1rem;padding-right:1rem}article .sidebar>ol,article .sidebar>ul{padding-left:2.2rem}article .sidebar .sidebar-title{border-bottom:1px solid var(--color-background-border);font-weight:500;margin:0;padding:.5rem 1rem}.table-wrapper{margin-bottom:.5rem;margin-top:1rem;overflow-x:auto;padding:.2rem .2rem .75rem;width:100%}table.docutils{border-collapse:collapse;border-radius:.2rem;border-spacing:0;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)}table.docutils th{background:var(--color-table-header-background)}table.docutils td,table.docutils th{border-bottom:1px solid var(--color-table-border);border-left:1px solid var(--color-table-border);border-right:1px solid var(--color-table-border);padding:0 .25rem}table.docutils td p,table.docutils th p{margin:.25rem}table.docutils td:first-child,table.docutils th:first-child{border-left:none}table.docutils td:last-child,table.docutils th:last-child{border-right:none}table.docutils td.text-left,table.docutils th.text-left{text-align:left}table.docutils td.text-right,table.docutils th.text-right{text-align:right}table.docutils td.text-center,table.docutils th.text-center{text-align:center}:target{scroll-margin-top:2.5rem}@media(max-width:67em){:target{scroll-margin-top:calc(2.5rem + var(--header-height))}section>span:target{scroll-margin-top:calc(2.8rem + var(--header-height))}}.headerlink{font-weight:100;-webkit-user-select:none;-moz-user-select:none;user-select:none}.code-block-caption>.headerlink,dl dt>.headerlink,figcaption p>.headerlink,h1>.headerlink,h2>.headerlink,h3>.headerlink,h4>.headerlink,h5>.headerlink,h6>.headerlink,p.caption>.headerlink,table>caption>.headerlink{margin-left:.5rem;visibility:hidden}.code-block-caption:hover>.headerlink,dl dt:hover>.headerlink,figcaption p:hover>.headerlink,h1:hover>.headerlink,h2:hover>.headerlink,h3:hover>.headerlink,h4:hover>.headerlink,h5:hover>.headerlink,h6:hover>.headerlink,p.caption:hover>.headerlink,table>caption:hover>.headerlink{visibility:visible}.code-block-caption>.toc-backref,dl dt>.toc-backref,figcaption p>.toc-backref,h1>.toc-backref,h2>.toc-backref,h3>.toc-backref,h4>.toc-backref,h5>.toc-backref,h6>.toc-backref,p.caption>.toc-backref,table>caption>.toc-backref{color:inherit;text-decoration-line:none}figure:hover>figcaption>p>.headerlink,table:hover>caption>.headerlink{visibility:visible}:target>h1:first-of-type,:target>h2:first-of-type,:target>h3:first-of-type,:target>h4:first-of-type,:target>h5:first-of-type,:target>h6:first-of-type,span:target~h1:first-of-type,span:target~h2:first-of-type,span:target~h3:first-of-type,span:target~h4:first-of-type,span:target~h5:first-of-type,span:target~h6:first-of-type{background-color:var(--color-highlight-on-target)}:target>h1:first-of-type code.literal,:target>h2:first-of-type code.literal,:target>h3:first-of-type code.literal,:target>h4:first-of-type code.literal,:target>h5:first-of-type code.literal,:target>h6:first-of-type code.literal,span:target~h1:first-of-type code.literal,span:target~h2:first-of-type code.literal,span:target~h3:first-of-type code.literal,span:target~h4:first-of-type code.literal,span:target~h5:first-of-type code.literal,span:target~h6:first-of-type code.literal{background-color:transparent}.literal-block-wrapper:target .code-block-caption,.this-will-duplicate-information-and-it-is-still-useful-here li :target,figure:target,table:target>caption{background-color:var(--color-highlight-on-target)}dt:target{background-color:var(--color-highlight-on-target)!important}.footnote-reference:target,.footnote>dt:target+dd{background-color:var(--color-highlight-on-target)}.guilabel{background-color:var(--color-guilabel-background);border:1px solid var(--color-guilabel-border);border-radius:.5em;color:var(--color-guilabel-text);font-size:.9em;padding:0 .3em}footer{display:flex;flex-direction:column;font-size:var(--font-size--small);margin-top:2rem}.bottom-of-page{align-items:center;border-top:1px solid var(--color-background-border);color:var(--color-foreground-secondary);display:flex;justify-content:space-between;line-height:1.5;margin-top:1rem;padding-bottom:1rem;padding-top:1rem}@media(max-width:46em){.bottom-of-page{flex-direction:column-reverse;gap:.25rem;text-align:center}}.bottom-of-page .left-details{font-size:var(--font-size--small)}.bottom-of-page .right-details{display:flex;flex-direction:column;gap:.25rem;text-align:right}.bottom-of-page .icons{display:flex;font-size:1rem;gap:.25rem;justify-content:flex-end}.bottom-of-page .icons a{text-decoration:none}.bottom-of-page .icons img,.bottom-of-page .icons svg{font-size:1.125rem;height:1em;width:1em}.related-pages a{align-items:center;display:flex;text-decoration:none}.related-pages a:hover .page-info .title{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link-underline)}.related-pages a svg.furo-related-icon,.related-pages a svg.furo-related-icon>use{color:var(--color-foreground-border);flex-shrink:0;height:.75rem;margin:0 .5rem;width:.75rem}.related-pages a.next-page{clear:right;float:right;max-width:50%;text-align:right}.related-pages a.prev-page{clear:left;float:left;max-width:50%}.related-pages a.prev-page svg{transform:rotate(180deg)}.page-info{display:flex;flex-direction:column;overflow-wrap:anywhere}.next-page .page-info{align-items:flex-end}.page-info .context{align-items:center;color:var(--color-foreground-muted);display:flex;font-size:var(--font-size--small);padding-bottom:.1rem;text-decoration:none}ul.search{list-style:none;padding-left:0}ul.search li{border-bottom:1px solid var(--color-background-border);padding:1rem 0}[role=main] .highlighted{background-color:var(--color-highlighted-background);color:var(--color-highlighted-text)}.sidebar-brand{display:flex;flex-direction:column;flex-shrink:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none}.sidebar-brand-text{color:var(--color-sidebar-brand-text);font-size:1.5rem;overflow-wrap:break-word}.sidebar-brand-text,.sidebar-logo-container{margin:var(--sidebar-item-spacing-vertical) 0}.sidebar-logo{display:block;margin:0 auto;max-width:100%}.sidebar-search-container{align-items:center;background:var(--color-sidebar-search-background);display:flex;margin-top:var(--sidebar-search-space-above);position:relative}.sidebar-search-container:focus-within,.sidebar-search-container:hover{background:var(--color-sidebar-search-background--focus)}.sidebar-search-container:before{background-color:var(--color-sidebar-search-icon);content:"";height:var(--sidebar-search-icon-size);left:var(--sidebar-item-spacing-horizontal);-webkit-mask-image:var(--icon-search);mask-image:var(--icon-search);position:absolute;width:var(--sidebar-search-icon-size)}.sidebar-search{background:transparent;border:none;border-bottom:1px solid var(--color-sidebar-search-border);border-top:1px solid var(--color-sidebar-search-border);box-sizing:border-box;color:var(--color-sidebar-search-foreground);padding:var(--sidebar-search-input-spacing-vertical) var(--sidebar-search-input-spacing-horizontal) var(--sidebar-search-input-spacing-vertical) calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size));width:100%;z-index:10}.sidebar-search:focus{outline:none}.sidebar-search::-moz-placeholder{font-size:var(--sidebar-search-input-font-size)}.sidebar-search::placeholder{font-size:var(--sidebar-search-input-font-size)}#searchbox .highlight-link{margin:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0;text-align:center}#searchbox .highlight-link a{color:var(--color-sidebar-search-icon);font-size:var(--font-size--small--2)}.sidebar-tree{font-size:var(--sidebar-item-font-size);margin-bottom:var(--sidebar-item-spacing-vertical);margin-top:var(--sidebar-tree-space-above)}.sidebar-tree ul{display:flex;flex-direction:column;list-style:none;margin-bottom:0;margin-top:0;padding:0}.sidebar-tree li{margin:0;position:relative}.sidebar-tree li>ul{margin-left:var(--sidebar-item-spacing-horizontal)}.sidebar-tree .icon,.sidebar-tree .reference{color:var(--color-sidebar-link-text)}.sidebar-tree .reference{box-sizing:border-box;display:inline-block;height:100%;line-height:var(--sidebar-item-line-height);overflow-wrap:anywhere;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none;width:100%}.sidebar-tree .reference:hover{background:var(--color-sidebar-item-background--hover);color:var(--color-sidebar-link-text)}.sidebar-tree .reference.external:after{color:var(--color-sidebar-link-text);content:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23607D8B' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' viewBox='0 0 24 24'%3E%3Cpath stroke='none' d='M0 0h24v24H0z'/%3E%3Cpath d='M11 7H6a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2v-5M10 14 20 4M15 4h5v5'/%3E%3C/svg%3E");margin:0 .25rem;vertical-align:middle}.sidebar-tree .current-page>.reference{font-weight:700}.sidebar-tree label{align-items:center;cursor:pointer;display:flex;height:var(--sidebar-item-height);justify-content:center;position:absolute;right:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:var(--sidebar-expander-width)}.sidebar-tree .caption,.sidebar-tree :not(.caption)>.caption-text{color:var(--color-sidebar-caption-text);font-size:var(--sidebar-caption-font-size);font-weight:700;margin:var(--sidebar-caption-space-above) 0 0 0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-transform:uppercase}.sidebar-tree li.has-children>.reference{padding-right:var(--sidebar-expander-width)}.sidebar-tree .toctree-l1>.reference,.sidebar-tree .toctree-l1>label .icon{color:var(--color-sidebar-link-text--top-level)}.sidebar-tree label{background:var(--color-sidebar-item-expander-background)}.sidebar-tree label:hover{background:var(--color-sidebar-item-expander-background--hover)}.sidebar-tree .current>.reference{background:var(--color-sidebar-item-background--current)}.sidebar-tree .current>.reference:hover{background:var(--color-sidebar-item-background--hover)}.toctree-checkbox{display:none;position:absolute}.toctree-checkbox~ul{display:none}.toctree-checkbox~label .icon svg{transform:rotate(90deg)}.toctree-checkbox:checked~ul{display:block}.toctree-checkbox:checked~label .icon svg{transform:rotate(-90deg)}.toc-title-container{padding:var(--toc-title-padding);padding-top:var(--toc-spacing-vertical)}.toc-title{color:var(--color-toc-title-text);font-size:var(--toc-title-font-size);padding-left:var(--toc-spacing-horizontal);text-transform:uppercase}.no-toc{display:none}.toc-tree-container{padding-bottom:var(--toc-spacing-vertical)}.toc-tree{border-left:1px solid var(--color-background-border);font-size:var(--toc-font-size);line-height:1.3;padding-left:calc(var(--toc-spacing-horizontal) - var(--toc-item-spacing-horizontal))}.toc-tree>ul>li:first-child{padding-top:0}.toc-tree>ul>li:first-child>ul{padding-left:0}.toc-tree>ul>li:first-child>a{display:none}.toc-tree ul{list-style-type:none;margin-bottom:0;margin-top:0;padding-left:var(--toc-item-spacing-horizontal)}.toc-tree li{padding-top:var(--toc-item-spacing-vertical)}.toc-tree li.scroll-current>.reference{color:var(--color-toc-item-text--active);font-weight:700}.toc-tree a.reference{color:var(--color-toc-item-text);overflow-wrap:anywhere;text-decoration:none}.toc-scroll{max-height:100vh;overflow-y:scroll}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here){background:rgba(255,0,0,.25);color:var(--color-problematic)}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here):before{content:"ERROR: Adding a table of contents in Furo-based documentation is unnecessary, and does not work well with existing styling. Add a 'this-will-duplicate-information-and-it-is-still-useful-here' class, if you want an escape hatch."}.text-align\:left>p{text-align:left}.text-align\:center>p{text-align:center}.text-align\:right>p{text-align:right} /*# sourceMappingURL=furo.css.map*/ \ No newline at end of file diff --git a/docs/en/_static/styles/furo.css.map b/docs/en/_static/styles/furo.css.map index 6e02d0b1a..0ee3acbe1 100644 --- a/docs/en/_static/styles/furo.css.map +++ b/docs/en/_static/styles/furo.css.map @@ -1 +1 @@ -{"version":3,"file":"styles/furo.css","mappings":"AAAA,2EAA2E,CAU3E,KACE,gBAAiB,CACjB,6BACF,CASA,KACE,QACF,CAMA,KACE,aACF,CAOA,GACE,aAAc,CACd,cACF,CAUA,GACE,sBAAuB,CACvB,QAAS,CACT,gBACF,CAOA,IACE,+BAAiC,CACjC,aACF,CASA,EACE,4BACF,CAOA,YACE,kBAAmB,CACnB,yBAA0B,CAC1B,gCACF,CAMA,SAEE,kBACF,CAOA,cAGE,+BAAiC,CACjC,aACF,CAeA,QAEE,aAAc,CACd,aAAc,CACd,iBAAkB,CAClB,uBACF,CAEA,IACE,aACF,CAEA,IACE,SACF,CASA,IACE,iBACF,CAUA,sCAKE,mBAAoB,CACpB,cAAe,CACf,gBAAiB,CACjB,QACF,CAOA,aAEE,gBACF,CAOA,cAEE,mBACF,CAMA,gDAIE,yBACF,CAMA,wHAIE,iBAAkB,CAClB,SACF,CAMA,4GAIE,6BACF,CAMA,SACE,0BACF,CASA,OACE,qBAAsB,CACtB,aAAc,CACd,aAAc,CACd,cAAe,CACf,SAAU,CACV,kBACF,CAMA,SACE,uBACF,CAMA,SACE,aACF,CAOA,6BAEE,qBAAsB,CACtB,SACF,CAMA,kFAEE,WACF,CAOA,cACE,4BAA6B,CAC7B,mBACF,CAMA,yCACE,uBACF,CAOA,6BACE,yBAA0B,CAC1B,YACF,CASA,QACE,aACF,CAMA,QACE,iBACF,CAiBA,kBACE,YACF,CCvVA,aAcE,kEACE,uBAOF,WACE,iDAMF,gCACE,wBAEF,qCAEE,uBADA,uBACA,CAEF,SACE,wBAtBA,CCpBJ,iBAGE,qBAEA,sBACA,0BAFA,oBAHA,4BACA,oBAKA,6BAIA,2CAFA,mBACA,sCAFA,4BAGA,CAEF,gBACE,aCTF,KCGE,mHAEA,wGAEA,wCAAyC,CAEzC,wBAAyB,CACzB,wBAAyB,CACzB,4BAA6B,CAC7B,yBAA0B,CAC1B,2BAA4B,CAG5B,sDAAuD,CACvD,gDAAiD,CACjD,wDAAyD,CAGzD,0CAA2C,CAC3C,gDAAiD,CACjD,gDAAiD,CAKjD,gCAAiC,CACjC,sCAAuC,CAGvC,2CAA4C,CAG5C,uCAAwC,CCjCxC,+FAGA,uBAAwB,CAGxB,iCAAkC,CAClC,kCAAmC,CAEnC,+BAAgC,CAChC,sCAAuC,CACvC,sCAAuC,CACvC,qGAIA,mDAAoD,CAEpD,mCAAoC,CACpC,8CAA+C,CAC/C,gDAAiD,CACjD,kCAAmC,CACnC,6DAA8D,CAG9D,6BAA8B,CAC9B,6BAA8B,CAC9B,+BAAgC,CAChC,kCAAmC,CACnC,kCAAmC,CCPjC,+jBCYA,iqCAZF,iaCVA,8KAOA,4SAWA,4SAUA,0CACA,gEAGA,0CAGA,gEAGA,yCACA,+DAIA,4CACA,kEAGA,wCAUA,8DACA,uCAGA,4DACA,sCACA,2DAGA,4CACA,kEACA,uCAGA,6DACA,2GAGA,sHAEA,yFAEA,+CACA,+EAGA,4MAOA,gCACA,sHAIA,kCACA,uEACA,gEACA,4DACA,kEAGA,2DACA,sDACA,0CACA,8CACA,wGAGA,0BACA,iCAGA,+DACA,+BACA,sCACA,+DAEA,kGACA,oCACA,yDACA,sCL7HF,kCAEA,sDAIA,0CK2HE,kEAIA,oDACA,sDAGA,oCACA,oEAEA,0DACA,qDAIA,oDACA,6DAIA,iEAIA,2DAIA,2DAGA,4DACA,gEAIA,gEAEA,gFAEA,oNASA,qDLxKE,gFAGE,4DAIF,oEKkHF,yEAEA,6DAGA,0DAEA,uDACA,qDACA,wDAIA,6DAIA,yDACA,2DAIA,uCAGA,wCACA,sDAGA,+CAGA,6DAEA,iDACA,+DAEA,wDAEA,sEAMA,0DACA,sBACA,mEL9JI,wEAEA,iCACE,+BAMN,wEAGA,iCACE,kFAEA,uEAIF,gEACE,8BAGF,qEMvDA,sCAKA,wFAKA,iCAIA,0BAWA,iCACA,4BACA,mCAGA,+BAEA,sCACA,4BAEA,mCAEA,sCAKA,sDAIA,gCAEA,gEAQF,wCAME,sBACA,kCAKA,uBAEA,gEAIA,2BAIA,mCAEA,qCACA,iCAGE,+BACA,wEAEE,iCACA,kFAGF,6BACA,0CACF,kCAEE,8BACE,8BACA,qEAEE,sCACA,wFCjFN,iCAGF,2DAEE,4BACA,oCAGA,mIAGA,4HACE,gEAMJ,+CAGE,sBACA,yCAEF,uBAEE,sEAKA,gDACA,kEAGA,iFAGE,YAGF,EACA,4HAQF,mBACE,6BACA,mBACA,wCACA,wCACA,2CAIA,eAGA,mBAKE,mBAGA,CAJA,uCACA,iBAFF,gBACE,CAKE,mBACA,mBAGJ,oBAIF,+BAGE,kDACA,OADA,kBAGA,CAFA,gBAEA,mBACA,oBAEA,sCACA,OAGF,cAHE,WAGF,GAEE,oBACA,CAHF,gBAGE,CChHc,YDmHd,+CAIF,SAEE,CAPF,UACE,wBAMA,4BAEA,GAGA,uBACA,CAJA,yBAGA,CACA,iDAKA,2CAGA,2DAQA,iBACA,uCAGA,kEAKE,SAKJ,8BACE,yDACA,2BAEA,oBACA,8BAEA,yDAEE,4BAEJ,uCACE,CACA,iEAGA,CAEA,wCACE,uBACA,kDAEA,0DAEE,CAJF,oBAIE,0GASJ,aAEF,CAFE,YAEF,4HASE,+CACA,sBAGF,sBASE,4BAFF,0CAEE,CARA,qCAwBF,CAhBE,iBAEA,kBACE,aADF,4BACE,WAOF,2BAEF,qCAIA,CAbI,UAaJ,+BACE,uBAEA,SAGA,0CAGE,CANF,qCAGA,CAGE,2DACE,gBAKJ,+CAGF,CAEA,kDAME,CARF,8BAEA,CAQE,YAEA,CAlBI,2BAGJ,CAJI,UACA,CAcJ,UAIA,4GAIF,iCAGE,8BAIA,qBACA,mBACF,QACE,gBAOE,0CAGA,CATF,6DAME,CANF,sBASE,qCAKF,CAEE,cACA,CAHF,sBAGE,gCAEA,qBAOJ,wBACE,sCAIA,mBAEA,6BAKA,kCACA,CAHA,sBAEA,cAJA,eACA,MAIA,2FAIA,UACA,YACA,sBACE,8BAEA,CALF,aACA,WAIE,CACA,0BAEF,aACE,qBAEF,qCAgBA,kBACE,CAhBA,qDASA,qCAEJ,CAGI,YACF,CAJF,2BAGI,CAGA,eACE,CAAF,oBAEA,mEAEA,qBACA,eAGF,CAHE,cAIA,kBADF,kBACE,yBAEJ,oCAGI,qDAIA,+BAMF,oCAEA,+CAEA,gCAIA,YACE,yBAEA,qBACA,eAGA,uBAFA,WAEA,CAHA,cACA,CAEA,4BAIE,qCACA,cAFA,eADA,qBACA,cAEA,mDACE,CACA,oCACA,4EAEN,uCAMA,eACE,kDAIA,mBADF,sBACE,mBAIA,aACA,sCAGA,aADA,WACA,CAMA,UAFF,kBAEE,CAJJ,gBAEE,CAJE,iBAMA,yFAQA,aACA,eEpbJ,cACE,iBACA,YAEA,CAFA,iBAEA,+DAGA,mBAKA,gCAGA,CARA,SAIA,SACA,CALA,0EAIA,CAJA,OAQA,0CACE,UAGF,iDAGF,CAHE,UAGF,8CAEE,CAFF,UAEE,CACA,uCAEA,WACA,WAFA,UAEA,6CAIA,yCACA,WAGA,WAJA,UAIA,gDACE,aASF,0CACE,CAFF,mBAEE,wEACA,CATA,YACA,CAKF,kBACA,CALE,MAGJ,CAII,eACA,CAJF,iCALE,cACA,CAHA,oBACA,CAKJ,SAKI,2BADA,UACA,6BAEJ,WACE,0DACA,kBACE,gCACA,mBADA,YACA,oEACA,2CAMF,mDAII,CAJJ,aADF,cACE,kBAII,kEACA,iBACE,mEACA,6BACE,wBADF,cACE,mCACA,qDANN,kCACE,6BAEE,mBADF,0CACE,CAFF,eACA,MACE,0DACA,wCACE,sGACA,WANN,yBACE,uCACA,CAFF,UAEE,2CACE,0FACA,cACE,kEACA,mEANN,yBACE,4DACA,sBACE,+EAEE,iEACA,qEANN,sCACE,CAGE,iBAHF,gBAGE,qBACE,CAJJ,uBACA,gDACE,wDACA,6DAHF,2CACA,CADA,gBACA,eACE,CAGE,sBANN,8BACE,CAII,iBAFF,4DACA,WACE,YADF,uCACE,6EACA,2BANN,8CACE,kDACA,0CACE,8BACA,yFACE,sBACA,sFALJ,mEACA,sBACE,kEACA,6EACE,uCACA,kEALJ,qGAEE,kEACA,6EACE,uCACA,kEALJ,8CACA,uDACE,sEACA,2EACE,sCACA,iEALJ,mGACA,qCACE,oDACA,0DACE,6GACA,gDAGR,yDCrEA,sEACE,CACA,6GACE,gEACF,iGAIF,wFACE,qDAGA,mGAEE,2CAEF,4FACE,gCACF,wGACE,8DAEE,6FAIA,iJAKN,6GACE,gDAKF,yDACA,qCAGA,6BACA,kBACA,qDAKA,oCAEA,+DAGA,2CAGE,oDAIA,oEAEE,qBAGJ,wDAEE,uCAEF,kEAGA,8CAEA,uDAIF,gEAIE,6BACA,gEAIA,+CACE,0EAIF,sDAEE,+DAGF,sCACA,8BACE,oCAEJ,wBACE,4FAEE,gBAEJ,yGAGI,kBAGJ,CCnHE,2MCFF,oBAGE,wGAKA,iCACE,CADF,wBACE,8GAQA,mBCjBJ,2GAIE,mBACA,6HAMA,YACE,mIAYF,eACA,CAHF,YAGE,4FAGE,8BAKF,uBAkBE,sCACA,CADA,qBAbA,wCAIA,CALF,8BACE,CADF,gBAKE,wCACA,CAOA,kDACA,CACA,kCAKF,6BAGA,4CACE,kDACA,eAGF,cACE,aACA,iBACA,yBACA,8BACA,WAGJ,2BACE,cAGA,+BACA,CAHA,eAGA,wCACA,YACA,iBACA,uEAGA,0BACA,2CAEA,8EAGI,qBACA,CAFF,kBAEE,kBAGN,0CAGE,mCAGA,4BAIA,gEACE,qCACA,8BAEA,gBACA,+CACA,iCAEF,iCAEE,gEACA,qCAGF,8BAEE,+BAIA,yCAEE,qBADA,gBACA,yBAKF,eACA,CAFF,YACE,CACA,iBACA,qDAEA,mDCvIJ,2FAOE,iCACA,CAEA,eACA,CAHA,kBAEA,CAFA,wBAGA,8BACA,eACE,CAFF,YAEE,0BACA,8CAGA,oBACE,oCAGA,kBACE,8DAEA,iBAEN,UACE,8BAIJ,+CAEE,qDAEF,kDAIE,YAEF,CAFE,YAEF,CCpCE,mFADA,kBAKE,CAJF,IAGA,aACE,mCAGA,iDACE,+BAEJ,wBAEE,mBAMA,6CAEF,CAJE,mBAEA,CAEF,kCAGE,CARF,kBACE,CAHA,eAUA,YACA,mBACA,CADA,UACA,wCC9BF,oBDkCE,wBCnCJ,uCACE,+BACA,+DACA,sBAGA,qBCDA,6CAIE,CAPF,uBAGA,CDGE,oBACF,yDAEE,CCDE,2CAGF,CAJA,kCACE,CDJJ,YACE,CAIA,eCTF,CDKE,uBCMA,gCACE,YAEF,oCAEE,wBACA,0BAIF,iBAEA,cADF,UACE,uBAEA,iCAEA,wCAEA,6CAMA,CAYF,gCATI,4BASJ,CAZE,mCAEE,iCAUJ,4BAGE,4DADA,+BACA,CAHF,qBAGE,sCACE,OAEF,iBAHA,SAGA,iHACE,2DAKF,CANA,8EAMA,uSAEE,kBAEF,+FACE,yCCjEJ,WACA,yBAGA,uBACA,gBAEA,uCAIA,CAJA,iCAIA,uCAGA,UACE,gBACA,qBAEA,0CClBJ,gBACE,KAGF,qBACE,YAGF,CAHE,cAGF,gCAEE,mBACA,iEAEA,oCACA,wCAEA,sBACA,WAEA,CAFA,YAEA,8EAEA,mCAFA,iBAEA,6BAIA,wEAKA,sDAIE,CARF,mDAIA,CAIE,cAEF,8CAIA,oBAFE,iBAEF,8CAGE,eAEF,CAFE,YAEF,OAEE,kBAGJ,CAJI,eACA,CAFF,mBAKF,yCCjDE,oBACA,CAFA,iBAEA,uCAKE,iBACA,qCAGA,mBCZJ,CDWI,gBCXJ,6BAEE,eACA,sBAGA,eAEA,sBACA,oDACA,iGAMA,gBAFE,YAEF,8FAME,iJClBF,YACA,gNAUE,6BAEF,oTAcI,kBACF,gHAIA,qBACE,eACF,qDACE,kBACF,6DACE,4BCxCJ,oBAEF,qCAEI,+CAGF,uBACE,uDAGJ,oBAiBI,kDACF,CAhBA,+CAaA,CAbA,oBAaA,0FAEE,CAFF,gGAdA,cACA,iBAaA,0BAGA,mQAIA,oNAEE,iBAGJ,CAHI,gBAFF,gBAKF,8CAYI,CAZJ,wCAYI,sVACE,iCAGA,uEAHA,QAGA,qXAKJ,iDAGF,CARM,+CACE,iDAIN,CALI,gBAQN,mHACE,gBAGF,2DACE,0EAOA,0EAGF,gBAEE,6DC/EA,kDACA,gCACA,qDAGA,qBACA,qDCFA,cACA,eAEA,yBAGF,sBAEE,iBACA,sNAWA,iBACE,kBACA,wRAgBA,kBAEA,iOAgBA,uCACE,uEAEA,kBAEF,qUAuBE,iDAIJ,CACA,geCxFF,4BAEE,CAQA,6JACA,iDAIA,sEAGA,mDAOF,iDAGE,4DAIA,8CACA,qDAEE,eAFF,cAEE,oBAEF,uBAFE,kCAGA,eACA,iBACA,mBAIA,mDACA,CAHA,uCAEA,CAJA,0CACA,CAIA,gBAJA,gBACA,oBADA,gBAIA,wBAEJ,gBAGE,6BACA,YAHA,iBAGA,gCACA,iEAEA,6CACA,sDACA,0BADA,wBACA,0BACA,oIAIA,mBAFA,YAEA,qBACA,0CAIE,uBAEF,CAHA,yBACE,CAEF,iDACE,mFAKJ,oCACE,CANE,aAKJ,CACE,qEAIA,YAFA,WAEA,CAHA,aACA,CAEA,gBACE,4BACA,sBADA,aACA,gCAMF,oCACA,yDACA,2CAEA,qBAGE,kBAEA,CACA,mCAIF,CARE,YACA,CAOF,iCAEE,CAPA,oBACA,CAQA,oBACE,uDAEJ,sDAGA,CAHA,cAGA,0BACE,oDAIA,oCACA,4BACA,sBAGA,cAEA,oFAGA,sBAEA,yDACE,CAIF,iBAJE,wBAIF,6CAHE,6CAKA,eACA,aACA,CADA,cACA,yCAGJ,kBACE,CAKA,iDAEA,CARF,aACE,4CAGA,kBAIA,wEAGA,wDAGA,kCAOA,iDAGA,CAPF,WAEE,sCAEA,CAJF,2CACE,CAMA,qCACA,+BARF,kBACE,qCAOA,iBAsBA,sBACE,CAvBF,WAKA,CACE,0DAIF,CALA,uDACE,CANF,sBAqBA,4CACA,CALA,gRAIA,YAEE,6CAEN,mCAEE,+CASA,6EAIA,4BChNA,SDmNA,qFCnNA,gDACA,sCAGA,qCACA,sDACA,CAKA,kDAGA,CARA,0CAQA,kBAGA,YACA,sBACA,iBAFA,gBADF,YACE,CAHA,SAKA,kBAEA,SAFA,iBAEA,uEAGA,CAEE,6CAFF,oCAgBI,CAdF,yBACE,qBACF,CAGF,oBACE,CAIF,WACE,CALA,2CAGA,uBACF,CACE,mFAGE,CALF,qBAEA,UAGE,gCAIF,sDAEA,CALE,oCAKF,yCC7CJ,oCACE,CD+CA,yXAQE,sCCrDJ,wCAGA,oCACE","sources":["webpack:///./node_modules/normalize.css/normalize.css","webpack:///./src/furo/assets/styles/base/_print.sass","webpack:///./src/furo/assets/styles/base/_screen-readers.sass","webpack:///./src/furo/assets/styles/base/_theme.sass","webpack:///./src/furo/assets/styles/variables/_fonts.scss","webpack:///./src/furo/assets/styles/variables/_spacing.scss","webpack:///./src/furo/assets/styles/variables/_icons.scss","webpack:///./src/furo/assets/styles/variables/_admonitions.scss","webpack:///./src/furo/assets/styles/variables/_colors.scss","webpack:///./src/furo/assets/styles/base/_typography.sass","webpack:///./src/furo/assets/styles/_scaffold.sass","webpack:///./src/furo/assets/styles/variables/_layout.scss","webpack:///./src/furo/assets/styles/content/_admonitions.sass","webpack:///./src/furo/assets/styles/content/_api.sass","webpack:///./src/furo/assets/styles/content/_blocks.sass","webpack:///./src/furo/assets/styles/content/_captions.sass","webpack:///./src/furo/assets/styles/content/_code.sass","webpack:///./src/furo/assets/styles/content/_footnotes.sass","webpack:///./src/furo/assets/styles/content/_images.sass","webpack:///./src/furo/assets/styles/content/_indexes.sass","webpack:///./src/furo/assets/styles/content/_lists.sass","webpack:///./src/furo/assets/styles/content/_math.sass","webpack:///./src/furo/assets/styles/content/_misc.sass","webpack:///./src/furo/assets/styles/content/_rubrics.sass","webpack:///./src/furo/assets/styles/content/_sidebar.sass","webpack:///./src/furo/assets/styles/content/_tables.sass","webpack:///./src/furo/assets/styles/content/_target.sass","webpack:///./src/furo/assets/styles/content/_gui-labels.sass","webpack:///./src/furo/assets/styles/components/_footer.sass","webpack:///./src/furo/assets/styles/components/_sidebar.sass","webpack:///./src/furo/assets/styles/components/_table_of_contents.sass","webpack:///./src/furo/assets/styles/_shame.sass"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","// This file contains styles for managing print media.\n\n////////////////////////////////////////////////////////////////////////////////\n// Hide elements not relevant to print media.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n // Hide icon container.\n .content-icon-container\n display: none !important\n\n // Hide showing header links if hovering over when printing.\n .headerlink\n display: none !important\n\n // Hide mobile header.\n .mobile-header\n display: none !important\n\n // Hide navigation links.\n .related-pages\n display: none !important\n\n////////////////////////////////////////////////////////////////////////////////\n// Tweaks related to decolorization.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n // Apply a border around code which no longer have a color background.\n .highlight\n border: 0.1pt solid var(--color-foreground-border)\n\n////////////////////////////////////////////////////////////////////////////////\n// Avoid page break in some relevant cases.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n ul, ol, dl, a, table, pre, blockquote\n page-break-inside: avoid\n\n h1, h2, h3, h4, h5, h6, img, figure, caption\n page-break-inside: avoid\n page-break-after: avoid\n\n ul, ol, dl\n page-break-before: avoid\n",".visually-hidden\n position: absolute !important\n width: 1px !important\n height: 1px !important\n padding: 0 !important\n margin: -1px !important\n overflow: hidden !important\n clip: rect(0,0,0,0) !important\n white-space: nowrap !important\n border: 0 !important\n color: var(--color-foreground-primary)\n background: var(--color-background-primary)\n\n:-moz-focusring\n outline: auto\n","// This file serves as the \"skeleton\" of the theming logic.\n//\n// This contains the bulk of the logic for handling dark mode, color scheme\n// toggling and the handling of color-scheme-specific hiding of elements.\n\nbody\n @include fonts\n @include spacing\n @include icons\n @include admonitions\n @include default-admonition(#651fff, \"abstract\")\n @include default-topic(#14B8A6, \"pencil\")\n\n @include colors\n\n.only-light\n display: block !important\nhtml body .only-dark\n display: none !important\n\n// Ignore dark-mode hints if print media.\n@media not print\n // Enable dark-mode, if requested.\n body[data-theme=\"dark\"]\n @include colors-dark\n\n html & .only-light\n display: none !important\n .only-dark\n display: block !important\n\n // Enable dark mode, unless explicitly told to avoid.\n @media (prefers-color-scheme: dark)\n body:not([data-theme=\"light\"])\n @include colors-dark\n\n html & .only-light\n display: none !important\n .only-dark\n display: block !important\n\n//\n// Theme toggle presentation\n//\nbody[data-theme=\"auto\"]\n .theme-toggle svg.theme-icon-when-auto-light\n display: block\n\n @media (prefers-color-scheme: dark)\n .theme-toggle svg.theme-icon-when-auto-dark\n display: block\n .theme-toggle svg.theme-icon-when-auto-light\n display: none\n\nbody[data-theme=\"dark\"]\n .theme-toggle svg.theme-icon-when-dark\n display: block\n\nbody[data-theme=\"light\"]\n .theme-toggle svg.theme-icon-when-light\n display: block\n","// Fonts used by this theme.\n//\n// There are basically two things here -- using the system font stack and\n// defining sizes for various elements in %ages. We could have also used `em`\n// but %age is easier to reason about for me.\n\n@mixin fonts {\n // These are adapted from https://systemfontstack.com/\n --font-stack: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial,\n sans-serif, Apple Color Emoji, Segoe UI Emoji;\n --font-stack--monospace: \"SFMono-Regular\", Menlo, Consolas, Monaco,\n Liberation Mono, Lucida Console, monospace;\n --font-stack--headings: var(--font-stack);\n\n --font-size--normal: 100%;\n --font-size--small: 87.5%;\n --font-size--small--2: 81.25%;\n --font-size--small--3: 75%;\n --font-size--small--4: 62.5%;\n\n // Sidebar\n --sidebar-caption-font-size: var(--font-size--small--2);\n --sidebar-item-font-size: var(--font-size--small);\n --sidebar-search-input-font-size: var(--font-size--small);\n\n // Table of Contents\n --toc-font-size: var(--font-size--small--3);\n --toc-font-size--mobile: var(--font-size--normal);\n --toc-title-font-size: var(--font-size--small--4);\n\n // Admonitions\n //\n // These aren't defined in terms of %ages, since nesting these is permitted.\n --admonition-font-size: 0.8125rem;\n --admonition-title-font-size: 0.8125rem;\n\n // Code\n --code-font-size: var(--font-size--small--2);\n\n // API\n --api-font-size: var(--font-size--small);\n}\n","// Spacing for various elements on the page\n//\n// If the user wants to tweak things in a certain way, they are permitted to.\n// They also have to deal with the consequences though!\n\n@mixin spacing {\n // Header!\n --header-height: calc(\n var(--sidebar-item-line-height) + 4 * #{var(--sidebar-item-spacing-vertical)}\n );\n --header-padding: 0.5rem;\n\n // Sidebar\n --sidebar-tree-space-above: 1.5rem;\n --sidebar-caption-space-above: 1rem;\n\n --sidebar-item-line-height: 1rem;\n --sidebar-item-spacing-vertical: 0.5rem;\n --sidebar-item-spacing-horizontal: 1rem;\n --sidebar-item-height: calc(\n var(--sidebar-item-line-height) + 2 *#{var(--sidebar-item-spacing-vertical)}\n );\n\n --sidebar-expander-width: var(--sidebar-item-height); // be square\n\n --sidebar-search-space-above: 0.5rem;\n --sidebar-search-input-spacing-vertical: 0.5rem;\n --sidebar-search-input-spacing-horizontal: 0.5rem;\n --sidebar-search-input-height: 1rem;\n --sidebar-search-icon-size: var(--sidebar-search-input-height);\n\n // Table of Contents\n --toc-title-padding: 0.25rem 0;\n --toc-spacing-vertical: 1.5rem;\n --toc-spacing-horizontal: 1.5rem;\n --toc-item-spacing-vertical: 0.4rem;\n --toc-item-spacing-horizontal: 1rem;\n}\n","// Expose theme icons as CSS variables.\n\n$icons: (\n // Adapted from tabler-icons\n // url: https://tablericons.com/\n \"search\":\n url('data:image/svg+xml;charset=utf-8,'),\n // Factored out from mkdocs-material on 24-Aug-2020.\n // url: https://squidfunk.github.io/mkdocs-material/reference/admonitions/\n \"pencil\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"abstract\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"info\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"flame\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"question\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"warning\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"failure\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"spark\":\n url('data:image/svg+xml;charset=utf-8,')\n);\n\n@mixin icons {\n @each $name, $glyph in $icons {\n --icon-#{$name}: #{$glyph};\n }\n}\n","// Admonitions\n\n// Structure of these is:\n// admonition-class: color \"icon-name\";\n//\n// The colors are translated into CSS variables below. The icons are\n// used directly in the main declarations to set the `mask-image` in\n// the title.\n\n// prettier-ignore\n$admonitions: (\n // Each of these has an reST directives for it.\n \"caution\": #ff9100 \"spark\",\n \"warning\": #ff9100 \"warning\",\n \"danger\": #ff5252 \"spark\",\n \"attention\": #ff5252 \"warning\",\n \"error\": #ff5252 \"failure\",\n \"hint\": #00c852 \"question\",\n \"tip\": #00c852 \"info\",\n \"important\": #00bfa5 \"flame\",\n \"note\": #00b0ff \"pencil\",\n \"seealso\": #448aff \"info\",\n \"admonition-todo\": #808080 \"pencil\"\n);\n\n@mixin default-admonition($color, $icon-name) {\n --color-admonition-title: #{$color};\n --color-admonition-title-background: #{rgba($color, 0.2)};\n\n --icon-admonition-default: var(--icon-#{$icon-name});\n}\n\n@mixin default-topic($color, $icon-name) {\n --color-topic-title: #{$color};\n --color-topic-title-background: #{rgba($color, 0.2)};\n\n --icon-topic-default: var(--icon-#{$icon-name});\n}\n\n@mixin admonitions {\n @each $name, $values in $admonitions {\n --color-admonition-title--#{$name}: #{nth($values, 1)};\n --color-admonition-title-background--#{$name}: #{rgba(\n nth($values, 1),\n 0.2\n )};\n }\n}\n","// Colors used throughout this theme.\n//\n// The aim is to give the user more control. Thus, instead of hard-coding colors\n// in various parts of the stylesheet, the approach taken is to define all\n// colors as CSS variables and reusing them in all the places.\n//\n// `colors-dark` depends on `colors` being included at a lower specificity.\n\n@mixin colors {\n --color-problematic: #b30000;\n\n // Base Colors\n --color-foreground-primary: black; // for main text and headings\n --color-foreground-secondary: #5a5c63; // for secondary text\n --color-foreground-muted: #6b6f76; // for muted text\n --color-foreground-border: #878787; // for content borders\n\n --color-background-primary: white; // for content\n --color-background-secondary: #f8f9fb; // for navigation + ToC\n --color-background-hover: #efeff4ff; // for navigation-item hover\n --color-background-hover--transparent: #efeff400;\n --color-background-border: #eeebee; // for UI borders\n --color-background-item: #ccc; // for \"background\" items (eg: copybutton)\n\n // Announcements\n --color-announcement-background: #000000dd;\n --color-announcement-text: #eeebee;\n\n // Brand colors\n --color-brand-primary: #0a4bff;\n --color-brand-content: #2757dd;\n --color-brand-visited: #872ee0;\n\n // API documentation\n --color-api-background: var(--color-background-hover--transparent);\n --color-api-background-hover: var(--color-background-hover);\n --color-api-overall: var(--color-foreground-secondary);\n --color-api-name: var(--color-problematic);\n --color-api-pre-name: var(--color-problematic);\n --color-api-paren: var(--color-foreground-secondary);\n --color-api-keyword: var(--color-foreground-primary);\n\n --color-api-added: #21632c;\n --color-api-added-border: #38a84d;\n --color-api-changed: #046172;\n --color-api-changed-border: #06a1bc;\n --color-api-deprecated: #605706;\n --color-api-deprecated-border: #f0d90f;\n --color-api-removed: #b30000;\n --color-api-removed-border: #ff5c5c;\n\n --color-highlight-on-target: #ffffcc;\n\n // Inline code background\n --color-inline-code-background: var(--color-background-secondary);\n\n // Highlighted text (search)\n --color-highlighted-background: #ddeeff;\n --color-highlighted-text: var(--color-foreground-primary);\n\n // GUI Labels\n --color-guilabel-background: #ddeeff80;\n --color-guilabel-border: #bedaf580;\n --color-guilabel-text: var(--color-foreground-primary);\n\n // Admonitions!\n --color-admonition-background: transparent;\n\n //////////////////////////////////////////////////////////////////////////////\n // Everything below this should be one of:\n // - var(...)\n // - *-gradient(...)\n // - special literal values (eg: transparent, none)\n //////////////////////////////////////////////////////////////////////////////\n\n // Tables\n --color-table-header-background: var(--color-background-secondary);\n --color-table-border: var(--color-background-border);\n\n // Cards\n --color-card-border: var(--color-background-secondary);\n --color-card-background: transparent;\n --color-card-marginals-background: var(--color-background-secondary);\n\n // Header\n --color-header-background: var(--color-background-primary);\n --color-header-border: var(--color-background-border);\n --color-header-text: var(--color-foreground-primary);\n\n // Sidebar (left)\n --color-sidebar-background: var(--color-background-secondary);\n --color-sidebar-background-border: var(--color-background-border);\n\n --color-sidebar-brand-text: var(--color-foreground-primary);\n --color-sidebar-caption-text: var(--color-foreground-muted);\n --color-sidebar-link-text: var(--color-foreground-secondary);\n --color-sidebar-link-text--top-level: var(--color-brand-primary);\n\n --color-sidebar-item-background: var(--color-sidebar-background);\n --color-sidebar-item-background--current: var(\n --color-sidebar-item-background\n );\n --color-sidebar-item-background--hover: linear-gradient(\n 90deg,\n var(--color-background-hover--transparent) 0%,\n var(--color-background-hover) var(--sidebar-item-spacing-horizontal),\n var(--color-background-hover) 100%\n );\n\n --color-sidebar-item-expander-background: transparent;\n --color-sidebar-item-expander-background--hover: var(\n --color-background-hover\n );\n\n --color-sidebar-search-text: var(--color-foreground-primary);\n --color-sidebar-search-background: var(--color-background-secondary);\n --color-sidebar-search-background--focus: var(--color-background-primary);\n --color-sidebar-search-border: var(--color-background-border);\n --color-sidebar-search-icon: var(--color-foreground-muted);\n\n // Table of Contents (right)\n --color-toc-background: var(--color-background-primary);\n --color-toc-title-text: var(--color-foreground-muted);\n --color-toc-item-text: var(--color-foreground-secondary);\n --color-toc-item-text--hover: var(--color-foreground-primary);\n --color-toc-item-text--active: var(--color-brand-primary);\n\n // Actual page contents\n --color-content-foreground: var(--color-foreground-primary);\n --color-content-background: transparent;\n\n // Links\n --color-link: var(--color-brand-content);\n --color-link-underline: var(--color-background-border);\n --color-link--hover: var(--color-brand-content);\n --color-link-underline--hover: var(--color-foreground-border);\n\n --color-link--visited: var(--color-brand-visited);\n --color-link-underline--visited: var(--color-background-border);\n --color-link--visited--hover: var(--color-brand-visited);\n --color-link-underline--visited--hover: var(--color-foreground-border);\n}\n\n@mixin colors-dark {\n --color-problematic: #ee5151;\n\n // Base Colors\n --color-foreground-primary: #cfd0d0; // for main text and headings\n --color-foreground-secondary: #9ca0a5; // for secondary text\n --color-foreground-muted: #81868d; // for muted text\n --color-foreground-border: #666666; // for content borders\n\n --color-background-primary: #131416; // for content\n --color-background-secondary: #1a1c1e; // for navigation + ToC\n --color-background-hover: #1e2124ff; // for navigation-item hover\n --color-background-hover--transparent: #1e212400;\n --color-background-border: #303335; // for UI borders\n --color-background-item: #444; // for \"background\" items (eg: copybutton)\n\n // Announcements\n --color-announcement-background: #000000dd;\n --color-announcement-text: #eeebee;\n\n // Brand colors\n --color-brand-primary: #3d94ff;\n --color-brand-content: #5ca5ff;\n --color-brand-visited: #b27aeb;\n\n // Highlighted text (search)\n --color-highlighted-background: #083563;\n\n // GUI Labels\n --color-guilabel-background: #08356380;\n --color-guilabel-border: #13395f80;\n\n // API documentation\n --color-api-keyword: var(--color-foreground-secondary);\n --color-highlight-on-target: #333300;\n\n --color-api-added: #3db854;\n --color-api-added-border: #267334;\n --color-api-changed: #09b0ce;\n --color-api-changed-border: #056d80;\n --color-api-deprecated: #b1a10b;\n --color-api-deprecated-border: #6e6407;\n --color-api-removed: #ff7575;\n --color-api-removed-border: #b03b3b;\n\n // Admonitions\n --color-admonition-background: #18181a;\n\n // Cards\n --color-card-border: var(--color-background-secondary);\n --color-card-background: #18181a;\n --color-card-marginals-background: var(--color-background-hover);\n}\n","// This file contains the styling for making the content throughout the page,\n// including fonts, paragraphs, headings and spacing among these elements.\n\nbody\n font-family: var(--font-stack)\npre,\ncode,\nkbd,\nsamp\n font-family: var(--font-stack--monospace)\n\n// Make fonts look slightly nicer.\nbody\n -webkit-font-smoothing: antialiased\n -moz-osx-font-smoothing: grayscale\n\n// Line height from Bootstrap 4.1\narticle\n line-height: 1.5\n\n//\n// Headings\n//\nh1,\nh2,\nh3,\nh4,\nh5,\nh6\n line-height: 1.25\n font-family: var(--font-stack--headings)\n font-weight: bold\n\n border-radius: 0.5rem\n margin-top: 0.5rem\n margin-bottom: 0.5rem\n margin-left: -0.5rem\n margin-right: -0.5rem\n padding-left: 0.5rem\n padding-right: 0.5rem\n\n + p\n margin-top: 0\n\nh1\n font-size: 2.5em\n margin-top: 1.75rem\n margin-bottom: 1rem\nh2\n font-size: 2em\n margin-top: 1.75rem\nh3\n font-size: 1.5em\nh4\n font-size: 1.25em\nh5\n font-size: 1.125em\nh6\n font-size: 1em\n\nsmall\n opacity: 75%\n font-size: 80%\n\n// Paragraph\np\n margin-top: 0.5rem\n margin-bottom: 0.75rem\n\n// Horizontal rules\nhr.docutils\n height: 1px\n padding: 0\n margin: 2rem 0\n background-color: var(--color-background-border)\n border: 0\n\n.centered\n text-align: center\n\n// Links\na\n text-decoration: underline\n\n color: var(--color-link)\n text-decoration-color: var(--color-link-underline)\n\n &:visited\n color: var(--color-link--visited)\n text-decoration-color: var(--color-link-underline--visited)\n &:hover\n color: var(--color-link--visited--hover)\n text-decoration-color: var(--color-link-underline--visited--hover)\n\n &:hover\n color: var(--color-link--hover)\n text-decoration-color: var(--color-link-underline--hover)\n &.muted-link\n color: inherit\n &:hover\n color: var(--color-link--hover)\n text-decoration-color: var(--color-link-underline--hover)\n &:visited\n color: var(--color-link--visited--hover)\n text-decoration-color: var(--color-link-underline--visited--hover)\n","// This file contains the styles for the overall layouting of the documentation\n// skeleton, including the responsive changes as well as sidebar toggles.\n//\n// This is implemented as a mobile-last design, which isn't ideal, but it is\n// reasonably good-enough and I got pretty tired by the time I'd finished this\n// to move the rules around to fix this. Shouldn't take more than 3-4 hours,\n// if you know what you're doing tho.\n\n// HACK: Not all browsers account for the scrollbar width in media queries.\n// This results in horizontal scrollbars in the breakpoint where we go\n// from displaying everything to hiding the ToC. We accomodate for this by\n// adding a bit of padding to the TOC drawer, disabling the horizontal\n// scrollbar and allowing the scrollbars to cover the padding.\n// https://www.456bereastreet.com/archive/201301/media_query_width_and_vertical_scrollbars/\n\n// HACK: Always having the scrollbar visible, prevents certain browsers from\n// causing the content to stutter horizontally between taller-than-viewport and\n// not-taller-than-viewport pages.\n\n$icon-size: 1.25rem\n\nhtml\n overflow-x: hidden\n overflow-y: scroll\n scroll-behavior: smooth\n\n.sidebar-scroll, .toc-scroll, article[role=main] *\n // Override Firefox scrollbar style\n scrollbar-width: thin\n scrollbar-color: var(--color-foreground-border) transparent\n\n // Override Chrome scrollbar styles\n &::-webkit-scrollbar\n width: 0.25rem\n height: 0.25rem\n &::-webkit-scrollbar-thumb\n background-color: var(--color-foreground-border)\n border-radius: 0.125rem\n\n//\n// Overalls\n//\nhtml,\nbody\n height: 100%\n color: var(--color-foreground-primary)\n background: var(--color-background-primary)\n\n.skip-to-content\n position: fixed\n padding: 1rem\n border-radius: 1rem\n left: 0.25rem\n top: 0.25rem\n z-index: 40\n background: var(--color-background-primary)\n color: var(--color-foreground-primary)\n\n transform: translateY(-200%)\n transition: transform 300ms ease-in-out\n\n &:focus-within\n transform: translateY(0%)\n\narticle\n color: var(--color-content-foreground)\n background: var(--color-content-background)\n overflow-wrap: break-word\n\n.page\n display: flex\n // fill the viewport for pages with little content.\n min-height: 100%\n\n.mobile-header\n width: 100%\n height: var(--header-height)\n background-color: var(--color-header-background)\n color: var(--color-header-text)\n border-bottom: 1px solid var(--color-header-border)\n\n // Looks like sub-script/super-script have this, and we need this to\n // be \"on top\" of those.\n z-index: 10\n\n // We don't show the header on large screens.\n display: none\n\n // Add shadow when scrolled\n &.scrolled\n border-bottom: none\n box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.1), 0 0.2rem 0.4rem rgba(0, 0, 0, 0.2)\n\n .header-center\n a\n color: var(--color-header-text)\n text-decoration: none\n\n.main\n display: flex\n flex: 1\n\n// Sidebar (left) also covers the entire left portion of screen.\n.sidebar-drawer\n box-sizing: border-box\n\n border-right: 1px solid var(--color-sidebar-background-border)\n background: var(--color-sidebar-background)\n\n display: flex\n justify-content: flex-end\n // These next two lines took me two days to figure out.\n width: calc((100% - #{$full-width}) / 2 + #{$sidebar-width})\n min-width: $sidebar-width\n\n// Scroll-along sidebars\n.sidebar-container,\n.toc-drawer\n box-sizing: border-box\n width: $sidebar-width\n\n.toc-drawer\n background: var(--color-toc-background)\n // See HACK described on top of this document\n padding-right: 1rem\n\n.sidebar-sticky,\n.toc-sticky\n position: sticky\n top: 0\n height: min(100%, 100vh)\n height: 100vh\n\n display: flex\n flex-direction: column\n\n.sidebar-scroll,\n.toc-scroll\n flex-grow: 1\n flex-shrink: 1\n\n overflow: auto\n scroll-behavior: smooth\n\n// Central items.\n.content\n padding: 0 $content-padding\n width: $content-width\n\n display: flex\n flex-direction: column\n justify-content: space-between\n\n.icon\n display: inline-block\n height: 1rem\n width: 1rem\n svg\n width: 100%\n height: 100%\n\n//\n// Accommodate announcement banner\n//\n.announcement\n background-color: var(--color-announcement-background)\n color: var(--color-announcement-text)\n\n height: var(--header-height)\n display: flex\n align-items: center\n overflow-x: auto\n & + .page\n min-height: calc(100% - var(--header-height))\n\n.announcement-content\n box-sizing: border-box\n padding: 0.5rem\n min-width: 100%\n white-space: nowrap\n text-align: center\n\n a\n color: var(--color-announcement-text)\n text-decoration-color: var(--color-announcement-text)\n\n &:hover\n color: var(--color-announcement-text)\n text-decoration-color: var(--color-link--hover)\n\n////////////////////////////////////////////////////////////////////////////////\n// Toggles for theme\n////////////////////////////////////////////////////////////////////////////////\n.no-js .theme-toggle-container // don't show theme toggle if there's no JS\n display: none\n\n.theme-toggle-container\n vertical-align: middle\n\n.theme-toggle\n cursor: pointer\n border: none\n padding: 0\n background: transparent\n\n.theme-toggle svg\n vertical-align: middle\n height: $icon-size\n width: $icon-size\n color: var(--color-foreground-primary)\n display: none\n\n.theme-toggle-header\n float: left\n padding: 1rem 0.5rem\n\n////////////////////////////////////////////////////////////////////////////////\n// Toggles for elements\n////////////////////////////////////////////////////////////////////////////////\n.toc-overlay-icon, .nav-overlay-icon\n display: none\n cursor: pointer\n\n .icon\n color: var(--color-foreground-secondary)\n height: $icon-size\n width: $icon-size\n\n.toc-header-icon, .nav-overlay-icon\n // for when we set display: flex\n justify-content: center\n align-items: center\n\n.toc-content-icon\n height: 1.5rem\n width: 1.5rem\n\n.content-icon-container\n float: right\n display: flex\n margin-top: 1.5rem\n margin-left: 1rem\n margin-bottom: 1rem\n gap: 0.5rem\n\n .edit-this-page, .view-this-page\n svg\n color: inherit\n height: $icon-size\n width: $icon-size\n\n.sidebar-toggle\n position: absolute\n display: none\n// \n.sidebar-toggle[name=\"__toc\"]\n left: 20px\n.sidebar-toggle:checked\n left: 40px\n// \n\n.overlay\n position: fixed\n top: 0\n width: 0\n height: 0\n\n transition: width 0ms, height 0ms, opacity 250ms ease-out\n\n opacity: 0\n background-color: rgba(0, 0, 0, 0.54)\n.sidebar-overlay\n z-index: 20\n.toc-overlay\n z-index: 40\n\n// Keep things on top and smooth.\n.sidebar-drawer\n z-index: 30\n transition: left 250ms ease-in-out\n.toc-drawer\n z-index: 50\n transition: right 250ms ease-in-out\n\n// Show the Sidebar\n#__navigation:checked\n & ~ .sidebar-overlay\n width: 100%\n height: 100%\n opacity: 1\n & ~ .page\n .sidebar-drawer\n top: 0\n left: 0\n // Show the toc sidebar\n#__toc:checked\n & ~ .toc-overlay\n width: 100%\n height: 100%\n opacity: 1\n & ~ .page\n .toc-drawer\n top: 0\n right: 0\n\n////////////////////////////////////////////////////////////////////////////////\n// Back to top\n////////////////////////////////////////////////////////////////////////////////\n.back-to-top\n text-decoration: none\n\n display: none\n position: fixed\n left: 0\n top: 1rem\n padding: 0.5rem\n padding-right: 0.75rem\n border-radius: 1rem\n font-size: 0.8125rem\n\n background: var(--color-background-primary)\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), #6b728080 0px 0px 1px 0px\n\n z-index: 10\n\n margin-left: 50%\n transform: translateX(-50%)\n svg\n height: 1rem\n width: 1rem\n fill: currentColor\n display: inline-block\n\n span\n margin-left: 0.25rem\n\n .show-back-to-top &\n display: flex\n align-items: center\n\n////////////////////////////////////////////////////////////////////////////////\n// Responsive layouting\n////////////////////////////////////////////////////////////////////////////////\n// Make things a bit bigger on bigger screens.\n@media (min-width: $full-width + $sidebar-width)\n html\n font-size: 110%\n\n@media (max-width: $full-width)\n // Collapse \"toc\" into the icon.\n .toc-content-icon\n display: flex\n .toc-drawer\n position: fixed\n height: 100vh\n top: 0\n right: -$sidebar-width\n border-left: 1px solid var(--color-background-muted)\n .toc-tree\n border-left: none\n font-size: var(--toc-font-size--mobile)\n\n // Accomodate for a changed content width.\n .sidebar-drawer\n width: calc((100% - #{$full-width - $sidebar-width}) / 2 + #{$sidebar-width})\n\n@media (max-width: $full-width - $sidebar-width)\n // Collapse \"navigation\".\n .nav-overlay-icon\n display: flex\n .sidebar-drawer\n position: fixed\n height: 100vh\n width: $sidebar-width\n\n top: 0\n left: -$sidebar-width\n\n // Swap which icon is visible.\n .toc-header-icon\n display: flex\n .toc-content-icon, .theme-toggle-content\n display: none\n .theme-toggle-header\n display: block\n\n // Show the header.\n .mobile-header\n position: sticky\n top: 0\n display: flex\n justify-content: space-between\n align-items: center\n\n .header-left,\n .header-right\n display: flex\n height: var(--header-height)\n padding: 0 var(--header-padding)\n label\n height: 100%\n width: 100%\n user-select: none\n\n .nav-overlay-icon .icon,\n .theme-toggle svg\n height: $icon-size\n width: $icon-size\n\n // Add a scroll margin for the content\n :target\n scroll-margin-top: calc(var(--header-height) + 2.5rem)\n\n // Show back-to-top below the header\n .back-to-top\n top: calc(var(--header-height) + 0.5rem)\n\n // Center the page, and accommodate for the header.\n .page\n flex-direction: column\n justify-content: center\n .content\n margin-left: auto\n margin-right: auto\n\n@media (max-width: $content-width + 2* $content-padding)\n // Content should respect window limits.\n .content\n width: 100%\n overflow-x: auto\n\n@media (max-width: $content-width)\n .content\n padding: 0 $content-padding--small\n // Don't float sidebars to the right.\n article aside.sidebar\n float: none\n width: 100%\n margin: 1rem 0\n","// Overall Layout Variables\n//\n// Because CSS variables can't be used in media queries. The fact that this\n// makes the layout non-user-configurable is a good thing.\n$content-padding: 3em;\n$content-padding--small: 1em;\n$content-width: 46em;\n$sidebar-width: 15em;\n$full-width: $content-width + 2 * ($content-padding + $sidebar-width);\n","//\n// The design here is strongly inspired by mkdocs-material.\n.admonition, .topic\n margin: 1rem auto\n padding: 0 0.5rem 0.5rem 0.5rem\n\n background: var(--color-admonition-background)\n\n border-radius: 0.2rem\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n font-size: var(--admonition-font-size)\n\n overflow: hidden\n page-break-inside: avoid\n\n // First element should have no margin, since the title has it.\n > :nth-child(2)\n margin-top: 0\n\n // Last item should have no margin, since we'll control that w/ padding\n > :last-child\n margin-bottom: 0\n\n.admonition p.admonition-title,\np.topic-title\n position: relative\n margin: 0 -0.5rem 0.5rem\n padding-left: 2rem\n padding-right: .5rem\n padding-top: .4rem\n padding-bottom: .4rem\n\n font-weight: 500\n font-size: var(--admonition-title-font-size)\n line-height: 1.3\n\n // Our fancy icon\n &::before\n content: \"\"\n position: absolute\n left: 0.5rem\n width: 1rem\n height: 1rem\n\n// Default styles\np.admonition-title\n background-color: var(--color-admonition-title-background)\n &::before\n background-color: var(--color-admonition-title)\n mask-image: var(--icon-admonition-default)\n mask-repeat: no-repeat\n\np.topic-title\n background-color: var(--color-topic-title-background)\n &::before\n background-color: var(--color-topic-title)\n mask-image: var(--icon-topic-default)\n mask-repeat: no-repeat\n\n//\n// Variants\n//\n.admonition\n border-left: 0.2rem solid var(--color-admonition-title)\n\n @each $type, $value in $admonitions\n &.#{$type}\n border-left-color: var(--color-admonition-title--#{$type})\n > .admonition-title\n background-color: var(--color-admonition-title-background--#{$type})\n &::before\n background-color: var(--color-admonition-title--#{$type})\n mask-image: var(--icon-#{nth($value, 2)})\n\n.admonition-todo > .admonition-title\n text-transform: uppercase\n","// This file stylizes the API documentation (stuff generated by autodoc). It's\n// deeply nested due to how autodoc structures the HTML without enough classes\n// to select the relevant items.\n\n// API docs!\ndl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)\n // Tweak the spacing of all the things!\n dd\n margin-left: 2rem\n > :first-child\n margin-top: 0.125rem\n > :last-child\n margin-bottom: 0.75rem\n\n // This is used for the arguments\n .field-list\n margin-bottom: 0.75rem\n\n // \"Headings\" (like \"Parameters\" and \"Return\")\n > dt\n text-transform: uppercase\n font-size: var(--font-size--small)\n\n dd:empty\n margin-bottom: 0.5rem\n dd > ul\n margin-left: -1.2rem\n > li\n > p:nth-child(2)\n margin-top: 0\n // When the last-empty-paragraph follows a paragraph, it doesn't need\n // to augument the existing spacing.\n > p + p:last-child:empty\n margin-top: 0\n margin-bottom: 0\n\n // Colorize the elements\n > dt\n color: var(--color-api-overall)\n\n.sig:not(.sig-inline)\n font-weight: bold\n\n font-size: var(--api-font-size)\n font-family: var(--font-stack--monospace)\n\n margin-left: -0.25rem\n margin-right: -0.25rem\n padding-top: 0.25rem\n padding-bottom: 0.25rem\n padding-right: 0.5rem\n\n // These are intentionally em, to properly match the font size.\n padding-left: 3em\n text-indent: -2.5em\n\n border-radius: 0.25rem\n\n background: var(--color-api-background)\n transition: background 100ms ease-out\n\n &:hover\n background: var(--color-api-background-hover)\n\n // adjust the size of the [source] link on the right.\n a.reference\n .viewcode-link\n font-weight: normal\n width: 4.25rem\n\nem.property\n font-style: normal\n &:first-child\n color: var(--color-api-keyword)\n.sig-name\n color: var(--color-api-name)\n.sig-prename\n font-weight: normal\n color: var(--color-api-pre-name)\n.sig-paren\n color: var(--color-api-paren)\n.sig-param\n font-style: normal\n\ndiv.versionadded,\ndiv.versionchanged,\ndiv.deprecated,\ndiv.versionremoved\n border-left: 0.1875rem solid\n border-radius: 0.125rem\n\n padding-left: 0.75rem\n\n p\n margin-top: 0.125rem\n margin-bottom: 0.125rem\n\ndiv.versionadded\n border-color: var(--color-api-added-border)\n .versionmodified\n color: var(--color-api-added)\n\ndiv.versionchanged\n border-color: var(--color-api-changed-border)\n .versionmodified\n color: var(--color-api-changed)\n\ndiv.deprecated\n border-color: var(--color-api-deprecated-border)\n .versionmodified\n color: var(--color-api-deprecated)\n\ndiv.versionremoved\n border-color: var(--color-api-removed-border)\n .versionmodified\n color: var(--color-api-removed)\n\n// Align the [docs] and [source] to the right.\n.viewcode-link, .viewcode-back\n float: right\n text-align: right\n",".line-block\n margin-top: 0.5rem\n margin-bottom: 0.75rem\n .line-block\n margin-top: 0rem\n margin-bottom: 0rem\n padding-left: 1rem\n","// Captions\narticle p.caption,\ntable > caption,\n.code-block-caption\n font-size: var(--font-size--small)\n text-align: center\n\n// Caption above a TOCTree\n.toctree-wrapper.compound\n .caption, :not(.caption) > .caption-text\n font-size: var(--font-size--small)\n text-transform: uppercase\n\n text-align: initial\n margin-bottom: 0\n\n > ul\n margin-top: 0\n margin-bottom: 0\n","// Inline code\ncode.literal, .sig-inline\n background: var(--color-inline-code-background)\n border-radius: 0.2em\n // Make the font smaller, and use padding to recover.\n font-size: var(--font-size--small--2)\n padding: 0.1em 0.2em\n\n pre.literal-block &\n font-size: inherit\n padding: 0\n\n p &\n border: 1px solid var(--color-background-border)\n\n.sig-inline\n font-family: var(--font-stack--monospace)\n\n// Code and Literal Blocks\n$code-spacing-vertical: 0.625rem\n$code-spacing-horizontal: 0.875rem\n\n// Wraps every literal block + line numbers.\ndiv[class*=\" highlight-\"],\ndiv[class^=\"highlight-\"]\n margin: 1em 0\n display: flex\n\n .table-wrapper\n margin: 0\n padding: 0\n\npre\n margin: 0\n padding: 0\n overflow: auto\n\n // Needed to have more specificity than pygments' \"pre\" selector. :(\n article[role=\"main\"] .highlight &\n line-height: 1.5\n\n &.literal-block,\n .highlight &\n font-size: var(--code-font-size)\n padding: $code-spacing-vertical $code-spacing-horizontal\n\n // Make it look like all the other blocks.\n &.literal-block\n margin-top: 1rem\n margin-bottom: 1rem\n\n border-radius: 0.2rem\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n\n// All code is always contained in this.\n.highlight\n width: 100%\n border-radius: 0.2rem\n\n // Make line numbers and prompts un-selectable.\n .gp, span.linenos\n user-select: none\n pointer-events: none\n\n // Expand the line-highlighting.\n .hll\n display: block\n margin-left: -$code-spacing-horizontal\n margin-right: -$code-spacing-horizontal\n padding-left: $code-spacing-horizontal\n padding-right: $code-spacing-horizontal\n\n/* Make code block captions be nicely integrated */\n.code-block-caption\n display: flex\n padding: $code-spacing-vertical $code-spacing-horizontal\n\n border-radius: 0.25rem\n border-bottom-left-radius: 0\n border-bottom-right-radius: 0\n font-weight: 300\n border-bottom: 1px solid\n\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n border-color: var(--color-background-border)\n\n + div[class]\n margin-top: 0\n pre\n border-top-left-radius: 0\n border-top-right-radius: 0\n\n// When `html_codeblock_linenos_style` is table.\n.highlighttable\n width: 100%\n display: block\n tbody\n display: block\n\n tr\n display: flex\n\n // Line numbers\n td.linenos\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n padding: $code-spacing-vertical $code-spacing-horizontal\n padding-right: 0\n border-top-left-radius: 0.2rem\n border-bottom-left-radius: 0.2rem\n\n .linenodiv\n padding-right: $code-spacing-horizontal\n font-size: var(--code-font-size)\n box-shadow: -0.0625rem 0 var(--color-foreground-border) inset\n\n // Actual code\n td.code\n padding: 0\n display: block\n flex: 1\n overflow: hidden\n\n .highlight\n border-top-left-radius: 0\n border-bottom-left-radius: 0\n\n// When `html_codeblock_linenos_style` is inline.\n.highlight\n span.linenos\n display: inline-block\n padding-left: 0\n padding-right: $code-spacing-horizontal\n margin-right: $code-spacing-horizontal\n box-shadow: -0.0625rem 0 var(--color-foreground-border) inset\n","// Inline Footnote Reference\n.footnote-reference\n font-size: var(--font-size--small--4)\n vertical-align: super\n\n// Definition list, listing the content of each note.\n// docutils <= 0.17\ndl.footnote.brackets\n font-size: var(--font-size--small)\n color: var(--color-foreground-secondary)\n\n display: grid\n grid-template-columns: max-content auto\n dt\n margin: 0\n > .fn-backref\n margin-left: 0.25rem\n\n &:after\n content: \":\"\n\n .brackets\n &:before\n content: \"[\"\n &:after\n content: \"]\"\n\n dd\n margin: 0\n padding: 0 1rem\n\n// docutils >= 0.18\naside.footnote\n font-size: var(--font-size--small)\n color: var(--color-foreground-secondary)\n\naside.footnote > span,\ndiv.citation > span\n float: left\n font-weight: 500\n padding-right: 0.25rem\n\naside.footnote > *:not(span),\ndiv.citation > p\n margin-left: 2rem\n","//\n// Figures\n//\nimg\n box-sizing: border-box\n max-width: 100%\n height: auto\n\narticle\n figure, .figure\n border-radius: 0.2rem\n\n margin: 0\n :last-child\n margin-bottom: 0\n\n .align-left\n float: left\n clear: left\n margin: 0 1rem 1rem\n\n .align-right\n float: right\n clear: right\n margin: 0 1rem 1rem\n\n .align-default,\n .align-center\n display: block\n text-align: center\n margin-left: auto\n margin-right: auto\n\n // WELL, table needs to be stylised like a table.\n table.align-default\n display: table\n text-align: initial\n",".genindex-jumpbox, .domainindex-jumpbox\n border-top: 1px solid var(--color-background-border)\n border-bottom: 1px solid var(--color-background-border)\n padding: 0.25rem\n\n.genindex-section, .domainindex-section\n h2\n margin-top: 0.75rem\n margin-bottom: 0.5rem\n ul\n margin-top: 0\n margin-bottom: 0\n","ul,\nol\n padding-left: 1.2rem\n\n // Space lists out like paragraphs\n margin-top: 1rem\n margin-bottom: 1rem\n // reduce margins within li.\n li\n > p:first-child\n margin-top: 0.25rem\n margin-bottom: 0.25rem\n\n > p:last-child\n margin-top: 0.25rem\n\n > ul,\n > ol\n margin-top: 0.5rem\n margin-bottom: 0.5rem\n\nol\n &.arabic\n list-style: decimal\n &.loweralpha\n list-style: lower-alpha\n &.upperalpha\n list-style: upper-alpha\n &.lowerroman\n list-style: lower-roman\n &.upperroman\n list-style: upper-roman\n\n// Don't space lists out when they're \"simple\" or in a `.. toctree::`\n.simple,\n.toctree-wrapper\n li\n > ul,\n > ol\n margin-top: 0\n margin-bottom: 0\n\n// Definition Lists\n.field-list,\n.option-list,\ndl:not([class]),\ndl.simple,\ndl.footnote,\ndl.glossary\n dt\n font-weight: 500\n margin-top: 0.25rem\n + dt\n margin-top: 0\n\n .classifier::before\n content: \":\"\n margin-left: 0.2rem\n margin-right: 0.2rem\n\n dd\n > p:first-child,\n ul\n margin-top: 0.125rem\n\n ul\n margin-bottom: 0.125rem\n",".math-wrapper\n width: 100%\n overflow-x: auto\n\ndiv.math\n position: relative\n text-align: center\n\n .headerlink,\n &:focus .headerlink\n display: none\n\n &:hover .headerlink\n display: inline-block\n\n span.eqno\n position: absolute\n right: 0.5rem\n top: 50%\n transform: translate(0, -50%)\n z-index: 1\n","// Abbreviations\nabbr[title]\n cursor: help\n\n// \"Problematic\" content, as identified by Sphinx\n.problematic\n color: var(--color-problematic)\n\n// Keyboard / Mouse \"instructions\"\nkbd:not(.compound)\n margin: 0 0.2rem\n padding: 0 0.2rem\n border-radius: 0.2rem\n border: 1px solid var(--color-foreground-border)\n color: var(--color-foreground-primary)\n vertical-align: text-bottom\n\n font-size: var(--font-size--small--3)\n display: inline-block\n\n box-shadow: 0 0.0625rem 0 rgba(0, 0, 0, 0.2), inset 0 0 0 0.125rem var(--color-background-primary)\n\n background-color: var(--color-background-secondary)\n\n// Blockquote\nblockquote\n border-left: 4px solid var(--color-background-border)\n background: var(--color-background-secondary)\n\n margin-left: 0\n margin-right: 0\n padding: 0.5rem 1rem\n\n .attribution\n font-weight: 600\n text-align: right\n\n &.pull-quote,\n &.highlights\n font-size: 1.25em\n\n &.epigraph,\n &.pull-quote\n border-left-width: 0\n border-radius: 0.5rem\n\n &.highlights\n border-left-width: 0\n background: transparent\n\n// Center align embedded-in-text images\np .reference img\n vertical-align: middle\n","p.rubric\n line-height: 1.25\n font-weight: bold\n font-size: 1.125em\n\n // For Numpy-style documentation that's got rubrics within it.\n // https://github.com/pradyunsg/furo/discussions/505\n dd &\n line-height: inherit\n font-weight: inherit\n\n font-size: var(--font-size--small)\n text-transform: uppercase\n","article .sidebar\n float: right\n clear: right\n width: 30%\n\n margin-left: 1rem\n margin-right: 0\n\n border-radius: 0.2rem\n background-color: var(--color-background-secondary)\n border: var(--color-background-border) 1px solid\n\n > *\n padding-left: 1rem\n padding-right: 1rem\n\n > ul, > ol // lists need additional padding, because bullets.\n padding-left: 2.2rem\n\n .sidebar-title\n margin: 0\n padding: 0.5rem 1rem\n border-bottom: var(--color-background-border) 1px solid\n\n font-weight: 500\n\n// TODO: subtitle\n// TODO: dedicated variables?\n",".table-wrapper\n width: 100%\n overflow-x: auto\n margin-top: 1rem\n margin-bottom: 0.5rem\n padding: 0.2rem 0.2rem 0.75rem\n\ntable.docutils\n border-radius: 0.2rem\n border-spacing: 0\n border-collapse: collapse\n\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n th\n background: var(--color-table-header-background)\n\n td,\n th\n // Space things out properly\n padding: 0 0.25rem\n\n // Get the borders looking just-right.\n border-left: 1px solid var(--color-table-border)\n border-right: 1px solid var(--color-table-border)\n border-bottom: 1px solid var(--color-table-border)\n\n p\n margin: 0.25rem\n\n &:first-child\n border-left: none\n &:last-child\n border-right: none\n\n // MyST-parser tables set these classes for control of column alignment\n &.text-left\n text-align: left\n &.text-right\n text-align: right\n &.text-center\n text-align: center\n",":target\n scroll-margin-top: 2.5rem\n\n@media (max-width: $full-width - $sidebar-width)\n :target\n scroll-margin-top: calc(2.5rem + var(--header-height))\n\n // When a heading is selected\n section > span:target\n scroll-margin-top: calc(2.8rem + var(--header-height))\n\n// Permalinks\n.headerlink\n font-weight: 100\n user-select: none\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\ndl dt,\np.caption,\nfigcaption p,\ntable > caption,\n.code-block-caption\n > .headerlink\n margin-left: 0.5rem\n visibility: hidden\n &:hover > .headerlink\n visibility: visible\n\n // Don't change to link-like, if someone adds the contents directive.\n > .toc-backref\n color: inherit\n text-decoration-line: none\n\n// Figure and table captions are special.\nfigure:hover > figcaption > p > .headerlink,\ntable:hover > caption > .headerlink\n visibility: visible\n\n:target >, // Regular section[id] style anchors\nspan:target ~ // Non-regular span[id] style \"extra\" anchors\n h1,\n h2,\n h3,\n h4,\n h5,\n h6\n &:nth-of-type(1)\n background-color: var(--color-highlight-on-target)\n // .headerlink\n // visibility: visible\n code.literal\n background-color: transparent\n\ntable:target > caption,\nfigure:target\n background-color: var(--color-highlight-on-target)\n\n// Inline page contents\n.this-will-duplicate-information-and-it-is-still-useful-here li :target\n background-color: var(--color-highlight-on-target)\n\n// Code block permalinks\n.literal-block-wrapper:target .code-block-caption\n background-color: var(--color-highlight-on-target)\n\n// When a definition list item is selected\n//\n// There isn't really an alternative to !important here, due to the\n// high-specificity of API documentation's selector.\ndt:target\n background-color: var(--color-highlight-on-target) !important\n\n// When a footnote reference is selected\n.footnote > dt:target + dd,\n.footnote-reference:target\n background-color: var(--color-highlight-on-target)\n",".guilabel\n background-color: var(--color-guilabel-background)\n border: 1px solid var(--color-guilabel-border)\n color: var(--color-guilabel-text)\n\n padding: 0 0.3em\n border-radius: 0.5em\n font-size: 0.9em\n","// This file contains the styles used for stylizing the footer that's shown\n// below the content.\n\nfooter\n font-size: var(--font-size--small)\n display: flex\n flex-direction: column\n\n margin-top: 2rem\n\n// Bottom of page information\n.bottom-of-page\n display: flex\n align-items: center\n justify-content: space-between\n\n margin-top: 1rem\n padding-top: 1rem\n padding-bottom: 1rem\n\n color: var(--color-foreground-secondary)\n border-top: 1px solid var(--color-background-border)\n\n line-height: 1.5\n\n @media (max-width: $content-width)\n text-align: center\n flex-direction: column-reverse\n gap: 0.25rem\n\n .left-details\n font-size: var(--font-size--small)\n\n .right-details\n display: flex\n flex-direction: column\n gap: 0.25rem\n text-align: right\n\n .icons\n display: flex\n justify-content: flex-end\n gap: 0.25rem\n font-size: 1rem\n\n a\n text-decoration: none\n\n svg,\n img\n font-size: 1.125rem\n height: 1em\n width: 1em\n\n// Next/Prev page information\n.related-pages\n a\n display: flex\n align-items: center\n\n text-decoration: none\n &:hover .page-info .title\n text-decoration: underline\n color: var(--color-link)\n text-decoration-color: var(--color-link-underline)\n\n svg.furo-related-icon,\n svg.furo-related-icon > use\n flex-shrink: 0\n\n color: var(--color-foreground-border)\n\n width: 0.75rem\n height: 0.75rem\n margin: 0 0.5rem\n\n &.next-page\n max-width: 50%\n\n float: right\n clear: right\n text-align: right\n\n &.prev-page\n max-width: 50%\n\n float: left\n clear: left\n\n svg\n transform: rotate(180deg)\n\n.page-info\n display: flex\n flex-direction: column\n overflow-wrap: anywhere\n\n .next-page &\n align-items: flex-end\n\n .context\n display: flex\n align-items: center\n\n padding-bottom: 0.1rem\n\n color: var(--color-foreground-muted)\n font-size: var(--font-size--small)\n text-decoration: none\n","// This file contains the styles for the contents of the left sidebar, which\n// contains the navigation tree, logo, search etc.\n\n////////////////////////////////////////////////////////////////////////////////\n// Brand on top of the scrollable tree.\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-brand\n display: flex\n flex-direction: column\n flex-shrink: 0\n\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n text-decoration: none\n\n.sidebar-brand-text\n color: var(--color-sidebar-brand-text)\n overflow-wrap: break-word\n margin: var(--sidebar-item-spacing-vertical) 0\n font-size: 1.5rem\n\n.sidebar-logo-container\n margin: var(--sidebar-item-spacing-vertical) 0\n\n.sidebar-logo\n margin: 0 auto\n display: block\n max-width: 100%\n\n////////////////////////////////////////////////////////////////////////////////\n// Search\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-search-container\n display: flex\n align-items: center\n margin-top: var(--sidebar-search-space-above)\n\n position: relative\n\n background: var(--color-sidebar-search-background)\n &:hover,\n &:focus-within\n background: var(--color-sidebar-search-background--focus)\n\n &::before\n content: \"\"\n position: absolute\n left: var(--sidebar-item-spacing-horizontal)\n width: var(--sidebar-search-icon-size)\n height: var(--sidebar-search-icon-size)\n\n background-color: var(--color-sidebar-search-icon)\n mask-image: var(--icon-search)\n\n.sidebar-search\n box-sizing: border-box\n\n border: none\n border-top: 1px solid var(--color-sidebar-search-border)\n border-bottom: 1px solid var(--color-sidebar-search-border)\n\n padding-top: var(--sidebar-search-input-spacing-vertical)\n padding-bottom: var(--sidebar-search-input-spacing-vertical)\n padding-right: var(--sidebar-search-input-spacing-horizontal)\n padding-left: calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size))\n\n width: 100%\n\n color: var(--color-sidebar-search-foreground)\n background: transparent\n z-index: 10\n\n &:focus\n outline: none\n\n &::placeholder\n font-size: var(--sidebar-search-input-font-size)\n\n//\n// Hide Search Matches link\n//\n#searchbox .highlight-link\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0\n margin: 0\n text-align: center\n\n a\n color: var(--color-sidebar-search-icon)\n font-size: var(--font-size--small--2)\n\n////////////////////////////////////////////////////////////////////////////////\n// Structure/Skeleton of the navigation tree (left)\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-tree\n font-size: var(--sidebar-item-font-size)\n margin-top: var(--sidebar-tree-space-above)\n margin-bottom: var(--sidebar-item-spacing-vertical)\n\n ul\n padding: 0\n margin-top: 0\n margin-bottom: 0\n\n display: flex\n flex-direction: column\n\n list-style: none\n\n li\n position: relative\n margin: 0\n\n > ul\n margin-left: var(--sidebar-item-spacing-horizontal)\n\n .icon\n color: var(--color-sidebar-link-text)\n\n .reference\n box-sizing: border-box\n color: var(--color-sidebar-link-text)\n\n // Fill the parent.\n display: inline-block\n line-height: var(--sidebar-item-line-height)\n text-decoration: none\n\n // Don't allow long words to cause wrapping.\n overflow-wrap: anywhere\n\n height: 100%\n width: 100%\n\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n\n &:hover\n color: var(--color-sidebar-link-text)\n background: var(--color-sidebar-item-background--hover)\n\n // Add a nice little \"external-link\" arrow here.\n &.external::after\n content: url('data:image/svg+xml,')\n margin: 0 0.25rem\n vertical-align: middle\n color: var(--color-sidebar-link-text)\n\n // Make the current page reference bold.\n .current-page > .reference\n font-weight: bold\n\n label\n position: absolute\n top: 0\n right: 0\n height: var(--sidebar-item-height)\n width: var(--sidebar-expander-width)\n\n cursor: pointer\n user-select: none\n\n display: flex\n justify-content: center\n align-items: center\n\n .caption, :not(.caption) > .caption-text\n font-size: var(--sidebar-caption-font-size)\n color: var(--color-sidebar-caption-text)\n\n font-weight: bold\n text-transform: uppercase\n\n margin: var(--sidebar-caption-space-above) 0 0 0\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n\n // If it has children, add a bit more padding to wrap the content to avoid\n // overlapping with the - + diff --git a/docs/en/api/equipment_types.html b/docs/en/api/equipment_types.html index 263f3b179..194e6e90d 100644 --- a/docs/en/api/equipment_types.html +++ b/docs/en/api/equipment_types.html @@ -5,12 +5,12 @@ - - Equipment Types - FitTrackee 0.8.5 documentation + + Equipment Types - FitTrackee 0.8.6 documentation - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
-
@@ -210,7 +197,7 @@
- FitTrackee 0.8.5 + FitTrackee 0.8.6 documentation @@ -639,10 +626,10 @@

Equipment Types +

- + diff --git a/docs/en/api/equipments.html b/docs/en/api/equipments.html index 1cb2945df..d1023493d 100644 --- a/docs/en/api/equipments.html +++ b/docs/en/api/equipments.html @@ -5,12 +5,12 @@ - - Equipments - FitTrackee 0.8.5 documentation + + Equipments - FitTrackee 0.8.6 documentation - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
-
@@ -210,7 +197,7 @@
- FitTrackee 0.8.5 + FitTrackee 0.8.6 documentation @@ -859,10 +846,10 @@

Equipments +

- + diff --git a/docs/en/api/index.html b/docs/en/api/index.html index 6fe82821a..017742c75 100644 --- a/docs/en/api/index.html +++ b/docs/en/api/index.html @@ -5,12 +5,12 @@ - - API documentation - FitTrackee 0.8.5 documentation + + API documentation - FitTrackee 0.8.6 documentation - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
-
@@ -210,7 +197,7 @@
- FitTrackee 0.8.5 + FitTrackee 0.8.6 documentation @@ -366,10 +353,10 @@

API documentation +

- + diff --git a/docs/en/api/oauth2.html b/docs/en/api/oauth2.html index 939cfc2ed..e84004812 100644 --- a/docs/en/api/oauth2.html +++ b/docs/en/api/oauth2.html @@ -5,12 +5,12 @@ - - OAuth2 - FitTrackee 0.8.5 documentation + + OAuth2 - FitTrackee 0.8.6 documentation - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
-
@@ -210,7 +197,7 @@
- FitTrackee 0.8.5 + FitTrackee 0.8.6 documentation @@ -889,10 +876,10 @@

OAuth2

- + - + diff --git a/docs/en/api/records.html b/docs/en/api/records.html index 358ac6153..9a5b51415 100644 --- a/docs/en/api/records.html +++ b/docs/en/api/records.html @@ -5,12 +5,12 @@ - - Records - FitTrackee 0.8.5 documentation + + Records - FitTrackee 0.8.6 documentation - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
-
@@ -210,7 +197,7 @@
- FitTrackee 0.8.5 + FitTrackee 0.8.6 documentation @@ -466,10 +453,10 @@

Records +

- + diff --git a/docs/en/api/sports.html b/docs/en/api/sports.html index 63be8e3f3..1e9e369ce 100644 --- a/docs/en/api/sports.html +++ b/docs/en/api/sports.html @@ -5,12 +5,12 @@ - - Sports - FitTrackee 0.8.5 documentation + + Sports - FitTrackee 0.8.6 documentation - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
-
@@ -210,7 +197,7 @@
- FitTrackee 0.8.5 + FitTrackee 0.8.6 documentation @@ -677,10 +664,10 @@

Sports

- + - + diff --git a/docs/en/api/stats.html b/docs/en/api/stats.html index 01a7d0f19..d5ce9ef6d 100644 --- a/docs/en/api/stats.html +++ b/docs/en/api/stats.html @@ -5,12 +5,12 @@ - - Statistics - FitTrackee 0.8.5 documentation + + Statistics - FitTrackee 0.8.6 documentation - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
-
@@ -210,7 +197,7 @@
- FitTrackee 0.8.5 + FitTrackee 0.8.6 documentation @@ -717,10 +704,10 @@

Statistics +

- + diff --git a/docs/en/api/users.html b/docs/en/api/users.html index 8b88d935a..cf1e18841 100644 --- a/docs/en/api/users.html +++ b/docs/en/api/users.html @@ -5,12 +5,12 @@ - - Users - FitTrackee 0.8.5 documentation + + Users - FitTrackee 0.8.6 documentation - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
-
@@ -210,7 +197,7 @@
- FitTrackee 0.8.5 + FitTrackee 0.8.6 documentation @@ -861,10 +848,10 @@

Users

- + - + diff --git a/docs/en/api/workouts.html b/docs/en/api/workouts.html index 4f292e863..080827292 100644 --- a/docs/en/api/workouts.html +++ b/docs/en/api/workouts.html @@ -5,12 +5,12 @@ - - Workouts - FitTrackee 0.8.5 documentation + + Workouts - FitTrackee 0.8.6 documentation - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
-
@@ -210,7 +197,7 @@
- FitTrackee 0.8.5 + FitTrackee 0.8.6 documentation @@ -1439,10 +1426,10 @@

Workouts +

- + diff --git a/docs/en/changelog.html b/docs/en/changelog.html index 3869ee1f6..7c86fa818 100644 --- a/docs/en/changelog.html +++ b/docs/en/changelog.html @@ -5,12 +5,12 @@ - - Change log - FitTrackee 0.8.5 documentation + + Change log - FitTrackee 0.8.6 documentation - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
-
@@ -210,7 +197,7 @@
- FitTrackee 0.8.5 + FitTrackee 0.8.6 documentation @@ -296,6 +283,48 @@

Change log

+
+

Version 0.8.6 (2024/08/03)

+
+

Translations

+
    +
  • PR#590 - Translations update (Italian)

  • +
  • PR#591 - Translations update (Galician)

  • +
  • PR#592 - Translations update (German, Dutch)

  • +
  • PR#593 - Translations update (German)

  • +
  • fb10602 - update and fix translations

  • +
+

Translation status:

+
    +
  • Basque: 98%

  • +
  • Czech: 73%

  • +
  • Dutch: 100%

  • +
  • English: 100%

  • +
  • French: 100%

  • +
  • Galician: 100%

  • +
  • German: 99%

  • +
  • Italian: 82%

  • +
  • Norwegian Bokmål: 52%

  • +
  • Polish: 92%

  • +
  • Portuguese: 98%

  • +
  • Spanish: 100%

  • +
+
+
+

Misc

+
    +
  • PR#595 - CI - speed up tests

  • +
+

Thanks to the contributors:

+
    +
  • @ConfusedAlex

  • +
  • @lukasitaly

  • +
  • @simontb

  • +
  • @slothje

  • +
  • @xmgz

  • +
+
+

Version 0.8.5 (2024/06/29)

@@ -312,8 +341,8 @@

Bugs FixedPR#588 - Fix click on workout chart checkbox labels

-
-

Translations

+
+

Translations

- + diff --git a/docs/en/cli.html b/docs/en/cli.html index 9a20e553d..8fe06d1c0 100644 --- a/docs/en/cli.html +++ b/docs/en/cli.html @@ -5,12 +5,12 @@ - - Command line interface - FitTrackee 0.8.5 documentation + + Command line interface - FitTrackee 0.8.6 documentation - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
-
@@ -210,7 +197,7 @@
- FitTrackee 0.8.5 + FitTrackee 0.8.6 documentation @@ -607,10 +594,10 @@

ftcli

- + - + diff --git a/docs/en/features.html b/docs/en/features.html index 86c57653c..589004b08 100644 --- a/docs/en/features.html +++ b/docs/en/features.html @@ -5,12 +5,12 @@ - - Features - FitTrackee 0.8.5 documentation + + Features - FitTrackee 0.8.6 documentation - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
-
@@ -210,7 +197,7 @@
- FitTrackee 0.8.5 + FitTrackee 0.8.6 documentation @@ -853,10 +840,10 @@

Administration +

- + diff --git a/docs/en/genindex.html b/docs/en/genindex.html index 5e8f67845..3e1300159 100644 --- a/docs/en/genindex.html +++ b/docs/en/genindex.html @@ -4,11 +4,11 @@ - Index - FitTrackee 0.8.5 documentation + Index - FitTrackee 0.8.6 documentation - + - + @@ -89,19 +89,6 @@
- - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -180,7 +167,7 @@
-
@@ -208,7 +195,7 @@
- FitTrackee 0.8.5 + FitTrackee 0.8.6 documentation @@ -386,10 +373,10 @@

E

- + - + diff --git a/docs/en/http-routingtable.html b/docs/en/http-routingtable.html index aafa76328..1fbd1c378 100644 --- a/docs/en/http-routingtable.html +++ b/docs/en/http-routingtable.html @@ -4,11 +4,11 @@ - HTTP Routing Table - FitTrackee 0.8.5 documentation + HTTP Routing Table - FitTrackee 0.8.6 documentation - + - + @@ -89,19 +89,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -180,7 +167,7 @@
-
@@ -208,7 +195,7 @@
- FitTrackee 0.8.5 + FitTrackee 0.8.6 documentation @@ -731,10 +718,10 @@

HTTP Routing Table

- + - + diff --git a/docs/en/index.html b/docs/en/index.html index 3d372f0b1..a93223b5e 100644 --- a/docs/en/index.html +++ b/docs/en/index.html @@ -5,12 +5,12 @@ - - FitTrackee 0.8.5 documentation + + FitTrackee 0.8.6 documentation - + - + @@ -91,19 +91,6 @@
- - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
-
@@ -210,7 +197,7 @@
- FitTrackee 0.8.5 + FitTrackee 0.8.6 documentation @@ -378,10 +365,10 @@

Table of contents +

- + diff --git a/docs/en/installation.html b/docs/en/installation.html index 019b9405e..7bf53b889 100644 --- a/docs/en/installation.html +++ b/docs/en/installation.html @@ -5,12 +5,12 @@ - - Installation - FitTrackee 0.8.5 documentation + + Installation - FitTrackee 0.8.6 documentation - + - + @@ -91,19 +91,6 @@
- - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
-
@@ -210,7 +197,7 @@
- FitTrackee 0.8.5 + FitTrackee 0.8.6 documentation @@ -987,11 +974,11 @@

Production environment

    -
  • Download the last release (for now, it is the release v0.8.5):

  • +
  • Download the last release (for now, it is the release v0.8.6):

-
$ wget https://github.com/SamR1/FitTrackee/archive/v0.8.5.tar.gz
-$ tar -xzf v0.8.5.tar.gz
-$ mv FitTrackee-0.8.5 FitTrackee
+
$ wget https://github.com/SamR1/FitTrackee/archive/v0.8.6.tar.gz
+$ tar -xzf v0.8.6.tar.gz
+$ mv FitTrackee-0.8.6 FitTrackee
 $ cd FitTrackee
 
@@ -1127,11 +1114,11 @@

Prod environment
  • Stop the application

  • Change to the directory where FitTrackee directory is located

  • -
  • Download the last release (for now, it is the release v0.8.5) and overwrite existing files:

  • +
  • Download the last release (for now, it is the release v0.8.6) and overwrite existing files:

  • -
    -
    @@ -210,7 +197,7 @@
    - FitTrackee 0.8.5 + FitTrackee 0.8.6 documentation @@ -481,10 +468,10 @@

    Resources +

    - + diff --git a/docs/en/objects.inv b/docs/en/objects.inv index b3e037cce..5c61f9606 100644 Binary files a/docs/en/objects.inv and b/docs/en/objects.inv differ diff --git a/docs/en/search.html b/docs/en/search.html index 2fdd9bda8..600ad1acb 100644 --- a/docs/en/search.html +++ b/docs/en/search.html @@ -5,13 +5,13 @@ - + -Search - FitTrackee 0.8.5 +<title>Search - FitTrackee 0.8.6 documentation - + - + @@ -92,19 +92,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -183,7 +170,7 @@

    -
    @@ -211,7 +198,7 @@
    - FitTrackee 0.8.5 + FitTrackee 0.8.6 documentation @@ -336,10 +323,10 @@
    -
    + - + diff --git a/docs/en/searchindex.js b/docs/en/searchindex.js index bf8431e80..32fd021f1 100644 --- a/docs/en/searchindex.js +++ b/docs/en/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["api/auth", "api/configuration", "api/equipment_types", "api/equipments", "api/index", "api/oauth2", "api/records", "api/sports", "api/stats", "api/users", "api/workouts", "changelog", "cli", "features", "index", "installation", "oauth", "third_party_tools", "troubleshooting/administrator", "troubleshooting/index"], "filenames": ["api/auth.rst", "api/configuration.rst", "api/equipment_types.rst", "api/equipments.rst", "api/index.rst", "api/oauth2.rst", "api/records.rst", "api/sports.rst", "api/stats.rst", "api/users.rst", "api/workouts.rst", "changelog.md", "cli.rst", "features.rst", "index.rst", "installation.rst", "oauth.rst", "third_party_tools.rst", "troubleshooting/administrator.rst", "troubleshooting/index.rst"], "titles": ["Authentication and account", "Configuration", "Equipment Types", "Equipments", "API documentation", "OAuth2", "Records", "Sports", "Statistics", "Users", "Workouts", "Change log", "Command line interface", "Features", "FitTrackee", "Installation", "OAuth 2.0", "Third-party tools", "Administrator", "Troubleshooting"], "terms": {"post": [0, 3, 5, 10, 16], "api": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16], "auth": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 16], "regist": [0, 1, 11, 13, 15], "user": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 15, 16], "send": [0, 9, 11, 13, 15], "confirm": [0, 5, 11, 13, 15], "email": [0, 1, 9, 11, 12, 13, 18], "The": [0, 3, 11, 13, 15, 16, 18], "newli": [0, 12, 15], "creat": [0, 3, 5, 10, 11, 13, 15, 16], "i": [0, 1, 3, 5, 10, 11, 12, 13, 14, 15, 16, 19], "inact": [0, 3, 9, 10, 13, 15], "must": [0, 1, 2, 3, 5, 7, 9, 10, 11, 13, 15, 16, 18], "hi": [0, 3, 9, 11, 13], "activ": [0, 2, 3, 7, 9, 11, 12, 13, 14, 15], "exampl": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16], "request": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 15, 16], "http": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 16], "1": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 15], "content": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "type": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15], "applic": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16], "json": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13], "respons": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "success": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "200": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 15], "statu": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13], "error": [0, 1, 2, 3, 5, 7, 9, 10, 11, 13, 15, 18], "registr": [0, 1, 11, 12, 13, 15, 16], "400": [0, 1, 2, 3, 5, 7, 8, 9, 10, 11], "bad": [0, 1, 2, 3, 5, 7, 8, 9, 10], "messag": [0, 1, 5, 10, 11, 12, 13, 15], "valid": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 15, 18], "provid": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18], "n": 0, "object": [0, 1, 2, 3, 7, 9, 10], "usernam": [0, 8, 9, 11, 12, 15], "string": [0, 1, 3, 5, 7, 8, 9, 10, 15, 16], "3": [0, 2, 7, 8, 9, 10, 13, 15], "30": [0, 8], "charact": [0, 3, 11, 15], "requir": [0, 3, 11, 15, 16], "password": [0, 9, 11, 12, 13, 15], "8": [0, 1, 10, 12, 13, 15, 16], "lang": [0, 11, 12], "languag": [0, 9, 11, 12, 13], "prefer": [0, 9, 11, 12], "invalid": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 15], "fallback": 0, "en": [0, 9, 12], "english": [0, 11, 12, 13], "accepted_polici": 0, "boolean": [0, 1, 2, 3, 5, 7, 9, 12], "true": [0, 1, 2, 3, 5, 7, 9, 11, 15], "accept": 0, "privaci": [0, 1, 11, 13], "polici": [0, 1, 11, 13], "code": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 16], "ok": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "payload": [0, 1, 2, 5, 7, 9, 10], "sorri": 0, "alreadi": [0, 3, 11, 12], "taken": [0, 13], "you": [0, 1, 2, 3, 7, 8, 9, 10, 11, 13, 14, 15], "agre": [0, 11, 13], "onli": [0, 3, 5, 8, 9, 10, 11, 12, 13, 15, 16], "alphanumer": [0, 11], "underscor": 0, "_": [0, 11], "allow": [0, 1, 3, 10, 11, 12, 13, 14, 15, 16], "403": [0, 1, 2, 3, 7, 8, 9, 10], "forbidden": [0, 1, 2, 3, 7, 8, 9, 10], "disabl": [0, 11, 12, 13, 15], "500": [0, 1, 2, 3, 7, 9, 10, 11], "intern": [0, 1, 2, 3, 7, 9, 10], "server": [0, 1, 2, 3, 7, 9, 10, 11, 13, 14], "pleas": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "try": [0, 2, 3, 7, 9, 10], "again": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "contact": [0, 1, 2, 3, 7, 9, 10, 13], "administr": [0, 1, 2, 3, 7, 9, 10, 16, 19], "after": [0, 5, 11, 13, 15, 16], "auth_token": 0, "web": [0, 14, 15, 16], "token": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 16], "resend": 0, "instruct": [0, 11, 13, 15], "If": [0, 3, 5, 8, 10, 12, 13, 15, 16], "thi": [0, 3, 5, 10, 11, 12, 13, 14, 15], "endpoint": [0, 1, 5, 11, 15, 16], "avail": [0, 6, 12, 13, 15, 16, 17], "resent": 0, "404": [0, 2, 3, 5, 7, 8, 9, 10, 11], "Not": [0, 2, 3, 5, 7, 8, 9, 10], "found": [0, 2, 3, 5, 7, 8, 9, 10, 11], "url": [0, 5, 11, 15, 16, 18], "wa": [0, 3, 11, 13, 15], "login": [0, 11], "an": [0, 1, 2, 3, 5, 7, 9, 10, 11, 13, 15, 16, 18], "can": [0, 3, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18], "log": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13, 14, 15, 18], "successfulli": 0, "401": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "unauthor": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "credenti": [0, 15], "get": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 16], "profil": [0, 5, 11, 16], "info": [0, 11, 13], "scope": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "read": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 16], "data": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16], "accepted_privacy_polici": 0, "admin": [0, 1, 2, 6, 7, 8, 9, 10, 11, 12, 13, 15], "fals": [0, 1, 2, 5, 7, 9, 10, 15], "bio": [0, 9], "null": [0, 1, 3, 7, 9, 10, 11], "birth_dat": [0, 9], "created_at": [0, 9], "sun": [0, 6, 9, 10], "14": [0, 5, 9, 10], "jul": [0, 6, 9, 10], "2019": [0, 6, 8, 9, 10], "09": [0, 9], "58": [0, 9, 11], "gmt": [0, 3, 5, 6, 9, 10], "date_format": 0, "dd": 0, "mm": 0, "yyyi": 0, "display_asc": 0, "sam": [0, 6, 9, 10], "com": [0, 1, 5, 9, 11, 15, 16], "email_to_confirm": 0, "first_nam": [0, 9], "imperial_unit": [0, 9], "is_act": [0, 2, 3, 7, 9], "last_nam": [0, 9], "locat": [0, 9, 15], "nb_sport": [0, 9], "nb_workout": [0, 9], "6": [0, 2, 3, 7, 9, 10, 12, 13, 15], "pictur": [0, 9, 10, 11], "record": [0, 4, 9, 10, 11, 13], "id": [0, 2, 3, 5, 6, 7, 8, 9, 10, 16], "9": [0, 6, 9, 13, 15], "record_typ": [0, 6, 9, 10], "AS": [0, 6, 9, 10], "sport_id": [0, 3, 6, 7, 8, 9, 10], "valu": [0, 3, 5, 6, 9, 10, 11, 13, 15, 16, 18], "18": [0, 6, 9, 10, 13, 15], "workout_d": [0, 6, 9, 10], "07": [0, 6, 9, 10], "08": [0, 3, 6, 9, 10], "00": [0, 3, 6, 9, 10], "workout_id": [0, 6, 9, 10], "hvybqybra7wwxpastwr4v2": [0, 6, 9, 10], "10": [0, 1, 3, 6, 9, 10, 13, 15], "fd": [0, 6, 9, 10], "13": [0, 6, 9, 10, 12, 13, 15], "ha": [0, 3, 6, 7, 9, 10, 11, 13, 14], "43": [0, 6, 9, 10, 11], "97": [0, 6, 9, 10, 11], "11": [0, 6, 9, 13, 15], "ld": [0, 6, 9, 10], "01": [0, 6, 8, 9, 10], "12": [0, 6, 9, 10, 15, 17], "m": [0, 6, 8, 9, 10], "sports_list": [0, 9], "4": [0, 2, 7, 8, 9, 10, 12, 13, 15], "start_elevation_at_zero": 0, "timezon": [0, 9, 10, 11, 13], "europ": [0, 9], "pari": [0, 9], "total_asc": [0, 8], "720": 0, "35": [0, 11], "total_dist": [0, 3, 8, 9], "67": [0, 8, 9], "895": [0, 9], "total_dur": [0, 3, 8, 9], "50": [0, 3, 8, 9, 11, 15], "27": [0, 5, 9, 13], "use_dark_mod": 0, "use_raw_gpx_spe": 0, "weekm": [0, 8, 9], "header": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 16], "author": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 16], "oauth": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 14, 15], "2": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13, 14, 15], "0": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15], "bearer": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "signatur": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "expir": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12], "edit": [0, 11, 13], "write": [0, 1, 2, 3, 5, 7, 9, 10, 16], "updat": [0, 1, 2, 3, 7, 9, 10, 11, 13, 15], "first": [0, 3, 5, 13, 16], "name": [0, 5, 9, 11, 15], "last": [0, 11, 15], "biographi": 0, "birth": [0, 11], "date": [0, 8, 10, 11, 13], "format": [0, 8, 10, 11, 13], "y": [0, 8, 10, 15], "d": [0, 8, 10], "support": [0, 5, 11, 12, 13, 15, 16, 18], "default": [0, 3, 5, 8, 9, 10, 11, 13, 15], "date_str": 0, "correspond": [0, 15], "client": [0, 5, 11, 13, 15, 16], "mmm": 0, "do": [0, 1, 2, 3, 7, 8, 9, 10, 15], "local": [0, 11, 14, 15], "e": 0, "fr": [0, 9, 15], "gl": 0, "nl": 0, "de": [0, 2, 15], "nb": 0, "us": [0, 3, 5, 9, 10, 11, 12, 13, 14, 15, 16], "displai": [0, 10, 11, 12, 13, 14, 15, 16, 19], "app": [0, 5, 11, 14, 15, 16], "highest": [0, 6, 13], "ascent": [0, 6, 10, 11, 13], "total": [0, 3, 5, 8, 11, 13], "distanc": [0, 6, 10, 11, 13], "imperi": [0, 11, 13], "unit": [0, 11, 15], "elev": [0, 10, 11, 13, 15], "plot": 0, "start": [0, 8, 10, 11, 13, 15, 19], "zero": [0, 11, 13], "time": [0, 8, 10, 11, 13], "zone": 0, "interfac": [0, 11, 13, 14, 15], "dark": [0, 11, 13], "mode": [0, 11], "browser": [0, 11, 13], "unfilt": 0, "gpx": [0, 5, 10, 11, 13, 14, 15, 17], "calcul": [0, 8, 11, 13], "speed": [0, 6, 10, 11, 13, 15], "doe": [0, 3, 8, 9, 10, 11], "week": [0, 8, 11, 13], "mondai": [0, 8, 13], "don": 0, "t": [0, 11, 18], "match": [0, 10, 11, 13], "sport": [0, 1, 3, 4, 8, 10, 11, 15], "color": [0, 7, 11, 13], "000000": 0, "default_equipment_id": 0, "stopped_speed_threshold": [0, 7], "user_id": [0, 3], "int": [0, 2, 3, 5, 7, 10], "which": [0, 13], "ar": [0, 3, 5, 6, 8, 10, 11, 13, 14, 15, 16, 17, 19], "modifi": [0, 9, 11, 12, 15], "hexadecim": 0, "when": [0, 1, 11, 12, 13, 15], "ad": [0, 3, 10, 11, 12, 13], "workout": [0, 1, 3, 4, 5, 6, 7, 8, 11, 14, 16, 17, 19], "float": [0, 10], "stop": [0, 11, 13, 15], "threshold": [0, 11, 13], "gpxpy": [0, 11, 13, 15], "arrai": [0, 3, 5, 10], "equip": [0, 4, 10, 11, 16], "note": [0, 10, 11, 13, 15], "now": [0, 8, 10, 11, 13, 15], "one": [0, 3, 9, 10, 13], "associ": [0, 3, 5, 10, 11, 13], "equipment_id": [0, 10], "exist": [0, 3, 8, 9, 10, 11, 13, 14, 15], "delet": [0, 3, 5, 9, 10, 11, 12, 13], "reset": [0, 9, 11, 12, 13, 15], "given": [0, 5, 8, 13], "204": [0, 3, 5, 9, 10], "paramet": [0, 2, 3, 5, 7, 8, 9, 10, 11, 13, 15, 16], "No": [0, 3, 5, 9, 10, 11, 14], "multipart": [0, 5, 10], "form": [0, 5, 10, 11], "file": [0, 1, 10, 11, 12, 13, 14, 15, 17, 19], "imag": [0, 9, 10, 11, 13, 15, 19], "extens": [0, 10, 15], "jpg": 0, "png": [0, 10, 15], "gif": 0, "part": [0, 10], "select": [0, 10, 13], "413": [0, 10], "entiti": [0, 10], "too": [0, 10], "larg": [0, 10, 13, 15], "dure": [0, 3, 10], "size": [0, 1, 10, 11, 13, 15], "exce": [0, 3, 10, 11], "0mb": [0, 10], "NO": [0, 3, 5, 9, 10], "handl": [0, 11, 13, 15, 18], "process": [0, 11, 12, 15], "patch": [0, 1, 2, 3, 7, 9, 10], "It": [0, 9, 11, 13, 14, 16], "enabl": [0, 1, 9, 13, 15], "chang": [0, 3, 12, 13, 14, 15], "current": [0, 3, 9, 11], "address": [0, 13, 15], "inform": [0, 1, 11, 13, 14, 15], "anoth": [0, 3, 9, 13, 15], "new": [0, 3, 9, 12, 13, 15, 16], "new_password": 0, "miss": [0, 11], "logout": [0, 11], "blacklist": [0, 12], "out": 0, "access": [0, 5, 8, 11, 15, 16], "revok": [0, 5], "malform": 0, "other": [0, 3, 9, 15], "reason": 0, "export": [0, 11, 12, 13, 14, 15], "return": [0, 5, 6, 8, 9, 10, 11, 15], "creation": [0, 11, 13], "in_progress": 0, "byte": 0, "wed": 0, "mar": [0, 3], "2023": [0, 3, 15], "31": [0, 10, 13, 15], "17": [0, 10, 13], "file_nam": 0, "archive_rgjsr3fht295ywnqr5yp": 0, "zip": [0, 1, 10, 11, 13], "file_s": 0, "924": 0, "ongo": 0, "complet": [0, 11], "download": [0, 10, 11, 13, 15, 19], "archiv": [0, 1, 11, 12, 13, 15], "archive_rgjsr3fhr5yp": 0, "x": [0, 10, 11, 15, 16], "gzip": 0, "filenam": 0, "config": [1, 11, 15, 18], "about": [1, 11, 13, 15, 16], "admin_contact": 1, "gpx_limit_import": 1, "is_email_sending_en": 1, "is_registration_en": 1, "max_single_file_s": 1, "1048576": 1, "max_us": 1, "max_zip_file_s": 1, "10485760": 1, "map_attribut": [1, 15], "copi": [1, 15], "href": [1, 15], "www": [1, 15], "openstreetmap": [1, 11, 15], "org": [1, 15], "copyright": [1, 15], "contributor": [1, 11, 15, 17], "privacy_polici": 1, "privacy_policy_d": 1, "stats_workouts_limit": 1, "10000": 1, "version": [1, 12, 13, 15], "5": [1, 2, 5, 7, 8, 9, 10, 12, 13, 15], "weather_provid": 1, "authent": [1, 2, 4, 5, 6, 7, 8, 9, 10, 16], "instanc": [1, 5, 11, 13, 15, 16], "integ": [1, 2, 3, 5, 7, 8, 9, 10], "max": [1, 9, 10, 11, 12], "number": [1, 9, 10, 11, 12, 13, 15], "singl": [1, 9, 11, 13, 15], "statist": [1, 4], "greater": [1, 11], "than": [1, 3, 9, 11, 12], "equal": 1, "upload": [1, 11, 12, 13, 15, 17, 19], "have": [1, 2, 3, 7, 8, 9, 10, 11], "permiss": [1, 2, 3, 7, 8, 9, 10], "ping": 1, "health": 1, "check": [1, 7, 11, 15, 18], "pong": 1, "all": [2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15], "non": [2, 7, 14], "equipment_typ": [2, 3], "label": [2, 3, 7, 11, 13], "shoe": [2, 3, 13], "bike": [2, 3, 7, 10, 11, 13], "trainer": [2, 13], "kayak_boat": 2, "ski": [2, 13], "snowsho": [2, 11, 13], "has_equip": 2, "equipment_type_id": [2, 3], "NOT": [2, 3, 5, 7, 10], "owner": [3, 11, 13, 15], "see": [3, 11, 13, 14, 15, 16, 18], "some": [3, 9, 10, 11, 13, 14, 15, 16], "queri": [3, 5, 7, 8, 9, 10], "creation_d": [3, 10], "tue": 3, "21": 3, "06": [3, 5, 8], "default_for_sport_id": 3, "descript": [3, 5, 12, 13, 15], "fittracke": [3, 5, 12, 13, 15, 16, 17, 19], "2ukrviyshoakg8qsuknus4": 3, "my": 3, "total_mov": 3, "workouts_count": [3, 9], "29": 3, "second": [3, 10], "equipment_short_id": 3, "item": 3, "piec": [3, 13], "short": [3, 10], "201": [3, 10, 11], "from": [3, 5, 8, 10, 11, 13, 14, 16, 17], "brief": 3, "less": [3, 11], "perhap": 3, "longer": [3, 11, 15, 18], "limit": [3, 11, 13], "option": [3, 5, 11, 12, 15, 16], "whether": 3, "mandatori": [3, 5, 8, 10, 11, 12, 15, 16], "same": [3, 11, 13], "sport_label": 3, "equipment_type_label": 3, "save": [3, 11, 13], "": [3, 9, 10, 11, 13, 15], "remov": [3, 9, 10, 11, 12, 13], "qrj7by6h2iyjsv8sersfgv": 3, "28": 3, "suppli": 3, "refresh": [3, 5, 11], "case": [3, 10, 13, 15], "incorrect": [3, 11, 13], "A": [3, 9, 11, 12, 13, 15, 18], "own": [3, 9, 13, 14], "unless": 3, "forc": 3, "ani": [3, 10, 15], "between": [3, 11, 13], "those": 3, "set": [3, 11, 12, 13, 15, 16, 18], "argument": [3, 12], "cannot": [3, 11, 13], "without": [3, 5, 8, 9, 10, 11, 13, 14], "account": [4, 9, 11, 12, 15, 17], "configur": [4, 11, 13, 15, 16], "oauth2": [4, 16], "pagin": [5, 9, 10], "page": [5, 9, 10, 11, 13], "parti": [5, 13, 14, 16], "client_descript": 5, "client_id": [5, 16], "o22a27s2abpuoxjbxv3ujdox": 5, "issued_at": 5, "thu": 5, "juli": 5, "2022": 5, "53": [5, 11], "import": [5, 11, 13, 15], "redirect_uri": 5, "callback": [5, 16], "websit": 5, "has_next": 5, "has_prev": 5, "client_secret": 5, "secret": [5, 15, 16], "client_nam": 5, "client_uri": 5, "list": [5, 11, 14, 15], "redirect": [5, 11, 16], "client_client_id": 5, "by_id": 5, "issu": [5, 13, 14, 15], "response_typ": [5, 16], "state": [5, 16], "uniqu": [5, 16], "prevent": [5, 15, 16], "cross": [5, 13, 15, 16], "site": [5, 16], "forgeri": [5, 16], "recommend": [5, 15, 16], "code_challeng": [5, 16], "gener": [5, 11, 12, 13, 15, 16], "verifi": [5, 16], "pkce": [5, 16], "code_challenge_method": [5, 16], "method": [5, 15, 16], "challeng": [5, 16], "s256": [5, 16], "authlib": [5, 15, 16], "librari": [5, 11, 15, 16], "access_token": 5, "roehv64thcg28wcewzhrnvlusoduvw8nvnhkcml57": 5, "expires_in": 5, "864000": 5, "refresh_token": 5, "nuv9cy8vqonrqkhtz5pqaq2zw7msh0mornpjr14amswd6f6i": 5, "token_typ": 5, "expires_at": 5, "1658660147": 5, "0667062": 5, "grant_typ": 5, "grant": [5, 16], "authorization_cod": [5, 16], "code_verifi": 5, "follow": [6, 13, 15, 16, 17, 18], "averag": [6, 8, 10, 11, 13], "farthest": [6, 11, 13], "longest": [6, 11, 13], "durat": [6, 10, 11, 13], "maximum": [6, 11, 12, 13], "is_active_for_us": 7, "cycl": [7, 11, 13], "transport": [7, 11, 13], "hike": [7, 11, 13], "mountain": [7, 11, 13], "run": [7, 11, 12, 13, 15, 16], "walk": [7, 11, 13], "check_workout": 7, "has_workout": 7, "stat": [8, 11], "user_nam": [8, 9], "by_tim": 8, "For": [8, 10, 13, 15, 16], "2018": [8, 10], "2017": [8, 10], "total_workout": 8, "203": 8, "156": [8, 11], "15": [8, 10, 12, 13, 15], "282": [8, 11], "12341": 8, "150": 8, "178": [8, 11], "47": [8, 10, 11], "9960": 8, "46": [8, 11], "78": 8, "613": 8, "1267": 8, "average_asc": 8, "101": [8, 11], "average_dist": 8, "average_dur": 8, "7641": 8, "average_spe": 8, "48": 8, "average_desc": 8, "59": [8, 11], "33": [8, 11], "3320": 8, "16": [8, 10, 13], "99": [8, 11], "95": [8, 11], "end": [8, 10], "frame": 8, "sundai": [8, 10, 13], "month": [8, 11, 13], "year": [8, 13], "period": [8, 13, 15], "by_sport": 8, "uploads_dir_s": 8, "1000": 8, "regardless": 9, "right": [9, 11, 12, 13, 15, 16], "order_bi": [9, 10], "par_pag": 9, "is_admin": 9, "sat": 9, "20": [9, 13], "03": [9, 10], "per_pag": [9, 10], "per": [9, 10, 11, 15], "q": 9, "order": [9, 10, 11, 13, 16], "sort": [9, 10, 13], "asc": [9, 10], "desc": [9, 10], "criteria": [9, 10], "detail": [9, 11, 15, 19], "jpeg": 9, "add": [9, 11, 12, 13, 14], "new_email": 9, "reset_password": 9, "differ": [9, 11, 13], "except": [9, 13, 15, 18], "he": 9, "john_do": 9, "your": [9, 13, 14, 15], "02": 10, "least": 10, "ave_spe": 10, "bound": 10, "51": 10, "descent": [10, 11, 13], "04": 10, "kjxavsturjvoah2wvcegef": 10, "map": [10, 11, 13, 14, 19], "max_alt": 10, "max_spe": 10, "min_alt": 10, "modification_d": 10, "move": [10, 11], "next_workout": 10, "paus": [10, 11], "previous_workout": 10, "mon": 10, "jan": 10, "segment": [10, 11, 13], "titl": [10, 11, 13], "weather_end": 10, "weather_start": 10, "with_gpx": 10, "100": [10, 11, 13], "insensit": [10, 15], "distance_from": 10, "minim": [10, 16], "distance_to": 10, "maxim": 10, "duration_from": 10, "h": [10, 13], "duration_to": 10, "ave_speed_from": 10, "ave_speed_to": 10, "max_speed_from": 10, "max_speed_to": 10, "none": 10, "workout_short_id": 10, "57": [10, 11], "45": 10, "22": 10, "morn": 10, "leaflet": [10, 15], "chart_data": 10, "chart": [10, 11, 13, 15], "j": [10, 11, 15], "279": [10, 11], "latitud": 10, "5078118": 10, "longitud": 10, "1232004": 10, "63": 10, "fri": 10, "44": [10, 11], "7": [10, 12, 13, 15, 16], "7380": 10, "280": [10, 11], "5079733": 10, "1234538": 10, "39": 10, "segment_id": 10, "map_id": 10, "fa33f4d996844a5c73ecd1ae24456ab8": 10, "1563529507772": 10, "map_til": 10, "z": [10, 15], "tile": [10, 11, 13], "c": [10, 15], "4109": 10, "2930": 10, "subdomain": [10, 11, 15], "zoom": 10, "index": 10, "along": 10, "axi": [10, 11, 13], "xml": 10, "doubl": 10, "quot": 10, "escap": 10, "no_gpx": 10, "uuid": [10, 11], "km": [10, 13], "replac": [10, 11, 15], "empti": [10, 11, 12, 15], "566": 11, "section": 11, "pr": 11, "575": 11, "587": [11, 15], "588": 11, "click": 11, "checkbox": 11, "564": 11, "dutch": [11, 13], "565": 11, "polish": [11, 13], "571": 11, "galician": [11, 13], "spanish": [11, 13], "582": 11, "basqu": [11, 13], "98": 11, "czech": [11, 13], "73": 11, "german": [11, 13, 15], "italian": [11, 13], "norwegian": [11, 13], "bokm\u00e5l": [11, 13], "52": 11, "92": 11, "portugues": [11, 13], "583": 11, "simplifi": [11, 16], "docker": 11, "deploy": 11, "thank": [11, 15, 17], "byakurau": 11, "gallegonovato": 11, "jderuit": 11, "pluja": 11, "xmgz": 11, "contain": [11, 13, 15], "databas": [11, 13, 15, 18], "migrat": [11, 12, 15], "upgrad": 11, "f2aec30": 11, "strength": 11, "estim": 11, "563": 11, "cli": [11, 12, 13, 15], "init": 11, "550": 11, "typo": 11, "par": [11, 15], "instead": [11, 13], "551": 11, "555": 11, "558": 11, "74": 11, "88": 11, "556": 11, "refacto": 11, "557": 11, "prepar": 11, "sqlalchemi": [11, 15, 18], "jmlich": 11, "voodoopt": 11, "546": 11, "545": 11, "urtzai": 11, "540": 11, "542": 11, "544": 11, "543": 11, "tool": [11, 13, 14, 15], "black": 11, "flake8": 11, "isort": 11, "ruff": 11, "ondrejzivni": 11, "qwerty287": 11, "527": 11, "531": 11, "navig": 11, "mobil": [11, 14], "532": 11, "footer": 11, "536": 11, "526": 11, "533": 11, "534": 11, "537": 11, "538": 11, "528": 11, "readm": 11, "rework": 11, "530": 11, "specifi": 11, "agplv3": 11, "licens": [11, 14, 15], "comradekingu": 11, "let": 11, "filter": [11, 13], "259": 11, "512": 11, "abil": 11, "508": 11, "3b6fa25": 11, "tabl": 11, "small": 11, "resolut": 11, "51758b4": 11, "hide": [11, 13], "507": 11, "510": 11, "511": 11, "521": 11, "524": 11, "89": 11, "75": 11, "502": 11, "deprec": 11, "command": [11, 13, 14, 15], "506": 11, "jat255": 11, "504": 11, "fail": [11, 19], "496": 11, "499": 11, "84": 11, "60": 11, "bjornclauw": 11, "mariuz": 11, "495": 11, "menu": 11, "490": 11, "eu": 11, "494": 11, "instal": [11, 14], "python": [11, 15, 16], "erral": 11, "b748459": 11, "alert": 11, "481": 11, "keyboard": 11, "dropdown": [11, 13], "3821e37": 11, "make": [11, 15], "calendar": [11, 13], "arrow": [11, 13], "488": 11, "489": 11, "482": 11, "484": 11, "aff4d68": 11, "ci": [11, 15], "action": 11, "8aa4cff": 11, "loader": 11, "theme": [11, 13], "478": 11, "clickabl": 11, "dashboard": 11, "479": 11, "ui": 11, "476": 11, "477": 11, "475": 11, "build": [11, 15], "poetri": [11, 15], "core": 11, "traxi": 11, "koen": 11, "474": 11, "link": [11, 15], "6e215aa": 11, "background": 11, "modal": 11, "473": 11, "113": 11, "464": 11, "471": 11, "trekk": [11, 13], "469": 11, "ou": 11, "472": 11, "468": 11, "456": 11, "drop": 11, "postgresql": [11, 15, 18], "85": 11, "61": 11, "davidhenrythoreau": 11, "224": 11, "result": 11, "444": 11, "In": [11, 13], "addit": [11, 13, 15], "depend": [11, 13], "449": 11, "vue": [11, 15], "450": 11, "441": 11, "433": 11, "encod": [11, 15], "427": 11, "431": 11, "428": 11, "2bcff2e": 11, "flask": [11, 15], "436": 11, "438": 11, "workflow": 11, "421": 11, "darkski": [11, 15], "weather": [11, 13], "env": [11, 15], "426": 11, "astridx": 11, "422": 11, "e2": 11, "test": [11, 15], "packag": [11, 15], "411": 11, "variou": 11, "416": 11, "410": 11, "415": 11, "417": 11, "418": 11, "mariusz": 11, "407": 11, "409": 11, "open": [11, 13, 14, 15], "water": [11, 13], "swim": [11, 13], "398": 11, "402": 11, "399": 11, "406": 11, "56": 11, "380": 11, "390": 11, "391": 11, "paraglid": [11, 13], "384": 11, "inconsist": 11, "gp": [11, 13], "393": 11, "pil": 11, "modul": [11, 15], "attribut": [11, 15], "antialia": 11, "394": 11, "397": 11, "386": 11, "contribut": 11, "md": 11, "388": 11, "395": 11, "cc3fe1c": 11, "42": 11, "dkm": 11, "partial": 11, "yet": [11, 14], "weblat": [11, 13], "minimum": [11, 13], "351": 11, "370": 11, "371": 11, "375": 11, "thovi98": 11, "376": 11, "1375986": 11, "furo": 11, "377": 11, "354": 11, "374": 11, "virtualenv": [11, 15], "87": 11, "36": 11, "366": 11, "369": 11, "host": [11, 15], "367": 11, "358": 11, "359": 11, "overlap": 11, "350": 11, "352": 11, "356": 11, "357": 11, "365": 11, "gnu": 11, "ewm": 11, "among": 11, "below": [11, 15], "sinc": [11, 15, 16], "servic": [11, 15], "shut": [11, 15], "down": [11, 15], "march": [11, 15], "319": 11, "329": 11, "sticki": 11, "333": 11, "338": 11, "relev": 11, "328": 11, "altitud": [11, 13], "track": [11, 14], "b29ed7a": 11, "250": 11, "320": 11, "323": 11, "06ba975": 11, "bcc568e": 11, "ea0ac99": 11, "a458f5f": 11, "075aeb9": 11, "60e164d": 11, "318": 11, "lavoi": 11, "mondstern": 11, "314": 11, "315": 11, "custom": [11, 13, 15], "defin": [11, 13], "review": [11, 13], "lastli": 11, "mai": [11, 13, 14, 15], "301": [11, 15], "304": 11, "305": 11, "307": 11, "posit": [11, 13], "297": 11, "308": 11, "310": 11, "290": 11, "294": 11, "postgresql10": 11, "265": 11, "implement": [11, 16], "altern": 11, "visualcross": 11, "environ": [11, 12, 18], "variabl": [11, 18], "weather_api_provid": [11, 15], "287": 11, "289": 11, "dperruso": 11, "c88a515": 11, "f96dcef": 11, "278": 11, "270": 11, "nederland": 11, "258": 11, "pars": [11, 15], "area": 11, "271": 11, "273": 11, "274": 11, "parallel": 11, "275": 11, "worker": [11, 12, 15, 18], "entri": [11, 15], "point": [11, 15], "fittrackee_work": [11, 15], "dramatiq": [11, 12, 15], "3c8d9c2": 11, "trail": [11, 13], "comma": [11, 15], "dev": 11, "264": 11, "white": 11, "grai": 11, "266": 11, "260": 11, "261": 11, "should": [11, 13, 15], "still": [11, 13, 14, 15], "need": [11, 13, 15, 16], "b1536fc": 11, "257": 11, "bodi": [11, 15, 16], "nginx": [11, 13, 15, 16, 18], "112": 11, "244": 11, "virtual": [11, 13], "ride": 11, "246": 11, "247": 11, "microsecond": 11, "252": 11, "242": 11, "241": 11, "239": 11, "cb9d02f": 11, "231": 11, "236": 11, "rate": 11, "232": 11, "hidden": [11, 13], "237": 11, "212": 11, "230": 11, "problem": 11, "225": 11, "grammar": 11, "skylan0916": 11, "execut": 11, "lower": 11, "v0": [11, 15], "postgr": [11, 18], "213": 11, "measur": 11, "ft": 11, "mi": 11, "223": 11, "icon": [11, 15], "167": 11, "162": 11, "fmstrat": 11, "210": 11, "could": 11, "staticmap_subdomain": [11, 15], "209": 11, "multipl": 11, "gorgobacka": 11, "And": 11, "detect": 11, "208": 11, "card": 11, "html": 11, "197": 11, "196": 11, "manag": [11, 12, 15], "190": 11, "were": 11, "193": 11, "192": 11, "191": 11, "layout": 11, "includ": 11, "195": 11, "affect": [11, 13], "previous": 11, "cc4287e": 11, "offset": 11, "befor": [11, 13, 15], "introduc": 11, "possibl": [11, 13, 14, 15], "smtp": [11, 15], "reduc": 11, "pre": 11, "requisit": 11, "To": [11, 15, 16], "180": 11, "tl": [11, 15], "177": 11, "screen": [11, 13], "175": 11, "173": 11, "171": 11, "correctli": 11, "sent": [11, 13, 15, 16], "155": 11, "106": 11, "169": 11, "161": 11, "160": 11, "sever": [11, 13, 14, 15], "danielsiersleben": 11, "report": 11, "initi": [11, 15], "149": 11, "initialis": 11, "152": 11, "autoescap": 11, "jinja": 11, "templat": 11, "151": 11, "sanit": 11, "input": 11, "serv": [11, 15], "warn": [11, 13], "launch": 11, "w": 11, "script": 11, "entrypoint": 11, "avoid": [11, 13], "product": 11, "dotenv": 11, "146": 11, "145": 11, "model": 11, "140": 11, "fullscreen": 11, "control": [11, 13, 15], "138": 11, "135": 11, "finish": 11, "marker": 11, "134": 11, "wind": [11, 13], "direct": [11, 13], "877fa0f": 11, "131": 11, "129": 11, "127": [11, 15], "legitim": 11, "uri": 11, "localhost": [11, 15], "123": 11, "121": 11, "116": 11, "better": [11, 16], "button": 11, "graph": 11, "115": 11, "91": 11, "min": 11, "90": 11, "seem": 11, "104": 11, "switch": 11, "full": [11, 13], "develop": [11, 12, 14], "109": 11, "slow": 11, "movement": 11, "93": 11, "paf38": 11, "83": 11, "static": [11, 13, 15], "keep": [11, 14, 15], "default_staticmap": [11, 15], "81": 11, "remain": [11, 13], "textarea": 11, "82": 11, "dai": [11, 12, 13, 15], "80": [11, 15], "79": 11, "rebuild": 11, "javascript": [11, 15], "due": 11, "engin": [11, 15, 18], "database_url": [11, 15, 18], "72": 11, "exceed": 11, "71": 11, "70": 11, "66": 11, "64": 11, "shown": [11, 16, 19], "62": 11, "refactor": 11, "evalu": [11, 15], "purpos": [11, 15], "standard": [11, 15], "term": [11, 15], "directori": [11, 13, 15], "also": [11, 12, 13, 14, 15], "major": 11, "becom": 11, "more": [11, 12, 13, 14, 15], "easi": 11, "been": [11, 14], "renam": 11, "layer": [11, 15], "thunderforest": [11, 15], "outdoor": [11, 13, 14, 15], "54": 11, "redi": [11, 12, 15], "side": 11, "4c3fc34": 11, "34614d5": 11, "spinner": 11, "load": [11, 18], "b862a77": 11, "2e1ee2c": 11, "interceptor": 11, "rout": [11, 15], "definit": 11, "weekend": 11, "40": 11, "i18n": 11, "41": 11, "show": [11, 12, 15], "mous": 11, "over": 11, "choos": [11, 13], "37": 11, "34": 11, "anymor": 11, "pipenv": 11, "tooltip": [11, 13], "even": [11, 13], "enter": [11, 13], "kei": [11, 13, 15], "search": 11, "view": [11, 13, 15], "usag": [12, 15], "arg": [12, 15], "help": [12, 15], "exit": [12, 15], "appli": 12, "relat": [12, 13, 15, 16], "random": 12, "two": 12, "letter": 12, "iso": 12, "639": 12, "fall": 12, "back": 12, "incomplet": 12, "store": [13, 14, 16], "kind": 13, "encrypt": 13, "With": [13, 15], "street": [13, 14], "electr": 13, "19": 13, "row": 13, "alpin": 13, "countri": 13, "overridden": 13, "analyz": 13, "wai": [13, 15], "specif": [13, 15], "moment": 13, "up": [13, 14], "manual": 13, "metric": 13, "system": [13, 15], "otherwis": [13, 15], "occur": 13, "origin": 13, "particular": 13, "third": [13, 14, 16], "visual": [13, 15], "sourc": 13, "indic": 13, "come": 13, "There": [13, 15], "perform": 13, "reach": 13, "recent": 13, "On": [13, 15], "line": [13, 14, 15], "light": 13, "accord": 13, "exclud": 13, "extrem": 13, "next": 13, "overrid": 13, "appear": 13, "kayak": 13, "boat": 13, "visibl": 13, "its": [13, 15], "each": 13, "although": 13, "happen": 13, "recalcul": 13, "automat": 13, "deactiv": 13, "being": 13, "individu": 13, "1mb": [13, 15], "10mb": 13, "000": 13, "fetch": [13, 16], "necessari": [13, 15], "like": [13, 15], "markdown": 13, "syntax": 13, "adapt": [13, 15], "discours": 13, "lock": 13, "via": [13, 15], "french": 13, "releas": [13, 15], "them": 14, "android": 14, "exhaust": 14, "runner": 14, "gpl": 14, "v3": 14, "opentrack": 14, "apach": 14, "fitotrack": 14, "under": [14, 15], "heavi": [14, 15], "featur": [14, 15], "unstabl": [14, 15], "document": [14, 15, 16, 18], "troubleshoot": 14, "clone": 15, "repositori": 15, "so": [15, 16], "step": 15, "describ": 15, "linux": 15, "archlinux": 15, "base": 15, "o": 15, "ubuntu": 15, "oper": 15, "encount": 15, "guid": 15, "uberspac": 15, "debian": [15, 17], "net": 15, "written": 15, "typescript": 15, "staticmap": 15, "coordin": 15, "task": 15, "queue": 15, "gunicorn": [15, 18], "vue3": 15, "vuex": 15, "logo": 15, "made": 15, "freepik": 15, "flaticon": 15, "fork": 15, "awesom": 15, "node": 15, "yarn": 15, "compos": 15, "makefil": 15, "thei": [15, 16], "flask_app": 15, "pwd": 15, "__main__": 15, "py": 15, "els": 15, "port": 15, "5000": 15, "app_set": 15, "productionconfig": 15, "app_secret_kei": 15, "strong": 15, "jwt": 15, "app_work": 15, "spawn": 15, "app_log": 15, "path": [15, 18], "upload_fold": [15, 18], "absolut": [15, 18], "where": 15, "folder": 15, "application_directori": 15, "5432": 15, "begin": 15, "database_disable_pool": 15, "pool": 15, "directli": 15, "ui_url": 15, "email_url": [15, 18], "sender_email": 15, "sender": 15, "redis_url": 15, "workers_process": 15, "api_rate_limit": 15, "300": 15, "minut": 15, "tile_server_url": 15, "23": 15, "b": 15, "osm": 15, "franc": 15, "target": 15, "_blank": 15, "rel": 15, "noopen": 15, "noreferr": 15, "komoot": 15, "weather_api_kei": 15, "weather_api": 15, "vite_app_api_url": 15, "26": 15, "vue_app_api_url": 15, "unencrypt": 15, "25": 15, "ssl": 15, "465": 15, "starttl": 15, "office365": 15, "work": 15, "omit": 15, "old": 15, "notif": 15, "readi": 15, "24": 15, "special": 15, "passwordwith": 15, "40and": 15, "26and": 15, "3f": 15, "apikei": 15, "xxxx": 15, "expect": 15, "osmfr": 15, "fond": 15, "cart": 15, "mention": 15, "legal": 15, "nofollow": 15, "sou": 15, "nbsp": 15, "creativecommon": 15, "sa": 15, "licenc": 15, "cc": 15, "BY": 15, "chosen": 15, "randomli": 15, "ip": 15, "fix": 15, "window": 15, "strategi": 15, "subject": 15, "asset": 15, "notat": 15, "separ": [15, 16], "hour": 15, "mainten": 15, "diagnost": 15, "util": 15, "clear": 15, "enumer": 15, "histor": 15, "hourli": 15, "discontinu": 15, "simplest": 15, "pip": 15, "WITH": 15, "schema": 15, "privileg": 15, "nano": 15, "ftcli": 15, "db": 15, "systemd": 15, "project": 15, "repo": 15, "git": 15, "github": 15, "samr1": 15, "cd": 15, "3000": 15, "wget": 15, "tar": 15, "gz": 15, "xzf": 15, "mv": 15, "sql": 15, "backup": 15, "pg_dump": 15, "semant": 15, "backward": 15, "incompat": 15, "u": 15, "changelog": 15, "restart": 15, "pull": 15, "overwrit": 15, "cp": 15, "r": 15, "One": 15, "proxi": [15, 16], "pass": 15, "network": 15, "startlimitintervalsec": 15, "simpl": 15, "alwai": 15, "restartsec": 15, "standardoutput": 15, "syslog": 15, "standarderror": 15, "syslogidentifi": 15, "workingdirectori": 15, "home": 15, "execstart": 15, "venv": 15, "bin": 15, "create_app": 15, "logfil": 15, "wantedbi": 15, "multi": 15, "higher": 15, "timeout": [15, 18], "OF": 15, "listen": 15, "443": 15, "http2": 15, "server_nam": 15, "ssl_certif": 15, "fullchain": 15, "pem": 15, "ssl_certificate_kei": 15, "privkei": 15, "how": 15, "larger": [15, 18], "ll": 15, "uncom": 15, "want": 15, "client_max_body_s": [15, 18], "1m": 15, "proxy_pass": 15, "proxy_redirect": 15, "proxy_set_head": [15, 16], "real": 15, "remote_addr": 15, "forward": [15, 16], "proxy_add_x_forwarded_for": 15, "proto": [15, 16], "scheme": [15, 16], "request_uri": 15, "suitabl": 15, "8025": 15, "mailhog": 15, "shell": 15, "insid": 15, "fittrackee_cli": 15, "lint": 15, "fittrackee_ynh": 15, "rest": 16, "whose": 16, "most": 16, "interact": 16, "tab": 16, "exchang": 16, "secur": 16, "3rd": 16, "fittrackee_host": 16, "space": 16, "3aread": 16, "3awrit": 16, "behind": 16, "aaron": 16, "parecki": 16, "oauthlib": 16, "session": 16, "strava": 17, "fit": 17, "garmin": 17, "synchron": 17, "fittrackee_instal": 17, "sh": 17, "netinstal": 17, "exc": 18, "nosuchmoduleerror": 18, "plugin": 18, "dialect": 18, "invalidemailurlschem": 18, "increas": 18, "critic": 18}, "objects": {"": [[0, 0, 1, "post--api-auth-account-confirm", "/api/auth/account/confirm"], [0, 1, 1, "get--api-auth-account-export", "/api/auth/account/export"], [0, 1, 1, "get--api-auth-account-export-(string-file_name)", "/api/auth/account/export/(string:file_name)"], [0, 0, 1, "post--api-auth-account-export-request", "/api/auth/account/export/request"], [0, 0, 1, "post--api-auth-account-privacy-policy", "/api/auth/account/privacy-policy"], [0, 0, 1, "post--api-auth-account-resend-confirmation", "/api/auth/account/resend-confirmation"], [0, 0, 1, "post--api-auth-email-update", "/api/auth/email/update"], [0, 0, 1, "post--api-auth-login", "/api/auth/login"], [0, 0, 1, "post--api-auth-logout", "/api/auth/logout"], [0, 0, 1, "post--api-auth-password-reset-request", "/api/auth/password/reset-request"], [0, 0, 1, "post--api-auth-password-update", "/api/auth/password/update"], [0, 2, 1, "delete--api-auth-picture", "/api/auth/picture"], [0, 0, 1, "post--api-auth-picture", "/api/auth/picture"], [0, 1, 1, "get--api-auth-profile", "/api/auth/profile"], [0, 0, 1, "post--api-auth-profile-edit", "/api/auth/profile/edit"], [0, 3, 1, "patch--api-auth-profile-edit-account", "/api/auth/profile/edit/account"], [0, 0, 1, "post--api-auth-profile-edit-preferences", "/api/auth/profile/edit/preferences"], [0, 0, 1, "post--api-auth-profile-edit-sports", "/api/auth/profile/edit/sports"], [0, 2, 1, "delete--api-auth-profile-reset-sports-(sport_id)", "/api/auth/profile/reset/sports/(sport_id)"], [0, 0, 1, "post--api-auth-register", "/api/auth/register"], [1, 1, 1, "get--api-config", "/api/config"], [1, 3, 1, "patch--api-config", "/api/config"], [2, 1, 1, "get--api-equipment-types", "/api/equipment-types"], [2, 1, 1, "get--api-equipment-types-(int-equipment_type_id)", "/api/equipment-types/(int:equipment_type_id)"], [2, 3, 1, "patch--api-equipment-types-(int-equipment_type_id)", "/api/equipment-types/(int:equipment_type_id)"], [3, 1, 1, "get--api-equipments", "/api/equipments"], [3, 0, 1, "post--api-equipments", "/api/equipments"], [3, 2, 1, "delete--api-equipments-(string-equipment_short_id)", "/api/equipments/(string:equipment_short_id)"], [3, 1, 1, "get--api-equipments-(string-equipment_short_id)", "/api/equipments/(string:equipment_short_id)"], [3, 3, 1, "patch--api-equipments-(string-equipment_short_id)", "/api/equipments/(string:equipment_short_id)"], [3, 0, 1, "post--api-equipments-(string-equipment_short_id)-refresh", "/api/equipments/(string:equipment_short_id)/refresh"], [5, 1, 1, "get--api-oauth-apps", "/api/oauth/apps"], [5, 0, 1, "post--api-oauth-apps", "/api/oauth/apps"], [5, 2, 1, "delete--api-oauth-apps-(int-client_id)", "/api/oauth/apps/(int:client_id)"], [5, 1, 1, "get--api-oauth-apps-(int-client_id)-by_id", "/api/oauth/apps/(int:client_id)/by_id"], [5, 0, 1, "post--api-oauth-apps-(int-client_id)-revoke", "/api/oauth/apps/(int:client_id)/revoke"], [5, 1, 1, "get--api-oauth-apps-(string-client_client_id)", "/api/oauth/apps/(string:client_client_id)"], [5, 0, 1, "post--api-oauth-authorize", "/api/oauth/authorize"], [5, 0, 1, "post--api-oauth-revoke", "/api/oauth/revoke"], [5, 0, 1, "post--api-oauth-token", "/api/oauth/token"], [1, 1, 1, "get--api-ping", "/api/ping"], [6, 1, 1, "get--api-records", "/api/records"], [7, 1, 1, "get--api-sports", "/api/sports"], [7, 1, 1, "get--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [7, 3, 1, "patch--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [8, 1, 1, "get--api-stats-(user_name)-by_sport", "/api/stats/(user_name)/by_sport"], [8, 1, 1, "get--api-stats-(user_name)-by_time", "/api/stats/(user_name)/by_time"], [8, 1, 1, "get--api-stats-all", "/api/stats/all"], [9, 1, 1, "get--api-users", "/api/users"], [9, 2, 1, "delete--api-users-(user_name)", "/api/users/(user_name)"], [9, 1, 1, "get--api-users-(user_name)", "/api/users/(user_name)"], [9, 3, 1, "patch--api-users-(user_name)", "/api/users/(user_name)"], [9, 1, 1, "get--api-users-(user_name)-picture", "/api/users/(user_name)/picture"], [10, 1, 1, "get--api-workouts", "/api/workouts"], [10, 0, 1, "post--api-workouts", "/api/workouts"], [10, 2, 1, "delete--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [10, 3, 1, "patch--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-chart_data", "/api/workouts/(string:workout_short_id)/chart_data"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-chart_data-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/chart_data/segment/(int:segment_id)"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx", "/api/workouts/(string:workout_short_id)/gpx"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx-download", "/api/workouts/(string:workout_short_id)/gpx/download"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/gpx/segment/(int:segment_id)"], [10, 1, 1, "get--api-workouts-map-(map_id)", "/api/workouts/map/(map_id)"], [10, 0, 1, "post--api-workouts-no_gpx", "/api/workouts/no_gpx"], [15, 4, 1, "-", "API_RATE_LIMITS"], [15, 4, 1, "-", "APP_LOG"], [15, 4, 1, "-", "APP_SECRET_KEY"], [15, 4, 1, "-", "APP_SETTINGS"], [15, 4, 1, "-", "APP_WORKERS"], [15, 4, 1, "-", "DATABASE_DISABLE_POOLING"], [15, 4, 1, "-", "DATABASE_URL"], [15, 4, 1, "-", "DEFAULT_STATICMAP"], [15, 4, 1, "-", "EMAIL_URL"], [15, 4, 1, "-", "FLASK_APP"], [15, 4, 1, "-", "HOST"], [15, 4, 1, "-", "MAP_ATTRIBUTION"], [15, 4, 1, "-", "PORT"], [15, 4, 1, "-", "REDIS_URL"], [15, 4, 1, "-", "SENDER_EMAIL"], [15, 4, 1, "-", "STATICMAP_SUBDOMAINS"], [15, 4, 1, "-", "TILE_SERVER_URL"], [15, 4, 1, "-", "UI_URL"], [15, 4, 1, "-", "UPLOAD_FOLDER"], [15, 4, 1, "-", "VITE_APP_API_URL"], [15, 4, 1, "-", "WEATHER_API_KEY"], [15, 4, 1, "envvar-WEATHER_API_PROVIDER", "WEATHER_API_PROVIDER \ud83c\udd95"], [15, 4, 1, "-", "WORKERS_PROCESSES"]], "/api/workouts/map_tile/(s)/(z)/(x)/(y)": [[10, 1, 1, "get--api-workouts-map_tile-(s)-(z)-(x)-(y).png", "png"]]}, "objtypes": {"0": "http:post", "1": "http:get", "2": "http:delete", "3": "http:patch", "4": "std:envvar"}, "objnames": {"0": ["http", "post", "HTTP post"], "1": ["http", "get", "HTTP get"], "2": ["http", "delete", "HTTP delete"], "3": ["http", "patch", "HTTP patch"], "4": ["std", "envvar", "environment variable"]}, "titleterms": {"authent": 0, "account": [0, 13], "configur": 1, "equip": [2, 3, 13], "type": [2, 13], "api": [4, 15], "document": [4, 11], "endpoint": 4, "oauth2": [5, 12], "record": 6, "sport": [7, 13], "statist": [8, 11, 13], "user": [9, 12, 13], "workout": [10, 13, 18], "chang": 11, "log": 11, "version": 11, "0": [11, 16], "8": 11, "5": 11, "2024": 11, "06": 11, "29": 11, "featur": [11, 13], "enhanc": 11, "bug": 11, "fix": 11, "translat": [11, 13], "misc": 11, "4": 11, "05": 11, "22": 11, "3": 11, "09": 11, "2": [11, 16], "08": 11, "1": 11, "01": 11, "04": 11, "21": 11, "7": 11, "32": 11, "03": 11, "10": 11, "31": 11, "02": 11, "30": 11, "28": 11, "2023": 11, "12": 11, "23": 11, "27": 11, "20": 11, "26": 11, "11": 11, "19": 11, "25": 11, "24": 11, "14": 11, "07": 11, "15": 11, "18": 11, "17": 11, "16": 11, "13": 11, "2022": 11, "9": 11, "6": 11, "issu": 11, "close": 11, "pull": 11, "request": 11, "secur": 11, "new": 11, "2021": 11, "2020": 11, "fittracke": [11, 14, 18], "pypi": [11, 15], "administr": [11, 13, 18], "improv": 11, "minor": 11, "avail": 11, "french": 11, "2019": 11, "first": 11, "releas": 11, "2018": 11, "command": 12, "line": 12, "interfac": 12, "databas": 12, "ftcli": 12, "db": 12, "drop": 12, "upgrad": [12, 15], "clean": 12, "clean_arch": 12, "clean_token": 12, "creat": 12, "export_arch": 12, "updat": 12, "prefer": 13, "oauth": [13, 16], "app": 13, "applic": 13, "screenshot": 13, "dashboard": 13, "detail": [13, 18], "list": 13, "tabl": 14, "content": 14, "instal": [15, 17], "main": 15, "depend": 15, "prerequisit": 15, "environ": 15, "variabl": 15, "email": 15, "map": [15, 18], "tile": 15, "server": 15, "rate": 15, "limit": 15, "weather": 15, "data": 15, "from": 15, "sourc": 15, "dev": 15, "product": 15, "prod": 15, "deploy": 15, "docker": 15, "develop": 15, "yunohost": 15, "scope": 16, "flow": 16, "resourc": 16, "third": 17, "parti": 17, "tool": 17, "import": 17, "script": 17, "fail": 18, "start": 18, "imag": 18, "ar": 18, "displai": 18, "i": 18, "shown": 18, "upload": 18, "download": 18, "file": 18, "troubleshoot": 19}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 58}, "alltitles": {"Authentication and account": [[0, "authentication-and-account"]], "Configuration": [[1, "configuration"]], "Equipment Types": [[2, "equipment-types"], [13, "equipment-types"]], "Equipments": [[3, "equipments"], [13, "equipments"], [13, "id1"]], "API documentation": [[4, "api-documentation"]], "Endpoints:": [[4, null]], "OAuth2": [[5, "oauth2"], [12, "oauth2"]], "Records": [[6, "records"]], "Sports": [[7, "sports"], [13, "sports"]], "Statistics": [[8, "statistics"], [13, "statistics"]], "Users": [[9, "users"], [12, "users"], [13, "users"]], "Workouts": [[10, "workouts"], [13, "workouts"]], "Change log": [[11, "change-log"]], "Version 0.8.5 (2024/06/29)": [[11, "version-0-8-5-2024-06-29"]], "Features and enhancements": [[11, "features-and-enhancements"], [11, "id1"], [11, "id8"], [11, "id12"], [11, "id21"], [11, "id25"], [11, "id29"], [11, "id32"], [11, "id49"], [11, "id52"], [11, "id60"], [11, "id63"], [11, "id69"], [11, "id74"], [11, "id76"], [11, "id78"], [11, "id81"], [11, "id92"], [11, "id98"]], "Bugs Fixed": [[11, "bugs-fixed"], [11, "id4"], [11, "id9"], [11, "id13"], [11, "id16"], [11, "id18"], [11, "id22"], [11, "id26"], [11, "id30"], [11, "id33"], [11, "id36"], [11, "id39"], [11, "id40"], [11, "id43"], [11, "id45"], [11, "id47"], [11, "id50"], [11, "id53"], [11, "id61"], [11, "id64"], [11, "id67"], [11, "id70"], [11, "id82"], [11, "id87"], [11, "id89"], [11, "id93"], [11, "id96"], [11, "id99"], [11, "id101"], [11, "id104"], [11, "id107"], [11, "id109"], [11, "id112"], [11, "id115"], [11, "id118"], [11, "id123"], [11, "id125"], [11, "id127"], [11, "id129"], [11, "id132"], [11, "id134"], [11, "id140"], [11, "id143"], [11, "id145"], [11, "id147"], [11, "id154"], [11, "id159"], [11, "id161"], [11, "id163"], [11, "id166"], [11, "id168"], [11, "id170"], [11, "id174"], [11, "id184"], [11, "id187"], [11, "id189"], [11, "id192"], [11, "id199"]], "Translations": [[11, "translations"], [11, "id2"], [11, "id5"], [11, "id6"], [11, "id10"], [11, "id14"], [11, "id17"], [11, "id19"], [11, "id23"], [11, "id27"], [11, "id31"], [11, "id34"], [11, "id37"], [11, "id41"], [11, "id46"], [11, "id51"], [11, "id54"], [11, "id56"], [11, "id59"], [11, "id62"], [11, "id65"], [11, "id68"], [11, "id71"], [11, "id72"], [11, "id75"], [11, "id77"], [11, "id79"], [11, "id80"], [11, "id83"], [11, "id85"], [11, "id88"], [11, "id90"], [11, "id94"], [11, "id95"], [11, "id97"], [11, "id100"], [11, "id113"], [13, "translations"]], "Misc": [[11, "misc"], [11, "id3"], [11, "id7"], [11, "id11"], [11, "id15"], [11, "id20"], [11, "id24"], [11, "id28"], [11, "id35"], [11, "id38"], [11, "id42"], [11, "id44"], [11, "id48"], [11, "id55"], [11, "id58"], [11, "id66"], [11, "id73"], [11, "id84"], [11, "id86"], [11, "id102"], [11, "id116"], [11, "id119"], [11, "id136"], [11, "id138"], [11, "id155"], [11, "id164"], [11, "id171"], [11, "id175"], [11, "id182"], [11, "id193"], [11, "id196"]], "Version 0.8.4 (2024/05/22)": [[11, "version-0-8-4-2024-05-22"]], "Version 0.8.3 (2024/05/09)": [[11, "version-0-8-3-2024-05-09"]], "Version 0.8.2 (2024/05/08)": [[11, "version-0-8-2-2024-05-08"]], "Version 0.8.1 (2024/05/01)": [[11, "version-0-8-1-2024-05-01"]], "Version 0.8.0 (2024/04/21)": [[11, "version-0-8-0-2024-04-21"]], "Version 0.7.32 (2024/03/10)": [[11, "version-0-7-32-2024-03-10"]], "Version 0.7.31 (2024/02/10)": [[11, "version-0-7-31-2024-02-10"]], "Version 0.7.30 (2024/02/04)": [[11, "version-0-7-30-2024-02-04"]], "Version 0.7.29 (2024/01/06)": [[11, "version-0-7-29-2024-01-06"]], "Version 0.7.28 (2023/12/23)": [[11, "version-0-7-28-2023-12-23"]], "Version 0.7.27 (2023/12/20)": [[11, "version-0-7-27-2023-12-20"]], "Version 0.7.26 (2023/11/19)": [[11, "version-0-7-26-2023-11-19"]], "Version 0.7.25 (2023/10/08)": [[11, "version-0-7-25-2023-10-08"]], "Version 0.7.24 (2023/10/04)": [[11, "version-0-7-24-2023-10-04"]], "Version 0.7.23 (2023/09/14)": [[11, "version-0-7-23-2023-09-14"]], "Version 0.7.22 (2023/08/23)": [[11, "version-0-7-22-2023-08-23"]], "Version 0.7.21 (2023/07/30)": [[11, "version-0-7-21-2023-07-30"]], "Version 0.7.20 (2023/07/22)": [[11, "version-0-7-20-2023-07-22"]], "Version 0.7.19 (2023/07/15)": [[11, "version-0-7-19-2023-07-15"]], "Documentation": [[11, "documentation"], [11, "id57"], [11, "id91"]], "Version 0.7.18 (2023/06/25)": [[11, "version-0-7-18-2023-06-25"]], "Version 0.7.17 (2023/06/03)": [[11, "version-0-7-17-2023-06-03"]], "Version 0.7.16 (2023/05/29)": [[11, "version-0-7-16-2023-05-29"]], "Version 0.7.15 (2023/04/12)": [[11, "version-0-7-15-2023-04-12"]], "Version 0.7.14 (2023/03/08)": [[11, "version-0-7-14-2023-03-08"]], "Version 0.7.13 (2023/03/05)": [[11, "version-0-7-13-2023-03-05"]], "Version 0.7.12 (2023/02/16)": [[11, "version-0-7-12-2023-02-16"]], "Version 0.7.11 (2022/12/31)": [[11, "version-0-7-11-2022-12-31"]], "Version 0.7.10 (2022/12/21)": [[11, "version-0-7-10-2022-12-21"]], "Version 0.7.9 (2022/12/11)": [[11, "version-0-7-9-2022-12-11"]], "Version 0.7.8 (2022/11/30)": [[11, "version-0-7-8-2022-11-30"]], "Version 0.7.7 (2022/11/27)": [[11, "version-0-7-7-2022-11-27"]], "Version 0.7.6 (2022/11/09)": [[11, "version-0-7-6-2022-11-09"]], "Version 0.7.5 (2022/11/09)": [[11, "version-0-7-5-2022-11-09"]], "Version 0.7.4 (2022/11/05)": [[11, "version-0-7-4-2022-11-05"]], "Version 0.7.3 (2022/11/01)": [[11, "version-0-7-3-2022-11-01"]], "Version 0.7.2 (2022/09/21)": [[11, "version-0-7-2-2022-09-21"]], "Version 0.7.1 (2022/09/21)": [[11, "version-0-7-1-2022-09-21"]], "Version 0.7.0 (2022/09/19)": [[11, "version-0-7-0-2022-09-19"]], "Version 0.6.12 (2022/09/14)": [[11, "version-0-6-12-2022-09-14"]], "Issues Closed": [[11, "issues-closed"], [11, "id103"], [11, "id106"], [11, "id110"], [11, "id114"], [11, "id117"], [11, "id120"], [11, "id122"], [11, "id126"], [11, "id128"], [11, "id130"], [11, "id135"], [11, "id139"], [11, "id142"], [11, "id144"], [11, "id146"], [11, "id148"], [11, "id150"], [11, "id152"], [11, "id157"], [11, "id160"], [11, "id162"], [11, "id165"], [11, "id167"], [11, "id169"], [11, "id172"], [11, "id176"], [11, "id178"], [11, "id180"], [11, "id183"], [11, "id185"], [11, "id188"], [11, "id190"], [11, "id194"], [11, "id197"], [11, "id200"]], "Pull Requests": [[11, "pull-requests"], [11, "id105"], [11, "id108"], [11, "id124"], [11, "id133"], [11, "id137"], [11, "id141"], [11, "id156"]], "Version 0.6.11 (2022/07/27)": [[11, "version-0-6-11-2022-07-27"]], "Features": [[11, "features"], [11, "id111"], [11, "id121"], [11, "id131"], [13, "features"]], "Version 0.6.10 (2022/07/13)": [[11, "version-0-6-10-2022-07-13"]], "Version 0.6.9 (2022/07/03)": [[11, "version-0-6-9-2022-07-03"]], "Version 0.6.8 (2022/06/22)": [[11, "version-0-6-8-2022-06-22"]], "Version 0.6.7 (2022/06/11)": [[11, "version-0-6-7-2022-06-11"]], "Version 0.6.6 (2022/05/29)": [[11, "version-0-6-6-2022-05-29"]], "Version 0.6.5 (2022/04/24)": [[11, "version-0-6-5-2022-04-24"]], "Version 0.6.4 (2022/04/23)": [[11, "version-0-6-4-2022-04-23"]], "Version 0.6.3 (2022/04/09)": [[11, "version-0-6-3-2022-04-09"]], "Version 0.6.2 (2022/04/03)": [[11, "version-0-6-2-2022-04-03"]], "Version 0.6.1 (2022/03/27)": [[11, "version-0-6-1-2022-03-27"]], "Version 0.6.0 (2022/03/27)": [[11, "version-0-6-0-2022-03-27"]], "Version 0.5.7 (2022/02/13)": [[11, "version-0-5-7-2022-02-13"]], "Security": [[11, "security"]], "Version 0.5.6 (2022/02/05)": [[11, "version-0-5-6-2022-02-05"]], "Version 0.5.5 (2022/01/19)": [[11, "version-0-5-5-2022-01-19"]], "New Features": [[11, "new-features"], [11, "id149"], [11, "id151"], [11, "id153"], [11, "id158"], [11, "id173"], [11, "id177"], [11, "id179"], [11, "id181"], [11, "id186"], [11, "id191"], [11, "id195"], [11, "id198"], [11, "id201"]], "Version 0.5.4 (2022/01/01)": [[11, "version-0-5-4-2022-01-01"]], "Version 0.5.3 (2022/01/01)": [[11, "version-0-5-3-2022-01-01"]], "Version 0.5.2 (2021/12/19)": [[11, "version-0-5-2-2021-12-19"]], "Version 0.5.1 (2021/11/30)": [[11, "version-0-5-1-2021-11-30"]], "Version 0.5.0 (2021/11/14)": [[11, "version-0-5-0-2021-11-14"]], "Version 0.4.9 (2021/07/16)": [[11, "version-0-4-9-2021-07-16"]], "Version 0.4.8 (2021/07/03)": [[11, "version-0-4-8-2021-07-03"]], "Version 0.4.7 (2021/04/07)": [[11, "version-0-4-7-2021-04-07"]], "Version 0.4.6 (2021/02/21)": [[11, "version-0-4-6-2021-02-21"]], "Version 0.4.5 (2021/02/17)": [[11, "version-0-4-5-2021-02-17"]], "Version 0.4.4 (2021/01/31)": [[11, "version-0-4-4-2021-01-31"]], "Version 0.4.3 (2021/01/10)": [[11, "version-0-4-3-2021-01-10"]], "Version 0.4.2 (2021/01/03)": [[11, "version-0-4-2-2021-01-03"]], "Version 0.4.1 (2020/12/31)": [[11, "version-0-4-1-2020-12-31"]], "Version 0.4.0 - FitTrackee on PyPI (2020/09/19)": [[11, "version-0-4-0-fittrackee-on-pypi-2020-09-19"]], "Version 0.3.0 - Administration (2020/07/15)": [[11, "version-0-3-0-administration-2020-07-15"]], "Version 0.2.5 - Fix and improvements (2020/01/31)": [[11, "version-0-2-5-fix-and-improvements-2020-01-31"]], "Version 0.2.4 - Minor fix (2020/01/30)": [[11, "version-0-2-4-minor-fix-2020-01-30"]], "Version 0.2.3 - FitTrackee available in French (2019/12/29)": [[11, "version-0-2-3-fittrackee-available-in-french-2019-12-29"]], "Version 0.2.2 - Statistics fix (2019/09/23)": [[11, "version-0-2-2-statistics-fix-2019-09-23"]], "Version 0.2.1 - Fix and improvements (2019/09/01)": [[11, "version-0-2-1-fix-and-improvements-2019-09-01"]], "Version 0.2.0 - Statistics (2019/07/07)": [[11, "version-0-2-0-statistics-2019-07-07"]], "Version 0.1.1 - Fix and improvements (2019/02/07)": [[11, "version-0-1-1-fix-and-improvements-2019-02-07"]], "Version 0.1.0 - First release \ud83c\udf89 (2018-07-04)": [[11, "version-0-1-0-first-release-2018-07-04"]], "Command line interface": [[12, "command-line-interface"]], "Database": [[12, "database"]], "ftcli db drop": [[12, "ftcli-db-drop"]], "ftcli db upgrade": [[12, "ftcli-db-upgrade"]], "ftcli oauth2 clean": [[12, "ftcli-oauth2-clean"]], "ftcli users clean_archives": [[12, "ftcli-users-clean-archives"]], "ftcli users clean_tokens": [[12, "ftcli-users-clean-tokens"]], "ftcli users create": [[12, "ftcli-users-create"]], "ftcli users export_archives": [[12, "ftcli-users-export-archives"]], "ftcli users update": [[12, "ftcli-users-update"]], "Account & preferences": [[13, "account-preferences"]], "OAuth Apps": [[13, "oauth-apps"]], "Administration": [[13, "administration"], [13, "id2"]], "Application": [[13, "application"]], "Screenshots": [[13, "screenshots"]], "Dashboard": [[13, "dashboard"]], "Workout detail": [[13, "workout-detail"]], "Workouts list": [[13, "workouts-list"]], "FitTrackee": [[14, "fittrackee"]], "Table of contents": [[14, "table-of-contents"]], "Installation": [[15, "installation"], [15, "id2"], [15, "id6"]], "Main dependencies": [[15, "main-dependencies"]], "Prerequisites": [[15, "prerequisites"]], "Environment variables": [[15, "environment-variables"]], "Emails": [[15, "emails"]], "Map tile server": [[15, "map-tile-server"]], "API rate limits": [[15, "api-rate-limits"]], "Weather data": [[15, "weather-data"]], "From PyPI": [[15, "from-pypi"], [15, "id3"]], "From sources": [[15, "from-sources"], [15, "id4"]], "Dev environment": [[15, "dev-environment"], [15, "id5"]], "Production environment": [[15, "production-environment"]], "Upgrade": [[15, "upgrade"]], "Prod environment": [[15, "prod-environment"]], "Deployment": [[15, "deployment"]], "Docker": [[15, "docker"]], "Development": [[15, "development"]], "Yunohost": [[15, "yunohost"]], "OAuth 2.0": [[16, "oauth-2-0"]], "Scopes": [[16, "scopes"]], "Flow": [[16, "flow"]], "Resources": [[16, "resources"]], "Third-party tools": [[17, "third-party-tools"]], "Import tools": [[17, "import-tools"]], "Installation scripts": [[17, "installation-scripts"]], "Administrator": [[18, "administrator"]], "FitTrackee fails to start": [[18, "fittrackee-fails-to-start"]], "Map images are not displayed but map is shown in Workout detail": [[18, "map-images-are-not-displayed-but-map-is-shown-in-workout-detail"]], "Failed to upload or download files": [[18, "failed-to-upload-or-download-files"]], "Troubleshooting": [[19, "troubleshooting"]]}, "indexentries": {"api_rate_limits": [[15, "envvar-API_RATE_LIMITS"]], "app_log": [[15, "envvar-APP_LOG"]], "app_secret_key": [[15, "envvar-APP_SECRET_KEY"]], "app_settings": [[15, "envvar-APP_SETTINGS"]], "app_workers": [[15, "envvar-APP_WORKERS"]], "database_disable_pooling": [[15, "envvar-DATABASE_DISABLE_POOLING"]], "database_url": [[15, "envvar-DATABASE_URL"]], "default_staticmap": [[15, "envvar-DEFAULT_STATICMAP"]], "email_url": [[15, "envvar-EMAIL_URL"]], "flask_app": [[15, "envvar-FLASK_APP"]], "host": [[15, "envvar-HOST"]], "map_attribution": [[15, "envvar-MAP_ATTRIBUTION"]], "port": [[15, "envvar-PORT"]], "redis_url": [[15, "envvar-REDIS_URL"]], "sender_email": [[15, "envvar-SENDER_EMAIL"]], "staticmap_subdomains": [[15, "envvar-STATICMAP_SUBDOMAINS"]], "tile_server_url": [[15, "envvar-TILE_SERVER_URL"]], "ui_url": [[15, "envvar-UI_URL"]], "upload_folder": [[15, "envvar-UPLOAD_FOLDER"]], "vite_app_api_url": [[15, "envvar-VITE_APP_API_URL"]], "weather_api_key": [[15, "envvar-WEATHER_API_KEY"]], "weather_api_provider \ud83c\udd95": [[15, "envvar-WEATHER_API_PROVIDER"]], "workers_processes": [[15, "envvar-WORKERS_PROCESSES"]], "environment variable": [[15, "envvar-API_RATE_LIMITS"], [15, "envvar-APP_LOG"], [15, "envvar-APP_SECRET_KEY"], [15, "envvar-APP_SETTINGS"], [15, "envvar-APP_WORKERS"], [15, "envvar-DATABASE_DISABLE_POOLING"], [15, "envvar-DATABASE_URL"], [15, "envvar-DEFAULT_STATICMAP"], [15, "envvar-EMAIL_URL"], [15, "envvar-FLASK_APP"], [15, "envvar-HOST"], [15, "envvar-MAP_ATTRIBUTION"], [15, "envvar-PORT"], [15, "envvar-REDIS_URL"], [15, "envvar-SENDER_EMAIL"], [15, "envvar-STATICMAP_SUBDOMAINS"], [15, "envvar-TILE_SERVER_URL"], [15, "envvar-UI_URL"], [15, "envvar-UPLOAD_FOLDER"], [15, "envvar-VITE_APP_API_URL"], [15, "envvar-WEATHER_API_KEY"], [15, "envvar-WEATHER_API_PROVIDER"], [15, "envvar-WORKERS_PROCESSES"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["api/auth", "api/configuration", "api/equipment_types", "api/equipments", "api/index", "api/oauth2", "api/records", "api/sports", "api/stats", "api/users", "api/workouts", "changelog", "cli", "features", "index", "installation", "oauth", "third_party_tools", "troubleshooting/administrator", "troubleshooting/index"], "filenames": ["api/auth.rst", "api/configuration.rst", "api/equipment_types.rst", "api/equipments.rst", "api/index.rst", "api/oauth2.rst", "api/records.rst", "api/sports.rst", "api/stats.rst", "api/users.rst", "api/workouts.rst", "changelog.md", "cli.rst", "features.rst", "index.rst", "installation.rst", "oauth.rst", "third_party_tools.rst", "troubleshooting/administrator.rst", "troubleshooting/index.rst"], "titles": ["Authentication and account", "Configuration", "Equipment Types", "Equipments", "API documentation", "OAuth2", "Records", "Sports", "Statistics", "Users", "Workouts", "Change log", "Command line interface", "Features", "FitTrackee", "Installation", "OAuth 2.0", "Third-party tools", "Administrator", "Troubleshooting"], "terms": {"post": [0, 3, 5, 10, 16], "api": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16], "auth": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 16], "regist": [0, 1, 11, 13, 15], "user": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 15, 16], "send": [0, 9, 11, 13, 15], "confirm": [0, 5, 11, 13, 15], "email": [0, 1, 9, 11, 12, 13, 18], "The": [0, 3, 11, 13, 15, 16, 18], "newli": [0, 12, 15], "creat": [0, 3, 5, 10, 11, 13, 15, 16], "i": [0, 1, 3, 5, 10, 11, 12, 13, 14, 15, 16, 19], "inact": [0, 3, 9, 10, 13, 15], "must": [0, 1, 2, 3, 5, 7, 9, 10, 11, 13, 15, 16, 18], "hi": [0, 3, 9, 11, 13], "activ": [0, 2, 3, 7, 9, 11, 12, 13, 14, 15], "exampl": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16], "request": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 15, 16], "http": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 16], "1": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 15], "content": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "type": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15], "applic": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16], "json": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13], "respons": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "success": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "200": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 15], "statu": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13], "error": [0, 1, 2, 3, 5, 7, 9, 10, 11, 13, 15, 18], "registr": [0, 1, 11, 12, 13, 15, 16], "400": [0, 1, 2, 3, 5, 7, 8, 9, 10, 11], "bad": [0, 1, 2, 3, 5, 7, 8, 9, 10], "messag": [0, 1, 5, 10, 11, 12, 13, 15], "valid": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 15, 18], "provid": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18], "n": 0, "object": [0, 1, 2, 3, 7, 9, 10], "usernam": [0, 8, 9, 11, 12, 15], "string": [0, 1, 3, 5, 7, 8, 9, 10, 15, 16], "3": [0, 2, 7, 8, 9, 10, 13, 15], "30": [0, 8], "charact": [0, 3, 11, 15], "requir": [0, 3, 11, 15, 16], "password": [0, 9, 11, 12, 13, 15], "8": [0, 1, 10, 12, 13, 15, 16], "lang": [0, 11, 12], "languag": [0, 9, 11, 12, 13], "prefer": [0, 9, 11, 12], "invalid": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 15], "fallback": 0, "en": [0, 9, 12], "english": [0, 11, 12, 13], "accepted_polici": 0, "boolean": [0, 1, 2, 3, 5, 7, 9, 12], "true": [0, 1, 2, 3, 5, 7, 9, 11, 15], "accept": 0, "privaci": [0, 1, 11, 13], "polici": [0, 1, 11, 13], "code": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 16], "ok": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "payload": [0, 1, 2, 5, 7, 9, 10], "sorri": 0, "alreadi": [0, 3, 11, 12], "taken": [0, 13], "you": [0, 1, 2, 3, 7, 8, 9, 10, 11, 13, 14, 15], "agre": [0, 11, 13], "onli": [0, 3, 5, 8, 9, 10, 11, 12, 13, 15, 16], "alphanumer": [0, 11], "underscor": 0, "_": [0, 11], "allow": [0, 1, 3, 10, 11, 12, 13, 14, 15, 16], "403": [0, 1, 2, 3, 7, 8, 9, 10], "forbidden": [0, 1, 2, 3, 7, 8, 9, 10], "disabl": [0, 11, 12, 13, 15], "500": [0, 1, 2, 3, 7, 9, 10, 11], "intern": [0, 1, 2, 3, 7, 9, 10], "server": [0, 1, 2, 3, 7, 9, 10, 11, 13, 14], "pleas": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "try": [0, 2, 3, 7, 9, 10], "again": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "contact": [0, 1, 2, 3, 7, 9, 10, 13], "administr": [0, 1, 2, 3, 7, 9, 10, 16, 19], "after": [0, 5, 11, 13, 15, 16], "auth_token": 0, "web": [0, 14, 15, 16], "token": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 16], "resend": 0, "instruct": [0, 11, 13, 15], "If": [0, 3, 5, 8, 10, 12, 13, 15, 16], "thi": [0, 3, 5, 10, 11, 12, 13, 14, 15], "endpoint": [0, 1, 5, 11, 15, 16], "avail": [0, 6, 12, 13, 15, 16, 17], "resent": 0, "404": [0, 2, 3, 5, 7, 8, 9, 10, 11], "Not": [0, 2, 3, 5, 7, 8, 9, 10], "found": [0, 2, 3, 5, 7, 8, 9, 10, 11], "url": [0, 5, 11, 15, 16, 18], "wa": [0, 3, 11, 13, 15], "login": [0, 11], "an": [0, 1, 2, 3, 5, 7, 9, 10, 11, 13, 15, 16, 18], "can": [0, 3, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18], "log": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13, 14, 15, 18], "successfulli": 0, "401": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "unauthor": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "credenti": [0, 15], "get": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 16], "profil": [0, 5, 11, 16], "info": [0, 11, 13], "scope": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "read": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 16], "data": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16], "accepted_privacy_polici": 0, "admin": [0, 1, 2, 6, 7, 8, 9, 10, 11, 12, 13, 15], "fals": [0, 1, 2, 5, 7, 9, 10, 15], "bio": [0, 9], "null": [0, 1, 3, 7, 9, 10, 11], "birth_dat": [0, 9], "created_at": [0, 9], "sun": [0, 6, 9, 10], "14": [0, 5, 9, 10], "jul": [0, 6, 9, 10], "2019": [0, 6, 8, 9, 10], "09": [0, 9], "58": [0, 9, 11], "gmt": [0, 3, 5, 6, 9, 10], "date_format": 0, "dd": 0, "mm": 0, "yyyi": 0, "display_asc": 0, "sam": [0, 6, 9, 10], "com": [0, 1, 5, 9, 11, 15, 16], "email_to_confirm": 0, "first_nam": [0, 9], "imperial_unit": [0, 9], "is_act": [0, 2, 3, 7, 9], "last_nam": [0, 9], "locat": [0, 9, 15], "nb_sport": [0, 9], "nb_workout": [0, 9], "6": [0, 1, 2, 3, 7, 9, 10, 12, 13, 15], "pictur": [0, 9, 10, 11], "record": [0, 4, 9, 10, 11, 13], "id": [0, 2, 3, 5, 6, 7, 8, 9, 10, 16], "9": [0, 6, 9, 13, 15], "record_typ": [0, 6, 9, 10], "AS": [0, 6, 9, 10], "sport_id": [0, 3, 6, 7, 8, 9, 10], "valu": [0, 3, 5, 6, 9, 10, 11, 13, 15, 16, 18], "18": [0, 6, 9, 10, 13, 15], "workout_d": [0, 6, 9, 10], "07": [0, 6, 9, 10], "08": [0, 3, 6, 9, 10], "00": [0, 3, 6, 9, 10], "workout_id": [0, 6, 9, 10], "hvybqybra7wwxpastwr4v2": [0, 6, 9, 10], "10": [0, 1, 3, 6, 9, 10, 13, 15], "fd": [0, 6, 9, 10], "13": [0, 6, 9, 10, 12, 13, 15], "ha": [0, 3, 6, 7, 9, 10, 11, 13, 14], "43": [0, 6, 9, 10, 11], "97": [0, 6, 9, 10, 11], "11": [0, 6, 9, 13, 15], "ld": [0, 6, 9, 10], "01": [0, 6, 8, 9, 10], "12": [0, 6, 9, 10, 15, 17], "m": [0, 6, 8, 9, 10], "sports_list": [0, 9], "4": [0, 2, 7, 8, 9, 10, 12, 13, 15], "start_elevation_at_zero": 0, "timezon": [0, 9, 10, 11, 13], "europ": [0, 9], "pari": [0, 9], "total_asc": [0, 8], "720": 0, "35": [0, 11], "total_dist": [0, 3, 8, 9], "67": [0, 8, 9], "895": [0, 9], "total_dur": [0, 3, 8, 9], "50": [0, 3, 8, 9, 11, 15], "27": [0, 5, 9, 13], "use_dark_mod": 0, "use_raw_gpx_spe": 0, "weekm": [0, 8, 9], "header": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 16], "author": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 16], "oauth": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 14, 15], "2": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13, 14, 15], "0": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15], "bearer": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "signatur": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "expir": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12], "edit": [0, 11, 13], "write": [0, 1, 2, 3, 5, 7, 9, 10, 16], "updat": [0, 1, 2, 3, 7, 9, 10, 11, 13, 15], "first": [0, 3, 5, 13, 16], "name": [0, 5, 9, 11, 15], "last": [0, 11, 15], "biographi": 0, "birth": [0, 11], "date": [0, 8, 10, 11, 13], "format": [0, 8, 10, 11, 13], "y": [0, 8, 10, 15], "d": [0, 8, 10], "support": [0, 5, 11, 12, 13, 15, 16, 18], "default": [0, 3, 5, 8, 9, 10, 11, 13, 15], "date_str": 0, "correspond": [0, 15], "client": [0, 5, 11, 13, 15, 16], "mmm": 0, "do": [0, 1, 2, 3, 7, 8, 9, 10, 15], "local": [0, 11, 14, 15], "e": 0, "fr": [0, 9, 15], "gl": 0, "nl": 0, "de": [0, 2, 15], "nb": 0, "us": [0, 3, 5, 9, 10, 11, 12, 13, 14, 15, 16], "displai": [0, 10, 11, 12, 13, 14, 15, 16, 19], "app": [0, 5, 11, 14, 15, 16], "highest": [0, 6, 13], "ascent": [0, 6, 10, 11, 13], "total": [0, 3, 5, 8, 11, 13], "distanc": [0, 6, 10, 11, 13], "imperi": [0, 11, 13], "unit": [0, 11, 15], "elev": [0, 10, 11, 13, 15], "plot": 0, "start": [0, 8, 10, 11, 13, 15, 19], "zero": [0, 11, 13], "time": [0, 8, 10, 11, 13], "zone": 0, "interfac": [0, 11, 13, 14, 15], "dark": [0, 11, 13], "mode": [0, 11], "browser": [0, 11, 13], "unfilt": 0, "gpx": [0, 5, 10, 11, 13, 14, 15, 17], "calcul": [0, 8, 11, 13], "speed": [0, 6, 10, 11, 13, 15], "doe": [0, 3, 8, 9, 10, 11], "week": [0, 8, 11, 13], "mondai": [0, 8, 13], "don": 0, "t": [0, 11, 18], "match": [0, 10, 11, 13], "sport": [0, 1, 3, 4, 8, 10, 11, 15], "color": [0, 7, 11, 13], "000000": 0, "default_equipment_id": 0, "stopped_speed_threshold": [0, 7], "user_id": [0, 3], "int": [0, 2, 3, 5, 7, 10], "which": [0, 13], "ar": [0, 3, 5, 6, 8, 10, 11, 13, 14, 15, 16, 17, 19], "modifi": [0, 9, 11, 12, 15], "hexadecim": 0, "when": [0, 1, 11, 12, 13, 15], "ad": [0, 3, 10, 11, 12, 13], "workout": [0, 1, 3, 4, 5, 6, 7, 8, 11, 14, 16, 17, 19], "float": [0, 10], "stop": [0, 11, 13, 15], "threshold": [0, 11, 13], "gpxpy": [0, 11, 13, 15], "arrai": [0, 3, 5, 10], "equip": [0, 4, 10, 11, 16], "note": [0, 10, 11, 13, 15], "now": [0, 8, 10, 11, 13, 15], "one": [0, 3, 9, 10, 13], "associ": [0, 3, 5, 10, 11, 13], "equipment_id": [0, 10], "exist": [0, 3, 8, 9, 10, 11, 13, 14, 15], "delet": [0, 3, 5, 9, 10, 11, 12, 13], "reset": [0, 9, 11, 12, 13, 15], "given": [0, 5, 8, 13], "204": [0, 3, 5, 9, 10], "paramet": [0, 2, 3, 5, 7, 8, 9, 10, 11, 13, 15, 16], "No": [0, 3, 5, 9, 10, 11, 14], "multipart": [0, 5, 10], "form": [0, 5, 10, 11], "file": [0, 1, 10, 11, 12, 13, 14, 15, 17, 19], "imag": [0, 9, 10, 11, 13, 15, 19], "extens": [0, 10, 15], "jpg": 0, "png": [0, 10, 15], "gif": 0, "part": [0, 10], "select": [0, 10, 13], "413": [0, 10], "entiti": [0, 10], "too": [0, 10], "larg": [0, 10, 13, 15], "dure": [0, 3, 10], "size": [0, 1, 10, 11, 13, 15], "exce": [0, 3, 10, 11], "0mb": [0, 10], "NO": [0, 3, 5, 9, 10], "handl": [0, 11, 13, 15, 18], "process": [0, 11, 12, 15], "patch": [0, 1, 2, 3, 7, 9, 10], "It": [0, 9, 11, 13, 14, 16], "enabl": [0, 1, 9, 13, 15], "chang": [0, 3, 12, 13, 14, 15], "current": [0, 3, 9, 11], "address": [0, 13, 15], "inform": [0, 1, 11, 13, 14, 15], "anoth": [0, 3, 9, 13, 15], "new": [0, 3, 9, 12, 13, 15, 16], "new_password": 0, "miss": [0, 11], "logout": [0, 11], "blacklist": [0, 12], "out": 0, "access": [0, 5, 8, 11, 15, 16], "revok": [0, 5], "malform": 0, "other": [0, 3, 9, 15], "reason": 0, "export": [0, 11, 12, 13, 14, 15], "return": [0, 5, 6, 8, 9, 10, 11, 15], "creation": [0, 11, 13], "in_progress": 0, "byte": 0, "wed": 0, "mar": [0, 3], "2023": [0, 3, 15], "31": [0, 10, 13, 15], "17": [0, 10, 13], "file_nam": 0, "archive_rgjsr3fht295ywnqr5yp": 0, "zip": [0, 1, 10, 11, 13], "file_s": 0, "924": 0, "ongo": 0, "complet": [0, 11], "download": [0, 10, 11, 13, 15, 19], "archiv": [0, 1, 11, 12, 13, 15], "archive_rgjsr3fhr5yp": 0, "x": [0, 10, 11, 15, 16], "gzip": 0, "filenam": 0, "config": [1, 11, 15, 18], "about": [1, 11, 13, 15, 16], "admin_contact": 1, "gpx_limit_import": 1, "is_email_sending_en": 1, "is_registration_en": 1, "max_single_file_s": 1, "1048576": 1, "max_us": 1, "max_zip_file_s": 1, "10485760": 1, "map_attribut": [1, 15], "copi": [1, 15], "href": [1, 15], "www": [1, 15], "openstreetmap": [1, 11, 15], "org": [1, 15], "copyright": [1, 15], "contributor": [1, 11, 15, 17], "privacy_polici": 1, "privacy_policy_d": 1, "stats_workouts_limit": 1, "10000": 1, "version": [1, 12, 13, 15], "weather_provid": 1, "authent": [1, 2, 4, 5, 6, 7, 8, 9, 10, 16], "instanc": [1, 5, 11, 13, 15, 16], "integ": [1, 2, 3, 5, 7, 8, 9, 10], "max": [1, 9, 10, 11, 12], "number": [1, 9, 10, 11, 12, 13, 15], "singl": [1, 9, 11, 13, 15], "statist": [1, 4], "greater": [1, 11], "than": [1, 3, 9, 11, 12], "equal": 1, "upload": [1, 11, 12, 13, 15, 17, 19], "have": [1, 2, 3, 7, 8, 9, 10, 11], "permiss": [1, 2, 3, 7, 8, 9, 10], "ping": 1, "health": 1, "check": [1, 7, 11, 15, 18], "pong": 1, "all": [2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15], "non": [2, 7, 14], "equipment_typ": [2, 3], "label": [2, 3, 7, 11, 13], "shoe": [2, 3, 13], "bike": [2, 3, 7, 10, 11, 13], "trainer": [2, 13], "kayak_boat": 2, "5": [2, 5, 7, 8, 9, 10, 12, 13, 15], "ski": [2, 13], "snowsho": [2, 11, 13], "has_equip": 2, "equipment_type_id": [2, 3], "NOT": [2, 3, 5, 7, 10], "owner": [3, 11, 13, 15], "see": [3, 11, 13, 14, 15, 16, 18], "some": [3, 9, 10, 11, 13, 14, 15, 16], "queri": [3, 5, 7, 8, 9, 10], "creation_d": [3, 10], "tue": 3, "21": 3, "06": [3, 5, 8], "default_for_sport_id": 3, "descript": [3, 5, 12, 13, 15], "fittracke": [3, 5, 12, 13, 15, 16, 17, 19], "2ukrviyshoakg8qsuknus4": 3, "my": 3, "total_mov": 3, "workouts_count": [3, 9], "29": 3, "second": [3, 10], "equipment_short_id": 3, "item": 3, "piec": [3, 13], "short": [3, 10], "201": [3, 10, 11], "from": [3, 5, 8, 10, 11, 13, 14, 16, 17], "brief": 3, "less": [3, 11], "perhap": 3, "longer": [3, 11, 15, 18], "limit": [3, 11, 13], "option": [3, 5, 11, 12, 15, 16], "whether": 3, "mandatori": [3, 5, 8, 10, 11, 12, 15, 16], "same": [3, 11, 13], "sport_label": 3, "equipment_type_label": 3, "save": [3, 11, 13], "": [3, 9, 10, 11, 13, 15], "remov": [3, 9, 10, 11, 12, 13], "qrj7by6h2iyjsv8sersfgv": 3, "28": 3, "suppli": 3, "refresh": [3, 5, 11], "case": [3, 10, 13, 15], "incorrect": [3, 11, 13], "A": [3, 9, 11, 12, 13, 15, 18], "own": [3, 9, 13, 14], "unless": 3, "forc": 3, "ani": [3, 10, 15], "between": [3, 11, 13], "those": 3, "set": [3, 11, 12, 13, 15, 16, 18], "argument": [3, 12], "cannot": [3, 11, 13], "without": [3, 5, 8, 9, 10, 11, 13, 14], "account": [4, 9, 11, 12, 15, 17], "configur": [4, 11, 13, 15, 16], "oauth2": [4, 16], "pagin": [5, 9, 10], "page": [5, 9, 10, 11, 13], "parti": [5, 13, 14, 16], "client_descript": 5, "client_id": [5, 16], "o22a27s2abpuoxjbxv3ujdox": 5, "issued_at": 5, "thu": 5, "juli": 5, "2022": 5, "53": [5, 11], "import": [5, 11, 13, 15], "redirect_uri": 5, "callback": [5, 16], "websit": 5, "has_next": 5, "has_prev": 5, "client_secret": 5, "secret": [5, 15, 16], "client_nam": 5, "client_uri": 5, "list": [5, 11, 14, 15], "redirect": [5, 11, 16], "client_client_id": 5, "by_id": 5, "issu": [5, 13, 14, 15], "response_typ": [5, 16], "state": [5, 16], "uniqu": [5, 16], "prevent": [5, 15, 16], "cross": [5, 13, 15, 16], "site": [5, 16], "forgeri": [5, 16], "recommend": [5, 15, 16], "code_challeng": [5, 16], "gener": [5, 11, 12, 13, 15, 16], "verifi": [5, 16], "pkce": [5, 16], "code_challenge_method": [5, 16], "method": [5, 15, 16], "challeng": [5, 16], "s256": [5, 16], "authlib": [5, 15, 16], "librari": [5, 11, 15, 16], "access_token": 5, "roehv64thcg28wcewzhrnvlusoduvw8nvnhkcml57": 5, "expires_in": 5, "864000": 5, "refresh_token": 5, "nuv9cy8vqonrqkhtz5pqaq2zw7msh0mornpjr14amswd6f6i": 5, "token_typ": 5, "expires_at": 5, "1658660147": 5, "0667062": 5, "grant_typ": 5, "grant": [5, 16], "authorization_cod": [5, 16], "code_verifi": 5, "follow": [6, 13, 15, 16, 17, 18], "averag": [6, 8, 10, 11, 13], "farthest": [6, 11, 13], "longest": [6, 11, 13], "durat": [6, 10, 11, 13], "maximum": [6, 11, 12, 13], "is_active_for_us": 7, "cycl": [7, 11, 13], "transport": [7, 11, 13], "hike": [7, 11, 13], "mountain": [7, 11, 13], "run": [7, 11, 12, 13, 15, 16], "walk": [7, 11, 13], "check_workout": 7, "has_workout": 7, "stat": [8, 11], "user_nam": [8, 9], "by_tim": 8, "For": [8, 10, 13, 15, 16], "2018": [8, 10], "2017": [8, 10], "total_workout": 8, "203": 8, "156": [8, 11], "15": [8, 10, 12, 13, 15], "282": [8, 11], "12341": 8, "150": 8, "178": [8, 11], "47": [8, 10, 11], "9960": 8, "46": [8, 11], "78": 8, "613": 8, "1267": 8, "average_asc": 8, "101": [8, 11], "average_dist": 8, "average_dur": 8, "7641": 8, "average_spe": 8, "48": 8, "average_desc": 8, "59": [8, 11], "33": [8, 11], "3320": 8, "16": [8, 10, 13], "99": [8, 11], "95": [8, 11], "end": [8, 10], "frame": 8, "sundai": [8, 10, 13], "month": [8, 11, 13], "year": [8, 13], "period": [8, 13, 15], "by_sport": 8, "uploads_dir_s": 8, "1000": 8, "regardless": 9, "right": [9, 11, 12, 13, 15, 16], "order_bi": [9, 10], "par_pag": 9, "is_admin": 9, "sat": 9, "20": [9, 13], "03": [9, 10], "per_pag": [9, 10], "per": [9, 10, 11, 15], "q": 9, "order": [9, 10, 11, 13, 16], "sort": [9, 10, 13], "asc": [9, 10], "desc": [9, 10], "criteria": [9, 10], "detail": [9, 11, 15, 19], "jpeg": 9, "add": [9, 11, 12, 13, 14], "new_email": 9, "reset_password": 9, "differ": [9, 11, 13], "except": [9, 13, 15, 18], "he": 9, "john_do": 9, "your": [9, 13, 14, 15], "02": 10, "least": 10, "ave_spe": 10, "bound": 10, "51": 10, "descent": [10, 11, 13], "04": 10, "kjxavsturjvoah2wvcegef": 10, "map": [10, 11, 13, 14, 19], "max_alt": 10, "max_spe": 10, "min_alt": 10, "modification_d": 10, "move": [10, 11], "next_workout": 10, "paus": [10, 11], "previous_workout": 10, "mon": 10, "jan": 10, "segment": [10, 11, 13], "titl": [10, 11, 13], "weather_end": 10, "weather_start": 10, "with_gpx": 10, "100": [10, 11, 13], "insensit": [10, 15], "distance_from": 10, "minim": [10, 16], "distance_to": 10, "maxim": 10, "duration_from": 10, "h": [10, 13], "duration_to": 10, "ave_speed_from": 10, "ave_speed_to": 10, "max_speed_from": 10, "max_speed_to": 10, "none": 10, "workout_short_id": 10, "57": [10, 11], "45": 10, "22": 10, "morn": 10, "leaflet": [10, 15], "chart_data": 10, "chart": [10, 11, 13, 15], "j": [10, 11, 15], "279": [10, 11], "latitud": 10, "5078118": 10, "longitud": 10, "1232004": 10, "63": 10, "fri": 10, "44": [10, 11], "7": [10, 12, 13, 15, 16], "7380": 10, "280": [10, 11], "5079733": 10, "1234538": 10, "39": 10, "segment_id": 10, "map_id": 10, "fa33f4d996844a5c73ecd1ae24456ab8": 10, "1563529507772": 10, "map_til": 10, "z": [10, 15], "tile": [10, 11, 13], "c": [10, 15], "4109": 10, "2930": 10, "subdomain": [10, 11, 15], "zoom": 10, "index": 10, "along": 10, "axi": [10, 11, 13], "xml": 10, "doubl": 10, "quot": 10, "escap": 10, "no_gpx": 10, "uuid": [10, 11], "km": [10, 13], "replac": [10, 11, 15], "empti": [10, 11, 12, 15], "pr": 11, "590": 11, "italian": [11, 13], "591": 11, "galician": [11, 13], "592": 11, "german": [11, 13, 15], "dutch": [11, 13], "593": 11, "fb10602": 11, "basqu": [11, 13], "98": 11, "czech": [11, 13], "73": 11, "82": 11, "norwegian": [11, 13], "bokm\u00e5l": [11, 13], "52": 11, "polish": [11, 13], "92": 11, "portugues": [11, 13], "spanish": [11, 13], "595": 11, "ci": [11, 15], "up": [11, 13, 14], "test": [11, 15], "thank": [11, 15, 17], "confusedalex": 11, "lukasitali": 11, "simontb": 11, "slothj": 11, "xmgz": 11, "566": 11, "section": 11, "575": 11, "587": [11, 15], "588": 11, "click": 11, "checkbox": 11, "564": 11, "565": 11, "571": 11, "582": 11, "583": 11, "simplifi": [11, 16], "docker": 11, "deploy": 11, "byakurau": 11, "gallegonovato": 11, "jderuit": 11, "pluja": 11, "contain": [11, 13, 15], "databas": [11, 13, 15, 18], "migrat": [11, 12, 15], "upgrad": 11, "f2aec30": 11, "strength": 11, "estim": 11, "563": 11, "cli": [11, 12, 13, 15], "init": 11, "550": 11, "typo": 11, "par": [11, 15], "instead": [11, 13], "551": 11, "555": 11, "558": 11, "74": 11, "88": 11, "556": 11, "refacto": 11, "557": 11, "prepar": 11, "sqlalchemi": [11, 15, 18], "jmlich": 11, "voodoopt": 11, "546": 11, "545": 11, "urtzai": 11, "540": 11, "542": 11, "544": 11, "543": 11, "tool": [11, 13, 14, 15], "black": 11, "flake8": 11, "isort": 11, "ruff": 11, "ondrejzivni": 11, "qwerty287": 11, "527": 11, "531": 11, "navig": 11, "mobil": [11, 14], "532": 11, "footer": 11, "536": 11, "526": 11, "533": 11, "534": 11, "537": 11, "538": 11, "528": 11, "readm": 11, "rework": 11, "530": 11, "specifi": 11, "agplv3": 11, "licens": [11, 14, 15], "comradekingu": 11, "let": 11, "filter": [11, 13], "259": 11, "512": 11, "abil": 11, "508": 11, "3b6fa25": 11, "tabl": 11, "small": 11, "resolut": 11, "51758b4": 11, "hide": [11, 13], "507": 11, "510": 11, "511": 11, "521": 11, "524": 11, "89": 11, "75": 11, "502": 11, "deprec": 11, "command": [11, 13, 14, 15], "506": 11, "jat255": 11, "504": 11, "fail": [11, 19], "496": 11, "499": 11, "84": 11, "60": 11, "bjornclauw": 11, "mariuz": 11, "495": 11, "menu": 11, "490": 11, "eu": 11, "494": 11, "instal": [11, 14], "python": [11, 15, 16], "erral": 11, "b748459": 11, "alert": 11, "481": 11, "keyboard": 11, "dropdown": [11, 13], "3821e37": 11, "make": [11, 15], "calendar": [11, 13], "arrow": [11, 13], "488": 11, "489": 11, "482": 11, "484": 11, "aff4d68": 11, "action": 11, "8aa4cff": 11, "loader": 11, "theme": [11, 13], "478": 11, "clickabl": 11, "dashboard": 11, "479": 11, "ui": 11, "476": 11, "477": 11, "475": 11, "build": [11, 15], "poetri": [11, 15], "core": 11, "traxi": 11, "koen": 11, "474": 11, "link": [11, 15], "6e215aa": 11, "background": 11, "modal": 11, "473": 11, "113": 11, "464": 11, "471": 11, "trekk": [11, 13], "469": 11, "ou": 11, "472": 11, "468": 11, "456": 11, "drop": 11, "postgresql": [11, 15, 18], "85": 11, "61": 11, "davidhenrythoreau": 11, "224": 11, "result": 11, "444": 11, "In": [11, 13], "addit": [11, 13, 15], "depend": [11, 13], "449": 11, "vue": [11, 15], "450": 11, "441": 11, "433": 11, "encod": [11, 15], "427": 11, "431": 11, "428": 11, "2bcff2e": 11, "flask": [11, 15], "436": 11, "438": 11, "workflow": 11, "421": 11, "darkski": [11, 15], "weather": [11, 13], "env": [11, 15], "426": 11, "astridx": 11, "422": 11, "e2": 11, "packag": [11, 15], "411": 11, "variou": 11, "416": 11, "410": 11, "415": 11, "417": 11, "418": 11, "mariusz": 11, "407": 11, "409": 11, "open": [11, 13, 14, 15], "water": [11, 13], "swim": [11, 13], "398": 11, "402": 11, "399": 11, "406": 11, "56": 11, "380": 11, "390": 11, "391": 11, "paraglid": [11, 13], "384": 11, "inconsist": 11, "gp": [11, 13], "393": 11, "pil": 11, "modul": [11, 15], "attribut": [11, 15], "antialia": 11, "394": 11, "397": 11, "386": 11, "contribut": 11, "md": 11, "388": 11, "395": 11, "cc3fe1c": 11, "42": 11, "dkm": 11, "partial": 11, "yet": [11, 14], "weblat": [11, 13], "minimum": [11, 13], "351": 11, "370": 11, "371": 11, "375": 11, "thovi98": 11, "376": 11, "1375986": 11, "furo": 11, "377": 11, "354": 11, "374": 11, "virtualenv": [11, 15], "87": 11, "36": 11, "366": 11, "369": 11, "host": [11, 15], "367": 11, "358": 11, "359": 11, "overlap": 11, "350": 11, "352": 11, "356": 11, "357": 11, "365": 11, "gnu": 11, "ewm": 11, "among": 11, "below": [11, 15], "sinc": [11, 15, 16], "servic": [11, 15], "shut": [11, 15], "down": [11, 15], "march": [11, 15], "319": 11, "329": 11, "sticki": 11, "333": 11, "338": 11, "relev": 11, "328": 11, "altitud": [11, 13], "track": [11, 14], "b29ed7a": 11, "250": 11, "320": 11, "323": 11, "06ba975": 11, "bcc568e": 11, "ea0ac99": 11, "a458f5f": 11, "075aeb9": 11, "60e164d": 11, "318": 11, "lavoi": 11, "mondstern": 11, "314": 11, "315": 11, "custom": [11, 13, 15], "defin": [11, 13], "review": [11, 13], "lastli": 11, "mai": [11, 13, 14, 15], "301": [11, 15], "304": 11, "305": 11, "307": 11, "posit": [11, 13], "297": 11, "308": 11, "310": 11, "290": 11, "294": 11, "postgresql10": 11, "265": 11, "implement": [11, 16], "altern": 11, "visualcross": 11, "environ": [11, 12, 18], "variabl": [11, 18], "weather_api_provid": [11, 15], "287": 11, "289": 11, "dperruso": 11, "c88a515": 11, "f96dcef": 11, "278": 11, "270": 11, "nederland": 11, "258": 11, "pars": [11, 15], "area": 11, "271": 11, "273": 11, "274": 11, "parallel": 11, "275": 11, "worker": [11, 12, 15, 18], "entri": [11, 15], "point": [11, 15], "fittrackee_work": [11, 15], "dramatiq": [11, 12, 15], "3c8d9c2": 11, "trail": [11, 13], "comma": [11, 15], "dev": 11, "264": 11, "white": 11, "grai": 11, "266": 11, "260": 11, "261": 11, "should": [11, 13, 15], "still": [11, 13, 14, 15], "need": [11, 13, 15, 16], "b1536fc": 11, "257": 11, "bodi": [11, 15, 16], "nginx": [11, 13, 15, 16, 18], "112": 11, "244": 11, "virtual": [11, 13], "ride": 11, "246": 11, "247": 11, "microsecond": 11, "252": 11, "242": 11, "241": 11, "239": 11, "cb9d02f": 11, "231": 11, "236": 11, "rate": 11, "232": 11, "hidden": [11, 13], "237": 11, "212": 11, "230": 11, "problem": 11, "225": 11, "grammar": 11, "skylan0916": 11, "execut": 11, "lower": 11, "v0": [11, 15], "postgr": [11, 18], "213": 11, "measur": 11, "ft": 11, "mi": 11, "223": 11, "icon": [11, 15], "167": 11, "162": 11, "fmstrat": 11, "210": 11, "could": 11, "staticmap_subdomain": [11, 15], "209": 11, "multipl": 11, "gorgobacka": 11, "And": 11, "detect": 11, "208": 11, "card": 11, "html": 11, "197": 11, "196": 11, "manag": [11, 12, 15], "190": 11, "were": 11, "193": 11, "192": 11, "191": 11, "layout": 11, "includ": 11, "195": 11, "affect": [11, 13], "previous": 11, "cc4287e": 11, "offset": 11, "befor": [11, 13, 15], "introduc": 11, "possibl": [11, 13, 14, 15], "smtp": [11, 15], "reduc": 11, "pre": 11, "requisit": 11, "To": [11, 15, 16], "180": 11, "tl": [11, 15], "177": 11, "screen": [11, 13], "175": 11, "173": 11, "171": 11, "correctli": 11, "sent": [11, 13, 15, 16], "155": 11, "106": 11, "169": 11, "161": 11, "160": 11, "sever": [11, 13, 14, 15], "danielsiersleben": 11, "report": 11, "initi": [11, 15], "149": 11, "initialis": 11, "152": 11, "autoescap": 11, "jinja": 11, "templat": 11, "151": 11, "sanit": 11, "input": 11, "serv": [11, 15], "warn": [11, 13], "launch": 11, "w": 11, "script": 11, "entrypoint": 11, "avoid": [11, 13], "product": 11, "dotenv": 11, "146": 11, "145": 11, "model": 11, "140": 11, "fullscreen": 11, "control": [11, 13, 15], "138": 11, "135": 11, "finish": 11, "marker": 11, "134": 11, "wind": [11, 13], "direct": [11, 13], "877fa0f": 11, "131": 11, "129": 11, "127": [11, 15], "legitim": 11, "uri": 11, "localhost": [11, 15], "123": 11, "121": 11, "116": 11, "better": [11, 16], "button": 11, "graph": 11, "115": 11, "91": 11, "min": 11, "90": 11, "seem": 11, "104": 11, "switch": 11, "full": [11, 13], "develop": [11, 12, 14], "109": 11, "slow": 11, "movement": 11, "93": 11, "paf38": 11, "83": 11, "static": [11, 13, 15], "keep": [11, 14, 15], "default_staticmap": [11, 15], "81": 11, "remain": [11, 13], "textarea": 11, "dai": [11, 12, 13, 15], "80": [11, 15], "79": 11, "rebuild": 11, "javascript": [11, 15], "due": 11, "engin": [11, 15, 18], "database_url": [11, 15, 18], "72": 11, "exceed": 11, "71": 11, "70": 11, "66": 11, "64": 11, "shown": [11, 16, 19], "62": 11, "refactor": 11, "evalu": [11, 15], "purpos": [11, 15], "standard": [11, 15], "term": [11, 15], "directori": [11, 13, 15], "also": [11, 12, 13, 14, 15], "major": 11, "becom": 11, "more": [11, 12, 13, 14, 15], "easi": 11, "been": [11, 14], "renam": 11, "layer": [11, 15], "thunderforest": [11, 15], "outdoor": [11, 13, 14, 15], "54": 11, "redi": [11, 12, 15], "side": 11, "4c3fc34": 11, "34614d5": 11, "spinner": 11, "load": [11, 18], "b862a77": 11, "2e1ee2c": 11, "interceptor": 11, "rout": [11, 15], "definit": 11, "weekend": 11, "40": 11, "i18n": 11, "41": 11, "show": [11, 12, 15], "mous": 11, "over": 11, "choos": [11, 13], "37": 11, "34": 11, "anymor": 11, "pipenv": 11, "tooltip": [11, 13], "even": [11, 13], "enter": [11, 13], "kei": [11, 13, 15], "search": 11, "view": [11, 13, 15], "usag": [12, 15], "arg": [12, 15], "help": [12, 15], "exit": [12, 15], "appli": 12, "relat": [12, 13, 15, 16], "random": 12, "two": 12, "letter": 12, "iso": 12, "639": 12, "fall": 12, "back": 12, "incomplet": 12, "store": [13, 14, 16], "kind": 13, "encrypt": 13, "With": [13, 15], "street": [13, 14], "electr": 13, "19": 13, "row": 13, "alpin": 13, "countri": 13, "overridden": 13, "analyz": 13, "wai": [13, 15], "specif": [13, 15], "moment": 13, "manual": 13, "metric": 13, "system": [13, 15], "otherwis": [13, 15], "occur": 13, "origin": 13, "particular": 13, "third": [13, 14, 16], "visual": [13, 15], "sourc": 13, "indic": 13, "come": 13, "There": [13, 15], "perform": 13, "reach": 13, "recent": 13, "On": [13, 15], "line": [13, 14, 15], "light": 13, "accord": 13, "exclud": 13, "extrem": 13, "next": 13, "overrid": 13, "appear": 13, "kayak": 13, "boat": 13, "visibl": 13, "its": [13, 15], "each": 13, "although": 13, "happen": 13, "recalcul": 13, "automat": 13, "deactiv": 13, "being": 13, "individu": 13, "1mb": [13, 15], "10mb": 13, "000": 13, "fetch": [13, 16], "necessari": [13, 15], "like": [13, 15], "markdown": 13, "syntax": 13, "adapt": [13, 15], "discours": 13, "lock": 13, "via": [13, 15], "french": 13, "releas": [13, 15], "them": 14, "android": 14, "exhaust": 14, "runner": 14, "gpl": 14, "v3": 14, "opentrack": 14, "apach": 14, "fitotrack": 14, "under": [14, 15], "heavi": [14, 15], "featur": [14, 15], "unstabl": [14, 15], "document": [14, 15, 16, 18], "troubleshoot": 14, "clone": 15, "repositori": 15, "so": [15, 16], "step": 15, "describ": 15, "linux": 15, "archlinux": 15, "base": 15, "o": 15, "ubuntu": 15, "oper": 15, "encount": 15, "guid": 15, "uberspac": 15, "debian": [15, 17], "net": 15, "written": 15, "typescript": 15, "staticmap": 15, "coordin": 15, "task": 15, "queue": 15, "gunicorn": [15, 18], "vue3": 15, "vuex": 15, "logo": 15, "made": 15, "freepik": 15, "flaticon": 15, "fork": 15, "awesom": 15, "node": 15, "yarn": 15, "compos": 15, "makefil": 15, "thei": [15, 16], "flask_app": 15, "pwd": 15, "__main__": 15, "py": 15, "els": 15, "port": 15, "5000": 15, "app_set": 15, "productionconfig": 15, "app_secret_kei": 15, "strong": 15, "jwt": 15, "app_work": 15, "spawn": 15, "app_log": 15, "path": [15, 18], "upload_fold": [15, 18], "absolut": [15, 18], "where": 15, "folder": 15, "application_directori": 15, "5432": 15, "begin": 15, "database_disable_pool": 15, "pool": 15, "directli": 15, "ui_url": 15, "email_url": [15, 18], "sender_email": 15, "sender": 15, "redis_url": 15, "workers_process": 15, "api_rate_limit": 15, "300": 15, "minut": 15, "tile_server_url": 15, "23": 15, "b": 15, "osm": 15, "franc": 15, "target": 15, "_blank": 15, "rel": 15, "noopen": 15, "noreferr": 15, "komoot": 15, "weather_api_kei": 15, "weather_api": 15, "vite_app_api_url": 15, "26": 15, "vue_app_api_url": 15, "unencrypt": 15, "25": 15, "ssl": 15, "465": 15, "starttl": 15, "office365": 15, "work": 15, "omit": 15, "old": 15, "notif": 15, "readi": 15, "24": 15, "special": 15, "passwordwith": 15, "40and": 15, "26and": 15, "3f": 15, "apikei": 15, "xxxx": 15, "expect": 15, "osmfr": 15, "fond": 15, "cart": 15, "mention": 15, "legal": 15, "nofollow": 15, "sou": 15, "nbsp": 15, "creativecommon": 15, "sa": 15, "licenc": 15, "cc": 15, "BY": 15, "chosen": 15, "randomli": 15, "ip": 15, "fix": 15, "window": 15, "strategi": 15, "subject": 15, "asset": 15, "notat": 15, "separ": [15, 16], "hour": 15, "mainten": 15, "diagnost": 15, "util": 15, "clear": 15, "enumer": 15, "histor": 15, "hourli": 15, "discontinu": 15, "simplest": 15, "pip": 15, "WITH": 15, "schema": 15, "privileg": 15, "nano": 15, "ftcli": 15, "db": 15, "systemd": 15, "project": 15, "repo": 15, "git": 15, "github": 15, "samr1": 15, "cd": 15, "3000": 15, "wget": 15, "tar": 15, "gz": 15, "xzf": 15, "mv": 15, "sql": 15, "backup": 15, "pg_dump": 15, "semant": 15, "backward": 15, "incompat": 15, "u": 15, "changelog": 15, "restart": 15, "pull": 15, "overwrit": 15, "cp": 15, "r": 15, "One": 15, "proxi": [15, 16], "pass": 15, "network": 15, "startlimitintervalsec": 15, "simpl": 15, "alwai": 15, "restartsec": 15, "standardoutput": 15, "syslog": 15, "standarderror": 15, "syslogidentifi": 15, "workingdirectori": 15, "home": 15, "execstart": 15, "venv": 15, "bin": 15, "create_app": 15, "logfil": 15, "wantedbi": 15, "multi": 15, "higher": 15, "timeout": [15, 18], "OF": 15, "listen": 15, "443": 15, "http2": 15, "server_nam": 15, "ssl_certif": 15, "fullchain": 15, "pem": 15, "ssl_certificate_kei": 15, "privkei": 15, "how": 15, "larger": [15, 18], "ll": 15, "uncom": 15, "want": 15, "client_max_body_s": [15, 18], "1m": 15, "proxy_pass": 15, "proxy_redirect": 15, "proxy_set_head": [15, 16], "real": 15, "remote_addr": 15, "forward": [15, 16], "proxy_add_x_forwarded_for": 15, "proto": [15, 16], "scheme": [15, 16], "request_uri": 15, "suitabl": 15, "8025": 15, "mailhog": 15, "shell": 15, "insid": 15, "fittrackee_cli": 15, "lint": 15, "fittrackee_ynh": 15, "rest": 16, "whose": 16, "most": 16, "interact": 16, "tab": 16, "exchang": 16, "secur": 16, "3rd": 16, "fittrackee_host": 16, "space": 16, "3aread": 16, "3awrit": 16, "behind": 16, "aaron": 16, "parecki": 16, "oauthlib": 16, "session": 16, "strava": 17, "fit": 17, "garmin": 17, "synchron": 17, "fittrackee_instal": 17, "sh": 17, "netinstal": 17, "exc": 18, "nosuchmoduleerror": 18, "plugin": 18, "dialect": 18, "invalidemailurlschem": 18, "increas": 18, "critic": 18}, "objects": {"": [[0, 0, 1, "post--api-auth-account-confirm", "/api/auth/account/confirm"], [0, 1, 1, "get--api-auth-account-export", "/api/auth/account/export"], [0, 1, 1, "get--api-auth-account-export-(string-file_name)", "/api/auth/account/export/(string:file_name)"], [0, 0, 1, "post--api-auth-account-export-request", "/api/auth/account/export/request"], [0, 0, 1, "post--api-auth-account-privacy-policy", "/api/auth/account/privacy-policy"], [0, 0, 1, "post--api-auth-account-resend-confirmation", "/api/auth/account/resend-confirmation"], [0, 0, 1, "post--api-auth-email-update", "/api/auth/email/update"], [0, 0, 1, "post--api-auth-login", "/api/auth/login"], [0, 0, 1, "post--api-auth-logout", "/api/auth/logout"], [0, 0, 1, "post--api-auth-password-reset-request", "/api/auth/password/reset-request"], [0, 0, 1, "post--api-auth-password-update", "/api/auth/password/update"], [0, 2, 1, "delete--api-auth-picture", "/api/auth/picture"], [0, 0, 1, "post--api-auth-picture", "/api/auth/picture"], [0, 1, 1, "get--api-auth-profile", "/api/auth/profile"], [0, 0, 1, "post--api-auth-profile-edit", "/api/auth/profile/edit"], [0, 3, 1, "patch--api-auth-profile-edit-account", "/api/auth/profile/edit/account"], [0, 0, 1, "post--api-auth-profile-edit-preferences", "/api/auth/profile/edit/preferences"], [0, 0, 1, "post--api-auth-profile-edit-sports", "/api/auth/profile/edit/sports"], [0, 2, 1, "delete--api-auth-profile-reset-sports-(sport_id)", "/api/auth/profile/reset/sports/(sport_id)"], [0, 0, 1, "post--api-auth-register", "/api/auth/register"], [1, 1, 1, "get--api-config", "/api/config"], [1, 3, 1, "patch--api-config", "/api/config"], [2, 1, 1, "get--api-equipment-types", "/api/equipment-types"], [2, 1, 1, "get--api-equipment-types-(int-equipment_type_id)", "/api/equipment-types/(int:equipment_type_id)"], [2, 3, 1, "patch--api-equipment-types-(int-equipment_type_id)", "/api/equipment-types/(int:equipment_type_id)"], [3, 1, 1, "get--api-equipments", "/api/equipments"], [3, 0, 1, "post--api-equipments", "/api/equipments"], [3, 2, 1, "delete--api-equipments-(string-equipment_short_id)", "/api/equipments/(string:equipment_short_id)"], [3, 1, 1, "get--api-equipments-(string-equipment_short_id)", "/api/equipments/(string:equipment_short_id)"], [3, 3, 1, "patch--api-equipments-(string-equipment_short_id)", "/api/equipments/(string:equipment_short_id)"], [3, 0, 1, "post--api-equipments-(string-equipment_short_id)-refresh", "/api/equipments/(string:equipment_short_id)/refresh"], [5, 1, 1, "get--api-oauth-apps", "/api/oauth/apps"], [5, 0, 1, "post--api-oauth-apps", "/api/oauth/apps"], [5, 2, 1, "delete--api-oauth-apps-(int-client_id)", "/api/oauth/apps/(int:client_id)"], [5, 1, 1, "get--api-oauth-apps-(int-client_id)-by_id", "/api/oauth/apps/(int:client_id)/by_id"], [5, 0, 1, "post--api-oauth-apps-(int-client_id)-revoke", "/api/oauth/apps/(int:client_id)/revoke"], [5, 1, 1, "get--api-oauth-apps-(string-client_client_id)", "/api/oauth/apps/(string:client_client_id)"], [5, 0, 1, "post--api-oauth-authorize", "/api/oauth/authorize"], [5, 0, 1, "post--api-oauth-revoke", "/api/oauth/revoke"], [5, 0, 1, "post--api-oauth-token", "/api/oauth/token"], [1, 1, 1, "get--api-ping", "/api/ping"], [6, 1, 1, "get--api-records", "/api/records"], [7, 1, 1, "get--api-sports", "/api/sports"], [7, 1, 1, "get--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [7, 3, 1, "patch--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [8, 1, 1, "get--api-stats-(user_name)-by_sport", "/api/stats/(user_name)/by_sport"], [8, 1, 1, "get--api-stats-(user_name)-by_time", "/api/stats/(user_name)/by_time"], [8, 1, 1, "get--api-stats-all", "/api/stats/all"], [9, 1, 1, "get--api-users", "/api/users"], [9, 2, 1, "delete--api-users-(user_name)", "/api/users/(user_name)"], [9, 1, 1, "get--api-users-(user_name)", "/api/users/(user_name)"], [9, 3, 1, "patch--api-users-(user_name)", "/api/users/(user_name)"], [9, 1, 1, "get--api-users-(user_name)-picture", "/api/users/(user_name)/picture"], [10, 1, 1, "get--api-workouts", "/api/workouts"], [10, 0, 1, "post--api-workouts", "/api/workouts"], [10, 2, 1, "delete--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [10, 3, 1, "patch--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-chart_data", "/api/workouts/(string:workout_short_id)/chart_data"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-chart_data-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/chart_data/segment/(int:segment_id)"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx", "/api/workouts/(string:workout_short_id)/gpx"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx-download", "/api/workouts/(string:workout_short_id)/gpx/download"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/gpx/segment/(int:segment_id)"], [10, 1, 1, "get--api-workouts-map-(map_id)", "/api/workouts/map/(map_id)"], [10, 0, 1, "post--api-workouts-no_gpx", "/api/workouts/no_gpx"], [15, 4, 1, "-", "API_RATE_LIMITS"], [15, 4, 1, "-", "APP_LOG"], [15, 4, 1, "-", "APP_SECRET_KEY"], [15, 4, 1, "-", "APP_SETTINGS"], [15, 4, 1, "-", "APP_WORKERS"], [15, 4, 1, "-", "DATABASE_DISABLE_POOLING"], [15, 4, 1, "-", "DATABASE_URL"], [15, 4, 1, "-", "DEFAULT_STATICMAP"], [15, 4, 1, "-", "EMAIL_URL"], [15, 4, 1, "-", "FLASK_APP"], [15, 4, 1, "-", "HOST"], [15, 4, 1, "-", "MAP_ATTRIBUTION"], [15, 4, 1, "-", "PORT"], [15, 4, 1, "-", "REDIS_URL"], [15, 4, 1, "-", "SENDER_EMAIL"], [15, 4, 1, "-", "STATICMAP_SUBDOMAINS"], [15, 4, 1, "-", "TILE_SERVER_URL"], [15, 4, 1, "-", "UI_URL"], [15, 4, 1, "-", "UPLOAD_FOLDER"], [15, 4, 1, "-", "VITE_APP_API_URL"], [15, 4, 1, "-", "WEATHER_API_KEY"], [15, 4, 1, "envvar-WEATHER_API_PROVIDER", "WEATHER_API_PROVIDER \ud83c\udd95"], [15, 4, 1, "-", "WORKERS_PROCESSES"]], "/api/workouts/map_tile/(s)/(z)/(x)/(y)": [[10, 1, 1, "get--api-workouts-map_tile-(s)-(z)-(x)-(y).png", "png"]]}, "objtypes": {"0": "http:post", "1": "http:get", "2": "http:delete", "3": "http:patch", "4": "std:envvar"}, "objnames": {"0": ["http", "post", "HTTP post"], "1": ["http", "get", "HTTP get"], "2": ["http", "delete", "HTTP delete"], "3": ["http", "patch", "HTTP patch"], "4": ["std", "envvar", "environment variable"]}, "titleterms": {"authent": 0, "account": [0, 13], "configur": 1, "equip": [2, 3, 13], "type": [2, 13], "api": [4, 15], "document": [4, 11], "endpoint": 4, "oauth2": [5, 12], "record": 6, "sport": [7, 13], "statist": [8, 11, 13], "user": [9, 12, 13], "workout": [10, 13, 18], "chang": 11, "log": 11, "version": 11, "0": [11, 16], "8": 11, "6": 11, "2024": 11, "08": 11, "03": 11, "translat": [11, 13], "misc": 11, "5": 11, "06": 11, "29": 11, "featur": [11, 13], "enhanc": 11, "bug": 11, "fix": 11, "4": 11, "05": 11, "22": 11, "3": 11, "09": 11, "2": [11, 16], "1": 11, "01": 11, "04": 11, "21": 11, "7": 11, "32": 11, "10": 11, "31": 11, "02": 11, "30": 11, "28": 11, "2023": 11, "12": 11, "23": 11, "27": 11, "20": 11, "26": 11, "11": 11, "19": 11, "25": 11, "24": 11, "14": 11, "07": 11, "15": 11, "18": 11, "17": 11, "16": 11, "13": 11, "2022": 11, "9": 11, "issu": 11, "close": 11, "pull": 11, "request": 11, "secur": 11, "new": 11, "2021": 11, "2020": 11, "fittracke": [11, 14, 18], "pypi": [11, 15], "administr": [11, 13, 18], "improv": 11, "minor": 11, "avail": 11, "french": 11, "2019": 11, "first": 11, "releas": 11, "2018": 11, "command": 12, "line": 12, "interfac": 12, "databas": 12, "ftcli": 12, "db": 12, "drop": 12, "upgrad": [12, 15], "clean": 12, "clean_arch": 12, "clean_token": 12, "creat": 12, "export_arch": 12, "updat": 12, "prefer": 13, "oauth": [13, 16], "app": 13, "applic": 13, "screenshot": 13, "dashboard": 13, "detail": [13, 18], "list": 13, "tabl": 14, "content": 14, "instal": [15, 17], "main": 15, "depend": 15, "prerequisit": 15, "environ": 15, "variabl": 15, "email": 15, "map": [15, 18], "tile": 15, "server": 15, "rate": 15, "limit": 15, "weather": 15, "data": 15, "from": 15, "sourc": 15, "dev": 15, "product": 15, "prod": 15, "deploy": 15, "docker": 15, "develop": 15, "yunohost": 15, "scope": 16, "flow": 16, "resourc": 16, "third": 17, "parti": 17, "tool": 17, "import": 17, "script": 17, "fail": 18, "start": 18, "imag": 18, "ar": 18, "displai": 18, "i": 18, "shown": 18, "upload": 18, "download": 18, "file": 18, "troubleshoot": 19}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 58}, "alltitles": {"Authentication and account": [[0, "authentication-and-account"]], "Configuration": [[1, "configuration"]], "Equipment Types": [[2, "equipment-types"], [13, "equipment-types"]], "Equipments": [[3, "equipments"], [13, "equipments"], [13, "id1"]], "API documentation": [[4, "api-documentation"]], "Endpoints:": [[4, null]], "OAuth2": [[5, "oauth2"], [12, "oauth2"]], "Records": [[6, "records"]], "Sports": [[7, "sports"], [13, "sports"]], "Statistics": [[8, "statistics"], [13, "statistics"]], "Users": [[9, "users"], [12, "users"], [13, "users"]], "Workouts": [[10, "workouts"], [13, "workouts"]], "Change log": [[11, "change-log"]], "Version 0.8.6 (2024/08/03)": [[11, "version-0-8-6-2024-08-03"]], "Translations": [[11, "translations"], [11, "id1"], [11, "id4"], [11, "id7"], [11, "id8"], [11, "id12"], [11, "id16"], [11, "id19"], [11, "id21"], [11, "id25"], [11, "id29"], [11, "id33"], [11, "id36"], [11, "id39"], [11, "id43"], [11, "id48"], [11, "id53"], [11, "id56"], [11, "id58"], [11, "id61"], [11, "id64"], [11, "id67"], [11, "id70"], [11, "id73"], [11, "id74"], [11, "id77"], [11, "id79"], [11, "id81"], [11, "id82"], [11, "id85"], [11, "id87"], [11, "id90"], [11, "id92"], [11, "id96"], [11, "id97"], [11, "id99"], [11, "id102"], [11, "id115"], [13, "translations"]], "Misc": [[11, "misc"], [11, "id2"], [11, "id5"], [11, "id9"], [11, "id13"], [11, "id17"], [11, "id22"], [11, "id26"], [11, "id30"], [11, "id37"], [11, "id40"], [11, "id44"], [11, "id46"], [11, "id50"], [11, "id57"], [11, "id60"], [11, "id68"], [11, "id75"], [11, "id86"], [11, "id88"], [11, "id104"], [11, "id118"], [11, "id121"], [11, "id138"], [11, "id140"], [11, "id157"], [11, "id166"], [11, "id173"], [11, "id177"], [11, "id184"], [11, "id195"], [11, "id198"]], "Version 0.8.5 (2024/06/29)": [[11, "version-0-8-5-2024-06-29"]], "Features and enhancements": [[11, "features-and-enhancements"], [11, "id3"], [11, "id10"], [11, "id14"], [11, "id23"], [11, "id27"], [11, "id31"], [11, "id34"], [11, "id51"], [11, "id54"], [11, "id62"], [11, "id65"], [11, "id71"], [11, "id76"], [11, "id78"], [11, "id80"], [11, "id83"], [11, "id94"], [11, "id100"]], "Bugs Fixed": [[11, "bugs-fixed"], [11, "id6"], [11, "id11"], [11, "id15"], [11, "id18"], [11, "id20"], [11, "id24"], [11, "id28"], [11, "id32"], [11, "id35"], [11, "id38"], [11, "id41"], [11, "id42"], [11, "id45"], [11, "id47"], [11, "id49"], [11, "id52"], [11, "id55"], [11, "id63"], [11, "id66"], [11, "id69"], [11, "id72"], [11, "id84"], [11, "id89"], [11, "id91"], [11, "id95"], [11, "id98"], [11, "id101"], [11, "id103"], [11, "id106"], [11, "id109"], [11, "id111"], [11, "id114"], [11, "id117"], [11, "id120"], [11, "id125"], [11, "id127"], [11, "id129"], [11, "id131"], [11, "id134"], [11, "id136"], [11, "id142"], [11, "id145"], [11, "id147"], [11, "id149"], [11, "id156"], [11, "id161"], [11, "id163"], [11, "id165"], [11, "id168"], [11, "id170"], [11, "id172"], [11, "id176"], [11, "id186"], [11, "id189"], [11, "id191"], [11, "id194"], [11, "id201"]], "Version 0.8.4 (2024/05/22)": [[11, "version-0-8-4-2024-05-22"]], "Version 0.8.3 (2024/05/09)": [[11, "version-0-8-3-2024-05-09"]], "Version 0.8.2 (2024/05/08)": [[11, "version-0-8-2-2024-05-08"]], "Version 0.8.1 (2024/05/01)": [[11, "version-0-8-1-2024-05-01"]], "Version 0.8.0 (2024/04/21)": [[11, "version-0-8-0-2024-04-21"]], "Version 0.7.32 (2024/03/10)": [[11, "version-0-7-32-2024-03-10"]], "Version 0.7.31 (2024/02/10)": [[11, "version-0-7-31-2024-02-10"]], "Version 0.7.30 (2024/02/04)": [[11, "version-0-7-30-2024-02-04"]], "Version 0.7.29 (2024/01/06)": [[11, "version-0-7-29-2024-01-06"]], "Version 0.7.28 (2023/12/23)": [[11, "version-0-7-28-2023-12-23"]], "Version 0.7.27 (2023/12/20)": [[11, "version-0-7-27-2023-12-20"]], "Version 0.7.26 (2023/11/19)": [[11, "version-0-7-26-2023-11-19"]], "Version 0.7.25 (2023/10/08)": [[11, "version-0-7-25-2023-10-08"]], "Version 0.7.24 (2023/10/04)": [[11, "version-0-7-24-2023-10-04"]], "Version 0.7.23 (2023/09/14)": [[11, "version-0-7-23-2023-09-14"]], "Version 0.7.22 (2023/08/23)": [[11, "version-0-7-22-2023-08-23"]], "Version 0.7.21 (2023/07/30)": [[11, "version-0-7-21-2023-07-30"]], "Version 0.7.20 (2023/07/22)": [[11, "version-0-7-20-2023-07-22"]], "Version 0.7.19 (2023/07/15)": [[11, "version-0-7-19-2023-07-15"]], "Documentation": [[11, "documentation"], [11, "id59"], [11, "id93"]], "Version 0.7.18 (2023/06/25)": [[11, "version-0-7-18-2023-06-25"]], "Version 0.7.17 (2023/06/03)": [[11, "version-0-7-17-2023-06-03"]], "Version 0.7.16 (2023/05/29)": [[11, "version-0-7-16-2023-05-29"]], "Version 0.7.15 (2023/04/12)": [[11, "version-0-7-15-2023-04-12"]], "Version 0.7.14 (2023/03/08)": [[11, "version-0-7-14-2023-03-08"]], "Version 0.7.13 (2023/03/05)": [[11, "version-0-7-13-2023-03-05"]], "Version 0.7.12 (2023/02/16)": [[11, "version-0-7-12-2023-02-16"]], "Version 0.7.11 (2022/12/31)": [[11, "version-0-7-11-2022-12-31"]], "Version 0.7.10 (2022/12/21)": [[11, "version-0-7-10-2022-12-21"]], "Version 0.7.9 (2022/12/11)": [[11, "version-0-7-9-2022-12-11"]], "Version 0.7.8 (2022/11/30)": [[11, "version-0-7-8-2022-11-30"]], "Version 0.7.7 (2022/11/27)": [[11, "version-0-7-7-2022-11-27"]], "Version 0.7.6 (2022/11/09)": [[11, "version-0-7-6-2022-11-09"]], "Version 0.7.5 (2022/11/09)": [[11, "version-0-7-5-2022-11-09"]], "Version 0.7.4 (2022/11/05)": [[11, "version-0-7-4-2022-11-05"]], "Version 0.7.3 (2022/11/01)": [[11, "version-0-7-3-2022-11-01"]], "Version 0.7.2 (2022/09/21)": [[11, "version-0-7-2-2022-09-21"]], "Version 0.7.1 (2022/09/21)": [[11, "version-0-7-1-2022-09-21"]], "Version 0.7.0 (2022/09/19)": [[11, "version-0-7-0-2022-09-19"]], "Version 0.6.12 (2022/09/14)": [[11, "version-0-6-12-2022-09-14"]], "Issues Closed": [[11, "issues-closed"], [11, "id105"], [11, "id108"], [11, "id112"], [11, "id116"], [11, "id119"], [11, "id122"], [11, "id124"], [11, "id128"], [11, "id130"], [11, "id132"], [11, "id137"], [11, "id141"], [11, "id144"], [11, "id146"], [11, "id148"], [11, "id150"], [11, "id152"], [11, "id154"], [11, "id159"], [11, "id162"], [11, "id164"], [11, "id167"], [11, "id169"], [11, "id171"], [11, "id174"], [11, "id178"], [11, "id180"], [11, "id182"], [11, "id185"], [11, "id187"], [11, "id190"], [11, "id192"], [11, "id196"], [11, "id199"], [11, "id202"]], "Pull Requests": [[11, "pull-requests"], [11, "id107"], [11, "id110"], [11, "id126"], [11, "id135"], [11, "id139"], [11, "id143"], [11, "id158"]], "Version 0.6.11 (2022/07/27)": [[11, "version-0-6-11-2022-07-27"]], "Features": [[11, "features"], [11, "id113"], [11, "id123"], [11, "id133"], [13, "features"]], "Version 0.6.10 (2022/07/13)": [[11, "version-0-6-10-2022-07-13"]], "Version 0.6.9 (2022/07/03)": [[11, "version-0-6-9-2022-07-03"]], "Version 0.6.8 (2022/06/22)": [[11, "version-0-6-8-2022-06-22"]], "Version 0.6.7 (2022/06/11)": [[11, "version-0-6-7-2022-06-11"]], "Version 0.6.6 (2022/05/29)": [[11, "version-0-6-6-2022-05-29"]], "Version 0.6.5 (2022/04/24)": [[11, "version-0-6-5-2022-04-24"]], "Version 0.6.4 (2022/04/23)": [[11, "version-0-6-4-2022-04-23"]], "Version 0.6.3 (2022/04/09)": [[11, "version-0-6-3-2022-04-09"]], "Version 0.6.2 (2022/04/03)": [[11, "version-0-6-2-2022-04-03"]], "Version 0.6.1 (2022/03/27)": [[11, "version-0-6-1-2022-03-27"]], "Version 0.6.0 (2022/03/27)": [[11, "version-0-6-0-2022-03-27"]], "Version 0.5.7 (2022/02/13)": [[11, "version-0-5-7-2022-02-13"]], "Security": [[11, "security"]], "Version 0.5.6 (2022/02/05)": [[11, "version-0-5-6-2022-02-05"]], "Version 0.5.5 (2022/01/19)": [[11, "version-0-5-5-2022-01-19"]], "New Features": [[11, "new-features"], [11, "id151"], [11, "id153"], [11, "id155"], [11, "id160"], [11, "id175"], [11, "id179"], [11, "id181"], [11, "id183"], [11, "id188"], [11, "id193"], [11, "id197"], [11, "id200"], [11, "id203"]], "Version 0.5.4 (2022/01/01)": [[11, "version-0-5-4-2022-01-01"]], "Version 0.5.3 (2022/01/01)": [[11, "version-0-5-3-2022-01-01"]], "Version 0.5.2 (2021/12/19)": [[11, "version-0-5-2-2021-12-19"]], "Version 0.5.1 (2021/11/30)": [[11, "version-0-5-1-2021-11-30"]], "Version 0.5.0 (2021/11/14)": [[11, "version-0-5-0-2021-11-14"]], "Version 0.4.9 (2021/07/16)": [[11, "version-0-4-9-2021-07-16"]], "Version 0.4.8 (2021/07/03)": [[11, "version-0-4-8-2021-07-03"]], "Version 0.4.7 (2021/04/07)": [[11, "version-0-4-7-2021-04-07"]], "Version 0.4.6 (2021/02/21)": [[11, "version-0-4-6-2021-02-21"]], "Version 0.4.5 (2021/02/17)": [[11, "version-0-4-5-2021-02-17"]], "Version 0.4.4 (2021/01/31)": [[11, "version-0-4-4-2021-01-31"]], "Version 0.4.3 (2021/01/10)": [[11, "version-0-4-3-2021-01-10"]], "Version 0.4.2 (2021/01/03)": [[11, "version-0-4-2-2021-01-03"]], "Version 0.4.1 (2020/12/31)": [[11, "version-0-4-1-2020-12-31"]], "Version 0.4.0 - FitTrackee on PyPI (2020/09/19)": [[11, "version-0-4-0-fittrackee-on-pypi-2020-09-19"]], "Version 0.3.0 - Administration (2020/07/15)": [[11, "version-0-3-0-administration-2020-07-15"]], "Version 0.2.5 - Fix and improvements (2020/01/31)": [[11, "version-0-2-5-fix-and-improvements-2020-01-31"]], "Version 0.2.4 - Minor fix (2020/01/30)": [[11, "version-0-2-4-minor-fix-2020-01-30"]], "Version 0.2.3 - FitTrackee available in French (2019/12/29)": [[11, "version-0-2-3-fittrackee-available-in-french-2019-12-29"]], "Version 0.2.2 - Statistics fix (2019/09/23)": [[11, "version-0-2-2-statistics-fix-2019-09-23"]], "Version 0.2.1 - Fix and improvements (2019/09/01)": [[11, "version-0-2-1-fix-and-improvements-2019-09-01"]], "Version 0.2.0 - Statistics (2019/07/07)": [[11, "version-0-2-0-statistics-2019-07-07"]], "Version 0.1.1 - Fix and improvements (2019/02/07)": [[11, "version-0-1-1-fix-and-improvements-2019-02-07"]], "Version 0.1.0 - First release \ud83c\udf89 (2018-07-04)": [[11, "version-0-1-0-first-release-2018-07-04"]], "Command line interface": [[12, "command-line-interface"]], "Database": [[12, "database"]], "ftcli db drop": [[12, "ftcli-db-drop"]], "ftcli db upgrade": [[12, "ftcli-db-upgrade"]], "ftcli oauth2 clean": [[12, "ftcli-oauth2-clean"]], "ftcli users clean_archives": [[12, "ftcli-users-clean-archives"]], "ftcli users clean_tokens": [[12, "ftcli-users-clean-tokens"]], "ftcli users create": [[12, "ftcli-users-create"]], "ftcli users export_archives": [[12, "ftcli-users-export-archives"]], "ftcli users update": [[12, "ftcli-users-update"]], "Account & preferences": [[13, "account-preferences"]], "OAuth Apps": [[13, "oauth-apps"]], "Administration": [[13, "administration"], [13, "id2"]], "Application": [[13, "application"]], "Screenshots": [[13, "screenshots"]], "Dashboard": [[13, "dashboard"]], "Workout detail": [[13, "workout-detail"]], "Workouts list": [[13, "workouts-list"]], "FitTrackee": [[14, "fittrackee"]], "Table of contents": [[14, "table-of-contents"]], "Installation": [[15, "installation"], [15, "id2"], [15, "id6"]], "Main dependencies": [[15, "main-dependencies"]], "Prerequisites": [[15, "prerequisites"]], "Environment variables": [[15, "environment-variables"]], "Emails": [[15, "emails"]], "Map tile server": [[15, "map-tile-server"]], "API rate limits": [[15, "api-rate-limits"]], "Weather data": [[15, "weather-data"]], "From PyPI": [[15, "from-pypi"], [15, "id3"]], "From sources": [[15, "from-sources"], [15, "id4"]], "Dev environment": [[15, "dev-environment"], [15, "id5"]], "Production environment": [[15, "production-environment"]], "Upgrade": [[15, "upgrade"]], "Prod environment": [[15, "prod-environment"]], "Deployment": [[15, "deployment"]], "Docker": [[15, "docker"]], "Development": [[15, "development"]], "Yunohost": [[15, "yunohost"]], "OAuth 2.0": [[16, "oauth-2-0"]], "Scopes": [[16, "scopes"]], "Flow": [[16, "flow"]], "Resources": [[16, "resources"]], "Third-party tools": [[17, "third-party-tools"]], "Import tools": [[17, "import-tools"]], "Installation scripts": [[17, "installation-scripts"]], "Administrator": [[18, "administrator"]], "FitTrackee fails to start": [[18, "fittrackee-fails-to-start"]], "Map images are not displayed but map is shown in Workout detail": [[18, "map-images-are-not-displayed-but-map-is-shown-in-workout-detail"]], "Failed to upload or download files": [[18, "failed-to-upload-or-download-files"]], "Troubleshooting": [[19, "troubleshooting"]]}, "indexentries": {"api_rate_limits": [[15, "envvar-API_RATE_LIMITS"]], "app_log": [[15, "envvar-APP_LOG"]], "app_secret_key": [[15, "envvar-APP_SECRET_KEY"]], "app_settings": [[15, "envvar-APP_SETTINGS"]], "app_workers": [[15, "envvar-APP_WORKERS"]], "database_disable_pooling": [[15, "envvar-DATABASE_DISABLE_POOLING"]], "database_url": [[15, "envvar-DATABASE_URL"]], "default_staticmap": [[15, "envvar-DEFAULT_STATICMAP"]], "email_url": [[15, "envvar-EMAIL_URL"]], "flask_app": [[15, "envvar-FLASK_APP"]], "host": [[15, "envvar-HOST"]], "map_attribution": [[15, "envvar-MAP_ATTRIBUTION"]], "port": [[15, "envvar-PORT"]], "redis_url": [[15, "envvar-REDIS_URL"]], "sender_email": [[15, "envvar-SENDER_EMAIL"]], "staticmap_subdomains": [[15, "envvar-STATICMAP_SUBDOMAINS"]], "tile_server_url": [[15, "envvar-TILE_SERVER_URL"]], "ui_url": [[15, "envvar-UI_URL"]], "upload_folder": [[15, "envvar-UPLOAD_FOLDER"]], "vite_app_api_url": [[15, "envvar-VITE_APP_API_URL"]], "weather_api_key": [[15, "envvar-WEATHER_API_KEY"]], "weather_api_provider \ud83c\udd95": [[15, "envvar-WEATHER_API_PROVIDER"]], "workers_processes": [[15, "envvar-WORKERS_PROCESSES"]], "environment variable": [[15, "envvar-API_RATE_LIMITS"], [15, "envvar-APP_LOG"], [15, "envvar-APP_SECRET_KEY"], [15, "envvar-APP_SETTINGS"], [15, "envvar-APP_WORKERS"], [15, "envvar-DATABASE_DISABLE_POOLING"], [15, "envvar-DATABASE_URL"], [15, "envvar-DEFAULT_STATICMAP"], [15, "envvar-EMAIL_URL"], [15, "envvar-FLASK_APP"], [15, "envvar-HOST"], [15, "envvar-MAP_ATTRIBUTION"], [15, "envvar-PORT"], [15, "envvar-REDIS_URL"], [15, "envvar-SENDER_EMAIL"], [15, "envvar-STATICMAP_SUBDOMAINS"], [15, "envvar-TILE_SERVER_URL"], [15, "envvar-UI_URL"], [15, "envvar-UPLOAD_FOLDER"], [15, "envvar-VITE_APP_API_URL"], [15, "envvar-WEATHER_API_KEY"], [15, "envvar-WEATHER_API_PROVIDER"], [15, "envvar-WORKERS_PROCESSES"]]}}) \ No newline at end of file diff --git a/docs/en/third_party_tools.html b/docs/en/third_party_tools.html index 3fc29042f..613b81d4a 100644 --- a/docs/en/third_party_tools.html +++ b/docs/en/third_party_tools.html @@ -5,12 +5,12 @@ - - Third-party tools - FitTrackee 0.8.5 documentation + + Third-party tools - FitTrackee 0.8.6 documentation - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
    -
    @@ -210,7 +197,7 @@
    - FitTrackee 0.8.5 + FitTrackee 0.8.6 documentation @@ -386,10 +373,10 @@

    Installation scripts

    - + - + diff --git a/docs/en/troubleshooting/administrator.html b/docs/en/troubleshooting/administrator.html index a5be29c3d..3ed789361 100644 --- a/docs/en/troubleshooting/administrator.html +++ b/docs/en/troubleshooting/administrator.html @@ -5,12 +5,12 @@ - - Administrator - FitTrackee 0.8.5 documentation + + Administrator - FitTrackee 0.8.6 documentation - + - + @@ -91,19 +91,6 @@
    - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
    -
    @@ -210,7 +197,7 @@
    - FitTrackee 0.8.5 + FitTrackee 0.8.6 documentation @@ -402,10 +389,10 @@

    Failed to upload or download files +

    - + diff --git a/docs/en/troubleshooting/index.html b/docs/en/troubleshooting/index.html index 4bf4aab70..105c86419 100644 --- a/docs/en/troubleshooting/index.html +++ b/docs/en/troubleshooting/index.html @@ -5,12 +5,12 @@ - - Troubleshooting - FitTrackee 0.8.5 documentation + + Troubleshooting - FitTrackee 0.8.6 documentation - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
    -
    @@ -210,7 +197,7 @@
    - FitTrackee 0.8.5 + FitTrackee 0.8.6 documentation @@ -361,10 +348,10 @@

    Troubleshooting +

    - + diff --git a/docs/fr/.buildinfo b/docs/fr/.buildinfo index db7375056..31372eeee 100644 --- a/docs/fr/.buildinfo +++ b/docs/fr/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: beffb73eee72448a529a2da9d2d14a75 +config: 935b4ad9a24ad83bd7fc5d30696ad386 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/fr/_images/fittrackee_screenshot-01.png b/docs/fr/_images/fittrackee_screenshot-01.png index e1030eed8..6282b29e7 100644 Binary files a/docs/fr/_images/fittrackee_screenshot-01.png and b/docs/fr/_images/fittrackee_screenshot-01.png differ diff --git a/docs/fr/_images/fittrackee_screenshot-02.png b/docs/fr/_images/fittrackee_screenshot-02.png index 654540369..26beaf862 100644 Binary files a/docs/fr/_images/fittrackee_screenshot-02.png and b/docs/fr/_images/fittrackee_screenshot-02.png differ diff --git a/docs/fr/_images/fittrackee_screenshot-03.png b/docs/fr/_images/fittrackee_screenshot-03.png index 91cf15337..c41693d5d 100644 Binary files a/docs/fr/_images/fittrackee_screenshot-03.png and b/docs/fr/_images/fittrackee_screenshot-03.png differ diff --git a/docs/fr/_images/fittrackee_screenshot-04.png b/docs/fr/_images/fittrackee_screenshot-04.png index e8b2850d2..1c9d63b72 100644 Binary files a/docs/fr/_images/fittrackee_screenshot-04.png and b/docs/fr/_images/fittrackee_screenshot-04.png differ diff --git a/docs/fr/_images/fittrackee_screenshot-05.png b/docs/fr/_images/fittrackee_screenshot-05.png index ef4db1bf1..a5ec64732 100644 Binary files a/docs/fr/_images/fittrackee_screenshot-05.png and b/docs/fr/_images/fittrackee_screenshot-05.png differ diff --git a/docs/fr/_images/fittrackee_screenshot-06.png b/docs/fr/_images/fittrackee_screenshot-06.png index fb8bd5c81..360e7cff2 100644 Binary files a/docs/fr/_images/fittrackee_screenshot-06.png and b/docs/fr/_images/fittrackee_screenshot-06.png differ diff --git a/docs/fr/_images/fittrackee_screenshot-07.png b/docs/fr/_images/fittrackee_screenshot-07.png index 4614f1d2c..6007d0b7a 100644 Binary files a/docs/fr/_images/fittrackee_screenshot-07.png and b/docs/fr/_images/fittrackee_screenshot-07.png differ diff --git a/docs/fr/_images/fittrackee_screenshot-08.png b/docs/fr/_images/fittrackee_screenshot-08.png index 669672307..8205e95e9 100644 Binary files a/docs/fr/_images/fittrackee_screenshot-08.png and b/docs/fr/_images/fittrackee_screenshot-08.png differ diff --git a/docs/fr/_images/fittrackee_screenshot-09.png b/docs/fr/_images/fittrackee_screenshot-09.png index 918fd1fe7..5f43ba9ac 100644 Binary files a/docs/fr/_images/fittrackee_screenshot-09.png and b/docs/fr/_images/fittrackee_screenshot-09.png differ diff --git a/docs/fr/_images/fittrackee_screenshot-10.png b/docs/fr/_images/fittrackee_screenshot-10.png index 53aaadd38..93bd54037 100644 Binary files a/docs/fr/_images/fittrackee_screenshot-10.png and b/docs/fr/_images/fittrackee_screenshot-10.png differ diff --git a/docs/fr/_images/fittrackee_screenshot-11.png b/docs/fr/_images/fittrackee_screenshot-11.png index 068987149..dbadbf4f6 100644 Binary files a/docs/fr/_images/fittrackee_screenshot-11.png and b/docs/fr/_images/fittrackee_screenshot-11.png differ diff --git a/docs/fr/_sources/changelog.md.txt b/docs/fr/_sources/changelog.md.txt index 2d4dd015c..b983f03eb 100644 --- a/docs/fr/_sources/changelog.md.txt +++ b/docs/fr/_sources/changelog.md.txt @@ -1,5 +1,42 @@ # Change log +## Version 0.8.6 (2024/08/03) + +### Translations + +* [PR#590](https://github.com/SamR1/FitTrackee/pull/590) - Translations update (Italian) +* [PR#591](https://github.com/SamR1/FitTrackee/pull/591) - Translations update (Galician) +* [PR#592](https://github.com/SamR1/FitTrackee/pull/592) - Translations update (German, Dutch) +* [PR#593](https://github.com/SamR1/FitTrackee/pull/593) - Translations update (German) +* [fb10602](https://github.com/SamR1/FitTrackee/commit/fb10602c47c426c432f528a1ecaf0b2dd4759e93) - update and fix translations + +Translation status: +- Basque: 98% +- Czech: 73% +- Dutch: 100% +- English: 100% +- French: 100% +- Galician: 100% +- German: 99% +- Italian: 82% +- Norwegian Bokmål: 52% +- Polish: 92% +- Portuguese: 98% +- Spanish: 100% + +### Misc + +* [PR#595](https://github.com/SamR1/FitTrackee/pull/595) - CI - speed up tests + + +Thanks to the contributors: +- @ConfusedAlex +- @lukasitaly +- @simontb +- @slothje +- @xmgz + + ## Version 0.8.5 (2024/06/29) ### Features and enhancements diff --git a/docs/fr/_sources/installation.rst.txt b/docs/fr/_sources/installation.rst.txt index 38a47596b..56f40f089 100644 --- a/docs/fr/_sources/installation.rst.txt +++ b/docs/fr/_sources/installation.rst.txt @@ -529,13 +529,13 @@ Production environment .. warning:: | Note that FitTrackee is under heavy development, some features may be unstable. -- Download the last release (for now, it is the release v0.8.5): +- Download the last release (for now, it is the release v0.8.6): .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.8.5.tar.gz - $ tar -xzf v0.8.5.tar.gz - $ mv FitTrackee-0.8.5 FitTrackee + $ wget https://github.com/SamR1/FitTrackee/archive/v0.8.6.tar.gz + $ tar -xzf v0.8.6.tar.gz + $ mv FitTrackee-0.8.6 FitTrackee $ cd FitTrackee - Create **.env** from example and update it @@ -666,13 +666,13 @@ Prod environment - Change to the directory where FitTrackee directory is located -- Download the last release (for now, it is the release v0.8.5) and overwrite existing files: +- Download the last release (for now, it is the release v0.8.6) and overwrite existing files: .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.8.5.tar.gz - $ tar -xzf v0.8.5.tar.gz - $ cp -R FitTrackee-0.8.5/* FitTrackee/ + $ wget https://github.com/SamR1/FitTrackee/archive/v0.8.6.tar.gz + $ tar -xzf v0.8.6.tar.gz + $ cp -R FitTrackee-0.8.6/* FitTrackee/ $ cd FitTrackee - Update **.env** if needed (see `Environment variables `__). diff --git a/docs/fr/_static/documentation_options.js b/docs/fr/_static/documentation_options.js index 8bb0910e8..521fe32c0 100644 --- a/docs/fr/_static/documentation_options.js +++ b/docs/fr/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '0.8.5', + VERSION: '0.8.6', LANGUAGE: 'fr', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/fr/_static/scripts/furo.js b/docs/fr/_static/scripts/furo.js index 0267c7e11..0abb2afac 100644 --- a/docs/fr/_static/scripts/furo.js +++ b/docs/fr/_static/scripts/furo.js @@ -1,3 +1,3 @@ /*! For license information please see furo.js.LICENSE.txt */ -(()=>{var t={856:function(t,e,n){var o,r;r=void 0!==n.g?n.g:"undefined"!=typeof window?window:this,o=function(){return function(t){"use strict";var e={navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:0,reflow:!1,events:!0},n=function(t,e,n){if(n.settings.events){var o=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n});e.dispatchEvent(o)}},o=function(t){var e=0;if(t.offsetParent)for(;t;)e+=t.offsetTop,t=t.offsetParent;return e>=0?e:0},r=function(t){t&&t.sort((function(t,e){return o(t.content)=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},l=function(t,e){var n=t[t.length-1];if(function(t,e){return!(!s()||!c(t.content,e,!0))}(n,e))return n;for(var o=t.length-1;o>=0;o--)if(c(t[o].content,e))return t[o]},a=function(t,e){if(e.nested&&t.parentNode){var n=t.parentNode.closest("li");n&&(n.classList.remove(e.nestedClass),a(n,e))}},i=function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.remove(e.navClass),t.content.classList.remove(e.contentClass),a(o,e),n("gumshoeDeactivate",o,{link:t.nav,content:t.content,settings:e}))}},u=function(t,e){if(e.nested){var n=t.parentNode.closest("li");n&&(n.classList.add(e.nestedClass),u(n,e))}};return function(o,c){var s,a,d,f,m,v={setup:function(){s=document.querySelectorAll(o),a=[],Array.prototype.forEach.call(s,(function(t){var e=document.getElementById(decodeURIComponent(t.hash.substr(1)));e&&a.push({nav:t,content:e})})),r(a)},detect:function(){var t=l(a,m);t?d&&t.content===d.content||(i(d,m),function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.add(e.navClass),t.content.classList.add(e.contentClass),u(o,e),n("gumshoeActivate",o,{link:t.nav,content:t.content,settings:e}))}}(t,m),d=t):d&&(i(d,m),d=null)}},h=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame(v.detect)},g=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame((function(){r(a),v.detect()}))};return v.destroy=function(){d&&i(d,m),t.removeEventListener("scroll",h,!1),m.reflow&&t.removeEventListener("resize",g,!1),a=null,s=null,d=null,f=null,m=null},m=function(){var t={};return Array.prototype.forEach.call(arguments,(function(e){for(var n in e){if(!e.hasOwnProperty(n))return;t[n]=e[n]}})),t}(e,c||{}),v.setup(),v.detect(),t.addEventListener("scroll",h,!1),m.reflow&&t.addEventListener("resize",g,!1),v}}(r)}.apply(e,[]),void 0===o||(t.exports=o)}},e={};function n(o){var r=e[o];if(void 0!==r)return r.exports;var c=e[o]={exports:{}};return t[o].call(c.exports,c,c.exports,n),c.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=n(856),e=n.n(t),o=null,r=null,c=window.pageYOffset||document.documentElement.scrollTop;const s=64;function l(){const t=localStorage.getItem("theme")||"auto";var e;"light"!==(e=window.matchMedia("(prefers-color-scheme: dark)").matches?"auto"===t?"light":"light"==t?"dark":"auto":"auto"===t?"dark":"dark"==t?"light":"auto")&&"dark"!==e&&"auto"!==e&&(console.error(`Got invalid theme mode: ${e}. Resetting to auto.`),e="auto"),document.body.dataset.theme=e,localStorage.setItem("theme",e),console.log(`Changed to ${e} mode.`)}function a(){!function(){const t=document.getElementsByClassName("theme-toggle");Array.from(t).forEach((t=>{t.addEventListener("click",l)}))}(),function(){let t=0,e=!1;window.addEventListener("scroll",(function(n){t=window.scrollY,e||(window.requestAnimationFrame((function(){var n;n=t,0==Math.floor(r.getBoundingClientRect().top)?r.classList.add("scrolled"):r.classList.remove("scrolled"),function(t){tc&&document.documentElement.classList.remove("show-back-to-top"),c=t}(n),function(t){null!==o&&(0==t?o.scrollTo(0,0):Math.ceil(t)>=Math.floor(document.documentElement.scrollHeight-window.innerHeight)?o.scrollTo(0,o.scrollHeight):document.querySelector(".scroll-current"))}(n),e=!1})),e=!0)})),window.scroll()}(),null!==o&&new(e())(".toc-tree a",{reflow:!0,recursive:!0,navClass:"scroll-current",offset:()=>{let t=parseFloat(getComputedStyle(document.documentElement).fontSize);return r.getBoundingClientRect().height+2.5*t+1}})}document.addEventListener("DOMContentLoaded",(function(){document.body.parentNode.classList.remove("no-js"),r=document.querySelector("header"),o=document.querySelector(".toc-scroll"),a()}))})()})(); +(()=>{var t={856:function(t,e,n){var o,r;r=void 0!==n.g?n.g:"undefined"!=typeof window?window:this,o=function(){return function(t){"use strict";var e={navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:0,reflow:!1,events:!0},n=function(t,e,n){if(n.settings.events){var o=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n});e.dispatchEvent(o)}},o=function(t){var e=0;if(t.offsetParent)for(;t;)e+=t.offsetTop,t=t.offsetParent;return e>=0?e:0},r=function(t){t&&t.sort((function(t,e){return o(t.content)=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},l=function(t,e){var n=t[t.length-1];if(function(t,e){return!(!s()||!c(t.content,e,!0))}(n,e))return n;for(var o=t.length-1;o>=0;o--)if(c(t[o].content,e))return t[o]},a=function(t,e){if(e.nested&&t.parentNode){var n=t.parentNode.closest("li");n&&(n.classList.remove(e.nestedClass),a(n,e))}},i=function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.remove(e.navClass),t.content.classList.remove(e.contentClass),a(o,e),n("gumshoeDeactivate",o,{link:t.nav,content:t.content,settings:e}))}},u=function(t,e){if(e.nested){var n=t.parentNode.closest("li");n&&(n.classList.add(e.nestedClass),u(n,e))}};return function(o,c){var s,a,d,f,m,v={setup:function(){s=document.querySelectorAll(o),a=[],Array.prototype.forEach.call(s,(function(t){var e=document.getElementById(decodeURIComponent(t.hash.substr(1)));e&&a.push({nav:t,content:e})})),r(a)},detect:function(){var t=l(a,m);t?d&&t.content===d.content||(i(d,m),function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.add(e.navClass),t.content.classList.add(e.contentClass),u(o,e),n("gumshoeActivate",o,{link:t.nav,content:t.content,settings:e}))}}(t,m),d=t):d&&(i(d,m),d=null)}},h=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame(v.detect)},g=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame((function(){r(a),v.detect()}))};return v.destroy=function(){d&&i(d,m),t.removeEventListener("scroll",h,!1),m.reflow&&t.removeEventListener("resize",g,!1),a=null,s=null,d=null,f=null,m=null},m=function(){var t={};return Array.prototype.forEach.call(arguments,(function(e){for(var n in e){if(!e.hasOwnProperty(n))return;t[n]=e[n]}})),t}(e,c||{}),v.setup(),v.detect(),t.addEventListener("scroll",h,!1),m.reflow&&t.addEventListener("resize",g,!1),v}}(r)}.apply(e,[]),void 0===o||(t.exports=o)}},e={};function n(o){var r=e[o];if(void 0!==r)return r.exports;var c=e[o]={exports:{}};return t[o].call(c.exports,c,c.exports,n),c.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=n(856),e=n.n(t),o=null,r=null,c=document.documentElement.scrollTop;const s=64;function l(){const t=localStorage.getItem("theme")||"auto";var e;"light"!==(e=window.matchMedia("(prefers-color-scheme: dark)").matches?"auto"===t?"light":"light"==t?"dark":"auto":"auto"===t?"dark":"dark"==t?"light":"auto")&&"dark"!==e&&"auto"!==e&&(console.error(`Got invalid theme mode: ${e}. Resetting to auto.`),e="auto"),document.body.dataset.theme=e,localStorage.setItem("theme",e),console.log(`Changed to ${e} mode.`)}function a(){!function(){const t=document.getElementsByClassName("theme-toggle");Array.from(t).forEach((t=>{t.addEventListener("click",l)}))}(),function(){let t=0,e=!1;window.addEventListener("scroll",(function(n){t=window.scrollY,e||(window.requestAnimationFrame((function(){var n;(function(t){const e=Math.floor(r.getBoundingClientRect().top);console.log(`headerTop: ${e}`),0==e&&t!=e?r.classList.add("scrolled"):r.classList.remove("scrolled")})(n=t),function(t){tc&&document.documentElement.classList.remove("show-back-to-top"),c=t}(n),function(t){null!==o&&(0==t?o.scrollTo(0,0):Math.ceil(t)>=Math.floor(document.documentElement.scrollHeight-window.innerHeight)?o.scrollTo(0,o.scrollHeight):document.querySelector(".scroll-current"))}(n),e=!1})),e=!0)})),window.scroll()}(),null!==o&&new(e())(".toc-tree a",{reflow:!0,recursive:!0,navClass:"scroll-current",offset:()=>{let t=parseFloat(getComputedStyle(document.documentElement).fontSize);return r.getBoundingClientRect().height+2.5*t+1}})}document.addEventListener("DOMContentLoaded",(function(){document.body.parentNode.classList.remove("no-js"),r=document.querySelector("header"),o=document.querySelector(".toc-scroll"),a()}))})()})(); //# sourceMappingURL=furo.js.map \ No newline at end of file diff --git a/docs/fr/_static/scripts/furo.js.map b/docs/fr/_static/scripts/furo.js.map index c3b37aaa9..80ea12b85 100644 --- a/docs/fr/_static/scripts/furo.js.map +++ b/docs/fr/_static/scripts/furo.js.map @@ -1 +1 @@ -{"version":3,"file":"scripts/furo.js","mappings":";iCAAA,MAQWA,SAWS,IAAX,EAAAC,EACH,EAAAA,EACkB,oBAAXC,OACLA,OACAC,KAbO,EAAF,WACP,OAaJ,SAAUD,GACR,aAMA,IAAIE,EAAW,CAEbC,SAAU,SACVC,aAAc,SAGdC,QAAQ,EACRC,YAAa,SAGbC,OAAQ,EACRC,QAAQ,EAGRC,QAAQ,GA6BNC,EAAY,SAAUC,EAAMC,EAAMC,GAEpC,GAAKA,EAAOC,SAASL,OAArB,CAGA,IAAIM,EAAQ,IAAIC,YAAYL,EAAM,CAChCM,SAAS,EACTC,YAAY,EACZL,OAAQA,IAIVD,EAAKO,cAAcJ,EAVgB,CAWrC,EAOIK,EAAe,SAAUR,GAC3B,IAAIS,EAAW,EACf,GAAIT,EAAKU,aACP,KAAOV,GACLS,GAAYT,EAAKW,UACjBX,EAAOA,EAAKU,aAGhB,OAAOD,GAAY,EAAIA,EAAW,CACpC,EAMIG,EAAe,SAAUC,GACvBA,GACFA,EAASC,MAAK,SAAUC,EAAOC,GAG7B,OAFcR,EAAaO,EAAME,SACnBT,EAAaQ,EAAMC,UACF,EACxB,CACT,GAEJ,EAwCIC,EAAW,SAAUlB,EAAME,EAAUiB,GACvC,IAAIC,EAASpB,EAAKqB,wBACd1B,EAnCU,SAAUO,GAExB,MAA+B,mBAApBA,EAASP,OACX2B,WAAWpB,EAASP,UAItB2B,WAAWpB,EAASP,OAC7B,CA2Be4B,CAAUrB,GACvB,OAAIiB,EAEAK,SAASJ,EAAOD,OAAQ,KACvB/B,EAAOqC,aAAeC,SAASC,gBAAgBC,cAG7CJ,SAASJ,EAAOS,IAAK,KAAOlC,CACrC,EAMImC,EAAa,WACf,OACEC,KAAKC,KAAK5C,EAAOqC,YAAcrC,EAAO6C,cAnCjCF,KAAKG,IACVR,SAASS,KAAKC,aACdV,SAASC,gBAAgBS,aACzBV,SAASS,KAAKE,aACdX,SAASC,gBAAgBU,aACzBX,SAASS,KAAKP,aACdF,SAASC,gBAAgBC,aAkC7B,EAmBIU,EAAY,SAAUzB,EAAUX,GAClC,IAAIqC,EAAO1B,EAASA,EAAS2B,OAAS,GACtC,GAbgB,SAAUC,EAAMvC,GAChC,SAAI4B,MAAgBZ,EAASuB,EAAKxB,QAASf,GAAU,GAEvD,CAUMwC,CAAYH,EAAMrC,GAAW,OAAOqC,EACxC,IAAK,IAAII,EAAI9B,EAAS2B,OAAS,EAAGG,GAAK,EAAGA,IACxC,GAAIzB,EAASL,EAAS8B,GAAG1B,QAASf,GAAW,OAAOW,EAAS8B,EAEjE,EAOIC,EAAmB,SAAUC,EAAK3C,GAEpC,GAAKA,EAAST,QAAWoD,EAAIC,WAA7B,CAGA,IAAIC,EAAKF,EAAIC,WAAWE,QAAQ,MAC3BD,IAGLA,EAAGE,UAAUC,OAAOhD,EAASR,aAG7BkD,EAAiBG,EAAI7C,GAV0B,CAWjD,EAOIiD,EAAa,SAAUC,EAAOlD,GAEhC,GAAKkD,EAAL,CAGA,IAAIL,EAAKK,EAAMP,IAAIG,QAAQ,MACtBD,IAGLA,EAAGE,UAAUC,OAAOhD,EAASX,UAC7B6D,EAAMnC,QAAQgC,UAAUC,OAAOhD,EAASV,cAGxCoD,EAAiBG,EAAI7C,GAGrBJ,EAAU,oBAAqBiD,EAAI,CACjCM,KAAMD,EAAMP,IACZ5B,QAASmC,EAAMnC,QACff,SAAUA,IAjBM,CAmBpB,EAOIoD,EAAiB,SAAUT,EAAK3C,GAElC,GAAKA,EAAST,OAAd,CAGA,IAAIsD,EAAKF,EAAIC,WAAWE,QAAQ,MAC3BD,IAGLA,EAAGE,UAAUM,IAAIrD,EAASR,aAG1B4D,EAAeP,EAAI7C,GAVS,CAW9B,EA6LA,OA1JkB,SAAUsD,EAAUC,GAKpC,IACIC,EAAU7C,EAAU8C,EAASC,EAAS1D,EADtC2D,EAAa,CAUjBA,MAAmB,WAEjBH,EAAWhC,SAASoC,iBAAiBN,GAGrC3C,EAAW,GAGXkD,MAAMC,UAAUC,QAAQC,KAAKR,GAAU,SAAUjB,GAE/C,IAAIxB,EAAUS,SAASyC,eACrBC,mBAAmB3B,EAAK4B,KAAKC,OAAO,KAEjCrD,GAGLJ,EAAS0D,KAAK,CACZ1B,IAAKJ,EACLxB,QAASA,GAEb,IAGAL,EAAaC,EACf,EAKAgD,OAAoB,WAElB,IAAIW,EAASlC,EAAUzB,EAAUX,GAG5BsE,EASDb,GAAWa,EAAOvD,UAAY0C,EAAQ1C,UAG1CkC,EAAWQ,EAASzD,GAzFT,SAAUkD,EAAOlD,GAE9B,GAAKkD,EAAL,CAGA,IAAIL,EAAKK,EAAMP,IAAIG,QAAQ,MACtBD,IAGLA,EAAGE,UAAUM,IAAIrD,EAASX,UAC1B6D,EAAMnC,QAAQgC,UAAUM,IAAIrD,EAASV,cAGrC8D,EAAeP,EAAI7C,GAGnBJ,EAAU,kBAAmBiD,EAAI,CAC/BM,KAAMD,EAAMP,IACZ5B,QAASmC,EAAMnC,QACff,SAAUA,IAjBM,CAmBpB,CAqEIuE,CAASD,EAAQtE,GAGjByD,EAAUa,GAfJb,IACFR,EAAWQ,EAASzD,GACpByD,EAAU,KAchB,GAMIe,EAAgB,SAAUvE,GAExByD,GACFxE,EAAOuF,qBAAqBf,GAI9BA,EAAUxE,EAAOwF,sBAAsBf,EAAWgB,OACpD,EAMIC,EAAgB,SAAU3E,GAExByD,GACFxE,EAAOuF,qBAAqBf,GAI9BA,EAAUxE,EAAOwF,uBAAsB,WACrChE,EAAaC,GACbgD,EAAWgB,QACb,GACF,EAkDA,OA7CAhB,EAAWkB,QAAU,WAEfpB,GACFR,EAAWQ,EAASzD,GAItBd,EAAO4F,oBAAoB,SAAUN,GAAe,GAChDxE,EAASN,QACXR,EAAO4F,oBAAoB,SAAUF,GAAe,GAItDjE,EAAW,KACX6C,EAAW,KACXC,EAAU,KACVC,EAAU,KACV1D,EAAW,IACb,EAOEA,EA3XS,WACX,IAAI+E,EAAS,CAAC,EAOd,OANAlB,MAAMC,UAAUC,QAAQC,KAAKgB,WAAW,SAAUC,GAChD,IAAK,IAAIC,KAAOD,EAAK,CACnB,IAAKA,EAAIE,eAAeD,GAAM,OAC9BH,EAAOG,GAAOD,EAAIC,EACpB,CACF,IACOH,CACT,CAkXeK,CAAOhG,EAAUmE,GAAW,CAAC,GAGxCI,EAAW0B,QAGX1B,EAAWgB,SAGXzF,EAAOoG,iBAAiB,SAAUd,GAAe,GAC7CxE,EAASN,QACXR,EAAOoG,iBAAiB,SAAUV,GAAe,GAS9CjB,CACT,CAOF,CArcW4B,CAAQvG,EAChB,UAFM,SAEN,uBCXDwG,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaE,QAGrB,IAAIC,EAASN,EAAyBE,GAAY,CAGjDG,QAAS,CAAC,GAOX,OAHAE,EAAoBL,GAAU1B,KAAK8B,EAAOD,QAASC,EAAQA,EAAOD,QAASJ,GAGpEK,EAAOD,OACf,CCrBAJ,EAAoBO,EAAKF,IACxB,IAAIG,EAASH,GAAUA,EAAOI,WAC7B,IAAOJ,EAAiB,QACxB,IAAM,EAEP,OADAL,EAAoBU,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,ECLdR,EAAoBU,EAAI,CAACN,EAASQ,KACjC,IAAI,IAAInB,KAAOmB,EACXZ,EAAoBa,EAAED,EAAYnB,KAASO,EAAoBa,EAAET,EAASX,IAC5EqB,OAAOC,eAAeX,EAASX,EAAK,CAAEuB,YAAY,EAAMC,IAAKL,EAAWnB,IAE1E,ECNDO,EAAoBxG,EAAI,WACvB,GAA0B,iBAAf0H,WAAyB,OAAOA,WAC3C,IACC,OAAOxH,MAAQ,IAAIyH,SAAS,cAAb,EAChB,CAAE,MAAOC,GACR,GAAsB,iBAAX3H,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBuG,EAAoBa,EAAI,CAACrB,EAAK6B,IAAUP,OAAOzC,UAAUqB,eAAenB,KAAKiB,EAAK6B,4CCK9EC,EAAY,KACZC,EAAS,KACTC,EAAgB/H,OAAO6C,aAAeP,SAASC,gBAAgByF,UACnE,MAAMC,EAAmB,GA2EzB,SAASC,IACP,MAAMC,EAAeC,aAAaC,QAAQ,UAAY,OAZxD,IAAkBC,EACH,WADGA,EAaItI,OAAOuI,WAAW,gCAAgCC,QAI/C,SAAjBL,EACO,QACgB,SAAhBA,EACA,OAEA,OAIU,SAAjBA,EACO,OACgB,QAAhBA,EACA,QAEA,SA9BoB,SAATG,GAA4B,SAATA,IACzCG,QAAQC,MAAM,2BAA2BJ,yBACzCA,EAAO,QAGThG,SAASS,KAAK4F,QAAQC,MAAQN,EAC9BF,aAAaS,QAAQ,QAASP,GAC9BG,QAAQK,IAAI,cAAcR,UA0B5B,CAkDA,SAASnC,KART,WAEE,MAAM4C,EAAUzG,SAAS0G,uBAAuB,gBAChDrE,MAAMsE,KAAKF,GAASlE,SAASqE,IAC3BA,EAAI9C,iBAAiB,QAAS8B,EAAe,GAEjD,CAGEiB,GA9CF,WAEE,IAAIC,EAA6B,EAC7BC,GAAU,EAEdrJ,OAAOoG,iBAAiB,UAAU,SAAUuB,GAC1CyB,EAA6BpJ,OAAOsJ,QAE/BD,IACHrJ,OAAOwF,uBAAsB,WAzDnC,IAAuB+D,IA0DDH,EA9GkC,GAAlDzG,KAAK6G,MAAM1B,EAAO7F,wBAAwBQ,KAC5CqF,EAAOjE,UAAUM,IAAI,YAErB2D,EAAOjE,UAAUC,OAAO,YAI5B,SAAmCyF,GAC7BA,EAAYtB,EACd3F,SAASC,gBAAgBsB,UAAUC,OAAO,oBAEtCyF,EAAYxB,EACdzF,SAASC,gBAAgBsB,UAAUM,IAAI,oBAC9BoF,EAAYxB,GACrBzF,SAASC,gBAAgBsB,UAAUC,OAAO,oBAG9CiE,EAAgBwB,CAClB,CAoCEE,CAA0BF,GAlC5B,SAA6BA,GACT,OAAd1B,IAKa,GAAb0B,EACF1B,EAAU6B,SAAS,EAAG,GAGtB/G,KAAKC,KAAK2G,IACV5G,KAAK6G,MAAMlH,SAASC,gBAAgBS,aAAehD,OAAOqC,aAE1DwF,EAAU6B,SAAS,EAAG7B,EAAU7E,cAGhBV,SAASqH,cAAc,mBAc3C,CAKEC,CAAoBL,GAwDdF,GAAU,CACZ,IAEAA,GAAU,EAEd,IACArJ,OAAO6J,QACT,CA6BEC,GA1BkB,OAAdjC,GAKJ,IAAI,IAAJ,CAAY,cAAe,CACzBrH,QAAQ,EACRuJ,WAAW,EACX5J,SAAU,iBACVI,OAAQ,KACN,IAAIyJ,EAAM9H,WAAW+H,iBAAiB3H,SAASC,iBAAiB2H,UAChE,OAAOpC,EAAO7F,wBAAwBkI,OAAS,IAAMH,EAAM,CAAC,GAiBlE,CAcA1H,SAAS8D,iBAAiB,oBAT1B,WACE9D,SAASS,KAAKW,WAAWG,UAAUC,OAAO,SAE1CgE,EAASxF,SAASqH,cAAc,UAChC9B,EAAYvF,SAASqH,cAAc,eAEnCxD,GACF","sources":["webpack:///./src/furo/assets/scripts/gumshoe-patched.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///./src/furo/assets/scripts/furo.js"],"sourcesContent":["/*!\n * gumshoejs v5.1.2 (patched by @pradyunsg)\n * A simple, framework-agnostic scrollspy script.\n * (c) 2019 Chris Ferdinandi\n * MIT License\n * http://github.com/cferdinandi/gumshoe\n */\n\n(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], function () {\n return factory(root);\n });\n } else if (typeof exports === \"object\") {\n module.exports = factory(root);\n } else {\n root.Gumshoe = factory(root);\n }\n})(\n typeof global !== \"undefined\"\n ? global\n : typeof window !== \"undefined\"\n ? window\n : this,\n function (window) {\n \"use strict\";\n\n //\n // Defaults\n //\n\n var defaults = {\n // Active classes\n navClass: \"active\",\n contentClass: \"active\",\n\n // Nested navigation\n nested: false,\n nestedClass: \"active\",\n\n // Offset & reflow\n offset: 0,\n reflow: false,\n\n // Event support\n events: true,\n };\n\n //\n // Methods\n //\n\n /**\n * Merge two or more objects together.\n * @param {Object} objects The objects to merge together\n * @returns {Object} Merged values of defaults and options\n */\n var extend = function () {\n var merged = {};\n Array.prototype.forEach.call(arguments, function (obj) {\n for (var key in obj) {\n if (!obj.hasOwnProperty(key)) return;\n merged[key] = obj[key];\n }\n });\n return merged;\n };\n\n /**\n * Emit a custom event\n * @param {String} type The event type\n * @param {Node} elem The element to attach the event to\n * @param {Object} detail Any details to pass along with the event\n */\n var emitEvent = function (type, elem, detail) {\n // Make sure events are enabled\n if (!detail.settings.events) return;\n\n // Create a new event\n var event = new CustomEvent(type, {\n bubbles: true,\n cancelable: true,\n detail: detail,\n });\n\n // Dispatch the event\n elem.dispatchEvent(event);\n };\n\n /**\n * Get an element's distance from the top of the Document.\n * @param {Node} elem The element\n * @return {Number} Distance from the top in pixels\n */\n var getOffsetTop = function (elem) {\n var location = 0;\n if (elem.offsetParent) {\n while (elem) {\n location += elem.offsetTop;\n elem = elem.offsetParent;\n }\n }\n return location >= 0 ? location : 0;\n };\n\n /**\n * Sort content from first to last in the DOM\n * @param {Array} contents The content areas\n */\n var sortContents = function (contents) {\n if (contents) {\n contents.sort(function (item1, item2) {\n var offset1 = getOffsetTop(item1.content);\n var offset2 = getOffsetTop(item2.content);\n if (offset1 < offset2) return -1;\n return 1;\n });\n }\n };\n\n /**\n * Get the offset to use for calculating position\n * @param {Object} settings The settings for this instantiation\n * @return {Float} The number of pixels to offset the calculations\n */\n var getOffset = function (settings) {\n // if the offset is a function run it\n if (typeof settings.offset === \"function\") {\n return parseFloat(settings.offset());\n }\n\n // Otherwise, return it as-is\n return parseFloat(settings.offset);\n };\n\n /**\n * Get the document element's height\n * @private\n * @returns {Number}\n */\n var getDocumentHeight = function () {\n return Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.offsetHeight,\n document.body.clientHeight,\n document.documentElement.clientHeight,\n );\n };\n\n /**\n * Determine if an element is in view\n * @param {Node} elem The element\n * @param {Object} settings The settings for this instantiation\n * @param {Boolean} bottom If true, check if element is above bottom of viewport instead\n * @return {Boolean} Returns true if element is in the viewport\n */\n var isInView = function (elem, settings, bottom) {\n var bounds = elem.getBoundingClientRect();\n var offset = getOffset(settings);\n if (bottom) {\n return (\n parseInt(bounds.bottom, 10) <\n (window.innerHeight || document.documentElement.clientHeight)\n );\n }\n return parseInt(bounds.top, 10) <= offset;\n };\n\n /**\n * Check if at the bottom of the viewport\n * @return {Boolean} If true, page is at the bottom of the viewport\n */\n var isAtBottom = function () {\n if (\n Math.ceil(window.innerHeight + window.pageYOffset) >=\n getDocumentHeight()\n )\n return true;\n return false;\n };\n\n /**\n * Check if the last item should be used (even if not at the top of the page)\n * @param {Object} item The last item\n * @param {Object} settings The settings for this instantiation\n * @return {Boolean} If true, use the last item\n */\n var useLastItem = function (item, settings) {\n if (isAtBottom() && isInView(item.content, settings, true)) return true;\n return false;\n };\n\n /**\n * Get the active content\n * @param {Array} contents The content areas\n * @param {Object} settings The settings for this instantiation\n * @return {Object} The content area and matching navigation link\n */\n var getActive = function (contents, settings) {\n var last = contents[contents.length - 1];\n if (useLastItem(last, settings)) return last;\n for (var i = contents.length - 1; i >= 0; i--) {\n if (isInView(contents[i].content, settings)) return contents[i];\n }\n };\n\n /**\n * Deactivate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var deactivateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested || !nav.parentNode) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Remove the active class\n li.classList.remove(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n deactivateNested(li, settings);\n };\n\n /**\n * Deactivate a nav and content area\n * @param {Object} items The nav item and content to deactivate\n * @param {Object} settings The settings for this instantiation\n */\n var deactivate = function (items, settings) {\n // Make sure there are items to deactivate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Remove the active class from the nav and content\n li.classList.remove(settings.navClass);\n items.content.classList.remove(settings.contentClass);\n\n // Deactivate any parent navs in a nested navigation\n deactivateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeDeactivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Activate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var activateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Add the active class\n li.classList.add(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n activateNested(li, settings);\n };\n\n /**\n * Activate a nav and content area\n * @param {Object} items The nav item and content to activate\n * @param {Object} settings The settings for this instantiation\n */\n var activate = function (items, settings) {\n // Make sure there are items to activate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Add the active class to the nav and content\n li.classList.add(settings.navClass);\n items.content.classList.add(settings.contentClass);\n\n // Activate any parent navs in a nested navigation\n activateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeActivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Create the Constructor object\n * @param {String} selector The selector to use for navigation items\n * @param {Object} options User options and settings\n */\n var Constructor = function (selector, options) {\n //\n // Variables\n //\n\n var publicAPIs = {};\n var navItems, contents, current, timeout, settings;\n\n //\n // Methods\n //\n\n /**\n * Set variables from DOM elements\n */\n publicAPIs.setup = function () {\n // Get all nav items\n navItems = document.querySelectorAll(selector);\n\n // Create contents array\n contents = [];\n\n // Loop through each item, get it's matching content, and push to the array\n Array.prototype.forEach.call(navItems, function (item) {\n // Get the content for the nav item\n var content = document.getElementById(\n decodeURIComponent(item.hash.substr(1)),\n );\n if (!content) return;\n\n // Push to the contents array\n contents.push({\n nav: item,\n content: content,\n });\n });\n\n // Sort contents by the order they appear in the DOM\n sortContents(contents);\n };\n\n /**\n * Detect which content is currently active\n */\n publicAPIs.detect = function () {\n // Get the active content\n var active = getActive(contents, settings);\n\n // if there's no active content, deactivate and bail\n if (!active) {\n if (current) {\n deactivate(current, settings);\n current = null;\n }\n return;\n }\n\n // If the active content is the one currently active, do nothing\n if (current && active.content === current.content) return;\n\n // Deactivate the current content and activate the new content\n deactivate(current, settings);\n activate(active, settings);\n\n // Update the currently active content\n current = active;\n };\n\n /**\n * Detect the active content on scroll\n * Debounced for performance\n */\n var scrollHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(publicAPIs.detect);\n };\n\n /**\n * Update content sorting on resize\n * Debounced for performance\n */\n var resizeHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(function () {\n sortContents(contents);\n publicAPIs.detect();\n });\n };\n\n /**\n * Destroy the current instantiation\n */\n publicAPIs.destroy = function () {\n // Undo DOM changes\n if (current) {\n deactivate(current, settings);\n }\n\n // Remove event listeners\n window.removeEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.removeEventListener(\"resize\", resizeHandler, false);\n }\n\n // Reset variables\n contents = null;\n navItems = null;\n current = null;\n timeout = null;\n settings = null;\n };\n\n /**\n * Initialize the current instantiation\n */\n var init = function () {\n // Merge user options into defaults\n settings = extend(defaults, options || {});\n\n // Setup variables based on the current DOM\n publicAPIs.setup();\n\n // Find the currently active content\n publicAPIs.detect();\n\n // Setup event listeners\n window.addEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.addEventListener(\"resize\", resizeHandler, false);\n }\n };\n\n //\n // Initialize and return the public APIs\n //\n\n init();\n return publicAPIs;\n };\n\n //\n // Return the Constructor\n //\n\n return Constructor;\n },\n);\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","import Gumshoe from \"./gumshoe-patched.js\";\n\n////////////////////////////////////////////////////////////////////////////////\n// Scroll Handling\n////////////////////////////////////////////////////////////////////////////////\nvar tocScroll = null;\nvar header = null;\nvar lastScrollTop = window.pageYOffset || document.documentElement.scrollTop;\nconst GO_TO_TOP_OFFSET = 64;\n\nfunction scrollHandlerForHeader() {\n if (Math.floor(header.getBoundingClientRect().top) == 0) {\n header.classList.add(\"scrolled\");\n } else {\n header.classList.remove(\"scrolled\");\n }\n}\n\nfunction scrollHandlerForBackToTop(positionY) {\n if (positionY < GO_TO_TOP_OFFSET) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n } else {\n if (positionY < lastScrollTop) {\n document.documentElement.classList.add(\"show-back-to-top\");\n } else if (positionY > lastScrollTop) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n }\n }\n lastScrollTop = positionY;\n}\n\nfunction scrollHandlerForTOC(positionY) {\n if (tocScroll === null) {\n return;\n }\n\n // top of page.\n if (positionY == 0) {\n tocScroll.scrollTo(0, 0);\n } else if (\n // bottom of page.\n Math.ceil(positionY) >=\n Math.floor(document.documentElement.scrollHeight - window.innerHeight)\n ) {\n tocScroll.scrollTo(0, tocScroll.scrollHeight);\n } else {\n // somewhere in the middle.\n const current = document.querySelector(\".scroll-current\");\n if (current == null) {\n return;\n }\n\n // https://github.com/pypa/pip/issues/9159 This breaks scroll behaviours.\n // // scroll the currently \"active\" heading in toc, into view.\n // const rect = current.getBoundingClientRect();\n // if (0 > rect.top) {\n // current.scrollIntoView(true); // the argument is \"alignTop\"\n // } else if (rect.bottom > window.innerHeight) {\n // current.scrollIntoView(false);\n // }\n }\n}\n\nfunction scrollHandler(positionY) {\n scrollHandlerForHeader();\n scrollHandlerForBackToTop(positionY);\n scrollHandlerForTOC(positionY);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Theme Toggle\n////////////////////////////////////////////////////////////////////////////////\nfunction setTheme(mode) {\n if (mode !== \"light\" && mode !== \"dark\" && mode !== \"auto\") {\n console.error(`Got invalid theme mode: ${mode}. Resetting to auto.`);\n mode = \"auto\";\n }\n\n document.body.dataset.theme = mode;\n localStorage.setItem(\"theme\", mode);\n console.log(`Changed to ${mode} mode.`);\n}\n\nfunction cycleThemeOnce() {\n const currentTheme = localStorage.getItem(\"theme\") || \"auto\";\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n\n if (prefersDark) {\n // Auto (dark) -> Light -> Dark\n if (currentTheme === \"auto\") {\n setTheme(\"light\");\n } else if (currentTheme == \"light\") {\n setTheme(\"dark\");\n } else {\n setTheme(\"auto\");\n }\n } else {\n // Auto (light) -> Dark -> Light\n if (currentTheme === \"auto\") {\n setTheme(\"dark\");\n } else if (currentTheme == \"dark\") {\n setTheme(\"light\");\n } else {\n setTheme(\"auto\");\n }\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Setup\n////////////////////////////////////////////////////////////////////////////////\nfunction setupScrollHandler() {\n // Taken from https://developer.mozilla.org/en-US/docs/Web/API/Document/scroll_event\n let last_known_scroll_position = 0;\n let ticking = false;\n\n window.addEventListener(\"scroll\", function (e) {\n last_known_scroll_position = window.scrollY;\n\n if (!ticking) {\n window.requestAnimationFrame(function () {\n scrollHandler(last_known_scroll_position);\n ticking = false;\n });\n\n ticking = true;\n }\n });\n window.scroll();\n}\n\nfunction setupScrollSpy() {\n if (tocScroll === null) {\n return;\n }\n\n // Scrollspy -- highlight table on contents, based on scroll\n new Gumshoe(\".toc-tree a\", {\n reflow: true,\n recursive: true,\n navClass: \"scroll-current\",\n offset: () => {\n let rem = parseFloat(getComputedStyle(document.documentElement).fontSize);\n return header.getBoundingClientRect().height + 2.5 * rem + 1;\n },\n });\n}\n\nfunction setupTheme() {\n // Attach event handlers for toggling themes\n const buttons = document.getElementsByClassName(\"theme-toggle\");\n Array.from(buttons).forEach((btn) => {\n btn.addEventListener(\"click\", cycleThemeOnce);\n });\n}\n\nfunction setup() {\n setupTheme();\n setupScrollHandler();\n setupScrollSpy();\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Main entrypoint\n////////////////////////////////////////////////////////////////////////////////\nfunction main() {\n document.body.parentNode.classList.remove(\"no-js\");\n\n header = document.querySelector(\"header\");\n tocScroll = document.querySelector(\".toc-scroll\");\n\n setup();\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", main);\n"],"names":["root","g","window","this","defaults","navClass","contentClass","nested","nestedClass","offset","reflow","events","emitEvent","type","elem","detail","settings","event","CustomEvent","bubbles","cancelable","dispatchEvent","getOffsetTop","location","offsetParent","offsetTop","sortContents","contents","sort","item1","item2","content","isInView","bottom","bounds","getBoundingClientRect","parseFloat","getOffset","parseInt","innerHeight","document","documentElement","clientHeight","top","isAtBottom","Math","ceil","pageYOffset","max","body","scrollHeight","offsetHeight","getActive","last","length","item","useLastItem","i","deactivateNested","nav","parentNode","li","closest","classList","remove","deactivate","items","link","activateNested","add","selector","options","navItems","current","timeout","publicAPIs","querySelectorAll","Array","prototype","forEach","call","getElementById","decodeURIComponent","hash","substr","push","active","activate","scrollHandler","cancelAnimationFrame","requestAnimationFrame","detect","resizeHandler","destroy","removeEventListener","merged","arguments","obj","key","hasOwnProperty","extend","setup","addEventListener","factory","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","n","getter","__esModule","d","a","definition","o","Object","defineProperty","enumerable","get","globalThis","Function","e","prop","tocScroll","header","lastScrollTop","scrollTop","GO_TO_TOP_OFFSET","cycleThemeOnce","currentTheme","localStorage","getItem","mode","matchMedia","matches","console","error","dataset","theme","setItem","log","buttons","getElementsByClassName","from","btn","setupTheme","last_known_scroll_position","ticking","scrollY","positionY","floor","scrollHandlerForBackToTop","scrollTo","querySelector","scrollHandlerForTOC","scroll","setupScrollHandler","recursive","rem","getComputedStyle","fontSize","height"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"scripts/furo.js","mappings":";iCAAA,MAQWA,SAWS,IAAX,EAAAC,EACH,EAAAA,EACkB,oBAAXC,OACLA,OACAC,KAbO,EAAF,WACP,OAaJ,SAAUD,GACR,aAMA,IAAIE,EAAW,CAEbC,SAAU,SACVC,aAAc,SAGdC,QAAQ,EACRC,YAAa,SAGbC,OAAQ,EACRC,QAAQ,EAGRC,QAAQ,GA6BNC,EAAY,SAAUC,EAAMC,EAAMC,GAEpC,GAAKA,EAAOC,SAASL,OAArB,CAGA,IAAIM,EAAQ,IAAIC,YAAYL,EAAM,CAChCM,SAAS,EACTC,YAAY,EACZL,OAAQA,IAIVD,EAAKO,cAAcJ,EAVgB,CAWrC,EAOIK,EAAe,SAAUR,GAC3B,IAAIS,EAAW,EACf,GAAIT,EAAKU,aACP,KAAOV,GACLS,GAAYT,EAAKW,UACjBX,EAAOA,EAAKU,aAGhB,OAAOD,GAAY,EAAIA,EAAW,CACpC,EAMIG,EAAe,SAAUC,GACvBA,GACFA,EAASC,MAAK,SAAUC,EAAOC,GAG7B,OAFcR,EAAaO,EAAME,SACnBT,EAAaQ,EAAMC,UACF,EACxB,CACT,GAEJ,EAwCIC,EAAW,SAAUlB,EAAME,EAAUiB,GACvC,IAAIC,EAASpB,EAAKqB,wBACd1B,EAnCU,SAAUO,GAExB,MAA+B,mBAApBA,EAASP,OACX2B,WAAWpB,EAASP,UAItB2B,WAAWpB,EAASP,OAC7B,CA2Be4B,CAAUrB,GACvB,OAAIiB,EAEAK,SAASJ,EAAOD,OAAQ,KACvB/B,EAAOqC,aAAeC,SAASC,gBAAgBC,cAG7CJ,SAASJ,EAAOS,IAAK,KAAOlC,CACrC,EAMImC,EAAa,WACf,OACEC,KAAKC,KAAK5C,EAAOqC,YAAcrC,EAAO6C,cAnCjCF,KAAKG,IACVR,SAASS,KAAKC,aACdV,SAASC,gBAAgBS,aACzBV,SAASS,KAAKE,aACdX,SAASC,gBAAgBU,aACzBX,SAASS,KAAKP,aACdF,SAASC,gBAAgBC,aAkC7B,EAmBIU,EAAY,SAAUzB,EAAUX,GAClC,IAAIqC,EAAO1B,EAASA,EAAS2B,OAAS,GACtC,GAbgB,SAAUC,EAAMvC,GAChC,SAAI4B,MAAgBZ,EAASuB,EAAKxB,QAASf,GAAU,GAEvD,CAUMwC,CAAYH,EAAMrC,GAAW,OAAOqC,EACxC,IAAK,IAAII,EAAI9B,EAAS2B,OAAS,EAAGG,GAAK,EAAGA,IACxC,GAAIzB,EAASL,EAAS8B,GAAG1B,QAASf,GAAW,OAAOW,EAAS8B,EAEjE,EAOIC,EAAmB,SAAUC,EAAK3C,GAEpC,GAAKA,EAAST,QAAWoD,EAAIC,WAA7B,CAGA,IAAIC,EAAKF,EAAIC,WAAWE,QAAQ,MAC3BD,IAGLA,EAAGE,UAAUC,OAAOhD,EAASR,aAG7BkD,EAAiBG,EAAI7C,GAV0B,CAWjD,EAOIiD,EAAa,SAAUC,EAAOlD,GAEhC,GAAKkD,EAAL,CAGA,IAAIL,EAAKK,EAAMP,IAAIG,QAAQ,MACtBD,IAGLA,EAAGE,UAAUC,OAAOhD,EAASX,UAC7B6D,EAAMnC,QAAQgC,UAAUC,OAAOhD,EAASV,cAGxCoD,EAAiBG,EAAI7C,GAGrBJ,EAAU,oBAAqBiD,EAAI,CACjCM,KAAMD,EAAMP,IACZ5B,QAASmC,EAAMnC,QACff,SAAUA,IAjBM,CAmBpB,EAOIoD,EAAiB,SAAUT,EAAK3C,GAElC,GAAKA,EAAST,OAAd,CAGA,IAAIsD,EAAKF,EAAIC,WAAWE,QAAQ,MAC3BD,IAGLA,EAAGE,UAAUM,IAAIrD,EAASR,aAG1B4D,EAAeP,EAAI7C,GAVS,CAW9B,EA6LA,OA1JkB,SAAUsD,EAAUC,GAKpC,IACIC,EAAU7C,EAAU8C,EAASC,EAAS1D,EADtC2D,EAAa,CAUjBA,MAAmB,WAEjBH,EAAWhC,SAASoC,iBAAiBN,GAGrC3C,EAAW,GAGXkD,MAAMC,UAAUC,QAAQC,KAAKR,GAAU,SAAUjB,GAE/C,IAAIxB,EAAUS,SAASyC,eACrBC,mBAAmB3B,EAAK4B,KAAKC,OAAO,KAEjCrD,GAGLJ,EAAS0D,KAAK,CACZ1B,IAAKJ,EACLxB,QAASA,GAEb,IAGAL,EAAaC,EACf,EAKAgD,OAAoB,WAElB,IAAIW,EAASlC,EAAUzB,EAAUX,GAG5BsE,EASDb,GAAWa,EAAOvD,UAAY0C,EAAQ1C,UAG1CkC,EAAWQ,EAASzD,GAzFT,SAAUkD,EAAOlD,GAE9B,GAAKkD,EAAL,CAGA,IAAIL,EAAKK,EAAMP,IAAIG,QAAQ,MACtBD,IAGLA,EAAGE,UAAUM,IAAIrD,EAASX,UAC1B6D,EAAMnC,QAAQgC,UAAUM,IAAIrD,EAASV,cAGrC8D,EAAeP,EAAI7C,GAGnBJ,EAAU,kBAAmBiD,EAAI,CAC/BM,KAAMD,EAAMP,IACZ5B,QAASmC,EAAMnC,QACff,SAAUA,IAjBM,CAmBpB,CAqEIuE,CAASD,EAAQtE,GAGjByD,EAAUa,GAfJb,IACFR,EAAWQ,EAASzD,GACpByD,EAAU,KAchB,GAMIe,EAAgB,SAAUvE,GAExByD,GACFxE,EAAOuF,qBAAqBf,GAI9BA,EAAUxE,EAAOwF,sBAAsBf,EAAWgB,OACpD,EAMIC,EAAgB,SAAU3E,GAExByD,GACFxE,EAAOuF,qBAAqBf,GAI9BA,EAAUxE,EAAOwF,uBAAsB,WACrChE,EAAaC,GACbgD,EAAWgB,QACb,GACF,EAkDA,OA7CAhB,EAAWkB,QAAU,WAEfpB,GACFR,EAAWQ,EAASzD,GAItBd,EAAO4F,oBAAoB,SAAUN,GAAe,GAChDxE,EAASN,QACXR,EAAO4F,oBAAoB,SAAUF,GAAe,GAItDjE,EAAW,KACX6C,EAAW,KACXC,EAAU,KACVC,EAAU,KACV1D,EAAW,IACb,EAOEA,EA3XS,WACX,IAAI+E,EAAS,CAAC,EAOd,OANAlB,MAAMC,UAAUC,QAAQC,KAAKgB,WAAW,SAAUC,GAChD,IAAK,IAAIC,KAAOD,EAAK,CACnB,IAAKA,EAAIE,eAAeD,GAAM,OAC9BH,EAAOG,GAAOD,EAAIC,EACpB,CACF,IACOH,CACT,CAkXeK,CAAOhG,EAAUmE,GAAW,CAAC,GAGxCI,EAAW0B,QAGX1B,EAAWgB,SAGXzF,EAAOoG,iBAAiB,SAAUd,GAAe,GAC7CxE,EAASN,QACXR,EAAOoG,iBAAiB,SAAUV,GAAe,GAS9CjB,CACT,CAOF,CArcW4B,CAAQvG,EAChB,UAFM,SAEN,uBCXDwG,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaE,QAGrB,IAAIC,EAASN,EAAyBE,GAAY,CAGjDG,QAAS,CAAC,GAOX,OAHAE,EAAoBL,GAAU1B,KAAK8B,EAAOD,QAASC,EAAQA,EAAOD,QAASJ,GAGpEK,EAAOD,OACf,CCrBAJ,EAAoBO,EAAKF,IACxB,IAAIG,EAASH,GAAUA,EAAOI,WAC7B,IAAOJ,EAAiB,QACxB,IAAM,EAEP,OADAL,EAAoBU,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,ECLdR,EAAoBU,EAAI,CAACN,EAASQ,KACjC,IAAI,IAAInB,KAAOmB,EACXZ,EAAoBa,EAAED,EAAYnB,KAASO,EAAoBa,EAAET,EAASX,IAC5EqB,OAAOC,eAAeX,EAASX,EAAK,CAAEuB,YAAY,EAAMC,IAAKL,EAAWnB,IAE1E,ECNDO,EAAoBxG,EAAI,WACvB,GAA0B,iBAAf0H,WAAyB,OAAOA,WAC3C,IACC,OAAOxH,MAAQ,IAAIyH,SAAS,cAAb,EAChB,CAAE,MAAOC,GACR,GAAsB,iBAAX3H,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBuG,EAAoBa,EAAI,CAACrB,EAAK6B,IAAUP,OAAOzC,UAAUqB,eAAenB,KAAKiB,EAAK6B,4CCK9EC,EAAY,KACZC,EAAS,KACTC,EAAgBzF,SAASC,gBAAgByF,UAC7C,MAAMC,EAAmB,GA8EzB,SAASC,IACP,MAAMC,EAAeC,aAAaC,QAAQ,UAAY,OAZxD,IAAkBC,EACH,WADGA,EAaItI,OAAOuI,WAAW,gCAAgCC,QAI/C,SAAjBL,EACO,QACgB,SAAhBA,EACA,OAEA,OAIU,SAAjBA,EACO,OACgB,QAAhBA,EACA,QAEA,SA9BoB,SAATG,GAA4B,SAATA,IACzCG,QAAQC,MAAM,2BAA2BJ,yBACzCA,EAAO,QAGThG,SAASS,KAAK4F,QAAQC,MAAQN,EAC9BF,aAAaS,QAAQ,QAASP,GAC9BG,QAAQK,IAAI,cAAcR,UA0B5B,CAkDA,SAASnC,KART,WAEE,MAAM4C,EAAUzG,SAAS0G,uBAAuB,gBAChDrE,MAAMsE,KAAKF,GAASlE,SAASqE,IAC3BA,EAAI9C,iBAAiB,QAAS8B,EAAe,GAEjD,CAGEiB,GA9CF,WAEE,IAAIC,EAA6B,EAC7BC,GAAU,EAEdrJ,OAAOoG,iBAAiB,UAAU,SAAUuB,GAC1CyB,EAA6BpJ,OAAOsJ,QAE/BD,IACHrJ,OAAOwF,uBAAsB,WAzDnC,IAAuB+D,GAxDvB,SAAgCA,GAC9B,MAAMC,EAAY7G,KAAK8G,MAAM3B,EAAO7F,wBAAwBQ,KAE5DgG,QAAQK,IAAI,cAAcU,KACT,GAAbA,GAAkBD,GAAaC,EACjC1B,EAAOjE,UAAUM,IAAI,YAErB2D,EAAOjE,UAAUC,OAAO,WAE5B,EAgDE4F,CADqBH,EA0DDH,GAvGtB,SAAmCG,GAC7BA,EAAYtB,EACd3F,SAASC,gBAAgBsB,UAAUC,OAAO,oBAEtCyF,EAAYxB,EACdzF,SAASC,gBAAgBsB,UAAUM,IAAI,oBAC9BoF,EAAYxB,GACrBzF,SAASC,gBAAgBsB,UAAUC,OAAO,oBAG9CiE,EAAgBwB,CAClB,CAoCEI,CAA0BJ,GAlC5B,SAA6BA,GACT,OAAd1B,IAKa,GAAb0B,EACF1B,EAAU+B,SAAS,EAAG,GAGtBjH,KAAKC,KAAK2G,IACV5G,KAAK8G,MAAMnH,SAASC,gBAAgBS,aAAehD,OAAOqC,aAE1DwF,EAAU+B,SAAS,EAAG/B,EAAU7E,cAGhBV,SAASuH,cAAc,mBAc3C,CAKEC,CAAoBP,GAwDdF,GAAU,CACZ,IAEAA,GAAU,EAEd,IACArJ,OAAO+J,QACT,CA6BEC,GA1BkB,OAAdnC,GAKJ,IAAI,IAAJ,CAAY,cAAe,CACzBrH,QAAQ,EACRyJ,WAAW,EACX9J,SAAU,iBACVI,OAAQ,KACN,IAAI2J,EAAMhI,WAAWiI,iBAAiB7H,SAASC,iBAAiB6H,UAChE,OAAOtC,EAAO7F,wBAAwBoI,OAAS,IAAMH,EAAM,CAAC,GAiBlE,CAcA5H,SAAS8D,iBAAiB,oBAT1B,WACE9D,SAASS,KAAKW,WAAWG,UAAUC,OAAO,SAE1CgE,EAASxF,SAASuH,cAAc,UAChChC,EAAYvF,SAASuH,cAAc,eAEnC1D,GACF","sources":["webpack:///./src/furo/assets/scripts/gumshoe-patched.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///./src/furo/assets/scripts/furo.js"],"sourcesContent":["/*!\n * gumshoejs v5.1.2 (patched by @pradyunsg)\n * A simple, framework-agnostic scrollspy script.\n * (c) 2019 Chris Ferdinandi\n * MIT License\n * http://github.com/cferdinandi/gumshoe\n */\n\n(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], function () {\n return factory(root);\n });\n } else if (typeof exports === \"object\") {\n module.exports = factory(root);\n } else {\n root.Gumshoe = factory(root);\n }\n})(\n typeof global !== \"undefined\"\n ? global\n : typeof window !== \"undefined\"\n ? window\n : this,\n function (window) {\n \"use strict\";\n\n //\n // Defaults\n //\n\n var defaults = {\n // Active classes\n navClass: \"active\",\n contentClass: \"active\",\n\n // Nested navigation\n nested: false,\n nestedClass: \"active\",\n\n // Offset & reflow\n offset: 0,\n reflow: false,\n\n // Event support\n events: true,\n };\n\n //\n // Methods\n //\n\n /**\n * Merge two or more objects together.\n * @param {Object} objects The objects to merge together\n * @returns {Object} Merged values of defaults and options\n */\n var extend = function () {\n var merged = {};\n Array.prototype.forEach.call(arguments, function (obj) {\n for (var key in obj) {\n if (!obj.hasOwnProperty(key)) return;\n merged[key] = obj[key];\n }\n });\n return merged;\n };\n\n /**\n * Emit a custom event\n * @param {String} type The event type\n * @param {Node} elem The element to attach the event to\n * @param {Object} detail Any details to pass along with the event\n */\n var emitEvent = function (type, elem, detail) {\n // Make sure events are enabled\n if (!detail.settings.events) return;\n\n // Create a new event\n var event = new CustomEvent(type, {\n bubbles: true,\n cancelable: true,\n detail: detail,\n });\n\n // Dispatch the event\n elem.dispatchEvent(event);\n };\n\n /**\n * Get an element's distance from the top of the Document.\n * @param {Node} elem The element\n * @return {Number} Distance from the top in pixels\n */\n var getOffsetTop = function (elem) {\n var location = 0;\n if (elem.offsetParent) {\n while (elem) {\n location += elem.offsetTop;\n elem = elem.offsetParent;\n }\n }\n return location >= 0 ? location : 0;\n };\n\n /**\n * Sort content from first to last in the DOM\n * @param {Array} contents The content areas\n */\n var sortContents = function (contents) {\n if (contents) {\n contents.sort(function (item1, item2) {\n var offset1 = getOffsetTop(item1.content);\n var offset2 = getOffsetTop(item2.content);\n if (offset1 < offset2) return -1;\n return 1;\n });\n }\n };\n\n /**\n * Get the offset to use for calculating position\n * @param {Object} settings The settings for this instantiation\n * @return {Float} The number of pixels to offset the calculations\n */\n var getOffset = function (settings) {\n // if the offset is a function run it\n if (typeof settings.offset === \"function\") {\n return parseFloat(settings.offset());\n }\n\n // Otherwise, return it as-is\n return parseFloat(settings.offset);\n };\n\n /**\n * Get the document element's height\n * @private\n * @returns {Number}\n */\n var getDocumentHeight = function () {\n return Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.offsetHeight,\n document.body.clientHeight,\n document.documentElement.clientHeight,\n );\n };\n\n /**\n * Determine if an element is in view\n * @param {Node} elem The element\n * @param {Object} settings The settings for this instantiation\n * @param {Boolean} bottom If true, check if element is above bottom of viewport instead\n * @return {Boolean} Returns true if element is in the viewport\n */\n var isInView = function (elem, settings, bottom) {\n var bounds = elem.getBoundingClientRect();\n var offset = getOffset(settings);\n if (bottom) {\n return (\n parseInt(bounds.bottom, 10) <\n (window.innerHeight || document.documentElement.clientHeight)\n );\n }\n return parseInt(bounds.top, 10) <= offset;\n };\n\n /**\n * Check if at the bottom of the viewport\n * @return {Boolean} If true, page is at the bottom of the viewport\n */\n var isAtBottom = function () {\n if (\n Math.ceil(window.innerHeight + window.pageYOffset) >=\n getDocumentHeight()\n )\n return true;\n return false;\n };\n\n /**\n * Check if the last item should be used (even if not at the top of the page)\n * @param {Object} item The last item\n * @param {Object} settings The settings for this instantiation\n * @return {Boolean} If true, use the last item\n */\n var useLastItem = function (item, settings) {\n if (isAtBottom() && isInView(item.content, settings, true)) return true;\n return false;\n };\n\n /**\n * Get the active content\n * @param {Array} contents The content areas\n * @param {Object} settings The settings for this instantiation\n * @return {Object} The content area and matching navigation link\n */\n var getActive = function (contents, settings) {\n var last = contents[contents.length - 1];\n if (useLastItem(last, settings)) return last;\n for (var i = contents.length - 1; i >= 0; i--) {\n if (isInView(contents[i].content, settings)) return contents[i];\n }\n };\n\n /**\n * Deactivate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var deactivateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested || !nav.parentNode) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Remove the active class\n li.classList.remove(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n deactivateNested(li, settings);\n };\n\n /**\n * Deactivate a nav and content area\n * @param {Object} items The nav item and content to deactivate\n * @param {Object} settings The settings for this instantiation\n */\n var deactivate = function (items, settings) {\n // Make sure there are items to deactivate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Remove the active class from the nav and content\n li.classList.remove(settings.navClass);\n items.content.classList.remove(settings.contentClass);\n\n // Deactivate any parent navs in a nested navigation\n deactivateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeDeactivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Activate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var activateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Add the active class\n li.classList.add(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n activateNested(li, settings);\n };\n\n /**\n * Activate a nav and content area\n * @param {Object} items The nav item and content to activate\n * @param {Object} settings The settings for this instantiation\n */\n var activate = function (items, settings) {\n // Make sure there are items to activate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Add the active class to the nav and content\n li.classList.add(settings.navClass);\n items.content.classList.add(settings.contentClass);\n\n // Activate any parent navs in a nested navigation\n activateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeActivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Create the Constructor object\n * @param {String} selector The selector to use for navigation items\n * @param {Object} options User options and settings\n */\n var Constructor = function (selector, options) {\n //\n // Variables\n //\n\n var publicAPIs = {};\n var navItems, contents, current, timeout, settings;\n\n //\n // Methods\n //\n\n /**\n * Set variables from DOM elements\n */\n publicAPIs.setup = function () {\n // Get all nav items\n navItems = document.querySelectorAll(selector);\n\n // Create contents array\n contents = [];\n\n // Loop through each item, get it's matching content, and push to the array\n Array.prototype.forEach.call(navItems, function (item) {\n // Get the content for the nav item\n var content = document.getElementById(\n decodeURIComponent(item.hash.substr(1)),\n );\n if (!content) return;\n\n // Push to the contents array\n contents.push({\n nav: item,\n content: content,\n });\n });\n\n // Sort contents by the order they appear in the DOM\n sortContents(contents);\n };\n\n /**\n * Detect which content is currently active\n */\n publicAPIs.detect = function () {\n // Get the active content\n var active = getActive(contents, settings);\n\n // if there's no active content, deactivate and bail\n if (!active) {\n if (current) {\n deactivate(current, settings);\n current = null;\n }\n return;\n }\n\n // If the active content is the one currently active, do nothing\n if (current && active.content === current.content) return;\n\n // Deactivate the current content and activate the new content\n deactivate(current, settings);\n activate(active, settings);\n\n // Update the currently active content\n current = active;\n };\n\n /**\n * Detect the active content on scroll\n * Debounced for performance\n */\n var scrollHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(publicAPIs.detect);\n };\n\n /**\n * Update content sorting on resize\n * Debounced for performance\n */\n var resizeHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(function () {\n sortContents(contents);\n publicAPIs.detect();\n });\n };\n\n /**\n * Destroy the current instantiation\n */\n publicAPIs.destroy = function () {\n // Undo DOM changes\n if (current) {\n deactivate(current, settings);\n }\n\n // Remove event listeners\n window.removeEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.removeEventListener(\"resize\", resizeHandler, false);\n }\n\n // Reset variables\n contents = null;\n navItems = null;\n current = null;\n timeout = null;\n settings = null;\n };\n\n /**\n * Initialize the current instantiation\n */\n var init = function () {\n // Merge user options into defaults\n settings = extend(defaults, options || {});\n\n // Setup variables based on the current DOM\n publicAPIs.setup();\n\n // Find the currently active content\n publicAPIs.detect();\n\n // Setup event listeners\n window.addEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.addEventListener(\"resize\", resizeHandler, false);\n }\n };\n\n //\n // Initialize and return the public APIs\n //\n\n init();\n return publicAPIs;\n };\n\n //\n // Return the Constructor\n //\n\n return Constructor;\n },\n);\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","import Gumshoe from \"./gumshoe-patched.js\";\n\n////////////////////////////////////////////////////////////////////////////////\n// Scroll Handling\n////////////////////////////////////////////////////////////////////////////////\nvar tocScroll = null;\nvar header = null;\nvar lastScrollTop = document.documentElement.scrollTop;\nconst GO_TO_TOP_OFFSET = 64;\n\nfunction scrollHandlerForHeader(positionY) {\n const headerTop = Math.floor(header.getBoundingClientRect().top);\n\n console.log(`headerTop: ${headerTop}`);\n if (headerTop == 0 && positionY != headerTop) {\n header.classList.add(\"scrolled\");\n } else {\n header.classList.remove(\"scrolled\");\n }\n}\n\nfunction scrollHandlerForBackToTop(positionY) {\n if (positionY < GO_TO_TOP_OFFSET) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n } else {\n if (positionY < lastScrollTop) {\n document.documentElement.classList.add(\"show-back-to-top\");\n } else if (positionY > lastScrollTop) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n }\n }\n lastScrollTop = positionY;\n}\n\nfunction scrollHandlerForTOC(positionY) {\n if (tocScroll === null) {\n return;\n }\n\n // top of page.\n if (positionY == 0) {\n tocScroll.scrollTo(0, 0);\n } else if (\n // bottom of page.\n Math.ceil(positionY) >=\n Math.floor(document.documentElement.scrollHeight - window.innerHeight)\n ) {\n tocScroll.scrollTo(0, tocScroll.scrollHeight);\n } else {\n // somewhere in the middle.\n const current = document.querySelector(\".scroll-current\");\n if (current == null) {\n return;\n }\n\n // https://github.com/pypa/pip/issues/9159 This breaks scroll behaviours.\n // // scroll the currently \"active\" heading in toc, into view.\n // const rect = current.getBoundingClientRect();\n // if (0 > rect.top) {\n // current.scrollIntoView(true); // the argument is \"alignTop\"\n // } else if (rect.bottom > window.innerHeight) {\n // current.scrollIntoView(false);\n // }\n }\n}\n\nfunction scrollHandler(positionY) {\n scrollHandlerForHeader(positionY);\n scrollHandlerForBackToTop(positionY);\n scrollHandlerForTOC(positionY);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Theme Toggle\n////////////////////////////////////////////////////////////////////////////////\nfunction setTheme(mode) {\n if (mode !== \"light\" && mode !== \"dark\" && mode !== \"auto\") {\n console.error(`Got invalid theme mode: ${mode}. Resetting to auto.`);\n mode = \"auto\";\n }\n\n document.body.dataset.theme = mode;\n localStorage.setItem(\"theme\", mode);\n console.log(`Changed to ${mode} mode.`);\n}\n\nfunction cycleThemeOnce() {\n const currentTheme = localStorage.getItem(\"theme\") || \"auto\";\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n\n if (prefersDark) {\n // Auto (dark) -> Light -> Dark\n if (currentTheme === \"auto\") {\n setTheme(\"light\");\n } else if (currentTheme == \"light\") {\n setTheme(\"dark\");\n } else {\n setTheme(\"auto\");\n }\n } else {\n // Auto (light) -> Dark -> Light\n if (currentTheme === \"auto\") {\n setTheme(\"dark\");\n } else if (currentTheme == \"dark\") {\n setTheme(\"light\");\n } else {\n setTheme(\"auto\");\n }\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Setup\n////////////////////////////////////////////////////////////////////////////////\nfunction setupScrollHandler() {\n // Taken from https://developer.mozilla.org/en-US/docs/Web/API/Document/scroll_event\n let last_known_scroll_position = 0;\n let ticking = false;\n\n window.addEventListener(\"scroll\", function (e) {\n last_known_scroll_position = window.scrollY;\n\n if (!ticking) {\n window.requestAnimationFrame(function () {\n scrollHandler(last_known_scroll_position);\n ticking = false;\n });\n\n ticking = true;\n }\n });\n window.scroll();\n}\n\nfunction setupScrollSpy() {\n if (tocScroll === null) {\n return;\n }\n\n // Scrollspy -- highlight table on contents, based on scroll\n new Gumshoe(\".toc-tree a\", {\n reflow: true,\n recursive: true,\n navClass: \"scroll-current\",\n offset: () => {\n let rem = parseFloat(getComputedStyle(document.documentElement).fontSize);\n return header.getBoundingClientRect().height + 2.5 * rem + 1;\n },\n });\n}\n\nfunction setupTheme() {\n // Attach event handlers for toggling themes\n const buttons = document.getElementsByClassName(\"theme-toggle\");\n Array.from(buttons).forEach((btn) => {\n btn.addEventListener(\"click\", cycleThemeOnce);\n });\n}\n\nfunction setup() {\n setupTheme();\n setupScrollHandler();\n setupScrollSpy();\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Main entrypoint\n////////////////////////////////////////////////////////////////////////////////\nfunction main() {\n document.body.parentNode.classList.remove(\"no-js\");\n\n header = document.querySelector(\"header\");\n tocScroll = document.querySelector(\".toc-scroll\");\n\n setup();\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", main);\n"],"names":["root","g","window","this","defaults","navClass","contentClass","nested","nestedClass","offset","reflow","events","emitEvent","type","elem","detail","settings","event","CustomEvent","bubbles","cancelable","dispatchEvent","getOffsetTop","location","offsetParent","offsetTop","sortContents","contents","sort","item1","item2","content","isInView","bottom","bounds","getBoundingClientRect","parseFloat","getOffset","parseInt","innerHeight","document","documentElement","clientHeight","top","isAtBottom","Math","ceil","pageYOffset","max","body","scrollHeight","offsetHeight","getActive","last","length","item","useLastItem","i","deactivateNested","nav","parentNode","li","closest","classList","remove","deactivate","items","link","activateNested","add","selector","options","navItems","current","timeout","publicAPIs","querySelectorAll","Array","prototype","forEach","call","getElementById","decodeURIComponent","hash","substr","push","active","activate","scrollHandler","cancelAnimationFrame","requestAnimationFrame","detect","resizeHandler","destroy","removeEventListener","merged","arguments","obj","key","hasOwnProperty","extend","setup","addEventListener","factory","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","n","getter","__esModule","d","a","definition","o","Object","defineProperty","enumerable","get","globalThis","Function","e","prop","tocScroll","header","lastScrollTop","scrollTop","GO_TO_TOP_OFFSET","cycleThemeOnce","currentTheme","localStorage","getItem","mode","matchMedia","matches","console","error","dataset","theme","setItem","log","buttons","getElementsByClassName","from","btn","setupTheme","last_known_scroll_position","ticking","scrollY","positionY","headerTop","floor","scrollHandlerForHeader","scrollHandlerForBackToTop","scrollTo","querySelector","scrollHandlerForTOC","scroll","setupScrollHandler","recursive","rem","getComputedStyle","fontSize","height"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/fr/_static/styles/furo-extensions.css b/docs/fr/_static/styles/furo-extensions.css index bc447f228..822958761 100644 --- a/docs/fr/_static/styles/furo-extensions.css +++ b/docs/fr/_static/styles/furo-extensions.css @@ -1,2 +1,2 @@ -#furo-sidebar-ad-placement{padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)}#furo-sidebar-ad-placement .ethical-sidebar{background:var(--color-background-secondary);border:none;box-shadow:none}#furo-sidebar-ad-placement .ethical-sidebar:hover{background:var(--color-background-hover)}#furo-sidebar-ad-placement .ethical-sidebar a{color:var(--color-foreground-primary)}#furo-sidebar-ad-placement .ethical-callout a{color:var(--color-foreground-secondary)!important}#furo-readthedocs-versions{background:transparent;display:block;position:static;width:100%}#furo-readthedocs-versions .rst-versions{background:#1a1c1e}#furo-readthedocs-versions .rst-current-version{background:var(--color-sidebar-item-background);cursor:unset}#furo-readthedocs-versions .rst-current-version:hover{background:var(--color-sidebar-item-background)}#furo-readthedocs-versions .rst-current-version .fa-book{color:var(--color-foreground-primary)}#furo-readthedocs-versions>.rst-other-versions{padding:0}#furo-readthedocs-versions>.rst-other-versions small{opacity:1}#furo-readthedocs-versions .injected .rst-versions{position:unset}#furo-readthedocs-versions:focus-within,#furo-readthedocs-versions:hover{box-shadow:0 0 0 1px var(--color-sidebar-background-border)}#furo-readthedocs-versions:focus-within .rst-current-version,#furo-readthedocs-versions:hover .rst-current-version{background:#1a1c1e;font-size:inherit;height:auto;line-height:inherit;padding:12px;text-align:right}#furo-readthedocs-versions:focus-within .rst-current-version .fa-book,#furo-readthedocs-versions:hover .rst-current-version .fa-book{color:#fff;float:left}#furo-readthedocs-versions:focus-within .fa-caret-down,#furo-readthedocs-versions:hover .fa-caret-down{display:none}#furo-readthedocs-versions:focus-within .injected,#furo-readthedocs-versions:focus-within .rst-current-version,#furo-readthedocs-versions:focus-within .rst-other-versions,#furo-readthedocs-versions:hover .injected,#furo-readthedocs-versions:hover .rst-current-version,#furo-readthedocs-versions:hover .rst-other-versions{display:block}#furo-readthedocs-versions:focus-within>.rst-current-version,#furo-readthedocs-versions:hover>.rst-current-version{display:none}.highlight:hover button.copybtn{color:var(--color-code-foreground)}.highlight button.copybtn{align-items:center;background-color:var(--color-code-background);border:none;color:var(--color-background-item);cursor:pointer;height:1.25em;opacity:1;right:.5rem;top:.625rem;transition:color .3s,opacity .3s;width:1.25em}.highlight button.copybtn:hover{background-color:var(--color-code-background);color:var(--color-brand-content)}.highlight button.copybtn:after{background-color:transparent;color:var(--color-code-foreground);display:none}.highlight button.copybtn.success{color:#22863a;transition:color 0ms}.highlight button.copybtn.success:after{display:block}.highlight button.copybtn svg{padding:0}body{--sd-color-primary:var(--color-brand-primary);--sd-color-primary-highlight:var(--color-brand-content);--sd-color-primary-text:var(--color-background-primary);--sd-color-shadow:rgba(0,0,0,.05);--sd-color-card-border:var(--color-card-border);--sd-color-card-border-hover:var(--color-brand-content);--sd-color-card-background:var(--color-card-background);--sd-color-card-text:var(--color-foreground-primary);--sd-color-card-header:var(--color-card-marginals-background);--sd-color-card-footer:var(--color-card-marginals-background);--sd-color-tabs-label-active:var(--color-brand-content);--sd-color-tabs-label-hover:var(--color-foreground-muted);--sd-color-tabs-label-inactive:var(--color-foreground-muted);--sd-color-tabs-underline-active:var(--color-brand-content);--sd-color-tabs-underline-hover:var(--color-foreground-border);--sd-color-tabs-underline-inactive:var(--color-background-border);--sd-color-tabs-overline:var(--color-background-border);--sd-color-tabs-underline:var(--color-background-border)}.sd-tab-content{box-shadow:0 -2px var(--sd-color-tabs-overline),0 1px var(--sd-color-tabs-underline)}.sd-card{box-shadow:0 .1rem .25rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)}.sd-shadow-sm{box-shadow:0 .1rem .25rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-shadow-md{box-shadow:0 .3rem .75rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-shadow-lg{box-shadow:0 .6rem 1.5rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-card-hover:hover{transform:none}.sd-cards-carousel{gap:.25rem;padding:.25rem}body{--tabs--label-text:var(--color-foreground-muted);--tabs--label-text--hover:var(--color-foreground-muted);--tabs--label-text--active:var(--color-brand-content);--tabs--label-text--active--hover:var(--color-brand-content);--tabs--label-background:transparent;--tabs--label-background--hover:transparent;--tabs--label-background--active:transparent;--tabs--label-background--active--hover:transparent;--tabs--padding-x:0.25em;--tabs--margin-x:1em;--tabs--border:var(--color-background-border);--tabs--label-border:transparent;--tabs--label-border--hover:var(--color-foreground-muted);--tabs--label-border--active:var(--color-brand-content);--tabs--label-border--active--hover:var(--color-brand-content)}[role=main] .container{max-width:none;padding-left:0;padding-right:0}.shadow.docutils{border:none;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)!important}.sphinx-bs .card{background-color:var(--color-background-secondary);color:var(--color-foreground)} +#furo-sidebar-ad-placement{padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)}#furo-sidebar-ad-placement .ethical-sidebar{background:var(--color-background-secondary);border:none;box-shadow:none}#furo-sidebar-ad-placement .ethical-sidebar:hover{background:var(--color-background-hover)}#furo-sidebar-ad-placement .ethical-sidebar a{color:var(--color-foreground-primary)}#furo-sidebar-ad-placement .ethical-callout a{color:var(--color-foreground-secondary)!important}#furo-readthedocs-versions{background:transparent;display:block;position:static;width:100%}#furo-readthedocs-versions .rst-versions{background:#1a1c1e}#furo-readthedocs-versions .rst-current-version{background:var(--color-sidebar-item-background);cursor:unset}#furo-readthedocs-versions .rst-current-version:hover{background:var(--color-sidebar-item-background)}#furo-readthedocs-versions .rst-current-version .fa-book{color:var(--color-foreground-primary)}#furo-readthedocs-versions>.rst-other-versions{padding:0}#furo-readthedocs-versions>.rst-other-versions small{opacity:1}#furo-readthedocs-versions .injected .rst-versions{position:unset}#furo-readthedocs-versions:focus-within,#furo-readthedocs-versions:hover{box-shadow:0 0 0 1px var(--color-sidebar-background-border)}#furo-readthedocs-versions:focus-within .rst-current-version,#furo-readthedocs-versions:hover .rst-current-version{background:#1a1c1e;font-size:inherit;height:auto;line-height:inherit;padding:12px;text-align:right}#furo-readthedocs-versions:focus-within .rst-current-version .fa-book,#furo-readthedocs-versions:hover .rst-current-version .fa-book{color:#fff;float:left}#furo-readthedocs-versions:focus-within .fa-caret-down,#furo-readthedocs-versions:hover .fa-caret-down{display:none}#furo-readthedocs-versions:focus-within .injected,#furo-readthedocs-versions:focus-within .rst-current-version,#furo-readthedocs-versions:focus-within .rst-other-versions,#furo-readthedocs-versions:hover .injected,#furo-readthedocs-versions:hover .rst-current-version,#furo-readthedocs-versions:hover .rst-other-versions{display:block}#furo-readthedocs-versions:focus-within>.rst-current-version,#furo-readthedocs-versions:hover>.rst-current-version{display:none}.highlight:hover button.copybtn{color:var(--color-code-foreground)}.highlight button.copybtn{align-items:center;background-color:var(--color-code-background);border:none;color:var(--color-background-item);cursor:pointer;height:1.25em;right:.5rem;top:.625rem;transition:color .3s,opacity .3s;width:1.25em}.highlight button.copybtn:hover{background-color:var(--color-code-background);color:var(--color-brand-content)}.highlight button.copybtn:after{background-color:transparent;color:var(--color-code-foreground);display:none}.highlight button.copybtn.success{color:#22863a;transition:color 0ms}.highlight button.copybtn.success:after{display:block}.highlight button.copybtn svg{padding:0}body{--sd-color-primary:var(--color-brand-primary);--sd-color-primary-highlight:var(--color-brand-content);--sd-color-primary-text:var(--color-background-primary);--sd-color-shadow:rgba(0,0,0,.05);--sd-color-card-border:var(--color-card-border);--sd-color-card-border-hover:var(--color-brand-content);--sd-color-card-background:var(--color-card-background);--sd-color-card-text:var(--color-foreground-primary);--sd-color-card-header:var(--color-card-marginals-background);--sd-color-card-footer:var(--color-card-marginals-background);--sd-color-tabs-label-active:var(--color-brand-content);--sd-color-tabs-label-hover:var(--color-foreground-muted);--sd-color-tabs-label-inactive:var(--color-foreground-muted);--sd-color-tabs-underline-active:var(--color-brand-content);--sd-color-tabs-underline-hover:var(--color-foreground-border);--sd-color-tabs-underline-inactive:var(--color-background-border);--sd-color-tabs-overline:var(--color-background-border);--sd-color-tabs-underline:var(--color-background-border)}.sd-tab-content{box-shadow:0 -2px var(--sd-color-tabs-overline),0 1px var(--sd-color-tabs-underline)}.sd-card{box-shadow:0 .1rem .25rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)}.sd-shadow-sm{box-shadow:0 .1rem .25rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-shadow-md{box-shadow:0 .3rem .75rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-shadow-lg{box-shadow:0 .6rem 1.5rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-card-hover:hover{transform:none}.sd-cards-carousel{gap:.25rem;padding:.25rem}body{--tabs--label-text:var(--color-foreground-muted);--tabs--label-text--hover:var(--color-foreground-muted);--tabs--label-text--active:var(--color-brand-content);--tabs--label-text--active--hover:var(--color-brand-content);--tabs--label-background:transparent;--tabs--label-background--hover:transparent;--tabs--label-background--active:transparent;--tabs--label-background--active--hover:transparent;--tabs--padding-x:0.25em;--tabs--margin-x:1em;--tabs--border:var(--color-background-border);--tabs--label-border:transparent;--tabs--label-border--hover:var(--color-foreground-muted);--tabs--label-border--active:var(--color-brand-content);--tabs--label-border--active--hover:var(--color-brand-content)}[role=main] .container{max-width:none;padding-left:0;padding-right:0}.shadow.docutils{border:none;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)!important}.sphinx-bs .card{background-color:var(--color-background-secondary);color:var(--color-foreground)} /*# sourceMappingURL=furo-extensions.css.map*/ \ No newline at end of file diff --git a/docs/fr/_static/styles/furo-extensions.css.map b/docs/fr/_static/styles/furo-extensions.css.map index 9ba5637f9..c26eac7f5 100644 --- a/docs/fr/_static/styles/furo-extensions.css.map +++ b/docs/fr/_static/styles/furo-extensions.css.map @@ -1 +1 @@ -{"version":3,"file":"styles/furo-extensions.css","mappings":"AAGA,2BACE,oFACA,4CAKE,6CAHA,YACA,eAEA,CACA,kDACE,yCAEF,8CACE,sCAEJ,8CACE,kDAEJ,2BAGE,uBACA,cAHA,gBACA,UAEA,CAGA,yCACE,mBAEF,gDAEE,gDADA,YACA,CACA,sDACE,gDACF,yDACE,sCAEJ,+CACE,UACA,qDACE,UAGF,mDACE,eAEJ,yEAEE,4DAEA,mHASE,mBAPA,kBAEA,YADA,oBAGA,aADA,gBAIA,CAEA,qIAEE,WADA,UACA,CAEJ,uGACE,aAEF,iUAGE,cAEF,mHACE,aC1EJ,gCACE,mCAEF,0BAKE,mBAUA,8CACA,YAFA,mCAKA,eAZA,cALA,UASA,YADA,YAYA,iCAdA,YAcA,CAEA,gCAEE,8CADA,gCACA,CAEF,gCAGE,6BADA,mCADA,YAEA,CAEF,kCAEE,cADA,oBACA,CACA,wCACE,cAEJ,8BACE,UC5CN,KAEE,6CAA8C,CAC9C,uDAAwD,CACxD,uDAAwD,CAGxD,iCAAsC,CAGtC,+CAAgD,CAChD,uDAAwD,CACxD,uDAAwD,CACxD,oDAAqD,CACrD,6DAA8D,CAC9D,6DAA8D,CAG9D,uDAAwD,CACxD,yDAA0D,CAC1D,4DAA6D,CAC7D,2DAA4D,CAC5D,8DAA+D,CAC/D,iEAAkE,CAClE,uDAAwD,CACxD,wDAAyD,CAG3D,gBACE,qFAGF,SACE,6EAEF,cACE,uFAEF,cACE,uFAEF,cACE,uFAGF,qBACE,eAEF,mBACE,WACA,eChDF,KACE,gDAAiD,CACjD,uDAAwD,CACxD,qDAAsD,CACtD,4DAA6D,CAC7D,oCAAqC,CACrC,2CAA4C,CAC5C,4CAA6C,CAC7C,mDAAoD,CACpD,wBAAyB,CACzB,oBAAqB,CACrB,6CAA8C,CAC9C,gCAAiC,CACjC,yDAA0D,CAC1D,uDAAwD,CACxD,8DAA+D,CCbjE,uBACE,eACA,eACA,gBAGF,iBACE,YACA,+EAGF,iBACE,mDACA","sources":["webpack:///./src/furo/assets/styles/extensions/_readthedocs.sass","webpack:///./src/furo/assets/styles/extensions/_copybutton.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-design.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-inline-tabs.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-panels.sass"],"sourcesContent":["// This file contains the styles used for tweaking how ReadTheDoc's embedded\n// contents would show up inside the theme.\n\n#furo-sidebar-ad-placement\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n .ethical-sidebar\n // Remove the border and box-shadow.\n border: none\n box-shadow: none\n // Manage the background colors.\n background: var(--color-background-secondary)\n &:hover\n background: var(--color-background-hover)\n // Ensure the text is legible.\n a\n color: var(--color-foreground-primary)\n\n .ethical-callout a\n color: var(--color-foreground-secondary) !important\n\n#furo-readthedocs-versions\n position: static\n width: 100%\n background: transparent\n display: block\n\n // Make the background color fit with the theme's aesthetic.\n .rst-versions\n background: rgb(26, 28, 30)\n\n .rst-current-version\n cursor: unset\n background: var(--color-sidebar-item-background)\n &:hover\n background: var(--color-sidebar-item-background)\n .fa-book\n color: var(--color-foreground-primary)\n\n > .rst-other-versions\n padding: 0\n small\n opacity: 1\n\n .injected\n .rst-versions\n position: unset\n\n &:hover,\n &:focus-within\n box-shadow: 0 0 0 1px var(--color-sidebar-background-border)\n\n .rst-current-version\n // Undo the tweaks done in RTD's CSS\n font-size: inherit\n line-height: inherit\n height: auto\n text-align: right\n padding: 12px\n\n // Match the rest of the body\n background: #1a1c1e\n\n .fa-book\n float: left\n color: white\n\n .fa-caret-down\n display: none\n\n .rst-current-version,\n .rst-other-versions,\n .injected\n display: block\n\n > .rst-current-version\n display: none\n",".highlight\n &:hover button.copybtn\n color: var(--color-code-foreground)\n\n button.copybtn\n // Make it visible\n opacity: 1\n\n // Align things correctly\n align-items: center\n\n height: 1.25em\n width: 1.25em\n\n top: 0.625rem // $code-spacing-vertical\n right: 0.5rem\n\n // Make it look better\n color: var(--color-background-item)\n background-color: var(--color-code-background)\n border: none\n\n // Change to cursor to make it obvious that you can click on it\n cursor: pointer\n\n // Transition smoothly, for aesthetics\n transition: color 300ms, opacity 300ms\n\n &:hover\n color: var(--color-brand-content)\n background-color: var(--color-code-background)\n\n &::after\n display: none\n color: var(--color-code-foreground)\n background-color: transparent\n\n &.success\n transition: color 0ms\n color: #22863a\n &::after\n display: block\n\n svg\n padding: 0\n","body\n // Colors\n --sd-color-primary: var(--color-brand-primary)\n --sd-color-primary-highlight: var(--color-brand-content)\n --sd-color-primary-text: var(--color-background-primary)\n\n // Shadows\n --sd-color-shadow: rgba(0, 0, 0, 0.05)\n\n // Cards\n --sd-color-card-border: var(--color-card-border)\n --sd-color-card-border-hover: var(--color-brand-content)\n --sd-color-card-background: var(--color-card-background)\n --sd-color-card-text: var(--color-foreground-primary)\n --sd-color-card-header: var(--color-card-marginals-background)\n --sd-color-card-footer: var(--color-card-marginals-background)\n\n // Tabs\n --sd-color-tabs-label-active: var(--color-brand-content)\n --sd-color-tabs-label-hover: var(--color-foreground-muted)\n --sd-color-tabs-label-inactive: var(--color-foreground-muted)\n --sd-color-tabs-underline-active: var(--color-brand-content)\n --sd-color-tabs-underline-hover: var(--color-foreground-border)\n --sd-color-tabs-underline-inactive: var(--color-background-border)\n --sd-color-tabs-overline: var(--color-background-border)\n --sd-color-tabs-underline: var(--color-background-border)\n\n// Tabs\n.sd-tab-content\n box-shadow: 0 -2px var(--sd-color-tabs-overline), 0 1px var(--sd-color-tabs-underline)\n\n// Shadows\n.sd-card // Have a shadow by default\n box-shadow: 0 0.1rem 0.25rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n.sd-shadow-sm\n box-shadow: 0 0.1rem 0.25rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n.sd-shadow-md\n box-shadow: 0 0.3rem 0.75rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n.sd-shadow-lg\n box-shadow: 0 0.6rem 1.5rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n// Cards\n.sd-card-hover:hover // Don't change scale on hover\n transform: none\n\n.sd-cards-carousel // Have a bit of gap in the carousel by default\n gap: 0.25rem\n padding: 0.25rem\n","// This file contains styles to tweak sphinx-inline-tabs to work well with Furo.\n\nbody\n --tabs--label-text: var(--color-foreground-muted)\n --tabs--label-text--hover: var(--color-foreground-muted)\n --tabs--label-text--active: var(--color-brand-content)\n --tabs--label-text--active--hover: var(--color-brand-content)\n --tabs--label-background: transparent\n --tabs--label-background--hover: transparent\n --tabs--label-background--active: transparent\n --tabs--label-background--active--hover: transparent\n --tabs--padding-x: 0.25em\n --tabs--margin-x: 1em\n --tabs--border: var(--color-background-border)\n --tabs--label-border: transparent\n --tabs--label-border--hover: var(--color-foreground-muted)\n --tabs--label-border--active: var(--color-brand-content)\n --tabs--label-border--active--hover: var(--color-brand-content)\n","// This file contains styles to tweak sphinx-panels to work well with Furo.\n\n// sphinx-panels includes Bootstrap 4, which uses .container which can conflict\n// with docutils' `.. container::` directive.\n[role=\"main\"] .container\n max-width: initial\n padding-left: initial\n padding-right: initial\n\n// Make the panels look nicer!\n.shadow.docutils\n border: none\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n// Make panel colors respond to dark mode\n.sphinx-bs .card\n background-color: var(--color-background-secondary)\n color: var(--color-foreground)\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"styles/furo-extensions.css","mappings":"AAGA,2BACE,oFACA,4CAKE,6CAHA,YACA,eAEA,CACA,kDACE,yCAEF,8CACE,sCAEJ,8CACE,kDAEJ,2BAGE,uBACA,cAHA,gBACA,UAEA,CAGA,yCACE,mBAEF,gDAEE,gDADA,YACA,CACA,sDACE,gDACF,yDACE,sCAEJ,+CACE,UACA,qDACE,UAGF,mDACE,eAEJ,yEAEE,4DAEA,mHASE,mBAPA,kBAEA,YADA,oBAGA,aADA,gBAIA,CAEA,qIAEE,WADA,UACA,CAEJ,uGACE,aAEF,iUAGE,cAEF,mHACE,aC1EJ,gCACE,mCAEF,0BAEE,mBAUA,8CACA,YAFA,mCAKA,eAZA,cAIA,YADA,YAYA,iCAdA,YAcA,CAEA,gCAEE,8CADA,gCACA,CAEF,gCAGE,6BADA,mCADA,YAEA,CAEF,kCAEE,cADA,oBACA,CACA,wCACE,cAEJ,8BACE,UCzCN,KAEE,6CAA8C,CAC9C,uDAAwD,CACxD,uDAAwD,CAGxD,iCAAsC,CAGtC,+CAAgD,CAChD,uDAAwD,CACxD,uDAAwD,CACxD,oDAAqD,CACrD,6DAA8D,CAC9D,6DAA8D,CAG9D,uDAAwD,CACxD,yDAA0D,CAC1D,4DAA6D,CAC7D,2DAA4D,CAC5D,8DAA+D,CAC/D,iEAAkE,CAClE,uDAAwD,CACxD,wDAAyD,CAG3D,gBACE,qFAGF,SACE,6EAEF,cACE,uFAEF,cACE,uFAEF,cACE,uFAGF,qBACE,eAEF,mBACE,WACA,eChDF,KACE,gDAAiD,CACjD,uDAAwD,CACxD,qDAAsD,CACtD,4DAA6D,CAC7D,oCAAqC,CACrC,2CAA4C,CAC5C,4CAA6C,CAC7C,mDAAoD,CACpD,wBAAyB,CACzB,oBAAqB,CACrB,6CAA8C,CAC9C,gCAAiC,CACjC,yDAA0D,CAC1D,uDAAwD,CACxD,8DAA+D,CCbjE,uBACE,eACA,eACA,gBAGF,iBACE,YACA,+EAGF,iBACE,mDACA","sources":["webpack:///./src/furo/assets/styles/extensions/_readthedocs.sass","webpack:///./src/furo/assets/styles/extensions/_copybutton.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-design.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-inline-tabs.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-panels.sass"],"sourcesContent":["// This file contains the styles used for tweaking how ReadTheDoc's embedded\n// contents would show up inside the theme.\n\n#furo-sidebar-ad-placement\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n .ethical-sidebar\n // Remove the border and box-shadow.\n border: none\n box-shadow: none\n // Manage the background colors.\n background: var(--color-background-secondary)\n &:hover\n background: var(--color-background-hover)\n // Ensure the text is legible.\n a\n color: var(--color-foreground-primary)\n\n .ethical-callout a\n color: var(--color-foreground-secondary) !important\n\n#furo-readthedocs-versions\n position: static\n width: 100%\n background: transparent\n display: block\n\n // Make the background color fit with the theme's aesthetic.\n .rst-versions\n background: rgb(26, 28, 30)\n\n .rst-current-version\n cursor: unset\n background: var(--color-sidebar-item-background)\n &:hover\n background: var(--color-sidebar-item-background)\n .fa-book\n color: var(--color-foreground-primary)\n\n > .rst-other-versions\n padding: 0\n small\n opacity: 1\n\n .injected\n .rst-versions\n position: unset\n\n &:hover,\n &:focus-within\n box-shadow: 0 0 0 1px var(--color-sidebar-background-border)\n\n .rst-current-version\n // Undo the tweaks done in RTD's CSS\n font-size: inherit\n line-height: inherit\n height: auto\n text-align: right\n padding: 12px\n\n // Match the rest of the body\n background: #1a1c1e\n\n .fa-book\n float: left\n color: white\n\n .fa-caret-down\n display: none\n\n .rst-current-version,\n .rst-other-versions,\n .injected\n display: block\n\n > .rst-current-version\n display: none\n",".highlight\n &:hover button.copybtn\n color: var(--color-code-foreground)\n\n button.copybtn\n // Align things correctly\n align-items: center\n\n height: 1.25em\n width: 1.25em\n\n top: 0.625rem // $code-spacing-vertical\n right: 0.5rem\n\n // Make it look better\n color: var(--color-background-item)\n background-color: var(--color-code-background)\n border: none\n\n // Change to cursor to make it obvious that you can click on it\n cursor: pointer\n\n // Transition smoothly, for aesthetics\n transition: color 300ms, opacity 300ms\n\n &:hover\n color: var(--color-brand-content)\n background-color: var(--color-code-background)\n\n &::after\n display: none\n color: var(--color-code-foreground)\n background-color: transparent\n\n &.success\n transition: color 0ms\n color: #22863a\n &::after\n display: block\n\n svg\n padding: 0\n","body\n // Colors\n --sd-color-primary: var(--color-brand-primary)\n --sd-color-primary-highlight: var(--color-brand-content)\n --sd-color-primary-text: var(--color-background-primary)\n\n // Shadows\n --sd-color-shadow: rgba(0, 0, 0, 0.05)\n\n // Cards\n --sd-color-card-border: var(--color-card-border)\n --sd-color-card-border-hover: var(--color-brand-content)\n --sd-color-card-background: var(--color-card-background)\n --sd-color-card-text: var(--color-foreground-primary)\n --sd-color-card-header: var(--color-card-marginals-background)\n --sd-color-card-footer: var(--color-card-marginals-background)\n\n // Tabs\n --sd-color-tabs-label-active: var(--color-brand-content)\n --sd-color-tabs-label-hover: var(--color-foreground-muted)\n --sd-color-tabs-label-inactive: var(--color-foreground-muted)\n --sd-color-tabs-underline-active: var(--color-brand-content)\n --sd-color-tabs-underline-hover: var(--color-foreground-border)\n --sd-color-tabs-underline-inactive: var(--color-background-border)\n --sd-color-tabs-overline: var(--color-background-border)\n --sd-color-tabs-underline: var(--color-background-border)\n\n// Tabs\n.sd-tab-content\n box-shadow: 0 -2px var(--sd-color-tabs-overline), 0 1px var(--sd-color-tabs-underline)\n\n// Shadows\n.sd-card // Have a shadow by default\n box-shadow: 0 0.1rem 0.25rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n.sd-shadow-sm\n box-shadow: 0 0.1rem 0.25rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n.sd-shadow-md\n box-shadow: 0 0.3rem 0.75rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n.sd-shadow-lg\n box-shadow: 0 0.6rem 1.5rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n// Cards\n.sd-card-hover:hover // Don't change scale on hover\n transform: none\n\n.sd-cards-carousel // Have a bit of gap in the carousel by default\n gap: 0.25rem\n padding: 0.25rem\n","// This file contains styles to tweak sphinx-inline-tabs to work well with Furo.\n\nbody\n --tabs--label-text: var(--color-foreground-muted)\n --tabs--label-text--hover: var(--color-foreground-muted)\n --tabs--label-text--active: var(--color-brand-content)\n --tabs--label-text--active--hover: var(--color-brand-content)\n --tabs--label-background: transparent\n --tabs--label-background--hover: transparent\n --tabs--label-background--active: transparent\n --tabs--label-background--active--hover: transparent\n --tabs--padding-x: 0.25em\n --tabs--margin-x: 1em\n --tabs--border: var(--color-background-border)\n --tabs--label-border: transparent\n --tabs--label-border--hover: var(--color-foreground-muted)\n --tabs--label-border--active: var(--color-brand-content)\n --tabs--label-border--active--hover: var(--color-brand-content)\n","// This file contains styles to tweak sphinx-panels to work well with Furo.\n\n// sphinx-panels includes Bootstrap 4, which uses .container which can conflict\n// with docutils' `.. container::` directive.\n[role=\"main\"] .container\n max-width: initial\n padding-left: initial\n padding-right: initial\n\n// Make the panels look nicer!\n.shadow.docutils\n border: none\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n// Make panel colors respond to dark mode\n.sphinx-bs .card\n background-color: var(--color-background-secondary)\n color: var(--color-foreground)\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/docs/fr/_static/styles/furo.css b/docs/fr/_static/styles/furo.css index e3d4e57b8..21836d6ab 100644 --- a/docs/fr/_static/styles/furo.css +++ b/docs/fr/_static/styles/furo.css @@ -1,2 +1,2 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}@media print{.content-icon-container,.headerlink,.mobile-header,.related-pages{display:none!important}.highlight{border:.1pt solid var(--color-foreground-border)}a,blockquote,dl,ol,pre,table,ul{page-break-inside:avoid}caption,figure,h1,h2,h3,h4,h5,h6,img{page-break-after:avoid;page-break-inside:avoid}dl,ol,ul{page-break-before:avoid}}.visually-hidden{height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;clip:rect(0,0,0,0)!important;background:var(--color-background-primary);border:0!important;color:var(--color-foreground-primary);white-space:nowrap!important}:-moz-focusring{outline:auto}body{--font-stack:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;--font-stack--monospace:"SFMono-Regular",Menlo,Consolas,Monaco,Liberation Mono,Lucida Console,monospace;--font-stack--headings:var(--font-stack);--font-size--normal:100%;--font-size--small:87.5%;--font-size--small--2:81.25%;--font-size--small--3:75%;--font-size--small--4:62.5%;--sidebar-caption-font-size:var(--font-size--small--2);--sidebar-item-font-size:var(--font-size--small);--sidebar-search-input-font-size:var(--font-size--small);--toc-font-size:var(--font-size--small--3);--toc-font-size--mobile:var(--font-size--normal);--toc-title-font-size:var(--font-size--small--4);--admonition-font-size:0.8125rem;--admonition-title-font-size:0.8125rem;--code-font-size:var(--font-size--small--2);--api-font-size:var(--font-size--small);--header-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*4);--header-padding:0.5rem;--sidebar-tree-space-above:1.5rem;--sidebar-caption-space-above:1rem;--sidebar-item-line-height:1rem;--sidebar-item-spacing-vertical:0.5rem;--sidebar-item-spacing-horizontal:1rem;--sidebar-item-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*2);--sidebar-expander-width:var(--sidebar-item-height);--sidebar-search-space-above:0.5rem;--sidebar-search-input-spacing-vertical:0.5rem;--sidebar-search-input-spacing-horizontal:0.5rem;--sidebar-search-input-height:1rem;--sidebar-search-icon-size:var(--sidebar-search-input-height);--toc-title-padding:0.25rem 0;--toc-spacing-vertical:1.5rem;--toc-spacing-horizontal:1.5rem;--toc-item-spacing-vertical:0.4rem;--toc-item-spacing-horizontal:1rem;--icon-search:url('data:image/svg+xml;charset=utf-8,');--icon-pencil:url('data:image/svg+xml;charset=utf-8,');--icon-abstract:url('data:image/svg+xml;charset=utf-8,');--icon-info:url('data:image/svg+xml;charset=utf-8,');--icon-flame:url('data:image/svg+xml;charset=utf-8,');--icon-question:url('data:image/svg+xml;charset=utf-8,');--icon-warning:url('data:image/svg+xml;charset=utf-8,');--icon-failure:url('data:image/svg+xml;charset=utf-8,');--icon-spark:url('data:image/svg+xml;charset=utf-8,');--color-admonition-title--caution:#ff9100;--color-admonition-title-background--caution:rgba(255,145,0,.2);--color-admonition-title--warning:#ff9100;--color-admonition-title-background--warning:rgba(255,145,0,.2);--color-admonition-title--danger:#ff5252;--color-admonition-title-background--danger:rgba(255,82,82,.2);--color-admonition-title--attention:#ff5252;--color-admonition-title-background--attention:rgba(255,82,82,.2);--color-admonition-title--error:#ff5252;--color-admonition-title-background--error:rgba(255,82,82,.2);--color-admonition-title--hint:#00c852;--color-admonition-title-background--hint:rgba(0,200,82,.2);--color-admonition-title--tip:#00c852;--color-admonition-title-background--tip:rgba(0,200,82,.2);--color-admonition-title--important:#00bfa5;--color-admonition-title-background--important:rgba(0,191,165,.2);--color-admonition-title--note:#00b0ff;--color-admonition-title-background--note:rgba(0,176,255,.2);--color-admonition-title--seealso:#448aff;--color-admonition-title-background--seealso:rgba(68,138,255,.2);--color-admonition-title--admonition-todo:grey;--color-admonition-title-background--admonition-todo:hsla(0,0%,50%,.2);--color-admonition-title:#651fff;--color-admonition-title-background:rgba(101,31,255,.2);--icon-admonition-default:var(--icon-abstract);--color-topic-title:#14b8a6;--color-topic-title-background:rgba(20,184,166,.2);--icon-topic-default:var(--icon-pencil);--color-problematic:#b30000;--color-foreground-primary:#000;--color-foreground-secondary:#5a5c63;--color-foreground-muted:#6b6f76;--color-foreground-border:#878787;--color-background-primary:#fff;--color-background-secondary:#f8f9fb;--color-background-hover:#efeff4;--color-background-hover--transparent:#efeff400;--color-background-border:#eeebee;--color-background-item:#ccc;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#0a4bff;--color-brand-content:#2757dd;--color-brand-visited:#872ee0;--color-api-background:var(--color-background-hover--transparent);--color-api-background-hover:var(--color-background-hover);--color-api-overall:var(--color-foreground-secondary);--color-api-name:var(--color-problematic);--color-api-pre-name:var(--color-problematic);--color-api-paren:var(--color-foreground-secondary);--color-api-keyword:var(--color-foreground-primary);--color-api-added:#21632c;--color-api-added-border:#38a84d;--color-api-changed:#046172;--color-api-changed-border:#06a1bc;--color-api-deprecated:#605706;--color-api-deprecated-border:#f0d90f;--color-api-removed:#b30000;--color-api-removed-border:#ff5c5c;--color-highlight-on-target:#ffc;--color-inline-code-background:var(--color-background-secondary);--color-highlighted-background:#def;--color-highlighted-text:var(--color-foreground-primary);--color-guilabel-background:#ddeeff80;--color-guilabel-border:#bedaf580;--color-guilabel-text:var(--color-foreground-primary);--color-admonition-background:transparent;--color-table-header-background:var(--color-background-secondary);--color-table-border:var(--color-background-border);--color-card-border:var(--color-background-secondary);--color-card-background:transparent;--color-card-marginals-background:var(--color-background-secondary);--color-header-background:var(--color-background-primary);--color-header-border:var(--color-background-border);--color-header-text:var(--color-foreground-primary);--color-sidebar-background:var(--color-background-secondary);--color-sidebar-background-border:var(--color-background-border);--color-sidebar-brand-text:var(--color-foreground-primary);--color-sidebar-caption-text:var(--color-foreground-muted);--color-sidebar-link-text:var(--color-foreground-secondary);--color-sidebar-link-text--top-level:var(--color-brand-primary);--color-sidebar-item-background:var(--color-sidebar-background);--color-sidebar-item-background--current:var( --color-sidebar-item-background );--color-sidebar-item-background--hover:linear-gradient(90deg,var(--color-background-hover--transparent) 0%,var(--color-background-hover) var(--sidebar-item-spacing-horizontal),var(--color-background-hover) 100%);--color-sidebar-item-expander-background:transparent;--color-sidebar-item-expander-background--hover:var( --color-background-hover );--color-sidebar-search-text:var(--color-foreground-primary);--color-sidebar-search-background:var(--color-background-secondary);--color-sidebar-search-background--focus:var(--color-background-primary);--color-sidebar-search-border:var(--color-background-border);--color-sidebar-search-icon:var(--color-foreground-muted);--color-toc-background:var(--color-background-primary);--color-toc-title-text:var(--color-foreground-muted);--color-toc-item-text:var(--color-foreground-secondary);--color-toc-item-text--hover:var(--color-foreground-primary);--color-toc-item-text--active:var(--color-brand-primary);--color-content-foreground:var(--color-foreground-primary);--color-content-background:transparent;--color-link:var(--color-brand-content);--color-link-underline:var(--color-background-border);--color-link--hover:var(--color-brand-content);--color-link-underline--hover:var(--color-foreground-border);--color-link--visited:var(--color-brand-visited);--color-link-underline--visited:var(--color-background-border);--color-link--visited--hover:var(--color-brand-visited);--color-link-underline--visited--hover:var(--color-foreground-border)}.only-light{display:block!important}html body .only-dark{display:none!important}@media not print{body[data-theme=dark]{--color-problematic:#ee5151;--color-foreground-primary:#cfd0d0;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#3d94ff;--color-brand-content:#5ca5ff;--color-brand-visited:#b27aeb;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-api-added:#3db854;--color-api-added-border:#267334;--color-api-changed:#09b0ce;--color-api-changed-border:#056d80;--color-api-deprecated:#b1a10b;--color-api-deprecated-border:#6e6407;--color-api-removed:#ff7575;--color-api-removed-border:#b03b3b;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body[data-theme=dark] .only-light{display:none!important}body[data-theme=dark] .only-dark{display:block!important}@media(prefers-color-scheme:dark){body:not([data-theme=light]){--color-problematic:#ee5151;--color-foreground-primary:#cfd0d0;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#3d94ff;--color-brand-content:#5ca5ff;--color-brand-visited:#b27aeb;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-api-added:#3db854;--color-api-added-border:#267334;--color-api-changed:#09b0ce;--color-api-changed-border:#056d80;--color-api-deprecated:#b1a10b;--color-api-deprecated-border:#6e6407;--color-api-removed:#ff7575;--color-api-removed-border:#b03b3b;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body:not([data-theme=light]) .only-light{display:none!important}body:not([data-theme=light]) .only-dark{display:block!important}}}body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto-light{display:block}@media(prefers-color-scheme:dark){body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto-dark{display:block}body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto-light{display:none}}body[data-theme=dark] .theme-toggle svg.theme-icon-when-dark,body[data-theme=light] .theme-toggle svg.theme-icon-when-light{display:block}body{font-family:var(--font-stack)}code,kbd,pre,samp{font-family:var(--font-stack--monospace)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}article{line-height:1.5}h1,h2,h3,h4,h5,h6{border-radius:.5rem;font-family:var(--font-stack--headings);font-weight:700;line-height:1.25;margin:.5rem -.5rem;padding-left:.5rem;padding-right:.5rem}h1+p,h2+p,h3+p,h4+p,h5+p,h6+p{margin-top:0}h1{font-size:2.5em;margin-bottom:1rem}h1,h2{margin-top:1.75rem}h2{font-size:2em}h3{font-size:1.5em}h4{font-size:1.25em}h5{font-size:1.125em}h6{font-size:1em}small{font-size:80%;opacity:75%}p{margin-bottom:.75rem;margin-top:.5rem}hr.docutils{background-color:var(--color-background-border);border:0;height:1px;margin:2rem 0;padding:0}.centered{text-align:center}a{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link-underline)}a:visited{color:var(--color-link--visited);text-decoration-color:var(--color-link-underline--visited)}a:visited:hover{color:var(--color-link--visited--hover);text-decoration-color:var(--color-link-underline--visited--hover)}a:hover{color:var(--color-link--hover);text-decoration-color:var(--color-link-underline--hover)}a.muted-link{color:inherit}a.muted-link:hover{color:var(--color-link--hover);text-decoration-color:var(--color-link-underline--hover)}a.muted-link:hover:visited{color:var(--color-link--visited--hover);text-decoration-color:var(--color-link-underline--visited--hover)}html{overflow-x:hidden;overflow-y:scroll;scroll-behavior:smooth}.sidebar-scroll,.toc-scroll,article[role=main] *{scrollbar-color:var(--color-foreground-border) transparent;scrollbar-width:thin}.sidebar-scroll::-webkit-scrollbar,.toc-scroll::-webkit-scrollbar,article[role=main] ::-webkit-scrollbar{height:.25rem;width:.25rem}.sidebar-scroll::-webkit-scrollbar-thumb,.toc-scroll::-webkit-scrollbar-thumb,article[role=main] ::-webkit-scrollbar-thumb{background-color:var(--color-foreground-border);border-radius:.125rem}body,html{height:100%}.skip-to-content,body,html{background:var(--color-background-primary);color:var(--color-foreground-primary)}.skip-to-content{border-radius:1rem;left:.25rem;padding:1rem;position:fixed;top:.25rem;transform:translateY(-200%);transition:transform .3s ease-in-out;z-index:40}.skip-to-content:focus-within{transform:translateY(0)}article{background:var(--color-content-background);color:var(--color-content-foreground);overflow-wrap:break-word}.page{display:flex;min-height:100%}.mobile-header{background-color:var(--color-header-background);border-bottom:1px solid var(--color-header-border);color:var(--color-header-text);display:none;height:var(--header-height);width:100%;z-index:10}.mobile-header.scrolled{border-bottom:none;box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2)}.mobile-header .header-center a{color:var(--color-header-text);text-decoration:none}.main{display:flex;flex:1}.sidebar-drawer{background:var(--color-sidebar-background);border-right:1px solid var(--color-sidebar-background-border);box-sizing:border-box;display:flex;justify-content:flex-end;min-width:15em;width:calc(50% - 26em)}.sidebar-container,.toc-drawer{box-sizing:border-box;width:15em}.toc-drawer{background:var(--color-toc-background);padding-right:1rem}.sidebar-sticky,.toc-sticky{display:flex;flex-direction:column;height:min(100%,100vh);height:100vh;position:sticky;top:0}.sidebar-scroll,.toc-scroll{flex-grow:1;flex-shrink:1;overflow:auto;scroll-behavior:smooth}.content{display:flex;flex-direction:column;justify-content:space-between;padding:0 3em;width:46em}.icon{display:inline-block;height:1rem;width:1rem}.icon svg{height:100%;width:100%}.announcement{align-items:center;background-color:var(--color-announcement-background);color:var(--color-announcement-text);display:flex;height:var(--header-height);overflow-x:auto}.announcement+.page{min-height:calc(100% - var(--header-height))}.announcement-content{box-sizing:border-box;min-width:100%;padding:.5rem;text-align:center;white-space:nowrap}.announcement-content a{color:var(--color-announcement-text);text-decoration-color:var(--color-announcement-text)}.announcement-content a:hover{color:var(--color-announcement-text);text-decoration-color:var(--color-link--hover)}.no-js .theme-toggle-container{display:none}.theme-toggle-container{vertical-align:middle}.theme-toggle{background:transparent;border:none;cursor:pointer;padding:0}.theme-toggle svg{color:var(--color-foreground-primary);display:none;height:1.25rem;vertical-align:middle;width:1.25rem}.theme-toggle-header{float:left;padding:1rem .5rem}.nav-overlay-icon,.toc-overlay-icon{cursor:pointer;display:none}.nav-overlay-icon .icon,.toc-overlay-icon .icon{color:var(--color-foreground-secondary);height:1.25rem;width:1.25rem}.nav-overlay-icon,.toc-header-icon{align-items:center;justify-content:center}.toc-content-icon{height:1.5rem;width:1.5rem}.content-icon-container{display:flex;float:right;gap:.5rem;margin-bottom:1rem;margin-left:1rem;margin-top:1.5rem}.content-icon-container .edit-this-page svg,.content-icon-container .view-this-page svg{color:inherit;height:1.25rem;width:1.25rem}.sidebar-toggle{display:none;position:absolute}.sidebar-toggle[name=__toc]{left:20px}.sidebar-toggle:checked{left:40px}.overlay{background-color:rgba(0,0,0,.54);height:0;opacity:0;position:fixed;top:0;transition:width 0ms,height 0ms,opacity .25s ease-out;width:0}.sidebar-overlay{z-index:20}.toc-overlay{z-index:40}.sidebar-drawer{transition:left .25s ease-in-out;z-index:30}.toc-drawer{transition:right .25s ease-in-out;z-index:50}#__navigation:checked~.sidebar-overlay{height:100%;opacity:1;width:100%}#__navigation:checked~.page .sidebar-drawer{left:0;top:0}#__toc:checked~.toc-overlay{height:100%;opacity:1;width:100%}#__toc:checked~.page .toc-drawer{right:0;top:0}.back-to-top{background:var(--color-background-primary);border-radius:1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 1px 0 hsla(220,9%,46%,.502);display:none;font-size:.8125rem;left:0;margin-left:50%;padding:.5rem .75rem .5rem .5rem;position:fixed;text-decoration:none;top:1rem;transform:translateX(-50%);z-index:10}.back-to-top svg{height:1rem;width:1rem;fill:currentColor;display:inline-block}.back-to-top span{margin-left:.25rem}.show-back-to-top .back-to-top{align-items:center;display:flex}@media(min-width:97em){html{font-size:110%}}@media(max-width:82em){.toc-content-icon{display:flex}.toc-drawer{border-left:1px solid var(--color-background-muted);height:100vh;position:fixed;right:-15em;top:0}.toc-tree{border-left:none;font-size:var(--toc-font-size--mobile)}.sidebar-drawer{width:calc(50% - 18.5em)}}@media(max-width:67em){.nav-overlay-icon{display:flex}.sidebar-drawer{height:100vh;left:-15em;position:fixed;top:0;width:15em}.toc-header-icon{display:flex}.theme-toggle-content,.toc-content-icon{display:none}.theme-toggle-header{display:block}.mobile-header{align-items:center;display:flex;justify-content:space-between;position:sticky;top:0}.mobile-header .header-left,.mobile-header .header-right{display:flex;height:var(--header-height);padding:0 var(--header-padding)}.mobile-header .header-left label,.mobile-header .header-right label{height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.nav-overlay-icon .icon,.theme-toggle svg{height:1.25rem;width:1.25rem}:target{scroll-margin-top:calc(var(--header-height) + 2.5rem)}.back-to-top{top:calc(var(--header-height) + .5rem)}.page{flex-direction:column;justify-content:center}.content{margin-left:auto;margin-right:auto}}@media(max-width:52em){.content{overflow-x:auto;width:100%}}@media(max-width:46em){.content{padding:0 1em}article aside.sidebar{float:none;margin:1rem 0;width:100%}}.admonition,.topic{background:var(--color-admonition-background);border-radius:.2rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1);font-size:var(--admonition-font-size);margin:1rem auto;overflow:hidden;padding:0 .5rem .5rem;page-break-inside:avoid}.admonition>:nth-child(2),.topic>:nth-child(2){margin-top:0}.admonition>:last-child,.topic>:last-child{margin-bottom:0}.admonition p.admonition-title,p.topic-title{font-size:var(--admonition-title-font-size);font-weight:500;line-height:1.3;margin:0 -.5rem .5rem;padding:.4rem .5rem .4rem 2rem;position:relative}.admonition p.admonition-title:before,p.topic-title:before{content:"";height:1rem;left:.5rem;position:absolute;width:1rem}p.admonition-title{background-color:var(--color-admonition-title-background)}p.admonition-title:before{background-color:var(--color-admonition-title);-webkit-mask-image:var(--icon-admonition-default);mask-image:var(--icon-admonition-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}p.topic-title{background-color:var(--color-topic-title-background)}p.topic-title:before{background-color:var(--color-topic-title);-webkit-mask-image:var(--icon-topic-default);mask-image:var(--icon-topic-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.admonition{border-left:.2rem solid var(--color-admonition-title)}.admonition.caution{border-left-color:var(--color-admonition-title--caution)}.admonition.caution>.admonition-title{background-color:var(--color-admonition-title-background--caution)}.admonition.caution>.admonition-title:before{background-color:var(--color-admonition-title--caution);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.warning{border-left-color:var(--color-admonition-title--warning)}.admonition.warning>.admonition-title{background-color:var(--color-admonition-title-background--warning)}.admonition.warning>.admonition-title:before{background-color:var(--color-admonition-title--warning);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.danger{border-left-color:var(--color-admonition-title--danger)}.admonition.danger>.admonition-title{background-color:var(--color-admonition-title-background--danger)}.admonition.danger>.admonition-title:before{background-color:var(--color-admonition-title--danger);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.attention{border-left-color:var(--color-admonition-title--attention)}.admonition.attention>.admonition-title{background-color:var(--color-admonition-title-background--attention)}.admonition.attention>.admonition-title:before{background-color:var(--color-admonition-title--attention);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.error{border-left-color:var(--color-admonition-title--error)}.admonition.error>.admonition-title{background-color:var(--color-admonition-title-background--error)}.admonition.error>.admonition-title:before{background-color:var(--color-admonition-title--error);-webkit-mask-image:var(--icon-failure);mask-image:var(--icon-failure)}.admonition.hint{border-left-color:var(--color-admonition-title--hint)}.admonition.hint>.admonition-title{background-color:var(--color-admonition-title-background--hint)}.admonition.hint>.admonition-title:before{background-color:var(--color-admonition-title--hint);-webkit-mask-image:var(--icon-question);mask-image:var(--icon-question)}.admonition.tip{border-left-color:var(--color-admonition-title--tip)}.admonition.tip>.admonition-title{background-color:var(--color-admonition-title-background--tip)}.admonition.tip>.admonition-title:before{background-color:var(--color-admonition-title--tip);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.important{border-left-color:var(--color-admonition-title--important)}.admonition.important>.admonition-title{background-color:var(--color-admonition-title-background--important)}.admonition.important>.admonition-title:before{background-color:var(--color-admonition-title--important);-webkit-mask-image:var(--icon-flame);mask-image:var(--icon-flame)}.admonition.note{border-left-color:var(--color-admonition-title--note)}.admonition.note>.admonition-title{background-color:var(--color-admonition-title-background--note)}.admonition.note>.admonition-title:before{background-color:var(--color-admonition-title--note);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition.seealso{border-left-color:var(--color-admonition-title--seealso)}.admonition.seealso>.admonition-title{background-color:var(--color-admonition-title-background--seealso)}.admonition.seealso>.admonition-title:before{background-color:var(--color-admonition-title--seealso);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.admonition-todo{border-left-color:var(--color-admonition-title--admonition-todo)}.admonition.admonition-todo>.admonition-title{background-color:var(--color-admonition-title-background--admonition-todo)}.admonition.admonition-todo>.admonition-title:before{background-color:var(--color-admonition-title--admonition-todo);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition-todo>.admonition-title{text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd{margin-left:2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:first-child{margin-top:.125rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list,dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:last-child{margin-bottom:.75rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list>dt{font-size:var(--font-size--small);text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd:empty{margin-bottom:.5rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul{margin-left:-1.2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p:nth-child(2){margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p+p:last-child:empty{margin-bottom:0;margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt{color:var(--color-api-overall)}.sig:not(.sig-inline){background:var(--color-api-background);border-radius:.25rem;font-family:var(--font-stack--monospace);font-size:var(--api-font-size);font-weight:700;margin-left:-.25rem;margin-right:-.25rem;padding:.25rem .5rem .25rem 3em;text-indent:-2.5em;transition:background .1s ease-out}.sig:not(.sig-inline):hover{background:var(--color-api-background-hover)}.sig:not(.sig-inline) a.reference .viewcode-link{font-weight:400;width:4.25rem}em.property{font-style:normal}em.property:first-child{color:var(--color-api-keyword)}.sig-name{color:var(--color-api-name)}.sig-prename{color:var(--color-api-pre-name);font-weight:400}.sig-paren{color:var(--color-api-paren)}.sig-param{font-style:normal}div.deprecated,div.versionadded,div.versionchanged,div.versionremoved{border-left:.1875rem solid;border-radius:.125rem;padding-left:.75rem}div.deprecated p,div.versionadded p,div.versionchanged p,div.versionremoved p{margin-bottom:.125rem;margin-top:.125rem}div.versionadded{border-color:var(--color-api-added-border)}div.versionadded .versionmodified{color:var(--color-api-added)}div.versionchanged{border-color:var(--color-api-changed-border)}div.versionchanged .versionmodified{color:var(--color-api-changed)}div.deprecated{border-color:var(--color-api-deprecated-border)}div.deprecated .versionmodified{color:var(--color-api-deprecated)}div.versionremoved{border-color:var(--color-api-removed-border)}div.versionremoved .versionmodified{color:var(--color-api-removed)}.viewcode-back,.viewcode-link{float:right;text-align:right}.line-block{margin-bottom:.75rem;margin-top:.5rem}.line-block .line-block{margin-bottom:0;margin-top:0;padding-left:1rem}.code-block-caption,article p.caption,table>caption{font-size:var(--font-size--small);text-align:center}.toctree-wrapper.compound .caption,.toctree-wrapper.compound :not(.caption)>.caption-text{font-size:var(--font-size--small);margin-bottom:0;text-align:initial;text-transform:uppercase}.toctree-wrapper.compound>ul{margin-bottom:0;margin-top:0}.sig-inline,code.literal{background:var(--color-inline-code-background);border-radius:.2em;font-size:var(--font-size--small--2);padding:.1em .2em}pre.literal-block .sig-inline,pre.literal-block code.literal{font-size:inherit;padding:0}p .sig-inline,p code.literal{border:1px solid var(--color-background-border)}.sig-inline{font-family:var(--font-stack--monospace)}div[class*=" highlight-"],div[class^=highlight-]{display:flex;margin:1em 0}div[class*=" highlight-"] .table-wrapper,div[class^=highlight-] .table-wrapper,pre{margin:0;padding:0}pre{overflow:auto}article[role=main] .highlight pre{line-height:1.5}.highlight pre,pre.literal-block{font-size:var(--code-font-size);padding:.625rem .875rem}pre.literal-block{background-color:var(--color-code-background);border-radius:.2rem;color:var(--color-code-foreground);margin-bottom:1rem;margin-top:1rem}.highlight{border-radius:.2rem;width:100%}.highlight .gp,.highlight span.linenos{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.highlight .hll{display:block;margin-left:-.875rem;margin-right:-.875rem;padding-left:.875rem;padding-right:.875rem}.code-block-caption{background-color:var(--color-code-background);border-bottom:1px solid;border-radius:.25rem;border-bottom-left-radius:0;border-bottom-right-radius:0;border-color:var(--color-background-border);color:var(--color-code-foreground);display:flex;font-weight:300;padding:.625rem .875rem}.code-block-caption+div[class]{margin-top:0}.code-block-caption+div[class] pre{border-top-left-radius:0;border-top-right-radius:0}.highlighttable{display:block;width:100%}.highlighttable tbody{display:block}.highlighttable tr{display:flex}.highlighttable td.linenos{background-color:var(--color-code-background);border-bottom-left-radius:.2rem;border-top-left-radius:.2rem;color:var(--color-code-foreground);padding:.625rem 0 .625rem .875rem}.highlighttable .linenodiv{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;font-size:var(--code-font-size);padding-right:.875rem}.highlighttable td.code{display:block;flex:1;overflow:hidden;padding:0}.highlighttable td.code .highlight{border-bottom-left-radius:0;border-top-left-radius:0}.highlight span.linenos{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;display:inline-block;margin-right:.875rem;padding-left:0;padding-right:.875rem}.footnote-reference{font-size:var(--font-size--small--4);vertical-align:super}dl.footnote.brackets{color:var(--color-foreground-secondary);display:grid;font-size:var(--font-size--small);grid-template-columns:max-content auto}dl.footnote.brackets dt{margin:0}dl.footnote.brackets dt>.fn-backref{margin-left:.25rem}dl.footnote.brackets dt:after{content:":"}dl.footnote.brackets dt .brackets:before{content:"["}dl.footnote.brackets dt .brackets:after{content:"]"}dl.footnote.brackets dd{margin:0;padding:0 1rem}aside.footnote{color:var(--color-foreground-secondary);font-size:var(--font-size--small)}aside.footnote>span,div.citation>span{float:left;font-weight:500;padding-right:.25rem}aside.footnote>:not(span),div.citation>p{margin-left:2rem}img{box-sizing:border-box;height:auto;max-width:100%}article .figure,article figure{border-radius:.2rem;margin:0}article .figure :last-child,article figure :last-child{margin-bottom:0}article .align-left{clear:left;float:left;margin:0 1rem 1rem}article .align-right{clear:right;float:right;margin:0 1rem 1rem}article .align-center,article .align-default{display:block;margin-left:auto;margin-right:auto;text-align:center}article table.align-default{display:table;text-align:initial}.domainindex-jumpbox,.genindex-jumpbox{border-bottom:1px solid var(--color-background-border);border-top:1px solid var(--color-background-border);padding:.25rem}.domainindex-section h2,.genindex-section h2{margin-bottom:.5rem;margin-top:.75rem}.domainindex-section ul,.genindex-section ul{margin-bottom:0;margin-top:0}ol,ul{margin-bottom:1rem;margin-top:1rem;padding-left:1.2rem}ol li>p:first-child,ul li>p:first-child{margin-bottom:.25rem;margin-top:.25rem}ol li>p:last-child,ul li>p:last-child{margin-top:.25rem}ol li>ol,ol li>ul,ul li>ol,ul li>ul{margin-bottom:.5rem;margin-top:.5rem}ol.arabic{list-style:decimal}ol.loweralpha{list-style:lower-alpha}ol.upperalpha{list-style:upper-alpha}ol.lowerroman{list-style:lower-roman}ol.upperroman{list-style:upper-roman}.simple li>ol,.simple li>ul,.toctree-wrapper li>ol,.toctree-wrapper li>ul{margin-bottom:0;margin-top:0}.field-list dt,.option-list dt,dl.footnote dt,dl.glossary dt,dl.simple dt,dl:not([class]) dt{font-weight:500;margin-top:.25rem}.field-list dt+dt,.option-list dt+dt,dl.footnote dt+dt,dl.glossary dt+dt,dl.simple dt+dt,dl:not([class]) dt+dt{margin-top:0}.field-list dt .classifier:before,.option-list dt .classifier:before,dl.footnote dt .classifier:before,dl.glossary dt .classifier:before,dl.simple dt .classifier:before,dl:not([class]) dt .classifier:before{content:":";margin-left:.2rem;margin-right:.2rem}.field-list dd ul,.field-list dd>p:first-child,.option-list dd ul,.option-list dd>p:first-child,dl.footnote dd ul,dl.footnote dd>p:first-child,dl.glossary dd ul,dl.glossary dd>p:first-child,dl.simple dd ul,dl.simple dd>p:first-child,dl:not([class]) dd ul,dl:not([class]) dd>p:first-child{margin-top:.125rem}.field-list dd ul,.option-list dd ul,dl.footnote dd ul,dl.glossary dd ul,dl.simple dd ul,dl:not([class]) dd ul{margin-bottom:.125rem}.math-wrapper{overflow-x:auto;width:100%}div.math{position:relative;text-align:center}div.math .headerlink,div.math:focus .headerlink{display:none}div.math:hover .headerlink{display:inline-block}div.math span.eqno{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);z-index:1}abbr[title]{cursor:help}.problematic{color:var(--color-problematic)}kbd:not(.compound){background-color:var(--color-background-secondary);border:1px solid var(--color-foreground-border);border-radius:.2rem;box-shadow:0 .0625rem 0 rgba(0,0,0,.2),inset 0 0 0 .125rem var(--color-background-primary);color:var(--color-foreground-primary);display:inline-block;font-size:var(--font-size--small--3);margin:0 .2rem;padding:0 .2rem;vertical-align:text-bottom}blockquote{background:var(--color-background-secondary);border-left:4px solid var(--color-background-border);margin-left:0;margin-right:0;padding:.5rem 1rem}blockquote .attribution{font-weight:600;text-align:right}blockquote.highlights,blockquote.pull-quote{font-size:1.25em}blockquote.epigraph,blockquote.pull-quote{border-left-width:0;border-radius:.5rem}blockquote.highlights{background:transparent;border-left-width:0}p .reference img{vertical-align:middle}p.rubric{font-size:1.125em;font-weight:700;line-height:1.25}dd p.rubric{font-size:var(--font-size--small);font-weight:inherit;line-height:inherit;text-transform:uppercase}article .sidebar{background-color:var(--color-background-secondary);border:1px solid var(--color-background-border);border-radius:.2rem;clear:right;float:right;margin-left:1rem;margin-right:0;width:30%}article .sidebar>*{padding-left:1rem;padding-right:1rem}article .sidebar>ol,article .sidebar>ul{padding-left:2.2rem}article .sidebar .sidebar-title{border-bottom:1px solid var(--color-background-border);font-weight:500;margin:0;padding:.5rem 1rem}.table-wrapper{margin-bottom:.5rem;margin-top:1rem;overflow-x:auto;padding:.2rem .2rem .75rem;width:100%}table.docutils{border-collapse:collapse;border-radius:.2rem;border-spacing:0;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)}table.docutils th{background:var(--color-table-header-background)}table.docutils td,table.docutils th{border-bottom:1px solid var(--color-table-border);border-left:1px solid var(--color-table-border);border-right:1px solid var(--color-table-border);padding:0 .25rem}table.docutils td p,table.docutils th p{margin:.25rem}table.docutils td:first-child,table.docutils th:first-child{border-left:none}table.docutils td:last-child,table.docutils th:last-child{border-right:none}table.docutils td.text-left,table.docutils th.text-left{text-align:left}table.docutils td.text-right,table.docutils th.text-right{text-align:right}table.docutils td.text-center,table.docutils th.text-center{text-align:center}:target{scroll-margin-top:2.5rem}@media(max-width:67em){:target{scroll-margin-top:calc(2.5rem + var(--header-height))}section>span:target{scroll-margin-top:calc(2.8rem + var(--header-height))}}.headerlink{font-weight:100;-webkit-user-select:none;-moz-user-select:none;user-select:none}.code-block-caption>.headerlink,dl dt>.headerlink,figcaption p>.headerlink,h1>.headerlink,h2>.headerlink,h3>.headerlink,h4>.headerlink,h5>.headerlink,h6>.headerlink,p.caption>.headerlink,table>caption>.headerlink{margin-left:.5rem;visibility:hidden}.code-block-caption:hover>.headerlink,dl dt:hover>.headerlink,figcaption p:hover>.headerlink,h1:hover>.headerlink,h2:hover>.headerlink,h3:hover>.headerlink,h4:hover>.headerlink,h5:hover>.headerlink,h6:hover>.headerlink,p.caption:hover>.headerlink,table>caption:hover>.headerlink{visibility:visible}.code-block-caption>.toc-backref,dl dt>.toc-backref,figcaption p>.toc-backref,h1>.toc-backref,h2>.toc-backref,h3>.toc-backref,h4>.toc-backref,h5>.toc-backref,h6>.toc-backref,p.caption>.toc-backref,table>caption>.toc-backref{color:inherit;text-decoration-line:none}figure:hover>figcaption>p>.headerlink,table:hover>caption>.headerlink{visibility:visible}:target>h1:first-of-type,:target>h2:first-of-type,:target>h3:first-of-type,:target>h4:first-of-type,:target>h5:first-of-type,:target>h6:first-of-type,span:target~h1:first-of-type,span:target~h2:first-of-type,span:target~h3:first-of-type,span:target~h4:first-of-type,span:target~h5:first-of-type,span:target~h6:first-of-type{background-color:var(--color-highlight-on-target)}:target>h1:first-of-type code.literal,:target>h2:first-of-type code.literal,:target>h3:first-of-type code.literal,:target>h4:first-of-type code.literal,:target>h5:first-of-type code.literal,:target>h6:first-of-type code.literal,span:target~h1:first-of-type code.literal,span:target~h2:first-of-type code.literal,span:target~h3:first-of-type code.literal,span:target~h4:first-of-type code.literal,span:target~h5:first-of-type code.literal,span:target~h6:first-of-type code.literal{background-color:transparent}.literal-block-wrapper:target .code-block-caption,.this-will-duplicate-information-and-it-is-still-useful-here li :target,figure:target,table:target>caption{background-color:var(--color-highlight-on-target)}dt:target{background-color:var(--color-highlight-on-target)!important}.footnote-reference:target,.footnote>dt:target+dd{background-color:var(--color-highlight-on-target)}.guilabel{background-color:var(--color-guilabel-background);border:1px solid var(--color-guilabel-border);border-radius:.5em;color:var(--color-guilabel-text);font-size:.9em;padding:0 .3em}footer{display:flex;flex-direction:column;font-size:var(--font-size--small);margin-top:2rem}.bottom-of-page{align-items:center;border-top:1px solid var(--color-background-border);color:var(--color-foreground-secondary);display:flex;justify-content:space-between;line-height:1.5;margin-top:1rem;padding-bottom:1rem;padding-top:1rem}@media(max-width:46em){.bottom-of-page{flex-direction:column-reverse;gap:.25rem;text-align:center}}.bottom-of-page .left-details{font-size:var(--font-size--small)}.bottom-of-page .right-details{display:flex;flex-direction:column;gap:.25rem;text-align:right}.bottom-of-page .icons{display:flex;font-size:1rem;gap:.25rem;justify-content:flex-end}.bottom-of-page .icons a{text-decoration:none}.bottom-of-page .icons img,.bottom-of-page .icons svg{font-size:1.125rem;height:1em;width:1em}.related-pages a{align-items:center;display:flex;text-decoration:none}.related-pages a:hover .page-info .title{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link-underline)}.related-pages a svg.furo-related-icon,.related-pages a svg.furo-related-icon>use{color:var(--color-foreground-border);flex-shrink:0;height:.75rem;margin:0 .5rem;width:.75rem}.related-pages a.next-page{clear:right;float:right;max-width:50%;text-align:right}.related-pages a.prev-page{clear:left;float:left;max-width:50%}.related-pages a.prev-page svg{transform:rotate(180deg)}.page-info{display:flex;flex-direction:column;overflow-wrap:anywhere}.next-page .page-info{align-items:flex-end}.page-info .context{align-items:center;color:var(--color-foreground-muted);display:flex;font-size:var(--font-size--small);padding-bottom:.1rem;text-decoration:none}ul.search{list-style:none;padding-left:0}ul.search li{border-bottom:1px solid var(--color-background-border);padding:1rem 0}[role=main] .highlighted{background-color:var(--color-highlighted-background);color:var(--color-highlighted-text)}.sidebar-brand{display:flex;flex-direction:column;flex-shrink:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none}.sidebar-brand-text{color:var(--color-sidebar-brand-text);font-size:1.5rem;overflow-wrap:break-word}.sidebar-brand-text,.sidebar-logo-container{margin:var(--sidebar-item-spacing-vertical) 0}.sidebar-logo{display:block;margin:0 auto;max-width:100%}.sidebar-search-container{align-items:center;background:var(--color-sidebar-search-background);display:flex;margin-top:var(--sidebar-search-space-above);position:relative}.sidebar-search-container:focus-within,.sidebar-search-container:hover{background:var(--color-sidebar-search-background--focus)}.sidebar-search-container:before{background-color:var(--color-sidebar-search-icon);content:"";height:var(--sidebar-search-icon-size);left:var(--sidebar-item-spacing-horizontal);-webkit-mask-image:var(--icon-search);mask-image:var(--icon-search);position:absolute;width:var(--sidebar-search-icon-size)}.sidebar-search{background:transparent;border:none;border-bottom:1px solid var(--color-sidebar-search-border);border-top:1px solid var(--color-sidebar-search-border);box-sizing:border-box;color:var(--color-sidebar-search-foreground);padding:var(--sidebar-search-input-spacing-vertical) var(--sidebar-search-input-spacing-horizontal) var(--sidebar-search-input-spacing-vertical) calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size));width:100%;z-index:10}.sidebar-search:focus{outline:none}.sidebar-search::-moz-placeholder{font-size:var(--sidebar-search-input-font-size)}.sidebar-search::placeholder{font-size:var(--sidebar-search-input-font-size)}#searchbox .highlight-link{margin:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0;text-align:center}#searchbox .highlight-link a{color:var(--color-sidebar-search-icon);font-size:var(--font-size--small--2)}.sidebar-tree{font-size:var(--sidebar-item-font-size);margin-bottom:var(--sidebar-item-spacing-vertical);margin-top:var(--sidebar-tree-space-above)}.sidebar-tree ul{display:flex;flex-direction:column;list-style:none;margin-bottom:0;margin-top:0;padding:0}.sidebar-tree li{margin:0;position:relative}.sidebar-tree li>ul{margin-left:var(--sidebar-item-spacing-horizontal)}.sidebar-tree .icon,.sidebar-tree .reference{color:var(--color-sidebar-link-text)}.sidebar-tree .reference{box-sizing:border-box;display:inline-block;height:100%;line-height:var(--sidebar-item-line-height);overflow-wrap:anywhere;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none;width:100%}.sidebar-tree .reference:hover{background:var(--color-sidebar-item-background--hover);color:var(--color-sidebar-link-text)}.sidebar-tree .reference.external:after{color:var(--color-sidebar-link-text);content:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23607D8B' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' viewBox='0 0 24 24'%3E%3Cpath stroke='none' d='M0 0h24v24H0z'/%3E%3Cpath d='M11 7H6a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2v-5M10 14 20 4M15 4h5v5'/%3E%3C/svg%3E");margin:0 .25rem;vertical-align:middle}.sidebar-tree .current-page>.reference{font-weight:700}.sidebar-tree label{align-items:center;cursor:pointer;display:flex;height:var(--sidebar-item-height);justify-content:center;position:absolute;right:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:var(--sidebar-expander-width)}.sidebar-tree .caption,.sidebar-tree :not(.caption)>.caption-text{color:var(--color-sidebar-caption-text);font-size:var(--sidebar-caption-font-size);font-weight:700;margin:var(--sidebar-caption-space-above) 0 0 0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-transform:uppercase}.sidebar-tree li.has-children>.reference{padding-right:var(--sidebar-expander-width)}.sidebar-tree .toctree-l1>.reference,.sidebar-tree .toctree-l1>label .icon{color:var(--color-sidebar-link-text--top-level)}.sidebar-tree label{background:var(--color-sidebar-item-expander-background)}.sidebar-tree label:hover{background:var(--color-sidebar-item-expander-background--hover)}.sidebar-tree .current>.reference{background:var(--color-sidebar-item-background--current)}.sidebar-tree .current>.reference:hover{background:var(--color-sidebar-item-background--hover)}.toctree-checkbox{display:none;position:absolute}.toctree-checkbox~ul{display:none}.toctree-checkbox~label .icon svg{transform:rotate(90deg)}.toctree-checkbox:checked~ul{display:block}.toctree-checkbox:checked~label .icon svg{transform:rotate(-90deg)}.toc-title-container{padding:var(--toc-title-padding);padding-top:var(--toc-spacing-vertical)}.toc-title{color:var(--color-toc-title-text);font-size:var(--toc-title-font-size);padding-left:var(--toc-spacing-horizontal);text-transform:uppercase}.no-toc{display:none}.toc-tree-container{padding-bottom:var(--toc-spacing-vertical)}.toc-tree{border-left:1px solid var(--color-background-border);font-size:var(--toc-font-size);line-height:1.3;padding-left:calc(var(--toc-spacing-horizontal) - var(--toc-item-spacing-horizontal))}.toc-tree>ul>li:first-child{padding-top:0}.toc-tree>ul>li:first-child>ul{padding-left:0}.toc-tree>ul>li:first-child>a{display:none}.toc-tree ul{list-style-type:none;margin-bottom:0;margin-top:0;padding-left:var(--toc-item-spacing-horizontal)}.toc-tree li{padding-top:var(--toc-item-spacing-vertical)}.toc-tree li.scroll-current>.reference{color:var(--color-toc-item-text--active);font-weight:700}.toc-tree a.reference{color:var(--color-toc-item-text);overflow-wrap:anywhere;text-decoration:none}.toc-scroll{max-height:100vh;overflow-y:scroll}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here){background:rgba(255,0,0,.25);color:var(--color-problematic)}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here):before{content:"ERROR: Adding a table of contents in Furo-based documentation is unnecessary, and does not work well with existing styling. Add a 'this-will-duplicate-information-and-it-is-still-useful-here' class, if you want an escape hatch."}.text-align\:left>p{text-align:left}.text-align\:center>p{text-align:center}.text-align\:right>p{text-align:right} +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}@media print{.content-icon-container,.headerlink,.mobile-header,.related-pages{display:none!important}.highlight{border:.1pt solid var(--color-foreground-border)}a,blockquote,dl,ol,pre,table,ul{page-break-inside:avoid}caption,figure,h1,h2,h3,h4,h5,h6,img{page-break-after:avoid;page-break-inside:avoid}dl,ol,ul{page-break-before:avoid}}.visually-hidden{height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;clip:rect(0,0,0,0)!important;background:var(--color-background-primary);border:0!important;color:var(--color-foreground-primary);white-space:nowrap!important}:-moz-focusring{outline:auto}body{--font-stack:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;--font-stack--monospace:"SFMono-Regular",Menlo,Consolas,Monaco,Liberation Mono,Lucida Console,monospace;--font-stack--headings:var(--font-stack);--font-size--normal:100%;--font-size--small:87.5%;--font-size--small--2:81.25%;--font-size--small--3:75%;--font-size--small--4:62.5%;--sidebar-caption-font-size:var(--font-size--small--2);--sidebar-item-font-size:var(--font-size--small);--sidebar-search-input-font-size:var(--font-size--small);--toc-font-size:var(--font-size--small--3);--toc-font-size--mobile:var(--font-size--normal);--toc-title-font-size:var(--font-size--small--4);--admonition-font-size:0.8125rem;--admonition-title-font-size:0.8125rem;--code-font-size:var(--font-size--small--2);--api-font-size:var(--font-size--small);--header-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*4);--header-padding:0.5rem;--sidebar-tree-space-above:1.5rem;--sidebar-caption-space-above:1rem;--sidebar-item-line-height:1rem;--sidebar-item-spacing-vertical:0.5rem;--sidebar-item-spacing-horizontal:1rem;--sidebar-item-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*2);--sidebar-expander-width:var(--sidebar-item-height);--sidebar-search-space-above:0.5rem;--sidebar-search-input-spacing-vertical:0.5rem;--sidebar-search-input-spacing-horizontal:0.5rem;--sidebar-search-input-height:1rem;--sidebar-search-icon-size:var(--sidebar-search-input-height);--toc-title-padding:0.25rem 0;--toc-spacing-vertical:1.5rem;--toc-spacing-horizontal:1.5rem;--toc-item-spacing-vertical:0.4rem;--toc-item-spacing-horizontal:1rem;--icon-search:url('data:image/svg+xml;charset=utf-8,');--icon-pencil:url('data:image/svg+xml;charset=utf-8,');--icon-abstract:url('data:image/svg+xml;charset=utf-8,');--icon-info:url('data:image/svg+xml;charset=utf-8,');--icon-flame:url('data:image/svg+xml;charset=utf-8,');--icon-question:url('data:image/svg+xml;charset=utf-8,');--icon-warning:url('data:image/svg+xml;charset=utf-8,');--icon-failure:url('data:image/svg+xml;charset=utf-8,');--icon-spark:url('data:image/svg+xml;charset=utf-8,');--color-admonition-title--caution:#ff9100;--color-admonition-title-background--caution:rgba(255,145,0,.2);--color-admonition-title--warning:#ff9100;--color-admonition-title-background--warning:rgba(255,145,0,.2);--color-admonition-title--danger:#ff5252;--color-admonition-title-background--danger:rgba(255,82,82,.2);--color-admonition-title--attention:#ff5252;--color-admonition-title-background--attention:rgba(255,82,82,.2);--color-admonition-title--error:#ff5252;--color-admonition-title-background--error:rgba(255,82,82,.2);--color-admonition-title--hint:#00c852;--color-admonition-title-background--hint:rgba(0,200,82,.2);--color-admonition-title--tip:#00c852;--color-admonition-title-background--tip:rgba(0,200,82,.2);--color-admonition-title--important:#00bfa5;--color-admonition-title-background--important:rgba(0,191,165,.2);--color-admonition-title--note:#00b0ff;--color-admonition-title-background--note:rgba(0,176,255,.2);--color-admonition-title--seealso:#448aff;--color-admonition-title-background--seealso:rgba(68,138,255,.2);--color-admonition-title--admonition-todo:grey;--color-admonition-title-background--admonition-todo:hsla(0,0%,50%,.2);--color-admonition-title:#651fff;--color-admonition-title-background:rgba(101,31,255,.2);--icon-admonition-default:var(--icon-abstract);--color-topic-title:#14b8a6;--color-topic-title-background:rgba(20,184,166,.2);--icon-topic-default:var(--icon-pencil);--color-problematic:#b30000;--color-foreground-primary:#000;--color-foreground-secondary:#5a5c63;--color-foreground-muted:#6b6f76;--color-foreground-border:#878787;--color-background-primary:#fff;--color-background-secondary:#f8f9fb;--color-background-hover:#efeff4;--color-background-hover--transparent:#efeff400;--color-background-border:#eeebee;--color-background-item:#ccc;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#0a4bff;--color-brand-content:#2757dd;--color-brand-visited:#872ee0;--color-api-background:var(--color-background-hover--transparent);--color-api-background-hover:var(--color-background-hover);--color-api-overall:var(--color-foreground-secondary);--color-api-name:var(--color-problematic);--color-api-pre-name:var(--color-problematic);--color-api-paren:var(--color-foreground-secondary);--color-api-keyword:var(--color-foreground-primary);--color-api-added:#21632c;--color-api-added-border:#38a84d;--color-api-changed:#046172;--color-api-changed-border:#06a1bc;--color-api-deprecated:#605706;--color-api-deprecated-border:#f0d90f;--color-api-removed:#b30000;--color-api-removed-border:#ff5c5c;--color-highlight-on-target:#ffc;--color-inline-code-background:var(--color-background-secondary);--color-highlighted-background:#def;--color-highlighted-text:var(--color-foreground-primary);--color-guilabel-background:#ddeeff80;--color-guilabel-border:#bedaf580;--color-guilabel-text:var(--color-foreground-primary);--color-admonition-background:transparent;--color-table-header-background:var(--color-background-secondary);--color-table-border:var(--color-background-border);--color-card-border:var(--color-background-secondary);--color-card-background:transparent;--color-card-marginals-background:var(--color-background-secondary);--color-header-background:var(--color-background-primary);--color-header-border:var(--color-background-border);--color-header-text:var(--color-foreground-primary);--color-sidebar-background:var(--color-background-secondary);--color-sidebar-background-border:var(--color-background-border);--color-sidebar-brand-text:var(--color-foreground-primary);--color-sidebar-caption-text:var(--color-foreground-muted);--color-sidebar-link-text:var(--color-foreground-secondary);--color-sidebar-link-text--top-level:var(--color-brand-primary);--color-sidebar-item-background:var(--color-sidebar-background);--color-sidebar-item-background--current:var( --color-sidebar-item-background );--color-sidebar-item-background--hover:linear-gradient(90deg,var(--color-background-hover--transparent) 0%,var(--color-background-hover) var(--sidebar-item-spacing-horizontal),var(--color-background-hover) 100%);--color-sidebar-item-expander-background:transparent;--color-sidebar-item-expander-background--hover:var( --color-background-hover );--color-sidebar-search-text:var(--color-foreground-primary);--color-sidebar-search-background:var(--color-background-secondary);--color-sidebar-search-background--focus:var(--color-background-primary);--color-sidebar-search-border:var(--color-background-border);--color-sidebar-search-icon:var(--color-foreground-muted);--color-toc-background:var(--color-background-primary);--color-toc-title-text:var(--color-foreground-muted);--color-toc-item-text:var(--color-foreground-secondary);--color-toc-item-text--hover:var(--color-foreground-primary);--color-toc-item-text--active:var(--color-brand-primary);--color-content-foreground:var(--color-foreground-primary);--color-content-background:transparent;--color-link:var(--color-brand-content);--color-link-underline:var(--color-background-border);--color-link--hover:var(--color-brand-content);--color-link-underline--hover:var(--color-foreground-border);--color-link--visited:var(--color-brand-visited);--color-link-underline--visited:var(--color-background-border);--color-link--visited--hover:var(--color-brand-visited);--color-link-underline--visited--hover:var(--color-foreground-border)}.only-light{display:block!important}html body .only-dark{display:none!important}@media not print{body[data-theme=dark]{--color-problematic:#ee5151;--color-foreground-primary:#cfd0d0;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#3d94ff;--color-brand-content:#5ca5ff;--color-brand-visited:#b27aeb;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-api-added:#3db854;--color-api-added-border:#267334;--color-api-changed:#09b0ce;--color-api-changed-border:#056d80;--color-api-deprecated:#b1a10b;--color-api-deprecated-border:#6e6407;--color-api-removed:#ff7575;--color-api-removed-border:#b03b3b;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body[data-theme=dark] .only-light{display:none!important}body[data-theme=dark] .only-dark{display:block!important}@media(prefers-color-scheme:dark){body:not([data-theme=light]){--color-problematic:#ee5151;--color-foreground-primary:#cfd0d0;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#3d94ff;--color-brand-content:#5ca5ff;--color-brand-visited:#b27aeb;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-api-added:#3db854;--color-api-added-border:#267334;--color-api-changed:#09b0ce;--color-api-changed-border:#056d80;--color-api-deprecated:#b1a10b;--color-api-deprecated-border:#6e6407;--color-api-removed:#ff7575;--color-api-removed-border:#b03b3b;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body:not([data-theme=light]) .only-light{display:none!important}body:not([data-theme=light]) .only-dark{display:block!important}}}body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto-light{display:block}@media(prefers-color-scheme:dark){body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto-dark{display:block}body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto-light{display:none}}body[data-theme=dark] .theme-toggle svg.theme-icon-when-dark,body[data-theme=light] .theme-toggle svg.theme-icon-when-light{display:block}body{font-family:var(--font-stack)}code,kbd,pre,samp{font-family:var(--font-stack--monospace)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}article{line-height:1.5}h1,h2,h3,h4,h5,h6{border-radius:.5rem;font-family:var(--font-stack--headings);font-weight:700;line-height:1.25;margin:.5rem -.5rem;padding-left:.5rem;padding-right:.5rem}h1+p,h2+p,h3+p,h4+p,h5+p,h6+p{margin-top:0}h1{font-size:2.5em;margin-bottom:1rem}h1,h2{margin-top:1.75rem}h2{font-size:2em}h3{font-size:1.5em}h4{font-size:1.25em}h5{font-size:1.125em}h6{font-size:1em}small{font-size:80%;opacity:75%}p{margin-bottom:.75rem;margin-top:.5rem}hr.docutils{background-color:var(--color-background-border);border:0;height:1px;margin:2rem 0;padding:0}.centered{text-align:center}a{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link-underline)}a:visited{color:var(--color-link--visited);text-decoration-color:var(--color-link-underline--visited)}a:visited:hover{color:var(--color-link--visited--hover);text-decoration-color:var(--color-link-underline--visited--hover)}a:hover{color:var(--color-link--hover);text-decoration-color:var(--color-link-underline--hover)}a.muted-link{color:inherit}a.muted-link:hover{color:var(--color-link--hover);text-decoration-color:var(--color-link-underline--hover)}a.muted-link:hover:visited{color:var(--color-link--visited--hover);text-decoration-color:var(--color-link-underline--visited--hover)}html{overflow-x:hidden;overflow-y:scroll;scroll-behavior:smooth}.sidebar-scroll,.toc-scroll,article[role=main] *{scrollbar-color:var(--color-foreground-border) transparent;scrollbar-width:thin}.sidebar-scroll::-webkit-scrollbar,.toc-scroll::-webkit-scrollbar,article[role=main] ::-webkit-scrollbar{height:.25rem;width:.25rem}.sidebar-scroll::-webkit-scrollbar-thumb,.toc-scroll::-webkit-scrollbar-thumb,article[role=main] ::-webkit-scrollbar-thumb{background-color:var(--color-foreground-border);border-radius:.125rem}body,html{height:100%}.skip-to-content,body,html{background:var(--color-background-primary);color:var(--color-foreground-primary)}.skip-to-content{border-radius:1rem;left:.25rem;padding:1rem;position:fixed;top:.25rem;transform:translateY(-200%);transition:transform .3s ease-in-out;z-index:40}.skip-to-content:focus-within{transform:translateY(0)}article{background:var(--color-content-background);color:var(--color-content-foreground);overflow-wrap:break-word}.page{display:flex;min-height:100%}.mobile-header{background-color:var(--color-header-background);border-bottom:1px solid var(--color-header-border);color:var(--color-header-text);display:none;height:var(--header-height);width:100%;z-index:10}.mobile-header.scrolled{border-bottom:none;box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2)}.mobile-header .header-center a{color:var(--color-header-text);text-decoration:none}.main{display:flex;flex:1}.sidebar-drawer{background:var(--color-sidebar-background);border-right:1px solid var(--color-sidebar-background-border);box-sizing:border-box;display:flex;justify-content:flex-end;min-width:15em;width:calc(50% - 26em)}.sidebar-container,.toc-drawer{box-sizing:border-box;width:15em}.toc-drawer{background:var(--color-toc-background);padding-right:1rem}.sidebar-sticky,.toc-sticky{display:flex;flex-direction:column;height:min(100%,100vh);height:100vh;position:sticky;top:0}.sidebar-scroll,.toc-scroll{flex-grow:1;flex-shrink:1;overflow:auto;scroll-behavior:smooth}.content{display:flex;flex-direction:column;justify-content:space-between;padding:0 3em;width:46em}.icon{display:inline-block;height:1rem;width:1rem}.icon svg{height:100%;width:100%}.announcement{align-items:center;background-color:var(--color-announcement-background);color:var(--color-announcement-text);display:flex;height:var(--header-height);overflow-x:auto}.announcement+.page{min-height:calc(100% - var(--header-height))}.announcement-content{box-sizing:border-box;min-width:100%;padding:.5rem;text-align:center;white-space:nowrap}.announcement-content a{color:var(--color-announcement-text);text-decoration-color:var(--color-announcement-text)}.announcement-content a:hover{color:var(--color-announcement-text);text-decoration-color:var(--color-link--hover)}.no-js .theme-toggle-container{display:none}.theme-toggle-container{display:flex}.theme-toggle{background:transparent;border:none;cursor:pointer;display:flex;padding:0}.theme-toggle svg{color:var(--color-foreground-primary);display:none;height:1.25rem;width:1.25rem}.theme-toggle-header{align-items:center;display:flex;justify-content:center}.nav-overlay-icon,.toc-overlay-icon{cursor:pointer;display:none}.nav-overlay-icon .icon,.toc-overlay-icon .icon{color:var(--color-foreground-secondary);height:1.5rem;width:1.5rem}.nav-overlay-icon,.toc-header-icon{align-items:center;justify-content:center}.toc-content-icon{height:1.5rem;width:1.5rem}.content-icon-container{display:flex;float:right;gap:.5rem;margin-bottom:1rem;margin-left:1rem;margin-top:1.5rem}.content-icon-container .edit-this-page svg,.content-icon-container .view-this-page svg{color:inherit;height:1.25rem;width:1.25rem}.sidebar-toggle{display:none;position:absolute}.sidebar-toggle[name=__toc]{left:20px}.sidebar-toggle:checked{left:40px}.overlay{background-color:rgba(0,0,0,.54);height:0;opacity:0;position:fixed;top:0;transition:width 0ms,height 0ms,opacity .25s ease-out;width:0}.sidebar-overlay{z-index:20}.toc-overlay{z-index:40}.sidebar-drawer{transition:left .25s ease-in-out;z-index:30}.toc-drawer{transition:right .25s ease-in-out;z-index:50}#__navigation:checked~.sidebar-overlay{height:100%;opacity:1;width:100%}#__navigation:checked~.page .sidebar-drawer{left:0;top:0}#__toc:checked~.toc-overlay{height:100%;opacity:1;width:100%}#__toc:checked~.page .toc-drawer{right:0;top:0}.back-to-top{background:var(--color-background-primary);border-radius:1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 1px 0 hsla(220,9%,46%,.502);display:none;font-size:.8125rem;left:0;margin-left:50%;padding:.5rem .75rem .5rem .5rem;position:fixed;text-decoration:none;top:1rem;transform:translateX(-50%);z-index:10}.back-to-top svg{height:1rem;width:1rem;fill:currentColor;display:inline-block}.back-to-top span{margin-left:.25rem}.show-back-to-top .back-to-top{align-items:center;display:flex}@media(min-width:97em){html{font-size:110%}}@media(max-width:82em){.toc-content-icon{display:flex}.toc-drawer{border-left:1px solid var(--color-background-muted);height:100vh;position:fixed;right:-15em;top:0}.toc-tree{border-left:none;font-size:var(--toc-font-size--mobile)}.sidebar-drawer{width:calc(50% - 18.5em)}}@media(max-width:67em){.nav-overlay-icon{display:flex}.sidebar-drawer{height:100vh;left:-15em;position:fixed;top:0;width:15em}.theme-toggle-header,.toc-header-icon{display:flex}.theme-toggle-content,.toc-content-icon{display:none}.mobile-header{align-items:center;display:flex;justify-content:space-between;position:sticky;top:0}.mobile-header .header-left,.mobile-header .header-right{display:flex;height:var(--header-height);padding:0 var(--header-padding)}.mobile-header .header-left label,.mobile-header .header-right label{height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.nav-overlay-icon .icon,.theme-toggle svg{height:1.5rem;width:1.5rem}:target{scroll-margin-top:calc(var(--header-height) + 2.5rem)}.back-to-top{top:calc(var(--header-height) + .5rem)}.page{flex-direction:column;justify-content:center}.content{margin-left:auto;margin-right:auto}}@media(max-width:52em){.content{overflow-x:auto;width:100%}}@media(max-width:46em){.content{padding:0 1em}article aside.sidebar{float:none;margin:1rem 0;width:100%}}.admonition,.topic{background:var(--color-admonition-background);border-radius:.2rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1);font-size:var(--admonition-font-size);margin:1rem auto;overflow:hidden;padding:0 .5rem .5rem;page-break-inside:avoid}.admonition>:nth-child(2),.topic>:nth-child(2){margin-top:0}.admonition>:last-child,.topic>:last-child{margin-bottom:0}.admonition p.admonition-title,p.topic-title{font-size:var(--admonition-title-font-size);font-weight:500;line-height:1.3;margin:0 -.5rem .5rem;padding:.4rem .5rem .4rem 2rem;position:relative}.admonition p.admonition-title:before,p.topic-title:before{content:"";height:1rem;left:.5rem;position:absolute;width:1rem}p.admonition-title{background-color:var(--color-admonition-title-background)}p.admonition-title:before{background-color:var(--color-admonition-title);-webkit-mask-image:var(--icon-admonition-default);mask-image:var(--icon-admonition-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}p.topic-title{background-color:var(--color-topic-title-background)}p.topic-title:before{background-color:var(--color-topic-title);-webkit-mask-image:var(--icon-topic-default);mask-image:var(--icon-topic-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.admonition{border-left:.2rem solid var(--color-admonition-title)}.admonition.caution{border-left-color:var(--color-admonition-title--caution)}.admonition.caution>.admonition-title{background-color:var(--color-admonition-title-background--caution)}.admonition.caution>.admonition-title:before{background-color:var(--color-admonition-title--caution);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.warning{border-left-color:var(--color-admonition-title--warning)}.admonition.warning>.admonition-title{background-color:var(--color-admonition-title-background--warning)}.admonition.warning>.admonition-title:before{background-color:var(--color-admonition-title--warning);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.danger{border-left-color:var(--color-admonition-title--danger)}.admonition.danger>.admonition-title{background-color:var(--color-admonition-title-background--danger)}.admonition.danger>.admonition-title:before{background-color:var(--color-admonition-title--danger);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.attention{border-left-color:var(--color-admonition-title--attention)}.admonition.attention>.admonition-title{background-color:var(--color-admonition-title-background--attention)}.admonition.attention>.admonition-title:before{background-color:var(--color-admonition-title--attention);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.error{border-left-color:var(--color-admonition-title--error)}.admonition.error>.admonition-title{background-color:var(--color-admonition-title-background--error)}.admonition.error>.admonition-title:before{background-color:var(--color-admonition-title--error);-webkit-mask-image:var(--icon-failure);mask-image:var(--icon-failure)}.admonition.hint{border-left-color:var(--color-admonition-title--hint)}.admonition.hint>.admonition-title{background-color:var(--color-admonition-title-background--hint)}.admonition.hint>.admonition-title:before{background-color:var(--color-admonition-title--hint);-webkit-mask-image:var(--icon-question);mask-image:var(--icon-question)}.admonition.tip{border-left-color:var(--color-admonition-title--tip)}.admonition.tip>.admonition-title{background-color:var(--color-admonition-title-background--tip)}.admonition.tip>.admonition-title:before{background-color:var(--color-admonition-title--tip);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.important{border-left-color:var(--color-admonition-title--important)}.admonition.important>.admonition-title{background-color:var(--color-admonition-title-background--important)}.admonition.important>.admonition-title:before{background-color:var(--color-admonition-title--important);-webkit-mask-image:var(--icon-flame);mask-image:var(--icon-flame)}.admonition.note{border-left-color:var(--color-admonition-title--note)}.admonition.note>.admonition-title{background-color:var(--color-admonition-title-background--note)}.admonition.note>.admonition-title:before{background-color:var(--color-admonition-title--note);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition.seealso{border-left-color:var(--color-admonition-title--seealso)}.admonition.seealso>.admonition-title{background-color:var(--color-admonition-title-background--seealso)}.admonition.seealso>.admonition-title:before{background-color:var(--color-admonition-title--seealso);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.admonition-todo{border-left-color:var(--color-admonition-title--admonition-todo)}.admonition.admonition-todo>.admonition-title{background-color:var(--color-admonition-title-background--admonition-todo)}.admonition.admonition-todo>.admonition-title:before{background-color:var(--color-admonition-title--admonition-todo);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition-todo>.admonition-title{text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd{margin-left:2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:first-child{margin-top:.125rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list,dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:last-child{margin-bottom:.75rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list>dt{font-size:var(--font-size--small);text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd:empty{margin-bottom:.5rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul{margin-left:-1.2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p:nth-child(2){margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p+p:last-child:empty{margin-bottom:0;margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt{color:var(--color-api-overall)}.sig:not(.sig-inline){background:var(--color-api-background);border-radius:.25rem;font-family:var(--font-stack--monospace);font-size:var(--api-font-size);font-weight:700;margin-left:-.25rem;margin-right:-.25rem;padding:.25rem .5rem .25rem 3em;text-indent:-2.5em;transition:background .1s ease-out}.sig:not(.sig-inline):hover{background:var(--color-api-background-hover)}.sig:not(.sig-inline) a.reference .viewcode-link{font-weight:400;width:4.25rem}em.property{font-style:normal}em.property:first-child{color:var(--color-api-keyword)}.sig-name{color:var(--color-api-name)}.sig-prename{color:var(--color-api-pre-name);font-weight:400}.sig-paren{color:var(--color-api-paren)}.sig-param{font-style:normal}div.deprecated,div.versionadded,div.versionchanged,div.versionremoved{border-left:.1875rem solid;border-radius:.125rem;padding-left:.75rem}div.deprecated p,div.versionadded p,div.versionchanged p,div.versionremoved p{margin-bottom:.125rem;margin-top:.125rem}div.versionadded{border-color:var(--color-api-added-border)}div.versionadded .versionmodified{color:var(--color-api-added)}div.versionchanged{border-color:var(--color-api-changed-border)}div.versionchanged .versionmodified{color:var(--color-api-changed)}div.deprecated{border-color:var(--color-api-deprecated-border)}div.deprecated .versionmodified{color:var(--color-api-deprecated)}div.versionremoved{border-color:var(--color-api-removed-border)}div.versionremoved .versionmodified{color:var(--color-api-removed)}.viewcode-back,.viewcode-link{float:right;text-align:right}.line-block{margin-bottom:.75rem;margin-top:.5rem}.line-block .line-block{margin-bottom:0;margin-top:0;padding-left:1rem}.code-block-caption,article p.caption,table>caption{font-size:var(--font-size--small);text-align:center}.toctree-wrapper.compound .caption,.toctree-wrapper.compound :not(.caption)>.caption-text{font-size:var(--font-size--small);margin-bottom:0;text-align:initial;text-transform:uppercase}.toctree-wrapper.compound>ul{margin-bottom:0;margin-top:0}.sig-inline,code.literal{background:var(--color-inline-code-background);border-radius:.2em;font-size:var(--font-size--small--2);padding:.1em .2em}pre.literal-block .sig-inline,pre.literal-block code.literal{font-size:inherit;padding:0}p .sig-inline,p code.literal{border:1px solid var(--color-background-border)}.sig-inline{font-family:var(--font-stack--monospace)}div[class*=" highlight-"],div[class^=highlight-]{display:flex;margin:1em 0}div[class*=" highlight-"] .table-wrapper,div[class^=highlight-] .table-wrapper,pre{margin:0;padding:0}pre{overflow:auto}article[role=main] .highlight pre{line-height:1.5}.highlight pre,pre.literal-block{font-size:var(--code-font-size);padding:.625rem .875rem}pre.literal-block{background-color:var(--color-code-background);border-radius:.2rem;color:var(--color-code-foreground);margin-bottom:1rem;margin-top:1rem}.highlight{border-radius:.2rem;width:100%}.highlight .gp,.highlight span.linenos{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.highlight .hll{display:block;margin-left:-.875rem;margin-right:-.875rem;padding-left:.875rem;padding-right:.875rem}.code-block-caption{background-color:var(--color-code-background);border-bottom:1px solid;border-radius:.25rem;border-bottom-left-radius:0;border-bottom-right-radius:0;border-color:var(--color-background-border);color:var(--color-code-foreground);display:flex;font-weight:300;padding:.625rem .875rem}.code-block-caption+div[class]{margin-top:0}.code-block-caption+div[class] pre{border-top-left-radius:0;border-top-right-radius:0}.highlighttable{display:block;width:100%}.highlighttable tbody{display:block}.highlighttable tr{display:flex}.highlighttable td.linenos{background-color:var(--color-code-background);border-bottom-left-radius:.2rem;border-top-left-radius:.2rem;color:var(--color-code-foreground);padding:.625rem 0 .625rem .875rem}.highlighttable .linenodiv{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;font-size:var(--code-font-size);padding-right:.875rem}.highlighttable td.code{display:block;flex:1;overflow:hidden;padding:0}.highlighttable td.code .highlight{border-bottom-left-radius:0;border-top-left-radius:0}.highlight span.linenos{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;display:inline-block;margin-right:.875rem;padding-left:0;padding-right:.875rem}.footnote-reference{font-size:var(--font-size--small--4);vertical-align:super}dl.footnote.brackets{color:var(--color-foreground-secondary);display:grid;font-size:var(--font-size--small);grid-template-columns:max-content auto}dl.footnote.brackets dt{margin:0}dl.footnote.brackets dt>.fn-backref{margin-left:.25rem}dl.footnote.brackets dt:after{content:":"}dl.footnote.brackets dt .brackets:before{content:"["}dl.footnote.brackets dt .brackets:after{content:"]"}dl.footnote.brackets dd{margin:0;padding:0 1rem}aside.footnote{color:var(--color-foreground-secondary);font-size:var(--font-size--small)}aside.footnote>span,div.citation>span{float:left;font-weight:500;padding-right:.25rem}aside.footnote>:not(span),div.citation>p{margin-left:2rem}img{box-sizing:border-box;height:auto;max-width:100%}article .figure,article figure{border-radius:.2rem;margin:0}article .figure :last-child,article figure :last-child{margin-bottom:0}article .align-left{clear:left;float:left;margin:0 1rem 1rem}article .align-right{clear:right;float:right;margin:0 1rem 1rem}article .align-center,article .align-default{display:block;margin-left:auto;margin-right:auto;text-align:center}article table.align-default{display:table;text-align:initial}.domainindex-jumpbox,.genindex-jumpbox{border-bottom:1px solid var(--color-background-border);border-top:1px solid var(--color-background-border);padding:.25rem}.domainindex-section h2,.genindex-section h2{margin-bottom:.5rem;margin-top:.75rem}.domainindex-section ul,.genindex-section ul{margin-bottom:0;margin-top:0}ol,ul{margin-bottom:1rem;margin-top:1rem;padding-left:1.2rem}ol li>p:first-child,ul li>p:first-child{margin-bottom:.25rem;margin-top:.25rem}ol li>p:last-child,ul li>p:last-child{margin-top:.25rem}ol li>ol,ol li>ul,ul li>ol,ul li>ul{margin-bottom:.5rem;margin-top:.5rem}ol.arabic{list-style:decimal}ol.loweralpha{list-style:lower-alpha}ol.upperalpha{list-style:upper-alpha}ol.lowerroman{list-style:lower-roman}ol.upperroman{list-style:upper-roman}.simple li>ol,.simple li>ul,.toctree-wrapper li>ol,.toctree-wrapper li>ul{margin-bottom:0;margin-top:0}.field-list dt,.option-list dt,dl.footnote dt,dl.glossary dt,dl.simple dt,dl:not([class]) dt{font-weight:500;margin-top:.25rem}.field-list dt+dt,.option-list dt+dt,dl.footnote dt+dt,dl.glossary dt+dt,dl.simple dt+dt,dl:not([class]) dt+dt{margin-top:0}.field-list dt .classifier:before,.option-list dt .classifier:before,dl.footnote dt .classifier:before,dl.glossary dt .classifier:before,dl.simple dt .classifier:before,dl:not([class]) dt .classifier:before{content:":";margin-left:.2rem;margin-right:.2rem}.field-list dd ul,.field-list dd>p:first-child,.option-list dd ul,.option-list dd>p:first-child,dl.footnote dd ul,dl.footnote dd>p:first-child,dl.glossary dd ul,dl.glossary dd>p:first-child,dl.simple dd ul,dl.simple dd>p:first-child,dl:not([class]) dd ul,dl:not([class]) dd>p:first-child{margin-top:.125rem}.field-list dd ul,.option-list dd ul,dl.footnote dd ul,dl.glossary dd ul,dl.simple dd ul,dl:not([class]) dd ul{margin-bottom:.125rem}.math-wrapper{overflow-x:auto;width:100%}div.math{position:relative;text-align:center}div.math .headerlink,div.math:focus .headerlink{display:none}div.math:hover .headerlink{display:inline-block}div.math span.eqno{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);z-index:1}abbr[title]{cursor:help}.problematic{color:var(--color-problematic)}kbd:not(.compound){background-color:var(--color-background-secondary);border:1px solid var(--color-foreground-border);border-radius:.2rem;box-shadow:0 .0625rem 0 rgba(0,0,0,.2),inset 0 0 0 .125rem var(--color-background-primary);color:var(--color-foreground-primary);display:inline-block;font-size:var(--font-size--small--3);margin:0 .2rem;padding:0 .2rem;vertical-align:text-bottom}blockquote{background:var(--color-background-secondary);border-left:4px solid var(--color-background-border);margin-left:0;margin-right:0;padding:.5rem 1rem}blockquote .attribution{font-weight:600;text-align:right}blockquote.highlights,blockquote.pull-quote{font-size:1.25em}blockquote.epigraph,blockquote.pull-quote{border-left-width:0;border-radius:.5rem}blockquote.highlights{background:transparent;border-left-width:0}p .reference img{vertical-align:middle}p.rubric{font-size:1.125em;font-weight:700;line-height:1.25}dd p.rubric{font-size:var(--font-size--small);font-weight:inherit;line-height:inherit;text-transform:uppercase}article .sidebar{background-color:var(--color-background-secondary);border:1px solid var(--color-background-border);border-radius:.2rem;clear:right;float:right;margin-left:1rem;margin-right:0;width:30%}article .sidebar>*{padding-left:1rem;padding-right:1rem}article .sidebar>ol,article .sidebar>ul{padding-left:2.2rem}article .sidebar .sidebar-title{border-bottom:1px solid var(--color-background-border);font-weight:500;margin:0;padding:.5rem 1rem}.table-wrapper{margin-bottom:.5rem;margin-top:1rem;overflow-x:auto;padding:.2rem .2rem .75rem;width:100%}table.docutils{border-collapse:collapse;border-radius:.2rem;border-spacing:0;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)}table.docutils th{background:var(--color-table-header-background)}table.docutils td,table.docutils th{border-bottom:1px solid var(--color-table-border);border-left:1px solid var(--color-table-border);border-right:1px solid var(--color-table-border);padding:0 .25rem}table.docutils td p,table.docutils th p{margin:.25rem}table.docutils td:first-child,table.docutils th:first-child{border-left:none}table.docutils td:last-child,table.docutils th:last-child{border-right:none}table.docutils td.text-left,table.docutils th.text-left{text-align:left}table.docutils td.text-right,table.docutils th.text-right{text-align:right}table.docutils td.text-center,table.docutils th.text-center{text-align:center}:target{scroll-margin-top:2.5rem}@media(max-width:67em){:target{scroll-margin-top:calc(2.5rem + var(--header-height))}section>span:target{scroll-margin-top:calc(2.8rem + var(--header-height))}}.headerlink{font-weight:100;-webkit-user-select:none;-moz-user-select:none;user-select:none}.code-block-caption>.headerlink,dl dt>.headerlink,figcaption p>.headerlink,h1>.headerlink,h2>.headerlink,h3>.headerlink,h4>.headerlink,h5>.headerlink,h6>.headerlink,p.caption>.headerlink,table>caption>.headerlink{margin-left:.5rem;visibility:hidden}.code-block-caption:hover>.headerlink,dl dt:hover>.headerlink,figcaption p:hover>.headerlink,h1:hover>.headerlink,h2:hover>.headerlink,h3:hover>.headerlink,h4:hover>.headerlink,h5:hover>.headerlink,h6:hover>.headerlink,p.caption:hover>.headerlink,table>caption:hover>.headerlink{visibility:visible}.code-block-caption>.toc-backref,dl dt>.toc-backref,figcaption p>.toc-backref,h1>.toc-backref,h2>.toc-backref,h3>.toc-backref,h4>.toc-backref,h5>.toc-backref,h6>.toc-backref,p.caption>.toc-backref,table>caption>.toc-backref{color:inherit;text-decoration-line:none}figure:hover>figcaption>p>.headerlink,table:hover>caption>.headerlink{visibility:visible}:target>h1:first-of-type,:target>h2:first-of-type,:target>h3:first-of-type,:target>h4:first-of-type,:target>h5:first-of-type,:target>h6:first-of-type,span:target~h1:first-of-type,span:target~h2:first-of-type,span:target~h3:first-of-type,span:target~h4:first-of-type,span:target~h5:first-of-type,span:target~h6:first-of-type{background-color:var(--color-highlight-on-target)}:target>h1:first-of-type code.literal,:target>h2:first-of-type code.literal,:target>h3:first-of-type code.literal,:target>h4:first-of-type code.literal,:target>h5:first-of-type code.literal,:target>h6:first-of-type code.literal,span:target~h1:first-of-type code.literal,span:target~h2:first-of-type code.literal,span:target~h3:first-of-type code.literal,span:target~h4:first-of-type code.literal,span:target~h5:first-of-type code.literal,span:target~h6:first-of-type code.literal{background-color:transparent}.literal-block-wrapper:target .code-block-caption,.this-will-duplicate-information-and-it-is-still-useful-here li :target,figure:target,table:target>caption{background-color:var(--color-highlight-on-target)}dt:target{background-color:var(--color-highlight-on-target)!important}.footnote-reference:target,.footnote>dt:target+dd{background-color:var(--color-highlight-on-target)}.guilabel{background-color:var(--color-guilabel-background);border:1px solid var(--color-guilabel-border);border-radius:.5em;color:var(--color-guilabel-text);font-size:.9em;padding:0 .3em}footer{display:flex;flex-direction:column;font-size:var(--font-size--small);margin-top:2rem}.bottom-of-page{align-items:center;border-top:1px solid var(--color-background-border);color:var(--color-foreground-secondary);display:flex;justify-content:space-between;line-height:1.5;margin-top:1rem;padding-bottom:1rem;padding-top:1rem}@media(max-width:46em){.bottom-of-page{flex-direction:column-reverse;gap:.25rem;text-align:center}}.bottom-of-page .left-details{font-size:var(--font-size--small)}.bottom-of-page .right-details{display:flex;flex-direction:column;gap:.25rem;text-align:right}.bottom-of-page .icons{display:flex;font-size:1rem;gap:.25rem;justify-content:flex-end}.bottom-of-page .icons a{text-decoration:none}.bottom-of-page .icons img,.bottom-of-page .icons svg{font-size:1.125rem;height:1em;width:1em}.related-pages a{align-items:center;display:flex;text-decoration:none}.related-pages a:hover .page-info .title{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link-underline)}.related-pages a svg.furo-related-icon,.related-pages a svg.furo-related-icon>use{color:var(--color-foreground-border);flex-shrink:0;height:.75rem;margin:0 .5rem;width:.75rem}.related-pages a.next-page{clear:right;float:right;max-width:50%;text-align:right}.related-pages a.prev-page{clear:left;float:left;max-width:50%}.related-pages a.prev-page svg{transform:rotate(180deg)}.page-info{display:flex;flex-direction:column;overflow-wrap:anywhere}.next-page .page-info{align-items:flex-end}.page-info .context{align-items:center;color:var(--color-foreground-muted);display:flex;font-size:var(--font-size--small);padding-bottom:.1rem;text-decoration:none}ul.search{list-style:none;padding-left:0}ul.search li{border-bottom:1px solid var(--color-background-border);padding:1rem 0}[role=main] .highlighted{background-color:var(--color-highlighted-background);color:var(--color-highlighted-text)}.sidebar-brand{display:flex;flex-direction:column;flex-shrink:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none}.sidebar-brand-text{color:var(--color-sidebar-brand-text);font-size:1.5rem;overflow-wrap:break-word}.sidebar-brand-text,.sidebar-logo-container{margin:var(--sidebar-item-spacing-vertical) 0}.sidebar-logo{display:block;margin:0 auto;max-width:100%}.sidebar-search-container{align-items:center;background:var(--color-sidebar-search-background);display:flex;margin-top:var(--sidebar-search-space-above);position:relative}.sidebar-search-container:focus-within,.sidebar-search-container:hover{background:var(--color-sidebar-search-background--focus)}.sidebar-search-container:before{background-color:var(--color-sidebar-search-icon);content:"";height:var(--sidebar-search-icon-size);left:var(--sidebar-item-spacing-horizontal);-webkit-mask-image:var(--icon-search);mask-image:var(--icon-search);position:absolute;width:var(--sidebar-search-icon-size)}.sidebar-search{background:transparent;border:none;border-bottom:1px solid var(--color-sidebar-search-border);border-top:1px solid var(--color-sidebar-search-border);box-sizing:border-box;color:var(--color-sidebar-search-foreground);padding:var(--sidebar-search-input-spacing-vertical) var(--sidebar-search-input-spacing-horizontal) var(--sidebar-search-input-spacing-vertical) calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size));width:100%;z-index:10}.sidebar-search:focus{outline:none}.sidebar-search::-moz-placeholder{font-size:var(--sidebar-search-input-font-size)}.sidebar-search::placeholder{font-size:var(--sidebar-search-input-font-size)}#searchbox .highlight-link{margin:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0;text-align:center}#searchbox .highlight-link a{color:var(--color-sidebar-search-icon);font-size:var(--font-size--small--2)}.sidebar-tree{font-size:var(--sidebar-item-font-size);margin-bottom:var(--sidebar-item-spacing-vertical);margin-top:var(--sidebar-tree-space-above)}.sidebar-tree ul{display:flex;flex-direction:column;list-style:none;margin-bottom:0;margin-top:0;padding:0}.sidebar-tree li{margin:0;position:relative}.sidebar-tree li>ul{margin-left:var(--sidebar-item-spacing-horizontal)}.sidebar-tree .icon,.sidebar-tree .reference{color:var(--color-sidebar-link-text)}.sidebar-tree .reference{box-sizing:border-box;display:inline-block;height:100%;line-height:var(--sidebar-item-line-height);overflow-wrap:anywhere;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none;width:100%}.sidebar-tree .reference:hover{background:var(--color-sidebar-item-background--hover);color:var(--color-sidebar-link-text)}.sidebar-tree .reference.external:after{color:var(--color-sidebar-link-text);content:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23607D8B' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' viewBox='0 0 24 24'%3E%3Cpath stroke='none' d='M0 0h24v24H0z'/%3E%3Cpath d='M11 7H6a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2v-5M10 14 20 4M15 4h5v5'/%3E%3C/svg%3E");margin:0 .25rem;vertical-align:middle}.sidebar-tree .current-page>.reference{font-weight:700}.sidebar-tree label{align-items:center;cursor:pointer;display:flex;height:var(--sidebar-item-height);justify-content:center;position:absolute;right:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:var(--sidebar-expander-width)}.sidebar-tree .caption,.sidebar-tree :not(.caption)>.caption-text{color:var(--color-sidebar-caption-text);font-size:var(--sidebar-caption-font-size);font-weight:700;margin:var(--sidebar-caption-space-above) 0 0 0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-transform:uppercase}.sidebar-tree li.has-children>.reference{padding-right:var(--sidebar-expander-width)}.sidebar-tree .toctree-l1>.reference,.sidebar-tree .toctree-l1>label .icon{color:var(--color-sidebar-link-text--top-level)}.sidebar-tree label{background:var(--color-sidebar-item-expander-background)}.sidebar-tree label:hover{background:var(--color-sidebar-item-expander-background--hover)}.sidebar-tree .current>.reference{background:var(--color-sidebar-item-background--current)}.sidebar-tree .current>.reference:hover{background:var(--color-sidebar-item-background--hover)}.toctree-checkbox{display:none;position:absolute}.toctree-checkbox~ul{display:none}.toctree-checkbox~label .icon svg{transform:rotate(90deg)}.toctree-checkbox:checked~ul{display:block}.toctree-checkbox:checked~label .icon svg{transform:rotate(-90deg)}.toc-title-container{padding:var(--toc-title-padding);padding-top:var(--toc-spacing-vertical)}.toc-title{color:var(--color-toc-title-text);font-size:var(--toc-title-font-size);padding-left:var(--toc-spacing-horizontal);text-transform:uppercase}.no-toc{display:none}.toc-tree-container{padding-bottom:var(--toc-spacing-vertical)}.toc-tree{border-left:1px solid var(--color-background-border);font-size:var(--toc-font-size);line-height:1.3;padding-left:calc(var(--toc-spacing-horizontal) - var(--toc-item-spacing-horizontal))}.toc-tree>ul>li:first-child{padding-top:0}.toc-tree>ul>li:first-child>ul{padding-left:0}.toc-tree>ul>li:first-child>a{display:none}.toc-tree ul{list-style-type:none;margin-bottom:0;margin-top:0;padding-left:var(--toc-item-spacing-horizontal)}.toc-tree li{padding-top:var(--toc-item-spacing-vertical)}.toc-tree li.scroll-current>.reference{color:var(--color-toc-item-text--active);font-weight:700}.toc-tree a.reference{color:var(--color-toc-item-text);overflow-wrap:anywhere;text-decoration:none}.toc-scroll{max-height:100vh;overflow-y:scroll}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here){background:rgba(255,0,0,.25);color:var(--color-problematic)}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here):before{content:"ERROR: Adding a table of contents in Furo-based documentation is unnecessary, and does not work well with existing styling. Add a 'this-will-duplicate-information-and-it-is-still-useful-here' class, if you want an escape hatch."}.text-align\:left>p{text-align:left}.text-align\:center>p{text-align:center}.text-align\:right>p{text-align:right} /*# sourceMappingURL=furo.css.map*/ \ No newline at end of file diff --git a/docs/fr/_static/styles/furo.css.map b/docs/fr/_static/styles/furo.css.map index 6e02d0b1a..0ee3acbe1 100644 --- a/docs/fr/_static/styles/furo.css.map +++ b/docs/fr/_static/styles/furo.css.map @@ -1 +1 @@ -{"version":3,"file":"styles/furo.css","mappings":"AAAA,2EAA2E,CAU3E,KACE,gBAAiB,CACjB,6BACF,CASA,KACE,QACF,CAMA,KACE,aACF,CAOA,GACE,aAAc,CACd,cACF,CAUA,GACE,sBAAuB,CACvB,QAAS,CACT,gBACF,CAOA,IACE,+BAAiC,CACjC,aACF,CASA,EACE,4BACF,CAOA,YACE,kBAAmB,CACnB,yBAA0B,CAC1B,gCACF,CAMA,SAEE,kBACF,CAOA,cAGE,+BAAiC,CACjC,aACF,CAeA,QAEE,aAAc,CACd,aAAc,CACd,iBAAkB,CAClB,uBACF,CAEA,IACE,aACF,CAEA,IACE,SACF,CASA,IACE,iBACF,CAUA,sCAKE,mBAAoB,CACpB,cAAe,CACf,gBAAiB,CACjB,QACF,CAOA,aAEE,gBACF,CAOA,cAEE,mBACF,CAMA,gDAIE,yBACF,CAMA,wHAIE,iBAAkB,CAClB,SACF,CAMA,4GAIE,6BACF,CAMA,SACE,0BACF,CASA,OACE,qBAAsB,CACtB,aAAc,CACd,aAAc,CACd,cAAe,CACf,SAAU,CACV,kBACF,CAMA,SACE,uBACF,CAMA,SACE,aACF,CAOA,6BAEE,qBAAsB,CACtB,SACF,CAMA,kFAEE,WACF,CAOA,cACE,4BAA6B,CAC7B,mBACF,CAMA,yCACE,uBACF,CAOA,6BACE,yBAA0B,CAC1B,YACF,CASA,QACE,aACF,CAMA,QACE,iBACF,CAiBA,kBACE,YACF,CCvVA,aAcE,kEACE,uBAOF,WACE,iDAMF,gCACE,wBAEF,qCAEE,uBADA,uBACA,CAEF,SACE,wBAtBA,CCpBJ,iBAGE,qBAEA,sBACA,0BAFA,oBAHA,4BACA,oBAKA,6BAIA,2CAFA,mBACA,sCAFA,4BAGA,CAEF,gBACE,aCTF,KCGE,mHAEA,wGAEA,wCAAyC,CAEzC,wBAAyB,CACzB,wBAAyB,CACzB,4BAA6B,CAC7B,yBAA0B,CAC1B,2BAA4B,CAG5B,sDAAuD,CACvD,gDAAiD,CACjD,wDAAyD,CAGzD,0CAA2C,CAC3C,gDAAiD,CACjD,gDAAiD,CAKjD,gCAAiC,CACjC,sCAAuC,CAGvC,2CAA4C,CAG5C,uCAAwC,CCjCxC,+FAGA,uBAAwB,CAGxB,iCAAkC,CAClC,kCAAmC,CAEnC,+BAAgC,CAChC,sCAAuC,CACvC,sCAAuC,CACvC,qGAIA,mDAAoD,CAEpD,mCAAoC,CACpC,8CAA+C,CAC/C,gDAAiD,CACjD,kCAAmC,CACnC,6DAA8D,CAG9D,6BAA8B,CAC9B,6BAA8B,CAC9B,+BAAgC,CAChC,kCAAmC,CACnC,kCAAmC,CCPjC,+jBCYA,iqCAZF,iaCVA,8KAOA,4SAWA,4SAUA,0CACA,gEAGA,0CAGA,gEAGA,yCACA,+DAIA,4CACA,kEAGA,wCAUA,8DACA,uCAGA,4DACA,sCACA,2DAGA,4CACA,kEACA,uCAGA,6DACA,2GAGA,sHAEA,yFAEA,+CACA,+EAGA,4MAOA,gCACA,sHAIA,kCACA,uEACA,gEACA,4DACA,kEAGA,2DACA,sDACA,0CACA,8CACA,wGAGA,0BACA,iCAGA,+DACA,+BACA,sCACA,+DAEA,kGACA,oCACA,yDACA,sCL7HF,kCAEA,sDAIA,0CK2HE,kEAIA,oDACA,sDAGA,oCACA,oEAEA,0DACA,qDAIA,oDACA,6DAIA,iEAIA,2DAIA,2DAGA,4DACA,gEAIA,gEAEA,gFAEA,oNASA,qDLxKE,gFAGE,4DAIF,oEKkHF,yEAEA,6DAGA,0DAEA,uDACA,qDACA,wDAIA,6DAIA,yDACA,2DAIA,uCAGA,wCACA,sDAGA,+CAGA,6DAEA,iDACA,+DAEA,wDAEA,sEAMA,0DACA,sBACA,mEL9JI,wEAEA,iCACE,+BAMN,wEAGA,iCACE,kFAEA,uEAIF,gEACE,8BAGF,qEMvDA,sCAKA,wFAKA,iCAIA,0BAWA,iCACA,4BACA,mCAGA,+BAEA,sCACA,4BAEA,mCAEA,sCAKA,sDAIA,gCAEA,gEAQF,wCAME,sBACA,kCAKA,uBAEA,gEAIA,2BAIA,mCAEA,qCACA,iCAGE,+BACA,wEAEE,iCACA,kFAGF,6BACA,0CACF,kCAEE,8BACE,8BACA,qEAEE,sCACA,wFCjFN,iCAGF,2DAEE,4BACA,oCAGA,mIAGA,4HACE,gEAMJ,+CAGE,sBACA,yCAEF,uBAEE,sEAKA,gDACA,kEAGA,iFAGE,YAGF,EACA,4HAQF,mBACE,6BACA,mBACA,wCACA,wCACA,2CAIA,eAGA,mBAKE,mBAGA,CAJA,uCACA,iBAFF,gBACE,CAKE,mBACA,mBAGJ,oBAIF,+BAGE,kDACA,OADA,kBAGA,CAFA,gBAEA,mBACA,oBAEA,sCACA,OAGF,cAHE,WAGF,GAEE,oBACA,CAHF,gBAGE,CChHc,YDmHd,+CAIF,SAEE,CAPF,UACE,wBAMA,4BAEA,GAGA,uBACA,CAJA,yBAGA,CACA,iDAKA,2CAGA,2DAQA,iBACA,uCAGA,kEAKE,SAKJ,8BACE,yDACA,2BAEA,oBACA,8BAEA,yDAEE,4BAEJ,uCACE,CACA,iEAGA,CAEA,wCACE,uBACA,kDAEA,0DAEE,CAJF,oBAIE,0GASJ,aAEF,CAFE,YAEF,4HASE,+CACA,sBAGF,sBASE,4BAFF,0CAEE,CARA,qCAwBF,CAhBE,iBAEA,kBACE,aADF,4BACE,WAOF,2BAEF,qCAIA,CAbI,UAaJ,+BACE,uBAEA,SAGA,0CAGE,CANF,qCAGA,CAGE,2DACE,gBAKJ,+CAGF,CAEA,kDAME,CARF,8BAEA,CAQE,YAEA,CAlBI,2BAGJ,CAJI,UACA,CAcJ,UAIA,4GAIF,iCAGE,8BAIA,qBACA,mBACF,QACE,gBAOE,0CAGA,CATF,6DAME,CANF,sBASE,qCAKF,CAEE,cACA,CAHF,sBAGE,gCAEA,qBAOJ,wBACE,sCAIA,mBAEA,6BAKA,kCACA,CAHA,sBAEA,cAJA,eACA,MAIA,2FAIA,UACA,YACA,sBACE,8BAEA,CALF,aACA,WAIE,CACA,0BAEF,aACE,qBAEF,qCAgBA,kBACE,CAhBA,qDASA,qCAEJ,CAGI,YACF,CAJF,2BAGI,CAGA,eACE,CAAF,oBAEA,mEAEA,qBACA,eAGF,CAHE,cAIA,kBADF,kBACE,yBAEJ,oCAGI,qDAIA,+BAMF,oCAEA,+CAEA,gCAIA,YACE,yBAEA,qBACA,eAGA,uBAFA,WAEA,CAHA,cACA,CAEA,4BAIE,qCACA,cAFA,eADA,qBACA,cAEA,mDACE,CACA,oCACA,4EAEN,uCAMA,eACE,kDAIA,mBADF,sBACE,mBAIA,aACA,sCAGA,aADA,WACA,CAMA,UAFF,kBAEE,CAJJ,gBAEE,CAJE,iBAMA,yFAQA,aACA,eEpbJ,cACE,iBACA,YAEA,CAFA,iBAEA,+DAGA,mBAKA,gCAGA,CARA,SAIA,SACA,CALA,0EAIA,CAJA,OAQA,0CACE,UAGF,iDAGF,CAHE,UAGF,8CAEE,CAFF,UAEE,CACA,uCAEA,WACA,WAFA,UAEA,6CAIA,yCACA,WAGA,WAJA,UAIA,gDACE,aASF,0CACE,CAFF,mBAEE,wEACA,CATA,YACA,CAKF,kBACA,CALE,MAGJ,CAII,eACA,CAJF,iCALE,cACA,CAHA,oBACA,CAKJ,SAKI,2BADA,UACA,6BAEJ,WACE,0DACA,kBACE,gCACA,mBADA,YACA,oEACA,2CAMF,mDAII,CAJJ,aADF,cACE,kBAII,kEACA,iBACE,mEACA,6BACE,wBADF,cACE,mCACA,qDANN,kCACE,6BAEE,mBADF,0CACE,CAFF,eACA,MACE,0DACA,wCACE,sGACA,WANN,yBACE,uCACA,CAFF,UAEE,2CACE,0FACA,cACE,kEACA,mEANN,yBACE,4DACA,sBACE,+EAEE,iEACA,qEANN,sCACE,CAGE,iBAHF,gBAGE,qBACE,CAJJ,uBACA,gDACE,wDACA,6DAHF,2CACA,CADA,gBACA,eACE,CAGE,sBANN,8BACE,CAII,iBAFF,4DACA,WACE,YADF,uCACE,6EACA,2BANN,8CACE,kDACA,0CACE,8BACA,yFACE,sBACA,sFALJ,mEACA,sBACE,kEACA,6EACE,uCACA,kEALJ,qGAEE,kEACA,6EACE,uCACA,kEALJ,8CACA,uDACE,sEACA,2EACE,sCACA,iEALJ,mGACA,qCACE,oDACA,0DACE,6GACA,gDAGR,yDCrEA,sEACE,CACA,6GACE,gEACF,iGAIF,wFACE,qDAGA,mGAEE,2CAEF,4FACE,gCACF,wGACE,8DAEE,6FAIA,iJAKN,6GACE,gDAKF,yDACA,qCAGA,6BACA,kBACA,qDAKA,oCAEA,+DAGA,2CAGE,oDAIA,oEAEE,qBAGJ,wDAEE,uCAEF,kEAGA,8CAEA,uDAIF,gEAIE,6BACA,gEAIA,+CACE,0EAIF,sDAEE,+DAGF,sCACA,8BACE,oCAEJ,wBACE,4FAEE,gBAEJ,yGAGI,kBAGJ,CCnHE,2MCFF,oBAGE,wGAKA,iCACE,CADF,wBACE,8GAQA,mBCjBJ,2GAIE,mBACA,6HAMA,YACE,mIAYF,eACA,CAHF,YAGE,4FAGE,8BAKF,uBAkBE,sCACA,CADA,qBAbA,wCAIA,CALF,8BACE,CADF,gBAKE,wCACA,CAOA,kDACA,CACA,kCAKF,6BAGA,4CACE,kDACA,eAGF,cACE,aACA,iBACA,yBACA,8BACA,WAGJ,2BACE,cAGA,+BACA,CAHA,eAGA,wCACA,YACA,iBACA,uEAGA,0BACA,2CAEA,8EAGI,qBACA,CAFF,kBAEE,kBAGN,0CAGE,mCAGA,4BAIA,gEACE,qCACA,8BAEA,gBACA,+CACA,iCAEF,iCAEE,gEACA,qCAGF,8BAEE,+BAIA,yCAEE,qBADA,gBACA,yBAKF,eACA,CAFF,YACE,CACA,iBACA,qDAEA,mDCvIJ,2FAOE,iCACA,CAEA,eACA,CAHA,kBAEA,CAFA,wBAGA,8BACA,eACE,CAFF,YAEE,0BACA,8CAGA,oBACE,oCAGA,kBACE,8DAEA,iBAEN,UACE,8BAIJ,+CAEE,qDAEF,kDAIE,YAEF,CAFE,YAEF,CCpCE,mFADA,kBAKE,CAJF,IAGA,aACE,mCAGA,iDACE,+BAEJ,wBAEE,mBAMA,6CAEF,CAJE,mBAEA,CAEF,kCAGE,CARF,kBACE,CAHA,eAUA,YACA,mBACA,CADA,UACA,wCC9BF,oBDkCE,wBCnCJ,uCACE,+BACA,+DACA,sBAGA,qBCDA,6CAIE,CAPF,uBAGA,CDGE,oBACF,yDAEE,CCDE,2CAGF,CAJA,kCACE,CDJJ,YACE,CAIA,eCTF,CDKE,uBCMA,gCACE,YAEF,oCAEE,wBACA,0BAIF,iBAEA,cADF,UACE,uBAEA,iCAEA,wCAEA,6CAMA,CAYF,gCATI,4BASJ,CAZE,mCAEE,iCAUJ,4BAGE,4DADA,+BACA,CAHF,qBAGE,sCACE,OAEF,iBAHA,SAGA,iHACE,2DAKF,CANA,8EAMA,uSAEE,kBAEF,+FACE,yCCjEJ,WACA,yBAGA,uBACA,gBAEA,uCAIA,CAJA,iCAIA,uCAGA,UACE,gBACA,qBAEA,0CClBJ,gBACE,KAGF,qBACE,YAGF,CAHE,cAGF,gCAEE,mBACA,iEAEA,oCACA,wCAEA,sBACA,WAEA,CAFA,YAEA,8EAEA,mCAFA,iBAEA,6BAIA,wEAKA,sDAIE,CARF,mDAIA,CAIE,cAEF,8CAIA,oBAFE,iBAEF,8CAGE,eAEF,CAFE,YAEF,OAEE,kBAGJ,CAJI,eACA,CAFF,mBAKF,yCCjDE,oBACA,CAFA,iBAEA,uCAKE,iBACA,qCAGA,mBCZJ,CDWI,gBCXJ,6BAEE,eACA,sBAGA,eAEA,sBACA,oDACA,iGAMA,gBAFE,YAEF,8FAME,iJClBF,YACA,gNAUE,6BAEF,oTAcI,kBACF,gHAIA,qBACE,eACF,qDACE,kBACF,6DACE,4BCxCJ,oBAEF,qCAEI,+CAGF,uBACE,uDAGJ,oBAiBI,kDACF,CAhBA,+CAaA,CAbA,oBAaA,0FAEE,CAFF,gGAdA,cACA,iBAaA,0BAGA,mQAIA,oNAEE,iBAGJ,CAHI,gBAFF,gBAKF,8CAYI,CAZJ,wCAYI,sVACE,iCAGA,uEAHA,QAGA,qXAKJ,iDAGF,CARM,+CACE,iDAIN,CALI,gBAQN,mHACE,gBAGF,2DACE,0EAOA,0EAGF,gBAEE,6DC/EA,kDACA,gCACA,qDAGA,qBACA,qDCFA,cACA,eAEA,yBAGF,sBAEE,iBACA,sNAWA,iBACE,kBACA,wRAgBA,kBAEA,iOAgBA,uCACE,uEAEA,kBAEF,qUAuBE,iDAIJ,CACA,geCxFF,4BAEE,CAQA,6JACA,iDAIA,sEAGA,mDAOF,iDAGE,4DAIA,8CACA,qDAEE,eAFF,cAEE,oBAEF,uBAFE,kCAGA,eACA,iBACA,mBAIA,mDACA,CAHA,uCAEA,CAJA,0CACA,CAIA,gBAJA,gBACA,oBADA,gBAIA,wBAEJ,gBAGE,6BACA,YAHA,iBAGA,gCACA,iEAEA,6CACA,sDACA,0BADA,wBACA,0BACA,oIAIA,mBAFA,YAEA,qBACA,0CAIE,uBAEF,CAHA,yBACE,CAEF,iDACE,mFAKJ,oCACE,CANE,aAKJ,CACE,qEAIA,YAFA,WAEA,CAHA,aACA,CAEA,gBACE,4BACA,sBADA,aACA,gCAMF,oCACA,yDACA,2CAEA,qBAGE,kBAEA,CACA,mCAIF,CARE,YACA,CAOF,iCAEE,CAPA,oBACA,CAQA,oBACE,uDAEJ,sDAGA,CAHA,cAGA,0BACE,oDAIA,oCACA,4BACA,sBAGA,cAEA,oFAGA,sBAEA,yDACE,CAIF,iBAJE,wBAIF,6CAHE,6CAKA,eACA,aACA,CADA,cACA,yCAGJ,kBACE,CAKA,iDAEA,CARF,aACE,4CAGA,kBAIA,wEAGA,wDAGA,kCAOA,iDAGA,CAPF,WAEE,sCAEA,CAJF,2CACE,CAMA,qCACA,+BARF,kBACE,qCAOA,iBAsBA,sBACE,CAvBF,WAKA,CACE,0DAIF,CALA,uDACE,CANF,sBAqBA,4CACA,CALA,gRAIA,YAEE,6CAEN,mCAEE,+CASA,6EAIA,4BChNA,SDmNA,qFCnNA,gDACA,sCAGA,qCACA,sDACA,CAKA,kDAGA,CARA,0CAQA,kBAGA,YACA,sBACA,iBAFA,gBADF,YACE,CAHA,SAKA,kBAEA,SAFA,iBAEA,uEAGA,CAEE,6CAFF,oCAgBI,CAdF,yBACE,qBACF,CAGF,oBACE,CAIF,WACE,CALA,2CAGA,uBACF,CACE,mFAGE,CALF,qBAEA,UAGE,gCAIF,sDAEA,CALE,oCAKF,yCC7CJ,oCACE,CD+CA,yXAQE,sCCrDJ,wCAGA,oCACE","sources":["webpack:///./node_modules/normalize.css/normalize.css","webpack:///./src/furo/assets/styles/base/_print.sass","webpack:///./src/furo/assets/styles/base/_screen-readers.sass","webpack:///./src/furo/assets/styles/base/_theme.sass","webpack:///./src/furo/assets/styles/variables/_fonts.scss","webpack:///./src/furo/assets/styles/variables/_spacing.scss","webpack:///./src/furo/assets/styles/variables/_icons.scss","webpack:///./src/furo/assets/styles/variables/_admonitions.scss","webpack:///./src/furo/assets/styles/variables/_colors.scss","webpack:///./src/furo/assets/styles/base/_typography.sass","webpack:///./src/furo/assets/styles/_scaffold.sass","webpack:///./src/furo/assets/styles/variables/_layout.scss","webpack:///./src/furo/assets/styles/content/_admonitions.sass","webpack:///./src/furo/assets/styles/content/_api.sass","webpack:///./src/furo/assets/styles/content/_blocks.sass","webpack:///./src/furo/assets/styles/content/_captions.sass","webpack:///./src/furo/assets/styles/content/_code.sass","webpack:///./src/furo/assets/styles/content/_footnotes.sass","webpack:///./src/furo/assets/styles/content/_images.sass","webpack:///./src/furo/assets/styles/content/_indexes.sass","webpack:///./src/furo/assets/styles/content/_lists.sass","webpack:///./src/furo/assets/styles/content/_math.sass","webpack:///./src/furo/assets/styles/content/_misc.sass","webpack:///./src/furo/assets/styles/content/_rubrics.sass","webpack:///./src/furo/assets/styles/content/_sidebar.sass","webpack:///./src/furo/assets/styles/content/_tables.sass","webpack:///./src/furo/assets/styles/content/_target.sass","webpack:///./src/furo/assets/styles/content/_gui-labels.sass","webpack:///./src/furo/assets/styles/components/_footer.sass","webpack:///./src/furo/assets/styles/components/_sidebar.sass","webpack:///./src/furo/assets/styles/components/_table_of_contents.sass","webpack:///./src/furo/assets/styles/_shame.sass"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","// This file contains styles for managing print media.\n\n////////////////////////////////////////////////////////////////////////////////\n// Hide elements not relevant to print media.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n // Hide icon container.\n .content-icon-container\n display: none !important\n\n // Hide showing header links if hovering over when printing.\n .headerlink\n display: none !important\n\n // Hide mobile header.\n .mobile-header\n display: none !important\n\n // Hide navigation links.\n .related-pages\n display: none !important\n\n////////////////////////////////////////////////////////////////////////////////\n// Tweaks related to decolorization.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n // Apply a border around code which no longer have a color background.\n .highlight\n border: 0.1pt solid var(--color-foreground-border)\n\n////////////////////////////////////////////////////////////////////////////////\n// Avoid page break in some relevant cases.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n ul, ol, dl, a, table, pre, blockquote\n page-break-inside: avoid\n\n h1, h2, h3, h4, h5, h6, img, figure, caption\n page-break-inside: avoid\n page-break-after: avoid\n\n ul, ol, dl\n page-break-before: avoid\n",".visually-hidden\n position: absolute !important\n width: 1px !important\n height: 1px !important\n padding: 0 !important\n margin: -1px !important\n overflow: hidden !important\n clip: rect(0,0,0,0) !important\n white-space: nowrap !important\n border: 0 !important\n color: var(--color-foreground-primary)\n background: var(--color-background-primary)\n\n:-moz-focusring\n outline: auto\n","// This file serves as the \"skeleton\" of the theming logic.\n//\n// This contains the bulk of the logic for handling dark mode, color scheme\n// toggling and the handling of color-scheme-specific hiding of elements.\n\nbody\n @include fonts\n @include spacing\n @include icons\n @include admonitions\n @include default-admonition(#651fff, \"abstract\")\n @include default-topic(#14B8A6, \"pencil\")\n\n @include colors\n\n.only-light\n display: block !important\nhtml body .only-dark\n display: none !important\n\n// Ignore dark-mode hints if print media.\n@media not print\n // Enable dark-mode, if requested.\n body[data-theme=\"dark\"]\n @include colors-dark\n\n html & .only-light\n display: none !important\n .only-dark\n display: block !important\n\n // Enable dark mode, unless explicitly told to avoid.\n @media (prefers-color-scheme: dark)\n body:not([data-theme=\"light\"])\n @include colors-dark\n\n html & .only-light\n display: none !important\n .only-dark\n display: block !important\n\n//\n// Theme toggle presentation\n//\nbody[data-theme=\"auto\"]\n .theme-toggle svg.theme-icon-when-auto-light\n display: block\n\n @media (prefers-color-scheme: dark)\n .theme-toggle svg.theme-icon-when-auto-dark\n display: block\n .theme-toggle svg.theme-icon-when-auto-light\n display: none\n\nbody[data-theme=\"dark\"]\n .theme-toggle svg.theme-icon-when-dark\n display: block\n\nbody[data-theme=\"light\"]\n .theme-toggle svg.theme-icon-when-light\n display: block\n","// Fonts used by this theme.\n//\n// There are basically two things here -- using the system font stack and\n// defining sizes for various elements in %ages. We could have also used `em`\n// but %age is easier to reason about for me.\n\n@mixin fonts {\n // These are adapted from https://systemfontstack.com/\n --font-stack: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial,\n sans-serif, Apple Color Emoji, Segoe UI Emoji;\n --font-stack--monospace: \"SFMono-Regular\", Menlo, Consolas, Monaco,\n Liberation Mono, Lucida Console, monospace;\n --font-stack--headings: var(--font-stack);\n\n --font-size--normal: 100%;\n --font-size--small: 87.5%;\n --font-size--small--2: 81.25%;\n --font-size--small--3: 75%;\n --font-size--small--4: 62.5%;\n\n // Sidebar\n --sidebar-caption-font-size: var(--font-size--small--2);\n --sidebar-item-font-size: var(--font-size--small);\n --sidebar-search-input-font-size: var(--font-size--small);\n\n // Table of Contents\n --toc-font-size: var(--font-size--small--3);\n --toc-font-size--mobile: var(--font-size--normal);\n --toc-title-font-size: var(--font-size--small--4);\n\n // Admonitions\n //\n // These aren't defined in terms of %ages, since nesting these is permitted.\n --admonition-font-size: 0.8125rem;\n --admonition-title-font-size: 0.8125rem;\n\n // Code\n --code-font-size: var(--font-size--small--2);\n\n // API\n --api-font-size: var(--font-size--small);\n}\n","// Spacing for various elements on the page\n//\n// If the user wants to tweak things in a certain way, they are permitted to.\n// They also have to deal with the consequences though!\n\n@mixin spacing {\n // Header!\n --header-height: calc(\n var(--sidebar-item-line-height) + 4 * #{var(--sidebar-item-spacing-vertical)}\n );\n --header-padding: 0.5rem;\n\n // Sidebar\n --sidebar-tree-space-above: 1.5rem;\n --sidebar-caption-space-above: 1rem;\n\n --sidebar-item-line-height: 1rem;\n --sidebar-item-spacing-vertical: 0.5rem;\n --sidebar-item-spacing-horizontal: 1rem;\n --sidebar-item-height: calc(\n var(--sidebar-item-line-height) + 2 *#{var(--sidebar-item-spacing-vertical)}\n );\n\n --sidebar-expander-width: var(--sidebar-item-height); // be square\n\n --sidebar-search-space-above: 0.5rem;\n --sidebar-search-input-spacing-vertical: 0.5rem;\n --sidebar-search-input-spacing-horizontal: 0.5rem;\n --sidebar-search-input-height: 1rem;\n --sidebar-search-icon-size: var(--sidebar-search-input-height);\n\n // Table of Contents\n --toc-title-padding: 0.25rem 0;\n --toc-spacing-vertical: 1.5rem;\n --toc-spacing-horizontal: 1.5rem;\n --toc-item-spacing-vertical: 0.4rem;\n --toc-item-spacing-horizontal: 1rem;\n}\n","// Expose theme icons as CSS variables.\n\n$icons: (\n // Adapted from tabler-icons\n // url: https://tablericons.com/\n \"search\":\n url('data:image/svg+xml;charset=utf-8,'),\n // Factored out from mkdocs-material on 24-Aug-2020.\n // url: https://squidfunk.github.io/mkdocs-material/reference/admonitions/\n \"pencil\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"abstract\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"info\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"flame\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"question\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"warning\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"failure\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"spark\":\n url('data:image/svg+xml;charset=utf-8,')\n);\n\n@mixin icons {\n @each $name, $glyph in $icons {\n --icon-#{$name}: #{$glyph};\n }\n}\n","// Admonitions\n\n// Structure of these is:\n// admonition-class: color \"icon-name\";\n//\n// The colors are translated into CSS variables below. The icons are\n// used directly in the main declarations to set the `mask-image` in\n// the title.\n\n// prettier-ignore\n$admonitions: (\n // Each of these has an reST directives for it.\n \"caution\": #ff9100 \"spark\",\n \"warning\": #ff9100 \"warning\",\n \"danger\": #ff5252 \"spark\",\n \"attention\": #ff5252 \"warning\",\n \"error\": #ff5252 \"failure\",\n \"hint\": #00c852 \"question\",\n \"tip\": #00c852 \"info\",\n \"important\": #00bfa5 \"flame\",\n \"note\": #00b0ff \"pencil\",\n \"seealso\": #448aff \"info\",\n \"admonition-todo\": #808080 \"pencil\"\n);\n\n@mixin default-admonition($color, $icon-name) {\n --color-admonition-title: #{$color};\n --color-admonition-title-background: #{rgba($color, 0.2)};\n\n --icon-admonition-default: var(--icon-#{$icon-name});\n}\n\n@mixin default-topic($color, $icon-name) {\n --color-topic-title: #{$color};\n --color-topic-title-background: #{rgba($color, 0.2)};\n\n --icon-topic-default: var(--icon-#{$icon-name});\n}\n\n@mixin admonitions {\n @each $name, $values in $admonitions {\n --color-admonition-title--#{$name}: #{nth($values, 1)};\n --color-admonition-title-background--#{$name}: #{rgba(\n nth($values, 1),\n 0.2\n )};\n }\n}\n","// Colors used throughout this theme.\n//\n// The aim is to give the user more control. Thus, instead of hard-coding colors\n// in various parts of the stylesheet, the approach taken is to define all\n// colors as CSS variables and reusing them in all the places.\n//\n// `colors-dark` depends on `colors` being included at a lower specificity.\n\n@mixin colors {\n --color-problematic: #b30000;\n\n // Base Colors\n --color-foreground-primary: black; // for main text and headings\n --color-foreground-secondary: #5a5c63; // for secondary text\n --color-foreground-muted: #6b6f76; // for muted text\n --color-foreground-border: #878787; // for content borders\n\n --color-background-primary: white; // for content\n --color-background-secondary: #f8f9fb; // for navigation + ToC\n --color-background-hover: #efeff4ff; // for navigation-item hover\n --color-background-hover--transparent: #efeff400;\n --color-background-border: #eeebee; // for UI borders\n --color-background-item: #ccc; // for \"background\" items (eg: copybutton)\n\n // Announcements\n --color-announcement-background: #000000dd;\n --color-announcement-text: #eeebee;\n\n // Brand colors\n --color-brand-primary: #0a4bff;\n --color-brand-content: #2757dd;\n --color-brand-visited: #872ee0;\n\n // API documentation\n --color-api-background: var(--color-background-hover--transparent);\n --color-api-background-hover: var(--color-background-hover);\n --color-api-overall: var(--color-foreground-secondary);\n --color-api-name: var(--color-problematic);\n --color-api-pre-name: var(--color-problematic);\n --color-api-paren: var(--color-foreground-secondary);\n --color-api-keyword: var(--color-foreground-primary);\n\n --color-api-added: #21632c;\n --color-api-added-border: #38a84d;\n --color-api-changed: #046172;\n --color-api-changed-border: #06a1bc;\n --color-api-deprecated: #605706;\n --color-api-deprecated-border: #f0d90f;\n --color-api-removed: #b30000;\n --color-api-removed-border: #ff5c5c;\n\n --color-highlight-on-target: #ffffcc;\n\n // Inline code background\n --color-inline-code-background: var(--color-background-secondary);\n\n // Highlighted text (search)\n --color-highlighted-background: #ddeeff;\n --color-highlighted-text: var(--color-foreground-primary);\n\n // GUI Labels\n --color-guilabel-background: #ddeeff80;\n --color-guilabel-border: #bedaf580;\n --color-guilabel-text: var(--color-foreground-primary);\n\n // Admonitions!\n --color-admonition-background: transparent;\n\n //////////////////////////////////////////////////////////////////////////////\n // Everything below this should be one of:\n // - var(...)\n // - *-gradient(...)\n // - special literal values (eg: transparent, none)\n //////////////////////////////////////////////////////////////////////////////\n\n // Tables\n --color-table-header-background: var(--color-background-secondary);\n --color-table-border: var(--color-background-border);\n\n // Cards\n --color-card-border: var(--color-background-secondary);\n --color-card-background: transparent;\n --color-card-marginals-background: var(--color-background-secondary);\n\n // Header\n --color-header-background: var(--color-background-primary);\n --color-header-border: var(--color-background-border);\n --color-header-text: var(--color-foreground-primary);\n\n // Sidebar (left)\n --color-sidebar-background: var(--color-background-secondary);\n --color-sidebar-background-border: var(--color-background-border);\n\n --color-sidebar-brand-text: var(--color-foreground-primary);\n --color-sidebar-caption-text: var(--color-foreground-muted);\n --color-sidebar-link-text: var(--color-foreground-secondary);\n --color-sidebar-link-text--top-level: var(--color-brand-primary);\n\n --color-sidebar-item-background: var(--color-sidebar-background);\n --color-sidebar-item-background--current: var(\n --color-sidebar-item-background\n );\n --color-sidebar-item-background--hover: linear-gradient(\n 90deg,\n var(--color-background-hover--transparent) 0%,\n var(--color-background-hover) var(--sidebar-item-spacing-horizontal),\n var(--color-background-hover) 100%\n );\n\n --color-sidebar-item-expander-background: transparent;\n --color-sidebar-item-expander-background--hover: var(\n --color-background-hover\n );\n\n --color-sidebar-search-text: var(--color-foreground-primary);\n --color-sidebar-search-background: var(--color-background-secondary);\n --color-sidebar-search-background--focus: var(--color-background-primary);\n --color-sidebar-search-border: var(--color-background-border);\n --color-sidebar-search-icon: var(--color-foreground-muted);\n\n // Table of Contents (right)\n --color-toc-background: var(--color-background-primary);\n --color-toc-title-text: var(--color-foreground-muted);\n --color-toc-item-text: var(--color-foreground-secondary);\n --color-toc-item-text--hover: var(--color-foreground-primary);\n --color-toc-item-text--active: var(--color-brand-primary);\n\n // Actual page contents\n --color-content-foreground: var(--color-foreground-primary);\n --color-content-background: transparent;\n\n // Links\n --color-link: var(--color-brand-content);\n --color-link-underline: var(--color-background-border);\n --color-link--hover: var(--color-brand-content);\n --color-link-underline--hover: var(--color-foreground-border);\n\n --color-link--visited: var(--color-brand-visited);\n --color-link-underline--visited: var(--color-background-border);\n --color-link--visited--hover: var(--color-brand-visited);\n --color-link-underline--visited--hover: var(--color-foreground-border);\n}\n\n@mixin colors-dark {\n --color-problematic: #ee5151;\n\n // Base Colors\n --color-foreground-primary: #cfd0d0; // for main text and headings\n --color-foreground-secondary: #9ca0a5; // for secondary text\n --color-foreground-muted: #81868d; // for muted text\n --color-foreground-border: #666666; // for content borders\n\n --color-background-primary: #131416; // for content\n --color-background-secondary: #1a1c1e; // for navigation + ToC\n --color-background-hover: #1e2124ff; // for navigation-item hover\n --color-background-hover--transparent: #1e212400;\n --color-background-border: #303335; // for UI borders\n --color-background-item: #444; // for \"background\" items (eg: copybutton)\n\n // Announcements\n --color-announcement-background: #000000dd;\n --color-announcement-text: #eeebee;\n\n // Brand colors\n --color-brand-primary: #3d94ff;\n --color-brand-content: #5ca5ff;\n --color-brand-visited: #b27aeb;\n\n // Highlighted text (search)\n --color-highlighted-background: #083563;\n\n // GUI Labels\n --color-guilabel-background: #08356380;\n --color-guilabel-border: #13395f80;\n\n // API documentation\n --color-api-keyword: var(--color-foreground-secondary);\n --color-highlight-on-target: #333300;\n\n --color-api-added: #3db854;\n --color-api-added-border: #267334;\n --color-api-changed: #09b0ce;\n --color-api-changed-border: #056d80;\n --color-api-deprecated: #b1a10b;\n --color-api-deprecated-border: #6e6407;\n --color-api-removed: #ff7575;\n --color-api-removed-border: #b03b3b;\n\n // Admonitions\n --color-admonition-background: #18181a;\n\n // Cards\n --color-card-border: var(--color-background-secondary);\n --color-card-background: #18181a;\n --color-card-marginals-background: var(--color-background-hover);\n}\n","// This file contains the styling for making the content throughout the page,\n// including fonts, paragraphs, headings and spacing among these elements.\n\nbody\n font-family: var(--font-stack)\npre,\ncode,\nkbd,\nsamp\n font-family: var(--font-stack--monospace)\n\n// Make fonts look slightly nicer.\nbody\n -webkit-font-smoothing: antialiased\n -moz-osx-font-smoothing: grayscale\n\n// Line height from Bootstrap 4.1\narticle\n line-height: 1.5\n\n//\n// Headings\n//\nh1,\nh2,\nh3,\nh4,\nh5,\nh6\n line-height: 1.25\n font-family: var(--font-stack--headings)\n font-weight: bold\n\n border-radius: 0.5rem\n margin-top: 0.5rem\n margin-bottom: 0.5rem\n margin-left: -0.5rem\n margin-right: -0.5rem\n padding-left: 0.5rem\n padding-right: 0.5rem\n\n + p\n margin-top: 0\n\nh1\n font-size: 2.5em\n margin-top: 1.75rem\n margin-bottom: 1rem\nh2\n font-size: 2em\n margin-top: 1.75rem\nh3\n font-size: 1.5em\nh4\n font-size: 1.25em\nh5\n font-size: 1.125em\nh6\n font-size: 1em\n\nsmall\n opacity: 75%\n font-size: 80%\n\n// Paragraph\np\n margin-top: 0.5rem\n margin-bottom: 0.75rem\n\n// Horizontal rules\nhr.docutils\n height: 1px\n padding: 0\n margin: 2rem 0\n background-color: var(--color-background-border)\n border: 0\n\n.centered\n text-align: center\n\n// Links\na\n text-decoration: underline\n\n color: var(--color-link)\n text-decoration-color: var(--color-link-underline)\n\n &:visited\n color: var(--color-link--visited)\n text-decoration-color: var(--color-link-underline--visited)\n &:hover\n color: var(--color-link--visited--hover)\n text-decoration-color: var(--color-link-underline--visited--hover)\n\n &:hover\n color: var(--color-link--hover)\n text-decoration-color: var(--color-link-underline--hover)\n &.muted-link\n color: inherit\n &:hover\n color: var(--color-link--hover)\n text-decoration-color: var(--color-link-underline--hover)\n &:visited\n color: var(--color-link--visited--hover)\n text-decoration-color: var(--color-link-underline--visited--hover)\n","// This file contains the styles for the overall layouting of the documentation\n// skeleton, including the responsive changes as well as sidebar toggles.\n//\n// This is implemented as a mobile-last design, which isn't ideal, but it is\n// reasonably good-enough and I got pretty tired by the time I'd finished this\n// to move the rules around to fix this. Shouldn't take more than 3-4 hours,\n// if you know what you're doing tho.\n\n// HACK: Not all browsers account for the scrollbar width in media queries.\n// This results in horizontal scrollbars in the breakpoint where we go\n// from displaying everything to hiding the ToC. We accomodate for this by\n// adding a bit of padding to the TOC drawer, disabling the horizontal\n// scrollbar and allowing the scrollbars to cover the padding.\n// https://www.456bereastreet.com/archive/201301/media_query_width_and_vertical_scrollbars/\n\n// HACK: Always having the scrollbar visible, prevents certain browsers from\n// causing the content to stutter horizontally between taller-than-viewport and\n// not-taller-than-viewport pages.\n\n$icon-size: 1.25rem\n\nhtml\n overflow-x: hidden\n overflow-y: scroll\n scroll-behavior: smooth\n\n.sidebar-scroll, .toc-scroll, article[role=main] *\n // Override Firefox scrollbar style\n scrollbar-width: thin\n scrollbar-color: var(--color-foreground-border) transparent\n\n // Override Chrome scrollbar styles\n &::-webkit-scrollbar\n width: 0.25rem\n height: 0.25rem\n &::-webkit-scrollbar-thumb\n background-color: var(--color-foreground-border)\n border-radius: 0.125rem\n\n//\n// Overalls\n//\nhtml,\nbody\n height: 100%\n color: var(--color-foreground-primary)\n background: var(--color-background-primary)\n\n.skip-to-content\n position: fixed\n padding: 1rem\n border-radius: 1rem\n left: 0.25rem\n top: 0.25rem\n z-index: 40\n background: var(--color-background-primary)\n color: var(--color-foreground-primary)\n\n transform: translateY(-200%)\n transition: transform 300ms ease-in-out\n\n &:focus-within\n transform: translateY(0%)\n\narticle\n color: var(--color-content-foreground)\n background: var(--color-content-background)\n overflow-wrap: break-word\n\n.page\n display: flex\n // fill the viewport for pages with little content.\n min-height: 100%\n\n.mobile-header\n width: 100%\n height: var(--header-height)\n background-color: var(--color-header-background)\n color: var(--color-header-text)\n border-bottom: 1px solid var(--color-header-border)\n\n // Looks like sub-script/super-script have this, and we need this to\n // be \"on top\" of those.\n z-index: 10\n\n // We don't show the header on large screens.\n display: none\n\n // Add shadow when scrolled\n &.scrolled\n border-bottom: none\n box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.1), 0 0.2rem 0.4rem rgba(0, 0, 0, 0.2)\n\n .header-center\n a\n color: var(--color-header-text)\n text-decoration: none\n\n.main\n display: flex\n flex: 1\n\n// Sidebar (left) also covers the entire left portion of screen.\n.sidebar-drawer\n box-sizing: border-box\n\n border-right: 1px solid var(--color-sidebar-background-border)\n background: var(--color-sidebar-background)\n\n display: flex\n justify-content: flex-end\n // These next two lines took me two days to figure out.\n width: calc((100% - #{$full-width}) / 2 + #{$sidebar-width})\n min-width: $sidebar-width\n\n// Scroll-along sidebars\n.sidebar-container,\n.toc-drawer\n box-sizing: border-box\n width: $sidebar-width\n\n.toc-drawer\n background: var(--color-toc-background)\n // See HACK described on top of this document\n padding-right: 1rem\n\n.sidebar-sticky,\n.toc-sticky\n position: sticky\n top: 0\n height: min(100%, 100vh)\n height: 100vh\n\n display: flex\n flex-direction: column\n\n.sidebar-scroll,\n.toc-scroll\n flex-grow: 1\n flex-shrink: 1\n\n overflow: auto\n scroll-behavior: smooth\n\n// Central items.\n.content\n padding: 0 $content-padding\n width: $content-width\n\n display: flex\n flex-direction: column\n justify-content: space-between\n\n.icon\n display: inline-block\n height: 1rem\n width: 1rem\n svg\n width: 100%\n height: 100%\n\n//\n// Accommodate announcement banner\n//\n.announcement\n background-color: var(--color-announcement-background)\n color: var(--color-announcement-text)\n\n height: var(--header-height)\n display: flex\n align-items: center\n overflow-x: auto\n & + .page\n min-height: calc(100% - var(--header-height))\n\n.announcement-content\n box-sizing: border-box\n padding: 0.5rem\n min-width: 100%\n white-space: nowrap\n text-align: center\n\n a\n color: var(--color-announcement-text)\n text-decoration-color: var(--color-announcement-text)\n\n &:hover\n color: var(--color-announcement-text)\n text-decoration-color: var(--color-link--hover)\n\n////////////////////////////////////////////////////////////////////////////////\n// Toggles for theme\n////////////////////////////////////////////////////////////////////////////////\n.no-js .theme-toggle-container // don't show theme toggle if there's no JS\n display: none\n\n.theme-toggle-container\n vertical-align: middle\n\n.theme-toggle\n cursor: pointer\n border: none\n padding: 0\n background: transparent\n\n.theme-toggle svg\n vertical-align: middle\n height: $icon-size\n width: $icon-size\n color: var(--color-foreground-primary)\n display: none\n\n.theme-toggle-header\n float: left\n padding: 1rem 0.5rem\n\n////////////////////////////////////////////////////////////////////////////////\n// Toggles for elements\n////////////////////////////////////////////////////////////////////////////////\n.toc-overlay-icon, .nav-overlay-icon\n display: none\n cursor: pointer\n\n .icon\n color: var(--color-foreground-secondary)\n height: $icon-size\n width: $icon-size\n\n.toc-header-icon, .nav-overlay-icon\n // for when we set display: flex\n justify-content: center\n align-items: center\n\n.toc-content-icon\n height: 1.5rem\n width: 1.5rem\n\n.content-icon-container\n float: right\n display: flex\n margin-top: 1.5rem\n margin-left: 1rem\n margin-bottom: 1rem\n gap: 0.5rem\n\n .edit-this-page, .view-this-page\n svg\n color: inherit\n height: $icon-size\n width: $icon-size\n\n.sidebar-toggle\n position: absolute\n display: none\n// \n.sidebar-toggle[name=\"__toc\"]\n left: 20px\n.sidebar-toggle:checked\n left: 40px\n// \n\n.overlay\n position: fixed\n top: 0\n width: 0\n height: 0\n\n transition: width 0ms, height 0ms, opacity 250ms ease-out\n\n opacity: 0\n background-color: rgba(0, 0, 0, 0.54)\n.sidebar-overlay\n z-index: 20\n.toc-overlay\n z-index: 40\n\n// Keep things on top and smooth.\n.sidebar-drawer\n z-index: 30\n transition: left 250ms ease-in-out\n.toc-drawer\n z-index: 50\n transition: right 250ms ease-in-out\n\n// Show the Sidebar\n#__navigation:checked\n & ~ .sidebar-overlay\n width: 100%\n height: 100%\n opacity: 1\n & ~ .page\n .sidebar-drawer\n top: 0\n left: 0\n // Show the toc sidebar\n#__toc:checked\n & ~ .toc-overlay\n width: 100%\n height: 100%\n opacity: 1\n & ~ .page\n .toc-drawer\n top: 0\n right: 0\n\n////////////////////////////////////////////////////////////////////////////////\n// Back to top\n////////////////////////////////////////////////////////////////////////////////\n.back-to-top\n text-decoration: none\n\n display: none\n position: fixed\n left: 0\n top: 1rem\n padding: 0.5rem\n padding-right: 0.75rem\n border-radius: 1rem\n font-size: 0.8125rem\n\n background: var(--color-background-primary)\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), #6b728080 0px 0px 1px 0px\n\n z-index: 10\n\n margin-left: 50%\n transform: translateX(-50%)\n svg\n height: 1rem\n width: 1rem\n fill: currentColor\n display: inline-block\n\n span\n margin-left: 0.25rem\n\n .show-back-to-top &\n display: flex\n align-items: center\n\n////////////////////////////////////////////////////////////////////////////////\n// Responsive layouting\n////////////////////////////////////////////////////////////////////////////////\n// Make things a bit bigger on bigger screens.\n@media (min-width: $full-width + $sidebar-width)\n html\n font-size: 110%\n\n@media (max-width: $full-width)\n // Collapse \"toc\" into the icon.\n .toc-content-icon\n display: flex\n .toc-drawer\n position: fixed\n height: 100vh\n top: 0\n right: -$sidebar-width\n border-left: 1px solid var(--color-background-muted)\n .toc-tree\n border-left: none\n font-size: var(--toc-font-size--mobile)\n\n // Accomodate for a changed content width.\n .sidebar-drawer\n width: calc((100% - #{$full-width - $sidebar-width}) / 2 + #{$sidebar-width})\n\n@media (max-width: $full-width - $sidebar-width)\n // Collapse \"navigation\".\n .nav-overlay-icon\n display: flex\n .sidebar-drawer\n position: fixed\n height: 100vh\n width: $sidebar-width\n\n top: 0\n left: -$sidebar-width\n\n // Swap which icon is visible.\n .toc-header-icon\n display: flex\n .toc-content-icon, .theme-toggle-content\n display: none\n .theme-toggle-header\n display: block\n\n // Show the header.\n .mobile-header\n position: sticky\n top: 0\n display: flex\n justify-content: space-between\n align-items: center\n\n .header-left,\n .header-right\n display: flex\n height: var(--header-height)\n padding: 0 var(--header-padding)\n label\n height: 100%\n width: 100%\n user-select: none\n\n .nav-overlay-icon .icon,\n .theme-toggle svg\n height: $icon-size\n width: $icon-size\n\n // Add a scroll margin for the content\n :target\n scroll-margin-top: calc(var(--header-height) + 2.5rem)\n\n // Show back-to-top below the header\n .back-to-top\n top: calc(var(--header-height) + 0.5rem)\n\n // Center the page, and accommodate for the header.\n .page\n flex-direction: column\n justify-content: center\n .content\n margin-left: auto\n margin-right: auto\n\n@media (max-width: $content-width + 2* $content-padding)\n // Content should respect window limits.\n .content\n width: 100%\n overflow-x: auto\n\n@media (max-width: $content-width)\n .content\n padding: 0 $content-padding--small\n // Don't float sidebars to the right.\n article aside.sidebar\n float: none\n width: 100%\n margin: 1rem 0\n","// Overall Layout Variables\n//\n// Because CSS variables can't be used in media queries. The fact that this\n// makes the layout non-user-configurable is a good thing.\n$content-padding: 3em;\n$content-padding--small: 1em;\n$content-width: 46em;\n$sidebar-width: 15em;\n$full-width: $content-width + 2 * ($content-padding + $sidebar-width);\n","//\n// The design here is strongly inspired by mkdocs-material.\n.admonition, .topic\n margin: 1rem auto\n padding: 0 0.5rem 0.5rem 0.5rem\n\n background: var(--color-admonition-background)\n\n border-radius: 0.2rem\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n font-size: var(--admonition-font-size)\n\n overflow: hidden\n page-break-inside: avoid\n\n // First element should have no margin, since the title has it.\n > :nth-child(2)\n margin-top: 0\n\n // Last item should have no margin, since we'll control that w/ padding\n > :last-child\n margin-bottom: 0\n\n.admonition p.admonition-title,\np.topic-title\n position: relative\n margin: 0 -0.5rem 0.5rem\n padding-left: 2rem\n padding-right: .5rem\n padding-top: .4rem\n padding-bottom: .4rem\n\n font-weight: 500\n font-size: var(--admonition-title-font-size)\n line-height: 1.3\n\n // Our fancy icon\n &::before\n content: \"\"\n position: absolute\n left: 0.5rem\n width: 1rem\n height: 1rem\n\n// Default styles\np.admonition-title\n background-color: var(--color-admonition-title-background)\n &::before\n background-color: var(--color-admonition-title)\n mask-image: var(--icon-admonition-default)\n mask-repeat: no-repeat\n\np.topic-title\n background-color: var(--color-topic-title-background)\n &::before\n background-color: var(--color-topic-title)\n mask-image: var(--icon-topic-default)\n mask-repeat: no-repeat\n\n//\n// Variants\n//\n.admonition\n border-left: 0.2rem solid var(--color-admonition-title)\n\n @each $type, $value in $admonitions\n &.#{$type}\n border-left-color: var(--color-admonition-title--#{$type})\n > .admonition-title\n background-color: var(--color-admonition-title-background--#{$type})\n &::before\n background-color: var(--color-admonition-title--#{$type})\n mask-image: var(--icon-#{nth($value, 2)})\n\n.admonition-todo > .admonition-title\n text-transform: uppercase\n","// This file stylizes the API documentation (stuff generated by autodoc). It's\n// deeply nested due to how autodoc structures the HTML without enough classes\n// to select the relevant items.\n\n// API docs!\ndl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)\n // Tweak the spacing of all the things!\n dd\n margin-left: 2rem\n > :first-child\n margin-top: 0.125rem\n > :last-child\n margin-bottom: 0.75rem\n\n // This is used for the arguments\n .field-list\n margin-bottom: 0.75rem\n\n // \"Headings\" (like \"Parameters\" and \"Return\")\n > dt\n text-transform: uppercase\n font-size: var(--font-size--small)\n\n dd:empty\n margin-bottom: 0.5rem\n dd > ul\n margin-left: -1.2rem\n > li\n > p:nth-child(2)\n margin-top: 0\n // When the last-empty-paragraph follows a paragraph, it doesn't need\n // to augument the existing spacing.\n > p + p:last-child:empty\n margin-top: 0\n margin-bottom: 0\n\n // Colorize the elements\n > dt\n color: var(--color-api-overall)\n\n.sig:not(.sig-inline)\n font-weight: bold\n\n font-size: var(--api-font-size)\n font-family: var(--font-stack--monospace)\n\n margin-left: -0.25rem\n margin-right: -0.25rem\n padding-top: 0.25rem\n padding-bottom: 0.25rem\n padding-right: 0.5rem\n\n // These are intentionally em, to properly match the font size.\n padding-left: 3em\n text-indent: -2.5em\n\n border-radius: 0.25rem\n\n background: var(--color-api-background)\n transition: background 100ms ease-out\n\n &:hover\n background: var(--color-api-background-hover)\n\n // adjust the size of the [source] link on the right.\n a.reference\n .viewcode-link\n font-weight: normal\n width: 4.25rem\n\nem.property\n font-style: normal\n &:first-child\n color: var(--color-api-keyword)\n.sig-name\n color: var(--color-api-name)\n.sig-prename\n font-weight: normal\n color: var(--color-api-pre-name)\n.sig-paren\n color: var(--color-api-paren)\n.sig-param\n font-style: normal\n\ndiv.versionadded,\ndiv.versionchanged,\ndiv.deprecated,\ndiv.versionremoved\n border-left: 0.1875rem solid\n border-radius: 0.125rem\n\n padding-left: 0.75rem\n\n p\n margin-top: 0.125rem\n margin-bottom: 0.125rem\n\ndiv.versionadded\n border-color: var(--color-api-added-border)\n .versionmodified\n color: var(--color-api-added)\n\ndiv.versionchanged\n border-color: var(--color-api-changed-border)\n .versionmodified\n color: var(--color-api-changed)\n\ndiv.deprecated\n border-color: var(--color-api-deprecated-border)\n .versionmodified\n color: var(--color-api-deprecated)\n\ndiv.versionremoved\n border-color: var(--color-api-removed-border)\n .versionmodified\n color: var(--color-api-removed)\n\n// Align the [docs] and [source] to the right.\n.viewcode-link, .viewcode-back\n float: right\n text-align: right\n",".line-block\n margin-top: 0.5rem\n margin-bottom: 0.75rem\n .line-block\n margin-top: 0rem\n margin-bottom: 0rem\n padding-left: 1rem\n","// Captions\narticle p.caption,\ntable > caption,\n.code-block-caption\n font-size: var(--font-size--small)\n text-align: center\n\n// Caption above a TOCTree\n.toctree-wrapper.compound\n .caption, :not(.caption) > .caption-text\n font-size: var(--font-size--small)\n text-transform: uppercase\n\n text-align: initial\n margin-bottom: 0\n\n > ul\n margin-top: 0\n margin-bottom: 0\n","// Inline code\ncode.literal, .sig-inline\n background: var(--color-inline-code-background)\n border-radius: 0.2em\n // Make the font smaller, and use padding to recover.\n font-size: var(--font-size--small--2)\n padding: 0.1em 0.2em\n\n pre.literal-block &\n font-size: inherit\n padding: 0\n\n p &\n border: 1px solid var(--color-background-border)\n\n.sig-inline\n font-family: var(--font-stack--monospace)\n\n// Code and Literal Blocks\n$code-spacing-vertical: 0.625rem\n$code-spacing-horizontal: 0.875rem\n\n// Wraps every literal block + line numbers.\ndiv[class*=\" highlight-\"],\ndiv[class^=\"highlight-\"]\n margin: 1em 0\n display: flex\n\n .table-wrapper\n margin: 0\n padding: 0\n\npre\n margin: 0\n padding: 0\n overflow: auto\n\n // Needed to have more specificity than pygments' \"pre\" selector. :(\n article[role=\"main\"] .highlight &\n line-height: 1.5\n\n &.literal-block,\n .highlight &\n font-size: var(--code-font-size)\n padding: $code-spacing-vertical $code-spacing-horizontal\n\n // Make it look like all the other blocks.\n &.literal-block\n margin-top: 1rem\n margin-bottom: 1rem\n\n border-radius: 0.2rem\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n\n// All code is always contained in this.\n.highlight\n width: 100%\n border-radius: 0.2rem\n\n // Make line numbers and prompts un-selectable.\n .gp, span.linenos\n user-select: none\n pointer-events: none\n\n // Expand the line-highlighting.\n .hll\n display: block\n margin-left: -$code-spacing-horizontal\n margin-right: -$code-spacing-horizontal\n padding-left: $code-spacing-horizontal\n padding-right: $code-spacing-horizontal\n\n/* Make code block captions be nicely integrated */\n.code-block-caption\n display: flex\n padding: $code-spacing-vertical $code-spacing-horizontal\n\n border-radius: 0.25rem\n border-bottom-left-radius: 0\n border-bottom-right-radius: 0\n font-weight: 300\n border-bottom: 1px solid\n\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n border-color: var(--color-background-border)\n\n + div[class]\n margin-top: 0\n pre\n border-top-left-radius: 0\n border-top-right-radius: 0\n\n// When `html_codeblock_linenos_style` is table.\n.highlighttable\n width: 100%\n display: block\n tbody\n display: block\n\n tr\n display: flex\n\n // Line numbers\n td.linenos\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n padding: $code-spacing-vertical $code-spacing-horizontal\n padding-right: 0\n border-top-left-radius: 0.2rem\n border-bottom-left-radius: 0.2rem\n\n .linenodiv\n padding-right: $code-spacing-horizontal\n font-size: var(--code-font-size)\n box-shadow: -0.0625rem 0 var(--color-foreground-border) inset\n\n // Actual code\n td.code\n padding: 0\n display: block\n flex: 1\n overflow: hidden\n\n .highlight\n border-top-left-radius: 0\n border-bottom-left-radius: 0\n\n// When `html_codeblock_linenos_style` is inline.\n.highlight\n span.linenos\n display: inline-block\n padding-left: 0\n padding-right: $code-spacing-horizontal\n margin-right: $code-spacing-horizontal\n box-shadow: -0.0625rem 0 var(--color-foreground-border) inset\n","// Inline Footnote Reference\n.footnote-reference\n font-size: var(--font-size--small--4)\n vertical-align: super\n\n// Definition list, listing the content of each note.\n// docutils <= 0.17\ndl.footnote.brackets\n font-size: var(--font-size--small)\n color: var(--color-foreground-secondary)\n\n display: grid\n grid-template-columns: max-content auto\n dt\n margin: 0\n > .fn-backref\n margin-left: 0.25rem\n\n &:after\n content: \":\"\n\n .brackets\n &:before\n content: \"[\"\n &:after\n content: \"]\"\n\n dd\n margin: 0\n padding: 0 1rem\n\n// docutils >= 0.18\naside.footnote\n font-size: var(--font-size--small)\n color: var(--color-foreground-secondary)\n\naside.footnote > span,\ndiv.citation > span\n float: left\n font-weight: 500\n padding-right: 0.25rem\n\naside.footnote > *:not(span),\ndiv.citation > p\n margin-left: 2rem\n","//\n// Figures\n//\nimg\n box-sizing: border-box\n max-width: 100%\n height: auto\n\narticle\n figure, .figure\n border-radius: 0.2rem\n\n margin: 0\n :last-child\n margin-bottom: 0\n\n .align-left\n float: left\n clear: left\n margin: 0 1rem 1rem\n\n .align-right\n float: right\n clear: right\n margin: 0 1rem 1rem\n\n .align-default,\n .align-center\n display: block\n text-align: center\n margin-left: auto\n margin-right: auto\n\n // WELL, table needs to be stylised like a table.\n table.align-default\n display: table\n text-align: initial\n",".genindex-jumpbox, .domainindex-jumpbox\n border-top: 1px solid var(--color-background-border)\n border-bottom: 1px solid var(--color-background-border)\n padding: 0.25rem\n\n.genindex-section, .domainindex-section\n h2\n margin-top: 0.75rem\n margin-bottom: 0.5rem\n ul\n margin-top: 0\n margin-bottom: 0\n","ul,\nol\n padding-left: 1.2rem\n\n // Space lists out like paragraphs\n margin-top: 1rem\n margin-bottom: 1rem\n // reduce margins within li.\n li\n > p:first-child\n margin-top: 0.25rem\n margin-bottom: 0.25rem\n\n > p:last-child\n margin-top: 0.25rem\n\n > ul,\n > ol\n margin-top: 0.5rem\n margin-bottom: 0.5rem\n\nol\n &.arabic\n list-style: decimal\n &.loweralpha\n list-style: lower-alpha\n &.upperalpha\n list-style: upper-alpha\n &.lowerroman\n list-style: lower-roman\n &.upperroman\n list-style: upper-roman\n\n// Don't space lists out when they're \"simple\" or in a `.. toctree::`\n.simple,\n.toctree-wrapper\n li\n > ul,\n > ol\n margin-top: 0\n margin-bottom: 0\n\n// Definition Lists\n.field-list,\n.option-list,\ndl:not([class]),\ndl.simple,\ndl.footnote,\ndl.glossary\n dt\n font-weight: 500\n margin-top: 0.25rem\n + dt\n margin-top: 0\n\n .classifier::before\n content: \":\"\n margin-left: 0.2rem\n margin-right: 0.2rem\n\n dd\n > p:first-child,\n ul\n margin-top: 0.125rem\n\n ul\n margin-bottom: 0.125rem\n",".math-wrapper\n width: 100%\n overflow-x: auto\n\ndiv.math\n position: relative\n text-align: center\n\n .headerlink,\n &:focus .headerlink\n display: none\n\n &:hover .headerlink\n display: inline-block\n\n span.eqno\n position: absolute\n right: 0.5rem\n top: 50%\n transform: translate(0, -50%)\n z-index: 1\n","// Abbreviations\nabbr[title]\n cursor: help\n\n// \"Problematic\" content, as identified by Sphinx\n.problematic\n color: var(--color-problematic)\n\n// Keyboard / Mouse \"instructions\"\nkbd:not(.compound)\n margin: 0 0.2rem\n padding: 0 0.2rem\n border-radius: 0.2rem\n border: 1px solid var(--color-foreground-border)\n color: var(--color-foreground-primary)\n vertical-align: text-bottom\n\n font-size: var(--font-size--small--3)\n display: inline-block\n\n box-shadow: 0 0.0625rem 0 rgba(0, 0, 0, 0.2), inset 0 0 0 0.125rem var(--color-background-primary)\n\n background-color: var(--color-background-secondary)\n\n// Blockquote\nblockquote\n border-left: 4px solid var(--color-background-border)\n background: var(--color-background-secondary)\n\n margin-left: 0\n margin-right: 0\n padding: 0.5rem 1rem\n\n .attribution\n font-weight: 600\n text-align: right\n\n &.pull-quote,\n &.highlights\n font-size: 1.25em\n\n &.epigraph,\n &.pull-quote\n border-left-width: 0\n border-radius: 0.5rem\n\n &.highlights\n border-left-width: 0\n background: transparent\n\n// Center align embedded-in-text images\np .reference img\n vertical-align: middle\n","p.rubric\n line-height: 1.25\n font-weight: bold\n font-size: 1.125em\n\n // For Numpy-style documentation that's got rubrics within it.\n // https://github.com/pradyunsg/furo/discussions/505\n dd &\n line-height: inherit\n font-weight: inherit\n\n font-size: var(--font-size--small)\n text-transform: uppercase\n","article .sidebar\n float: right\n clear: right\n width: 30%\n\n margin-left: 1rem\n margin-right: 0\n\n border-radius: 0.2rem\n background-color: var(--color-background-secondary)\n border: var(--color-background-border) 1px solid\n\n > *\n padding-left: 1rem\n padding-right: 1rem\n\n > ul, > ol // lists need additional padding, because bullets.\n padding-left: 2.2rem\n\n .sidebar-title\n margin: 0\n padding: 0.5rem 1rem\n border-bottom: var(--color-background-border) 1px solid\n\n font-weight: 500\n\n// TODO: subtitle\n// TODO: dedicated variables?\n",".table-wrapper\n width: 100%\n overflow-x: auto\n margin-top: 1rem\n margin-bottom: 0.5rem\n padding: 0.2rem 0.2rem 0.75rem\n\ntable.docutils\n border-radius: 0.2rem\n border-spacing: 0\n border-collapse: collapse\n\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n th\n background: var(--color-table-header-background)\n\n td,\n th\n // Space things out properly\n padding: 0 0.25rem\n\n // Get the borders looking just-right.\n border-left: 1px solid var(--color-table-border)\n border-right: 1px solid var(--color-table-border)\n border-bottom: 1px solid var(--color-table-border)\n\n p\n margin: 0.25rem\n\n &:first-child\n border-left: none\n &:last-child\n border-right: none\n\n // MyST-parser tables set these classes for control of column alignment\n &.text-left\n text-align: left\n &.text-right\n text-align: right\n &.text-center\n text-align: center\n",":target\n scroll-margin-top: 2.5rem\n\n@media (max-width: $full-width - $sidebar-width)\n :target\n scroll-margin-top: calc(2.5rem + var(--header-height))\n\n // When a heading is selected\n section > span:target\n scroll-margin-top: calc(2.8rem + var(--header-height))\n\n// Permalinks\n.headerlink\n font-weight: 100\n user-select: none\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\ndl dt,\np.caption,\nfigcaption p,\ntable > caption,\n.code-block-caption\n > .headerlink\n margin-left: 0.5rem\n visibility: hidden\n &:hover > .headerlink\n visibility: visible\n\n // Don't change to link-like, if someone adds the contents directive.\n > .toc-backref\n color: inherit\n text-decoration-line: none\n\n// Figure and table captions are special.\nfigure:hover > figcaption > p > .headerlink,\ntable:hover > caption > .headerlink\n visibility: visible\n\n:target >, // Regular section[id] style anchors\nspan:target ~ // Non-regular span[id] style \"extra\" anchors\n h1,\n h2,\n h3,\n h4,\n h5,\n h6\n &:nth-of-type(1)\n background-color: var(--color-highlight-on-target)\n // .headerlink\n // visibility: visible\n code.literal\n background-color: transparent\n\ntable:target > caption,\nfigure:target\n background-color: var(--color-highlight-on-target)\n\n// Inline page contents\n.this-will-duplicate-information-and-it-is-still-useful-here li :target\n background-color: var(--color-highlight-on-target)\n\n// Code block permalinks\n.literal-block-wrapper:target .code-block-caption\n background-color: var(--color-highlight-on-target)\n\n// When a definition list item is selected\n//\n// There isn't really an alternative to !important here, due to the\n// high-specificity of API documentation's selector.\ndt:target\n background-color: var(--color-highlight-on-target) !important\n\n// When a footnote reference is selected\n.footnote > dt:target + dd,\n.footnote-reference:target\n background-color: var(--color-highlight-on-target)\n",".guilabel\n background-color: var(--color-guilabel-background)\n border: 1px solid var(--color-guilabel-border)\n color: var(--color-guilabel-text)\n\n padding: 0 0.3em\n border-radius: 0.5em\n font-size: 0.9em\n","// This file contains the styles used for stylizing the footer that's shown\n// below the content.\n\nfooter\n font-size: var(--font-size--small)\n display: flex\n flex-direction: column\n\n margin-top: 2rem\n\n// Bottom of page information\n.bottom-of-page\n display: flex\n align-items: center\n justify-content: space-between\n\n margin-top: 1rem\n padding-top: 1rem\n padding-bottom: 1rem\n\n color: var(--color-foreground-secondary)\n border-top: 1px solid var(--color-background-border)\n\n line-height: 1.5\n\n @media (max-width: $content-width)\n text-align: center\n flex-direction: column-reverse\n gap: 0.25rem\n\n .left-details\n font-size: var(--font-size--small)\n\n .right-details\n display: flex\n flex-direction: column\n gap: 0.25rem\n text-align: right\n\n .icons\n display: flex\n justify-content: flex-end\n gap: 0.25rem\n font-size: 1rem\n\n a\n text-decoration: none\n\n svg,\n img\n font-size: 1.125rem\n height: 1em\n width: 1em\n\n// Next/Prev page information\n.related-pages\n a\n display: flex\n align-items: center\n\n text-decoration: none\n &:hover .page-info .title\n text-decoration: underline\n color: var(--color-link)\n text-decoration-color: var(--color-link-underline)\n\n svg.furo-related-icon,\n svg.furo-related-icon > use\n flex-shrink: 0\n\n color: var(--color-foreground-border)\n\n width: 0.75rem\n height: 0.75rem\n margin: 0 0.5rem\n\n &.next-page\n max-width: 50%\n\n float: right\n clear: right\n text-align: right\n\n &.prev-page\n max-width: 50%\n\n float: left\n clear: left\n\n svg\n transform: rotate(180deg)\n\n.page-info\n display: flex\n flex-direction: column\n overflow-wrap: anywhere\n\n .next-page &\n align-items: flex-end\n\n .context\n display: flex\n align-items: center\n\n padding-bottom: 0.1rem\n\n color: var(--color-foreground-muted)\n font-size: var(--font-size--small)\n text-decoration: none\n","// This file contains the styles for the contents of the left sidebar, which\n// contains the navigation tree, logo, search etc.\n\n////////////////////////////////////////////////////////////////////////////////\n// Brand on top of the scrollable tree.\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-brand\n display: flex\n flex-direction: column\n flex-shrink: 0\n\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n text-decoration: none\n\n.sidebar-brand-text\n color: var(--color-sidebar-brand-text)\n overflow-wrap: break-word\n margin: var(--sidebar-item-spacing-vertical) 0\n font-size: 1.5rem\n\n.sidebar-logo-container\n margin: var(--sidebar-item-spacing-vertical) 0\n\n.sidebar-logo\n margin: 0 auto\n display: block\n max-width: 100%\n\n////////////////////////////////////////////////////////////////////////////////\n// Search\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-search-container\n display: flex\n align-items: center\n margin-top: var(--sidebar-search-space-above)\n\n position: relative\n\n background: var(--color-sidebar-search-background)\n &:hover,\n &:focus-within\n background: var(--color-sidebar-search-background--focus)\n\n &::before\n content: \"\"\n position: absolute\n left: var(--sidebar-item-spacing-horizontal)\n width: var(--sidebar-search-icon-size)\n height: var(--sidebar-search-icon-size)\n\n background-color: var(--color-sidebar-search-icon)\n mask-image: var(--icon-search)\n\n.sidebar-search\n box-sizing: border-box\n\n border: none\n border-top: 1px solid var(--color-sidebar-search-border)\n border-bottom: 1px solid var(--color-sidebar-search-border)\n\n padding-top: var(--sidebar-search-input-spacing-vertical)\n padding-bottom: var(--sidebar-search-input-spacing-vertical)\n padding-right: var(--sidebar-search-input-spacing-horizontal)\n padding-left: calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size))\n\n width: 100%\n\n color: var(--color-sidebar-search-foreground)\n background: transparent\n z-index: 10\n\n &:focus\n outline: none\n\n &::placeholder\n font-size: var(--sidebar-search-input-font-size)\n\n//\n// Hide Search Matches link\n//\n#searchbox .highlight-link\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0\n margin: 0\n text-align: center\n\n a\n color: var(--color-sidebar-search-icon)\n font-size: var(--font-size--small--2)\n\n////////////////////////////////////////////////////////////////////////////////\n// Structure/Skeleton of the navigation tree (left)\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-tree\n font-size: var(--sidebar-item-font-size)\n margin-top: var(--sidebar-tree-space-above)\n margin-bottom: var(--sidebar-item-spacing-vertical)\n\n ul\n padding: 0\n margin-top: 0\n margin-bottom: 0\n\n display: flex\n flex-direction: column\n\n list-style: none\n\n li\n position: relative\n margin: 0\n\n > ul\n margin-left: var(--sidebar-item-spacing-horizontal)\n\n .icon\n color: var(--color-sidebar-link-text)\n\n .reference\n box-sizing: border-box\n color: var(--color-sidebar-link-text)\n\n // Fill the parent.\n display: inline-block\n line-height: var(--sidebar-item-line-height)\n text-decoration: none\n\n // Don't allow long words to cause wrapping.\n overflow-wrap: anywhere\n\n height: 100%\n width: 100%\n\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n\n &:hover\n color: var(--color-sidebar-link-text)\n background: var(--color-sidebar-item-background--hover)\n\n // Add a nice little \"external-link\" arrow here.\n &.external::after\n content: url('data:image/svg+xml,')\n margin: 0 0.25rem\n vertical-align: middle\n color: var(--color-sidebar-link-text)\n\n // Make the current page reference bold.\n .current-page > .reference\n font-weight: bold\n\n label\n position: absolute\n top: 0\n right: 0\n height: var(--sidebar-item-height)\n width: var(--sidebar-expander-width)\n\n cursor: pointer\n user-select: none\n\n display: flex\n justify-content: center\n align-items: center\n\n .caption, :not(.caption) > .caption-text\n font-size: var(--sidebar-caption-font-size)\n color: var(--color-sidebar-caption-text)\n\n font-weight: bold\n text-transform: uppercase\n\n margin: var(--sidebar-caption-space-above) 0 0 0\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n\n // If it has children, add a bit more padding to wrap the content to avoid\n // overlapping with the
    -
    @@ -210,7 +197,7 @@
    - Documentation FitTrackee 0.8.5 + Documentation FitTrackee 0.8.6 @@ -1661,10 +1648,10 @@

    Authentification et compte +

    - + diff --git a/docs/fr/api/configuration.html b/docs/fr/api/configuration.html index c04539351..3d41d2177 100644 --- a/docs/fr/api/configuration.html +++ b/docs/fr/api/configuration.html @@ -5,12 +5,12 @@ - - Configuration - Documentation FitTrackee 0.8.5 + + Configuration - Documentation FitTrackee 0.8.6 - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@ - + diff --git a/docs/fr/api/equipment_types.html b/docs/fr/api/equipment_types.html index df30529e1..664312b56 100644 --- a/docs/fr/api/equipment_types.html +++ b/docs/fr/api/equipment_types.html @@ -5,12 +5,12 @@ - - Types d’équipement - Documentation FitTrackee 0.8.5 + + Types d’équipement - Documentation FitTrackee 0.8.6 - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
    -
    @@ -210,7 +197,7 @@
    - Documentation FitTrackee 0.8.5 + Documentation FitTrackee 0.8.6 @@ -639,10 +626,10 @@

    Types d’équipement +

    - + diff --git a/docs/fr/api/equipments.html b/docs/fr/api/equipments.html index e0179c154..b046b31c6 100644 --- a/docs/fr/api/equipments.html +++ b/docs/fr/api/equipments.html @@ -5,12 +5,12 @@ - - Équipements - Documentation FitTrackee 0.8.5 + + Équipements - Documentation FitTrackee 0.8.6 - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
    -
    @@ -210,7 +197,7 @@
    - Documentation FitTrackee 0.8.5 + Documentation FitTrackee 0.8.6 @@ -838,10 +825,10 @@

    Équipements +

    - + diff --git a/docs/fr/api/index.html b/docs/fr/api/index.html index 264a44409..ea01f1f4a 100644 --- a/docs/fr/api/index.html +++ b/docs/fr/api/index.html @@ -5,12 +5,12 @@ - - Documentation de l’API - Documentation FitTrackee 0.8.5 + + Documentation de l’API - Documentation FitTrackee 0.8.6 - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
    -
    @@ -210,7 +197,7 @@
    - Documentation FitTrackee 0.8.5 + Documentation FitTrackee 0.8.6 @@ -366,10 +353,10 @@

    Documentation de l’API

    - + - + diff --git a/docs/fr/api/oauth2.html b/docs/fr/api/oauth2.html index 9e0629957..230482e02 100644 --- a/docs/fr/api/oauth2.html +++ b/docs/fr/api/oauth2.html @@ -5,12 +5,12 @@ - - OAuth2 - Documentation FitTrackee 0.8.5 + + OAuth2 - Documentation FitTrackee 0.8.6 - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
    -
    @@ -210,7 +197,7 @@
    - Documentation FitTrackee 0.8.5 + Documentation FitTrackee 0.8.6 @@ -869,10 +856,10 @@

    OAuth2 +

    - + diff --git a/docs/fr/api/records.html b/docs/fr/api/records.html index 98bbbebee..a41b709ce 100644 --- a/docs/fr/api/records.html +++ b/docs/fr/api/records.html @@ -5,12 +5,12 @@ - - Records - Documentation FitTrackee 0.8.5 + + Records - Documentation FitTrackee 0.8.6 - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
    -
    @@ -210,7 +197,7 @@
    - Documentation FitTrackee 0.8.5 + Documentation FitTrackee 0.8.6 @@ -466,10 +453,10 @@

    Records +

    - + diff --git a/docs/fr/api/sports.html b/docs/fr/api/sports.html index 1e1697ea8..6cfc25c25 100644 --- a/docs/fr/api/sports.html +++ b/docs/fr/api/sports.html @@ -5,12 +5,12 @@ - - Sports - Documentation FitTrackee 0.8.5 + + Sports - Documentation FitTrackee 0.8.6 - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
    -
    @@ -210,7 +197,7 @@
    - Documentation FitTrackee 0.8.5 + Documentation FitTrackee 0.8.6 @@ -677,10 +664,10 @@

    Sports +

    - + diff --git a/docs/fr/api/stats.html b/docs/fr/api/stats.html index 8262c47b0..3a63d98c9 100644 --- a/docs/fr/api/stats.html +++ b/docs/fr/api/stats.html @@ -5,12 +5,12 @@ - - Statistiques - Documentation FitTrackee 0.8.5 + + Statistiques - Documentation FitTrackee 0.8.6 - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
    -
    @@ -210,7 +197,7 @@
    - Documentation FitTrackee 0.8.5 + Documentation FitTrackee 0.8.6 @@ -702,10 +689,10 @@

    Statistiques +

    - + diff --git a/docs/fr/api/users.html b/docs/fr/api/users.html index d14ae7349..69d612598 100644 --- a/docs/fr/api/users.html +++ b/docs/fr/api/users.html @@ -5,12 +5,12 @@ - - Utilisateurs - Documentation FitTrackee 0.8.5 + + Utilisateurs - Documentation FitTrackee 0.8.6 - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
    -
    @@ -210,7 +197,7 @@
    - Documentation FitTrackee 0.8.5 + Documentation FitTrackee 0.8.6 @@ -855,10 +842,10 @@

    Utilisateurs +

    - + diff --git a/docs/fr/api/workouts.html b/docs/fr/api/workouts.html index 957b85a0d..0c2366f4d 100644 --- a/docs/fr/api/workouts.html +++ b/docs/fr/api/workouts.html @@ -5,12 +5,12 @@ - - Séances - Documentation FitTrackee 0.8.5 + + Séances - Documentation FitTrackee 0.8.6 - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
    -
    @@ -210,7 +197,7 @@
    - Documentation FitTrackee 0.8.5 + Documentation FitTrackee 0.8.6 @@ -1411,10 +1398,10 @@

    Séances +

    - + diff --git a/docs/fr/changelog.html b/docs/fr/changelog.html index fe5c59e16..06ebce901 100644 --- a/docs/fr/changelog.html +++ b/docs/fr/changelog.html @@ -5,12 +5,12 @@ - - Historique des modifications - Documentation FitTrackee 0.8.5 + + Historique des modifications - Documentation FitTrackee 0.8.6 - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
    -
    @@ -210,7 +197,7 @@
    - Documentation FitTrackee 0.8.5 + Documentation FitTrackee 0.8.6 @@ -296,6 +283,48 @@

    Historique des modifications

    +
    +

    Version 0.8.6 (2024/08/03)

    +
    +

    Traductions

    +
      +
    • PR#590 - Translations update (Italian)

    • +
    • PR#591 - Translations update (Galician)

    • +
    • PR#592 - Translations update (German, Dutch)

    • +
    • PR#593 - Translations update (German)

    • +
    • fb10602 - update and fix translations

    • +
    +

    Avancement de la traduction :

    +
      +
    • Basque : 98%

    • +
    • Tchèque : 73%

    • +
    • Néerlandais : 100%

    • +
    • Anglais : 100%

    • +
    • Français : 100%

    • +
    • Galicien : 100%

    • +
    • Allemand : 99%

    • +
    • Italien : 82%

    • +
    • Norvégien Bokmål : 52%

    • +
    • Polonais : 92%

    • +
    • Portugais : 98%

    • +
    • Espagnol : 100%

    • +
    +
    +
    +

    Divers

    +
      +
    • PR#595 - CI - speed up tests

    • +
    +

    Merci aux contributeurs :

    +
      +
    • @ConfusedAlex

    • +
    • @lukasitaly

    • +
    • @simontb

    • +
    • @slothje

    • +
    • @xmgz

    • +
    +
    +

    Version 0.8.5 (29/06/2024)

    @@ -312,8 +341,8 @@

    Bugs corrigésPR#588 - Fix click on workout chart checkbox labels

    -
    -

    Traductions

    +
    +

    Traductions

    - + diff --git a/docs/fr/cli.html b/docs/fr/cli.html index 13a2b8bcd..eb45e2074 100644 --- a/docs/fr/cli.html +++ b/docs/fr/cli.html @@ -5,12 +5,12 @@ - - Interface de ligne de commande - Documentation FitTrackee 0.8.5 + + Interface de ligne de commande - Documentation FitTrackee 0.8.6 - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
    -
    @@ -210,7 +197,7 @@
    - Documentation FitTrackee 0.8.5 + Documentation FitTrackee 0.8.6 @@ -606,10 +593,10 @@

    ftcli

    - + - + diff --git a/docs/fr/features.html b/docs/fr/features.html index 5a2a8410f..596c4e4f2 100644 --- a/docs/fr/features.html +++ b/docs/fr/features.html @@ -5,12 +5,12 @@ - - Fonctionnalités - Documentation FitTrackee 0.8.5 + + Fonctionnalités - Documentation FitTrackee 0.8.6 - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
    -
    @@ -210,7 +197,7 @@
    - Documentation FitTrackee 0.8.5 + Documentation FitTrackee 0.8.6 @@ -852,10 +839,10 @@

    Administration +

    - + diff --git a/docs/fr/genindex.html b/docs/fr/genindex.html index 4dbd4636f..ee445c4b1 100644 --- a/docs/fr/genindex.html +++ b/docs/fr/genindex.html @@ -4,11 +4,11 @@ - Index - Documentation FitTrackee 0.8.5 + Index - Documentation FitTrackee 0.8.6 - + - + @@ -89,19 +89,6 @@
    - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -180,7 +167,7 @@
    -
    @@ -208,7 +195,7 @@
    - Documentation FitTrackee 0.8.5 + Documentation FitTrackee 0.8.6 @@ -386,10 +373,10 @@

    V

    - + - + diff --git a/docs/fr/http-routingtable.html b/docs/fr/http-routingtable.html index d83f262fb..3d5882233 100644 --- a/docs/fr/http-routingtable.html +++ b/docs/fr/http-routingtable.html @@ -4,11 +4,11 @@ - Table de routage HTTP - Documentation FitTrackee 0.8.5 + Table de routage HTTP - Documentation FitTrackee 0.8.6 - + - + @@ -89,19 +89,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -180,7 +167,7 @@
    -
    @@ -208,7 +195,7 @@
    - Documentation FitTrackee 0.8.5 + Documentation FitTrackee 0.8.6 @@ -731,10 +718,10 @@

    Table de routage HTTP

    - + - + diff --git a/docs/fr/index.html b/docs/fr/index.html index 58466dacc..58e598fb5 100644 --- a/docs/fr/index.html +++ b/docs/fr/index.html @@ -5,12 +5,12 @@ - - Documentation FitTrackee 0.8.5 + + Documentation FitTrackee 0.8.6 - + - + @@ -91,19 +91,6 @@
    - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
    -
    @@ -210,7 +197,7 @@
    - Documentation FitTrackee 0.8.5 + Documentation FitTrackee 0.8.6 @@ -375,10 +362,10 @@

    Table des matières +

    - + diff --git a/docs/fr/installation.html b/docs/fr/installation.html index e953cc7a0..87358a4fe 100644 --- a/docs/fr/installation.html +++ b/docs/fr/installation.html @@ -5,12 +5,12 @@ - - Installation - Documentation FitTrackee 0.8.5 + + Installation - Documentation FitTrackee 0.8.6 - + - + @@ -91,19 +91,6 @@
    - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
    -
    @@ -210,7 +197,7 @@
    - Documentation FitTrackee 0.8.5 + Documentation FitTrackee 0.8.6 @@ -978,11 +965,11 @@

    Environnements de production -
  • Télécharger la dernière version (à ce jour, la version v0.8.5) :

  • +
  • Télécharger la dernière version (à ce jour, la version v0.8.6) :

  • -
    $ wget https://github.com/SamR1/FitTrackee/archive/v0.8.5.tar.gz
    -$ tar -xzf v0.8.5.tar.gz
    -$ mv FitTrackee-0.8.5 FitTrackee
    +
    $ wget https://github.com/SamR1/FitTrackee/archive/v0.8.6.tar.gz
    +$ tar -xzf v0.8.6.tar.gz
    +$ mv FitTrackee-0.8.6 FitTrackee
     $ cd FitTrackee
     
    @@ -1116,11 +1103,11 @@

    Environnement de production
  • Arrêter l’application

  • Changer pour le répertoire dans lequel FitTrackee est localisé

  • -
  • Télécharger la dernière version (à ce jour, la version v0.8.5) et écraser les fichiers existants :

  • +
  • Télécharger la dernière version (à ce jour, la version v0.8.6) et écraser les fichiers existants :

  • -
    -
    @@ -210,7 +197,7 @@
    - Documentation FitTrackee 0.8.5 + Documentation FitTrackee 0.8.6 @@ -472,10 +459,10 @@

    Ressources +

    - + diff --git a/docs/fr/objects.inv b/docs/fr/objects.inv index 3847a4c06..98aae8504 100644 Binary files a/docs/fr/objects.inv and b/docs/fr/objects.inv differ diff --git a/docs/fr/search.html b/docs/fr/search.html index 4a1731649..f7f0d397d 100644 --- a/docs/fr/search.html +++ b/docs/fr/search.html @@ -5,13 +5,13 @@ - + -Recherche - Documentation FitTrackee 0.8.5 +<title>Recherche - Documentation FitTrackee 0.8.6 - + - + @@ -92,19 +92,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -183,7 +170,7 @@

    -
    @@ -211,7 +198,7 @@
    - Documentation FitTrackee 0.8.5 + Documentation FitTrackee 0.8.6 @@ -336,10 +323,10 @@
    -
    +

    - + diff --git a/docs/fr/searchindex.js b/docs/fr/searchindex.js index 807606eb3..c3550129d 100644 --- a/docs/fr/searchindex.js +++ b/docs/fr/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["api/auth", "api/configuration", "api/equipment_types", "api/equipments", "api/index", "api/oauth2", "api/records", "api/sports", "api/stats", "api/users", "api/workouts", "changelog", "cli", "features", "index", "installation", "oauth", "third_party_tools", "troubleshooting/administrator", "troubleshooting/index"], "filenames": ["api/auth.rst", "api/configuration.rst", "api/equipment_types.rst", "api/equipments.rst", "api/index.rst", "api/oauth2.rst", "api/records.rst", "api/sports.rst", "api/stats.rst", "api/users.rst", "api/workouts.rst", "changelog.md", "cli.rst", "features.rst", "index.rst", "installation.rst", "oauth.rst", "third_party_tools.rst", "troubleshooting/administrator.rst", "troubleshooting/index.rst"], "titles": ["Authentification et compte", "Configuration", "Types d\u2019\u00e9quipement", "\u00c9quipements", "Documentation de l\u2019API", "OAuth2", "Records", "Sports", "Statistiques", "Utilisateurs", "S\u00e9ances", "Historique des modifications", "Interface de ligne de commande", "Fonctionnalit\u00e9s", "FitTrackee", "Installation", "OAuth 2.0", "Outils tiers", "Administrateur", "D\u00e9pannage"], "terms": {"post": [0, 3, 5, 10, 16], "api": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16], "auth": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "regist": 0, "enregistr": [0, 12, 13, 16], "utilis": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 15, 16], "envoi": [0, 9, 11, 13, 15, 16], "courriel": [0, 9, 11, 13, 18], "confirm": [0, 5, 11, 13, 15], "Le": [0, 3, 11, 13, 15], "nouvel": [0, 3, 9, 12, 13, 15], "cr\u00e9": [0, 3, 5, 10, 11, 12, 13, 15, 16], "inact": [0, 3, 9, 10, 13, 15], "L": [0, 1, 2, 7, 11, 13, 15, 16], "doit": [0, 1, 2, 3, 5, 7, 10, 11, 13, 15, 16, 18], "adress": [0, 1, 9, 12, 13, 15], "\u00e9lectron": [0, 1, 9, 12, 13, 15], "activ": [0, 1, 2, 7, 9, 11, 12, 13, 14, 15], "exempl": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16], "requ\u00eat": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 16], "http": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 16], "1": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 15], "content": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "typ": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15], "appliqu": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16], "json": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13], "r\u00e9pons": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "succes": [0, 2, 3, 5, 7, 8, 10], "200": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 15], "success": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "status": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13], "erreur": [0, 5, 11, 13, 18], "lor": [0, 12, 13], "400": [0, 1, 2, 3, 5, 7, 8, 9, 10, 11], "bad": [0, 1, 2, 3, 5, 7, 8, 9, 10], "request": [0, 1, 2, 3, 5, 7, 8, 9, 10, 15, 16], "messag": [0, 1, 5, 9, 10, 11, 12, 13, 15, 16], "error": [0, 1, 2, 3, 7, 9, 10, 11, 15], "email": [0, 1, 9, 11, 12, 18], "valid": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 18], "must": [0, 1, 3, 9, 10, 11], "be": [0, 1, 3, 9, 10, 11, 15], "provided": [0, 1, 3, 9], "objet": [0, 1, 2, 3, 7, 9, 10], "usernam": [0, 9, 12, 15], "string": [0, 1, 3, 5, 7, 8, 9, 10], "nom": [0, 5, 8, 9, 11, 12, 15], "3": [0, 2, 7, 8, 9, 10, 13, 15], "30": [0, 8], "caracter": [0, 3, 5, 11, 15, 16], "requ": [0, 16], "password": [0, 11, 12, 15], "mot": [0, 9, 12, 13, 15], "pass": [0, 9, 12, 13, 15], "8": [0, 1, 10, 12, 13, 15, 16], "minimum": 0, "lang": [0, 11, 12], "pr\u00e9f\u00e9rent": [0, 3, 9, 12], "langu": [0, 11, 12, 13], "interfac": [0, 11, 13, 14, 15], "si": [0, 3, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18], "non": [0, 2, 3, 5, 7, 8, 10, 11, 14, 15], "fourn": [0, 3, 5, 8, 10, 12, 13, 15, 16, 18], "ser": [0, 3, 10, 11, 12, 13, 15], "anglais": [0, 11, 12, 13], "accepted_policy": 0, "boolean": [0, 1, 2, 3, 5, 7, 9, 12], "tru": [0, 1, 2, 3, 5, 7, 9, 11, 15], "a": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14], "accept": [0, 11, 13], "polit": [0, 1, 11, 13], "confidential": [0, 1, 11, 13], "cod": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 16], "\u00e9tat": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "ok": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "invalid": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 15], "payload": [0, 1, 2, 5, 7, 9, 10], "sorry": 0, "that": [0, 3, 11], "is": [0, 3, 10, 11], "already": [0, 3, 11], "taken": 0, "you": [0, 1, 2, 3, 7, 8, 9, 10, 15], "agre": 0, "privacy": [0, 11], "policy": [0, 11], "to": [0, 1, 3, 8, 10, 11, 15, 17], "character": [0, 3, 11], "required": 0, "only": [0, 10, 11], "alphanumeric": 0, "and": [0, 3, 11, 12, 15], "the": [0, 2, 3, 7, 9, 10, 11, 15], "underscor": 0, "charact": 0, "_": [0, 11], "allowed": [0, 10], "403": [0, 1, 2, 3, 7, 8, 9, 10], "forbidden": [0, 1, 2, 3, 7, 8, 9, 10], "registr": [0, 11], "disabled": 0, "500": [0, 1, 2, 3, 7, 9, 10, 11], "internal": [0, 1, 2, 3, 7, 9, 10], "serv": [0, 1, 2, 3, 7, 9, 10, 11, 15], "pleas": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "try": [0, 2, 3, 7, 9, 10], "again": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "or": [0, 1, 2, 3, 7, 9, 10, 11], "contact": [0, 1, 2, 3, 7, 9, 10, 13], "administrator": [0, 2, 3, 7, 9, 10], "account": [0, 9, 11], "apres": [0, 5, 11, 13, 15, 16], "inscript": [0, 1, 11, 13, 15], "auth_token": 0, "web": [0, 5, 14, 15, 16], "token": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 16], "successful": 0, "jeton": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 15, 16], "resend": 0, "renvoi": [0, 5, 9, 10], "instruct": [0, 11, 13, 15], "d\u00e9sactiv": [0, 11, 12, 13, 15], "point": [0, 1, 5, 11, 13, 15, 16], "acces": [0, 1, 5, 16], "disponibl": [0, 6, 12, 13, 15, 16, 17], "resent": 0, "404": [0, 2, 3, 5, 7, 8, 9, 10, 11], "not": [0, 1, 2, 3, 5, 7, 8, 9, 10, 11, 13, 15], "found": [0, 2, 3, 5, 7, 8, 9, 10, 11], "requested": 0, "url": [0, 5, 11, 15, 16, 18], "was": [0, 3], "login": [0, 11], "connexion": [0, 15], "seul": [0, 3, 5, 8, 9, 10, 11, 13, 15, 16], "dispos": [0, 9, 13], "actif": [0, 3, 12, 13], "peuvent": [0, 11, 13, 14, 15], "connect": [0, 13], "successfully": 0, "logged": 0, "in": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16], "401": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "unauthorized": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "credential": 0, "get": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "profil": [0, 5, 11, 16], "obten": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 16], "inform": [0, 1, 9, 11, 13, 14, 15], "authentifi": [0, 1, 2, 5, 6, 7, 8, 9, 10, 13], "scop": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "read": [0, 2, 3, 5, 6, 7, 8, 9, 10, 16], "dat": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13], "accepted_privacy_policy": 0, "admin": [0, 1, 2, 6, 7, 8, 9, 10, 12, 15], "fals": [0, 1, 2, 5, 7, 9, 10, 15], "bio": [0, 9], "null": [0, 1, 3, 7, 9, 10, 11], "birth_dat": [0, 9], "created_at": [0, 9], "sun": [0, 6, 9, 10], "14": [0, 5, 9, 10], "jul": [0, 6, 9, 10], "2019": [0, 6, 8, 9, 10], "09": [0, 9], "58": [0, 9, 11], "gmt": [0, 3, 5, 6, 9, 10], "date_format": 0, "dd": 0, "mm": 0, "yyyy": 0, "display_ascent": 0, "sam": [0, 3, 6, 9, 10, 11], "exampl": [0, 1, 5, 9, 11, 15, 16], "com": [0, 1, 5, 9, 11, 15, 16], "email_to_confirm": 0, "first_nam": [0, 9], "imperial_unit": [0, 9], "is_act": [0, 2, 3, 7, 9], "languag": [0, 9, 11, 12], "last_nam": [0, 9], "locat": [0, 9, 15], "nb_sport": [0, 9], "nb_workout": [0, 9], "6": [0, 2, 3, 7, 9, 10, 12, 13, 15], "pictur": [0, 9, 10, 11], "record": [0, 4, 9, 10, 11, 13], "id": [0, 2, 3, 5, 6, 7, 9, 10], "9": [0, 6, 9, 13, 15], "record_typ": [0, 6, 9, 10], "AS": [0, 6, 9, 10], "sport_id": [0, 3, 6, 7, 8, 9, 10], "user": [0, 1, 3, 6, 8, 9, 10, 11, 15, 16], "valu": [0, 6, 9, 10, 11], "18": [0, 6, 9, 10, 13, 15], "workout_dat": [0, 6, 9, 10], "07": [0, 6, 9, 10], "08": [0, 3, 6, 9, 10], "00": [0, 3, 6, 9, 10], "workout_id": [0, 6, 9, 10], "hvybqybra7wwxpastwr4v2": [0, 6, 9, 10], "10": [0, 1, 3, 6, 9, 10, 13, 15], "fd": [0, 6, 9, 10], "13": [0, 6, 9, 10, 12, 13, 15], "ha": [0, 6, 9, 10], "43": [0, 6, 9, 10, 11], "97": [0, 6, 9, 10, 11], "11": [0, 6, 9, 13, 15], "ld": [0, 6, 9, 10], "01": [0, 6, 8, 9, 10], "12": [0, 6, 9, 10, 15, 17], "MS": [0, 6, 9, 10], "sports_list": [0, 9], "4": [0, 2, 7, 8, 9, 10, 12, 13, 15], "start_elevation_at_zero": 0, "timezon": [0, 9, 11], "europ": [0, 9], "paris": [0, 9], "total_ascent": [0, 8], "720": 0, "35": [0, 11], "total_dist": [0, 3, 8, 9], "67": [0, 8, 9], "895": [0, 9], "total_dur": [0, 3, 8, 9], "50": [0, 3, 8, 9, 11, 15], "27": [0, 5, 9, 13], "use_dark_mod": 0, "use_raw_gpx_speed": 0, "weekm": [0, 8, 9], "En": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14], "t\u00eat": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 16], "authoriz": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 16], "oauth": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 14, 15], "2": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13, 14, 15], "0": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15], "bear": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "provid": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "signatur": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "expired": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "log": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 18], "edit": [0, 11, 13], "modifi": [0, 2, 3, 7, 9, 12, 13, 15], "writ": [0, 1, 2, 3, 5, 7, 9, 10, 16], "updated": [0, 3, 11], "pr\u00e9nom": 0, "famill": 0, "localis": [0, 15], "biograph": 0, "naissanc": 0, "format": [0, 8, 10, 11, 13, 14], "Y": [0, 8, 10], "preferent": [0, 11], "pris": [0, 5, 11, 12, 13, 15, 16], "charg": [0, 5, 11, 12, 13, 15, 16, 19], "valeur": [0, 3, 5, 10, 12, 13, 15, 16, 18], "d\u00e9faut": [0, 3, 5, 9, 10, 11, 12, 13, 15], "date_string": 0, "correspond": [0, 10, 15], "mmm": 0, "do": [0, 1, 2, 3, 7, 8, 9, 10, 11], "local": [0, 11, 14, 15], "e": 0, "fr": [0, 9, 15], "gl": 0, "it": [0, 3], "nl": 0, "nb": 0, "affich": [0, 10, 11, 12, 13, 14, 15, 16, 19], "dan": [0, 1, 3, 10, 11, 12, 13, 14, 15, 16, 19], "d\u00e9nivel": [0, 6, 10, 13], "total": [0, 3, 5, 8, 10, 11, 13], "distanc": [0, 6, 10, 11, 13], "unit": [0, 11, 15], "imp\u00e9rial": [0, 13], "Les": [0, 6, 10, 13, 14, 15, 16, 19], "graphiqu": [0, 11, 13, 15], "altitud": [0, 11, 13], "commencent": 0, "z\u00e9ro": [0, 13], "fuseau": [0, 10, 13], "horair": [0, 10, 13], "them": [0, 11, 13], "sombr": [0, 13], "vrai": 0, "s\u00e9lection": [0, 13], "selon": [0, 13, 15], "navig": [0, 11, 13, 15], "gpx": [0, 5, 10, 11, 13, 14, 15, 17], "filtr": [0, 11, 13], "calcul": [0, 8, 11, 13], "vitess": [0, 6, 10, 11, 13, 15], "La": [0, 11, 12, 13, 15, 16, 18], "semain": [0, 8, 13], "commenc": [0, 8, 11, 13, 15, 18], "lund": [0, 8, 13], "don": [0, 5, 8, 10, 11, 13, 14, 16, 18], "match": 0, "sport": [0, 1, 3, 4, 8, 10, 11, 15], "color": [0, 7, 11], "000000": 0, "default_equipment_id": 0, "stopped_speed_threshold": [0, 7], "user_id": [0, 3], "int": [0, 2, 3, 5, 7, 10], "lequel": [0, 15], "couleur": [0, 13], "hexad\u00e9cimal": 0, "ajout": [0, 9, 11, 12, 13, 14, 15, 17], "s\u00e9anc": [0, 1, 3, 4, 7, 8, 11, 14, 16, 17, 19], "float": [0, 10], "seuil": [0, 13], "arr\u00eat": [0, 11, 13, 15], "gpxpy": [0, 11, 13, 15], "array": [0, 3, 5, 10], "of": [0, 1, 3, 10, 11, 15, 16], "\u00e9quip": [0, 4, 10, 11, 16], "moment": [0, 10, 11, 13], "peut": [0, 3, 8, 9, 10, 11, 12, 13, 15, 16], "\u00eatre": [0, 3, 5, 10, 11, 12, 13, 14, 15, 16, 18], "associ": [0, 3, 5, 7, 10, 11, 12, 13, 16], "hexadecimal": 0, "equipment_id": [0, 10], "an": [0, 5, 10, 11], "one": [0, 10], "equipment": [0, 2, 3, 10, 11, 16], "can": [0, 9, 10, 11, 15, 18], "added": [0, 3, 10, 11], "with": [0, 3, 10, 11, 15], "exist": [0, 3, 8, 9, 10, 11, 13, 14, 15], "for": [0, 1, 3, 10, 11, 15], "delet": [0, 3, 5, 9, 10, 11], "reset": [0, 11, 12], "r\u00e9initialis": [0, 9, 12, 13, 15], "204": [0, 3, 5, 9, 10], "parametr": [0, 2, 3, 5, 7, 8, 9, 10, 11, 13, 16], "identifi": [0, 5, 7, 8, 10, 16], "no": [0, 3, 5, 9, 10, 11], "supprim": [0, 3, 5, 9, 10, 11, 12, 13], "mis": [0, 3, 7, 9, 10, 11, 13, 16], "jour": [0, 1, 3, 7, 9, 10, 11, 12, 13], "imag": [0, 9, 10, 11, 13, 15, 19], "multipart": [0, 5, 10], "form": [0, 5, 10, 11], "fil": [0, 1, 10, 11, 15], "fichi": [0, 1, 10, 11, 12, 13, 14, 15, 17, 19], "extens": [0, 10, 15], "autoris": [0, 1, 5, 10, 15, 16], "jpg": 0, "png": [0, 10, 15], "gif": 0, "part": [0, 10, 11, 13, 14, 16, 17], "selected": [0, 10], "413": [0, 10], "entity": [0, 10], "too": [0, 10], "larg": [0, 10, 15], "during": [0, 3, 10], "updat": [0, 3, 10, 11, 15], "siz": [0, 1, 10, 11, 15], "exceed": [0, 3, 10, 11], "0mb": [0, 10], "trait": [0, 12], "demand": [0, 11, 12, 13, 15], "processed": 0, "patch": [0, 1, 2, 3, 7, 9, 10], "suiv": [0, 6, 13, 15, 16, 17, 18], "modif": [0, 13, 14], "chang": [0, 3, 11, 13, 15], "actuel": [0, 3], "autr": [0, 9, 13, 15], "new_password": 0, "nouveau": [0, 12, 13, 15, 16], "missing": [0, 11], "current": [0, 9, 11], "uniqu": [0, 5, 11, 12, 15, 16], "new": [0, 3, 9, 11, 13], "logout": [0, 11], "d\u00e9connexion": 0, "out": 0, "access": [0, 11], "revoked": 0, "malformed": 0, "other": [0, 3, 9], "reason": 0, "blacklist": 0, "export": [0, 11, 12, 13, 14, 15], "archiv": [0, 1, 11, 12, 13, 15], "Il": [0, 11, 13, 14, 15, 16], "cr\u00e9ation": [0, 11, 13], "in_progress": 0, "errored": 0, "taill": [0, 1, 13, 15], "octet": 0, "lorsqu": [0, 11, 12, 15], "r\u00e9uss": 0, "wed": 0, "mar": [0, 3, 11, 15], "2023": [0, 3, 15], "31": [0, 10, 13, 15], "17": [0, 10, 13], "file_nam": 0, "archive_rgjsr3fht295ywnqr5yp": 0, "zip": [0, 1, 10, 11, 13], "file_siz": 0, "924": 0, "aucun": [0, 3, 10, 13, 14, 15], "ongoing": 0, "completed": 0, "t\u00e9l\u00e9charg": [0, 10, 12, 13, 15, 19], "download": [0, 10, 11], "archive_rgjsr3fhr5yp": 0, "x": [0, 10, 11, 15, 16], "gzip": 0, "config": [1, 11, 15], "about": [1, 11, 15], "admin_contact": 1, "gpx_limit_import": 1, "is_email_sending_enabled": 1, "is_registration_enabled": 1, "max_single_file_siz": 1, "1048576": 1, "max_user": 1, "max_zip_file_siz": 1, "10485760": 1, "map_attribu": [1, 15], "copy": [1, 15], "href": [1, 15], "www": [1, 15], "openstreetmap": [1, 11, 15], "org": [1, 15], "copyright": [1, 15], "contributor": [1, 15], "privacy_policy": 1, "privacy_policy_dat": 1, "stats_workouts_lim": 1, "10000": 1, "version": [1, 12, 13, 15, 16], "5": [1, 2, 5, 7, 8, 9, 10, 12, 13, 15], "weather_provid": 1, "getting": 1, "mettr": [1, 9, 10, 11, 12, 13, 15], "avoir": [1, 2, 7, 15], "droit": [1, 2, 7, 9, 11, 12, 13, 15, 16], "administr": [1, 2, 7, 9, 12, 15, 16, 19], "instanc": [1, 11, 13, 15], "integ": [1, 2, 3, 5, 7, 8, 9, 10], "nombr": [1, 9, 10, 12, 13, 15], "maximum": [1, 13], "maximal": [1, 6, 10, 11, 12, 13], "inscrir": [1, 11, 13, 15], "statist": [1, 4], "max": [1, 9, 10, 11, 12], "great": [1, 11], "than": [1, 9, 11], "equal": 1, "uploaded": [1, 11, 15], "numb": [1, 11, 15], "workout": [1, 3, 5, 6, 7, 8, 10, 11, 16], "statistic": [1, 8, 11], "hav": [1, 2, 3, 7, 8, 9, 10, 11], "perm": [1, 2, 3, 7, 8, 9, 10], "when": [1, 11], "updating": 1, "ping": 1, "contr\u00f4l": 1, "pong": 1, "tous": [2, 3, 5, 6, 7, 8, 9, 11, 13, 15], "equipment_typ": [2, 3], "label": [2, 3, 7, 11, 13], "sho": [2, 3], "bik": [2, 3], "train": 2, "kayak_boat": 2, "skis": [2, 13], "snowsho": [2, 11], "has_equipment": 2, "equipment_type_id": [2, 3], "trouv": [2, 3, 5, 7, 10], "d\u00e9": 2, "propri\u00e9tair": [3, 11, 13], "voir": [3, 11, 13, 15, 16, 18], "quelqu": [3, 9, 10, 11, 13, 16], "creation_dat": [3, 10], "Tue": 3, "21": 3, "06": [3, 5, 8], "default_for_sport_id": 3, "descript": [3, 5, 12, 13, 15], "first": [3, 11], "fittracke": [3, 5, 12, 13, 15, 16, 17, 19], "2ukrviyshoakg8qsuknus4": 3, "my": 3, "total_moving": 3, "workouts_count": [3, 9], "29": 3, "second": [3, 10], "equipment_short_id": 3, "anoth": 3, "piec": 3, "court": [3, 10], "201": [3, 10, 11], "created": [3, 5, 10], "from": [3, 8, 10, 11, 15], "bref": 3, "moin": [3, 10], "\u00e9ventuel": 3, "plus": [3, 6, 11, 12, 13, 14, 15, 18], "longu": [3, 6, 11, 13], "limit": [3, 11, 13], "facult": [3, 16], "integer": 3, "obligatoir": [3, 5, 8, 10, 11, 12, 15, 16], "parameter": [3, 11], "sport_label": 3, "equipment_type_label": 3, "sav": [3, 11], "permet": [3, 11, 12, 13, 14, 16], "statut": [3, 9, 12], "tout": [3, 8, 13, 15], "d\u00e9fin": [3, 11, 13, 16, 18], "qrj7by6h2iyjsv8sersfgv": 3, "28": 3, "supplied": 3, "refresh": 3, "recalcul": [3, 13], "cas": [3, 5, 13, 15], "o\u00f9": [3, 13, 15], "incorrect": [3, 11, 13], "Un": [3, 9, 11, 13, 15], "propr": [3, 9, 13, 14], "suppress": [3, 11, 13], "forc": 3, "entre": [3, 5, 10, 13, 16], "import": [3, 5, 11, 13, 15], "tant": 3, "argument": [3, 12], "requis": 3, "cel": [3, 11, 13, 15], "enlev": 3, "cannot": [3, 11], "has": [3, 9, 11], "associated": [3, 11], "without": [3, 10, 11], "paramet": [3, 15], "authentif": [4, 15, 16], "compt": [4, 9, 10, 11, 12, 15, 17], "configur": [4, 11, 13, 15, 16, 18], "oauth2": [4, 16], "app": [5, 11, 15, 16], "client": [5, 11, 13, 15, 16], "pagin": [5, 9, 10], "pag": [5, 9, 10, 11], "Ce": 5, "accessibl": [5, 11, 15, 16], "san": [5, 8, 9, 10, 11, 13, 14, 15], "client_descript": 5, "client_id": [5, 16], "o22a27s2abpuoxjbxv3ujdox": 5, "issued_at": 5, "thu": 5, "july": 5, "2022": 5, "53": [5, 11], "nam": [5, 11], "redirect_ur": 5, "callback": [5, 16], "websit": 5, "has_next": 5, "has_prev": 5, "client_secret": 5, "secret": [5, 15, 16], "client_nam": 5, "client_ur": 5, "list": [5, 10, 11, 12, 14, 15], "redirect": [5, 11, 16], "cha\u00een": [5, 16], "optionnel": [5, 15], "client_client_id": 5, "by_id": 5, "enti": 5, "revok": 5, "r\u00e9voqu": 5, "redirig": [5, 16], "ver": [5, 11, 15, 16], "\u00e9mettr": 5, "response_typ": [5, 16], "support": [5, 11, 15, 16, 18], "stat": [5, 8, 11, 16], "\u00e9vit": [5, 11, 13], "falsif": [5, 16], "sit": [5, 16], "cross": [5, 16], "forgery": [5, 16], "csrf": [5, 16], "recommand": [5, 15, 16], "code_challeng": [5, 16], "g\u00e9ner": [5, 12, 13, 15, 16], "v\u00e9rif": [5, 11, 16, 18], "pkce": [5, 16], "code_challenge_method": [5, 16], "m\u00e9thod": [5, 15, 16], "challeng": [5, 16], "s256": [5, 16], "librair": [5, 15], "authlib": [5, 15, 16], "d\u00e9livr": 5, "rafra\u00eech": 5, "access_token": 5, "roehv64thcg28wcewzhrnvlusoduvw8nvnhkcml57": 5, "expires_in": 5, "864000": 5, "refresh_token": 5, "nuv9cy8vqonrqkhtz5pqaq2zw7msh0mornpjr14amswd6f6": 5, "token_typ": 5, "expires_at": 5, "1658660147": 5, "0667062": 5, "grant_typ": 5, "authorization_cod": [5, 16], "\u00e9miss": 5, "code_verifi": 5, "moyen": [6, 8, 10, 11, 13, 15], "\u00e9lev": [6, 13, 15], "dur": [6, 10, 11, 13], "retourn": [6, 8], "is_active_for_us": 7, "cycling": [7, 11], "transport": [7, 11, 13], "hiking": 7, "mountain": 7, "biking": [7, 10], "running": 7, "walking": 7, "check_workout": 7, "has_workout": 7, "v\u00e9rifi": [7, 15, 18], "user_nam": [8, 9], "by_tim": 8, "entra\u00een": [8, 10, 13], "p\u00e9riod": [8, 13, 15], "temp": 8, "acced": [8, 15, 16], "2018": [8, 10], "tim": [8, 10, 11], "week": [8, 11], "2017": [8, 10], "total_workout": 8, "203": 8, "156": [8, 11], "15": [8, 10, 12, 13, 15], "282": [8, 11], "12341": 8, "150": 8, "178": [8, 11], "47": [8, 10, 11], "9960": 8, "46": [8, 11], "78": 8, "613": 8, "1267": 8, "average_ascent": 8, "101": [8, 11], "average_dist": 8, "average_dur": 8, "7641": 8, "average_speed": 8, "48": 8, "average_descent": 8, "59": [8, 11], "33": [8, 11], "3320": 8, "16": [8, 10, 13], "99": [8, 11], "95": [8, 11], "d\u00e9but": [8, 10], "fin": [8, 10, 11, 15], "dimanch": [8, 13], "month": [8, 11], "mois": [8, 11, 13], "year": 8, "ann\u00e9": [8, 13], "default": [8, 10, 11, 15], "averag": [8, 11], "period": 8, "by_sport": 8, "all": [8, 15], "uploads_dir_siz": 8, "1000": 8, "Ne": 9, "order_by": [9, 10], "par_pag": 9, "is_admin": 9, "sat": 9, "20": [9, 13], "03": [9, 10], "per_pag": [9, 10], "q": 9, "order": [9, 10, 11], "ordre": [9, 10], "tri": [9, 10, 13], "asc": [9, 10], "desc": [9, 10], "criter": 9, "jpeg": 9, "activat": [9, 12], "new_email": 9, "reset_password": 9, "different": [9, 11], "sauf": [9, 15], "sien": 9, "john_do": 9, "your": 9, "right": [9, 11], "02": 10, "ascent": [10, 11], "ave_speed": 10, "bound": 10, "51": 10, "descent": [10, 11], "durat": [10, 11], "04": 10, "kjxavsturjvoah2wvcegef": 10, "map": [10, 11, 13, 14], "max_alt": 10, "max_speed": 10, "min_alt": 10, "modification_dat": 10, "moving": [10, 11], "next_workout": 10, "paus": [10, 11], "previous_workout": 10, "Mon": 10, "jan": 10, "segment": [10, 11, 13], "titl": [10, 11], "weather_end": 10, "weather_start": 10, "with_gpx": 10, "100": [10, 11, 13], "titr": [10, 13], "tient": 10, "majuscul": 10, "minuscul": 10, "distance_from": 10, "minimal": [10, 11, 13, 16], "distance_to": 10, "duration_from": 10, "h": [10, 13], "M": 10, "duration_to": 10, "ave_speed_from": 10, "ave_speed_to": 10, "max_speed_from": 10, "max_speed_to": 10, "sorting": 10, "criteri": 10, "workout_short_id": 10, "57": [10, 11], "45": 10, "22": 10, "sunday": 10, "morning": 10, "cart": [10, 11, 13, 14, 15, 19], "leaflet": [10, 15], "this": [10, 12, 15], "chart_dat": 10, "r\u00e9cuper": [10, 13, 15, 16], "chart": [10, 11, 15], "js": [10, 15], "elev": [10, 11], "279": [10, 11], "latitud": 10, "5078118": 10, "longitud": 10, "1232004": 10, "speed": [10, 11], "63": 10, "fri": 10, "44": [10, 11], "7": [10, 12, 13, 15, 16], "7380": 10, "280": [10, 11], "5079733": 10, "1234538": 10, "39": 10, "segment_id": 10, "map_id": 10, "fa33f4d996844a5c73ecd1ae24456ab8": 10, "1563529507772": 10, "map_til": 10, "z": [10, 15], "tuil": [10, 11, 13], "serveur": [10, 11, 13, 14, 18], "4109": 10, "2930": 10, "sous": [10, 15], "domain": [10, 15], "zoom": 10, "index": 10, "axe": [10, 13], "xml": 10, "guillemet": 10, "doubl": 10, "doivent": [10, 15, 16], "\u00e9chapp": [10, 11], "Pour": [10, 11, 13, 15, 16], "no_gpx": 10, "uuid": [10, 11], "posit": [10, 11, 13], "n\u00e9gat": [10, 13], "km": [10, 13], "d\u00e9j\u00e0": [10, 12], "remplac": [10, 11, 13, 15], "vid": [10, 12, 15], "566": 11, "featur": 11, "improved": 11, "section": 11, "pr": 11, "575": 11, "add": 11, "display": 11, "587": [11, 15], "improv": 11, "588": 11, "fix": [11, 15], "click": 11, "checkbox": 11, "564": 11, "translat": 11, "dutch": 11, "565": 11, "polish": 11, "571": 11, "galician": [11, 13], "spanish": 11, "582": 11, "avanc": [11, 13], "basqu": [11, 13], "98": 11, "tchequ": [11, 13], "73": 11, "n\u00e9erland": [11, 13], "galicien": 11, "allemand": [11, 13], "italien": [11, 13], "norv\u00e9gien": [11, 13], "bokm\u00e5l": [11, 13], "52": 11, "polon": [11, 13], "92": 11, "portug": [11, 13], "espagnol": [11, 13], "583": 11, "simplify": 11, "dock": 11, "deployment": 11, "merc": 11, "contributeur": [11, 15, 17], "byakurau": 11, "gallegonovato": 11, "jderuit": 11, "pluj": 11, "xmgz": 11, "Cette": [11, 14, 15], "contient": [11, 13, 15], "migrat": [11, 12, 15], "bas": [11, 13, 15, 18], "mainten": [11, 15], "f2aec30": 11, "strength": 11, "estim": 11, "czech": 11, "563": 11, "cli": [11, 12, 13, 15], "init": 11, "creation": 11, "550": 11, "typo": 11, "instead": 11, "per": [11, 15], "551": 11, "555": 11, "558": 11, "portugues": 11, "74": 11, "88": 11, "556": 11, "minor": 11, "refacto": 11, "557": 11, "prepar": 11, "sqlalchemy": [11, 15, 18], "jmlich": 11, "voodoopt": 11, "546": 11, "are": 11, "refreshed": 11, "after": [11, 15], "displaying": 11, "545": 11, "urtzai": 11, "540": 11, "german": [11, 15], "542": 11, "544": 11, "543": 11, "tool": 11, "replac": 11, "black": 11, "flake8": 11, "isort": 11, "ruff": 11, "ondrejzivny": 11, "qwerty287": 11, "527": 11, "endpoint": 11, "respons": 11, "531": 11, "mobil": [11, 14], "532": 11, "foot": 11, "dark": 11, "mod": 11, "536": 11, "accessibility": 11, "526": 11, "norwegian": 11, "533": 11, "534": 11, "537": 11, "538": 11, "528": 11, "readm": 11, "reworked": 11, "530": 11, "specify": 11, "agplv3": 11, "licens": [11, 14, 15], "comradekingu": 11, "d\u00e9sorm": 11, "259": 11, "512": 11, "ability": 11, "filt": 11, "508": 11, "stopped": 11, "threshold": 11, "3b6fa25": 11, "tabl": 11, "small": 11, "resolu": 11, "51758b4": 11, "filter": 11, "hiding": 11, "507": 11, "510": 11, "511": 11, "521": 11, "524": 11, "89": 11, "75": 11, "502": 11, "remov": 11, "deprecated": 11, "command": [11, 13, 14, 15], "506": 11, "databas": [11, 12, 15], "jat255": 11, "504": 11, "fail": 11, "496": 11, "499": 11, "84": 11, "60": 11, "bjornclauw": 11, "mariuz": 11, "495": 11, "menu": [11, 13], "clicking": 11, "490": 11, "EU": 11, "494": 11, "install": [11, 14], "python": [11, 15, 16], "erral": 11, "b748459": 11, "alert": 11, "481": 11, "handl": 11, "keyboard": 11, "dropdown": 11, "3821e37": 11, "mak": [11, 15], "calendar": 11, "arrow": 11, "488": 11, "489": 11, "482": 11, "484": 11, "aff4d68": 11, "ci": 11, "action": 11, "8aa4cff": 11, "load": [11, 18], "478": 11, "clickabl": 11, "dashboard": 11, "479": 11, "ui": 11, "476": 11, "477": 11, "475": 11, "build": [11, 15], "use": 11, "poetry": [11, 15], "cor": 11, "traxy": 11, "koen": 11, "474": 11, "link": 11, "6e215a": 11, "background": 11, "modal": 11, "displayed": 11, "473": 11, "113": 11, "464": 11, "471": 11, "trekking": [11, 13], "469": 11, "472": 11, "resetting": 11, "468": 11, "456": 11, "drop": 11, "postgresql": [11, 15, 18], "85": 11, "61": 11, "davidhenrythoreau": 11, "224": 11, "result": 11, "444": 11, "d\u00e9pend": 11, "449": 11, "vu": [11, 15], "tooling": 11, "library": 11, "450": 11, "441": 11, "upgrad": [11, 15], "433": 11, "encoded": 11, "427": 11, "typos": 11, "431": 11, "428": 11, "2bcff2e": 11, "flask": [11, 15], "436": 11, "438": 11, "workflow": 11, "421": 11, "darksky": [11, 15], "avail": 11, "weath": 11, "provider": 11, "env": [11, 15], "426": 11, "til": [11, 15], "thank": 11, "astridx": 11, "422": 11, "e2e": 11, "test": [11, 15], "packaged": 11, "411": 11, "various": 11, "416": 11, "closing": 11, "410": 11, "415": 11, "417": 11, "418": 11, "mariusz": 11, "407": 11, "zero": 11, "409": 11, "open": [11, 13, 14], "wat": 11, "swimming": 11, "398": 11, "402": 11, "399": 11, "406": 11, "56": 11, "380": 11, "390": 11, "391": 11, "paragliding": 11, "384": 11, "inconsistent": 11, "between": 11, "gp": [11, 13], "393": 11, "pil": 11, "modul": [11, 15], "attribut": 11, "antiali": 11, "394": 11, "397": 11, "386": 11, "contributing": 11, "md": 11, "388": 11, "395": 11, "cc3fe1c": 11, "42": 11, "dkm": 11, "partiel": 11, "quant": 11, "encor": [11, 14], "weblat": [11, 13], "351": 11, "370": 11, "371": 11, "375": 11, "french": [11, 13], "thovi98": 11, "376": 11, "1375986": 11, "furo": 11, "377": 11, "354": 11, "374": 11, "virtualenv": [11, 15], "87": 11, "36": 11, "366": 11, "369": 11, "hosted": 11, "367": 11, "358": 11, "filtering": 11, "359": 11, "overlap": 11, "350": 11, "352": 11, "356": 11, "357": 11, "365": 11, "gnu": 11, "ewm": 11, "parm": 11, "dessous": 11, "servic": [11, 15], "319": 11, "creat": [11, 15], "329": 11, "start": 11, "axis": 11, "at": [11, 15], "sticky": 11, "333": 11, "by": [11, 15], "338": 11, "relev": 11, "328": 11, "track": 11, "imperial": 11, "b29ed7": 11, "250": 11, "320": 11, "323": 11, "06ba975": 11, "bcc568e": 11, "ea0ac99": 11, "a458f5f": 11, "075aeb9": 11, "60e164d": 11, "italian": 11, "318": 11, "J": 11, "lavoi": 11, "mondstern": 11, "314": 11, "deleted": 11, "process": [11, 15], "315": 11, "Une": [11, 12, 13, 15, 18], "personnalis": [11, 13], "afin": [11, 13, 16], "puissent": [11, 13], "prendr": [11, 13], "connaiss": [11, 13], "conten": [11, 13, 15], "t\u00e9l\u00e9vers": [11, 13], "enfin": 11, "compl\u00e9mentair": 11, "pouv": 11, "util": [11, 13], "propos": [11, 13], "301": [11, 15], "304": 11, "305": 11, "additional": 11, "307": 11, "quand": 11, "d\u00e9marr": [11, 15, 19], "297": 11, "308": 11, "310": 11, "290": 11, "294": 11, "postgresql10": 11, "265": 11, "implementing": 11, "altern": 11, "visualcrossing": 11, "environment": [11, 15, 18], "variabl": [11, 18], "set": [11, 12, 15], "weather_api_provid": [11, 15], "see": [11, 15], "287": 11, "289": 11, "dperruso": 11, "c88a515": 11, "f96dcef": 11, "mountaineering": 11, "278": 11, "270": 11, "nederland": 11, "258": 11, "pars": 11, "271": 11, "273": 11, "274": 11, "paralleliz": 11, "275": 11, "disabl": 11, "work": [11, 15, 18], "entry": 11, "commend": 11, "lign": [11, 13, 14, 15], "dramatiq": [11, 12, 15], "3c8d9c2": 11, "trailing": 11, "comm": [11, 13, 15], "d\u00e9velopp": [11, 12, 14], "264": 11, "whit": 11, "gray": 11, "266": 11, "260": 11, "checked": 11, "261": 11, "should": 11, "return": [11, 15], "lim": [11, 15], "n\u00e9cessit": [11, 15, 16], "b1536fc": 11, "257": 11, "body": [11, 15], "nginx": [11, 13, 15, 16, 18], "112": 11, "allow": [11, 15], "244": 11, "virtual": 11, "rid": 11, "246": 11, "247": 11, "microsecond": 11, "252": 11, "242": 11, "241": 11, "packag": 11, "239": 11, "cb9d02f": 11, "english": 11, "231": 11, "invalidat": 11, "236": 11, "rat": [11, 15], "232": 11, "hidden": 11, "237": 11, "212": 11, "230": 11, "problem": [11, 13, 15], "225": 11, "grammar": 11, "issu": [11, 13], "skylan0916": 11, "derni": [11, 15], "ex\u00e9cut": 11, "inf\u00e9rieur": 11, "diff\u00e9rent": 11, "ex\u00e9cu": [11, 12], "213": 11, "using": 11, "measur": 11, "ft": 11, "mi": 11, "223": 11, "icon": 11, "167": 11, "162": 11, "fmstrat": 11, "210": 11, "could": 11, "requiring": 11, "subdomain": 11, "staticmap_subdomain": [11, 15], "209": 11, "containing": 11, "multipl": 11, "gorgoback": 11, "Et": 11, "detect": 11, "brows": 11, "matching": 11, "if": [11, 15], "208": 11, "card": 11, "html": 11, "changing": 11, "197": 11, "196": 11, "manag": [11, 12], "190": 11, "193": 11, "deleting": 11, "192": 11, "191": 11, "layout": 11, "nomenclatur": 11, "inclus": 11, "195": 11, "cec": 11, "affect": [11, 13], "pr\u00e9c\u00e9dent": 11, "cc4287e": 11, "offset": 11, "Pas": 11, "refactoris": 11, "avant": [11, 13, 15], "possibl": [11, 13, 14, 15], "fournisseur": [11, 15], "smtp": [11, 15, 18], "r\u00e9duit": 11, "pr\u00e9requ": 11, "mono": [11, 13], "ger": [11, 12, 13, 15, 18], "180": 11, "send": 11, "tl": [11, 15], "177": 11, "manqu": 11, "petit": 11, "\u00e9cran": 11, "175": 11, "173": 11, "171": 11, "correctly": 11, "apport": 11, "niveau": 11, "155": 11, "106": 11, "169": 11, "161": 11, "farthest": 11, "160": 11, "plusieur": [11, 13, 14, 15], "danielsiersleben": 11, "rapport": 11, "initialis": [11, 15], "149": 11, "152": 11, "autoespcap": 11, "model": 11, "jinj": 11, "151": 11, "security": 11, "nettoi": 11, "entr\u00e9": [11, 15, 16], "alphanumer": 11, "worker": [11, 12, 15], "lanc": [11, 15], "script": 11, "product": 11, "dotenv": 11, "146": 11, "145": 11, "140": 11, "fullscreen": 11, "control": [11, 15], "138": 11, "initial": [11, 15], "135": 11, "finish": 11, "marker": 11, "134": 11, "wind": 11, "direct": [11, 13, 15], "877fa0f": 11, "changed": 11, "131": 11, "129": 11, "editing": 11, "127": [11, 15], "validat": 11, "legitimat": 11, "uri": 11, "such": 11, "localhost": [11, 15], "123": 11, "121": 11, "activity": 11, "contain": [11, 15], "116": 11, "bet": 11, "button": 11, "graph": 11, "screen": 11, "115": 11, "option": [11, 12, 15], "91": 11, "min": 11, "90": 11, "som": 11, "seem": 11, "104": 11, "switch": 11, "full": 11, "development": 11, "109": 11, "slow": 11, "mov": 11, "93": 11, "paf38": 11, "83": 11, "configured": 11, "generat": 11, "static": 11, "keep": 11, "default_staticmap": [11, 15], "81": 11, "remaining": 11, "textar": 11, "82": 11, "modify": 11, "his": 11, "birth": 11, "day": [11, 12, 15], "80": [11, 15], "79": 11, "rebuild": 11, "javascript": [11, 15], "Du": 11, "fait": [11, 15], "postgr": [11, 18], "72": 11, "exceeding": 11, "71": 11, "70": 11, "less": 11, "66": 11, "used": 11, "importing": 11, "64": 11, "shown": 11, "62": 11, "sending": 11, "\u00e9valu": [11, 15], "standardiz": 11, "term": 11, "upload": [11, 15, 17], "directory": [11, 15], "also": 11, "uploading": 11, "activit": 11, "introduit": 11, "majeur": 11, "facilit": 11, "dor\u00e9nav": 11, "attent": [11, 15, 18], "lir": 11, "certain": [11, 12, 14, 15], "environ": [11, 12, 18], "renomm": 11, "celui": [11, 15], "thunderforest": [11, 15], "outdoor": [11, 15], "54": 11, "d\u00e9plac": 11, "red": [11, 12, 15], "complet": 11, "co": 11, "4c3fc34": 11, "empty": 11, "34614d5": 11, "spinn": 11, "loading": 11, "b862a77": 11, "2e1ee2c": 11, "interceptor": 11, "rout": [11, 15], "definit": 11, "down": 11, "mor": 11, "weekend": 11, "40": 11, "localiz": 11, "i18n": 11, "41": 11, "show": [11, 12, 15], "mous": 11, "over": 11, "docu": 11, "choos": 11, "37": 11, "34": 11, "anymor": 11, "pipenv": 11, "gestion": [11, 15], "paquet": [11, 15], "detailed": 11, "tooltip": 11, "standard": [11, 15], "v\u00e9lo": [11, 13], "randon": [11, 13], "vtt": [11, 13], "cours": [11, 13], "pied": [11, 13], "march": [11, 13], "\u00e9gal": [11, 12, 13, 14, 15], "enter": 11, "heur": [11, 13, 15], "m\u00e9t\u00e9o": [11, 13], "cl\u00e9": [11, 13, 15], "calendri": [11, 13], "mensuel": [11, 13], "cour": [11, 12, 14, 15], "grand": [11, 13], "recherch": 11, "search": 11, "view": [11, 15], "usag": [12, 15], "arg": [12, 15], "lin": [12, 15], "help": [12, 15], "exit": [12, 15], "expir": 12, "depuis": [12, 15], "noir": 12, "al\u00e9atoir": [12, 15], "deux": 12, "lettr": 12, "iso": 12, "639": 12, "incomplet": 12, "stock": [13, 14, 16], "sportiv": [13, 14], "plein": [13, 14], "air": [13, 14], "Des": 13, "plut\u00f4t": 13, "m\u00eam": [13, 15], "r\u00e9pertoir": [13, 15], "chiffr": [13, 15], "Avec": 13, "street": [13, 14], "statiqu": [13, 15], "trac": [13, 15], "virtuel": [13, 15], "\u00e9lectr": 13, "alpin": 13, "nag": 13, "eau": 13, "libr": 13, "parapent": 13, "19": 13, "aviron": 13, "ski": 13, "raquet": 13, "trail": 13, "lieu": 13, "Elle": 13, "except": [13, 18], "analys": [13, 15], "mani": [13, 15], "sp\u00e9cif": 13, "jusqu": 13, "system": [13, 15], "m\u00e9triqu": 13, "ains": [13, 15], "contrair": 13, "produir": 13, "differ": 13, "origin": 13, "particuli": 13, "outil": [13, 14, 15], "tier": [13, 14], "permettent": 13, "entrer": 13, "relat": 13, "bouton": 13, "visualis": 13, "visual": [13, 15], "crossing": [13, 15], "sourc": 13, "vent": 13, "flech": 13, "indiqu": 13, "infobull": 13, "proven": 13, "perform": 13, "atteint": 13, "masqu": 13, "cf": [13, 14, 15], "comport": 13, "d\u00e9roul": 13, "instant": 13, "r\u00e9cent": 13, "consult": 13, "nouveaut": 13, "dont": [13, 16], "premi": 13, "clair": 13, "chois": [13, 15], "affichag": 13, "cach": 13, "d\u00e9part": 13, "exclur": 13, "extr\u00eam": 13, "exclu": 13, "prochain": 13, "mati": 13, "appara\u00eetr": 13, "toujour": 13, "chaussur": 13, "kayak": 13, "boat": 13, "visibl": 13, "chaqu": 13, "bien": 13, "doiv": 13, "automat": 13, "appar": 13, "rest": [13, 16], "laquel": 13, "tierc": [13, 16], "unitair": 13, "mo": 13, "000": 13, "S": 13, "n\u00e9cessair": [13, 15], "volumin": [13, 18], "avert": 13, "suppl\u00e9mentair": 13, "syntax": 13, "markdown": 13, "adapt": [13, 15], "discours": 13, "traduit": 13, "bloqu": 13, "verrouill": 13, "vi": [13, 15], "correspondr": 13, "etat": 13, "publi": [13, 15], "suivr": 14, "conserv": [14, 15], "votr": [14, 15], "android": 14, "exhaust": 14, "runn": 14, "up": 14, "gpl": 14, "v3": 14, "opentrack": 14, "apach": 14, "fitotrack": 14, "aid": 14, "fonctionnal": [14, 15], "instabl": [14, 15], "ticket": 14, "document": [14, 15, 16, 18], "d\u00e9pannag": 14, "histor": [14, 15], "clon": 15, "d\u00e9p\u00f4t": 15, "\u00e9tap": 15, "d\u00e9crivent": 15, "linux": 15, "exploit": 15, "archlinux": 15, "ubuntu": 15, "integr": 15, "continu": 15, "Sur": 15, "rencontr": 15, "D": 15, "guid": 15, "gr\u00e2c": [15, 17], "uberspac": 15, "hosting": 15, "debian": [15, 17], "net": 15, "typescript": 15, "staticmap": 15, "t\u00e2ch": 15, "gunicorn": [15, 18], "vue3": 15, "vuex": 15, "logo": 15, "ic\u00f4n": 15, "freepik": 15, "flaticon": 15, "fork": 15, "awesom": 15, "nod": 15, "yarn": 15, "compos": 15, "makefil": 15, "custom": 15, "Elles": 15, "flask_app": 15, "d\u00e9marrag": 15, "pwd": 15, "__main__": 15, "py": 15, "sinon": 15, "host": 15, "h\u00f4t": 15, "port": 15, "5000": 15, "app_setting": 15, "productionconfig": 15, "app_secret_key": 15, "fort": 15, "jwt": 15, "app_worker": 15, "_workers_": 15, "app_log": 15, "chemin": [15, 18], "upload_fold": [15, 18], "absolu": [15, 18], "application_directory": 15, "database_url": [15, 18], "5432": 15, "database_disable_pooling": 15, "pooling": 15, "ui_url": 15, "lien": 15, "email_url": [15, 18], "chain": 15, "sender_email": 15, "exp\u00e9diteur": 15, "redis_url": 15, "workers_process": 15, "processus": 15, "api_rate_limit": 15, "300": 15, "minut": 15, "tile_server_url": 15, "gard": 15, "23": 15, "n\u00e9cessitent": [15, 16], "df": 15, "Par": [15, 16], "b": 15, "osm": 15, "franc": 15, "attribu": 15, "target": 15, "_blank": 15, "rel": 15, "noopen": 15, "noreferr": 15, "komoot": 15, "insensibl": 15, "cass": 15, "weather_api_key": 15, "weather_ap": 15, "vite_app_api_url": 15, "26": 15, "vue_app_api_url": 15, "25": 15, "ssl": 15, "465": 15, "starttl": 15, "office365": 15, "fonction": [15, 16], "identif": 15, "omis": 15, "ancien": 15, "notif": 15, "pr\u00eat": 15, "laiss": 15, "24": 15, "encod": 15, "sp\u00e9cial": 15, "passwordwith": 15, "40and": 15, "26and": 15, "3f": 15, "apikey": 15, "xxxx": 15, "condit": 15, "attendu": 15, "osmfr": 15, "fond": 15, "mention": 15, "legal": 15, "nofollow": 15, "nbsp": 15, "creativecommon": 15, "licenc": 15, "cc": 15, "SA": 15, "ip": 15, "strateg": 15, "pourr": 15, "soum": 15, "asset": 15, "notat": 15, "s\u00e9par": [15, 16], "virgul": 15, "hour": 15, "diagnostic": 15, "utility": 15, "clear": 15, "specific": 15, "key": 15, "enumerat": 15, "detail": 15, "interrompu": 15, "remarqu": 15, "fa\u00e7on": 15, "simpl": 15, "pip": 15, "schem": [15, 16], "owner": 15, "privileg": 15, "copi": 15, "coll": 15, "nano": 15, "ftcli": 15, "db": 15, "systemd": 15, "ouvr": 15, "alor": 15, "projet": 15, "project": 15, "git": 15, "github": 15, "samr1": 15, "cd": 15, "dev": 15, "run": 15, "3000": 15, "v0": 15, "wget": 15, "tar": 15, "gz": 15, "xzf": 15, "mv": 15, "sql": 15, "proced": 15, "fair": 15, "sauvegard": 15, "ensembl": 15, "pg_dump": 15, "suivent": 15, "s\u00e9mant": 15, "r\u00e9tro": 15, "compatibl": 15, "stopp": 15, "u": 15, "journal": [15, 18], "red\u00e9marr": 15, "pull": 15, "\u00e9cras": 15, "cp": 15, "r": 15, "proxy": [15, 16], "\u00c0": 15, "network": 15, "startlimitintervalsec": 15, "restart": 15, "alway": 15, "restartsec": 15, "standardoutput": 15, "syslog": 15, "standarderror": 15, "syslogidentifi": 15, "workingdirectory": 15, "hom": 15, "execstart": 15, "venv": 15, "bin": 15, "create_app": 15, "logfil": 15, "wantedby": 15, "mult": 15, "timeout": [15, 18], "fittrackee_worker": 15, "task": 15, "queu": 15, "listen": 15, "443": 15, "http2": 15, "server_nam": 15, "ssl_certificat": 15, "fullchain": 15, "pem": 15, "ssl_certificate_key": 15, "privkey": 15, "how": 15, "1mb": 15, "setting": 15, "ll": 15, "need": 15, "uncommenting": 15, "below": 15, "want": 15, "prevent": 15, "checking": 15, "client_max_body_siz": [15, 18], "1m": 15, "proxy_pass": 15, "proxy_redirect": 15, "proxy_set_head": [15, 16], "real": 15, "remote_addr": 15, "forwarded": [15, 16], "proxy_add_x_forwarded_for": 15, "proto": [15, 16], "request_ur": 15, "besoin": 15, "8025": 15, "mailhog": 15, "stop": 15, "shel": 15, "additionnel": 15, "fittrackee_client": 15, "lint": 15, "check": 15, "fittrackee_ynh": 15, "plupart": 16, "permettr": 16, "interag": 16, "onglet": 16, "\u00e9chang": 16, "contr": 16, "corp": 16, "assur": 16, "meilleur": 16, "s\u00e9cur": 16, "\u00e9critur": 16, "accord": 16, "lectur": 16, "Ils": 16, "puiss": 16, "fittrackee_host": 16, "espac": 16, "emp\u00each": 16, "3aread": 16, "3awrit": 16, "sort": 16, "ensuit": 16, "\u0153uvr": 16, "bibliothequ": 16, "derri": 16, "simplified": 16, "aaron": 16, "pareck": 16, "flow": 16, "oauthlib": 16, "session": 16, "strav": 17, "fit": 17, "garmin": 17, "synchronis": 17, "fittrackee_install": 17, "sh": 17, "netinstall": 17, "exc": 18, "nosuchmoduleerror": 18, "plugin": 18, "dialect": 18, "invalidemailurlschem": 18, "augment": 18, "del": 18, "critical": 18, "d\u00e9tail": 19, "\u00e9chec": 19}, "objects": {"": [[0, 0, 1, "post--api-auth-account-confirm", "/api/auth/account/confirm"], [0, 1, 1, "get--api-auth-account-export", "/api/auth/account/export"], [0, 1, 1, "get--api-auth-account-export-(string-file_name)", "/api/auth/account/export/(string:file_name)"], [0, 0, 1, "post--api-auth-account-export-request", "/api/auth/account/export/request"], [0, 0, 1, "post--api-auth-account-privacy-policy", "/api/auth/account/privacy-policy"], [0, 0, 1, "post--api-auth-account-resend-confirmation", "/api/auth/account/resend-confirmation"], [0, 0, 1, "post--api-auth-email-update", "/api/auth/email/update"], [0, 0, 1, "post--api-auth-login", "/api/auth/login"], [0, 0, 1, "post--api-auth-logout", "/api/auth/logout"], [0, 0, 1, "post--api-auth-password-reset-request", "/api/auth/password/reset-request"], [0, 0, 1, "post--api-auth-password-update", "/api/auth/password/update"], [0, 2, 1, "delete--api-auth-picture", "/api/auth/picture"], [0, 0, 1, "post--api-auth-picture", "/api/auth/picture"], [0, 1, 1, "get--api-auth-profile", "/api/auth/profile"], [0, 0, 1, "post--api-auth-profile-edit", "/api/auth/profile/edit"], [0, 3, 1, "patch--api-auth-profile-edit-account", "/api/auth/profile/edit/account"], [0, 0, 1, "post--api-auth-profile-edit-preferences", "/api/auth/profile/edit/preferences"], [0, 0, 1, "post--api-auth-profile-edit-sports", "/api/auth/profile/edit/sports"], [0, 2, 1, "delete--api-auth-profile-reset-sports-(sport_id)", "/api/auth/profile/reset/sports/(sport_id)"], [0, 0, 1, "post--api-auth-register", "/api/auth/register"], [1, 1, 1, "get--api-config", "/api/config"], [1, 3, 1, "patch--api-config", "/api/config"], [2, 1, 1, "get--api-equipment-types", "/api/equipment-types"], [2, 1, 1, "get--api-equipment-types-(int-equipment_type_id)", "/api/equipment-types/(int:equipment_type_id)"], [2, 3, 1, "patch--api-equipment-types-(int-equipment_type_id)", "/api/equipment-types/(int:equipment_type_id)"], [3, 1, 1, "get--api-equipments", "/api/equipments"], [3, 0, 1, "post--api-equipments", "/api/equipments"], [3, 2, 1, "delete--api-equipments-(string-equipment_short_id)", "/api/equipments/(string:equipment_short_id)"], [3, 1, 1, "get--api-equipments-(string-equipment_short_id)", "/api/equipments/(string:equipment_short_id)"], [3, 3, 1, "patch--api-equipments-(string-equipment_short_id)", "/api/equipments/(string:equipment_short_id)"], [3, 0, 1, "post--api-equipments-(string-equipment_short_id)-refresh", "/api/equipments/(string:equipment_short_id)/refresh"], [5, 1, 1, "get--api-oauth-apps", "/api/oauth/apps"], [5, 0, 1, "post--api-oauth-apps", "/api/oauth/apps"], [5, 2, 1, "delete--api-oauth-apps-(int-client_id)", "/api/oauth/apps/(int:client_id)"], [5, 1, 1, "get--api-oauth-apps-(int-client_id)-by_id", "/api/oauth/apps/(int:client_id)/by_id"], [5, 0, 1, "post--api-oauth-apps-(int-client_id)-revoke", "/api/oauth/apps/(int:client_id)/revoke"], [5, 1, 1, "get--api-oauth-apps-(string-client_client_id)", "/api/oauth/apps/(string:client_client_id)"], [5, 0, 1, "post--api-oauth-authorize", "/api/oauth/authorize"], [5, 0, 1, "post--api-oauth-revoke", "/api/oauth/revoke"], [5, 0, 1, "post--api-oauth-token", "/api/oauth/token"], [1, 1, 1, "get--api-ping", "/api/ping"], [6, 1, 1, "get--api-records", "/api/records"], [7, 1, 1, "get--api-sports", "/api/sports"], [7, 1, 1, "get--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [7, 3, 1, "patch--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [8, 1, 1, "get--api-stats-(user_name)-by_sport", "/api/stats/(user_name)/by_sport"], [8, 1, 1, "get--api-stats-(user_name)-by_time", "/api/stats/(user_name)/by_time"], [8, 1, 1, "get--api-stats-all", "/api/stats/all"], [9, 1, 1, "get--api-users", "/api/users"], [9, 2, 1, "delete--api-users-(user_name)", "/api/users/(user_name)"], [9, 1, 1, "get--api-users-(user_name)", "/api/users/(user_name)"], [9, 3, 1, "patch--api-users-(user_name)", "/api/users/(user_name)"], [9, 1, 1, "get--api-users-(user_name)-picture", "/api/users/(user_name)/picture"], [10, 1, 1, "get--api-workouts", "/api/workouts"], [10, 0, 1, "post--api-workouts", "/api/workouts"], [10, 2, 1, "delete--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [10, 3, 1, "patch--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-chart_data", "/api/workouts/(string:workout_short_id)/chart_data"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-chart_data-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/chart_data/segment/(int:segment_id)"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx", "/api/workouts/(string:workout_short_id)/gpx"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx-download", "/api/workouts/(string:workout_short_id)/gpx/download"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/gpx/segment/(int:segment_id)"], [10, 1, 1, "get--api-workouts-map-(map_id)", "/api/workouts/map/(map_id)"], [10, 0, 1, "post--api-workouts-no_gpx", "/api/workouts/no_gpx"], [15, 4, 1, "-", "API_RATE_LIMITS"], [15, 4, 1, "-", "APP_LOG"], [15, 4, 1, "-", "APP_SECRET_KEY"], [15, 4, 1, "-", "APP_SETTINGS"], [15, 4, 1, "-", "APP_WORKERS"], [15, 4, 1, "-", "DATABASE_DISABLE_POOLING"], [15, 4, 1, "-", "DATABASE_URL"], [15, 4, 1, "-", "DEFAULT_STATICMAP"], [15, 4, 1, "-", "EMAIL_URL"], [15, 4, 1, "-", "FLASK_APP"], [15, 4, 1, "-", "HOST"], [15, 4, 1, "-", "MAP_ATTRIBUTION"], [15, 4, 1, "-", "PORT"], [15, 4, 1, "-", "REDIS_URL"], [15, 4, 1, "-", "SENDER_EMAIL"], [15, 4, 1, "-", "STATICMAP_SUBDOMAINS"], [15, 4, 1, "-", "TILE_SERVER_URL"], [15, 4, 1, "-", "UI_URL"], [15, 4, 1, "-", "UPLOAD_FOLDER"], [15, 4, 1, "-", "VITE_APP_API_URL"], [15, 4, 1, "-", "WEATHER_API_KEY"], [15, 4, 1, "envvar-WEATHER_API_PROVIDER", "WEATHER_API_PROVIDER \ud83c\udd95"], [15, 4, 1, "-", "WORKERS_PROCESSES"]], "/api/workouts/map_tile/(s)/(z)/(x)/(y)": [[10, 1, 1, "get--api-workouts-map_tile-(s)-(z)-(x)-(y).png", "png"]]}, "objtypes": {"0": "http:post", "1": "http:get", "2": "http:delete", "3": "http:patch", "4": "std:envvar"}, "objnames": {"0": ["http", "post", "HTTP post"], "1": ["http", "get", "HTTP get"], "2": ["http", "delete", "HTTP delete"], "3": ["http", "patch", "HTTP patch"], "4": ["std", "envvar", "variable d'environnement"]}, "titleterms": {"authentif": 0, "compt": [0, 13], "configur": 1, "typ": [2, 13], "\u00e9quip": [2, 3, 13], "document": [4, 11], "api": [4, 15], "point": 4, "acces": [4, 15], "oauth2": [5, 12], "record": 6, "sport": [7, 13], "statist": [8, 11, 13], "utilis": [9, 12, 13], "s\u00e9anc": [10, 13, 18], "histor": 11, "modif": 11, "version": 11, "0": [11, 16], "8": 11, "5": 11, "29": 11, "06": 11, "2024": 11, "fonctionnal": [11, 13], "am\u00e9lior": 11, "bug": 11, "corrig": 11, "traduct": [11, 13], "diver": 11, "4": 11, "22": 11, "05": 11, "3": 11, "09": 11, "2": [11, 16], "08": 11, "1": 11, "01": 11, "21": 11, "04": 11, "7": 11, "32": 11, "10": 11, "03": 11, "31": 11, "02": 11, "30": 11, "28": 11, "23": 11, "12": 11, "2023": 11, "27": 11, "20": 11, "26": 11, "19": 11, "11": 11, "25": 11, "24": 11, "14": 11, "07": 11, "15": 11, "18": 11, "17": 11, "16": 11, "13": 11, "2022": 11, "9": 11, "6": 11, "ticket": 11, "ferm": 11, "pull": 11, "request": 11, "s\u00e9cur": 11, "nouvel": 11, "2021": 11, "2020": 11, "fittracke": [11, 14, 18], "pyp": [11, 15], "administr": [11, 13, 18], "correct": 11, "mineur": 11, "disponibl": 11, "franc": 11, "2019": 11, "premi": 11, "2018": 11, "interfac": 12, "lign": 12, "command": 12, "bas": 12, "don": [12, 15], "ftcli": 12, "db": 12, "drop": 12, "upgrad": 12, "clean": 12, "user": 12, "clean_arch": 12, "clean_token": 12, "creat": 12, "export_arch": 12, "updat": 12, "pr\u00e9f\u00e9rent": 13, "appliqu": 13, "oauth": [13, 16], "captur": 13, "\u00e9cran": 13, "tableau": 13, "bord": 13, "pag": 13, "d\u00e9tail": [13, 18], "list": 13, "tabl": 14, "mati": 14, "install": [15, 17], "d\u00e9pend": 15, "principal": 15, "pr\u00e9requ": 15, "variabl": 15, "environ": 15, "courriel": 15, "serveur": 15, "tuil": 15, "limit": 15, "m\u00e9t\u00e9o": 15, "a": 15, "part": 15, "sourc": 15, "d\u00e9velopp": 15, "product": 15, "mis": 15, "jour": 15, "d\u00e9ploi": 15, "dock": 15, "yunohost": 15, "scop": 16, "flux": 16, "ressourc": 16, "outil": 17, "tier": 17, "import": 17, "script": 17, "d\u00e9marr": 18, "Les": 18, "imag": 18, "cart": 18, "affich": 18, "dan": 18, "\u00e9chec": 18, "charg": 18, "t\u00e9l\u00e9charg": 18, "fichi": 18, "d\u00e9pannag": 19}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 58}, "alltitles": {"Authentification et compte": [[0, "authentication-and-account"]], "Configuration": [[1, "configuration"]], "Types d\u2019\u00e9quipement": [[2, "equipment-types"], [13, "equipment-types"]], "\u00c9quipements": [[3, "equipments"], [13, "equipments"], [13, "id1"]], "Documentation de l\u2019API": [[4, "api-documentation"]], "Points d'acc\u00e8s :": [[4, null]], "OAuth2": [[5, "oauth2"], [12, "oauth2"]], "Records": [[6, "records"]], "Sports": [[7, "sports"], [13, "sports"]], "Statistiques": [[8, "statistics"], [13, "statistics"]], "Utilisateurs": [[9, "users"], [12, "users"], [13, "users"]], "S\u00e9ances": [[10, "workouts"], [13, "workouts"]], "Historique des modifications": [[11, "change-log"]], "Version 0.8.5 (29/06/2024)": [[11, "version-0-8-5-2024-06-29"]], "Fonctionnalit\u00e9s et am\u00e9liorations": [[11, "features-and-enhancements"], [11, "id1"], [11, "id8"], [11, "id12"], [11, "id21"], [11, "id25"], [11, "id29"], [11, "id32"], [11, "id49"], [11, "id52"], [11, "id60"], [11, "id63"], [11, "id69"], [11, "id74"], [11, "id76"], [11, "id78"], [11, "id81"], [11, "id92"], [11, "id98"]], "Bugs corrig\u00e9s": [[11, "bugs-fixed"], [11, "id4"], [11, "id9"], [11, "id13"], [11, "id16"], [11, "id18"], [11, "id22"], [11, "id26"], [11, "id30"], [11, "id33"], [11, "id36"], [11, "id39"], [11, "id40"], [11, "id43"], [11, "id45"], [11, "id47"], [11, "id50"], [11, "id53"], [11, "id61"], [11, "id64"], [11, "id67"], [11, "id70"], [11, "id82"], [11, "id87"], [11, "id89"], [11, "id93"], [11, "id96"], [11, "id99"], [11, "id101"], [11, "id104"], [11, "id107"], [11, "id109"], [11, "id112"], [11, "id115"], [11, "id118"], [11, "id123"], [11, "id125"], [11, "id127"], [11, "id129"], [11, "id132"], [11, "id134"], [11, "id140"], [11, "id143"], [11, "id145"], [11, "id147"], [11, "id154"], [11, "id159"], [11, "id161"], [11, "id163"], [11, "id166"], [11, "id168"], [11, "id170"], [11, "id174"], [11, "id184"], [11, "id187"], [11, "id189"], [11, "id192"], [11, "id199"]], "Traductions": [[11, "translations"], [11, "id2"], [11, "id5"], [11, "id6"], [11, "id10"], [11, "id14"], [11, "id17"], [11, "id19"], [11, "id23"], [11, "id27"], [11, "id31"], [11, "id34"], [11, "id37"], [11, "id41"], [11, "id46"], [11, "id51"], [11, "id54"], [11, "id56"], [11, "id59"], [11, "id62"], [11, "id65"], [11, "id68"], [11, "id71"], [11, "id72"], [11, "id75"], [11, "id77"], [11, "id79"], [11, "id80"], [11, "id83"], [11, "id85"], [11, "id88"], [11, "id90"], [11, "id94"], [11, "id95"], [11, "id97"], [11, "id100"], [11, "id113"], [13, "translations"]], "Divers": [[11, "misc"], [11, "id3"], [11, "id7"], [11, "id11"], [11, "id15"], [11, "id20"], [11, "id24"], [11, "id28"], [11, "id35"], [11, "id38"], [11, "id42"], [11, "id44"], [11, "id48"], [11, "id55"], [11, "id58"], [11, "id66"], [11, "id73"], [11, "id84"], [11, "id86"], [11, "id102"], [11, "id116"], [11, "id119"], [11, "id136"], [11, "id138"], [11, "id155"], [11, "id164"], [11, "id171"], [11, "id175"], [11, "id182"], [11, "id193"], [11, "id196"]], "Version 0.8.4 (22/05/2024)": [[11, "version-0-8-4-2024-05-22"]], "Version 0.8.3 (09/05/2024)": [[11, "version-0-8-3-2024-05-09"]], "Version 0.8.2 (08/05/2024)": [[11, "version-0-8-2-2024-05-08"]], "Version 0.8.1 (01/05/2024)": [[11, "version-0-8-1-2024-05-01"]], "Version 0.8.0 (21/04/2024)": [[11, "version-0-8-0-2024-04-21"]], "Version 0.7.32 (10/03/2024)": [[11, "version-0-7-32-2024-03-10"]], "Version 0.7.31 (10/02/2024)": [[11, "version-0-7-31-2024-02-10"]], "Version 0.7.30 (04/02/2024)": [[11, "version-0-7-30-2024-02-04"]], "Version 0.7.29 (04/01/2024)": [[11, "version-0-7-29-2024-01-06"]], "Version 0.7.28 (23/12/2023)": [[11, "version-0-7-28-2023-12-23"]], "Version 0.7.27 (20/12/2023)": [[11, "version-0-7-27-2023-12-20"]], "Version 0.7.26 (19/11/2023)": [[11, "version-0-7-26-2023-11-19"]], "Version 0.7.25 (08/10/2023)": [[11, "version-0-7-25-2023-10-08"]], "Version 0.7.24 (04/10/2023)": [[11, "version-0-7-24-2023-10-04"]], "Version 0.7.23 (14/09/2023)": [[11, "version-0-7-23-2023-09-14"]], "Version 0.7.22 (23/08/2023)": [[11, "version-0-7-22-2023-08-23"]], "Version 0.7.21 (30/07/2023)": [[11, "version-0-7-21-2023-07-30"]], "Version 0.7.20 (22/07/2023)": [[11, "version-0-7-20-2023-07-22"]], "Version 0.7.19 (15/07/2023)": [[11, "version-0-7-19-2023-07-15"]], "Documentation": [[11, "documentation"], [11, "id57"], [11, "id91"]], "Version 0.7.18 (25/06/2023)": [[11, "version-0-7-18-2023-06-25"]], "Version 0.7.17 (03/06/2023)": [[11, "version-0-7-17-2023-06-03"]], "Version 0.7.16 (29/05/2023)": [[11, "version-0-7-16-2023-05-29"]], "Version 0.7.15 (12/04/2023)": [[11, "version-0-7-15-2023-04-12"]], "Version 0.7.14 (08/03/2023)": [[11, "version-0-7-14-2023-03-08"]], "Version 0.7.13 (05/03/2023)": [[11, "version-0-7-13-2023-03-05"]], "Version 0.7.12 (16/02/2023)": [[11, "version-0-7-12-2023-02-16"]], "Version 0.7.11 (31/12/2022)": [[11, "version-0-7-11-2022-12-31"]], "Version 0.7.10 (21/12/2022)": [[11, "version-0-7-10-2022-12-21"]], "Version 0.7.9 (11/12/2022)": [[11, "version-0-7-9-2022-12-11"]], "Version 0.7.8 (30/11/2022)": [[11, "version-0-7-8-2022-11-30"]], "Version 0.7.7 (27/11/2022)": [[11, "version-0-7-7-2022-11-27"]], "Version 0.7.6 (09/11/2022)": [[11, "version-0-7-6-2022-11-09"]], "Version 0.7.5 (09/11/2022)": [[11, "version-0-7-5-2022-11-09"]], "Version 0.7.4 (05/11/2022)": [[11, "version-0-7-4-2022-11-05"]], "Version 0.7.3 (01/11/2022)": [[11, "version-0-7-3-2022-11-01"]], "Version 0.7.2 (21/09/2022)": [[11, "version-0-7-2-2022-09-21"]], "Version 0.7.1 (21/09/2022)": [[11, "version-0-7-1-2022-09-21"]], "Version 0.7.0 (19/09/2022)": [[11, "version-0-7-0-2022-09-19"]], "Version 0.6.12 (14/09/2022)": [[11, "version-0-6-12-2022-09-14"]], "Tickets Ferm\u00e9s": [[11, "issues-closed"], [11, "id103"], [11, "id106"], [11, "id110"], [11, "id114"], [11, "id117"], [11, "id120"], [11, "id122"], [11, "id126"], [11, "id128"], [11, "id130"], [11, "id135"], [11, "id139"], [11, "id142"], [11, "id144"], [11, "id146"], [11, "id148"], [11, "id150"], [11, "id152"], [11, "id157"], [11, "id160"], [11, "id162"], [11, "id165"], [11, "id167"], [11, "id169"], [11, "id172"], [11, "id176"], [11, "id178"], [11, "id180"], [11, "id183"], [11, "id185"], [11, "id188"], [11, "id190"], [11, "id194"], [11, "id197"], [11, "id200"]], "Pull Requests": [[11, "pull-requests"], [11, "id105"], [11, "id108"], [11, "id124"], [11, "id133"], [11, "id137"], [11, "id141"], [11, "id156"]], "Version 0.6.11 (27/02/2022)": [[11, "version-0-6-11-2022-07-27"]], "Fonctionnalit\u00e9s": [[11, "features"], [11, "id111"], [11, "id121"], [11, "id131"], [13, "features"]], "Version 0.6.10 (13/07/2022)": [[11, "version-0-6-10-2022-07-13"]], "Version 0.6.9 (03/07/2022)": [[11, "version-0-6-9-2022-07-03"]], "Version 0.6.8 (22/06/2022)": [[11, "version-0-6-8-2022-06-22"]], "Version 0.6.7 (11/06/2022)": [[11, "version-0-6-7-2022-06-11"]], "Version 0.6.6 (29/05/2022)": [[11, "version-0-6-6-2022-05-29"]], "Version 0.6.5 (24/04/2022)": [[11, "version-0-6-5-2022-04-24"]], "Version 0.6.4 (23/04/2022)": [[11, "version-0-6-4-2022-04-23"]], "Version 0.6.3 (09/04/2022)": [[11, "version-0-6-3-2022-04-09"]], "Version 0.6.2 (03/04/2022)": [[11, "version-0-6-2-2022-04-03"]], "Version 0.6.1 (27/03/2022)": [[11, "version-0-6-1-2022-03-27"]], "Version 0.6.0 (27/03/2022)": [[11, "version-0-6-0-2022-03-27"]], "Version 0.5.7 (13/02/2022)": [[11, "version-0-5-7-2022-02-13"]], "S\u00e9curit\u00e9": [[11, "security"]], "Version 0.5.6 (05/02/2022)": [[11, "version-0-5-6-2022-02-05"]], "Version 0.5.5 (19/01/2022)": [[11, "version-0-5-5-2022-01-19"]], "Nouvelles fonctionnalit\u00e9s": [[11, "new-features"], [11, "id149"], [11, "id151"], [11, "id153"], [11, "id158"], [11, "id173"], [11, "id177"], [11, "id179"], [11, "id181"], [11, "id186"], [11, "id191"], [11, "id195"], [11, "id198"], [11, "id201"]], "Version 0.5.4 (01/01/2022)": [[11, "version-0-5-4-2022-01-01"]], "Version 0.5.3 (01/01/2022)": [[11, "version-0-5-3-2022-01-01"]], "Version 0.5.2 (19/12/2021)": [[11, "version-0-5-2-2021-12-19"]], "Version 0.5.1 (30/11/2021)": [[11, "version-0-5-1-2021-11-30"]], "Version 0.5.0 (14/11/2021)": [[11, "version-0-5-0-2021-11-14"]], "Version 0.4.9 (16/07/2021)": [[11, "version-0-4-9-2021-07-16"]], "Version 0.4.8 (03/07/2021)": [[11, "version-0-4-8-2021-07-03"]], "Version 0.4.7 (07/04/2021)": [[11, "version-0-4-7-2021-04-07"]], "Version 0.4.6 (21/02/2021)": [[11, "version-0-4-6-2021-02-21"]], "Version 0.4.5 (17/02/2021)": [[11, "version-0-4-5-2021-02-17"]], "Version 0.4.4 (31/01/2021)": [[11, "version-0-4-4-2021-01-31"]], "Version 0.4.3 (10/01/2021)": [[11, "version-0-4-3-2021-01-10"]], "Version 0.4.2 (03/01/2021)": [[11, "version-0-4-2-2021-01-03"]], "Version 0.4.1 (31/12/2020)": [[11, "version-0-4-1-2020-12-31"]], "Version 0.4.0 - FitTrackee sur PyPI (19/09/2020)": [[11, "version-0-4-0-fittrackee-on-pypi-2020-09-19"]], "Version 0.3.0 - Administration (15/07/2020)": [[11, "version-0-3-0-administration-2020-07-15"]], "Version 0.2.5 - Corrections et am\u00e9liorations (31/01/2020)": [[11, "version-0-2-5-fix-and-improvements-2020-01-31"]], "Version 0.2.4 - Corrections mineures (30/01/2020)": [[11, "version-0-2-4-minor-fix-2020-01-30"]], "Version 0.2.3 - FitTrackee disponible en Fran\u00e7ais (29/12/2019)": [[11, "version-0-2-3-fittrackee-available-in-french-2019-12-29"]], "Version 0.2.2 - Corrections des statistiques (23/09/2019)": [[11, "version-0-2-2-statistics-fix-2019-09-23"]], "Version 0.2.1 - Correction et am\u00e9liorations (01/09/2019)": [[11, "version-0-2-1-fix-and-improvements-2019-09-01"]], "Version 0.2.0 - Statistiques (07/07/2019)": [[11, "version-0-2-0-statistics-2019-07-07"]], "Version 0.1.1 - Corrections et am\u00e9liorations (07/02/2019)": [[11, "version-0-1-1-fix-and-improvements-2019-02-07"]], "Version 0.1.0 - Premi\u00e8re version \ud83c\udf89 (04/07/2018)": [[11, "version-0-1-0-first-release-2018-07-04"]], "Interface de ligne de commande": [[12, "command-line-interface"]], "Base de donn\u00e9es": [[12, "database"]], "ftcli db drop": [[12, "ftcli-db-drop"]], "ftcli db upgrade": [[12, "ftcli-db-upgrade"]], "ftcli oauth2 clean": [[12, "ftcli-oauth2-clean"]], "ftcli users clean_archives": [[12, "ftcli-users-clean-archives"]], "ftcli users clean_tokens": [[12, "ftcli-users-clean-tokens"]], "ftcli users create": [[12, "ftcli-users-create"]], "ftcli users export_archives": [[12, "ftcli-users-export-archives"]], "ftcli users update": [[12, "ftcli-users-update"]], "Compte et pr\u00e9f\u00e9rences": [[13, "account-preferences"]], "Applications OAuth": [[13, "oauth-apps"]], "Administration": [[13, "administration"], [13, "id2"]], "Application": [[13, "application"]], "Captures d\u2019\u00e9cran": [[13, "screenshots"]], "Tableau de bord": [[13, "dashboard"]], "Page de d\u00e9tail d\u2019une s\u00e9ance": [[13, "workout-detail"]], "Liste des s\u00e9ances": [[13, "workouts-list"]], "FitTrackee": [[14, "fittrackee"]], "Table des mati\u00e8res": [[14, "table-of-contents"]], "Installation": [[15, "installation"], [15, "id2"], [15, "id6"]], "D\u00e9pendances principales": [[15, "main-dependencies"]], "Pr\u00e9requis": [[15, "prerequisites"]], "Variables d\u2019environnement": [[15, "environment-variables"]], "Courriels": [[15, "emails"]], "Serveur de tuiles": [[15, "map-tile-server"]], "Limitation d\u2019acc\u00e8s \u00e0 l\u2019API": [[15, "api-rate-limits"]], "Donn\u00e9es m\u00e9t\u00e9o": [[15, "weather-data"]], "A partir de PyPI": [[15, "from-pypi"], [15, "id3"]], "A partir des sources": [[15, "from-sources"], [15, "id4"]], "Environnements de d\u00e9veloppement": [[15, "dev-environment"], [15, "id5"]], "Environnements de production": [[15, "production-environment"]], "Mise \u00e0 jour": [[15, "upgrade"]], "Environnement de production": [[15, "prod-environment"]], "D\u00e9ploiement": [[15, "deployment"]], "Docker": [[15, "docker"]], "D\u00e9veloppement": [[15, "development"]], "Yunohost": [[15, "yunohost"]], "OAuth 2.0": [[16, "oauth-2-0"]], "Scopes": [[16, "scopes"]], "Flux": [[16, "flow"]], "Ressources": [[16, "resources"]], "Outils tiers": [[17, "third-party-tools"]], "Outils d\u2019importation": [[17, "import-tools"]], "Scripts d\u2019installation": [[17, "installation-scripts"]], "Administrateur": [[18, "administrator"]], "FitTrackee ne d\u00e9marre pas": [[18, "fittrackee-fails-to-start"]], "Les images de la carte ne sont pas affich\u00e9es mais la carte est affich\u00e9e dans le d\u00e9tail de la s\u00e9ance": [[18, "map-images-are-not-displayed-but-map-is-shown-in-workout-detail"]], "\u00c9chec du chargement ou du t\u00e9l\u00e9chargement de fichiers": [[18, "failed-to-upload-or-download-files"]], "D\u00e9pannage": [[19, "troubleshooting"]]}, "indexentries": {"api_rate_limits": [[15, "envvar-API_RATE_LIMITS"]], "app_log": [[15, "envvar-APP_LOG"]], "app_secret_key": [[15, "envvar-APP_SECRET_KEY"]], "app_settings": [[15, "envvar-APP_SETTINGS"]], "app_workers": [[15, "envvar-APP_WORKERS"]], "database_disable_pooling": [[15, "envvar-DATABASE_DISABLE_POOLING"]], "database_url": [[15, "envvar-DATABASE_URL"]], "default_staticmap": [[15, "envvar-DEFAULT_STATICMAP"]], "email_url": [[15, "envvar-EMAIL_URL"]], "flask_app": [[15, "envvar-FLASK_APP"]], "host": [[15, "envvar-HOST"]], "map_attribution": [[15, "envvar-MAP_ATTRIBUTION"]], "port": [[15, "envvar-PORT"]], "redis_url": [[15, "envvar-REDIS_URL"]], "sender_email": [[15, "envvar-SENDER_EMAIL"]], "staticmap_subdomains": [[15, "envvar-STATICMAP_SUBDOMAINS"]], "tile_server_url": [[15, "envvar-TILE_SERVER_URL"]], "ui_url": [[15, "envvar-UI_URL"]], "upload_folder": [[15, "envvar-UPLOAD_FOLDER"]], "vite_app_api_url": [[15, "envvar-VITE_APP_API_URL"]], "weather_api_key": [[15, "envvar-WEATHER_API_KEY"]], "weather_api_provider \ud83c\udd95": [[15, "envvar-WEATHER_API_PROVIDER"]], "workers_processes": [[15, "envvar-WORKERS_PROCESSES"]], "variable d'environnement": [[15, "envvar-API_RATE_LIMITS"], [15, "envvar-APP_LOG"], [15, "envvar-APP_SECRET_KEY"], [15, "envvar-APP_SETTINGS"], [15, "envvar-APP_WORKERS"], [15, "envvar-DATABASE_DISABLE_POOLING"], [15, "envvar-DATABASE_URL"], [15, "envvar-DEFAULT_STATICMAP"], [15, "envvar-EMAIL_URL"], [15, "envvar-FLASK_APP"], [15, "envvar-HOST"], [15, "envvar-MAP_ATTRIBUTION"], [15, "envvar-PORT"], [15, "envvar-REDIS_URL"], [15, "envvar-SENDER_EMAIL"], [15, "envvar-STATICMAP_SUBDOMAINS"], [15, "envvar-TILE_SERVER_URL"], [15, "envvar-UI_URL"], [15, "envvar-UPLOAD_FOLDER"], [15, "envvar-VITE_APP_API_URL"], [15, "envvar-WEATHER_API_KEY"], [15, "envvar-WEATHER_API_PROVIDER"], [15, "envvar-WORKERS_PROCESSES"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["api/auth", "api/configuration", "api/equipment_types", "api/equipments", "api/index", "api/oauth2", "api/records", "api/sports", "api/stats", "api/users", "api/workouts", "changelog", "cli", "features", "index", "installation", "oauth", "third_party_tools", "troubleshooting/administrator", "troubleshooting/index"], "filenames": ["api/auth.rst", "api/configuration.rst", "api/equipment_types.rst", "api/equipments.rst", "api/index.rst", "api/oauth2.rst", "api/records.rst", "api/sports.rst", "api/stats.rst", "api/users.rst", "api/workouts.rst", "changelog.md", "cli.rst", "features.rst", "index.rst", "installation.rst", "oauth.rst", "third_party_tools.rst", "troubleshooting/administrator.rst", "troubleshooting/index.rst"], "titles": ["Authentification et compte", "Configuration", "Types d\u2019\u00e9quipement", "\u00c9quipements", "Documentation de l\u2019API", "OAuth2", "Records", "Sports", "Statistiques", "Utilisateurs", "S\u00e9ances", "Historique des modifications", "Interface de ligne de commande", "Fonctionnalit\u00e9s", "FitTrackee", "Installation", "OAuth 2.0", "Outils tiers", "Administrateur", "D\u00e9pannage"], "terms": {"post": [0, 3, 5, 10, 16], "api": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16], "auth": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "regist": 0, "enregistr": [0, 12, 13, 16], "utilis": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 15, 16], "envoi": [0, 9, 11, 13, 15, 16], "courriel": [0, 9, 11, 13, 18], "confirm": [0, 5, 11, 13, 15], "Le": [0, 3, 11, 13, 15], "nouvel": [0, 3, 9, 12, 13, 15], "cr\u00e9": [0, 3, 5, 10, 11, 12, 13, 15, 16], "inact": [0, 3, 9, 10, 13, 15], "L": [0, 1, 2, 7, 11, 13, 15, 16], "doit": [0, 1, 2, 3, 5, 7, 10, 11, 13, 15, 16, 18], "adress": [0, 1, 9, 12, 13, 15], "\u00e9lectron": [0, 1, 9, 12, 13, 15], "activ": [0, 1, 2, 7, 9, 11, 12, 13, 14, 15], "exempl": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16], "requ\u00eat": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 16], "http": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 16], "1": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 15], "content": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "typ": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15], "appliqu": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16], "json": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13], "r\u00e9pons": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "succes": [0, 2, 3, 5, 7, 8, 10], "200": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 15], "success": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "status": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13], "erreur": [0, 5, 11, 13, 18], "lor": [0, 12, 13], "400": [0, 1, 2, 3, 5, 7, 8, 9, 10, 11], "bad": [0, 1, 2, 3, 5, 7, 8, 9, 10], "request": [0, 1, 2, 3, 5, 7, 8, 9, 10, 15, 16], "messag": [0, 1, 5, 9, 10, 11, 12, 13, 15, 16], "error": [0, 1, 2, 3, 7, 9, 10, 11, 15], "email": [0, 1, 9, 11, 12, 18], "valid": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 18], "must": [0, 1, 3, 9, 10, 11], "be": [0, 1, 3, 9, 10, 11, 15], "provided": [0, 1, 3, 9], "objet": [0, 1, 2, 3, 7, 9, 10], "usernam": [0, 9, 12, 15], "string": [0, 1, 3, 5, 7, 8, 9, 10], "nom": [0, 5, 8, 9, 11, 12, 15], "3": [0, 2, 7, 8, 9, 10, 13, 15], "30": [0, 8], "caracter": [0, 3, 5, 11, 15, 16], "requ": [0, 16], "password": [0, 11, 12, 15], "mot": [0, 9, 12, 13, 15], "pass": [0, 9, 12, 13, 15], "8": [0, 1, 10, 12, 13, 15, 16], "minimum": 0, "lang": [0, 11, 12], "pr\u00e9f\u00e9rent": [0, 3, 9, 12], "langu": [0, 11, 12, 13], "interfac": [0, 11, 13, 14, 15], "si": [0, 3, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18], "non": [0, 2, 3, 5, 7, 8, 10, 11, 14, 15], "fourn": [0, 3, 5, 8, 10, 12, 13, 15, 16, 18], "ser": [0, 3, 10, 11, 12, 13, 15], "anglais": [0, 11, 12, 13], "accepted_policy": 0, "boolean": [0, 1, 2, 3, 5, 7, 9, 12], "tru": [0, 1, 2, 3, 5, 7, 9, 11, 15], "a": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14], "accept": [0, 11, 13], "polit": [0, 1, 11, 13], "confidential": [0, 1, 11, 13], "cod": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 16], "\u00e9tat": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "ok": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "invalid": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 15], "payload": [0, 1, 2, 5, 7, 9, 10], "sorry": 0, "that": [0, 3, 11], "is": [0, 3, 10, 11], "already": [0, 3, 11], "taken": 0, "you": [0, 1, 2, 3, 7, 8, 9, 10, 15], "agre": 0, "privacy": [0, 11], "policy": [0, 11], "to": [0, 1, 3, 8, 10, 11, 15, 17], "character": [0, 3, 11], "required": 0, "only": [0, 10, 11], "alphanumeric": 0, "and": [0, 3, 11, 12, 15], "the": [0, 2, 3, 7, 9, 10, 11, 15], "underscor": 0, "charact": 0, "_": [0, 11], "allowed": [0, 10], "403": [0, 1, 2, 3, 7, 8, 9, 10], "forbidden": [0, 1, 2, 3, 7, 8, 9, 10], "registr": [0, 11], "disabled": 0, "500": [0, 1, 2, 3, 7, 9, 10, 11], "internal": [0, 1, 2, 3, 7, 9, 10], "serv": [0, 1, 2, 3, 7, 9, 10, 11, 15], "pleas": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "try": [0, 2, 3, 7, 9, 10], "again": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "or": [0, 1, 2, 3, 7, 9, 10, 11], "contact": [0, 1, 2, 3, 7, 9, 10, 13], "administrator": [0, 2, 3, 7, 9, 10], "account": [0, 9, 11], "apres": [0, 5, 11, 13, 15, 16], "inscript": [0, 1, 11, 13, 15], "auth_token": 0, "web": [0, 5, 14, 15, 16], "token": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 16], "successful": 0, "jeton": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 15, 16], "resend": 0, "renvoi": [0, 5, 9, 10], "instruct": [0, 11, 13, 15], "d\u00e9sactiv": [0, 11, 12, 13, 15], "point": [0, 1, 5, 11, 13, 15, 16], "acces": [0, 1, 5, 16], "disponibl": [0, 6, 12, 13, 15, 16, 17], "resent": 0, "404": [0, 2, 3, 5, 7, 8, 9, 10, 11], "not": [0, 1, 2, 3, 5, 7, 8, 9, 10, 11, 13, 15], "found": [0, 2, 3, 5, 7, 8, 9, 10, 11], "requested": 0, "url": [0, 5, 11, 15, 16, 18], "was": [0, 3], "login": [0, 11], "connexion": [0, 15], "seul": [0, 3, 5, 8, 9, 10, 11, 13, 15, 16], "dispos": [0, 9, 13], "actif": [0, 3, 12, 13], "peuvent": [0, 11, 13, 14, 15], "connect": [0, 13], "successfully": 0, "logged": 0, "in": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16], "401": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "unauthorized": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "credential": 0, "get": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "profil": [0, 5, 11, 16], "obten": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 16], "inform": [0, 1, 9, 11, 13, 14, 15], "authentifi": [0, 1, 2, 5, 6, 7, 8, 9, 10, 13], "scop": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "read": [0, 2, 3, 5, 6, 7, 8, 9, 10, 16], "dat": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13], "accepted_privacy_policy": 0, "admin": [0, 1, 2, 6, 7, 8, 9, 10, 12, 15], "fals": [0, 1, 2, 5, 7, 9, 10, 15], "bio": [0, 9], "null": [0, 1, 3, 7, 9, 10, 11], "birth_dat": [0, 9], "created_at": [0, 9], "sun": [0, 6, 9, 10], "14": [0, 5, 9, 10], "jul": [0, 6, 9, 10], "2019": [0, 6, 8, 9, 10], "09": [0, 9], "58": [0, 9, 11], "gmt": [0, 3, 5, 6, 9, 10], "date_format": 0, "dd": 0, "mm": 0, "yyyy": 0, "display_ascent": 0, "sam": [0, 3, 6, 9, 10, 11], "exampl": [0, 1, 5, 9, 11, 15, 16], "com": [0, 1, 5, 9, 11, 15, 16], "email_to_confirm": 0, "first_nam": [0, 9], "imperial_unit": [0, 9], "is_act": [0, 2, 3, 7, 9], "languag": [0, 9, 11, 12], "last_nam": [0, 9], "locat": [0, 9, 15], "nb_sport": [0, 9], "nb_workout": [0, 9], "6": [0, 1, 2, 3, 7, 9, 10, 12, 13, 15], "pictur": [0, 9, 10, 11], "record": [0, 4, 9, 10, 11, 13], "id": [0, 2, 3, 5, 6, 7, 9, 10], "9": [0, 6, 9, 13, 15], "record_typ": [0, 6, 9, 10], "AS": [0, 6, 9, 10], "sport_id": [0, 3, 6, 7, 8, 9, 10], "user": [0, 1, 3, 6, 8, 9, 10, 11, 15, 16], "valu": [0, 6, 9, 10, 11], "18": [0, 6, 9, 10, 13, 15], "workout_dat": [0, 6, 9, 10], "07": [0, 6, 9, 10], "08": [0, 3, 6, 9, 10], "00": [0, 3, 6, 9, 10], "workout_id": [0, 6, 9, 10], "hvybqybra7wwxpastwr4v2": [0, 6, 9, 10], "10": [0, 1, 3, 6, 9, 10, 13, 15], "fd": [0, 6, 9, 10], "13": [0, 6, 9, 10, 12, 13, 15], "ha": [0, 6, 9, 10], "43": [0, 6, 9, 10, 11], "97": [0, 6, 9, 10, 11], "11": [0, 6, 9, 13, 15], "ld": [0, 6, 9, 10], "01": [0, 6, 8, 9, 10], "12": [0, 6, 9, 10, 15, 17], "MS": [0, 6, 9, 10], "sports_list": [0, 9], "4": [0, 2, 7, 8, 9, 10, 12, 13, 15], "start_elevation_at_zero": 0, "timezon": [0, 9, 11], "europ": [0, 9], "paris": [0, 9], "total_ascent": [0, 8], "720": 0, "35": [0, 11], "total_dist": [0, 3, 8, 9], "67": [0, 8, 9], "895": [0, 9], "total_dur": [0, 3, 8, 9], "50": [0, 3, 8, 9, 11, 15], "27": [0, 5, 9, 13], "use_dark_mod": 0, "use_raw_gpx_speed": 0, "weekm": [0, 8, 9], "En": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14], "t\u00eat": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 16], "authoriz": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 16], "oauth": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 14, 15], "2": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13, 14, 15], "0": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15], "bear": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "provid": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "signatur": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "expired": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "log": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 18], "edit": [0, 11, 13], "modifi": [0, 2, 3, 7, 9, 12, 13, 15], "writ": [0, 1, 2, 3, 5, 7, 9, 10, 16], "updated": [0, 3, 11], "pr\u00e9nom": 0, "famill": 0, "localis": [0, 15], "biograph": 0, "naissanc": 0, "format": [0, 8, 10, 11, 13, 14], "Y": [0, 8, 10], "preferent": [0, 11], "pris": [0, 5, 11, 12, 13, 15, 16], "charg": [0, 5, 11, 12, 13, 15, 16, 19], "valeur": [0, 3, 5, 10, 12, 13, 15, 16, 18], "d\u00e9faut": [0, 3, 5, 9, 10, 11, 12, 13, 15], "date_string": 0, "correspond": [0, 10, 15], "mmm": 0, "do": [0, 1, 2, 3, 7, 8, 9, 10, 11], "local": [0, 11, 14, 15], "e": 0, "fr": [0, 9, 15], "gl": 0, "it": [0, 3], "nl": 0, "nb": 0, "affich": [0, 10, 11, 12, 13, 14, 15, 16, 19], "dan": [0, 1, 3, 10, 11, 12, 13, 14, 15, 16, 19], "d\u00e9nivel": [0, 6, 10, 13], "total": [0, 3, 5, 8, 10, 11, 13], "distanc": [0, 6, 10, 11, 13], "unit": [0, 11, 15], "imp\u00e9rial": [0, 13], "Les": [0, 6, 10, 13, 14, 15, 16, 19], "graphiqu": [0, 11, 13, 15], "altitud": [0, 11, 13], "commencent": 0, "z\u00e9ro": [0, 13], "fuseau": [0, 10, 13], "horair": [0, 10, 13], "them": [0, 11, 13], "sombr": [0, 13], "vrai": 0, "s\u00e9lection": [0, 13], "selon": [0, 13, 15], "navig": [0, 11, 13, 15], "gpx": [0, 5, 10, 11, 13, 14, 15, 17], "filtr": [0, 11, 13], "calcul": [0, 8, 11, 13], "vitess": [0, 6, 10, 11, 13, 15], "La": [0, 11, 12, 13, 15, 16, 18], "semain": [0, 8, 13], "commenc": [0, 8, 11, 13, 15, 18], "lund": [0, 8, 13], "don": [0, 5, 8, 10, 11, 13, 14, 16, 18], "match": 0, "sport": [0, 1, 3, 4, 8, 10, 11, 15], "color": [0, 7, 11], "000000": 0, "default_equipment_id": 0, "stopped_speed_threshold": [0, 7], "user_id": [0, 3], "int": [0, 2, 3, 5, 7, 10], "lequel": [0, 15], "couleur": [0, 13], "hexad\u00e9cimal": 0, "ajout": [0, 9, 11, 12, 13, 14, 15, 17], "s\u00e9anc": [0, 1, 3, 4, 7, 8, 11, 14, 16, 17, 19], "float": [0, 10], "seuil": [0, 13], "arr\u00eat": [0, 11, 13, 15], "gpxpy": [0, 11, 13, 15], "array": [0, 3, 5, 10], "of": [0, 1, 3, 10, 11, 15, 16], "\u00e9quip": [0, 4, 10, 11, 16], "moment": [0, 10, 11, 13], "peut": [0, 3, 8, 9, 10, 11, 12, 13, 15, 16], "\u00eatre": [0, 3, 5, 10, 11, 12, 13, 14, 15, 16, 18], "associ": [0, 3, 5, 7, 10, 11, 12, 13, 16], "hexadecimal": 0, "equipment_id": [0, 10], "an": [0, 5, 10, 11], "one": [0, 10], "equipment": [0, 2, 3, 10, 11, 16], "can": [0, 9, 10, 11, 15, 18], "added": [0, 3, 10, 11], "with": [0, 3, 10, 11, 15], "exist": [0, 3, 8, 9, 10, 11, 13, 14, 15], "for": [0, 1, 3, 10, 11, 15], "delet": [0, 3, 5, 9, 10, 11], "reset": [0, 11, 12], "r\u00e9initialis": [0, 9, 12, 13, 15], "204": [0, 3, 5, 9, 10], "parametr": [0, 2, 3, 5, 7, 8, 9, 10, 11, 13, 16], "identifi": [0, 5, 7, 8, 10, 16], "no": [0, 3, 5, 9, 10, 11], "supprim": [0, 3, 5, 9, 10, 11, 12, 13], "mis": [0, 3, 7, 9, 10, 11, 13, 16], "jour": [0, 1, 3, 7, 9, 10, 11, 12, 13], "imag": [0, 9, 10, 11, 13, 15, 19], "multipart": [0, 5, 10], "form": [0, 5, 10, 11], "fil": [0, 1, 10, 11, 15], "fichi": [0, 1, 10, 11, 12, 13, 14, 15, 17, 19], "extens": [0, 10, 15], "autoris": [0, 1, 5, 10, 15, 16], "jpg": 0, "png": [0, 10, 15], "gif": 0, "part": [0, 10, 11, 13, 14, 16, 17], "selected": [0, 10], "413": [0, 10], "entity": [0, 10], "too": [0, 10], "larg": [0, 10, 15], "during": [0, 3, 10], "updat": [0, 3, 10, 11, 15], "siz": [0, 1, 10, 11, 15], "exceed": [0, 3, 10, 11], "0mb": [0, 10], "trait": [0, 12], "demand": [0, 11, 12, 13, 15], "processed": 0, "patch": [0, 1, 2, 3, 7, 9, 10], "suiv": [0, 6, 13, 15, 16, 17, 18], "modif": [0, 13, 14], "chang": [0, 3, 11, 13, 15], "actuel": [0, 3], "autr": [0, 9, 13, 15], "new_password": 0, "nouveau": [0, 12, 13, 15, 16], "missing": [0, 11], "current": [0, 9, 11], "uniqu": [0, 5, 11, 12, 15, 16], "new": [0, 3, 9, 11, 13], "logout": [0, 11], "d\u00e9connexion": 0, "out": 0, "access": [0, 11], "revoked": 0, "malformed": 0, "other": [0, 3, 9], "reason": 0, "blacklist": 0, "export": [0, 11, 12, 13, 14, 15], "archiv": [0, 1, 11, 12, 13, 15], "Il": [0, 11, 13, 14, 15, 16], "cr\u00e9ation": [0, 11, 13], "in_progress": 0, "errored": 0, "taill": [0, 1, 13, 15], "octet": 0, "lorsqu": [0, 11, 12, 15], "r\u00e9uss": 0, "wed": 0, "mar": [0, 3, 11, 15], "2023": [0, 3, 15], "31": [0, 10, 13, 15], "17": [0, 10, 13], "file_nam": 0, "archive_rgjsr3fht295ywnqr5yp": 0, "zip": [0, 1, 10, 11, 13], "file_siz": 0, "924": 0, "aucun": [0, 3, 10, 13, 14, 15], "ongoing": 0, "completed": 0, "t\u00e9l\u00e9charg": [0, 10, 12, 13, 15, 19], "download": [0, 10, 11], "archive_rgjsr3fhr5yp": 0, "x": [0, 10, 11, 15, 16], "gzip": 0, "config": [1, 11, 15], "about": [1, 11, 15], "admin_contact": 1, "gpx_limit_import": 1, "is_email_sending_enabled": 1, "is_registration_enabled": 1, "max_single_file_siz": 1, "1048576": 1, "max_user": 1, "max_zip_file_siz": 1, "10485760": 1, "map_attribu": [1, 15], "copy": [1, 15], "href": [1, 15], "www": [1, 15], "openstreetmap": [1, 11, 15], "org": [1, 15], "copyright": [1, 15], "contributor": [1, 15], "privacy_policy": 1, "privacy_policy_dat": 1, "stats_workouts_lim": 1, "10000": 1, "version": [1, 12, 13, 15, 16], "weather_provid": 1, "getting": 1, "mettr": [1, 9, 10, 11, 12, 13, 15], "avoir": [1, 2, 7, 15], "droit": [1, 2, 7, 9, 11, 12, 13, 15, 16], "administr": [1, 2, 7, 9, 12, 15, 16, 19], "instanc": [1, 11, 13, 15], "integ": [1, 2, 3, 5, 7, 8, 9, 10], "nombr": [1, 9, 10, 12, 13, 15], "maximum": [1, 13], "maximal": [1, 6, 10, 11, 12, 13], "inscrir": [1, 11, 13, 15], "statist": [1, 4], "max": [1, 9, 10, 11, 12], "great": [1, 11], "than": [1, 9, 11], "equal": 1, "uploaded": [1, 11, 15], "numb": [1, 11, 15], "workout": [1, 3, 5, 6, 7, 8, 10, 11, 16], "statistic": [1, 8, 11], "hav": [1, 2, 3, 7, 8, 9, 10, 11], "perm": [1, 2, 3, 7, 8, 9, 10], "when": [1, 11], "updating": 1, "ping": 1, "contr\u00f4l": 1, "pong": 1, "tous": [2, 3, 5, 6, 7, 8, 9, 11, 13, 15], "equipment_typ": [2, 3], "label": [2, 3, 7, 11, 13], "sho": [2, 3], "bik": [2, 3], "train": 2, "kayak_boat": 2, "5": [2, 5, 7, 8, 9, 10, 12, 13, 15], "skis": [2, 13], "snowsho": [2, 11], "has_equipment": 2, "equipment_type_id": [2, 3], "trouv": [2, 3, 5, 7, 10], "d\u00e9": 2, "propri\u00e9tair": [3, 11, 13], "voir": [3, 11, 13, 15, 16, 18], "quelqu": [3, 9, 10, 11, 13, 16], "creation_dat": [3, 10], "Tue": 3, "21": 3, "06": [3, 5, 8], "default_for_sport_id": 3, "descript": [3, 5, 12, 13, 15], "first": [3, 11], "fittracke": [3, 5, 12, 13, 15, 16, 17, 19], "2ukrviyshoakg8qsuknus4": 3, "my": 3, "total_moving": 3, "workouts_count": [3, 9], "29": 3, "second": [3, 10], "equipment_short_id": 3, "anoth": 3, "piec": 3, "court": [3, 10], "201": [3, 10, 11], "created": [3, 5, 10], "from": [3, 8, 10, 11, 15], "bref": 3, "moin": [3, 10], "\u00e9ventuel": 3, "plus": [3, 6, 11, 12, 13, 14, 15, 18], "longu": [3, 6, 11, 13], "limit": [3, 11, 13], "facult": [3, 16], "integer": 3, "obligatoir": [3, 5, 8, 10, 11, 12, 15, 16], "parameter": [3, 11], "sport_label": 3, "equipment_type_label": 3, "sav": [3, 11], "permet": [3, 11, 12, 13, 14, 16], "statut": [3, 9, 12], "tout": [3, 8, 13, 15], "d\u00e9fin": [3, 11, 13, 16, 18], "qrj7by6h2iyjsv8sersfgv": 3, "28": 3, "supplied": 3, "refresh": 3, "recalcul": [3, 13], "cas": [3, 5, 13, 15], "o\u00f9": [3, 13, 15], "incorrect": [3, 11, 13], "Un": [3, 9, 11, 13, 15], "propr": [3, 9, 13, 14], "suppress": [3, 11, 13], "forc": 3, "entre": [3, 5, 10, 13, 16], "import": [3, 5, 11, 13, 15], "tant": 3, "argument": [3, 12], "requis": 3, "cel": [3, 11, 13, 15], "enlev": 3, "cannot": [3, 11], "has": [3, 9, 11], "associated": [3, 11], "without": [3, 10, 11], "paramet": [3, 15], "authentif": [4, 15, 16], "compt": [4, 9, 10, 11, 12, 15, 17], "configur": [4, 11, 13, 15, 16, 18], "oauth2": [4, 16], "app": [5, 11, 15, 16], "client": [5, 11, 13, 15, 16], "pagin": [5, 9, 10], "pag": [5, 9, 10, 11], "Ce": 5, "accessibl": [5, 11, 15, 16], "san": [5, 8, 9, 10, 11, 13, 14, 15], "client_descript": 5, "client_id": [5, 16], "o22a27s2abpuoxjbxv3ujdox": 5, "issued_at": 5, "thu": 5, "july": 5, "2022": 5, "53": [5, 11], "nam": [5, 11], "redirect_ur": 5, "callback": [5, 16], "websit": 5, "has_next": 5, "has_prev": 5, "client_secret": 5, "secret": [5, 15, 16], "client_nam": 5, "client_ur": 5, "list": [5, 10, 11, 12, 14, 15], "redirect": [5, 11, 16], "cha\u00een": [5, 16], "optionnel": [5, 15], "client_client_id": 5, "by_id": 5, "enti": 5, "revok": 5, "r\u00e9voqu": 5, "redirig": [5, 16], "ver": [5, 11, 15, 16], "\u00e9mettr": 5, "response_typ": [5, 16], "support": [5, 11, 15, 16, 18], "stat": [5, 8, 11, 16], "\u00e9vit": [5, 11, 13], "falsif": [5, 16], "sit": [5, 16], "cross": [5, 16], "forgery": [5, 16], "csrf": [5, 16], "recommand": [5, 15, 16], "code_challeng": [5, 16], "g\u00e9ner": [5, 12, 13, 15, 16], "v\u00e9rif": [5, 11, 16, 18], "pkce": [5, 16], "code_challenge_method": [5, 16], "m\u00e9thod": [5, 15, 16], "challeng": [5, 16], "s256": [5, 16], "librair": [5, 15], "authlib": [5, 15, 16], "d\u00e9livr": 5, "rafra\u00eech": 5, "access_token": 5, "roehv64thcg28wcewzhrnvlusoduvw8nvnhkcml57": 5, "expires_in": 5, "864000": 5, "refresh_token": 5, "nuv9cy8vqonrqkhtz5pqaq2zw7msh0mornpjr14amswd6f6": 5, "token_typ": 5, "expires_at": 5, "1658660147": 5, "0667062": 5, "grant_typ": 5, "authorization_cod": [5, 16], "\u00e9miss": 5, "code_verifi": 5, "moyen": [6, 8, 10, 11, 13, 15], "\u00e9lev": [6, 13, 15], "dur": [6, 10, 11, 13], "retourn": [6, 8], "is_active_for_us": 7, "cycling": [7, 11], "transport": [7, 11, 13], "hiking": 7, "mountain": 7, "biking": [7, 10], "running": 7, "walking": 7, "check_workout": 7, "has_workout": 7, "v\u00e9rifi": [7, 15, 18], "user_nam": [8, 9], "by_tim": 8, "entra\u00een": [8, 10, 13], "p\u00e9riod": [8, 13, 15], "temp": 8, "acced": [8, 15, 16], "2018": [8, 10], "tim": [8, 10, 11], "week": [8, 11], "2017": [8, 10], "total_workout": 8, "203": 8, "156": [8, 11], "15": [8, 10, 12, 13, 15], "282": [8, 11], "12341": 8, "150": 8, "178": [8, 11], "47": [8, 10, 11], "9960": 8, "46": [8, 11], "78": 8, "613": 8, "1267": 8, "average_ascent": 8, "101": [8, 11], "average_dist": 8, "average_dur": 8, "7641": 8, "average_speed": 8, "48": 8, "average_descent": 8, "59": [8, 11], "33": [8, 11], "3320": 8, "16": [8, 10, 13], "99": [8, 11], "95": [8, 11], "d\u00e9but": [8, 10], "fin": [8, 10, 11, 15], "dimanch": [8, 13], "month": [8, 11], "mois": [8, 11, 13], "year": 8, "ann\u00e9": [8, 13], "default": [8, 10, 11, 15], "averag": [8, 11], "period": 8, "by_sport": 8, "all": [8, 15], "uploads_dir_siz": 8, "1000": 8, "Ne": 9, "order_by": [9, 10], "par_pag": 9, "is_admin": 9, "sat": 9, "20": [9, 13], "03": [9, 10], "per_pag": [9, 10], "q": 9, "order": [9, 10, 11], "ordre": [9, 10], "tri": [9, 10, 13], "asc": [9, 10], "desc": [9, 10], "criter": 9, "jpeg": 9, "activat": [9, 12], "new_email": 9, "reset_password": 9, "different": [9, 11], "sauf": [9, 15], "sien": 9, "john_do": 9, "your": 9, "right": [9, 11], "02": 10, "ascent": [10, 11], "ave_speed": 10, "bound": 10, "51": 10, "descent": [10, 11], "durat": [10, 11], "04": 10, "kjxavsturjvoah2wvcegef": 10, "map": [10, 11, 13, 14], "max_alt": 10, "max_speed": 10, "min_alt": 10, "modification_dat": 10, "moving": [10, 11], "next_workout": 10, "paus": [10, 11], "previous_workout": 10, "Mon": 10, "jan": 10, "segment": [10, 11, 13], "titl": [10, 11], "weather_end": 10, "weather_start": 10, "with_gpx": 10, "100": [10, 11, 13], "titr": [10, 13], "tient": 10, "majuscul": 10, "minuscul": 10, "distance_from": 10, "minimal": [10, 11, 13, 16], "distance_to": 10, "duration_from": 10, "h": [10, 13], "M": 10, "duration_to": 10, "ave_speed_from": 10, "ave_speed_to": 10, "max_speed_from": 10, "max_speed_to": 10, "sorting": 10, "criteri": 10, "workout_short_id": 10, "57": [10, 11], "45": 10, "22": 10, "sunday": 10, "morning": 10, "cart": [10, 11, 13, 14, 15, 19], "leaflet": [10, 15], "this": [10, 12, 15], "chart_dat": 10, "r\u00e9cuper": [10, 13, 15, 16], "chart": [10, 11, 15], "js": [10, 15], "elev": [10, 11], "279": [10, 11], "latitud": 10, "5078118": 10, "longitud": 10, "1232004": 10, "speed": [10, 11], "63": 10, "fri": 10, "44": [10, 11], "7": [10, 12, 13, 15, 16], "7380": 10, "280": [10, 11], "5079733": 10, "1234538": 10, "39": 10, "segment_id": 10, "map_id": 10, "fa33f4d996844a5c73ecd1ae24456ab8": 10, "1563529507772": 10, "map_til": 10, "z": [10, 15], "tuil": [10, 11, 13], "serveur": [10, 11, 13, 14, 18], "4109": 10, "2930": 10, "sous": [10, 15], "domain": [10, 15], "zoom": 10, "index": 10, "axe": [10, 13], "xml": 10, "guillemet": 10, "doubl": 10, "doivent": [10, 15, 16], "\u00e9chapp": [10, 11], "Pour": [10, 11, 13, 15, 16], "no_gpx": 10, "uuid": [10, 11], "posit": [10, 11, 13], "n\u00e9gat": [10, 13], "km": [10, 13], "d\u00e9j\u00e0": [10, 12], "remplac": [10, 11, 13, 15], "vid": [10, 12, 15], "pr": 11, "590": 11, "translat": 11, "italian": 11, "591": 11, "galician": [11, 13], "592": 11, "german": [11, 15], "dutch": 11, "593": 11, "fb10602": 11, "fix": [11, 15], "avanc": [11, 13], "basqu": [11, 13], "98": 11, "tchequ": [11, 13], "73": 11, "n\u00e9erland": [11, 13], "galicien": 11, "allemand": [11, 13], "italien": [11, 13], "82": 11, "norv\u00e9gien": [11, 13], "bokm\u00e5l": [11, 13], "52": 11, "polon": [11, 13], "92": 11, "portug": [11, 13], "espagnol": [11, 13], "595": 11, "ci": 11, "up": [11, 14], "test": [11, 15], "merc": 11, "contributeur": [11, 15, 17], "confusedalex": 11, "lukasitaly": 11, "simontb": 11, "slothj": 11, "xmgz": 11, "566": 11, "featur": 11, "improved": 11, "section": 11, "575": 11, "add": 11, "display": 11, "587": [11, 15], "improv": 11, "588": 11, "click": 11, "checkbox": 11, "564": 11, "565": 11, "polish": 11, "571": 11, "spanish": 11, "582": 11, "583": 11, "simplify": 11, "dock": 11, "deployment": 11, "byakurau": 11, "gallegonovato": 11, "jderuit": 11, "pluj": 11, "Cette": [11, 14, 15], "contient": [11, 13, 15], "migrat": [11, 12, 15], "bas": [11, 13, 15, 18], "mainten": [11, 15], "f2aec30": 11, "strength": 11, "estim": 11, "czech": 11, "563": 11, "cli": [11, 12, 13, 15], "init": 11, "creation": 11, "550": 11, "typo": 11, "instead": 11, "per": [11, 15], "551": 11, "555": 11, "558": 11, "portugues": 11, "74": 11, "88": 11, "556": 11, "minor": 11, "refacto": 11, "557": 11, "prepar": 11, "sqlalchemy": [11, 15, 18], "jmlich": 11, "voodoopt": 11, "546": 11, "are": 11, "refreshed": 11, "after": [11, 15], "displaying": 11, "545": 11, "urtzai": 11, "540": 11, "542": 11, "544": 11, "543": 11, "tool": 11, "replac": 11, "black": 11, "flake8": 11, "isort": 11, "ruff": 11, "ondrejzivny": 11, "qwerty287": 11, "527": 11, "endpoint": 11, "respons": 11, "531": 11, "mobil": [11, 14], "532": 11, "foot": 11, "dark": 11, "mod": 11, "536": 11, "accessibility": 11, "526": 11, "norwegian": 11, "533": 11, "534": 11, "537": 11, "538": 11, "528": 11, "readm": 11, "reworked": 11, "530": 11, "specify": 11, "agplv3": 11, "licens": [11, 14, 15], "comradekingu": 11, "d\u00e9sorm": 11, "259": 11, "512": 11, "ability": 11, "filt": 11, "508": 11, "stopped": 11, "threshold": 11, "3b6fa25": 11, "tabl": 11, "small": 11, "resolu": 11, "51758b4": 11, "filter": 11, "hiding": 11, "507": 11, "510": 11, "511": 11, "521": 11, "524": 11, "89": 11, "75": 11, "502": 11, "remov": 11, "deprecated": 11, "command": [11, 13, 14, 15], "506": 11, "databas": [11, 12, 15], "jat255": 11, "504": 11, "fail": 11, "496": 11, "499": 11, "84": 11, "60": 11, "bjornclauw": 11, "mariuz": 11, "495": 11, "menu": [11, 13], "clicking": 11, "490": 11, "EU": 11, "494": 11, "install": [11, 14], "python": [11, 15, 16], "erral": 11, "b748459": 11, "alert": 11, "481": 11, "handl": 11, "keyboard": 11, "dropdown": 11, "3821e37": 11, "mak": [11, 15], "calendar": 11, "arrow": 11, "488": 11, "489": 11, "482": 11, "484": 11, "aff4d68": 11, "action": 11, "8aa4cff": 11, "load": [11, 18], "478": 11, "clickabl": 11, "dashboard": 11, "479": 11, "ui": 11, "476": 11, "477": 11, "475": 11, "build": [11, 15], "use": 11, "poetry": [11, 15], "cor": 11, "traxy": 11, "koen": 11, "474": 11, "link": 11, "6e215a": 11, "background": 11, "modal": 11, "displayed": 11, "473": 11, "113": 11, "464": 11, "471": 11, "trekking": [11, 13], "469": 11, "472": 11, "resetting": 11, "468": 11, "456": 11, "drop": 11, "postgresql": [11, 15, 18], "85": 11, "61": 11, "davidhenrythoreau": 11, "224": 11, "result": 11, "444": 11, "d\u00e9pend": 11, "449": 11, "vu": [11, 15], "tooling": 11, "library": 11, "450": 11, "441": 11, "upgrad": [11, 15], "433": 11, "encoded": 11, "427": 11, "typos": 11, "431": 11, "428": 11, "2bcff2e": 11, "flask": [11, 15], "436": 11, "438": 11, "workflow": 11, "421": 11, "darksky": [11, 15], "avail": 11, "weath": 11, "provider": 11, "env": [11, 15], "426": 11, "til": [11, 15], "thank": 11, "astridx": 11, "422": 11, "e2e": 11, "packaged": 11, "411": 11, "various": 11, "416": 11, "closing": 11, "410": 11, "415": 11, "417": 11, "418": 11, "mariusz": 11, "407": 11, "zero": 11, "409": 11, "open": [11, 13, 14], "wat": 11, "swimming": 11, "398": 11, "402": 11, "399": 11, "406": 11, "56": 11, "380": 11, "390": 11, "391": 11, "paragliding": 11, "384": 11, "inconsistent": 11, "between": 11, "gp": [11, 13], "393": 11, "pil": 11, "modul": [11, 15], "attribut": 11, "antiali": 11, "394": 11, "397": 11, "386": 11, "contributing": 11, "md": 11, "388": 11, "395": 11, "cc3fe1c": 11, "42": 11, "dkm": 11, "partiel": 11, "quant": 11, "encor": [11, 14], "weblat": [11, 13], "351": 11, "370": 11, "371": 11, "375": 11, "french": [11, 13], "thovi98": 11, "376": 11, "1375986": 11, "furo": 11, "377": 11, "354": 11, "374": 11, "virtualenv": [11, 15], "87": 11, "36": 11, "366": 11, "369": 11, "hosted": 11, "367": 11, "358": 11, "filtering": 11, "359": 11, "overlap": 11, "350": 11, "352": 11, "356": 11, "357": 11, "365": 11, "gnu": 11, "ewm": 11, "parm": 11, "dessous": 11, "servic": [11, 15], "319": 11, "creat": [11, 15], "329": 11, "start": 11, "axis": 11, "at": [11, 15], "sticky": 11, "333": 11, "by": [11, 15], "338": 11, "relev": 11, "328": 11, "track": 11, "imperial": 11, "b29ed7": 11, "250": 11, "320": 11, "323": 11, "06ba975": 11, "bcc568e": 11, "ea0ac99": 11, "a458f5f": 11, "075aeb9": 11, "60e164d": 11, "318": 11, "J": 11, "lavoi": 11, "mondstern": 11, "314": 11, "deleted": 11, "process": [11, 15], "315": 11, "Une": [11, 12, 13, 15, 18], "personnalis": [11, 13], "afin": [11, 13, 16], "puissent": [11, 13], "prendr": [11, 13], "connaiss": [11, 13], "conten": [11, 13, 15], "t\u00e9l\u00e9vers": [11, 13], "enfin": 11, "compl\u00e9mentair": 11, "pouv": 11, "util": [11, 13], "propos": [11, 13], "301": [11, 15], "304": 11, "305": 11, "additional": 11, "307": 11, "quand": 11, "d\u00e9marr": [11, 15, 19], "297": 11, "308": 11, "310": 11, "290": 11, "294": 11, "postgresql10": 11, "265": 11, "implementing": 11, "altern": 11, "visualcrossing": 11, "environment": [11, 15, 18], "variabl": [11, 18], "set": [11, 12, 15], "weather_api_provid": [11, 15], "see": [11, 15], "287": 11, "289": 11, "dperruso": 11, "c88a515": 11, "f96dcef": 11, "mountaineering": 11, "278": 11, "270": 11, "nederland": 11, "258": 11, "pars": 11, "271": 11, "273": 11, "274": 11, "paralleliz": 11, "275": 11, "disabl": 11, "work": [11, 15, 18], "entry": 11, "commend": 11, "lign": [11, 13, 14, 15], "dramatiq": [11, 12, 15], "3c8d9c2": 11, "trailing": 11, "comm": [11, 13, 15], "d\u00e9velopp": [11, 12, 14], "264": 11, "whit": 11, "gray": 11, "266": 11, "260": 11, "checked": 11, "261": 11, "should": 11, "return": [11, 15], "lim": [11, 15], "n\u00e9cessit": [11, 15, 16], "b1536fc": 11, "257": 11, "body": [11, 15], "nginx": [11, 13, 15, 16, 18], "112": 11, "allow": [11, 15], "244": 11, "virtual": 11, "rid": 11, "246": 11, "247": 11, "microsecond": 11, "252": 11, "242": 11, "241": 11, "packag": 11, "239": 11, "cb9d02f": 11, "english": 11, "231": 11, "invalidat": 11, "236": 11, "rat": [11, 15], "232": 11, "hidden": 11, "237": 11, "212": 11, "230": 11, "problem": [11, 13, 15], "225": 11, "grammar": 11, "issu": [11, 13], "skylan0916": 11, "derni": [11, 15], "ex\u00e9cut": 11, "inf\u00e9rieur": 11, "diff\u00e9rent": 11, "ex\u00e9cu": [11, 12], "213": 11, "using": 11, "measur": 11, "ft": 11, "mi": 11, "223": 11, "icon": 11, "167": 11, "162": 11, "fmstrat": 11, "210": 11, "could": 11, "requiring": 11, "subdomain": 11, "staticmap_subdomain": [11, 15], "209": 11, "containing": 11, "multipl": 11, "gorgoback": 11, "Et": 11, "detect": 11, "brows": 11, "matching": 11, "if": [11, 15], "208": 11, "card": 11, "html": 11, "changing": 11, "197": 11, "196": 11, "manag": [11, 12], "190": 11, "193": 11, "deleting": 11, "192": 11, "191": 11, "layout": 11, "nomenclatur": 11, "inclus": 11, "195": 11, "cec": 11, "affect": [11, 13], "pr\u00e9c\u00e9dent": 11, "cc4287e": 11, "offset": 11, "Pas": 11, "refactoris": 11, "avant": [11, 13, 15], "possibl": [11, 13, 14, 15], "fournisseur": [11, 15], "smtp": [11, 15, 18], "r\u00e9duit": 11, "pr\u00e9requ": 11, "mono": [11, 13], "ger": [11, 12, 13, 15, 18], "180": 11, "send": 11, "tl": [11, 15], "177": 11, "manqu": 11, "petit": 11, "\u00e9cran": 11, "175": 11, "173": 11, "171": 11, "correctly": 11, "apport": 11, "niveau": 11, "155": 11, "106": 11, "169": 11, "161": 11, "farthest": 11, "160": 11, "plusieur": [11, 13, 14, 15], "danielsiersleben": 11, "rapport": 11, "initialis": [11, 15], "149": 11, "152": 11, "autoespcap": 11, "model": 11, "jinj": 11, "151": 11, "security": 11, "nettoi": 11, "entr\u00e9": [11, 15, 16], "alphanumer": 11, "worker": [11, 12, 15], "lanc": [11, 15], "script": 11, "product": 11, "dotenv": 11, "146": 11, "145": 11, "140": 11, "fullscreen": 11, "control": [11, 15], "138": 11, "initial": [11, 15], "135": 11, "finish": 11, "marker": 11, "134": 11, "wind": 11, "direct": [11, 13, 15], "877fa0f": 11, "changed": 11, "131": 11, "129": 11, "editing": 11, "127": [11, 15], "validat": 11, "legitimat": 11, "uri": 11, "such": 11, "localhost": [11, 15], "123": 11, "121": 11, "activity": 11, "contain": [11, 15], "116": 11, "bet": 11, "button": 11, "graph": 11, "screen": 11, "115": 11, "option": [11, 12, 15], "91": 11, "min": 11, "90": 11, "som": 11, "seem": 11, "104": 11, "switch": 11, "full": 11, "development": 11, "109": 11, "slow": 11, "mov": 11, "93": 11, "paf38": 11, "83": 11, "configured": 11, "generat": 11, "static": 11, "keep": 11, "default_staticmap": [11, 15], "81": 11, "remaining": 11, "textar": 11, "modify": 11, "his": 11, "birth": 11, "day": [11, 12, 15], "80": [11, 15], "79": 11, "rebuild": 11, "javascript": [11, 15], "Du": 11, "fait": [11, 15], "postgr": [11, 18], "72": 11, "exceeding": 11, "71": 11, "70": 11, "less": 11, "66": 11, "used": 11, "importing": 11, "64": 11, "shown": 11, "62": 11, "sending": 11, "\u00e9valu": [11, 15], "standardiz": 11, "term": 11, "upload": [11, 15, 17], "directory": [11, 15], "also": 11, "uploading": 11, "activit": 11, "introduit": 11, "majeur": 11, "facilit": 11, "dor\u00e9nav": 11, "attent": [11, 15, 18], "lir": 11, "certain": [11, 12, 14, 15], "environ": [11, 12, 18], "renomm": 11, "celui": [11, 15], "thunderforest": [11, 15], "outdoor": [11, 15], "54": 11, "d\u00e9plac": 11, "red": [11, 12, 15], "complet": 11, "co": 11, "4c3fc34": 11, "empty": 11, "34614d5": 11, "spinn": 11, "loading": 11, "b862a77": 11, "2e1ee2c": 11, "interceptor": 11, "rout": [11, 15], "definit": 11, "down": 11, "mor": 11, "weekend": 11, "40": 11, "localiz": 11, "i18n": 11, "41": 11, "show": [11, 12, 15], "mous": 11, "over": 11, "docu": 11, "choos": 11, "37": 11, "34": 11, "anymor": 11, "pipenv": 11, "gestion": [11, 15], "paquet": [11, 15], "detailed": 11, "tooltip": 11, "standard": [11, 15], "v\u00e9lo": [11, 13], "randon": [11, 13], "vtt": [11, 13], "cours": [11, 13], "pied": [11, 13], "march": [11, 13], "\u00e9gal": [11, 12, 13, 14, 15], "enter": 11, "heur": [11, 13, 15], "m\u00e9t\u00e9o": [11, 13], "cl\u00e9": [11, 13, 15], "calendri": [11, 13], "mensuel": [11, 13], "cour": [11, 12, 14, 15], "grand": [11, 13], "recherch": 11, "search": 11, "view": [11, 15], "usag": [12, 15], "arg": [12, 15], "lin": [12, 15], "help": [12, 15], "exit": [12, 15], "expir": 12, "depuis": [12, 15], "noir": 12, "al\u00e9atoir": [12, 15], "deux": 12, "lettr": 12, "iso": 12, "639": 12, "incomplet": 12, "stock": [13, 14, 16], "sportiv": [13, 14], "plein": [13, 14], "air": [13, 14], "Des": 13, "plut\u00f4t": 13, "m\u00eam": [13, 15], "r\u00e9pertoir": [13, 15], "chiffr": [13, 15], "Avec": 13, "street": [13, 14], "statiqu": [13, 15], "trac": [13, 15], "virtuel": [13, 15], "\u00e9lectr": 13, "alpin": 13, "nag": 13, "eau": 13, "libr": 13, "parapent": 13, "19": 13, "aviron": 13, "ski": 13, "raquet": 13, "trail": 13, "lieu": 13, "Elle": 13, "except": [13, 18], "analys": [13, 15], "mani": [13, 15], "sp\u00e9cif": 13, "jusqu": 13, "system": [13, 15], "m\u00e9triqu": 13, "ains": [13, 15], "contrair": 13, "produir": 13, "differ": 13, "origin": 13, "particuli": 13, "outil": [13, 14, 15], "tier": [13, 14], "permettent": 13, "entrer": 13, "relat": 13, "bouton": 13, "visualis": 13, "visual": [13, 15], "crossing": [13, 15], "sourc": 13, "vent": 13, "flech": 13, "indiqu": 13, "infobull": 13, "proven": 13, "perform": 13, "atteint": 13, "masqu": 13, "cf": [13, 14, 15], "comport": 13, "d\u00e9roul": 13, "instant": 13, "r\u00e9cent": 13, "consult": 13, "nouveaut": 13, "dont": [13, 16], "premi": 13, "clair": 13, "chois": [13, 15], "affichag": 13, "cach": 13, "d\u00e9part": 13, "exclur": 13, "extr\u00eam": 13, "exclu": 13, "prochain": 13, "mati": 13, "appara\u00eetr": 13, "toujour": 13, "chaussur": 13, "kayak": 13, "boat": 13, "visibl": 13, "chaqu": 13, "bien": 13, "doiv": 13, "automat": 13, "appar": 13, "rest": [13, 16], "laquel": 13, "tierc": [13, 16], "unitair": 13, "mo": 13, "000": 13, "S": 13, "n\u00e9cessair": [13, 15], "volumin": [13, 18], "avert": 13, "suppl\u00e9mentair": 13, "syntax": 13, "markdown": 13, "adapt": [13, 15], "discours": 13, "traduit": 13, "bloqu": 13, "verrouill": 13, "vi": [13, 15], "correspondr": 13, "etat": 13, "publi": [13, 15], "suivr": 14, "conserv": [14, 15], "votr": [14, 15], "android": 14, "exhaust": 14, "runn": 14, "gpl": 14, "v3": 14, "opentrack": 14, "apach": 14, "fitotrack": 14, "aid": 14, "fonctionnal": [14, 15], "instabl": [14, 15], "ticket": 14, "document": [14, 15, 16, 18], "d\u00e9pannag": 14, "histor": [14, 15], "clon": 15, "d\u00e9p\u00f4t": 15, "\u00e9tap": 15, "d\u00e9crivent": 15, "linux": 15, "exploit": 15, "archlinux": 15, "ubuntu": 15, "integr": 15, "continu": 15, "Sur": 15, "rencontr": 15, "D": 15, "guid": 15, "gr\u00e2c": [15, 17], "uberspac": 15, "hosting": 15, "debian": [15, 17], "net": 15, "typescript": 15, "staticmap": 15, "t\u00e2ch": 15, "gunicorn": [15, 18], "vue3": 15, "vuex": 15, "logo": 15, "ic\u00f4n": 15, "freepik": 15, "flaticon": 15, "fork": 15, "awesom": 15, "nod": 15, "yarn": 15, "compos": 15, "makefil": 15, "custom": 15, "Elles": 15, "flask_app": 15, "d\u00e9marrag": 15, "pwd": 15, "__main__": 15, "py": 15, "sinon": 15, "host": 15, "h\u00f4t": 15, "port": 15, "5000": 15, "app_setting": 15, "productionconfig": 15, "app_secret_key": 15, "fort": 15, "jwt": 15, "app_worker": 15, "_workers_": 15, "app_log": 15, "chemin": [15, 18], "upload_fold": [15, 18], "absolu": [15, 18], "application_directory": 15, "database_url": [15, 18], "5432": 15, "database_disable_pooling": 15, "pooling": 15, "ui_url": 15, "lien": 15, "email_url": [15, 18], "chain": 15, "sender_email": 15, "exp\u00e9diteur": 15, "redis_url": 15, "workers_process": 15, "processus": 15, "api_rate_limit": 15, "300": 15, "minut": 15, "tile_server_url": 15, "gard": 15, "23": 15, "n\u00e9cessitent": [15, 16], "df": 15, "Par": [15, 16], "b": 15, "osm": 15, "franc": 15, "attribu": 15, "target": 15, "_blank": 15, "rel": 15, "noopen": 15, "noreferr": 15, "komoot": 15, "insensibl": 15, "cass": 15, "weather_api_key": 15, "weather_ap": 15, "vite_app_api_url": 15, "26": 15, "vue_app_api_url": 15, "25": 15, "ssl": 15, "465": 15, "starttl": 15, "office365": 15, "fonction": [15, 16], "identif": 15, "omis": 15, "ancien": 15, "notif": 15, "pr\u00eat": 15, "laiss": 15, "24": 15, "encod": 15, "sp\u00e9cial": 15, "passwordwith": 15, "40and": 15, "26and": 15, "3f": 15, "apikey": 15, "xxxx": 15, "condit": 15, "attendu": 15, "osmfr": 15, "fond": 15, "mention": 15, "legal": 15, "nofollow": 15, "nbsp": 15, "creativecommon": 15, "licenc": 15, "cc": 15, "SA": 15, "ip": 15, "strateg": 15, "pourr": 15, "soum": 15, "asset": 15, "notat": 15, "s\u00e9par": [15, 16], "virgul": 15, "hour": 15, "diagnostic": 15, "utility": 15, "clear": 15, "specific": 15, "key": 15, "enumerat": 15, "detail": 15, "interrompu": 15, "remarqu": 15, "fa\u00e7on": 15, "simpl": 15, "pip": 15, "schem": [15, 16], "owner": 15, "privileg": 15, "copi": 15, "coll": 15, "nano": 15, "ftcli": 15, "db": 15, "systemd": 15, "ouvr": 15, "alor": 15, "projet": 15, "project": 15, "git": 15, "github": 15, "samr1": 15, "cd": 15, "dev": 15, "run": 15, "3000": 15, "v0": 15, "wget": 15, "tar": 15, "gz": 15, "xzf": 15, "mv": 15, "sql": 15, "proced": 15, "fair": 15, "sauvegard": 15, "ensembl": 15, "pg_dump": 15, "suivent": 15, "s\u00e9mant": 15, "r\u00e9tro": 15, "compatibl": 15, "stopp": 15, "u": 15, "journal": [15, 18], "red\u00e9marr": 15, "pull": 15, "\u00e9cras": 15, "cp": 15, "r": 15, "proxy": [15, 16], "\u00c0": 15, "network": 15, "startlimitintervalsec": 15, "restart": 15, "alway": 15, "restartsec": 15, "standardoutput": 15, "syslog": 15, "standarderror": 15, "syslogidentifi": 15, "workingdirectory": 15, "hom": 15, "execstart": 15, "venv": 15, "bin": 15, "create_app": 15, "logfil": 15, "wantedby": 15, "mult": 15, "timeout": [15, 18], "fittrackee_worker": 15, "task": 15, "queu": 15, "listen": 15, "443": 15, "http2": 15, "server_nam": 15, "ssl_certificat": 15, "fullchain": 15, "pem": 15, "ssl_certificate_key": 15, "privkey": 15, "how": 15, "1mb": 15, "setting": 15, "ll": 15, "need": 15, "uncommenting": 15, "below": 15, "want": 15, "prevent": 15, "checking": 15, "client_max_body_siz": [15, 18], "1m": 15, "proxy_pass": 15, "proxy_redirect": 15, "proxy_set_head": [15, 16], "real": 15, "remote_addr": 15, "forwarded": [15, 16], "proxy_add_x_forwarded_for": 15, "proto": [15, 16], "request_ur": 15, "besoin": 15, "8025": 15, "mailhog": 15, "stop": 15, "shel": 15, "additionnel": 15, "fittrackee_client": 15, "lint": 15, "check": 15, "fittrackee_ynh": 15, "plupart": 16, "permettr": 16, "interag": 16, "onglet": 16, "\u00e9chang": 16, "contr": 16, "corp": 16, "assur": 16, "meilleur": 16, "s\u00e9cur": 16, "\u00e9critur": 16, "accord": 16, "lectur": 16, "Ils": 16, "puiss": 16, "fittrackee_host": 16, "espac": 16, "emp\u00each": 16, "3aread": 16, "3awrit": 16, "sort": 16, "ensuit": 16, "\u0153uvr": 16, "bibliothequ": 16, "derri": 16, "simplified": 16, "aaron": 16, "pareck": 16, "flow": 16, "oauthlib": 16, "session": 16, "strav": 17, "fit": 17, "garmin": 17, "synchronis": 17, "fittrackee_install": 17, "sh": 17, "netinstall": 17, "exc": 18, "nosuchmoduleerror": 18, "plugin": 18, "dialect": 18, "invalidemailurlschem": 18, "augment": 18, "del": 18, "critical": 18, "d\u00e9tail": 19, "\u00e9chec": 19}, "objects": {"": [[0, 0, 1, "post--api-auth-account-confirm", "/api/auth/account/confirm"], [0, 1, 1, "get--api-auth-account-export", "/api/auth/account/export"], [0, 1, 1, "get--api-auth-account-export-(string-file_name)", "/api/auth/account/export/(string:file_name)"], [0, 0, 1, "post--api-auth-account-export-request", "/api/auth/account/export/request"], [0, 0, 1, "post--api-auth-account-privacy-policy", "/api/auth/account/privacy-policy"], [0, 0, 1, "post--api-auth-account-resend-confirmation", "/api/auth/account/resend-confirmation"], [0, 0, 1, "post--api-auth-email-update", "/api/auth/email/update"], [0, 0, 1, "post--api-auth-login", "/api/auth/login"], [0, 0, 1, "post--api-auth-logout", "/api/auth/logout"], [0, 0, 1, "post--api-auth-password-reset-request", "/api/auth/password/reset-request"], [0, 0, 1, "post--api-auth-password-update", "/api/auth/password/update"], [0, 2, 1, "delete--api-auth-picture", "/api/auth/picture"], [0, 0, 1, "post--api-auth-picture", "/api/auth/picture"], [0, 1, 1, "get--api-auth-profile", "/api/auth/profile"], [0, 0, 1, "post--api-auth-profile-edit", "/api/auth/profile/edit"], [0, 3, 1, "patch--api-auth-profile-edit-account", "/api/auth/profile/edit/account"], [0, 0, 1, "post--api-auth-profile-edit-preferences", "/api/auth/profile/edit/preferences"], [0, 0, 1, "post--api-auth-profile-edit-sports", "/api/auth/profile/edit/sports"], [0, 2, 1, "delete--api-auth-profile-reset-sports-(sport_id)", "/api/auth/profile/reset/sports/(sport_id)"], [0, 0, 1, "post--api-auth-register", "/api/auth/register"], [1, 1, 1, "get--api-config", "/api/config"], [1, 3, 1, "patch--api-config", "/api/config"], [2, 1, 1, "get--api-equipment-types", "/api/equipment-types"], [2, 1, 1, "get--api-equipment-types-(int-equipment_type_id)", "/api/equipment-types/(int:equipment_type_id)"], [2, 3, 1, "patch--api-equipment-types-(int-equipment_type_id)", "/api/equipment-types/(int:equipment_type_id)"], [3, 1, 1, "get--api-equipments", "/api/equipments"], [3, 0, 1, "post--api-equipments", "/api/equipments"], [3, 2, 1, "delete--api-equipments-(string-equipment_short_id)", "/api/equipments/(string:equipment_short_id)"], [3, 1, 1, "get--api-equipments-(string-equipment_short_id)", "/api/equipments/(string:equipment_short_id)"], [3, 3, 1, "patch--api-equipments-(string-equipment_short_id)", "/api/equipments/(string:equipment_short_id)"], [3, 0, 1, "post--api-equipments-(string-equipment_short_id)-refresh", "/api/equipments/(string:equipment_short_id)/refresh"], [5, 1, 1, "get--api-oauth-apps", "/api/oauth/apps"], [5, 0, 1, "post--api-oauth-apps", "/api/oauth/apps"], [5, 2, 1, "delete--api-oauth-apps-(int-client_id)", "/api/oauth/apps/(int:client_id)"], [5, 1, 1, "get--api-oauth-apps-(int-client_id)-by_id", "/api/oauth/apps/(int:client_id)/by_id"], [5, 0, 1, "post--api-oauth-apps-(int-client_id)-revoke", "/api/oauth/apps/(int:client_id)/revoke"], [5, 1, 1, "get--api-oauth-apps-(string-client_client_id)", "/api/oauth/apps/(string:client_client_id)"], [5, 0, 1, "post--api-oauth-authorize", "/api/oauth/authorize"], [5, 0, 1, "post--api-oauth-revoke", "/api/oauth/revoke"], [5, 0, 1, "post--api-oauth-token", "/api/oauth/token"], [1, 1, 1, "get--api-ping", "/api/ping"], [6, 1, 1, "get--api-records", "/api/records"], [7, 1, 1, "get--api-sports", "/api/sports"], [7, 1, 1, "get--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [7, 3, 1, "patch--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [8, 1, 1, "get--api-stats-(user_name)-by_sport", "/api/stats/(user_name)/by_sport"], [8, 1, 1, "get--api-stats-(user_name)-by_time", "/api/stats/(user_name)/by_time"], [8, 1, 1, "get--api-stats-all", "/api/stats/all"], [9, 1, 1, "get--api-users", "/api/users"], [9, 2, 1, "delete--api-users-(user_name)", "/api/users/(user_name)"], [9, 1, 1, "get--api-users-(user_name)", "/api/users/(user_name)"], [9, 3, 1, "patch--api-users-(user_name)", "/api/users/(user_name)"], [9, 1, 1, "get--api-users-(user_name)-picture", "/api/users/(user_name)/picture"], [10, 1, 1, "get--api-workouts", "/api/workouts"], [10, 0, 1, "post--api-workouts", "/api/workouts"], [10, 2, 1, "delete--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [10, 3, 1, "patch--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-chart_data", "/api/workouts/(string:workout_short_id)/chart_data"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-chart_data-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/chart_data/segment/(int:segment_id)"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx", "/api/workouts/(string:workout_short_id)/gpx"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx-download", "/api/workouts/(string:workout_short_id)/gpx/download"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/gpx/segment/(int:segment_id)"], [10, 1, 1, "get--api-workouts-map-(map_id)", "/api/workouts/map/(map_id)"], [10, 0, 1, "post--api-workouts-no_gpx", "/api/workouts/no_gpx"], [15, 4, 1, "-", "API_RATE_LIMITS"], [15, 4, 1, "-", "APP_LOG"], [15, 4, 1, "-", "APP_SECRET_KEY"], [15, 4, 1, "-", "APP_SETTINGS"], [15, 4, 1, "-", "APP_WORKERS"], [15, 4, 1, "-", "DATABASE_DISABLE_POOLING"], [15, 4, 1, "-", "DATABASE_URL"], [15, 4, 1, "-", "DEFAULT_STATICMAP"], [15, 4, 1, "-", "EMAIL_URL"], [15, 4, 1, "-", "FLASK_APP"], [15, 4, 1, "-", "HOST"], [15, 4, 1, "-", "MAP_ATTRIBUTION"], [15, 4, 1, "-", "PORT"], [15, 4, 1, "-", "REDIS_URL"], [15, 4, 1, "-", "SENDER_EMAIL"], [15, 4, 1, "-", "STATICMAP_SUBDOMAINS"], [15, 4, 1, "-", "TILE_SERVER_URL"], [15, 4, 1, "-", "UI_URL"], [15, 4, 1, "-", "UPLOAD_FOLDER"], [15, 4, 1, "-", "VITE_APP_API_URL"], [15, 4, 1, "-", "WEATHER_API_KEY"], [15, 4, 1, "envvar-WEATHER_API_PROVIDER", "WEATHER_API_PROVIDER \ud83c\udd95"], [15, 4, 1, "-", "WORKERS_PROCESSES"]], "/api/workouts/map_tile/(s)/(z)/(x)/(y)": [[10, 1, 1, "get--api-workouts-map_tile-(s)-(z)-(x)-(y).png", "png"]]}, "objtypes": {"0": "http:post", "1": "http:get", "2": "http:delete", "3": "http:patch", "4": "std:envvar"}, "objnames": {"0": ["http", "post", "HTTP post"], "1": ["http", "get", "HTTP get"], "2": ["http", "delete", "HTTP delete"], "3": ["http", "patch", "HTTP patch"], "4": ["std", "envvar", "variable d'environnement"]}, "titleterms": {"authentif": 0, "compt": [0, 13], "configur": 1, "typ": [2, 13], "\u00e9quip": [2, 3, 13], "document": [4, 11], "api": [4, 15], "point": 4, "acces": [4, 15], "oauth2": [5, 12], "record": 6, "sport": [7, 13], "statist": [8, 11, 13], "utilis": [9, 12, 13], "s\u00e9anc": [10, 13, 18], "histor": 11, "modif": 11, "version": 11, "0": [11, 16], "8": 11, "6": 11, "2024": 11, "08": 11, "03": 11, "traduct": [11, 13], "diver": 11, "5": 11, "29": 11, "06": 11, "fonctionnal": [11, 13], "am\u00e9lior": 11, "bug": 11, "corrig": 11, "4": 11, "22": 11, "05": 11, "3": 11, "09": 11, "2": [11, 16], "1": 11, "01": 11, "21": 11, "04": 11, "7": 11, "32": 11, "10": 11, "31": 11, "02": 11, "30": 11, "28": 11, "23": 11, "12": 11, "2023": 11, "27": 11, "20": 11, "26": 11, "19": 11, "11": 11, "25": 11, "24": 11, "14": 11, "07": 11, "15": 11, "18": 11, "17": 11, "16": 11, "13": 11, "2022": 11, "9": 11, "ticket": 11, "ferm": 11, "pull": 11, "request": 11, "s\u00e9cur": 11, "nouvel": 11, "2021": 11, "2020": 11, "fittracke": [11, 14, 18], "pyp": [11, 15], "administr": [11, 13, 18], "correct": 11, "mineur": 11, "disponibl": 11, "franc": 11, "2019": 11, "premi": 11, "2018": 11, "interfac": 12, "lign": 12, "command": 12, "bas": 12, "don": [12, 15], "ftcli": 12, "db": 12, "drop": 12, "upgrad": 12, "clean": 12, "user": 12, "clean_arch": 12, "clean_token": 12, "creat": 12, "export_arch": 12, "updat": 12, "pr\u00e9f\u00e9rent": 13, "appliqu": 13, "oauth": [13, 16], "captur": 13, "\u00e9cran": 13, "tableau": 13, "bord": 13, "pag": 13, "d\u00e9tail": [13, 18], "list": 13, "tabl": 14, "mati": 14, "install": [15, 17], "d\u00e9pend": 15, "principal": 15, "pr\u00e9requ": 15, "variabl": 15, "environ": 15, "courriel": 15, "serveur": 15, "tuil": 15, "limit": 15, "m\u00e9t\u00e9o": 15, "a": 15, "part": 15, "sourc": 15, "d\u00e9velopp": 15, "product": 15, "mis": 15, "jour": 15, "d\u00e9ploi": 15, "dock": 15, "yunohost": 15, "scop": 16, "flux": 16, "ressourc": 16, "outil": 17, "tier": 17, "import": 17, "script": 17, "d\u00e9marr": 18, "Les": 18, "imag": 18, "cart": 18, "affich": 18, "dan": 18, "\u00e9chec": 18, "charg": 18, "t\u00e9l\u00e9charg": 18, "fichi": 18, "d\u00e9pannag": 19}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 58}, "alltitles": {"Authentification et compte": [[0, "authentication-and-account"]], "Configuration": [[1, "configuration"]], "Types d\u2019\u00e9quipement": [[2, "equipment-types"], [13, "equipment-types"]], "\u00c9quipements": [[3, "equipments"], [13, "equipments"], [13, "id1"]], "Documentation de l\u2019API": [[4, "api-documentation"]], "Points d'acc\u00e8s :": [[4, null]], "OAuth2": [[5, "oauth2"], [12, "oauth2"]], "Records": [[6, "records"]], "Sports": [[7, "sports"], [13, "sports"]], "Statistiques": [[8, "statistics"], [13, "statistics"]], "Utilisateurs": [[9, "users"], [12, "users"], [13, "users"]], "S\u00e9ances": [[10, "workouts"], [13, "workouts"]], "Historique des modifications": [[11, "change-log"]], "Version 0.8.6 (2024/08/03)": [[11, "version-0-8-6-2024-08-03"]], "Traductions": [[11, "translations"], [11, "id1"], [11, "id4"], [11, "id7"], [11, "id8"], [11, "id12"], [11, "id16"], [11, "id19"], [11, "id21"], [11, "id25"], [11, "id29"], [11, "id33"], [11, "id36"], [11, "id39"], [11, "id43"], [11, "id48"], [11, "id53"], [11, "id56"], [11, "id58"], [11, "id61"], [11, "id64"], [11, "id67"], [11, "id70"], [11, "id73"], [11, "id74"], [11, "id77"], [11, "id79"], [11, "id81"], [11, "id82"], [11, "id85"], [11, "id87"], [11, "id90"], [11, "id92"], [11, "id96"], [11, "id97"], [11, "id99"], [11, "id102"], [11, "id115"], [13, "translations"]], "Divers": [[11, "misc"], [11, "id2"], [11, "id5"], [11, "id9"], [11, "id13"], [11, "id17"], [11, "id22"], [11, "id26"], [11, "id30"], [11, "id37"], [11, "id40"], [11, "id44"], [11, "id46"], [11, "id50"], [11, "id57"], [11, "id60"], [11, "id68"], [11, "id75"], [11, "id86"], [11, "id88"], [11, "id104"], [11, "id118"], [11, "id121"], [11, "id138"], [11, "id140"], [11, "id157"], [11, "id166"], [11, "id173"], [11, "id177"], [11, "id184"], [11, "id195"], [11, "id198"]], "Version 0.8.5 (29/06/2024)": [[11, "version-0-8-5-2024-06-29"]], "Fonctionnalit\u00e9s et am\u00e9liorations": [[11, "features-and-enhancements"], [11, "id3"], [11, "id10"], [11, "id14"], [11, "id23"], [11, "id27"], [11, "id31"], [11, "id34"], [11, "id51"], [11, "id54"], [11, "id62"], [11, "id65"], [11, "id71"], [11, "id76"], [11, "id78"], [11, "id80"], [11, "id83"], [11, "id94"], [11, "id100"]], "Bugs corrig\u00e9s": [[11, "bugs-fixed"], [11, "id6"], [11, "id11"], [11, "id15"], [11, "id18"], [11, "id20"], [11, "id24"], [11, "id28"], [11, "id32"], [11, "id35"], [11, "id38"], [11, "id41"], [11, "id42"], [11, "id45"], [11, "id47"], [11, "id49"], [11, "id52"], [11, "id55"], [11, "id63"], [11, "id66"], [11, "id69"], [11, "id72"], [11, "id84"], [11, "id89"], [11, "id91"], [11, "id95"], [11, "id98"], [11, "id101"], [11, "id103"], [11, "id106"], [11, "id109"], [11, "id111"], [11, "id114"], [11, "id117"], [11, "id120"], [11, "id125"], [11, "id127"], [11, "id129"], [11, "id131"], [11, "id134"], [11, "id136"], [11, "id142"], [11, "id145"], [11, "id147"], [11, "id149"], [11, "id156"], [11, "id161"], [11, "id163"], [11, "id165"], [11, "id168"], [11, "id170"], [11, "id172"], [11, "id176"], [11, "id186"], [11, "id189"], [11, "id191"], [11, "id194"], [11, "id201"]], "Version 0.8.4 (22/05/2024)": [[11, "version-0-8-4-2024-05-22"]], "Version 0.8.3 (09/05/2024)": [[11, "version-0-8-3-2024-05-09"]], "Version 0.8.2 (08/05/2024)": [[11, "version-0-8-2-2024-05-08"]], "Version 0.8.1 (01/05/2024)": [[11, "version-0-8-1-2024-05-01"]], "Version 0.8.0 (21/04/2024)": [[11, "version-0-8-0-2024-04-21"]], "Version 0.7.32 (10/03/2024)": [[11, "version-0-7-32-2024-03-10"]], "Version 0.7.31 (10/02/2024)": [[11, "version-0-7-31-2024-02-10"]], "Version 0.7.30 (04/02/2024)": [[11, "version-0-7-30-2024-02-04"]], "Version 0.7.29 (04/01/2024)": [[11, "version-0-7-29-2024-01-06"]], "Version 0.7.28 (23/12/2023)": [[11, "version-0-7-28-2023-12-23"]], "Version 0.7.27 (20/12/2023)": [[11, "version-0-7-27-2023-12-20"]], "Version 0.7.26 (19/11/2023)": [[11, "version-0-7-26-2023-11-19"]], "Version 0.7.25 (08/10/2023)": [[11, "version-0-7-25-2023-10-08"]], "Version 0.7.24 (04/10/2023)": [[11, "version-0-7-24-2023-10-04"]], "Version 0.7.23 (14/09/2023)": [[11, "version-0-7-23-2023-09-14"]], "Version 0.7.22 (23/08/2023)": [[11, "version-0-7-22-2023-08-23"]], "Version 0.7.21 (30/07/2023)": [[11, "version-0-7-21-2023-07-30"]], "Version 0.7.20 (22/07/2023)": [[11, "version-0-7-20-2023-07-22"]], "Version 0.7.19 (15/07/2023)": [[11, "version-0-7-19-2023-07-15"]], "Documentation": [[11, "documentation"], [11, "id59"], [11, "id93"]], "Version 0.7.18 (25/06/2023)": [[11, "version-0-7-18-2023-06-25"]], "Version 0.7.17 (03/06/2023)": [[11, "version-0-7-17-2023-06-03"]], "Version 0.7.16 (29/05/2023)": [[11, "version-0-7-16-2023-05-29"]], "Version 0.7.15 (12/04/2023)": [[11, "version-0-7-15-2023-04-12"]], "Version 0.7.14 (08/03/2023)": [[11, "version-0-7-14-2023-03-08"]], "Version 0.7.13 (05/03/2023)": [[11, "version-0-7-13-2023-03-05"]], "Version 0.7.12 (16/02/2023)": [[11, "version-0-7-12-2023-02-16"]], "Version 0.7.11 (31/12/2022)": [[11, "version-0-7-11-2022-12-31"]], "Version 0.7.10 (21/12/2022)": [[11, "version-0-7-10-2022-12-21"]], "Version 0.7.9 (11/12/2022)": [[11, "version-0-7-9-2022-12-11"]], "Version 0.7.8 (30/11/2022)": [[11, "version-0-7-8-2022-11-30"]], "Version 0.7.7 (27/11/2022)": [[11, "version-0-7-7-2022-11-27"]], "Version 0.7.6 (09/11/2022)": [[11, "version-0-7-6-2022-11-09"]], "Version 0.7.5 (09/11/2022)": [[11, "version-0-7-5-2022-11-09"]], "Version 0.7.4 (05/11/2022)": [[11, "version-0-7-4-2022-11-05"]], "Version 0.7.3 (01/11/2022)": [[11, "version-0-7-3-2022-11-01"]], "Version 0.7.2 (21/09/2022)": [[11, "version-0-7-2-2022-09-21"]], "Version 0.7.1 (21/09/2022)": [[11, "version-0-7-1-2022-09-21"]], "Version 0.7.0 (19/09/2022)": [[11, "version-0-7-0-2022-09-19"]], "Version 0.6.12 (14/09/2022)": [[11, "version-0-6-12-2022-09-14"]], "Tickets Ferm\u00e9s": [[11, "issues-closed"], [11, "id105"], [11, "id108"], [11, "id112"], [11, "id116"], [11, "id119"], [11, "id122"], [11, "id124"], [11, "id128"], [11, "id130"], [11, "id132"], [11, "id137"], [11, "id141"], [11, "id144"], [11, "id146"], [11, "id148"], [11, "id150"], [11, "id152"], [11, "id154"], [11, "id159"], [11, "id162"], [11, "id164"], [11, "id167"], [11, "id169"], [11, "id171"], [11, "id174"], [11, "id178"], [11, "id180"], [11, "id182"], [11, "id185"], [11, "id187"], [11, "id190"], [11, "id192"], [11, "id196"], [11, "id199"], [11, "id202"]], "Pull Requests": [[11, "pull-requests"], [11, "id107"], [11, "id110"], [11, "id126"], [11, "id135"], [11, "id139"], [11, "id143"], [11, "id158"]], "Version 0.6.11 (27/02/2022)": [[11, "version-0-6-11-2022-07-27"]], "Fonctionnalit\u00e9s": [[11, "features"], [11, "id113"], [11, "id123"], [11, "id133"], [13, "features"]], "Version 0.6.10 (13/07/2022)": [[11, "version-0-6-10-2022-07-13"]], "Version 0.6.9 (03/07/2022)": [[11, "version-0-6-9-2022-07-03"]], "Version 0.6.8 (22/06/2022)": [[11, "version-0-6-8-2022-06-22"]], "Version 0.6.7 (11/06/2022)": [[11, "version-0-6-7-2022-06-11"]], "Version 0.6.6 (29/05/2022)": [[11, "version-0-6-6-2022-05-29"]], "Version 0.6.5 (24/04/2022)": [[11, "version-0-6-5-2022-04-24"]], "Version 0.6.4 (23/04/2022)": [[11, "version-0-6-4-2022-04-23"]], "Version 0.6.3 (09/04/2022)": [[11, "version-0-6-3-2022-04-09"]], "Version 0.6.2 (03/04/2022)": [[11, "version-0-6-2-2022-04-03"]], "Version 0.6.1 (27/03/2022)": [[11, "version-0-6-1-2022-03-27"]], "Version 0.6.0 (27/03/2022)": [[11, "version-0-6-0-2022-03-27"]], "Version 0.5.7 (13/02/2022)": [[11, "version-0-5-7-2022-02-13"]], "S\u00e9curit\u00e9": [[11, "security"]], "Version 0.5.6 (05/02/2022)": [[11, "version-0-5-6-2022-02-05"]], "Version 0.5.5 (19/01/2022)": [[11, "version-0-5-5-2022-01-19"]], "Nouvelles fonctionnalit\u00e9s": [[11, "new-features"], [11, "id151"], [11, "id153"], [11, "id155"], [11, "id160"], [11, "id175"], [11, "id179"], [11, "id181"], [11, "id183"], [11, "id188"], [11, "id193"], [11, "id197"], [11, "id200"], [11, "id203"]], "Version 0.5.4 (01/01/2022)": [[11, "version-0-5-4-2022-01-01"]], "Version 0.5.3 (01/01/2022)": [[11, "version-0-5-3-2022-01-01"]], "Version 0.5.2 (19/12/2021)": [[11, "version-0-5-2-2021-12-19"]], "Version 0.5.1 (30/11/2021)": [[11, "version-0-5-1-2021-11-30"]], "Version 0.5.0 (14/11/2021)": [[11, "version-0-5-0-2021-11-14"]], "Version 0.4.9 (16/07/2021)": [[11, "version-0-4-9-2021-07-16"]], "Version 0.4.8 (03/07/2021)": [[11, "version-0-4-8-2021-07-03"]], "Version 0.4.7 (07/04/2021)": [[11, "version-0-4-7-2021-04-07"]], "Version 0.4.6 (21/02/2021)": [[11, "version-0-4-6-2021-02-21"]], "Version 0.4.5 (17/02/2021)": [[11, "version-0-4-5-2021-02-17"]], "Version 0.4.4 (31/01/2021)": [[11, "version-0-4-4-2021-01-31"]], "Version 0.4.3 (10/01/2021)": [[11, "version-0-4-3-2021-01-10"]], "Version 0.4.2 (03/01/2021)": [[11, "version-0-4-2-2021-01-03"]], "Version 0.4.1 (31/12/2020)": [[11, "version-0-4-1-2020-12-31"]], "Version 0.4.0 - FitTrackee sur PyPI (19/09/2020)": [[11, "version-0-4-0-fittrackee-on-pypi-2020-09-19"]], "Version 0.3.0 - Administration (15/07/2020)": [[11, "version-0-3-0-administration-2020-07-15"]], "Version 0.2.5 - Corrections et am\u00e9liorations (31/01/2020)": [[11, "version-0-2-5-fix-and-improvements-2020-01-31"]], "Version 0.2.4 - Corrections mineures (30/01/2020)": [[11, "version-0-2-4-minor-fix-2020-01-30"]], "Version 0.2.3 - FitTrackee disponible en Fran\u00e7ais (29/12/2019)": [[11, "version-0-2-3-fittrackee-available-in-french-2019-12-29"]], "Version 0.2.2 - Corrections des statistiques (23/09/2019)": [[11, "version-0-2-2-statistics-fix-2019-09-23"]], "Version 0.2.1 - Correction et am\u00e9liorations (01/09/2019)": [[11, "version-0-2-1-fix-and-improvements-2019-09-01"]], "Version 0.2.0 - Statistiques (07/07/2019)": [[11, "version-0-2-0-statistics-2019-07-07"]], "Version 0.1.1 - Corrections et am\u00e9liorations (07/02/2019)": [[11, "version-0-1-1-fix-and-improvements-2019-02-07"]], "Version 0.1.0 - Premi\u00e8re version \ud83c\udf89 (04/07/2018)": [[11, "version-0-1-0-first-release-2018-07-04"]], "Interface de ligne de commande": [[12, "command-line-interface"]], "Base de donn\u00e9es": [[12, "database"]], "ftcli db drop": [[12, "ftcli-db-drop"]], "ftcli db upgrade": [[12, "ftcli-db-upgrade"]], "ftcli oauth2 clean": [[12, "ftcli-oauth2-clean"]], "ftcli users clean_archives": [[12, "ftcli-users-clean-archives"]], "ftcli users clean_tokens": [[12, "ftcli-users-clean-tokens"]], "ftcli users create": [[12, "ftcli-users-create"]], "ftcli users export_archives": [[12, "ftcli-users-export-archives"]], "ftcli users update": [[12, "ftcli-users-update"]], "Compte et pr\u00e9f\u00e9rences": [[13, "account-preferences"]], "Applications OAuth": [[13, "oauth-apps"]], "Administration": [[13, "administration"], [13, "id2"]], "Application": [[13, "application"]], "Captures d\u2019\u00e9cran": [[13, "screenshots"]], "Tableau de bord": [[13, "dashboard"]], "Page de d\u00e9tail d\u2019une s\u00e9ance": [[13, "workout-detail"]], "Liste des s\u00e9ances": [[13, "workouts-list"]], "FitTrackee": [[14, "fittrackee"]], "Table des mati\u00e8res": [[14, "table-of-contents"]], "Installation": [[15, "installation"], [15, "id2"], [15, "id6"]], "D\u00e9pendances principales": [[15, "main-dependencies"]], "Pr\u00e9requis": [[15, "prerequisites"]], "Variables d\u2019environnement": [[15, "environment-variables"]], "Courriels": [[15, "emails"]], "Serveur de tuiles": [[15, "map-tile-server"]], "Limitation d\u2019acc\u00e8s \u00e0 l\u2019API": [[15, "api-rate-limits"]], "Donn\u00e9es m\u00e9t\u00e9o": [[15, "weather-data"]], "A partir de PyPI": [[15, "from-pypi"], [15, "id3"]], "A partir des sources": [[15, "from-sources"], [15, "id4"]], "Environnements de d\u00e9veloppement": [[15, "dev-environment"], [15, "id5"]], "Environnements de production": [[15, "production-environment"]], "Mise \u00e0 jour": [[15, "upgrade"]], "Environnement de production": [[15, "prod-environment"]], "D\u00e9ploiement": [[15, "deployment"]], "Docker": [[15, "docker"]], "D\u00e9veloppement": [[15, "development"]], "Yunohost": [[15, "yunohost"]], "OAuth 2.0": [[16, "oauth-2-0"]], "Scopes": [[16, "scopes"]], "Flux": [[16, "flow"]], "Ressources": [[16, "resources"]], "Outils tiers": [[17, "third-party-tools"]], "Outils d\u2019importation": [[17, "import-tools"]], "Scripts d\u2019installation": [[17, "installation-scripts"]], "Administrateur": [[18, "administrator"]], "FitTrackee ne d\u00e9marre pas": [[18, "fittrackee-fails-to-start"]], "Les images de la carte ne sont pas affich\u00e9es mais la carte est affich\u00e9e dans le d\u00e9tail de la s\u00e9ance": [[18, "map-images-are-not-displayed-but-map-is-shown-in-workout-detail"]], "\u00c9chec du chargement ou du t\u00e9l\u00e9chargement de fichiers": [[18, "failed-to-upload-or-download-files"]], "D\u00e9pannage": [[19, "troubleshooting"]]}, "indexentries": {"api_rate_limits": [[15, "envvar-API_RATE_LIMITS"]], "app_log": [[15, "envvar-APP_LOG"]], "app_secret_key": [[15, "envvar-APP_SECRET_KEY"]], "app_settings": [[15, "envvar-APP_SETTINGS"]], "app_workers": [[15, "envvar-APP_WORKERS"]], "database_disable_pooling": [[15, "envvar-DATABASE_DISABLE_POOLING"]], "database_url": [[15, "envvar-DATABASE_URL"]], "default_staticmap": [[15, "envvar-DEFAULT_STATICMAP"]], "email_url": [[15, "envvar-EMAIL_URL"]], "flask_app": [[15, "envvar-FLASK_APP"]], "host": [[15, "envvar-HOST"]], "map_attribution": [[15, "envvar-MAP_ATTRIBUTION"]], "port": [[15, "envvar-PORT"]], "redis_url": [[15, "envvar-REDIS_URL"]], "sender_email": [[15, "envvar-SENDER_EMAIL"]], "staticmap_subdomains": [[15, "envvar-STATICMAP_SUBDOMAINS"]], "tile_server_url": [[15, "envvar-TILE_SERVER_URL"]], "ui_url": [[15, "envvar-UI_URL"]], "upload_folder": [[15, "envvar-UPLOAD_FOLDER"]], "vite_app_api_url": [[15, "envvar-VITE_APP_API_URL"]], "weather_api_key": [[15, "envvar-WEATHER_API_KEY"]], "weather_api_provider \ud83c\udd95": [[15, "envvar-WEATHER_API_PROVIDER"]], "workers_processes": [[15, "envvar-WORKERS_PROCESSES"]], "variable d'environnement": [[15, "envvar-API_RATE_LIMITS"], [15, "envvar-APP_LOG"], [15, "envvar-APP_SECRET_KEY"], [15, "envvar-APP_SETTINGS"], [15, "envvar-APP_WORKERS"], [15, "envvar-DATABASE_DISABLE_POOLING"], [15, "envvar-DATABASE_URL"], [15, "envvar-DEFAULT_STATICMAP"], [15, "envvar-EMAIL_URL"], [15, "envvar-FLASK_APP"], [15, "envvar-HOST"], [15, "envvar-MAP_ATTRIBUTION"], [15, "envvar-PORT"], [15, "envvar-REDIS_URL"], [15, "envvar-SENDER_EMAIL"], [15, "envvar-STATICMAP_SUBDOMAINS"], [15, "envvar-TILE_SERVER_URL"], [15, "envvar-UI_URL"], [15, "envvar-UPLOAD_FOLDER"], [15, "envvar-VITE_APP_API_URL"], [15, "envvar-WEATHER_API_KEY"], [15, "envvar-WEATHER_API_PROVIDER"], [15, "envvar-WORKERS_PROCESSES"]]}}) \ No newline at end of file diff --git a/docs/fr/third_party_tools.html b/docs/fr/third_party_tools.html index e19b35eff..55d7ea228 100644 --- a/docs/fr/third_party_tools.html +++ b/docs/fr/third_party_tools.html @@ -5,12 +5,12 @@ - - Outils tiers - Documentation FitTrackee 0.8.5 + + Outils tiers - Documentation FitTrackee 0.8.6 - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
    -
    @@ -210,7 +197,7 @@
    - Documentation FitTrackee 0.8.5 + Documentation FitTrackee 0.8.6 @@ -386,10 +373,10 @@

    Scripts d’installation

    - + - + diff --git a/docs/fr/troubleshooting/administrator.html b/docs/fr/troubleshooting/administrator.html index 6d0cb21f4..782267d91 100644 --- a/docs/fr/troubleshooting/administrator.html +++ b/docs/fr/troubleshooting/administrator.html @@ -5,12 +5,12 @@ - - Administrateur - Documentation FitTrackee 0.8.5 + + Administrateur - Documentation FitTrackee 0.8.6 - + - + @@ -91,19 +91,6 @@
    - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
    -
    @@ -210,7 +197,7 @@
    - Documentation FitTrackee 0.8.5 + Documentation FitTrackee 0.8.6 @@ -402,10 +389,10 @@

    Échec du chargement ou du téléchargement de fichiers

    - + - + diff --git a/docs/fr/troubleshooting/index.html b/docs/fr/troubleshooting/index.html index af1f585c6..f753bb51c 100644 --- a/docs/fr/troubleshooting/index.html +++ b/docs/fr/troubleshooting/index.html @@ -5,12 +5,12 @@ - - Dépannage - Documentation FitTrackee 0.8.5 + + Dépannage - Documentation FitTrackee 0.8.6 - + - + @@ -91,19 +91,6 @@ - - Auto light/dark mode - - - - - - - - - - Auto light/dark, in light mode - @@ -182,7 +169,7 @@
    -
    @@ -210,7 +197,7 @@
    - Documentation FitTrackee 0.8.5 + Documentation FitTrackee 0.8.6 @@ -361,10 +348,10 @@

    Dépannage +

    - + diff --git a/docsrc/gettext/.doctrees/api/auth.doctree b/docsrc/gettext/.doctrees/api/auth.doctree index abdee284a..a14f8fa69 100644 Binary files a/docsrc/gettext/.doctrees/api/auth.doctree and b/docsrc/gettext/.doctrees/api/auth.doctree differ diff --git a/docsrc/gettext/.doctrees/api/configuration.doctree b/docsrc/gettext/.doctrees/api/configuration.doctree index 4757e9699..34f7af1f6 100644 Binary files a/docsrc/gettext/.doctrees/api/configuration.doctree and b/docsrc/gettext/.doctrees/api/configuration.doctree differ diff --git a/docsrc/gettext/.doctrees/api/equipment_types.doctree b/docsrc/gettext/.doctrees/api/equipment_types.doctree index 4eaaada12..80cb0bd0b 100644 Binary files a/docsrc/gettext/.doctrees/api/equipment_types.doctree and b/docsrc/gettext/.doctrees/api/equipment_types.doctree differ diff --git a/docsrc/gettext/.doctrees/api/equipments.doctree b/docsrc/gettext/.doctrees/api/equipments.doctree index 712965eab..bd80a5244 100644 Binary files a/docsrc/gettext/.doctrees/api/equipments.doctree and b/docsrc/gettext/.doctrees/api/equipments.doctree differ diff --git a/docsrc/gettext/.doctrees/api/index.doctree b/docsrc/gettext/.doctrees/api/index.doctree index d614761cf..adb3302e9 100644 Binary files a/docsrc/gettext/.doctrees/api/index.doctree and b/docsrc/gettext/.doctrees/api/index.doctree differ diff --git a/docsrc/gettext/.doctrees/api/oauth2.doctree b/docsrc/gettext/.doctrees/api/oauth2.doctree index 9e742af70..3ed55a4ed 100644 Binary files a/docsrc/gettext/.doctrees/api/oauth2.doctree and b/docsrc/gettext/.doctrees/api/oauth2.doctree differ diff --git a/docsrc/gettext/.doctrees/api/records.doctree b/docsrc/gettext/.doctrees/api/records.doctree index e6a2934a2..b7b01be14 100644 Binary files a/docsrc/gettext/.doctrees/api/records.doctree and b/docsrc/gettext/.doctrees/api/records.doctree differ diff --git a/docsrc/gettext/.doctrees/api/sports.doctree b/docsrc/gettext/.doctrees/api/sports.doctree index a09b88d3f..a52d360b3 100644 Binary files a/docsrc/gettext/.doctrees/api/sports.doctree and b/docsrc/gettext/.doctrees/api/sports.doctree differ diff --git a/docsrc/gettext/.doctrees/api/stats.doctree b/docsrc/gettext/.doctrees/api/stats.doctree index da11155e9..c55b3188e 100644 Binary files a/docsrc/gettext/.doctrees/api/stats.doctree and b/docsrc/gettext/.doctrees/api/stats.doctree differ diff --git a/docsrc/gettext/.doctrees/api/users.doctree b/docsrc/gettext/.doctrees/api/users.doctree index 6a6f567f5..75398f47e 100644 Binary files a/docsrc/gettext/.doctrees/api/users.doctree and b/docsrc/gettext/.doctrees/api/users.doctree differ diff --git a/docsrc/gettext/.doctrees/api/workouts.doctree b/docsrc/gettext/.doctrees/api/workouts.doctree index accbcddb2..25940091e 100644 Binary files a/docsrc/gettext/.doctrees/api/workouts.doctree and b/docsrc/gettext/.doctrees/api/workouts.doctree differ diff --git a/docsrc/gettext/.doctrees/changelog.doctree b/docsrc/gettext/.doctrees/changelog.doctree index bd1c20e20..52f92810a 100644 Binary files a/docsrc/gettext/.doctrees/changelog.doctree and b/docsrc/gettext/.doctrees/changelog.doctree differ diff --git a/docsrc/gettext/.doctrees/cli.doctree b/docsrc/gettext/.doctrees/cli.doctree index f31653460..1fc5d8b79 100644 Binary files a/docsrc/gettext/.doctrees/cli.doctree and b/docsrc/gettext/.doctrees/cli.doctree differ diff --git a/docsrc/gettext/.doctrees/environment.pickle b/docsrc/gettext/.doctrees/environment.pickle index 1e0cbd1b7..19b652997 100644 Binary files a/docsrc/gettext/.doctrees/environment.pickle and b/docsrc/gettext/.doctrees/environment.pickle differ diff --git a/docsrc/gettext/.doctrees/features.doctree b/docsrc/gettext/.doctrees/features.doctree index 2745b584e..a7d208fcb 100644 Binary files a/docsrc/gettext/.doctrees/features.doctree and b/docsrc/gettext/.doctrees/features.doctree differ diff --git a/docsrc/gettext/.doctrees/index.doctree b/docsrc/gettext/.doctrees/index.doctree index 056cf223f..ab38d751c 100644 Binary files a/docsrc/gettext/.doctrees/index.doctree and b/docsrc/gettext/.doctrees/index.doctree differ diff --git a/docsrc/gettext/.doctrees/installation.doctree b/docsrc/gettext/.doctrees/installation.doctree index 29dfd0029..d007a9389 100644 Binary files a/docsrc/gettext/.doctrees/installation.doctree and b/docsrc/gettext/.doctrees/installation.doctree differ diff --git a/docsrc/gettext/.doctrees/oauth.doctree b/docsrc/gettext/.doctrees/oauth.doctree index dd99977e4..8534f52ea 100644 Binary files a/docsrc/gettext/.doctrees/oauth.doctree and b/docsrc/gettext/.doctrees/oauth.doctree differ diff --git a/docsrc/gettext/.doctrees/third_party_tools.doctree b/docsrc/gettext/.doctrees/third_party_tools.doctree index 763ebfe0b..74599a2c0 100644 Binary files a/docsrc/gettext/.doctrees/third_party_tools.doctree and b/docsrc/gettext/.doctrees/third_party_tools.doctree differ diff --git a/docsrc/gettext/.doctrees/troubleshooting/administrator.doctree b/docsrc/gettext/.doctrees/troubleshooting/administrator.doctree index cf6ed03fc..2c2c63193 100644 Binary files a/docsrc/gettext/.doctrees/troubleshooting/administrator.doctree and b/docsrc/gettext/.doctrees/troubleshooting/administrator.doctree differ diff --git a/docsrc/gettext/.doctrees/troubleshooting/index.doctree b/docsrc/gettext/.doctrees/troubleshooting/index.doctree index 8b7089d7c..4e2fe5b09 100644 Binary files a/docsrc/gettext/.doctrees/troubleshooting/index.doctree and b/docsrc/gettext/.doctrees/troubleshooting/index.doctree differ diff --git a/docsrc/gettext/docs.pot b/docsrc/gettext/docs.pot index c1c48d7e3..8f7509291 100644 --- a/docsrc/gettext/docs.pot +++ b/docsrc/gettext/docs.pot @@ -6,10 +6,10 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: FitTrackee 0.8.5\n" +"Project-Id-Version: FitTrackee 0.8.6\n" "\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-06-29 14:43+0200\n" +"POT-Creation-Date: 2024-08-03 08:50+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1800,2696 +1800,2760 @@ msgid "Change log" msgstr "" #: ../source/changelog.md:3 -msgid "Version 0.8.5 (2024/06/29)" +msgid "Version 0.8.6 (2024/08/03)" msgstr "" #: ../source/changelog.md:5 -#: ../source/changelog.md:55 -#: ../source/changelog.md:154 -#: ../source/changelog.md:203 -#: ../source/changelog.md:312 -#: ../source/changelog.md:352 -#: ../source/changelog.md:390 -#: ../source/changelog.md:422 -#: ../source/changelog.md:595 -#: ../source/changelog.md:634 -#: ../source/changelog.md:747 -#: ../source/changelog.md:795 -#: ../source/changelog.md:868 -#: ../source/changelog.md:908 -#: ../source/changelog.md:929 -#: ../source/changelog.md:944 -#: ../source/changelog.md:968 -#: ../source/changelog.md:1031 -#: ../source/changelog.md:1071 -msgid "Features and enhancements" +#: ../source/changelog.md:52 +#: ../source/changelog.md:97 +#: ../source/changelog.md:134 +#: ../source/changelog.md:159 +#: ../source/changelog.md:201 +#: ../source/changelog.md:251 +#: ../source/changelog.md:291 +#: ../source/changelog.md:322 +#: ../source/changelog.md:360 +#: ../source/changelog.md:398 +#: ../source/changelog.md:435 +#: ../source/changelog.md:470 +#: ../source/changelog.md:505 +#: ../source/changelog.md:546 +#: ../source/changelog.md:594 +#: ../source/changelog.md:643 +#: ../source/changelog.md:684 +#: ../source/changelog.md:728 +#: ../source/changelog.md:765 +#: ../source/changelog.md:794 +#: ../source/changelog.md:844 +#: ../source/changelog.md:889 +#: ../source/changelog.md:918 +#: ../source/changelog.md:933 +#: ../source/changelog.md:950 +#: ../source/changelog.md:970 +#: ../source/changelog.md:985 +#: ../source/changelog.md:998 +#: ../source/changelog.md:1013 +#: ../source/changelog.md:1026 +#: ../source/changelog.md:1041 +#: ../source/changelog.md:1055 +#: ../source/changelog.md:1080 +#: ../source/changelog.md:1089 +#: ../source/changelog.md:1100 +#: ../source/changelog.md:1119 +#: ../source/changelog.md:1205 +#: ../source/features.rst:277 +msgid "Translations" msgstr "" #: ../source/changelog.md:7 -msgid "#566 - [Feature] Improved statistics section with average calculation" +msgid "PR#590 - Translations update (Italian)" msgstr "" #: ../source/changelog.md:8 -msgid "PR#575 - Add page to display sport statistics" +msgid "PR#591 - Translations update (Galician)" msgstr "" #: ../source/changelog.md:9 -msgid "PR#587 - Improve user forms" +msgid "PR#592 - Translations update (German, Dutch)" +msgstr "" + +#: ../source/changelog.md:10 +msgid "PR#593 - Translations update (German)" msgstr "" #: ../source/changelog.md:11 -#: ../source/changelog.md:93 -#: ../source/changelog.md:158 -#: ../source/changelog.md:208 -#: ../source/changelog.md:250 -#: ../source/changelog.md:281 -#: ../source/changelog.md:316 -#: ../source/changelog.md:357 -#: ../source/changelog.md:394 -#: ../source/changelog.md:428 -#: ../source/changelog.md:463 -#: ../source/changelog.md:498 -#: ../source/changelog.md:505 -#: ../source/changelog.md:539 -#: ../source/changelog.md:551 -#: ../source/changelog.md:583 -#: ../source/changelog.md:600 -#: ../source/changelog.md:641 -#: ../source/changelog.md:752 -#: ../source/changelog.md:802 -#: ../source/changelog.md:848 -#: ../source/changelog.md:874 -#: ../source/changelog.md:972 -#: ../source/changelog.md:1000 -#: ../source/changelog.md:1011 -#: ../source/changelog.md:1038 -#: ../source/changelog.md:1059 -#: ../source/changelog.md:1077 -#: ../source/changelog.md:1093 -#: ../source/changelog.md:1114 -#: ../source/changelog.md:1136 -#: ../source/changelog.md:1143 -#: ../source/changelog.md:1163 -#: ../source/changelog.md:1185 -#: ../source/changelog.md:1203 -#: ../source/changelog.md:1238 -#: ../source/changelog.md:1249 -#: ../source/changelog.md:1260 -#: ../source/changelog.md:1272 -#: ../source/changelog.md:1292 -#: ../source/changelog.md:1298 -#: ../source/changelog.md:1350 -#: ../source/changelog.md:1374 -#: ../source/changelog.md:1385 -#: ../source/changelog.md:1396 -#: ../source/changelog.md:1441 -#: ../source/changelog.md:1474 -#: ../source/changelog.md:1486 -#: ../source/changelog.md:1497 -#: ../source/changelog.md:1513 -#: ../source/changelog.md:1526 -#: ../source/changelog.md:1538 -#: ../source/changelog.md:1559 -#: ../source/changelog.md:1637 -#: ../source/changelog.md:1654 -#: ../source/changelog.md:1665 -#: ../source/changelog.md:1685 -#: ../source/changelog.md:1720 -msgid "Bugs Fixed" +msgid "fb10602 - update and fix translations" msgstr "" #: ../source/changelog.md:13 -msgid "PR#588 - Fix click on workout chart checkbox labels" +#: ../source/changelog.md:59 +#: ../source/changelog.md:104 +#: ../source/changelog.md:138 +#: ../source/changelog.md:165 +#: ../source/changelog.md:209 +#: ../source/changelog.md:259 +#: ../source/changelog.md:296 +#: ../source/changelog.md:326 +#: ../source/changelog.md:365 +#: ../source/changelog.md:403 +#: ../source/changelog.md:440 +#: ../source/changelog.md:479 +#: ../source/changelog.md:518 +#: ../source/changelog.md:559 +#: ../source/changelog.md:601 +#: ../source/changelog.md:650 +#: ../source/changelog.md:702 +#: ../source/changelog.md:749 +#: ../source/changelog.md:770 +#: ../source/changelog.md:802 +#: ../source/changelog.md:854 +msgid "Translation status:" msgstr "" -#: ../source/changelog.md:15 +#: ../source/changelog.md:14 #: ../source/changelog.md:60 -#: ../source/changelog.md:97 -#: ../source/changelog.md:122 -#: ../source/changelog.md:164 -#: ../source/changelog.md:214 -#: ../source/changelog.md:254 -#: ../source/changelog.md:285 -#: ../source/changelog.md:323 -#: ../source/changelog.md:361 -#: ../source/changelog.md:398 -#: ../source/changelog.md:433 -#: ../source/changelog.md:468 -#: ../source/changelog.md:509 -#: ../source/changelog.md:557 -#: ../source/changelog.md:606 -#: ../source/changelog.md:647 -#: ../source/changelog.md:691 -#: ../source/changelog.md:728 -#: ../source/changelog.md:757 -#: ../source/changelog.md:807 -#: ../source/changelog.md:852 -#: ../source/changelog.md:881 -#: ../source/changelog.md:896 -#: ../source/changelog.md:913 -#: ../source/changelog.md:933 -#: ../source/changelog.md:948 -#: ../source/changelog.md:961 -#: ../source/changelog.md:976 -#: ../source/changelog.md:989 -#: ../source/changelog.md:1004 -#: ../source/changelog.md:1018 -#: ../source/changelog.md:1043 -#: ../source/changelog.md:1052 -#: ../source/changelog.md:1063 -#: ../source/changelog.md:1082 -#: ../source/changelog.md:1168 -#: ../source/features.rst:277 -msgid "Translations" +msgid "Basque: 98%" +msgstr "" + +#: ../source/changelog.md:15 +#: ../source/changelog.md:61 +msgid "Czech: 73%" +msgstr "" + +#: ../source/changelog.md:16 +#: ../source/changelog.md:298 +#: ../source/changelog.md:404 +#: ../source/changelog.md:519 +#: ../source/changelog.md:560 +#: ../source/changelog.md:602 +#: ../source/changelog.md:750 +msgid "Dutch: 100%" msgstr "" #: ../source/changelog.md:17 -msgid "PR#564 - Translations update (Dutch)" +#: ../source/changelog.md:63 +#: ../source/changelog.md:108 +#: ../source/changelog.md:142 +#: ../source/changelog.md:169 +#: ../source/changelog.md:213 +#: ../source/changelog.md:262 +#: ../source/changelog.md:299 +#: ../source/changelog.md:329 +#: ../source/changelog.md:367 +#: ../source/changelog.md:405 +#: ../source/changelog.md:442 +#: ../source/changelog.md:481 +#: ../source/changelog.md:520 +#: ../source/changelog.md:561 +#: ../source/changelog.md:603 +#: ../source/changelog.md:652 +#: ../source/changelog.md:704 +#: ../source/changelog.md:751 +#: ../source/changelog.md:772 +#: ../source/changelog.md:804 +#: ../source/changelog.md:856 +msgid "English: 100%" msgstr "" #: ../source/changelog.md:18 -msgid "PR#565 - Translations update (Polish)" +#: ../source/changelog.md:64 +#: ../source/changelog.md:109 +#: ../source/changelog.md:143 +#: ../source/changelog.md:170 +#: ../source/changelog.md:214 +#: ../source/changelog.md:263 +#: ../source/changelog.md:300 +#: ../source/changelog.md:330 +#: ../source/changelog.md:368 +#: ../source/changelog.md:406 +#: ../source/changelog.md:443 +#: ../source/changelog.md:482 +#: ../source/changelog.md:521 +#: ../source/changelog.md:562 +#: ../source/changelog.md:604 +#: ../source/changelog.md:653 +#: ../source/changelog.md:705 +#: ../source/changelog.md:752 +#: ../source/changelog.md:773 +#: ../source/changelog.md:805 +#: ../source/changelog.md:857 +msgid "French: 100%" msgstr "" #: ../source/changelog.md:19 -msgid "PR#571 - Translations update (Galician, Spanish)" +#: ../source/changelog.md:65 +#: ../source/changelog.md:110 +#: ../source/changelog.md:144 +#: ../source/changelog.md:171 +#: ../source/changelog.md:215 +#: ../source/changelog.md:301 +#: ../source/changelog.md:331 +#: ../source/changelog.md:369 +#: ../source/changelog.md:407 +#: ../source/changelog.md:444 +#: ../source/changelog.md:522 +#: ../source/changelog.md:563 +#: ../source/changelog.md:605 +#: ../source/changelog.md:654 +#: ../source/changelog.md:753 +#: ../source/changelog.md:774 +#: ../source/changelog.md:858 +msgid "Galician: 100%" msgstr "" #: ../source/changelog.md:20 -msgid "PR#582 - Translations update (Galician, Spanish)" +#: ../source/changelog.md:484 +#: ../source/changelog.md:775 +#: ../source/changelog.md:807 +msgid "German: 99%" +msgstr "" + +#: ../source/changelog.md:21 +msgid "Italian: 82%" msgstr "" #: ../source/changelog.md:22 -#: ../source/changelog.md:67 -#: ../source/changelog.md:101 -#: ../source/changelog.md:128 -#: ../source/changelog.md:172 -#: ../source/changelog.md:222 -#: ../source/changelog.md:259 -#: ../source/changelog.md:289 -#: ../source/changelog.md:328 -#: ../source/changelog.md:366 -#: ../source/changelog.md:403 -#: ../source/changelog.md:442 -#: ../source/changelog.md:481 -#: ../source/changelog.md:522 -#: ../source/changelog.md:564 -#: ../source/changelog.md:613 -#: ../source/changelog.md:665 -#: ../source/changelog.md:712 -#: ../source/changelog.md:733 -#: ../source/changelog.md:765 -#: ../source/changelog.md:817 -msgid "Translation status:" +#: ../source/changelog.md:68 +msgid "Norwegian Bokmål: 52%" msgstr "" #: ../source/changelog.md:23 -msgid "Basque: 98%" +#: ../source/changelog.md:69 +msgid "Polish: 92%" msgstr "" #: ../source/changelog.md:24 -msgid "Czech: 73%" -msgstr "" - -#: ../source/changelog.md:25 #: ../source/changelog.md:70 -#: ../source/changelog.md:104 -#: ../source/changelog.md:131 -#: ../source/changelog.md:175 -#: ../source/changelog.md:404 -#: ../source/changelog.md:818 -msgid "Dutch: 98%" +msgid "Portuguese: 98%" msgstr "" -#: ../source/changelog.md:26 +#: ../source/changelog.md:25 #: ../source/changelog.md:71 -#: ../source/changelog.md:105 -#: ../source/changelog.md:132 +#: ../source/changelog.md:116 +#: ../source/changelog.md:149 #: ../source/changelog.md:176 -#: ../source/changelog.md:225 -#: ../source/changelog.md:262 -#: ../source/changelog.md:292 -#: ../source/changelog.md:330 -#: ../source/changelog.md:368 -#: ../source/changelog.md:405 -#: ../source/changelog.md:444 -#: ../source/changelog.md:483 -#: ../source/changelog.md:524 -#: ../source/changelog.md:566 -#: ../source/changelog.md:615 -#: ../source/changelog.md:667 -#: ../source/changelog.md:714 -#: ../source/changelog.md:735 -#: ../source/changelog.md:767 -#: ../source/changelog.md:819 -msgid "English: 100%" +#: ../source/changelog.md:220 +#: ../source/changelog.md:269 +#: ../source/changelog.md:306 +#: ../source/changelog.md:336 +#: ../source/changelog.md:374 +#: ../source/changelog.md:412 +#: ../source/changelog.md:449 +#: ../source/changelog.md:527 +#: ../source/changelog.md:568 +#: ../source/changelog.md:610 +#: ../source/changelog.md:659 +#: ../source/changelog.md:711 +#: ../source/changelog.md:758 +#: ../source/changelog.md:779 +#: ../source/changelog.md:811 +#: ../source/changelog.md:862 +msgid "Spanish: 100%" +msgstr "" + +#: ../source/changelog.md:27 +#: ../source/changelog.md:73 +#: ../source/changelog.md:118 +#: ../source/changelog.md:178 +#: ../source/changelog.md:222 +#: ../source/changelog.md:271 +#: ../source/changelog.md:338 +#: ../source/changelog.md:376 +#: ../source/changelog.md:414 +#: ../source/changelog.md:474 +#: ../source/changelog.md:510 +#: ../source/changelog.md:551 +#: ../source/changelog.md:581 +#: ../source/changelog.md:625 +#: ../source/changelog.md:696 +#: ../source/changelog.md:743 +#: ../source/changelog.md:864 +#: ../source/changelog.md:937 +#: ../source/changelog.md:1017 +#: ../source/changelog.md:1030 +#: ../source/changelog.md:1136 +#: ../source/changelog.md:1228 +#: ../source/changelog.md:1249 +#: ../source/changelog.md:1357 +#: ../source/changelog.md:1373 +#: ../source/changelog.md:1482 +#: ../source/changelog.md:1538 +#: ../source/changelog.md:1579 +#: ../source/changelog.md:1605 +#: ../source/changelog.md:1660 +#: ../source/changelog.md:1726 +#: ../source/changelog.md:1741 +msgid "Misc" +msgstr "" + +#: ../source/changelog.md:29 +msgid "PR#595 - CI - speed up tests" +msgstr "" + +#: ../source/changelog.md:32 +#: ../source/changelog.md:78 +#: ../source/changelog.md:123 +#: ../source/changelog.md:152 +#: ../source/changelog.md:183 +#: ../source/changelog.md:228 +#: ../source/changelog.md:277 +#: ../source/changelog.md:309 +#: ../source/changelog.md:343 +#: ../source/changelog.md:381 +#: ../source/changelog.md:419 +#: ../source/changelog.md:451 +#: ../source/changelog.md:490 +#: ../source/changelog.md:529 +#: ../source/changelog.md:570 +#: ../source/changelog.md:612 +#: ../source/changelog.md:661 +#: ../source/changelog.md:713 +#: ../source/changelog.md:815 +#: ../source/changelog.md:869 +#: ../source/changelog.md:924 +#: ../source/changelog.md:956 +#: ../source/changelog.md:1213 +#: ../source/changelog.md:1496 +msgid "Thanks to the contributors:" +msgstr "" + +#: ../source/changelog.md:33 +msgid "@ConfusedAlex" +msgstr "" + +#: ../source/changelog.md:34 +msgid "@lukasitaly" +msgstr "" + +#: ../source/changelog.md:35 +msgid "@simontb" +msgstr "" + +#: ../source/changelog.md:36 +msgid "@slothje" +msgstr "" + +#: ../source/changelog.md:37 +#: ../source/changelog.md:83 +#: ../source/changelog.md:233 +#: ../source/changelog.md:280 +#: ../source/changelog.md:384 +#: ../source/changelog.md:454 +#: ../source/changelog.md:493 +#: ../source/changelog.md:571 +#: ../source/changelog.md:663 +#: ../source/changelog.md:716 +#: ../source/changelog.md:820 +#: ../source/changelog.md:875 +msgid "@xmgz" +msgstr "" + +#: ../source/changelog.md:40 +msgid "Version 0.8.5 (2024/06/29)" +msgstr "" + +#: ../source/changelog.md:42 +#: ../source/changelog.md:92 +#: ../source/changelog.md:191 +#: ../source/changelog.md:240 +#: ../source/changelog.md:349 +#: ../source/changelog.md:389 +#: ../source/changelog.md:427 +#: ../source/changelog.md:459 +#: ../source/changelog.md:632 +#: ../source/changelog.md:671 +#: ../source/changelog.md:784 +#: ../source/changelog.md:832 +#: ../source/changelog.md:905 +#: ../source/changelog.md:945 +#: ../source/changelog.md:966 +#: ../source/changelog.md:981 +#: ../source/changelog.md:1005 +#: ../source/changelog.md:1068 +#: ../source/changelog.md:1108 +msgid "Features and enhancements" msgstr "" -#: ../source/changelog.md:27 -#: ../source/changelog.md:72 -#: ../source/changelog.md:106 -#: ../source/changelog.md:133 -#: ../source/changelog.md:177 -#: ../source/changelog.md:226 -#: ../source/changelog.md:263 -#: ../source/changelog.md:293 -#: ../source/changelog.md:331 -#: ../source/changelog.md:369 -#: ../source/changelog.md:406 -#: ../source/changelog.md:445 -#: ../source/changelog.md:484 -#: ../source/changelog.md:525 -#: ../source/changelog.md:567 -#: ../source/changelog.md:616 -#: ../source/changelog.md:668 -#: ../source/changelog.md:715 -#: ../source/changelog.md:736 -#: ../source/changelog.md:768 -#: ../source/changelog.md:820 -msgid "French: 100%" +#: ../source/changelog.md:44 +msgid "#566 - [Feature] Improved statistics section with average calculation" msgstr "" -#: ../source/changelog.md:28 -#: ../source/changelog.md:73 -#: ../source/changelog.md:107 -#: ../source/changelog.md:134 -#: ../source/changelog.md:178 -#: ../source/changelog.md:264 -#: ../source/changelog.md:294 -#: ../source/changelog.md:332 -#: ../source/changelog.md:370 -#: ../source/changelog.md:407 -#: ../source/changelog.md:485 -#: ../source/changelog.md:526 -#: ../source/changelog.md:568 -#: ../source/changelog.md:617 -#: ../source/changelog.md:716 -#: ../source/changelog.md:737 -#: ../source/changelog.md:821 -msgid "Galician: 100%" +#: ../source/changelog.md:45 +msgid "PR#575 - Add page to display sport statistics" msgstr "" -#: ../source/changelog.md:29 -msgid "German: 98%" +#: ../source/changelog.md:46 +msgid "PR#587 - Improve user forms" msgstr "" -#: ../source/changelog.md:30 -msgid "Italian: 73%" +#: ../source/changelog.md:48 +#: ../source/changelog.md:130 +#: ../source/changelog.md:195 +#: ../source/changelog.md:245 +#: ../source/changelog.md:287 +#: ../source/changelog.md:318 +#: ../source/changelog.md:353 +#: ../source/changelog.md:394 +#: ../source/changelog.md:431 +#: ../source/changelog.md:465 +#: ../source/changelog.md:500 +#: ../source/changelog.md:535 +#: ../source/changelog.md:542 +#: ../source/changelog.md:576 +#: ../source/changelog.md:588 +#: ../source/changelog.md:620 +#: ../source/changelog.md:637 +#: ../source/changelog.md:678 +#: ../source/changelog.md:789 +#: ../source/changelog.md:839 +#: ../source/changelog.md:885 +#: ../source/changelog.md:911 +#: ../source/changelog.md:1009 +#: ../source/changelog.md:1037 +#: ../source/changelog.md:1048 +#: ../source/changelog.md:1075 +#: ../source/changelog.md:1096 +#: ../source/changelog.md:1114 +#: ../source/changelog.md:1130 +#: ../source/changelog.md:1151 +#: ../source/changelog.md:1173 +#: ../source/changelog.md:1180 +#: ../source/changelog.md:1200 +#: ../source/changelog.md:1222 +#: ../source/changelog.md:1240 +#: ../source/changelog.md:1275 +#: ../source/changelog.md:1286 +#: ../source/changelog.md:1297 +#: ../source/changelog.md:1309 +#: ../source/changelog.md:1329 +#: ../source/changelog.md:1335 +#: ../source/changelog.md:1387 +#: ../source/changelog.md:1411 +#: ../source/changelog.md:1422 +#: ../source/changelog.md:1433 +#: ../source/changelog.md:1478 +#: ../source/changelog.md:1511 +#: ../source/changelog.md:1523 +#: ../source/changelog.md:1534 +#: ../source/changelog.md:1550 +#: ../source/changelog.md:1563 +#: ../source/changelog.md:1575 +#: ../source/changelog.md:1596 +#: ../source/changelog.md:1674 +#: ../source/changelog.md:1691 +#: ../source/changelog.md:1702 +#: ../source/changelog.md:1722 +#: ../source/changelog.md:1757 +msgid "Bugs Fixed" msgstr "" -#: ../source/changelog.md:31 -msgid "Norwegian Bokmål: 52%" +#: ../source/changelog.md:50 +msgid "PR#588 - Fix click on workout chart checkbox labels" msgstr "" -#: ../source/changelog.md:32 -msgid "Polish: 92%" +#: ../source/changelog.md:54 +msgid "PR#564 - Translations update (Dutch)" msgstr "" -#: ../source/changelog.md:33 -msgid "Portuguese: 98%" +#: ../source/changelog.md:55 +msgid "PR#565 - Translations update (Polish)" msgstr "" -#: ../source/changelog.md:34 -#: ../source/changelog.md:79 -#: ../source/changelog.md:112 -#: ../source/changelog.md:139 -#: ../source/changelog.md:183 -#: ../source/changelog.md:232 -#: ../source/changelog.md:269 -#: ../source/changelog.md:299 -#: ../source/changelog.md:337 -#: ../source/changelog.md:375 -#: ../source/changelog.md:412 -#: ../source/changelog.md:490 -#: ../source/changelog.md:531 -#: ../source/changelog.md:573 -#: ../source/changelog.md:622 -#: ../source/changelog.md:674 -#: ../source/changelog.md:721 -#: ../source/changelog.md:742 -#: ../source/changelog.md:774 -#: ../source/changelog.md:825 -msgid "Spanish: 100%" +#: ../source/changelog.md:56 +msgid "PR#571 - Translations update (Galician, Spanish)" msgstr "" -#: ../source/changelog.md:36 -#: ../source/changelog.md:81 +#: ../source/changelog.md:57 +msgid "PR#582 - Translations update (Galician, Spanish)" +msgstr "" + +#: ../source/changelog.md:62 +#: ../source/changelog.md:107 #: ../source/changelog.md:141 -#: ../source/changelog.md:185 -#: ../source/changelog.md:234 -#: ../source/changelog.md:301 -#: ../source/changelog.md:339 -#: ../source/changelog.md:377 -#: ../source/changelog.md:437 -#: ../source/changelog.md:473 -#: ../source/changelog.md:514 -#: ../source/changelog.md:544 -#: ../source/changelog.md:588 -#: ../source/changelog.md:659 -#: ../source/changelog.md:706 -#: ../source/changelog.md:827 -#: ../source/changelog.md:900 -#: ../source/changelog.md:980 -#: ../source/changelog.md:993 -#: ../source/changelog.md:1099 -#: ../source/changelog.md:1191 -#: ../source/changelog.md:1212 -#: ../source/changelog.md:1320 -#: ../source/changelog.md:1336 -#: ../source/changelog.md:1445 -#: ../source/changelog.md:1501 -#: ../source/changelog.md:1542 -#: ../source/changelog.md:1568 -#: ../source/changelog.md:1623 -#: ../source/changelog.md:1689 -#: ../source/changelog.md:1704 -msgid "Misc" +#: ../source/changelog.md:168 +#: ../source/changelog.md:212 +#: ../source/changelog.md:441 +#: ../source/changelog.md:855 +msgid "Dutch: 98%" msgstr "" -#: ../source/changelog.md:38 -msgid "PR#583 - Simplify docker deployment" +#: ../source/changelog.md:66 +msgid "German: 98%" msgstr "" -#: ../source/changelog.md:41 -#: ../source/changelog.md:86 -#: ../source/changelog.md:115 -#: ../source/changelog.md:146 -#: ../source/changelog.md:191 -#: ../source/changelog.md:240 -#: ../source/changelog.md:272 -#: ../source/changelog.md:306 -#: ../source/changelog.md:344 -#: ../source/changelog.md:382 -#: ../source/changelog.md:414 -#: ../source/changelog.md:453 -#: ../source/changelog.md:492 -#: ../source/changelog.md:533 -#: ../source/changelog.md:575 -#: ../source/changelog.md:624 -#: ../source/changelog.md:676 -#: ../source/changelog.md:778 -#: ../source/changelog.md:832 -#: ../source/changelog.md:887 -#: ../source/changelog.md:919 -#: ../source/changelog.md:1176 -#: ../source/changelog.md:1459 -msgid "Thanks to the contributors:" +#: ../source/changelog.md:67 +msgid "Italian: 73%" msgstr "" -#: ../source/changelog.md:42 +#: ../source/changelog.md:75 +msgid "PR#583 - Simplify docker deployment" +msgstr "" + +#: ../source/changelog.md:79 msgid "@byakurau" msgstr "" -#: ../source/changelog.md:43 -#: ../source/changelog.md:193 -#: ../source/changelog.md:242 -#: ../source/changelog.md:345 -#: ../source/changelog.md:415 -#: ../source/changelog.md:455 -#: ../source/changelog.md:625 -#: ../source/changelog.md:678 -#: ../source/changelog.md:780 -#: ../source/changelog.md:836 +#: ../source/changelog.md:80 +#: ../source/changelog.md:230 +#: ../source/changelog.md:279 +#: ../source/changelog.md:382 +#: ../source/changelog.md:452 +#: ../source/changelog.md:492 +#: ../source/changelog.md:662 +#: ../source/changelog.md:715 +#: ../source/changelog.md:817 +#: ../source/changelog.md:873 msgid "@gallegonovato" msgstr "" -#: ../source/changelog.md:44 -#: ../source/changelog.md:194 +#: ../source/changelog.md:81 +#: ../source/changelog.md:231 msgid "@jderuiter" msgstr "" -#: ../source/changelog.md:45 +#: ../source/changelog.md:82 msgid "@pluja" msgstr "" -#: ../source/changelog.md:46 -#: ../source/changelog.md:196 -#: ../source/changelog.md:243 -#: ../source/changelog.md:347 -#: ../source/changelog.md:417 -#: ../source/changelog.md:456 -#: ../source/changelog.md:534 -#: ../source/changelog.md:626 -#: ../source/changelog.md:679 -#: ../source/changelog.md:783 -#: ../source/changelog.md:838 -msgid "@xmgz" -msgstr "" - -#: ../source/changelog.md:48 -#: ../source/changelog.md:245 -#: ../source/changelog.md:458 -#: ../source/changelog.md:629 -#: ../source/changelog.md:681 -#: ../source/changelog.md:785 -#: ../source/changelog.md:843 -#: ../source/changelog.md:891 -#: ../source/changelog.md:939 -#: ../source/changelog.md:953 -#: ../source/changelog.md:1047 -#: ../source/changelog.md:1086 +#: ../source/changelog.md:85 +#: ../source/changelog.md:282 +#: ../source/changelog.md:495 +#: ../source/changelog.md:666 +#: ../source/changelog.md:718 +#: ../source/changelog.md:822 +#: ../source/changelog.md:880 +#: ../source/changelog.md:928 +#: ../source/changelog.md:976 +#: ../source/changelog.md:990 +#: ../source/changelog.md:1084 +#: ../source/changelog.md:1123 msgid "Note: This release contains database migration (see upgrade instructions in documentation)" msgstr "" -#: ../source/changelog.md:51 +#: ../source/changelog.md:88 msgid "Version 0.8.4 (2024/05/22)" msgstr "" -#: ../source/changelog.md:53 +#: ../source/changelog.md:90 msgid "FitTrackee is now available in Portuguese." msgstr "" -#: ../source/changelog.md:57 +#: ../source/changelog.md:94 msgid "f2aec30 - add password strength estimation for Czech" msgstr "" -#: ../source/changelog.md:58 +#: ../source/changelog.md:95 msgid "#563 - CLI - init language preference on user creation" msgstr "" -#: ../source/changelog.md:62 +#: ../source/changelog.md:99 msgid "#550 - Typo: par page instead of per page" msgstr "" -#: ../source/changelog.md:63 +#: ../source/changelog.md:100 msgid "PR#551 - Translations update (Czech)" msgstr "" -#: ../source/changelog.md:64 +#: ../source/changelog.md:101 msgid "PR#555 - Translations update (Czech)" msgstr "" -#: ../source/changelog.md:65 +#: ../source/changelog.md:102 msgid "#558 - [translations request] Portuguese" msgstr "" -#: ../source/changelog.md:68 -#: ../source/changelog.md:102 -#: ../source/changelog.md:260 -#: ../source/changelog.md:290 +#: ../source/changelog.md:105 +#: ../source/changelog.md:139 +#: ../source/changelog.md:297 +#: ../source/changelog.md:327 msgid "Basque: 100%" msgstr "" -#: ../source/changelog.md:69 +#: ../source/changelog.md:106 msgid "Czech: 74%" msgstr "" -#: ../source/changelog.md:74 -#: ../source/changelog.md:108 -#: ../source/changelog.md:135 -#: ../source/changelog.md:265 -#: ../source/changelog.md:295 -#: ../source/changelog.md:333 -#: ../source/changelog.md:371 +#: ../source/changelog.md:111 +#: ../source/changelog.md:145 +#: ../source/changelog.md:172 +#: ../source/changelog.md:302 +#: ../source/changelog.md:332 +#: ../source/changelog.md:370 #: ../source/changelog.md:408 -#: ../source/changelog.md:486 -#: ../source/changelog.md:527 -#: ../source/changelog.md:569 -#: ../source/changelog.md:717 -#: ../source/changelog.md:822 +#: ../source/changelog.md:445 +#: ../source/changelog.md:523 +#: ../source/changelog.md:564 +#: ../source/changelog.md:606 +#: ../source/changelog.md:754 +#: ../source/changelog.md:859 msgid "German: 100%" msgstr "" -#: ../source/changelog.md:75 -#: ../source/changelog.md:109 -#: ../source/changelog.md:136 -#: ../source/changelog.md:180 +#: ../source/changelog.md:112 +#: ../source/changelog.md:146 +#: ../source/changelog.md:173 +#: ../source/changelog.md:217 msgid "Italian: 74%" msgstr "" -#: ../source/changelog.md:76 -#: ../source/changelog.md:110 -#: ../source/changelog.md:137 -#: ../source/changelog.md:181 -#: ../source/changelog.md:230 +#: ../source/changelog.md:113 +#: ../source/changelog.md:147 +#: ../source/changelog.md:174 +#: ../source/changelog.md:218 +#: ../source/changelog.md:267 msgid "Norwegian Bokmål: 53%" msgstr "" -#: ../source/changelog.md:77 -#: ../source/changelog.md:111 -#: ../source/changelog.md:138 -#: ../source/changelog.md:182 +#: ../source/changelog.md:114 +#: ../source/changelog.md:148 +#: ../source/changelog.md:175 +#: ../source/changelog.md:219 msgid "Polish: 88%" msgstr "" -#: ../source/changelog.md:78 +#: ../source/changelog.md:115 msgid "Portuguese: 100%" msgstr "" -#: ../source/changelog.md:83 +#: ../source/changelog.md:120 msgid "PR#556 - API - minor refacto" msgstr "" -#: ../source/changelog.md:84 +#: ../source/changelog.md:121 msgid "PR#557 - API - prepare SQLAlchemy migration" msgstr "" -#: ../source/changelog.md:87 -#: ../source/changelog.md:116 -#: ../source/changelog.md:147 -#: ../source/changelog.md:195 +#: ../source/changelog.md:124 +#: ../source/changelog.md:153 +#: ../source/changelog.md:184 +#: ../source/changelog.md:232 msgid "@jmlich" msgstr "" -#: ../source/changelog.md:88 +#: ../source/changelog.md:125 msgid "@voodoopt" msgstr "" -#: ../source/changelog.md:91 +#: ../source/changelog.md:128 msgid "Version 0.8.3 (2024/05/09)" msgstr "" -#: ../source/changelog.md:95 +#: ../source/changelog.md:132 msgid "#546 - workout data are not refreshed after displaying segment" msgstr "" -#: ../source/changelog.md:99 +#: ../source/changelog.md:136 msgid "PR#545 - Translations update (Basque, Czech)" msgstr "" -#: ../source/changelog.md:103 -#: ../source/changelog.md:130 +#: ../source/changelog.md:140 +#: ../source/changelog.md:167 msgid "Czech: 25%" msgstr "" -#: ../source/changelog.md:117 +#: ../source/changelog.md:154 msgid "@urtzai" msgstr "" -#: ../source/changelog.md:120 +#: ../source/changelog.md:157 msgid "Version 0.8.2 (2024/05/08)" msgstr "" -#: ../source/changelog.md:124 +#: ../source/changelog.md:161 msgid "PR#540 - Translations update (German)" msgstr "" -#: ../source/changelog.md:125 +#: ../source/changelog.md:162 msgid "PR#542 - Translations update (Czech)" msgstr "" -#: ../source/changelog.md:126 +#: ../source/changelog.md:163 msgid "PR#544 - Translations update (German, Czech)" msgstr "" -#: ../source/changelog.md:129 -#: ../source/changelog.md:173 +#: ../source/changelog.md:166 +#: ../source/changelog.md:210 msgid "Basque: 88%" msgstr "" -#: ../source/changelog.md:143 +#: ../source/changelog.md:180 msgid "PR#543 - tools - replace black, flake8 and isort with ruff" msgstr "" -#: ../source/changelog.md:148 +#: ../source/changelog.md:185 msgid "@OndrejZivny" msgstr "" -#: ../source/changelog.md:149 -#: ../source/changelog.md:346 -#: ../source/changelog.md:416 -#: ../source/changelog.md:577 -#: ../source/changelog.md:837 -#: ../source/changelog.md:889 -#: ../source/changelog.md:922 +#: ../source/changelog.md:186 +#: ../source/changelog.md:383 +#: ../source/changelog.md:453 +#: ../source/changelog.md:614 +#: ../source/changelog.md:874 +#: ../source/changelog.md:926 +#: ../source/changelog.md:959 msgid "@qwerty287" msgstr "" -#: ../source/changelog.md:152 +#: ../source/changelog.md:189 msgid "Version 0.8.1 (2024/05/01)" msgstr "" -#: ../source/changelog.md:156 +#: ../source/changelog.md:193 msgid "PR#527 - improve Sports endpoints response time" msgstr "" -#: ../source/changelog.md:160 +#: ../source/changelog.md:197 msgid "PR#531 - Minor navigation fixes on mobile" msgstr "" -#: ../source/changelog.md:161 +#: ../source/changelog.md:198 msgid "PR#532 - Fix footer color on dark mode" msgstr "" -#: ../source/changelog.md:162 +#: ../source/changelog.md:199 msgid "PR#536 - Accessibility fixes" msgstr "" -#: ../source/changelog.md:166 +#: ../source/changelog.md:203 msgid "PR#526 - Translations update (Dutch, Galician, Norwegian Bokmål)" msgstr "" -#: ../source/changelog.md:167 +#: ../source/changelog.md:204 msgid "PR#533 - Translations update (Czech)" msgstr "" -#: ../source/changelog.md:168 +#: ../source/changelog.md:205 msgid "#534 - [translations request] Czech" msgstr "" -#: ../source/changelog.md:169 +#: ../source/changelog.md:206 msgid "PR#537 - Translations update (Spanish)" msgstr "" -#: ../source/changelog.md:170 +#: ../source/changelog.md:207 msgid "PR#538 - Translations update (Galician)" msgstr "" -#: ../source/changelog.md:174 +#: ../source/changelog.md:211 msgid "Czech: 15%" msgstr "" -#: ../source/changelog.md:179 +#: ../source/changelog.md:216 msgid "German: 88%" msgstr "" -#: ../source/changelog.md:187 +#: ../source/changelog.md:224 msgid "PR#528 - README reworked" msgstr "" -#: ../source/changelog.md:188 +#: ../source/changelog.md:225 msgid "PR#530 - specify AGPLv3 license" msgstr "" -#: ../source/changelog.md:192 -#: ../source/changelog.md:493 -#: ../source/changelog.md:834 +#: ../source/changelog.md:229 +#: ../source/changelog.md:530 +#: ../source/changelog.md:871 msgid "@comradekingu" msgstr "" -#: ../source/changelog.md:199 +#: ../source/changelog.md:236 msgid "Version 0.8.0 (2024/04/21)" msgstr "" -#: ../source/changelog.md:201 +#: ../source/changelog.md:238 msgid "FitTrackee now lets you associate equipment with workouts and filter workouts on notes." msgstr "" -#: ../source/changelog.md:205 +#: ../source/changelog.md:242 msgid "#259 - Feature request: \"Equipment\" that can be associated with workouts" msgstr "" -#: ../source/changelog.md:206 +#: ../source/changelog.md:243 msgid "#512 - Add ability to filter on notes in Workouts List" msgstr "" -#: ../source/changelog.md:210 +#: ../source/changelog.md:247 msgid "#508 - Stopped speed threshold unit is missing on sports list" msgstr "" -#: ../source/changelog.md:211 +#: ../source/changelog.md:248 msgid "3b6fa25 - fix workouts table display on small resolutions" msgstr "" -#: ../source/changelog.md:212 +#: ../source/changelog.md:249 msgid "51758b4 - fix on filters hiding on small resolutions" msgstr "" -#: ../source/changelog.md:216 +#: ../source/changelog.md:253 msgid "PR#507 Translations update (Galician)" msgstr "" -#: ../source/changelog.md:217 +#: ../source/changelog.md:254 msgid "PR#510 Translations update (Spanish)" msgstr "" -#: ../source/changelog.md:218 +#: ../source/changelog.md:255 msgid "PR#511 Translations update (Galician)" msgstr "" -#: ../source/changelog.md:219 +#: ../source/changelog.md:256 msgid "PR#521 Translations update (Spanish)" msgstr "" -#: ../source/changelog.md:220 +#: ../source/changelog.md:257 msgid "PR#524 Translations update (Spanish)" msgstr "" -#: ../source/changelog.md:223 +#: ../source/changelog.md:260 msgid "Basque: 89%" msgstr "" -#: ../source/changelog.md:224 +#: ../source/changelog.md:261 msgid "Dutch: 89%" msgstr "" -#: ../source/changelog.md:227 -#: ../source/changelog.md:446 -#: ../source/changelog.md:769 +#: ../source/changelog.md:264 +#: ../source/changelog.md:483 +#: ../source/changelog.md:806 msgid "Galician: 99%" msgstr "" -#: ../source/changelog.md:228 +#: ../source/changelog.md:265 msgid "German: 89%" msgstr "" -#: ../source/changelog.md:229 +#: ../source/changelog.md:266 msgid "Italian: 75%" msgstr "" -#: ../source/changelog.md:231 +#: ../source/changelog.md:268 msgid "Polish: 89%" msgstr "" -#: ../source/changelog.md:236 +#: ../source/changelog.md:273 msgid "#502 - Remove deprecated commands" msgstr "" -#: ../source/changelog.md:237 +#: ../source/changelog.md:274 msgid "PR#506 - CLI - update database commands" msgstr "" -#: ../source/changelog.md:241 -#: ../source/changelog.md:782 -#: ../source/changelog.md:835 -#: ../source/changelog.md:921 +#: ../source/changelog.md:278 +#: ../source/changelog.md:819 +#: ../source/changelog.md:872 +#: ../source/changelog.md:958 msgid "@jat255" msgstr "" -#: ../source/changelog.md:248 +#: ../source/changelog.md:285 msgid "Version 0.7.32 (2024/03/10)" msgstr "" -#: ../source/changelog.md:252 +#: ../source/changelog.md:289 msgid "#504 - Database migrations fail" msgstr "" -#: ../source/changelog.md:256 +#: ../source/changelog.md:293 msgid "#496 Translations update (Dutch)" msgstr "" -#: ../source/changelog.md:257 +#: ../source/changelog.md:294 msgid "#499 Translations update (Polish)" msgstr "" -#: ../source/changelog.md:261 -#: ../source/changelog.md:367 -#: ../source/changelog.md:482 -#: ../source/changelog.md:523 -#: ../source/changelog.md:565 -#: ../source/changelog.md:713 -msgid "Dutch: 100%" -msgstr "" - -#: ../source/changelog.md:266 -#: ../source/changelog.md:296 -#: ../source/changelog.md:334 -#: ../source/changelog.md:372 +#: ../source/changelog.md:303 +#: ../source/changelog.md:333 +#: ../source/changelog.md:371 #: ../source/changelog.md:409 +#: ../source/changelog.md:446 msgid "Italian: 84%" msgstr "" -#: ../source/changelog.md:267 -#: ../source/changelog.md:297 -#: ../source/changelog.md:335 -#: ../source/changelog.md:373 +#: ../source/changelog.md:304 +#: ../source/changelog.md:334 +#: ../source/changelog.md:372 #: ../source/changelog.md:410 +#: ../source/changelog.md:447 msgid "Norwegian Bokmål: 60%" msgstr "" -#: ../source/changelog.md:268 -#: ../source/changelog.md:374 -#: ../source/changelog.md:489 -#: ../source/changelog.md:530 -#: ../source/changelog.md:572 +#: ../source/changelog.md:305 +#: ../source/changelog.md:411 +#: ../source/changelog.md:526 +#: ../source/changelog.md:567 +#: ../source/changelog.md:609 msgid "Polish: 100%" msgstr "" -#: ../source/changelog.md:273 -#: ../source/changelog.md:576 -#: ../source/changelog.md:779 -#: ../source/changelog.md:833 -#: ../source/changelog.md:888 -#: ../source/changelog.md:920 +#: ../source/changelog.md:310 +#: ../source/changelog.md:613 +#: ../source/changelog.md:816 +#: ../source/changelog.md:870 +#: ../source/changelog.md:925 +#: ../source/changelog.md:957 msgid "@bjornclauw" msgstr "" -#: ../source/changelog.md:274 -#: ../source/changelog.md:384 +#: ../source/changelog.md:311 +#: ../source/changelog.md:421 msgid "Mariuz" msgstr "" -#: ../source/changelog.md:277 +#: ../source/changelog.md:314 msgid "Version 0.7.31 (2024/02/10)" msgstr "" -#: ../source/changelog.md:279 +#: ../source/changelog.md:316 msgid "Basque is now available in FitTrackee interface." msgstr "" -#: ../source/changelog.md:283 +#: ../source/changelog.md:320 msgid "PR#495 - fix menu display when clicking on application name" msgstr "" -#: ../source/changelog.md:287 +#: ../source/changelog.md:324 msgid "#490 [Translation Request] EU - Basque" msgstr "" -#: ../source/changelog.md:291 -#: ../source/changelog.md:329 -#: ../source/changelog.md:443 -#: ../source/changelog.md:734 -#: ../source/changelog.md:766 +#: ../source/changelog.md:328 +#: ../source/changelog.md:366 +#: ../source/changelog.md:480 +#: ../source/changelog.md:771 +#: ../source/changelog.md:803 msgid "Dutch: 99%" msgstr "" -#: ../source/changelog.md:298 -#: ../source/changelog.md:336 -#: ../source/changelog.md:450 +#: ../source/changelog.md:335 +#: ../source/changelog.md:373 +#: ../source/changelog.md:487 msgid "Polish: 99%" msgstr "" -#: ../source/changelog.md:303 +#: ../source/changelog.md:340 msgid "PR#494 - Update install-python command" msgstr "" -#: ../source/changelog.md:307 +#: ../source/changelog.md:344 msgid "@erral" msgstr "" -#: ../source/changelog.md:310 +#: ../source/changelog.md:347 msgid "Version 0.7.30 (2024/02/04)" msgstr "" -#: ../source/changelog.md:314 +#: ../source/changelog.md:351 msgid "b748459 - Update alert message colors on dark mode" msgstr "" -#: ../source/changelog.md:318 +#: ../source/changelog.md:355 msgid "PR#481 - Handle keyboard navigation on dropdowns" msgstr "" -#: ../source/changelog.md:319 +#: ../source/changelog.md:356 msgid "3821e37 - Make calendar arrows accessible to keyboard navigation" msgstr "" -#: ../source/changelog.md:320 +#: ../source/changelog.md:357 msgid "PR#488 - CLI - fix user creation when user already exists with same email" msgstr "" -#: ../source/changelog.md:321 +#: ../source/changelog.md:358 msgid "PR#489 - Handle keyboard navigation on calendar" msgstr "" -#: ../source/changelog.md:325 +#: ../source/changelog.md:362 msgid "PR#482 - Translations update (Galician and Spanish)" msgstr "" -#: ../source/changelog.md:326 +#: ../source/changelog.md:363 msgid "PR#484 - Translations update (German)" msgstr "" -#: ../source/changelog.md:341 +#: ../source/changelog.md:378 msgid "aff4d68 - CI - update actions version" msgstr "" -#: ../source/changelog.md:350 +#: ../source/changelog.md:387 msgid "Version 0.7.29 (2024/01/06)" msgstr "" -#: ../source/changelog.md:354 +#: ../source/changelog.md:391 msgid "8aa4cff - Update loader color on dark theme" msgstr "" -#: ../source/changelog.md:355 +#: ../source/changelog.md:392 msgid "#478 - Make application name clickable to access dashboard" msgstr "" -#: ../source/changelog.md:359 +#: ../source/changelog.md:396 msgid "PR#479 - Minor fixes on UI" msgstr "" -#: ../source/changelog.md:363 +#: ../source/changelog.md:400 msgid "PR#476 - Translations update (Polish)" msgstr "" -#: ../source/changelog.md:364 +#: ../source/changelog.md:401 msgid "PR#477 - Translations update (Dutch)" msgstr "" -#: ../source/changelog.md:379 +#: ../source/changelog.md:416 msgid "PR#475 - Build - use poetry-core instead of poetry" msgstr "" -#: ../source/changelog.md:383 +#: ../source/changelog.md:420 msgid "@traxys" msgstr "" -#: ../source/changelog.md:385 +#: ../source/changelog.md:422 msgid "Koen" msgstr "" -#: ../source/changelog.md:388 +#: ../source/changelog.md:425 msgid "Version 0.7.28 (2023/12/23)" msgstr "" -#: ../source/changelog.md:392 +#: ../source/changelog.md:429 msgid "PR#474 - Improve links display" msgstr "" -#: ../source/changelog.md:396 +#: ../source/changelog.md:433 msgid "6e215aa - fix background color on dark theme when modal is displayed" msgstr "" -#: ../source/changelog.md:400 +#: ../source/changelog.md:437 msgid "PR#473 - Translations update (Galician, Spanish and German)" msgstr "" -#: ../source/changelog.md:411 +#: ../source/changelog.md:448 msgid "Polish: 98%" msgstr "" -#: ../source/changelog.md:420 +#: ../source/changelog.md:457 msgid "Version 0.7.27 (2023/12/20)" msgstr "" -#: ../source/changelog.md:424 +#: ../source/changelog.md:461 msgid "#113 - add a dark mode" msgstr "" -#: ../source/changelog.md:425 +#: ../source/changelog.md:462 msgid "PR#464 - Update user preferences display" msgstr "" -#: ../source/changelog.md:426 +#: ../source/changelog.md:463 msgid "PR#471 - add new sport: \"Cycling (Trekking)\"" msgstr "" -#: ../source/changelog.md:430 +#: ../source/changelog.md:467 msgid "PR#469 - change UI display only on login ou user preferences update" msgstr "" -#: ../source/changelog.md:431 +#: ../source/changelog.md:468 msgid "PR#472 - fix redirection when resetting password" msgstr "" -#: ../source/changelog.md:435 +#: ../source/changelog.md:472 msgid "PR#468 - Translations update (Galician & Spanish)" msgstr "" -#: ../source/changelog.md:439 +#: ../source/changelog.md:476 msgid "#456 - Drop PostgreSQL 11 support" msgstr "" -#: ../source/changelog.md:447 -#: ../source/changelog.md:738 -#: ../source/changelog.md:770 -msgid "German: 99%" -msgstr "" - -#: ../source/changelog.md:448 -#: ../source/changelog.md:487 -#: ../source/changelog.md:528 -#: ../source/changelog.md:570 -#: ../source/changelog.md:619 -#: ../source/changelog.md:671 +#: ../source/changelog.md:485 +#: ../source/changelog.md:524 +#: ../source/changelog.md:565 +#: ../source/changelog.md:607 +#: ../source/changelog.md:656 +#: ../source/changelog.md:708 msgid "Italian: 85%" msgstr "" -#: ../source/changelog.md:449 -#: ../source/changelog.md:488 +#: ../source/changelog.md:486 +#: ../source/changelog.md:525 msgid "Norwegian Bokmål: 61%" msgstr "" -#: ../source/changelog.md:451 +#: ../source/changelog.md:488 msgid "Spanish: 99%" msgstr "" -#: ../source/changelog.md:454 +#: ../source/changelog.md:491 msgid "@DavidHenryThoreau" msgstr "" -#: ../source/changelog.md:461 +#: ../source/changelog.md:498 msgid "Version 0.7.26 (2023/11/19)" msgstr "" -#: ../source/changelog.md:465 +#: ../source/changelog.md:502 msgid "#224 - Missing elevation results in incorrect ascent/descent total" msgstr "" -#: ../source/changelog.md:470 +#: ../source/changelog.md:507 msgid "PR#444 - Translations update (Norwegian Bokmål)" msgstr "" -#: ../source/changelog.md:475 +#: ../source/changelog.md:512 msgid "In addition to dependencies update:" msgstr "" -#: ../source/changelog.md:477 +#: ../source/changelog.md:514 msgid "PR#449 - Update vue, tooling and chart library" msgstr "" -#: ../source/changelog.md:478 +#: ../source/changelog.md:515 msgid "PR#450 - Update gpxpy to 1.6.1" msgstr "" -#: ../source/changelog.md:496 +#: ../source/changelog.md:533 msgid "Version 0.7.25 (2023/10/08)" msgstr "" -#: ../source/changelog.md:500 +#: ../source/changelog.md:537 msgid "#441 - Errors after upgrade to 0.7.24" msgstr "" -#: ../source/changelog.md:503 +#: ../source/changelog.md:540 msgid "Version 0.7.24 (2023/10/04)" msgstr "" -#: ../source/changelog.md:507 +#: ../source/changelog.md:544 msgid "PR#433 - Handle encoded password in EMAIL_URL" msgstr "" -#: ../source/changelog.md:511 +#: ../source/changelog.md:548 msgid "PR#427 - fix typos and translations + refacto" msgstr "" -#: ../source/changelog.md:512 +#: ../source/changelog.md:549 msgid "PR#431 - Translations update (Galician)" msgstr "" -#: ../source/changelog.md:516 +#: ../source/changelog.md:553 msgid "PR#428 - CI - Add PostgreSQL 16" msgstr "" -#: ../source/changelog.md:517 +#: ../source/changelog.md:554 msgid "2bcff2e - API - update Flask to 3.0+" msgstr "" -#: ../source/changelog.md:518 +#: ../source/changelog.md:555 msgid "PR#436 - CI - Add Python 3.12" msgstr "" -#: ../source/changelog.md:519 +#: ../source/changelog.md:556 msgid "PR#438 - CI - update workflows" msgstr "" -#: ../source/changelog.md:529 -#: ../source/changelog.md:571 -#: ../source/changelog.md:620 -#: ../source/changelog.md:672 -#: ../source/changelog.md:824 +#: ../source/changelog.md:566 +#: ../source/changelog.md:608 +#: ../source/changelog.md:657 +#: ../source/changelog.md:709 +#: ../source/changelog.md:861 msgid "Norwegian Bokmål: 35%" msgstr "" -#: ../source/changelog.md:537 +#: ../source/changelog.md:574 msgid "Version 0.7.23 (2023/09/14)" msgstr "" -#: ../source/changelog.md:541 +#: ../source/changelog.md:578 msgid "PR#421 - remove darksky from available weather providers in .env" msgstr "" -#: ../source/changelog.md:542 +#: ../source/changelog.md:579 msgid "PR#426 - Update default tile server (thanks to @astridx)" msgstr "" -#: ../source/changelog.md:546 +#: ../source/changelog.md:583 msgid "PR#422 - CI - fix e2e tests with packaged version" msgstr "" -#: ../source/changelog.md:549 +#: ../source/changelog.md:586 msgid "Version 0.7.22 (2023/08/23)" msgstr "" -#: ../source/changelog.md:553 +#: ../source/changelog.md:590 msgid "PR#411 - Fix various typos" msgstr "" -#: ../source/changelog.md:554 +#: ../source/changelog.md:591 msgid "PR#416 - fix modal navigation and closing" msgstr "" -#: ../source/changelog.md:559 +#: ../source/changelog.md:596 msgid "PR#410 - Translations update (German)" msgstr "" -#: ../source/changelog.md:560 +#: ../source/changelog.md:597 msgid "PR#415 - Translations update (Polish)" msgstr "" -#: ../source/changelog.md:561 +#: ../source/changelog.md:598 msgid "PR#417 - Translations update (Polish)" msgstr "" -#: ../source/changelog.md:562 +#: ../source/changelog.md:599 msgid "PR#418 - Translations update (Dutch)" msgstr "" -#: ../source/changelog.md:578 -#: ../source/changelog.md:627 +#: ../source/changelog.md:615 +#: ../source/changelog.md:664 msgid "Mariusz" msgstr "" -#: ../source/changelog.md:581 +#: ../source/changelog.md:618 msgid "Version 0.7.21 (2023/07/30)" msgstr "" -#: ../source/changelog.md:585 +#: ../source/changelog.md:622 msgid "#407 - Workout display error when speeds are zero" msgstr "" -#: ../source/changelog.md:590 +#: ../source/changelog.md:627 msgid "PR#409 - CI - update actions version" msgstr "" -#: ../source/changelog.md:593 +#: ../source/changelog.md:630 msgid "Version 0.7.20 (2023/07/22)" msgstr "" -#: ../source/changelog.md:597 +#: ../source/changelog.md:634 msgid "#400 - Add new sport: open water swimming" msgstr "" -#: ../source/changelog.md:602 +#: ../source/changelog.md:639 msgid "PR#398 - Fix language dropdown label" msgstr "" -#: ../source/changelog.md:603 +#: ../source/changelog.md:640 msgid "#402 - handle gpx file without elevation" msgstr "" -#: ../source/changelog.md:608 +#: ../source/changelog.md:645 msgid "PR#399 - Translations update (Galician)" msgstr "" -#: ../source/changelog.md:609 +#: ../source/changelog.md:646 msgid "PR#401 - Translations update (Galician and Polish)" msgstr "" -#: ../source/changelog.md:610 +#: ../source/changelog.md:647 msgid "PR#406 - Translations update (Galician and Spanish)" msgstr "" -#: ../source/changelog.md:614 -#: ../source/changelog.md:666 +#: ../source/changelog.md:651 +#: ../source/changelog.md:703 msgid "Dutch: 97%" msgstr "" -#: ../source/changelog.md:618 -#: ../source/changelog.md:670 +#: ../source/changelog.md:655 +#: ../source/changelog.md:707 msgid "German: 97%" msgstr "" -#: ../source/changelog.md:621 +#: ../source/changelog.md:658 msgid "Polish: 56%" msgstr "" -#: ../source/changelog.md:632 +#: ../source/changelog.md:669 msgid "Version 0.7.19 (2023/07/15)" msgstr "" -#: ../source/changelog.md:636 +#: ../source/changelog.md:673 msgid "PR#380 - Update documentation link" msgstr "" -#: ../source/changelog.md:637 +#: ../source/changelog.md:674 msgid "#390 - Improve UI" msgstr "" -#: ../source/changelog.md:638 +#: ../source/changelog.md:675 msgid "#391 - Add new sport: paragliding" msgstr "" -#: ../source/changelog.md:643 +#: ../source/changelog.md:680 msgid "#384 - Inconsistent page with between workout with and without GPS data" msgstr "" -#: ../source/changelog.md:644 +#: ../source/changelog.md:681 msgid "#393 - PIL.Image module has no attribute ANTIALIAS" msgstr "" -#: ../source/changelog.md:649 +#: ../source/changelog.md:686 msgid "PR#394 - Translations update (Galician)" msgstr "" -#: ../source/changelog.md:650 +#: ../source/changelog.md:687 msgid "PR#397 - Translations update (Spanish)" msgstr "" -#: ../source/changelog.md:653 -#: ../source/changelog.md:700 -#: ../source/changelog.md:1022 +#: ../source/changelog.md:690 +#: ../source/changelog.md:737 +#: ../source/changelog.md:1059 msgid "Documentation" msgstr "" -#: ../source/changelog.md:655 +#: ../source/changelog.md:692 msgid "PR#386 - Minor fix in CONTRIBUTING.md" msgstr "" -#: ../source/changelog.md:656 +#: ../source/changelog.md:693 msgid "PR#388 - Minor typo in CONTRIBUTING.md" msgstr "" -#: ../source/changelog.md:661 +#: ../source/changelog.md:698 msgid "#395 - CI - test a packaged version of FitTrackee" msgstr "" -#: ../source/changelog.md:662 +#: ../source/changelog.md:699 msgid "cc3fe1c CI - update python and postgresql default versions" msgstr "" -#: ../source/changelog.md:669 +#: ../source/changelog.md:706 msgid "Galician: 98%" msgstr "" -#: ../source/changelog.md:673 +#: ../source/changelog.md:710 msgid "Polish: 42%" msgstr "" -#: ../source/changelog.md:677 +#: ../source/changelog.md:714 msgid "@dkm" msgstr "" -#: ../source/changelog.md:684 +#: ../source/changelog.md:721 msgid "Version 0.7.18 (2023/06/25)" msgstr "" -#: ../source/changelog.md:686 +#: ../source/changelog.md:723 msgid "Polish is available in FitTrackee interface (partially translated).
    Documentation is now translated in French (note: documentation translations are not yet available on Weblate)." msgstr "" -#: ../source/changelog.md:689 +#: ../source/changelog.md:726 msgid "Important: Python 3.7 is no longer supported, the minimum version is now Python 3.8.1." msgstr "" -#: ../source/changelog.md:693 +#: ../source/changelog.md:730 msgid "#351 - [Translation Request] Polish" msgstr "" -#: ../source/changelog.md:694 +#: ../source/changelog.md:731 msgid "PR#370 - Translations update (Dutch, thanks to @bjornclauw)" msgstr "" -#: ../source/changelog.md:695 +#: ../source/changelog.md:732 msgid "PR#371 - Translations update (Polish, thanks to Mariusz on Weblate)" msgstr "" -#: ../source/changelog.md:696 +#: ../source/changelog.md:733 msgid "PR#375 - Translations update (French, thanks to @Thovi98)" msgstr "" -#: ../source/changelog.md:697 +#: ../source/changelog.md:734 msgid "PR#376 - Translations update (German, thanks to @qwerty287)" msgstr "" -#: ../source/changelog.md:702 +#: ../source/changelog.md:739 msgid "1375986 - Change documentation theme for Furo" msgstr "" -#: ../source/changelog.md:703 +#: ../source/changelog.md:740 msgid "#377 - Init documentation translation" msgstr "" -#: ../source/changelog.md:708 +#: ../source/changelog.md:745 msgid "#354 - Drop support for Python 3.7" msgstr "" -#: ../source/changelog.md:709 +#: ../source/changelog.md:746 msgid "PR#374 - Docker - install fittrackee in a virtualenv" msgstr "" -#: ../source/changelog.md:718 -#: ../source/changelog.md:739 -#: ../source/changelog.md:771 -#: ../source/changelog.md:823 +#: ../source/changelog.md:755 +#: ../source/changelog.md:776 +#: ../source/changelog.md:808 +#: ../source/changelog.md:860 msgid "Italian: 87%" msgstr "" -#: ../source/changelog.md:719 -#: ../source/changelog.md:740 -#: ../source/changelog.md:772 +#: ../source/changelog.md:756 +#: ../source/changelog.md:777 +#: ../source/changelog.md:809 msgid "Norwegian Bokmål: 36%" msgstr "" -#: ../source/changelog.md:720 +#: ../source/changelog.md:757 msgid "Polish: 43%" msgstr "" -#: ../source/changelog.md:723 +#: ../source/changelog.md:760 msgid "Thanks to all contributors." msgstr "" -#: ../source/changelog.md:726 +#: ../source/changelog.md:763 msgid "Version 0.7.17 (2023/06/03)" msgstr "" -#: ../source/changelog.md:730 +#: ../source/changelog.md:767 msgid "PR#366, PR#369 - Translations update from Hosted Weblate (Galician, thanks to @xmgz)" msgstr "" -#: ../source/changelog.md:731 +#: ../source/changelog.md:768 msgid "PR#367 - Translations update (Spanish, French)" msgstr "" -#: ../source/changelog.md:741 -#: ../source/changelog.md:773 +#: ../source/changelog.md:778 +#: ../source/changelog.md:810 msgid "Polish: 3%" msgstr "" -#: ../source/changelog.md:745 +#: ../source/changelog.md:782 msgid "Version 0.7.16 (2023/05/29)" msgstr "" -#: ../source/changelog.md:749 +#: ../source/changelog.md:786 msgid "PR#358 - Add user preference for filtering of GPX speed data" msgstr "" -#: ../source/changelog.md:754 +#: ../source/changelog.md:791 msgid "#359 - Footer overlaps content on user preferences page" msgstr "" -#: ../source/changelog.md:759 +#: ../source/changelog.md:796 msgid "PR#350 - Translations update from Hosted Weblate (Galician)" msgstr "" -#: ../source/changelog.md:760 +#: ../source/changelog.md:797 msgid "PR#352 - Translations update from Hosted Weblate (Dutch)" msgstr "" -#: ../source/changelog.md:761 +#: ../source/changelog.md:798 msgid "PR#356 - Init Polish translation files" msgstr "" -#: ../source/changelog.md:762 +#: ../source/changelog.md:799 msgid "PR#357 - Translations update from Hosted Weblate (Polish)" msgstr "" -#: ../source/changelog.md:763 +#: ../source/changelog.md:800 msgid "PR#365 - Translations update from Hosted Weblate (Spanish)" msgstr "" -#: ../source/changelog.md:776 +#: ../source/changelog.md:813 msgid "Note: Polish is not yet available in FitTrackee interface." msgstr "" -#: ../source/changelog.md:781 +#: ../source/changelog.md:818 msgid "@gnu-ewm" msgstr "" -#: ../source/changelog.md:788 +#: ../source/changelog.md:825 msgid "Version 0.7.15 (2023/04/12)" msgstr "" -#: ../source/changelog.md:790 +#: ../source/changelog.md:827 msgid "Among enhancements and fixes, FitTrackee is now available in Galician, Spanish and partially in Norwegian Bokmål (see translation status below)." msgstr "" -#: ../source/changelog.md:792 +#: ../source/changelog.md:829 msgid "Note: DarkSky API support is removed, since the service shut down on March 31, 2023." msgstr "" -#: ../source/changelog.md:797 +#: ../source/changelog.md:834 msgid "#319 - Add cli to create users" msgstr "" -#: ../source/changelog.md:798 +#: ../source/changelog.md:835 msgid "#329 - Make \"start elevation axis at zero\" sticky" msgstr "" -#: ../source/changelog.md:799 +#: ../source/changelog.md:836 msgid "#333 - Feature request: filter workouts by title" msgstr "" -#: ../source/changelog.md:800 +#: ../source/changelog.md:837 msgid "#338 - Display relevant error message when
    ":(o=s[6])?(o.match(/\./)&&(s[5]=s[5].replace(/^\d+/gm,"")),r=bs(U_(s[5].replace(/^\s*[>*+.-]/gm,""))),o==">"?o="blockquote":(o=o.match(/\./)?"ol":"ul",r=r.replace(/^(.*)(\n|$)/gm,"
  • $1
  • ")),n="<"+o+">"+r+""):s[8]?n=''+Fr(s[7])+'':s[10]?(l=l.replace("",''),n=p()+""):s[9]?n="":s[12]||s[14]?n="<"+(o="h"+(s[14]?s[14].length:s[13]>"="?1:2))+">"+bs(s[12]||s[15],c)+"":s[16]?n=""+Fr(s[16])+"":(s[17]||s[1])&&(n=E(s[17]||"--"))),l+=a,l+=n;return(l+e.substring(f)+p()).replace(/^\n+|\n+$/g,"")}const q6e=["bytes","KB","MB","GB","TB"],YA=e=>{if(!e)return{size:"0",suffix:"bytes"};const t=Math.floor(Math.log(e)/Math.log(1024)),n=(e/Math.pow(1024,t)).toFixed(1),a=q6e[t];return{size:n,suffix:a}},pu=e=>{if(!e)return"0 bytes";const t=YA(e);return`${t.size}${t.suffix}`},Y6e=e=>{const t=e/1048576;return!e&&0||+t.toFixed(2)},X6e="aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4vianca6w0s2x0a2z0ure5ba0by2idu3namex3narepublic11d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2ntley5rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0cast4mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dabur3d1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3nlop4pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2o0dyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0ardian6cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6logistics9properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3ncaster6d0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2psy3ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rckmsd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2tura4vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9dnavy5lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0america6xi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0stone5umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0a1b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp2w2ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2olterskluwer11odside6rk0s2ld3w2s1tc1f3xbox3erox4finity6ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2",Q6e="ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2",Er=(e,t)=>{for(const n in t)e[n]=t[n];return e},$d="numeric",kd="ascii",wd="alpha",Bi="asciinumeric",di="alphanumeric",Ud="domain",XA="emoji",Z6e="scheme",J6e="slashscheme",M_="whitespace";function eke(e,t){return e in t||(t[e]=[]),t[e]}function Os(e,t,n){t[$d]&&(t[Bi]=!0,t[di]=!0),t[kd]&&(t[Bi]=!0,t[wd]=!0),t[Bi]&&(t[di]=!0),t[wd]&&(t[di]=!0),t[di]&&(t[Ud]=!0),t[XA]&&(t[Ud]=!0);for(const a in t){const s=eke(a,n);s.indexOf(e)<0&&s.push(e)}}function tke(e,t){const n={};for(const a in t)t[a].indexOf(e)>=0&&(n[a]=!0);return n}function In(e){e===void 0&&(e=null),this.j={},this.jr=[],this.jd=null,this.t=e}In.groups={};In.prototype={accepts(){return!!this.t},go(e){const t=this,n=t.j[e];if(n)return n;for(let a=0;ae.ta(t,n,a,s),Cn=(e,t,n,a,s)=>e.tr(t,n,a,s),F_=(e,t,n,a,s)=>e.ts(t,n,a,s),Ae=(e,t,n,a,s)=>e.tt(t,n,a,s),Ta="WORD",Md="UWORD",So="LOCALHOST",Fd="TLD",Wd="UTLD",Gi="SCHEME",Ys="SLASH_SCHEME",cf="NUM",QA="WS",df="NL",eo="OPENBRACE",to="CLOSEBRACE",mu="OPENBRACKET",_u="CLOSEBRACKET",Tu="OPENPAREN",hu="CLOSEPAREN",Au="OPENANGLEBRACKET",Su="CLOSEANGLEBRACKET",Ou="FULLWIDTHLEFTPAREN",gu="FULLWIDTHRIGHTPAREN",Iu="LEFTCORNERBRACKET",Ru="RIGHTCORNERBRACKET",Nu="LEFTWHITECORNERBRACKET",vu="RIGHTWHITECORNERBRACKET",bu="FULLWIDTHLESSTHAN",Cu="FULLWIDTHGREATERTHAN",Du="AMPERSAND",Pu="APOSTROPHE",yu="ASTERISK",Ha="AT",Lu="BACKSLASH",$u="BACKTICK",ku="CARET",qa="COLON",Ef="COMMA",wu="DOLLAR",ea="DOT",Uu="EQUALS",ff="EXCLAMATION",ta="HYPHEN",Mu="PERCENT",Fu="PIPE",Wu="PLUS",zu="POUND",xu="QUERY",pf="QUOTE",mf="SEMI",na="SLASH",no="TILDE",Bu="UNDERSCORE",ZA="EMOJI",Gu="SYM";var JA=Object.freeze({__proto__:null,WORD:Ta,UWORD:Md,LOCALHOST:So,TLD:Fd,UTLD:Wd,SCHEME:Gi,SLASH_SCHEME:Ys,NUM:cf,WS:QA,NL:df,OPENBRACE:eo,CLOSEBRACE:to,OPENBRACKET:mu,CLOSEBRACKET:_u,OPENPAREN:Tu,CLOSEPAREN:hu,OPENANGLEBRACKET:Au,CLOSEANGLEBRACKET:Su,FULLWIDTHLEFTPAREN:Ou,FULLWIDTHRIGHTPAREN:gu,LEFTCORNERBRACKET:Iu,RIGHTCORNERBRACKET:Ru,LEFTWHITECORNERBRACKET:Nu,RIGHTWHITECORNERBRACKET:vu,FULLWIDTHLESSTHAN:bu,FULLWIDTHGREATERTHAN:Cu,AMPERSAND:Du,APOSTROPHE:Pu,ASTERISK:yu,AT:Ha,BACKSLASH:Lu,BACKTICK:$u,CARET:ku,COLON:qa,COMMA:Ef,DOLLAR:wu,DOT:ea,EQUALS:Uu,EXCLAMATION:ff,HYPHEN:ta,PERCENT:Mu,PIPE:Fu,PLUS:Wu,POUND:zu,QUERY:xu,QUOTE:pf,SEMI:mf,SLASH:na,TILDE:no,UNDERSCORE:Bu,EMOJI:ZA,SYM:Gu});const Bs=/[a-z]/,gc=new RegExp("\\p{L}","u"),Ic=new RegExp("\\p{Emoji}","u"),Rc=/\d/,W_=/\s/,z_=` -`,nke="️",ake="‍";let Ei=null,fi=null;function ske(e){e===void 0&&(e=[]);const t={};In.groups=t;const n=new In;Ei==null&&(Ei=x_(X6e)),fi==null&&(fi=x_(Q6e)),Ae(n,"'",Pu),Ae(n,"{",eo),Ae(n,"}",to),Ae(n,"[",mu),Ae(n,"]",_u),Ae(n,"(",Tu),Ae(n,")",hu),Ae(n,"<",Au),Ae(n,">",Su),Ae(n,"(",Ou),Ae(n,")",gu),Ae(n,"「",Iu),Ae(n,"」",Ru),Ae(n,"『",Nu),Ae(n,"』",vu),Ae(n,"<",bu),Ae(n,">",Cu),Ae(n,"&",Du),Ae(n,"*",yu),Ae(n,"@",Ha),Ae(n,"`",$u),Ae(n,"^",ku),Ae(n,":",qa),Ae(n,",",Ef),Ae(n,"$",wu),Ae(n,".",ea),Ae(n,"=",Uu),Ae(n,"!",ff),Ae(n,"-",ta),Ae(n,"%",Mu),Ae(n,"|",Fu),Ae(n,"+",Wu),Ae(n,"#",zu),Ae(n,"?",xu),Ae(n,'"',pf),Ae(n,"/",na),Ae(n,";",mf),Ae(n,"~",no),Ae(n,"_",Bu),Ae(n,"\\",Lu);const a=Cn(n,Rc,cf,{[$d]:!0});Cn(a,Rc,a);const s=Cn(n,Bs,Ta,{[kd]:!0});Cn(s,Bs,s);const r=Cn(n,gc,Md,{[wd]:!0});Cn(r,Bs),Cn(r,gc,r);const o=Cn(n,W_,QA,{[M_]:!0});Ae(n,z_,df,{[M_]:!0}),Ae(o,z_),Cn(o,W_,o);const i=Cn(n,Ic,ZA,{[XA]:!0});Cn(i,Ic,i),Ae(i,nke,i);const u=Ae(i,ake);Cn(u,Ic,i);const l=[[Bs,s]],c=[[Bs,null],[gc,r]];for(let f=0;ff[0]>E[0]?1:-1);for(let f=0;f=0?T[Ud]=!0:Bs.test(E)?Rc.test(E)?T[Bi]=!0:T[kd]=!0:T[$d]=!0,F_(n,E,E,T)}return F_(n,"localhost",So,{ascii:!0}),n.jd=new In(Gu),{start:n,tokens:Er({groups:t},JA)}}function rke(e,t){const n=oke(t.replace(/[A-Z]/g,i=>i.toLowerCase())),a=n.length,s=[];let r=0,o=0;for(;o=0&&(f+=n[o].length,E++),l+=n[o].length,r+=n[o].length,o++;r-=f,o-=E,l-=f,s.push({t:c.t,v:t.slice(r-l,r),s:r-l,e:r})}return s}function oke(e){const t=[],n=e.length;let a=0;for(;a56319||a+1===n||(r=e.charCodeAt(a+1))<56320||r>57343?e[a]:e.slice(a,a+2);t.push(o),a+=o.length}return t}function Wa(e,t,n,a,s){let r;const o=t.length;for(let i=0;i=0;)r++;if(r>0){t.push(n.join(""));for(let o=parseInt(e.substring(a,a+r),10);o>0;o--)n.pop();a+=r}else n.push(e[a]),a++}return t}const Oo={defaultProtocol:"http",events:null,format:B_,formatHref:B_,nl2br:!1,tagName:"a",target:null,rel:null,validate:!0,truncate:1/0,className:null,attributes:null,ignoreTags:[],render:null};function _f(e,t){t===void 0&&(t=null);let n=Er({},Oo);e&&(n=Er(n,e instanceof _f?e.o:e));const a=n.ignoreTags,s=[];for(let r=0;rn?a.substring(0,n)+"…":a},toFormattedHref(e){return e.get("formatHref",this.toHref(e.get("defaultProtocol")),this)},startIndex(){return this.tk[0].s},endIndex(){return this.tk[this.tk.length-1].e},toObject(e){return e===void 0&&(e=Oo.defaultProtocol),{type:this.t,value:this.toString(),isLink:this.isLink,href:this.toHref(e),start:this.startIndex(),end:this.endIndex()}},toFormattedObject(e){return{type:this.t,value:this.toFormattedString(e),isLink:this.isLink,href:this.toFormattedHref(e),start:this.startIndex(),end:this.endIndex()}},validate(e){return e.get("validate",this.toString(),this)},render(e){const t=this,n=this.toHref(e.get("defaultProtocol")),a=e.get("formatHref",n,this),s=e.get("tagName",n,t),r=this.toFormattedString(e),o={},i=e.get("className",n,t),u=e.get("target",n,t),l=e.get("rel",n,t),c=e.getObj("attributes",n,t),f=e.getObj("events",n,t);return o.href=a,i&&(o.class=i),u&&(o.target=u),l&&(o.rel=l),c&&Er(o,c),{tagName:s,attributes:o,content:r,eventListeners:f}}};function kl(e,t){class n extends eS{constructor(s,r){super(s,r),this.t=e}}for(const a in t)n.prototype[a]=t[a];return n.t=e,n}const G_=kl("email",{isLink:!0,toHref(){return"mailto:"+this.toString()}}),H_=kl("text"),ike=kl("nl"),pi=kl("url",{isLink:!0,toHref(e){return e===void 0&&(e=Oo.defaultProtocol),this.hasProtocol()?this.v:`${e}://${this.v}`},hasProtocol(){const e=this.tk;return e.length>=2&&e[0].t!==So&&e[1].t===qa}}),Dn=e=>new In(e);function uke(e){let{groups:t}=e;const n=t.domain.concat([Du,yu,Ha,Lu,$u,ku,wu,Uu,ta,cf,Mu,Fu,Wu,zu,na,Gu,no,Bu]),a=[Pu,qa,Ef,ea,ff,xu,pf,mf,Au,Su,eo,to,_u,mu,Tu,hu,Ou,gu,Iu,Ru,Nu,vu,bu,Cu],s=[Du,Pu,yu,Lu,$u,ku,wu,Uu,ta,eo,to,Mu,Fu,Wu,zu,xu,na,Gu,no,Bu],r=Dn(),o=Ae(r,no);Ze(o,s,o),Ze(o,t.domain,o);const i=Dn(),u=Dn(),l=Dn();Ze(r,t.domain,i),Ze(r,t.scheme,u),Ze(r,t.slashscheme,l),Ze(i,s,o),Ze(i,t.domain,i);const c=Ae(i,Ha);Ae(o,Ha,c),Ae(u,Ha,c),Ae(l,Ha,c);const f=Ae(o,ea);Ze(f,s,o),Ze(f,t.domain,o);const E=Dn();Ze(c,t.domain,E),Ze(E,t.domain,E);const p=Ae(E,ea);Ze(p,t.domain,E);const T=Dn(G_);Ze(p,t.tld,T),Ze(p,t.utld,T),Ae(c,So,T);const O=Ae(E,ta);Ze(O,t.domain,E),Ze(T,t.domain,E),Ae(T,ea,p),Ae(T,ta,O);const N=Ae(T,qa);Ze(N,t.numeric,G_);const g=Ae(i,ta),R=Ae(i,ea);Ze(g,t.domain,i),Ze(R,s,o),Ze(R,t.domain,i);const A=Dn(pi);Ze(R,t.tld,A),Ze(R,t.utld,A),Ze(A,t.domain,i),Ze(A,s,o),Ae(A,ea,R),Ae(A,ta,g),Ae(A,Ha,c);const S=Ae(A,qa),v=Dn(pi);Ze(S,t.numeric,v);const C=Dn(pi),y=Dn();Ze(C,n,C),Ze(C,a,y),Ze(y,n,C),Ze(y,a,y),Ae(A,na,C),Ae(v,na,C);const b=Ae(u,qa),k=Ae(l,qa),z=Ae(k,na),$=Ae(z,na);Ze(u,t.domain,i),Ae(u,ea,R),Ae(u,ta,g),Ze(l,t.domain,i),Ae(l,ea,R),Ae(l,ta,g),Ze(b,t.domain,C),Ae(b,na,C),Ze($,t.domain,C),Ze($,n,C),Ae($,na,C);const W=[[eo,to],[mu,_u],[Tu,hu],[Au,Su],[Ou,gu],[Iu,Ru],[Nu,vu],[bu,Cu]];for(let X=0;X=0&&E++,s++,c++;if(E<0)s-=c,s0&&(r.push(Nc(H_,t,o)),o=[]),s-=E,c-=E;const p=f.t,T=n.slice(s-c,s);r.push(Nc(p,t,T))}}return o.length>0&&r.push(Nc(H_,t,o)),r}function Nc(e,t,n){const a=n[0].s,s=n[n.length-1].e,r=t.slice(a,s);return new e(r,n)}const nn={scanner:null,parser:null,tokenQueue:[],pluginQueue:[],customSchemes:[],initialized:!1};function cke(){nn.scanner=ske(nn.customSchemes);for(let e=0;e",lt:"<",nbsp:" ",quot:'"'},fke=/^#[xX]([A-Fa-f0-9]+)$/,pke=/^#([0-9]+)$/,mke=/^([A-Za-z0-9]+)$/,_ke=function(){function e(t){this.named=t}return e.prototype.parse=function(t){if(t){var n=t.match(fke);if(n)return String.fromCharCode(parseInt(n[1],16));if(n=t.match(pke),n)return String.fromCharCode(parseInt(n[1],10));if(n=t.match(mke),n)return this.named[n[1]]||"&"+n[1]+";"}},e}(),Tke=/[\t\n\f ]/,hke=/[A-Za-z]/,Ake=/\r\n?/g;function Qt(e){return Tke.test(e)}function V_(e){return hke.test(e)}function Ske(e){return e.replace(Ake,` -`)}var Oke=function(){function e(t,n,a){a===void 0&&(a="precompile"),this.delegate=t,this.entityParser=n,this.mode=a,this.state="beforeData",this.line=-1,this.column=-1,this.input="",this.index=-1,this.tagNameBuffer="",this.states={beforeData:function(){var s=this.peek();if(s==="<"&&!this.isIgnoredEndTag())this.transitionTo("tagOpen"),this.markTagStart(),this.consume();else{if(this.mode==="precompile"&&s===` -`){var r=this.tagNameBuffer.toLowerCase();(r==="pre"||r==="textarea")&&this.consume()}this.transitionTo("data"),this.delegate.beginData()}},data:function(){var s=this.peek(),r=this.tagNameBuffer;s==="<"&&!this.isIgnoredEndTag()?(this.delegate.finishData(),this.transitionTo("tagOpen"),this.markTagStart(),this.consume()):s==="&"&&r!=="script"&&r!=="style"?(this.consume(),this.delegate.appendToData(this.consumeCharRef()||"&")):(this.consume(),this.delegate.appendToData(s))},tagOpen:function(){var s=this.consume();s==="!"?this.transitionTo("markupDeclarationOpen"):s==="/"?this.transitionTo("endTagOpen"):(s==="@"||s===":"||V_(s))&&(this.transitionTo("tagName"),this.tagNameBuffer="",this.delegate.beginStartTag(),this.appendToTagName(s))},markupDeclarationOpen:function(){var s=this.consume();if(s==="-"&&this.peek()==="-")this.consume(),this.transitionTo("commentStart"),this.delegate.beginComment();else{var r=s.toUpperCase()+this.input.substring(this.index,this.index+6).toUpperCase();r==="DOCTYPE"&&(this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.transitionTo("doctype"),this.delegate.beginDoctype&&this.delegate.beginDoctype())}},doctype:function(){var s=this.consume();Qt(s)&&this.transitionTo("beforeDoctypeName")},beforeDoctypeName:function(){var s=this.consume();Qt(s)||(this.transitionTo("doctypeName"),this.delegate.appendToDoctypeName&&this.delegate.appendToDoctypeName(s.toLowerCase()))},doctypeName:function(){var s=this.consume();Qt(s)?this.transitionTo("afterDoctypeName"):s===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypeName&&this.delegate.appendToDoctypeName(s.toLowerCase())},afterDoctypeName:function(){var s=this.consume();if(!Qt(s))if(s===">")this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData");else{var r=s.toUpperCase()+this.input.substring(this.index,this.index+5).toUpperCase(),o=r.toUpperCase()==="PUBLIC",i=r.toUpperCase()==="SYSTEM";(o||i)&&(this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.consume()),o?this.transitionTo("afterDoctypePublicKeyword"):i&&this.transitionTo("afterDoctypeSystemKeyword")}},afterDoctypePublicKeyword:function(){var s=this.peek();Qt(s)?(this.transitionTo("beforeDoctypePublicIdentifier"),this.consume()):s==='"'?(this.transitionTo("doctypePublicIdentifierDoubleQuoted"),this.consume()):s==="'"?(this.transitionTo("doctypePublicIdentifierSingleQuoted"),this.consume()):s===">"&&(this.consume(),this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData"))},doctypePublicIdentifierDoubleQuoted:function(){var s=this.consume();s==='"'?this.transitionTo("afterDoctypePublicIdentifier"):s===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypePublicIdentifier&&this.delegate.appendToDoctypePublicIdentifier(s)},doctypePublicIdentifierSingleQuoted:function(){var s=this.consume();s==="'"?this.transitionTo("afterDoctypePublicIdentifier"):s===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypePublicIdentifier&&this.delegate.appendToDoctypePublicIdentifier(s)},afterDoctypePublicIdentifier:function(){var s=this.consume();Qt(s)?this.transitionTo("betweenDoctypePublicAndSystemIdentifiers"):s===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):s==='"'?this.transitionTo("doctypeSystemIdentifierDoubleQuoted"):s==="'"&&this.transitionTo("doctypeSystemIdentifierSingleQuoted")},betweenDoctypePublicAndSystemIdentifiers:function(){var s=this.consume();Qt(s)||(s===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):s==='"'?this.transitionTo("doctypeSystemIdentifierDoubleQuoted"):s==="'"&&this.transitionTo("doctypeSystemIdentifierSingleQuoted"))},doctypeSystemIdentifierDoubleQuoted:function(){var s=this.consume();s==='"'?this.transitionTo("afterDoctypeSystemIdentifier"):s===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypeSystemIdentifier&&this.delegate.appendToDoctypeSystemIdentifier(s)},doctypeSystemIdentifierSingleQuoted:function(){var s=this.consume();s==="'"?this.transitionTo("afterDoctypeSystemIdentifier"):s===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypeSystemIdentifier&&this.delegate.appendToDoctypeSystemIdentifier(s)},afterDoctypeSystemIdentifier:function(){var s=this.consume();Qt(s)||s===">"&&(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData"))},commentStart:function(){var s=this.consume();s==="-"?this.transitionTo("commentStartDash"):s===">"?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData(s),this.transitionTo("comment"))},commentStartDash:function(){var s=this.consume();s==="-"?this.transitionTo("commentEnd"):s===">"?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData("-"),this.transitionTo("comment"))},comment:function(){var s=this.consume();s==="-"?this.transitionTo("commentEndDash"):this.delegate.appendToCommentData(s)},commentEndDash:function(){var s=this.consume();s==="-"?this.transitionTo("commentEnd"):(this.delegate.appendToCommentData("-"+s),this.transitionTo("comment"))},commentEnd:function(){var s=this.consume();s===">"?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData("--"+s),this.transitionTo("comment"))},tagName:function(){var s=this.consume();Qt(s)?this.transitionTo("beforeAttributeName"):s==="/"?this.transitionTo("selfClosingStartTag"):s===">"?(this.delegate.finishTag(),this.transitionTo("beforeData")):this.appendToTagName(s)},endTagName:function(){var s=this.consume();Qt(s)?(this.transitionTo("beforeAttributeName"),this.tagNameBuffer=""):s==="/"?(this.transitionTo("selfClosingStartTag"),this.tagNameBuffer=""):s===">"?(this.delegate.finishTag(),this.transitionTo("beforeData"),this.tagNameBuffer=""):this.appendToTagName(s)},beforeAttributeName:function(){var s=this.peek();if(Qt(s)){this.consume();return}else s==="/"?(this.transitionTo("selfClosingStartTag"),this.consume()):s===">"?(this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):s==="="?(this.delegate.reportSyntaxError("attribute name cannot start with equals sign"),this.transitionTo("attributeName"),this.delegate.beginAttribute(),this.consume(),this.delegate.appendToAttributeName(s)):(this.transitionTo("attributeName"),this.delegate.beginAttribute())},attributeName:function(){var s=this.peek();Qt(s)?(this.transitionTo("afterAttributeName"),this.consume()):s==="/"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):s==="="?(this.transitionTo("beforeAttributeValue"),this.consume()):s===">"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):s==='"'||s==="'"||s==="<"?(this.delegate.reportSyntaxError(s+" is not a valid character within attribute names"),this.consume(),this.delegate.appendToAttributeName(s)):(this.consume(),this.delegate.appendToAttributeName(s))},afterAttributeName:function(){var s=this.peek();if(Qt(s)){this.consume();return}else s==="/"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):s==="="?(this.consume(),this.transitionTo("beforeAttributeValue")):s===">"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.transitionTo("attributeName"),this.delegate.beginAttribute(),this.consume(),this.delegate.appendToAttributeName(s))},beforeAttributeValue:function(){var s=this.peek();Qt(s)?this.consume():s==='"'?(this.transitionTo("attributeValueDoubleQuoted"),this.delegate.beginAttributeValue(!0),this.consume()):s==="'"?(this.transitionTo("attributeValueSingleQuoted"),this.delegate.beginAttributeValue(!0),this.consume()):s===">"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):(this.transitionTo("attributeValueUnquoted"),this.delegate.beginAttributeValue(!1),this.consume(),this.delegate.appendToAttributeValue(s))},attributeValueDoubleQuoted:function(){var s=this.consume();s==='"'?(this.delegate.finishAttributeValue(),this.transitionTo("afterAttributeValueQuoted")):s==="&"?this.delegate.appendToAttributeValue(this.consumeCharRef()||"&"):this.delegate.appendToAttributeValue(s)},attributeValueSingleQuoted:function(){var s=this.consume();s==="'"?(this.delegate.finishAttributeValue(),this.transitionTo("afterAttributeValueQuoted")):s==="&"?this.delegate.appendToAttributeValue(this.consumeCharRef()||"&"):this.delegate.appendToAttributeValue(s)},attributeValueUnquoted:function(){var s=this.peek();Qt(s)?(this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("beforeAttributeName")):s==="/"?(this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):s==="&"?(this.consume(),this.delegate.appendToAttributeValue(this.consumeCharRef()||"&")):s===">"?(this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):(this.consume(),this.delegate.appendToAttributeValue(s))},afterAttributeValueQuoted:function(){var s=this.peek();Qt(s)?(this.consume(),this.transitionTo("beforeAttributeName")):s==="/"?(this.consume(),this.transitionTo("selfClosingStartTag")):s===">"?(this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):this.transitionTo("beforeAttributeName")},selfClosingStartTag:function(){var s=this.peek();s===">"?(this.consume(),this.delegate.markTagAsSelfClosing(),this.delegate.finishTag(),this.transitionTo("beforeData")):this.transitionTo("beforeAttributeName")},endTagOpen:function(){var s=this.consume();(s==="@"||s===":"||V_(s))&&(this.transitionTo("endTagName"),this.tagNameBuffer="",this.delegate.beginEndTag(),this.appendToTagName(s))}},this.reset()}return e.prototype.reset=function(){this.transitionTo("beforeData"),this.input="",this.tagNameBuffer="",this.index=0,this.line=1,this.column=0,this.delegate.reset()},e.prototype.transitionTo=function(t){this.state=t},e.prototype.tokenize=function(t){this.reset(),this.tokenizePart(t),this.tokenizeEOF()},e.prototype.tokenizePart=function(t){for(this.input+=Ske(t);this.index"||t==="style"&&this.input.substring(this.index,this.index+8)!==""||t==="script"&&this.input.substring(this.index,this.index+9)!=="<\/script>"},e}(),gke=function(){function e(t,n){n===void 0&&(n={}),this.options=n,this.token=null,this.startLine=1,this.startColumn=0,this.tokens=[],this.tokenizer=new Oke(this,t,n.mode),this._currentAttribute=void 0}return e.prototype.tokenize=function(t){return this.tokens=[],this.tokenizer.tokenize(t),this.tokens},e.prototype.tokenizePart=function(t){return this.tokens=[],this.tokenizer.tokenizePart(t),this.tokens},e.prototype.tokenizeEOF=function(){return this.tokens=[],this.tokenizer.tokenizeEOF(),this.tokens[0]},e.prototype.reset=function(){this.token=null,this.startLine=1,this.startColumn=0},e.prototype.current=function(){var t=this.token;if(t===null)throw new Error("token was unexpectedly null");if(arguments.length===0)return t;for(var n=0;n=0))continue;let c=a.length;Cke(u,n,++o,a),o+=a.length-c-1}else if(i.type!==zd)a.push(i);else{const u=bke(i.chars,r);a.push.apply(a,u)}}for(let o=0;o0&&(u+=" "+yke(i.attributes).join(" ")),i.selfClosing&&(u+=" /"),u+=">",s.push(u);break}case nS:s.push(``);break;case zd:s.push(xd(i.chars));break;case Rke:s.push(``);break;case Nke:{let u=`",s.push(u);break}}}return s.join("")}function bke(e,t){const n=dke(e),a=[];for(let s=0;s0;){let r=t[n];r.type===Hu&&r.tagName.toUpperCase()===e?s++:r.type===nS&&r.tagName.toUpperCase()===e&&s--,a.push(r),n++}return a}function Dke(e){let{tagName:t,attributes:n,content:a}=e;return`<${t} ${Pke(n)}>${xd(a)}`}function xd(e){return e.replace(//g,">")}function aS(e){return e.replace(/"/g,""")}function Pke(e){const t=[];for(const n in e){const a=e[n]+"";t.push(`${n}="${aS(a)}"`)}return t.join(" ")}function yke(e){const t=[];for(let n=0;n䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(function(e){return e.charCodeAt(0)}));var Af={};Object.defineProperty(Af,"__esModule",{value:!0});Af.default=new Uint16Array("Ȁaglq \x1Bɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(function(e){return e.charCodeAt(0)}));var Bd={};(function(e){var t;Object.defineProperty(e,"__esModule",{value:!0}),e.replaceCodePoint=e.fromCodePoint=void 0;var n=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);e.fromCodePoint=(t=String.fromCodePoint)!==null&&t!==void 0?t:function(r){var o="";return r>65535&&(r-=65536,o+=String.fromCharCode(r>>>10&1023|55296),r=56320|r&1023),o+=String.fromCharCode(r),o};function a(r){var o;return r>=55296&&r<=57343||r>1114111?65533:(o=n.get(r))!==null&&o!==void 0?o:r}e.replaceCodePoint=a;function s(r){return(0,e.fromCodePoint)(a(r))}e.default=s})(Bd);(function(e){var t=Ge&&Ge.__createBinding||(Object.create?function($,W,X,re){re===void 0&&(re=X);var G=Object.getOwnPropertyDescriptor(W,X);(!G||("get"in G?!W.__esModule:G.writable||G.configurable))&&(G={enumerable:!0,get:function(){return W[X]}}),Object.defineProperty($,re,G)}:function($,W,X,re){re===void 0&&(re=X),$[re]=W[X]}),n=Ge&&Ge.__setModuleDefault||(Object.create?function($,W){Object.defineProperty($,"default",{enumerable:!0,value:W})}:function($,W){$.default=W}),a=Ge&&Ge.__importStar||function($){if($&&$.__esModule)return $;var W={};if($!=null)for(var X in $)X!=="default"&&Object.prototype.hasOwnProperty.call($,X)&&t(W,$,X);return n(W,$),W},s=Ge&&Ge.__importDefault||function($){return $&&$.__esModule?$:{default:$}};Object.defineProperty(e,"__esModule",{value:!0}),e.decodeXML=e.decodeHTMLStrict=e.decodeHTMLAttribute=e.decodeHTML=e.determineBranch=e.EntityDecoder=e.DecodingMode=e.BinTrieFlags=e.fromCodePoint=e.replaceCodePoint=e.decodeCodePoint=e.xmlDecodeTree=e.htmlDecodeTree=void 0;var r=s(hf);e.htmlDecodeTree=r.default;var o=s(Af);e.xmlDecodeTree=o.default;var i=a(Bd);e.decodeCodePoint=i.default;var u=Bd;Object.defineProperty(e,"replaceCodePoint",{enumerable:!0,get:function(){return u.replaceCodePoint}}),Object.defineProperty(e,"fromCodePoint",{enumerable:!0,get:function(){return u.fromCodePoint}});var l;(function($){$[$.NUM=35]="NUM",$[$.SEMI=59]="SEMI",$[$.EQUALS=61]="EQUALS",$[$.ZERO=48]="ZERO",$[$.NINE=57]="NINE",$[$.LOWER_A=97]="LOWER_A",$[$.LOWER_F=102]="LOWER_F",$[$.LOWER_X=120]="LOWER_X",$[$.LOWER_Z=122]="LOWER_Z",$[$.UPPER_A=65]="UPPER_A",$[$.UPPER_F=70]="UPPER_F",$[$.UPPER_Z=90]="UPPER_Z"})(l||(l={}));var c=32,f;(function($){$[$.VALUE_LENGTH=49152]="VALUE_LENGTH",$[$.BRANCH_LENGTH=16256]="BRANCH_LENGTH",$[$.JUMP_TABLE=127]="JUMP_TABLE"})(f=e.BinTrieFlags||(e.BinTrieFlags={}));function E($){return $>=l.ZERO&&$<=l.NINE}function p($){return $>=l.UPPER_A&&$<=l.UPPER_F||$>=l.LOWER_A&&$<=l.LOWER_F}function T($){return $>=l.UPPER_A&&$<=l.UPPER_Z||$>=l.LOWER_A&&$<=l.LOWER_Z||E($)}function O($){return $===l.EQUALS||T($)}var N;(function($){$[$.EntityStart=0]="EntityStart",$[$.NumericStart=1]="NumericStart",$[$.NumericDecimal=2]="NumericDecimal",$[$.NumericHex=3]="NumericHex",$[$.NamedEntity=4]="NamedEntity"})(N||(N={}));var g;(function($){$[$.Legacy=0]="Legacy",$[$.Strict=1]="Strict",$[$.Attribute=2]="Attribute"})(g=e.DecodingMode||(e.DecodingMode={}));var R=function(){function $(W,X,re){this.decodeTree=W,this.emitCodePoint=X,this.errors=re,this.state=N.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=g.Strict}return $.prototype.startEntity=function(W){this.decodeMode=W,this.state=N.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1},$.prototype.write=function(W,X){switch(this.state){case N.EntityStart:return W.charCodeAt(X)===l.NUM?(this.state=N.NumericStart,this.consumed+=1,this.stateNumericStart(W,X+1)):(this.state=N.NamedEntity,this.stateNamedEntity(W,X));case N.NumericStart:return this.stateNumericStart(W,X);case N.NumericDecimal:return this.stateNumericDecimal(W,X);case N.NumericHex:return this.stateNumericHex(W,X);case N.NamedEntity:return this.stateNamedEntity(W,X)}},$.prototype.stateNumericStart=function(W,X){return X>=W.length?-1:(W.charCodeAt(X)|c)===l.LOWER_X?(this.state=N.NumericHex,this.consumed+=1,this.stateNumericHex(W,X+1)):(this.state=N.NumericDecimal,this.stateNumericDecimal(W,X))},$.prototype.addToNumericResult=function(W,X,re,G){if(X!==re){var Z=re-X;this.result=this.result*Math.pow(G,Z)+parseInt(W.substr(X,Z),G),this.consumed+=Z}},$.prototype.stateNumericHex=function(W,X){for(var re=X;X>14;X>14,Z!==0){if(q===l.SEMI)return this.emitNamedEntityData(this.treeIndex,Z,this.consumed+this.excess);this.decodeMode!==g.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1},$.prototype.emitNotTerminatedNamedEntity=function(){var W,X=this,re=X.result,G=X.decodeTree,Z=(G[re]&f.VALUE_LENGTH)>>14;return this.emitNamedEntityData(re,Z,this.consumed),(W=this.errors)===null||W===void 0||W.missingSemicolonAfterCharacterReference(),this.consumed},$.prototype.emitNamedEntityData=function(W,X,re){var G=this.decodeTree;return this.emitCodePoint(X===1?G[W]&~f.VALUE_LENGTH:G[W+1],re),X===3&&this.emitCodePoint(G[W+2],re),re},$.prototype.end=function(){var W;switch(this.state){case N.NamedEntity:return this.result!==0&&(this.decodeMode!==g.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case N.NumericDecimal:return this.emitNumericEntity(0,2);case N.NumericHex:return this.emitNumericEntity(0,3);case N.NumericStart:return(W=this.errors)===null||W===void 0||W.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case N.EntityStart:return 0}},$}();e.EntityDecoder=R;function A($){var W="",X=new R($,function(re){return W+=(0,i.fromCodePoint)(re)});return function(G,Z){for(var q=0,B=0;(B=G.indexOf("&",B))>=0;){W+=G.slice(q,B),X.startEntity(Z);var Ne=X.write(G,B+1);if(Ne<0){q=B+X.end();break}q=B+Ne,B=Ne===0?q+1:q}var Ke=W+G.slice(q);return W="",Ke}}function S($,W,X,re){var G=(W&f.BRANCH_LENGTH)>>7,Z=W&f.JUMP_TABLE;if(G===0)return Z!==0&&re===Z?X:-1;if(Z){var q=re-Z;return q<0||q>=G?-1:$[X+q]-1}for(var B=X,Ne=B+G-1;B<=Ne;){var Ke=B+Ne>>>1,Fe=$[Ke];if(Fere)Ne=Ke-1;else return $[Ke+G]}return-1}e.determineBranch=S;var v=A(r.default),C=A(o.default);function y($,W){return W===void 0&&(W=g.Legacy),v($,W)}e.decodeHTML=y;function b($){return v($,g.Attribute)}e.decodeHTMLAttribute=b;function k($){return v($,g.Strict)}e.decodeHTMLStrict=k;function z($){return C($,g.Strict)}e.decodeXML=z})(Io);(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.QuoteType=void 0;var t=Io,n;(function(E){E[E.Tab=9]="Tab",E[E.NewLine=10]="NewLine",E[E.FormFeed=12]="FormFeed",E[E.CarriageReturn=13]="CarriageReturn",E[E.Space=32]="Space",E[E.ExclamationMark=33]="ExclamationMark",E[E.Number=35]="Number",E[E.Amp=38]="Amp",E[E.SingleQuote=39]="SingleQuote",E[E.DoubleQuote=34]="DoubleQuote",E[E.Dash=45]="Dash",E[E.Slash=47]="Slash",E[E.Zero=48]="Zero",E[E.Nine=57]="Nine",E[E.Semi=59]="Semi",E[E.Lt=60]="Lt",E[E.Eq=61]="Eq",E[E.Gt=62]="Gt",E[E.Questionmark=63]="Questionmark",E[E.UpperA=65]="UpperA",E[E.LowerA=97]="LowerA",E[E.UpperF=70]="UpperF",E[E.LowerF=102]="LowerF",E[E.UpperZ=90]="UpperZ",E[E.LowerZ=122]="LowerZ",E[E.LowerX=120]="LowerX",E[E.OpeningSquareBracket=91]="OpeningSquareBracket"})(n||(n={}));var a;(function(E){E[E.Text=1]="Text",E[E.BeforeTagName=2]="BeforeTagName",E[E.InTagName=3]="InTagName",E[E.InSelfClosingTag=4]="InSelfClosingTag",E[E.BeforeClosingTagName=5]="BeforeClosingTagName",E[E.InClosingTagName=6]="InClosingTagName",E[E.AfterClosingTagName=7]="AfterClosingTagName",E[E.BeforeAttributeName=8]="BeforeAttributeName",E[E.InAttributeName=9]="InAttributeName",E[E.AfterAttributeName=10]="AfterAttributeName",E[E.BeforeAttributeValue=11]="BeforeAttributeValue",E[E.InAttributeValueDq=12]="InAttributeValueDq",E[E.InAttributeValueSq=13]="InAttributeValueSq",E[E.InAttributeValueNq=14]="InAttributeValueNq",E[E.BeforeDeclaration=15]="BeforeDeclaration",E[E.InDeclaration=16]="InDeclaration",E[E.InProcessingInstruction=17]="InProcessingInstruction",E[E.BeforeComment=18]="BeforeComment",E[E.CDATASequence=19]="CDATASequence",E[E.InSpecialComment=20]="InSpecialComment",E[E.InCommentLike=21]="InCommentLike",E[E.BeforeSpecialS=22]="BeforeSpecialS",E[E.SpecialStartSequence=23]="SpecialStartSequence",E[E.InSpecialTag=24]="InSpecialTag",E[E.BeforeEntity=25]="BeforeEntity",E[E.BeforeNumericEntity=26]="BeforeNumericEntity",E[E.InNamedEntity=27]="InNamedEntity",E[E.InNumericEntity=28]="InNumericEntity",E[E.InHexEntity=29]="InHexEntity"})(a||(a={}));function s(E){return E===n.Space||E===n.NewLine||E===n.Tab||E===n.FormFeed||E===n.CarriageReturn}function r(E){return E===n.Slash||E===n.Gt||s(E)}function o(E){return E>=n.Zero&&E<=n.Nine}function i(E){return E>=n.LowerA&&E<=n.LowerZ||E>=n.UpperA&&E<=n.UpperZ}function u(E){return E>=n.UpperA&&E<=n.UpperF||E>=n.LowerA&&E<=n.LowerF}var l;(function(E){E[E.NoValue=0]="NoValue",E[E.Unquoted=1]="Unquoted",E[E.Single=2]="Single",E[E.Double=3]="Double"})(l=e.QuoteType||(e.QuoteType={}));var c={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101])},f=function(){function E(p,T){var O=p.xmlMode,N=O===void 0?!1:O,g=p.decodeEntities,R=g===void 0?!0:g;this.cbs=T,this.state=a.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=a.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.trieIndex=0,this.trieCurrent=0,this.entityResult=0,this.entityExcess=0,this.xmlMode=N,this.decodeEntities=R,this.entityTrie=N?t.xmlDecodeTree:t.htmlDecodeTree}return E.prototype.reset=function(){this.state=a.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=a.Text,this.currentSequence=void 0,this.running=!0,this.offset=0},E.prototype.write=function(p){this.offset+=this.buffer.length,this.buffer=p,this.parse()},E.prototype.end=function(){this.running&&this.finish()},E.prototype.pause=function(){this.running=!1},E.prototype.resume=function(){this.running=!0,this.indexthis.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=a.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&p===n.Amp&&(this.state=a.BeforeEntity)},E.prototype.stateSpecialStartSequence=function(p){var T=this.sequenceIndex===this.currentSequence.length,O=T?r(p):(p|32)===this.currentSequence[this.sequenceIndex];if(!O)this.isSpecial=!1;else if(!T){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=a.InTagName,this.stateInTagName(p)},E.prototype.stateInSpecialTag=function(p){if(this.sequenceIndex===this.currentSequence.length){if(p===n.Gt||s(p)){var T=this.index-this.currentSequence.length;if(this.sectionStart>14)-1;if(!this.allowLegacyEntity()&&p!==n.Semi)this.trieIndex+=O;else{var N=this.index-this.entityExcess+1;N>this.sectionStart&&this.emitPartial(this.sectionStart,N),this.entityResult=this.trieIndex,this.trieIndex+=O,this.entityExcess=0,this.sectionStart=this.index+1,O===0&&this.emitNamedEntity()}}},E.prototype.emitNamedEntity=function(){if(this.state=this.baseState,this.entityResult!==0){var p=(this.entityTrie[this.entityResult]&t.BinTrieFlags.VALUE_LENGTH)>>14;switch(p){case 1:{this.emitCodePoint(this.entityTrie[this.entityResult]&~t.BinTrieFlags.VALUE_LENGTH);break}case 2:{this.emitCodePoint(this.entityTrie[this.entityResult+1]);break}case 3:this.emitCodePoint(this.entityTrie[this.entityResult+1]),this.emitCodePoint(this.entityTrie[this.entityResult+2])}}},E.prototype.stateBeforeNumericEntity=function(p){(p|32)===n.LowerX?(this.entityExcess++,this.state=a.InHexEntity):(this.state=a.InNumericEntity,this.stateInNumericEntity(p))},E.prototype.emitNumericEntity=function(p){var T=this.index-this.entityExcess-1,O=T+2+ +(this.state===a.InHexEntity);O!==this.index&&(T>this.sectionStart&&this.emitPartial(this.sectionStart,T),this.sectionStart=this.index+Number(p),this.emitCodePoint((0,t.replaceCodePoint)(this.entityResult))),this.state=this.baseState},E.prototype.stateInNumericEntity=function(p){p===n.Semi?this.emitNumericEntity(!0):o(p)?(this.entityResult=this.entityResult*10+(p-n.Zero),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)},E.prototype.stateInHexEntity=function(p){p===n.Semi?this.emitNumericEntity(!0):o(p)?(this.entityResult=this.entityResult*16+(p-n.Zero),this.entityExcess++):u(p)?(this.entityResult=this.entityResult*16+((p|32)-n.LowerA+10),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)},E.prototype.allowLegacyEntity=function(){return!this.xmlMode&&(this.baseState===a.Text||this.baseState===a.InSpecialTag)},E.prototype.cleanup=function(){this.running&&this.sectionStart!==this.index&&(this.state===a.Text||this.state===a.InSpecialTag&&this.sequenceIndex===0?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===a.InAttributeValueDq||this.state===a.InAttributeValueSq||this.state===a.InAttributeValueNq)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))},E.prototype.shouldContinue=function(){return this.index0&&o.has(this.stack[this.stack.length-1]);){var i=this.stack.pop();(a=(n=this.cbs).onclosetag)===null||a===void 0||a.call(n,i,!0)}this.isVoidElement(t)||(this.stack.push(t),X_.has(t)?this.foreignContext.push(!0):Q_.has(t)&&this.foreignContext.push(!1)),(r=(s=this.cbs).onopentagname)===null||r===void 0||r.call(s,t),this.cbs.onopentag&&(this.attribs={})},e.prototype.endOpenTag=function(t){var n,a;this.startIndex=this.openTagStart,this.attribs&&((a=(n=this.cbs).onopentag)===null||a===void 0||a.call(n,this.tagname,this.attribs,t),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""},e.prototype.onopentagend=function(t){this.endIndex=t,this.endOpenTag(!1),this.startIndex=t+1},e.prototype.onclosetag=function(t,n){var a,s,r,o,i,u;this.endIndex=n;var l=this.getSlice(t,n);if(this.lowerCaseTagNames&&(l=l.toLowerCase()),(X_.has(l)||Q_.has(l))&&this.foreignContext.pop(),this.isVoidElement(l))!this.options.xmlMode&&l==="br"&&((s=(a=this.cbs).onopentagname)===null||s===void 0||s.call(a,"br"),(o=(r=this.cbs).onopentag)===null||o===void 0||o.call(r,"br",{},!0),(u=(i=this.cbs).onclosetag)===null||u===void 0||u.call(i,"br",!1));else{var c=this.stack.lastIndexOf(l);if(c!==-1)if(this.cbs.onclosetag)for(var f=this.stack.length-c;f--;)this.cbs.onclosetag(this.stack.pop(),f!==0);else this.stack.length=c;else!this.options.xmlMode&&l==="p"&&(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=n+1},e.prototype.onselfclosingtag=function(t){this.endIndex=t,this.options.xmlMode||this.options.recognizeSelfClosing||this.foreignContext[this.foreignContext.length-1]?(this.closeCurrentTag(!1),this.startIndex=t+1):this.onopentagend(t)},e.prototype.closeCurrentTag=function(t){var n,a,s=this.tagname;this.endOpenTag(t),this.stack[this.stack.length-1]===s&&((a=(n=this.cbs).onclosetag)===null||a===void 0||a.call(n,s,!t),this.stack.pop())},e.prototype.onattribname=function(t,n){this.startIndex=t;var a=this.getSlice(t,n);this.attribname=this.lowerCaseAttributeNames?a.toLowerCase():a},e.prototype.onattribdata=function(t,n){this.attribvalue+=this.getSlice(t,n)},e.prototype.onattribentity=function(t){this.attribvalue+=(0,j_.fromCodePoint)(t)},e.prototype.onattribend=function(t,n){var a,s;this.endIndex=n,(s=(a=this.cbs).onattribute)===null||s===void 0||s.call(a,this.attribname,this.attribvalue,t===mi.QuoteType.Double?'"':t===mi.QuoteType.Single?"'":t===mi.QuoteType.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""},e.prototype.getInstructionName=function(t){var n=t.search(Mke),a=n<0?t:t.substr(0,n);return this.lowerCaseTagNames&&(a=a.toLowerCase()),a},e.prototype.ondeclaration=function(t,n){this.endIndex=n;var a=this.getSlice(t,n);if(this.cbs.onprocessinginstruction){var s=this.getInstructionName(a);this.cbs.onprocessinginstruction("!".concat(s),"!".concat(a))}this.startIndex=n+1},e.prototype.onprocessinginstruction=function(t,n){this.endIndex=n;var a=this.getSlice(t,n);if(this.cbs.onprocessinginstruction){var s=this.getInstructionName(a);this.cbs.onprocessinginstruction("?".concat(s),"?".concat(a))}this.startIndex=n+1},e.prototype.oncomment=function(t,n,a){var s,r,o,i;this.endIndex=n,(r=(s=this.cbs).oncomment)===null||r===void 0||r.call(s,this.getSlice(t,n-a)),(i=(o=this.cbs).oncommentend)===null||i===void 0||i.call(o),this.startIndex=n+1},e.prototype.oncdata=function(t,n,a){var s,r,o,i,u,l,c,f,E,p;this.endIndex=n;var T=this.getSlice(t,n-a);this.options.xmlMode||this.options.recognizeCDATA?((r=(s=this.cbs).oncdatastart)===null||r===void 0||r.call(s),(i=(o=this.cbs).ontext)===null||i===void 0||i.call(o,T),(l=(u=this.cbs).oncdataend)===null||l===void 0||l.call(u)):((f=(c=this.cbs).oncomment)===null||f===void 0||f.call(c,"[CDATA[".concat(T,"]]")),(p=(E=this.cbs).oncommentend)===null||p===void 0||p.call(E)),this.startIndex=n+1},e.prototype.onend=function(){var t,n;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(var a=this.stack.length;a>0;this.cbs.onclosetag(this.stack[--a],!0));}(n=(t=this.cbs).onend)===null||n===void 0||n.call(t)},e.prototype.reset=function(){var t,n,a,s;(n=(t=this.cbs).onreset)===null||n===void 0||n.call(t),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,(s=(a=this.cbs).onparserinit)===null||s===void 0||s.call(a,this),this.buffers.length=0,this.bufferOffset=0,this.writeIndex=0,this.ended=!1},e.prototype.parseComplete=function(t){this.reset(),this.end(t)},e.prototype.getSlice=function(t,n){for(;t-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();for(var a=this.buffers[0].slice(t-this.bufferOffset,n-this.bufferOffset);n-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),a+=this.buffers[0].slice(0,n-this.bufferOffset);return a},e.prototype.shiftBuffer=function(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()},e.prototype.write=function(t){var n,a;if(this.ended){(a=(n=this.cbs).onerror)===null||a===void 0||a.call(n,new Error(".write() after done!"));return}this.buffers.push(t),this.tokenizer.running&&(this.tokenizer.write(t),this.writeIndex++)},e.prototype.end=function(t){var n,a;if(this.ended){(a=(n=this.cbs).onerror)===null||a===void 0||a.call(n,new Error(".end() after done!"));return}t&&this.write(t),this.ended=!0,this.tokenizer.end()},e.prototype.pause=function(){this.tokenizer.pause()},e.prototype.resume=function(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndex0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"childNodes",{get:function(){return this.children},set:function(n){this.children=n},enumerable:!1,configurable:!0}),t}(Sf);st.NodeWithChildren=Ul;var uS=function(e){is(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=_n.ElementType.CDATA,n}return Object.defineProperty(t.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),t}(Ul);st.CDATA=uS;var lS=function(e){is(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=_n.ElementType.Root,n}return Object.defineProperty(t.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),t}(Ul);st.Document=lS;var cS=function(e){is(t,e);function t(n,a,s,r){s===void 0&&(s=[]),r===void 0&&(r=n==="script"?_n.ElementType.Script:n==="style"?_n.ElementType.Style:_n.ElementType.Tag);var o=e.call(this,s)||this;return o.name=n,o.attribs=a,o.type=r,o}return Object.defineProperty(t.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"tagName",{get:function(){return this.name},set:function(n){this.name=n},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"attributes",{get:function(){var n=this;return Object.keys(this.attribs).map(function(a){var s,r;return{name:a,value:n.attribs[a],namespace:(s=n["x-attribsNamespace"])===null||s===void 0?void 0:s[a],prefix:(r=n["x-attribsPrefix"])===null||r===void 0?void 0:r[a]}})},enumerable:!1,configurable:!0}),t}(Ul);st.Element=cS;function dS(e){return(0,_n.isTag)(e)}st.isTag=dS;function ES(e){return e.type===_n.ElementType.CDATA}st.isCDATA=ES;function fS(e){return e.type===_n.ElementType.Text}st.isText=fS;function pS(e){return e.type===_n.ElementType.Comment}st.isComment=pS;function mS(e){return e.type===_n.ElementType.Directive}st.isDirective=mS;function _S(e){return e.type===_n.ElementType.Root}st.isDocument=_S;function Wke(e){return Object.prototype.hasOwnProperty.call(e,"children")}st.hasChildren=Wke;function Of(e,t){t===void 0&&(t=!1);var n;if(fS(e))n=new rS(e.data);else if(pS(e))n=new oS(e.data);else if(dS(e)){var a=t?vc(e.children):[],s=new cS(e.name,ao({},e.attribs),a);a.forEach(function(u){return u.parent=s}),e.namespace!=null&&(s.namespace=e.namespace),e["x-attribsNamespace"]&&(s["x-attribsNamespace"]=ao({},e["x-attribsNamespace"])),e["x-attribsPrefix"]&&(s["x-attribsPrefix"]=ao({},e["x-attribsPrefix"])),n=s}else if(ES(e)){var a=t?vc(e.children):[],r=new uS(a);a.forEach(function(l){return l.parent=r}),n=r}else if(_S(e)){var a=t?vc(e.children):[],o=new lS(a);a.forEach(function(l){return l.parent=o}),e["x-mode"]&&(o["x-mode"]=e["x-mode"]),n=o}else if(mS(e)){var i=new iS(e.name,e.data);e["x-name"]!=null&&(i["x-name"]=e["x-name"],i["x-publicId"]=e["x-publicId"],i["x-systemId"]=e["x-systemId"]),n=i}else throw new Error("Not implemented yet: ".concat(e.type));return n.startIndex=e.startIndex,n.endIndex=e.endIndex,e.sourceCodeLocation!=null&&(n.sourceCodeLocation=e.sourceCodeLocation),n}st.cloneNode=Of;function vc(e){for(var t=e.map(function(a){return Of(a,!0)}),n=1;n$\x80-\uFFFF]/g;var t=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]);e.getCodePoint=String.prototype.codePointAt!=null?function(s,r){return s.codePointAt(r)}:function(s,r){return(s.charCodeAt(r)&64512)===55296?(s.charCodeAt(r)-55296)*1024+s.charCodeAt(r+1)-56320+65536:s.charCodeAt(r)};function n(s){for(var r="",o=0,i;(i=e.xmlReplacer.exec(s))!==null;){var u=i.index,l=s.charCodeAt(u),c=t.get(l);c!==void 0?(r+=s.substring(o,u)+c,o=u+1):(r+="".concat(s.substring(o,u),"&#x").concat((0,e.getCodePoint)(s,u).toString(16),";"),o=e.xmlReplacer.lastIndex+=+((l&64512)===55296))}return r+s.substr(o)}e.encodeXML=n,e.escape=n;function a(s,r){return function(i){for(var u,l=0,c="";u=s.exec(i);)l!==u.index&&(c+=i.substring(l,u.index)),c+=r.get(u[0].charCodeAt(0)),l=u.index+1;return c+i.substring(l)}}e.escapeUTF8=a(/[&<>'"]/g,t),e.escapeAttribute=a(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),e.escapeText=a(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]))})(Vu);var zke=Ge&&Ge.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Cs,"__esModule",{value:!0});Cs.encodeNonAsciiHTML=Cs.encodeHTML=void 0;var xke=zke(gf),hS=Vu,Bke=/[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;function Gke(e){return AS(Bke,e)}Cs.encodeHTML=Gke;function Hke(e){return AS(hS.xmlReplacer,e)}Cs.encodeNonAsciiHTML=Hke;function AS(e,t){for(var n="",a=0,s;(s=e.exec(t))!==null;){var r=s.index;n+=t.substring(a,r);var o=t.charCodeAt(r),i=xke.default.get(o);if(typeof i=="object"){if(r+10&&(a+=Ml(e.children,t)),(t.xmlMode||!Z_.has(e.name))&&(a+=""))),a}function twe(e){return"<".concat(e.data,">")}function nwe(e,t){var n,a=e.data||"";return((n=t.encodeEntities)!==null&&n!==void 0?n:t.decodeEntities)!==!1&&!(!t.xmlMode&&e.parent&&qke.has(e.parent.name))&&(a=t.xmlMode||t.encodeEntities!=="utf8"?(0,ju.encodeXML)(a):(0,ju.escapeText)(a)),a}function awe(e){return"")}function swe(e){return"")}var rwe=Ge&&Ge.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Rn,"__esModule",{value:!0});Rn.innerText=Rn.textContent=Rn.getText=Rn.getInnerHTML=Rn.getOuterHTML=void 0;var ia=Na,owe=rwe(Vo),iwe=Nr;function OS(e,t){return(0,owe.default)(e,t)}Rn.getOuterHTML=OS;function uwe(e,t){return(0,ia.hasChildren)(e)?e.children.map(function(n){return OS(n,t)}).join(""):""}Rn.getInnerHTML=uwe;function Vi(e){return Array.isArray(e)?e.map(Vi).join(""):(0,ia.isTag)(e)?e.name==="br"?` -`:Vi(e.children):(0,ia.isCDATA)(e)?Vi(e.children):(0,ia.isText)(e)?e.data:""}Rn.getText=Vi;function Gd(e){return Array.isArray(e)?e.map(Gd).join(""):(0,ia.hasChildren)(e)&&!(0,ia.isComment)(e)?Gd(e.children):(0,ia.isText)(e)?e.data:""}Rn.textContent=Gd;function Hd(e){return Array.isArray(e)?e.map(Hd).join(""):(0,ia.hasChildren)(e)&&(e.type===iwe.ElementType.Tag||(0,ia.isCDATA)(e))?Hd(e.children):(0,ia.isText)(e)?e.data:""}Rn.innerText=Hd;var zt={};Object.defineProperty(zt,"__esModule",{value:!0});zt.prevElementSibling=zt.nextElementSibling=zt.getName=zt.hasAttrib=zt.getAttributeValue=zt.getSiblings=zt.getParent=zt.getChildren=void 0;var If=Na;function gS(e){return(0,If.hasChildren)(e)?e.children:[]}zt.getChildren=gS;function IS(e){return e.parent||null}zt.getParent=IS;function lwe(e){var t,n,a=IS(e);if(a!=null)return gS(a);for(var s=[e],r=e.prev,o=e.next;r!=null;)s.unshift(r),t=r,r=t.prev;for(;o!=null;)s.push(o),n=o,o=n.next;return s}zt.getSiblings=lwe;function cwe(e,t){var n;return(n=e.attribs)===null||n===void 0?void 0:n[t]}zt.getAttributeValue=cwe;function dwe(e,t){return e.attribs!=null&&Object.prototype.hasOwnProperty.call(e.attribs,t)&&e.attribs[t]!=null}zt.hasAttrib=dwe;function Ewe(e){return e.name}zt.getName=Ewe;function fwe(e){for(var t,n=e.next;n!==null&&!(0,If.isTag)(n);)t=n,n=t.next;return n}zt.nextElementSibling=fwe;function pwe(e){for(var t,n=e.prev;n!==null&&!(0,If.isTag)(n);)t=n,n=t.prev;return n}zt.prevElementSibling=pwe;var En={};Object.defineProperty(En,"__esModule",{value:!0});En.prepend=En.prependChild=En.append=En.appendChild=En.replaceElement=En.removeElement=void 0;function jo(e){if(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e.parent){var t=e.parent.children,n=t.lastIndexOf(e);n>=0&&t.splice(n,1)}e.next=null,e.prev=null,e.parent=null}En.removeElement=jo;function mwe(e,t){var n=t.prev=e.prev;n&&(n.next=t);var a=t.next=e.next;a&&(a.prev=t);var s=t.parent=e.parent;if(s){var r=s.children;r[r.lastIndexOf(e)]=t,e.parent=null}}En.replaceElement=mwe;function _we(e,t){if(jo(t),t.next=null,t.parent=e,e.children.push(t)>1){var n=e.children[e.children.length-2];n.next=t,t.prev=n}else t.prev=null}En.appendChild=_we;function Twe(e,t){jo(t);var n=e.parent,a=e.next;if(t.next=a,t.prev=e,e.next=t,t.parent=n,a){if(a.prev=t,n){var s=n.children;s.splice(s.lastIndexOf(a),0,t)}}else n&&n.children.push(t)}En.append=Twe;function hwe(e,t){if(jo(t),t.parent=e,t.prev=null,e.children.unshift(t)!==1){var n=e.children[1];n.prev=t,t.next=n}else t.next=null}En.prependChild=hwe;function Awe(e,t){jo(t);var n=e.parent;if(n){var a=n.children;a.splice(a.indexOf(e),0,t)}e.prev&&(e.prev.next=t),t.parent=n,t.prev=e.prev,t.next=e,e.prev=t}En.prepend=Awe;var an={};Object.defineProperty(an,"__esModule",{value:!0});an.findAll=an.existsOne=an.findOne=an.findOneChild=an.find=an.filter=void 0;var Fl=Na;function Swe(e,t,n,a){return n===void 0&&(n=!0),a===void 0&&(a=1/0),RS(e,Array.isArray(t)?t:[t],n,a)}an.filter=Swe;function RS(e,t,n,a){for(var s=[],r=[t],o=[0];;){if(o[0]>=r[0].length){if(o.length===1)return s;r.shift(),o.shift();continue}var i=r[0][o[0]++];if(e(i)&&(s.push(i),--a<=0))return s;n&&(0,Fl.hasChildren)(i)&&i.children.length>0&&(o.unshift(0),r.unshift(i.children))}}an.find=RS;function Owe(e,t){return t.find(e)}an.findOneChild=Owe;function NS(e,t,n){n===void 0&&(n=!0);for(var a=null,s=0;s0&&(a=NS(e,r.children,!0));else continue}return a}an.findOne=NS;function vS(e,t){return t.some(function(n){return(0,Fl.isTag)(n)&&(e(n)||vS(e,n.children))})}an.existsOne=vS;function gwe(e,t){for(var n=[],a=[t],s=[0];;){if(s[0]>=a[0].length){if(a.length===1)return n;a.shift(),s.shift();continue}var r=a[0][s[0]++];(0,Fl.isTag)(r)&&(e(r)&&n.push(r),r.children.length>0&&(s.unshift(0),a.unshift(r.children)))}}an.findAll=gwe;var Nn={};Object.defineProperty(Nn,"__esModule",{value:!0});Nn.getElementsByTagType=Nn.getElementsByTagName=Nn.getElementById=Nn.getElements=Nn.testElement=void 0;var As=Na,Wl=an,Ku={tag_name:function(e){return typeof e=="function"?function(t){return(0,As.isTag)(t)&&e(t.name)}:e==="*"?As.isTag:function(t){return(0,As.isTag)(t)&&t.name===e}},tag_type:function(e){return typeof e=="function"?function(t){return e(t.type)}:function(t){return t.type===e}},tag_contains:function(e){return typeof e=="function"?function(t){return(0,As.isText)(t)&&e(t.data)}:function(t){return(0,As.isText)(t)&&t.data===e}}};function bS(e,t){return typeof t=="function"?function(n){return(0,As.isTag)(n)&&t(n.attribs[e])}:function(n){return(0,As.isTag)(n)&&n.attribs[e]===t}}function Iwe(e,t){return function(n){return e(n)||t(n)}}function CS(e){var t=Object.keys(e).map(function(n){var a=e[n];return Object.prototype.hasOwnProperty.call(Ku,n)?Ku[n](a):bS(n,a)});return t.length===0?null:t.reduce(Iwe)}function Rwe(e,t){var n=CS(e);return n?n(t):!0}Nn.testElement=Rwe;function Nwe(e,t,n,a){a===void 0&&(a=1/0);var s=CS(e);return s?(0,Wl.filter)(s,t,n,a):[]}Nn.getElements=Nwe;function vwe(e,t,n){return n===void 0&&(n=!0),Array.isArray(t)||(t=[t]),(0,Wl.findOne)(bS("id",e),t,n)}Nn.getElementById=vwe;function bwe(e,t,n,a){return n===void 0&&(n=!0),a===void 0&&(a=1/0),(0,Wl.filter)(Ku.tag_name(e),t,n,a)}Nn.getElementsByTagName=bwe;function Cwe(e,t,n,a){return n===void 0&&(n=!0),a===void 0&&(a=1/0),(0,Wl.filter)(Ku.tag_type(e),t,n,a)}Nn.getElementsByTagType=Cwe;var DS={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.uniqueSort=e.compareDocumentPosition=e.DocumentPosition=e.removeSubsets=void 0;var t=Na;function n(o){for(var i=o.length;--i>=0;){var u=o[i];if(i>0&&o.lastIndexOf(u,i-1)>=0){o.splice(i,1);continue}for(var l=u.parent;l;l=l.parent)if(o.includes(l)){o.splice(i,1);break}}return o}e.removeSubsets=n;var a;(function(o){o[o.DISCONNECTED=1]="DISCONNECTED",o[o.PRECEDING=2]="PRECEDING",o[o.FOLLOWING=4]="FOLLOWING",o[o.CONTAINS=8]="CONTAINS",o[o.CONTAINED_BY=16]="CONTAINED_BY"})(a=e.DocumentPosition||(e.DocumentPosition={}));function s(o,i){var u=[],l=[];if(o===i)return 0;for(var c=(0,t.hasChildren)(o)?o:o.parent;c;)u.unshift(c),c=c.parent;for(c=(0,t.hasChildren)(i)?i:i.parent;c;)l.unshift(c),c=c.parent;for(var f=Math.min(u.length,l.length),E=0;ET.indexOf(N)?p===i?a.FOLLOWING|a.CONTAINED_BY:a.FOLLOWING:p===o?a.PRECEDING|a.CONTAINS:a.PRECEDING}e.compareDocumentPosition=s;function r(o){return o=o.filter(function(i,u,l){return!l.includes(i,u+1)}),o.sort(function(i,u){var l=s(i,u);return l&a.PRECEDING?-1:l&a.FOLLOWING?1:0}),o}e.uniqueSort=r})(DS);var zl={};Object.defineProperty(zl,"__esModule",{value:!0});zl.getFeed=void 0;var Dwe=Rn,Ko=Nn;function Pwe(e){var t=qu(wwe,e);return t?t.name==="feed"?ywe(t):Lwe(t):null}zl.getFeed=Pwe;function ywe(e){var t,n=e.children,a={type:"atom",items:(0,Ko.getElementsByTagName)("entry",n).map(function(o){var i,u=o.children,l={media:PS(u)};dn(l,"id","id",u),dn(l,"title","title",u);var c=(i=qu("link",u))===null||i===void 0?void 0:i.attribs.href;c&&(l.link=c);var f=Ya("summary",u)||Ya("content",u);f&&(l.description=f);var E=Ya("updated",u);return E&&(l.pubDate=new Date(E)),l})};dn(a,"id","id",n),dn(a,"title","title",n);var s=(t=qu("link",n))===null||t===void 0?void 0:t.attribs.href;s&&(a.link=s),dn(a,"description","subtitle",n);var r=Ya("updated",n);return r&&(a.updated=new Date(r)),dn(a,"author","email",n,!0),a}function Lwe(e){var t,n,a=(n=(t=qu("channel",e.children))===null||t===void 0?void 0:t.children)!==null&&n!==void 0?n:[],s={type:e.name.substr(0,3),id:"",items:(0,Ko.getElementsByTagName)("item",e.children).map(function(o){var i=o.children,u={media:PS(i)};dn(u,"id","guid",i),dn(u,"title","title",i),dn(u,"link","link",i),dn(u,"description","description",i);var l=Ya("pubDate",i)||Ya("dc:date",i);return l&&(u.pubDate=new Date(l)),u})};dn(s,"title","title",a),dn(s,"link","link",a),dn(s,"description","description",a);var r=Ya("lastBuildDate",a);return r&&(s.updated=new Date(r)),dn(s,"author","managingEditor",a,!0),s}var $we=["url","type","lang"],kwe=["fileSize","bitrate","framerate","samplingrate","channels","duration","height","width"];function PS(e){return(0,Ko.getElementsByTagName)("media:content",e).map(function(t){for(var n=t.attribs,a={medium:n.medium,isDefault:!!n.isDefault},s=0,r=$we;s{if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")},Rf={};Object.defineProperty(Rf,"__esModule",{value:!0});/*! + c-17.796,4.581-28.535,22.711-23.964,40.535C290.439,120.476,308.599,131.205,326.395,126.625z`})])],-1),_ke=[pke,mke];function Tke(e,t,n,a,s,r){return h(),I("svg",fke,_ke)}const hke=ie(Eke,[["render",Tke]]),Ske={name:"Walking"},Ake={version:"1.1",id:"Capa_1",x:"0px",y:"0px",viewBox:"0 0 494.49 494.49",style:{"enable-background":"new 0 0 494.49 494.49"},"xml:space":"preserve",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},Oke=Cn('silhouette of a walking person',3),gke=[Oke];function Ike(e,t,n,a,s,r){return h(),I("svg",Ake,gke)}const Rke=ie(Ske,[["render",Ike]]),Nke=["title"],vke=te({__name:"index",props:{sportLabel:{},color:{},title:{default:""}},setup(e){const t=e,{color:n,sportLabel:a,title:s}=me(t),r=Rt("sportColors");return(o,i)=>(h(),I("div",{class:"sport-img",style:ba({fill:m(n)?m(n):m(r)[m(a)]}),title:m(s)?m(s):o.$t(`sports.${m(a)}.LABEL`)},[m(a)==="Cycling (Sport)"?(h(),Y(C$e,{key:0})):M("",!0),m(a)==="Cycling (Trekking)"?(h(),Y(x$e,{key:1})):M("",!0),m(a)==="Cycling (Transport)"?(h(),Y(U$e,{key:2})):M("",!0),m(a)==="Cycling (Virtual)"?(h(),Y(K$e,{key:3})):M("",!0),m(a)==="Hiking"?(h(),Y(e6e,{key:4})):M("",!0),m(a)==="Mountain Biking"?(h(),Y(i6e,{key:5})):M("",!0),m(a)==="Mountain Biking (Electric)"?(h(),Y(f6e,{key:6})):M("",!0),m(a)==="Mountaineering"?(h(),Y(S6e,{key:7})):M("",!0),m(a)==="Paragliding"?(h(),Y(y6e,{key:8})):M("",!0),m(a)==="Open Water Swimming"?(h(),Y(N6e,{key:9})):M("",!0),m(a)==="Rowing"?(h(),Y(F6e,{key:10})):M("",!0),m(a)==="Running"?(h(),Y(V6e,{key:11})):M("",!0),m(a)==="Skiing (Alpine)"?(h(),Y(Z6e,{key:12})):M("",!0),m(a)==="Skiing (Cross Country)"?(h(),Y(rke,{key:13})):M("",!0),m(a)==="Snowshoes"?(h(),Y(dke,{key:14})):M("",!0),m(a)==="Trail"?(h(),Y(hke,{key:15})):M("",!0),m(a)==="Walking"?(h(),Y(Rke,{key:16})):M("",!0)],12,Nke))}}),bke={},Cke={class:"loader"};function Dke(e,t){return h(),I("div",Cke)}const Pke=ie(bke,[["render",Dke],["__scopeId","data-v-8b613881"]]),yke=e=>(rt("data-v-686c06c7"),e=e(),ot(),e),Lke={class:"custom-modal"},$ke={key:0,class:"modal-message"},kke={key:1,class:"modal-message"},Uke={key:2,class:"info-box"},wke=yke(()=>d("i",{class:"fa fa-exclamation-triangle","aria-hidden":"true"},null,-1)),Mke={class:"modal-buttons"},Fke=te({__name:"Modal",props:{title:{},message:{},strongMessage:{default:()=>""},warning:{default:()=>""}},emits:["cancelAction","confirmAction"],setup(e,{emit:t}){const n=e,a=t,s=ke(),{title:r,message:o,strongMessage:i}=me(n),u=w(()=>s.getters[K.GETTERS.ERROR_MESSAGES]);let l=null,c=null,f=null;function E(p){var T;(p.key==="Tab"||p.keyCode===9)&&(p.preventDefault(),((T=document.activeElement)==null?void 0:T.id)==="cancel-button"?l==null||l.focus():c==null||c.focus())}return St(()=>{f=document.activeElement,c=document.getElementById("cancel-button"),l=document.getElementById("confirm-button"),c&&c.focus(),document.addEventListener("keydown",E)}),pt(()=>{s.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),document.removeEventListener("keydown",E),f==null||f.focus()}),(p,T)=>{const O=oe("i18n-t"),R=oe("ErrorMessage"),g=oe("Card");return h(),I("div",{id:"modal",role:"dialog",onClick:T[2]||(T[2]=be(N=>a("cancelAction"),["self"]))},[d("div",Lke,[F(g,null,{title:le(()=>[V(_(m(r)),1)]),content:le(()=>[m(i)?(h(),I("div",$ke,[F(O,{keypath:m(o)},{default:le(()=>[d("span",null,_(m(i)),1)]),_:1},8,["keypath"])])):(h(),I("div",kke,_(m(o)),1)),p.warning?(h(),I("div",Uke,[wke,V(" "+_(p.warning),1)])):M("",!0),u.value?(h(),Y(R,{key:3,message:u.value},null,8,["message"])):M("",!0),d("div",Mke,[u.value?M("",!0):(h(),I("button",{key:0,class:Te(["confirm",{danger:p.warning}]),id:"confirm-button",onClick:T[0]||(T[0]=N=>a("confirmAction"))},_(p.$t("buttons.YES")),3)),d("button",{tabindex:"0",id:"cancel-button",class:"cancel",onClick:T[1]||(T[1]=N=>a("cancelAction"))},_(p.$t(`buttons.${u.value?"CANCEL":"NO"}`)),1)])]),_:1})])])}}}),Wke=ie(Fke,[["__scopeId","data-v-686c06c7"]]),zke=[{target:nLe,name:"AlertMessage"},{target:zS,name:"Card"},{target:ELe,name:"CustomTextArea"},{target:_Le,name:"Distance"},{target:v4e,name:"Dropdown"},{target:L4e,name:"ErrorMessage"},{target:Pke,name:"Loader"},{target:Wke,name:"Modal"},{target:vke,name:"SportImage"},{target:O$e,name:"EquipmentTypeImage"}],xke={mounted:(e,t)=>{e.clickOutsideEvent=function(n){e===n.target||e.contains(n.target)||t.value(n)},document.body.addEventListener("click",e.clickOutsideEvent),document.body.addEventListener("touchstart",e.clickOutsideEvent)},unmounted:function(e){e.clickOutsideEvent&&(document.body.removeEventListener("click",e.clickOutsideEvent),document.body.removeEventListener("touchstart",e.clickOutsideEvent),e.clickOutsideEvent=void 0)}};var Bke={"":["",""],_:["",""],"*":["",""],"~":["",""],"\n":["
    "]," ":["
    "],"-":["
    "]};function U_(e){return e.replace(RegExp("^"+(e.match(/^(\t| )+/)||"")[0],"gm"),"")}function xr(e){return(e+"").replace(/"/g,""").replace(//g,">")}function Ds(e,t){var n,a,s,r,o,i=/((?:^|\n+)(?:\n---+|\* \*(?: \*)+)\n)|(?:^``` *(\w*)\n([\s\S]*?)\n```$)|((?:(?:^|\n+)(?:\t| {2,}).+)+\n*)|((?:(?:^|\n)([>*+-]|\d+\.)\s+.*)+)|(?:!\[([^\]]*?)\]\(([^)]+?)\))|(\[)|(\](?:\(([^)]+?)\))?)|(?:(?:^|\n+)([^\s].*)\n(-{3,}|={3,})(?:\n+|$))|(?:(?:^|\n+)(#{1,6})\s*(.+)(?:\n+|$))|(?:`([^`].*?)`)|( \n\n*|\n{2,}|__|\*\*|[_*]|~~)/gm,u=[],l="",c=t||{},f=0;function E(T){var O=Bke[T[1]||""],R=u[u.length-1]==T;return O?O[1]?(R?u.pop():u.push(T),O[0|R]):O[0]:T}function p(){for(var T="";u.length;)T+=E(u[u.length-1]);return T}for(e=e.replace(/^\[(.+?)\]:\s*(.+)$/gm,function(T,O,R){return c[O.toLowerCase()]=R,""}).replace(/^\n+|\n+$/g,"");s=i.exec(e);)a=e.substring(f,s.index),f=i.lastIndex,n=s[0],a.match(/[^\\](\\\\)*\\$/)||((o=s[3]||s[4])?n='
    ":(o=s[6])?(o.match(/\./)&&(s[5]=s[5].replace(/^\d+/gm,"")),r=Ds(U_(s[5].replace(/^\s*[>*+.-]/gm,""))),o==">"?o="blockquote":(o=o.match(/\./)?"ol":"ul",r=r.replace(/^(.*)(\n|$)/gm,"
  • $1
  • ")),n="<"+o+">"+r+""):s[8]?n=''+xr(s[7])+'':s[10]?(l=l.replace("",''),n=p()+""):s[9]?n="":s[12]||s[14]?n="<"+(o="h"+(s[14]?s[14].length:s[13]>"="?1:2))+">"+Ds(s[12]||s[15],c)+"":s[16]?n=""+xr(s[16])+"":(s[17]||s[1])&&(n=E(s[17]||"--"))),l+=a,l+=n;return(l+e.substring(f)+p()).replace(/^\n+|\n+$/g,"")}const Gke=["bytes","KB","MB","GB","TB"],ZS=e=>{if(!e)return{size:"0",suffix:"bytes"};const t=Math.floor(Math.log(e)/Math.log(1024)),n=(e/Math.pow(1024,t)).toFixed(1),a=Gke[t];return{size:n,suffix:a}},_u=e=>{if(!e)return"0 bytes";const t=ZS(e);return`${t.size}${t.suffix}`},Hke=e=>{const t=e/1048576;return!e&&0||+t.toFixed(2)},Vke="aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4vianca6w0s2x0a2z0ure5ba0by2idu3namex3narepublic11d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2ntley5rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0cast4mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dabur3d1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3nlop4pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2o0dyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0ardian6cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6logistics9properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3ncaster6d0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2psy3ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rckmsd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2tura4vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9dnavy5lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0america6xi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0stone5umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0a1b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp2w2ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2olterskluwer11odside6rk0s2ld3w2s1tc1f3xbox3erox4finity6ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2",jke="ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2",mr=(e,t)=>{for(const n in t)e[n]=t[n];return e},kd="numeric",Ud="ascii",wd="alpha",Vi="asciinumeric",pi="alphanumeric",Md="domain",JS="emoji",Kke="scheme",qke="slashscheme",w_="whitespace";function Yke(e,t){return e in t||(t[e]=[]),t[e]}function gs(e,t,n){t[kd]&&(t[Vi]=!0,t[pi]=!0),t[Ud]&&(t[Vi]=!0,t[wd]=!0),t[Vi]&&(t[pi]=!0),t[wd]&&(t[pi]=!0),t[pi]&&(t[Md]=!0),t[JS]&&(t[Md]=!0);for(const a in t){const s=Yke(a,n);s.indexOf(e)<0&&s.push(e)}}function Xke(e,t){const n={};for(const a in t)t[a].indexOf(e)>=0&&(n[a]=!0);return n}function In(e){e===void 0&&(e=null),this.j={},this.jr=[],this.jd=null,this.t=e}In.groups={};In.prototype={accepts(){return!!this.t},go(e){const t=this,n=t.j[e];if(n)return n;for(let a=0;ae.ta(t,n,a,s),Pn=(e,t,n,a,s)=>e.tr(t,n,a,s),M_=(e,t,n,a,s)=>e.ts(t,n,a,s),Se=(e,t,n,a,s)=>e.tt(t,n,a,s),Ta="WORD",Fd="UWORD",go="LOCALHOST",Wd="TLD",zd="UTLD",ji="SCHEME",Qs="SLASH_SCHEME",df="NUM",eA="WS",Ef="NL",ao="OPENBRACE",so="CLOSEBRACE",Tu="OPENBRACKET",hu="CLOSEBRACKET",Su="OPENPAREN",Au="CLOSEPAREN",Ou="OPENANGLEBRACKET",gu="CLOSEANGLEBRACKET",Iu="FULLWIDTHLEFTPAREN",Ru="FULLWIDTHRIGHTPAREN",Nu="LEFTCORNERBRACKET",vu="RIGHTCORNERBRACKET",bu="LEFTWHITECORNERBRACKET",Cu="RIGHTWHITECORNERBRACKET",Du="FULLWIDTHLESSTHAN",Pu="FULLWIDTHGREATERTHAN",yu="AMPERSAND",Lu="APOSTROPHE",$u="ASTERISK",Ha="AT",ku="BACKSLASH",Uu="BACKTICK",wu="CARET",qa="COLON",ff="COMMA",Mu="DOLLAR",ta="DOT",Fu="EQUALS",pf="EXCLAMATION",na="HYPHEN",Wu="PERCENT",zu="PIPE",xu="PLUS",Bu="POUND",Gu="QUERY",mf="QUOTE",_f="SEMI",aa="SLASH",ro="TILDE",Hu="UNDERSCORE",tA="EMOJI",Vu="SYM";var nA=Object.freeze({__proto__:null,WORD:Ta,UWORD:Fd,LOCALHOST:go,TLD:Wd,UTLD:zd,SCHEME:ji,SLASH_SCHEME:Qs,NUM:df,WS:eA,NL:Ef,OPENBRACE:ao,CLOSEBRACE:so,OPENBRACKET:Tu,CLOSEBRACKET:hu,OPENPAREN:Su,CLOSEPAREN:Au,OPENANGLEBRACKET:Ou,CLOSEANGLEBRACKET:gu,FULLWIDTHLEFTPAREN:Iu,FULLWIDTHRIGHTPAREN:Ru,LEFTCORNERBRACKET:Nu,RIGHTCORNERBRACKET:vu,LEFTWHITECORNERBRACKET:bu,RIGHTWHITECORNERBRACKET:Cu,FULLWIDTHLESSTHAN:Du,FULLWIDTHGREATERTHAN:Pu,AMPERSAND:yu,APOSTROPHE:Lu,ASTERISK:$u,AT:Ha,BACKSLASH:ku,BACKTICK:Uu,CARET:wu,COLON:qa,COMMA:ff,DOLLAR:Mu,DOT:ta,EQUALS:Fu,EXCLAMATION:pf,HYPHEN:na,PERCENT:Wu,PIPE:zu,PLUS:xu,POUND:Bu,QUERY:Gu,QUOTE:mf,SEMI:_f,SLASH:aa,TILDE:ro,UNDERSCORE:Hu,EMOJI:tA,SYM:Vu});const Hs=/[a-z]/,Ic=new RegExp("\\p{L}","u"),Rc=new RegExp("\\p{Emoji}","u"),Nc=/\d/,F_=/\s/,W_=` +`,Qke="️",Zke="‍";let mi=null,_i=null;function Jke(e){e===void 0&&(e=[]);const t={};In.groups=t;const n=new In;mi==null&&(mi=z_(Vke)),_i==null&&(_i=z_(jke)),Se(n,"'",Lu),Se(n,"{",ao),Se(n,"}",so),Se(n,"[",Tu),Se(n,"]",hu),Se(n,"(",Su),Se(n,")",Au),Se(n,"<",Ou),Se(n,">",gu),Se(n,"(",Iu),Se(n,")",Ru),Se(n,"「",Nu),Se(n,"」",vu),Se(n,"『",bu),Se(n,"』",Cu),Se(n,"<",Du),Se(n,">",Pu),Se(n,"&",yu),Se(n,"*",$u),Se(n,"@",Ha),Se(n,"`",Uu),Se(n,"^",wu),Se(n,":",qa),Se(n,",",ff),Se(n,"$",Mu),Se(n,".",ta),Se(n,"=",Fu),Se(n,"!",pf),Se(n,"-",na),Se(n,"%",Wu),Se(n,"|",zu),Se(n,"+",xu),Se(n,"#",Bu),Se(n,"?",Gu),Se(n,'"',mf),Se(n,"/",aa),Se(n,";",_f),Se(n,"~",ro),Se(n,"_",Hu),Se(n,"\\",ku);const a=Pn(n,Nc,df,{[kd]:!0});Pn(a,Nc,a);const s=Pn(n,Hs,Ta,{[Ud]:!0});Pn(s,Hs,s);const r=Pn(n,Ic,Fd,{[wd]:!0});Pn(r,Hs),Pn(r,Ic,r);const o=Pn(n,F_,eA,{[w_]:!0});Se(n,W_,Ef,{[w_]:!0}),Se(o,W_),Pn(o,F_,o);const i=Pn(n,Rc,tA,{[JS]:!0});Pn(i,Rc,i),Se(i,Qke,i);const u=Se(i,Zke);Pn(u,Rc,i);const l=[[Hs,s]],c=[[Hs,null],[Ic,r]];for(let f=0;ff[0]>E[0]?1:-1);for(let f=0;f=0?T[Md]=!0:Hs.test(E)?Nc.test(E)?T[Vi]=!0:T[Ud]=!0:T[kd]=!0,M_(n,E,E,T)}return M_(n,"localhost",go,{ascii:!0}),n.jd=new In(Vu),{start:n,tokens:mr({groups:t},nA)}}function eUe(e,t){const n=tUe(t.replace(/[A-Z]/g,i=>i.toLowerCase())),a=n.length,s=[];let r=0,o=0;for(;o=0&&(f+=n[o].length,E++),l+=n[o].length,r+=n[o].length,o++;r-=f,o-=E,l-=f,s.push({t:c.t,v:t.slice(r-l,r),s:r-l,e:r})}return s}function tUe(e){const t=[],n=e.length;let a=0;for(;a56319||a+1===n||(r=e.charCodeAt(a+1))<56320||r>57343?e[a]:e.slice(a,a+2);t.push(o),a+=o.length}return t}function Wa(e,t,n,a,s){let r;const o=t.length;for(let i=0;i=0;)r++;if(r>0){t.push(n.join(""));for(let o=parseInt(e.substring(a,a+r),10);o>0;o--)n.pop();a+=r}else n.push(e[a]),a++}return t}const Io={defaultProtocol:"http",events:null,format:x_,formatHref:x_,nl2br:!1,tagName:"a",target:null,rel:null,validate:!0,truncate:1/0,className:null,attributes:null,ignoreTags:[],render:null};function Tf(e,t){t===void 0&&(t=null);let n=mr({},Io);e&&(n=mr(n,e instanceof Tf?e.o:e));const a=n.ignoreTags,s=[];for(let r=0;rn?a.substring(0,n)+"…":a},toFormattedHref(e){return e.get("formatHref",this.toHref(e.get("defaultProtocol")),this)},startIndex(){return this.tk[0].s},endIndex(){return this.tk[this.tk.length-1].e},toObject(e){return e===void 0&&(e=Io.defaultProtocol),{type:this.t,value:this.toString(),isLink:this.isLink,href:this.toHref(e),start:this.startIndex(),end:this.endIndex()}},toFormattedObject(e){return{type:this.t,value:this.toFormattedString(e),isLink:this.isLink,href:this.toFormattedHref(e),start:this.startIndex(),end:this.endIndex()}},validate(e){return e.get("validate",this.toString(),this)},render(e){const t=this,n=this.toHref(e.get("defaultProtocol")),a=e.get("formatHref",n,this),s=e.get("tagName",n,t),r=this.toFormattedString(e),o={},i=e.get("className",n,t),u=e.get("target",n,t),l=e.get("rel",n,t),c=e.getObj("attributes",n,t),f=e.getObj("events",n,t);return o.href=a,i&&(o.class=i),u&&(o.target=u),l&&(o.rel=l),c&&mr(o,c),{tagName:s,attributes:o,content:r,eventListeners:f}}};function Ul(e,t){class n extends aA{constructor(s,r){super(s,r),this.t=e}}for(const a in t)n.prototype[a]=t[a];return n.t=e,n}const B_=Ul("email",{isLink:!0,toHref(){return"mailto:"+this.toString()}}),G_=Ul("text"),nUe=Ul("nl"),Ti=Ul("url",{isLink:!0,toHref(e){return e===void 0&&(e=Io.defaultProtocol),this.hasProtocol()?this.v:`${e}://${this.v}`},hasProtocol(){const e=this.tk;return e.length>=2&&e[0].t!==go&&e[1].t===qa}}),yn=e=>new In(e);function aUe(e){let{groups:t}=e;const n=t.domain.concat([yu,$u,Ha,ku,Uu,wu,Mu,Fu,na,df,Wu,zu,xu,Bu,aa,Vu,ro,Hu]),a=[Lu,qa,ff,ta,pf,Gu,mf,_f,Ou,gu,ao,so,hu,Tu,Su,Au,Iu,Ru,Nu,vu,bu,Cu,Du,Pu],s=[yu,Lu,$u,ku,Uu,wu,Mu,Fu,na,ao,so,Wu,zu,xu,Bu,Gu,aa,Vu,ro,Hu],r=yn(),o=Se(r,ro);Ze(o,s,o),Ze(o,t.domain,o);const i=yn(),u=yn(),l=yn();Ze(r,t.domain,i),Ze(r,t.scheme,u),Ze(r,t.slashscheme,l),Ze(i,s,o),Ze(i,t.domain,i);const c=Se(i,Ha);Se(o,Ha,c),Se(u,Ha,c),Se(l,Ha,c);const f=Se(o,ta);Ze(f,s,o),Ze(f,t.domain,o);const E=yn();Ze(c,t.domain,E),Ze(E,t.domain,E);const p=Se(E,ta);Ze(p,t.domain,E);const T=yn(B_);Ze(p,t.tld,T),Ze(p,t.utld,T),Se(c,go,T);const O=Se(E,na);Ze(O,t.domain,E),Ze(T,t.domain,E),Se(T,ta,p),Se(T,na,O);const R=Se(T,qa);Ze(R,t.numeric,B_);const g=Se(i,na),N=Se(i,ta);Ze(g,t.domain,i),Ze(N,s,o),Ze(N,t.domain,i);const S=yn(Ti);Ze(N,t.tld,S),Ze(N,t.utld,S),Ze(S,t.domain,i),Ze(S,s,o),Se(S,ta,N),Se(S,na,g),Se(S,Ha,c);const A=Se(S,qa),v=yn(Ti);Ze(A,t.numeric,v);const D=yn(Ti),y=yn();Ze(D,n,D),Ze(D,a,y),Ze(y,n,D),Ze(y,a,y),Se(S,aa,D),Se(v,aa,D);const b=Se(u,qa),k=Se(l,qa),z=Se(k,aa),L=Se(z,aa);Ze(u,t.domain,i),Se(u,ta,N),Se(u,na,g),Ze(l,t.domain,i),Se(l,ta,N),Se(l,na,g),Ze(b,t.domain,D),Se(b,aa,D),Ze(L,t.domain,D),Ze(L,n,D),Se(L,aa,D);const W=[[ao,so],[Tu,hu],[Su,Au],[Ou,gu],[Iu,Ru],[Nu,vu],[bu,Cu],[Du,Pu]];for(let X=0;X=0&&E++,s++,c++;if(E<0)s-=c,s0&&(r.push(vc(G_,t,o)),o=[]),s-=E,c-=E;const p=f.t,T=n.slice(s-c,s);r.push(vc(p,t,T))}}return o.length>0&&r.push(vc(G_,t,o)),r}function vc(e,t,n){const a=n[0].s,s=n[n.length-1].e,r=t.slice(a,s);return new e(r,n)}const tn={scanner:null,parser:null,tokenQueue:[],pluginQueue:[],customSchemes:[],initialized:!1};function rUe(){tn.scanner=Jke(tn.customSchemes);for(let e=0;e",lt:"<",nbsp:" ",quot:'"'},uUe=/^#[xX]([A-Fa-f0-9]+)$/,lUe=/^#([0-9]+)$/,cUe=/^([A-Za-z0-9]+)$/,dUe=function(){function e(t){this.named=t}return e.prototype.parse=function(t){if(t){var n=t.match(uUe);if(n)return String.fromCharCode(parseInt(n[1],16));if(n=t.match(lUe),n)return String.fromCharCode(parseInt(n[1],10));if(n=t.match(cUe),n)return this.named[n[1]]||"&"+n[1]+";"}},e}(),EUe=/[\t\n\f ]/,fUe=/[A-Za-z]/,pUe=/\r\n?/g;function Xt(e){return EUe.test(e)}function H_(e){return fUe.test(e)}function mUe(e){return e.replace(pUe,` +`)}var _Ue=function(){function e(t,n,a){a===void 0&&(a="precompile"),this.delegate=t,this.entityParser=n,this.mode=a,this.state="beforeData",this.line=-1,this.column=-1,this.input="",this.index=-1,this.tagNameBuffer="",this.states={beforeData:function(){var s=this.peek();if(s==="<"&&!this.isIgnoredEndTag())this.transitionTo("tagOpen"),this.markTagStart(),this.consume();else{if(this.mode==="precompile"&&s===` +`){var r=this.tagNameBuffer.toLowerCase();(r==="pre"||r==="textarea")&&this.consume()}this.transitionTo("data"),this.delegate.beginData()}},data:function(){var s=this.peek(),r=this.tagNameBuffer;s==="<"&&!this.isIgnoredEndTag()?(this.delegate.finishData(),this.transitionTo("tagOpen"),this.markTagStart(),this.consume()):s==="&"&&r!=="script"&&r!=="style"?(this.consume(),this.delegate.appendToData(this.consumeCharRef()||"&")):(this.consume(),this.delegate.appendToData(s))},tagOpen:function(){var s=this.consume();s==="!"?this.transitionTo("markupDeclarationOpen"):s==="/"?this.transitionTo("endTagOpen"):(s==="@"||s===":"||H_(s))&&(this.transitionTo("tagName"),this.tagNameBuffer="",this.delegate.beginStartTag(),this.appendToTagName(s))},markupDeclarationOpen:function(){var s=this.consume();if(s==="-"&&this.peek()==="-")this.consume(),this.transitionTo("commentStart"),this.delegate.beginComment();else{var r=s.toUpperCase()+this.input.substring(this.index,this.index+6).toUpperCase();r==="DOCTYPE"&&(this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.transitionTo("doctype"),this.delegate.beginDoctype&&this.delegate.beginDoctype())}},doctype:function(){var s=this.consume();Xt(s)&&this.transitionTo("beforeDoctypeName")},beforeDoctypeName:function(){var s=this.consume();Xt(s)||(this.transitionTo("doctypeName"),this.delegate.appendToDoctypeName&&this.delegate.appendToDoctypeName(s.toLowerCase()))},doctypeName:function(){var s=this.consume();Xt(s)?this.transitionTo("afterDoctypeName"):s===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypeName&&this.delegate.appendToDoctypeName(s.toLowerCase())},afterDoctypeName:function(){var s=this.consume();if(!Xt(s))if(s===">")this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData");else{var r=s.toUpperCase()+this.input.substring(this.index,this.index+5).toUpperCase(),o=r.toUpperCase()==="PUBLIC",i=r.toUpperCase()==="SYSTEM";(o||i)&&(this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.consume()),o?this.transitionTo("afterDoctypePublicKeyword"):i&&this.transitionTo("afterDoctypeSystemKeyword")}},afterDoctypePublicKeyword:function(){var s=this.peek();Xt(s)?(this.transitionTo("beforeDoctypePublicIdentifier"),this.consume()):s==='"'?(this.transitionTo("doctypePublicIdentifierDoubleQuoted"),this.consume()):s==="'"?(this.transitionTo("doctypePublicIdentifierSingleQuoted"),this.consume()):s===">"&&(this.consume(),this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData"))},doctypePublicIdentifierDoubleQuoted:function(){var s=this.consume();s==='"'?this.transitionTo("afterDoctypePublicIdentifier"):s===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypePublicIdentifier&&this.delegate.appendToDoctypePublicIdentifier(s)},doctypePublicIdentifierSingleQuoted:function(){var s=this.consume();s==="'"?this.transitionTo("afterDoctypePublicIdentifier"):s===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypePublicIdentifier&&this.delegate.appendToDoctypePublicIdentifier(s)},afterDoctypePublicIdentifier:function(){var s=this.consume();Xt(s)?this.transitionTo("betweenDoctypePublicAndSystemIdentifiers"):s===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):s==='"'?this.transitionTo("doctypeSystemIdentifierDoubleQuoted"):s==="'"&&this.transitionTo("doctypeSystemIdentifierSingleQuoted")},betweenDoctypePublicAndSystemIdentifiers:function(){var s=this.consume();Xt(s)||(s===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):s==='"'?this.transitionTo("doctypeSystemIdentifierDoubleQuoted"):s==="'"&&this.transitionTo("doctypeSystemIdentifierSingleQuoted"))},doctypeSystemIdentifierDoubleQuoted:function(){var s=this.consume();s==='"'?this.transitionTo("afterDoctypeSystemIdentifier"):s===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypeSystemIdentifier&&this.delegate.appendToDoctypeSystemIdentifier(s)},doctypeSystemIdentifierSingleQuoted:function(){var s=this.consume();s==="'"?this.transitionTo("afterDoctypeSystemIdentifier"):s===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypeSystemIdentifier&&this.delegate.appendToDoctypeSystemIdentifier(s)},afterDoctypeSystemIdentifier:function(){var s=this.consume();Xt(s)||s===">"&&(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData"))},commentStart:function(){var s=this.consume();s==="-"?this.transitionTo("commentStartDash"):s===">"?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData(s),this.transitionTo("comment"))},commentStartDash:function(){var s=this.consume();s==="-"?this.transitionTo("commentEnd"):s===">"?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData("-"),this.transitionTo("comment"))},comment:function(){var s=this.consume();s==="-"?this.transitionTo("commentEndDash"):this.delegate.appendToCommentData(s)},commentEndDash:function(){var s=this.consume();s==="-"?this.transitionTo("commentEnd"):(this.delegate.appendToCommentData("-"+s),this.transitionTo("comment"))},commentEnd:function(){var s=this.consume();s===">"?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData("--"+s),this.transitionTo("comment"))},tagName:function(){var s=this.consume();Xt(s)?this.transitionTo("beforeAttributeName"):s==="/"?this.transitionTo("selfClosingStartTag"):s===">"?(this.delegate.finishTag(),this.transitionTo("beforeData")):this.appendToTagName(s)},endTagName:function(){var s=this.consume();Xt(s)?(this.transitionTo("beforeAttributeName"),this.tagNameBuffer=""):s==="/"?(this.transitionTo("selfClosingStartTag"),this.tagNameBuffer=""):s===">"?(this.delegate.finishTag(),this.transitionTo("beforeData"),this.tagNameBuffer=""):this.appendToTagName(s)},beforeAttributeName:function(){var s=this.peek();if(Xt(s)){this.consume();return}else s==="/"?(this.transitionTo("selfClosingStartTag"),this.consume()):s===">"?(this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):s==="="?(this.delegate.reportSyntaxError("attribute name cannot start with equals sign"),this.transitionTo("attributeName"),this.delegate.beginAttribute(),this.consume(),this.delegate.appendToAttributeName(s)):(this.transitionTo("attributeName"),this.delegate.beginAttribute())},attributeName:function(){var s=this.peek();Xt(s)?(this.transitionTo("afterAttributeName"),this.consume()):s==="/"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):s==="="?(this.transitionTo("beforeAttributeValue"),this.consume()):s===">"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):s==='"'||s==="'"||s==="<"?(this.delegate.reportSyntaxError(s+" is not a valid character within attribute names"),this.consume(),this.delegate.appendToAttributeName(s)):(this.consume(),this.delegate.appendToAttributeName(s))},afterAttributeName:function(){var s=this.peek();if(Xt(s)){this.consume();return}else s==="/"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):s==="="?(this.consume(),this.transitionTo("beforeAttributeValue")):s===">"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.transitionTo("attributeName"),this.delegate.beginAttribute(),this.consume(),this.delegate.appendToAttributeName(s))},beforeAttributeValue:function(){var s=this.peek();Xt(s)?this.consume():s==='"'?(this.transitionTo("attributeValueDoubleQuoted"),this.delegate.beginAttributeValue(!0),this.consume()):s==="'"?(this.transitionTo("attributeValueSingleQuoted"),this.delegate.beginAttributeValue(!0),this.consume()):s===">"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):(this.transitionTo("attributeValueUnquoted"),this.delegate.beginAttributeValue(!1),this.consume(),this.delegate.appendToAttributeValue(s))},attributeValueDoubleQuoted:function(){var s=this.consume();s==='"'?(this.delegate.finishAttributeValue(),this.transitionTo("afterAttributeValueQuoted")):s==="&"?this.delegate.appendToAttributeValue(this.consumeCharRef()||"&"):this.delegate.appendToAttributeValue(s)},attributeValueSingleQuoted:function(){var s=this.consume();s==="'"?(this.delegate.finishAttributeValue(),this.transitionTo("afterAttributeValueQuoted")):s==="&"?this.delegate.appendToAttributeValue(this.consumeCharRef()||"&"):this.delegate.appendToAttributeValue(s)},attributeValueUnquoted:function(){var s=this.peek();Xt(s)?(this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("beforeAttributeName")):s==="/"?(this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):s==="&"?(this.consume(),this.delegate.appendToAttributeValue(this.consumeCharRef()||"&")):s===">"?(this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):(this.consume(),this.delegate.appendToAttributeValue(s))},afterAttributeValueQuoted:function(){var s=this.peek();Xt(s)?(this.consume(),this.transitionTo("beforeAttributeName")):s==="/"?(this.consume(),this.transitionTo("selfClosingStartTag")):s===">"?(this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):this.transitionTo("beforeAttributeName")},selfClosingStartTag:function(){var s=this.peek();s===">"?(this.consume(),this.delegate.markTagAsSelfClosing(),this.delegate.finishTag(),this.transitionTo("beforeData")):this.transitionTo("beforeAttributeName")},endTagOpen:function(){var s=this.consume();(s==="@"||s===":"||H_(s))&&(this.transitionTo("endTagName"),this.tagNameBuffer="",this.delegate.beginEndTag(),this.appendToTagName(s))}},this.reset()}return e.prototype.reset=function(){this.transitionTo("beforeData"),this.input="",this.tagNameBuffer="",this.index=0,this.line=1,this.column=0,this.delegate.reset()},e.prototype.transitionTo=function(t){this.state=t},e.prototype.tokenize=function(t){this.reset(),this.tokenizePart(t),this.tokenizeEOF()},e.prototype.tokenizePart=function(t){for(this.input+=mUe(t);this.index"||t==="style"&&this.input.substring(this.index,this.index+8)!==""||t==="script"&&this.input.substring(this.index,this.index+9)!=="<\/script>"},e}(),TUe=function(){function e(t,n){n===void 0&&(n={}),this.options=n,this.token=null,this.startLine=1,this.startColumn=0,this.tokens=[],this.tokenizer=new _Ue(this,t,n.mode),this._currentAttribute=void 0}return e.prototype.tokenize=function(t){return this.tokens=[],this.tokenizer.tokenize(t),this.tokens},e.prototype.tokenizePart=function(t){return this.tokens=[],this.tokenizer.tokenizePart(t),this.tokens},e.prototype.tokenizeEOF=function(){return this.tokens=[],this.tokenizer.tokenizeEOF(),this.tokens[0]},e.prototype.reset=function(){this.token=null,this.startLine=1,this.startColumn=0},e.prototype.current=function(){var t=this.token;if(t===null)throw new Error("token was unexpectedly null");if(arguments.length===0)return t;for(var n=0;n=0))continue;let c=a.length;IUe(u,n,++o,a),o+=a.length-c-1}else if(i.type!==xd)a.push(i);else{const u=gUe(i.chars,r);a.push.apply(a,u)}}for(let o=0;o0&&(u+=" "+vUe(i.attributes).join(" ")),i.selfClosing&&(u+=" /"),u+=">",s.push(u);break}case rA:s.push(``);break;case xd:s.push(Bd(i.chars));break;case SUe:s.push(``);break;case AUe:{let u=`",s.push(u);break}}}return s.join("")}function gUe(e,t){const n=oUe(e),a=[];for(let s=0;s0;){let r=t[n];r.type===ju&&r.tagName.toUpperCase()===e?s++:r.type===rA&&r.tagName.toUpperCase()===e&&s--,a.push(r),n++}return a}function RUe(e){let{tagName:t,attributes:n,content:a}=e;return`<${t} ${NUe(n)}>${Bd(a)}`}function Bd(e){return e.replace(//g,">")}function oA(e){return e.replace(/"/g,""")}function NUe(e){const t=[];for(const n in e){const a=e[n]+"";t.push(`${n}="${oA(a)}"`)}return t.join(" ")}function vUe(e){const t=[];for(let n=0;n䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(function(e){return e.charCodeAt(0)}));var Af={};Object.defineProperty(Af,"__esModule",{value:!0});Af.default=new Uint16Array("Ȁaglq \x1Bɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(function(e){return e.charCodeAt(0)}));var Gd={};(function(e){var t;Object.defineProperty(e,"__esModule",{value:!0}),e.replaceCodePoint=e.fromCodePoint=void 0;var n=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);e.fromCodePoint=(t=String.fromCodePoint)!==null&&t!==void 0?t:function(r){var o="";return r>65535&&(r-=65536,o+=String.fromCharCode(r>>>10&1023|55296),r=56320|r&1023),o+=String.fromCharCode(r),o};function a(r){var o;return r>=55296&&r<=57343||r>1114111?65533:(o=n.get(r))!==null&&o!==void 0?o:r}e.replaceCodePoint=a;function s(r){return(0,e.fromCodePoint)(a(r))}e.default=s})(Gd);(function(e){var t=Ge&&Ge.__createBinding||(Object.create?function(L,W,X,re){re===void 0&&(re=X);var G=Object.getOwnPropertyDescriptor(W,X);(!G||("get"in G?!W.__esModule:G.writable||G.configurable))&&(G={enumerable:!0,get:function(){return W[X]}}),Object.defineProperty(L,re,G)}:function(L,W,X,re){re===void 0&&(re=X),L[re]=W[X]}),n=Ge&&Ge.__setModuleDefault||(Object.create?function(L,W){Object.defineProperty(L,"default",{enumerable:!0,value:W})}:function(L,W){L.default=W}),a=Ge&&Ge.__importStar||function(L){if(L&&L.__esModule)return L;var W={};if(L!=null)for(var X in L)X!=="default"&&Object.prototype.hasOwnProperty.call(L,X)&&t(W,L,X);return n(W,L),W},s=Ge&&Ge.__importDefault||function(L){return L&&L.__esModule?L:{default:L}};Object.defineProperty(e,"__esModule",{value:!0}),e.decodeXML=e.decodeHTMLStrict=e.decodeHTMLAttribute=e.decodeHTML=e.determineBranch=e.EntityDecoder=e.DecodingMode=e.BinTrieFlags=e.fromCodePoint=e.replaceCodePoint=e.decodeCodePoint=e.xmlDecodeTree=e.htmlDecodeTree=void 0;var r=s(Sf);e.htmlDecodeTree=r.default;var o=s(Af);e.xmlDecodeTree=o.default;var i=a(Gd);e.decodeCodePoint=i.default;var u=Gd;Object.defineProperty(e,"replaceCodePoint",{enumerable:!0,get:function(){return u.replaceCodePoint}}),Object.defineProperty(e,"fromCodePoint",{enumerable:!0,get:function(){return u.fromCodePoint}});var l;(function(L){L[L.NUM=35]="NUM",L[L.SEMI=59]="SEMI",L[L.EQUALS=61]="EQUALS",L[L.ZERO=48]="ZERO",L[L.NINE=57]="NINE",L[L.LOWER_A=97]="LOWER_A",L[L.LOWER_F=102]="LOWER_F",L[L.LOWER_X=120]="LOWER_X",L[L.LOWER_Z=122]="LOWER_Z",L[L.UPPER_A=65]="UPPER_A",L[L.UPPER_F=70]="UPPER_F",L[L.UPPER_Z=90]="UPPER_Z"})(l||(l={}));var c=32,f;(function(L){L[L.VALUE_LENGTH=49152]="VALUE_LENGTH",L[L.BRANCH_LENGTH=16256]="BRANCH_LENGTH",L[L.JUMP_TABLE=127]="JUMP_TABLE"})(f=e.BinTrieFlags||(e.BinTrieFlags={}));function E(L){return L>=l.ZERO&&L<=l.NINE}function p(L){return L>=l.UPPER_A&&L<=l.UPPER_F||L>=l.LOWER_A&&L<=l.LOWER_F}function T(L){return L>=l.UPPER_A&&L<=l.UPPER_Z||L>=l.LOWER_A&&L<=l.LOWER_Z||E(L)}function O(L){return L===l.EQUALS||T(L)}var R;(function(L){L[L.EntityStart=0]="EntityStart",L[L.NumericStart=1]="NumericStart",L[L.NumericDecimal=2]="NumericDecimal",L[L.NumericHex=3]="NumericHex",L[L.NamedEntity=4]="NamedEntity"})(R||(R={}));var g;(function(L){L[L.Legacy=0]="Legacy",L[L.Strict=1]="Strict",L[L.Attribute=2]="Attribute"})(g=e.DecodingMode||(e.DecodingMode={}));var N=function(){function L(W,X,re){this.decodeTree=W,this.emitCodePoint=X,this.errors=re,this.state=R.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=g.Strict}return L.prototype.startEntity=function(W){this.decodeMode=W,this.state=R.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1},L.prototype.write=function(W,X){switch(this.state){case R.EntityStart:return W.charCodeAt(X)===l.NUM?(this.state=R.NumericStart,this.consumed+=1,this.stateNumericStart(W,X+1)):(this.state=R.NamedEntity,this.stateNamedEntity(W,X));case R.NumericStart:return this.stateNumericStart(W,X);case R.NumericDecimal:return this.stateNumericDecimal(W,X);case R.NumericHex:return this.stateNumericHex(W,X);case R.NamedEntity:return this.stateNamedEntity(W,X)}},L.prototype.stateNumericStart=function(W,X){return X>=W.length?-1:(W.charCodeAt(X)|c)===l.LOWER_X?(this.state=R.NumericHex,this.consumed+=1,this.stateNumericHex(W,X+1)):(this.state=R.NumericDecimal,this.stateNumericDecimal(W,X))},L.prototype.addToNumericResult=function(W,X,re,G){if(X!==re){var Z=re-X;this.result=this.result*Math.pow(G,Z)+parseInt(W.substr(X,Z),G),this.consumed+=Z}},L.prototype.stateNumericHex=function(W,X){for(var re=X;X>14;X>14,Z!==0){if(q===l.SEMI)return this.emitNamedEntityData(this.treeIndex,Z,this.consumed+this.excess);this.decodeMode!==g.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1},L.prototype.emitNotTerminatedNamedEntity=function(){var W,X=this,re=X.result,G=X.decodeTree,Z=(G[re]&f.VALUE_LENGTH)>>14;return this.emitNamedEntityData(re,Z,this.consumed),(W=this.errors)===null||W===void 0||W.missingSemicolonAfterCharacterReference(),this.consumed},L.prototype.emitNamedEntityData=function(W,X,re){var G=this.decodeTree;return this.emitCodePoint(X===1?G[W]&~f.VALUE_LENGTH:G[W+1],re),X===3&&this.emitCodePoint(G[W+2],re),re},L.prototype.end=function(){var W;switch(this.state){case R.NamedEntity:return this.result!==0&&(this.decodeMode!==g.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case R.NumericDecimal:return this.emitNumericEntity(0,2);case R.NumericHex:return this.emitNumericEntity(0,3);case R.NumericStart:return(W=this.errors)===null||W===void 0||W.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case R.EntityStart:return 0}},L}();e.EntityDecoder=N;function S(L){var W="",X=new N(L,function(re){return W+=(0,i.fromCodePoint)(re)});return function(G,Z){for(var q=0,B=0;(B=G.indexOf("&",B))>=0;){W+=G.slice(q,B),X.startEntity(Z);var Ne=X.write(G,B+1);if(Ne<0){q=B+X.end();break}q=B+Ne,B=Ne===0?q+1:q}var Ke=W+G.slice(q);return W="",Ke}}function A(L,W,X,re){var G=(W&f.BRANCH_LENGTH)>>7,Z=W&f.JUMP_TABLE;if(G===0)return Z!==0&&re===Z?X:-1;if(Z){var q=re-Z;return q<0||q>=G?-1:L[X+q]-1}for(var B=X,Ne=B+G-1;B<=Ne;){var Ke=B+Ne>>>1,Fe=L[Ke];if(Fere)Ne=Ke-1;else return L[Ke+G]}return-1}e.determineBranch=A;var v=S(r.default),D=S(o.default);function y(L,W){return W===void 0&&(W=g.Legacy),v(L,W)}e.decodeHTML=y;function b(L){return v(L,g.Attribute)}e.decodeHTMLAttribute=b;function k(L){return v(L,g.Strict)}e.decodeHTMLStrict=k;function z(L){return D(L,g.Strict)}e.decodeXML=z})(No);(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.QuoteType=void 0;var t=No,n;(function(E){E[E.Tab=9]="Tab",E[E.NewLine=10]="NewLine",E[E.FormFeed=12]="FormFeed",E[E.CarriageReturn=13]="CarriageReturn",E[E.Space=32]="Space",E[E.ExclamationMark=33]="ExclamationMark",E[E.Number=35]="Number",E[E.Amp=38]="Amp",E[E.SingleQuote=39]="SingleQuote",E[E.DoubleQuote=34]="DoubleQuote",E[E.Dash=45]="Dash",E[E.Slash=47]="Slash",E[E.Zero=48]="Zero",E[E.Nine=57]="Nine",E[E.Semi=59]="Semi",E[E.Lt=60]="Lt",E[E.Eq=61]="Eq",E[E.Gt=62]="Gt",E[E.Questionmark=63]="Questionmark",E[E.UpperA=65]="UpperA",E[E.LowerA=97]="LowerA",E[E.UpperF=70]="UpperF",E[E.LowerF=102]="LowerF",E[E.UpperZ=90]="UpperZ",E[E.LowerZ=122]="LowerZ",E[E.LowerX=120]="LowerX",E[E.OpeningSquareBracket=91]="OpeningSquareBracket"})(n||(n={}));var a;(function(E){E[E.Text=1]="Text",E[E.BeforeTagName=2]="BeforeTagName",E[E.InTagName=3]="InTagName",E[E.InSelfClosingTag=4]="InSelfClosingTag",E[E.BeforeClosingTagName=5]="BeforeClosingTagName",E[E.InClosingTagName=6]="InClosingTagName",E[E.AfterClosingTagName=7]="AfterClosingTagName",E[E.BeforeAttributeName=8]="BeforeAttributeName",E[E.InAttributeName=9]="InAttributeName",E[E.AfterAttributeName=10]="AfterAttributeName",E[E.BeforeAttributeValue=11]="BeforeAttributeValue",E[E.InAttributeValueDq=12]="InAttributeValueDq",E[E.InAttributeValueSq=13]="InAttributeValueSq",E[E.InAttributeValueNq=14]="InAttributeValueNq",E[E.BeforeDeclaration=15]="BeforeDeclaration",E[E.InDeclaration=16]="InDeclaration",E[E.InProcessingInstruction=17]="InProcessingInstruction",E[E.BeforeComment=18]="BeforeComment",E[E.CDATASequence=19]="CDATASequence",E[E.InSpecialComment=20]="InSpecialComment",E[E.InCommentLike=21]="InCommentLike",E[E.BeforeSpecialS=22]="BeforeSpecialS",E[E.SpecialStartSequence=23]="SpecialStartSequence",E[E.InSpecialTag=24]="InSpecialTag",E[E.BeforeEntity=25]="BeforeEntity",E[E.BeforeNumericEntity=26]="BeforeNumericEntity",E[E.InNamedEntity=27]="InNamedEntity",E[E.InNumericEntity=28]="InNumericEntity",E[E.InHexEntity=29]="InHexEntity"})(a||(a={}));function s(E){return E===n.Space||E===n.NewLine||E===n.Tab||E===n.FormFeed||E===n.CarriageReturn}function r(E){return E===n.Slash||E===n.Gt||s(E)}function o(E){return E>=n.Zero&&E<=n.Nine}function i(E){return E>=n.LowerA&&E<=n.LowerZ||E>=n.UpperA&&E<=n.UpperZ}function u(E){return E>=n.UpperA&&E<=n.UpperF||E>=n.LowerA&&E<=n.LowerF}var l;(function(E){E[E.NoValue=0]="NoValue",E[E.Unquoted=1]="Unquoted",E[E.Single=2]="Single",E[E.Double=3]="Double"})(l=e.QuoteType||(e.QuoteType={}));var c={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101])},f=function(){function E(p,T){var O=p.xmlMode,R=O===void 0?!1:O,g=p.decodeEntities,N=g===void 0?!0:g;this.cbs=T,this.state=a.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=a.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.trieIndex=0,this.trieCurrent=0,this.entityResult=0,this.entityExcess=0,this.xmlMode=R,this.decodeEntities=N,this.entityTrie=R?t.xmlDecodeTree:t.htmlDecodeTree}return E.prototype.reset=function(){this.state=a.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=a.Text,this.currentSequence=void 0,this.running=!0,this.offset=0},E.prototype.write=function(p){this.offset+=this.buffer.length,this.buffer=p,this.parse()},E.prototype.end=function(){this.running&&this.finish()},E.prototype.pause=function(){this.running=!1},E.prototype.resume=function(){this.running=!0,this.indexthis.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=a.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&p===n.Amp&&(this.state=a.BeforeEntity)},E.prototype.stateSpecialStartSequence=function(p){var T=this.sequenceIndex===this.currentSequence.length,O=T?r(p):(p|32)===this.currentSequence[this.sequenceIndex];if(!O)this.isSpecial=!1;else if(!T){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=a.InTagName,this.stateInTagName(p)},E.prototype.stateInSpecialTag=function(p){if(this.sequenceIndex===this.currentSequence.length){if(p===n.Gt||s(p)){var T=this.index-this.currentSequence.length;if(this.sectionStart>14)-1;if(!this.allowLegacyEntity()&&p!==n.Semi)this.trieIndex+=O;else{var R=this.index-this.entityExcess+1;R>this.sectionStart&&this.emitPartial(this.sectionStart,R),this.entityResult=this.trieIndex,this.trieIndex+=O,this.entityExcess=0,this.sectionStart=this.index+1,O===0&&this.emitNamedEntity()}}},E.prototype.emitNamedEntity=function(){if(this.state=this.baseState,this.entityResult!==0){var p=(this.entityTrie[this.entityResult]&t.BinTrieFlags.VALUE_LENGTH)>>14;switch(p){case 1:{this.emitCodePoint(this.entityTrie[this.entityResult]&~t.BinTrieFlags.VALUE_LENGTH);break}case 2:{this.emitCodePoint(this.entityTrie[this.entityResult+1]);break}case 3:this.emitCodePoint(this.entityTrie[this.entityResult+1]),this.emitCodePoint(this.entityTrie[this.entityResult+2])}}},E.prototype.stateBeforeNumericEntity=function(p){(p|32)===n.LowerX?(this.entityExcess++,this.state=a.InHexEntity):(this.state=a.InNumericEntity,this.stateInNumericEntity(p))},E.prototype.emitNumericEntity=function(p){var T=this.index-this.entityExcess-1,O=T+2+ +(this.state===a.InHexEntity);O!==this.index&&(T>this.sectionStart&&this.emitPartial(this.sectionStart,T),this.sectionStart=this.index+Number(p),this.emitCodePoint((0,t.replaceCodePoint)(this.entityResult))),this.state=this.baseState},E.prototype.stateInNumericEntity=function(p){p===n.Semi?this.emitNumericEntity(!0):o(p)?(this.entityResult=this.entityResult*10+(p-n.Zero),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)},E.prototype.stateInHexEntity=function(p){p===n.Semi?this.emitNumericEntity(!0):o(p)?(this.entityResult=this.entityResult*16+(p-n.Zero),this.entityExcess++):u(p)?(this.entityResult=this.entityResult*16+((p|32)-n.LowerA+10),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)},E.prototype.allowLegacyEntity=function(){return!this.xmlMode&&(this.baseState===a.Text||this.baseState===a.InSpecialTag)},E.prototype.cleanup=function(){this.running&&this.sectionStart!==this.index&&(this.state===a.Text||this.state===a.InSpecialTag&&this.sequenceIndex===0?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===a.InAttributeValueDq||this.state===a.InAttributeValueSq||this.state===a.InAttributeValueNq)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))},E.prototype.shouldContinue=function(){return this.index0&&o.has(this.stack[this.stack.length-1]);){var i=this.stack.pop();(a=(n=this.cbs).onclosetag)===null||a===void 0||a.call(n,i,!0)}this.isVoidElement(t)||(this.stack.push(t),Y_.has(t)?this.foreignContext.push(!0):X_.has(t)&&this.foreignContext.push(!1)),(r=(s=this.cbs).onopentagname)===null||r===void 0||r.call(s,t),this.cbs.onopentag&&(this.attribs={})},e.prototype.endOpenTag=function(t){var n,a;this.startIndex=this.openTagStart,this.attribs&&((a=(n=this.cbs).onopentag)===null||a===void 0||a.call(n,this.tagname,this.attribs,t),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""},e.prototype.onopentagend=function(t){this.endIndex=t,this.endOpenTag(!1),this.startIndex=t+1},e.prototype.onclosetag=function(t,n){var a,s,r,o,i,u;this.endIndex=n;var l=this.getSlice(t,n);if(this.lowerCaseTagNames&&(l=l.toLowerCase()),(Y_.has(l)||X_.has(l))&&this.foreignContext.pop(),this.isVoidElement(l))!this.options.xmlMode&&l==="br"&&((s=(a=this.cbs).onopentagname)===null||s===void 0||s.call(a,"br"),(o=(r=this.cbs).onopentag)===null||o===void 0||o.call(r,"br",{},!0),(u=(i=this.cbs).onclosetag)===null||u===void 0||u.call(i,"br",!1));else{var c=this.stack.lastIndexOf(l);if(c!==-1)if(this.cbs.onclosetag)for(var f=this.stack.length-c;f--;)this.cbs.onclosetag(this.stack.pop(),f!==0);else this.stack.length=c;else!this.options.xmlMode&&l==="p"&&(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=n+1},e.prototype.onselfclosingtag=function(t){this.endIndex=t,this.options.xmlMode||this.options.recognizeSelfClosing||this.foreignContext[this.foreignContext.length-1]?(this.closeCurrentTag(!1),this.startIndex=t+1):this.onopentagend(t)},e.prototype.closeCurrentTag=function(t){var n,a,s=this.tagname;this.endOpenTag(t),this.stack[this.stack.length-1]===s&&((a=(n=this.cbs).onclosetag)===null||a===void 0||a.call(n,s,!t),this.stack.pop())},e.prototype.onattribname=function(t,n){this.startIndex=t;var a=this.getSlice(t,n);this.attribname=this.lowerCaseAttributeNames?a.toLowerCase():a},e.prototype.onattribdata=function(t,n){this.attribvalue+=this.getSlice(t,n)},e.prototype.onattribentity=function(t){this.attribvalue+=(0,V_.fromCodePoint)(t)},e.prototype.onattribend=function(t,n){var a,s;this.endIndex=n,(s=(a=this.cbs).onattribute)===null||s===void 0||s.call(a,this.attribname,this.attribvalue,t===hi.QuoteType.Double?'"':t===hi.QuoteType.Single?"'":t===hi.QuoteType.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""},e.prototype.getInstructionName=function(t){var n=t.search(LUe),a=n<0?t:t.substr(0,n);return this.lowerCaseTagNames&&(a=a.toLowerCase()),a},e.prototype.ondeclaration=function(t,n){this.endIndex=n;var a=this.getSlice(t,n);if(this.cbs.onprocessinginstruction){var s=this.getInstructionName(a);this.cbs.onprocessinginstruction("!".concat(s),"!".concat(a))}this.startIndex=n+1},e.prototype.onprocessinginstruction=function(t,n){this.endIndex=n;var a=this.getSlice(t,n);if(this.cbs.onprocessinginstruction){var s=this.getInstructionName(a);this.cbs.onprocessinginstruction("?".concat(s),"?".concat(a))}this.startIndex=n+1},e.prototype.oncomment=function(t,n,a){var s,r,o,i;this.endIndex=n,(r=(s=this.cbs).oncomment)===null||r===void 0||r.call(s,this.getSlice(t,n-a)),(i=(o=this.cbs).oncommentend)===null||i===void 0||i.call(o),this.startIndex=n+1},e.prototype.oncdata=function(t,n,a){var s,r,o,i,u,l,c,f,E,p;this.endIndex=n;var T=this.getSlice(t,n-a);this.options.xmlMode||this.options.recognizeCDATA?((r=(s=this.cbs).oncdatastart)===null||r===void 0||r.call(s),(i=(o=this.cbs).ontext)===null||i===void 0||i.call(o,T),(l=(u=this.cbs).oncdataend)===null||l===void 0||l.call(u)):((f=(c=this.cbs).oncomment)===null||f===void 0||f.call(c,"[CDATA[".concat(T,"]]")),(p=(E=this.cbs).oncommentend)===null||p===void 0||p.call(E)),this.startIndex=n+1},e.prototype.onend=function(){var t,n;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(var a=this.stack.length;a>0;this.cbs.onclosetag(this.stack[--a],!0));}(n=(t=this.cbs).onend)===null||n===void 0||n.call(t)},e.prototype.reset=function(){var t,n,a,s;(n=(t=this.cbs).onreset)===null||n===void 0||n.call(t),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,(s=(a=this.cbs).onparserinit)===null||s===void 0||s.call(a,this),this.buffers.length=0,this.bufferOffset=0,this.writeIndex=0,this.ended=!1},e.prototype.parseComplete=function(t){this.reset(),this.end(t)},e.prototype.getSlice=function(t,n){for(;t-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();for(var a=this.buffers[0].slice(t-this.bufferOffset,n-this.bufferOffset);n-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),a+=this.buffers[0].slice(0,n-this.bufferOffset);return a},e.prototype.shiftBuffer=function(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()},e.prototype.write=function(t){var n,a;if(this.ended){(a=(n=this.cbs).onerror)===null||a===void 0||a.call(n,new Error(".write() after done!"));return}this.buffers.push(t),this.tokenizer.running&&(this.tokenizer.write(t),this.writeIndex++)},e.prototype.end=function(t){var n,a;if(this.ended){(a=(n=this.cbs).onerror)===null||a===void 0||a.call(n,new Error(".end() after done!"));return}t&&this.write(t),this.ended=!0,this.tokenizer.end()},e.prototype.pause=function(){this.tokenizer.pause()},e.prototype.resume=function(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndex0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"childNodes",{get:function(){return this.children},set:function(n){this.children=n},enumerable:!1,configurable:!0}),t}(Of);st.NodeWithChildren=Ml;var dA=function(e){is(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=_n.ElementType.CDATA,n}return Object.defineProperty(t.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),t}(Ml);st.CDATA=dA;var EA=function(e){is(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=_n.ElementType.Root,n}return Object.defineProperty(t.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),t}(Ml);st.Document=EA;var fA=function(e){is(t,e);function t(n,a,s,r){s===void 0&&(s=[]),r===void 0&&(r=n==="script"?_n.ElementType.Script:n==="style"?_n.ElementType.Style:_n.ElementType.Tag);var o=e.call(this,s)||this;return o.name=n,o.attribs=a,o.type=r,o}return Object.defineProperty(t.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"tagName",{get:function(){return this.name},set:function(n){this.name=n},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"attributes",{get:function(){var n=this;return Object.keys(this.attribs).map(function(a){var s,r;return{name:a,value:n.attribs[a],namespace:(s=n["x-attribsNamespace"])===null||s===void 0?void 0:s[a],prefix:(r=n["x-attribsPrefix"])===null||r===void 0?void 0:r[a]}})},enumerable:!1,configurable:!0}),t}(Ml);st.Element=fA;function pA(e){return(0,_n.isTag)(e)}st.isTag=pA;function mA(e){return e.type===_n.ElementType.CDATA}st.isCDATA=mA;function _A(e){return e.type===_n.ElementType.Text}st.isText=_A;function TA(e){return e.type===_n.ElementType.Comment}st.isComment=TA;function hA(e){return e.type===_n.ElementType.Directive}st.isDirective=hA;function SA(e){return e.type===_n.ElementType.Root}st.isDocument=SA;function kUe(e){return Object.prototype.hasOwnProperty.call(e,"children")}st.hasChildren=kUe;function gf(e,t){t===void 0&&(t=!1);var n;if(_A(e))n=new uA(e.data);else if(TA(e))n=new lA(e.data);else if(pA(e)){var a=t?bc(e.children):[],s=new fA(e.name,oo({},e.attribs),a);a.forEach(function(u){return u.parent=s}),e.namespace!=null&&(s.namespace=e.namespace),e["x-attribsNamespace"]&&(s["x-attribsNamespace"]=oo({},e["x-attribsNamespace"])),e["x-attribsPrefix"]&&(s["x-attribsPrefix"]=oo({},e["x-attribsPrefix"])),n=s}else if(mA(e)){var a=t?bc(e.children):[],r=new dA(a);a.forEach(function(l){return l.parent=r}),n=r}else if(SA(e)){var a=t?bc(e.children):[],o=new EA(a);a.forEach(function(l){return l.parent=o}),e["x-mode"]&&(o["x-mode"]=e["x-mode"]),n=o}else if(hA(e)){var i=new cA(e.name,e.data);e["x-name"]!=null&&(i["x-name"]=e["x-name"],i["x-publicId"]=e["x-publicId"],i["x-systemId"]=e["x-systemId"]),n=i}else throw new Error("Not implemented yet: ".concat(e.type));return n.startIndex=e.startIndex,n.endIndex=e.endIndex,e.sourceCodeLocation!=null&&(n.sourceCodeLocation=e.sourceCodeLocation),n}st.cloneNode=gf;function bc(e){for(var t=e.map(function(a){return gf(a,!0)}),n=1;n$\x80-\uFFFF]/g;var t=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]);e.getCodePoint=String.prototype.codePointAt!=null?function(s,r){return s.codePointAt(r)}:function(s,r){return(s.charCodeAt(r)&64512)===55296?(s.charCodeAt(r)-55296)*1024+s.charCodeAt(r+1)-56320+65536:s.charCodeAt(r)};function n(s){for(var r="",o=0,i;(i=e.xmlReplacer.exec(s))!==null;){var u=i.index,l=s.charCodeAt(u),c=t.get(l);c!==void 0?(r+=s.substring(o,u)+c,o=u+1):(r+="".concat(s.substring(o,u),"&#x").concat((0,e.getCodePoint)(s,u).toString(16),";"),o=e.xmlReplacer.lastIndex+=+((l&64512)===55296))}return r+s.substr(o)}e.encodeXML=n,e.escape=n;function a(s,r){return function(i){for(var u,l=0,c="";u=s.exec(i);)l!==u.index&&(c+=i.substring(l,u.index)),c+=r.get(u[0].charCodeAt(0)),l=u.index+1;return c+i.substring(l)}}e.escapeUTF8=a(/[&<>'"]/g,t),e.escapeAttribute=a(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),e.escapeText=a(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]))})(Ku);var UUe=Ge&&Ge.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ps,"__esModule",{value:!0});Ps.encodeNonAsciiHTML=Ps.encodeHTML=void 0;var wUe=UUe(If),OA=Ku,MUe=/[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;function FUe(e){return gA(MUe,e)}Ps.encodeHTML=FUe;function WUe(e){return gA(OA.xmlReplacer,e)}Ps.encodeNonAsciiHTML=WUe;function gA(e,t){for(var n="",a=0,s;(s=e.exec(t))!==null;){var r=s.index;n+=t.substring(a,r);var o=t.charCodeAt(r),i=wUe.default.get(o);if(typeof i=="object"){if(r+10&&(a+=Fl(e.children,t)),(t.xmlMode||!Q_.has(e.name))&&(a+=""))),a}function XUe(e){return"<".concat(e.data,">")}function QUe(e,t){var n,a=e.data||"";return((n=t.encodeEntities)!==null&&n!==void 0?n:t.decodeEntities)!==!1&&!(!t.xmlMode&&e.parent&&GUe.has(e.parent.name))&&(a=t.xmlMode||t.encodeEntities!=="utf8"?(0,qu.encodeXML)(a):(0,qu.escapeText)(a)),a}function ZUe(e){return"")}function JUe(e){return"")}var ewe=Ge&&Ge.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Rn,"__esModule",{value:!0});Rn.innerText=Rn.textContent=Rn.getText=Rn.getInnerHTML=Rn.getOuterHTML=void 0;var ua=Na,twe=ewe(qo),nwe=Cr;function RA(e,t){return(0,twe.default)(e,t)}Rn.getOuterHTML=RA;function awe(e,t){return(0,ua.hasChildren)(e)?e.children.map(function(n){return RA(n,t)}).join(""):""}Rn.getInnerHTML=awe;function qi(e){return Array.isArray(e)?e.map(qi).join(""):(0,ua.isTag)(e)?e.name==="br"?` +`:qi(e.children):(0,ua.isCDATA)(e)?qi(e.children):(0,ua.isText)(e)?e.data:""}Rn.getText=qi;function Hd(e){return Array.isArray(e)?e.map(Hd).join(""):(0,ua.hasChildren)(e)&&!(0,ua.isComment)(e)?Hd(e.children):(0,ua.isText)(e)?e.data:""}Rn.textContent=Hd;function Vd(e){return Array.isArray(e)?e.map(Vd).join(""):(0,ua.hasChildren)(e)&&(e.type===nwe.ElementType.Tag||(0,ua.isCDATA)(e))?Vd(e.children):(0,ua.isText)(e)?e.data:""}Rn.innerText=Vd;var zt={};Object.defineProperty(zt,"__esModule",{value:!0});zt.prevElementSibling=zt.nextElementSibling=zt.getName=zt.hasAttrib=zt.getAttributeValue=zt.getSiblings=zt.getParent=zt.getChildren=void 0;var Rf=Na;function NA(e){return(0,Rf.hasChildren)(e)?e.children:[]}zt.getChildren=NA;function vA(e){return e.parent||null}zt.getParent=vA;function swe(e){var t,n,a=vA(e);if(a!=null)return NA(a);for(var s=[e],r=e.prev,o=e.next;r!=null;)s.unshift(r),t=r,r=t.prev;for(;o!=null;)s.push(o),n=o,o=n.next;return s}zt.getSiblings=swe;function rwe(e,t){var n;return(n=e.attribs)===null||n===void 0?void 0:n[t]}zt.getAttributeValue=rwe;function owe(e,t){return e.attribs!=null&&Object.prototype.hasOwnProperty.call(e.attribs,t)&&e.attribs[t]!=null}zt.hasAttrib=owe;function iwe(e){return e.name}zt.getName=iwe;function uwe(e){for(var t,n=e.next;n!==null&&!(0,Rf.isTag)(n);)t=n,n=t.next;return n}zt.nextElementSibling=uwe;function lwe(e){for(var t,n=e.prev;n!==null&&!(0,Rf.isTag)(n);)t=n,n=t.prev;return n}zt.prevElementSibling=lwe;var En={};Object.defineProperty(En,"__esModule",{value:!0});En.prepend=En.prependChild=En.append=En.appendChild=En.replaceElement=En.removeElement=void 0;function Yo(e){if(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e.parent){var t=e.parent.children,n=t.lastIndexOf(e);n>=0&&t.splice(n,1)}e.next=null,e.prev=null,e.parent=null}En.removeElement=Yo;function cwe(e,t){var n=t.prev=e.prev;n&&(n.next=t);var a=t.next=e.next;a&&(a.prev=t);var s=t.parent=e.parent;if(s){var r=s.children;r[r.lastIndexOf(e)]=t,e.parent=null}}En.replaceElement=cwe;function dwe(e,t){if(Yo(t),t.next=null,t.parent=e,e.children.push(t)>1){var n=e.children[e.children.length-2];n.next=t,t.prev=n}else t.prev=null}En.appendChild=dwe;function Ewe(e,t){Yo(t);var n=e.parent,a=e.next;if(t.next=a,t.prev=e,e.next=t,t.parent=n,a){if(a.prev=t,n){var s=n.children;s.splice(s.lastIndexOf(a),0,t)}}else n&&n.children.push(t)}En.append=Ewe;function fwe(e,t){if(Yo(t),t.parent=e,t.prev=null,e.children.unshift(t)!==1){var n=e.children[1];n.prev=t,t.next=n}else t.next=null}En.prependChild=fwe;function pwe(e,t){Yo(t);var n=e.parent;if(n){var a=n.children;a.splice(a.indexOf(e),0,t)}e.prev&&(e.prev.next=t),t.parent=n,t.prev=e.prev,t.next=e,e.prev=t}En.prepend=pwe;var nn={};Object.defineProperty(nn,"__esModule",{value:!0});nn.findAll=nn.existsOne=nn.findOne=nn.findOneChild=nn.find=nn.filter=void 0;var Wl=Na;function mwe(e,t,n,a){return n===void 0&&(n=!0),a===void 0&&(a=1/0),bA(e,Array.isArray(t)?t:[t],n,a)}nn.filter=mwe;function bA(e,t,n,a){for(var s=[],r=[t],o=[0];;){if(o[0]>=r[0].length){if(o.length===1)return s;r.shift(),o.shift();continue}var i=r[0][o[0]++];if(e(i)&&(s.push(i),--a<=0))return s;n&&(0,Wl.hasChildren)(i)&&i.children.length>0&&(o.unshift(0),r.unshift(i.children))}}nn.find=bA;function _we(e,t){return t.find(e)}nn.findOneChild=_we;function CA(e,t,n){n===void 0&&(n=!0);for(var a=null,s=0;s0&&(a=CA(e,r.children,!0));else continue}return a}nn.findOne=CA;function DA(e,t){return t.some(function(n){return(0,Wl.isTag)(n)&&(e(n)||DA(e,n.children))})}nn.existsOne=DA;function Twe(e,t){for(var n=[],a=[t],s=[0];;){if(s[0]>=a[0].length){if(a.length===1)return n;a.shift(),s.shift();continue}var r=a[0][s[0]++];(0,Wl.isTag)(r)&&(e(r)&&n.push(r),r.children.length>0&&(s.unshift(0),a.unshift(r.children)))}}nn.findAll=Twe;var Nn={};Object.defineProperty(Nn,"__esModule",{value:!0});Nn.getElementsByTagType=Nn.getElementsByTagName=Nn.getElementById=Nn.getElements=Nn.testElement=void 0;var Ss=Na,zl=nn,Yu={tag_name:function(e){return typeof e=="function"?function(t){return(0,Ss.isTag)(t)&&e(t.name)}:e==="*"?Ss.isTag:function(t){return(0,Ss.isTag)(t)&&t.name===e}},tag_type:function(e){return typeof e=="function"?function(t){return e(t.type)}:function(t){return t.type===e}},tag_contains:function(e){return typeof e=="function"?function(t){return(0,Ss.isText)(t)&&e(t.data)}:function(t){return(0,Ss.isText)(t)&&t.data===e}}};function PA(e,t){return typeof t=="function"?function(n){return(0,Ss.isTag)(n)&&t(n.attribs[e])}:function(n){return(0,Ss.isTag)(n)&&n.attribs[e]===t}}function hwe(e,t){return function(n){return e(n)||t(n)}}function yA(e){var t=Object.keys(e).map(function(n){var a=e[n];return Object.prototype.hasOwnProperty.call(Yu,n)?Yu[n](a):PA(n,a)});return t.length===0?null:t.reduce(hwe)}function Swe(e,t){var n=yA(e);return n?n(t):!0}Nn.testElement=Swe;function Awe(e,t,n,a){a===void 0&&(a=1/0);var s=yA(e);return s?(0,zl.filter)(s,t,n,a):[]}Nn.getElements=Awe;function Owe(e,t,n){return n===void 0&&(n=!0),Array.isArray(t)||(t=[t]),(0,zl.findOne)(PA("id",e),t,n)}Nn.getElementById=Owe;function gwe(e,t,n,a){return n===void 0&&(n=!0),a===void 0&&(a=1/0),(0,zl.filter)(Yu.tag_name(e),t,n,a)}Nn.getElementsByTagName=gwe;function Iwe(e,t,n,a){return n===void 0&&(n=!0),a===void 0&&(a=1/0),(0,zl.filter)(Yu.tag_type(e),t,n,a)}Nn.getElementsByTagType=Iwe;var LA={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.uniqueSort=e.compareDocumentPosition=e.DocumentPosition=e.removeSubsets=void 0;var t=Na;function n(o){for(var i=o.length;--i>=0;){var u=o[i];if(i>0&&o.lastIndexOf(u,i-1)>=0){o.splice(i,1);continue}for(var l=u.parent;l;l=l.parent)if(o.includes(l)){o.splice(i,1);break}}return o}e.removeSubsets=n;var a;(function(o){o[o.DISCONNECTED=1]="DISCONNECTED",o[o.PRECEDING=2]="PRECEDING",o[o.FOLLOWING=4]="FOLLOWING",o[o.CONTAINS=8]="CONTAINS",o[o.CONTAINED_BY=16]="CONTAINED_BY"})(a=e.DocumentPosition||(e.DocumentPosition={}));function s(o,i){var u=[],l=[];if(o===i)return 0;for(var c=(0,t.hasChildren)(o)?o:o.parent;c;)u.unshift(c),c=c.parent;for(c=(0,t.hasChildren)(i)?i:i.parent;c;)l.unshift(c),c=c.parent;for(var f=Math.min(u.length,l.length),E=0;ET.indexOf(R)?p===i?a.FOLLOWING|a.CONTAINED_BY:a.FOLLOWING:p===o?a.PRECEDING|a.CONTAINS:a.PRECEDING}e.compareDocumentPosition=s;function r(o){return o=o.filter(function(i,u,l){return!l.includes(i,u+1)}),o.sort(function(i,u){var l=s(i,u);return l&a.PRECEDING?-1:l&a.FOLLOWING?1:0}),o}e.uniqueSort=r})(LA);var xl={};Object.defineProperty(xl,"__esModule",{value:!0});xl.getFeed=void 0;var Rwe=Rn,Xo=Nn;function Nwe(e){var t=Xu(Pwe,e);return t?t.name==="feed"?vwe(t):bwe(t):null}xl.getFeed=Nwe;function vwe(e){var t,n=e.children,a={type:"atom",items:(0,Xo.getElementsByTagName)("entry",n).map(function(o){var i,u=o.children,l={media:$A(u)};dn(l,"id","id",u),dn(l,"title","title",u);var c=(i=Xu("link",u))===null||i===void 0?void 0:i.attribs.href;c&&(l.link=c);var f=Ya("summary",u)||Ya("content",u);f&&(l.description=f);var E=Ya("updated",u);return E&&(l.pubDate=new Date(E)),l})};dn(a,"id","id",n),dn(a,"title","title",n);var s=(t=Xu("link",n))===null||t===void 0?void 0:t.attribs.href;s&&(a.link=s),dn(a,"description","subtitle",n);var r=Ya("updated",n);return r&&(a.updated=new Date(r)),dn(a,"author","email",n,!0),a}function bwe(e){var t,n,a=(n=(t=Xu("channel",e.children))===null||t===void 0?void 0:t.children)!==null&&n!==void 0?n:[],s={type:e.name.substr(0,3),id:"",items:(0,Xo.getElementsByTagName)("item",e.children).map(function(o){var i=o.children,u={media:$A(i)};dn(u,"id","guid",i),dn(u,"title","title",i),dn(u,"link","link",i),dn(u,"description","description",i);var l=Ya("pubDate",i)||Ya("dc:date",i);return l&&(u.pubDate=new Date(l)),u})};dn(s,"title","title",a),dn(s,"link","link",a),dn(s,"description","description",a);var r=Ya("lastBuildDate",a);return r&&(s.updated=new Date(r)),dn(s,"author","managingEditor",a,!0),s}var Cwe=["url","type","lang"],Dwe=["fileSize","bitrate","framerate","samplingrate","channels","duration","height","width"];function $A(e){return(0,Xo.getElementsByTagName)("media:content",e).map(function(t){for(var n=t.attribs,a={medium:n.medium,isDefault:!!n.isDefault},s=0,r=Cwe;s{if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")},Nf={};Object.defineProperty(Nf,"__esModule",{value:!0});/*! * is-plain-object * * Copyright (c) 2014-2017, Jon Schlinkert. * Released under the MIT License. - */function J_(e){return Object.prototype.toString.call(e)==="[object Object]"}function Mwe(e){var t,n;return J_(e)===!1?!1:(t=e.constructor,t===void 0?!0:(n=t.prototype,!(J_(n)===!1||n.hasOwnProperty("isPrototypeOf")===!1)))}Rf.isPlainObject=Mwe;var Fwe=function(t){return Wwe(t)&&!zwe(t)};function Wwe(e){return!!e&&typeof e=="object"}function zwe(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||Gwe(e)}var xwe=typeof Symbol=="function"&&Symbol.for,Bwe=xwe?Symbol.for("react.element"):60103;function Gwe(e){return e.$$typeof===Bwe}function Hwe(e){return Array.isArray(e)?[]:{}}function Ro(e,t){return t.clone!==!1&&t.isMergeableObject(e)?pr(Hwe(e),e,t):e}function Vwe(e,t,n){return e.concat(t).map(function(a){return Ro(a,n)})}function jwe(e,t){if(!t.customMerge)return pr;var n=t.customMerge(e);return typeof n=="function"?n:pr}function Kwe(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function eT(e){return Object.keys(e).concat(Kwe(e))}function yS(e,t){try{return t in e}catch{return!1}}function qwe(e,t){return yS(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function Ywe(e,t,n){var a={};return n.isMergeableObject(e)&&eT(e).forEach(function(s){a[s]=Ro(e[s],n)}),eT(t).forEach(function(s){qwe(e,s)||(yS(e,s)&&n.isMergeableObject(t[s])?a[s]=jwe(s,n)(e[s],t[s],n):a[s]=Ro(t[s],n))}),a}function pr(e,t,n){n=n||{},n.arrayMerge=n.arrayMerge||Vwe,n.isMergeableObject=n.isMergeableObject||Fwe,n.cloneUnlessOtherwiseSpecified=Ro;var a=Array.isArray(t),s=Array.isArray(e),r=a===s;return r?a?n.arrayMerge(e,t,n):Ywe(e,t,n):Ro(t,n)}pr.all=function(t,n){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(a,s){return pr(a,s,n)},{})};var Xwe=pr,Qwe=Xwe,LS={exports:{}};(function(e){(function(t,n){e.exports?e.exports=n():t.parseSrcset=n()})(Ge,function(){return function(t){function n(S){return S===" "||S===" "||S===` -`||S==="\f"||S==="\r"}function a(S){var v,C=S.exec(t.substring(N));if(C)return v=C[0],N+=v.length,v}for(var s=t.length,r=/^[ \t\n\r\u000c]+/,o=/^[, \t\n\r\u000c]+/,i=/^[^ \t\n\r\u000c]+/,u=/[,]+$/,l=/^\d+$/,c=/^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,f,E,p,T,O,N=0,g=[];;){if(a(o),N>=s)return g;f=a(i),E=[],f.slice(-1)===","?(f=f.replace(u,""),A()):R()}function R(){for(a(r),p="",T="in descriptor";;){if(O=t.charAt(N),T==="in descriptor")if(n(O))p&&(E.push(p),p="",T="after descriptor");else if(O===","){N+=1,p&&E.push(p),A();return}else if(O==="(")p=p+O,T="in parens";else if(O===""){p&&E.push(p),A();return}else p=p+O;else if(T==="in parens")if(O===")")p=p+O,T="in descriptor";else if(O===""){E.push(p),A();return}else p=p+O;else if(T==="after descriptor"&&!n(O))if(O===""){A();return}else T="in descriptor",N-=1;N+=1}}function A(){var S=!1,v,C,y,b,k={},z,$,W,X,re;for(b=0;b",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(t){if(!this.source)return"";let n=this.source;t==null&&(t=tT.isColorSupported),nT&&t&&(n=nT(n));let a=n.split(/\r?\n/),s=Math.max(this.line-3,0),r=Math.min(this.line+2,a.length),o=String(r).length,i,u;if(t){let{bold:l,gray:c,red:f}=tT.createColors(!0);i=E=>l(f(E)),u=E=>c(E)}else i=u=l=>l;return a.slice(s,r).map((l,c)=>{let f=s+1+c,E=" "+(" "+f).slice(-o)+" | ";if(f===this.line){let p=u(E.replace(/\d/g," "))+l.slice(0,this.column-1).replace(/[^\t]/g," ");return i(">")+u(E)+l+` + */function Z_(e){return Object.prototype.toString.call(e)==="[object Object]"}function Lwe(e){var t,n;return Z_(e)===!1?!1:(t=e.constructor,t===void 0?!0:(n=t.prototype,!(Z_(n)===!1||n.hasOwnProperty("isPrototypeOf")===!1)))}Nf.isPlainObject=Lwe;var $we=function(t){return kwe(t)&&!Uwe(t)};function kwe(e){return!!e&&typeof e=="object"}function Uwe(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||Fwe(e)}var wwe=typeof Symbol=="function"&&Symbol.for,Mwe=wwe?Symbol.for("react.element"):60103;function Fwe(e){return e.$$typeof===Mwe}function Wwe(e){return Array.isArray(e)?[]:{}}function vo(e,t){return t.clone!==!1&&t.isMergeableObject(e)?Tr(Wwe(e),e,t):e}function zwe(e,t,n){return e.concat(t).map(function(a){return vo(a,n)})}function xwe(e,t){if(!t.customMerge)return Tr;var n=t.customMerge(e);return typeof n=="function"?n:Tr}function Bwe(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function J_(e){return Object.keys(e).concat(Bwe(e))}function kA(e,t){try{return t in e}catch{return!1}}function Gwe(e,t){return kA(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function Hwe(e,t,n){var a={};return n.isMergeableObject(e)&&J_(e).forEach(function(s){a[s]=vo(e[s],n)}),J_(t).forEach(function(s){Gwe(e,s)||(kA(e,s)&&n.isMergeableObject(t[s])?a[s]=xwe(s,n)(e[s],t[s],n):a[s]=vo(t[s],n))}),a}function Tr(e,t,n){n=n||{},n.arrayMerge=n.arrayMerge||zwe,n.isMergeableObject=n.isMergeableObject||$we,n.cloneUnlessOtherwiseSpecified=vo;var a=Array.isArray(t),s=Array.isArray(e),r=a===s;return r?a?n.arrayMerge(e,t,n):Hwe(e,t,n):vo(t,n)}Tr.all=function(t,n){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(a,s){return Tr(a,s,n)},{})};var Vwe=Tr,jwe=Vwe,UA={exports:{}};(function(e){(function(t,n){e.exports?e.exports=n():t.parseSrcset=n()})(Ge,function(){return function(t){function n(A){return A===" "||A===" "||A===` +`||A==="\f"||A==="\r"}function a(A){var v,D=A.exec(t.substring(R));if(D)return v=D[0],R+=v.length,v}for(var s=t.length,r=/^[ \t\n\r\u000c]+/,o=/^[, \t\n\r\u000c]+/,i=/^[^ \t\n\r\u000c]+/,u=/[,]+$/,l=/^\d+$/,c=/^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,f,E,p,T,O,R=0,g=[];;){if(a(o),R>=s)return g;f=a(i),E=[],f.slice(-1)===","?(f=f.replace(u,""),S()):N()}function N(){for(a(r),p="",T="in descriptor";;){if(O=t.charAt(R),T==="in descriptor")if(n(O))p&&(E.push(p),p="",T="after descriptor");else if(O===","){R+=1,p&&E.push(p),S();return}else if(O==="(")p=p+O,T="in parens";else if(O===""){p&&E.push(p),S();return}else p=p+O;else if(T==="in parens")if(O===")")p=p+O,T="in descriptor";else if(O===""){E.push(p),S();return}else p=p+O;else if(T==="after descriptor"&&!n(O))if(O===""){S();return}else T="in descriptor",R-=1;R+=1}}function S(){var A=!1,v,D,y,b,k={},z,L,W,X,re;for(b=0;b",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(t){if(!this.source)return"";let n=this.source;t==null&&(t=eT.isColorSupported),tT&&t&&(n=tT(n));let a=n.split(/\r?\n/),s=Math.max(this.line-3,0),r=Math.min(this.line+2,a.length),o=String(r).length,i,u;if(t){let{bold:l,gray:c,red:f}=eT.createColors(!0);i=E=>l(f(E)),u=E=>c(E)}else i=u=l=>l;return a.slice(s,r).map((l,c)=>{let f=s+1+c,E=" "+(" "+f).slice(-o)+" | ";if(f===this.line){let p=u(E.replace(/\d/g," "))+l.slice(0,this.column-1).replace(/[^\t]/g," ");return i(">")+u(E)+l+` `+p+i("^")}return" "+u(E)+l}).join(` `)}toString(){let t=this.showSourceCode();return t&&(t=` `+t+` -`),this.name+": "+this.message+t}};var vf=Vd;Vd.default=Vd;var qo={};qo.isClean=Symbol("isClean");qo.my=Symbol("my");const aT={after:` +`),this.name+": "+this.message+t}};var bf=jd;jd.default=jd;var Qo={};Qo.isClean=Symbol("isClean");Qo.my=Symbol("my");const nT={after:` `,beforeClose:` `,beforeComment:` `,beforeDecl:` `,beforeOpen:" ",beforeRule:` -`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function nUe(e){return e[0].toUpperCase()+e.slice(1)}let jd=class{constructor(t){this.builder=t}atrule(t,n){let a="@"+t.name,s=t.params?this.rawValue(t,"params"):"";if(typeof t.raws.afterName<"u"?a+=t.raws.afterName:s&&(a+=" "),t.nodes)this.block(t,a+s);else{let r=(t.raws.between||"")+(n?";":"");this.builder(a+s+r,t)}}beforeAfter(t,n){let a;t.type==="decl"?a=this.raw(t,null,"beforeDecl"):t.type==="comment"?a=this.raw(t,null,"beforeComment"):n==="before"?a=this.raw(t,null,"beforeRule"):a=this.raw(t,null,"beforeClose");let s=t.parent,r=0;for(;s&&s.type!=="root";)r+=1,s=s.parent;if(a.includes(` -`)){let o=this.raw(t,null,"indent");if(o.length)for(let i=0;i0&&t.nodes[n].type==="comment";)n-=1;let a=this.raw(t,"semicolon");for(let s=0;s{if(s=u.raws[n],typeof s<"u")return!1})}return typeof s>"u"&&(s=aT[a]),o.rawCache[a]=s,s}rawBeforeClose(t){let n;return t.walk(a=>{if(a.nodes&&a.nodes.length>0&&typeof a.raws.after<"u")return n=a.raws.after,n.includes(` +`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function Qwe(e){return e[0].toUpperCase()+e.slice(1)}let Kd=class{constructor(t){this.builder=t}atrule(t,n){let a="@"+t.name,s=t.params?this.rawValue(t,"params"):"";if(typeof t.raws.afterName<"u"?a+=t.raws.afterName:s&&(a+=" "),t.nodes)this.block(t,a+s);else{let r=(t.raws.between||"")+(n?";":"");this.builder(a+s+r,t)}}beforeAfter(t,n){let a;t.type==="decl"?a=this.raw(t,null,"beforeDecl"):t.type==="comment"?a=this.raw(t,null,"beforeComment"):n==="before"?a=this.raw(t,null,"beforeRule"):a=this.raw(t,null,"beforeClose");let s=t.parent,r=0;for(;s&&s.type!=="root";)r+=1,s=s.parent;if(a.includes(` +`)){let o=this.raw(t,null,"indent");if(o.length)for(let i=0;i0&&t.nodes[n].type==="comment";)n-=1;let a=this.raw(t,"semicolon");for(let s=0;s{if(s=u.raws[n],typeof s<"u")return!1})}return typeof s>"u"&&(s=nT[a]),o.rawCache[a]=s,s}rawBeforeClose(t){let n;return t.walk(a=>{if(a.nodes&&a.nodes.length>0&&typeof a.raws.after<"u")return n=a.raws.after,n.includes(` `)&&(n=n.replace(/[^\n]+$/,"")),!1}),n&&(n=n.replace(/\S/g,"")),n}rawBeforeComment(t,n){let a;return t.walkComments(s=>{if(typeof s.raws.before<"u")return a=s.raws.before,a.includes(` `)&&(a=a.replace(/[^\n]+$/,"")),!1}),typeof a>"u"?a=this.raw(n,null,"beforeDecl"):a&&(a=a.replace(/\S/g,"")),a}rawBeforeDecl(t,n){let a;return t.walkDecls(s=>{if(typeof s.raws.before<"u")return a=s.raws.before,a.includes(` `)&&(a=a.replace(/[^\n]+$/,"")),!1}),typeof a>"u"?a=this.raw(n,null,"beforeRule"):a&&(a=a.replace(/\S/g,"")),a}rawBeforeOpen(t){let n;return t.walk(a=>{if(a.type!=="decl"&&(n=a.raws.between,typeof n<"u"))return!1}),n}rawBeforeRule(t){let n;return t.walk(a=>{if(a.nodes&&(a.parent!==t||t.first!==a)&&typeof a.raws.before<"u")return n=a.raws.before,n.includes(` `)&&(n=n.replace(/[^\n]+$/,"")),!1}),n&&(n=n.replace(/\S/g,"")),n}rawColon(t){let n;return t.walkDecls(a=>{if(typeof a.raws.between<"u")return n=a.raws.between.replace(/[^\s:]/g,""),!1}),n}rawEmptyBody(t){let n;return t.walk(a=>{if(a.nodes&&a.nodes.length===0&&(n=a.raws.after,typeof n<"u"))return!1}),n}rawIndent(t){if(t.raws.indent)return t.raws.indent;let n;return t.walk(a=>{let s=a.parent;if(s&&s!==t&&s.parent&&s.parent===t&&typeof a.raws.before<"u"){let r=a.raws.before.split(` -`);return n=r[r.length-1],n=n.replace(/\S/g,""),!1}}),n}rawSemicolon(t){let n;return t.walk(a=>{if(a.nodes&&a.nodes.length&&a.last.type==="decl"&&(n=a.raws.semicolon,typeof n<"u"))return!1}),n}rawValue(t,n){let a=t[n],s=t.raws[n];return s&&s.value===a?s.raw:a}root(t){this.body(t),t.raws.after&&this.builder(t.raws.after)}rule(t){this.block(t,this.rawValue(t,"selector")),t.raws.ownSemicolon&&this.builder(t.raws.ownSemicolon,t,"end")}stringify(t,n){if(!this[t.type])throw new Error("Unknown AST node type "+t.type+". Maybe you need to change PostCSS stringifier.");this[t.type](t,n)}};var wS=jd;jd.default=jd;let aUe=wS;function Kd(e,t){new aUe(t).stringify(e)}var xl=Kd;Kd.default=Kd;let{isClean:Ti,my:sUe}=qo,rUe=vf,oUe=wS,iUe=xl;function qd(e,t){let n=new e.constructor;for(let a in e){if(!Object.prototype.hasOwnProperty.call(e,a)||a==="proxyCache")continue;let s=e[a],r=typeof s;a==="parent"&&r==="object"?t&&(n[a]=t):a==="source"?n[a]=s:Array.isArray(s)?n[a]=s.map(o=>qd(o,n)):(r==="object"&&s!==null&&(s=qd(s)),n[a]=s)}return n}let Yd=class{constructor(t={}){this.raws={},this[Ti]=!1,this[sUe]=!0;for(let n in t)if(n==="nodes"){this.nodes=[];for(let a of t[n])typeof a.clone=="function"?this.append(a.clone()):this.append(a)}else this[n]=t[n]}addToError(t){if(t.postcssNode=this,t.stack&&this.source&&/\n\s{4}at /.test(t.stack)){let n=this.source;t.stack=t.stack.replace(/\n\s{4}at /,`$&${n.input.from}:${n.start.line}:${n.start.column}$&`)}return t}after(t){return this.parent.insertAfter(this,t),this}assign(t={}){for(let n in t)this[n]=t[n];return this}before(t){return this.parent.insertBefore(this,t),this}cleanRaws(t){delete this.raws.before,delete this.raws.after,t||delete this.raws.between}clone(t={}){let n=qd(this);for(let a in t)n[a]=t[a];return n}cloneAfter(t={}){let n=this.clone(t);return this.parent.insertAfter(this,n),n}cloneBefore(t={}){let n=this.clone(t);return this.parent.insertBefore(this,n),n}error(t,n={}){if(this.source){let{end:a,start:s}=this.rangeBy(n);return this.source.input.error(t,{column:s.column,line:s.line},{column:a.column,line:a.line},n)}return new rUe(t)}getProxyProcessor(){return{get(t,n){return n==="proxyOf"?t:n==="root"?()=>t.root().toProxy():t[n]},set(t,n,a){return t[n]===a||(t[n]=a,(n==="prop"||n==="value"||n==="name"||n==="params"||n==="important"||n==="text")&&t.markDirty()),!0}}}markDirty(){if(this[Ti]){this[Ti]=!1;let t=this;for(;t=t.parent;)t[Ti]=!1}}next(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t+1]}positionBy(t,n){let a=this.source.start;if(t.index)a=this.positionInside(t.index,n);else if(t.word){n=this.toString();let s=n.indexOf(t.word);s!==-1&&(a=this.positionInside(s,n))}return a}positionInside(t,n){let a=n||this.toString(),s=this.source.start.column,r=this.source.start.line;for(let o=0;otypeof u=="object"&&u.toJSON?u.toJSON(null,n):u);else if(typeof i=="object"&&i.toJSON)a[o]=i.toJSON(null,n);else if(o==="source"){let u=n.get(i.input);u==null&&(u=r,n.set(i.input,r),r++),a[o]={end:i.end,inputId:u,start:i.start}}else a[o]=i}return s&&(a.inputs=[...n.keys()].map(o=>o.toJSON())),a}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(t=iUe){t.stringify&&(t=t.stringify);let n="";return t(this,a=>{n+=a}),n}warn(t,n,a){let s={node:this};for(let r in a)s[r]=a[r];return t.warn(n,s)}get proxyOf(){return this}};var Bl=Yd;Yd.default=Yd;let uUe=Bl,Xd=class extends uUe{constructor(t){t&&typeof t.value<"u"&&typeof t.value!="string"&&(t={...t,value:String(t.value)}),super(t),this.type="decl"}get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}};var Gl=Xd;Xd.default=Xd;let lUe="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",cUe=(e,t=21)=>(n=t)=>{let a="",s=n;for(;s--;)a+=e[Math.random()*e.length|0];return a},dUe=(e=21)=>{let t="",n=e;for(;n--;)t+=lUe[Math.random()*64|0];return t};var EUe={nanoid:dUe,customAlphabet:cUe};let{SourceMapConsumer:sT,SourceMapGenerator:rT}=qn,{existsSync:fUe,readFileSync:pUe}=qn,{dirname:bc,join:mUe}=qn;function _Ue(e){return Buffer?Buffer.from(e,"base64").toString():window.atob(e)}let Qd=class{constructor(t,n){if(n.map===!1)return;this.loadAnnotation(t),this.inline=this.startWith(this.annotation,"data:");let a=n.map?n.map.prev:void 0,s=this.loadMap(n.from,a);!this.mapFile&&n.from&&(this.mapFile=n.from),this.mapFile&&(this.root=bc(this.mapFile)),s&&(this.text=s)}consumer(){return this.consumerCache||(this.consumerCache=new sT(this.text)),this.consumerCache}decodeInline(t){let n=/^data:application\/json;charset=utf-?8;base64,/,a=/^data:application\/json;base64,/,s=/^data:application\/json;charset=utf-?8,/,r=/^data:application\/json,/;if(s.test(t)||r.test(t))return decodeURIComponent(t.substr(RegExp.lastMatch.length));if(n.test(t)||a.test(t))return _Ue(t.substr(RegExp.lastMatch.length));let o=t.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+o)}getAnnotationURL(t){return t.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(t){return typeof t!="object"?!1:typeof t.mappings=="string"||typeof t._mappings=="string"||Array.isArray(t.sections)}loadAnnotation(t){let n=t.match(/\/\*\s*# sourceMappingURL=/gm);if(!n)return;let a=t.lastIndexOf(n.pop()),s=t.indexOf("*/",a);a>-1&&s>-1&&(this.annotation=this.getAnnotationURL(t.substring(a,s)))}loadFile(t){if(this.root=bc(t),fUe(t))return this.mapFile=t,pUe(t,"utf-8").toString().trim()}loadMap(t,n){if(n===!1)return!1;if(n){if(typeof n=="string")return n;if(typeof n=="function"){let a=n(t);if(a){let s=this.loadFile(a);if(!s)throw new Error("Unable to load previous source map: "+a.toString());return s}}else{if(n instanceof sT)return rT.fromSourceMap(n).toString();if(n instanceof rT)return n.toString();if(this.isMap(n))return JSON.stringify(n);throw new Error("Unsupported previous source map format: "+n.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let a=this.annotation;return t&&(a=mUe(bc(t),a)),this.loadFile(a)}}}startWith(t,n){return t?t.substr(0,n.length)===n:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};var US=Qd;Qd.default=Qd;let{SourceMapConsumer:TUe,SourceMapGenerator:hUe}=qn,{fileURLToPath:oT,pathToFileURL:hi}=qn,{isAbsolute:Zd,resolve:Jd}=qn,{nanoid:AUe}=EUe,Cc=qn,iT=vf,SUe=US,Dc=Symbol("fromOffsetCache"),OUe=!!(TUe&&hUe),uT=!!(Jd&&Zd),Yu=class{constructor(t,n={}){if(t===null||typeof t>"u"||typeof t=="object"&&!t.toString)throw new Error(`PostCSS received ${t} instead of CSS string`);if(this.css=t.toString(),this.css[0]==="\uFEFF"||this.css[0]==="￾"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,n.from&&(!uT||/^\w+:\/\//.test(n.from)||Zd(n.from)?this.file=n.from:this.file=Jd(n.from)),uT&&OUe){let a=new SUe(this.css,n);if(a.text){this.map=a;let s=a.consumer().file;!this.file&&s&&(this.file=this.mapResolve(s))}}this.file||(this.id=""),this.map&&(this.map.file=this.from)}error(t,n,a,s={}){let r,o,i;if(n&&typeof n=="object"){let l=n,c=a;if(typeof l.offset=="number"){let f=this.fromOffset(l.offset);n=f.line,a=f.col}else n=l.line,a=l.column;if(typeof c.offset=="number"){let f=this.fromOffset(c.offset);o=f.line,i=f.col}else o=c.line,i=c.column}else if(!a){let l=this.fromOffset(n);n=l.line,a=l.col}let u=this.origin(n,a,o,i);return u?r=new iT(t,u.endLine===void 0?u.line:{column:u.column,line:u.line},u.endLine===void 0?u.column:{column:u.endColumn,line:u.endLine},u.source,u.file,s.plugin):r=new iT(t,o===void 0?n:{column:a,line:n},o===void 0?a:{column:i,line:o},this.css,this.file,s.plugin),r.input={column:a,endColumn:i,endLine:o,line:n,source:this.css},this.file&&(hi&&(r.input.url=hi(this.file).toString()),r.input.file=this.file),r}fromOffset(t){let n,a;if(this[Dc])a=this[Dc];else{let r=this.css.split(` -`);a=new Array(r.length);let o=0;for(let i=0,u=r.length;i=n)s=a.length-1;else{let r=a.length-2,o;for(;s>1),t=a[o+1])s=o+1;else{s=o;break}}return{col:t-a[s]+1,line:s+1}}mapResolve(t){return/^\w+:\/\//.test(t)?t:Jd(this.map.consumer().sourceRoot||this.map.root||".",t)}origin(t,n,a,s){if(!this.map)return!1;let r=this.map.consumer(),o=r.originalPositionFor({column:n,line:t});if(!o.source)return!1;let i;typeof a=="number"&&(i=r.originalPositionFor({column:s,line:a}));let u;Zd(o.source)?u=hi(o.source):u=new URL(o.source,this.map.consumer().sourceRoot||hi(this.map.mapFile));let l={column:o.column,endColumn:i&&i.column,endLine:i&&i.line,line:o.line,url:u.toString()};if(u.protocol==="file:")if(oT)l.file=oT(u);else throw new Error("file: protocol is not available in this PostCSS build");let c=r.sourceContentFor(o.source);return c&&(l.source=c),l}toJSON(){let t={};for(let n of["hasBOM","css","file","id"])this[n]!=null&&(t[n]=this[n]);return this.map&&(t.map={...this.map},t.map.consumerCache&&(t.map.consumerCache=void 0)),t}get from(){return this.file||this.id}};var Hl=Yu;Yu.default=Yu;Cc&&Cc.registerInput&&Cc.registerInput(Yu);let{SourceMapConsumer:MS,SourceMapGenerator:ji}=qn,{dirname:Ki,relative:FS,resolve:WS,sep:zS}=qn,{pathToFileURL:lT}=qn,gUe=Hl,IUe=!!(MS&&ji),RUe=!!(Ki&&WS&&FS&&zS),NUe=class{constructor(t,n,a,s){this.stringify=t,this.mapOpts=a.map||{},this.root=n,this.opts=a,this.css=s,this.originalCSS=s,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let t;this.isInline()?t="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?t=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?t=this.mapOpts.annotation(this.opts.to,this.root):t=this.outputFile()+".map";let n=` +`);return n=r[r.length-1],n=n.replace(/\S/g,""),!1}}),n}rawSemicolon(t){let n;return t.walk(a=>{if(a.nodes&&a.nodes.length&&a.last.type==="decl"&&(n=a.raws.semicolon,typeof n<"u"))return!1}),n}rawValue(t,n){let a=t[n],s=t.raws[n];return s&&s.value===a?s.raw:a}root(t){this.body(t),t.raws.after&&this.builder(t.raws.after)}rule(t){this.block(t,this.rawValue(t,"selector")),t.raws.ownSemicolon&&this.builder(t.raws.ownSemicolon,t,"end")}stringify(t,n){if(!this[t.type])throw new Error("Unknown AST node type "+t.type+". Maybe you need to change PostCSS stringifier.");this[t.type](t,n)}};var FA=Kd;Kd.default=Kd;let Zwe=FA;function qd(e,t){new Zwe(t).stringify(e)}var Bl=qd;qd.default=qd;let{isClean:Ai,my:Jwe}=Qo,e5e=bf,t5e=FA,n5e=Bl;function Yd(e,t){let n=new e.constructor;for(let a in e){if(!Object.prototype.hasOwnProperty.call(e,a)||a==="proxyCache")continue;let s=e[a],r=typeof s;a==="parent"&&r==="object"?t&&(n[a]=t):a==="source"?n[a]=s:Array.isArray(s)?n[a]=s.map(o=>Yd(o,n)):(r==="object"&&s!==null&&(s=Yd(s)),n[a]=s)}return n}let Xd=class{constructor(t={}){this.raws={},this[Ai]=!1,this[Jwe]=!0;for(let n in t)if(n==="nodes"){this.nodes=[];for(let a of t[n])typeof a.clone=="function"?this.append(a.clone()):this.append(a)}else this[n]=t[n]}addToError(t){if(t.postcssNode=this,t.stack&&this.source&&/\n\s{4}at /.test(t.stack)){let n=this.source;t.stack=t.stack.replace(/\n\s{4}at /,`$&${n.input.from}:${n.start.line}:${n.start.column}$&`)}return t}after(t){return this.parent.insertAfter(this,t),this}assign(t={}){for(let n in t)this[n]=t[n];return this}before(t){return this.parent.insertBefore(this,t),this}cleanRaws(t){delete this.raws.before,delete this.raws.after,t||delete this.raws.between}clone(t={}){let n=Yd(this);for(let a in t)n[a]=t[a];return n}cloneAfter(t={}){let n=this.clone(t);return this.parent.insertAfter(this,n),n}cloneBefore(t={}){let n=this.clone(t);return this.parent.insertBefore(this,n),n}error(t,n={}){if(this.source){let{end:a,start:s}=this.rangeBy(n);return this.source.input.error(t,{column:s.column,line:s.line},{column:a.column,line:a.line},n)}return new e5e(t)}getProxyProcessor(){return{get(t,n){return n==="proxyOf"?t:n==="root"?()=>t.root().toProxy():t[n]},set(t,n,a){return t[n]===a||(t[n]=a,(n==="prop"||n==="value"||n==="name"||n==="params"||n==="important"||n==="text")&&t.markDirty()),!0}}}markDirty(){if(this[Ai]){this[Ai]=!1;let t=this;for(;t=t.parent;)t[Ai]=!1}}next(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t+1]}positionBy(t,n){let a=this.source.start;if(t.index)a=this.positionInside(t.index,n);else if(t.word){n=this.toString();let s=n.indexOf(t.word);s!==-1&&(a=this.positionInside(s,n))}return a}positionInside(t,n){let a=n||this.toString(),s=this.source.start.column,r=this.source.start.line;for(let o=0;otypeof u=="object"&&u.toJSON?u.toJSON(null,n):u);else if(typeof i=="object"&&i.toJSON)a[o]=i.toJSON(null,n);else if(o==="source"){let u=n.get(i.input);u==null&&(u=r,n.set(i.input,r),r++),a[o]={end:i.end,inputId:u,start:i.start}}else a[o]=i}return s&&(a.inputs=[...n.keys()].map(o=>o.toJSON())),a}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(t=n5e){t.stringify&&(t=t.stringify);let n="";return t(this,a=>{n+=a}),n}warn(t,n,a){let s={node:this};for(let r in a)s[r]=a[r];return t.warn(n,s)}get proxyOf(){return this}};var Gl=Xd;Xd.default=Xd;let a5e=Gl,Qd=class extends a5e{constructor(t){t&&typeof t.value<"u"&&typeof t.value!="string"&&(t={...t,value:String(t.value)}),super(t),this.type="decl"}get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}};var Hl=Qd;Qd.default=Qd;let s5e="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",r5e=(e,t=21)=>(n=t)=>{let a="",s=n;for(;s--;)a+=e[Math.random()*e.length|0];return a},o5e=(e=21)=>{let t="",n=e;for(;n--;)t+=s5e[Math.random()*64|0];return t};var i5e={nanoid:o5e,customAlphabet:r5e};let{SourceMapConsumer:aT,SourceMapGenerator:sT}=Yn,{existsSync:u5e,readFileSync:l5e}=Yn,{dirname:Cc,join:c5e}=Yn;function d5e(e){return Buffer?Buffer.from(e,"base64").toString():window.atob(e)}let Zd=class{constructor(t,n){if(n.map===!1)return;this.loadAnnotation(t),this.inline=this.startWith(this.annotation,"data:");let a=n.map?n.map.prev:void 0,s=this.loadMap(n.from,a);!this.mapFile&&n.from&&(this.mapFile=n.from),this.mapFile&&(this.root=Cc(this.mapFile)),s&&(this.text=s)}consumer(){return this.consumerCache||(this.consumerCache=new aT(this.text)),this.consumerCache}decodeInline(t){let n=/^data:application\/json;charset=utf-?8;base64,/,a=/^data:application\/json;base64,/,s=/^data:application\/json;charset=utf-?8,/,r=/^data:application\/json,/;if(s.test(t)||r.test(t))return decodeURIComponent(t.substr(RegExp.lastMatch.length));if(n.test(t)||a.test(t))return d5e(t.substr(RegExp.lastMatch.length));let o=t.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+o)}getAnnotationURL(t){return t.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(t){return typeof t!="object"?!1:typeof t.mappings=="string"||typeof t._mappings=="string"||Array.isArray(t.sections)}loadAnnotation(t){let n=t.match(/\/\*\s*# sourceMappingURL=/gm);if(!n)return;let a=t.lastIndexOf(n.pop()),s=t.indexOf("*/",a);a>-1&&s>-1&&(this.annotation=this.getAnnotationURL(t.substring(a,s)))}loadFile(t){if(this.root=Cc(t),u5e(t))return this.mapFile=t,l5e(t,"utf-8").toString().trim()}loadMap(t,n){if(n===!1)return!1;if(n){if(typeof n=="string")return n;if(typeof n=="function"){let a=n(t);if(a){let s=this.loadFile(a);if(!s)throw new Error("Unable to load previous source map: "+a.toString());return s}}else{if(n instanceof aT)return sT.fromSourceMap(n).toString();if(n instanceof sT)return n.toString();if(this.isMap(n))return JSON.stringify(n);throw new Error("Unsupported previous source map format: "+n.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let a=this.annotation;return t&&(a=c5e(Cc(t),a)),this.loadFile(a)}}}startWith(t,n){return t?t.substr(0,n.length)===n:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};var WA=Zd;Zd.default=Zd;let{SourceMapConsumer:E5e,SourceMapGenerator:f5e}=Yn,{fileURLToPath:rT,pathToFileURL:Oi}=Yn,{isAbsolute:Jd,resolve:eE}=Yn,{nanoid:p5e}=i5e,Dc=Yn,oT=bf,m5e=WA,Pc=Symbol("fromOffsetCache"),_5e=!!(E5e&&f5e),iT=!!(eE&&Jd),Qu=class{constructor(t,n={}){if(t===null||typeof t>"u"||typeof t=="object"&&!t.toString)throw new Error(`PostCSS received ${t} instead of CSS string`);if(this.css=t.toString(),this.css[0]==="\uFEFF"||this.css[0]==="￾"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,n.from&&(!iT||/^\w+:\/\//.test(n.from)||Jd(n.from)?this.file=n.from:this.file=eE(n.from)),iT&&_5e){let a=new m5e(this.css,n);if(a.text){this.map=a;let s=a.consumer().file;!this.file&&s&&(this.file=this.mapResolve(s))}}this.file||(this.id=""),this.map&&(this.map.file=this.from)}error(t,n,a,s={}){let r,o,i;if(n&&typeof n=="object"){let l=n,c=a;if(typeof l.offset=="number"){let f=this.fromOffset(l.offset);n=f.line,a=f.col}else n=l.line,a=l.column;if(typeof c.offset=="number"){let f=this.fromOffset(c.offset);o=f.line,i=f.col}else o=c.line,i=c.column}else if(!a){let l=this.fromOffset(n);n=l.line,a=l.col}let u=this.origin(n,a,o,i);return u?r=new oT(t,u.endLine===void 0?u.line:{column:u.column,line:u.line},u.endLine===void 0?u.column:{column:u.endColumn,line:u.endLine},u.source,u.file,s.plugin):r=new oT(t,o===void 0?n:{column:a,line:n},o===void 0?a:{column:i,line:o},this.css,this.file,s.plugin),r.input={column:a,endColumn:i,endLine:o,line:n,source:this.css},this.file&&(Oi&&(r.input.url=Oi(this.file).toString()),r.input.file=this.file),r}fromOffset(t){let n,a;if(this[Pc])a=this[Pc];else{let r=this.css.split(` +`);a=new Array(r.length);let o=0;for(let i=0,u=r.length;i=n)s=a.length-1;else{let r=a.length-2,o;for(;s>1),t=a[o+1])s=o+1;else{s=o;break}}return{col:t-a[s]+1,line:s+1}}mapResolve(t){return/^\w+:\/\//.test(t)?t:eE(this.map.consumer().sourceRoot||this.map.root||".",t)}origin(t,n,a,s){if(!this.map)return!1;let r=this.map.consumer(),o=r.originalPositionFor({column:n,line:t});if(!o.source)return!1;let i;typeof a=="number"&&(i=r.originalPositionFor({column:s,line:a}));let u;Jd(o.source)?u=Oi(o.source):u=new URL(o.source,this.map.consumer().sourceRoot||Oi(this.map.mapFile));let l={column:o.column,endColumn:i&&i.column,endLine:i&&i.line,line:o.line,url:u.toString()};if(u.protocol==="file:")if(rT)l.file=rT(u);else throw new Error("file: protocol is not available in this PostCSS build");let c=r.sourceContentFor(o.source);return c&&(l.source=c),l}toJSON(){let t={};for(let n of["hasBOM","css","file","id"])this[n]!=null&&(t[n]=this[n]);return this.map&&(t.map={...this.map},t.map.consumerCache&&(t.map.consumerCache=void 0)),t}get from(){return this.file||this.id}};var Vl=Qu;Qu.default=Qu;Dc&&Dc.registerInput&&Dc.registerInput(Qu);let{SourceMapConsumer:zA,SourceMapGenerator:Yi}=Yn,{dirname:Xi,relative:xA,resolve:BA,sep:GA}=Yn,{pathToFileURL:uT}=Yn,T5e=Vl,h5e=!!(zA&&Yi),S5e=!!(Xi&&BA&&xA&&GA),A5e=class{constructor(t,n,a,s){this.stringify=t,this.mapOpts=a.map||{},this.root=n,this.opts=a,this.css=s,this.originalCSS=s,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let t;this.isInline()?t="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?t=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?t=this.mapOpts.annotation(this.opts.to,this.root):t=this.outputFile()+".map";let n=` `;this.css.includes(`\r `)&&(n=`\r -`),this.css+=n+"/*# sourceMappingURL="+t+" */"}applyPrevMaps(){for(let t of this.previous()){let n=this.toUrl(this.path(t.file)),a=t.root||Ki(t.file),s;this.mapOpts.sourcesContent===!1?(s=new MS(t.text),s.sourcesContent&&(s.sourcesContent=null)):s=t.consumer(),this.map.applySourceMap(s,n,this.toUrl(this.path(a)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1)if(this.root){let t;for(let n=this.root.nodes.length-1;n>=0;n--)t=this.root.nodes[n],t.type==="comment"&&t.text.indexOf("# sourceMappingURL=")===0&&this.root.removeChild(n)}else this.css&&(this.css=this.css.replace(/\n*?\/\*#[\S\s]*?\*\/$/gm,""))}generate(){if(this.clearAnnotation(),RUe&&IUe&&this.isMap())return this.generateMap();{let t="";return this.stringify(this.root,n=>{t+=n}),[t]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let t=this.previous()[0].consumer();t.file=this.outputFile(),this.map=ji.fromSourceMap(t,{ignoreInvalidMapping:!0})}else this.map=new ji({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):""});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new ji({file:this.outputFile(),ignoreInvalidMapping:!0});let t=1,n=1,a="",s={generated:{column:0,line:0},original:{column:0,line:0},source:""},r,o;this.stringify(this.root,(i,u,l)=>{if(this.css+=i,u&&l!=="end"&&(s.generated.line=t,s.generated.column=n-1,u.source&&u.source.start?(s.source=this.sourcePath(u),s.original.line=u.source.start.line,s.original.column=u.source.start.column-1,this.map.addMapping(s)):(s.source=a,s.original.line=1,s.original.column=0,this.map.addMapping(s))),r=i.match(/\n/g),r?(t+=r.length,o=i.lastIndexOf(` -`),n=i.length-o):n+=i.length,u&&l!=="start"){let c=u.parent||{raws:{}};(!(u.type==="decl"||u.type==="atrule"&&!u.nodes)||u!==c.last||c.raws.semicolon)&&(u.source&&u.source.end?(s.source=this.sourcePath(u),s.original.line=u.source.end.line,s.original.column=u.source.end.column-1,s.generated.line=t,s.generated.column=n-2,this.map.addMapping(s)):(s.source=a,s.original.line=1,s.original.column=0,s.generated.line=t,s.generated.column=n-1,this.map.addMapping(s)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(t=>t.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let t=this.mapOpts.annotation;return typeof t<"u"&&t!==!0?!1:this.previous().length?this.previous().some(n=>n.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(t=>t.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(t){if(this.mapOpts.absolute||t.charCodeAt(0)===60||/^\w+:\/\//.test(t))return t;let n=this.memoizedPaths.get(t);if(n)return n;let a=this.opts.to?Ki(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(a=Ki(WS(a,this.mapOpts.annotation)));let s=FS(a,t);return this.memoizedPaths.set(t,s),s}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(t=>{if(t.source&&t.source.input.map){let n=t.source.input.map;this.previousMaps.includes(n)||this.previousMaps.push(n)}});else{let t=new gUe(this.originalCSS,this.opts);t.map&&this.previousMaps.push(t.map)}return this.previousMaps}setSourcesContent(){let t={};if(this.root)this.root.walk(n=>{if(n.source){let a=n.source.input.from;if(a&&!t[a]){t[a]=!0;let s=this.usesFileUrls?this.toFileUrl(a):this.toUrl(this.path(a));this.map.setSourceContent(s,n.source.input.css)}}});else if(this.css){let n=this.opts.from?this.toUrl(this.path(this.opts.from)):"";this.map.setSourceContent(n,this.css)}}sourcePath(t){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(t.source.input.from):this.toUrl(this.path(t.source.input.from))}toBase64(t){return Buffer?Buffer.from(t).toString("base64"):window.btoa(unescape(encodeURIComponent(t)))}toFileUrl(t){let n=this.memoizedFileURLs.get(t);if(n)return n;if(lT){let a=lT(t).toString();return this.memoizedFileURLs.set(t,a),a}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(t){let n=this.memoizedURLs.get(t);if(n)return n;zS==="\\"&&(t=t.replace(/\\/g,"/"));let a=encodeURI(t).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(t,a),a}};var xS=NUe;let vUe=Bl,eE=class extends vUe{constructor(t){super(t),this.type="comment"}};var Vl=eE;eE.default=eE;let{isClean:BS,my:GS}=qo,HS=Gl,VS=Vl,bUe=Bl,jS,bf,Cf,KS;function qS(e){return e.map(t=>(t.nodes&&(t.nodes=qS(t.nodes)),delete t.source,t))}function YS(e){if(e[BS]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)YS(t)}let va=class XS extends bUe{append(...t){for(let n of t){let a=this.normalize(n,this.last);for(let s of a)this.proxyOf.nodes.push(s)}return this.markDirty(),this}cleanRaws(t){if(super.cleanRaws(t),this.nodes)for(let n of this.nodes)n.cleanRaws(t)}each(t){if(!this.proxyOf.nodes)return;let n=this.getIterator(),a,s;for(;this.indexes[n]t[n](...a.map(s=>typeof s=="function"?(r,o)=>s(r.toProxy(),o):s)):n==="every"||n==="some"?a=>t[n]((s,...r)=>a(s.toProxy(),...r)):n==="root"?()=>t.root().toProxy():n==="nodes"?t.nodes.map(a=>a.toProxy()):n==="first"||n==="last"?t[n].toProxy():t[n]:t[n]},set(t,n,a){return t[n]===a||(t[n]=a,(n==="name"||n==="params"||n==="selector")&&t.markDirty()),!0}}}index(t){return typeof t=="number"?t:(t.proxyOf&&(t=t.proxyOf),this.proxyOf.nodes.indexOf(t))}insertAfter(t,n){let a=this.index(t),s=this.normalize(n,this.proxyOf.nodes[a]).reverse();a=this.index(t);for(let o of s)this.proxyOf.nodes.splice(a+1,0,o);let r;for(let o in this.indexes)r=this.indexes[o],a"u")t=[];else if(Array.isArray(t)){t=t.slice(0);for(let s of t)s.parent&&s.parent.removeChild(s,"ignore")}else if(t.type==="root"&&this.type!=="document"){t=t.nodes.slice(0);for(let s of t)s.parent&&s.parent.removeChild(s,"ignore")}else if(t.type)t=[t];else if(t.prop){if(typeof t.value>"u")throw new Error("Value field is missed in node creation");typeof t.value!="string"&&(t.value=String(t.value)),t=[new HS(t)]}else if(t.selector)t=[new bf(t)];else if(t.name)t=[new Cf(t)];else if(t.text)t=[new VS(t)];else throw new Error("Unknown node type in node creation");return t.map(s=>(s[GS]||XS.rebuild(s),s=s.proxyOf,s.parent&&s.parent.removeChild(s),s[BS]&&YS(s),typeof s.raws.before>"u"&&n&&typeof n.raws.before<"u"&&(s.raws.before=n.raws.before.replace(/\S/g,"")),s.parent=this.proxyOf,s))}prepend(...t){t=t.reverse();for(let n of t){let a=this.normalize(n,this.first,"prepend").reverse();for(let s of a)this.proxyOf.nodes.unshift(s);for(let s in this.indexes)this.indexes[s]=this.indexes[s]+a.length}return this.markDirty(),this}push(t){return t.parent=this,this.proxyOf.nodes.push(t),this}removeAll(){for(let t of this.proxyOf.nodes)t.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(t){t=this.index(t),this.proxyOf.nodes[t].parent=void 0,this.proxyOf.nodes.splice(t,1);let n;for(let a in this.indexes)n=this.indexes[a],n>=t&&(this.indexes[a]=n-1);return this.markDirty(),this}replaceValues(t,n,a){return a||(a=n,n={}),this.walkDecls(s=>{n.props&&!n.props.includes(s.prop)||n.fast&&!s.value.includes(n.fast)||(s.value=s.value.replace(t,a))}),this.markDirty(),this}some(t){return this.nodes.some(t)}walk(t){return this.each((n,a)=>{let s;try{s=t(n,a)}catch(r){throw n.addToError(r)}return s!==!1&&n.walk&&(s=n.walk(t)),s})}walkAtRules(t,n){return n?t instanceof RegExp?this.walk((a,s)=>{if(a.type==="atrule"&&t.test(a.name))return n(a,s)}):this.walk((a,s)=>{if(a.type==="atrule"&&a.name===t)return n(a,s)}):(n=t,this.walk((a,s)=>{if(a.type==="atrule")return n(a,s)}))}walkComments(t){return this.walk((n,a)=>{if(n.type==="comment")return t(n,a)})}walkDecls(t,n){return n?t instanceof RegExp?this.walk((a,s)=>{if(a.type==="decl"&&t.test(a.prop))return n(a,s)}):this.walk((a,s)=>{if(a.type==="decl"&&a.prop===t)return n(a,s)}):(n=t,this.walk((a,s)=>{if(a.type==="decl")return n(a,s)}))}walkRules(t,n){return n?t instanceof RegExp?this.walk((a,s)=>{if(a.type==="rule"&&t.test(a.selector))return n(a,s)}):this.walk((a,s)=>{if(a.type==="rule"&&a.selector===t)return n(a,s)}):(n=t,this.walk((a,s)=>{if(a.type==="rule")return n(a,s)}))}get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}};va.registerParse=e=>{jS=e};va.registerRule=e=>{bf=e};va.registerAtRule=e=>{Cf=e};va.registerRoot=e=>{KS=e};var ks=va;va.default=va;va.rebuild=e=>{e.type==="atrule"?Object.setPrototypeOf(e,Cf.prototype):e.type==="rule"?Object.setPrototypeOf(e,bf.prototype):e.type==="decl"?Object.setPrototypeOf(e,HS.prototype):e.type==="comment"?Object.setPrototypeOf(e,VS.prototype):e.type==="root"&&Object.setPrototypeOf(e,KS.prototype),e[GS]=!0,e.nodes&&e.nodes.forEach(t=>{va.rebuild(t)})};let CUe=ks,QS,ZS,No=class extends CUe{constructor(t){super({type:"document",...t}),this.nodes||(this.nodes=[])}toResult(t={}){return new QS(new ZS,this,t).stringify()}};No.registerLazyResult=e=>{QS=e};No.registerProcessor=e=>{ZS=e};var Df=No;No.default=No;let tE=class{constructor(t,n={}){if(this.type="warning",this.text=t,n.node&&n.node.source){let a=n.node.rangeBy(n);this.line=a.start.line,this.column=a.start.column,this.endLine=a.end.line,this.endColumn=a.end.column}for(let a in n)this[a]=n[a]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};var JS=tE;tE.default=tE;let DUe=JS,nE=class{constructor(t,n,a){this.processor=t,this.messages=[],this.root=n,this.opts=a,this.css=void 0,this.map=void 0}toString(){return this.css}warn(t,n={}){n.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(n.plugin=this.lastPlugin.postcssPlugin);let a=new DUe(t,n);return this.messages.push(a),a}warnings(){return this.messages.filter(t=>t.type==="warning")}get content(){return this.css}};var Pf=nE;nE.default=nE;const Pc=39,cT=34,Ai=92,dT=47,Si=10,Wr=32,Oi=12,gi=9,Ii=13,PUe=91,yUe=93,LUe=40,$Ue=41,kUe=123,wUe=125,UUe=59,MUe=42,FUe=58,WUe=64,Ri=/[\t\n\f\r "#'()/;[\\\]{}]/g,Ni=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,zUe=/.[\r\n"'(/\\]/,ET=/[\da-f]/i;var xUe=function(t,n={}){let a=t.css.valueOf(),s=n.ignoreErrors,r,o,i,u,l,c,f,E,p,T,O=a.length,N=0,g=[],R=[];function A(){return N}function S(b){throw t.error("Unclosed "+b,N)}function v(){return R.length===0&&N>=O}function C(b){if(R.length)return R.pop();if(N>=O)return;let k=b?b.ignoreUnclosed:!1;switch(r=a.charCodeAt(N),r){case Si:case Wr:case gi:case Ii:case Oi:{o=N;do o+=1,r=a.charCodeAt(o);while(r===Wr||r===Si||r===gi||r===Ii||r===Oi);T=["space",a.slice(N,o)],N=o-1;break}case PUe:case yUe:case kUe:case wUe:case FUe:case UUe:case $Ue:{let z=String.fromCharCode(r);T=[z,z,N];break}case LUe:{if(E=g.length?g.pop()[1]:"",p=a.charCodeAt(N+1),E==="url"&&p!==Pc&&p!==cT&&p!==Wr&&p!==Si&&p!==gi&&p!==Oi&&p!==Ii){o=N;do{if(c=!1,o=a.indexOf(")",o+1),o===-1)if(s||k){o=N;break}else S("bracket");for(f=o;a.charCodeAt(f-1)===Ai;)f-=1,c=!c}while(c);T=["brackets",a.slice(N,o+1),N,o],N=o}else o=a.indexOf(")",N+1),u=a.slice(N,o+1),o===-1||zUe.test(u)?T=["(","(",N]:(T=["brackets",u,N,o],N=o);break}case Pc:case cT:{i=r===Pc?"'":'"',o=N;do{if(c=!1,o=a.indexOf(i,o+1),o===-1)if(s||k){o=N+1;break}else S("string");for(f=o;a.charCodeAt(f-1)===Ai;)f-=1,c=!c}while(c);T=["string",a.slice(N,o+1),N,o],N=o;break}case WUe:{Ri.lastIndex=N+1,Ri.test(a),Ri.lastIndex===0?o=a.length-1:o=Ri.lastIndex-2,T=["at-word",a.slice(N,o+1),N,o],N=o;break}case Ai:{for(o=N,l=!0;a.charCodeAt(o+1)===Ai;)o+=1,l=!l;if(r=a.charCodeAt(o+1),l&&r!==dT&&r!==Wr&&r!==Si&&r!==gi&&r!==Ii&&r!==Oi&&(o+=1,ET.test(a.charAt(o)))){for(;ET.test(a.charAt(o+1));)o+=1;a.charCodeAt(o+1)===Wr&&(o+=1)}T=["word",a.slice(N,o+1),N,o],N=o;break}default:{r===dT&&a.charCodeAt(N+1)===MUe?(o=a.indexOf("*/",N+2)+1,o===0&&(s||k?o=a.length:S("comment")),T=["comment",a.slice(N,o+1),N,o],N=o):(Ni.lastIndex=N+1,Ni.test(a),Ni.lastIndex===0?o=a.length-1:o=Ni.lastIndex-2,T=["word",a.slice(N,o+1),N,o],g.push(T),N=o);break}}return N++,T}function y(b){R.push(b)}return{back:y,endOfFile:v,nextToken:C,position:A}};let eO=ks,Xu=class extends eO{constructor(t){super(t),this.type="atrule"}append(...t){return this.proxyOf.nodes||(this.nodes=[]),super.append(...t)}prepend(...t){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...t)}};var yf=Xu;Xu.default=Xu;eO.registerAtRule(Xu);let tO=ks,nO,aO,mr=class extends tO{constructor(t){super(t),this.type="root",this.nodes||(this.nodes=[])}normalize(t,n,a){let s=super.normalize(t);if(n){if(a==="prepend")this.nodes.length>1?n.raws.before=this.nodes[1].raws.before:delete n.raws.before;else if(this.first!==n)for(let r of s)r.raws.before=n.raws.before}return s}removeChild(t,n){let a=this.index(t);return!n&&a===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[a].raws.before),super.removeChild(t)}toResult(t={}){return new nO(new aO,this,t).stringify()}};mr.registerLazyResult=e=>{nO=e};mr.registerProcessor=e=>{aO=e};var Yo=mr;mr.default=mr;tO.registerRoot(mr);let vo={comma(e){return vo.split(e,[","],!0)},space(e){let t=[" ",` -`," "];return vo.split(e,t)},split(e,t,n){let a=[],s="",r=!1,o=0,i=!1,u="",l=!1;for(let c of e)l?l=!1:c==="\\"?l=!0:i?c===u&&(i=!1):c==='"'||c==="'"?(i=!0,u=c):c==="("?o+=1:c===")"?o>0&&(o-=1):o===0&&t.includes(c)&&(r=!0),r?(s!==""&&a.push(s.trim()),s="",r=!1):s+=c;return(n||s!=="")&&a.push(s.trim()),a}};var sO=vo;vo.default=vo;let rO=ks,BUe=sO,Qu=class extends rO{constructor(t){super(t),this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return BUe.comma(this.selector)}set selectors(t){let n=this.selector?this.selector.match(/,\s*/):null,a=n?n[0]:","+this.raw("between","beforeOpen");this.selector=t.join(a)}};var Lf=Qu;Qu.default=Qu;rO.registerRule(Qu);let GUe=Gl,HUe=xUe,VUe=Vl,jUe=yf,KUe=Yo,fT=Lf;const pT={empty:!0,space:!0};function qUe(e){for(let t=e.length-1;t>=0;t--){let n=e[t],a=n[3]||n[2];if(a)return a}}let YUe=class{constructor(t){this.input=t,this.root=new KUe,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:t,start:{column:1,line:1,offset:0}}}atrule(t){let n=new jUe;n.name=t[1].slice(1),n.name===""&&this.unnamedAtrule(n,t),this.init(n,t[2]);let a,s,r,o=!1,i=!1,u=[],l=[];for(;!this.tokenizer.endOfFile();){if(t=this.tokenizer.nextToken(),a=t[0],a==="("||a==="["?l.push(a==="("?")":"]"):a==="{"&&l.length>0?l.push("}"):a===l[l.length-1]&&l.pop(),l.length===0)if(a===";"){n.source.end=this.getPosition(t[2]),n.source.end.offset++,this.semicolon=!0;break}else if(a==="{"){i=!0;break}else if(a==="}"){if(u.length>0){for(r=u.length-1,s=u[r];s&&s[0]==="space";)s=u[--r];s&&(n.source.end=this.getPosition(s[3]||s[2]),n.source.end.offset++)}this.end(t);break}else u.push(t);else u.push(t);if(this.tokenizer.endOfFile()){o=!0;break}}n.raws.between=this.spacesAndCommentsFromEnd(u),u.length?(n.raws.afterName=this.spacesAndCommentsFromStart(u),this.raw(n,"params",u),o&&(t=u[u.length-1],n.source.end=this.getPosition(t[3]||t[2]),n.source.end.offset++,this.spaces=n.raws.between,n.raws.between="")):(n.raws.afterName="",n.params=""),i&&(n.nodes=[],this.current=n)}checkMissedSemicolon(t){let n=this.colon(t);if(n===!1)return;let a=0,s;for(let r=n-1;r>=0&&(s=t[r],!(s[0]!=="space"&&(a+=1,a===2)));r--);throw this.input.error("Missed semicolon",s[0]==="word"?s[3]+1:s[2])}colon(t){let n=0,a,s,r;for(let[o,i]of t.entries()){if(a=i,s=a[0],s==="("&&(n+=1),s===")"&&(n-=1),n===0&&s===":")if(!r)this.doubleColon(a);else{if(r[0]==="word"&&r[1]==="progid")continue;return o}r=a}return!1}comment(t){let n=new VUe;this.init(n,t[2]),n.source.end=this.getPosition(t[3]||t[2]),n.source.end.offset++;let a=t[1].slice(2,-2);if(/^\s*$/.test(a))n.text="",n.raws.left=a,n.raws.right="";else{let s=a.match(/^(\s*)([^]*\S)(\s*)$/);n.text=s[2],n.raws.left=s[1],n.raws.right=s[3]}}createTokenizer(){this.tokenizer=HUe(this.input)}decl(t,n){let a=new GUe;this.init(a,t[0][2]);let s=t[t.length-1];for(s[0]===";"&&(this.semicolon=!0,t.pop()),a.source.end=this.getPosition(s[3]||s[2]||qUe(t)),a.source.end.offset++;t[0][0]!=="word";)t.length===1&&this.unknownWord(t),a.raws.before+=t.shift()[1];for(a.source.start=this.getPosition(t[0][2]),a.prop="";t.length;){let l=t[0][0];if(l===":"||l==="space"||l==="comment")break;a.prop+=t.shift()[1]}a.raws.between="";let r;for(;t.length;)if(r=t.shift(),r[0]===":"){a.raws.between+=r[1];break}else r[0]==="word"&&/\w/.test(r[1])&&this.unknownWord([r]),a.raws.between+=r[1];(a.prop[0]==="_"||a.prop[0]==="*")&&(a.raws.before+=a.prop[0],a.prop=a.prop.slice(1));let o=[],i;for(;t.length&&(i=t[0][0],!(i!=="space"&&i!=="comment"));)o.push(t.shift());this.precheckMissedSemicolon(t);for(let l=t.length-1;l>=0;l--){if(r=t[l],r[1].toLowerCase()==="!important"){a.important=!0;let c=this.stringFrom(t,l);c=this.spacesFromEnd(t)+c,c!==" !important"&&(a.raws.important=c);break}else if(r[1].toLowerCase()==="important"){let c=t.slice(0),f="";for(let E=l;E>0;E--){let p=c[E][0];if(f.trim().indexOf("!")===0&&p!=="space")break;f=c.pop()[1]+f}f.trim().indexOf("!")===0&&(a.important=!0,a.raws.important=f,t=c)}if(r[0]!=="space"&&r[0]!=="comment")break}t.some(l=>l[0]!=="space"&&l[0]!=="comment")&&(a.raws.between+=o.map(l=>l[1]).join(""),o=[]),this.raw(a,"value",o.concat(t),n),a.value.includes(":")&&!n&&this.checkMissedSemicolon(t)}doubleColon(t){throw this.input.error("Double colon",{offset:t[2]},{offset:t[2]+t[1].length})}emptyRule(t){let n=new fT;this.init(n,t[2]),n.selector="",n.raws.between="",this.current=n}end(t){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(t[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(t)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(t){if(this.spaces+=t[1],this.current.nodes){let n=this.current.nodes[this.current.nodes.length-1];n&&n.type==="rule"&&!n.raws.ownSemicolon&&(n.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(t){let n=this.input.fromOffset(t);return{column:n.col,line:n.line,offset:t}}init(t,n){this.current.push(t),t.source={input:this.input,start:this.getPosition(n)},t.raws.before=this.spaces,this.spaces="",t.type!=="comment"&&(this.semicolon=!1)}other(t){let n=!1,a=null,s=!1,r=null,o=[],i=t[1].startsWith("--"),u=[],l=t;for(;l;){if(a=l[0],u.push(l),a==="("||a==="[")r||(r=l),o.push(a==="("?")":"]");else if(i&&s&&a==="{")r||(r=l),o.push("}");else if(o.length===0)if(a===";")if(s){this.decl(u,i);return}else break;else if(a==="{"){this.rule(u);return}else if(a==="}"){this.tokenizer.back(u.pop()),n=!0;break}else a===":"&&(s=!0);else a===o[o.length-1]&&(o.pop(),o.length===0&&(r=null));l=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(n=!0),o.length>0&&this.unclosedBracket(r),n&&s){if(!i)for(;u.length&&(l=u[u.length-1][0],!(l!=="space"&&l!=="comment"));)this.tokenizer.back(u.pop());this.decl(u,i)}else this.unknownWord(u)}parse(){let t;for(;!this.tokenizer.endOfFile();)switch(t=this.tokenizer.nextToken(),t[0]){case"space":this.spaces+=t[1];break;case";":this.freeSemicolon(t);break;case"}":this.end(t);break;case"comment":this.comment(t);break;case"at-word":this.atrule(t);break;case"{":this.emptyRule(t);break;default:this.other(t);break}this.endFile()}precheckMissedSemicolon(){}raw(t,n,a,s){let r,o,i=a.length,u="",l=!0,c,f;for(let E=0;Ep+T[1],"");t.raws[n]={raw:E,value:u}}t[n]=u}rule(t){t.pop();let n=new fT;this.init(n,t[0][2]),n.raws.between=this.spacesAndCommentsFromEnd(t),this.raw(n,"selector",t),this.current=n}spacesAndCommentsFromEnd(t){let n,a="";for(;t.length&&(n=t[t.length-1][0],!(n!=="space"&&n!=="comment"));)a=t.pop()[1]+a;return a}spacesAndCommentsFromStart(t){let n,a="";for(;t.length&&(n=t[0][0],!(n!=="space"&&n!=="comment"));)a+=t.shift()[1];return a}spacesFromEnd(t){let n,a="";for(;t.length&&(n=t[t.length-1][0],n==="space");)a=t.pop()[1]+a;return a}stringFrom(t,n){let a="";for(let s=n;saE(t)),e}let sE={},Tr=class iO{constructor(t,n,a){this.stringified=!1,this.processed=!1;let s;if(typeof n=="object"&&n!==null&&(n.type==="root"||n.type==="document"))s=aE(n);else if(n instanceof iO||n instanceof mT)s=aE(n.root),n.map&&(typeof a.map>"u"&&(a.map={}),a.map.inline||(a.map.inline=!1),a.map.prev=n.map);else{let r=r8e;a.syntax&&(r=a.syntax.parse),a.parser&&(r=a.parser),r.parse&&(r=r.parse);try{s=r(n,a)}catch(o){this.processed=!0,this.error=o}s&&!s[e8e]&&a8e.rebuild(s)}this.result=new mT(t,s,a),this.helpers={...sE,postcss:sE,result:this.result},this.plugins=this.processor.plugins.map(r=>typeof r=="object"&&r.prepare?{...r,...r.prepare(this.result)}:r)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(t,n){let a=this.result.lastPlugin;try{n&&n.addToError(t),this.error=t,t.name==="CssSyntaxError"&&!t.plugin?(t.plugin=a.postcssPlugin,t.setMessage()):a.postcssVersion}catch(s){console&&console.error&&console.error(s)}return t}prepareVisitors(){this.listeners={};let t=(n,a,s)=>{this.listeners[a]||(this.listeners[a]=[]),this.listeners[a].push([n,s])};for(let n of this.plugins)if(typeof n=="object")for(let a in n){if(!u8e[a]&&/^[A-Z]/.test(a))throw new Error(`Unknown event ${a} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!l8e[a])if(typeof n[a]=="object")for(let s in n[a])s==="*"?t(n,a,n[a][s]):t(n,a+"-"+s.toLowerCase(),n[a][s]);else typeof n[a]=="function"&&t(n,a,n[a])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let t=0;t0;){let a=this.visitTick(n);if(zr(a))try{await a}catch(s){let r=n[n.length-1].node;throw this.handleError(s,r)}}}if(this.listeners.OnceExit)for(let[n,a]of this.listeners.OnceExit){this.result.lastPlugin=n;try{if(t.type==="document"){let s=t.nodes.map(r=>a(r,this.helpers));await Promise.all(s)}else await a(t,this.helpers)}catch(s){throw this.handleError(s)}}}return this.processed=!0,this.stringify()}runOnRoot(t){this.result.lastPlugin=t;try{if(typeof t=="object"&&t.Once){if(this.result.root.type==="document"){let n=this.result.root.nodes.map(a=>t.Once(a,this.helpers));return zr(n[0])?Promise.all(n):n}return t.Once(this.result.root,this.helpers)}else if(typeof t=="function")return t(this.result.root,this.result)}catch(n){throw this.handleError(n)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let t=this.result.opts,n=n8e;t.syntax&&(n=t.syntax.stringify),t.stringifier&&(n=t.stringifier),n.stringify&&(n=n.stringify);let s=new t8e(n,this.result.root,this.result.opts).generate();return this.result.css=s[0],this.result.map=s[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let t of this.plugins){let n=this.runOnRoot(t);if(zr(n))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[Jn];)t[Jn]=!0,this.walkSync(t);if(this.listeners.OnceExit)if(t.type==="document")for(let n of t.nodes)this.visitSync(this.listeners.OnceExit,n);else this.visitSync(this.listeners.OnceExit,t)}return this.result}then(t,n){return this.async().then(t,n)}toString(){return this.css}visitSync(t,n){for(let[a,s]of t){this.result.lastPlugin=a;let r;try{r=s(n,this.helpers)}catch(o){throw this.handleError(o,n.proxyOf)}if(n.type!=="root"&&n.type!=="document"&&!n.parent)return!0;if(zr(r))throw this.getAsyncError()}}visitTick(t){let n=t[t.length-1],{node:a,visitors:s}=n;if(a.type!=="root"&&a.type!=="document"&&!a.parent){t.pop();return}if(s.length>0&&n.visitorIndex{s[Jn]||this.walkSync(s)});else{let s=this.listeners[a];if(s&&this.visitSync(s,t.toProxy()))return}}warnings(){return this.sync().warnings()}get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}};Tr.registerPostcss=e=>{sE=e};var uO=Tr;Tr.default=Tr;o8e.registerLazyResult(Tr);s8e.registerLazyResult(Tr);let c8e=xS,d8e=xl,E8e=$f;const f8e=Pf;let rE=class{constructor(t,n,a){n=n.toString(),this.stringified=!1,this._processor=t,this._css=n,this._opts=a,this._map=void 0;let s,r=d8e;this.result=new f8e(this._processor,s,this._opts),this.result.css=n;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let i=new c8e(r,s,this._opts,n);if(i.isMap()){let[u,l]=i.generate();u&&(this.result.css=u),l&&(this.result.map=l)}else i.clearAnnotation(),this.result.css=i.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}sync(){if(this.error)throw this.error;return this.result}then(t,n){return this.async().then(t,n)}toString(){return this._css}warnings(){return[]}get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let t,n=E8e;try{t=n(this._css,this._opts)}catch(a){this.error=a}if(this.error)throw this.error;return this._root=t,t}get[Symbol.toStringTag](){return"NoWorkResult"}};var p8e=rE;rE.default=rE;let m8e=p8e,_8e=uO,T8e=Df,h8e=Yo,bo=class{constructor(t=[]){this.version="8.4.38",this.plugins=this.normalize(t)}normalize(t){let n=[];for(let a of t)if(a.postcss===!0?a=a():a.postcss&&(a=a.postcss),typeof a=="object"&&Array.isArray(a.plugins))n=n.concat(a.plugins);else if(typeof a=="object"&&a.postcssPlugin)n.push(a);else if(typeof a=="function")n.push(a);else if(!(typeof a=="object"&&(a.parse||a.stringify)))throw new Error(a+" is not a PostCSS plugin");return n}process(t,n={}){return!this.plugins.length&&!n.parser&&!n.stringifier&&!n.syntax?new m8e(this,t,n):new _8e(this,t,n)}use(t){return this.plugins=this.plugins.concat(this.normalize([t])),this}};var A8e=bo;bo.default=bo;h8e.registerProcessor(bo);T8e.registerProcessor(bo);let S8e=Gl,O8e=US,g8e=Vl,I8e=yf,R8e=Hl,N8e=Yo,v8e=Lf;function Co(e,t){if(Array.isArray(e))return e.map(s=>Co(s));let{inputs:n,...a}=e;if(n){t=[];for(let s of n){let r={...s,__proto__:R8e.prototype};r.map&&(r.map={...r.map,__proto__:O8e.prototype}),t.push(r)}}if(a.nodes&&(a.nodes=e.nodes.map(s=>Co(s,t))),a.source){let{inputId:s,...r}=a.source;a.source=r,s!=null&&(a.source.input=t[s])}if(a.type==="root")return new N8e(a);if(a.type==="decl")return new S8e(a);if(a.type==="rule")return new v8e(a);if(a.type==="comment")return new g8e(a);if(a.type==="atrule")return new I8e(a);throw new Error("Unknown node type: "+e.type)}var b8e=Co;Co.default=Co;var TT={};let C8e=vf,lO=Gl,D8e=uO,P8e=ks,kf=A8e,y8e=xl,L8e=b8e,cO=Df,$8e=JS,dO=Vl,EO=yf,k8e=Pf,w8e=Hl,U8e=$f,M8e=sO,fO=Lf,pO=Yo,F8e=Bl;function At(...e){return e.length===1&&Array.isArray(e[0])&&(e=e[0]),new kf(e)}At.plugin=function(t,n){let a=!1;function s(...o){console&&console.warn&&!a&&(a=!0,console.warn(t+`: postcss.plugin was deprecated. Migration guide: -https://evilmartians.com/chronicles/postcss-8-plugin-migration`),TT.LANG&&TT.LANG.startsWith("cn")&&console.warn(t+`: 里面 postcss.plugin 被弃用. 迁移指南: -https://www.w3ctech.com/topic/2226`));let i=n(...o);return i.postcssPlugin=t,i.postcssVersion=new kf().version,i}let r;return Object.defineProperty(s,"postcss",{get(){return r||(r=s()),r}}),s.process=function(o,i,u){return At([s(u)]).process(o,i)},s};At.stringify=y8e;At.parse=U8e;At.fromJSON=L8e;At.list=M8e;At.comment=e=>new dO(e);At.atRule=e=>new EO(e);At.decl=e=>new lO(e);At.rule=e=>new fO(e);At.root=e=>new pO(e);At.document=e=>new cO(e);At.CssSyntaxError=C8e;At.Declaration=lO;At.Container=P8e;At.Processor=kf;At.Document=cO;At.Comment=dO;At.Warning=$8e;At.AtRule=EO;At.Result=k8e;At.Input=w8e;At.Rule=fO;At.Root=pO;At.Node=F8e;D8e.registerPostcss(At);var W8e=At;At.default=At;const z8e=sS,hT=Uwe,{isPlainObject:x8e}=Rf,AT=Qwe,B8e=Zwe,{parse:G8e}=W8e,H8e=["img","audio","video","picture","svg","object","map","iframe","embed"],V8e=["script","style"];function Hr(e,t){e&&Object.keys(e).forEach(function(n){t(e[n],n)})}function ha(e,t){return{}.hasOwnProperty.call(e,t)}function ST(e,t){const n=[];return Hr(e,function(a){t(a)&&n.push(a)}),n}function j8e(e){for(const t in e)if(ha(e,t))return!1;return!0}function K8e(e){return e.map(function(t){if(!t.url)throw new Error("URL missing");return t.url+(t.w?` ${t.w}w`:"")+(t.h?` ${t.h}h`:"")+(t.d?` ${t.d}x`:"")}).join(", ")}var q8e=Do;const Y8e=/^[^\0\t\n\f\r /<=>]+$/;function Do(e,t,n){if(e==null)return"";typeof e=="number"&&(e=e.toString());let a="",s="";function r(G,Z){const q=this;this.tag=G,this.attribs=Z||{},this.tagPosition=a.length,this.text="",this.mediaChildren=[],this.updateParentNodeText=function(){if(N.length){const B=N[N.length-1];B.text+=q.text}},this.updateParentNodeMediaChildren=function(){N.length&&H8e.includes(this.tag)&&N[N.length-1].mediaChildren.push(this.tag)}}t=Object.assign({},Do.defaults,t),t.parser=Object.assign({},X8e,t.parser);const o=function(G){return t.allowedTags===!1||(t.allowedTags||[]).indexOf(G)>-1};V8e.forEach(function(G){o(G)&&!t.allowVulnerableTags&&console.warn(` +`),this.css+=n+"/*# sourceMappingURL="+t+" */"}applyPrevMaps(){for(let t of this.previous()){let n=this.toUrl(this.path(t.file)),a=t.root||Xi(t.file),s;this.mapOpts.sourcesContent===!1?(s=new zA(t.text),s.sourcesContent&&(s.sourcesContent=null)):s=t.consumer(),this.map.applySourceMap(s,n,this.toUrl(this.path(a)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1)if(this.root){let t;for(let n=this.root.nodes.length-1;n>=0;n--)t=this.root.nodes[n],t.type==="comment"&&t.text.indexOf("# sourceMappingURL=")===0&&this.root.removeChild(n)}else this.css&&(this.css=this.css.replace(/\n*?\/\*#[\S\s]*?\*\/$/gm,""))}generate(){if(this.clearAnnotation(),S5e&&h5e&&this.isMap())return this.generateMap();{let t="";return this.stringify(this.root,n=>{t+=n}),[t]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let t=this.previous()[0].consumer();t.file=this.outputFile(),this.map=Yi.fromSourceMap(t,{ignoreInvalidMapping:!0})}else this.map=new Yi({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):""});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new Yi({file:this.outputFile(),ignoreInvalidMapping:!0});let t=1,n=1,a="",s={generated:{column:0,line:0},original:{column:0,line:0},source:""},r,o;this.stringify(this.root,(i,u,l)=>{if(this.css+=i,u&&l!=="end"&&(s.generated.line=t,s.generated.column=n-1,u.source&&u.source.start?(s.source=this.sourcePath(u),s.original.line=u.source.start.line,s.original.column=u.source.start.column-1,this.map.addMapping(s)):(s.source=a,s.original.line=1,s.original.column=0,this.map.addMapping(s))),r=i.match(/\n/g),r?(t+=r.length,o=i.lastIndexOf(` +`),n=i.length-o):n+=i.length,u&&l!=="start"){let c=u.parent||{raws:{}};(!(u.type==="decl"||u.type==="atrule"&&!u.nodes)||u!==c.last||c.raws.semicolon)&&(u.source&&u.source.end?(s.source=this.sourcePath(u),s.original.line=u.source.end.line,s.original.column=u.source.end.column-1,s.generated.line=t,s.generated.column=n-2,this.map.addMapping(s)):(s.source=a,s.original.line=1,s.original.column=0,s.generated.line=t,s.generated.column=n-1,this.map.addMapping(s)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(t=>t.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let t=this.mapOpts.annotation;return typeof t<"u"&&t!==!0?!1:this.previous().length?this.previous().some(n=>n.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(t=>t.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(t){if(this.mapOpts.absolute||t.charCodeAt(0)===60||/^\w+:\/\//.test(t))return t;let n=this.memoizedPaths.get(t);if(n)return n;let a=this.opts.to?Xi(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(a=Xi(BA(a,this.mapOpts.annotation)));let s=xA(a,t);return this.memoizedPaths.set(t,s),s}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(t=>{if(t.source&&t.source.input.map){let n=t.source.input.map;this.previousMaps.includes(n)||this.previousMaps.push(n)}});else{let t=new T5e(this.originalCSS,this.opts);t.map&&this.previousMaps.push(t.map)}return this.previousMaps}setSourcesContent(){let t={};if(this.root)this.root.walk(n=>{if(n.source){let a=n.source.input.from;if(a&&!t[a]){t[a]=!0;let s=this.usesFileUrls?this.toFileUrl(a):this.toUrl(this.path(a));this.map.setSourceContent(s,n.source.input.css)}}});else if(this.css){let n=this.opts.from?this.toUrl(this.path(this.opts.from)):"";this.map.setSourceContent(n,this.css)}}sourcePath(t){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(t.source.input.from):this.toUrl(this.path(t.source.input.from))}toBase64(t){return Buffer?Buffer.from(t).toString("base64"):window.btoa(unescape(encodeURIComponent(t)))}toFileUrl(t){let n=this.memoizedFileURLs.get(t);if(n)return n;if(uT){let a=uT(t).toString();return this.memoizedFileURLs.set(t,a),a}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(t){let n=this.memoizedURLs.get(t);if(n)return n;GA==="\\"&&(t=t.replace(/\\/g,"/"));let a=encodeURI(t).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(t,a),a}};var HA=A5e;let O5e=Gl,tE=class extends O5e{constructor(t){super(t),this.type="comment"}};var jl=tE;tE.default=tE;let{isClean:VA,my:jA}=Qo,KA=Hl,qA=jl,g5e=Gl,YA,Cf,Df,XA;function QA(e){return e.map(t=>(t.nodes&&(t.nodes=QA(t.nodes)),delete t.source,t))}function ZA(e){if(e[VA]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)ZA(t)}let va=class JA extends g5e{append(...t){for(let n of t){let a=this.normalize(n,this.last);for(let s of a)this.proxyOf.nodes.push(s)}return this.markDirty(),this}cleanRaws(t){if(super.cleanRaws(t),this.nodes)for(let n of this.nodes)n.cleanRaws(t)}each(t){if(!this.proxyOf.nodes)return;let n=this.getIterator(),a,s;for(;this.indexes[n]t[n](...a.map(s=>typeof s=="function"?(r,o)=>s(r.toProxy(),o):s)):n==="every"||n==="some"?a=>t[n]((s,...r)=>a(s.toProxy(),...r)):n==="root"?()=>t.root().toProxy():n==="nodes"?t.nodes.map(a=>a.toProxy()):n==="first"||n==="last"?t[n].toProxy():t[n]:t[n]},set(t,n,a){return t[n]===a||(t[n]=a,(n==="name"||n==="params"||n==="selector")&&t.markDirty()),!0}}}index(t){return typeof t=="number"?t:(t.proxyOf&&(t=t.proxyOf),this.proxyOf.nodes.indexOf(t))}insertAfter(t,n){let a=this.index(t),s=this.normalize(n,this.proxyOf.nodes[a]).reverse();a=this.index(t);for(let o of s)this.proxyOf.nodes.splice(a+1,0,o);let r;for(let o in this.indexes)r=this.indexes[o],a"u")t=[];else if(Array.isArray(t)){t=t.slice(0);for(let s of t)s.parent&&s.parent.removeChild(s,"ignore")}else if(t.type==="root"&&this.type!=="document"){t=t.nodes.slice(0);for(let s of t)s.parent&&s.parent.removeChild(s,"ignore")}else if(t.type)t=[t];else if(t.prop){if(typeof t.value>"u")throw new Error("Value field is missed in node creation");typeof t.value!="string"&&(t.value=String(t.value)),t=[new KA(t)]}else if(t.selector)t=[new Cf(t)];else if(t.name)t=[new Df(t)];else if(t.text)t=[new qA(t)];else throw new Error("Unknown node type in node creation");return t.map(s=>(s[jA]||JA.rebuild(s),s=s.proxyOf,s.parent&&s.parent.removeChild(s),s[VA]&&ZA(s),typeof s.raws.before>"u"&&n&&typeof n.raws.before<"u"&&(s.raws.before=n.raws.before.replace(/\S/g,"")),s.parent=this.proxyOf,s))}prepend(...t){t=t.reverse();for(let n of t){let a=this.normalize(n,this.first,"prepend").reverse();for(let s of a)this.proxyOf.nodes.unshift(s);for(let s in this.indexes)this.indexes[s]=this.indexes[s]+a.length}return this.markDirty(),this}push(t){return t.parent=this,this.proxyOf.nodes.push(t),this}removeAll(){for(let t of this.proxyOf.nodes)t.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(t){t=this.index(t),this.proxyOf.nodes[t].parent=void 0,this.proxyOf.nodes.splice(t,1);let n;for(let a in this.indexes)n=this.indexes[a],n>=t&&(this.indexes[a]=n-1);return this.markDirty(),this}replaceValues(t,n,a){return a||(a=n,n={}),this.walkDecls(s=>{n.props&&!n.props.includes(s.prop)||n.fast&&!s.value.includes(n.fast)||(s.value=s.value.replace(t,a))}),this.markDirty(),this}some(t){return this.nodes.some(t)}walk(t){return this.each((n,a)=>{let s;try{s=t(n,a)}catch(r){throw n.addToError(r)}return s!==!1&&n.walk&&(s=n.walk(t)),s})}walkAtRules(t,n){return n?t instanceof RegExp?this.walk((a,s)=>{if(a.type==="atrule"&&t.test(a.name))return n(a,s)}):this.walk((a,s)=>{if(a.type==="atrule"&&a.name===t)return n(a,s)}):(n=t,this.walk((a,s)=>{if(a.type==="atrule")return n(a,s)}))}walkComments(t){return this.walk((n,a)=>{if(n.type==="comment")return t(n,a)})}walkDecls(t,n){return n?t instanceof RegExp?this.walk((a,s)=>{if(a.type==="decl"&&t.test(a.prop))return n(a,s)}):this.walk((a,s)=>{if(a.type==="decl"&&a.prop===t)return n(a,s)}):(n=t,this.walk((a,s)=>{if(a.type==="decl")return n(a,s)}))}walkRules(t,n){return n?t instanceof RegExp?this.walk((a,s)=>{if(a.type==="rule"&&t.test(a.selector))return n(a,s)}):this.walk((a,s)=>{if(a.type==="rule"&&a.selector===t)return n(a,s)}):(n=t,this.walk((a,s)=>{if(a.type==="rule")return n(a,s)}))}get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}};va.registerParse=e=>{YA=e};va.registerRule=e=>{Cf=e};va.registerAtRule=e=>{Df=e};va.registerRoot=e=>{XA=e};var ws=va;va.default=va;va.rebuild=e=>{e.type==="atrule"?Object.setPrototypeOf(e,Df.prototype):e.type==="rule"?Object.setPrototypeOf(e,Cf.prototype):e.type==="decl"?Object.setPrototypeOf(e,KA.prototype):e.type==="comment"?Object.setPrototypeOf(e,qA.prototype):e.type==="root"&&Object.setPrototypeOf(e,XA.prototype),e[jA]=!0,e.nodes&&e.nodes.forEach(t=>{va.rebuild(t)})};let I5e=ws,eO,tO,bo=class extends I5e{constructor(t){super({type:"document",...t}),this.nodes||(this.nodes=[])}toResult(t={}){return new eO(new tO,this,t).stringify()}};bo.registerLazyResult=e=>{eO=e};bo.registerProcessor=e=>{tO=e};var Pf=bo;bo.default=bo;let nE=class{constructor(t,n={}){if(this.type="warning",this.text=t,n.node&&n.node.source){let a=n.node.rangeBy(n);this.line=a.start.line,this.column=a.start.column,this.endLine=a.end.line,this.endColumn=a.end.column}for(let a in n)this[a]=n[a]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};var nO=nE;nE.default=nE;let R5e=nO,aE=class{constructor(t,n,a){this.processor=t,this.messages=[],this.root=n,this.opts=a,this.css=void 0,this.map=void 0}toString(){return this.css}warn(t,n={}){n.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(n.plugin=this.lastPlugin.postcssPlugin);let a=new R5e(t,n);return this.messages.push(a),a}warnings(){return this.messages.filter(t=>t.type==="warning")}get content(){return this.css}};var yf=aE;aE.default=aE;const yc=39,lT=34,gi=92,cT=47,Ii=10,Br=32,Ri=12,Ni=9,vi=13,N5e=91,v5e=93,b5e=40,C5e=41,D5e=123,P5e=125,y5e=59,L5e=42,$5e=58,k5e=64,bi=/[\t\n\f\r "#'()/;[\\\]{}]/g,Ci=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,U5e=/.[\r\n"'(/\\]/,dT=/[\da-f]/i;var w5e=function(t,n={}){let a=t.css.valueOf(),s=n.ignoreErrors,r,o,i,u,l,c,f,E,p,T,O=a.length,R=0,g=[],N=[];function S(){return R}function A(b){throw t.error("Unclosed "+b,R)}function v(){return N.length===0&&R>=O}function D(b){if(N.length)return N.pop();if(R>=O)return;let k=b?b.ignoreUnclosed:!1;switch(r=a.charCodeAt(R),r){case Ii:case Br:case Ni:case vi:case Ri:{o=R;do o+=1,r=a.charCodeAt(o);while(r===Br||r===Ii||r===Ni||r===vi||r===Ri);T=["space",a.slice(R,o)],R=o-1;break}case N5e:case v5e:case D5e:case P5e:case $5e:case y5e:case C5e:{let z=String.fromCharCode(r);T=[z,z,R];break}case b5e:{if(E=g.length?g.pop()[1]:"",p=a.charCodeAt(R+1),E==="url"&&p!==yc&&p!==lT&&p!==Br&&p!==Ii&&p!==Ni&&p!==Ri&&p!==vi){o=R;do{if(c=!1,o=a.indexOf(")",o+1),o===-1)if(s||k){o=R;break}else A("bracket");for(f=o;a.charCodeAt(f-1)===gi;)f-=1,c=!c}while(c);T=["brackets",a.slice(R,o+1),R,o],R=o}else o=a.indexOf(")",R+1),u=a.slice(R,o+1),o===-1||U5e.test(u)?T=["(","(",R]:(T=["brackets",u,R,o],R=o);break}case yc:case lT:{i=r===yc?"'":'"',o=R;do{if(c=!1,o=a.indexOf(i,o+1),o===-1)if(s||k){o=R+1;break}else A("string");for(f=o;a.charCodeAt(f-1)===gi;)f-=1,c=!c}while(c);T=["string",a.slice(R,o+1),R,o],R=o;break}case k5e:{bi.lastIndex=R+1,bi.test(a),bi.lastIndex===0?o=a.length-1:o=bi.lastIndex-2,T=["at-word",a.slice(R,o+1),R,o],R=o;break}case gi:{for(o=R,l=!0;a.charCodeAt(o+1)===gi;)o+=1,l=!l;if(r=a.charCodeAt(o+1),l&&r!==cT&&r!==Br&&r!==Ii&&r!==Ni&&r!==vi&&r!==Ri&&(o+=1,dT.test(a.charAt(o)))){for(;dT.test(a.charAt(o+1));)o+=1;a.charCodeAt(o+1)===Br&&(o+=1)}T=["word",a.slice(R,o+1),R,o],R=o;break}default:{r===cT&&a.charCodeAt(R+1)===L5e?(o=a.indexOf("*/",R+2)+1,o===0&&(s||k?o=a.length:A("comment")),T=["comment",a.slice(R,o+1),R,o],R=o):(Ci.lastIndex=R+1,Ci.test(a),Ci.lastIndex===0?o=a.length-1:o=Ci.lastIndex-2,T=["word",a.slice(R,o+1),R,o],g.push(T),R=o);break}}return R++,T}function y(b){N.push(b)}return{back:y,endOfFile:v,nextToken:D,position:S}};let aO=ws,Zu=class extends aO{constructor(t){super(t),this.type="atrule"}append(...t){return this.proxyOf.nodes||(this.nodes=[]),super.append(...t)}prepend(...t){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...t)}};var Lf=Zu;Zu.default=Zu;aO.registerAtRule(Zu);let sO=ws,rO,oO,hr=class extends sO{constructor(t){super(t),this.type="root",this.nodes||(this.nodes=[])}normalize(t,n,a){let s=super.normalize(t);if(n){if(a==="prepend")this.nodes.length>1?n.raws.before=this.nodes[1].raws.before:delete n.raws.before;else if(this.first!==n)for(let r of s)r.raws.before=n.raws.before}return s}removeChild(t,n){let a=this.index(t);return!n&&a===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[a].raws.before),super.removeChild(t)}toResult(t={}){return new rO(new oO,this,t).stringify()}};hr.registerLazyResult=e=>{rO=e};hr.registerProcessor=e=>{oO=e};var Zo=hr;hr.default=hr;sO.registerRoot(hr);let Co={comma(e){return Co.split(e,[","],!0)},space(e){let t=[" ",` +`," "];return Co.split(e,t)},split(e,t,n){let a=[],s="",r=!1,o=0,i=!1,u="",l=!1;for(let c of e)l?l=!1:c==="\\"?l=!0:i?c===u&&(i=!1):c==='"'||c==="'"?(i=!0,u=c):c==="("?o+=1:c===")"?o>0&&(o-=1):o===0&&t.includes(c)&&(r=!0),r?(s!==""&&a.push(s.trim()),s="",r=!1):s+=c;return(n||s!=="")&&a.push(s.trim()),a}};var iO=Co;Co.default=Co;let uO=ws,M5e=iO,Ju=class extends uO{constructor(t){super(t),this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return M5e.comma(this.selector)}set selectors(t){let n=this.selector?this.selector.match(/,\s*/):null,a=n?n[0]:","+this.raw("between","beforeOpen");this.selector=t.join(a)}};var $f=Ju;Ju.default=Ju;uO.registerRule(Ju);let F5e=Hl,W5e=w5e,z5e=jl,x5e=Lf,B5e=Zo,ET=$f;const fT={empty:!0,space:!0};function G5e(e){for(let t=e.length-1;t>=0;t--){let n=e[t],a=n[3]||n[2];if(a)return a}}let H5e=class{constructor(t){this.input=t,this.root=new B5e,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:t,start:{column:1,line:1,offset:0}}}atrule(t){let n=new x5e;n.name=t[1].slice(1),n.name===""&&this.unnamedAtrule(n,t),this.init(n,t[2]);let a,s,r,o=!1,i=!1,u=[],l=[];for(;!this.tokenizer.endOfFile();){if(t=this.tokenizer.nextToken(),a=t[0],a==="("||a==="["?l.push(a==="("?")":"]"):a==="{"&&l.length>0?l.push("}"):a===l[l.length-1]&&l.pop(),l.length===0)if(a===";"){n.source.end=this.getPosition(t[2]),n.source.end.offset++,this.semicolon=!0;break}else if(a==="{"){i=!0;break}else if(a==="}"){if(u.length>0){for(r=u.length-1,s=u[r];s&&s[0]==="space";)s=u[--r];s&&(n.source.end=this.getPosition(s[3]||s[2]),n.source.end.offset++)}this.end(t);break}else u.push(t);else u.push(t);if(this.tokenizer.endOfFile()){o=!0;break}}n.raws.between=this.spacesAndCommentsFromEnd(u),u.length?(n.raws.afterName=this.spacesAndCommentsFromStart(u),this.raw(n,"params",u),o&&(t=u[u.length-1],n.source.end=this.getPosition(t[3]||t[2]),n.source.end.offset++,this.spaces=n.raws.between,n.raws.between="")):(n.raws.afterName="",n.params=""),i&&(n.nodes=[],this.current=n)}checkMissedSemicolon(t){let n=this.colon(t);if(n===!1)return;let a=0,s;for(let r=n-1;r>=0&&(s=t[r],!(s[0]!=="space"&&(a+=1,a===2)));r--);throw this.input.error("Missed semicolon",s[0]==="word"?s[3]+1:s[2])}colon(t){let n=0,a,s,r;for(let[o,i]of t.entries()){if(a=i,s=a[0],s==="("&&(n+=1),s===")"&&(n-=1),n===0&&s===":")if(!r)this.doubleColon(a);else{if(r[0]==="word"&&r[1]==="progid")continue;return o}r=a}return!1}comment(t){let n=new z5e;this.init(n,t[2]),n.source.end=this.getPosition(t[3]||t[2]),n.source.end.offset++;let a=t[1].slice(2,-2);if(/^\s*$/.test(a))n.text="",n.raws.left=a,n.raws.right="";else{let s=a.match(/^(\s*)([^]*\S)(\s*)$/);n.text=s[2],n.raws.left=s[1],n.raws.right=s[3]}}createTokenizer(){this.tokenizer=W5e(this.input)}decl(t,n){let a=new F5e;this.init(a,t[0][2]);let s=t[t.length-1];for(s[0]===";"&&(this.semicolon=!0,t.pop()),a.source.end=this.getPosition(s[3]||s[2]||G5e(t)),a.source.end.offset++;t[0][0]!=="word";)t.length===1&&this.unknownWord(t),a.raws.before+=t.shift()[1];for(a.source.start=this.getPosition(t[0][2]),a.prop="";t.length;){let l=t[0][0];if(l===":"||l==="space"||l==="comment")break;a.prop+=t.shift()[1]}a.raws.between="";let r;for(;t.length;)if(r=t.shift(),r[0]===":"){a.raws.between+=r[1];break}else r[0]==="word"&&/\w/.test(r[1])&&this.unknownWord([r]),a.raws.between+=r[1];(a.prop[0]==="_"||a.prop[0]==="*")&&(a.raws.before+=a.prop[0],a.prop=a.prop.slice(1));let o=[],i;for(;t.length&&(i=t[0][0],!(i!=="space"&&i!=="comment"));)o.push(t.shift());this.precheckMissedSemicolon(t);for(let l=t.length-1;l>=0;l--){if(r=t[l],r[1].toLowerCase()==="!important"){a.important=!0;let c=this.stringFrom(t,l);c=this.spacesFromEnd(t)+c,c!==" !important"&&(a.raws.important=c);break}else if(r[1].toLowerCase()==="important"){let c=t.slice(0),f="";for(let E=l;E>0;E--){let p=c[E][0];if(f.trim().indexOf("!")===0&&p!=="space")break;f=c.pop()[1]+f}f.trim().indexOf("!")===0&&(a.important=!0,a.raws.important=f,t=c)}if(r[0]!=="space"&&r[0]!=="comment")break}t.some(l=>l[0]!=="space"&&l[0]!=="comment")&&(a.raws.between+=o.map(l=>l[1]).join(""),o=[]),this.raw(a,"value",o.concat(t),n),a.value.includes(":")&&!n&&this.checkMissedSemicolon(t)}doubleColon(t){throw this.input.error("Double colon",{offset:t[2]},{offset:t[2]+t[1].length})}emptyRule(t){let n=new ET;this.init(n,t[2]),n.selector="",n.raws.between="",this.current=n}end(t){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(t[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(t)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(t){if(this.spaces+=t[1],this.current.nodes){let n=this.current.nodes[this.current.nodes.length-1];n&&n.type==="rule"&&!n.raws.ownSemicolon&&(n.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(t){let n=this.input.fromOffset(t);return{column:n.col,line:n.line,offset:t}}init(t,n){this.current.push(t),t.source={input:this.input,start:this.getPosition(n)},t.raws.before=this.spaces,this.spaces="",t.type!=="comment"&&(this.semicolon=!1)}other(t){let n=!1,a=null,s=!1,r=null,o=[],i=t[1].startsWith("--"),u=[],l=t;for(;l;){if(a=l[0],u.push(l),a==="("||a==="[")r||(r=l),o.push(a==="("?")":"]");else if(i&&s&&a==="{")r||(r=l),o.push("}");else if(o.length===0)if(a===";")if(s){this.decl(u,i);return}else break;else if(a==="{"){this.rule(u);return}else if(a==="}"){this.tokenizer.back(u.pop()),n=!0;break}else a===":"&&(s=!0);else a===o[o.length-1]&&(o.pop(),o.length===0&&(r=null));l=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(n=!0),o.length>0&&this.unclosedBracket(r),n&&s){if(!i)for(;u.length&&(l=u[u.length-1][0],!(l!=="space"&&l!=="comment"));)this.tokenizer.back(u.pop());this.decl(u,i)}else this.unknownWord(u)}parse(){let t;for(;!this.tokenizer.endOfFile();)switch(t=this.tokenizer.nextToken(),t[0]){case"space":this.spaces+=t[1];break;case";":this.freeSemicolon(t);break;case"}":this.end(t);break;case"comment":this.comment(t);break;case"at-word":this.atrule(t);break;case"{":this.emptyRule(t);break;default:this.other(t);break}this.endFile()}precheckMissedSemicolon(){}raw(t,n,a,s){let r,o,i=a.length,u="",l=!0,c,f;for(let E=0;Ep+T[1],"");t.raws[n]={raw:E,value:u}}t[n]=u}rule(t){t.pop();let n=new ET;this.init(n,t[0][2]),n.raws.between=this.spacesAndCommentsFromEnd(t),this.raw(n,"selector",t),this.current=n}spacesAndCommentsFromEnd(t){let n,a="";for(;t.length&&(n=t[t.length-1][0],!(n!=="space"&&n!=="comment"));)a=t.pop()[1]+a;return a}spacesAndCommentsFromStart(t){let n,a="";for(;t.length&&(n=t[0][0],!(n!=="space"&&n!=="comment"));)a+=t.shift()[1];return a}spacesFromEnd(t){let n,a="";for(;t.length&&(n=t[t.length-1][0],n==="space");)a=t.pop()[1]+a;return a}stringFrom(t,n){let a="";for(let s=n;ssE(t)),e}let rE={},Ar=class cO{constructor(t,n,a){this.stringified=!1,this.processed=!1;let s;if(typeof n=="object"&&n!==null&&(n.type==="root"||n.type==="document"))s=sE(n);else if(n instanceof cO||n instanceof pT)s=sE(n.root),n.map&&(typeof a.map>"u"&&(a.map={}),a.map.inline||(a.map.inline=!1),a.map.prev=n.map);else{let r=e8e;a.syntax&&(r=a.syntax.parse),a.parser&&(r=a.parser),r.parse&&(r=r.parse);try{s=r(n,a)}catch(o){this.processed=!0,this.error=o}s&&!s[Y5e]&&Z5e.rebuild(s)}this.result=new pT(t,s,a),this.helpers={...rE,postcss:rE,result:this.result},this.plugins=this.processor.plugins.map(r=>typeof r=="object"&&r.prepare?{...r,...r.prepare(this.result)}:r)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(t,n){let a=this.result.lastPlugin;try{n&&n.addToError(t),this.error=t,t.name==="CssSyntaxError"&&!t.plugin?(t.plugin=a.postcssPlugin,t.setMessage()):a.postcssVersion}catch(s){console&&console.error&&console.error(s)}return t}prepareVisitors(){this.listeners={};let t=(n,a,s)=>{this.listeners[a]||(this.listeners[a]=[]),this.listeners[a].push([n,s])};for(let n of this.plugins)if(typeof n=="object")for(let a in n){if(!a8e[a]&&/^[A-Z]/.test(a))throw new Error(`Unknown event ${a} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!s8e[a])if(typeof n[a]=="object")for(let s in n[a])s==="*"?t(n,a,n[a][s]):t(n,a+"-"+s.toLowerCase(),n[a][s]);else typeof n[a]=="function"&&t(n,a,n[a])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let t=0;t0;){let a=this.visitTick(n);if(Gr(a))try{await a}catch(s){let r=n[n.length-1].node;throw this.handleError(s,r)}}}if(this.listeners.OnceExit)for(let[n,a]of this.listeners.OnceExit){this.result.lastPlugin=n;try{if(t.type==="document"){let s=t.nodes.map(r=>a(r,this.helpers));await Promise.all(s)}else await a(t,this.helpers)}catch(s){throw this.handleError(s)}}}return this.processed=!0,this.stringify()}runOnRoot(t){this.result.lastPlugin=t;try{if(typeof t=="object"&&t.Once){if(this.result.root.type==="document"){let n=this.result.root.nodes.map(a=>t.Once(a,this.helpers));return Gr(n[0])?Promise.all(n):n}return t.Once(this.result.root,this.helpers)}else if(typeof t=="function")return t(this.result.root,this.result)}catch(n){throw this.handleError(n)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let t=this.result.opts,n=Q5e;t.syntax&&(n=t.syntax.stringify),t.stringifier&&(n=t.stringifier),n.stringify&&(n=n.stringify);let s=new X5e(n,this.result.root,this.result.opts).generate();return this.result.css=s[0],this.result.map=s[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let t of this.plugins){let n=this.runOnRoot(t);if(Gr(n))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[ea];)t[ea]=!0,this.walkSync(t);if(this.listeners.OnceExit)if(t.type==="document")for(let n of t.nodes)this.visitSync(this.listeners.OnceExit,n);else this.visitSync(this.listeners.OnceExit,t)}return this.result}then(t,n){return this.async().then(t,n)}toString(){return this.css}visitSync(t,n){for(let[a,s]of t){this.result.lastPlugin=a;let r;try{r=s(n,this.helpers)}catch(o){throw this.handleError(o,n.proxyOf)}if(n.type!=="root"&&n.type!=="document"&&!n.parent)return!0;if(Gr(r))throw this.getAsyncError()}}visitTick(t){let n=t[t.length-1],{node:a,visitors:s}=n;if(a.type!=="root"&&a.type!=="document"&&!a.parent){t.pop();return}if(s.length>0&&n.visitorIndex{s[ea]||this.walkSync(s)});else{let s=this.listeners[a];if(s&&this.visitSync(s,t.toProxy()))return}}warnings(){return this.sync().warnings()}get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}};Ar.registerPostcss=e=>{rE=e};var dO=Ar;Ar.default=Ar;t8e.registerLazyResult(Ar);J5e.registerLazyResult(Ar);let r8e=HA,o8e=Bl,i8e=kf;const u8e=yf;let oE=class{constructor(t,n,a){n=n.toString(),this.stringified=!1,this._processor=t,this._css=n,this._opts=a,this._map=void 0;let s,r=o8e;this.result=new u8e(this._processor,s,this._opts),this.result.css=n;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let i=new r8e(r,s,this._opts,n);if(i.isMap()){let[u,l]=i.generate();u&&(this.result.css=u),l&&(this.result.map=l)}else i.clearAnnotation(),this.result.css=i.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}sync(){if(this.error)throw this.error;return this.result}then(t,n){return this.async().then(t,n)}toString(){return this._css}warnings(){return[]}get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let t,n=i8e;try{t=n(this._css,this._opts)}catch(a){this.error=a}if(this.error)throw this.error;return this._root=t,t}get[Symbol.toStringTag](){return"NoWorkResult"}};var l8e=oE;oE.default=oE;let c8e=l8e,d8e=dO,E8e=Pf,f8e=Zo,Do=class{constructor(t=[]){this.version="8.4.38",this.plugins=this.normalize(t)}normalize(t){let n=[];for(let a of t)if(a.postcss===!0?a=a():a.postcss&&(a=a.postcss),typeof a=="object"&&Array.isArray(a.plugins))n=n.concat(a.plugins);else if(typeof a=="object"&&a.postcssPlugin)n.push(a);else if(typeof a=="function")n.push(a);else if(!(typeof a=="object"&&(a.parse||a.stringify)))throw new Error(a+" is not a PostCSS plugin");return n}process(t,n={}){return!this.plugins.length&&!n.parser&&!n.stringifier&&!n.syntax?new c8e(this,t,n):new d8e(this,t,n)}use(t){return this.plugins=this.plugins.concat(this.normalize([t])),this}};var p8e=Do;Do.default=Do;f8e.registerProcessor(Do);E8e.registerProcessor(Do);let m8e=Hl,_8e=WA,T8e=jl,h8e=Lf,S8e=Vl,A8e=Zo,O8e=$f;function Po(e,t){if(Array.isArray(e))return e.map(s=>Po(s));let{inputs:n,...a}=e;if(n){t=[];for(let s of n){let r={...s,__proto__:S8e.prototype};r.map&&(r.map={...r.map,__proto__:_8e.prototype}),t.push(r)}}if(a.nodes&&(a.nodes=e.nodes.map(s=>Po(s,t))),a.source){let{inputId:s,...r}=a.source;a.source=r,s!=null&&(a.source.input=t[s])}if(a.type==="root")return new A8e(a);if(a.type==="decl")return new m8e(a);if(a.type==="rule")return new O8e(a);if(a.type==="comment")return new T8e(a);if(a.type==="atrule")return new h8e(a);throw new Error("Unknown node type: "+e.type)}var g8e=Po;Po.default=Po;var _T={};let I8e=bf,EO=Hl,R8e=dO,N8e=ws,Uf=p8e,v8e=Bl,b8e=g8e,fO=Pf,C8e=nO,pO=jl,mO=Lf,D8e=yf,P8e=Vl,y8e=kf,L8e=iO,_O=$f,TO=Zo,$8e=Gl;function ht(...e){return e.length===1&&Array.isArray(e[0])&&(e=e[0]),new Uf(e)}ht.plugin=function(t,n){let a=!1;function s(...o){console&&console.warn&&!a&&(a=!0,console.warn(t+`: postcss.plugin was deprecated. Migration guide: +https://evilmartians.com/chronicles/postcss-8-plugin-migration`),_T.LANG&&_T.LANG.startsWith("cn")&&console.warn(t+`: 里面 postcss.plugin 被弃用. 迁移指南: +https://www.w3ctech.com/topic/2226`));let i=n(...o);return i.postcssPlugin=t,i.postcssVersion=new Uf().version,i}let r;return Object.defineProperty(s,"postcss",{get(){return r||(r=s()),r}}),s.process=function(o,i,u){return ht([s(u)]).process(o,i)},s};ht.stringify=v8e;ht.parse=y8e;ht.fromJSON=b8e;ht.list=L8e;ht.comment=e=>new pO(e);ht.atRule=e=>new mO(e);ht.decl=e=>new EO(e);ht.rule=e=>new _O(e);ht.root=e=>new TO(e);ht.document=e=>new fO(e);ht.CssSyntaxError=I8e;ht.Declaration=EO;ht.Container=N8e;ht.Processor=Uf;ht.Document=fO;ht.Comment=pO;ht.Warning=C8e;ht.AtRule=mO;ht.Result=D8e;ht.Input=P8e;ht.Rule=_O;ht.Root=TO;ht.Node=$8e;R8e.registerPostcss(ht);var k8e=ht;ht.default=ht;const U8e=iA,TT=ywe,{isPlainObject:w8e}=Nf,hT=jwe,M8e=Kwe,{parse:F8e}=k8e,W8e=["img","audio","video","picture","svg","object","map","iframe","embed"],z8e=["script","style"];function Kr(e,t){e&&Object.keys(e).forEach(function(n){t(e[n],n)})}function ha(e,t){return{}.hasOwnProperty.call(e,t)}function ST(e,t){const n=[];return Kr(e,function(a){t(a)&&n.push(a)}),n}function x8e(e){for(const t in e)if(ha(e,t))return!1;return!0}function B8e(e){return e.map(function(t){if(!t.url)throw new Error("URL missing");return t.url+(t.w?` ${t.w}w`:"")+(t.h?` ${t.h}h`:"")+(t.d?` ${t.d}x`:"")}).join(", ")}var G8e=yo;const H8e=/^[^\0\t\n\f\r /<=>]+$/;function yo(e,t,n){if(e==null)return"";typeof e=="number"&&(e=e.toString());let a="",s="";function r(G,Z){const q=this;this.tag=G,this.attribs=Z||{},this.tagPosition=a.length,this.text="",this.mediaChildren=[],this.updateParentNodeText=function(){if(R.length){const B=R[R.length-1];B.text+=q.text}},this.updateParentNodeMediaChildren=function(){R.length&&W8e.includes(this.tag)&&R[R.length-1].mediaChildren.push(this.tag)}}t=Object.assign({},yo.defaults,t),t.parser=Object.assign({},V8e,t.parser);const o=function(G){return t.allowedTags===!1||(t.allowedTags||[]).indexOf(G)>-1};z8e.forEach(function(G){o(G)&&!t.allowVulnerableTags&&console.warn(` ⚠️ Your \`allowedTags\` option includes, \`${G}\`, which is inherently vulnerable to XSS attacks. Please remove it from \`allowedTags\`. Or, to disable this warning, add the \`allowVulnerableTags\` option and ensure you are accounting for this risk. -`)});const i=t.nonTextTags||["script","style","textarea","option"];let u,l;t.allowedAttributes&&(u={},l={},Hr(t.allowedAttributes,function(G,Z){u[Z]=[];const q=[];G.forEach(function(B){typeof B=="string"&&B.indexOf("*")>=0?q.push(hT(B).replace(/\\\*/g,".*")):u[Z].push(B)}),q.length&&(l[Z]=new RegExp("^("+q.join("|")+")$"))}));const c={},f={},E={};Hr(t.allowedClasses,function(G,Z){if(u&&(ha(u,Z)||(u[Z]=[]),u[Z].push("class")),c[Z]=G,Array.isArray(G)){const q=[];c[Z]=[],E[Z]=[],G.forEach(function(B){typeof B=="string"&&B.indexOf("*")>=0?q.push(hT(B).replace(/\\\*/g,".*")):B instanceof RegExp?E[Z].push(B):c[Z].push(B)}),q.length&&(f[Z]=new RegExp("^("+q.join("|")+")$"))}});const p={};let T;Hr(t.transformTags,function(G,Z){let q;typeof G=="function"?q=G:typeof G=="string"&&(q=Do.simpleTransform(G)),Z==="*"?T=q:p[Z]=q});let O,N,g,R,A,S,v=!1;y();const C=new z8e.Parser({onopentag:function(G,Z){if(t.enforceHtmlBoundary&&G==="html"&&y(),A){S++;return}const q=new r(G,Z);N.push(q);let B=!1;const Ne=!!q.text;let Ke;if(ha(p,G)&&(Ke=p[G](G,Z),q.attribs=Z=Ke.attribs,Ke.text!==void 0&&(q.innerText=Ke.text),G!==Ke.tagName&&(q.name=G=Ke.tagName,R[O]=Ke.tagName)),T&&(Ke=T(G,Z),q.attribs=Z=Ke.attribs,G!==Ke.tagName&&(q.name=G=Ke.tagName,R[O]=Ke.tagName)),(!o(G)||t.disallowedTagsMode==="recursiveEscape"&&!j8e(g)||t.nestingLimit!=null&&O>=t.nestingLimit)&&(B=!0,g[O]=!0,(t.disallowedTagsMode==="discard"||t.disallowedTagsMode==="completelyDiscard")&&i.indexOf(G)!==-1&&(A=!0,S=1),g[O]=!0),O++,B){if(t.disallowedTagsMode==="discard"||t.disallowedTagsMode==="completelyDiscard")return;s=a,a=""}a+="<"+G,G==="script"&&(t.allowedScriptHostnames||t.allowedScriptDomains)&&(q.innerText=""),(!u||ha(u,G)||u["*"])&&Hr(Z,function(Fe,Le){if(!Y8e.test(Le)){delete q.attribs[Le];return}if(Fe===""&&!t.allowedEmptyAttributes.includes(Le)&&(t.nonBooleanAttributes.includes(Le)||t.nonBooleanAttributes.includes("*"))){delete q.attribs[Le];return}let Wt=!1;if(!u||ha(u,G)&&u[G].indexOf(Le)!==-1||u["*"]&&u["*"].indexOf(Le)!==-1||ha(l,G)&&l[G].test(Le)||l["*"]&&l["*"].test(Le))Wt=!0;else if(u&&u[G]){for(const ge of u[G])if(x8e(ge)&&ge.name&&ge.name===Le){Wt=!0;let Qe="";if(ge.multiple===!0){const dt=Fe.split(" ");for(const ne of dt)ge.values.indexOf(ne)!==-1&&(Qe===""?Qe=ne:Qe+=" "+ne)}else ge.values.indexOf(Fe)>=0&&(Qe=Fe);Fe=Qe}}if(Wt){if(t.allowedSchemesAppliedToAttributes.indexOf(Le)!==-1&&k(G,Fe)){delete q.attribs[Le];return}if(G==="script"&&Le==="src"){let ge=!0;try{const Qe=z(Fe);if(t.allowedScriptHostnames||t.allowedScriptDomains){const dt=(t.allowedScriptHostnames||[]).find(function(_e){return _e===Qe.url.hostname}),ne=(t.allowedScriptDomains||[]).find(function(_e){return Qe.url.hostname===_e||Qe.url.hostname.endsWith(`.${_e}`)});ge=dt||ne}}catch{ge=!1}if(!ge){delete q.attribs[Le];return}}if(G==="iframe"&&Le==="src"){let ge=!0;try{const Qe=z(Fe);if(Qe.isRelativeUrl)ge=ha(t,"allowIframeRelativeUrls")?t.allowIframeRelativeUrls:!t.allowedIframeHostnames&&!t.allowedIframeDomains;else if(t.allowedIframeHostnames||t.allowedIframeDomains){const dt=(t.allowedIframeHostnames||[]).find(function(_e){return _e===Qe.url.hostname}),ne=(t.allowedIframeDomains||[]).find(function(_e){return Qe.url.hostname===_e||Qe.url.hostname.endsWith(`.${_e}`)});ge=dt||ne}}catch{ge=!1}if(!ge){delete q.attribs[Le];return}}if(Le==="srcset")try{let ge=B8e(Fe);if(ge.forEach(function(Qe){k("srcset",Qe.url)&&(Qe.evil=!0)}),ge=ST(ge,function(Qe){return!Qe.evil}),ge.length)Fe=K8e(ST(ge,function(Qe){return!Qe.evil})),q.attribs[Le]=Fe;else{delete q.attribs[Le];return}}catch{delete q.attribs[Le];return}if(Le==="class"){const ge=c[G],Qe=c["*"],dt=f[G],ne=E[G],_e=f["*"],he=[dt,_e].concat(ne).filter(function(ve){return ve});if(ge&&Qe?Fe=re(Fe,AT(ge,Qe),he):Fe=re(Fe,ge||Qe,he),!Fe.length){delete q.attribs[Le];return}}if(Le==="style"){if(t.parseStyleAttributes)try{const ge=G8e(G+" {"+Fe+"}",{map:!1}),Qe=$(ge,t.allowedStyles);if(Fe=W(Qe),Fe.length===0){delete q.attribs[Le];return}}catch{typeof window<"u"&&console.warn('Failed to parse "'+G+" {"+Fe+`}", If you're running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547`),delete q.attribs[Le];return}else if(t.allowedStyles)throw new Error("allowedStyles option cannot be used together with parseStyleAttributes: false.")}a+=" "+Le,Fe&&Fe.length?a+='="'+b(Fe,!0)+'"':t.allowedEmptyAttributes.includes(Le)&&(a+='=""')}else delete q.attribs[Le]}),t.selfClosing.indexOf(G)!==-1?a+=" />":(a+=">",q.innerText&&!Ne&&!t.textFilter&&(a+=b(q.innerText),v=!0)),B&&(a=s+b(a),s="")},ontext:function(G){if(A)return;const Z=N[N.length-1];let q;if(Z&&(q=Z.tag,G=Z.innerText!==void 0?Z.innerText:G),t.disallowedTagsMode==="completelyDiscard"&&!o(q))G="";else if((t.disallowedTagsMode==="discard"||t.disallowedTagsMode==="completelyDiscard")&&(q==="script"||q==="style"))a+=G;else{const B=b(G,!1);t.textFilter&&!v?a+=t.textFilter(B,q):v||(a+=B)}if(N.length){const B=N[N.length-1];B.text+=G}},onclosetag:function(G,Z){if(A)if(S--,!S)A=!1;else return;const q=N.pop();if(!q)return;if(q.tag!==G){N.push(q);return}A=t.enforceHtmlBoundary?G==="html":!1,O--;const B=g[O];if(B){if(delete g[O],t.disallowedTagsMode==="discard"||t.disallowedTagsMode==="completelyDiscard"){q.updateParentNodeText();return}s=a,a=""}if(R[O]&&(G=R[O],delete R[O]),t.exclusiveFilter&&t.exclusiveFilter(q)){a=a.substr(0,q.tagPosition);return}if(q.updateParentNodeMediaChildren(),q.updateParentNodeText(),t.selfClosing.indexOf(G)!==-1||Z&&!o(G)&&["escape","recursiveEscape"].indexOf(t.disallowedTagsMode)>=0){B&&(a=s,s="");return}a+="",B&&(a=s+b(a),s=""),v=!1}},t.parser);return C.write(e),C.end(),a;function y(){a="",O=0,N=[],g={},R={},A=!1,S=0}function b(G,Z){return typeof G!="string"&&(G=G+""),t.parser.decodeEntities&&(G=G.replace(/&/g,"&").replace(//g,">"),Z&&(G=G.replace(/"/g,"""))),G=G.replace(/&(?![a-zA-Z0-9#]{1,20};)/g,"&").replace(//g,">"),Z&&(G=G.replace(/"/g,""")),G}function k(G,Z){for(Z=Z.replace(/[\x00-\x20]+/g,"");;){const Ne=Z.indexOf("",Ne+4);if(Ke===-1)break;Z=Z.substring(0,Ne)+Z.substring(Ke+3)}const q=Z.match(/^([a-zA-Z][a-zA-Z0-9.\-+]*):/);if(!q)return Z.match(/^[/\\]{2}/)?!t.allowProtocolRelative:!1;const B=q[1].toLowerCase();return ha(t.allowedSchemesByTag,G)?t.allowedSchemesByTag[G].indexOf(B)===-1:!t.allowedSchemes||t.allowedSchemes.indexOf(B)===-1}function z(G){if(G=G.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/,"$1//"),G.startsWith("relative:"))throw new Error("relative: exploit attempt");let Z="relative://relative-site";for(let Ne=0;Ne<100;Ne++)Z+=`/${Ne}`;const q=new URL(G,Z);return{isRelativeUrl:q&&q.hostname==="relative-site"&&q.protocol==="relative:",url:q}}function $(G,Z){if(!Z)return G;const q=G.nodes[0];let B;return Z[q.selector]&&Z["*"]?B=AT(Z[q.selector],Z["*"]):B=Z[q.selector]||Z["*"],B&&(G.nodes[0].nodes=q.nodes.reduce(X(B),[])),G}function W(G){return G.nodes[0].nodes.reduce(function(Z,q){return Z.push(`${q.prop}:${q.value}${q.important?" !important":""}`),Z},[]).join(";")}function X(G){return function(Z,q){return ha(G,q.prop)&&G[q.prop].some(function(Ne){return Ne.test(q.value)})&&Z.push(q),Z}}function re(G,Z,q){return Z?(G=G.split(/\s+/),G.filter(function(B){return Z.indexOf(B)!==-1||q.some(function(Ne){return Ne.test(B)})}).join(" ")):G}}const X8e={decodeEntities:!0};Do.defaults={allowedTags:["address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","hgroup","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","main","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rb","rp","rt","rtc","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr"],nonBooleanAttributes:["abbr","accept","accept-charset","accesskey","action","allow","alt","as","autocapitalize","autocomplete","blocking","charset","cite","class","color","cols","colspan","content","contenteditable","coords","crossorigin","data","datetime","decoding","dir","dirname","download","draggable","enctype","enterkeyhint","fetchpriority","for","form","formaction","formenctype","formmethod","formtarget","headers","height","hidden","high","href","hreflang","http-equiv","id","imagesizes","imagesrcset","inputmode","integrity","is","itemid","itemprop","itemref","itemtype","kind","label","lang","list","loading","low","max","maxlength","media","method","min","minlength","name","nonce","optimum","pattern","ping","placeholder","popover","popovertarget","popovertargetaction","poster","preload","referrerpolicy","rel","rows","rowspan","sandbox","scope","shape","size","sizes","slot","span","spellcheck","src","srcdoc","srclang","srcset","start","step","style","tabindex","target","title","translate","type","usemap","value","width","wrap","onauxclick","onafterprint","onbeforematch","onbeforeprint","onbeforeunload","onbeforetoggle","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextlost","oncontextmenu","oncontextrestored","oncopy","oncuechange","oncut","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","onformdata","onhashchange","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onlanguagechange","onload","onloadeddata","onloadedmetadata","onloadstart","onmessage","onmessageerror","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onoffline","ononline","onpagehide","onpageshow","onpaste","onpause","onplay","onplaying","onpopstate","onprogress","onratechange","onreset","onresize","onrejectionhandled","onscroll","onscrollend","onsecuritypolicyviolation","onseeked","onseeking","onselect","onslotchange","onstalled","onstorage","onsubmit","onsuspend","ontimeupdate","ontoggle","onunhandledrejection","onunload","onvolumechange","onwaiting","onwheel"],disallowedTagsMode:"discard",allowedAttributes:{a:["href","name","target"],img:["src","srcset","alt","title","width","height","loading"]},allowedEmptyAttributes:["alt"],selfClosing:["img","br","hr","area","base","basefont","input","link","meta"],allowedSchemes:["http","https","ftp","mailto","tel"],allowedSchemesByTag:{},allowedSchemesAppliedToAttributes:["href","src","cite"],allowProtocolRelative:!0,enforceHtmlBoundary:!1,parseStyleAttributes:!0};Do.simpleTransform=function(e,t,n){return n=n===void 0?!0:n,t=t||{},function(a,s){let r;if(n)for(r in t)s[r]=t[r];else s=t;return{tagName:e,attribs:s}}};const Q8e=hE(q8e),Po=e=>Q8e(vke(e,{target:"_blank"}),{allowedTags:["a"],disallowedTagsMode:"escape"}),mO=e=>(rt("data-v-2d66f184"),e=e(),ot(),e),Z8e={id:"admin-app",class:"admin-card"},J8e={for:"admin_contact"},e5e=["value"],t5e=["disabled"],n5e={for:"max_users"},a5e=["disabled"],s5e={class:"admin-help"},r5e={class:"info-box"},o5e=mO(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),i5e={for:"max_single_file_size"},u5e=["disabled"],l5e={for:"max_zip_file_size"},c5e=["disabled"],d5e={for:"gpx_limit_import"},E5e=["disabled"],f5e={for:"stats_workouts_limit"},p5e=["disabled"],m5e={class:"admin-help"},_5e={class:"info-box"},T5e=mO(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),h5e={class:"about-label",for:"about"},A5e={class:"textarea-description"},S5e=["innerHTML"],O5e={class:"privacy-policy-label",for:"privacy_policy"},g5e={class:"textarea-description"},I5e=["innerHTML"],R5e={key:5,class:"form-buttons"},N5e={class:"confirm",type:"submit"},v5e={key:6,class:"form-buttons"},b5e=ee({__name:"AdminApplication",props:{appConfig:{},edition:{type:Boolean,default:!1}},setup(e){const t=e,{edition:n}=me(t),a=ke(),s=ca(),r=Ht({admin_contact:"",max_users:0,max_single_file_size:0,max_zip_file_size:0,gpx_limit_import:0,about:"",privacy_policy:"",stats_workouts_limit:0}),o=U(()=>a.getters[K.GETTERS.ERROR_MESSAGES]);pt(()=>{t.appConfig&&i(t.appConfig)});function i(c){Object.keys(r).map(f=>{["max_single_file_size","max_zip_file_size"].includes(f)?r[f]=Y6e(c[f]):["about","privacy_policy"].includes(f)?r[f]=c[f]!==null?c[f]:"":r[f]=c[f]})}function u(){i(t.appConfig),a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),s.push("/admin/application")}function l(){const c=Object.assign({},r);c.max_single_file_size*=1048576,c.max_zip_file_size*=1048576,a.dispatch(K.ACTIONS.UPDATE_APPLICATION_CONFIG,c)}return(c,f)=>{const E=oe("ErrorMessage"),p=oe("Card");return h(),I("div",Z8e,[F(p,null,{title:le(()=>[V(_(c.$t("admin.APP_CONFIG.TITLE")),1)]),content:le(()=>[d("form",{class:"admin-form",onSubmit:be(l,["prevent"])},[d("label",J8e,[V(_(c.$t("admin.APP_CONFIG.ADMIN_CONTACT"))+": ",1),!m(n)&&!r.admin_contact?(h(),I("input",{key:0,class:"no-contact",value:c.$t("admin.APP_CONFIG.NO_CONTACT_EMAIL"),disabled:""},null,8,e5e)):ye((h(),I("input",{key:1,id:"admin_contact",name:"admin_contact",type:"email","onUpdate:modelValue":f[0]||(f[0]=T=>r.admin_contact=T),disabled:!m(n)},null,8,t5e)),[[tt,r.admin_contact]])]),d("label",n5e,[V(_(c.$t("admin.APP_CONFIG.MAX_USERS_LABEL"))+": ",1),ye(d("input",{id:"max_users",name:"max_users",type:"number",min:"0","onUpdate:modelValue":f[1]||(f[1]=T=>r.max_users=T),disabled:!m(n)},null,8,a5e),[[tt,r.max_users]])]),d("div",s5e,[d("span",r5e,[o5e,V(" "+_(c.$t("admin.APP_CONFIG.MAX_USERS_HELP")),1)])]),d("label",i5e,[V(_(c.$t("admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL"))+": ",1),ye(d("input",{id:"max_single_file_size",name:"max_single_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":f[2]||(f[2]=T=>r.max_single_file_size=T),disabled:!m(n)},null,8,u5e),[[tt,r.max_single_file_size]])]),d("label",l5e,[V(_(c.$t("admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL"))+": ",1),ye(d("input",{id:"max_zip_file_size",name:"max_zip_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":f[3]||(f[3]=T=>r.max_zip_file_size=T),disabled:!m(n)},null,8,c5e),[[tt,r.max_zip_file_size]])]),d("label",d5e,[V(_(c.$t("admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL"))+": ",1),ye(d("input",{id:"gpx_limit_import",name:"gpx_limit_import",type:"number",min:"0","onUpdate:modelValue":f[4]||(f[4]=T=>r.gpx_limit_import=T),disabled:!m(n)},null,8,E5e),[[tt,r.gpx_limit_import]])]),d("label",f5e,[V(_(c.$t("admin.APP_CONFIG.STATS_WORKOUTS_LIMIT_LABEL"))+": ",1),ye(d("input",{id:"stats_workouts_limit",name:"stats_workouts_limit",type:"number",min:"0","onUpdate:modelValue":f[5]||(f[5]=T=>r.stats_workouts_limit=T),disabled:!m(n)},null,8,p5e),[[tt,r.stats_workouts_limit]])]),d("div",m5e,[d("span",_5e,[T5e,V(" "+_(c.$t("admin.APP_CONFIG.STATS_WORKOUTS_LIMIT_HELP")),1)])]),d("label",h5e,_(c.$t("admin.ABOUT.TEXT"))+": ",1),d("span",A5e,_(c.$t("admin.ABOUT.DESCRIPTION")),1),m(n)?ye((h(),I("textarea",{key:0,id:"about",name:"about",rows:"10","onUpdate:modelValue":f[6]||(f[6]=T=>r.about=T)},null,512)),[[tt,r.about]]):(h(),I("div",{key:1,innerHTML:m(bs)(m(Po)(r.about?r.about:c.$t("admin.NO_TEXT_ENTERED"))),class:"textarea-content"},null,8,S5e)),d("label",O5e,_(He(c.$t("privacy_policy.TITLE")))+": ",1),d("span",g5e,_(c.$t("admin.PRIVACY_POLICY_DESCRIPTION")),1),m(n)?ye((h(),I("textarea",{key:2,id:"privacy_policy",name:"privacy_policy",rows:"20","onUpdate:modelValue":f[7]||(f[7]=T=>r.privacy_policy=T)},null,512)),[[tt,r.privacy_policy]]):(h(),I("div",{key:3,innerHTML:m(bs)(m(Po)(r.privacy_policy?r.privacy_policy:c.$t("admin.NO_TEXT_ENTERED"))),class:"textarea-content"},null,8,I5e)),o.value?(h(),Y(E,{key:4,message:o.value},null,8,["message"])):M("",!0),m(n)?(h(),I("div",R5e,[d("button",N5e,_(c.$t("buttons.SUBMIT")),1),d("button",{class:"cancel",onClick:be(u,["prevent"])},_(c.$t("buttons.CANCEL")),1)])):(h(),I("div",v5e,[d("button",{class:"confirm",onClick:f[8]||(f[8]=be(T=>c.$router.push("/admin/application/edit"),["prevent"]))},_(c.$t("buttons.EDIT")),1),d("button",{class:"cancel",onClick:f[9]||(f[9]=be(T=>c.$router.push("/admin"),["prevent"]))},_(c.$t("admin.BACK_TO_ADMIN")),1)]))],32)]),_:1})])}}}),OT=ie(b5e,[["__scopeId","data-v-2d66f184"]]),C5e=(e,t)=>{const n=e.translatedLabel.toLowerCase(),a=t.translatedLabel.toLowerCase();return n>a?1:ne.map(n=>({...n,translatedLabel:t(`equipment_types.${n.label}.LABEL`)})).sort(C5e),wf=(e,t)=>{const n=e.label.toLowerCase(),a=t.label.toLowerCase();return n>a?1:na?e.filter(r=>TO[r.equipment_type.label].includes(a.label)).filter(r=>n=="all"?!0:n=="withIncludedIds"&&s.includes(r.id)||r.is_active).map(r=>({...r,label:r.is_active?r.label:`${r.label} (${t("common.INACTIVE")})`})).sort(wf):[],Uf=e=>(rt("data-v-d329b43d"),e=e(),ot(),e),D5e={id:"admin-equipment-types",class:"admin-card"},P5e={class:"responsive-table"},y5e=Uf(()=>d("th",null,"#",-1)),L5e={class:"text-left"},$5e={class:"text-left equipment-type-action"},k5e={class:"text-center"},w5e=Uf(()=>d("span",{class:"cell-heading"},"id",-1)),U5e={class:"cell-heading"},M5e={class:"equipment-type-label"},F5e={class:"cell-heading"},W5e={class:"text-center"},z5e={class:"cell-heading"},x5e={class:"equipment-type-action"},B5e={class:"cell-heading"},G5e={class:"action-button"},H5e=["onClick"],V5e={key:0,class:"has-equipments"},j5e=Uf(()=>d("i",{class:"fa fa-warning","aria-hidden":"true"},null,-1)),K5e=ee({__name:"AdminEquipmentTypes",setup(e){const{t}=kt(),n=ke(),a=U(()=>_O(n.getters[Ue.GETTERS.EQUIPMENT_TYPES],t)),s=U(()=>n.getters[K.GETTERS.ERROR_MESSAGES]);pt(()=>r());function r(){n.dispatch(Ue.ACTIONS.GET_EQUIPMENT_TYPES)}function o(i,u){n.dispatch(Ue.ACTIONS.UPDATE_EQUIPMENT_TYPE,{id:i,isActive:u})}return(i,u)=>{const l=oe("EquipmentTypeImage"),c=oe("ErrorMessage"),f=oe("Card");return h(),I("div",D5e,[F(f,null,{title:le(()=>[V(_(i.$t("admin.EQUIPMENT_TYPES.TITLE")),1)]),content:le(()=>[d("button",{class:"top-button",onClick:u[0]||(u[0]=be(E=>i.$router.push("/admin"),["prevent"]))},_(i.$t("admin.BACK_TO_ADMIN")),1),d("div",P5e,[d("table",null,[d("thead",null,[d("tr",null,[y5e,d("th",null,_(i.$t("admin.EQUIPMENT_TYPES.TABLE.IMAGE")),1),d("th",L5e,_(i.$t("admin.EQUIPMENT_TYPES.TABLE.LABEL")),1),d("th",null,_(i.$t("admin.EQUIPMENT_TYPES.TABLE.ACTIVE")),1),d("th",$5e,_(i.$t("admin.ACTION")),1)])]),d("tbody",null,[(h(!0),I(pe,null,Pe(a.value,E=>(h(),I("tr",{key:E.id},[d("td",k5e,[w5e,V(" "+_(E.id),1)]),d("td",null,[d("span",U5e,_(i.$t("admin.EQUIPMENT_TYPES.TABLE.IMAGE")),1),F(l,{title:E.translatedLabel,"equipment-type-label":E.label},null,8,["title","equipment-type-label"])]),d("td",M5e,[d("span",F5e,_(i.$t("admin.EQUIPMENT_TYPES.TABLE.LABEL")),1),V(" "+_(E.translatedLabel),1)]),d("td",W5e,[d("span",z5e,_(i.$t("admin.EQUIPMENT_TYPES.TABLE.ACTIVE")),1),d("i",{class:Te(`fa fa${E.is_active?"-check":""}`),"aria-hidden":"true"},null,2)]),d("td",x5e,[d("span",B5e,_(i.$t("admin.ACTION")),1),d("div",G5e,[d("button",{class:Te({danger:E.is_active}),onClick:p=>o(E.id,!E.is_active)},_(i.$t(`buttons.${E.is_active?"DIS":"EN"}ABLE`)),11,H5e),E.has_equipments?(h(),I("span",V5e,[j5e,V(" "+_(i.$t("admin.EQUIPMENT_TYPES.TABLE.HAS_EQUIPMENTS")),1)])):M("",!0)])])]))),128))])]),s.value?(h(),Y(c,{key:0,message:s.value},null,8,["message"])):M("",!0),d("button",{onClick:u[1]||(u[1]=be(E=>i.$router.push("/admin"),["prevent"]))},_(i.$t("admin.BACK_TO_ADMIN")),1)])]),_:1})])}}}),q5e=ie(K5e,[["__scopeId","data-v-d329b43d"]]),Y5e={class:"stat-card"},X5e={class:"stat-content box"},Q5e={class:"stat-icon"},Z5e={class:"stat-details"},J5e={class:"stat-huge"},eMe={class:"stat"},Ia=ee({__name:"StatCard",props:{icon:{},text:{},value:{}},setup(e){const t=e,{icon:n,text:a,value:s}=me(t);return(r,o)=>(h(),I("div",Y5e,[d("div",X5e,[d("div",Q5e,[d("i",{class:Te(["fa",`fa-${m(n)}`])},null,2)]),d("div",Z5e,[d("div",J5e,_(m(s)),1),d("div",eMe,_(m(a)),1)])])]))}}),tMe={id:"user-stats"},nMe=ee({__name:"AppStatsCards",props:{appStatistics:{}},setup(e){const t=e,{appStatistics:n}=me(t),a=U(()=>YA(n.value.uploads_dir_size));return(s,r)=>(h(),I("div",tMe,[F(Ia,{icon:"users",value:m(n).users,text:s.$t("admin.USER",m(n).users)},null,8,["value","text"]),F(Ia,{icon:"tags",value:m(n).sports,text:s.$t("workouts.SPORT",m(n).sports)},null,8,["value","text"]),F(Ia,{icon:"calendar",value:m(n).workouts,text:s.$t("workouts.WORKOUT",m(n).workouts)},null,8,["value","text"]),F(Ia,{icon:"folder-open",value:a.value.size,text:a.value.suffix},null,8,["value","text"])]))}}),AO=e=>(rt("data-v-69570181"),e=e(),ot(),e),aMe={id:"admin-menu",class:"center-card"},sMe={class:"admin-menu description-list"},rMe={class:"application-config-details"},oMe=AO(()=>d("br",null,null,-1)),iMe={class:"registration-status"},uMe={key:0,class:"email-sending-status"},lMe=AO(()=>d("i",{class:"fa fa-exclamation-triangle","aria-hidden":"true"},null,-1)),cMe=ee({__name:"AdminMenu",props:{appConfig:{},appStatistics:{default:()=>({})}},setup(e){const t=e,{appConfig:n,appStatistics:a}=me(t);return St(()=>{const s=document.getElementById("adminLink");s&&s.focus()}),(s,r)=>{const o=oe("router-link");return h(),I("div",aMe,[F(MA,null,{title:le(()=>[V(_(s.$t("admin.ADMINISTRATION")),1)]),content:le(()=>[F(nMe,{appStatistics:m(a)},null,8,["appStatistics"]),d("div",sMe,[d("dl",null,[d("dt",null,[F(o,{id:"adminLink",to:"/admin/application"},{default:le(()=>[V(_(s.$t("admin.APPLICATION")),1)]),_:1})]),d("dd",rMe,[V(_(s.$t("admin.UPDATE_APPLICATION_DESCRIPTION")),1),oMe,d("span",iMe,_(s.$t(`admin.REGISTRATION_${m(n).is_registration_enabled?"ENABLED":"DISABLED"}`)),1),m(n).is_email_sending_enabled?M("",!0):(h(),I("span",uMe,[lMe,V(" "+_(s.$t("admin.EMAIL_SENDING_DISABLED")),1)]))]),d("dt",null,[F(o,{to:"/admin/equipment-types"},{default:le(()=>[V(_(He(s.$t("equipments.EQUIPMENT_TYPE",0))),1)]),_:1})]),d("dd",null,_(s.$t("admin.ENABLE_DISABLE_EQUIPMENT_TYPES")),1),d("dt",null,[F(o,{to:"/admin/sports"},{default:le(()=>[V(_(He(s.$t("workouts.SPORT",0))),1)]),_:1})]),d("dd",null,_(s.$t("admin.ENABLE_DISABLE_SPORTS")),1),d("dt",null,[F(o,{to:"/admin/users"},{default:le(()=>[V(_(He(s.$t("admin.USER",0))),1)]),_:1})]),d("dd",null,_(s.$t("admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT")),1)])])]),_:1})])}}}),dMe=ie(cMe,[["__scopeId","data-v-69570181"]]),Mf={"Cycling (Sport)":"#4c9792","Cycling (Trekking)":"#a8af88","Cycling (Transport)":"#88af98","Cycling (Virtual)":"#64a360",Hiking:"#bb757c","Mountain Biking":"#d4b371","Mountain Biking (Electric)":"#fc9d6f",Mountaineering:"#48b3b7","Open Water Swimming":"#4058a4",Paragliding:"#c23c50",Rowing:"#fcce72",Running:"#835b83","Skiing (Alpine)":"#67a4bd","Skiing (Cross Country)":"#9498d0",Snowshoes:"#5780a8",Trail:"#09a98a",Walking:"#838383"},EMe=e=>{const t={};return e.map(n=>t[n.id]=n.color?n.color:Mf[n.label]),t},fMe=(e,t)=>{const n=e.translatedLabel.toLowerCase(),a=t.translatedLabel.toLowerCase();return n>a?1:ne.filter(s=>n==="all"?!0:a.includes(s.id)||s[n]).map(s=>({...s,translatedLabel:t(`sports.${s.label}.LABEL`)})).sort(fMe),Ff=(e,t)=>t.filter(n=>n.id===e.sport_id).map(n=>n.label)[0],Wf=(e,t)=>t.filter(n=>n.id===e.sport_id).map(n=>n.color)[0],zf=e=>(rt("data-v-56f637e8"),e=e(),ot(),e),pMe={id:"admin-sports",class:"admin-card"},mMe={class:"responsive-table"},_Me=zf(()=>d("th",null,"#",-1)),TMe={class:"text-left"},hMe={class:"text-left sport-action"},AMe={class:"text-center"},SMe=zf(()=>d("span",{class:"cell-heading"},"id",-1)),OMe={class:"cell-heading"},gMe={class:"sport-label"},IMe={class:"cell-heading"},RMe={class:"text-center"},NMe={class:"cell-heading"},vMe={class:"sport-action"},bMe={class:"cell-heading"},CMe={class:"action-button"},DMe=["onClick"],PMe={key:0,class:"has-workouts"},yMe=zf(()=>d("i",{class:"fa fa-warning","aria-hidden":"true"},null,-1)),LMe=ee({__name:"AdminSports",setup(e){const{t}=kt(),n=ke(),a=U(()=>Un(n.getters[Dt.GETTERS.SPORTS],t)),s=U(()=>n.getters[K.GETTERS.ERROR_MESSAGES]);pt(()=>n.dispatch(Dt.ACTIONS.GET_SPORTS,!0));function r(o,i){n.dispatch(Dt.ACTIONS.UPDATE_SPORTS,{id:o,isActive:i})}return(o,i)=>{const u=oe("SportImage"),l=oe("ErrorMessage"),c=oe("Card");return h(),I("div",pMe,[F(c,null,{title:le(()=>[V(_(o.$t("admin.SPORTS.TITLE")),1)]),content:le(()=>[d("button",{class:"top-button",onClick:i[0]||(i[0]=be(f=>o.$router.push("/admin"),["prevent"]))},_(o.$t("admin.BACK_TO_ADMIN")),1),d("div",mMe,[d("table",null,[d("thead",null,[d("tr",null,[_Me,d("th",null,_(o.$t("admin.SPORTS.TABLE.IMAGE")),1),d("th",TMe,_(o.$t("admin.SPORTS.TABLE.LABEL")),1),d("th",null,_(o.$t("admin.SPORTS.TABLE.ACTIVE")),1),d("th",hMe,_(o.$t("admin.ACTION")),1)])]),d("tbody",null,[(h(!0),I(pe,null,Pe(a.value,f=>(h(),I("tr",{key:f.id},[d("td",AMe,[SMe,V(" "+_(f.id),1)]),d("td",null,[d("span",OMe,_(o.$t("admin.SPORTS.TABLE.IMAGE")),1),F(u,{title:f.translatedLabel,"sport-label":f.label,color:f.color},null,8,["title","sport-label","color"])]),d("td",gMe,[d("span",IMe,_(o.$t("admin.SPORTS.TABLE.LABEL")),1),V(" "+_(f.translatedLabel),1)]),d("td",RMe,[d("span",NMe,_(o.$t("admin.SPORTS.TABLE.ACTIVE")),1),d("i",{class:Te(`fa fa${f.is_active?"-check":""}`),"aria-hidden":"true"},null,2)]),d("td",vMe,[d("span",bMe,_(o.$t("admin.ACTION")),1),d("div",CMe,[d("button",{class:Te({danger:f.is_active}),onClick:E=>r(f.id,!f.is_active)},_(o.$t(`buttons.${f.is_active?"DIS":"EN"}ABLE`)),11,DMe),f.has_workouts?(h(),I("span",PMe,[yMe,V(" "+_(o.$t("admin.SPORTS.TABLE.HAS_WORKOUTS")),1)])):M("",!0)])])]))),128))])]),s.value?(h(),Y(l,{key:0,message:s.value},null,8,["message"])):M("",!0),d("button",{onClick:i[1]||(i[1]=be(f=>o.$router.push("/admin"),["prevent"]))},_(o.$t("admin.BACK_TO_ADMIN")),1)])]),_:1})])}}}),$Me=ie(LMe,[["__scopeId","data-v-56f637e8"]]),kMe={class:"table-selects"},wMe=["value"],UMe=["value"],MMe=["value"],FMe=["value"],WMe=["value"],zMe=["value"],xMe=ee({__name:"FilterSelects",props:{order_by:{},query:{},sort:{},message:{}},emits:["updateSelect"],setup(e,{emit:t}){const n=e,a=t,{order_by:s,query:r,sort:o,message:i}=me(n),u=[10,25,50,100];function l(c){a("updateSelect",c.target.id,c.target.value)}return(c,f)=>(h(),I("div",kMe,[d("label",null,[V(_(c.$t("common.SELECTS.ORDER_BY.LABEL"))+": ",1),d("select",{name:"order_by",id:"order_by",value:m(r).order_by,onChange:l},[(h(!0),I(pe,null,Pe(m(s),E=>(h(),I("option",{value:E,key:E},_(c.$t(`${m(i)}.${E.toUpperCase()}`)),9,UMe))),128))],40,wMe)]),d("label",null,[V(_(c.$t("common.SELECTS.ORDER.LABEL"))+": ",1),d("select",{name:"order",id:"order",value:m(r).order,onChange:l},[(h(!0),I(pe,null,Pe(m(o),E=>(h(),I("option",{value:E,key:E},_(c.$t(`common.SELECTS.ORDER.${E.toUpperCase()}`)),9,FMe))),128))],40,MMe)]),d("label",null,[V(_(c.$t("common.SELECTS.PER_PAGE.LABEL"))+": ",1),d("select",{name:"per_page",id:"per_page",value:m(r).per_page,onChange:l},[(h(),I(pe,null,Pe(u,E=>d("option",{value:E,key:E},_(E),9,zMe)),64))],40,WMe)])]))}}),SO=ie(xMe,[["__scopeId","data-v-fc86ab3c"]]),xf=["asc","desc"],OO=1,BMe=10,oE=(e,t)=>e&&typeof e=="string"&&+e>0?+e:t,gT=(e,t,n)=>e&&typeof e=="string"&&t.includes(e)?e:n,iE=(e,t,n,a)=>{const r=(a||{}).defaultSort||"asc",o={};return o.page=oE(e.page,OO),o.per_page=oE(e.per_page,BMe),o.order=gT(e.order,xf,r),o.order_by=gT(e.order_by,t,n),typeof e.q=="string"?o.q=e.q:delete o.q,typeof e.notes=="string"?o.notes=e.notes:delete o.notes,o},GMe=["equipment_id","from","to","ave_speed_from","ave_speed_to","max_speed_from","max_speed_to","distance_from","distance_to","duration_from","duration_to","sport_id","title"],Hs=(e,t=1)=>Array.from({length:e-t+1},(n,a)=>t+a),HMe=(e,t)=>{if(e<0)return[];if(e<9)return Hs(e);let n=[1,2];return t<4?n=n.concat([3,4,5]):t<6?n=n.concat(Hs(t+2,3)):(n=n.concat(["..."]),t=e-2&&+n[n.length-1](rt("data-v-f1388e09"),e=e(),ot(),e),VMe={class:"pagination-center","aria-label":"navigation"},jMe={class:"pagination"},KMe=gO(()=>d("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1)),qMe={key:0},YMe=gO(()=>d("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)),XMe=ee({__name:"Pagination",props:{pagination:{},path:{},query:{}},setup(e){const t=e,{pagination:n,path:a,query:s}=me(t);function r(o,i){const u=Object.assign({},s.value);return u.page=i?o+i:o,u}return(o,i)=>{const u=oe("router-link");return h(),I("nav",VMe,[d("ul",jMe,[d("li",{class:Te(["page-prev",{disabled:!m(n).has_prev}])},[F(u,{class:"page-link",to:{path:m(a),query:r(m(n).page,-1)},disabled:!m(n).has_prev,tabindex:m(n).has_prev?0:-1},{default:le(({navigate:l})=>[Lt(o.$slots,"default",{onClick:c=>m(n).has_next?l:null},()=>[V(_(o.$t("common.PREVIOUS"))+" ",1),KMe],!0)]),_:3},8,["to","disabled","tabindex"])],2),(h(!0),I(pe,null,Pe(m(HMe)(m(n).pages,m(n).page),l=>(h(),I("li",{key:l,class:Te(["page",{active:l===m(n).page}])},[l==="..."?(h(),I("span",qMe," ... ")):(h(),Y(u,{key:1,class:"page-link",to:{path:m(a),query:r(+l)}},{default:le(()=>[V(_(l),1)]),_:2},1032,["to"]))],2))),128)),d("li",{class:Te(["page-next",{disabled:!m(n).has_next}])},[F(u,{class:"page-link",to:{path:m(a),query:r(m(n).page,1)},disabled:!m(n).has_next,tabindex:m(n).has_next?0:-1},{default:le(({navigate:l})=>[Lt(o.$slots,"default",{onClick:c=>m(n).has_next?l:null},()=>[V(_(o.$t("common.NEXT"))+" ",1),YMe],!0)]),_:3},8,["to","disabled","tabindex"])],2)])])}}}),Ju=ie(XMe,[["__scopeId","data-v-f1388e09"]]),QMe={class:"users-filters"},ZMe={class:"search-username"},JMe=["placeholder"],e7e=ee({__name:"UsersNameFilter",emits:["filterOnUsername"],setup(e,{emit:t}){const n=yt(),a=de(n.query.q?n.query.q:""),s=t;function r(){a.value!==""&&s("filterOnUsername",a)}function o(){a.value="",s("filterOnUsername",a.value)}return(i,u)=>(h(),I("div",QMe,[d("div",ZMe,[ye(d("input",{id:"username",name:"username","onUpdate:modelValue":u[0]||(u[0]=l=>a.value=l),onKeyup:Je(r,["enter"]),placeholder:i.$t("user.FILTER_ON_USERNAME")},null,40,JMe),[[tt,a.value,void 0,{trim:!0}]]),a.value!==""?(h(),I("i",{key:0,class:"fa fa-times","aria-hidden":"true",onClick:o})):M("",!0)]),d("i",{class:Te(["fa fa-search",{"fa-disabled":a.value===""}]),"aria-hidden":"true",onClick:r},null,2)]))}}),t7e=ie(e7e,[["__scopeId","data-v-553040c7"]]);var uE={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=n;function n(a){if(a===null||a===!0||a===!1)return NaN;var s=Number(a);return isNaN(s)?s:s<0?Math.ceil(s):Math.floor(s)}e.exports=t.default})(uE,uE.exports);var n7e=uE.exports;const a7e=hE(n7e);var lE={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=n;function n(a){var s=new Date(Date.UTC(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours(),a.getMinutes(),a.getSeconds(),a.getMilliseconds()));return s.setUTCFullYear(a.getFullYear()),a.getTime()-s.getTime()}e.exports=t.default})(lE,lE.exports);var s7e=lE.exports;const IT=hE(s7e);function r7e(e,t){var n=l7e(t);return n.formatToParts?i7e(n,e):u7e(n,e)}var o7e={year:0,month:1,day:2,hour:3,minute:4,second:5};function i7e(e,t){try{for(var n=e.formatToParts(t),a=[],s=0;s=0&&(a[r]=parseInt(n[s].value,10))}return a}catch(o){if(o instanceof RangeError)return[NaN];throw o}}function u7e(e,t){var n=e.format(t),a=/(\d+)\/(\d+)\/(\d+),? (\d+):(\d+):(\d+)/.exec(n);return[a[3],a[1],a[2],a[4],a[5],a[6]]}var yc={};function l7e(e){if(!yc[e]){var t=new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:"America/New_York",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date("2014-06-25T04:00:00.123Z")),n=t==="06/25/2014, 00:00:00"||t==="‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00";yc[e]=n?new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:e,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:e,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}return yc[e]}function IO(e,t,n,a,s,r,o){var i=new Date(0);return i.setUTCFullYear(e,t,n),i.setUTCHours(a,s,r,o),i}var RT=36e5,c7e=6e4,Lc={timezone:/([Z+-].*)$/,timezoneZ:/^(Z)$/,timezoneHH:/^([+-]\d{2})$/,timezoneHHMM:/^([+-])(\d{2}):?(\d{2})$/};function RO(e,t,n){var a,s;if(!e||(a=Lc.timezoneZ.exec(e),a))return 0;var r;if(a=Lc.timezoneHH.exec(e),a)return r=parseInt(a[1],10),NT(r)?-(r*RT):NaN;if(a=Lc.timezoneHHMM.exec(e),a){r=parseInt(a[2],10);var o=parseInt(a[3],10);return NT(r,o)?(s=Math.abs(r)*RT+o*c7e,a[1]==="+"?-s:s):NaN}if(f7e(e)){t=new Date(t||Date.now());var i=n?t:d7e(t),u=cE(i,e),l=n?u:E7e(t,u,e);return-l}return NaN}function d7e(e){return IO(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())}function cE(e,t){var n=r7e(e,t),a=IO(n[0],n[1]-1,n[2],n[3]%24,n[4],n[5],0).getTime(),s=e.getTime(),r=s%1e3;return s-=r>=0?r:1e3+r,a-s}function E7e(e,t,n){var a=e.getTime(),s=a-t,r=cE(new Date(s),n);if(t===r)return t;s-=r-t;var o=cE(new Date(s),n);return r===o?r:Math.max(r,o)}function NT(e,t){return-23<=e&&e<=23&&(t==null||0<=t&&t<=59)}var vT={};function f7e(e){if(vT[e])return!0;try{return new Intl.DateTimeFormat(void 0,{timeZone:e}),vT[e]=!0,!0}catch{return!1}}var p7e=/(Z|[+-]\d{2}(?::?\d{2})?| UTC| [a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?)$/,$c=36e5,bT=6e4,m7e=2,sn={dateTimePattern:/^([0-9W+-]+)(T| )(.*)/,datePattern:/^([0-9W+-]+)(.*)/,plainTime:/:/,YY:/^(\d{2})$/,YYY:[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],YYYY:/^(\d{4})/,YYYYY:[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],MM:/^-(\d{2})$/,DDD:/^-?(\d{3})$/,MMDD:/^-?(\d{2})-?(\d{2})$/,Www:/^-?W(\d{2})$/,WwwD:/^-?W(\d{2})-?(\d{1})$/,HH:/^(\d{2}([.,]\d*)?)$/,HHMM:/^(\d{2}):?(\d{2}([.,]\d*)?)$/,HHMMSS:/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,timeZone:p7e};function _7e(e,t){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");if(e===null)return new Date(NaN);var n={},a=n.additionalDigits==null?m7e:a7e(n.additionalDigits);if(a!==2&&a!==1&&a!==0)throw new RangeError("additionalDigits must be 0, 1 or 2");if(e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]")return new Date(e.getTime());if(typeof e=="number"||Object.prototype.toString.call(e)==="[object Number]")return new Date(e);if(!(typeof e=="string"||Object.prototype.toString.call(e)==="[object String]"))return new Date(NaN);var s=T7e(e),r=h7e(s.date,a),o=r.year,i=r.restDateString,u=A7e(i,o);if(isNaN(u))return new Date(NaN);if(u){var l=u.getTime(),c=0,f;if(s.time&&(c=S7e(s.time),isNaN(c)))return new Date(NaN);if(s.timeZone||n.timeZone){if(f=RO(s.timeZone||n.timeZone,new Date(l+c)),isNaN(f))return new Date(NaN)}else f=IT(new Date(l+c)),f=IT(new Date(l+c+f));return new Date(l+c+f)}else return new Date(NaN)}function T7e(e){var t={},n=sn.dateTimePattern.exec(e),a;if(n?(t.date=n[1],a=n[3]):(n=sn.datePattern.exec(e),n?(t.date=n[1],a=n[2]):(t.date=null,a=e)),a){var s=sn.timeZone.exec(a);s?(t.time=a.replace(s[1],""),t.timeZone=s[1].trim()):t.time=a}return t}function h7e(e,t){var n=sn.YYY[t],a=sn.YYYYY[t],s;if(s=sn.YYYY.exec(e)||a.exec(e),s){var r=s[1];return{year:parseInt(r,10),restDateString:e.slice(r.length)}}if(s=sn.YY.exec(e)||n.exec(e),s){var o=s[1];return{year:parseInt(o,10)*100,restDateString:e.slice(o.length)}}return{year:null}}function A7e(e,t){if(t===null)return null;var n,a,s,r;if(e.length===0)return a=new Date(0),a.setUTCFullYear(t),a;if(n=sn.MM.exec(e),n)return a=new Date(0),s=parseInt(n[1],10)-1,DT(t,s)?(a.setUTCFullYear(t,s),a):new Date(NaN);if(n=sn.DDD.exec(e),n){a=new Date(0);var o=parseInt(n[1],10);return I7e(t,o)?(a.setUTCFullYear(t,0,o),a):new Date(NaN)}if(n=sn.MMDD.exec(e),n){a=new Date(0),s=parseInt(n[1],10)-1;var i=parseInt(n[2],10);return DT(t,s,i)?(a.setUTCFullYear(t,s,i),a):new Date(NaN)}if(n=sn.Www.exec(e),n)return r=parseInt(n[1],10)-1,PT(t,r)?CT(t,r):new Date(NaN);if(n=sn.WwwD.exec(e),n){r=parseInt(n[1],10)-1;var u=parseInt(n[2],10)-1;return PT(t,r,u)?CT(t,r,u):new Date(NaN)}return null}function S7e(e){var t,n,a;if(t=sn.HH.exec(e),t)return n=parseFloat(t[1].replace(",",".")),kc(n)?n%24*$c:NaN;if(t=sn.HHMM.exec(e),t)return n=parseInt(t[1],10),a=parseFloat(t[2].replace(",",".")),kc(n,a)?n%24*$c+a*bT:NaN;if(t=sn.HHMMSS.exec(e),t){n=parseInt(t[1],10),a=parseInt(t[2],10);var s=parseFloat(t[3].replace(",","."));return kc(n,a,s)?n%24*$c+a*bT+s*1e3:NaN}return null}function CT(e,t,n){t=t||0,n=n||0;var a=new Date(0);a.setUTCFullYear(e,0,4);var s=a.getUTCDay()||7,r=t*7+n+1-s;return a.setUTCDate(a.getUTCDate()+r),a}var O7e=[31,28,31,30,31,30,31,31,30,31,30,31],g7e=[31,29,31,30,31,30,31,31,30,31,30,31];function NO(e){return e%400===0||e%4===0&&e%100!==0}function DT(e,t,n){if(t<0||t>11)return!1;if(n!=null){if(n<1)return!1;var a=NO(e);if(a&&n>g7e[t]||!a&&n>O7e[t])return!1}return!0}function I7e(e,t){if(t<1)return!1;var n=NO(e);return!(n&&t>366||!n&&t>365)}function PT(e,t,n){return!(t<0||t>52||n!=null&&(n<0||n>6))}function kc(e,t,n){return!(e!=null&&(e<0||e>=25)||t!=null&&(t<0||t>=60)||n!=null&&(n<0||n>=60))}function R7e(e,t,n){var a=_7e(e,n),s=RO(t,a,!0),r=new Date(a.getTime()-s),o=new Date(0);return o.setFullYear(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate()),o.setHours(r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds()),o}const{locale:el}=$s.global,N7e=(e,t,n)=>{switch(e){case"week":return Nl(t,{weekStartsOn:n?1:0});case"year":return QE(t);case"month":return Ho(t);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},v7e=(e,t)=>{switch(e){case"week":return Bo(t,7);case"year":return lu(t,1);case"month":return rr(t,1);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},jl=(e,t)=>R7e(new Date(e),t),yT=(e,t)=>{const n=Ho(e),a=Go(e),s=t?1:0;return{start:Nl(n,{weekStartsOn:s}),end:ZE(a,{weekStartsOn:s})}},vO=(e,t=null,n=null)=>(t||(t="yyyy/MM/dd"),t=us(t,el.value),n||(n="HH:mm"),{workout_date:un(e,t,{locale:Rr[el.value]}),workout_time:un(e,n)}),b7e=["MM/dd/yyyy","dd/MM/yyyy","yyyy-MM-dd","date_string"],bO={cs:"d. MMM yyyy",de:"do MMM yyyy",en:"MMM. do, yyyy",es:"d MMM yyyy",eu:"yyyy MMM. d",fr:"d MMM yyyy",gl:"d MMM yyyy",it:"d MMM yyyy",nb:"do MMM yyyy",nl:"d MMM yyyy",pl:"d MMM yyyy",pt:"d MMM yyyy"},us=(e,t)=>e==="date_string"?bO[t]:e,Fn=(e,t,n,a=!0,s=null,r=!1)=>{s||(s=el.value);const o=a?r?" HH:mm:ss":" HH:mm":"";return un(jl(e,t),`${us(n,s)}${o}`,{locale:Rr[s]})},C7e=(e,t,n=null)=>{const a=n||el.value,s=[];return b7e.map(r=>{const o=us(r,a);s.push({label:`${o} - ${Fn(e,t,o,!1,a)}`,value:r})}),s},D7e=e=>(rt("data-v-dc27c3d6"),e=e(),ot(),e),P7e={id:"admin-users",class:"admin-card"},y7e={key:0,class:"no-users"},L7e={key:1,class:"responsive-table"},$7e=D7e(()=>d("th",null,"#",-1)),k7e={class:"left-text"},w7e={class:"left-text"},U7e={class:"left-text"},M7e={class:"cell-heading"},F7e={class:"cell-heading"},W7e={class:"cell-heading"},z7e={class:"cell-heading"},x7e={class:"text-center"},B7e={class:"cell-heading"},G7e={class:"text-center"},H7e={class:"cell-heading"},V7e={class:"text-center"},j7e={class:"cell-heading"},K7e={class:"text-center"},q7e={class:"cell-heading"},Y7e=["disabled","onClick"],LT="created_at",X7e=ee({__name:"AdminUsers",setup(e){const t=ke(),n=yt(),a=ca(),s=["is_active","admin","created_at","username","workouts_count"];let r=Ht(iE(n.query,s,LT));const o=U(()=>t.getters[Q.GETTERS.AUTH_USER_PROFILE]),i=U(()=>t.getters[xe.GETTERS.USERS]),u=U(()=>t.getters[xe.GETTERS.USERS_PAGINATION]),l=U(()=>t.getters[K.GETTERS.ERROR_MESSAGES]);pt(()=>c(r));function c(T){t.dispatch(xe.ACTIONS.GET_USERS,T)}function f(T){p("q",T.value)}function E(T,O){t.dispatch(xe.ACTIONS.UPDATE_USER,{username:T,admin:O})}function p(T,O){r[T]=O,T==="per_page"&&(r.page=1),a.push({path:"/admin/users",query:r})}return mt(()=>{t.dispatch(xe.ACTIONS.EMPTY_USERS)}),Me(()=>n.query,T=>{r=iE(T,s,LT,{query:r}),c(r)}),(T,O)=>{const N=oe("router-link"),g=oe("ErrorMessage"),R=oe("Card");return h(),I("div",P7e,[F(R,null,{title:le(()=>[V(_(He(T.$t("admin.USER",0))),1)]),content:le(()=>[d("button",{class:"top-button",onClick:O[0]||(O[0]=be(A=>T.$router.push("/admin"),["prevent"]))},_(T.$t("admin.BACK_TO_ADMIN")),1),F(t7e,{onFilterOnUsername:f}),F(SO,{sort:m(xf),order_by:s,query:m(r),message:"admin.USERS.SELECTS.ORDER_BY",onUpdateSelect:p},null,8,["sort","query"]),i.value.length===0?(h(),I("div",y7e,_(T.$t("user.NO_USERS_FOUND")),1)):(h(),I("div",L7e,[d("table",null,[d("thead",null,[d("tr",null,[$7e,d("th",k7e,_(T.$t("user.USERNAME")),1),d("th",w7e,_(T.$t("user.EMAIL")),1),d("th",U7e,_(T.$t("user.PROFILE.REGISTRATION_DATE")),1),d("th",null,_(He(T.$t("workouts.WORKOUT",0))),1),d("th",null,_(T.$t("admin.ACTIVE")),1),d("th",null,_(T.$t("user.ADMIN")),1),d("th",null,_(T.$t("admin.ACTION")),1)])]),d("tbody",null,[(h(!0),I(pe,null,Pe(i.value,A=>(h(),I("tr",{key:A.username},[d("td",null,[d("span",M7e,_(T.$t("user.PROFILE.PICTURE")),1),F(zo,{user:A},null,8,["user"])]),d("td",null,[d("span",F7e,_(T.$t("user.USERNAME")),1),F(N,{to:`/admin/users/${A.username}`},{default:le(()=>[V(_(A.username),1)]),_:2},1032,["to"])]),d("td",null,[d("span",W7e,_(T.$t("user.EMAIL")),1),V(" "+_(A.email),1)]),d("td",null,[d("span",z7e,_(T.$t("user.PROFILE.REGISTRATION_DATE")),1),d("time",null,_(m(Fn)(A.created_at,o.value.timezone,o.value.date_format)),1)]),d("td",x7e,[d("span",B7e,_(He(T.$t("workouts.WORKOUT",0))),1),V(" "+_(A.nb_workouts),1)]),d("td",G7e,[d("span",H7e,_(T.$t("admin.ACTIVE")),1),d("i",{class:Te(`fa fa${A.is_active?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),d("td",V7e,[d("span",j7e,_(T.$t("user.ADMIN")),1),d("i",{class:Te(`fa fa${A.admin?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),d("td",K7e,[d("span",q7e,_(T.$t("admin.ACTION")),1),d("button",{class:Te({danger:A.admin}),disabled:A.username===o.value.username,onClick:S=>E(A.username,!A.admin)},_(T.$t(`admin.USERS.TABLE.${A.admin?"REMOVE":"ADD"}_ADMIN_RIGHTS`)),11,Y7e)])]))),128))])]),u.value.page?(h(),Y(Ju,{key:0,path:"/admin/users",pagination:u.value,query:m(r)},null,8,["pagination","query"])):M("",!0),l.value?(h(),Y(g,{key:1,message:l.value},null,8,["message"])):M("",!0),d("button",{onClick:O[1]||(O[1]=be(A=>T.$router.push("/admin"),["prevent"]))},_(T.$t("admin.BACK_TO_ADMIN")),1)]))]),_:1})])}}}),Q7e=ie(X7e,[["__scopeId","data-v-dc27c3d6"]]),Z7e={class:"box user-header"},J7e={class:"user-details"},e9e={class:"user-name"},t9e={class:"user-stats"},n9e={class:"user-stat"},a9e={class:"stat-number"},s9e={class:"stat-label"},r9e={class:"user-stat"},o9e={class:"stat-label"},i9e={class:"user-stat hide-small"},u9e={class:"stat-number"},l9e={class:"stat-label"},c9e=ee({__name:"UserHeader",props:{user:{}},setup(e){const t=e,{user:n}=me(t),a=ke(),s=U(()=>a.getters[Q.GETTERS.AUTH_USER_PROFILE]);return(r,o)=>{const i=oe("Distance");return h(),I("div",Z7e,[F(zo,{user:m(n)},null,8,["user"]),d("div",J7e,[d("div",e9e,_(m(n).username),1),d("div",t9e,[d("div",n9e,[d("span",a9e,_(m(n).nb_workouts),1),d("span",s9e,_(r.$t("workouts.WORKOUT",m(n).nb_workouts)),1)]),d("div",r9e,[F(i,{distance:m(n).total_distance,unitFrom:"km",digits:0,displayUnit:!1,useImperialUnits:s.value.imperial_units},null,8,["distance","useImperialUnits"]),d("span",o9e,_(s.value.imperial_units?"miles":"km"),1)]),d("div",i9e,[d("span",u9e,_(m(n).nb_sports),1),d("span",l9e,_(r.$t("workouts.SPORT",m(n).nb_sports)),1)])])])])}}}),CO=ie(c9e,[["__scopeId","data-v-3abb1646"]]),d9e={class:"profile-tabs"},E9e={class:"profile-tabs-links"},DO=ee({__name:"UserProfileTabs",props:{tabs:{},selectedTab:{},edition:{type:Boolean}},setup(e){const t=e,{tabs:n,selectedTab:a}=me(t);St(()=>{const r=document.getElementById(`tab-${n.value[0]}`);r&&r.focus()});function s(r){switch(r){case"ACCOUNT":case"PICTURE":case"PRIVACY-POLICY":return`/profile/edit/${r.toLocaleLowerCase()}`;case"APPS":case"EQUIPMENTS":case"PREFERENCES":case"SPORTS":return`/profile${t.edition?"/edit":""}/${r.toLocaleLowerCase()}`;default:case"PROFILE":return`/profile${t.edition?"/edit":""}`}}return(r,o)=>{const i=oe("router-link");return h(),I("div",d9e,[d("div",E9e,[(h(!0),I(pe,null,Pe(m(n),u=>(h(),Y(i,{class:Te(["profile-tab",{selected:u===m(a)}]),to:s(u),key:u},{default:le(()=>[V(_(r.$t(`user.PROFILE.TABS.${u}`)),1)]),_:2},1032,["class","to"]))),128))])])}}}),f9e={id:"user-profile"},p9e={class:"box"},m9e=ee({__name:"index",props:{user:{},tab:{}},setup(e){const t=e,{user:n,tab:a}=me(t),s=["PROFILE","PREFERENCES","SPORTS","EQUIPMENTS","APPS"];return(r,o)=>{const i=oe("router-view");return h(),I("div",f9e,[F(CO,{user:m(n)},null,8,["user"]),d("div",p9e,[F(DO,{tabs:s,selectedTab:m(a),edition:!1},null,8,["selectedTab"]),F(i,{user:m(n)},null,8,["user"])])])}}}),_9e=ie(m9e,[["__scopeId","data-v-ab81f074"]]),T9e={id:"user-infos",class:"description-list"},h9e={key:1,class:"info-box success-message"},A9e={key:4,class:"email-form form-box"},S9e={class:"form-items",for:"email"},O9e={class:"form-items",for:"email"},g9e={class:"form-buttons"},I9e={class:"confirm",type:"submit"},R9e={key:5},N9e={key:0},v9e={class:"user-bio"},b9e={key:0,class:"profile-buttons"},C9e={key:1,class:"profile-buttons"},D9e=ee({__name:"UserInfos",props:{user:{},fromAdmin:{type:Boolean,default:!1}},setup(e){const t=e,n=ke(),{user:a,fromAdmin:s}=me(t),r=U(()=>n.getters[K.GETTERS.LANGUAGE]),o=U(()=>n.getters[Q.GETTERS.AUTH_USER_PROFILE]),i=U(()=>t.user.created_at?Fn(t.user.created_at,o.value.timezone,o.value.date_format):""),u=U(()=>t.user.birth_date?un(new Date(t.user.birth_date),`${us(o.value.date_format,r.value)}`,{locale:Rr[r.value]}):""),l=U(()=>n.getters[xe.GETTERS.USERS_IS_SUCCESS]),c=U(()=>n.getters[K.GETTERS.ERROR_MESSAGES]),f=U(()=>n.getters[K.GETTERS.APP_CONFIG]),E=de(""),p=de(!1),T=de(!1),O=de(""),N=de("");function g(k){E.value=k,k!==""&&n.commit(xe.MUTATIONS.UPDATE_IS_SUCCESS,!1)}function R(k){n.dispatch(xe.ACTIONS.DELETE_USER_ACCOUNT,{username:k})}function A(k){N.value="password-reset",n.dispatch(xe.ACTIONS.UPDATE_USER,{username:k,resetPassword:!0})}function S(k){n.dispatch(xe.ACTIONS.UPDATE_USER,{username:k,activate:!0})}function v(){b(),O.value=a.value.email_to_confirm?a.value.email_to_confirm:"",T.value=!0,N.value="email-update"}function C(){O.value="",T.value=!1}function y(k){n.dispatch(xe.ACTIONS.UPDATE_USER,{username:k,new_email:O.value})}function b(){n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(xe.MUTATIONS.UPDATE_IS_SUCCESS,!1),N.value=""}return mt(()=>b()),Me(()=>l.value,k=>{k&&(g(""),C())}),(k,z)=>{const $=oe("Modal"),W=oe("AlertMessage"),X=oe("ErrorMessage");return h(),I("div",T9e,[E.value?(h(),Y($,{key:0,title:k.$t("common.CONFIRMATION"),message:E.value==="delete"?"admin.CONFIRM_USER_ACCOUNT_DELETION":"admin.CONFIRM_USER_PASSWORD_RESET",strongMessage:m(a).username,onConfirmAction:z[0]||(z[0]=re=>E.value==="delete"?R(m(a).username):A(m(a).username)),onCancelAction:z[1]||(z[1]=re=>g("")),onKeydown:z[2]||(z[2]=Je(re=>g(""),["esc"]))},null,8,["title","message","strongMessage"])):M("",!0),l.value?(h(),I("div",h9e,_(k.$t(`admin.${N.value==="password-reset"?"PASSWORD_RESET":"USER_EMAIL_UPDATE"}_SUCCESSFUL`)),1)):M("",!0),m(a).is_active?M("",!0):(h(),Y(W,{key:2,message:"user.THIS_USER_ACCOUNT_IS_INACTIVE"})),c.value?(h(),Y(X,{key:3,message:c.value},null,8,["message"])):M("",!0),T.value?(h(),I("div",A9e,[d("form",{class:Te({errors:p.value}),onSubmit:z[5]||(z[5]=be(re=>y(m(a).username),["prevent"]))},[d("label",S9e,[V(_(k.$t("admin.CURRENT_EMAIL"))+" ",1),ye(d("input",{id:"email",type:"email","onUpdate:modelValue":z[3]||(z[3]=re=>m(a).email=re),disabled:""},null,512),[[tt,m(a).email]])]),d("label",O9e,[V(_(k.$t("admin.NEW_EMAIL"))+"* ",1),ye(d("input",{id:"new-email",type:"email",required:"","onUpdate:modelValue":z[4]||(z[4]=re=>O.value=re)},null,512),[[tt,O.value]])]),d("div",g9e,[d("button",I9e,_(k.$t("buttons.SUBMIT")),1),d("button",{class:"cancel",onClick:be(C,["prevent"])},_(k.$t("buttons.CANCEL")),1)])],34)])):(h(),I("div",R9e,[d("dl",null,[d("dt",null,_(k.$t("user.PROFILE.REGISTRATION_DATE"))+":",1),d("dd",null,[d("time",null,_(i.value),1)]),d("dt",null,_(k.$t("user.PROFILE.FIRST_NAME"))+":",1),d("dd",null,_(m(a).first_name),1),d("dt",null,_(k.$t("user.PROFILE.LAST_NAME"))+":",1),d("dd",null,_(m(a).last_name),1),d("dt",null,_(k.$t("user.PROFILE.BIRTH_DATE"))+":",1),d("dd",null,[u.value?(h(),I("time",N9e,_(u.value),1)):M("",!0)]),d("dt",null,_(k.$t("user.PROFILE.LOCATION"))+":",1),d("dd",null,_(m(a).location),1),d("dt",null,_(k.$t("user.PROFILE.BIO"))+":",1),d("dd",v9e,_(m(a).bio),1)]),m(s)?(h(),I("div",b9e,[o.value.username!==m(a).username?(h(),I("button",{key:0,class:"danger",onClick:z[6]||(z[6]=be(re=>g("delete"),["prevent"]))},_(k.$t("admin.DELETE_USER")),1)):M("",!0),m(a).is_active?M("",!0):(h(),I("button",{key:1,onClick:z[7]||(z[7]=be(re=>S(m(a).username),["prevent"]))},_(k.$t("admin.ACTIVATE_USER_ACCOUNT")),1)),o.value.username!==m(a).username?(h(),I("button",{key:2,onClick:be(v,["prevent"])},_(k.$t("admin.UPDATE_USER_EMAIL")),1)):M("",!0),o.value.username!==m(a).username&&f.value.is_email_sending_enabled?(h(),I("button",{key:3,onClick:z[8]||(z[8]=be(re=>g("reset"),["prevent"]))},_(k.$t("admin.RESET_USER_PASSWORD")),1)):M("",!0),d("button",{onClick:z[9]||(z[9]=re=>k.$router.go(-1))},_(k.$t("buttons.BACK")),1)])):(h(),I("div",C9e,[d("button",{onClick:z[10]||(z[10]=re=>k.$router.push("/profile/edit"))},_(k.$t("user.PROFILE.EDIT")),1),d("button",{onClick:z[11]||(z[11]=re=>k.$router.push("/"))},_(k.$t("common.HOME")),1)]))]))])}}}),PO=ie(D9e,[["__scopeId","data-v-01368a7e"]]),P9e=e=>(rt("data-v-a53353ff"),e=e(),ot(),e),y9e={id:"user-preferences",class:"description-list"},L9e={class:"preferences-section"},$9e={class:"preferences-section"},k9e={class:"info-box raw-speed-help"},w9e=P9e(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),U9e={class:"profile-buttons"},M9e=ee({__name:"UserPreferences",props:{user:{}},setup(e){const t=e,n=ke(),a=U(()=>n.getters[K.GETTERS.LANGUAGE]),s=U(()=>t.user.language?Cd[t.user.language]:Cd.en),r=U(()=>t.user.weekm?"MONDAY":"SUNDAY"),o=U(()=>t.user.timezone?t.user.timezone:"Europe/Paris"),i=U(()=>t.user.date_format?t.user.date_format:"MM/dd/yyyy"),u=U(()=>t.user.display_ascent?"DISPLAYED":"HIDDEN"),l=U(()=>t.user.use_dark_mode===!0?"DARK":t.user.use_dark_mode===!1?"LIGHT":"DEFAULT");return(c,f)=>(h(),I("div",y9e,[d("div",L9e,_(c.$t("user.PROFILE.INTERFACE")),1),d("dl",null,[d("dt",null,_(c.$t("user.PROFILE.LANGUAGE"))+":",1),d("dd",null,_(s.value),1),d("dt",null,_(c.$t("user.PROFILE.THEME_MODE.LABEL"))+":",1),d("dd",null,_(c.$t(`user.PROFILE.THEME_MODE.VALUES.${l.value}`)),1),d("dt",null,_(c.$t("user.PROFILE.TIMEZONE"))+":",1),d("dd",null,_(o.value),1),d("dt",null,_(c.$t("user.PROFILE.DATE_FORMAT"))+":",1),d("dd",null,_(m(us)(i.value,a.value)),1),d("dt",null,_(c.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+":",1),d("dd",null,_(c.$t(`user.PROFILE.${r.value}`)),1)]),d("div",$9e,_(c.$t("workouts.WORKOUT",0)),1),d("dl",null,[d("dt",null,_(c.$t("user.PROFILE.UNITS.LABEL"))+":",1),d("dd",null,_(c.$t(`user.PROFILE.UNITS.${c.user.imperial_units?"IMPERIAL":"METRIC"}`)),1),d("dt",null,_(c.$t("user.PROFILE.ASCENT_DATA"))+":",1),d("dd",null,_(c.$t(`common.${u.value}`)),1),d("dt",null,_(c.$t("user.PROFILE.ELEVATION_CHART_START.LABEL"))+":",1),d("dd",null,_(c.$t(`user.PROFILE.ELEVATION_CHART_START.${c.user.start_elevation_at_zero?"ZERO":"MIN_ALT"}`)),1),d("dt",null,_(c.$t("user.PROFILE.USE_RAW_GPX_SPEED.LABEL"))+":",1),d("dd",null,_(c.$t(`user.PROFILE.USE_RAW_GPX_SPEED.${c.user.use_raw_gpx_speed?"RAW_SPEED":"FILTERED_SPEED"}`)),1),d("div",k9e,[d("span",null,[w9e,V(" "+_(c.$t("user.PROFILE.USE_RAW_GPX_SPEED.HELP")),1)])])]),d("div",U9e,[d("button",{onClick:f[0]||(f[0]=E=>c.$router.push("/profile/edit/preferences"))},_(c.$t("user.PROFILE.EDIT_PREFERENCES")),1),d("button",{onClick:f[1]||(f[1]=E=>c.$router.push("/"))},_(c.$t("common.HOME")),1)])]))}}),F9e=ie(M9e,[["__scopeId","data-v-a53353ff"]]),W9e={id:"user-profile-edition",class:"center-card"},z9e=ee({__name:"index",props:{user:{},tab:{}},setup(e){const t=e,{user:n,tab:a}=me(t),s=["PROFILE","ACCOUNT","PICTURE","PREFERENCES","SPORTS","EQUIPMENTS","PRIVACY-POLICY"];return(r,o)=>{const i=oe("router-view"),u=oe("Card");return h(),I("div",W9e,[F(u,null,{title:le(()=>[V(_(r.$t(`user.PROFILE.${m(a)}_EDITION`)),1)]),content:le(()=>[F(DO,{tabs:s,selectedTab:m(a),edition:!0},null,8,["selectedTab"]),F(i,{user:m(n)},null,8,["user"])]),_:1})])}}}),so=new Map,x9e=e=>{const{method:t,url:n,params:a={},data:s={}}=e;return[t,n,JSON.stringify(a),JSON.stringify(s)].join("")},hr=e=>{const t=x9e(e);if(so.has(t)){const n=so.get(t)||{};n==null||n.abort(),so.delete(t)}return t},Va=Ut.create({baseURL:Wo()});Va.interceptors.request.use(e=>{const t=new AbortController;e.signal=t.signal;const n=hr(e);return so.set(n,t),e},e=>Promise.reject(e));Va.interceptors.response.use(e=>(hr(e.config),e),e=>(e.message!=="canceled"&&e.response&&hr(e.response.config),Promise.reject(e)));const yO=(e,t)=>{e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.delete(`users/${t.username}`).then(n=>{n.status===204?t.fromAdmin?Et.push("/admin/users"):e.dispatch(Q.ACTIONS.LOGOUT).then(()=>Et.push("/")):Ee(e,null)}).catch(n=>Ee(e,n))},B9e={[xe.ACTIONS.EMPTY_USER](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(xe.MUTATIONS.UPDATE_USER,{})},[xe.ACTIONS.EMPTY_USERS](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(xe.MUTATIONS.UPDATE_USERS,[]),e.commit(xe.MUTATIONS.UPDATE_USERS_PAGINATION,{})},[xe.ACTIONS.GET_USER](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(xe.MUTATIONS.UPDATE_USERS_LOADING,!0),Be.get(`users/${t}`).then(n=>{n.data.status==="success"?e.commit(xe.MUTATIONS.UPDATE_USER,n.data.data.users[0]):Ee(e,null)}).catch(n=>Ee(e,n)).finally(()=>e.commit(xe.MUTATIONS.UPDATE_USERS_LOADING,!1))},[xe.ACTIONS.GET_USERS](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(xe.MUTATIONS.UPDATE_USERS_LOADING,!0),Be.get("users",{params:t}).then(n=>{n.data.status==="success"?(e.commit(xe.MUTATIONS.UPDATE_USERS,n.data.data.users),e.commit(xe.MUTATIONS.UPDATE_USERS_PAGINATION,n.data.pagination)):Ee(e,null)}).catch(n=>Ee(e,n)).finally(()=>e.commit(xe.MUTATIONS.UPDATE_USERS_LOADING,!1))},[xe.ACTIONS.UPDATE_USER](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(xe.MUTATIONS.UPDATE_IS_SUCCESS,!1);const n={};t.admin!==void 0&&(n.admin=t.admin),t.resetPassword&&(n.reset_password=t.resetPassword),t.activate&&(n.activate=t.activate),t.new_email!==void 0&&(n.new_email=t.new_email),Be.patch(`users/${t.username}`,n).then(a=>{a.data.status==="success"?(e.commit(xe.MUTATIONS.UPDATE_USER_IN_USERS,a.data.data.users[0]),(t.resetPassword||t.new_email)&&e.commit(xe.MUTATIONS.UPDATE_IS_SUCCESS,!0),(t.activate||t.new_email)&&e.commit(xe.MUTATIONS.UPDATE_USER,a.data.data.users[0])):Ee(e,null)}).catch(a=>Ee(e,a)).finally(()=>e.commit(xe.MUTATIONS.UPDATE_USERS_LOADING,!1))},[xe.ACTIONS.DELETE_USER_ACCOUNT](e,t){yO(e,{username:t.username,fromAdmin:!0})}},vi=e=>{localStorage.removeItem("authToken"),e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit($t.MUTATIONS.EMPTY_USER_STATS),e.commit($t.MUTATIONS.EMPTY_USER_SPORT_STATS),e.commit(Q.MUTATIONS.CLEAR_AUTH_USER_TOKEN),e.commit(xe.MUTATIONS.UPDATE_USERS,[]),e.commit(Re.MUTATIONS.EMPTY_WORKOUTS),e.commit(Re.MUTATIONS.EMPTY_WORKOUT),Et.push("/login")},G9e={[Q.ACTIONS.CHECK_AUTH_USER](e){window.localStorage.authToken&&!e.getters[Q.GETTERS.IS_AUTHENTICATED]&&(e.commit(Q.MUTATIONS.UPDATE_AUTH_TOKEN,window.localStorage.authToken),e.dispatch(Q.ACTIONS.GET_USER_PROFILE,!0)),!window.localStorage.authToken&&e.getters[Q.GETTERS.IS_AUTHENTICATED]&&vi(e)},[Q.ACTIONS.CONFIRM_ACCOUNT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Va.post("auth/account/confirm",{token:t.token}).then(n=>{if(n.data.status==="success"){const a=n.data.auth_token;window.localStorage.setItem("authToken",a),e.commit(Q.MUTATIONS.UPDATE_AUTH_TOKEN,a),e.dispatch(Q.ACTIONS.GET_USER_PROFILE).then(()=>Et.push("/"))}else Ee(e,null)}).catch(n=>{Ee(e,n)})},[Q.ACTIONS.CONFIRM_EMAIL](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_IS_SUCCESS,!1),Va.post("/auth/email/update",{token:t.token}).then(n=>{n.data.status==="success"?(e.commit(Q.MUTATIONS.UPDATE_IS_SUCCESS,!0),t.refreshUser&&e.dispatch(Q.ACTIONS.GET_USER_PROFILE).then(()=>Et.push("/profile/edit/account")),Et.push("/profile/edit/account")):Ee(e,null)}).catch(n=>{Ee(e,n)})},[Q.ACTIONS.GET_USER_PROFILE](e,t=!1){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get("auth/profile").then(n=>{if(n.data.status==="success"){const a=e.getters[Q.GETTERS.IS_PROFILE_NOT_LOADED];e.commit(Q.MUTATIONS.UPDATE_AUTH_USER_PROFILE,n.data.data),n.data.data.accepted_privacy_policy||e.dispatch(K.ACTIONS.GET_APPLICATION_PRIVACY_POLICY),(a||t)&&(n.data.data.language&&e.dispatch(K.ACTIONS.UPDATE_APPLICATION_LANGUAGE,n.data.data.language),e.commit(K.MUTATIONS.UPDATE_DARK_MODE,n.data.data.use_dark_mode)),e.dispatch(Dt.ACTIONS.GET_SPORTS),e.dispatch(Ue.ACTIONS.GET_EQUIPMENTS),e.dispatch(Ue.ACTIONS.GET_EQUIPMENT_TYPES)}else Ee(e,null),vi(e)}).catch(n=>{n.message!=="canceled"&&(Ee(e,n),vi(e))})},[Q.ACTIONS.LOGIN_OR_REGISTER](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),Va.post(`/auth/${t.actionType}`,t.formData).then(n=>{if(n.data.status==="success")if(t.actionType==="login"){const a=n.data.auth_token;window.localStorage.setItem("authToken",a),e.commit(Q.MUTATIONS.UPDATE_AUTH_TOKEN,a),e.dispatch(Q.ACTIONS.GET_USER_PROFILE,!0).then(()=>Et.push(typeof t.redirectUrl=="string"?t.redirectUrl:"/"))}else Et.push("/login").then(()=>e.commit(Q.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!0));else Ee(e,null)}).catch(n=>Ee(e,n))},[Q.ACTIONS.LOGOUT](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.post("auth/logout").then(t=>{t.data.status==="success"?vi(e):Ee(e,null)}).catch(t=>Ee(e,t))},[Q.ACTIONS.UPDATE_USER_PROFILE](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!0),Be.post("auth/profile/edit",t).then(n=>{n.data.status==="success"?(e.commit(Q.MUTATIONS.UPDATE_AUTH_USER_PROFILE,n.data.data),Et.push("/profile")):Ee(e,null)}).catch(n=>Ee(e,n)).finally(()=>e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1))},[Q.ACTIONS.UPDATE_USER_ACCOUNT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!0),e.commit(Q.MUTATIONS.UPDATE_IS_SUCCESS,!1),Be.patch("auth/profile/edit/account",t).then(n=>{n.data.status==="success"?(e.commit(Q.MUTATIONS.UPDATE_AUTH_USER_PROFILE,n.data.data),e.commit(Q.MUTATIONS.UPDATE_IS_SUCCESS,!0)):Ee(e,null)}).catch(n=>Ee(e,n)).finally(()=>e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1))},[Q.ACTIONS.UPDATE_USER_PREFERENCES](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!0),Be.post("auth/profile/edit/preferences",t).then(n=>{n.data.status==="success"?(e.commit(Q.MUTATIONS.UPDATE_AUTH_USER_PROFILE,n.data.data),e.commit(K.MUTATIONS.UPDATE_DARK_MODE,n.data.data.use_dark_mode),e.dispatch(K.ACTIONS.UPDATE_APPLICATION_LANGUAGE,n.data.data.language).then(()=>Et.push("/profile/preferences"))):Ee(e,null)}).catch(n=>Ee(e,n)).finally(()=>e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1))},[Q.ACTIONS.RESET_USER_SPORT_PREFERENCES](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!0),Be.delete(`auth/profile/reset/sports/${t.sportId}`).then(n=>{n.status===204?(e.dispatch(Dt.ACTIONS.GET_SPORTS),t.fromSport&&Et.push(`/profile/sports/${t.sportId}`)):Ee(e,null)}).catch(n=>{Ee(e,n),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1)})},[Q.ACTIONS.UPDATE_USER_SPORT_PREFERENCES](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!0);const{fromSport:n,...a}=t;Be.post("auth/profile/edit/sports",a).then(s=>{s.data.status==="success"?(e.dispatch(Dt.ACTIONS.GET_SPORTS),n&&Et.push(`/profile/sports/${a.sport_id}`)):Ee(e,null)}).catch(s=>{Ee(e,s),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1)})},[Q.ACTIONS.UPDATE_USER_PICTURE](e,t){if(e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!0),!t.picture)throw new Error("No file part");const n=new FormData;n.append("file",t.picture),Be.post("auth/picture",n,{headers:{"content-type":"multipart/form-data"}}).then(a=>{a.data.status==="success"?e.dispatch(Q.ACTIONS.GET_USER_PROFILE).then(()=>Et.push("/profile")):Ee(e,null)}).catch(a=>Ee(e,a)).finally(()=>e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1))},[Q.ACTIONS.DELETE_ACCOUNT](e,t){yO(e,t)},[Q.ACTIONS.DELETE_PICTURE](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!0),Be.delete("auth/picture").then(t=>{t.status===204?e.dispatch(Q.ACTIONS.GET_USER_PROFILE).then(()=>Et.push("/profile")):Ee(e,null)}).catch(t=>Ee(e,t)).finally(()=>e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1))},[Q.ACTIONS.SEND_PASSWORD_RESET_REQUEST](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Va.post("auth/password/reset-request",t).then(n=>{n.data.status==="success"?Et.push("/password-reset/sent"):Ee(e,null)}).catch(n=>Ee(e,n))},[Q.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Va.post("auth/account/resend-confirmation",t).then(n=>{n.data.status==="success"?Et.push("/account-confirmation/email-sent"):Ee(e,null)}).catch(n=>Ee(e,n))},[Q.ACTIONS.RESET_USER_PASSWORD](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Va.post("auth/password/update",t).then(n=>{n.data.status==="success"?Et.push("/password-reset/password-updated"):Ee(e,null)}).catch(n=>Ee(e,n))},[Q.ACTIONS.ACCEPT_PRIVACY_POLICY](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.post("auth/account/privacy-policy",{accepted_policy:t}).then(n=>{n.data.status==="success"?e.dispatch(Q.ACTIONS.GET_USER_PROFILE).then(()=>Et.push("/profile")):Ee(e,null)}).catch(n=>Ee(e,n))},[Q.ACTIONS.REQUEST_DATA_EXPORT](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.post("auth/account/export/request").then(t=>{t.data.status==="success"?e.commit(Q.MUTATIONS.SET_EXPORT_REQUEST,t.data.request):Ee(e,null)}).catch(t=>Ee(e,t))},[Q.ACTIONS.GET_REQUEST_DATA_EXPORT](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get("auth/account/export").then(t=>{t.data.status==="success"?e.commit(Q.MUTATIONS.SET_EXPORT_REQUEST,t.data.request):Ee(e,null)}).catch(t=>Ee(e,t))}},H9e={[Q.GETTERS.AUTH_TOKEN]:e=>e.authToken,[Q.GETTERS.AUTH_USER_PROFILE]:e=>e.authUserProfile,[Q.GETTERS.EXPORT_REQUEST]:e=>e.exportRequest,[Q.GETTERS.IS_AUTHENTICATED]:e=>e.authToken!==null,[Q.GETTERS.IS_ADMIN]:e=>e.authUserProfile&&e.authUserProfile.admin,[Q.GETTERS.IS_REGISTRATION_SUCCESS]:e=>e.isRegistrationSuccess,[Q.GETTERS.IS_SUCCESS]:e=>e.isSuccess,[Q.GETTERS.USER_LOADING]:e=>e.loading,[Q.GETTERS.IS_PROFILE_NOT_LOADED]:e=>e.authUserProfile.username===void 0},V9e={[Q.MUTATIONS.CLEAR_AUTH_USER_TOKEN](e){e.authToken=null,e.authUserProfile={}},[Q.MUTATIONS.UPDATE_AUTH_TOKEN](e,t){e.authToken=t},[Q.MUTATIONS.UPDATE_AUTH_USER_PROFILE](e,t){e.authUserProfile=t},[Q.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS](e,t){e.isRegistrationSuccess=t},[Q.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t},[Q.MUTATIONS.UPDATE_USER_LOADING](e,t){e.loading=t},[Q.MUTATIONS.SET_EXPORT_REQUEST](e,t){e.exportRequest=t}},j9e={authToken:null,authUserProfile:{},isSuccess:!1,isRegistrationSuccess:!1,loading:!1,exportRequest:null},K9e={state:j9e,actions:G9e,getters:H9e,mutations:V9e},q9e={[Ue.ACTIONS.ADD_EQUIPMENT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.post("equipments",{description:t.description,equipment_type_id:t.equipmentTypeId,label:t.label,default_for_sport_ids:t.defaultForSportIds}).then(n=>{if(n.data.status==="created"){if(n.data.data.equipments.length>0){const a=n.data.data.equipments[0];e.commit(Ue.MUTATIONS.ADD_EQUIPMENT,a),Et.push(`/profile/equipments/${a.id}`)}e.dispatch(Dt.ACTIONS.GET_SPORTS),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1)}else Ee(e,null)}).catch(n=>Ee(e,n))},[Ue.ACTIONS.DELETE_EQUIPMENT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.delete(`equipments/${t.id}${t.force?"?force":""}`).then(()=>{e.commit(Ue.MUTATIONS.REMOVE_EQUIPMENT,t.id),e.dispatch(Dt.ACTIONS.GET_SPORTS),Et.push("/profile/equipments")}).catch(n=>Ee(e,n))},[Ue.ACTIONS.GET_EQUIPMENT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get(`equipments/${t}`).then(n=>{n.data.status==="success"?n.data.data.equipments.length>0&&e.commit(Ue.MUTATIONS.UPDATE_EQUIPMENT,n.data.data.equipments[0]):Ee(e,null)}).catch(n=>Ee(e,n))},[Ue.ACTIONS.GET_EQUIPMENTS](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get("equipments").then(t=>{t.data.status==="success"?e.commit(Ue.MUTATIONS.SET_EQUIPMENTS,t.data.data.equipments):Ee(e,null)}).catch(t=>Ee(e,t))},[Ue.ACTIONS.GET_EQUIPMENT_TYPES](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get("equipment-types").then(t=>{t.data.status==="success"?(e.commit(Ue.MUTATIONS.SET_EQUIPMENT_TYPES,t.data.data.equipment_types),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1)):Ee(e,null)}).catch(t=>Ee(e,t))},[Ue.ACTIONS.REFRESH_EQUIPMENT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Ue.MUTATIONS.SET_LOADING,!0),Be.post(`equipments/${t}/refresh`).then(n=>{n.data.status==="success"?n.data.data.equipments.length>0&&(e.commit(Ue.MUTATIONS.UPDATE_EQUIPMENT,n.data.data.equipments[0]),Et.push(`/profile/equipments/${t}`)):Ee(e,null)}).catch(n=>Ee(e,n)).finally(()=>e.commit(Ue.MUTATIONS.SET_LOADING,!1))},[Ue.ACTIONS.UPDATE_EQUIPMENT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Ue.MUTATIONS.SET_LOADING,!0),Be.patch(`equipments/${t.id}`,{description:t.description,equipment_type_id:t.equipmentTypeId,is_active:t.isActive,label:t.label,default_for_sport_ids:t.defaultForSportIds}).then(n=>{n.data.status==="success"?n.data.data.equipments.length>0&&(e.commit(Ue.MUTATIONS.UPDATE_EQUIPMENT,n.data.data.equipments[0]),e.dispatch(Dt.ACTIONS.GET_SPORTS),Et.push(`/profile/equipments/${t.id}`)):Ee(e,null)}).catch(n=>Ee(e,n)).finally(()=>e.commit(Ue.MUTATIONS.SET_LOADING,!1))},[Ue.ACTIONS.UPDATE_EQUIPMENT_TYPE](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Ue.MUTATIONS.SET_LOADING,!0),Be.patch(`equipment-types/${t.id}`,{is_active:t.isActive}).then(n=>{n.data.status==="success"?e.dispatch(Ue.ACTIONS.GET_EQUIPMENT_TYPES):Ee(e,null)}).catch(n=>Ee(e,n)).finally(()=>e.commit(Ue.MUTATIONS.SET_LOADING,!1))}},Y9e={[Ue.GETTERS.EQUIPMENTS]:e=>e.equipments,[Ue.GETTERS.EQUIPMENT_TYPES]:e=>e.equipmentTypes,[Ue.GETTERS.LOADING]:e=>e.loading},X9e={[Ue.MUTATIONS.ADD_EQUIPMENT](e,t){e.equipments.push(t)},[Ue.MUTATIONS.REMOVE_EQUIPMENT](e,t){e.equipments=e.equipments.filter(n=>n.id!=t)},[Ue.MUTATIONS.SET_EQUIPMENTS](e,t){e.equipments=t},[Ue.MUTATIONS.SET_EQUIPMENT_TYPES](e,t){e.equipmentTypes=t},[Ue.MUTATIONS.SET_LOADING](e,t){e.loading=t},[Ue.MUTATIONS.UPDATE_EQUIPMENT](e,t){const n=e.equipments.findIndex(a=>a.id===t.id);n!==-1&&(e.equipments[n]=t)}},Q9e={equipments:[],equipmentTypes:[],loading:!1},Z9e={state:Q9e,actions:q9e,getters:Y9e,mutations:X9e},$T=(e,t)=>{e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get(t).then(n=>{n.data.status==="success"?e.commit(et.MUTATIONS.SET_CLIENT,n.data.data.client):Ee(e,null)}).catch(n=>Ee(e,n))},J9e={[et.ACTIONS.AUTHORIZE_CLIENT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES);const n=new FormData;n.set("client_id",t.client_id),n.set("response_type",t.response_type),n.set("scope",t.scope),n.set("confirm","true"),t.state&&n.set("state",t.state),t.code_challenge&&n.set("code_challenge",t.code_challenge),t.code_challenge_method&&n.set("code_challenge_method",t.code_challenge_method),Be.post("oauth/authorize",n,{headers:{"Content-Type":"multipart/form-data"}}).then(a=>{a.status==200&&a.data.redirect_url?window.location.href=a.data.redirect_url:Ee(e,null)}).catch(a=>Ee(e,a))},[et.ACTIONS.CREATE_CLIENT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.post("oauth/apps",t).then(n=>{n.data.status==="created"?(e.commit(et.MUTATIONS.SET_CLIENT,n.data.data.client),Et.push(`/profile/apps/${n.data.data.client.id}/created`)):Ee(e,null)}).catch(n=>Ee(e,n))},[et.ACTIONS.DELETE_CLIENT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.delete(`oauth/apps/${t}`).then(n=>{n.status===204?e.dispatch(et.ACTIONS.GET_CLIENTS).then(()=>Et.push("/profile/apps")):Ee(e,null)}).catch(n=>Ee(e,n))},[et.ACTIONS.GET_CLIENT_BY_CLIENT_ID](e,t){$T(e,`oauth/apps/${t}`)},[et.ACTIONS.GET_CLIENT_BY_ID](e,t){$T(e,`oauth/apps/${t}/by_id`)},[et.ACTIONS.GET_CLIENTS](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get("oauth/apps",{params:t}).then(n=>{n.data.status==="success"?(e.commit(et.MUTATIONS.SET_CLIENTS,n.data.data.clients),e.commit(et.MUTATIONS.SET_CLIENTS_PAGINATION,n.data.pagination)):Ee(e,null)}).catch(n=>Ee(e,n))},[et.ACTIONS.REVOKE_ALL_TOKENS](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(et.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1),Be.post(`oauth/apps/${t}/revoke`).then(n=>{n.data.status==="success"?e.commit(et.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!0):Ee(e,null)}).catch(n=>Ee(e,n))}},eFe={[et.GETTERS.CLIENT]:e=>e.client,[et.GETTERS.CLIENTS]:e=>e.clients,[et.GETTERS.CLIENTS_PAGINATION]:e=>e.pagination,[et.GETTERS.REVOCATION_SUCCESSFUL]:e=>e.revocationSuccessful},tFe={[et.MUTATIONS.SET_CLIENT](e,t){e.client=t},[et.MUTATIONS.EMPTY_CLIENT](e){e.client={}},[et.MUTATIONS.SET_CLIENTS](e,t){e.clients=t},[et.MUTATIONS.SET_CLIENTS_PAGINATION](e,t){e.pagination=t},[et.MUTATIONS.SET_REVOCATION_SUCCESSFUL](e,t){e.revocationSuccessful=t}},nFe={client:{},clients:[],pagination:{},revocationSuccessful:!1},aFe={state:nFe,actions:J9e,getters:eFe,mutations:tFe},{locale:sFe}=$s.global,rFe={[K.ACTIONS.GET_APPLICATION_CONFIG](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(K.MUTATIONS.UPDATE_APPLICATION_LOADING,!0),Be.get("config").then(t=>{t.data.status==="success"?e.commit(K.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data):Ee(e,null)}).catch(t=>Ee(e,t)).finally(()=>e.commit(K.MUTATIONS.UPDATE_APPLICATION_LOADING,!1))},[K.ACTIONS.GET_APPLICATION_STATS](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get("stats/all").then(t=>{t.data.status==="success"?e.commit(K.MUTATIONS.UPDATE_APPLICATION_STATS,t.data.data):Ee(e,null)}).catch(t=>Ee(e,t))},[K.ACTIONS.GET_APPLICATION_PRIVACY_POLICY](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get("config").then(t=>{t.data.status==="success"?e.commit(K.MUTATIONS.UPDATE_APPLICATION_PRIVACY_POLICY,t.data.data):Ee(e,null)}).catch(t=>Ee(e,t))},[K.ACTIONS.UPDATE_APPLICATION_CONFIG](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.patch("config",t).then(n=>{n.data.status==="success"?(e.commit(K.MUTATIONS.UPDATE_APPLICATION_CONFIG,n.data.data),Et.push("/admin/application")):Ee(e,null)}).catch(n=>Ee(e,n))},[K.ACTIONS.UPDATE_APPLICATION_LANGUAGE](e,t){var n;(n=document.querySelector("html"))==null||n.setAttribute("lang",t),e.commit(K.MUTATIONS.UPDATE_LANG,t),sFe.value=t}},oFe={[K.GETTERS.APP_CONFIG]:e=>e.application.config,[K.GETTERS.APP_LOADING]:e=>e.appLoading,[K.GETTERS.APP_STATS]:e=>e.application.statistics,[K.GETTERS.DARK_MODE]:e=>e.darkMode,[K.GETTERS.ERROR_MESSAGES]:e=>e.errorMessages,[K.GETTERS.LANGUAGE]:e=>e.language,[K.GETTERS.LOCALE]:e=>e.locale},iFe={[K.MUTATIONS.EMPTY_ERROR_MESSAGES](e){e.errorMessages=null},[K.MUTATIONS.SET_ERROR_MESSAGES](e,t){e.errorMessages=t},[K.MUTATIONS.UPDATE_APPLICATION_CONFIG](e,t){e.application.config=t},[K.MUTATIONS.UPDATE_APPLICATION_LOADING](e,t){e.appLoading=t},[K.MUTATIONS.UPDATE_APPLICATION_PRIVACY_POLICY](e,t){e.application.config.privacy_policy=t.privacy_policy,e.application.config.privacy_policy_date=t.privacy_policy_date},[K.MUTATIONS.UPDATE_APPLICATION_STATS](e,t){e.application.statistics=t},[K.MUTATIONS.UPDATE_LANG](e,t){e.language=t,e.locale=Rr[t]},[K.MUTATIONS.UPDATE_DARK_MODE](e,t){e.darkMode=t}},uFe={root:!0,language:"en",locale:vl,errorMessages:null,application:{statistics:{sports:0,uploads_dir_size:0,users:0,workouts:0}},appLoading:!1,darkMode:null},lFe={[Dt.ACTIONS.GET_SPORTS](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get(`sports${t?"?check_workouts=true":""}`).then(n=>{n.data.status==="success"?(e.commit(Dt.MUTATIONS.SET_SPORTS,n.data.data.sports),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1)):Ee(e,null)}).catch(n=>Ee(e,n))},[Dt.ACTIONS.UPDATE_SPORTS](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.patch(`sports/${t.id}`,{is_active:t.isActive}).then(n=>{n.data.status==="success"?e.dispatch(Dt.ACTIONS.GET_SPORTS):Ee(e,null)}).catch(n=>Ee(e,n))}},cFe={[Dt.GETTERS.SPORTS]:e=>e.sports},dFe={[Dt.MUTATIONS.SET_SPORTS](e,t){e.sports=t}},EFe={sports:[]},fFe={state:EFe,actions:lFe,getters:cFe,mutations:dFe},pFe={[$t.ACTIONS.GET_USER_STATS](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get(`stats/${t.username}/by_time`,{params:t.params}).then(n=>{n.data.status==="success"?e.commit($t.MUTATIONS.UPDATE_USER_STATS,n.data.data.statistics):Ee(e,null)}).catch(n=>Ee(e,n))},[$t.ACTIONS.GET_USER_SPORT_STATS](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit($t.MUTATIONS.UPDATE_STATS_LOADING,!0),Be.get(`stats/${t.username}/by_sport`,{params:{sport_id:t.sportId}}).then(n=>{n.data.status==="success"?(e.commit($t.MUTATIONS.UPDATE_USER_SPORT_STATS,n.data.data.statistics),e.commit($t.MUTATIONS.UPDATE_TOTAL_WORKOUTS,n.data.data.total_workouts)):Ee(e,null)}).catch(n=>Ee(e,n)).finally(()=>e.commit($t.MUTATIONS.UPDATE_STATS_LOADING,!1))}},mFe={[$t.GETTERS.USER_SPORT_STATS]:e=>e.sportStatistics,[$t.GETTERS.USER_STATS]:e=>e.statistics,[$t.GETTERS.STATS_LOADING]:e=>e.loading,[$t.GETTERS.TOTAL_WORKOUTS]:e=>e.totalWorkouts},_Fe={[$t.MUTATIONS.UPDATE_USER_STATS](e,t){e.statistics=t},[$t.MUTATIONS.EMPTY_USER_STATS](e){e.statistics={}},[$t.MUTATIONS.EMPTY_USER_SPORT_STATS](e){e.sportStatistics={},e.totalWorkouts=0},[$t.MUTATIONS.UPDATE_USER_SPORT_STATS](e,t){e.sportStatistics=t},[$t.MUTATIONS.UPDATE_STATS_LOADING](e,t){e.loading=t},[$t.MUTATIONS.UPDATE_TOTAL_WORKOUTS](e,t){e.totalWorkouts=t}},TFe={statistics:{},sportStatistics:{},totalWorkouts:0,loading:!1},hFe={state:TFe,actions:pFe,getters:mFe,mutations:_Fe},AFe={[xe.GETTERS.USER]:e=>e.user,[xe.GETTERS.USERS]:e=>e.users,[xe.GETTERS.USERS_IS_SUCCESS]:e=>e.isSuccess,[xe.GETTERS.USERS_LOADING]:e=>e.loading,[xe.GETTERS.USERS_PAGINATION]:e=>e.pagination},SFe={[xe.MUTATIONS.UPDATE_USER](e,t){e.user=t},[xe.MUTATIONS.UPDATE_USER_IN_USERS](e,t){e.users=e.users.map(n=>n.username===t.username?t:n)},[xe.MUTATIONS.UPDATE_USERS](e,t){e.users=t},[xe.MUTATIONS.UPDATE_USERS_LOADING](e,t){e.loading=t},[xe.MUTATIONS.UPDATE_USERS_PAGINATION](e,t){e.pagination=t},[xe.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t}},OFe={user:{},users:[],loading:!1,isSuccess:!1,pagination:{}},gFe={state:OFe,actions:B9e,getters:AFe,mutations:SFe},bi=(e,t,n)=>{e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get("workouts",{params:t}).then(a=>{a.data.status==="success"?(e.commit(Re.MUTATIONS[n],a.data.data.workouts),n===Ss.SET_USER_WORKOUTS&&e.commit(Re.MUTATIONS.SET_WORKOUTS_PAGINATION,a.data.pagination)):Ee(e,null)}).catch(a=>Ee(e,a))},IFe={[Re.ACTIONS.GET_CALENDAR_WORKOUTS](e,t){e.commit(Re.MUTATIONS.EMPTY_CALENDAR_WORKOUTS),bi(e,t,Ss.SET_CALENDAR_WORKOUTS)},[Re.ACTIONS.GET_USER_WORKOUTS](e,t){bi(e,t,Ss.SET_USER_WORKOUTS)},[Re.ACTIONS.GET_TIMELINE_WORKOUTS](e,t){bi(e,t,Ss.SET_TIMELINE_WORKOUTS)},[Re.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](e,t){bi(e,t,Ss.ADD_TIMELINE_WORKOUTS)},[Re.ACTIONS.GET_WORKOUT_DATA](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!0);const n=t.segmentId?`/segment/${t.segmentId}`:"";Be.get(`workouts/${t.workoutId}`).then(a=>{const s=a.data.data.workouts[0];if(a.data.status==="success"){if(t.segmentId&&(s.segments.length===0||!s.segments[+t.segmentId-1]))throw new Error("WORKOUT_NOT_FOUND");e.commit(Re.MUTATIONS.SET_WORKOUT,a.data.data.workouts[0]),a.data.data.workouts[0].with_gpx&&(Be.get(`workouts/${t.workoutId}/chart_data${n}`).then(r=>{r.data.status==="success"&&e.commit(Re.MUTATIONS.SET_WORKOUT_CHART_DATA,r.data.data.chart_data)}),Be.get(`workouts/${t.workoutId}/gpx${n}`).then(r=>{r.data.status==="success"&&e.commit(Re.MUTATIONS.SET_WORKOUT_GPX,r.data.data.gpx)}))}else e.commit(Re.MUTATIONS.EMPTY_WORKOUT),Ee(e,null)}).catch(a=>{e.commit(Re.MUTATIONS.EMPTY_WORKOUT),Ee(e,a)}).finally(()=>e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!1))},[Re.ACTIONS.DELETE_WORKOUT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!0),Be.delete(`workouts/${t.workoutId}`).then(()=>{e.commit(Re.MUTATIONS.EMPTY_WORKOUT),e.dispatch(Q.ACTIONS.GET_USER_PROFILE),Et.push("/")}).catch(n=>{Ee(e,n)}).finally(()=>e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!1))},[Re.ACTIONS.EDIT_WORKOUT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!0),Be.patch(`workouts/${t.workoutId}`,t.data).then(()=>{e.dispatch(Q.ACTIONS.GET_USER_PROFILE),e.dispatch(Re.ACTIONS.GET_WORKOUT_DATA,{workoutId:t.workoutId}).then(()=>{Et.push({name:"Workout",params:{workoutId:t.workoutId}})})}).catch(n=>{Ee(e,n)}).finally(()=>e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!1))},[Re.ACTIONS.ADD_WORKOUT](e,t){if(e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!0),!t.file)throw new Error("No file part");const n=t.notes.replace(/"/g,'\\"'),a=new FormData;a.append("file",t.file),a.append("data",`{"sport_id": ${t.sport_id}, "notes": "${n}", "equipment_ids": [${t.equipment_ids.map(s=>`"${s}"`).join(",")}]}`),Be.post("workouts",a,{headers:{"content-type":"multipart/form-data"}}).then(s=>{if(s.data.status==="created"){e.dispatch(Q.ACTIONS.GET_USER_PROFILE);const r=s.data.data.workouts[0];Et.push(s.data.data.workouts.length===1?`/workouts/${r.id}`:"/")}}).catch(s=>{Ee(e,s)}).finally(()=>e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!1))},[Re.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!0),Be.post("workouts/no_gpx",t).then(n=>{if(n.data.status==="created"){e.dispatch(Q.ACTIONS.GET_USER_PROFILE);const a=n.data.data.workouts[0];Et.push(`/workouts/${a.id}`)}}).catch(n=>{Ee(e,n)}).finally(()=>e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!1))}},RFe={[Re.GETTERS.CALENDAR_WORKOUTS]:e=>e.calendar_workouts,[Re.GETTERS.TIMELINE_WORKOUTS]:e=>e.timeline_workouts,[Re.GETTERS.USER_WORKOUTS]:e=>e.user_workouts,[Re.GETTERS.WORKOUT_DATA]:e=>e.workoutData,[Re.GETTERS.WORKOUTS_PAGINATION]:e=>e.pagination},NFe={[Re.MUTATIONS.ADD_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=e.timeline_workouts.concat(t)},[Re.MUTATIONS.SET_CALENDAR_WORKOUTS](e,t){e.calendar_workouts=t},[Re.MUTATIONS.SET_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=t},[Re.MUTATIONS.SET_USER_WORKOUTS](e,t){e.user_workouts=t},[Re.MUTATIONS.SET_WORKOUTS_PAGINATION](e,t){e.pagination=t},[Re.MUTATIONS.SET_WORKOUT](e,t){e.workoutData.workout=t},[Re.MUTATIONS.SET_WORKOUT_CHART_DATA](e,t){e.workoutData.chartData=t},[Re.MUTATIONS.SET_WORKOUT_GPX](e,t){e.workoutData.gpx=t},[Re.MUTATIONS.SET_WORKOUT_LOADING](e,t){e.workoutData.loading=t},[Re.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](e){e.calendar_workouts=[]},[Re.MUTATIONS.EMPTY_WORKOUTS](e){e.calendar_workouts=[],e.user_workouts=[],e.timeline_workouts=[]},[Re.MUTATIONS.EMPTY_WORKOUT](e){e.workoutData={gpx:"",loading:!1,workout:{},chartData:[]}}},vFe={calendar_workouts:[],timeline_workouts:[],pagination:{},user_workouts:[],workoutData:{gpx:"",loading:!1,workout:{},chartData:[]}},bFe={state:vFe,actions:IFe,getters:RFe,mutations:NFe},CFe={authUserModule:K9e,equipmentModule:Z9e,oAuthModule:aFe,sportsModule:fFe,statsModule:hFe,usersModule:gFe,workoutsModule:bFe},DFe={state:uFe,actions:rFe,getters:oFe,mutations:iFe,modules:CFe},ro=$3(DFe),Bf=Ut.create({baseURL:Wo()});Bf.interceptors.request.use(e=>{const t=new AbortController;e.signal=t.signal;const n=hr(e);so.set(n,t);const a=ro.getters[Q.GETTERS.AUTH_TOKEN];if(a){const s=`Bearer ${a}`;e.headers&&e.headers.Authorization!==s&&(e.headers.Authorization=`Bearer ${a}`)}return e},e=>Promise.reject(e));Bf.interceptors.response.use(e=>(hr(e.config),e),e=>(e.message!=="canceled"&&e.response&&hr(e.response.config),Promise.reject(e)));const Be=Bf,dE=(e,t)=>e.push.apply(e,t),Ar=e=>e.sort((t,n)=>t.i-n.i||t.j-n.j),kT=e=>{const t={};let n=1;return e.forEach(a=>{t[a]=n,n+=1}),t};var PFe={4:[[1,2],[2,3]],5:[[1,3],[2,3],[2,4]],6:[[1,2],[2,4],[4,5]],7:[[1,3],[2,3],[4,5],[4,6]],8:[[2,4],[4,6]]};const wT=2050,UT=1e3,yFe=PFe,LFe=10,$Fe=1e4,LO=10,$O=50,kO=20,wO=/^[A-Z\xbf-\xdf][^A-Z\xbf-\xdf]+$/,kFe=/^[^A-Z\xbf-\xdf]+[A-Z\xbf-\xdf]$/,wFe=/^[A-Z\xbf-\xdf]+$/,UO=/^[^a-z\xdf-\xff]+$/,UFe=/^[a-z\xdf-\xff]+$/,MFe=/^[^A-Z\xbf-\xdf]+$/,FFe=/[a-z\xdf-\xff]/,WFe=/[A-Z\xbf-\xdf]/,zFe=/[^A-Za-z\xbf-\xdf]/gi,xFe=/^\d+$/,Gf=new Date().getFullYear(),BFe={recentYear:/19\d\d|200\d|201\d|202\d/g},MO=[" ",",",";",":","|","/","\\","_",".","-"],GFe=MO.length;class HFe{match({password:t}){const n=[...this.getMatchesWithoutSeparator(t),...this.getMatchesWithSeparator(t)],a=this.filterNoise(n);return Ar(a)}getMatchesWithSeparator(t){const n=[],a=/^(\d{1,4})([\s/\\_.-])(\d{1,2})\2(\d{1,4})$/;for(let s=0;s<=Math.abs(t.length-6);s+=1)for(let r=s+5;r<=s+9&&!(r>=t.length);r+=1){const o=t.slice(s,+r+1||9e9),i=a.exec(o);if(i!=null){const u=this.mapIntegersToDayMonthYear([parseInt(i[1],10),parseInt(i[3],10),parseInt(i[4],10)]);u!=null&&n.push({pattern:"date",token:o,i:s,j:r,separator:i[2],year:u.year,month:u.month,day:u.day})}}return n}getMatchesWithoutSeparator(t){const n=[],a=/^\d{4,8}$/,s=r=>Math.abs(r.year-Gf);for(let r=0;r<=Math.abs(t.length-4);r+=1)for(let o=r+3;o<=r+7&&!(o>=t.length);o+=1){const i=t.slice(r,+o+1||9e9);if(a.exec(i)){const u=[],l=i.length;if(yFe[l].forEach(([f,E])=>{const p=this.mapIntegersToDayMonthYear([parseInt(i.slice(0,f),10),parseInt(i.slice(f,E),10),parseInt(i.slice(E),10)]);p!=null&&u.push(p)}),u.length>0){let f=u[0],E=s(u[0]);u.slice(1).forEach(p=>{const T=s(p);T{let a=!1;const s=t.length;for(let r=0;r=n.j){a=!0;break}}return!a})}mapIntegersToDayMonthYear(t){if(t[1]>31||t[1]<=0)return null;let n=0,a=0,s=0;for(let r=0,o=t.length;r99&&iwT)return null;i>31&&(a+=1),i>12&&(n+=1),i<=0&&(s+=1)}return a>=2||n===3||s>=2?null:this.getDayMonth(t)}getDayMonth(t){const n=[[t[2],t.slice(0,2)],[t[0],t.slice(1,3)]],a=n.length;for(let s=0;s=1&&r<=31&&o>=1&&o<=12)return{day:r,month:o}}return null}twoToFourDigitYear(t){return t>99?t:t>50?t+1900:t+2e3}}const Sa=new Uint32Array(65536),VFe=(e,t)=>{const n=e.length,a=t.length,s=1<{const n=t.length,a=e.length,s=[],r=[],o=Math.ceil(n/32),i=Math.ceil(a/32);for(let T=0;T>>R&1,v=s[R/32|0]>>>R&1,C=A|T,y=((A|v)&O)+O^O|A|v;let b=T|~(y|O),k=O&y;b>>>31^S&&(r[R/32|0]^=1<>>31^v&&(s[R/32|0]^=1<>>T&1,g=s[T/32|0]>>>T&1,R=O|l,A=((O|g)&c)+c^c|O|g;let S=l|~(A|c),v=c&A;p+=S>>>a-1&1,p-=v>>>a-1&1,S>>>31^N&&(r[T/32|0]^=1<>>31^g&&(s[T/32|0]^=1<{if(e.length{const a=e.length<=t.length,s=e.length<=n;return a||s?Math.ceil(e.length/4):n},YFe=(e,t,n)=>{let a=0;const s=Object.keys(t).find(r=>{const o=qFe(e,r,n);if(Math.abs(e.length-r.length)>o)return!1;const i=KFe(e,r),u=i<=o;return u&&(a=i),u});return s?{levenshteinDistance:a,levenshteinDistanceEntry:s}:{}};var MT={a:["4","@"],b:["8"],c:["(","{","[","<"],d:["6","|)"],e:["3"],f:["#"],g:["6","9","&"],h:["#","|-|"],i:["1","!","|"],k:["<","|<"],l:["!","1","|","7"],m:["^^","nn","2n","/\\\\/\\\\"],n:["//"],o:["0","()"],q:["9"],u:["|_|"],s:["$","5"],t:["+","7"],v:["<",">","/"],w:["^/","uu","vv","2u","2v","\\\\/\\\\/"],x:["%","><"],z:["2"]},wc={warnings:{straightRow:"straightRow",keyPattern:"keyPattern",simpleRepeat:"simpleRepeat",extendedRepeat:"extendedRepeat",sequences:"sequences",recentYears:"recentYears",dates:"dates",topTen:"topTen",topHundred:"topHundred",common:"common",similarToCommon:"similarToCommon",wordByItself:"wordByItself",namesByThemselves:"namesByThemselves",commonNames:"commonNames",userInputs:"userInputs",pwned:"pwned"},suggestions:{l33t:"l33t",reverseWords:"reverseWords",allUppercase:"allUppercase",capitalization:"capitalization",dates:"dates",recentYears:"recentYears",associatedYears:"associatedYears",sequences:"sequences",repeated:"repeated",longerKeyboardPattern:"longerKeyboardPattern",anotherWord:"anotherWord",useWords:"useWords",noNeed:"noNeed",pwned:"pwned"},timeEstimation:{ltSecond:"ltSecond",second:"second",seconds:"seconds",minute:"minute",minutes:"minutes",hour:"hour",hours:"hours",day:"day",days:"days",month:"month",months:"months",year:"year",years:"years",centuries:"centuries"}};class yo{constructor(t=[]){this.parents=t,this.children=new Map}addSub(t,...n){const a=t.charAt(0);this.children.has(a)||this.children.set(a,new yo([...this.parents,a]));let s=this.children.get(a);for(let r=1;r(Object.entries(e).forEach(([n,a])=>{a.forEach(s=>{t.addSub(s,n)})}),t);class XFe{constructor(){this.matchers={},this.l33tTable=MT,this.trieNodeRoot=FT(MT,new yo),this.dictionary={userInputs:[]},this.rankedDictionaries={},this.rankedDictionariesMaxWordSize={},this.translations=wc,this.graphs={},this.useLevenshteinDistance=!1,this.levenshteinThreshold=2,this.l33tMaxSubstitutions=100,this.maxLength=256,this.setRankedDictionaries()}setOptions(t={}){t.l33tTable&&(this.l33tTable=t.l33tTable,this.trieNodeRoot=FT(t.l33tTable,new yo)),t.dictionary&&(this.dictionary=t.dictionary,this.setRankedDictionaries()),t.translations&&this.setTranslations(t.translations),t.graphs&&(this.graphs=t.graphs),t.useLevenshteinDistance!==void 0&&(this.useLevenshteinDistance=t.useLevenshteinDistance),t.levenshteinThreshold!==void 0&&(this.levenshteinThreshold=t.levenshteinThreshold),t.l33tMaxSubstitutions!==void 0&&(this.l33tMaxSubstitutions=t.l33tMaxSubstitutions),t.maxLength!==void 0&&(this.maxLength=t.maxLength)}setTranslations(t){if(this.checkCustomTranslations(t))this.translations=t;else throw new Error("Invalid translations object fallback to keys")}checkCustomTranslations(t){let n=!0;return Object.keys(wc).forEach(a=>{if(a in t){const s=a;Object.keys(wc[s]).forEach(r=>{r in t[s]||(n=!1)})}else n=!1}),n}setRankedDictionaries(){const t={},n={};Object.keys(this.dictionary).forEach(a=>{t[a]=kT(this.dictionary[a]),n[a]=this.getRankedDictionariesMaxWordSize(this.dictionary[a])}),this.rankedDictionaries=t,this.rankedDictionariesMaxWordSize=n}getRankedDictionariesMaxWordSize(t){const n=t.map(a=>typeof a!="string"?a.toString().length:a.length);return n.length===0?0:n.reduce((a,s)=>Math.max(a,s),-1/0)}buildSanitizedRankedDictionary(t){const n=[];return t.forEach(a=>{const s=typeof a;(s==="string"||s==="number"||s==="boolean")&&n.push(a.toString().toLowerCase())}),kT(n)}extendUserInputsDictionary(t){this.dictionary.userInputs||(this.dictionary.userInputs=[]);const n=[...this.dictionary.userInputs,...t];this.rankedDictionaries.userInputs=this.buildSanitizedRankedDictionary(n),this.rankedDictionariesMaxWordSize.userInputs=this.getRankedDictionariesMaxWordSize(n)}addMatcher(t,n){this.matchers[t]?console.info(`Matcher ${t} already exists`):this.matchers[t]=n}}const We=new XFe;class QFe{constructor(t){this.defaultMatch=t}match({password:t}){const n=t.split("").reverse().join("");return this.defaultMatch({password:n}).map(a=>({...a,token:a.token.split("").reverse().join(""),reversed:!0,i:t.length-1-a.j,j:t.length-1-a.i}))}}class ZFe{constructor({substr:t,limit:n,trieRoot:a}){this.buffer=[],this.finalPasswords=[],this.substr=t,this.limit=n,this.trieRoot=a}getAllPossibleSubsAtIndex(t){const n=[];let a=this.trieRoot;for(let s=t;s=this.limit)return;if(a===this.substr.length){t===n&&this.finalPasswords.push({password:this.buffer.join(""),changes:r});return}const u=[...this.getAllPossibleSubsAtIndex(a)];let l=!1;for(let c=a+u.length-1;c>=a;c-=1){const f=u[c-a];if(f.isTerminal()){if(o===f.parents.join("")&&i>=3)continue;l=!0;const E=f.subs;for(const p of E){this.buffer.push(p);const T=r.concat({i:s,letter:p,substitution:f.parents.join("")});if(this.helper({onlyFullSub:t,isFullSub:n,index:c+1,subIndex:s+p.length,changes:T,lastSubLetter:f.parents.join(""),consecutiveSubCount:o===f.parents.join("")?i+1:1}),this.buffer.pop(),this.finalPasswords.length>=this.limit)return}}}if(!t||!l){const c=this.substr.charAt(a);this.buffer.push(c),this.helper({onlyFullSub:t,isFullSub:n&&!l,index:a+1,subIndex:s+1,changes:r,lastSubLetter:o,consecutiveSubCount:i}),this.buffer.pop()}}getAll(){return this.helper({onlyFullSub:!0,isFullSub:!0,index:0,subIndex:0,changes:[],lastSubLetter:void 0,consecutiveSubCount:0}),this.helper({onlyFullSub:!1,isFullSub:!0,index:0,subIndex:0,changes:[],lastSubLetter:void 0,consecutiveSubCount:0}),this.finalPasswords}}const JFe=(e,t,n)=>new ZFe({substr:e,limit:t,trieRoot:n}).getAll(),eWe=(e,t,n)=>{const s=e.changes.filter(l=>l.il-c.letter.length+c.substitution.length,t),r=e.changes.filter(l=>l.i>=t&&l.i<=n),o=r.reduce((l,c)=>l-c.letter.length+c.substitution.length,n-t+s),i=[],u=[];return r.forEach(l=>{i.findIndex(f=>f.letter===l.letter&&f.substitution===l.substitution)<0&&(i.push({letter:l.letter,substitution:l.substitution}),u.push(`${l.substitution} -> ${l.letter}`))}),{i:s,j:o,subs:i,subDisplay:u.join(", ")}};class tWe{constructor(t){this.defaultMatch=t}isAlreadyIncluded(t,n){return t.some(a=>Object.entries(a).every(([s,r])=>s==="subs"||r===n[s]))}match({password:t}){const n=[],a=JFe(t,We.l33tMaxSubstitutions,We.trieNodeRoot);let s=!1,r=!0;return a.forEach(o=>{if(s)return;const i=this.defaultMatch({password:o.password,useLevenshtein:r});r=!1,i.forEach(u=>{s||(s=u.i===0&&u.j===t.length-1);const l=eWe(o,u.i,u.j),c=t.slice(l.i,+l.j+1||9e9),f={...u,l33t:!0,token:c,...l},E=this.isAlreadyIncluded(n,f);c.toLowerCase()!==u.matchedWord&&!E&&n.push(f)})}),n.filter(o=>o.token.length>1)}}class nWe{constructor(){this.l33t=new tWe(this.defaultMatch),this.reverse=new QFe(this.defaultMatch)}match({password:t}){const n=[...this.defaultMatch({password:t}),...this.reverse.match({password:t}),...this.l33t.match({password:t})];return Ar(n)}defaultMatch({password:t,useLevenshtein:n=!0}){const a=[],s=t.length,r=t.toLowerCase();return Object.keys(We.rankedDictionaries).forEach(o=>{const i=We.rankedDictionaries[o],u=We.rankedDictionariesMaxWordSize[o],l=Math.min(u,s);for(let c=0;c{const r=n[s];r.lastIndex=0;let o;for(;o=r.exec(t);)if(o){const i=o[0];a.push({pattern:"regex",token:i,i:o.index,j:o.index+o[0].length-1,regexName:s,regexMatch:o})}}),Ar(a)}}var ws={nCk(e,t){let n=e;if(t>n)return 0;if(t===0)return 1;let a=1;for(let s=1;s<=t;s+=1)a*=n,a/=s,n-=1;return a},log10(e){return e===0?0:Math.log(e)/Math.log(10)},log2(e){return Math.log(e)/Math.log(2)},factorial(e){let t=1;for(let n=2;n<=e;n+=1)t*=n;return t}},sWe=({token:e})=>{let t=LFe**e.length;t===Number.POSITIVE_INFINITY&&(t=Number.MAX_VALUE);let n;return e.length===1?n=LO+1:n=$O+1,Math.max(t,n)},rWe=({year:e,separator:t})=>{let a=Math.max(Math.abs(e-Gf),kO)*365;return t&&(a*=4),a};const oWe=e=>{const t=e.split(""),n=t.filter(o=>o.match(WFe)).length,a=t.filter(o=>o.match(FFe)).length;let s=0;const r=Math.min(n,a);for(let o=1;o<=r;o+=1)s+=ws.nCk(n+a,o);return s};var iWe=e=>{const t=e.replace(zFe,"");if(t.match(MFe)||t.toLowerCase()===t)return 1;const n=[wO,kFe,UO],a=n.length;for(let s=0;s{let n=0,a=e.indexOf(t);for(;a>=0;)n+=1,a=e.indexOf(t,a+t.length);return n},uWe=({sub:e,token:t})=>{const n=t.toLowerCase(),a=WT(n,e.substitution),s=WT(n,e.letter);return{subbedCount:a,unsubbedCount:s}};var lWe=({l33t:e,subs:t,token:n})=>{if(!e)return 1;let a=1;return t.forEach(s=>{const{subbedCount:r,unsubbedCount:o}=uWe({sub:s,token:n});if(r===0||o===0)a*=2;else{const i=Math.min(o,r);let u=0;for(let l=1;l<=i;l+=1)u+=ws.nCk(o+r,l);a*=u}}),a},cWe=({rank:e,reversed:t,l33t:n,subs:a,token:s,dictionaryName:r})=>{const o=e,i=iWe(s),u=lWe({l33t:n,subs:a,token:s}),l=t&&2||1;let c;return r==="diceware"?c=6**5/2:c=o*i*u*l,{baseGuesses:o,uppercaseVariations:i,l33tVariations:u,calculation:c}},dWe=({regexName:e,regexMatch:t,token:n})=>{const a={alphaLower:26,alphaUpper:26,alpha:52,alphanumeric:62,digits:10,symbols:33};if(e in a)return a[e]**n.length;switch(e){case"recentYear":return Math.max(Math.abs(parseInt(t[0],10)-Gf),kO)}return 0},EWe=({baseGuesses:e,repeatCount:t})=>e*t,fWe=({token:e,ascending:t})=>{const n=e.charAt(0);let a=0;return["a","A","z","Z","0","1","9"].includes(n)?a=4:n.match(/\d/)?a=10:a=26,t||(a*=2),a*e.length};const pWe=e=>{let t=0;return Object.keys(e).forEach(n=>{const a=e[n];t+=a.filter(s=>!!s).length}),t/=Object.entries(e).length,t},mWe=({token:e,graph:t,turns:n})=>{const a=Object.keys(We.graphs[t]).length,s=pWe(We.graphs[t]);let r=0;const o=e.length;for(let i=2;i<=o;i+=1){const u=Math.min(n,i-1);for(let l=1;l<=u;l+=1)r+=ws.nCk(i-1,l-1)*a*s**l}return r};var _We=({graph:e,token:t,shiftedCount:n,turns:a})=>{let s=mWe({token:t,graph:e,turns:a});if(n){const r=t.length-n;if(n===0||r===0)s*=2;else{let o=0;for(let i=1;i<=Math.min(n,r);i+=1)o+=ws.nCk(n+r,i);s*=o}}return Math.round(s)},TWe=()=>GFe;const hWe=(e,t)=>{let n=1;return e.token.lengthzT[e]?zT[e](t):We.matchers[e]&&"scoring"in We.matchers[e]?We.matchers[e].scoring(t):0;var SWe=(e,t)=>{const n={};if("guesses"in e&&e.guesses!=null)return e;const a=hWe(e,t),s=AWe(e.pattern,e);let r=0;typeof s=="number"?r=s:e.pattern==="dictionary"&&(r=s.calculation,n.baseGuesses=s.baseGuesses,n.uppercaseVariations=s.uppercaseVariations,n.l33tVariations=s.l33tVariations);const o=Math.max(r,a);return{...e,...n,guesses:o,guessesLog10:ws.log10(o)}};const gn={password:"",optimal:{},excludeAdditive:!1,separatorRegex:void 0,fillArray(e,t){const n=[];for(let a=0;a1&&(s*=this.optimal.pi[a.i-1][t-1]);let r=ws.factorial(t)*s;this.excludeAdditive||(r+=$Fe**(t-1));let o=!1;Object.keys(this.optimal.g[n]).forEach(i=>{const u=this.optimal.g[n][i];parseInt(i,10)<=t&&u<=r&&(o=!0)}),o||(this.optimal.g[n][t]=r,this.optimal.m[n][t]=a,this.optimal.pi[n][t]=s)},bruteforceUpdate(e){let t=this.makeBruteforceMatch(0,e);this.update(t,1);for(let n=1;n<=e;n+=1){t=this.makeBruteforceMatch(n,e);const a=this.optimal.m[n-1];Object.keys(a).forEach(s=>{a[s].pattern!=="bruteforce"&&this.update(t,parseInt(s,10)+1)})}},unwind(e){const t=[];let n=e-1,a=0,s=1/0;const r=this.optimal.g[n];for(r&&Object.keys(r).forEach(o=>{const i=r[o];i=0;){const o=this.optimal.m[n][a];t.unshift(o),n=o.i-1,a-=1}return t}};var EE={mostGuessableMatchSequence(e,t,n=!1){gn.password=e,gn.excludeAdditive=n;const a=e.length;let s=gn.fillArray(a,"array");t.forEach(u=>{s[u.j].push(u)}),s=s.map(u=>u.sort((l,c)=>l.i-c.i)),gn.optimal={m:gn.fillArray(a,"object"),pi:gn.fillArray(a,"object"),g:gn.fillArray(a,"object")};for(let u=0;u{l.i>0?Object.keys(gn.optimal.m[l.i-1]).forEach(c=>{gn.update(l,parseInt(c,10)+1)}):gn.update(l,1)}),gn.bruteforceUpdate(u);const r=gn.unwind(a),o=r.length,i=this.getGuesses(e,o);return{password:e,guesses:i,guessesLog10:ws.log10(i),sequence:r}},getGuesses(e,t){const n=e.length;let a=0;return e.length===0?a=1:a=gn.optimal.g[n-1][t],a}};class OWe{match({password:t,omniMatch:n}){const a=[];let s=0;for(;so instanceof Promise)?Promise.all(a):a}normalizeMatch(t,n,a,s){const r={pattern:"repeat",i:a.index,j:n,token:a[0],baseToken:t,baseGuesses:0,repeatCount:a[0].length/t.length};return s instanceof Promise?s.then(o=>({...r,baseGuesses:o})):{...r,baseGuesses:s}}getGreedyMatch(t,n){const a=/(.+)\1+/g;return a.lastIndex=n,a.exec(t)}getLazyMatch(t,n){const a=/(.+?)\1+/g;return a.lastIndex=n,a.exec(t)}setMatchToken(t,n){const a=/^(.+?)\1+$/;let s,r="";if(n&&t[0].length>n[0].length){s=t;const o=a.exec(s[0]);o&&(r=o[1])}else s=n,s&&(r=s[1]);return{match:s,baseToken:r}}getBaseGuesses(t,n){const a=n.match(t);return a instanceof Promise?a.then(r=>EE.mostGuessableMatchSequence(t,r).guesses):EE.mostGuessableMatchSequence(t,a).guesses}}class gWe{constructor(){this.MAX_DELTA=5}match({password:t}){const n=[];if(t.length===1)return[];let a=0,s=null;const r=t.length;for(let o=1;o1||Math.abs(a)===1){const o=Math.abs(a);if(o>0&&o<=this.MAX_DELTA){const i=s.slice(t,+n+1||9e9),{sequenceName:u,sequenceSpace:l}=this.getSequence(i);return r.push({pattern:"sequence",i:t,j:n,token:s.slice(t,+n+1||9e9),sequenceName:u,sequenceSpace:l,ascending:a>0})}}return null}getSequence(t){let n="unicode",a=26;return UFe.test(t)?(n="lower",a=26):wFe.test(t)?(n="upper",a=26):xFe.test(t)&&(n="digits",a=10),{sequenceName:n,sequenceSpace:a}}}class IWe{constructor(){this.SHIFTED_RX=/[~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>?]/}match({password:t}){const n=[];return Object.keys(We.graphs).forEach(a=>{const s=We.graphs[a];dE(n,this.helper(t,s,a))}),Ar(n)}checkIfShifted(t,n,a){return!t.includes("keypad")&&this.SHIFTED_RX.test(n.charAt(a))?1:0}helper(t,n,a){let s;const r=[];let o=0;const i=t.length;for(;o2&&r.push({pattern:"spatial",i:o,j:u-1,token:t.slice(o,u),graph:a,turns:c,shiftedCount:s}),o=u;break}}}return r}}const RWe=new RegExp(`[${MO.join("")}]`);class tl{static getMostUsedSeparatorChar(t){const n=[...t.split("").filter(s=>RWe.test(s)).reduce((s,r)=>{const o=s.get(r);return o?s.set(r,o+1):s.set(r,1),s},new Map).entries()].sort(([s,r],[o,i])=>i-r);if(!n.length)return;const a=n[0];if(!(a[1]<2))return a[0]}static getSeparatorRegex(t){return new RegExp(`([^${t} -])(${t})(?!${t})`,"g")}match({password:t}){const n=[];if(t.length===0)return n;const a=tl.getMostUsedSeparatorChar(t);if(a===void 0)return n;const s=tl.getSeparatorRegex(a);for(const r of t.matchAll(s)){if(r.index===void 0)continue;const o=r.index+1;n.push({pattern:"separator",token:a,i:o,j:o})}return n}}class NWe{constructor(){this.matchers={date:HFe,dictionary:nWe,regex:aWe,repeat:OWe,sequence:gWe,spatial:IWe,separator:tl}}match(t){const n=[],a=[];return[...Object.keys(this.matchers),...Object.keys(We.matchers)].forEach(r=>{if(!this.matchers[r]&&!We.matchers[r])return;const o=this.matchers[r]?this.matchers[r]:We.matchers[r].Matching,u=new o().match({password:t,omniMatch:this});u instanceof Promise?(u.then(l=>{dE(n,l)}),a.push(u)):dE(n,u)}),a.length>0?new Promise((r,o)=>{Promise.all(a).then(()=>{r(Ar(n))}).catch(i=>{o(i)})}):Ar(n)}}const FO=1,WO=FO*60,zO=WO*60,xO=zO*24,BO=xO*31,GO=BO*12,vWe=GO*100,Uc={second:FO,minute:WO,hour:zO,day:xO,month:BO,year:GO,century:vWe};class bWe{translate(t,n){let a=t;n!==void 0&&n!==1&&(a+="s");const{timeEstimation:s}=We.translations;return s[a].replace("{base}",`${n}`)}estimateAttackTimes(t){const n={onlineThrottling100PerHour:t/.027777777777777776,onlineNoThrottling10PerSecond:t/10,offlineSlowHashing1e4PerSecond:t/1e4,offlineFastHashing1e10PerSecond:t/1e10},a={onlineThrottling100PerHour:"",onlineNoThrottling10PerSecond:"",offlineSlowHashing1e4PerSecond:"",offlineFastHashing1e10PerSecond:""};return Object.keys(n).forEach(s=>{const r=n[s];a[s]=this.displayTime(r)}),{crackTimesSeconds:n,crackTimesDisplay:a,score:this.guessesToScore(t)}}guessesToScore(t){return t<1005?0:t<1000005?1:t<100000005?2:t<1e10+5?3:4}displayTime(t){let n="centuries",a;const s=Object.keys(Uc),r=s.findIndex(o=>t-1&&(n=s[r-1],r!==0?a=Math.round(t/Uc[n]):n="ltSecond"),this.translate(n,a)}}var CWe=()=>null,DWe=()=>({warning:We.translations.warnings.dates,suggestions:[We.translations.suggestions.dates]});const PWe=(e,t)=>{let n=null;return t&&!e.l33t&&!e.reversed?e.rank<=10?n=We.translations.warnings.topTen:e.rank<=100?n=We.translations.warnings.topHundred:n=We.translations.warnings.common:e.guessesLog10<=4&&(n=We.translations.warnings.similarToCommon),n},yWe=(e,t)=>{let n=null;return t&&(n=We.translations.warnings.wordByItself),n},LWe=(e,t)=>t?We.translations.warnings.namesByThemselves:We.translations.warnings.commonNames,$We=(e,t)=>{let n=null;const a=e.dictionaryName,s=a==="lastnames"||a.toLowerCase().includes("firstnames");return a==="passwords"?n=PWe(e,t):a.includes("wikipedia")?n=yWe(e,t):s?n=LWe(e,t):a==="userInputs"&&(n=We.translations.warnings.userInputs),n};var kWe=(e,t)=>{const n=$We(e,t),a=[],s=e.token;return s.match(wO)?a.push(We.translations.suggestions.capitalization):s.match(UO)&&s.toLowerCase()!==s&&a.push(We.translations.suggestions.allUppercase),e.reversed&&e.token.length>=4&&a.push(We.translations.suggestions.reverseWords),e.l33t&&a.push(We.translations.suggestions.l33t),{warning:n,suggestions:a}},wWe=e=>e.regexName==="recentYear"?{warning:We.translations.warnings.recentYears,suggestions:[We.translations.suggestions.recentYears,We.translations.suggestions.associatedYears]}:{warning:null,suggestions:[]},UWe=e=>{let t=We.translations.warnings.extendedRepeat;return e.baseToken.length===1&&(t=We.translations.warnings.simpleRepeat),{warning:t,suggestions:[We.translations.suggestions.repeated]}},MWe=()=>({warning:We.translations.warnings.sequences,suggestions:[We.translations.suggestions.sequences]}),FWe=e=>{let t=We.translations.warnings.keyPattern;return e.turns===1&&(t=We.translations.warnings.straightRow),{warning:t,suggestions:[We.translations.suggestions.longerKeyboardPattern]}},WWe=()=>null;const xT={warning:null,suggestions:[]};class zWe{constructor(){this.matchers={bruteforce:CWe,date:DWe,dictionary:kWe,regex:wWe,repeat:UWe,sequence:MWe,spatial:FWe,separator:WWe},this.defaultFeedback={warning:null,suggestions:[]},this.setDefaultSuggestions()}setDefaultSuggestions(){this.defaultFeedback.suggestions.push(We.translations.suggestions.useWords,We.translations.suggestions.noNeed)}getFeedback(t,n){if(n.length===0)return this.defaultFeedback;if(t>2)return xT;const a=We.translations.suggestions.anotherWord,s=this.getLongestMatch(n);let r=this.getMatchFeedback(s,n.length===1);return r!=null?r.suggestions.unshift(a):r={warning:null,suggestions:[a]},r}getLongestMatch(t){let n=t[0];return t.slice(1).forEach(s=>{s.token.length>n.token.length&&(n=s)}),n}getMatchFeedback(t,n){return this.matchers[t.pattern]?this.matchers[t.pattern](t,n):We.matchers[t.pattern]&&"feedback"in We.matchers[t.pattern]?We.matchers[t.pattern].feedback(t,n):xT}}const HO=()=>new Date().getTime(),xWe=(e,t,n)=>{const a=new zWe,s=new bWe,r=EE.mostGuessableMatchSequence(t,e),o=HO()-n,i=s.estimateAttackTimes(r.guesses);return{calcTime:o,...r,...i,feedback:a.getFeedback(i.score,r.sequence)}},BWe=(e,t)=>new NWe().match(e),GWe=(e,t)=>{const n=HO(),a=BWe(e);if(a instanceof Promise)throw new Error("You are using a Promised matcher, please use `zxcvbnAsync` for it.");return xWe(a,e,n)},HWe="modulepreload",VWe=function(e){return"/"+e},BT={},wt=function(t,n,a){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const r=document.querySelector("meta[property=csp-nonce]"),o=(r==null?void 0:r.nonce)||(r==null?void 0:r.getAttribute("nonce"));s=Promise.all(n.map(i=>{if(i=VWe(i),i in BT)return;BT[i]=!0;const u=i.endsWith(".css"),l=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${i}"]${l}`))return;const c=document.createElement("link");if(c.rel=u?"stylesheet":HWe,u||(c.as="script",c.crossOrigin=""),c.href=i,o&&c.setAttribute("nonce",o),document.head.appendChild(c),u)return new Promise((f,E)=>{c.addEventListener("load",f),c.addEventListener("error",()=>E(new Error(`Unable to preload CSS for ${i}`)))})}))}return s.then(()=>t()).catch(r=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=r,window.dispatchEvent(o),!o.defaultPrevented)throw r})},jWe=async e=>{switch(e){case"fr":return await wt(()=>import("./password.fr-LQIeIoMk.js"),[]);case"de":return await wt(()=>import("./password.de-SDMVbHi1.js"),[]);case"it":return await wt(()=>import("./password.it-CReO5S7F.js"),[]);case"es":return await wt(()=>import("./password.es-es-DLU3Rh6X.js"),[]);case"pl":return await wt(()=>import("./password.pl-T3z7Kg0O.js"),[]);case"cs":return await wt(()=>import("./password.cs-CLn3Tyh5.js"),[]);default:return await wt(()=>import("./password.en-BDtqNyGO.js"),[])}},GT=async e=>{const t=await wt(()=>import("./password.common-bdamX4EN.js"),[]),n=await jWe(e),a={graphs:t.adjacencyGraphs,dictionary:{...t.dictionary,...n.dictionary}};We.setOptions(a)},KWe=e=>{switch(e){case 2:return"AVERAGE";case 3:return"GOOD";case 4:return"STRONG";default:return"WEAK"}},qWe={class:"password-strength"},YWe={for:"password-strength",class:"visually-hidden"},XWe=["value"],QWe={key:0,class:"password-strength-details"},ZWe={class:"password-strength-value"},JWe={key:0,class:"info-box"},eze={class:"password-feedback"},tze=ee({__name:"PasswordStength",props:{password:{}},setup(e){const t=e,{password:n}=me(t),a=ke(),s=U(()=>a.getters[K.GETTERS.LANGUAGE]),r=U(()=>a.getters[Q.GETTERS.IS_SUCCESS]),o=de(0),i=de(""),u=de([]),l=de("0% 100%");pt(async()=>await GT(s.value));function c(f){const E=GWe(f);o.value=E.score,i.value=KWe(o.value),u.value=E.feedback.suggestions,l.value=o.value*100/4+"% 100%"}return Me(()=>s.value,async f=>{await GT(f)}),Me(()=>n.value,async f=>{r.value?i.value="":c(f)}),(f,E)=>(h(),I("div",qWe,[d("label",YWe,_(f.$t("user.PASSWORD_STRENGTH.LABEL")),1),d("input",{id:"password-strength",class:Te(["password-slider",`strength-${o.value}`]),style:ba({backgroundSize:l.value}),type:"range",value:o.value,min:"0",max:"4",step:"1",tabindex:-1,autocomplete:"off"},null,14,XWe),i.value?(h(),I("div",QWe,[d("span",ZWe,_(f.$t("user.PASSWORD_STRENGTH.LABEL"))+": "+_(f.$t(`user.PASSWORD_STRENGTH.${i.value}`)),1),u.value.length>0?(h(),I("div",JWe,[d("ul",eze,[(h(!0),I(pe,null,Pe(u.value,p=>(h(),I("li",{key:p},_(f.$t(`user.PASSWORD_STRENGTH.SUGGESTIONS.${p}`)),1))),128))])])):M("",!0)])):M("",!0)]))}}),nze=ie(tze,[["__scopeId","data-v-338d49ea"]]),aze=e=>(rt("data-v-0caa3bff"),e=e(),ot(),e),sze={class:"password-input"},rze=["id","disabled","placeholder","required","type","autocomplete"],oze={class:"show-password"},ize={key:0,class:"form-info"},uze=aze(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),lze=ee({__name:"PasswordInput",props:{checkStrength:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},id:{default:"password"},password:{default:""},placeholder:{},required:{type:Boolean,default:!1},autocomplete:{}},emits:["updatePassword","passwordError"],setup(e,{emit:t}){const n=e,{autocomplete:a,checkStrength:s,disabled:r,id:o,password:i,placeholder:u,required:l}=me(n),c=de(!1),f=de(""),E=t;function p(){c.value=!c.value}function T(N){E("updatePassword",N.target.value)}function O(){E("passwordError")}return Me(()=>i.value,N=>{N===""&&(f.value="",c.value=!1)}),(N,g)=>(h(),I("div",sze,[ye(d("input",{id:m(o),disabled:m(r),placeholder:m(u),required:m(l),type:c.value?"text":"password","onUpdate:modelValue":g[0]||(g[0]=R=>f.value=R),minlength:"8",onInput:T,onInvalid:O,autocomplete:m(a)},null,40,rze),[[IN,f.value]]),d("div",oze,[d("button",{class:"transparent",onClick:be(p,["prevent"]),type:"button"},[V(_(N.$t(`user.${c.value?"HIDE":"SHOW"}_PASSWORD`))+" ",1),d("i",{class:Te(["fa",`fa-eye${c.value?"-slash":""}`]),"aria-hidden":"true"},null,2)])]),m(s)?(h(),I("div",ize,[uze,V(" "+_(N.$t("user.PASSWORD_INFO")),1)])):M("",!0),m(s)?(h(),Y(nze,{key:1,password:f.value},null,8,["password"])):M("",!0)]))}}),fE=ie(lze,[["__scopeId","data-v-0caa3bff"]]),Hf=e=>(rt("data-v-d6bbef04"),e=e(),ot(),e),cze={id:"user-infos-edition"},dze={class:"profile-form form-box"},Eze={key:1,class:"info-box success-message"},fze={class:"form-items",for:"email"},pze=["disabled"],mze={class:"form-items",for:"password-field"},_ze={class:"form-items",for:"new-password-field"},Tze={class:"form-buttons"},hze={class:"confirm",type:"submit"},Aze={class:"data-export"},Sze={class:"info-box"},Oze=Hf(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),gze={key:0,class:"data-export-archive"},Ize=Hf(()=>d("i",{class:"fa fa-download","aria-hidden":"true"},null,-1)),Rze={key:1},Nze={key:2},vze=Hf(()=>d("i",{class:"fa fa-spinner fa-pulse","aria-hidden":"true"},null,-1)),bze=ee({__name:"UserAccountEdition",props:{user:{}},setup(e){const t=e,{user:n}=me(t),a=ke(),s=Ht({email:"",password:"",new_password:""}),r=U(()=>a.getters[Q.GETTERS.USER_LOADING]),o=U(()=>a.getters[K.GETTERS.APP_CONFIG]),i=U(()=>a.getters[Q.GETTERS.IS_SUCCESS]),u=de(!1),l=U(()=>a.getters[K.GETTERS.ERROR_MESSAGES]),c=de(!1),f=de(!1),E=U(()=>a.getters[Q.GETTERS.EXPORT_REQUEST]),p=U(()=>A()),T=de(!1);St(()=>{t.user&&(a.dispatch(Q.ACTIONS.GET_REQUEST_DATA_EXPORT),N(t.user))});function O(){c.value=!0}function N(z){s.email=z.email}function g(z){s.password=z}function R(z){s.new_password=z}function A(){return E.value?Fn(E.value.created_at,n.value.timezone,n.value.date_format,!0,null,!0):null}function S(){return p.value?YC(new Date(p.value),ZC(new Date,1)):!0}function v(){const z={email:s.email,password:s.password};s.new_password&&(z.new_password=s.new_password),u.value=s.email!==n.value.email,a.dispatch(Q.ACTIONS.UPDATE_USER_ACCOUNT,z)}function C(z){f.value=z}function y(z){a.dispatch(Q.ACTIONS.DELETE_ACCOUNT,{username:z})}function b(){a.dispatch(Q.ACTIONS.REQUEST_DATA_EXPORT)}async function k(z){T.value=!0,await Be.get(`/auth/account/export/${z}`,{responseType:"blob"}).then($=>{const W=window.URL.createObjectURL(new Blob([$.data],{type:"application/zip"})),X=document.createElement("a");X.href=W,X.setAttribute("download",z),document.body.appendChild(X),X.click()}).finally(()=>T.value=!1)}return mt(()=>{a.commit(Q.MUTATIONS.UPDATE_IS_SUCCESS,!1),a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),Me(()=>i.value,async z=>{z&&(g(""),R(""),N(n.value),c.value=!1)}),Me(()=>n.value.email,async()=>{N(n.value)}),(z,$)=>{const W=oe("Modal"),X=oe("ErrorMessage");return h(),I("div",cze,[f.value?(h(),Y(W,{key:0,title:z.$t("common.CONFIRMATION"),message:z.$t("user.CONFIRM_ACCOUNT_DELETION"),onConfirmAction:$[0]||($[0]=re=>y(m(n).username)),onCancelAction:$[1]||($[1]=re=>C(!1)),onKeydown:$[2]||($[2]=Je(re=>C(!1),["esc"]))},null,8,["title","message"])):M("",!0),d("div",dze,[l.value?(h(),Y(X,{key:0,message:l.value},null,8,["message"])):M("",!0),i.value?(h(),I("div",Eze,_(z.$t(`user.PROFILE.SUCCESSFUL_${u.value&&o.value.is_email_sending_enabled?"EMAIL_":""}UPDATE`)),1)):M("",!0),d("form",{class:Te({errors:c.value}),onSubmit:be(v,["prevent"])},[d("label",fze,[V(_(z.$t("user.EMAIL"))+"* ",1),ye(d("input",{id:"email","onUpdate:modelValue":$[3]||($[3]=re=>s.email=re),disabled:r.value,required:!0,onInvalid:O,autocomplete:"email"},null,40,pze),[[tt,s.email]])]),d("label",mze,[V(_(z.$t("user.CURRENT_PASSWORD"))+"* ",1),F(fE,{id:"password-field",disabled:r.value,password:s.password,required:!0,onUpdatePassword:g,onPasswordError:O,autocomplete:"current-password"},null,8,["disabled","password"])]),d("label",_ze,[V(_(z.$t("user.NEW_PASSWORD"))+" ",1),F(fE,{id:"new-password-field",disabled:r.value,checkStrength:!0,password:s.new_password,isSuccess:!1,onUpdatePassword:R,onPasswordError:O,autocomplete:"new-password"},null,8,["disabled","password"])]),d("div",Tze,[d("button",hze,_(z.$t("buttons.SUBMIT")),1),d("button",{class:"cancel",onClick:$[4]||($[4]=be(re=>z.$router.push("/profile"),["prevent"]))},_(z.$t("buttons.CANCEL")),1),d("button",{class:"danger",onClick:$[5]||($[5]=be(re=>C(!0),["prevent"]))},_(z.$t("buttons.DELETE_MY_ACCOUNT")),1),S()?(h(),I("button",{key:0,class:"confirm",onClick:be(b,["prevent"])},_(z.$t("buttons.REQUEST_DATA_EXPORT")),1)):M("",!0)])],34),d("div",Aze,[d("span",Sze,[Oze,V(" "+_(z.$t("user.EXPORT_REQUEST.ONLY_ONE_EXPORT_PER_DAY")),1)]),E.value?(h(),I("div",gze,[V(_(z.$t("user.EXPORT_REQUEST.DATA_EXPORT"))+" ("+_(p.value)+"): ",1),E.value.status==="successful"?(h(),I("span",{key:0,class:"archive-link",onClick:$[6]||($[6]=be(re=>k(E.value.file_name),["prevent"]))},[Ize,V(" "+_(z.$t("user.EXPORT_REQUEST.DOWNLOAD_ARCHIVE"))+" ("+_(m(pu)(E.value.file_size))+") ",1)])):(h(),I("span",Rze,_(z.$t(`user.EXPORT_REQUEST.STATUS.${E.value.status}`)),1)),T.value?(h(),I("span",Nze,[V(_(z.$t("user.EXPORT_REQUEST.GENERATING_LINK"))+" ",1),vze])):M("",!0)])):M("",!0)])])])}}}),Cze=ie(bze,[["__scopeId","data-v-d6bbef04"]]),Dze={id:"user-infos-edition"},Pze={class:"profile-form form-box"},yze={class:"form-items",for:"registrationDate"},Lze=["value"],$ze={class:"form-items",for:"first_name"},kze=["disabled"],wze={class:"form-items",for:"last_name"},Uze={class:"form-items",for:"birth_date"},Mze=["disabled"],Fze={class:"form-items",for:"location"},Wze=["disabled"],zze={class:"form-items"},xze={class:"form-buttons"},Bze={class:"confirm",type:"submit"},Gze=ee({__name:"UserInfosEdition",props:{user:{}},setup(e){const t=e,n=ke(),a=Ht({first_name:"",last_name:"",birth_date:"",location:"",bio:""}),s=U(()=>t.user.created_at?Fn(t.user.created_at,t.user.timezone,t.user.date_format):""),r=U(()=>n.getters[Q.GETTERS.USER_LOADING]),o=U(()=>n.getters[K.GETTERS.ERROR_MESSAGES]);St(()=>{t.user&&i(t.user)});function i(c){a.first_name=c.first_name?c.first_name:"",a.last_name=c.last_name?c.last_name:"",a.birth_date=c.birth_date?un(new Date(c.birth_date),"yyyy-MM-dd"):"",a.location=c.location?c.location:"",a.bio=c.bio?c.bio:""}function u(c){a.bio=c}function l(){n.dispatch(Q.ACTIONS.UPDATE_USER_PROFILE,a)}return mt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),(c,f)=>{const E=oe("ErrorMessage"),p=oe("CustomTextArea");return h(),I("div",Dze,[d("div",Pze,[o.value?(h(),Y(E,{key:0,message:o.value},null,8,["message"])):M("",!0),d("form",{onSubmit:be(l,["prevent"])},[d("label",yze,[V(_(c.$t("user.PROFILE.REGISTRATION_DATE"))+" ",1),d("input",{id:"registrationDate",value:s.value,disabled:""},null,8,Lze)]),d("label",$ze,[V(_(c.$t("user.PROFILE.FIRST_NAME"))+" ",1),ye(d("input",{id:"first_name","onUpdate:modelValue":f[0]||(f[0]=T=>a.first_name=T),disabled:r.value},null,8,kze),[[tt,a.first_name]])]),d("label",wze,[V(_(c.$t("user.PROFILE.LAST_NAME"))+" ",1),ye(d("input",{id:"last_name","onUpdate:modelValue":f[1]||(f[1]=T=>a.last_name=T)},null,512),[[tt,a.last_name]])]),d("label",Uze,[V(_(c.$t("user.PROFILE.BIRTH_DATE"))+" ",1),ye(d("input",{id:"birth_date",type:"date",class:"birth-date","onUpdate:modelValue":f[2]||(f[2]=T=>a.birth_date=T),disabled:r.value},null,8,Mze),[[tt,a.birth_date]])]),d("label",Fze,[V(_(c.$t("user.PROFILE.LOCATION"))+" ",1),ye(d("input",{id:"location","onUpdate:modelValue":f[3]||(f[3]=T=>a.location=T),disabled:r.value},null,8,Wze),[[tt,a.location]])]),d("label",zze,[V(_(c.$t("user.PROFILE.BIO"))+" ",1),F(p,{name:"bio",charLimit:200,input:a.bio,disabled:r.value,onUpdateValue:u},null,8,["input","disabled"])]),d("div",xze,[d("button",Bze,_(c.$t("buttons.SUBMIT")),1),d("button",{class:"cancel",onClick:f[4]||(f[4]=be(T=>c.$router.push("/profile"),["prevent"]))},_(c.$t("buttons.CANCEL")),1)])],32)])])}}}),Hze=ie(Gze,[["__scopeId","data-v-d124143f"]]),Vze=e=>(rt("data-v-92649ccc"),e=e(),ot(),e),jze={id:"user-picture-edition"},Kze={class:"user-picture-form"},qze={class:"picture-help"},Yze={class:"info-box"},Xze=Vze(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),Qze={class:"picture-buttons"},Zze=["disabled"],Jze=ee({__name:"UserPictureEdition",props:{user:{}},setup(e){const t=e,n=ke(),{user:a}=me(t),s=U(()=>n.getters[K.GETTERS.ERROR_MESSAGES]),r=U(()=>n.getters[K.GETTERS.APP_CONFIG]),o=r.value.max_single_file_size?pu(r.value.max_single_file_size):"",i=de(null);function u(){n.dispatch(Q.ACTIONS.DELETE_PICTURE)}function l(f){f.target.files!==null&&(i.value=f.target.files[0])}function c(){i.value&&n.dispatch(Q.ACTIONS.UPDATE_USER_PICTURE,{picture:i.value})}return mt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),(f,E)=>{const p=oe("ErrorMessage");return h(),I("div",jze,[d("div",Kze,[s.value?(h(),Y(p,{key:0,message:s.value},null,8,["message"])):M("",!0),F(zo,{user:m(a)},null,8,["user"]),d("form",{onSubmit:be(c,["prevent"])},[d("input",{type:"file",name:"picture",accept:".png,.jpg,.gif",onInput:l},null,32),d("div",qze,[d("span",Yze,[Xze,V(" "+_(f.$t("workouts.MAX_SIZE"))+": "+_(m(o)),1)])]),d("div",Qze,[d("button",{type:"submit",disabled:!i.value},_(f.$t("user.PROFILE.PICTURE_UPDATE")),9,Zze),m(a).picture?(h(),I("button",{key:0,class:"danger",onClick:u},_(f.$t("user.PROFILE.PICTURE_REMOVE")),1)):M("",!0),d("button",{class:"cancel",onClick:E[0]||(E[0]=T=>f.$router.push("/profile"))},_(f.$t("user.PROFILE.BACK_TO_PROFILE")),1)])],32)])])}}}),exe=ie(Jze,[["__scopeId","data-v-92649ccc"]]),HT=["Africa/Abidjan","Africa/Accra","Africa/Algiers","Africa/Bissau","Africa/Cairo","Africa/Casablanca","Africa/Ceuta","Africa/El_Aaiun","Africa/Johannesburg","Africa/Juba","Africa/Khartoum","Africa/Lagos","Africa/Maputo","Africa/Monrovia","Africa/Nairobi","Africa/Ndjamena","Africa/Sao_Tome","Africa/Tripoli","Africa/Tunis","Africa/Windhoek","America/Adak","America/Anchorage","America/Araguaina","America/Argentina/Buenos_Aires","America/Argentina/Catamarca","America/Argentina/Cordoba","America/Argentina/Jujuy","America/Argentina/La_Rioja","America/Argentina/Mendoza","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Asuncion","America/Atikokan","America/Bahia","America/Bahia_Banderas","America/Barbados","America/Belem","America/Belize","America/Blanc-Sablon","America/Boa_Vista","America/Bogota","America/Boise","America/Cambridge_Bay","America/Campo_Grande","America/Cancun","America/Caracas","America/Cayenne","America/Chicago","America/Chihuahua","America/Costa_Rica","America/Creston","America/Cuiaba","America/Curacao","America/Danmarkshavn","America/Dawson","America/Dawson_Creek","America/Denver","America/Detroit","America/Edmonton","America/Eirunepe","America/El_Salvador","America/Fortaleza","America/Fort_Nelson","America/Glace_Bay","America/Godthab","America/Goose_Bay","America/Grand_Turk","America/Guatemala","America/Guayaquil","America/Guyana","America/Halifax","America/Havana","America/Hermosillo","America/Indiana/Indianapolis","America/Indiana/Knox","America/Indiana/Marengo","America/Indiana/Petersburg","America/Indiana/Tell_City","America/Indiana/Vevay","America/Indiana/Vincennes","America/Indiana/Winamac","America/Inuvik","America/Iqaluit","America/Jamaica","America/Juneau","America/Kentucky/Louisville","America/Kentucky/Monticello","America/La_Paz","America/Lima","America/Los_Angeles","America/Maceio","America/Managua","America/Manaus","America/Martinique","America/Matamoros","America/Mazatlan","America/Menominee","America/Merida","America/Metlakatla","America/Mexico_City","America/Miquelon","America/Moncton","America/Monterrey","America/Montevideo","America/Nassau","America/New_York","America/Nipigon","America/Nome","America/Noronha","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Ojinaga","America/Panama","America/Pangnirtung","America/Paramaribo","America/Phoenix","America/Port-au-Prince","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Punta_Arenas","America/Rainy_River","America/Rankin_Inlet","America/Recife","America/Regina","America/Resolute","America/Rio_Branco","America/Santarem","America/Santiago","America/Santo_Domingo","America/Sao_Paulo","America/Scoresbysund","America/Sitka","America/St_Johns","America/Swift_Current","America/Tegucigalpa","America/Thule","America/Thunder_Bay","America/Tijuana","America/Toronto","America/Vancouver","America/Whitehorse","America/Winnipeg","America/Yakutat","America/Yellowknife","Antarctica/Casey","Antarctica/Davis","Antarctica/DumontDUrville","Antarctica/Macquarie","Antarctica/Mawson","Antarctica/Palmer","Antarctica/Rothera","Antarctica/Syowa","Antarctica/Troll","Antarctica/Vostok","Asia/Almaty","Asia/Amman","Asia/Anadyr","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Atyrau","Asia/Baghdad","Asia/Baku","Asia/Bangkok","Asia/Barnaul","Asia/Beirut","Asia/Bishkek","Asia/Brunei","Asia/Chita","Asia/Choibalsan","Asia/Colombo","Asia/Damascus","Asia/Dhaka","Asia/Dili","Asia/Dubai","Asia/Dushanbe","Asia/Famagusta","Asia/Gaza","Asia/Hebron","Asia/Ho_Chi_Minh","Asia/Hong_Kong","Asia/Hovd","Asia/Irkutsk","Asia/Jakarta","Asia/Jayapura","Asia/Jerusalem","Asia/Kabul","Asia/Kamchatka","Asia/Karachi","Asia/Kathmandu","Asia/Khandyga","Asia/Kolkata","Asia/Krasnoyarsk","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Macau","Asia/Magadan","Asia/Makassar","Asia/Manila","Asia/Nicosia","Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk","Asia/Oral","Asia/Pontianak","Asia/Pyongyang","Asia/Qatar","Asia/Qostanay","Asia/Qyzylorda","Asia/Riyadh","Asia/Sakhalin","Asia/Samarkand","Asia/Seoul","Asia/Shanghai","Asia/Singapore","Asia/Srednekolymsk","Asia/Taipei","Asia/Tashkent","Asia/Tbilisi","Asia/Tehran","Asia/Thimphu","Asia/Tokyo","Asia/Tomsk","Asia/Ulaanbaatar","Asia/Urumqi","Asia/Ust-Nera","Asia/Vladivostok","Asia/Yakutsk","Asia/Yangon","Asia/Yekaterinburg","Asia/Yerevan","Atlantic/Azores","Atlantic/Bermuda","Atlantic/Canary","Atlantic/Cape_Verde","Atlantic/Faroe","Atlantic/Madeira","Atlantic/Reykjavik","Atlantic/South_Georgia","Atlantic/Stanley","Australia/Adelaide","Australia/Brisbane","Australia/Broken_Hill","Australia/Currie","Australia/Darwin","Australia/Eucla","Australia/Hobart","Australia/Lindeman","Australia/Lord_Howe","Australia/Melbourne","Australia/Perth","Australia/Sydney","Europe/Amsterdam","Europe/Andorra","Europe/Astrakhan","Europe/Athens","Europe/Belgrade","Europe/Berlin","Europe/Brussels","Europe/Bucharest","Europe/Budapest","Europe/Chisinau","Europe/Copenhagen","Europe/Dublin","Europe/Gibraltar","Europe/Helsinki","Europe/Istanbul","Europe/Kaliningrad","Europe/Kiev","Europe/Kirov","Europe/Lisbon","Europe/London","Europe/Luxembourg","Europe/Madrid","Europe/Malta","Europe/Minsk","Europe/Monaco","Europe/Moscow","Europe/Oslo","Europe/Paris","Europe/Prague","Europe/Riga","Europe/Rome","Europe/Samara","Europe/Saratov","Europe/Simferopol","Europe/Sofia","Europe/Stockholm","Europe/Tallinn","Europe/Tirane","Europe/Ulyanovsk","Europe/Uzhgorod","Europe/Vienna","Europe/Vilnius","Europe/Volgograd","Europe/Warsaw","Europe/Zaporozhye","Europe/Zurich","Indian/Chagos","Indian/Christmas","Indian/Cocos","Indian/Kerguelen","Indian/Mahe","Indian/Maldives","Indian/Mauritius","Indian/Reunion","Pacific/Apia","Pacific/Auckland","Pacific/Bougainville","Pacific/Chatham","Pacific/Chuuk","Pacific/Easter","Pacific/Efate","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Fiji","Pacific/Funafuti","Pacific/Galapagos","Pacific/Gambier","Pacific/Guadalcanal","Pacific/Guam","Pacific/Honolulu","Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein","Pacific/Majuro","Pacific/Marquesas","Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea","Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn","Pacific/Pohnpei","Pacific/Port_Moresby","Pacific/Rarotonga","Pacific/Tahiti","Pacific/Tarawa","Pacific/Tongatapu","Pacific/Wake","Pacific/Wallis"],txe={id:"tz-dropdown"},nxe=["value","disabled","aria-expanded"],axe=["aria-label"],sxe=["id","onClick","onMouseover","autofocus"],rxe=ee({__name:"TimezoneDropdown",props:{input:{},disabled:{type:Boolean,default:!1}},emits:["updateTimezone"],setup(e,{emit:t}){const n=e,a=t,{input:s,disabled:r}=me(n),o=de(s.value),i=de(!1),u=de(0),l=U(()=>s.value?HT.filter(S=>c(S)):HT);function c(S){return S.toLowerCase().match(o.value.toLowerCase())}function f(S){u.value=S}function E(S){l.value.length>S&&(o.value=l.value[S],a("updateTimezone",o.value),i.value=!1)}function p(S){S.preventDefault(),l.value.length>0&&E(u.value)}function T(S){S.preventDefault(),i.value=!0,o.value=S.target.value.trim()}function O(){E(u.value)}function N(S){const v=document.getElementById(`tz-dropdown-item-${S}`);v&&(v.focus(),v.scrollIntoView({behavior:"smooth",block:"nearest"}))}function g(){i.value=!0,u.value=u.value===null?0:u.value+=1,u.value>=l.value.length&&(u.value=0),N(u.value)}function R(){i.value=!0,u.value=u.value===null?l.value.length-1:u.value-=1,u.value<=-1&&(u.value=l.value.length-1),N(u.value)}function A(){i.value&&(i.value=!1,o.value=s.value)}return Me(()=>n.input,S=>{o.value=S}),(S,v)=>(h(),I("div",txe,[d("input",{class:"tz-dropdown-input",id:"timezone",name:"timezone",value:o.value,disabled:m(r),required:"",role:"combobox","aria-autocomplete":"list","aria-controls":"tz-dropdown-list","aria-expanded":i.value,onKeydown:[v[0]||(v[0]=Je(C=>A(),["esc"])),Je(p,["enter"]),v[2]||(v[2]=Je(C=>g(),["down"])),v[3]||(v[3]=Je(C=>R(),["up"]))],onInput:T,onBlur:v[1]||(v[1]=C=>O())},null,40,nxe),i.value?(h(),I("ul",{key:0,class:"tz-dropdown-list",id:"tz-dropdown-list",role:"listbox",tabindex:"-1","aria-label":S.$t("user.PROFILE.TIMEZONE",0)},[(h(!0),I(pe,null,Pe(l.value,(C,y)=>(h(),I("li",{key:C,id:`tz-dropdown-item-${y}`,class:Te(["tz-dropdown-item",{focus:y===u.value}]),onClick:b=>E(y),onMouseover:b=>f(y),autofocus:y===u.value,role:"option"},_(C),43,sxe))),128))],8,axe)):M("",!0)]))}}),oxe=ie(rxe,[["__scopeId","data-v-3d9b6b6f"]]),ixe=e=>(rt("data-v-a65da386"),e=e(),ot(),e),uxe={id:"user-preferences-edition"},lxe={class:"profile-form form-box"},cxe={class:"preferences-section"},dxe={class:"form-items"},Exe=["disabled"],fxe=["value"],pxe={class:"form-items"},mxe=["disabled"],_xe=["value"],Txe={class:"form-items"},hxe={class:"form-items"},Axe=["disabled"],Sxe=["value"],Oxe={class:"form-items form-checkboxes"},gxe={class:"checkboxes-label"},Ixe={class:"checkboxes"},Rxe=["id","name","checked","disabled","onInput"],Nxe={class:"checkbox-label"},vxe={class:"preferences-section"},bxe={class:"form-items form-checkboxes"},Cxe={class:"checkboxes-label"},Dxe={class:"checkboxes"},Pxe=["id","name","checked","disabled","onInput"],yxe={class:"checkbox-label"},Lxe={class:"form-items form-checkboxes"},$xe={class:"checkboxes-label"},kxe={class:"checkboxes"},wxe=["id","name","checked","disabled","onInput"],Uxe={class:"checkbox-label"},Mxe={class:"form-items form-checkboxes"},Fxe={class:"checkboxes-label"},Wxe={class:"checkboxes"},zxe=["id","name","checked","disabled","onInput"],xxe={class:"checkbox-label"},Bxe={class:"form-items form-checkboxes"},Gxe={class:"checkboxes-label"},Hxe={class:"checkboxes"},Vxe=["id","name","checked","disabled","onInput"],jxe={class:"checkbox-label"},Kxe={class:"info-box raw-speed-help"},qxe=ixe(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),Yxe={class:"form-buttons"},Xxe={class:"confirm",type:"submit"},Qxe=ee({__name:"UserPreferencesEdition",props:{user:{}},setup(e){const t=e,n=ke(),a=Ht({display_ascent:!0,imperial_units:!1,language:"en",timezone:"Europe/Paris",date_format:"dd/MM/yyyy",weekm:!1,start_elevation_at_zero:!1,use_raw_gpx_speed:!1,use_dark_mode:!1}),s=[{label:"SUNDAY",value:!1},{label:"MONDAY",value:!0}],r=[{label:"METRIC",value:!1},{label:"IMPERIAL",value:!0}],o=[{label:"DISPLAYED",value:!0},{label:"HIDDEN",value:!1}],i=[{label:"ZERO",value:!0},{label:"MIN_ALT",value:!1}],u=[{label:"FILTERED_SPEED",value:!1},{label:"RAW_SPEED",value:!0}],l=[{label:"DARK",value:!0},{label:"DEFAULT",value:null},{label:"LIGHT",value:!1}],c=U(()=>n.getters[Q.GETTERS.USER_LOADING]),f=U(()=>n.getters[K.GETTERS.ERROR_MESSAGES]),E=U(()=>C7e(new Date().toUTCString(),t.user.timezone,a.language));St(()=>{t.user&&p(t.user)});function p(v){a.display_ascent=v.display_ascent,a.start_elevation_at_zero=v.start_elevation_at_zero?v.start_elevation_at_zero:!1,a.use_raw_gpx_speed=v.use_raw_gpx_speed?v.use_raw_gpx_speed:!1,a.imperial_units=v.imperial_units?v.imperial_units:!1,a.language=v.language?v.language:"en",a.timezone=v.timezone?v.timezone:"Europe/Paris",a.date_format=v.date_format?v.date_format:"dd/MM/yyyy",a.weekm=v.weekm?v.weekm:!1,a.use_dark_mode=v.use_dark_mode}function T(){n.dispatch(Q.ACTIONS.UPDATE_USER_PREFERENCES,a)}function O(v){a.timezone=v}function N(v){a.start_elevation_at_zero=v}function g(v){a.use_raw_gpx_speed=v}function R(v){a.display_ascent=v}function A(v){a.imperial_units=v}function S(v){a.weekm=v}return mt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),(v,C)=>{const y=oe("ErrorMessage");return h(),I("div",uxe,[d("div",lxe,[f.value?(h(),Y(y,{key:0,message:f.value},null,8,["message"])):M("",!0),d("form",{onSubmit:be(T,["prevent"])},[d("div",cxe,_(v.$t("user.PROFILE.INTERFACE")),1),d("label",dxe,[V(_(v.$t("user.PROFILE.LANGUAGE"))+" ",1),ye(d("select",{id:"language","onUpdate:modelValue":C[0]||(C[0]=b=>a.language=b),disabled:c.value},[(h(!0),I(pe,null,Pe(m(Dd),b=>(h(),I("option",{value:b.value,key:b.value},_(b.label),9,fxe))),128))],8,Exe),[[oa,a.language]])]),d("label",pxe,[V(_(v.$t("user.PROFILE.THEME_MODE.LABEL"))+" ",1),ye(d("select",{id:"use_dark_mode","onUpdate:modelValue":C[1]||(C[1]=b=>a.use_dark_mode=b),disabled:c.value},[(h(),I(pe,null,Pe(l,b=>d("option",{value:b.value,key:b.label},_(v.$t(`user.PROFILE.THEME_MODE.VALUES.${b.label}`)),9,_xe)),64))],8,mxe),[[oa,a.use_dark_mode]])]),d("label",Txe,[V(_(v.$t("user.PROFILE.TIMEZONE"))+" ",1),F(oxe,{input:a.timezone,disabled:c.value,onUpdateTimezone:O},null,8,["input","disabled"])]),d("label",hxe,[V(_(v.$t("user.PROFILE.DATE_FORMAT"))+" ",1),ye(d("select",{id:"date_format","onUpdate:modelValue":C[2]||(C[2]=b=>a.date_format=b),disabled:c.value},[(h(!0),I(pe,null,Pe(E.value,b=>(h(),I("option",{value:b.value,key:b.value},_(b.label),9,Sxe))),128))],8,Axe),[[oa,a.date_format]])]),d("div",Oxe,[d("span",gxe,_(v.$t("user.PROFILE.FIRST_DAY_OF_WEEK")),1),d("div",Ixe,[(h(),I(pe,null,Pe(s,b=>d("label",{key:b.label},[d("input",{type:"radio",id:b.label,name:b.label,checked:b.value===a.weekm,disabled:c.value,onInput:k=>S(b.value)},null,40,Rxe),d("span",Nxe,_(v.$t(`user.PROFILE.${b.label}`)),1)])),64))])]),d("div",vxe,_(v.$t("workouts.WORKOUT",0)),1),d("div",bxe,[d("span",Cxe,_(v.$t("user.PROFILE.UNITS.LABEL")),1),d("div",Dxe,[(h(),I(pe,null,Pe(r,b=>d("label",{key:b.label},[d("input",{type:"radio",id:b.label,name:b.label,checked:b.value===a.imperial_units,disabled:c.value,onInput:k=>A(b.value)},null,40,Pxe),d("span",yxe,_(v.$t(`user.PROFILE.UNITS.${b.label}`)),1)])),64))])]),d("div",Lxe,[d("span",$xe,_(v.$t("user.PROFILE.ASCENT_DATA")),1),d("div",kxe,[(h(),I(pe,null,Pe(o,b=>d("label",{key:b.label},[d("input",{type:"radio",id:b.label,name:b.label,checked:b.value===a.display_ascent,disabled:c.value,onInput:k=>R(b.value)},null,40,wxe),d("span",Uxe,_(v.$t(`common.${b.label}`)),1)])),64))])]),d("div",Mxe,[d("span",Fxe,_(v.$t("user.PROFILE.ELEVATION_CHART_START.LABEL")),1),d("div",Wxe,[(h(),I(pe,null,Pe(i,b=>d("label",{key:b.label},[d("input",{type:"radio",id:b.label,name:b.label,checked:b.value===a.start_elevation_at_zero,disabled:c.value,onInput:k=>N(b.value)},null,40,zxe),d("span",xxe,_(v.$t(`user.PROFILE.ELEVATION_CHART_START.${b.label}`)),1)])),64))])]),d("div",Bxe,[d("span",Gxe,_(v.$t("user.PROFILE.USE_RAW_GPX_SPEED.LABEL")),1),d("div",Hxe,[(h(),I(pe,null,Pe(u,b=>d("label",{key:b.label},[d("input",{type:"radio",id:b.label,name:b.label,checked:b.value===a.use_raw_gpx_speed,disabled:c.value,onInput:k=>g(b.value)},null,40,Vxe),d("span",jxe,_(v.$t(`user.PROFILE.USE_RAW_GPX_SPEED.${b.label}`)),1)])),64))]),d("div",Kxe,[d("span",null,[qxe,V(" "+_(v.$t("user.PROFILE.USE_RAW_GPX_SPEED.HELP")),1)])])]),d("div",Yxe,[d("button",Xxe,_(v.$t("buttons.SUBMIT")),1),d("button",{class:"cancel",onClick:C[3]||(C[3]=be(b=>v.$router.push("/profile/preferences"),["prevent"]))},_(v.$t("buttons.CANCEL")),1)])],32)])])}}}),Zxe=ie(Qxe,[["__scopeId","data-v-a65da386"]]),Jxe={class:"privacy-policy-text"},eBe={class:"last-update"},tBe=["innerHTML"],nBe=["innerHTML"],aBe="Sun, 26 Feb 2023 17:00:00 GMT",sBe=ee({__name:"PrivacyPolicy",setup(e){const t=ke(),n=U(()=>t.getters[K.GETTERS.APP_CONFIG]),a=U(()=>t.getters[K.GETTERS.LANGUAGE]),s=U(()=>t.getters[Q.GETTERS.AUTH_USER_PROFILE]),r=U(()=>c()),o=U(()=>l()),i=U(()=>f()),u=["DATA_COLLECTED","INFORMATION_USAGE","INFORMATION_PROTECTION","INFORMATION_DISCLOSURE","SITE_USAGE_BY_CHILDREN","YOUR_CONSENT","ACCOUNT_DELETION","CHANGES_TO_OUR_PRIVACY_POLICY"];function l(){return s.value.timezone?s.value.timezone:Intl.DateTimeFormat().resolvedOptions().timeZone?Intl.DateTimeFormat().resolvedOptions().timeZone:"Europe/Paris"}function c(){return bO[a.value]}function f(){return Fn(n.value.privacy_policy&&n.value.privacy_policy_date?`${n.value.privacy_policy_date}`:aBe,o.value,r.value,!1)}return(E,p)=>(h(),I("div",Jxe,[d("h1",null,_(He(E.$t("privacy_policy.TITLE"))),1),d("p",eBe,[V(_(E.$t("privacy_policy.LAST_UPDATE"))+": ",1),d("time",null,_(i.value),1)]),n.value.privacy_policy?(h(),I("div",{key:0,innerHTML:m(bs)(m(Po)(n.value.privacy_policy))},null,8,tBe)):(h(),I(pe,{key:1},Pe(u,T=>(h(),I(pe,{key:T},[d("h2",null,_(E.$t(`privacy_policy.CONTENT.${T}.TITLE`)),1),d("p",{innerHTML:m(bs)(E.$t(`privacy_policy.CONTENT.${T}.CONTENT`))},null,8,nBe)],64))),64))]))}}),VO=ie(sBe,[["__scopeId","data-v-9cb34f1c"]]),rBe={id:"user-privacy-policy"},oBe={key:1},iBe={class:"policy-content"},uBe={for:"accepted_policy",class:"accepted_policy"},lBe={class:"form-buttons"},cBe={class:"confirm",type:"submit"},dBe=ee({__name:"UserPrivacyPolicyValidation",props:{user:{}},setup(e){const t=e,{user:n}=me(t),a=ke(),s=U(()=>a.getters[K.GETTERS.ERROR_MESSAGES]),r=de(!1),o=de(!1);function i(){a.dispatch(Q.ACTIONS.ACCEPT_PRIVACY_POLICY,r.value)}function u(){o.value=!0}return mt(()=>{a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),(l,c)=>{const f=oe("ErrorMessage"),E=oe("router-link"),p=oe("i18n-t");return h(),I("div",rBe,[s.value?(h(),Y(f,{key:0,message:s.value},null,8,["message"])):M("",!0),m(n).accepted_privacy_policy?(h(),I("div",oBe,[d("p",null,[F(p,{keypath:"user.YOU_HAVE_ACCEPTED_PRIVACY_POLICY"},{default:le(()=>[F(E,{to:"/privacy-policy"},{default:le(()=>[V(_(l.$t("privacy_policy.TITLE")),1)]),_:1})]),_:1})]),d("button",{class:"cancel",onClick:c[0]||(c[0]=T=>l.$router.push("/profile"))},_(l.$t("user.PROFILE.BACK_TO_PROFILE")),1)])):(h(),I("form",{key:2,class:Te({errors:o.value}),onSubmit:c[3]||(c[3]=be(T=>i(),["prevent"]))},[d("div",iBe,[F(VO)]),d("label",uBe,[ye(d("input",{type:"checkbox",id:"accepted_policy",required:"","onUpdate:modelValue":c[1]||(c[1]=T=>r.value=T),onInvalid:u},null,544),[[_l,r.value]]),d("span",null,[F(p,{keypath:"user.READ_AND_ACCEPT_PRIVACY_POLICY"},{default:le(()=>[V(_(l.$t("privacy_policy.TITLE")),1)]),_:1})])]),F(E,{to:"/profile/edit/account"},{default:le(()=>[V(_(l.$t("user.I_WANT_TO_DELETE_MY_ACCOUNT")),1)]),_:1}),d("div",lBe,[d("button",cBe,_(l.$t("buttons.SUBMIT")),1),d("button",{class:"cancel",onClick:c[2]||(c[2]=T=>l.$router.push("/profile"))},_(l.$t("user.PROFILE.BACK_TO_PROFILE")),1)])],34))])}}}),EBe=ie(dBe,[["__scopeId","data-v-a7ac61ac"]]),fBe=["equipments:read","equipments:write","profile:read","profile:write","users:read","users:write","workouts:read","workouts:write"],pBe=["application:write"],mBe={id:"new-oauth2-app"},_Be={id:"new-oauth2-title"},TBe={id:"apps-form"},hBe={class:"form-items"},ABe={class:"form-item"},SBe={for:"app-name"},OBe={class:"form-item"},gBe={for:"app-description"},IBe={class:"form-item"},RBe={for:"app-url"},NBe={class:"form-item"},vBe={for:"app-redirect-uri"},bBe={class:"form-item-scope"},CBe={class:"form-item-scope-label"},DBe={class:"scope-label"},PBe=["name","checked","onChange"],yBe=["innerHTML"],LBe={class:"form-buttons"},$Be=["disabled"],kBe=ee({__name:"AddUserApp",props:{authUser:{}},setup(e){const t=e,n=ke(),a=Ht({client_name:"",client_uri:"",client_description:"",description:"",redirect_uri:""}),s=Ht([]),r=U(()=>l(t.authUser,pBe,fBe));function o(){const c={client_name:a.client_name,client_description:a.client_description,client_uri:a.client_uri,redirect_uris:[a.redirect_uri],scope:s.sort().join(" ")};n.dispatch(et.ACTIONS.CREATE_CLIENT,c)}function i(c){a.client_description=c}function u(c){const f=s.indexOf(c);f>-1?s.splice(f,1):s.push(c)}function l(c,f,E){const p=[...E];return c.admin&&p.push(...f),p.sort()}return(c,f)=>{const E=oe("CustomTextArea");return h(),I("div",mBe,[d("h1",_Be,_(c.$t("oauth2.ADD_A_NEW_APP")),1),d("div",TBe,[d("form",{onSubmit:be(o,["prevent"])},[d("div",hBe,[d("div",ABe,[d("label",SBe,_(c.$t("oauth2.APP.NAME"))+"*",1),ye(d("input",{id:"app-name",type:"text",required:"","onUpdate:modelValue":f[0]||(f[0]=p=>a.client_name=p)},null,512),[[tt,a.client_name]])]),d("div",OBe,[d("label",gBe,_(c.$t("oauth2.APP.DESCRIPTION")),1),F(E,{name:"app-description",charLimit:200,input:a.description,onUpdateValue:i},null,8,["input"])]),d("div",IBe,[d("label",RBe,_(c.$t("oauth2.APP.URL"))+"*",1),ye(d("input",{id:"app-url",type:"text",required:"","onUpdate:modelValue":f[1]||(f[1]=p=>a.client_uri=p)},null,512),[[tt,a.client_uri]])]),d("div",NBe,[d("label",vBe,_(c.$t("oauth2.APP.REDIRECT_URL"))+"* ",1),ye(d("input",{id:"app-redirect-uri",type:"text",required:"","onUpdate:modelValue":f[2]||(f[2]=p=>a.redirect_uri=p)},null,512),[[tt,a.redirect_uri]])]),d("div",bBe,[d("div",CBe,_(c.$t("oauth2.APP.SCOPE.LABEL"))+"* ",1),(h(!0),I(pe,null,Pe(r.value,p=>(h(),I("div",{class:"form-item-scope-checkboxes",key:p},[d("label",DBe,[d("input",{type:"checkbox",name:p,checked:s.includes(p),onChange:T=>u(p)},null,40,PBe),d("code",null,_(p),1)]),d("p",{class:"scope-description",innerHTML:c.$t(`oauth2.APP.SCOPE.${p}_DESCRIPTION`)},null,8,yBe)]))),128))])]),d("div",LBe,[d("button",{class:"confirm",type:"submit",disabled:s.length===0},_(c.$t("buttons.SUBMIT")),9,$Be),d("button",{class:"cancel",onClick:f[3]||(f[3]=be(()=>c.$router.push("/profile/apps"),["prevent"]))},_(c.$t("buttons.CANCEL")),1)])],32)])])}}}),wBe=ie(kBe,[["__scopeId","data-v-e2284e06"]]),UBe={id:"authorize-oauth2-app"},MBe={key:0},FBe={id:"authorize-oauth2-title"},WBe={class:"oauth2-access description-list"},zBe={class:"client-scope"},xBe=["innerHTML"],BBe={class:"authorize-oauth2-buttons"},GBe={key:1},HBe={class:"no-app"},VBe=ee({__name:"AuthorizeUserApp",setup(e){const t=yt(),n=ke(),a=U(()=>n.getters[et.GETTERS.CLIENT]),s=U(()=>n.getters[K.GETTERS.ERROR_MESSAGES]);pt(()=>r());function r(){t.query.client_id&&typeof t.query.client_id=="string"&&n.dispatch(et.ACTIONS.GET_CLIENT_BY_CLIENT_ID,t.query.client_id)}function o(){n.dispatch(et.ACTIONS.AUTHORIZE_CLIENT,{client_id:`${t.query.client_id}`,redirect_uri:`${t.query.redirect_uri}`,response_type:`${t.query.response_type}`,scope:`${t.query.scope}`,state:`${t.query.state?t.query.state:""}`,code_challenge:`${t.query.code_challenge?t.query.code_challenge:""}`,code_challenge_method:`${t.query.code_challenge_method?t.query.code_challenge_method:""}`})}return(i,u)=>{const l=oe("router-link"),c=oe("i18n-t"),f=oe("ErrorMessage");return h(),I("div",UBe,[a.value.client_id?(h(),I("div",MBe,[d("h1",FBe,[F(c,{keypath:"oauth2.AUTHORIZE_APP"},{default:le(()=>[F(l,{to:{name:"UserApp",params:{id:a.value.id}}},{default:le(()=>[V(_(a.value.name),1)]),_:1},8,["to"])]),_:1})]),s.value?(h(),Y(f,{key:0,message:s.value},null,8,["message"])):M("",!0),d("div",WBe,[d("p",null,_(i.$t("oauth2.APP_REQUESTING_ACCESS")),1),d("dl",null,[(h(!0),I(pe,null,Pe(a.value.scope.split(" "),E=>(h(),I(pe,{key:E},[d("dt",zBe,[d("code",null,_(E),1)]),d("dd",{innerHTML:i.$t(`oauth2.APP.SCOPE.${E}_DESCRIPTION`)},null,8,xBe)],64))),128))]),d("div",BBe,[d("button",{class:"danger",onClick:o},_(i.$t("buttons.AUTHORIZE")),1),d("button",{class:"cancel",onClick:u[0]||(u[0]=E=>i.$router.push("/profile/apps"))},_(i.$t("buttons.CANCEL")),1)])])])):(h(),I("div",GBe,[d("p",HBe,_(i.$t("oauth2.NO_APP")),1),d("button",{onClick:u[1]||(u[1]=E=>i.$router.push("/profile/apps"))},_(i.$t("buttons.BACK")),1)]))])}}}),jBe=ie(VBe,[["__scopeId","data-v-77d2c8f0"]]),KBe={id:"oauth2-apps"},qBe=ee({__name:"index",props:{user:{}},setup(e){const t=e,n=ke(),{user:a}=me(t);return mt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(et.MUTATIONS.SET_CLIENTS,[])}),(s,r)=>{const o=oe("router-view");return h(),I("div",KBe,[F(o,{authUser:m(a)},null,8,["authUser"])])}}}),YBe={id:"oauth2-app",class:"description-list"},XBe={key:1},QBe={key:0,class:"info-box success-message"},ZBe=["title"],JBe={key:0},eGe={key:1,class:"app-secret"},tGe=["title"],nGe={class:"client-scopes"},aGe={class:"app-buttons"},sGe={key:2},rGe={class:"no-app"},oGe=ee({__name:"UserApp",props:{authUser:{},afterCreation:{type:Boolean,default:!1}},setup(e){const t=e,n=yt(),a=ke(),{afterCreation:s,authUser:r}=me(t),o=U(()=>a.getters[et.GETTERS.CLIENT]),i=U(()=>a.getters[et.GETTERS.REVOCATION_SUCCESSFUL]),u=de(!1),l=de(""),c=de(!1),f=de(!1),E=de(!1);pt(()=>{p(),navigator.clipboard&&(E.value=!0)});function p(){!s.value&&n.params.id&&typeof n.params.id=="string"&&a.dispatch(et.ACTIONS.GET_CLIENT_BY_ID,+n.params.id)}function T(A){l.value=A?"oauth2.APP_DELETION_CONFIRMATION":"oauth2.TOKENS_REVOCATION_CONFIRMATION",O(!0)}function O(A){u.value=A,A||(l.value="")}function N(A){l.value==="oauth2.APP_DELETION_CONFIRMATION"?a.dispatch(et.ACTIONS.DELETE_CLIENT,A):a.dispatch(et.ACTIONS.REVOKE_ALL_TOKENS,A)}function g(){navigator.clipboard.writeText(o.value.client_id),c.value=!0,f.value=!1,setTimeout(()=>{c.value=!1},3e3)}function R(){o.value.client_secret&&(navigator.clipboard.writeText(o.value.client_secret),f.value=!0,c.value=!1,setTimeout(()=>{f.value=!1},3e3))}return mt(()=>{a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),a.commit(et.MUTATIONS.EMPTY_CLIENT),a.commit(et.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1)}),Me(()=>i.value,A=>{A&&O(!1)}),(A,S)=>{const v=oe("Modal");return h(),I("div",YBe,[u.value?(h(),Y(v,{key:0,title:A.$t("common.CONFIRMATION"),message:A.$t(l.value),onConfirmAction:S[0]||(S[0]=C=>N(o.value.id)),onCancelAction:S[1]||(S[1]=C=>O(!1)),onKeydown:S[2]||(S[2]=Je(C=>O(!1),["esc"]))},null,8,["title","message"])):M("",!0),o.value&&o.value.client_id?(h(),I("div",XBe,[m(s)||i.value?(h(),I("div",QBe,_(A.$t(m(s)?"oauth2.APP_CREATED_SUCCESSFULLY":"oauth2.TOKENS_REVOKED")),1)):M("",!0),d("dl",null,[d("dt",null,_(A.$t("oauth2.APP.CLIENT_ID"))+":",1),d("dd",null,[V(_(o.value.client_id)+" ",1),m(s)&&E.value?(h(),I("i",{key:0,class:Te(`fa fa-${c.value?"check":"copy"}`),"aria-hidden":"true",title:A.$t("oauth2.COPY_TO_CLIPBOARD"),onClick:g},null,10,ZBe)):M("",!0)]),m(s)&&o.value.client_secret?(h(),I("dt",JBe,_(A.$t("oauth2.APP.CLIENT_SECRET"))+": ",1)):M("",!0),m(s)&&o.value.client_secret?(h(),I("dd",eGe,[V(_(o.value.client_secret)+" ",1),E.value?(h(),I("i",{key:0,class:Te(`fa fa-${f.value?"check":"copy"}`),"aria-hidden":"true",title:A.$t("oauth2.COPY_TO_CLIPBOARD"),onClick:R},null,10,tGe)):M("",!0)])):M("",!0),d("dt",null,_(He(A.$t("oauth2.APP.ISSUE_AT")))+":",1),d("dd",null,[d("time",null,_(m(Fn)(o.value.issued_at,m(r).timezone,m(r).date_format)),1)]),d("dt",null,_(A.$t("oauth2.APP.NAME"))+":",1),d("dd",null,_(o.value.name),1),d("dt",null,_(A.$t("oauth2.APP.DESCRIPTION"))+":",1),d("dd",{class:Te({"no-description":!o.value.client_description})},_(o.value.client_description?o.value.client_description:A.$t("oauth2.NO_DESCRIPTION")),3),d("dt",null,_(A.$t("oauth2.APP.URL"))+":",1),d("dd",null,_(o.value.website),1),d("dt",null,_(A.$t("oauth2.APP.REDIRECT_URL"))+":",1),d("dd",null,_(o.value.redirect_uris.length>0?o.value.redirect_uris[0]:""),1),d("dt",null,_(A.$t("oauth2.APP.SCOPE.LABEL"))+":",1),d("dd",nGe,[(h(!0),I(pe,null,Pe(o.value.scope.split(" "),C=>(h(),I("span",{class:"client-scope",key:C},[d("code",null,_(C),1)]))),128))])]),d("div",aGe,[d("button",{class:"danger",onClick:S[3]||(S[3]=C=>T(!1))},_(A.$t("oauth2.REVOKE_ALL_TOKENS")),1),d("button",{class:"danger",onClick:S[4]||(S[4]=C=>T(!0))},_(A.$t("oauth2.DELETE_APP")),1),d("button",{onClick:S[5]||(S[5]=C=>A.$router.push("/profile/apps"))},_(A.$t("buttons.BACK")),1)])])):(h(),I("div",sGe,[d("p",rGe,_(A.$t("oauth2.NO_APP")),1),d("button",{onClick:S[6]||(S[6]=C=>A.$router.push("/profile/apps"))},_(A.$t("buttons.BACK")),1)]))])}}}),VT=ie(oGe,[["__scopeId","data-v-3a7d0f4a"]]),iGe={id:"oauth2-apps-list"},uGe={class:"apps-list"},lGe={key:0},cGe={class:"app-issued-at"},dGe={key:1,class:"no-apps"},EGe={class:"app-list-buttons"},fGe=ee({__name:"UserAppsList",props:{authUser:{}},setup(e){const t=e,n=ke(),a=yt(),{authUser:s}=me(t),r=U(()=>n.getters[et.GETTERS.CLIENTS]),o=U(()=>n.getters[et.GETTERS.CLIENTS_PAGINATION]);let i=u(a.query);pt(()=>{l(i)});function u(c){const f={};return c.page&&(f.page=oE(c.page,OO)),f}function l(c){n.dispatch(et.ACTIONS.GET_CLIENTS,c)}return Me(()=>a.query,async c=>{i=u(c),l(i)}),(c,f)=>{const E=oe("router-link");return h(),I("div",iGe,[d("p",uGe,_(c.$t("oauth2.APPS_LIST")),1),r.value.length>0?(h(),I("ul",lGe,[(h(!0),I(pe,null,Pe(r.value,p=>(h(),I("li",{key:p.client_id},[F(E,{to:{name:"UserApp",params:{id:p.id}}},{default:le(()=>[V(_(p.name),1)]),_:2},1032,["to"]),d("span",cGe,[V(_(c.$t("oauth2.APP.ISSUE_AT"))+" ",1),d("time",null,_(m(Fn)(p.issued_at,m(s).timezone,m(s).date_format)),1)])]))),128))])):(h(),I("div",dGe,_(c.$t("oauth2.NO_APPS")),1)),r.value.length>0?(h(),Y(Ju,{key:2,pagination:o.value,path:"/profile/apps",query:m(i)},null,8,["pagination","query"])):M("",!0),d("div",EGe,[d("button",{onClick:f[0]||(f[0]=p=>c.$router.push("/profile/apps/new"))},_(c.$t("oauth2.NEW_APP")),1),d("button",{onClick:f[1]||(f[1]=p=>c.$router.push("/"))},_(c.$t("common.HOME")),1)])])}}}),pGe=ie(fGe,[["__scopeId","data-v-064a87b7"]]);function Mc(e){return e===0?!1:Array.isArray(e)&&e.length===0?!0:!e}function mGe(e){return(...t)=>!e(...t)}function _Ge(e,t){return e===void 0&&(e="undefined"),e===null&&(e="null"),e===!1&&(e="false"),e.toString().toLowerCase().indexOf(t.trim())!==-1}function jO(e,t,n,a){return t?e.filter(s=>_Ge(a(s,n),t)).sort((s,r)=>a(s,n).length-a(r,n).length):e}function TGe(e){return e.filter(t=>!t.$isLabel)}function Fc(e,t){return n=>n.reduce((a,s)=>s[e]&&s[e].length?(a.push({$groupLabel:s[t],$isLabel:!0}),a.concat(s[e])):a,[])}function hGe(e,t,n,a,s){return r=>r.map(o=>{if(!o[n])return console.warn("Options passed to vue-multiselect do not contain groups, despite the config."),[];const i=jO(o[n],e,t,s);return i.length?{[a]:o[a],[n]:i}:[]})}const jT=(...e)=>t=>e.reduce((n,a)=>a(n),t);var AGe={data(){return{search:"",isOpen:!1,preferredOpenDirection:"below",optimizedHeight:this.maxHeight}},props:{internalSearch:{type:Boolean,default:!0},options:{type:Array,required:!0},multiple:{type:Boolean,default:!1},trackBy:{type:String},label:{type:String},searchable:{type:Boolean,default:!0},clearOnSelect:{type:Boolean,default:!0},hideSelected:{type:Boolean,default:!1},placeholder:{type:String,default:"Select option"},allowEmpty:{type:Boolean,default:!0},resetAfter:{type:Boolean,default:!1},closeOnSelect:{type:Boolean,default:!0},customLabel:{type:Function,default(e,t){return Mc(e)?"":t?e[t]:e}},taggable:{type:Boolean,default:!1},tagPlaceholder:{type:String,default:"Press enter to create a tag"},tagPosition:{type:String,default:"top"},max:{type:[Number,Boolean],default:!1},id:{default:null},optionsLimit:{type:Number,default:1e3},groupValues:{type:String},groupLabel:{type:String},groupSelect:{type:Boolean,default:!1},blockKeys:{type:Array,default(){return[]}},preserveSearch:{type:Boolean,default:!1},preselectFirst:{type:Boolean,default:!1},preventAutofocus:{type:Boolean,default:!1}},mounted(){!this.multiple&&this.max&&console.warn("[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false."),this.preselectFirst&&!this.internalValue.length&&this.options.length&&this.select(this.filteredOptions[0])},computed:{internalValue(){return this.modelValue||this.modelValue===0?Array.isArray(this.modelValue)?this.modelValue:[this.modelValue]:[]},filteredOptions(){const e=this.search||"",t=e.toLowerCase().trim();let n=this.options.concat();return this.internalSearch?n=this.groupValues?this.filterAndFlat(n,t,this.label):jO(n,t,this.label,this.customLabel):n=this.groupValues?Fc(this.groupValues,this.groupLabel)(n):n,n=this.hideSelected?n.filter(mGe(this.isSelected)):n,this.taggable&&t.length&&!this.isExistingOption(t)&&(this.tagPosition==="bottom"?n.push({isTag:!0,label:e}):n.unshift({isTag:!0,label:e})),n.slice(0,this.optionsLimit)},valueKeys(){return this.trackBy?this.internalValue.map(e=>e[this.trackBy]):this.internalValue},optionKeys(){return(this.groupValues?this.flatAndStrip(this.options):this.options).map(t=>this.customLabel(t,this.label).toString().toLowerCase())},currentOptionLabel(){return this.multiple?this.searchable?"":this.placeholder:this.internalValue.length?this.getOptionLabel(this.internalValue[0]):this.searchable?"":this.placeholder}},watch:{internalValue:{handler(){this.resetAfter&&this.internalValue.length&&(this.search="",this.$emit("update:modelValue",this.multiple?[]:null))},deep:!0},search(){this.$emit("search-change",this.search)}},emits:["open","search-change","close","select","update:modelValue","remove","tag"],methods:{getValue(){return this.multiple?this.internalValue:this.internalValue.length===0?null:this.internalValue[0]},filterAndFlat(e,t,n){return jT(hGe(t,n,this.groupValues,this.groupLabel,this.customLabel),Fc(this.groupValues,this.groupLabel))(e)},flatAndStrip(e){return jT(Fc(this.groupValues,this.groupLabel),TGe)(e)},updateSearch(e){this.search=e},isExistingOption(e){return this.options?this.optionKeys.indexOf(e)>-1:!1},isSelected(e){const t=this.trackBy?e[this.trackBy]:e;return this.valueKeys.indexOf(t)>-1},isOptionDisabled(e){return!!e.$isDisabled},getOptionLabel(e){if(Mc(e))return"";if(e.isTag)return e.label;if(e.$isLabel)return e.$groupLabel;const t=this.customLabel(e,this.label);return Mc(t)?"":t},select(e,t){if(e.$isLabel&&this.groupSelect){this.selectGroup(e);return}if(!(this.blockKeys.indexOf(t)!==-1||this.disabled||e.$isDisabled||e.$isLabel)&&!(this.max&&this.multiple&&this.internalValue.length===this.max)&&!(t==="Tab"&&!this.pointerDirty)){if(e.isTag)this.$emit("tag",e.label,this.id),this.search="",this.closeOnSelect&&!this.multiple&&this.deactivate();else{if(this.isSelected(e)){t!=="Tab"&&this.removeElement(e);return}this.multiple?this.$emit("update:modelValue",this.internalValue.concat([e])):this.$emit("update:modelValue",e),this.$emit("select",e,this.id),this.clearOnSelect&&(this.search="")}this.closeOnSelect&&this.deactivate()}},selectGroup(e){const t=this.options.find(n=>n[this.groupLabel]===e.$groupLabel);if(t){if(this.wholeGroupSelected(t)){this.$emit("remove",t[this.groupValues],this.id);const n=this.trackBy?t[this.groupValues].map(s=>s[this.trackBy]):t[this.groupValues],a=this.internalValue.filter(s=>n.indexOf(this.trackBy?s[this.trackBy]:s)===-1);this.$emit("update:modelValue",a)}else{let n=t[this.groupValues].filter(a=>!(this.isOptionDisabled(a)||this.isSelected(a)));this.max&&n.splice(this.max-this.internalValue.length),this.$emit("select",n,this.id),this.$emit("update:modelValue",this.internalValue.concat(n))}this.closeOnSelect&&this.deactivate()}},wholeGroupSelected(e){return e[this.groupValues].every(t=>this.isSelected(t)||this.isOptionDisabled(t))},wholeGroupDisabled(e){return e[this.groupValues].every(this.isOptionDisabled)},removeElement(e,t=!0){if(this.disabled||e.$isDisabled)return;if(!this.allowEmpty&&this.internalValue.length<=1){this.deactivate();return}const n=typeof e=="object"?this.valueKeys.indexOf(e[this.trackBy]):this.valueKeys.indexOf(e);if(this.multiple){const a=this.internalValue.slice(0,n).concat(this.internalValue.slice(n+1));this.$emit("update:modelValue",a)}else this.$emit("update:modelValue",null);this.$emit("remove",e,this.id),this.closeOnSelect&&t&&this.deactivate()},removeLastElement(){this.blockKeys.indexOf("Delete")===-1&&this.search.length===0&&Array.isArray(this.internalValue)&&this.internalValue.length&&this.removeElement(this.internalValue[this.internalValue.length-1],!1)},activate(){this.isOpen||this.disabled||(this.adjustPosition(),this.groupValues&&this.pointer===0&&this.filteredOptions.length&&(this.pointer=1),this.isOpen=!0,this.searchable?(this.preserveSearch||(this.search=""),this.preventAutofocus||this.$nextTick(()=>this.$refs.search&&this.$refs.search.focus())):this.preventAutofocus||typeof this.$el<"u"&&this.$el.focus(),this.$emit("open",this.id))},deactivate(){this.isOpen&&(this.isOpen=!1,this.searchable?this.$refs.search!==null&&typeof this.$refs.search<"u"&&this.$refs.search.blur():typeof this.$el<"u"&&this.$el.blur(),this.preserveSearch||(this.search=""),this.$emit("close",this.getValue(),this.id))},toggle(){this.isOpen?this.deactivate():this.activate()},adjustPosition(){if(typeof window>"u")return;const e=this.$el.getBoundingClientRect().top,t=window.innerHeight-this.$el.getBoundingClientRect().bottom;t>this.maxHeight||t>e||this.openDirection==="below"||this.openDirection==="bottom"?(this.preferredOpenDirection="below",this.optimizedHeight=Math.min(t-40,this.maxHeight)):(this.preferredOpenDirection="above",this.optimizedHeight=Math.min(e-40,this.maxHeight))}}},SGe={data(){return{pointer:0,pointerDirty:!1}},props:{showPointer:{type:Boolean,default:!0},optionHeight:{type:Number,default:40}},computed:{pointerPosition(){return this.pointer*this.optionHeight},visibleElements(){return this.optimizedHeight/this.optionHeight}},watch:{filteredOptions(){this.pointerAdjust()},isOpen(){this.pointerDirty=!1},pointer(){this.$refs.search&&this.$refs.search.setAttribute("aria-activedescendant",this.id+"-"+this.pointer.toString())}},methods:{optionHighlight(e,t){return{"multiselect__option--highlight":e===this.pointer&&this.showPointer,"multiselect__option--selected":this.isSelected(t)}},groupHighlight(e,t){if(!this.groupSelect)return["multiselect__option--disabled",{"multiselect__option--group":t.$isLabel}];const n=this.options.find(a=>a[this.groupLabel]===t.$groupLabel);return n&&!this.wholeGroupDisabled(n)?["multiselect__option--group",{"multiselect__option--highlight":e===this.pointer&&this.showPointer},{"multiselect__option--group-selected":this.wholeGroupSelected(n)}]:"multiselect__option--disabled"},addPointerElement({key:e}="Enter"){this.filteredOptions.length>0&&this.select(this.filteredOptions[this.pointer],e),this.pointerReset()},pointerForward(){this.pointer0?(this.pointer--,this.$refs.list.scrollTop>=this.pointerPosition&&(this.$refs.list.scrollTop=this.pointerPosition),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerBackward()):this.filteredOptions[this.pointer]&&this.filteredOptions[0].$isLabel&&!this.groupSelect&&this.pointerForward(),this.pointerDirty=!0},pointerReset(){this.closeOnSelect&&(this.pointer=0,this.$refs.list&&(this.$refs.list.scrollTop=0))},pointerAdjust(){this.pointer>=this.filteredOptions.length-1&&(this.pointer=this.filteredOptions.length?this.filteredOptions.length-1:0),this.filteredOptions.length>0&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()},pointerSet(e){this.pointer=e,this.pointerDirty=!0}}},KO={name:"vue-multiselect",mixins:[AGe,SGe],compatConfig:{MODE:3,ATTR_ENUMERATED_COERCION:!1},props:{name:{type:String,default:""},modelValue:{type:null,default(){return[]}},selectLabel:{type:String,default:"Press enter to select"},selectGroupLabel:{type:String,default:"Press enter to select group"},selectedLabel:{type:String,default:"Selected"},deselectLabel:{type:String,default:"Press enter to remove"},deselectGroupLabel:{type:String,default:"Press enter to deselect group"},showLabels:{type:Boolean,default:!0},limit:{type:Number,default:99999},maxHeight:{type:Number,default:300},limitText:{type:Function,default:e=>`and ${e} more`},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},openDirection:{type:String,default:""},showNoOptions:{type:Boolean,default:!0},showNoResults:{type:Boolean,default:!0},tabindex:{type:Number,default:0}},computed:{hasOptionGroup(){return this.groupValues&&this.groupLabel&&this.groupSelect},isSingleLabelVisible(){return(this.singleValue||this.singleValue===0)&&(!this.isOpen||!this.searchable)&&!this.visibleValues.length},isPlaceholderVisible(){return!this.internalValue.length&&(!this.searchable||!this.isOpen)},visibleValues(){return this.multiple?this.internalValue.slice(0,this.limit):[]},singleValue(){return this.internalValue[0]},deselectLabelText(){return this.showLabels?this.deselectLabel:""},deselectGroupLabelText(){return this.showLabels?this.deselectGroupLabel:""},selectLabelText(){return this.showLabels?this.selectLabel:""},selectGroupLabelText(){return this.showLabels?this.selectGroupLabel:""},selectedLabelText(){return this.showLabels?this.selectedLabel:""},inputStyle(){return this.searchable||this.multiple&&this.modelValue&&this.modelValue.length?this.isOpen?{width:"100%"}:{width:"0",position:"absolute",padding:"0"}:""},contentStyle(){return this.options.length?{display:"inline-block"}:{display:"block"}},isAbove(){return this.openDirection==="above"||this.openDirection==="top"?!0:this.openDirection==="below"||this.openDirection==="bottom"?!1:this.preferredOpenDirection==="above"},showSearchInput(){return this.searchable&&(this.hasSingleSelectedSlot&&(this.visibleSingleValue||this.visibleSingleValue===0)?this.isOpen:!0)}}};const OGe={ref:"tags",class:"multiselect__tags"},gGe={class:"multiselect__tags-wrap"},IGe={class:"multiselect__spinner"},RGe={key:0},NGe={class:"multiselect__option"},vGe={class:"multiselect__option"},bGe=V("No elements found. Consider changing the search query."),CGe={class:"multiselect__option"},DGe=V("List is empty.");function PGe(e,t,n,a,s,r){return h(),Y("div",{tabindex:e.searchable?-1:n.tabindex,class:[{"multiselect--active":e.isOpen,"multiselect--disabled":n.disabled,"multiselect--above":r.isAbove,"multiselect--has-options-group":r.hasOptionGroup},"multiselect"],onFocus:t[14]||(t[14]=o=>e.activate()),onBlur:t[15]||(t[15]=o=>e.searchable?!1:e.deactivate()),onKeydown:[t[16]||(t[16]=Je(be(o=>e.pointerForward(),["self","prevent"]),["down"])),t[17]||(t[17]=Je(be(o=>e.pointerBackward(),["self","prevent"]),["up"]))],onKeypress:t[18]||(t[18]=Je(be(o=>e.addPointerElement(o),["stop","self"]),["enter","tab"])),onKeyup:t[19]||(t[19]=Je(o=>e.deactivate(),["esc"])),role:"combobox","aria-owns":"listbox-"+e.id},[Lt(e.$slots,"caret",{toggle:e.toggle},()=>[F("div",{onMousedown:t[1]||(t[1]=be(o=>e.toggle(),["prevent","stop"])),class:"multiselect__select"},null,32)]),Lt(e.$slots,"clear",{search:e.search}),F("div",OGe,[Lt(e.$slots,"selection",{search:e.search,remove:e.removeElement,values:r.visibleValues,isOpen:e.isOpen},()=>[ye(F("div",gGe,[(h(!0),Y(pe,null,Pe(r.visibleValues,(o,i)=>Lt(e.$slots,"tag",{option:o,search:e.search,remove:e.removeElement},()=>[(h(),Y("span",{class:"multiselect__tag",key:i},[F("span",{textContent:_(e.getOptionLabel(o))},null,8,["textContent"]),F("i",{tabindex:"1",onKeypress:Je(be(u=>e.removeElement(o),["prevent"]),["enter"]),onMousedown:be(u=>e.removeElement(o),["prevent"]),class:"multiselect__tag-icon"},null,40,["onKeypress","onMousedown"])]))])),256))],512),[[yr,r.visibleValues.length>0]]),e.internalValue&&e.internalValue.length>n.limit?Lt(e.$slots,"limit",{key:0},()=>[F("strong",{class:"multiselect__strong",textContent:_(n.limitText(e.internalValue.length-n.limit))},null,8,["textContent"])]):M("v-if",!0)]),F(tu,{name:"multiselect__loading"},{default:le(()=>[Lt(e.$slots,"loading",{},()=>[ye(F("div",IGe,null,512),[[yr,n.loading]])])]),_:3}),e.searchable?(h(),Y("input",{key:0,ref:"search",name:n.name,id:e.id,type:"text",autocomplete:"off",spellcheck:!1,placeholder:e.placeholder,style:r.inputStyle,value:e.search,disabled:n.disabled,tabindex:n.tabindex,onInput:t[2]||(t[2]=o=>e.updateSearch(o.target.value)),onFocus:t[3]||(t[3]=be(o=>e.activate(),["prevent"])),onBlur:t[4]||(t[4]=be(o=>e.deactivate(),["prevent"])),onKeyup:t[5]||(t[5]=Je(o=>e.deactivate(),["esc"])),onKeydown:[t[6]||(t[6]=Je(be(o=>e.pointerForward(),["prevent"]),["down"])),t[7]||(t[7]=Je(be(o=>e.pointerBackward(),["prevent"]),["up"])),t[9]||(t[9]=Je(be(o=>e.removeLastElement(),["stop"]),["delete"]))],onKeypress:t[8]||(t[8]=Je(be(o=>e.addPointerElement(o),["prevent","stop","self"]),["enter"])),class:"multiselect__input","aria-controls":"listbox-"+e.id},null,44,["name","id","placeholder","value","disabled","tabindex","aria-controls"])):M("v-if",!0),r.isSingleLabelVisible?(h(),Y("span",{key:1,class:"multiselect__single",onMousedown:t[10]||(t[10]=be((...o)=>e.toggle&&e.toggle(...o),["prevent"]))},[Lt(e.$slots,"singleLabel",{option:r.singleValue},()=>[V(_(e.currentOptionLabel),1)])],32)):M("v-if",!0),r.isPlaceholderVisible?(h(),Y("span",{key:2,class:"multiselect__placeholder",onMousedown:t[11]||(t[11]=be((...o)=>e.toggle&&e.toggle(...o),["prevent"]))},[Lt(e.$slots,"placeholder",{},()=>[V(_(e.placeholder),1)])],32)):M("v-if",!0)],512),F(tu,{name:"multiselect"},{default:le(()=>[ye(F("div",{class:"multiselect__content-wrapper",onFocus:t[12]||(t[12]=(...o)=>e.activate&&e.activate(...o)),tabindex:"-1",onMousedown:t[13]||(t[13]=be(()=>{},["prevent"])),style:{maxHeight:e.optimizedHeight+"px"},ref:"list"},[F("ul",{class:"multiselect__content",style:r.contentStyle,role:"listbox",id:"listbox-"+e.id},[Lt(e.$slots,"beforeList"),e.multiple&&e.max===e.internalValue.length?(h(),Y("li",RGe,[F("span",NGe,[Lt(e.$slots,"maxElements",{},()=>[V("Maximum of "+_(e.max)+" options selected. First remove a selected option to select another.",1)])])])):M("v-if",!0),!e.max||e.internalValue.length(h(),Y("li",{class:"multiselect__element",key:i,id:e.id+"-"+i,role:o&&(o.$isLabel||o.$isDisabled)?null:"option"},[o&&(o.$isLabel||o.$isDisabled)?M("v-if",!0):(h(),Y("span",{key:0,class:[e.optionHighlight(i,o),"multiselect__option"],onClick:be(u=>e.select(o),["stop"]),onMouseenter:be(u=>e.pointerSet(i),["self"]),"data-select":o&&o.isTag?e.tagPlaceholder:r.selectLabelText,"data-selected":r.selectedLabelText,"data-deselect":r.deselectLabelText},[Lt(e.$slots,"option",{option:o,search:e.search,index:i},()=>[F("span",null,_(e.getOptionLabel(o)),1)])],42,["onClick","onMouseenter","data-select","data-selected","data-deselect"])),o&&(o.$isLabel||o.$isDisabled)?(h(),Y("span",{key:1,"data-select":e.groupSelect&&r.selectGroupLabelText,"data-deselect":e.groupSelect&&r.deselectGroupLabelText,class:[e.groupHighlight(i,o),"multiselect__option"],onMouseenter:be(u=>e.groupSelect&&e.pointerSet(i),["self"]),onMousedown:be(u=>e.selectGroup(o),["prevent"])},[Lt(e.$slots,"option",{option:o,search:e.search,index:i},()=>[F("span",null,_(e.getOptionLabel(o)),1)])],42,["data-select","data-deselect","onMouseenter","onMousedown"])):M("v-if",!0)],8,["id","role"]))),128)):M("v-if",!0),ye(F("li",null,[F("span",vGe,[Lt(e.$slots,"noResult",{search:e.search},()=>[bGe])])],512),[[yr,n.showNoResults&&e.filteredOptions.length===0&&e.search&&!n.loading]]),ye(F("li",null,[F("span",CGe,[Lt(e.$slots,"noOptions",{},()=>[DGe])])],512),[[yr,n.showNoOptions&&(e.options.length===0||r.hasOptionGroup===!0&&e.filteredOptions.length===0)&&!e.search&&!n.loading]]),Lt(e.$slots,"afterList")],12,["id"])],36),[[yr,e.isOpen]])]),_:3})],42,["tabindex","aria-owns"])}KO.render=PGe;const yGe=ee({__name:"SportsMultiSelect",props:{sports:{},name:{},equipmentSports:{default:()=>[]},disabled:{type:Boolean,default:!1}},emits:["updatedValues"],setup(e,{emit:t}){const n=e,a=t,{equipmentSports:s,name:r,sports:o}=me(n),i=de([]);pt(()=>{s.value&&(i.value=s.value)});function u(l){a("updatedValues",l.map(c=>c.id))}return Me(()=>s.value,async l=>{i.value=l,u(l)}),(l,c)=>m(o)?(h(),Y(m(KO),{key:0,placeholder:"",id:m(r),name:m(r),disabled:l.disabled,modelValue:i.value,"onUpdate:modelValue":[c[0]||(c[0]=f=>i.value=f),u],multiple:!0,options:m(o),taggable:!0,label:"translatedLabel","track-by":"id",selectLabel:l.$t("workouts.MULTISELECT.selectLabel"),selectedLabel:l.$t("workouts.MULTISELECT.selectedLabel"),deselectLabel:l.$t("workouts.MULTISELECT.deselectLabel")},null,8,["id","name","disabled","modelValue","options","selectLabel","selectedLabel","deselectLabel"])):M("",!0)}}),LGe=ie(yGe,[["__scopeId","data-v-a44f31af"]]),qO=e=>(rt("data-v-28e798a0"),e=e(),ot(),e),$Ge={id:"new-equipment"},kGe={key:0,id:"new-equipment-title"},wGe={id:"equipment-form"},UGe={class:"form-items"},MGe={class:"form-item"},FGe={for:"equipment-label"},WGe={class:"equipment-label-help"},zGe={class:"info-box"},xGe=qO(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),BGe={class:"form-item"},GGe={for:"equipment-type-id"},HGe=["value"],VGe={key:0,class:"equipment-warning"},jGe={class:"info-box"},KGe=qO(()=>d("i",{class:"fa fa-exclamation-triangle warning","aria-hidden":"true"},null,-1)),qGe={class:"form-item"},YGe={for:"equipment-description"},XGe={key:1,class:"form-item-checkbox"},QGe={for:"equipment-active"},ZGe={class:"form-item"},JGe={for:"equipment-sports"},eHe={class:"form-buttons"},tHe=["disabled"],nHe=["disabled"],aHe=ee({__name:"EquipmentEdition",props:{equipments:{},translatedEquipmentTypes:{}},setup(e){const t=e,n=ke(),a=yt(),{t:s}=kt(),{equipments:r,translatedEquipmentTypes:o}=me(t),i=U(()=>n.getters[Ue.GETTERS.LOADING]),u=U(()=>g(r.value)),l=U(()=>n.getters[K.GETTERS.ERROR_MESSAGES]),c=Ht({id:"",label:"",description:"",equipmentTypeId:0,isActive:!0,defaultForSportIds:[]}),f=U(()=>Un(n.getters[Dt.GETTERS.SPORTS],s)),E=U(()=>o.value.filter(b=>b.id===c.equipmentTypeId)),p=U(()=>E.value.length>0?f.value.filter(b=>TO[E.value[0].label].includes(b.label)):[]),T=de([]),O=U(()=>o.value.filter(b=>{var k;return b.is_active||((k=u.value)==null?void 0:k.equipment_type.id)===b.id})),N=de(!1);St(()=>{var k;const b=document.getElementById("equipment-label");b==null||b.focus(),a.params.id&&a.params.id&&(k=u.value)!=null&&k.id&&A(u.value)});function g(b){if(!a.params.id)return null;const k=b.filter(z=>a.params.id?z.id===a.params.id:null);return k.length===0?null:k[0]}function R(b){T.value=Un(f.value,s,"all").filter(k=>b.default_for_sport_ids.includes(k.id))}function A(b){c.id=b.id,c.label=b.label,c.description=b.description?b.description:"",c.equipmentTypeId=b.equipment_type.id,c.isActive=b.is_active,R(b)}function S(){n.dispatch(Ue.ACTIONS[c.id?"UPDATE_EQUIPMENT":"ADD_EQUIPMENT"],c)}function v(b){c.description=b}function C(){N.value=!0}function y(b){c.defaultForSportIds=b}return mt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),Me(()=>u.value,b=>{a.params.id&&(b!=null&&b.id)&&A(b)}),Me(()=>c.equipmentTypeId,b=>{u.value&&b===u.value.equipment_type.id?R(u.value):T.value=[]}),(b,k)=>{var W,X;const z=oe("CustomTextArea"),$=oe("ErrorMessage");return h(),I("div",$Ge,[c.id?M("",!0):(h(),I("h1",kGe,_(b.$t("equipments.ADD_A_NEW_EQUIPMENT")),1)),d("div",wGe,[d("form",{class:Te({errors:N.value}),onSubmit:be(S,["prevent"])},[d("div",UGe,[d("div",MGe,[d("label",FGe,_(He(b.$t("common.LABEL")))+"* ",1),ye(d("input",{id:"equipment-label",maxlength:"50",type:"text",required:"",onInvalid:C,"onUpdate:modelValue":k[0]||(k[0]=re=>c.label=re)},null,544),[[tt,c.label]]),d("div",WGe,[d("span",zGe,[xGe,V(" "+_(b.$t("equipments.50_CHARACTERS_MAX")),1)])])]),d("div",BGe,[d("label",GGe,_(He(b.$t("equipments.EQUIPMENT_TYPE")))+"* ",1),ye(d("select",{id:"equipment-type-id",required:"",onInvalid:C,"onUpdate:modelValue":k[1]||(k[1]=re=>c.equipmentTypeId=re)},[(h(!0),I(pe,null,Pe(O.value,re=>(h(),I("option",{value:re.id,key:re.id},_(re.translatedLabel)+" "+_(re.is_active?"":`(${b.$t("common.INACTIVE")})`),9,HGe))),128))],544),[[oa,c.equipmentTypeId]])]),(W=u.value)!=null&&W.workouts_count&&c.equipmentTypeId!==((X=u.value)==null?void 0:X.equipment_type.id)?(h(),I("div",VGe,[d("span",jGe,[KGe,V(" "+_(b.$t("equipments.ALL_WORKOUTS_ASSOCIATIONS_REMOVED")),1)])])):M("",!0),d("div",qGe,[d("label",YGe,_(b.$t("common.DESCRIPTION")),1),F(z,{name:"equipment-description",charLimit:200,input:c.description,onUpdateValue:v},null,8,["input"])]),c.id?(h(),I("div",XGe,[d("label",QGe,_(He(b.$t("common.ACTIVE"))),1),ye(d("input",{id:"equipment-active",name:"equipment-active",type:"checkbox","onUpdate:modelValue":k[2]||(k[2]=re=>c.isActive=re)},null,512),[[_l,c.isActive]])])):M("",!0),d("div",ZGe,[d("label",JGe,_(He(b.$t("equipments.DEFAULT_FOR_SPORTS",0))),1),F(LGe,{sports:p.value,name:"equipment-sports",equipmentSports:T.value,disabled:!c.equipmentTypeId,onUpdatedValues:y},null,8,["sports","equipmentSports","disabled"])])]),l.value?(h(),Y($,{key:0,message:l.value},null,8,["message"])):M("",!0),d("div",eHe,[d("button",{class:"confirm",type:"submit",disabled:i.value},_(b.$t("buttons.SUBMIT")),9,tHe),d("button",{class:"cancel",disabled:i.value,onClick:k[3]||(k[3]=be(()=>{var re;return b.$router.push((re=u.value)!=null&&re.id?m(a).query.fromEdition?"/profile/edit/equipments":`/profile/equipments/${u.value.id}`:"/profile/equipments")},["prevent"]))},_(b.$t("buttons.CANCEL")),9,nHe)])],34)])])}}}),KT=ie(aHe,[["__scopeId","data-v-28e798a0"]]),sHe={key:0,id:"user-equipments"},qT=ee({__name:"index",props:{user:{},isEdition:{type:Boolean}},setup(e){const t=e,n=ke(),{t:a}=kt(),{user:s}=me(t),r=yt(),o=U(()=>n.getters[Ue.GETTERS.EQUIPMENTS]),i=U(()=>n.getters[Ue.GETTERS.EQUIPMENT_TYPES]),u=U(()=>_O(i.value,a));return pt(()=>{n.dispatch(Ue.ACTIONS.GET_EQUIPMENT_TYPES),n.dispatch(Ue.ACTIONS.GET_EQUIPMENTS)}),mt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),Me(()=>r.name,l=>{l==="UserEquipmentsList"&&n.dispatch(Ue.ACTIONS.GET_EQUIPMENTS)}),(l,c)=>{const f=oe("router-view");return u.value?(h(),I("div",sHe,[F(f,{authUser:m(s),equipments:o.value,translatedEquipmentTypes:u.value,isEdition:l.isEdition},null,8,["authUser","equipments","translatedEquipmentTypes","isEdition"])])):M("",!0)}}}),rHe=(e,t=!1)=>{let n="0";t&&(n=String(Math.floor(e/86400)),e%=86400);const a=String(Math.floor(e/3600)).padStart(2,"0");e%=3600;const s=String(Math.floor(e/60)).padStart(2,"0"),r=String(e%60).padStart(2,"0");return t?`${n==="0"?"":`${n}d `}${a==="00"?"":`${a}h `}${s}m ${r}s`:`${a==="00"?"":`${a}:`}${s}:${r}`},Vf=(e,t)=>{const n=e.match(/day/g)?e.split(", ")[1]:e;return{days:e.match(/day/g)?`${e.split(" ")[0]} ${e.match(/days/g)?t("common.DAY",2):t("common.DAY",1)}`:`0 ${t("common.DAY",2)},`,duration:`${n.split(":")[0]}h ${n.split(":")[1]}min`}},pE=(e,t)=>{if(e.match(/day/g)){const n=Vf(e,t);return`${n.days}, ${n.duration}`}return e},oHe={key:0,id:"user-equipment",class:"description-list"},iHe={class:"equipment-type"},uHe={key:0,class:"equipment-description"},lHe={key:1,class:"no-description"},cHe={class:"duration-detail"},dHe={class:"sports-list"},EHe={class:"equipment-buttons"},fHe=["disabled"],pHe=["disabled"],mHe=["disabled"],_He=["disabled"],THe={key:1},hHe={class:"no-equipment"},AHe=["disabled"],SHe=ee({__name:"UserEquipment",props:{authUser:{},equipments:{}},setup(e){const t=e,n=ke(),a=yt(),{t:s}=kt(),{authUser:r,equipments:o}=me(t),i=Rt("sportColors"),u=U(()=>n.getters[Ue.GETTERS.LOADING]),l=U(()=>p(o.value)),c=U(()=>n.getters[Dt.GETTERS.SPORTS]),f=U(()=>Un(c.value,s,"all",r.value.sports_list).filter(g=>{var R;return l.value?(R=l.value)==null?void 0:R.default_for_sport_ids.includes(g.id):!1})),E=de(!1);pt(()=>{n.dispatch(Ue.ACTIONS.GET_EQUIPMENTS)});function p(g){if(!a.params.id)return null;const R=g.filter(A=>a.params.id?A.id===a.params.id:null);return R.length===0?null:R[0]}function T(g){E.value=g}function O(){var g,R;if((g=l.value)!=null&&g.id){const A={id:l.value.id};((R=l.value)==null?void 0:R.workouts_count)>0&&(A.force=!0),n.dispatch(Ue.ACTIONS.DELETE_EQUIPMENT,A)}}function N(g){n.dispatch(Ue.ACTIONS.REFRESH_EQUIPMENT,g)}return mt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),(g,R)=>{const A=oe("Modal"),S=oe("EquipmentTypeImage"),v=oe("router-link"),C=oe("Distance"),y=oe("SportImage");return l.value?(h(),I("div",oHe,[E.value?(h(),Y(A,{key:0,title:g.$t("common.CONFIRMATION"),message:"user.PROFILE.EQUIPMENTS.CONFIRM_EQUIPMENT_DELETION",strongMessage:l.value.label,warning:l.value.workouts_count>0?g.$t("user.PROFILE.EQUIPMENTS.EQUIPMENT_ASSOCIATED_WITH_WORKOUTS"):"",onConfirmAction:O,onCancelAction:R[0]||(R[0]=b=>T(!1)),onKeydown:R[1]||(R[1]=Je(b=>T(!1),["esc"]))},null,8,["title","strongMessage","warning"])):M("",!0),d("dl",null,[d("dt",null,_(He(g.$t("common.LABEL"))),1),d("dd",null,_(l.value.label),1),d("dt",null,_(He(g.$t("equipments.EQUIPMENT_TYPE"))),1),d("dd",iHe,[F(S,{title:g.$t(`equipment_types.${l.value.equipment_type.label}.LABEL`),"equipment-type-label":l.value.equipment_type.label},null,8,["title","equipment-type-label"]),d("span",null,_(g.$t(`equipment_types.${l.value.equipment_type.label}.LABEL`))+" "+_(l.value.equipment_type.is_active?"":`(${g.$t("common.INACTIVE")})`),1)]),d("dt",null,_(g.$t("common.DESCRIPTION")),1),d("dd",null,[l.value.description?(h(),I("span",uHe,_(l.value.description),1)):(h(),I("span",lHe,_(g.$t("common.NO_DESCRIPTION")),1))]),d("dt",null,_(He(g.$t("workouts.WORKOUT",0))),1),d("dd",null,[l.value.workouts_count?(h(),Y(v,{key:0,to:`/workouts?equipment_id=${l.value.id}`},{default:le(()=>[V(_(l.value.workouts_count),1)]),_:1},8,["to"])):(h(),I(pe,{key:1},[V(_(l.value.workouts_count),1)],64))]),d("dt",null,_(He(g.$t("workouts.TOTAL_DISTANCE",0))),1),d("dd",null,[F(C,{distance:l.value.total_distance,unitFrom:"km",digits:2,displayUnit:!1,useImperialUnits:m(r).imperial_units},null,8,["distance","useImperialUnits"]),d("span",null,_(m(r).imperial_units?"miles":"km"),1)]),d("dt",null,_(He(g.$t("workouts.TOTAL_DURATION",0))),1),d("dd",null,[V(_(m(pE)(l.value.total_moving,g.$t))+" ",1),l.value.total_duration!==l.value.total_moving?(h(),I(pe,{key:0},[V(" ("),d("span",cHe,_(g.$t("common.TOTAL_DURATION_WITH_PAUSES"))+": ",1),V(" "+_(m(pE)(l.value.total_duration,g.$t))+") ",1)],64)):M("",!0)]),d("dt",null,_(He(g.$t("common.ACTIVE",0))),1),d("dd",null,[d("i",{class:Te(`fa fa-${l.value.is_active?"check-":""}square-o`),"aria-hidden":"true"},null,2)]),l.value.default_for_sport_ids.length>0?(h(),I(pe,{key:0},[d("dt",null,_(He(g.$t("equipments.DEFAULT_FOR_SPORTS",0))),1),d("dd",dHe,[(h(!0),I(pe,null,Pe(f.value,b=>(h(),I("span",{class:Te(["sport-badge",{inactive:!b.is_active_for_user}]),key:b.label},[F(y,{title:b.translatedLabel,"sport-label":b.label,color:b.color?b.color:m(i)[b.label]},null,8,["title","sport-label","color"]),F(v,{to:`/profile/sports/${b.id}?fromEquipmentId=${l.value.id}`},{default:le(()=>[V(_(b.translatedLabel)+" "+_(b.is_active_for_user?"":`(${g.$t("common.INACTIVE")})`),1)]),_:2},1032,["to"])],2))),128))])],64)):M("",!0)]),d("div",EHe,[d("button",{onClick:R[2]||(R[2]=b=>g.$router.push(`/profile/edit/equipments/${l.value.id}`)),disabled:u.value},_(g.$t("buttons.EDIT")),9,fHe),d("button",{disabled:u.value,onClick:R[3]||(R[3]=b=>N(l.value.id))},_(g.$t("buttons.REFRESH_TOTALS")),9,pHe),d("button",{class:"danger",onClick:R[4]||(R[4]=b=>E.value=!0),disabled:u.value},_(g.$t("buttons.DELETE")),9,mHe),d("button",{disabled:u.value,onClick:R[5]||(R[5]=b=>g.$router.push(m(a).query.fromWorkoutId?`/workouts/${m(a).query.fromWorkoutId}`:m(a).query.fromSportId?`/profile/sports/${m(a).query.fromSportId}`:"/profile/equipments"))},_(g.$t("buttons.BACK")),9,_He)])])):(h(),I("div",THe,[d("p",hHe,_(g.$t("equipments.NO_EQUIPMENT")),1),d("button",{onClick:R[6]||(R[6]=b=>g.$router.push("/profile/equipments")),disabled:u.value},_(g.$t("buttons.BACK")),9,AHe)]))}}}),OHe=ie(SHe,[["__scopeId","data-v-fab1df2a"]]),gHe=e=>(rt("data-v-b2876f25"),e=e(),ot(),e),IHe={id:"user-equipments-list"},RHe={key:0,class:"mobile-display"},NHe={key:1,class:"equipments-list"},vHe={key:3},bHe={class:"responsive-table"},CHe={class:"text-left"},DHe={class:"text-left"},PHe={class:"text-left"},yHe={class:"text-left"},LHe={key:0},$He=gHe(()=>d("th",null,null,-1)),kHe={class:"equipment-label"},wHe={class:"cell-heading"},UHe={class:"column"},MHe={class:"cell-heading"},FHe={class:"column"},WHe={class:"cell-heading"},zHe={class:"active"},xHe={class:"cell-heading"},BHe={key:0,class:"action-buttons"},GHe={class:"cell-heading"},HHe=["onClick"],VHe={class:"equipments-list-buttons"},jHe=ee({__name:"UserEquipmentsList",props:{equipments:{},translatedEquipmentTypes:{},authUser:{},isEdition:{type:Boolean}},setup(e){const t=e,{authUser:n,isEdition:a,equipments:s,translatedEquipmentTypes:r}=me(t),o=U(()=>i(s.value));function i(u){const l={};return u.map(c=>{c.equipment_type.id in l?l[c.equipment_type.id].push(c):l[c.equipment_type.id]=[c]}),l}return(u,l)=>{const c=oe("EquipmentTypeImage"),f=oe("router-link"),E=oe("Distance");return h(),I("div",IHe,[m(s).length>0?(h(),I("div",RHe,[m(a)?M("",!0):(h(),I("button",{key:0,onClick:l[0]||(l[0]=p=>u.$router.push("/profile/edit/equipments"))},_(u.$t("equipments.EDIT_EQUIPMENTS")),1)),m(a)?M("",!0):(h(),I("button",{key:1,onClick:l[1]||(l[1]=p=>u.$router.push("/profile/equipments/new"))},_(u.$t("equipments.NEW_EQUIPMENT")),1)),m(a)?(h(),I("button",{key:2,onClick:l[2]||(l[2]=p=>u.$router.push("/profile/equipments"))},_(u.$t("buttons.BACK")),1)):(h(),I("button",{key:3,onClick:l[3]||(l[3]=p=>u.$router.push("/"))},_(u.$t("common.HOME")),1))])):M("",!0),m(a)?M("",!0):(h(),I("h1",NHe,_(u.$t("user.PROFILE.EQUIPMENTS.YOUR_EQUIPMENTS")),1)),m(s).length===0?(h(),I("p",{key:2,class:Te(["no-equipments",{edition:m(a)}])},_(u.$t("equipments.NO_EQUIPMENTS")),3)):(h(),I("div",vHe,[(h(!0),I(pe,null,Pe(m(r),p=>(h(),I(pe,{key:p.label},[o.value[p.id]?(h(),I(pe,{key:0},[d("h2",null,[F(c,{title:p.translatedLabel,"equipment-type-label":p.label},null,8,["title","equipment-type-label"]),V(" "+_(p.translatedLabel)+" "+_(p.is_active?"":`(${u.$t("common.INACTIVE")})`),1)]),d("div",bHe,[d("table",null,[d("thead",null,[d("tr",null,[d("th",CHe,_(u.$t("common.LABEL")),1),d("th",DHe,_(u.$t("workouts.WORKOUT",0)),1),d("th",PHe,_(He(u.$t("workouts.TOTAL_DISTANCE"))),1),d("th",yHe,_(u.$t("common.ACTIVE")),1),m(a)?(h(),I("th",LHe,_(u.$t("common.ACTION")),1)):M("",!0),$He])]),d("tbody",null,[(h(!0),I(pe,null,Pe(o.value[p.id].sort(m(wf)),T=>(h(),I("tr",{key:T.label},[d("td",kHe,[d("span",wHe,_(u.$t("common.LABEL")),1),F(f,{to:{name:"Equipment",params:{id:T.id}}},{default:le(()=>[V(_(T.label),1)]),_:2},1032,["to"])]),d("td",UHe,[d("span",MHe,_(u.$t("workouts.WORKOUT",0)),1),T.workouts_count?(h(),Y(f,{key:0,to:`/workouts?equipment_id=${T.id}`},{default:le(()=>[V(_(T.workouts_count),1)]),_:2},1032,["to"])):(h(),I(pe,{key:1},[V(_(T.workouts_count),1)],64))]),d("td",FHe,[d("span",WHe,_(u.$t("workouts.TOTAL_DISTANCE",0)),1),F(E,{distance:T.total_distance,unitFrom:"km",digits:2,displayUnit:!1,useImperialUnits:m(n).imperial_units},null,8,["distance","useImperialUnits"]),d("span",null,_(m(n).imperial_units?"miles":"km"),1)]),d("td",zHe,[d("span",xHe,_(u.$t("common.ACTIVE")),1),d("i",{class:Te(`fa fa${T.is_active?"-check":""}`),"aria-hidden":"true"},null,2)]),m(a)?(h(),I("td",BHe,[d("span",GHe,_(u.$t("user.PROFILE.SPORT.ACTION")),1),d("button",{onClick:O=>u.$router.push(`/profile/edit/equipments/${T.id}${m(a)?"?fromEdition=true":""}`)},_(u.$t("buttons.EDIT")),9,HHe)])):M("",!0)]))),128))])])])],64)):M("",!0)],64))),128))])),d("div",VHe,[!m(a)&&m(s).length>0?(h(),I("button",{key:0,onClick:l[4]||(l[4]=p=>u.$router.push("/profile/edit/equipments"))},_(u.$t("equipments.EDIT_EQUIPMENTS")),1)):M("",!0),m(a)?M("",!0):(h(),I("button",{key:1,onClick:l[5]||(l[5]=p=>u.$router.push("/profile/equipments/new"))},_(u.$t("equipments.NEW_EQUIPMENT")),1)),m(a)?(h(),I("button",{key:2,onClick:l[6]||(l[6]=p=>u.$router.push("/profile/equipments"))},_(u.$t("buttons.BACK")),1)):(h(),I("button",{key:3,onClick:l[7]||(l[7]=p=>u.$router.push("/"))},_(u.$t("common.HOME")),1))])])}}}),YT=ie(jHe,[["__scopeId","data-v-b2876f25"]]),KHe={id:"users-sports"},XT=ee({__name:"index",props:{user:{},isEdition:{type:Boolean}},setup(e){const t=e,n=ke(),{t:a}=kt(),{user:s,isEdition:r}=me(t),o=U(()=>n.getters[Dt.GETTERS.SPORTS]),i=U(()=>Un(o.value,a,"is_active",s.value.sports_list));return mt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(et.MUTATIONS.SET_CLIENTS,[])}),(u,l)=>{const c=oe("router-view");return h(),I("div",KHe,[F(c,{authUser:m(s),isEdition:m(r),translatedSports:i.value},null,8,["authUser","isEdition","translatedSports"])])}}}),qHe=ee({__name:"EquipmentBadge",props:{equipment:{},workoutId:{},sportId:{}},setup(e){const t=e,{equipment:n,sportId:a,workoutId:s}=me(t);return(r,o)=>{var l;const i=oe("EquipmentTypeImage"),u=oe("router-link");return h(),Y(u,{class:Te(["equipment-badge",{inactive:!m(n).is_active}]),to:{name:"Equipment",params:{id:m(n).id},query:{fromWorkoutId:m(s),fromSportId:(l=m(a))==null?void 0:l.toString()}}},{default:le(()=>[F(i,{title:r.$t(`equipment_types.${m(n).equipment_type.label}.LABEL`),"equipment-type-label":m(n).equipment_type.label},null,8,["title","equipment-type-label"]),d("span",null,_(m(n).label)+" "+_(m(n).is_active?"":`(${r.$t("common.INACTIVE")})`),1)]),_:1},8,["class","to"])}}}),YO=ie(qHe,[["__scopeId","data-v-84285cae"]]);function jf(){const e=ke(),t=U(()=>e.getters[K.GETTERS.ERROR_MESSAGES]),n=U(()=>e.getters[Q.GETTERS.USER_LOADING]),a="#838383",s=Rt("sportColors"),r=de(!1),o=de(""),i=Ht({sport_id:0,color:null,is_active:!0,stopped_speed_threshold:1,fromSport:!1});function u(E){i.is_active=E.target.checked}function l(E){r.value=E}function c(E){const p={...i};p.stopped_speed_threshold=E.imperial_units?xt(i.stopped_speed_threshold,"mi","km",2):i.stopped_speed_threshold,e.dispatch(Q.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,p)}function f(E,p=!1){e.dispatch(Q.ACTIONS.RESET_USER_SPORT_PREFERENCES,{sportId:E,fromSport:p})}return{defaultColor:a,defaultEquipmentId:o,displayModal:r,errorMessages:t,loading:n,sportColors:s,sportPayload:i,resetSport:f,updateDisplayModal:l,updateIsActive:u,updateSport:c}}const YHe={key:0,id:"user-sport",class:"description-list"},XHe={class:"sport-equipments"},QHe={key:0,class:"no-equipments"},ZHe={class:"sport-buttons"},JHe=["disabled"],eVe={key:1},tVe={class:"no-sport"},nVe=ee({__name:"UserSport",props:{authUser:{},translatedSports:{}},setup(e){const t=e,n=ke(),a=yt(),{translatedSports:s}=me(t),{displayModal:r,errorMessages:o,loading:i,sportColors:u,resetSport:l,updateDisplayModal:c}=jf(),f=U(()=>E(s.value));function E(p){if(!a.params.id)return null;const T=p.filter(O=>a.params.id?O.id===+a.params.id:null);return T.length===0?null:T[0]}return mt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),Me(()=>i.value,p=>{!p&&!o.value&&c(!1)}),(p,T)=>{const O=oe("Modal"),N=oe("SportImage"),g=oe("Distance");return f.value?(h(),I("div",YHe,[m(r)?(h(),Y(O,{key:0,title:p.$t("common.CONFIRMATION"),message:p.$t(`user.PROFILE.SPORT.CONFIRM_SPORT_RESET${f.value.default_equipments.length>0?"_WITH_EQUIPMENTS":""}`),onConfirmAction:T[0]||(T[0]=R=>m(l)(f.value.id,!0)),onCancelAction:T[1]||(T[1]=R=>m(c)(!1)),onKeydown:T[2]||(T[2]=Je(R=>m(c)(!1),["esc"]))},null,8,["title","message"])):M("",!0),d("dl",null,[d("dt",null,_(He(p.$t("workouts.SPORT",1))),1),d("dd",null,_(f.value.translatedLabel),1),d("dt",null,_(He(p.$t("user.PROFILE.SPORT.COLOR"))),1),d("dd",null,[F(N,{title:f.value.translatedLabel,"sport-label":f.value.label,color:f.value.color?f.value.color:m(u)[f.value.label]},null,8,["title","sport-label","color"])]),d("dt",null,_(He(p.$t("workouts.WORKOUT",0))),1),d("dd",null,[d("i",{class:Te(`fa fa-${p.authUser.sports_list.includes(f.value.id)?"check-":""}square-o`),"aria-hidden":"true"},null,2)]),d("dt",null,_(He(p.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD"))),1),d("dd",null,[F(g,{distance:f.value.stopped_speed_threshold,unitFrom:"km",speed:!0,useImperialUnits:p.authUser.imperial_units},null,8,["distance","useImperialUnits"])]),d("dt",null,_(He(p.$t("common.ACTIVE",0))),1),d("dd",null,[d("i",{class:Te(`fa fa-${f.value.is_active_for_user?"check-":""}square-o`),"aria-hidden":"true"},null,2)]),d("dt",null,_(p.$t("user.PROFILE.SPORT.DEFAULT_EQUIPMENTS",1)),1),d("dd",XHe,[(h(!0),I(pe,null,Pe(f.value.default_equipments,R=>(h(),Y(YO,{equipment:R,"sport-id":f.value.id,key:R.label},null,8,["equipment","sport-id"]))),128)),f.value.default_equipments.length===0?(h(),I("div",QHe,_(p.$t("equipments.NO_EQUIPMENTS")),1)):M("",!0)])]),d("div",ZHe,[d("button",{onClick:T[3]||(T[3]=R=>p.$router.push(`/profile/edit/sports/${f.value.id}`))},_(p.$t("buttons.EDIT")),1),d("button",{disabled:m(i),class:"danger",onClick:T[4]||(T[4]=be(R=>m(c)(!0),["prevent"]))},_(p.$t("buttons.RESET")),9,JHe),d("button",{onClick:T[5]||(T[5]=R=>p.$router.push(m(a).query.fromEquipmentId?`/profile/equipments/${m(a).query.fromEquipmentId}`:"/profile/sports"))},_(p.$t("buttons.BACK")),1)])])):(h(),I("div",eVe,[d("p",tVe,_(p.$t("user.NO_SPORT_FOUND")),1),d("button",{onClick:T[6]||(T[6]=R=>p.$router.push("/profile/sports"))},_(p.$t("buttons.BACK")),1)]))}}}),aVe=ie(nVe,[["__scopeId","data-v-1211593f"]]),sVe={key:0,id:"sport-edition"},rVe={class:"form-items"},oVe={class:"form-item"},iVe={for:"sport-label"},uVe={class:"form-item"},lVe={for:"sport-color"},cVe=["disabled"],dVe={class:"form-item"},EVe={for:"sport-threshold"},fVe=["disabled"],pVe={class:"form-item-checkbox"},mVe={for:"equipment-active"},_Ve=["checked","disabled"],TVe={class:"form-item"},hVe={for:"sport-default-equipment"},AVe=["disabled"],SVe={value:""},OVe=["value"],gVe={class:"form-buttons"},IVe=["disabled"],RVe=["disabled"],NVe=ee({__name:"UserSportEdition",props:{authUser:{},translatedSports:{}},setup(e){const t=e,{t:n}=kt(),a=ke(),s=yt(),{authUser:r,translatedSports:o}=me(t),{defaultColor:i,defaultEquipmentId:u,errorMessages:l,loading:c,sportColors:f,sportPayload:E,updateIsActive:p,updateSport:T}=jf(),O=U(()=>A(o.value)),N=U(()=>a.getters[Ue.GETTERS.EQUIPMENTS]),g=U(()=>N.value&&O.value?hO(N.value,n,"withIncludedIds",O.value,O.value.default_equipments.map(y=>y.id)):[]),R=de(!1);St(()=>{var b;const y=document.getElementById("sport-color");y==null||y.focus(),s.params.id&&s.params.id&&(b=O.value)!=null&&b.id&&S(O.value,!0)});function A(y){if(!s.params.id)return null;const b=y.filter(k=>s.params.id?k.id===+s.params.id:null);return b.length===0?null:b[0]}function S(y,b=!1){y!==null&&(E.sport_id=y.id,E.color=y.color?y.color:f?f[y.label]:i,E.is_active=y.is_active_for_user,E.stopped_speed_threshold=+`${r.value.imperial_units?xt(y.stopped_speed_threshold,"km","mi",2):parseFloat(y.stopped_speed_threshold.toFixed(2))}`,E.fromSport=!0,b&&(u.value=y.default_equipments.length>0?y.default_equipments[0].id:""))}function v(){E.default_equipment_ids=u.value?[u.value]:[],T(r.value)}function C(){R.value=!0}return Me(()=>O.value,y=>{s.params.id&&(y!=null&&y.id)&&S(y,!0)}),(y,b)=>{const k=oe("ErrorMessage");return O.value?(h(),I("div",sVe,[d("form",{class:Te({errors:R.value}),onSubmit:be(v,["prevent"])},[d("div",rVe,[d("div",oVe,[d("label",iVe,_(He(y.$t("workouts.SPORT",1))),1),V(" "+_(O.value.translatedLabel),1)]),d("div",uVe,[d("label",lVe,_(He(y.$t("user.PROFILE.SPORT.COLOR"))),1),ye(d("input",{id:"sport-color",name:"sport-color",class:"sport-color",type:"color",required:"","onUpdate:modelValue":b[0]||(b[0]=z=>m(E).color=z),disabled:m(c),onInvalid:C},null,40,cVe),[[tt,m(E).color]])]),d("div",dVe,[d("label",EVe,_(He(y.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")))+" ("+_(`${m(r).imperial_units?"mi":"km"}/h`)+")* ",1),ye(d("input",{id:"sport-threshold",name:"sport-threshold",class:"threshold-input",type:"number",min:"0",step:"0.1",required:"","onUpdate:modelValue":b[1]||(b[1]=z=>m(E).stopped_speed_threshold=z),disabled:m(c),onInvalid:C},null,40,fVe),[[tt,m(E).stopped_speed_threshold]])]),d("div",pVe,[d("label",mVe,_(He(y.$t("common.ACTIVE"))),1),d("input",{id:"equipment-active",name:"equipment-active",type:"checkbox",checked:O.value.is_active_for_user,onChange:b[2]||(b[2]=(...z)=>m(p)&&m(p)(...z)),disabled:m(c)},null,40,_Ve)]),d("div",TVe,[d("label",hVe,_(y.$t("user.PROFILE.SPORT.DEFAULT_EQUIPMENTS",1)),1),ye(d("select",{id:"sport-default-equipment",onInvalid:C,disabled:m(c),"onUpdate:modelValue":b[3]||(b[3]=z=>qt(u)?u.value=z:null)},[d("option",SVe,_(y.$t("equipments.NO_EQUIPMENTS")),1),(h(!0),I(pe,null,Pe(g.value,z=>(h(),I("option",{value:z.id,key:z.id},_(z.label),9,OVe))),128))],40,AVe),[[oa,m(u)]])])]),m(l)?(h(),Y(k,{key:0,message:m(l)},null,8,["message"])):M("",!0),d("div",gVe,[d("button",{class:"confirm",type:"submit",disabled:m(c)},_(y.$t("buttons.SUBMIT")),9,IVe),d("button",{class:"cancel",onClick:b[4]||(b[4]=be(()=>{var z;return y.$router.push(`/profile/sports/${(z=O.value)==null?void 0:z.id}`)},["prevent"])),disabled:m(c)},_(y.$t("buttons.CANCEL")),9,RVe)])],34)])):M("",!0)}}}),vVe=ie(NVe,[["__scopeId","data-v-7f3cff18"]]),bVe={id:"user-sport-preferences"},CVe={key:1,class:"responsive-table"},DVe={class:"mobile-display"},PVe={key:0,class:"profile-buttons mobile-display"},yVe={key:1,class:"profile-buttons"},LVe={class:"text-left"},$Ve={class:"threshold"},kVe={key:0},wVe={class:"cell-heading"},UVe={class:"cell-heading"},MVe={key:2,class:"disabled-message"},FVe={key:3,class:"fa fa-refresh fa-spin fa-fw"},WVe={class:"cell-heading"},zVe={class:"cell-heading"},xVe={class:"cell-heading"},BVe=["checked"],GVe={class:"cell-heading"},HVe={key:1},VVe={key:0,class:"action-buttons"},jVe={class:"cell-heading"},KVe=["onClick"],qVe={key:1,class:"edition-buttons"},YVe=["disabled"],XVe=["disabled"],QVe=["disabled"],ZVe={key:0,class:"profile-buttons"},JVe={key:1,class:"profile-buttons"},eje=ee({__name:"UserSportPreferences",props:{authUser:{},translatedSports:{},isEdition:{type:Boolean}},setup(e){const t=e,n=ke(),{authUser:a,isEdition:s,translatedSports:r}=me(t),{defaultColor:o,displayModal:i,errorMessages:u,loading:l,sportColors:c,sportPayload:f,resetSport:E,updateDisplayModal:p,updateIsActive:T,updateSport:O}=jf(),N=de(!1);function g(S){S!==null?(f.sport_id=S.id,f.color=S.color?S.color:c?c[S.label]:o,f.is_active=S.is_active_for_user,f.stopped_speed_threshold=+`${a.value.imperial_units?xt(S.stopped_speed_threshold,"km","mi",2):parseFloat(S.stopped_speed_threshold.toFixed(2))}`,N.value=S.default_equipments.length>0):A()}function R(S){return f.sport_id===S}function A(){f.sport_id=0,f.color=null,f.is_active=!0,f.stopped_speed_threshold=1,N.value=!1,n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}return Me(()=>l.value,S=>{!S&&!u.value&&(A(),p(!1))}),(S,v)=>{const C=oe("Modal"),y=oe("SportImage"),b=oe("router-link"),k=oe("ErrorMessage"),z=oe("Distance");return h(),I("div",bVe,[m(i)?(h(),Y(C,{key:0,title:S.$t("common.CONFIRMATION"),message:S.$t(`user.PROFILE.SPORT.CONFIRM_SPORT_RESET${N.value?"_WITH_EQUIPMENTS":""}`),onConfirmAction:v[0]||(v[0]=$=>m(E)(m(f).sport_id)),onCancelAction:v[1]||(v[1]=$=>m(p)(!1)),onKeydown:v[2]||(v[2]=Je($=>m(p)(!1),["esc"]))},null,8,["title","message"])):M("",!0),m(r).length>0?(h(),I("div",CVe,[d("div",DVe,[m(s)?(h(),I("div",PVe,[d("button",{class:"cancel",onClick:v[3]||(v[3]=be($=>S.$router.push("/profile/sports"),["prevent"]))},_(S.$t("buttons.BACK")),1)])):(h(),I("div",yVe,[d("button",{onClick:v[4]||(v[4]=$=>S.$router.push("/profile/edit/sports"))},_(S.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),d("button",{onClick:v[5]||(v[5]=$=>S.$router.push("/"))},_(S.$t("common.HOME")),1)]))]),d("table",null,[d("thead",null,[d("tr",null,[d("th",null,_(S.$t("user.PROFILE.SPORT.COLOR")),1),d("th",LVe,_(S.$t("workouts.SPORT",0)),1),d("th",null,_(S.$t("workouts.WORKOUT",0)),1),d("th",null,_(S.$t("equipments.EQUIPMENT",0)),1),d("th",null,_(S.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),d("th",null,[d("div",$Ve,[d("span",null,_(S.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),d("span",null," ("+_(`${m(a).imperial_units?"mi":"km"}/h`)+") ",1)])]),m(s)?(h(),I("th",kVe,_(S.$t("user.PROFILE.SPORT.ACTION")),1)):M("",!0)])]),d("tbody",null,[(h(!0),I(pe,null,Pe(m(r),$=>(h(),I("tr",{key:$.id},[d("td",null,[d("span",wVe,_(S.$t("user.PROFILE.SPORT.COLOR")),1),R($.id)?ye((h(),I("input",{key:0,class:"sport-color",type:"color","onUpdate:modelValue":v[6]||(v[6]=W=>m(f).color=W)},null,512)),[[tt,m(f).color]]):(h(),Y(y,{key:1,title:$.translatedLabel,"sport-label":$.label,color:$.color?$.color:m(c)[$.label]},null,8,["title","sport-label","color"]))]),d("td",{class:Te(["sport-label",{"disabled-sport":!$.is_active}])},[d("span",UVe,_(S.$t("user.PROFILE.SPORT.LABEL")),1),R($.id)?(h(),I(pe,{key:0},[V(_($.translatedLabel),1)],64)):(h(),Y(b,{key:1,to:`/profile/sports/${$.id}`},{default:le(()=>[V(_($.translatedLabel),1)]),_:2},1032,["to"])),$.is_active?M("",!0):(h(),I("span",MVe," ("+_(S.$t("user.PROFILE.SPORT.DISABLED_BY_ADMIN"))+") ",1)),m(l)&&R($.id)?(h(),I("i",FVe)):M("",!0),m(u)&&m(f).sport_id===$.id?(h(),Y(k,{key:4,message:m(u)},null,8,["message"])):M("",!0)],2),d("td",{class:Te(["text-center",{"disabled-sport":!$.is_active}])},[d("span",WVe,_(S.$t("workouts.WORKOUT",0)),1),d("i",{class:Te(`fa fa${m(a).sports_list.includes($.id)?"-check":""}`),"aria-hidden":"true"},null,2)],2),d("td",{class:Te(["text-center",{"disabled-sport":!$.is_active}])},[d("span",zVe,_(S.$t("equipments.EQUIPMENT",0)),1),d("i",{class:Te(`fa fa${$.default_equipments.length>0?"-check":""}`),"aria-hidden":"true"},null,2)],2),d("td",{class:Te(["text-center",{"disabled-sport":!$.is_active}])},[d("span",xVe,_(S.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),R($.id)&&$.is_active?(h(),I("input",{key:0,type:"checkbox",checked:$.is_active_for_user,onChange:v[7]||(v[7]=(...W)=>m(T)&&m(T)(...W))},null,40,BVe)):(h(),I("i",{key:1,class:Te(`fa fa${$.is_active_for_user?"-check":""}`),"aria-hidden":"true"},null,2))],2),d("td",{class:Te(["text-center",{"disabled-sport":!$.is_active}])},[d("span",GVe,_(S.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD"))+" "+_(`${m(a).imperial_units?"mi":"km"}/h`),1),R($.id)&&$.is_active?ye((h(),I("input",{key:0,class:"threshold-input",type:"number",min:"0",step:"0.1","onUpdate:modelValue":v[8]||(v[8]=W=>m(f).stopped_speed_threshold=W)},null,512)),[[tt,m(f).stopped_speed_threshold]]):(h(),I("span",HVe,[F(z,{distance:$.stopped_speed_threshold,unitFrom:"km",speed:!0,useImperialUnits:m(a).imperial_units,displayUnit:!1},null,8,["distance","useImperialUnits"])]))],2),m(s)?(h(),I("td",VVe,[d("span",jVe,_(S.$t("user.PROFILE.SPORT.ACTION")),1),m(f).sport_id===0?(h(),I("button",{key:0,onClick:W=>g($)},_(S.$t("buttons.EDIT")),9,KVe)):M("",!0),R($.id)?(h(),I("div",qVe,[d("button",{disabled:m(l),onClick:v[9]||(v[9]=be(W=>m(O)(m(a)),["prevent"]))},_(S.$t("buttons.SUBMIT")),9,YVe),d("button",{disabled:m(l),class:"warning",onClick:v[10]||(v[10]=be(W=>m(p)(!0),["prevent"]))},_(S.$t("buttons.RESET")),9,XVe),d("button",{disabled:m(l),onClick:v[11]||(v[11]=W=>g(null))},_(S.$t("buttons.CANCEL")),9,QVe)])):M("",!0)])):M("",!0)]))),128))])]),m(s)?(h(),I("div",ZVe,[d("button",{class:"cancel",onClick:v[12]||(v[12]=be($=>S.$router.push("/profile/sports"),["prevent"]))},_(S.$t("buttons.BACK")),1)])):(h(),I("div",JVe,[d("button",{onClick:v[13]||(v[13]=$=>S.$router.push("/profile/edit/sports"))},_(S.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),d("button",{onClick:v[14]||(v[14]=$=>S.$router.push("/"))},_(S.$t("common.HOME")),1)]))])):M("",!0)])}}}),QT=ie(eje,[["__scopeId","data-v-6c042f49"]]),Xo=e=>(rt("data-v-34b1686b"),e=e(),ot(),e),tje={class:"about-text"},nje=["innerHTML"],aje=Xo(()=>d("i",{class:"fa fa-book fa-padding","aria-hidden":"true"},null,-1)),sje=["href"],rje=Xo(()=>d("i",{class:"fa fa-github fa-padding","aria-hidden":"true"},null,-1)),oje={href:"https://github.com/SamR1/FitTrackee",target:"_blank",rel:"noopener noreferrer"},ije=Xo(()=>d("i",{class:"fa fa-balance-scale fa-padding","aria-hidden":"true"},null,-1)),uje=Xo(()=>d("a",{href:"https://choosealicense.com/licenses/agpl-3.0/",target:"_blank",rel:"noopener noreferrer"},"AGPLv3",-1)),lje={key:0},cje=Xo(()=>d("i",{class:"fa fa-envelope-o fa-padding","aria-hidden":"true"},null,-1)),dje=["href"],Eje={key:1},fje=["href"],pje={class:"about-instance"},mje=["innerHTML"],_je=ee({__name:"About",setup(e){const t=ke(),n=U(()=>t.getters[K.GETTERS.APP_CONFIG]),a=U(()=>o()),s=U(()=>t.getters[K.GETTERS.LANGUAGE]),r=U(()=>i());function o(){const u={};return n.value.weather_provider==="visualcrossing"&&(u.name="Visual Crossing",u.url="https://www.visualcrossing.com"),u}function i(){let u="https://samr1.github.io/FitTrackee/";return s.value==="fr"&&(u+="fr/"),u}return(u,l)=>{const c=oe("i18n-t");return h(),I("div",tje,[d("div",null,[d("p",{class:"error-message",innerHTML:u.$t("about.FITTRACKEE_DESCRIPTION")},null,8,nje),d("p",null,[aje,d("a",{class:"documentation-link",href:r.value,target:"_blank",rel:"noopener noreferrer"},_(He(u.$t("common.DOCUMENTATION"))),9,sje)]),d("p",null,[rje,d("a",oje,_(u.$t("about.SOURCE_CODE")),1)]),d("p",null,[ije,F(c,{keypath:"about.FITTRACKEE_LICENSE"},{default:le(()=>[uje]),_:1})]),n.value.admin_contact?(h(),I("div",lje,[cje,d("a",{href:`mailto:${n.value.admin_contact}`},_(u.$t("about.CONTACT_ADMIN")),9,dje)])):M("",!0),a.value&&a.value.name?(h(),I("div",Eje,[V(_(u.$t("about.WEATHER_DATA_FROM"))+" ",1),d("a",{href:a.value.url,target:"_blank",rel:"nofollow noopener"},_(a.value.name),9,fje)])):M("",!0),n.value.about?(h(),I(pe,{key:2},[d("p",pje,_(u.$t("about.ABOUT_THIS_INSTANCE")),1),d("div",{innerHTML:m(bs)(m(Po)(n.value.about))},null,8,mje)],64)):M("",!0)])])}}}),Tje=ie(_je,[["__scopeId","data-v-34b1686b"]]),hje={},Aje=e=>(rt("data-v-dc181e30"),e=e(),ot(),e),Sje={id:"bike"},Oje=Aje(()=>d("img",{class:"bike-img",src:"/img/bike.svg",alt:"mountain bike"},null,-1)),gje=[Oje];function Ije(e,t){return h(),I("div",Sje,gje)}const XO=ie(hje,[["render",Ije],["__scopeId","data-v-dc181e30"]]),Rje={id:"about",class:"view"},Nje={class:"container"},vje={class:"container-sub"},bje={class:"container-sub about-details"},Cje=ee({__name:"AboutView",setup(e){return(t,n)=>(h(),I("div",Rje,[d("div",Nje,[d("div",vje,[F(XO)]),d("div",bje,[F(Tje)])])]))}}),Dje=ie(Cje,[["__scopeId","data-v-ef9c7198"]]),Pje={id:"error"},yje={class:"error-content"},Lje=ee({__name:"Error",props:{title:{},message:{},buttonText:{},path:{default:"/"}},setup(e){const t=e,{buttonText:n,title:a,message:s,path:r}=me(t);return(o,i)=>(h(),I("div",Pje,[d("div",yje,[d("h1",null,_(m(a)),1),d("p",null,_(m(s)),1),m(n)?(h(),I("button",{key:0,onClick:i[0]||(i[0]=u=>o.$router.push(m(r))),class:"upper"},_(m(n)),1)):M("",!0)])]))}}),$je=ie(Lje,[["__scopeId","data-v-48ec856d"]]),Kf=ee({__name:"NotFound",props:{target:{default:"PAGE"}},setup(e){const t=e,{target:n}=me(t),a=de(),s=de(!1);St(()=>r());function r(){a.value=setTimeout(()=>{s.value=!0},500)}return mt(()=>{a.value&&clearTimeout(a.value)}),(o,i)=>s.value?(h(),Y($je,{key:0,title:"404",message:o.$t(`error.NOT_FOUND.${m(n)}`),"button-text":o.$t("common.HOME")},null,8,["message","button-text"])):M("",!0)}}),kje=e=>(rt("data-v-5eee0876"),e=e(),ot(),e),wje={id:"admin",class:"view"},Uje={key:0,class:"container"},Mje=kje(()=>d("div",{id:"bottom"},null,-1)),Fje=ee({__name:"AdminView",setup(e){const t=ke(),n=U(()=>t.getters[K.GETTERS.APP_CONFIG]),a=U(()=>t.getters[K.GETTERS.APP_STATS]),s=U(()=>t.getters[Q.GETTERS.IS_ADMIN]),r=U(()=>t.getters[Q.GETTERS.USER_LOADING]);return pt(()=>t.dispatch(K.ACTIONS.GET_APPLICATION_STATS)),(o,i)=>{const u=oe("router-view");return h(),I("div",wje,[r.value?M("",!0):(h(),I("div",Uje,[s.value?(h(),Y(u,{key:0,appConfig:n.value,appStatistics:a.value},null,8,["appConfig","appStatistics"])):(h(),Y(Kf,{key:1})),Mje]))])}}}),Wje=ie(Fje,[["__scopeId","data-v-5eee0876"]]),QO="/img/workouts/mountains.svg",zje=["alt"],xje=d("div",{class:"map-attribution"},[d("a",{class:"map-attribution-text",href:"https://www.openstreetmap.org/copyright",target:"_blank",rel:"noopener noreferrer"}," © OpenStreetMap ")],-1),ZO=ee({__name:"StaticMap",props:{workout:{},displayHover:{type:Boolean,default:!1}},setup(e){const t=e,{displayHover:n}=me(t),a=`${Wo()}workouts/map/${t.workout.map}`;return(s,r)=>{const o=oe("router-link");return h(),I("div",{class:Te(["static-map",{"display-hover":m(n)}])},[m(n)?(h(),I("img",{key:0,src:a,alt:s.$t("workouts.WORKOUT_MAP")},null,8,zje)):(h(),Y(o,{key:1,class:"bg-map-image",to:{name:"Workout",params:{workoutId:s.workout.id}},style:ba({backgroundImage:`url(${a})`}),"aria-label":s.$t("workouts.WORKOUT_MAP")},null,8,["to","style","aria-label"])),xje],2)}}}),qf=e=>(rt("data-v-ef89664d"),e=e(),ot(),e),Bje={class:"timeline-workout"},Gje={class:"box"},Hje={class:"workout-user-date"},Vje={class:"workout-user"},jje=["datetime","title"],Kje={class:"workout-map"},qje={class:"no-map"},Yje={class:"img"},Xje={class:"data"},Qje=qf(()=>d("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1)),Zje={key:0},Jje={class:"data"},eKe=qf(()=>d("i",{class:"fa fa-road","aria-hidden":"true"},null,-1)),tKe={key:0,class:"data elevation"},nKe=["alt"],aKe={class:"data-values"},sKe={key:1,class:"data altitude"},rKe=qf(()=>d("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1)),oKe={class:"data-values"},iKe=ee({__name:"WorkoutCard",props:{user:{},useImperialUnits:{type:Boolean},workout:{default:()=>({})},sport:{default:()=>({})}},setup(e){const t=e,n=ke(),{user:a,workout:s,sport:r,useImperialUnits:o}=me(t),i=U(()=>n.getters[K.GETTERS.LOCALE]),u=U(()=>Fn(s.value.workout_date,a.value.timezone,a.value.date_format));function l(f){return f.with_gpx&&f.min_alt!==null&&f.max_alt!==null}function c(f){return l(f)&&f.ascent!==null&&f.descent!==null}return(f,E)=>{var N;const p=oe("router-link"),T=oe("SportImage"),O=oe("Distance");return h(),I("div",Bje,[d("div",Gje,[d("div",Hje,[d("div",Vje,[F(zo,{user:m(a)},null,8,["user"]),m(a).username?(h(),Y(p,{key:0,class:"workout-user-name",to:{name:"User",params:{username:m(a).username}}},{default:le(()=>[V(_(m(a).username),1)]),_:1},8,["to"])):M("",!0)]),m(s).id?(h(),Y(p,{key:0,class:"workout-title",to:{name:"Workout",params:{workoutId:m(s).id}}},{default:le(()=>[V(_(m(s).title),1)]),_:1},8,["to"])):M("",!0),m(s).workout_date&&m(a)?(h(),I("time",{key:1,class:"workout-date",datetime:u.value,title:u.value},_(m(qC)(new Date(m(s).workout_date),new Date,{addSuffix:!0,locale:i.value})),9,jje)):M("",!0)]),d("div",Kje,[m(s).with_gpx?(h(),Y(ZO,{key:0,workout:m(s)},null,8,["workout"])):m(s).id?(h(),Y(p,{key:1,to:{name:"Workout",params:{workoutId:m(s).id}}},{default:le(()=>[d("div",qje,_(f.$t("workouts.NO_MAP")),1)]),_:1},8,["to"])):M("",!0)]),d("div",{class:Te(["workout-data",{"without-elevation":!l(m(s))}]),onClick:E[0]||(E[0]=g=>m(s).id?f.$router.push({name:"Workout",params:{workoutId:m(s).id}}):null)},[d("div",Yje,[(N=m(r))!=null&&N.label?(h(),Y(T,{key:0,"sport-label":m(r).label,color:m(r).color},null,8,["sport-label","color"])):M("",!0)]),d("div",Xje,[Qje,m(s)?(h(),I("span",Zje,_(m(s).moving),1)):M("",!0)]),d("div",Jje,[eKe,m(s).id?(h(),Y(O,{key:0,distance:m(s).distance,digits:3,unitFrom:"km",useImperialUnits:m(o)},null,8,["distance","useImperialUnits"])):M("",!0)]),l(m(s))?(h(),I("div",tKe,[d("img",{class:"mountains",src:QO,alt:f.$t("workouts.ELEVATION")},null,8,nKe),d("div",aKe,[m(s).id?(h(),Y(O,{key:0,distance:m(s).min_alt,unitFrom:"m",displayUnit:!1,useImperialUnits:m(o)},null,8,["distance","useImperialUnits"])):M("",!0),V("/ "),m(s).id?(h(),Y(O,{key:1,distance:m(s).max_alt,unitFrom:"m",useImperialUnits:m(o)},null,8,["distance","useImperialUnits"])):M("",!0)])])):M("",!0),c(m(s))?(h(),I("div",sKe,[rKe,d("div",oKe,[V(" +"),m(s).id?(h(),Y(O,{key:0,distance:m(s).ascent,unitFrom:"m",displayUnit:!1,useImperialUnits:m(o)},null,8,["distance","useImperialUnits"])):M("",!0),V("/- "),m(s).id?(h(),Y(O,{key:1,distance:m(s).descent,unitFrom:"m",useImperialUnits:m(o)},null,8,["distance","useImperialUnits"])):M("",!0)])])):M("",!0)],2)])])}}}),ZT=ie(iKe,[["__scopeId","data-v-ef89664d"]]),uKe={},lKe={class:"no-workouts box"};function cKe(e,t){const n=oe("router-link");return h(),I("div",lKe,[d("div",null,[V(_(e.$t("workouts.NO_WORKOUTS"))+" ",1),F(n,{to:"/workouts/add"},{default:le(()=>[V(_(e.$t("workouts.UPLOAD_FIRST_WORKOUT")),1)]),_:1})])])}const Yf=ie(uKe,[["render",cKe],["__scopeId","data-v-b0c91cc6"]]),Xa={ligthMode:{text:"#666",line:"rgba(0, 0, 0, 0.1)"},darkMode:{text:"#a1a1a1",line:"#3f3f3f"}},dKe=(e,t,n,a=!1)=>{const s={speed:{label:t("workouts.SPEED"),backgroundColor:["transparent"],borderColor:[a?"#5f5c97":"#8884d8"],borderWidth:2,data:[],yAxisID:"ySpeed"},elevation:{label:t("workouts.ELEVATION"),backgroundColor:[a?"#303030":"#e5e5e5"],borderColor:[a?"#222222":"#cccccc"],borderWidth:1,fill:!0,data:[],yAxisID:"yElevation"}},r=[],o=[],i=[];return e.map(u=>{r.push(xi("km",u.distance,n)),o.push(u.duration),s.speed.data.push(xi("km",u.speed,n)),u.elevation!==void 0&&s.elevation.data.push(xi("m",u.elevation,n)),i.push({latitude:u.latitude,longitude:u.longitude})}),{distance_labels:r,duration_labels:o,datasets:s,coordinates:i}},EKe=e=>{const t=e.length;if(t===0)return{};const n={};return e.map(a=>{n[a.sport_id]||(n[a.sport_id]={count:0,percentage:0}),n[a.sport_id].count+=1,n[a.sport_id].percentage=n[a.sport_id].count/t}),n},Lo={order:"desc",order_by:"workout_date"},fKe={id:"timeline"},pKe={class:"section-title"},mKe={key:0},_Ke={key:1},TKe={key:1,class:"more-workouts"},Ci=5,hKe=ee({__name:"Timeline",props:{sports:{},user:{}},setup(e){const t=e,n=ke(),{sports:a,user:s}=me(t),r=de(1),o=t.user.nb_workouts>=Ci?Ci:t.user.nb_workouts;pt(()=>l());const i=U(()=>n.getters[Re.GETTERS.TIMELINE_WORKOUTS]),u=U(()=>i.value.length>0?i.value[i.value.length-1].previous_workout!==null:!1);function l(){n.dispatch(Re.ACTIONS.GET_TIMELINE_WORKOUTS,{page:r.value,per_page:Ci,...Lo})}function c(){r.value+=1,n.dispatch(Re.ACTIONS.GET_MORE_TIMELINE_WORKOUTS,{page:r.value,per_page:Ci,...Lo})}return(f,E)=>(h(),I("div",fKe,[d("div",pKe,_(f.$t("workouts.LATEST_WORKOUTS")),1),m(s).nb_workouts>0&&i.value.length===0?(h(),I("div",mKe,[(h(!0),I(pe,null,Pe([...Array(m(o)).keys()],p=>(h(),Y(ZT,{user:m(s),useImperialUnits:m(s).imperial_units,key:p},null,8,["user","useImperialUnits"]))),128))])):(h(),I("div",_Ke,[(h(!0),I(pe,null,Pe(i.value,p=>(h(),Y(ZT,{workout:p,sport:i.value.length>0?m(a).filter(T=>T.id===p.sport_id)[0]:null,user:m(s),useImperialUnits:m(s).imperial_units,key:p.id},null,8,["workout","sport","user","useImperialUnits"]))),128)),i.value.length===0?(h(),Y(Yf,{key:0})):M("",!0),u.value?(h(),I("div",TKe,[d("button",{onClick:c},_(f.$t("workouts.LOAD_MORE_WORKOUT")),1)])):M("",!0)]))]))}}),AKe=ie(hKe,[["__scopeId","data-v-e0964959"]]),SKe=["title"],JO=ee({__name:"CalendarWorkout",props:{displayHARecord:{type:Boolean},workout:{},sportLabel:{},sportColor:{}},setup(e){const t=e,{displayHARecord:n,workout:a,sportLabel:s,sportColor:r}=me(t);return(o,i)=>{const u=oe("SportImage"),l=oe("router-link");return h(),Y(l,{class:"calendar-workout",to:{name:"Workout",params:{workoutId:m(a).id}}},{default:le(()=>[F(u,{"sport-label":m(s),title:m(a).title,color:m(r)},null,8,["sport-label","title","color"]),d("sup",null,[m(a).records.length>0?(h(),I("i",{key:0,class:"fa fa-trophy custom-fa-small","aria-hidden":"true",title:m(a).records.filter(c=>m(n)?!0:c.record_type!=="HA").map(c=>` ${o.$t(`workouts.RECORD_${c.record_type}`)}`)[0]},null,8,SKe)):M("",!0)])]),_:1},8,["to"])}}}),OKe={class:"donut-chart"},gKe={height:"34",width:"34",viewBox:"0 0 34 34"},IKe=["stroke","stroke-dashoffset","transform"],JT=16,e0=16,t0=14,RKe=ee({__name:"DonutChart",props:{colors:{},datasets:{}},setup(e){const t=e,{colors:n,datasets:a}=me(t);let s=-90;const r=2*Math.PI*t0;function o(u,l){return l-u*l}function i(u,l){const c=`rotate(${s}, ${JT}, ${e0})`;return s=l*360+s,c}return(u,l)=>(h(),I("div",OKe,[(h(),I("svg",gKe,[(h(!0),I(pe,null,Pe(Object.entries(m(a)),(c,f)=>(h(),I("g",{key:f},[d("circle",{cx:JT,cy:e0,r:t0,fill:"transparent",stroke:m(n)[+c[0]],"stroke-dashoffset":o(c[1].percentage,r),"stroke-dasharray":r,"stroke-width":"3","stroke-opacity":"0.8",transform:i(f,c[1].percentage)},null,8,IKe)]))),128))]))]))}}),NKe=e=>(rt("data-v-c143b24d"),e=e(),ot(),e),vKe={class:"calendar-workouts-chart"},bKe=["id"],CKe={class:"workouts-count"},DKe={key:0,class:"workouts-pane"},PKe=["id"],yKe=NKe(()=>d("i",{class:"fa fa-times","aria-hidden":"true"},null,-1)),LKe=[yKe],$Ke=ee({__name:"CalendarWorkoutsChart",props:{colors:{},datasets:{},sports:{},workouts:{},displayHARecord:{type:Boolean},index:{}},setup(e){const t=e;let n=0;const{colors:a,datasets:s,index:r,sports:o,workouts:i}=me(t),u=de(!0);function l(){const E=document.getElementById(`workouts-pane-${r.value}`);return E!=null&&E.children&&(E==null?void 0:E.children.length)>0?E:null}async function c(E){var T;E.preventDefault(),E.stopPropagation(),u.value=!u.value,await on();const p=l();u.value?(T=document.getElementById(`workouts-donut-${r.value}`))==null||T.focus():(p==null?void 0:p.children[0]).focus()}function f(E){if(!u.value){if(!u.value&&(E.key==="Tab"||E.keyCode===9)){E.preventDefault(),E.stopPropagation();const p=l();p&&(E.shiftKey?(n-=1,n<0&&(n=p.children.length-1)):(n+=1,n>=p.children.length&&(n=0)),p.children[n].focus())}E.key==="Escape"&&c(E)}}return St(()=>{document.addEventListener("keydown",f)}),mt(()=>{document.removeEventListener("keydown",f)}),(E,p)=>{const T=HI("click-outside");return h(),I("div",vKe,[d("button",{class:"workouts-chart transparent",id:`workouts-donut-${m(r)}`,onClick:c},[d("div",CKe,_(m(i).length),1),F(RKe,{datasets:m(s),colors:m(a)},null,8,["datasets","colors"])],8,bKe),u.value?M("",!0):(h(),I("div",DKe,[ye((h(),I("div",{class:"more-workouts",id:`workouts-pane-${m(r)}`},[d("button",{class:"calendar-more-close transparent",onClick:c},LKe),(h(!0),I(pe,null,Pe(m(i),(O,N)=>(h(),Y(JO,{key:N,displayHARecord:E.displayHARecord,workout:O,sportLabel:m(Ff)(O,m(o)),sportColor:m(Wf)(O,m(o))},null,8,["displayHARecord","workout","sportLabel","sportColor"]))),128))],8,PKe)),[[T,c]])]))])}}}),n0=ie($Ke,[["__scopeId","data-v-c143b24d"]]),kKe={class:"calendar-workouts"},wKe={class:"desktop-display"},UKe={key:0,class:"workouts-display"},MKe={key:1,class:"donut-display"},FKe={class:"mobile-display"},WKe={key:0,class:"donut-display"},a0=6,zKe=ee({__name:"CalendarWorkouts",props:{displayHARecord:{type:Boolean},workouts:{},sports:{},index:{}},setup(e){const t=e,{displayHARecord:n,index:a,sports:s,workouts:r}=me(t),o=U(()=>EKe(t.workouts)),i=U(()=>EMe(t.sports));return(u,l)=>(h(),I("div",kKe,[d("div",wKe,[m(r).length<=a0?(h(),I("div",UKe,[(h(!0),I(pe,null,Pe(m(r).slice(0,a0),(c,f)=>(h(),Y(JO,{key:f,displayHARecord:m(n),workout:c,sportLabel:m(Ff)(c,m(s)),sportColor:m(Wf)(c,m(s))},null,8,["displayHARecord","workout","sportLabel","sportColor"]))),128))])):(h(),I("div",MKe,[F(n0,{workouts:m(r),sports:m(s),datasets:o.value,colors:i.value,displayHARecord:m(n),index:m(a)},null,8,["workouts","sports","datasets","colors","displayHARecord","index"])]))]),d("div",FKe,[m(r).length>0?(h(),I("div",WKe,[F(n0,{workouts:m(r),sports:m(s),datasets:o.value,colors:i.value,displayHARecord:m(n),index:m(a)},null,8,["workouts","sports","datasets","colors","displayHARecord","index"])])):M("",!0)])]))}}),xKe={class:"calendar-cells"},BKe={class:"calendar-cell-day"},GKe=ee({__name:"CalendarCells",props:{currentDay:{},displayHARecord:{type:Boolean},endDate:{},sports:{},startDate:{},timezone:{},weekStartingMonday:{type:Boolean},workouts:{}},setup(e){const t=e,{currentDay:n,displayHARecord:a,endDate:s,sports:r,startDate:o,timezone:i,weekStartingMonday:u,workouts:l}=me(t),c=de([]);St(()=>f());function f(){c.value=[];let T=o.value;for(;T<=s.value;){const O=[];for(let N=0;N<7;N++)O.push(T),T=Bo(T,1);c.value.push(O)}}function E(T){return u.value?[5,6].includes(T):[0,6].includes(T)}function p(T,O){return O?O.filter(N=>sA(jl(N.workout_date,i.value),T)).reverse():[]}return Me(()=>t.currentDay,()=>f()),(T,O)=>(h(),I("div",xKe,[(h(!0),I(pe,null,Pe(c.value,(N,g)=>(h(),I("div",{class:"calendar-row",key:g},[(h(!0),I(pe,null,Pe(N,(R,A)=>(h(),I("div",{class:Te(["calendar-cell",{"disabled-cell":!m(XC)(R,m(n)),"week-end":E(A),today:m(QC)(R)}]),key:A},[F(zKe,{workouts:p(R,m(l)),sports:m(r),displayHARecord:m(a),index:A},null,8,["workouts","sports","displayHARecord","index"]),d("div",BKe,_(m(un)(R,"d")),1)],2))),128))]))),128))]))}}),HKe={class:"calendar-days"},VKe=ee({__name:"CalendarDays",props:{startDate:{},localeOptions:{}},setup(e){const t=e,n=[];for(let a=0;a<7;a++)n.push(Bo(t.startDate,a));return(a,s)=>(h(),I("div",HKe,[(h(),I(pe,null,Pe(n,(r,o)=>d("div",{class:"calendar-day",key:o},_(m(un)(r,a.localeOptions.code==="eu"?"EEEEEE.":"EEE",{locale:a.localeOptions})),1)),64))]))}}),jKe={class:"calendar-header"},KKe=["aria-label"],qKe=d("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1),YKe=[qKe],XKe={class:"calendar-month"},QKe=["aria-label"],ZKe=d("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1),JKe=[ZKe],eqe=ee({__name:"CalendarHeader",props:{day:{},localeOptions:{}},emits:["displayNextMonth","displayPreviousMonth"],setup(e,{emit:t}){const n=e,a=t,{day:s,localeOptions:r}=me(n);return(o,i)=>(h(),I("div",jKe,[d("button",{class:"calendar-arrow calendar-arrow-left transparent",onClick:i[0]||(i[0]=u=>a("displayPreviousMonth")),"aria-label":o.$t("common.PREVIOUS")},YKe,8,KKe),d("div",XKe,[d("span",null,_(m(un)(m(s),"MMM yyyy",{locale:m(r)})),1)]),d("button",{class:"calendar-arrow calendar-arrow-right transparent",onClick:i[1]||(i[1]=u=>a("displayNextMonth")),"aria-label":o.$t("common.NEXT")},JKe,8,QKe)]))}}),tqe={id:"user-calendar"},nqe={class:"calendar-card box"},s0="yyyy-MM-dd",aqe=ee({__name:"index",props:{sports:{},user:{}},setup(e){const t=e,n=ke(),{sports:a,user:s}=me(t),r=de(new Date),o=de(yT(r.value,s.value.weekm)),i=U(()=>n.getters[Re.GETTERS.CALENDAR_WORKOUTS]),u=U(()=>n.getters[K.GETTERS.LOCALE]);pt(()=>l());function l(){o.value=yT(r.value,t.user.weekm);const E={from:un(o.value.start,s0),to:un(o.value.end,s0),page:1,per_page:100,...Lo};n.dispatch(Re.ACTIONS.GET_CALENDAR_WORKOUTS,E)}function c(){r.value=rr(r.value,1),l()}function f(){r.value=mo(r.value,1),l()}return(E,p)=>(h(),I("div",tqe,[d("div",nqe,[F(eqe,{day:r.value,"locale-options":u.value,onDisplayNextMonth:c,onDisplayPreviousMonth:f},null,8,["day","locale-options"]),F(VKe,{"start-date":o.value.start,"locale-options":u.value},null,8,["start-date","locale-options"]),F(GKe,{currentDay:r.value,displayHARecord:m(s).display_ascent,"end-date":o.value.end,sports:m(a),"start-date":o.value.start,timezone:m(s).timezone,workouts:i.value,weekStartingMonday:m(s).weekm},null,8,["currentDay","displayHARecord","end-date","sports","start-date","timezone","workouts","weekStartingMonday"])])]))}}),eg={data:{type:Object,required:!0},options:{type:Object,default:()=>({})},plugins:{type:Array,default:()=>[]},datasetIdKey:{type:String,default:"label"},updateMode:{type:String,default:void 0}},sqe={ariaLabel:{type:String},ariaDescribedby:{type:String}},rqe={type:{type:String,required:!0},destroyDelay:{type:Number,default:0},...eg,...sqe},oqe=Dh[0]==="2"?(e,t)=>Object.assign(e,{attrs:t}):(e,t)=>Object.assign(e,t);function Vs(e){return il(e)?lt(e):e}function iqe(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e;return il(t)?new Proxy(e,{}):e}function uqe(e,t){const n=e.options;n&&t&&Object.assign(n,t)}function tg(e,t){e.labels=t}function ng(e,t,n){const a=[];e.datasets=t.map(s=>{const r=e.datasets.find(o=>o[n]===s[n]);return!r||!s.data||a.includes(r)?{...s}:(a.push(r),Object.assign(r,s),r)})}function lqe(e,t){const n={labels:[],datasets:[]};return tg(n,e.labels),ng(n,e.datasets,t),n}const cqe=ee({props:rqe,setup(e,t){let{expose:n,slots:a}=t;const s=de(null),r=$o(null);n({chart:r});const o=()=>{if(!s.value)return;const{type:l,data:c,options:f,plugins:E,datasetIdKey:p}=e,T=lqe(c,p),O=iqe(T,c);r.value=new TE(s.value,{type:l,data:O,options:{...f},plugins:E})},i=()=>{const l=lt(r.value);l&&(e.destroyDelay>0?setTimeout(()=>{l.destroy(),r.value=null},e.destroyDelay):(l.destroy(),r.value=null))},u=l=>{l.update(e.updateMode)};return St(o),mt(i),Me([()=>e.options,()=>e.data],(l,c)=>{let[f,E]=l,[p,T]=c;const O=lt(r.value);if(!O)return;let N=!1;if(f){const g=Vs(f),R=Vs(p);g&&g!==R&&(uqe(O,g),N=!0)}if(E){const g=Vs(E.labels),R=Vs(T.labels),A=Vs(E.datasets),S=Vs(T.datasets);g!==R&&(tg(O.config.data,g),N=!0),A&&A!==S&&(ng(O.config.data,A,e.datasetIdKey),N=!0)}N&&on(()=>{u(O)})},{deep:!0}),()=>hn("canvas",{role:"img",ariaLabel:e.ariaLabel,ariaDescribedby:e.ariaDescribedby,ref:s},[hn("p",{},[a.default?a.default():""])])}});function ag(e,t){return TE.register(t),ee({props:eg,setup(n,a){let{expose:s}=a;const r=$o(null),o=i=>{r.value=i==null?void 0:i.chart};return s({chart:r}),()=>hn(cqe,oqe({ref:o},{type:e,...n}))}})}const dqe=ag("bar",S0),Eqe=ag("line",O0),xr=(e,t,n,a=!0,s="km")=>{const r=n?mn[s].defaultTarget:s;switch(e){case"average_speed":return`${t.toFixed(2)} ${r}/h`;case"average_duration":case"total_duration":return rHe(t,a);case"average_distance":case"average_ascent":case"average_descent":case"total_distance":case"total_ascent":case"total_descent":return`${t.toFixed(2)} ${r}`;default:return t.toString()}},fqe=ee({__name:"Chart",props:{datasets:{},labels:{},displayedData:{},displayedSportIds:{},fullStats:{type:Boolean},useImperialUnits:{type:Boolean},label:{}},setup(e){const t=e,{datasets:n,labels:a,displayedData:s,displayedSportIds:r,fullStats:o,useImperialUnits:i}=me(t),u=xo(),{t:l}=kt(),c=U(()=>u.getters[K.GETTERS.DARK_MODE]),f=U(()=>Il(c.value)),E=U(()=>({color:f.value?Xa.darkMode.line:Xa.ligthMode.line})),p=U(()=>({color:f.value?Xa.darkMode.text:Xa.ligthMode.text})),T=U(()=>s.value!=="average_workouts"&&s.value.startsWith("average")),O=U(()=>({labels:a.value,datasets:JSON.parse(JSON.stringify(n.value))})),N=U(()=>({responsive:!0,maintainAspectRatio:!1,animation:!1,layout:{padding:{top:o.value?40:22}},scales:{x:{stacked:!0,grid:{drawOnChartArea:!1,...E.value},border:{...E.value},ticks:{...p.value}},y:{stacked:!s.value.startsWith("average"),grid:{drawOnChartArea:!1,...E.value},border:{...E.value},ticks:{maxTicksLimit:6,callback:function(S){return xr(s.value,+S,i.value,!1,A(s.value))},...p.value},afterFit:function(S){S.width=o.value?90:60}}},plugins:{datalabels:{anchor:"end",align:"end",color:function(S){return T.value&&S.dataset.backgroundColor?S.dataset.backgroundColor[0]:p.value.color},rotation:function(S){return o.value&&S.chart.chartArea.width<580?310:0},display:function(S){return o.value&&S.chart.chartArea.width<300?!1:T.value?r.value.length==1?"auto":!1:!0},formatter:function(S,v){if(s.value.startsWith("average"))return xr(s.value,S,i.value,!1);{const C=v.chart.data.datasets.map(y=>y.data[v.dataIndex]).reduce((y,b)=>R(y,b),0);return v.datasetIndex===r.value.length-1&&C>0?xr(s.value,C,i.value,!1,A(s.value)):null}}},legend:{display:!1},tooltip:{interaction:{intersect:!0,mode:"index",position:T.value?"nearest":"average"},filter:function(S){return S.formattedValue!=="0"},callbacks:{label:function(S){let v=s.value==="average_workouts"?l("workouts.WORKOUT",0):l(`sports.${S.dataset.label}.LABEL`)||"";return v&&(v+=": "),S.parsed.y!==null&&(v+=xr(s.value,S.parsed.y,i.value,!0,A(s.value))),v},footer:function(S){if(s.value.startsWith("average"))return"";let v=0;return S.map(C=>{v+=C.parsed.y}),`${l("common.TOTAL")}: `+xr(s.value,v,i.value,!0,A(s.value))}}}}}));function g(S){return isNaN(S)?0:+S}function R(S,v){return g(S)+g(v)}function A(S){return S.includes("scent")?"m":"km"}return(S,v)=>(h(),I("div",{class:Te(["bar-chart",{minimal:!m(o)}])},[F(m(dqe),{data:O.value,options:N.value,"aria-label":S.label},null,8,["data","options","aria-label"])],2))}}),pqe=ie(fqe,[["__scopeId","data-v-893ee0af"]]),{locale:nl}=$s.global,sg={week:{api:"yyyy-MM-dd",chart:"MM/dd/yyyy"},month:{api:"yyyy-MM",chart:"MM/yyyy"},year:{api:"yyyy",chart:"yyyy"}},mqe=["average_ascent","average_descent","average_distance","average_duration","average_speed","total_workouts","total_duration","total_distance","total_ascent","total_descent"],_qe=(e,t)=>{const n=[];for(let a=N7e(e.duration,e.start,t);a<=e.end;a=v7e(e.duration,a))n.push(a);return n},Zn=(e,t,n=!1)=>{const a={label:e,backgroundColor:[t],data:[]};return n?(a.type="line",a.borderColor=[t],a.spanGaps=!0):a.type="bar",a},Tqe=e=>{const t={average_ascent:[],average_descent:[],average_distance:[],average_duration:[],average_speed:[],average_workouts:[],total_workouts:[],total_distance:[],total_duration:[],total_ascent:[],total_descent:[]};return e.map(n=>{const a=n.color?n.color:Mf[n.label];t.average_ascent.push(Zn(n.label,a,!0)),t.average_descent.push(Zn(n.label,a,!0)),t.average_distance.push(Zn(n.label,a,!0)),t.average_duration.push(Zn(n.label,a,!0)),t.average_speed.push(Zn(n.label,a,!0)),t.total_workouts.push(Zn(n.label,a)),t.total_distance.push(Zn(n.label,a)),t.total_duration.push(Zn(n.label,a)),t.total_ascent.push(Zn(n.label,a)),t.total_descent.push(Zn(n.label,a))}),t},hqe=(e,t,n)=>{switch(e){case"average_speed":case"total_distance":case"total_ascent":case"total_descent":case"average_distance":case"average_ascent":case"average_descent":return xi(["average_speed","total_distance","average_distance"].includes(e)?"km":"m",t,n);default:case"total_workouts":case"total_duration":case"average_duration":return t}},mE=(e,t,n,a)=>un(e,t==="week"?us(n,nl.value):a,{locale:Rr[nl.value]}),Aqe=(e,t,n,a,s,r,o)=>{const i=_qe(e,t),u=sg[e.duration],l=n.filter(p=>a.includes(p.id)),c=[],f=Tqe(l),E={};return l.map(p=>E[p.label]=p.id),i.map(p=>{const T=un(p,u.api),O=mE(p,e.duration,o,u.chart);un(p,e.duration==="week"?us(o,nl.value):u.chart,{locale:Rr[nl.value]}),c.push(O),mqe.map(N=>{f[N].map(g=>{g.data.push(T in s&&E[g.label]in s[T]?hqe(N,s[T][E[g.label]][N],r):N.startsWith("average")?null:0)})})}),{labels:c,datasets:f}},Sqe=(e,t,n,a)=>{const s=n?1:0,r=t==="year"?QE(_d(e,9)):t==="week"?Nl(mo(e,2),{weekStartsOn:s}):Ho(mo(e,11)),o=t==="year"?rA(e):t==="week"?ZE(e,{weekStartsOn:s}):Go(e);return{duration:t,end:o,start:r,statsType:a}},Oqe=(e,t,n)=>{const{duration:a,start:s,end:r}=e,o=n?1:0;return{duration:a,end:a==="year"?rA(t?_d(r,1):lu(r,1)):a==="week"?ZE(t?wm(r,1):md(r,1),{weekStartsOn:o}):Go(t?mo(r,1):rr(r,1)),start:a==="year"?QE(t?_d(s,1):lu(s,1)):a==="week"?Nl(t?wm(s,1):md(s,1),{weekStartsOn:o}):Ho(t?mo(s,1):rr(s,1)),statsType:e.statsType}},r0=e=>{const t=e.reduce((a,s)=>(a||0)+(s||0),0);return+(e.length?(t||0)/e.length:0).toFixed(1)},gqe=e=>{const t=[],n={label:"workouts_average",backgroundColor:[],data:[]};let a=[];for(const s of e)n.data.push(r0(s.data)),n.backgroundColor.push(s.backgroundColor[0]),t.push(s.label),a.length>0?a=a.map((r,o)=>r+(s.data[o]||0)):a=s.data.map(r=>r||0);return{labels:t,datasets:{workouts_average:[n]},workoutsAverage:r0(a)}},Iqe=e=>(rt("data-v-56be982d"),e=e(),ot(),e),Rqe={class:"stats-chart"},Nqe={key:0},vqe={key:1},bqe={class:"chart-radio"},Cqe=["value","checked","disabled"],Dqe=["value","checked","disabled"],Pqe=["value","checked","disabled"],yqe={key:0},Lqe=["checked","disabled"],$qe={key:1},kqe=["value","checked","disabled"],wqe={key:2},Uqe=["value","checked","disabled"],Mqe={class:"workouts-average"},Fqe={key:0,class:"info-box"},Wqe=Iqe(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),zqe=ee({__name:"index",props:{sports:{},user:{},chartParams:{},displayedSportIds:{default:()=>[]},fullStats:{type:Boolean,default:!1},hideChartIfNoData:{type:Boolean,default:!1},isDisabled:{type:Boolean,default:!1},selectedTimeFrame:{default:null}},setup(e){const t=e,{sports:n,user:a,chartParams:s,displayedSportIds:r,fullStats:o,hideChartIfNoData:i,isDisabled:u}=me(t),l=ke(),c=de("total_distance"),f=U(()=>l.getters[$t.GETTERS.USER_STATS]),E=U(()=>sg[s.value.duration].chart),p=U(()=>mE(s.value.start,s.value.duration,a.value.date_format,E.value)),T=U(()=>mE(s.value.end,s.value.duration,a.value.date_format,E.value)),O=U(()=>Aqe(s.value,a.value.weekm,n.value,r.value,f.value,a.value.imperial_units,a.value.date_format)),N=U(()=>O.value.datasets[c.value]),g=U(()=>O.value.labels),R=U(()=>Object.keys(f.value).length===0),A=U(()=>s.value.statsType),S=U(()=>gqe(O.value.datasets.total_workouts));pt(()=>v(y(s.value,a.value)));function v(b){l.dispatch($t.ACTIONS.GET_USER_STATS,{username:a.value.username,params:b})}function C(b){c.value=b.target.value}function y(b,k){return{from:un(b.start,"yyyy-MM-dd"),to:un(b.end,"yyyy-MM-dd"),time:b.duration==="week"?`week${k.weekm?"m":""}`:b.duration,type:A.value}}return Me(()=>s.value,async b=>{v(y(b,a.value))}),Me(()=>A.value,async b=>{c.value=b==="total"&&c.value==="average_speed"?"total_distance":`${A.value}_${c.value.split("_")[1]}`}),(b,k)=>(h(),I("div",Rqe,[m(i)&&R.value?(h(),I("div",Nqe,_(b.$t("workouts.NO_WORKOUTS")),1)):(h(),I("div",vqe,[d("div",bqe,[d("label",null,[d("input",{type:"radio",name:"value_type",value:`${A.value}_distance`,checked:c.value===`${A.value}_distance`,disabled:m(u),onClick:C},null,8,Cqe),V(" "+_(b.$t("workouts.DISTANCE")),1)]),d("label",null,[d("input",{type:"radio",name:"value_type",value:`${A.value}_duration`,checked:c.value===`${A.value}_duration`,disabled:m(u),onClick:C},null,8,Dqe),V(" "+_(b.$t("workouts.DURATION")),1)]),d("label",null,[d("input",{type:"radio",name:"value_type",value:`${A.value}_workouts`,checked:c.value===`${A.value}_workouts`,disabled:m(u),onClick:C},null,8,Pqe),V(" "+_(b.$t("workouts.WORKOUT",2)),1)]),m(o)&&A.value==="average"?(h(),I("label",yqe,[d("input",{type:"radio",name:"value_type",value:"average_speed",checked:c.value==="average_speed",disabled:m(u),onClick:C},null,8,Lqe),V(" "+_(b.$t("workouts.SPEED")),1)])):M("",!0),m(o)?(h(),I("label",$qe,[d("input",{type:"radio",name:"value_type",value:`${A.value}_ascent`,checked:c.value===`${A.value}_ascent`,disabled:m(u),onClick:C},null,8,kqe),V(" "+_(b.$t("workouts.ASCENT")),1)])):M("",!0),m(o)?(h(),I("label",wqe,[d("input",{type:"radio",name:"value_type",value:`${A.value}_descent`,checked:c.value===`${A.value}_descent`,disabled:m(u),onClick:C},null,8,Uqe),V(" "+_(b.$t("workouts.DESCENT")),1)])):M("",!0)]),g.value.length>0||S.value.labels.length>0?(h(),Y(pqe,{key:0,datasets:c.value==="average_workouts"?S.value.datasets.workouts_average:N.value,labels:c.value==="average_workouts"?S.value.labels:g.value,displayedData:c.value,displayedSportIds:m(r),fullStats:m(o),useImperialUnits:m(a).imperial_units,label:b.$t(`statistics.STATISTICS_CHARTS.${m(s).duration}`)+` (${p.value} - ${T.value})`},null,8,["datasets","labels","displayedData","displayedSportIds","fullStats","useImperialUnits","label"])):M("",!0),d("div",Mqe,[c.value==="average_workouts"&&b.selectedTimeFrame?(h(),I("div",Fqe,[Wqe,V(" "+_(b.$t("statistics.DATES"))+": "+_(p.value)+" - "+_(T.value)+", "+_(b.$t("statistics.WORKOUTS_AVERAGE"))+": "+_(S.value.workoutsAverage)+"/"+_(b.$t(`statistics.TIME_FRAMES.${b.selectedTimeFrame}`)),1)])):M("",!0)])]))]))}}),rg=ie(zqe,[["__scopeId","data-v-56be982d"]]),xqe={class:"user-month-stats"},Bqe=ee({__name:"UserMonthStats",props:{sports:{},user:{}},setup(e){const t=e,{sports:n,user:a}=me(t),s=new Date,r={duration:"week",start:Ho(s),end:Go(s),statsType:"total"},o=n.value.map(i=>i.id);return(i,u)=>{const l=oe("Card");return h(),I("div",xqe,[F(l,null,{title:le(()=>[V(_(i.$t("dashboard.THIS_MONTH")),1)]),content:le(()=>[F(rg,{sports:m(n),user:m(a),"chart-params":r,"displayed-sport-ids":m(o),"hide-chart-if-no-data":!0},null,8,["sports","user","displayed-sport-ids"])]),_:1})])}}}),Gqe=ie(Bqe,[["__scopeId","data-v-3131940a"]]),Hqe={class:"record"},Vqe={class:"record-type"},jqe={class:"record-value"},Kqe={class:"record-date"},qqe=ee({__name:"SportRecordsTable",props:{record:{}},setup(e){const t=e,{record:n}=me(t);return(a,s)=>{const r=oe("router-link");return h(),I("div",Hqe,[d("span",Vqe,_(He(m(n).label)),1),d("span",jqe,_(m(n).value),1),d("span",Kqe,[F(r,{to:{name:"Workout",params:{workoutId:m(n).workout_id}}},{default:le(()=>[d("time",null,_(m(n).workout_date),1)]),_:1},8,["to"])])])}}}),og=ie(qqe,[["__scopeId","data-v-fce46986"]]),{locale:Yqe}=$s.global,Xqe=(e,t,n,a)=>{const s="km",r=n?mn[s].defaultTarget:s,o="m",i=n?mn[o].defaultTarget:o;let u;switch(e.record_type){case"AS":case"MS":u=`${xt(+e.value,s,r,2)} ${r}/h`;break;case"FD":u=`${xt(+e.value,s,r,3)} ${r}`;break;case"HA":u=`${xt(+e.value,o,i,2)} ${i}`;break;case"LD":u=e.value;break;default:throw new Error(`Invalid record type, expected: "AS", "FD", "HA", "LD", "MD", got: "${e.record_type}"`)}return{id:e.id,record_type:e.record_type,sport_id:e.sport_id,value:u,user:e.user,workout_date:Fn(e.workout_date,t,a,!1),workout_id:e.workout_id}},ig=(e,t)=>{const n=e.label.toLowerCase(),a=t.label.toLowerCase();return n>a?1:n(r=us(r,Yqe.value),e.filter(i=>s?!0:i.record_type!=="HA").reduce((i,u)=>{const l=t.find(c=>c.id===u.sport_id);return l&&l.label&&(o===null||l.id===o)&&(i[l.translatedLabel]===void 0&&(i[l.translatedLabel]={label:l.label,color:l.color,records:[]}),i[l.translatedLabel].records.push(Xqe(u,n,a,r))),i},{})),Qqe={class:"records-card"},Zqe=ee({__name:"RecordsCard",props:{records:{},sportTranslatedLabel:{}},setup(e){const t=e,{records:n,sportTranslatedLabel:a}=me(t),{t:s}=kt();function r(o){const i=[];return o.map(u=>{i.push({...u,label:s(`workouts.RECORD_${u.record_type}`)})}),i.sort(ig)}return(o,i)=>{const u=oe("SportImage"),l=oe("Card");return h(),I("div",Qqe,[F(l,null,{title:le(()=>[F(u,{"sport-label":m(n).label,color:m(n).color},null,8,["sport-label","color"]),V(" "+_(m(a)),1)]),content:le(()=>[(h(!0),I(pe,null,Pe(r(m(n).records),c=>(h(),Y(og,{record:c,key:c.id},null,8,["record"]))),128))]),_:1})])}}}),Jqe=ie(Zqe,[["__scopeId","data-v-7e216666"]]),eYe=e=>(rt("data-v-fff33919"),e=e(),ot(),e),tYe={class:"user-records-section"},nYe={class:"section-title"},aYe=eYe(()=>d("i",{class:"fa fa-trophy custom-fa-small","aria-hidden":"true"},null,-1)),sYe={class:"user-records"},rYe={key:0,class:"no-records"},oYe=ee({__name:"index",props:{sports:{},user:{}},setup(e){const t=e,{t:n}=kt(),a=U(()=>ug(t.user.records,Un(t.sports,n),t.user.timezone,t.user.imperial_units,t.user.display_ascent,t.user.date_format));return(s,r)=>(h(),I("div",tYe,[d("div",nYe,[aYe,V(" "+_(s.$t("workouts.RECORD",2)),1)]),d("div",sYe,[Object.keys(a.value).length===0?(h(),I("div",rYe,_(s.$t("workouts.NO_RECORDS")),1)):M("",!0),(h(!0),I(pe,null,Pe(Object.keys(a.value).sort(),o=>(h(),Y(Jqe,{sportTranslatedLabel:o,records:a.value[o],key:o,useImperialUnits:s.user.imperial_units},null,8,["sportTranslatedLabel","records","useImperialUnits"]))),128))])]))}}),iYe=ie(oYe,[["__scopeId","data-v-fff33919"]]),uYe={id:"user-stats"},Wc="km",zc="m",lYe=ee({__name:"index",props:{user:{}},setup(e){const t=e,{t:n}=kt(),{user:a}=me(t),s=U(()=>Vf(a.value.total_duration,n)),r=a.value.imperial_units?mn[Wc].defaultTarget:Wc,o=U(()=>a.value.imperial_units?xt(a.value.total_distance,Wc,r,2):parseFloat(a.value.total_distance.toFixed(2))),i=a.value.imperial_units?mn[zc].defaultTarget:zc,u=U(()=>a.value.imperial_units?xt(a.value.total_ascent,zc,i,2):parseFloat(a.value.total_ascent.toFixed(2)));return(l,c)=>(h(),I("div",uYe,[F(Ia,{icon:"calendar",value:m(a).nb_workouts,text:l.$t("workouts.WORKOUT",m(a).nb_workouts)},null,8,["value","text"]),F(Ia,{icon:"road",value:o.value,text:m(r)==="mi"?"miles":m(r)},null,8,["value","text"]),m(a).display_ascent?(h(),Y(Ia,{key:0,icon:"location-arrow",value:u.value,text:m(i)==="ft"?"feet":m(i)},null,8,["value","text"])):M("",!0),F(Ia,{icon:"clock-o",value:s.value.days,text:s.value.duration},null,8,["value","text"]),m(a).display_ascent?M("",!0):(h(),Y(Ia,{key:1,icon:"tags",value:m(a).nb_sports,text:l.$t("workouts.SPORT",m(a).nb_sports)},null,8,["value","text"]))]))}}),cYe={},dYe={class:"privacy-policy-message"};function EYe(e,t){const n=oe("router-link"),a=oe("i18n-t");return h(),I("div",dYe,[d("span",null,[F(a,{keypath:"user.LAST_PRIVACY_POLICY_TO_VALIDATE"},{default:le(()=>[F(n,{to:"/profile/edit/privacy-policy",class:"policy-link"},{default:le(()=>[V(_(e.$t("user.REVIEW")),1)]),_:1})]),_:1})])])}const fYe=ie(cYe,[["render",EYe],["__scopeId","data-v-1b250692"]]),Qo=e=>(rt("data-v-8f5da609"),e=e(),ot(),e),pYe={key:0,id:"dashboard",class:"view"},mYe={class:"container mobile-menu"},_Ye={class:"box"},TYe=Qo(()=>d("i",{class:"fa fa-calendar","aria-hidden":"true"},null,-1)),hYe=[TYe],AYe=Qo(()=>d("i",{class:"fa fa-bar-chart","aria-hidden":"true"},null,-1)),SYe=[AYe],OYe=Qo(()=>d("i",{class:"fa fa-map-o","aria-hidden":"true"},null,-1)),gYe=[OYe],IYe=Qo(()=>d("i",{class:"fa fa-trophy","aria-hidden":"true"},null,-1)),RYe=[IYe],NYe={key:0,class:"container privacy-policy-message"},vYe={class:"container"},bYe={class:"container dashboard-container"},CYe={class:"left-container dashboard-sub-container"},DYe={class:"right-container dashboard-sub-container"},PYe=Qo(()=>d("div",{id:"bottom"},null,-1)),yYe={key:1,class:"app-loading"},LYe=ee({__name:"Dashboard",setup(e){const t=ke(),n=U(()=>t.getters[Q.GETTERS.AUTH_USER_PROFILE]),a=U(()=>t.getters[Dt.GETTERS.SPORTS]),s=de("calendar");pt(()=>t.dispatch(Q.ACTIONS.GET_USER_PROFILE));function r(o){s.value=o}return(o,i)=>{const u=oe("Loader");return n.value.username&&a.value.length>0?(h(),I("div",pYe,[d("div",mYe,[d("div",_Ye,[d("div",{class:Te(["mobile-menu-item",{"is-selected":s.value==="calendar"}]),onClick:i[0]||(i[0]=l=>r("calendar"))},hYe,2),d("div",{class:Te(["mobile-menu-item",{"is-selected":s.value==="chart"}]),onClick:i[1]||(i[1]=l=>r("chart"))},SYe,2),d("div",{class:Te(["mobile-menu-item",{"is-selected":s.value==="timeline"}]),onClick:i[2]||(i[2]=l=>r("timeline"))},gYe,2),d("div",{class:Te(["mobile-menu-item",{"is-selected":s.value==="records"}]),onClick:i[3]||(i[3]=l=>r("records"))},RYe,2)])]),n.value.accepted_privacy_policy?M("",!0):(h(),I("div",NYe,[F(fYe)])),d("div",vYe,[F(lYe,{user:n.value},null,8,["user"])]),d("div",bYe,[d("div",CYe,[F(Gqe,{sports:a.value,user:n.value,class:Te({"is-hidden":s.value!=="chart"})},null,8,["sports","user","class"]),F(iYe,{sports:a.value,user:n.value,class:Te({"is-hidden":s.value!=="records"})},null,8,["sports","user","class"])]),d("div",DYe,[F(aqe,{sports:a.value,user:n.value,class:Te({"is-hidden":s.value!=="calendar"})},null,8,["sports","user","class"]),F(AKe,{sports:a.value,user:n.value,class:Te({"is-hidden":s.value!=="timeline"})},null,8,["sports","user","class"])])]),PYe])):(h(),I("div",yYe,[F(u)]))}}}),$Ye=ie(LYe,[["__scopeId","data-v-8f5da609"]]),kYe={class:"not-found view"},wYe=ee({__name:"NotFoundView",setup(e){return(t,n)=>(h(),I("div",kYe,[F(Kf)]))}}),UYe={id:"privacy-policy",class:"view"},MYe={class:"container"},FYe=d("div",{id:"bottom"},null,-1),WYe=ee({__name:"PrivacyPolicyView",setup(e){const t=ke();return pt(()=>{t.dispatch(K.ACTIONS.GET_APPLICATION_PRIVACY_POLICY)}),(n,a)=>(h(),I("div",UYe,[d("div",MYe,[F(VO)]),FYe]))}}),lg=e=>(rt("data-v-8aaacf94"),e=e(),ot(),e),zYe={class:"chart-menu"},xYe=["disabled","aria-label"],BYe=lg(()=>d("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1)),GYe=[BYe],HYe={class:"time-frames custom-checkboxes-group"},VYe={class:"time-frames-checkboxes custom-checkboxes"},jYe=["id","name","checked","onInput","disabled"],KYe=["id","tabindex","onKeydown"],qYe=["disabled","aria-label"],YYe=lg(()=>d("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)),XYe=[YYe],QYe={class:"stats-type"},ZYe={class:"stats-type-radio"},JYe=["checked","disabled"],eXe=["checked","disabled"],tXe=ee({__name:"StatsMenu",props:{isDisabled:{type:Boolean}},emits:["arrowClick","statsTypeUpdate","timeFrameUpdate"],setup(e,{emit:t}){const n=e,{isDisabled:a}=me(n),s=t,r=de("month"),o=["week","month","year"],i=de("total");function u(c){r.value=c,s("timeFrameUpdate",c)}function l(c){i.value=c.target.value,s("statsTypeUpdate",i.value)}return(c,f)=>(h(),I(pe,null,[d("div",zYe,[d("button",{class:"chart-arrow transparent",onClick:f[0]||(f[0]=E=>s("arrowClick",!0)),onKeydown:f[1]||(f[1]=Je(E=>s("arrowClick",!0),["enter"])),disabled:m(a),"aria-label":c.$t("common.PREVIOUS")},GYe,40,xYe),d("div",HYe,[d("div",VYe,[(h(),I(pe,null,Pe(o,E=>d("div",{class:"time-frame custom-checkbox",key:E},[d("label",null,[d("input",{type:"radio",id:E,name:E,checked:r.value===E,onInput:p=>u(E),disabled:m(a)},null,40,jYe),d("span",{id:`frame-${E}`,tabindex:m(a)?-1:0,role:"button",onKeydown:Je(p=>u(E),["enter"])},_(c.$t(`statistics.TIME_FRAMES.${E}`)),41,KYe)])])),64))])]),d("button",{class:"chart-arrow transparent",onClick:f[2]||(f[2]=E=>s("arrowClick",!1)),onKeydown:f[3]||(f[3]=Je(E=>s("arrowClick",!1),["enter"])),disabled:m(a),"aria-label":c.$t("common.NEXT")},XYe,40,qYe)]),d("div",QYe,[d("div",ZYe,[d("label",null,[d("input",{type:"radio",name:"stats_type",value:"total",checked:i.value==="total",disabled:m(a),onClick:l},null,8,JYe),V(" "+_(c.$t("common.TOTAL")),1)]),d("label",null,[d("input",{type:"radio",name:"stats_type",value:"average",checked:i.value==="average",disabled:m(a),onClick:l},null,8,eXe),V(" "+_(c.$t("statistics.AVERAGE")),1)])])])],64))}}),nXe=ie(tXe,[["__scopeId","data-v-8aaacf94"]]),aXe={class:"sports-menu"},sXe=["id","name","checked","onInput","onKeyup"],rXe={class:"sport-label"},oXe=ee({__name:"StatsSportsMenu",props:{userSports:{},selectedSportIds:{default:()=>[]}},emits:["selectedSportIdsUpdate"],setup(e,{emit:t}){const n=e,a=t,{t:s}=kt(),r=Rt("sportColors"),{selectedSportIds:o}=me(n),i=U(()=>Un(n.userSports,s));function u(l){a("selectedSportIdsUpdate",l)}return(l,c)=>{const f=oe("SportImage");return h(),I("div",aXe,[(h(!0),I(pe,null,Pe(i.value,E=>(h(),I("label",{type:"checkbox",key:E.id,style:ba({color:E.color?E.color:m(r)[E.label]})},[d("input",{type:"checkbox",id:`${E.id}`,name:E.label,checked:m(o).includes(E.id),onInput:p=>u(E.id),onKeyup:Je(be(p=>u(E.id),["prevent"]),["space"])},null,40,sXe),F(f,{"sport-label":E.label,color:E.color},null,8,["sport-label","color"]),d("span",rXe,_(E.translatedLabel),1)],4))),128))])}}}),iXe={key:0,id:"user-statistics"},uXe=ee({__name:"index",props:{sports:{},user:{},isDisabled:{type:Boolean}},setup(e){const t=e,{t:n}=kt(),{sports:a,user:s}=me(t),r=de("month"),o=de("total"),i=de(E(r.value,o.value)),u=U(()=>Un(t.sports,n)),l=de(T(a.value));function c(N){r.value=N,i.value=E(N,o.value)}function f(N){o.value=N,i.value=E(r.value,N)}function E(N,g){return Sqe(new Date,N,t.user.weekm,g)}function p(N){i.value=Oqe(i.value,N,t.user.weekm)}function T(N){return N.map(g=>g.id)}function O(N){l.value.includes(N)?l.value=l.value.filter(g=>g!==N):l.value.push(N)}return Me(()=>t.sports,N=>{l.value=T(N)}),(N,g)=>u.value?(h(),I("div",iXe,[F(nXe,{onStatsTypeUpdate:f,onTimeFrameUpdate:c,onArrowClick:p,isDisabled:N.isDisabled},null,8,["isDisabled"]),F(rg,{sports:m(a),user:m(s),chartParams:i.value,"displayed-sport-ids":l.value,fullStats:!0,isDisabled:N.isDisabled,selectedTimeFrame:r.value},null,8,["sports","user","chartParams","displayed-sport-ids","isDisabled","selectedTimeFrame"]),F(oXe,{"selected-sport-ids":l.value,"user-sports":m(a),onSelectedSportIdsUpdate:O},null,8,["selected-sport-ids","user-sports"])])):M("",!0)}}),lXe=ie(uXe,[["__scopeId","data-v-ff5da6bd"]]),cXe={class:"sport-stat-card"},dXe={class:"stat-content"},EXe={class:"stat-icon"},fXe={class:"stat-details"},pXe={class:"stat-label"},mXe={class:"stat-values"},_Xe={key:0,class:"fa fa-refresh fa-spin fa-fw"},TXe={key:1,class:"stat-huge"},hXe={key:2,class:"stat"},AXe={key:0,class:"stat-average"},SXe={key:0},OXe=d("i",{class:"fa fa-refresh fa-spin fa-fw"},null,-1),gXe=[OXe],js=ee({__name:"SportStatCard",props:{icon:{},text:{default:""},totalValue:{},label:{},loading:{type:Boolean}},setup(e){const t=e,{icon:n,loading:a,text:s,totalValue:r}=me(t);return(o,i)=>(h(),I("div",cXe,[d("div",dXe,[d("div",EXe,[d("i",{class:Te(["fa",`fa-${m(n)}`])},null,2)]),d("div",fXe,[d("div",pXe,_(o.label),1),d("div",mXe,[m(a)?(h(),I("i",_Xe)):(h(),I("span",TXe,_(m(r)?m(r):""),1)),m(s)?(h(),I("span",hXe,_(m(s)),1)):M("",!0)]),["calendar","tachometer"].includes(m(n))?M("",!0):(h(),I("div",AXe,[m(a)?(h(),I("div",SXe,gXe)):Lt(o.$slots,"average",{key:1})]))])])]))}}),cg=e=>(rt("data-v-2e2b2caa"),e=e(),ot(),e),IXe={id:"sport-statistics"},RXe={for:"sport"},NXe=["value"],vXe={key:0,class:"sport-statistics"},bXe={class:"sport-img-label"},CXe={class:"sport-label"},DXe={class:"label"},PXe=cg(()=>d("i",{class:"fa fa-line-chart custom-fa-small","aria-hidden":"true"},null,-1)),yXe={class:"statistics"},LXe={key:0,class:"statistics-workouts-count"},$Xe={key:1,class:"statistics-workouts-count"},kXe={class:"statistics"},wXe={class:"records"},UXe={class:"label"},MXe=cg(()=>d("i",{class:"fa fa-trophy custom-fa-small","aria-hidden":"true"},null,-1)),FXe=ee({__name:"SportStatistics",props:{sports:{},authUser:{}},setup(e){const t=e,n=yt(),a=ca(),s=ke(),{t:r}=kt(),{authUser:o,sports:i}=me(t),u=U(()=>Un(i.value,r,"all")),l=u.value.map(y=>y.id),c=de(l[0]),f=U(()=>ug(o.value.records,u.value,o.value.timezone,o.value.imperial_units,o.value.display_ascent,o.value.date_format,c.value)),E=U(()=>u.value.find(y=>y.id===c.value)),p=U(()=>s.getters.USER_SPORT_STATS[c.value]),T=U(()=>s.getters.TOTAL_WORKOUTS),O=o.value.imperial_units?mn.km.defaultTarget:"km",N=o.value.imperial_units?mn.m.defaultTarget:"m",g=U(()=>s.getters.STATS_LOADING),R=U(()=>p.value?Vf(p.value.total_duration,r):{days:"",duration:""});pt(()=>S());function A(y,b){if(y===void 0)return"";const k=o.value.imperial_units?mn[b].defaultTarget:b;return o.value.imperial_units?xt(y,b,k,2):y}function S(){c.value=n.query.sport_id&&l.includes(+n.query.sport_id)?+n.query.sport_id:l[0],s.dispatch($t.ACTIONS.GET_USER_SPORT_STATS,{username:o.value.username,sportId:c.value})}function v(y){var k,z;const b=[];return(k=E.value)!=null&&k.translatedLabel&&y[(z=E.value)==null?void 0:z.translatedLabel].records.map($=>{b.push({...$,label:r(`workouts.RECORD_${$.record_type}`)})}),b.sort(ig)}function C(y){a.push({path:"/statistics",query:{chart:"by_sport",sport_id:y.target.value}})}return Me(()=>n.query,()=>{S()}),(y,b)=>{var $,W,X,re,G,Z;const k=oe("SportImage"),z=oe("Distance");return h(),I("div",IXe,[d("label",RXe,_(y.$t("workouts.SPORT",1))+": ",1),ye(d("select",{id:"sport","onUpdate:modelValue":b[0]||(b[0]=q=>c.value=q),onChange:C},[(h(!0),I(pe,null,Pe(u.value,q=>(h(),I("option",{value:q.id,key:q.id},_(q.translatedLabel),9,NXe))),128))],544),[[oa,c.value]]),E.value?(h(),I("div",vXe,[d("div",bXe,[F(k,{"sport-label":E.value.label,color:E.value.color},null,8,["sport-label","color"]),d("div",CXe,_(E.value.translatedLabel),1)]),d("div",null,[d("div",DXe,[PXe,V(" "+_(y.$t("statistics.STATISTICS",0)),1)]),d("div",yXe,[F(js,{icon:"calendar",loading:g.value,"total-value":T.value,label:y.$t("workouts.WORKOUT",0)},null,8,["loading","total-value","label"])]),p.value&&p.value.total_workouts[d("div",null,_(y.$t("statistics.AVERAGE"))+":",1),p.value?(h(),Y(z,{key:0,distance:p.value.average_distance,unitFrom:"km",useImperialUnits:m(o).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),_:1},8,["loading","total-value","text","label"]),F(js,{icon:"clock-o",loading:g.value,"total-value":R.value.days,text:R.value.duration,label:y.$t("workouts.DURATION")},{average:le(()=>[d("div",null,_(y.$t("statistics.AVERAGE"))+":",1),d("span",null,_(p.value?m(pE)(p.value.average_duration,y.$t):""),1)]),_:1},8,["loading","total-value","text","label"]),F(js,{icon:"tachometer",loading:g.value,"total-value":A((W=p.value)==null?void 0:W.average_speed,"km"),text:`${m(O)}/h`,label:y.$t("workouts.AVE_SPEED")},null,8,["loading","total-value","text","label"]),((X=p.value)==null?void 0:X.total_ascent)!==null?(h(),Y(js,{key:0,icon:"location-arrow",loading:g.value,"total-value":A((re=p.value)==null?void 0:re.total_ascent,"m"),text:m(N),label:y.$t("workouts.ASCENT")},{average:le(()=>[d("div",null,_(y.$t("statistics.AVERAGE"))+":",1),p.value?(h(),Y(z,{key:0,distance:p.value.average_ascent,unitFrom:"m",useImperialUnits:m(o).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),_:1},8,["loading","total-value","text","label"])):M("",!0),((G=p.value)==null?void 0:G.total_descent)!==null?(h(),Y(js,{key:1,icon:"location-arrow fa-rotate-90",loading:g.value,"total-value":A((Z=p.value)==null?void 0:Z.total_descent,"m"),text:m(N),label:y.$t("workouts.DESCENT")},{average:le(()=>[d("div",null,_(y.$t("statistics.AVERAGE"))+":",1),p.value?(h(),Y(z,{key:0,distance:p.value.average_descent,unitFrom:"m",useImperialUnits:m(o).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),_:1},8,["loading","total-value","text","label"])):M("",!0)])]),d("div",wXe,[d("div",UXe,[MXe,V(" "+_(y.$t("workouts.RECORD",0)),1)]),d("div",null,[(h(!0),I(pe,null,Pe(v(f.value),q=>(h(),Y(og,{record:q,key:q.id},null,8,["record"]))),128))])])])):M("",!0)])}}}),WXe=ie(FXe,[["__scopeId","data-v-2e2b2caa"]]),zXe={id:"statistics",class:"view"},xXe={key:0,class:"container"},BXe=["value"],GXe=ee({__name:"StatisticsView",setup(e){const t=yt(),n=ca(),a=ke(),s=U(()=>a.getters[Q.GETTERS.AUTH_USER_PROFILE]),r=U(()=>a.getters[Dt.GETTERS.SPORTS].filter(c=>s.value.sports_list.includes(c.id))),o=U(()=>s.value.nb_workouts===0),i=["by_time","by_sport"],u=de("by_time");pt(()=>{u.value=t.query.chart&&i.includes(t.query.chart)?t.query.chart:"by_time"}),St(()=>{if(!o.value){const c=document.getElementById("stats-type");c==null||c.focus()}});function l(c){n.push({path:"/statistics",query:{chart:c.target.value}})}return(c,f)=>{const E=oe("Card");return h(),I("div",zXe,[s.value.username?(h(),I("div",xXe,[F(E,null,{title:le(()=>[V(_(c.$t("statistics.STATISTICS"))+" ",1),r.value.length>0?ye((h(),I("select",{key:0,class:"stats-types",name:"stats-type",id:"stats-type","onUpdate:modelValue":f[0]||(f[0]=p=>u.value=p),onChange:l},[(h(),I(pe,null,Pe(i,p=>d("option",{value:p,key:p},_(c.$t(`statistics.STATISTICS_TYPES.${p}`)),9,BXe)),64))],544)),[[oa,u.value]]):M("",!0)]),content:le(()=>[c.$route.query.chart!=="by_sport"?(h(),Y(lXe,{key:0,class:Te({"stats-disabled":o.value}),user:s.value,sports:r.value,isDisabled:o.value},null,8,["class","user","sports","isDisabled"])):r.value.length>0?(h(),Y(WXe,{key:1,sports:r.value,authUser:s.value},null,8,["sports","authUser"])):M("",!0)]),_:1}),s.value.nb_workouts===0?(h(),Y(Yf,{key:0})):M("",!0)])):M("",!0)])}}}),HXe=ie(GXe,[["__scopeId","data-v-b57d20e5"]]),VXe={name:"EmailSent"},jXe={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 345.834 345.834",style:{"enable-background":"new 0 0 345.834 345.834"},"xml:space":"preserve"},KXe=d("g",null,[d("path",{d:`M339.798,260.429c0.13-0.026,0.257-0.061,0.385-0.094c0.109-0.028,0.219-0.051,0.326-0.084 +`)});const i=t.nonTextTags||["script","style","textarea","option"];let u,l;t.allowedAttributes&&(u={},l={},Kr(t.allowedAttributes,function(G,Z){u[Z]=[];const q=[];G.forEach(function(B){typeof B=="string"&&B.indexOf("*")>=0?q.push(TT(B).replace(/\\\*/g,".*")):u[Z].push(B)}),q.length&&(l[Z]=new RegExp("^("+q.join("|")+")$"))}));const c={},f={},E={};Kr(t.allowedClasses,function(G,Z){if(u&&(ha(u,Z)||(u[Z]=[]),u[Z].push("class")),c[Z]=G,Array.isArray(G)){const q=[];c[Z]=[],E[Z]=[],G.forEach(function(B){typeof B=="string"&&B.indexOf("*")>=0?q.push(TT(B).replace(/\\\*/g,".*")):B instanceof RegExp?E[Z].push(B):c[Z].push(B)}),q.length&&(f[Z]=new RegExp("^("+q.join("|")+")$"))}});const p={};let T;Kr(t.transformTags,function(G,Z){let q;typeof G=="function"?q=G:typeof G=="string"&&(q=yo.simpleTransform(G)),Z==="*"?T=q:p[Z]=q});let O,R,g,N,S,A,v=!1;y();const D=new U8e.Parser({onopentag:function(G,Z){if(t.enforceHtmlBoundary&&G==="html"&&y(),S){A++;return}const q=new r(G,Z);R.push(q);let B=!1;const Ne=!!q.text;let Ke;if(ha(p,G)&&(Ke=p[G](G,Z),q.attribs=Z=Ke.attribs,Ke.text!==void 0&&(q.innerText=Ke.text),G!==Ke.tagName&&(q.name=G=Ke.tagName,N[O]=Ke.tagName)),T&&(Ke=T(G,Z),q.attribs=Z=Ke.attribs,G!==Ke.tagName&&(q.name=G=Ke.tagName,N[O]=Ke.tagName)),(!o(G)||t.disallowedTagsMode==="recursiveEscape"&&!x8e(g)||t.nestingLimit!=null&&O>=t.nestingLimit)&&(B=!0,g[O]=!0,(t.disallowedTagsMode==="discard"||t.disallowedTagsMode==="completelyDiscard")&&i.indexOf(G)!==-1&&(S=!0,A=1),g[O]=!0),O++,B){if(t.disallowedTagsMode==="discard"||t.disallowedTagsMode==="completelyDiscard")return;s=a,a=""}a+="<"+G,G==="script"&&(t.allowedScriptHostnames||t.allowedScriptDomains)&&(q.innerText=""),(!u||ha(u,G)||u["*"])&&Kr(Z,function(Fe,Le){if(!H8e.test(Le)){delete q.attribs[Le];return}if(Fe===""&&!t.allowedEmptyAttributes.includes(Le)&&(t.nonBooleanAttributes.includes(Le)||t.nonBooleanAttributes.includes("*"))){delete q.attribs[Le];return}let Wt=!1;if(!u||ha(u,G)&&u[G].indexOf(Le)!==-1||u["*"]&&u["*"].indexOf(Le)!==-1||ha(l,G)&&l[G].test(Le)||l["*"]&&l["*"].test(Le))Wt=!0;else if(u&&u[G]){for(const ge of u[G])if(w8e(ge)&&ge.name&&ge.name===Le){Wt=!0;let Qe="";if(ge.multiple===!0){const gt=Fe.split(" ");for(const ne of gt)ge.values.indexOf(ne)!==-1&&(Qe===""?Qe=ne:Qe+=" "+ne)}else ge.values.indexOf(Fe)>=0&&(Qe=Fe);Fe=Qe}}if(Wt){if(t.allowedSchemesAppliedToAttributes.indexOf(Le)!==-1&&k(G,Fe)){delete q.attribs[Le];return}if(G==="script"&&Le==="src"){let ge=!0;try{const Qe=z(Fe);if(t.allowedScriptHostnames||t.allowedScriptDomains){const gt=(t.allowedScriptHostnames||[]).find(function(_e){return _e===Qe.url.hostname}),ne=(t.allowedScriptDomains||[]).find(function(_e){return Qe.url.hostname===_e||Qe.url.hostname.endsWith(`.${_e}`)});ge=gt||ne}}catch{ge=!1}if(!ge){delete q.attribs[Le];return}}if(G==="iframe"&&Le==="src"){let ge=!0;try{const Qe=z(Fe);if(Qe.isRelativeUrl)ge=ha(t,"allowIframeRelativeUrls")?t.allowIframeRelativeUrls:!t.allowedIframeHostnames&&!t.allowedIframeDomains;else if(t.allowedIframeHostnames||t.allowedIframeDomains){const gt=(t.allowedIframeHostnames||[]).find(function(_e){return _e===Qe.url.hostname}),ne=(t.allowedIframeDomains||[]).find(function(_e){return Qe.url.hostname===_e||Qe.url.hostname.endsWith(`.${_e}`)});ge=gt||ne}}catch{ge=!1}if(!ge){delete q.attribs[Le];return}}if(Le==="srcset")try{let ge=M8e(Fe);if(ge.forEach(function(Qe){k("srcset",Qe.url)&&(Qe.evil=!0)}),ge=ST(ge,function(Qe){return!Qe.evil}),ge.length)Fe=B8e(ST(ge,function(Qe){return!Qe.evil})),q.attribs[Le]=Fe;else{delete q.attribs[Le];return}}catch{delete q.attribs[Le];return}if(Le==="class"){const ge=c[G],Qe=c["*"],gt=f[G],ne=E[G],_e=f["*"],he=[gt,_e].concat(ne).filter(function(ve){return ve});if(ge&&Qe?Fe=re(Fe,hT(ge,Qe),he):Fe=re(Fe,ge||Qe,he),!Fe.length){delete q.attribs[Le];return}}if(Le==="style"){if(t.parseStyleAttributes)try{const ge=F8e(G+" {"+Fe+"}",{map:!1}),Qe=L(ge,t.allowedStyles);if(Fe=W(Qe),Fe.length===0){delete q.attribs[Le];return}}catch{typeof window<"u"&&console.warn('Failed to parse "'+G+" {"+Fe+`}", If you're running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547`),delete q.attribs[Le];return}else if(t.allowedStyles)throw new Error("allowedStyles option cannot be used together with parseStyleAttributes: false.")}a+=" "+Le,Fe&&Fe.length?a+='="'+b(Fe,!0)+'"':t.allowedEmptyAttributes.includes(Le)&&(a+='=""')}else delete q.attribs[Le]}),t.selfClosing.indexOf(G)!==-1?a+=" />":(a+=">",q.innerText&&!Ne&&!t.textFilter&&(a+=b(q.innerText),v=!0)),B&&(a=s+b(a),s="")},ontext:function(G){if(S)return;const Z=R[R.length-1];let q;if(Z&&(q=Z.tag,G=Z.innerText!==void 0?Z.innerText:G),t.disallowedTagsMode==="completelyDiscard"&&!o(q))G="";else if((t.disallowedTagsMode==="discard"||t.disallowedTagsMode==="completelyDiscard")&&(q==="script"||q==="style"))a+=G;else{const B=b(G,!1);t.textFilter&&!v?a+=t.textFilter(B,q):v||(a+=B)}if(R.length){const B=R[R.length-1];B.text+=G}},onclosetag:function(G,Z){if(S)if(A--,!A)S=!1;else return;const q=R.pop();if(!q)return;if(q.tag!==G){R.push(q);return}S=t.enforceHtmlBoundary?G==="html":!1,O--;const B=g[O];if(B){if(delete g[O],t.disallowedTagsMode==="discard"||t.disallowedTagsMode==="completelyDiscard"){q.updateParentNodeText();return}s=a,a=""}if(N[O]&&(G=N[O],delete N[O]),t.exclusiveFilter&&t.exclusiveFilter(q)){a=a.substr(0,q.tagPosition);return}if(q.updateParentNodeMediaChildren(),q.updateParentNodeText(),t.selfClosing.indexOf(G)!==-1||Z&&!o(G)&&["escape","recursiveEscape"].indexOf(t.disallowedTagsMode)>=0){B&&(a=s,s="");return}a+="",B&&(a=s+b(a),s=""),v=!1}},t.parser);return D.write(e),D.end(),a;function y(){a="",O=0,R=[],g={},N={},S=!1,A=0}function b(G,Z){return typeof G!="string"&&(G=G+""),t.parser.decodeEntities&&(G=G.replace(/&/g,"&").replace(//g,">"),Z&&(G=G.replace(/"/g,"""))),G=G.replace(/&(?![a-zA-Z0-9#]{1,20};)/g,"&").replace(//g,">"),Z&&(G=G.replace(/"/g,""")),G}function k(G,Z){for(Z=Z.replace(/[\x00-\x20]+/g,"");;){const Ne=Z.indexOf("",Ne+4);if(Ke===-1)break;Z=Z.substring(0,Ne)+Z.substring(Ke+3)}const q=Z.match(/^([a-zA-Z][a-zA-Z0-9.\-+]*):/);if(!q)return Z.match(/^[/\\]{2}/)?!t.allowProtocolRelative:!1;const B=q[1].toLowerCase();return ha(t.allowedSchemesByTag,G)?t.allowedSchemesByTag[G].indexOf(B)===-1:!t.allowedSchemes||t.allowedSchemes.indexOf(B)===-1}function z(G){if(G=G.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/,"$1//"),G.startsWith("relative:"))throw new Error("relative: exploit attempt");let Z="relative://relative-site";for(let Ne=0;Ne<100;Ne++)Z+=`/${Ne}`;const q=new URL(G,Z);return{isRelativeUrl:q&&q.hostname==="relative-site"&&q.protocol==="relative:",url:q}}function L(G,Z){if(!Z)return G;const q=G.nodes[0];let B;return Z[q.selector]&&Z["*"]?B=hT(Z[q.selector],Z["*"]):B=Z[q.selector]||Z["*"],B&&(G.nodes[0].nodes=q.nodes.reduce(X(B),[])),G}function W(G){return G.nodes[0].nodes.reduce(function(Z,q){return Z.push(`${q.prop}:${q.value}${q.important?" !important":""}`),Z},[]).join(";")}function X(G){return function(Z,q){return ha(G,q.prop)&&G[q.prop].some(function(Ne){return Ne.test(q.value)})&&Z.push(q),Z}}function re(G,Z,q){return Z?(G=G.split(/\s+/),G.filter(function(B){return Z.indexOf(B)!==-1||q.some(function(Ne){return Ne.test(B)})}).join(" ")):G}}const V8e={decodeEntities:!0};yo.defaults={allowedTags:["address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","hgroup","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","main","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rb","rp","rt","rtc","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr"],nonBooleanAttributes:["abbr","accept","accept-charset","accesskey","action","allow","alt","as","autocapitalize","autocomplete","blocking","charset","cite","class","color","cols","colspan","content","contenteditable","coords","crossorigin","data","datetime","decoding","dir","dirname","download","draggable","enctype","enterkeyhint","fetchpriority","for","form","formaction","formenctype","formmethod","formtarget","headers","height","hidden","high","href","hreflang","http-equiv","id","imagesizes","imagesrcset","inputmode","integrity","is","itemid","itemprop","itemref","itemtype","kind","label","lang","list","loading","low","max","maxlength","media","method","min","minlength","name","nonce","optimum","pattern","ping","placeholder","popover","popovertarget","popovertargetaction","poster","preload","referrerpolicy","rel","rows","rowspan","sandbox","scope","shape","size","sizes","slot","span","spellcheck","src","srcdoc","srclang","srcset","start","step","style","tabindex","target","title","translate","type","usemap","value","width","wrap","onauxclick","onafterprint","onbeforematch","onbeforeprint","onbeforeunload","onbeforetoggle","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextlost","oncontextmenu","oncontextrestored","oncopy","oncuechange","oncut","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","onformdata","onhashchange","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onlanguagechange","onload","onloadeddata","onloadedmetadata","onloadstart","onmessage","onmessageerror","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onoffline","ononline","onpagehide","onpageshow","onpaste","onpause","onplay","onplaying","onpopstate","onprogress","onratechange","onreset","onresize","onrejectionhandled","onscroll","onscrollend","onsecuritypolicyviolation","onseeked","onseeking","onselect","onslotchange","onstalled","onstorage","onsubmit","onsuspend","ontimeupdate","ontoggle","onunhandledrejection","onunload","onvolumechange","onwaiting","onwheel"],disallowedTagsMode:"discard",allowedAttributes:{a:["href","name","target"],img:["src","srcset","alt","title","width","height","loading"]},allowedEmptyAttributes:["alt"],selfClosing:["img","br","hr","area","base","basefont","input","link","meta"],allowedSchemes:["http","https","ftp","mailto","tel"],allowedSchemesByTag:{},allowedSchemesAppliedToAttributes:["href","src","cite"],allowProtocolRelative:!0,enforceHtmlBoundary:!1,parseStyleAttributes:!0};yo.simpleTransform=function(e,t,n){return n=n===void 0?!0:n,t=t||{},function(a,s){let r;if(n)for(r in t)s[r]=t[r];else s=t;return{tagName:e,attribs:s}}};const j8e=SE(G8e),Lo=e=>j8e(OUe(e,{target:"_blank"}),{allowedTags:["a"],disallowedTagsMode:"escape"}),hO=e=>(rt("data-v-2d66f184"),e=e(),ot(),e),K8e={id:"admin-app",class:"admin-card"},q8e={for:"admin_contact"},Y8e=["value"],X8e=["disabled"],Q8e={for:"max_users"},Z8e=["disabled"],J8e={class:"admin-help"},eMe={class:"info-box"},tMe=hO(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),nMe={for:"max_single_file_size"},aMe=["disabled"],sMe={for:"max_zip_file_size"},rMe=["disabled"],oMe={for:"gpx_limit_import"},iMe=["disabled"],uMe={for:"stats_workouts_limit"},lMe=["disabled"],cMe={class:"admin-help"},dMe={class:"info-box"},EMe=hO(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),fMe={class:"about-label",for:"about"},pMe={class:"textarea-description"},mMe=["innerHTML"],_Me={class:"privacy-policy-label",for:"privacy_policy"},TMe={class:"textarea-description"},hMe=["innerHTML"],SMe={key:5,class:"form-buttons"},AMe={class:"confirm",type:"submit"},OMe={key:6,class:"form-buttons"},gMe=te({__name:"AdminApplication",props:{appConfig:{},edition:{type:Boolean,default:!1}},setup(e){const t=e,{edition:n}=me(t),a=ke(),s=ca(),r=Ht({admin_contact:"",max_users:0,max_single_file_size:0,max_zip_file_size:0,gpx_limit_import:0,about:"",privacy_policy:"",stats_workouts_limit:0}),o=w(()=>a.getters[K.GETTERS.ERROR_MESSAGES]);ft(()=>{t.appConfig&&i(t.appConfig)});function i(c){Object.keys(r).map(f=>{["max_single_file_size","max_zip_file_size"].includes(f)?r[f]=Hke(c[f]):["about","privacy_policy"].includes(f)?r[f]=c[f]!==null?c[f]:"":r[f]=c[f]})}function u(){i(t.appConfig),a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),s.push("/admin/application")}function l(){const c=Object.assign({},r);c.max_single_file_size*=1048576,c.max_zip_file_size*=1048576,a.dispatch(K.ACTIONS.UPDATE_APPLICATION_CONFIG,c)}return(c,f)=>{const E=oe("ErrorMessage"),p=oe("Card");return h(),I("div",K8e,[F(p,null,{title:le(()=>[V(_(c.$t("admin.APP_CONFIG.TITLE")),1)]),content:le(()=>[d("form",{class:"admin-form",onSubmit:be(l,["prevent"])},[d("label",q8e,[V(_(c.$t("admin.APP_CONFIG.ADMIN_CONTACT"))+": ",1),!m(n)&&!r.admin_contact?(h(),I("input",{key:0,class:"no-contact",value:c.$t("admin.APP_CONFIG.NO_CONTACT_EMAIL"),disabled:""},null,8,Y8e)):ye((h(),I("input",{key:1,id:"admin_contact",name:"admin_contact",type:"email","onUpdate:modelValue":f[0]||(f[0]=T=>r.admin_contact=T),disabled:!m(n)},null,8,X8e)),[[tt,r.admin_contact]])]),d("label",Q8e,[V(_(c.$t("admin.APP_CONFIG.MAX_USERS_LABEL"))+": ",1),ye(d("input",{id:"max_users",name:"max_users",type:"number",min:"0","onUpdate:modelValue":f[1]||(f[1]=T=>r.max_users=T),disabled:!m(n)},null,8,Z8e),[[tt,r.max_users]])]),d("div",J8e,[d("span",eMe,[tMe,V(" "+_(c.$t("admin.APP_CONFIG.MAX_USERS_HELP")),1)])]),d("label",nMe,[V(_(c.$t("admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL"))+": ",1),ye(d("input",{id:"max_single_file_size",name:"max_single_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":f[2]||(f[2]=T=>r.max_single_file_size=T),disabled:!m(n)},null,8,aMe),[[tt,r.max_single_file_size]])]),d("label",sMe,[V(_(c.$t("admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL"))+": ",1),ye(d("input",{id:"max_zip_file_size",name:"max_zip_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":f[3]||(f[3]=T=>r.max_zip_file_size=T),disabled:!m(n)},null,8,rMe),[[tt,r.max_zip_file_size]])]),d("label",oMe,[V(_(c.$t("admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL"))+": ",1),ye(d("input",{id:"gpx_limit_import",name:"gpx_limit_import",type:"number",min:"0","onUpdate:modelValue":f[4]||(f[4]=T=>r.gpx_limit_import=T),disabled:!m(n)},null,8,iMe),[[tt,r.gpx_limit_import]])]),d("label",uMe,[V(_(c.$t("admin.APP_CONFIG.STATS_WORKOUTS_LIMIT_LABEL"))+": ",1),ye(d("input",{id:"stats_workouts_limit",name:"stats_workouts_limit",type:"number",min:"0","onUpdate:modelValue":f[5]||(f[5]=T=>r.stats_workouts_limit=T),disabled:!m(n)},null,8,lMe),[[tt,r.stats_workouts_limit]])]),d("div",cMe,[d("span",dMe,[EMe,V(" "+_(c.$t("admin.APP_CONFIG.STATS_WORKOUTS_LIMIT_HELP")),1)])]),d("label",fMe,_(c.$t("admin.ABOUT.TEXT"))+": ",1),d("span",pMe,_(c.$t("admin.ABOUT.DESCRIPTION")),1),m(n)?ye((h(),I("textarea",{key:0,id:"about",name:"about",rows:"10","onUpdate:modelValue":f[6]||(f[6]=T=>r.about=T)},null,512)),[[tt,r.about]]):(h(),I("div",{key:1,innerHTML:m(Ds)(m(Lo)(r.about?r.about:c.$t("admin.NO_TEXT_ENTERED"))),class:"textarea-content"},null,8,mMe)),d("label",_Me,_(He(c.$t("privacy_policy.TITLE")))+": ",1),d("span",TMe,_(c.$t("admin.PRIVACY_POLICY_DESCRIPTION")),1),m(n)?ye((h(),I("textarea",{key:2,id:"privacy_policy",name:"privacy_policy",rows:"20","onUpdate:modelValue":f[7]||(f[7]=T=>r.privacy_policy=T)},null,512)),[[tt,r.privacy_policy]]):(h(),I("div",{key:3,innerHTML:m(Ds)(m(Lo)(r.privacy_policy?r.privacy_policy:c.$t("admin.NO_TEXT_ENTERED"))),class:"textarea-content"},null,8,hMe)),o.value?(h(),Y(E,{key:4,message:o.value},null,8,["message"])):M("",!0),m(n)?(h(),I("div",SMe,[d("button",AMe,_(c.$t("buttons.SUBMIT")),1),d("button",{class:"cancel",onClick:be(u,["prevent"])},_(c.$t("buttons.CANCEL")),1)])):(h(),I("div",OMe,[d("button",{class:"confirm",onClick:f[8]||(f[8]=be(T=>c.$router.push("/admin/application/edit"),["prevent"]))},_(c.$t("buttons.EDIT")),1),d("button",{class:"cancel",onClick:f[9]||(f[9]=be(T=>c.$router.push("/admin"),["prevent"]))},_(c.$t("admin.BACK_TO_ADMIN")),1)]))],32)]),_:1})])}}}),AT=ie(gMe,[["__scopeId","data-v-2d66f184"]]),IMe=(e,t)=>{const n=e.translatedLabel.toLowerCase(),a=t.translatedLabel.toLowerCase();return n>a?1:ne.map(n=>({...n,translatedLabel:t(`equipment_types.${n.label}.LABEL`)})).sort(IMe),wf=(e,t)=>{const n=e.label.toLowerCase(),a=t.label.toLowerCase();return n>a?1:na?e.filter(r=>AO[r.equipment_type.label].includes(a.label)).filter(r=>n=="all"?!0:n=="withIncludedIds"&&s.includes(r.id)||r.is_active).map(r=>({...r,label:r.is_active?r.label:`${r.label} (${t("common.INACTIVE")})`})).sort(wf):[],Mf=e=>(rt("data-v-d329b43d"),e=e(),ot(),e),RMe={id:"admin-equipment-types",class:"admin-card"},NMe={class:"responsive-table"},vMe=Mf(()=>d("th",null,"#",-1)),bMe={class:"text-left"},CMe={class:"text-left equipment-type-action"},DMe={class:"text-center"},PMe=Mf(()=>d("span",{class:"cell-heading"},"id",-1)),yMe={class:"cell-heading"},LMe={class:"equipment-type-label"},$Me={class:"cell-heading"},kMe={class:"text-center"},UMe={class:"cell-heading"},wMe={class:"equipment-type-action"},MMe={class:"cell-heading"},FMe={class:"action-button"},WMe=["onClick"],zMe={key:0,class:"has-equipments"},xMe=Mf(()=>d("i",{class:"fa fa-warning","aria-hidden":"true"},null,-1)),BMe=te({__name:"AdminEquipmentTypes",setup(e){const{t}=kt(),n=ke(),a=w(()=>SO(n.getters[we.GETTERS.EQUIPMENT_TYPES],t)),s=w(()=>n.getters[K.GETTERS.ERROR_MESSAGES]);ft(()=>r());function r(){n.dispatch(we.ACTIONS.GET_EQUIPMENT_TYPES)}function o(i,u){n.dispatch(we.ACTIONS.UPDATE_EQUIPMENT_TYPE,{id:i,isActive:u})}return(i,u)=>{const l=oe("EquipmentTypeImage"),c=oe("ErrorMessage"),f=oe("Card");return h(),I("div",RMe,[F(f,null,{title:le(()=>[V(_(i.$t("admin.EQUIPMENT_TYPES.TITLE")),1)]),content:le(()=>[d("button",{class:"top-button",onClick:u[0]||(u[0]=be(E=>i.$router.push("/admin"),["prevent"]))},_(i.$t("admin.BACK_TO_ADMIN")),1),d("div",NMe,[d("table",null,[d("thead",null,[d("tr",null,[vMe,d("th",null,_(i.$t("admin.EQUIPMENT_TYPES.TABLE.IMAGE")),1),d("th",bMe,_(i.$t("admin.EQUIPMENT_TYPES.TABLE.LABEL")),1),d("th",null,_(i.$t("admin.EQUIPMENT_TYPES.TABLE.ACTIVE")),1),d("th",CMe,_(i.$t("admin.ACTION")),1)])]),d("tbody",null,[(h(!0),I(pe,null,Pe(a.value,E=>(h(),I("tr",{key:E.id},[d("td",DMe,[PMe,V(" "+_(E.id),1)]),d("td",null,[d("span",yMe,_(i.$t("admin.EQUIPMENT_TYPES.TABLE.IMAGE")),1),F(l,{title:E.translatedLabel,"equipment-type-label":E.label},null,8,["title","equipment-type-label"])]),d("td",LMe,[d("span",$Me,_(i.$t("admin.EQUIPMENT_TYPES.TABLE.LABEL")),1),V(" "+_(E.translatedLabel),1)]),d("td",kMe,[d("span",UMe,_(i.$t("admin.EQUIPMENT_TYPES.TABLE.ACTIVE")),1),d("i",{class:Te(`fa fa${E.is_active?"-check":""}`),"aria-hidden":"true"},null,2)]),d("td",wMe,[d("span",MMe,_(i.$t("admin.ACTION")),1),d("div",FMe,[d("button",{class:Te({danger:E.is_active}),onClick:p=>o(E.id,!E.is_active)},_(i.$t(`buttons.${E.is_active?"DIS":"EN"}ABLE`)),11,WMe),E.has_equipments?(h(),I("span",zMe,[xMe,V(" "+_(i.$t("admin.EQUIPMENT_TYPES.TABLE.HAS_EQUIPMENTS")),1)])):M("",!0)])])]))),128))])]),s.value?(h(),Y(c,{key:0,message:s.value},null,8,["message"])):M("",!0),d("button",{onClick:u[1]||(u[1]=be(E=>i.$router.push("/admin"),["prevent"]))},_(i.$t("admin.BACK_TO_ADMIN")),1)])]),_:1})])}}}),GMe=ie(BMe,[["__scopeId","data-v-d329b43d"]]),HMe={class:"stat-card"},VMe={class:"stat-content box"},jMe={class:"stat-icon"},KMe={class:"stat-details"},qMe={class:"stat-huge"},YMe={class:"stat"},Ia=te({__name:"StatCard",props:{icon:{},text:{},value:{}},setup(e){const t=e,{icon:n,text:a,value:s}=me(t);return(r,o)=>(h(),I("div",HMe,[d("div",VMe,[d("div",jMe,[d("i",{class:Te(["fa",`fa-${m(n)}`])},null,2)]),d("div",KMe,[d("div",qMe,_(m(s)),1),d("div",YMe,_(m(a)),1)])])]))}}),XMe={id:"user-stats"},QMe=te({__name:"AppStatsCards",props:{appStatistics:{}},setup(e){const t=e,{appStatistics:n}=me(t),a=w(()=>ZS(n.value.uploads_dir_size));return(s,r)=>(h(),I("div",XMe,[F(Ia,{icon:"users",value:m(n).users,text:s.$t("admin.USER",m(n).users)},null,8,["value","text"]),F(Ia,{icon:"tags",value:m(n).sports,text:s.$t("workouts.SPORT",m(n).sports)},null,8,["value","text"]),F(Ia,{icon:"calendar",value:m(n).workouts,text:s.$t("workouts.WORKOUT",m(n).workouts)},null,8,["value","text"]),F(Ia,{icon:"folder-open",value:a.value.size,text:a.value.suffix},null,8,["value","text"])]))}}),gO=e=>(rt("data-v-69570181"),e=e(),ot(),e),ZMe={id:"admin-menu",class:"center-card"},JMe={class:"admin-menu description-list"},e7e={class:"application-config-details"},t7e=gO(()=>d("br",null,null,-1)),n7e={class:"registration-status"},a7e={key:0,class:"email-sending-status"},s7e=gO(()=>d("i",{class:"fa fa-exclamation-triangle","aria-hidden":"true"},null,-1)),r7e=te({__name:"AdminMenu",props:{appConfig:{},appStatistics:{default:()=>({})}},setup(e){const t=e,{appConfig:n,appStatistics:a}=me(t);return St(()=>{const s=document.getElementById("adminLink");s&&s.focus()}),(s,r)=>{const o=oe("router-link");return h(),I("div",ZMe,[F(zS,null,{title:le(()=>[V(_(s.$t("admin.ADMINISTRATION")),1)]),content:le(()=>[F(QMe,{appStatistics:m(a)},null,8,["appStatistics"]),d("div",JMe,[d("dl",null,[d("dt",null,[F(o,{id:"adminLink",to:"/admin/application"},{default:le(()=>[V(_(s.$t("admin.APPLICATION")),1)]),_:1})]),d("dd",e7e,[V(_(s.$t("admin.UPDATE_APPLICATION_DESCRIPTION")),1),t7e,d("span",n7e,_(s.$t(`admin.REGISTRATION_${m(n).is_registration_enabled?"ENABLED":"DISABLED"}`)),1),m(n).is_email_sending_enabled?M("",!0):(h(),I("span",a7e,[s7e,V(" "+_(s.$t("admin.EMAIL_SENDING_DISABLED")),1)]))]),d("dt",null,[F(o,{to:"/admin/equipment-types"},{default:le(()=>[V(_(He(s.$t("equipments.EQUIPMENT_TYPE",0))),1)]),_:1})]),d("dd",null,_(s.$t("admin.ENABLE_DISABLE_EQUIPMENT_TYPES")),1),d("dt",null,[F(o,{to:"/admin/sports"},{default:le(()=>[V(_(He(s.$t("workouts.SPORT",0))),1)]),_:1})]),d("dd",null,_(s.$t("admin.ENABLE_DISABLE_SPORTS")),1),d("dt",null,[F(o,{to:"/admin/users"},{default:le(()=>[V(_(He(s.$t("admin.USER",0))),1)]),_:1})]),d("dd",null,_(s.$t("admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT")),1)])])]),_:1})])}}}),o7e=ie(r7e,[["__scopeId","data-v-69570181"]]),Ff={"Cycling (Sport)":"#4c9792","Cycling (Trekking)":"#a8af88","Cycling (Transport)":"#88af98","Cycling (Virtual)":"#64a360",Hiking:"#bb757c","Mountain Biking":"#d4b371","Mountain Biking (Electric)":"#fc9d6f",Mountaineering:"#48b3b7","Open Water Swimming":"#4058a4",Paragliding:"#c23c50",Rowing:"#fcce72",Running:"#835b83","Skiing (Alpine)":"#67a4bd","Skiing (Cross Country)":"#9498d0",Snowshoes:"#5780a8",Trail:"#09a98a",Walking:"#838383"},i7e=e=>{const t={};return e.map(n=>t[n.id]=n.color?n.color:Ff[n.label]),t},u7e=(e,t)=>{const n=e.translatedLabel.toLowerCase(),a=t.translatedLabel.toLowerCase();return n>a?1:ne.filter(s=>n==="all"?!0:a.includes(s.id)||s[n]).map(s=>({...s,translatedLabel:t(`sports.${s.label}.LABEL`)})).sort(u7e),Wf=(e,t)=>t.filter(n=>n.id===e.sport_id).map(n=>n.label)[0],zf=(e,t)=>t.filter(n=>n.id===e.sport_id).map(n=>n.color)[0],xf=e=>(rt("data-v-56f637e8"),e=e(),ot(),e),l7e={id:"admin-sports",class:"admin-card"},c7e={class:"responsive-table"},d7e=xf(()=>d("th",null,"#",-1)),E7e={class:"text-left"},f7e={class:"text-left sport-action"},p7e={class:"text-center"},m7e=xf(()=>d("span",{class:"cell-heading"},"id",-1)),_7e={class:"cell-heading"},T7e={class:"sport-label"},h7e={class:"cell-heading"},S7e={class:"text-center"},A7e={class:"cell-heading"},O7e={class:"sport-action"},g7e={class:"cell-heading"},I7e={class:"action-button"},R7e=["onClick"],N7e={key:0,class:"has-workouts"},v7e=xf(()=>d("i",{class:"fa fa-warning","aria-hidden":"true"},null,-1)),b7e=te({__name:"AdminSports",setup(e){const{t}=kt(),n=ke(),a=w(()=>Mn(n.getters[Dt.GETTERS.SPORTS],t)),s=w(()=>n.getters[K.GETTERS.ERROR_MESSAGES]);ft(()=>n.dispatch(Dt.ACTIONS.GET_SPORTS,!0));function r(o,i){n.dispatch(Dt.ACTIONS.UPDATE_SPORTS,{id:o,isActive:i})}return(o,i)=>{const u=oe("SportImage"),l=oe("ErrorMessage"),c=oe("Card");return h(),I("div",l7e,[F(c,null,{title:le(()=>[V(_(o.$t("admin.SPORTS.TITLE")),1)]),content:le(()=>[d("button",{class:"top-button",onClick:i[0]||(i[0]=be(f=>o.$router.push("/admin"),["prevent"]))},_(o.$t("admin.BACK_TO_ADMIN")),1),d("div",c7e,[d("table",null,[d("thead",null,[d("tr",null,[d7e,d("th",null,_(o.$t("admin.SPORTS.TABLE.IMAGE")),1),d("th",E7e,_(o.$t("admin.SPORTS.TABLE.LABEL")),1),d("th",null,_(o.$t("admin.SPORTS.TABLE.ACTIVE")),1),d("th",f7e,_(o.$t("admin.ACTION")),1)])]),d("tbody",null,[(h(!0),I(pe,null,Pe(a.value,f=>(h(),I("tr",{key:f.id},[d("td",p7e,[m7e,V(" "+_(f.id),1)]),d("td",null,[d("span",_7e,_(o.$t("admin.SPORTS.TABLE.IMAGE")),1),F(u,{title:f.translatedLabel,"sport-label":f.label,color:f.color},null,8,["title","sport-label","color"])]),d("td",T7e,[d("span",h7e,_(o.$t("admin.SPORTS.TABLE.LABEL")),1),V(" "+_(f.translatedLabel),1)]),d("td",S7e,[d("span",A7e,_(o.$t("admin.SPORTS.TABLE.ACTIVE")),1),d("i",{class:Te(`fa fa${f.is_active?"-check":""}`),"aria-hidden":"true"},null,2)]),d("td",O7e,[d("span",g7e,_(o.$t("admin.ACTION")),1),d("div",I7e,[d("button",{class:Te({danger:f.is_active}),onClick:E=>r(f.id,!f.is_active)},_(o.$t(`buttons.${f.is_active?"DIS":"EN"}ABLE`)),11,R7e),f.has_workouts?(h(),I("span",N7e,[v7e,V(" "+_(o.$t("admin.SPORTS.TABLE.HAS_WORKOUTS")),1)])):M("",!0)])])]))),128))])]),s.value?(h(),Y(l,{key:0,message:s.value},null,8,["message"])):M("",!0),d("button",{onClick:i[1]||(i[1]=be(f=>o.$router.push("/admin"),["prevent"]))},_(o.$t("admin.BACK_TO_ADMIN")),1)])]),_:1})])}}}),C7e=ie(b7e,[["__scopeId","data-v-56f637e8"]]),D7e={class:"table-selects"},P7e=["value"],y7e=["value"],L7e=["value"],$7e=["value"],k7e=["value"],U7e=["value"],w7e=te({__name:"FilterSelects",props:{order_by:{},query:{},sort:{},message:{}},emits:["updateSelect"],setup(e,{emit:t}){const n=e,a=t,{order_by:s,query:r,sort:o,message:i}=me(n),u=[10,25,50,100];function l(c){a("updateSelect",c.target.id,c.target.value)}return(c,f)=>(h(),I("div",D7e,[d("label",null,[V(_(c.$t("common.SELECTS.ORDER_BY.LABEL"))+": ",1),d("select",{name:"order_by",id:"order_by",value:m(r).order_by,onChange:l},[(h(!0),I(pe,null,Pe(m(s),E=>(h(),I("option",{value:E,key:E},_(c.$t(`${m(i)}.${E.toUpperCase()}`)),9,y7e))),128))],40,P7e)]),d("label",null,[V(_(c.$t("common.SELECTS.ORDER.LABEL"))+": ",1),d("select",{name:"order",id:"order",value:m(r).order,onChange:l},[(h(!0),I(pe,null,Pe(m(o),E=>(h(),I("option",{value:E,key:E},_(c.$t(`common.SELECTS.ORDER.${E.toUpperCase()}`)),9,$7e))),128))],40,L7e)]),d("label",null,[V(_(c.$t("common.SELECTS.PER_PAGE.LABEL"))+": ",1),d("select",{name:"per_page",id:"per_page",value:m(r).per_page,onChange:l},[(h(),I(pe,null,Pe(u,E=>d("option",{value:E,key:E},_(E),9,U7e)),64))],40,k7e)])]))}}),IO=ie(w7e,[["__scopeId","data-v-fc86ab3c"]]),Bf=["asc","desc"],RO=1,M7e=10,iE=(e,t)=>e&&typeof e=="string"&&+e>0?+e:t,OT=(e,t,n)=>e&&typeof e=="string"&&t.includes(e)?e:n,uE=(e,t,n,a)=>{const r=(a||{}).defaultSort||"asc",o={};return o.page=iE(e.page,RO),o.per_page=iE(e.per_page,M7e),o.order=OT(e.order,Bf,r),o.order_by=OT(e.order_by,t,n),typeof e.q=="string"?o.q=e.q:delete o.q,typeof e.notes=="string"?o.notes=e.notes:delete o.notes,o},F7e=["equipment_id","from","to","ave_speed_from","ave_speed_to","max_speed_from","max_speed_to","distance_from","distance_to","duration_from","duration_to","sport_id","title"],js=(e,t=1)=>Array.from({length:e-t+1},(n,a)=>t+a),W7e=(e,t)=>{if(e<0)return[];if(e<9)return js(e);let n=[1,2];return t<4?n=n.concat([3,4,5]):t<6?n=n.concat(js(t+2,3)):(n=n.concat(["..."]),t=e-2&&+n[n.length-1](rt("data-v-f1388e09"),e=e(),ot(),e),z7e={class:"pagination-center","aria-label":"navigation"},x7e={class:"pagination"},B7e=NO(()=>d("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1)),G7e={key:0},H7e=NO(()=>d("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)),V7e=te({__name:"Pagination",props:{pagination:{},path:{},query:{}},setup(e){const t=e,{pagination:n,path:a,query:s}=me(t);function r(o,i){const u=Object.assign({},s.value);return u.page=i?o+i:o,u}return(o,i)=>{const u=oe("router-link");return h(),I("nav",z7e,[d("ul",x7e,[d("li",{class:Te(["page-prev",{disabled:!m(n).has_prev}])},[F(u,{class:"page-link",to:{path:m(a),query:r(m(n).page,-1)},disabled:!m(n).has_prev,tabindex:m(n).has_prev?0:-1},{default:le(({navigate:l})=>[Lt(o.$slots,"default",{onClick:c=>m(n).has_next?l:null},()=>[V(_(o.$t("common.PREVIOUS"))+" ",1),B7e],!0)]),_:3},8,["to","disabled","tabindex"])],2),(h(!0),I(pe,null,Pe(m(W7e)(m(n).pages,m(n).page),l=>(h(),I("li",{key:l,class:Te(["page",{active:l===m(n).page}])},[l==="..."?(h(),I("span",G7e," ... ")):(h(),Y(u,{key:1,class:"page-link",to:{path:m(a),query:r(+l)}},{default:le(()=>[V(_(l),1)]),_:2},1032,["to"]))],2))),128)),d("li",{class:Te(["page-next",{disabled:!m(n).has_next}])},[F(u,{class:"page-link",to:{path:m(a),query:r(m(n).page,1)},disabled:!m(n).has_next,tabindex:m(n).has_next?0:-1},{default:le(({navigate:l})=>[Lt(o.$slots,"default",{onClick:c=>m(n).has_next?l:null},()=>[V(_(o.$t("common.NEXT"))+" ",1),H7e],!0)]),_:3},8,["to","disabled","tabindex"])],2)])])}}}),tl=ie(V7e,[["__scopeId","data-v-f1388e09"]]),j7e={class:"users-filters"},K7e={class:"search-username"},q7e=["placeholder"],Y7e=te({__name:"UsersNameFilter",emits:["filterOnUsername"],setup(e,{emit:t}){const n=yt(),a=de(n.query.q?n.query.q:""),s=t;function r(){a.value!==""&&s("filterOnUsername",a)}function o(){a.value="",s("filterOnUsername",a.value)}return(i,u)=>(h(),I("div",j7e,[d("div",K7e,[ye(d("input",{id:"username",name:"username","onUpdate:modelValue":u[0]||(u[0]=l=>a.value=l),onKeyup:Je(r,["enter"]),placeholder:i.$t("user.FILTER_ON_USERNAME")},null,40,q7e),[[tt,a.value,void 0,{trim:!0}]]),a.value!==""?(h(),I("i",{key:0,class:"fa fa-times","aria-hidden":"true",onClick:o})):M("",!0)]),d("i",{class:Te(["fa fa-search",{"fa-disabled":a.value===""}]),"aria-hidden":"true",onClick:r},null,2)]))}}),X7e=ie(Y7e,[["__scopeId","data-v-553040c7"]]);var lE={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=n;function n(a){if(a===null||a===!0||a===!1)return NaN;var s=Number(a);return isNaN(s)?s:s<0?Math.ceil(s):Math.floor(s)}e.exports=t.default})(lE,lE.exports);var Q7e=lE.exports;const Z7e=SE(Q7e);var cE={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=n;function n(a){var s=new Date(Date.UTC(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours(),a.getMinutes(),a.getSeconds(),a.getMilliseconds()));return s.setUTCFullYear(a.getFullYear()),a.getTime()-s.getTime()}e.exports=t.default})(cE,cE.exports);var J7e=cE.exports;const gT=SE(J7e);function e9e(e,t){var n=s9e(t);return n.formatToParts?n9e(n,e):a9e(n,e)}var t9e={year:0,month:1,day:2,hour:3,minute:4,second:5};function n9e(e,t){try{for(var n=e.formatToParts(t),a=[],s=0;s=0&&(a[r]=parseInt(n[s].value,10))}return a}catch(o){if(o instanceof RangeError)return[NaN];throw o}}function a9e(e,t){var n=e.format(t),a=/(\d+)\/(\d+)\/(\d+),? (\d+):(\d+):(\d+)/.exec(n);return[a[3],a[1],a[2],a[4],a[5],a[6]]}var Lc={};function s9e(e){if(!Lc[e]){var t=new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:"America/New_York",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date("2014-06-25T04:00:00.123Z")),n=t==="06/25/2014, 00:00:00"||t==="‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00";Lc[e]=n?new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:e,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:e,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}return Lc[e]}function vO(e,t,n,a,s,r,o){var i=new Date(0);return i.setUTCFullYear(e,t,n),i.setUTCHours(a,s,r,o),i}var IT=36e5,r9e=6e4,$c={timezone:/([Z+-].*)$/,timezoneZ:/^(Z)$/,timezoneHH:/^([+-]\d{2})$/,timezoneHHMM:/^([+-])(\d{2}):?(\d{2})$/};function bO(e,t,n){var a,s;if(!e||(a=$c.timezoneZ.exec(e),a))return 0;var r;if(a=$c.timezoneHH.exec(e),a)return r=parseInt(a[1],10),RT(r)?-(r*IT):NaN;if(a=$c.timezoneHHMM.exec(e),a){r=parseInt(a[2],10);var o=parseInt(a[3],10);return RT(r,o)?(s=Math.abs(r)*IT+o*r9e,a[1]==="+"?-s:s):NaN}if(u9e(e)){t=new Date(t||Date.now());var i=n?t:o9e(t),u=dE(i,e),l=n?u:i9e(t,u,e);return-l}return NaN}function o9e(e){return vO(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())}function dE(e,t){var n=e9e(e,t),a=vO(n[0],n[1]-1,n[2],n[3]%24,n[4],n[5],0).getTime(),s=e.getTime(),r=s%1e3;return s-=r>=0?r:1e3+r,a-s}function i9e(e,t,n){var a=e.getTime(),s=a-t,r=dE(new Date(s),n);if(t===r)return t;s-=r-t;var o=dE(new Date(s),n);return r===o?r:Math.max(r,o)}function RT(e,t){return-23<=e&&e<=23&&(t==null||0<=t&&t<=59)}var NT={};function u9e(e){if(NT[e])return!0;try{return new Intl.DateTimeFormat(void 0,{timeZone:e}),NT[e]=!0,!0}catch{return!1}}var l9e=/(Z|[+-]\d{2}(?::?\d{2})?| UTC| [a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?)$/,kc=36e5,vT=6e4,c9e=2,an={dateTimePattern:/^([0-9W+-]+)(T| )(.*)/,datePattern:/^([0-9W+-]+)(.*)/,plainTime:/:/,YY:/^(\d{2})$/,YYY:[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],YYYY:/^(\d{4})/,YYYYY:[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],MM:/^-(\d{2})$/,DDD:/^-?(\d{3})$/,MMDD:/^-?(\d{2})-?(\d{2})$/,Www:/^-?W(\d{2})$/,WwwD:/^-?W(\d{2})-?(\d{1})$/,HH:/^(\d{2}([.,]\d*)?)$/,HHMM:/^(\d{2}):?(\d{2}([.,]\d*)?)$/,HHMMSS:/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,timeZone:l9e};function d9e(e,t){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");if(e===null)return new Date(NaN);var n={},a=n.additionalDigits==null?c9e:Z7e(n.additionalDigits);if(a!==2&&a!==1&&a!==0)throw new RangeError("additionalDigits must be 0, 1 or 2");if(e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]")return new Date(e.getTime());if(typeof e=="number"||Object.prototype.toString.call(e)==="[object Number]")return new Date(e);if(!(typeof e=="string"||Object.prototype.toString.call(e)==="[object String]"))return new Date(NaN);var s=E9e(e),r=f9e(s.date,a),o=r.year,i=r.restDateString,u=p9e(i,o);if(isNaN(u))return new Date(NaN);if(u){var l=u.getTime(),c=0,f;if(s.time&&(c=m9e(s.time),isNaN(c)))return new Date(NaN);if(s.timeZone||n.timeZone){if(f=bO(s.timeZone||n.timeZone,new Date(l+c)),isNaN(f))return new Date(NaN)}else f=gT(new Date(l+c)),f=gT(new Date(l+c+f));return new Date(l+c+f)}else return new Date(NaN)}function E9e(e){var t={},n=an.dateTimePattern.exec(e),a;if(n?(t.date=n[1],a=n[3]):(n=an.datePattern.exec(e),n?(t.date=n[1],a=n[2]):(t.date=null,a=e)),a){var s=an.timeZone.exec(a);s?(t.time=a.replace(s[1],""),t.timeZone=s[1].trim()):t.time=a}return t}function f9e(e,t){var n=an.YYY[t],a=an.YYYYY[t],s;if(s=an.YYYY.exec(e)||a.exec(e),s){var r=s[1];return{year:parseInt(r,10),restDateString:e.slice(r.length)}}if(s=an.YY.exec(e)||n.exec(e),s){var o=s[1];return{year:parseInt(o,10)*100,restDateString:e.slice(o.length)}}return{year:null}}function p9e(e,t){if(t===null)return null;var n,a,s,r;if(e.length===0)return a=new Date(0),a.setUTCFullYear(t),a;if(n=an.MM.exec(e),n)return a=new Date(0),s=parseInt(n[1],10)-1,CT(t,s)?(a.setUTCFullYear(t,s),a):new Date(NaN);if(n=an.DDD.exec(e),n){a=new Date(0);var o=parseInt(n[1],10);return h9e(t,o)?(a.setUTCFullYear(t,0,o),a):new Date(NaN)}if(n=an.MMDD.exec(e),n){a=new Date(0),s=parseInt(n[1],10)-1;var i=parseInt(n[2],10);return CT(t,s,i)?(a.setUTCFullYear(t,s,i),a):new Date(NaN)}if(n=an.Www.exec(e),n)return r=parseInt(n[1],10)-1,DT(t,r)?bT(t,r):new Date(NaN);if(n=an.WwwD.exec(e),n){r=parseInt(n[1],10)-1;var u=parseInt(n[2],10)-1;return DT(t,r,u)?bT(t,r,u):new Date(NaN)}return null}function m9e(e){var t,n,a;if(t=an.HH.exec(e),t)return n=parseFloat(t[1].replace(",",".")),Uc(n)?n%24*kc:NaN;if(t=an.HHMM.exec(e),t)return n=parseInt(t[1],10),a=parseFloat(t[2].replace(",",".")),Uc(n,a)?n%24*kc+a*vT:NaN;if(t=an.HHMMSS.exec(e),t){n=parseInt(t[1],10),a=parseInt(t[2],10);var s=parseFloat(t[3].replace(",","."));return Uc(n,a,s)?n%24*kc+a*vT+s*1e3:NaN}return null}function bT(e,t,n){t=t||0,n=n||0;var a=new Date(0);a.setUTCFullYear(e,0,4);var s=a.getUTCDay()||7,r=t*7+n+1-s;return a.setUTCDate(a.getUTCDate()+r),a}var _9e=[31,28,31,30,31,30,31,31,30,31,30,31],T9e=[31,29,31,30,31,30,31,31,30,31,30,31];function CO(e){return e%400===0||e%4===0&&e%100!==0}function CT(e,t,n){if(t<0||t>11)return!1;if(n!=null){if(n<1)return!1;var a=CO(e);if(a&&n>T9e[t]||!a&&n>_9e[t])return!1}return!0}function h9e(e,t){if(t<1)return!1;var n=CO(e);return!(n&&t>366||!n&&t>365)}function DT(e,t,n){return!(t<0||t>52||n!=null&&(n<0||n>6))}function Uc(e,t,n){return!(e!=null&&(e<0||e>=25)||t!=null&&(t<0||t>=60)||n!=null&&(n<0||n>=60))}function S9e(e,t,n){var a=d9e(e,n),s=bO(t,a,!0),r=new Date(a.getTime()-s),o=new Date(0);return o.setFullYear(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate()),o.setHours(r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds()),o}const{locale:nl}=Us.global,A9e=(e,t,n)=>{switch(e){case"week":return vl(t,{weekStartsOn:n?1:0});case"year":return ZE(t);case"month":return Ko(t);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},O9e=(e,t)=>{switch(e){case"week":return Vo(t,7);case"year":return du(t,1);case"month":return ur(t,1);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},Kl=(e,t)=>S9e(new Date(e),t),PT=(e,t)=>{const n=Ko(e),a=jo(e),s=t?1:0;return{start:vl(n,{weekStartsOn:s}),end:JE(a,{weekStartsOn:s})}},DO=(e,t=null,n=null)=>(t||(t="yyyy/MM/dd"),t=us(t,nl.value),n||(n="HH:mm"),{workout_date:un(e,t,{locale:br[nl.value]}),workout_time:un(e,n)}),g9e=["MM/dd/yyyy","dd/MM/yyyy","yyyy-MM-dd","date_string"],PO={cs:"d. MMM yyyy",de:"do MMM yyyy",en:"MMM. do, yyyy",es:"d MMM yyyy",eu:"yyyy MMM. d",fr:"d MMM yyyy",gl:"d MMM yyyy",it:"d MMM yyyy",nb:"do MMM yyyy",nl:"d MMM yyyy",pl:"d MMM yyyy",pt:"d MMM yyyy"},us=(e,t)=>e==="date_string"?PO[t]:e,Wn=(e,t,n,a=!0,s=null,r=!1)=>{s||(s=nl.value);const o=a?r?" HH:mm:ss":" HH:mm":"";return un(Kl(e,t),`${us(n,s)}${o}`,{locale:br[s]})},I9e=(e,t,n=null)=>{const a=n||nl.value,s=[];return g9e.map(r=>{const o=us(r,a);s.push({label:`${o} - ${Wn(e,t,o,!1,a)}`,value:r})}),s},R9e=e=>(rt("data-v-dc27c3d6"),e=e(),ot(),e),N9e={id:"admin-users",class:"admin-card"},v9e={key:0,class:"no-users"},b9e={key:1,class:"responsive-table"},C9e=R9e(()=>d("th",null,"#",-1)),D9e={class:"left-text"},P9e={class:"left-text"},y9e={class:"left-text"},L9e={class:"cell-heading"},$9e={class:"cell-heading"},k9e={class:"cell-heading"},U9e={class:"cell-heading"},w9e={class:"text-center"},M9e={class:"cell-heading"},F9e={class:"text-center"},W9e={class:"cell-heading"},z9e={class:"text-center"},x9e={class:"cell-heading"},B9e={class:"text-center"},G9e={class:"cell-heading"},H9e=["disabled","onClick"],yT="created_at",V9e=te({__name:"AdminUsers",setup(e){const t=ke(),n=yt(),a=ca(),s=["is_active","admin","created_at","username","workouts_count"];let r=Ht(uE(n.query,s,yT));const o=w(()=>t.getters[Q.GETTERS.AUTH_USER_PROFILE]),i=w(()=>t.getters[xe.GETTERS.USERS]),u=w(()=>t.getters[xe.GETTERS.USERS_PAGINATION]),l=w(()=>t.getters[K.GETTERS.ERROR_MESSAGES]);ft(()=>c(r));function c(T){t.dispatch(xe.ACTIONS.GET_USERS,T)}function f(T){p("q",T.value)}function E(T,O){t.dispatch(xe.ACTIONS.UPDATE_USER,{username:T,admin:O})}function p(T,O){r[T]=O,T==="per_page"&&(r.page=1),a.push({path:"/admin/users",query:r})}return pt(()=>{t.dispatch(xe.ACTIONS.EMPTY_USERS)}),Me(()=>n.query,T=>{r=uE(T,s,yT,{query:r}),c(r)}),(T,O)=>{const R=oe("router-link"),g=oe("ErrorMessage"),N=oe("Card");return h(),I("div",N9e,[F(N,null,{title:le(()=>[V(_(He(T.$t("admin.USER",0))),1)]),content:le(()=>[d("button",{class:"top-button",onClick:O[0]||(O[0]=be(S=>T.$router.push("/admin"),["prevent"]))},_(T.$t("admin.BACK_TO_ADMIN")),1),F(X7e,{onFilterOnUsername:f}),F(IO,{sort:m(Bf),order_by:s,query:m(r),message:"admin.USERS.SELECTS.ORDER_BY",onUpdateSelect:p},null,8,["sort","query"]),i.value.length===0?(h(),I("div",v9e,_(T.$t("user.NO_USERS_FOUND")),1)):(h(),I("div",b9e,[d("table",null,[d("thead",null,[d("tr",null,[C9e,d("th",D9e,_(T.$t("user.USERNAME")),1),d("th",P9e,_(T.$t("user.EMAIL")),1),d("th",y9e,_(T.$t("user.PROFILE.REGISTRATION_DATE")),1),d("th",null,_(He(T.$t("workouts.WORKOUT",0))),1),d("th",null,_(T.$t("admin.ACTIVE")),1),d("th",null,_(T.$t("user.ADMIN")),1),d("th",null,_(T.$t("admin.ACTION")),1)])]),d("tbody",null,[(h(!0),I(pe,null,Pe(i.value,S=>(h(),I("tr",{key:S.username},[d("td",null,[d("span",L9e,_(T.$t("user.PROFILE.PICTURE")),1),F(Go,{user:S},null,8,["user"])]),d("td",null,[d("span",$9e,_(T.$t("user.USERNAME")),1),F(R,{to:`/admin/users/${S.username}`},{default:le(()=>[V(_(S.username),1)]),_:2},1032,["to"])]),d("td",null,[d("span",k9e,_(T.$t("user.EMAIL")),1),V(" "+_(S.email),1)]),d("td",null,[d("span",U9e,_(T.$t("user.PROFILE.REGISTRATION_DATE")),1),d("time",null,_(m(Wn)(S.created_at,o.value.timezone,o.value.date_format)),1)]),d("td",w9e,[d("span",M9e,_(He(T.$t("workouts.WORKOUT",0))),1),V(" "+_(S.nb_workouts),1)]),d("td",F9e,[d("span",W9e,_(T.$t("admin.ACTIVE")),1),d("i",{class:Te(`fa fa${S.is_active?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),d("td",z9e,[d("span",x9e,_(T.$t("user.ADMIN")),1),d("i",{class:Te(`fa fa${S.admin?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),d("td",B9e,[d("span",G9e,_(T.$t("admin.ACTION")),1),d("button",{class:Te({danger:S.admin}),disabled:S.username===o.value.username,onClick:A=>E(S.username,!S.admin)},_(T.$t(`admin.USERS.TABLE.${S.admin?"REMOVE":"ADD"}_ADMIN_RIGHTS`)),11,H9e)])]))),128))])]),u.value.page?(h(),Y(tl,{key:0,path:"/admin/users",pagination:u.value,query:m(r)},null,8,["pagination","query"])):M("",!0),l.value?(h(),Y(g,{key:1,message:l.value},null,8,["message"])):M("",!0),d("button",{onClick:O[1]||(O[1]=be(S=>T.$router.push("/admin"),["prevent"]))},_(T.$t("admin.BACK_TO_ADMIN")),1)]))]),_:1})])}}}),j9e=ie(V9e,[["__scopeId","data-v-dc27c3d6"]]),K9e={class:"box user-header"},q9e={class:"user-details"},Y9e={class:"user-name"},X9e={class:"user-stats"},Q9e={class:"user-stat"},Z9e={class:"stat-number"},J9e={class:"stat-label"},eFe={class:"user-stat"},tFe={class:"stat-label"},nFe={class:"user-stat hide-small"},aFe={class:"stat-number"},sFe={class:"stat-label"},rFe=te({__name:"UserHeader",props:{user:{}},setup(e){const t=e,{user:n}=me(t),a=ke(),s=w(()=>a.getters[Q.GETTERS.AUTH_USER_PROFILE]);return(r,o)=>{const i=oe("Distance");return h(),I("div",K9e,[F(Go,{user:m(n)},null,8,["user"]),d("div",q9e,[d("div",Y9e,_(m(n).username),1),d("div",X9e,[d("div",Q9e,[d("span",Z9e,_(m(n).nb_workouts),1),d("span",J9e,_(r.$t("workouts.WORKOUT",m(n).nb_workouts)),1)]),d("div",eFe,[F(i,{distance:m(n).total_distance,unitFrom:"km",digits:0,displayUnit:!1,useImperialUnits:s.value.imperial_units},null,8,["distance","useImperialUnits"]),d("span",tFe,_(s.value.imperial_units?"miles":"km"),1)]),d("div",nFe,[d("span",aFe,_(m(n).nb_sports),1),d("span",sFe,_(r.$t("workouts.SPORT",m(n).nb_sports)),1)])])])])}}}),yO=ie(rFe,[["__scopeId","data-v-3abb1646"]]),oFe={class:"profile-tabs"},iFe={class:"profile-tabs-links"},LO=te({__name:"UserProfileTabs",props:{tabs:{},selectedTab:{},edition:{type:Boolean}},setup(e){const t=e,{tabs:n,selectedTab:a}=me(t);St(()=>{const r=document.getElementById(`tab-${n.value[0]}`);r&&r.focus()});function s(r){switch(r){case"ACCOUNT":case"PICTURE":case"PRIVACY-POLICY":return`/profile/edit/${r.toLocaleLowerCase()}`;case"APPS":case"EQUIPMENTS":case"PREFERENCES":case"SPORTS":return`/profile${t.edition?"/edit":""}/${r.toLocaleLowerCase()}`;default:case"PROFILE":return`/profile${t.edition?"/edit":""}`}}return(r,o)=>{const i=oe("router-link");return h(),I("div",oFe,[d("div",iFe,[(h(!0),I(pe,null,Pe(m(n),u=>(h(),Y(i,{class:Te(["profile-tab",{selected:u===m(a)}]),to:s(u),key:u},{default:le(()=>[V(_(r.$t(`user.PROFILE.TABS.${u}`)),1)]),_:2},1032,["class","to"]))),128))])])}}}),uFe={id:"user-profile"},lFe={class:"box"},cFe=te({__name:"index",props:{user:{},tab:{}},setup(e){const t=e,{user:n,tab:a}=me(t),s=["PROFILE","PREFERENCES","SPORTS","EQUIPMENTS","APPS"];return(r,o)=>{const i=oe("router-view");return h(),I("div",uFe,[F(yO,{user:m(n)},null,8,["user"]),d("div",lFe,[F(LO,{tabs:s,selectedTab:m(a),edition:!1},null,8,["selectedTab"]),F(i,{user:m(n)},null,8,["user"])])])}}}),dFe=ie(cFe,[["__scopeId","data-v-ab81f074"]]),EFe={id:"user-infos",class:"description-list"},fFe={key:1,class:"info-box success-message"},pFe={key:4,class:"email-form form-box"},mFe={class:"form-items",for:"email"},_Fe={class:"form-items",for:"email"},TFe={class:"form-buttons"},hFe={class:"confirm",type:"submit"},SFe={key:5},AFe={key:0},OFe={class:"user-bio"},gFe={key:0,class:"profile-buttons"},IFe={key:1,class:"profile-buttons"},RFe=te({__name:"UserInfos",props:{user:{},fromAdmin:{type:Boolean,default:!1}},setup(e){const t=e,n=ke(),{user:a,fromAdmin:s}=me(t),r=w(()=>n.getters[K.GETTERS.LANGUAGE]),o=w(()=>n.getters[Q.GETTERS.AUTH_USER_PROFILE]),i=w(()=>t.user.created_at?Wn(t.user.created_at,o.value.timezone,o.value.date_format):""),u=w(()=>t.user.birth_date?un(new Date(t.user.birth_date),`${us(o.value.date_format,r.value)}`,{locale:br[r.value]}):""),l=w(()=>n.getters[xe.GETTERS.USERS_IS_SUCCESS]),c=w(()=>n.getters[K.GETTERS.ERROR_MESSAGES]),f=w(()=>n.getters[K.GETTERS.APP_CONFIG]),E=de(""),p=de(!1),T=de(!1),O=de(""),R=de("");function g(k){E.value=k,k!==""&&n.commit(xe.MUTATIONS.UPDATE_IS_SUCCESS,!1)}function N(k){n.dispatch(xe.ACTIONS.DELETE_USER_ACCOUNT,{username:k})}function S(k){R.value="password-reset",n.dispatch(xe.ACTIONS.UPDATE_USER,{username:k,resetPassword:!0})}function A(k){n.dispatch(xe.ACTIONS.UPDATE_USER,{username:k,activate:!0})}function v(){b(),O.value=a.value.email_to_confirm?a.value.email_to_confirm:"",T.value=!0,R.value="email-update"}function D(){O.value="",T.value=!1}function y(k){n.dispatch(xe.ACTIONS.UPDATE_USER,{username:k,new_email:O.value})}function b(){n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(xe.MUTATIONS.UPDATE_IS_SUCCESS,!1),R.value=""}return pt(()=>b()),Me(()=>l.value,k=>{k&&(g(""),D())}),(k,z)=>{const L=oe("Modal"),W=oe("AlertMessage"),X=oe("ErrorMessage");return h(),I("div",EFe,[E.value?(h(),Y(L,{key:0,title:k.$t("common.CONFIRMATION"),message:E.value==="delete"?"admin.CONFIRM_USER_ACCOUNT_DELETION":"admin.CONFIRM_USER_PASSWORD_RESET",strongMessage:m(a).username,onConfirmAction:z[0]||(z[0]=re=>E.value==="delete"?N(m(a).username):S(m(a).username)),onCancelAction:z[1]||(z[1]=re=>g("")),onKeydown:z[2]||(z[2]=Je(re=>g(""),["esc"]))},null,8,["title","message","strongMessage"])):M("",!0),l.value?(h(),I("div",fFe,_(k.$t(`admin.${R.value==="password-reset"?"PASSWORD_RESET":"USER_EMAIL_UPDATE"}_SUCCESSFUL`)),1)):M("",!0),m(a).is_active?M("",!0):(h(),Y(W,{key:2,message:"user.THIS_USER_ACCOUNT_IS_INACTIVE"})),c.value?(h(),Y(X,{key:3,message:c.value},null,8,["message"])):M("",!0),T.value?(h(),I("div",pFe,[d("form",{class:Te({errors:p.value}),onSubmit:z[5]||(z[5]=be(re=>y(m(a).username),["prevent"]))},[d("label",mFe,[V(_(k.$t("admin.CURRENT_EMAIL"))+" ",1),ye(d("input",{id:"email",type:"email","onUpdate:modelValue":z[3]||(z[3]=re=>m(a).email=re),disabled:""},null,512),[[tt,m(a).email]])]),d("label",_Fe,[V(_(k.$t("admin.NEW_EMAIL"))+"* ",1),ye(d("input",{id:"new-email",type:"email",required:"","onUpdate:modelValue":z[4]||(z[4]=re=>O.value=re)},null,512),[[tt,O.value]])]),d("div",TFe,[d("button",hFe,_(k.$t("buttons.SUBMIT")),1),d("button",{class:"cancel",onClick:be(D,["prevent"])},_(k.$t("buttons.CANCEL")),1)])],34)])):(h(),I("div",SFe,[d("dl",null,[d("dt",null,_(k.$t("user.PROFILE.REGISTRATION_DATE"))+":",1),d("dd",null,[d("time",null,_(i.value),1)]),d("dt",null,_(k.$t("user.PROFILE.FIRST_NAME"))+":",1),d("dd",null,_(m(a).first_name),1),d("dt",null,_(k.$t("user.PROFILE.LAST_NAME"))+":",1),d("dd",null,_(m(a).last_name),1),d("dt",null,_(k.$t("user.PROFILE.BIRTH_DATE"))+":",1),d("dd",null,[u.value?(h(),I("time",AFe,_(u.value),1)):M("",!0)]),d("dt",null,_(k.$t("user.PROFILE.LOCATION"))+":",1),d("dd",null,_(m(a).location),1),d("dt",null,_(k.$t("user.PROFILE.BIO"))+":",1),d("dd",OFe,_(m(a).bio),1)]),m(s)?(h(),I("div",gFe,[o.value.username!==m(a).username?(h(),I("button",{key:0,class:"danger",onClick:z[6]||(z[6]=be(re=>g("delete"),["prevent"]))},_(k.$t("admin.DELETE_USER")),1)):M("",!0),m(a).is_active?M("",!0):(h(),I("button",{key:1,onClick:z[7]||(z[7]=be(re=>A(m(a).username),["prevent"]))},_(k.$t("admin.ACTIVATE_USER_ACCOUNT")),1)),o.value.username!==m(a).username?(h(),I("button",{key:2,onClick:be(v,["prevent"])},_(k.$t("admin.UPDATE_USER_EMAIL")),1)):M("",!0),o.value.username!==m(a).username&&f.value.is_email_sending_enabled?(h(),I("button",{key:3,onClick:z[8]||(z[8]=be(re=>g("reset"),["prevent"]))},_(k.$t("admin.RESET_USER_PASSWORD")),1)):M("",!0),d("button",{onClick:z[9]||(z[9]=re=>k.$router.go(-1))},_(k.$t("buttons.BACK")),1)])):(h(),I("div",IFe,[d("button",{onClick:z[10]||(z[10]=re=>k.$router.push("/profile/edit"))},_(k.$t("user.PROFILE.EDIT")),1),d("button",{onClick:z[11]||(z[11]=re=>k.$router.push("/"))},_(k.$t("common.HOME")),1)]))]))])}}}),$O=ie(RFe,[["__scopeId","data-v-01368a7e"]]),NFe=e=>(rt("data-v-a53353ff"),e=e(),ot(),e),vFe={id:"user-preferences",class:"description-list"},bFe={class:"preferences-section"},CFe={class:"preferences-section"},DFe={class:"info-box raw-speed-help"},PFe=NFe(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),yFe={class:"profile-buttons"},LFe=te({__name:"UserPreferences",props:{user:{}},setup(e){const t=e,n=ke(),a=w(()=>n.getters[K.GETTERS.LANGUAGE]),s=w(()=>t.user.language?Dd[t.user.language]:Dd.en),r=w(()=>t.user.weekm?"MONDAY":"SUNDAY"),o=w(()=>t.user.timezone?t.user.timezone:"Europe/Paris"),i=w(()=>t.user.date_format?t.user.date_format:"MM/dd/yyyy"),u=w(()=>t.user.display_ascent?"DISPLAYED":"HIDDEN"),l=w(()=>t.user.use_dark_mode===!0?"DARK":t.user.use_dark_mode===!1?"LIGHT":"DEFAULT");return(c,f)=>(h(),I("div",vFe,[d("div",bFe,_(c.$t("user.PROFILE.INTERFACE")),1),d("dl",null,[d("dt",null,_(c.$t("user.PROFILE.LANGUAGE"))+":",1),d("dd",null,_(s.value),1),d("dt",null,_(c.$t("user.PROFILE.THEME_MODE.LABEL"))+":",1),d("dd",null,_(c.$t(`user.PROFILE.THEME_MODE.VALUES.${l.value}`)),1),d("dt",null,_(c.$t("user.PROFILE.TIMEZONE"))+":",1),d("dd",null,_(o.value),1),d("dt",null,_(c.$t("user.PROFILE.DATE_FORMAT"))+":",1),d("dd",null,_(m(us)(i.value,a.value)),1),d("dt",null,_(c.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+":",1),d("dd",null,_(c.$t(`user.PROFILE.${r.value}`)),1)]),d("div",CFe,_(c.$t("workouts.WORKOUT",0)),1),d("dl",null,[d("dt",null,_(c.$t("user.PROFILE.UNITS.LABEL"))+":",1),d("dd",null,_(c.$t(`user.PROFILE.UNITS.${c.user.imperial_units?"IMPERIAL":"METRIC"}`)),1),d("dt",null,_(c.$t("user.PROFILE.ASCENT_DATA"))+":",1),d("dd",null,_(c.$t(`common.${u.value}`)),1),d("dt",null,_(c.$t("user.PROFILE.ELEVATION_CHART_START.LABEL"))+":",1),d("dd",null,_(c.$t(`user.PROFILE.ELEVATION_CHART_START.${c.user.start_elevation_at_zero?"ZERO":"MIN_ALT"}`)),1),d("dt",null,_(c.$t("user.PROFILE.USE_RAW_GPX_SPEED.LABEL"))+":",1),d("dd",null,_(c.$t(`user.PROFILE.USE_RAW_GPX_SPEED.${c.user.use_raw_gpx_speed?"RAW_SPEED":"FILTERED_SPEED"}`)),1),d("div",DFe,[d("span",null,[PFe,V(" "+_(c.$t("user.PROFILE.USE_RAW_GPX_SPEED.HELP")),1)])])]),d("div",yFe,[d("button",{onClick:f[0]||(f[0]=E=>c.$router.push("/profile/edit/preferences"))},_(c.$t("user.PROFILE.EDIT_PREFERENCES")),1),d("button",{onClick:f[1]||(f[1]=E=>c.$router.push("/"))},_(c.$t("common.HOME")),1)])]))}}),$Fe=ie(LFe,[["__scopeId","data-v-a53353ff"]]),kFe={id:"user-profile-edition",class:"center-card"},UFe=te({__name:"index",props:{user:{},tab:{}},setup(e){const t=e,{user:n,tab:a}=me(t),s=["PROFILE","ACCOUNT","PICTURE","PREFERENCES","SPORTS","EQUIPMENTS","PRIVACY-POLICY"];return(r,o)=>{const i=oe("router-view"),u=oe("Card");return h(),I("div",kFe,[F(u,null,{title:le(()=>[V(_(r.$t(`user.PROFILE.${m(a)}_EDITION`)),1)]),content:le(()=>[F(LO,{tabs:s,selectedTab:m(a),edition:!0},null,8,["selectedTab"]),F(i,{user:m(n)},null,8,["user"])]),_:1})])}}}),io=new Map,wFe=e=>{const{method:t,url:n,params:a={},data:s={}}=e;return[t,n,JSON.stringify(a),JSON.stringify(s)].join("")},Or=e=>{const t=wFe(e);if(io.has(t)){const n=io.get(t)||{};n==null||n.abort(),io.delete(t)}return t},Va=wt.create({baseURL:Bo()});Va.interceptors.request.use(e=>{const t=new AbortController;e.signal=t.signal;const n=Or(e);return io.set(n,t),e},e=>Promise.reject(e));Va.interceptors.response.use(e=>(Or(e.config),e),e=>(e.message!=="canceled"&&e.response&&Or(e.response.config),Promise.reject(e)));const kO=(e,t)=>{e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.delete(`users/${t.username}`).then(n=>{n.status===204?t.fromAdmin?dt.push("/admin/users"):e.dispatch(Q.ACTIONS.LOGOUT).then(()=>dt.push("/")):fe(e,null)}).catch(n=>fe(e,n))},MFe={[xe.ACTIONS.EMPTY_USER](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(xe.MUTATIONS.UPDATE_USER,{})},[xe.ACTIONS.EMPTY_USERS](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(xe.MUTATIONS.UPDATE_USERS,[]),e.commit(xe.MUTATIONS.UPDATE_USERS_PAGINATION,{})},[xe.ACTIONS.GET_USER](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(xe.MUTATIONS.UPDATE_USERS_LOADING,!0),Be.get(`users/${t}`).then(n=>{n.data.status==="success"?e.commit(xe.MUTATIONS.UPDATE_USER,n.data.data.users[0]):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(xe.MUTATIONS.UPDATE_USERS_LOADING,!1))},[xe.ACTIONS.GET_USERS](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(xe.MUTATIONS.UPDATE_USERS_LOADING,!0),Be.get("users",{params:t}).then(n=>{n.data.status==="success"?(e.commit(xe.MUTATIONS.UPDATE_USERS,n.data.data.users),e.commit(xe.MUTATIONS.UPDATE_USERS_PAGINATION,n.data.pagination)):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(xe.MUTATIONS.UPDATE_USERS_LOADING,!1))},[xe.ACTIONS.UPDATE_USER](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(xe.MUTATIONS.UPDATE_IS_SUCCESS,!1);const n={};t.admin!==void 0&&(n.admin=t.admin),t.resetPassword&&(n.reset_password=t.resetPassword),t.activate&&(n.activate=t.activate),t.new_email!==void 0&&(n.new_email=t.new_email),Be.patch(`users/${t.username}`,n).then(a=>{a.data.status==="success"?(e.commit(xe.MUTATIONS.UPDATE_USER_IN_USERS,a.data.data.users[0]),(t.resetPassword||t.new_email)&&e.commit(xe.MUTATIONS.UPDATE_IS_SUCCESS,!0),(t.activate||t.new_email)&&e.commit(xe.MUTATIONS.UPDATE_USER,a.data.data.users[0])):fe(e,null)}).catch(a=>fe(e,a)).finally(()=>e.commit(xe.MUTATIONS.UPDATE_USERS_LOADING,!1))},[xe.ACTIONS.DELETE_USER_ACCOUNT](e,t){kO(e,{username:t.username,fromAdmin:!0})}},Di=e=>{localStorage.removeItem("authToken"),e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit($t.MUTATIONS.EMPTY_USER_STATS),e.commit($t.MUTATIONS.EMPTY_USER_SPORT_STATS),e.commit(Q.MUTATIONS.CLEAR_AUTH_USER_TOKEN),e.commit(xe.MUTATIONS.UPDATE_USERS,[]),e.commit(Re.MUTATIONS.EMPTY_WORKOUTS),e.commit(Re.MUTATIONS.EMPTY_WORKOUT),dt.push("/login")},FFe={[Q.ACTIONS.CHECK_AUTH_USER](e){window.localStorage.authToken&&!e.getters[Q.GETTERS.IS_AUTHENTICATED]&&(e.commit(Q.MUTATIONS.UPDATE_AUTH_TOKEN,window.localStorage.authToken),e.dispatch(Q.ACTIONS.GET_USER_PROFILE,!0)),!window.localStorage.authToken&&e.getters[Q.GETTERS.IS_AUTHENTICATED]&&Di(e)},[Q.ACTIONS.CONFIRM_ACCOUNT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Va.post("auth/account/confirm",{token:t.token}).then(n=>{if(n.data.status==="success"){const a=n.data.auth_token;window.localStorage.setItem("authToken",a),e.commit(Q.MUTATIONS.UPDATE_AUTH_TOKEN,a),e.dispatch(Q.ACTIONS.GET_USER_PROFILE).then(()=>dt.push("/"))}else fe(e,null)}).catch(n=>{fe(e,n)})},[Q.ACTIONS.CONFIRM_EMAIL](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_IS_SUCCESS,!1),Va.post("/auth/email/update",{token:t.token}).then(n=>{n.data.status==="success"?(e.commit(Q.MUTATIONS.UPDATE_IS_SUCCESS,!0),t.refreshUser&&e.dispatch(Q.ACTIONS.GET_USER_PROFILE).then(()=>dt.push("/profile/edit/account")),dt.push("/profile/edit/account")):fe(e,null)}).catch(n=>{fe(e,n)})},[Q.ACTIONS.GET_USER_PROFILE](e,t=!1){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get("auth/profile").then(n=>{if(n.data.status==="success"){const a=e.getters[Q.GETTERS.IS_PROFILE_NOT_LOADED];e.commit(Q.MUTATIONS.UPDATE_AUTH_USER_PROFILE,n.data.data),n.data.data.accepted_privacy_policy||e.dispatch(K.ACTIONS.GET_APPLICATION_PRIVACY_POLICY),(a||t)&&(n.data.data.language&&e.dispatch(K.ACTIONS.UPDATE_APPLICATION_LANGUAGE,n.data.data.language),e.commit(K.MUTATIONS.UPDATE_DARK_MODE,n.data.data.use_dark_mode)),e.dispatch(Dt.ACTIONS.GET_SPORTS),e.dispatch(we.ACTIONS.GET_EQUIPMENTS),e.dispatch(we.ACTIONS.GET_EQUIPMENT_TYPES)}else fe(e,null),Di(e)}).catch(n=>{n.message!=="canceled"&&(fe(e,n),Di(e))})},[Q.ACTIONS.LOGIN_OR_REGISTER](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),Va.post(`/auth/${t.actionType}`,t.formData).then(n=>{if(n.data.status==="success")if(t.actionType==="login"){const a=n.data.auth_token;window.localStorage.setItem("authToken",a),e.commit(Q.MUTATIONS.UPDATE_AUTH_TOKEN,a),e.dispatch(Q.ACTIONS.GET_USER_PROFILE,!0).then(()=>dt.push(typeof t.redirectUrl=="string"?t.redirectUrl:"/"))}else dt.push("/login").then(()=>e.commit(Q.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!0));else fe(e,null)}).catch(n=>fe(e,n))},[Q.ACTIONS.LOGOUT](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.post("auth/logout").then(t=>{t.data.status==="success"?Di(e):fe(e,null)}).catch(t=>fe(e,t))},[Q.ACTIONS.UPDATE_USER_PROFILE](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!0),Be.post("auth/profile/edit",t).then(n=>{n.data.status==="success"?(e.commit(Q.MUTATIONS.UPDATE_AUTH_USER_PROFILE,n.data.data),dt.push("/profile")):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1))},[Q.ACTIONS.UPDATE_USER_ACCOUNT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!0),e.commit(Q.MUTATIONS.UPDATE_IS_SUCCESS,!1),Be.patch("auth/profile/edit/account",t).then(n=>{n.data.status==="success"?(e.commit(Q.MUTATIONS.UPDATE_AUTH_USER_PROFILE,n.data.data),e.commit(Q.MUTATIONS.UPDATE_IS_SUCCESS,!0)):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1))},[Q.ACTIONS.UPDATE_USER_PREFERENCES](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!0),Be.post("auth/profile/edit/preferences",t).then(n=>{n.data.status==="success"?(e.commit(Q.MUTATIONS.UPDATE_AUTH_USER_PROFILE,n.data.data),e.commit(K.MUTATIONS.UPDATE_DARK_MODE,n.data.data.use_dark_mode),e.dispatch(K.ACTIONS.UPDATE_APPLICATION_LANGUAGE,n.data.data.language).then(()=>dt.push("/profile/preferences"))):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1))},[Q.ACTIONS.RESET_USER_SPORT_PREFERENCES](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!0),Be.delete(`auth/profile/reset/sports/${t.sportId}`).then(n=>{n.status===204?(e.dispatch(Dt.ACTIONS.GET_SPORTS),t.fromSport&&dt.push(`/profile/sports/${t.sportId}`)):fe(e,null)}).catch(n=>{fe(e,n),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1)})},[Q.ACTIONS.UPDATE_USER_SPORT_PREFERENCES](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!0);const{fromSport:n,...a}=t;Be.post("auth/profile/edit/sports",a).then(s=>{s.data.status==="success"?(e.dispatch(Dt.ACTIONS.GET_SPORTS),n&&dt.push(`/profile/sports/${a.sport_id}`)):fe(e,null)}).catch(s=>{fe(e,s),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1)})},[Q.ACTIONS.UPDATE_USER_PICTURE](e,t){if(e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!0),!t.picture)throw new Error("No file part");const n=new FormData;n.append("file",t.picture),Be.post("auth/picture",n,{headers:{"content-type":"multipart/form-data"}}).then(a=>{a.data.status==="success"?e.dispatch(Q.ACTIONS.GET_USER_PROFILE).then(()=>dt.push("/profile")):fe(e,null)}).catch(a=>fe(e,a)).finally(()=>e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1))},[Q.ACTIONS.DELETE_ACCOUNT](e,t){kO(e,t)},[Q.ACTIONS.DELETE_PICTURE](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!0),Be.delete("auth/picture").then(t=>{t.status===204?e.dispatch(Q.ACTIONS.GET_USER_PROFILE).then(()=>dt.push("/profile")):fe(e,null)}).catch(t=>fe(e,t)).finally(()=>e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1))},[Q.ACTIONS.SEND_PASSWORD_RESET_REQUEST](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Va.post("auth/password/reset-request",t).then(n=>{n.data.status==="success"?dt.push("/password-reset/sent"):fe(e,null)}).catch(n=>fe(e,n))},[Q.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Va.post("auth/account/resend-confirmation",t).then(n=>{n.data.status==="success"?dt.push("/account-confirmation/email-sent"):fe(e,null)}).catch(n=>fe(e,n))},[Q.ACTIONS.RESET_USER_PASSWORD](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Va.post("auth/password/update",t).then(n=>{n.data.status==="success"?dt.push("/password-reset/password-updated"):fe(e,null)}).catch(n=>fe(e,n))},[Q.ACTIONS.ACCEPT_PRIVACY_POLICY](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.post("auth/account/privacy-policy",{accepted_policy:t}).then(n=>{n.data.status==="success"?e.dispatch(Q.ACTIONS.GET_USER_PROFILE).then(()=>dt.push("/profile")):fe(e,null)}).catch(n=>fe(e,n))},[Q.ACTIONS.REQUEST_DATA_EXPORT](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.post("auth/account/export/request").then(t=>{t.data.status==="success"?e.commit(Q.MUTATIONS.SET_EXPORT_REQUEST,t.data.request):fe(e,null)}).catch(t=>fe(e,t))},[Q.ACTIONS.GET_REQUEST_DATA_EXPORT](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get("auth/account/export").then(t=>{t.data.status==="success"?e.commit(Q.MUTATIONS.SET_EXPORT_REQUEST,t.data.request):fe(e,null)}).catch(t=>fe(e,t))}},WFe={[Q.GETTERS.AUTH_TOKEN]:e=>e.authToken,[Q.GETTERS.AUTH_USER_PROFILE]:e=>e.authUserProfile,[Q.GETTERS.EXPORT_REQUEST]:e=>e.exportRequest,[Q.GETTERS.IS_AUTHENTICATED]:e=>e.authToken!==null,[Q.GETTERS.IS_ADMIN]:e=>e.authUserProfile&&e.authUserProfile.admin,[Q.GETTERS.IS_REGISTRATION_SUCCESS]:e=>e.isRegistrationSuccess,[Q.GETTERS.IS_SUCCESS]:e=>e.isSuccess,[Q.GETTERS.USER_LOADING]:e=>e.loading,[Q.GETTERS.IS_PROFILE_NOT_LOADED]:e=>e.authUserProfile.username===void 0},zFe={[Q.MUTATIONS.CLEAR_AUTH_USER_TOKEN](e){e.authToken=null,e.authUserProfile={}},[Q.MUTATIONS.UPDATE_AUTH_TOKEN](e,t){e.authToken=t},[Q.MUTATIONS.UPDATE_AUTH_USER_PROFILE](e,t){e.authUserProfile=t},[Q.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS](e,t){e.isRegistrationSuccess=t},[Q.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t},[Q.MUTATIONS.UPDATE_USER_LOADING](e,t){e.loading=t},[Q.MUTATIONS.SET_EXPORT_REQUEST](e,t){e.exportRequest=t}},xFe={authToken:null,authUserProfile:{},isSuccess:!1,isRegistrationSuccess:!1,loading:!1,exportRequest:null},BFe={state:xFe,actions:FFe,getters:WFe,mutations:zFe},GFe={[we.ACTIONS.ADD_EQUIPMENT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.post("equipments",{description:t.description,equipment_type_id:t.equipmentTypeId,label:t.label,default_for_sport_ids:t.defaultForSportIds}).then(n=>{if(n.data.status==="created"){if(n.data.data.equipments.length>0){const a=n.data.data.equipments[0];e.commit(we.MUTATIONS.ADD_EQUIPMENT,a),dt.push(`/profile/equipments/${a.id}`)}e.dispatch(Dt.ACTIONS.GET_SPORTS),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1)}else fe(e,null)}).catch(n=>fe(e,n))},[we.ACTIONS.DELETE_EQUIPMENT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.delete(`equipments/${t.id}${t.force?"?force":""}`).then(()=>{e.commit(we.MUTATIONS.REMOVE_EQUIPMENT,t.id),e.dispatch(Dt.ACTIONS.GET_SPORTS),dt.push("/profile/equipments")}).catch(n=>fe(e,n))},[we.ACTIONS.GET_EQUIPMENT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get(`equipments/${t}`).then(n=>{n.data.status==="success"?n.data.data.equipments.length>0&&e.commit(we.MUTATIONS.UPDATE_EQUIPMENT,n.data.data.equipments[0]):fe(e,null)}).catch(n=>fe(e,n))},[we.ACTIONS.GET_EQUIPMENTS](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get("equipments").then(t=>{t.data.status==="success"?e.commit(we.MUTATIONS.SET_EQUIPMENTS,t.data.data.equipments):fe(e,null)}).catch(t=>fe(e,t))},[we.ACTIONS.GET_EQUIPMENT_TYPES](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get("equipment-types").then(t=>{t.data.status==="success"?(e.commit(we.MUTATIONS.SET_EQUIPMENT_TYPES,t.data.data.equipment_types),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1)):fe(e,null)}).catch(t=>fe(e,t))},[we.ACTIONS.REFRESH_EQUIPMENT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(we.MUTATIONS.SET_LOADING,!0),Be.post(`equipments/${t}/refresh`).then(n=>{n.data.status==="success"?n.data.data.equipments.length>0&&(e.commit(we.MUTATIONS.UPDATE_EQUIPMENT,n.data.data.equipments[0]),dt.push(`/profile/equipments/${t}`)):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(we.MUTATIONS.SET_LOADING,!1))},[we.ACTIONS.UPDATE_EQUIPMENT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(we.MUTATIONS.SET_LOADING,!0),Be.patch(`equipments/${t.id}`,{description:t.description,equipment_type_id:t.equipmentTypeId,is_active:t.isActive,label:t.label,default_for_sport_ids:t.defaultForSportIds}).then(n=>{n.data.status==="success"?n.data.data.equipments.length>0&&(e.commit(we.MUTATIONS.UPDATE_EQUIPMENT,n.data.data.equipments[0]),e.dispatch(Dt.ACTIONS.GET_SPORTS),dt.push(`/profile/equipments/${t.id}`)):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(we.MUTATIONS.SET_LOADING,!1))},[we.ACTIONS.UPDATE_EQUIPMENT_TYPE](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(we.MUTATIONS.SET_LOADING,!0),Be.patch(`equipment-types/${t.id}`,{is_active:t.isActive}).then(n=>{n.data.status==="success"?e.dispatch(we.ACTIONS.GET_EQUIPMENT_TYPES):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(we.MUTATIONS.SET_LOADING,!1))}},HFe={[we.GETTERS.EQUIPMENTS]:e=>e.equipments,[we.GETTERS.EQUIPMENT_TYPES]:e=>e.equipmentTypes,[we.GETTERS.LOADING]:e=>e.loading},VFe={[we.MUTATIONS.ADD_EQUIPMENT](e,t){e.equipments.push(t)},[we.MUTATIONS.REMOVE_EQUIPMENT](e,t){e.equipments=e.equipments.filter(n=>n.id!=t)},[we.MUTATIONS.SET_EQUIPMENTS](e,t){e.equipments=t},[we.MUTATIONS.SET_EQUIPMENT_TYPES](e,t){e.equipmentTypes=t},[we.MUTATIONS.SET_LOADING](e,t){e.loading=t},[we.MUTATIONS.UPDATE_EQUIPMENT](e,t){const n=e.equipments.findIndex(a=>a.id===t.id);n!==-1&&(e.equipments[n]=t)}},jFe={equipments:[],equipmentTypes:[],loading:!1},KFe={state:jFe,actions:GFe,getters:HFe,mutations:VFe},LT=(e,t)=>{e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get(t).then(n=>{n.data.status==="success"?e.commit(et.MUTATIONS.SET_CLIENT,n.data.data.client):fe(e,null)}).catch(n=>fe(e,n))},qFe={[et.ACTIONS.AUTHORIZE_CLIENT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES);const n=new FormData;n.set("client_id",t.client_id),n.set("response_type",t.response_type),n.set("scope",t.scope),n.set("confirm","true"),t.state&&n.set("state",t.state),t.code_challenge&&n.set("code_challenge",t.code_challenge),t.code_challenge_method&&n.set("code_challenge_method",t.code_challenge_method),Be.post("oauth/authorize",n,{headers:{"Content-Type":"multipart/form-data"}}).then(a=>{a.status==200&&a.data.redirect_url?window.location.href=a.data.redirect_url:fe(e,null)}).catch(a=>fe(e,a))},[et.ACTIONS.CREATE_CLIENT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.post("oauth/apps",t).then(n=>{n.data.status==="created"?(e.commit(et.MUTATIONS.SET_CLIENT,n.data.data.client),dt.push(`/profile/apps/${n.data.data.client.id}/created`)):fe(e,null)}).catch(n=>fe(e,n))},[et.ACTIONS.DELETE_CLIENT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.delete(`oauth/apps/${t}`).then(n=>{n.status===204?e.dispatch(et.ACTIONS.GET_CLIENTS).then(()=>dt.push("/profile/apps")):fe(e,null)}).catch(n=>fe(e,n))},[et.ACTIONS.GET_CLIENT_BY_CLIENT_ID](e,t){LT(e,`oauth/apps/${t}`)},[et.ACTIONS.GET_CLIENT_BY_ID](e,t){LT(e,`oauth/apps/${t}/by_id`)},[et.ACTIONS.GET_CLIENTS](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get("oauth/apps",{params:t}).then(n=>{n.data.status==="success"?(e.commit(et.MUTATIONS.SET_CLIENTS,n.data.data.clients),e.commit(et.MUTATIONS.SET_CLIENTS_PAGINATION,n.data.pagination)):fe(e,null)}).catch(n=>fe(e,n))},[et.ACTIONS.REVOKE_ALL_TOKENS](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(et.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1),Be.post(`oauth/apps/${t}/revoke`).then(n=>{n.data.status==="success"?e.commit(et.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!0):fe(e,null)}).catch(n=>fe(e,n))}},YFe={[et.GETTERS.CLIENT]:e=>e.client,[et.GETTERS.CLIENTS]:e=>e.clients,[et.GETTERS.CLIENTS_PAGINATION]:e=>e.pagination,[et.GETTERS.REVOCATION_SUCCESSFUL]:e=>e.revocationSuccessful},XFe={[et.MUTATIONS.SET_CLIENT](e,t){e.client=t},[et.MUTATIONS.EMPTY_CLIENT](e){e.client={}},[et.MUTATIONS.SET_CLIENTS](e,t){e.clients=t},[et.MUTATIONS.SET_CLIENTS_PAGINATION](e,t){e.pagination=t},[et.MUTATIONS.SET_REVOCATION_SUCCESSFUL](e,t){e.revocationSuccessful=t}},QFe={client:{},clients:[],pagination:{},revocationSuccessful:!1},ZFe={state:QFe,actions:qFe,getters:YFe,mutations:XFe},{locale:JFe}=Us.global,eWe={[K.ACTIONS.GET_APPLICATION_CONFIG](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(K.MUTATIONS.UPDATE_APPLICATION_LOADING,!0),Be.get("config").then(t=>{t.data.status==="success"?e.commit(K.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data):fe(e,null)}).catch(t=>fe(e,t)).finally(()=>e.commit(K.MUTATIONS.UPDATE_APPLICATION_LOADING,!1))},[K.ACTIONS.GET_APPLICATION_STATS](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get("stats/all").then(t=>{t.data.status==="success"?e.commit(K.MUTATIONS.UPDATE_APPLICATION_STATS,t.data.data):fe(e,null)}).catch(t=>fe(e,t))},[K.ACTIONS.GET_APPLICATION_PRIVACY_POLICY](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get("config").then(t=>{t.data.status==="success"?e.commit(K.MUTATIONS.UPDATE_APPLICATION_PRIVACY_POLICY,t.data.data):fe(e,null)}).catch(t=>fe(e,t))},[K.ACTIONS.UPDATE_APPLICATION_CONFIG](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.patch("config",t).then(n=>{n.data.status==="success"?(e.commit(K.MUTATIONS.UPDATE_APPLICATION_CONFIG,n.data.data),dt.push("/admin/application")):fe(e,null)}).catch(n=>fe(e,n))},[K.ACTIONS.UPDATE_APPLICATION_LANGUAGE](e,t){var n;(n=document.querySelector("html"))==null||n.setAttribute("lang",t),e.commit(K.MUTATIONS.UPDATE_LANG,t),JFe.value=t}},tWe={[K.GETTERS.APP_CONFIG]:e=>e.application.config,[K.GETTERS.APP_LOADING]:e=>e.appLoading,[K.GETTERS.APP_STATS]:e=>e.application.statistics,[K.GETTERS.DARK_MODE]:e=>e.darkMode,[K.GETTERS.ERROR_MESSAGES]:e=>e.errorMessages,[K.GETTERS.LANGUAGE]:e=>e.language,[K.GETTERS.LOCALE]:e=>e.locale},nWe={[K.MUTATIONS.EMPTY_ERROR_MESSAGES](e){e.errorMessages=null},[K.MUTATIONS.SET_ERROR_MESSAGES](e,t){e.errorMessages=t},[K.MUTATIONS.UPDATE_APPLICATION_CONFIG](e,t){e.application.config=t},[K.MUTATIONS.UPDATE_APPLICATION_LOADING](e,t){e.appLoading=t},[K.MUTATIONS.UPDATE_APPLICATION_PRIVACY_POLICY](e,t){e.application.config.privacy_policy=t.privacy_policy,e.application.config.privacy_policy_date=t.privacy_policy_date},[K.MUTATIONS.UPDATE_APPLICATION_STATS](e,t){e.application.statistics=t},[K.MUTATIONS.UPDATE_LANG](e,t){e.language=t,e.locale=br[t]},[K.MUTATIONS.UPDATE_DARK_MODE](e,t){e.darkMode=t}},aWe={root:!0,language:"en",locale:bl,errorMessages:null,application:{statistics:{sports:0,uploads_dir_size:0,users:0,workouts:0}},appLoading:!1,darkMode:null},sWe={[Dt.ACTIONS.GET_SPORTS](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get(`sports${t?"?check_workouts=true":""}`).then(n=>{n.data.status==="success"?(e.commit(Dt.MUTATIONS.SET_SPORTS,n.data.data.sports),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1)):fe(e,null)}).catch(n=>fe(e,n))},[Dt.ACTIONS.UPDATE_SPORTS](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.patch(`sports/${t.id}`,{is_active:t.isActive}).then(n=>{n.data.status==="success"?e.dispatch(Dt.ACTIONS.GET_SPORTS):fe(e,null)}).catch(n=>fe(e,n))}},rWe={[Dt.GETTERS.SPORTS]:e=>e.sports},oWe={[Dt.MUTATIONS.SET_SPORTS](e,t){e.sports=t}},iWe={sports:[]},uWe={state:iWe,actions:sWe,getters:rWe,mutations:oWe},lWe={[$t.ACTIONS.GET_USER_STATS](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get(`stats/${t.username}/by_time`,{params:t.params}).then(n=>{n.data.status==="success"?e.commit($t.MUTATIONS.UPDATE_USER_STATS,n.data.data.statistics):fe(e,null)}).catch(n=>fe(e,n))},[$t.ACTIONS.GET_USER_SPORT_STATS](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit($t.MUTATIONS.UPDATE_STATS_LOADING,!0),Be.get(`stats/${t.username}/by_sport`,{params:{sport_id:t.sportId}}).then(n=>{n.data.status==="success"?(e.commit($t.MUTATIONS.UPDATE_USER_SPORT_STATS,n.data.data.statistics),e.commit($t.MUTATIONS.UPDATE_TOTAL_WORKOUTS,n.data.data.total_workouts)):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit($t.MUTATIONS.UPDATE_STATS_LOADING,!1))}},cWe={[$t.GETTERS.USER_SPORT_STATS]:e=>e.sportStatistics,[$t.GETTERS.USER_STATS]:e=>e.statistics,[$t.GETTERS.STATS_LOADING]:e=>e.loading,[$t.GETTERS.TOTAL_WORKOUTS]:e=>e.totalWorkouts},dWe={[$t.MUTATIONS.UPDATE_USER_STATS](e,t){e.statistics=t},[$t.MUTATIONS.EMPTY_USER_STATS](e){e.statistics={}},[$t.MUTATIONS.EMPTY_USER_SPORT_STATS](e){e.sportStatistics={},e.totalWorkouts=0},[$t.MUTATIONS.UPDATE_USER_SPORT_STATS](e,t){e.sportStatistics=t},[$t.MUTATIONS.UPDATE_STATS_LOADING](e,t){e.loading=t},[$t.MUTATIONS.UPDATE_TOTAL_WORKOUTS](e,t){e.totalWorkouts=t}},EWe={statistics:{},sportStatistics:{},totalWorkouts:0,loading:!1},fWe={state:EWe,actions:lWe,getters:cWe,mutations:dWe},pWe={[xe.GETTERS.USER]:e=>e.user,[xe.GETTERS.USERS]:e=>e.users,[xe.GETTERS.USERS_IS_SUCCESS]:e=>e.isSuccess,[xe.GETTERS.USERS_LOADING]:e=>e.loading,[xe.GETTERS.USERS_PAGINATION]:e=>e.pagination},mWe={[xe.MUTATIONS.UPDATE_USER](e,t){e.user=t},[xe.MUTATIONS.UPDATE_USER_IN_USERS](e,t){e.users=e.users.map(n=>n.username===t.username?t:n)},[xe.MUTATIONS.UPDATE_USERS](e,t){e.users=t},[xe.MUTATIONS.UPDATE_USERS_LOADING](e,t){e.loading=t},[xe.MUTATIONS.UPDATE_USERS_PAGINATION](e,t){e.pagination=t},[xe.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t}},_We={user:{},users:[],loading:!1,isSuccess:!1,pagination:{}},TWe={state:_We,actions:MFe,getters:pWe,mutations:mWe},Pi=(e,t,n)=>{e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get("workouts",{params:t}).then(a=>{a.data.status==="success"?(e.commit(Re.MUTATIONS[n],a.data.data.workouts),n===Os.SET_USER_WORKOUTS&&e.commit(Re.MUTATIONS.SET_WORKOUTS_PAGINATION,a.data.pagination)):fe(e,null)}).catch(a=>fe(e,a))},hWe={[Re.ACTIONS.GET_CALENDAR_WORKOUTS](e,t){e.commit(Re.MUTATIONS.EMPTY_CALENDAR_WORKOUTS),Pi(e,t,Os.SET_CALENDAR_WORKOUTS)},[Re.ACTIONS.GET_USER_WORKOUTS](e,t){Pi(e,t,Os.SET_USER_WORKOUTS)},[Re.ACTIONS.GET_TIMELINE_WORKOUTS](e,t){Pi(e,t,Os.SET_TIMELINE_WORKOUTS)},[Re.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](e,t){Pi(e,t,Os.ADD_TIMELINE_WORKOUTS)},[Re.ACTIONS.GET_WORKOUT_DATA](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!0);const n=t.segmentId?`/segment/${t.segmentId}`:"";Be.get(`workouts/${t.workoutId}`).then(a=>{const s=a.data.data.workouts[0];if(a.data.status==="success"){if(t.segmentId&&(s.segments.length===0||!s.segments[+t.segmentId-1]))throw new Error("WORKOUT_NOT_FOUND");e.commit(Re.MUTATIONS.SET_WORKOUT,a.data.data.workouts[0]),a.data.data.workouts[0].with_gpx&&(Be.get(`workouts/${t.workoutId}/chart_data${n}`).then(r=>{r.data.status==="success"&&e.commit(Re.MUTATIONS.SET_WORKOUT_CHART_DATA,r.data.data.chart_data)}),Be.get(`workouts/${t.workoutId}/gpx${n}`).then(r=>{r.data.status==="success"&&e.commit(Re.MUTATIONS.SET_WORKOUT_GPX,r.data.data.gpx)}))}else e.commit(Re.MUTATIONS.EMPTY_WORKOUT),fe(e,null)}).catch(a=>{e.commit(Re.MUTATIONS.EMPTY_WORKOUT),fe(e,a)}).finally(()=>e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!1))},[Re.ACTIONS.DELETE_WORKOUT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!0),Be.delete(`workouts/${t.workoutId}`).then(()=>{e.commit(Re.MUTATIONS.EMPTY_WORKOUT),e.dispatch(Q.ACTIONS.GET_USER_PROFILE),dt.push("/")}).catch(n=>{fe(e,n)}).finally(()=>e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!1))},[Re.ACTIONS.EDIT_WORKOUT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!0),Be.patch(`workouts/${t.workoutId}`,t.data).then(()=>{e.dispatch(Q.ACTIONS.GET_USER_PROFILE),e.dispatch(Re.ACTIONS.GET_WORKOUT_DATA,{workoutId:t.workoutId}).then(()=>{dt.push({name:"Workout",params:{workoutId:t.workoutId}})})}).catch(n=>{fe(e,n)}).finally(()=>e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!1))},[Re.ACTIONS.ADD_WORKOUT](e,t){if(e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!0),!t.file)throw new Error("No file part");const n=t.notes.replace(/"/g,'\\"'),a=new FormData;a.append("file",t.file),a.append("data",`{"sport_id": ${t.sport_id}, "notes": "${n}", "equipment_ids": [${t.equipment_ids.map(s=>`"${s}"`).join(",")}]}`),Be.post("workouts",a,{headers:{"content-type":"multipart/form-data"}}).then(s=>{if(s.data.status==="created"){e.dispatch(Q.ACTIONS.GET_USER_PROFILE);const r=s.data.data.workouts[0];dt.push(s.data.data.workouts.length===1?`/workouts/${r.id}`:"/")}}).catch(s=>{fe(e,s)}).finally(()=>e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!1))},[Re.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!0),Be.post("workouts/no_gpx",t).then(n=>{if(n.data.status==="created"){e.dispatch(Q.ACTIONS.GET_USER_PROFILE);const a=n.data.data.workouts[0];dt.push(`/workouts/${a.id}`)}}).catch(n=>{fe(e,n)}).finally(()=>e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!1))}},SWe={[Re.GETTERS.CALENDAR_WORKOUTS]:e=>e.calendar_workouts,[Re.GETTERS.TIMELINE_WORKOUTS]:e=>e.timeline_workouts,[Re.GETTERS.USER_WORKOUTS]:e=>e.user_workouts,[Re.GETTERS.WORKOUT_DATA]:e=>e.workoutData,[Re.GETTERS.WORKOUTS_PAGINATION]:e=>e.pagination},AWe={[Re.MUTATIONS.ADD_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=e.timeline_workouts.concat(t)},[Re.MUTATIONS.SET_CALENDAR_WORKOUTS](e,t){e.calendar_workouts=t},[Re.MUTATIONS.SET_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=t},[Re.MUTATIONS.SET_USER_WORKOUTS](e,t){e.user_workouts=t},[Re.MUTATIONS.SET_WORKOUTS_PAGINATION](e,t){e.pagination=t},[Re.MUTATIONS.SET_WORKOUT](e,t){e.workoutData.workout=t},[Re.MUTATIONS.SET_WORKOUT_CHART_DATA](e,t){e.workoutData.chartData=t},[Re.MUTATIONS.SET_WORKOUT_GPX](e,t){e.workoutData.gpx=t},[Re.MUTATIONS.SET_WORKOUT_LOADING](e,t){e.workoutData.loading=t},[Re.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](e){e.calendar_workouts=[]},[Re.MUTATIONS.EMPTY_WORKOUTS](e){e.calendar_workouts=[],e.user_workouts=[],e.timeline_workouts=[]},[Re.MUTATIONS.EMPTY_WORKOUT](e){e.workoutData={gpx:"",loading:!1,workout:{},chartData:[]}}},OWe={calendar_workouts:[],timeline_workouts:[],pagination:{},user_workouts:[],workoutData:{gpx:"",loading:!1,workout:{},chartData:[]}},gWe={state:OWe,actions:hWe,getters:SWe,mutations:AWe},IWe={authUserModule:BFe,equipmentModule:KFe,oAuthModule:ZFe,sportsModule:uWe,statsModule:fWe,usersModule:TWe,workoutsModule:gWe},RWe={state:aWe,actions:eWe,getters:tWe,mutations:nWe,modules:IWe},uo=W3(RWe),Gf=wt.create({baseURL:Bo()});Gf.interceptors.request.use(e=>{const t=new AbortController;e.signal=t.signal;const n=Or(e);io.set(n,t);const a=uo.getters[Q.GETTERS.AUTH_TOKEN];if(a){const s=`Bearer ${a}`;e.headers&&e.headers.Authorization!==s&&(e.headers.Authorization=`Bearer ${a}`)}return e},e=>Promise.reject(e));Gf.interceptors.response.use(e=>(Or(e.config),e),e=>(e.message!=="canceled"&&e.response&&Or(e.response.config),Promise.reject(e)));const Be=Gf,EE=(e,t)=>e.push.apply(e,t),gr=e=>e.sort((t,n)=>t.i-n.i||t.j-n.j),$T=e=>{const t={};let n=1;return e.forEach(a=>{t[a]=n,n+=1}),t};var NWe={4:[[1,2],[2,3]],5:[[1,3],[2,3],[2,4]],6:[[1,2],[2,4],[4,5]],7:[[1,3],[2,3],[4,5],[4,6]],8:[[2,4],[4,6]]};const kT=2050,UT=1e3,vWe=NWe,bWe=10,CWe=1e4,UO=10,wO=50,MO=20,FO=/^[A-Z\xbf-\xdf][^A-Z\xbf-\xdf]+$/,DWe=/^[^A-Z\xbf-\xdf]+[A-Z\xbf-\xdf]$/,PWe=/^[A-Z\xbf-\xdf]+$/,WO=/^[^a-z\xdf-\xff]+$/,yWe=/^[a-z\xdf-\xff]+$/,LWe=/^[^A-Z\xbf-\xdf]+$/,$We=/[a-z\xdf-\xff]/,kWe=/[A-Z\xbf-\xdf]/,UWe=/[^A-Za-z\xbf-\xdf]/gi,wWe=/^\d+$/,Hf=new Date().getFullYear(),MWe={recentYear:/19\d\d|200\d|201\d|202\d/g},zO=[" ",",",";",":","|","/","\\","_",".","-"],FWe=zO.length;class WWe{match({password:t}){const n=[...this.getMatchesWithoutSeparator(t),...this.getMatchesWithSeparator(t)],a=this.filterNoise(n);return gr(a)}getMatchesWithSeparator(t){const n=[],a=/^(\d{1,4})([\s/\\_.-])(\d{1,2})\2(\d{1,4})$/;for(let s=0;s<=Math.abs(t.length-6);s+=1)for(let r=s+5;r<=s+9&&!(r>=t.length);r+=1){const o=t.slice(s,+r+1||9e9),i=a.exec(o);if(i!=null){const u=this.mapIntegersToDayMonthYear([parseInt(i[1],10),parseInt(i[3],10),parseInt(i[4],10)]);u!=null&&n.push({pattern:"date",token:o,i:s,j:r,separator:i[2],year:u.year,month:u.month,day:u.day})}}return n}getMatchesWithoutSeparator(t){const n=[],a=/^\d{4,8}$/,s=r=>Math.abs(r.year-Hf);for(let r=0;r<=Math.abs(t.length-4);r+=1)for(let o=r+3;o<=r+7&&!(o>=t.length);o+=1){const i=t.slice(r,+o+1||9e9);if(a.exec(i)){const u=[],l=i.length;if(vWe[l].forEach(([f,E])=>{const p=this.mapIntegersToDayMonthYear([parseInt(i.slice(0,f),10),parseInt(i.slice(f,E),10),parseInt(i.slice(E),10)]);p!=null&&u.push(p)}),u.length>0){let f=u[0],E=s(u[0]);u.slice(1).forEach(p=>{const T=s(p);T{let a=!1;const s=t.length;for(let r=0;r=n.j){a=!0;break}}return!a})}mapIntegersToDayMonthYear(t){if(t[1]>31||t[1]<=0)return null;let n=0,a=0,s=0;for(let r=0,o=t.length;r99&&ikT)return null;i>31&&(a+=1),i>12&&(n+=1),i<=0&&(s+=1)}return a>=2||n===3||s>=2?null:this.getDayMonth(t)}getDayMonth(t){const n=[[t[2],t.slice(0,2)],[t[0],t.slice(1,3)]],a=n.length;for(let s=0;s=1&&r<=31&&o>=1&&o<=12)return{day:r,month:o}}return null}twoToFourDigitYear(t){return t>99?t:t>50?t+1900:t+2e3}}const Aa=new Uint32Array(65536),zWe=(e,t)=>{const n=e.length,a=t.length,s=1<{const n=t.length,a=e.length,s=[],r=[],o=Math.ceil(n/32),i=Math.ceil(a/32);for(let T=0;T>>N&1,v=s[N/32|0]>>>N&1,D=S|T,y=((S|v)&O)+O^O|S|v;let b=T|~(y|O),k=O&y;b>>>31^A&&(r[N/32|0]^=1<>>31^v&&(s[N/32|0]^=1<>>T&1,g=s[T/32|0]>>>T&1,N=O|l,S=((O|g)&c)+c^c|O|g;let A=l|~(S|c),v=c&S;p+=A>>>a-1&1,p-=v>>>a-1&1,A>>>31^R&&(r[T/32|0]^=1<>>31^g&&(s[T/32|0]^=1<{if(e.length{const a=e.length<=t.length,s=e.length<=n;return a||s?Math.ceil(e.length/4):n},HWe=(e,t,n)=>{let a=0;const s=Object.keys(t).find(r=>{const o=GWe(e,r,n);if(Math.abs(e.length-r.length)>o)return!1;const i=BWe(e,r),u=i<=o;return u&&(a=i),u});return s?{levenshteinDistance:a,levenshteinDistanceEntry:s}:{}};var wT={a:["4","@"],b:["8"],c:["(","{","[","<"],d:["6","|)"],e:["3"],f:["#"],g:["6","9","&"],h:["#","|-|"],i:["1","!","|"],k:["<","|<"],l:["!","1","|","7"],m:["^^","nn","2n","/\\\\/\\\\"],n:["//"],o:["0","()"],q:["9"],u:["|_|"],s:["$","5"],t:["+","7"],v:["<",">","/"],w:["^/","uu","vv","2u","2v","\\\\/\\\\/"],x:["%","><"],z:["2"]},wc={warnings:{straightRow:"straightRow",keyPattern:"keyPattern",simpleRepeat:"simpleRepeat",extendedRepeat:"extendedRepeat",sequences:"sequences",recentYears:"recentYears",dates:"dates",topTen:"topTen",topHundred:"topHundred",common:"common",similarToCommon:"similarToCommon",wordByItself:"wordByItself",namesByThemselves:"namesByThemselves",commonNames:"commonNames",userInputs:"userInputs",pwned:"pwned"},suggestions:{l33t:"l33t",reverseWords:"reverseWords",allUppercase:"allUppercase",capitalization:"capitalization",dates:"dates",recentYears:"recentYears",associatedYears:"associatedYears",sequences:"sequences",repeated:"repeated",longerKeyboardPattern:"longerKeyboardPattern",anotherWord:"anotherWord",useWords:"useWords",noNeed:"noNeed",pwned:"pwned"},timeEstimation:{ltSecond:"ltSecond",second:"second",seconds:"seconds",minute:"minute",minutes:"minutes",hour:"hour",hours:"hours",day:"day",days:"days",month:"month",months:"months",year:"year",years:"years",centuries:"centuries"}};class $o{constructor(t=[]){this.parents=t,this.children=new Map}addSub(t,...n){const a=t.charAt(0);this.children.has(a)||this.children.set(a,new $o([...this.parents,a]));let s=this.children.get(a);for(let r=1;r(Object.entries(e).forEach(([n,a])=>{a.forEach(s=>{t.addSub(s,n)})}),t);class VWe{constructor(){this.matchers={},this.l33tTable=wT,this.trieNodeRoot=MT(wT,new $o),this.dictionary={userInputs:[]},this.rankedDictionaries={},this.rankedDictionariesMaxWordSize={},this.translations=wc,this.graphs={},this.useLevenshteinDistance=!1,this.levenshteinThreshold=2,this.l33tMaxSubstitutions=100,this.maxLength=256,this.setRankedDictionaries()}setOptions(t={}){t.l33tTable&&(this.l33tTable=t.l33tTable,this.trieNodeRoot=MT(t.l33tTable,new $o)),t.dictionary&&(this.dictionary=t.dictionary,this.setRankedDictionaries()),t.translations&&this.setTranslations(t.translations),t.graphs&&(this.graphs=t.graphs),t.useLevenshteinDistance!==void 0&&(this.useLevenshteinDistance=t.useLevenshteinDistance),t.levenshteinThreshold!==void 0&&(this.levenshteinThreshold=t.levenshteinThreshold),t.l33tMaxSubstitutions!==void 0&&(this.l33tMaxSubstitutions=t.l33tMaxSubstitutions),t.maxLength!==void 0&&(this.maxLength=t.maxLength)}setTranslations(t){if(this.checkCustomTranslations(t))this.translations=t;else throw new Error("Invalid translations object fallback to keys")}checkCustomTranslations(t){let n=!0;return Object.keys(wc).forEach(a=>{if(a in t){const s=a;Object.keys(wc[s]).forEach(r=>{r in t[s]||(n=!1)})}else n=!1}),n}setRankedDictionaries(){const t={},n={};Object.keys(this.dictionary).forEach(a=>{t[a]=$T(this.dictionary[a]),n[a]=this.getRankedDictionariesMaxWordSize(this.dictionary[a])}),this.rankedDictionaries=t,this.rankedDictionariesMaxWordSize=n}getRankedDictionariesMaxWordSize(t){const n=t.map(a=>typeof a!="string"?a.toString().length:a.length);return n.length===0?0:n.reduce((a,s)=>Math.max(a,s),-1/0)}buildSanitizedRankedDictionary(t){const n=[];return t.forEach(a=>{const s=typeof a;(s==="string"||s==="number"||s==="boolean")&&n.push(a.toString().toLowerCase())}),$T(n)}extendUserInputsDictionary(t){this.dictionary.userInputs||(this.dictionary.userInputs=[]);const n=[...this.dictionary.userInputs,...t];this.rankedDictionaries.userInputs=this.buildSanitizedRankedDictionary(n),this.rankedDictionariesMaxWordSize.userInputs=this.getRankedDictionariesMaxWordSize(n)}addMatcher(t,n){this.matchers[t]?console.info(`Matcher ${t} already exists`):this.matchers[t]=n}}const We=new VWe;class jWe{constructor(t){this.defaultMatch=t}match({password:t}){const n=t.split("").reverse().join("");return this.defaultMatch({password:n}).map(a=>({...a,token:a.token.split("").reverse().join(""),reversed:!0,i:t.length-1-a.j,j:t.length-1-a.i}))}}class KWe{constructor({substr:t,limit:n,trieRoot:a}){this.buffer=[],this.finalPasswords=[],this.substr=t,this.limit=n,this.trieRoot=a}getAllPossibleSubsAtIndex(t){const n=[];let a=this.trieRoot;for(let s=t;s=this.limit)return;if(a===this.substr.length){t===n&&this.finalPasswords.push({password:this.buffer.join(""),changes:r});return}const u=[...this.getAllPossibleSubsAtIndex(a)];let l=!1;for(let c=a+u.length-1;c>=a;c-=1){const f=u[c-a];if(f.isTerminal()){if(o===f.parents.join("")&&i>=3)continue;l=!0;const E=f.subs;for(const p of E){this.buffer.push(p);const T=r.concat({i:s,letter:p,substitution:f.parents.join("")});if(this.helper({onlyFullSub:t,isFullSub:n,index:c+1,subIndex:s+p.length,changes:T,lastSubLetter:f.parents.join(""),consecutiveSubCount:o===f.parents.join("")?i+1:1}),this.buffer.pop(),this.finalPasswords.length>=this.limit)return}}}if(!t||!l){const c=this.substr.charAt(a);this.buffer.push(c),this.helper({onlyFullSub:t,isFullSub:n&&!l,index:a+1,subIndex:s+1,changes:r,lastSubLetter:o,consecutiveSubCount:i}),this.buffer.pop()}}getAll(){return this.helper({onlyFullSub:!0,isFullSub:!0,index:0,subIndex:0,changes:[],lastSubLetter:void 0,consecutiveSubCount:0}),this.helper({onlyFullSub:!1,isFullSub:!0,index:0,subIndex:0,changes:[],lastSubLetter:void 0,consecutiveSubCount:0}),this.finalPasswords}}const qWe=(e,t,n)=>new KWe({substr:e,limit:t,trieRoot:n}).getAll(),YWe=(e,t,n)=>{const s=e.changes.filter(l=>l.il-c.letter.length+c.substitution.length,t),r=e.changes.filter(l=>l.i>=t&&l.i<=n),o=r.reduce((l,c)=>l-c.letter.length+c.substitution.length,n-t+s),i=[],u=[];return r.forEach(l=>{i.findIndex(f=>f.letter===l.letter&&f.substitution===l.substitution)<0&&(i.push({letter:l.letter,substitution:l.substitution}),u.push(`${l.substitution} -> ${l.letter}`))}),{i:s,j:o,subs:i,subDisplay:u.join(", ")}};class XWe{constructor(t){this.defaultMatch=t}isAlreadyIncluded(t,n){return t.some(a=>Object.entries(a).every(([s,r])=>s==="subs"||r===n[s]))}match({password:t}){const n=[],a=qWe(t,We.l33tMaxSubstitutions,We.trieNodeRoot);let s=!1,r=!0;return a.forEach(o=>{if(s)return;const i=this.defaultMatch({password:o.password,useLevenshtein:r});r=!1,i.forEach(u=>{s||(s=u.i===0&&u.j===t.length-1);const l=YWe(o,u.i,u.j),c=t.slice(l.i,+l.j+1||9e9),f={...u,l33t:!0,token:c,...l},E=this.isAlreadyIncluded(n,f);c.toLowerCase()!==u.matchedWord&&!E&&n.push(f)})}),n.filter(o=>o.token.length>1)}}class QWe{constructor(){this.l33t=new XWe(this.defaultMatch),this.reverse=new jWe(this.defaultMatch)}match({password:t}){const n=[...this.defaultMatch({password:t}),...this.reverse.match({password:t}),...this.l33t.match({password:t})];return gr(n)}defaultMatch({password:t,useLevenshtein:n=!0}){const a=[],s=t.length,r=t.toLowerCase();return Object.keys(We.rankedDictionaries).forEach(o=>{const i=We.rankedDictionaries[o],u=We.rankedDictionariesMaxWordSize[o],l=Math.min(u,s);for(let c=0;c{const r=n[s];r.lastIndex=0;let o;for(;o=r.exec(t);)if(o){const i=o[0];a.push({pattern:"regex",token:i,i:o.index,j:o.index+o[0].length-1,regexName:s,regexMatch:o})}}),gr(a)}}var Ms={nCk(e,t){let n=e;if(t>n)return 0;if(t===0)return 1;let a=1;for(let s=1;s<=t;s+=1)a*=n,a/=s,n-=1;return a},log10(e){return e===0?0:Math.log(e)/Math.log(10)},log2(e){return Math.log(e)/Math.log(2)},factorial(e){let t=1;for(let n=2;n<=e;n+=1)t*=n;return t}},JWe=({token:e})=>{let t=bWe**e.length;t===Number.POSITIVE_INFINITY&&(t=Number.MAX_VALUE);let n;return e.length===1?n=UO+1:n=wO+1,Math.max(t,n)},eze=({year:e,separator:t})=>{let a=Math.max(Math.abs(e-Hf),MO)*365;return t&&(a*=4),a};const tze=e=>{const t=e.split(""),n=t.filter(o=>o.match(kWe)).length,a=t.filter(o=>o.match($We)).length;let s=0;const r=Math.min(n,a);for(let o=1;o<=r;o+=1)s+=Ms.nCk(n+a,o);return s};var nze=e=>{const t=e.replace(UWe,"");if(t.match(LWe)||t.toLowerCase()===t)return 1;const n=[FO,DWe,WO],a=n.length;for(let s=0;s{let n=0,a=e.indexOf(t);for(;a>=0;)n+=1,a=e.indexOf(t,a+t.length);return n},aze=({sub:e,token:t})=>{const n=t.toLowerCase(),a=FT(n,e.substitution),s=FT(n,e.letter);return{subbedCount:a,unsubbedCount:s}};var sze=({l33t:e,subs:t,token:n})=>{if(!e)return 1;let a=1;return t.forEach(s=>{const{subbedCount:r,unsubbedCount:o}=aze({sub:s,token:n});if(r===0||o===0)a*=2;else{const i=Math.min(o,r);let u=0;for(let l=1;l<=i;l+=1)u+=Ms.nCk(o+r,l);a*=u}}),a},rze=({rank:e,reversed:t,l33t:n,subs:a,token:s,dictionaryName:r})=>{const o=e,i=nze(s),u=sze({l33t:n,subs:a,token:s}),l=t&&2||1;let c;return r==="diceware"?c=6**5/2:c=o*i*u*l,{baseGuesses:o,uppercaseVariations:i,l33tVariations:u,calculation:c}},oze=({regexName:e,regexMatch:t,token:n})=>{const a={alphaLower:26,alphaUpper:26,alpha:52,alphanumeric:62,digits:10,symbols:33};if(e in a)return a[e]**n.length;switch(e){case"recentYear":return Math.max(Math.abs(parseInt(t[0],10)-Hf),MO)}return 0},ize=({baseGuesses:e,repeatCount:t})=>e*t,uze=({token:e,ascending:t})=>{const n=e.charAt(0);let a=0;return["a","A","z","Z","0","1","9"].includes(n)?a=4:n.match(/\d/)?a=10:a=26,t||(a*=2),a*e.length};const lze=e=>{let t=0;return Object.keys(e).forEach(n=>{const a=e[n];t+=a.filter(s=>!!s).length}),t/=Object.entries(e).length,t},cze=({token:e,graph:t,turns:n})=>{const a=Object.keys(We.graphs[t]).length,s=lze(We.graphs[t]);let r=0;const o=e.length;for(let i=2;i<=o;i+=1){const u=Math.min(n,i-1);for(let l=1;l<=u;l+=1)r+=Ms.nCk(i-1,l-1)*a*s**l}return r};var dze=({graph:e,token:t,shiftedCount:n,turns:a})=>{let s=cze({token:t,graph:e,turns:a});if(n){const r=t.length-n;if(n===0||r===0)s*=2;else{let o=0;for(let i=1;i<=Math.min(n,r);i+=1)o+=Ms.nCk(n+r,i);s*=o}}return Math.round(s)},Eze=()=>FWe;const fze=(e,t)=>{let n=1;return e.token.lengthWT[e]?WT[e](t):We.matchers[e]&&"scoring"in We.matchers[e]?We.matchers[e].scoring(t):0;var mze=(e,t)=>{const n={};if("guesses"in e&&e.guesses!=null)return e;const a=fze(e,t),s=pze(e.pattern,e);let r=0;typeof s=="number"?r=s:e.pattern==="dictionary"&&(r=s.calculation,n.baseGuesses=s.baseGuesses,n.uppercaseVariations=s.uppercaseVariations,n.l33tVariations=s.l33tVariations);const o=Math.max(r,a);return{...e,...n,guesses:o,guessesLog10:Ms.log10(o)}};const gn={password:"",optimal:{},excludeAdditive:!1,separatorRegex:void 0,fillArray(e,t){const n=[];for(let a=0;a1&&(s*=this.optimal.pi[a.i-1][t-1]);let r=Ms.factorial(t)*s;this.excludeAdditive||(r+=CWe**(t-1));let o=!1;Object.keys(this.optimal.g[n]).forEach(i=>{const u=this.optimal.g[n][i];parseInt(i,10)<=t&&u<=r&&(o=!0)}),o||(this.optimal.g[n][t]=r,this.optimal.m[n][t]=a,this.optimal.pi[n][t]=s)},bruteforceUpdate(e){let t=this.makeBruteforceMatch(0,e);this.update(t,1);for(let n=1;n<=e;n+=1){t=this.makeBruteforceMatch(n,e);const a=this.optimal.m[n-1];Object.keys(a).forEach(s=>{a[s].pattern!=="bruteforce"&&this.update(t,parseInt(s,10)+1)})}},unwind(e){const t=[];let n=e-1,a=0,s=1/0;const r=this.optimal.g[n];for(r&&Object.keys(r).forEach(o=>{const i=r[o];i=0;){const o=this.optimal.m[n][a];t.unshift(o),n=o.i-1,a-=1}return t}};var fE={mostGuessableMatchSequence(e,t,n=!1){gn.password=e,gn.excludeAdditive=n;const a=e.length;let s=gn.fillArray(a,"array");t.forEach(u=>{s[u.j].push(u)}),s=s.map(u=>u.sort((l,c)=>l.i-c.i)),gn.optimal={m:gn.fillArray(a,"object"),pi:gn.fillArray(a,"object"),g:gn.fillArray(a,"object")};for(let u=0;u{l.i>0?Object.keys(gn.optimal.m[l.i-1]).forEach(c=>{gn.update(l,parseInt(c,10)+1)}):gn.update(l,1)}),gn.bruteforceUpdate(u);const r=gn.unwind(a),o=r.length,i=this.getGuesses(e,o);return{password:e,guesses:i,guessesLog10:Ms.log10(i),sequence:r}},getGuesses(e,t){const n=e.length;let a=0;return e.length===0?a=1:a=gn.optimal.g[n-1][t],a}};class _ze{match({password:t,omniMatch:n}){const a=[];let s=0;for(;so instanceof Promise)?Promise.all(a):a}normalizeMatch(t,n,a,s){const r={pattern:"repeat",i:a.index,j:n,token:a[0],baseToken:t,baseGuesses:0,repeatCount:a[0].length/t.length};return s instanceof Promise?s.then(o=>({...r,baseGuesses:o})):{...r,baseGuesses:s}}getGreedyMatch(t,n){const a=/(.+)\1+/g;return a.lastIndex=n,a.exec(t)}getLazyMatch(t,n){const a=/(.+?)\1+/g;return a.lastIndex=n,a.exec(t)}setMatchToken(t,n){const a=/^(.+?)\1+$/;let s,r="";if(n&&t[0].length>n[0].length){s=t;const o=a.exec(s[0]);o&&(r=o[1])}else s=n,s&&(r=s[1]);return{match:s,baseToken:r}}getBaseGuesses(t,n){const a=n.match(t);return a instanceof Promise?a.then(r=>fE.mostGuessableMatchSequence(t,r).guesses):fE.mostGuessableMatchSequence(t,a).guesses}}class Tze{constructor(){this.MAX_DELTA=5}match({password:t}){const n=[];if(t.length===1)return[];let a=0,s=null;const r=t.length;for(let o=1;o1||Math.abs(a)===1){const o=Math.abs(a);if(o>0&&o<=this.MAX_DELTA){const i=s.slice(t,+n+1||9e9),{sequenceName:u,sequenceSpace:l}=this.getSequence(i);return r.push({pattern:"sequence",i:t,j:n,token:s.slice(t,+n+1||9e9),sequenceName:u,sequenceSpace:l,ascending:a>0})}}return null}getSequence(t){let n="unicode",a=26;return yWe.test(t)?(n="lower",a=26):PWe.test(t)?(n="upper",a=26):wWe.test(t)&&(n="digits",a=10),{sequenceName:n,sequenceSpace:a}}}class hze{constructor(){this.SHIFTED_RX=/[~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>?]/}match({password:t}){const n=[];return Object.keys(We.graphs).forEach(a=>{const s=We.graphs[a];EE(n,this.helper(t,s,a))}),gr(n)}checkIfShifted(t,n,a){return!t.includes("keypad")&&this.SHIFTED_RX.test(n.charAt(a))?1:0}helper(t,n,a){let s;const r=[];let o=0;const i=t.length;for(;o2&&r.push({pattern:"spatial",i:o,j:u-1,token:t.slice(o,u),graph:a,turns:c,shiftedCount:s}),o=u;break}}}return r}}const Sze=new RegExp(`[${zO.join("")}]`);class al{static getMostUsedSeparatorChar(t){const n=[...t.split("").filter(s=>Sze.test(s)).reduce((s,r)=>{const o=s.get(r);return o?s.set(r,o+1):s.set(r,1),s},new Map).entries()].sort(([s,r],[o,i])=>i-r);if(!n.length)return;const a=n[0];if(!(a[1]<2))return a[0]}static getSeparatorRegex(t){return new RegExp(`([^${t} +])(${t})(?!${t})`,"g")}match({password:t}){const n=[];if(t.length===0)return n;const a=al.getMostUsedSeparatorChar(t);if(a===void 0)return n;const s=al.getSeparatorRegex(a);for(const r of t.matchAll(s)){if(r.index===void 0)continue;const o=r.index+1;n.push({pattern:"separator",token:a,i:o,j:o})}return n}}class Aze{constructor(){this.matchers={date:WWe,dictionary:QWe,regex:ZWe,repeat:_ze,sequence:Tze,spatial:hze,separator:al}}match(t){const n=[],a=[];return[...Object.keys(this.matchers),...Object.keys(We.matchers)].forEach(r=>{if(!this.matchers[r]&&!We.matchers[r])return;const o=this.matchers[r]?this.matchers[r]:We.matchers[r].Matching,u=new o().match({password:t,omniMatch:this});u instanceof Promise?(u.then(l=>{EE(n,l)}),a.push(u)):EE(n,u)}),a.length>0?new Promise((r,o)=>{Promise.all(a).then(()=>{r(gr(n))}).catch(i=>{o(i)})}):gr(n)}}const xO=1,BO=xO*60,GO=BO*60,HO=GO*24,VO=HO*31,jO=VO*12,Oze=jO*100,Mc={second:xO,minute:BO,hour:GO,day:HO,month:VO,year:jO,century:Oze};class gze{translate(t,n){let a=t;n!==void 0&&n!==1&&(a+="s");const{timeEstimation:s}=We.translations;return s[a].replace("{base}",`${n}`)}estimateAttackTimes(t){const n={onlineThrottling100PerHour:t/.027777777777777776,onlineNoThrottling10PerSecond:t/10,offlineSlowHashing1e4PerSecond:t/1e4,offlineFastHashing1e10PerSecond:t/1e10},a={onlineThrottling100PerHour:"",onlineNoThrottling10PerSecond:"",offlineSlowHashing1e4PerSecond:"",offlineFastHashing1e10PerSecond:""};return Object.keys(n).forEach(s=>{const r=n[s];a[s]=this.displayTime(r)}),{crackTimesSeconds:n,crackTimesDisplay:a,score:this.guessesToScore(t)}}guessesToScore(t){return t<1005?0:t<1000005?1:t<100000005?2:t<1e10+5?3:4}displayTime(t){let n="centuries",a;const s=Object.keys(Mc),r=s.findIndex(o=>t-1&&(n=s[r-1],r!==0?a=Math.round(t/Mc[n]):n="ltSecond"),this.translate(n,a)}}var Ize=()=>null,Rze=()=>({warning:We.translations.warnings.dates,suggestions:[We.translations.suggestions.dates]});const Nze=(e,t)=>{let n=null;return t&&!e.l33t&&!e.reversed?e.rank<=10?n=We.translations.warnings.topTen:e.rank<=100?n=We.translations.warnings.topHundred:n=We.translations.warnings.common:e.guessesLog10<=4&&(n=We.translations.warnings.similarToCommon),n},vze=(e,t)=>{let n=null;return t&&(n=We.translations.warnings.wordByItself),n},bze=(e,t)=>t?We.translations.warnings.namesByThemselves:We.translations.warnings.commonNames,Cze=(e,t)=>{let n=null;const a=e.dictionaryName,s=a==="lastnames"||a.toLowerCase().includes("firstnames");return a==="passwords"?n=Nze(e,t):a.includes("wikipedia")?n=vze(e,t):s?n=bze(e,t):a==="userInputs"&&(n=We.translations.warnings.userInputs),n};var Dze=(e,t)=>{const n=Cze(e,t),a=[],s=e.token;return s.match(FO)?a.push(We.translations.suggestions.capitalization):s.match(WO)&&s.toLowerCase()!==s&&a.push(We.translations.suggestions.allUppercase),e.reversed&&e.token.length>=4&&a.push(We.translations.suggestions.reverseWords),e.l33t&&a.push(We.translations.suggestions.l33t),{warning:n,suggestions:a}},Pze=e=>e.regexName==="recentYear"?{warning:We.translations.warnings.recentYears,suggestions:[We.translations.suggestions.recentYears,We.translations.suggestions.associatedYears]}:{warning:null,suggestions:[]},yze=e=>{let t=We.translations.warnings.extendedRepeat;return e.baseToken.length===1&&(t=We.translations.warnings.simpleRepeat),{warning:t,suggestions:[We.translations.suggestions.repeated]}},Lze=()=>({warning:We.translations.warnings.sequences,suggestions:[We.translations.suggestions.sequences]}),$ze=e=>{let t=We.translations.warnings.keyPattern;return e.turns===1&&(t=We.translations.warnings.straightRow),{warning:t,suggestions:[We.translations.suggestions.longerKeyboardPattern]}},kze=()=>null;const zT={warning:null,suggestions:[]};class Uze{constructor(){this.matchers={bruteforce:Ize,date:Rze,dictionary:Dze,regex:Pze,repeat:yze,sequence:Lze,spatial:$ze,separator:kze},this.defaultFeedback={warning:null,suggestions:[]},this.setDefaultSuggestions()}setDefaultSuggestions(){this.defaultFeedback.suggestions.push(We.translations.suggestions.useWords,We.translations.suggestions.noNeed)}getFeedback(t,n){if(n.length===0)return this.defaultFeedback;if(t>2)return zT;const a=We.translations.suggestions.anotherWord,s=this.getLongestMatch(n);let r=this.getMatchFeedback(s,n.length===1);return r!=null?r.suggestions.unshift(a):r={warning:null,suggestions:[a]},r}getLongestMatch(t){let n=t[0];return t.slice(1).forEach(s=>{s.token.length>n.token.length&&(n=s)}),n}getMatchFeedback(t,n){return this.matchers[t.pattern]?this.matchers[t.pattern](t,n):We.matchers[t.pattern]&&"feedback"in We.matchers[t.pattern]?We.matchers[t.pattern].feedback(t,n):zT}}const KO=()=>new Date().getTime(),wze=(e,t,n)=>{const a=new Uze,s=new gze,r=fE.mostGuessableMatchSequence(t,e),o=KO()-n,i=s.estimateAttackTimes(r.guesses);return{calcTime:o,...r,...i,feedback:a.getFeedback(i.score,r.sequence)}},Mze=(e,t)=>new Aze().match(e),Fze=(e,t)=>{const n=KO(),a=Mze(e);if(a instanceof Promise)throw new Error("You are using a Promised matcher, please use `zxcvbnAsync` for it.");return wze(a,e,n)},Wze="modulepreload",zze=function(e){return"/"+e},xT={},Ut=function(t,n,a){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const r=document.querySelector("meta[property=csp-nonce]"),o=(r==null?void 0:r.nonce)||(r==null?void 0:r.getAttribute("nonce"));s=Promise.all(n.map(i=>{if(i=zze(i),i in xT)return;xT[i]=!0;const u=i.endsWith(".css"),l=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${i}"]${l}`))return;const c=document.createElement("link");if(c.rel=u?"stylesheet":Wze,u||(c.as="script",c.crossOrigin=""),c.href=i,o&&c.setAttribute("nonce",o),document.head.appendChild(c),u)return new Promise((f,E)=>{c.addEventListener("load",f),c.addEventListener("error",()=>E(new Error(`Unable to preload CSS for ${i}`)))})}))}return s.then(()=>t()).catch(r=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=r,window.dispatchEvent(o),!o.defaultPrevented)throw r})},xze=async e=>{switch(e){case"fr":return await Ut(()=>import("./password.fr-LQIeIoMk.js"),[]);case"de":return await Ut(()=>import("./password.de-SDMVbHi1.js"),[]);case"it":return await Ut(()=>import("./password.it-CReO5S7F.js"),[]);case"es":return await Ut(()=>import("./password.es-es-DLU3Rh6X.js"),[]);case"pl":return await Ut(()=>import("./password.pl-T3z7Kg0O.js"),[]);case"cs":return await Ut(()=>import("./password.cs-CLn3Tyh5.js"),[]);default:return await Ut(()=>import("./password.en-BDtqNyGO.js"),[])}},BT=async e=>{const t=await Ut(()=>import("./password.common-bdamX4EN.js"),[]),n=await xze(e),a={graphs:t.adjacencyGraphs,dictionary:{...t.dictionary,...n.dictionary}};We.setOptions(a)},Bze=e=>{switch(e){case 2:return"AVERAGE";case 3:return"GOOD";case 4:return"STRONG";default:return"WEAK"}},Gze={class:"password-strength"},Hze={for:"password-strength",class:"visually-hidden"},Vze=["value"],jze={key:0,class:"password-strength-details"},Kze={class:"password-strength-value"},qze={key:0,class:"info-box"},Yze={class:"password-feedback"},Xze=te({__name:"PasswordStength",props:{password:{}},setup(e){const t=e,{password:n}=me(t),a=ke(),s=w(()=>a.getters[K.GETTERS.LANGUAGE]),r=w(()=>a.getters[Q.GETTERS.IS_SUCCESS]),o=de(0),i=de(""),u=de([]),l=de("0% 100%");ft(async()=>await BT(s.value));function c(f){const E=Fze(f);o.value=E.score,i.value=Bze(o.value),u.value=E.feedback.suggestions,l.value=o.value*100/4+"% 100%"}return Me(()=>s.value,async f=>{await BT(f)}),Me(()=>n.value,async f=>{r.value?i.value="":c(f)}),(f,E)=>(h(),I("div",Gze,[d("label",Hze,_(f.$t("user.PASSWORD_STRENGTH.LABEL")),1),d("input",{id:"password-strength",class:Te(["password-slider",`strength-${o.value}`]),style:ba({backgroundSize:l.value}),type:"range",value:o.value,min:"0",max:"4",step:"1",tabindex:-1,autocomplete:"off"},null,14,Vze),i.value?(h(),I("div",jze,[d("span",Kze,_(f.$t("user.PASSWORD_STRENGTH.LABEL"))+": "+_(f.$t(`user.PASSWORD_STRENGTH.${i.value}`)),1),u.value.length>0?(h(),I("div",qze,[d("ul",Yze,[(h(!0),I(pe,null,Pe(u.value,p=>(h(),I("li",{key:p},_(f.$t(`user.PASSWORD_STRENGTH.SUGGESTIONS.${p}`)),1))),128))])])):M("",!0)])):M("",!0)]))}}),Qze=ie(Xze,[["__scopeId","data-v-338d49ea"]]),Zze=e=>(rt("data-v-0caa3bff"),e=e(),ot(),e),Jze={class:"password-input"},exe=["id","disabled","placeholder","required","type","autocomplete"],txe={class:"show-password"},nxe={key:0,class:"form-info"},axe=Zze(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),sxe=te({__name:"PasswordInput",props:{checkStrength:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},id:{default:"password"},password:{default:""},placeholder:{},required:{type:Boolean,default:!1},autocomplete:{}},emits:["updatePassword","passwordError"],setup(e,{emit:t}){const n=e,{autocomplete:a,checkStrength:s,disabled:r,id:o,password:i,placeholder:u,required:l}=me(n),c=de(!1),f=de(""),E=t;function p(){c.value=!c.value}function T(R){E("updatePassword",R.target.value)}function O(){E("passwordError")}return Me(()=>i.value,R=>{R===""&&(f.value="",c.value=!1)}),(R,g)=>(h(),I("div",Jze,[ye(d("input",{id:m(o),disabled:m(r),placeholder:m(u),required:m(l),type:c.value?"text":"password","onUpdate:modelValue":g[0]||(g[0]=N=>f.value=N),minlength:"8",onInput:T,onInvalid:O,autocomplete:m(a)},null,40,exe),[[CN,f.value]]),d("div",txe,[d("button",{class:"transparent",onClick:be(p,["prevent"]),type:"button"},[V(_(R.$t(`user.${c.value?"HIDE":"SHOW"}_PASSWORD`))+" ",1),d("i",{class:Te(["fa",`fa-eye${c.value?"-slash":""}`]),"aria-hidden":"true"},null,2)])]),m(s)?(h(),I("div",nxe,[axe,V(" "+_(R.$t("user.PASSWORD_INFO")),1)])):M("",!0),m(s)?(h(),Y(Qze,{key:1,password:f.value},null,8,["password"])):M("",!0)]))}}),pE=ie(sxe,[["__scopeId","data-v-0caa3bff"]]),Vf=e=>(rt("data-v-d6bbef04"),e=e(),ot(),e),rxe={id:"user-infos-edition"},oxe={class:"profile-form form-box"},ixe={key:1,class:"info-box success-message"},uxe={class:"form-items",for:"email"},lxe=["disabled"],cxe={class:"form-items",for:"password-field"},dxe={class:"form-items",for:"new-password-field"},Exe={class:"form-buttons"},fxe={class:"confirm",type:"submit"},pxe={class:"data-export"},mxe={class:"info-box"},_xe=Vf(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),Txe={key:0,class:"data-export-archive"},hxe=Vf(()=>d("i",{class:"fa fa-download","aria-hidden":"true"},null,-1)),Sxe={key:1},Axe={key:2},Oxe=Vf(()=>d("i",{class:"fa fa-spinner fa-pulse","aria-hidden":"true"},null,-1)),gxe=te({__name:"UserAccountEdition",props:{user:{}},setup(e){const t=e,{user:n}=me(t),a=ke(),s=Ht({email:"",password:"",new_password:""}),r=w(()=>a.getters[Q.GETTERS.USER_LOADING]),o=w(()=>a.getters[K.GETTERS.APP_CONFIG]),i=w(()=>a.getters[Q.GETTERS.IS_SUCCESS]),u=de(!1),l=w(()=>a.getters[K.GETTERS.ERROR_MESSAGES]),c=de(!1),f=de(!1),E=w(()=>a.getters[Q.GETTERS.EXPORT_REQUEST]),p=w(()=>S()),T=de(!1);St(()=>{t.user&&(a.dispatch(Q.ACTIONS.GET_REQUEST_DATA_EXPORT),R(t.user))});function O(){c.value=!0}function R(z){s.email=z.email}function g(z){s.password=z}function N(z){s.new_password=z}function S(){return E.value?Wn(E.value.created_at,n.value.timezone,n.value.date_format,!0,null,!0):null}function A(){return p.value?tD(new Date(p.value),sD(new Date,1)):!0}function v(){const z={email:s.email,password:s.password};s.new_password&&(z.new_password=s.new_password),u.value=s.email!==n.value.email,a.dispatch(Q.ACTIONS.UPDATE_USER_ACCOUNT,z)}function D(z){f.value=z}function y(z){a.dispatch(Q.ACTIONS.DELETE_ACCOUNT,{username:z})}function b(){a.dispatch(Q.ACTIONS.REQUEST_DATA_EXPORT)}async function k(z){T.value=!0,await Be.get(`/auth/account/export/${z}`,{responseType:"blob"}).then(L=>{const W=window.URL.createObjectURL(new Blob([L.data],{type:"application/zip"})),X=document.createElement("a");X.href=W,X.setAttribute("download",z),document.body.appendChild(X),X.click()}).finally(()=>T.value=!1)}return pt(()=>{a.commit(Q.MUTATIONS.UPDATE_IS_SUCCESS,!1),a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),Me(()=>i.value,async z=>{z&&(g(""),N(""),R(n.value),c.value=!1)}),Me(()=>n.value.email,async()=>{R(n.value)}),(z,L)=>{const W=oe("Modal"),X=oe("ErrorMessage");return h(),I("div",rxe,[f.value?(h(),Y(W,{key:0,title:z.$t("common.CONFIRMATION"),message:z.$t("user.CONFIRM_ACCOUNT_DELETION"),onConfirmAction:L[0]||(L[0]=re=>y(m(n).username)),onCancelAction:L[1]||(L[1]=re=>D(!1)),onKeydown:L[2]||(L[2]=Je(re=>D(!1),["esc"]))},null,8,["title","message"])):M("",!0),d("div",oxe,[l.value?(h(),Y(X,{key:0,message:l.value},null,8,["message"])):M("",!0),i.value?(h(),I("div",ixe,_(z.$t(`user.PROFILE.SUCCESSFUL_${u.value&&o.value.is_email_sending_enabled?"EMAIL_":""}UPDATE`)),1)):M("",!0),d("form",{class:Te({errors:c.value}),onSubmit:be(v,["prevent"])},[d("label",uxe,[V(_(z.$t("user.EMAIL"))+"* ",1),ye(d("input",{id:"email","onUpdate:modelValue":L[3]||(L[3]=re=>s.email=re),disabled:r.value,required:!0,onInvalid:O,autocomplete:"email"},null,40,lxe),[[tt,s.email]])]),d("label",cxe,[V(_(z.$t("user.CURRENT_PASSWORD"))+"* ",1),F(pE,{id:"password-field",disabled:r.value,password:s.password,required:!0,onUpdatePassword:g,onPasswordError:O,autocomplete:"current-password"},null,8,["disabled","password"])]),d("label",dxe,[V(_(z.$t("user.NEW_PASSWORD"))+" ",1),F(pE,{id:"new-password-field",disabled:r.value,checkStrength:!0,password:s.new_password,isSuccess:!1,onUpdatePassword:N,onPasswordError:O,autocomplete:"new-password"},null,8,["disabled","password"])]),d("div",Exe,[d("button",fxe,_(z.$t("buttons.SUBMIT")),1),d("button",{class:"cancel",onClick:L[4]||(L[4]=be(re=>z.$router.push("/profile"),["prevent"]))},_(z.$t("buttons.CANCEL")),1),d("button",{class:"danger",onClick:L[5]||(L[5]=be(re=>D(!0),["prevent"]))},_(z.$t("buttons.DELETE_MY_ACCOUNT")),1),A()?(h(),I("button",{key:0,class:"confirm",onClick:be(b,["prevent"])},_(z.$t("buttons.REQUEST_DATA_EXPORT")),1)):M("",!0)])],34),d("div",pxe,[d("span",mxe,[_xe,V(" "+_(z.$t("user.EXPORT_REQUEST.ONLY_ONE_EXPORT_PER_DAY")),1)]),E.value?(h(),I("div",Txe,[V(_(z.$t("user.EXPORT_REQUEST.DATA_EXPORT"))+" ("+_(p.value)+"): ",1),E.value.status==="successful"?(h(),I("span",{key:0,class:"archive-link",onClick:L[6]||(L[6]=be(re=>k(E.value.file_name),["prevent"]))},[hxe,V(" "+_(z.$t("user.EXPORT_REQUEST.DOWNLOAD_ARCHIVE"))+" ("+_(m(_u)(E.value.file_size))+") ",1)])):(h(),I("span",Sxe,_(z.$t(`user.EXPORT_REQUEST.STATUS.${E.value.status}`)),1)),T.value?(h(),I("span",Axe,[V(_(z.$t("user.EXPORT_REQUEST.GENERATING_LINK"))+" ",1),Oxe])):M("",!0)])):M("",!0)])])])}}}),Ixe=ie(gxe,[["__scopeId","data-v-d6bbef04"]]),Rxe={id:"user-infos-edition"},Nxe={class:"profile-form form-box"},vxe={class:"form-items",for:"registrationDate"},bxe=["value"],Cxe={class:"form-items",for:"first_name"},Dxe=["disabled"],Pxe={class:"form-items",for:"last_name"},yxe={class:"form-items",for:"birth_date"},Lxe=["disabled"],$xe={class:"form-items",for:"location"},kxe=["disabled"],Uxe={class:"form-items"},wxe={class:"form-buttons"},Mxe={class:"confirm",type:"submit"},Fxe=te({__name:"UserInfosEdition",props:{user:{}},setup(e){const t=e,n=ke(),a=Ht({first_name:"",last_name:"",birth_date:"",location:"",bio:""}),s=w(()=>t.user.created_at?Wn(t.user.created_at,t.user.timezone,t.user.date_format):""),r=w(()=>n.getters[Q.GETTERS.USER_LOADING]),o=w(()=>n.getters[K.GETTERS.ERROR_MESSAGES]);St(()=>{t.user&&i(t.user)});function i(c){a.first_name=c.first_name?c.first_name:"",a.last_name=c.last_name?c.last_name:"",a.birth_date=c.birth_date?un(new Date(c.birth_date),"yyyy-MM-dd"):"",a.location=c.location?c.location:"",a.bio=c.bio?c.bio:""}function u(c){a.bio=c}function l(){n.dispatch(Q.ACTIONS.UPDATE_USER_PROFILE,a)}return pt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),(c,f)=>{const E=oe("ErrorMessage"),p=oe("CustomTextArea");return h(),I("div",Rxe,[d("div",Nxe,[o.value?(h(),Y(E,{key:0,message:o.value},null,8,["message"])):M("",!0),d("form",{onSubmit:be(l,["prevent"])},[d("label",vxe,[V(_(c.$t("user.PROFILE.REGISTRATION_DATE"))+" ",1),d("input",{id:"registrationDate",value:s.value,disabled:""},null,8,bxe)]),d("label",Cxe,[V(_(c.$t("user.PROFILE.FIRST_NAME"))+" ",1),ye(d("input",{id:"first_name","onUpdate:modelValue":f[0]||(f[0]=T=>a.first_name=T),disabled:r.value},null,8,Dxe),[[tt,a.first_name]])]),d("label",Pxe,[V(_(c.$t("user.PROFILE.LAST_NAME"))+" ",1),ye(d("input",{id:"last_name","onUpdate:modelValue":f[1]||(f[1]=T=>a.last_name=T)},null,512),[[tt,a.last_name]])]),d("label",yxe,[V(_(c.$t("user.PROFILE.BIRTH_DATE"))+" ",1),ye(d("input",{id:"birth_date",type:"date",class:"birth-date","onUpdate:modelValue":f[2]||(f[2]=T=>a.birth_date=T),disabled:r.value},null,8,Lxe),[[tt,a.birth_date]])]),d("label",$xe,[V(_(c.$t("user.PROFILE.LOCATION"))+" ",1),ye(d("input",{id:"location","onUpdate:modelValue":f[3]||(f[3]=T=>a.location=T),disabled:r.value},null,8,kxe),[[tt,a.location]])]),d("label",Uxe,[V(_(c.$t("user.PROFILE.BIO"))+" ",1),F(p,{name:"bio",charLimit:200,input:a.bio,disabled:r.value,onUpdateValue:u},null,8,["input","disabled"])]),d("div",wxe,[d("button",Mxe,_(c.$t("buttons.SUBMIT")),1),d("button",{class:"cancel",onClick:f[4]||(f[4]=be(T=>c.$router.push("/profile"),["prevent"]))},_(c.$t("buttons.CANCEL")),1)])],32)])])}}}),Wxe=ie(Fxe,[["__scopeId","data-v-d124143f"]]),zxe=e=>(rt("data-v-92649ccc"),e=e(),ot(),e),xxe={id:"user-picture-edition"},Bxe={class:"user-picture-form"},Gxe={class:"picture-help"},Hxe={class:"info-box"},Vxe=zxe(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),jxe={class:"picture-buttons"},Kxe=["disabled"],qxe=te({__name:"UserPictureEdition",props:{user:{}},setup(e){const t=e,n=ke(),{user:a}=me(t),s=w(()=>n.getters[K.GETTERS.ERROR_MESSAGES]),r=w(()=>n.getters[K.GETTERS.APP_CONFIG]),o=r.value.max_single_file_size?_u(r.value.max_single_file_size):"",i=de(null);function u(){n.dispatch(Q.ACTIONS.DELETE_PICTURE)}function l(f){f.target.files!==null&&(i.value=f.target.files[0])}function c(){i.value&&n.dispatch(Q.ACTIONS.UPDATE_USER_PICTURE,{picture:i.value})}return pt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),(f,E)=>{const p=oe("ErrorMessage");return h(),I("div",xxe,[d("div",Bxe,[s.value?(h(),Y(p,{key:0,message:s.value},null,8,["message"])):M("",!0),F(Go,{user:m(a)},null,8,["user"]),d("form",{onSubmit:be(c,["prevent"])},[d("input",{type:"file",name:"picture",accept:".png,.jpg,.gif",onInput:l},null,32),d("div",Gxe,[d("span",Hxe,[Vxe,V(" "+_(f.$t("workouts.MAX_SIZE"))+": "+_(m(o)),1)])]),d("div",jxe,[d("button",{type:"submit",disabled:!i.value},_(f.$t("user.PROFILE.PICTURE_UPDATE")),9,Kxe),m(a).picture?(h(),I("button",{key:0,class:"danger",onClick:u},_(f.$t("user.PROFILE.PICTURE_REMOVE")),1)):M("",!0),d("button",{class:"cancel",onClick:E[0]||(E[0]=T=>f.$router.push("/profile"))},_(f.$t("user.PROFILE.BACK_TO_PROFILE")),1)])],32)])])}}}),Yxe=ie(qxe,[["__scopeId","data-v-92649ccc"]]),GT=["Africa/Abidjan","Africa/Accra","Africa/Algiers","Africa/Bissau","Africa/Cairo","Africa/Casablanca","Africa/Ceuta","Africa/El_Aaiun","Africa/Johannesburg","Africa/Juba","Africa/Khartoum","Africa/Lagos","Africa/Maputo","Africa/Monrovia","Africa/Nairobi","Africa/Ndjamena","Africa/Sao_Tome","Africa/Tripoli","Africa/Tunis","Africa/Windhoek","America/Adak","America/Anchorage","America/Araguaina","America/Argentina/Buenos_Aires","America/Argentina/Catamarca","America/Argentina/Cordoba","America/Argentina/Jujuy","America/Argentina/La_Rioja","America/Argentina/Mendoza","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Asuncion","America/Atikokan","America/Bahia","America/Bahia_Banderas","America/Barbados","America/Belem","America/Belize","America/Blanc-Sablon","America/Boa_Vista","America/Bogota","America/Boise","America/Cambridge_Bay","America/Campo_Grande","America/Cancun","America/Caracas","America/Cayenne","America/Chicago","America/Chihuahua","America/Costa_Rica","America/Creston","America/Cuiaba","America/Curacao","America/Danmarkshavn","America/Dawson","America/Dawson_Creek","America/Denver","America/Detroit","America/Edmonton","America/Eirunepe","America/El_Salvador","America/Fortaleza","America/Fort_Nelson","America/Glace_Bay","America/Godthab","America/Goose_Bay","America/Grand_Turk","America/Guatemala","America/Guayaquil","America/Guyana","America/Halifax","America/Havana","America/Hermosillo","America/Indiana/Indianapolis","America/Indiana/Knox","America/Indiana/Marengo","America/Indiana/Petersburg","America/Indiana/Tell_City","America/Indiana/Vevay","America/Indiana/Vincennes","America/Indiana/Winamac","America/Inuvik","America/Iqaluit","America/Jamaica","America/Juneau","America/Kentucky/Louisville","America/Kentucky/Monticello","America/La_Paz","America/Lima","America/Los_Angeles","America/Maceio","America/Managua","America/Manaus","America/Martinique","America/Matamoros","America/Mazatlan","America/Menominee","America/Merida","America/Metlakatla","America/Mexico_City","America/Miquelon","America/Moncton","America/Monterrey","America/Montevideo","America/Nassau","America/New_York","America/Nipigon","America/Nome","America/Noronha","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Ojinaga","America/Panama","America/Pangnirtung","America/Paramaribo","America/Phoenix","America/Port-au-Prince","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Punta_Arenas","America/Rainy_River","America/Rankin_Inlet","America/Recife","America/Regina","America/Resolute","America/Rio_Branco","America/Santarem","America/Santiago","America/Santo_Domingo","America/Sao_Paulo","America/Scoresbysund","America/Sitka","America/St_Johns","America/Swift_Current","America/Tegucigalpa","America/Thule","America/Thunder_Bay","America/Tijuana","America/Toronto","America/Vancouver","America/Whitehorse","America/Winnipeg","America/Yakutat","America/Yellowknife","Antarctica/Casey","Antarctica/Davis","Antarctica/DumontDUrville","Antarctica/Macquarie","Antarctica/Mawson","Antarctica/Palmer","Antarctica/Rothera","Antarctica/Syowa","Antarctica/Troll","Antarctica/Vostok","Asia/Almaty","Asia/Amman","Asia/Anadyr","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Atyrau","Asia/Baghdad","Asia/Baku","Asia/Bangkok","Asia/Barnaul","Asia/Beirut","Asia/Bishkek","Asia/Brunei","Asia/Chita","Asia/Choibalsan","Asia/Colombo","Asia/Damascus","Asia/Dhaka","Asia/Dili","Asia/Dubai","Asia/Dushanbe","Asia/Famagusta","Asia/Gaza","Asia/Hebron","Asia/Ho_Chi_Minh","Asia/Hong_Kong","Asia/Hovd","Asia/Irkutsk","Asia/Jakarta","Asia/Jayapura","Asia/Jerusalem","Asia/Kabul","Asia/Kamchatka","Asia/Karachi","Asia/Kathmandu","Asia/Khandyga","Asia/Kolkata","Asia/Krasnoyarsk","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Macau","Asia/Magadan","Asia/Makassar","Asia/Manila","Asia/Nicosia","Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk","Asia/Oral","Asia/Pontianak","Asia/Pyongyang","Asia/Qatar","Asia/Qostanay","Asia/Qyzylorda","Asia/Riyadh","Asia/Sakhalin","Asia/Samarkand","Asia/Seoul","Asia/Shanghai","Asia/Singapore","Asia/Srednekolymsk","Asia/Taipei","Asia/Tashkent","Asia/Tbilisi","Asia/Tehran","Asia/Thimphu","Asia/Tokyo","Asia/Tomsk","Asia/Ulaanbaatar","Asia/Urumqi","Asia/Ust-Nera","Asia/Vladivostok","Asia/Yakutsk","Asia/Yangon","Asia/Yekaterinburg","Asia/Yerevan","Atlantic/Azores","Atlantic/Bermuda","Atlantic/Canary","Atlantic/Cape_Verde","Atlantic/Faroe","Atlantic/Madeira","Atlantic/Reykjavik","Atlantic/South_Georgia","Atlantic/Stanley","Australia/Adelaide","Australia/Brisbane","Australia/Broken_Hill","Australia/Currie","Australia/Darwin","Australia/Eucla","Australia/Hobart","Australia/Lindeman","Australia/Lord_Howe","Australia/Melbourne","Australia/Perth","Australia/Sydney","Europe/Amsterdam","Europe/Andorra","Europe/Astrakhan","Europe/Athens","Europe/Belgrade","Europe/Berlin","Europe/Brussels","Europe/Bucharest","Europe/Budapest","Europe/Chisinau","Europe/Copenhagen","Europe/Dublin","Europe/Gibraltar","Europe/Helsinki","Europe/Istanbul","Europe/Kaliningrad","Europe/Kiev","Europe/Kirov","Europe/Lisbon","Europe/London","Europe/Luxembourg","Europe/Madrid","Europe/Malta","Europe/Minsk","Europe/Monaco","Europe/Moscow","Europe/Oslo","Europe/Paris","Europe/Prague","Europe/Riga","Europe/Rome","Europe/Samara","Europe/Saratov","Europe/Simferopol","Europe/Sofia","Europe/Stockholm","Europe/Tallinn","Europe/Tirane","Europe/Ulyanovsk","Europe/Uzhgorod","Europe/Vienna","Europe/Vilnius","Europe/Volgograd","Europe/Warsaw","Europe/Zaporozhye","Europe/Zurich","Indian/Chagos","Indian/Christmas","Indian/Cocos","Indian/Kerguelen","Indian/Mahe","Indian/Maldives","Indian/Mauritius","Indian/Reunion","Pacific/Apia","Pacific/Auckland","Pacific/Bougainville","Pacific/Chatham","Pacific/Chuuk","Pacific/Easter","Pacific/Efate","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Fiji","Pacific/Funafuti","Pacific/Galapagos","Pacific/Gambier","Pacific/Guadalcanal","Pacific/Guam","Pacific/Honolulu","Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein","Pacific/Majuro","Pacific/Marquesas","Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea","Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn","Pacific/Pohnpei","Pacific/Port_Moresby","Pacific/Rarotonga","Pacific/Tahiti","Pacific/Tarawa","Pacific/Tongatapu","Pacific/Wake","Pacific/Wallis"],Xxe={id:"tz-dropdown"},Qxe=["value","disabled","aria-expanded"],Zxe=["aria-label"],Jxe=["id","onClick","onMouseover","autofocus"],eBe=te({__name:"TimezoneDropdown",props:{input:{},disabled:{type:Boolean,default:!1}},emits:["updateTimezone"],setup(e,{emit:t}){const n=e,a=t,{input:s,disabled:r}=me(n),o=de(s.value),i=de(!1),u=de(0),l=w(()=>s.value?GT.filter(A=>c(A)):GT);function c(A){return A.toLowerCase().match(o.value.toLowerCase())}function f(A){u.value=A}function E(A){l.value.length>A&&(o.value=l.value[A],a("updateTimezone",o.value),i.value=!1)}function p(A){A.preventDefault(),l.value.length>0&&E(u.value)}function T(A){A.preventDefault(),i.value=!0,o.value=A.target.value.trim()}function O(){E(u.value)}function R(A){const v=document.getElementById(`tz-dropdown-item-${A}`);v&&(v.focus(),v.scrollIntoView({behavior:"smooth",block:"nearest"}))}function g(){i.value=!0,u.value=u.value===null?0:u.value+=1,u.value>=l.value.length&&(u.value=0),R(u.value)}function N(){i.value=!0,u.value=u.value===null?l.value.length-1:u.value-=1,u.value<=-1&&(u.value=l.value.length-1),R(u.value)}function S(){i.value&&(i.value=!1,o.value=s.value)}return Me(()=>n.input,A=>{o.value=A}),(A,v)=>(h(),I("div",Xxe,[d("input",{class:"tz-dropdown-input",id:"timezone",name:"timezone",value:o.value,disabled:m(r),required:"",role:"combobox","aria-autocomplete":"list","aria-controls":"tz-dropdown-list","aria-expanded":i.value,onKeydown:[v[0]||(v[0]=Je(D=>S(),["esc"])),Je(p,["enter"]),v[2]||(v[2]=Je(D=>g(),["down"])),v[3]||(v[3]=Je(D=>N(),["up"]))],onInput:T,onBlur:v[1]||(v[1]=D=>O())},null,40,Qxe),i.value?(h(),I("ul",{key:0,class:"tz-dropdown-list",id:"tz-dropdown-list",role:"listbox",tabindex:"-1","aria-label":A.$t("user.PROFILE.TIMEZONE",0)},[(h(!0),I(pe,null,Pe(l.value,(D,y)=>(h(),I("li",{key:D,id:`tz-dropdown-item-${y}`,class:Te(["tz-dropdown-item",{focus:y===u.value}]),onClick:b=>E(y),onMouseover:b=>f(y),autofocus:y===u.value,role:"option"},_(D),43,Jxe))),128))],8,Zxe)):M("",!0)]))}}),tBe=ie(eBe,[["__scopeId","data-v-3d9b6b6f"]]),nBe=e=>(rt("data-v-a65da386"),e=e(),ot(),e),aBe={id:"user-preferences-edition"},sBe={class:"profile-form form-box"},rBe={class:"preferences-section"},oBe={class:"form-items"},iBe=["disabled"],uBe=["value"],lBe={class:"form-items"},cBe=["disabled"],dBe=["value"],EBe={class:"form-items"},fBe={class:"form-items"},pBe=["disabled"],mBe=["value"],_Be={class:"form-items form-checkboxes"},TBe={class:"checkboxes-label"},hBe={class:"checkboxes"},SBe=["id","name","checked","disabled","onInput"],ABe={class:"checkbox-label"},OBe={class:"preferences-section"},gBe={class:"form-items form-checkboxes"},IBe={class:"checkboxes-label"},RBe={class:"checkboxes"},NBe=["id","name","checked","disabled","onInput"],vBe={class:"checkbox-label"},bBe={class:"form-items form-checkboxes"},CBe={class:"checkboxes-label"},DBe={class:"checkboxes"},PBe=["id","name","checked","disabled","onInput"],yBe={class:"checkbox-label"},LBe={class:"form-items form-checkboxes"},$Be={class:"checkboxes-label"},kBe={class:"checkboxes"},UBe=["id","name","checked","disabled","onInput"],wBe={class:"checkbox-label"},MBe={class:"form-items form-checkboxes"},FBe={class:"checkboxes-label"},WBe={class:"checkboxes"},zBe=["id","name","checked","disabled","onInput"],xBe={class:"checkbox-label"},BBe={class:"info-box raw-speed-help"},GBe=nBe(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),HBe={class:"form-buttons"},VBe={class:"confirm",type:"submit"},jBe=te({__name:"UserPreferencesEdition",props:{user:{}},setup(e){const t=e,n=ke(),a=Ht({display_ascent:!0,imperial_units:!1,language:"en",timezone:"Europe/Paris",date_format:"dd/MM/yyyy",weekm:!1,start_elevation_at_zero:!1,use_raw_gpx_speed:!1,use_dark_mode:!1}),s=[{label:"SUNDAY",value:!1},{label:"MONDAY",value:!0}],r=[{label:"METRIC",value:!1},{label:"IMPERIAL",value:!0}],o=[{label:"DISPLAYED",value:!0},{label:"HIDDEN",value:!1}],i=[{label:"ZERO",value:!0},{label:"MIN_ALT",value:!1}],u=[{label:"FILTERED_SPEED",value:!1},{label:"RAW_SPEED",value:!0}],l=[{label:"DARK",value:!0},{label:"DEFAULT",value:null},{label:"LIGHT",value:!1}],c=w(()=>n.getters[Q.GETTERS.USER_LOADING]),f=w(()=>n.getters[K.GETTERS.ERROR_MESSAGES]),E=w(()=>I9e(new Date().toUTCString(),t.user.timezone,a.language));St(()=>{t.user&&p(t.user)});function p(v){a.display_ascent=v.display_ascent,a.start_elevation_at_zero=v.start_elevation_at_zero?v.start_elevation_at_zero:!1,a.use_raw_gpx_speed=v.use_raw_gpx_speed?v.use_raw_gpx_speed:!1,a.imperial_units=v.imperial_units?v.imperial_units:!1,a.language=v.language?v.language:"en",a.timezone=v.timezone?v.timezone:"Europe/Paris",a.date_format=v.date_format?v.date_format:"dd/MM/yyyy",a.weekm=v.weekm?v.weekm:!1,a.use_dark_mode=v.use_dark_mode}function T(){n.dispatch(Q.ACTIONS.UPDATE_USER_PREFERENCES,a)}function O(v){a.timezone=v}function R(v){a.start_elevation_at_zero=v}function g(v){a.use_raw_gpx_speed=v}function N(v){a.display_ascent=v}function S(v){a.imperial_units=v}function A(v){a.weekm=v}return pt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),(v,D)=>{const y=oe("ErrorMessage");return h(),I("div",aBe,[d("div",sBe,[f.value?(h(),Y(y,{key:0,message:f.value},null,8,["message"])):M("",!0),d("form",{onSubmit:be(T,["prevent"])},[d("div",rBe,_(v.$t("user.PROFILE.INTERFACE")),1),d("label",oBe,[V(_(v.$t("user.PROFILE.LANGUAGE"))+" ",1),ye(d("select",{id:"language","onUpdate:modelValue":D[0]||(D[0]=b=>a.language=b),disabled:c.value},[(h(!0),I(pe,null,Pe(m(Pd),b=>(h(),I("option",{value:b.value,key:b.value},_(b.label),9,uBe))),128))],8,iBe),[[ia,a.language]])]),d("label",lBe,[V(_(v.$t("user.PROFILE.THEME_MODE.LABEL"))+" ",1),ye(d("select",{id:"use_dark_mode","onUpdate:modelValue":D[1]||(D[1]=b=>a.use_dark_mode=b),disabled:c.value},[(h(),I(pe,null,Pe(l,b=>d("option",{value:b.value,key:b.label},_(v.$t(`user.PROFILE.THEME_MODE.VALUES.${b.label}`)),9,dBe)),64))],8,cBe),[[ia,a.use_dark_mode]])]),d("label",EBe,[V(_(v.$t("user.PROFILE.TIMEZONE"))+" ",1),F(tBe,{input:a.timezone,disabled:c.value,onUpdateTimezone:O},null,8,["input","disabled"])]),d("label",fBe,[V(_(v.$t("user.PROFILE.DATE_FORMAT"))+" ",1),ye(d("select",{id:"date_format","onUpdate:modelValue":D[2]||(D[2]=b=>a.date_format=b),disabled:c.value},[(h(!0),I(pe,null,Pe(E.value,b=>(h(),I("option",{value:b.value,key:b.value},_(b.label),9,mBe))),128))],8,pBe),[[ia,a.date_format]])]),d("div",_Be,[d("span",TBe,_(v.$t("user.PROFILE.FIRST_DAY_OF_WEEK")),1),d("div",hBe,[(h(),I(pe,null,Pe(s,b=>d("label",{key:b.label},[d("input",{type:"radio",id:b.label,name:b.label,checked:b.value===a.weekm,disabled:c.value,onInput:k=>A(b.value)},null,40,SBe),d("span",ABe,_(v.$t(`user.PROFILE.${b.label}`)),1)])),64))])]),d("div",OBe,_(v.$t("workouts.WORKOUT",0)),1),d("div",gBe,[d("span",IBe,_(v.$t("user.PROFILE.UNITS.LABEL")),1),d("div",RBe,[(h(),I(pe,null,Pe(r,b=>d("label",{key:b.label},[d("input",{type:"radio",id:b.label,name:b.label,checked:b.value===a.imperial_units,disabled:c.value,onInput:k=>S(b.value)},null,40,NBe),d("span",vBe,_(v.$t(`user.PROFILE.UNITS.${b.label}`)),1)])),64))])]),d("div",bBe,[d("span",CBe,_(v.$t("user.PROFILE.ASCENT_DATA")),1),d("div",DBe,[(h(),I(pe,null,Pe(o,b=>d("label",{key:b.label},[d("input",{type:"radio",id:b.label,name:b.label,checked:b.value===a.display_ascent,disabled:c.value,onInput:k=>N(b.value)},null,40,PBe),d("span",yBe,_(v.$t(`common.${b.label}`)),1)])),64))])]),d("div",LBe,[d("span",$Be,_(v.$t("user.PROFILE.ELEVATION_CHART_START.LABEL")),1),d("div",kBe,[(h(),I(pe,null,Pe(i,b=>d("label",{key:b.label},[d("input",{type:"radio",id:b.label,name:b.label,checked:b.value===a.start_elevation_at_zero,disabled:c.value,onInput:k=>R(b.value)},null,40,UBe),d("span",wBe,_(v.$t(`user.PROFILE.ELEVATION_CHART_START.${b.label}`)),1)])),64))])]),d("div",MBe,[d("span",FBe,_(v.$t("user.PROFILE.USE_RAW_GPX_SPEED.LABEL")),1),d("div",WBe,[(h(),I(pe,null,Pe(u,b=>d("label",{key:b.label},[d("input",{type:"radio",id:b.label,name:b.label,checked:b.value===a.use_raw_gpx_speed,disabled:c.value,onInput:k=>g(b.value)},null,40,zBe),d("span",xBe,_(v.$t(`user.PROFILE.USE_RAW_GPX_SPEED.${b.label}`)),1)])),64))]),d("div",BBe,[d("span",null,[GBe,V(" "+_(v.$t("user.PROFILE.USE_RAW_GPX_SPEED.HELP")),1)])])]),d("div",HBe,[d("button",VBe,_(v.$t("buttons.SUBMIT")),1),d("button",{class:"cancel",onClick:D[3]||(D[3]=be(b=>v.$router.push("/profile/preferences"),["prevent"]))},_(v.$t("buttons.CANCEL")),1)])],32)])])}}}),KBe=ie(jBe,[["__scopeId","data-v-a65da386"]]),qBe={class:"privacy-policy-text"},YBe={class:"last-update"},XBe=["innerHTML"],QBe=["innerHTML"],ZBe="Sun, 26 Feb 2023 17:00:00 GMT",JBe=te({__name:"PrivacyPolicy",setup(e){const t=ke(),n=w(()=>t.getters[K.GETTERS.APP_CONFIG]),a=w(()=>t.getters[K.GETTERS.LANGUAGE]),s=w(()=>t.getters[Q.GETTERS.AUTH_USER_PROFILE]),r=w(()=>c()),o=w(()=>l()),i=w(()=>f()),u=["DATA_COLLECTED","INFORMATION_USAGE","INFORMATION_PROTECTION","INFORMATION_DISCLOSURE","SITE_USAGE_BY_CHILDREN","YOUR_CONSENT","ACCOUNT_DELETION","CHANGES_TO_OUR_PRIVACY_POLICY"];function l(){return s.value.timezone?s.value.timezone:Intl.DateTimeFormat().resolvedOptions().timeZone?Intl.DateTimeFormat().resolvedOptions().timeZone:"Europe/Paris"}function c(){return PO[a.value]}function f(){return Wn(n.value.privacy_policy&&n.value.privacy_policy_date?`${n.value.privacy_policy_date}`:ZBe,o.value,r.value,!1)}return(E,p)=>(h(),I("div",qBe,[d("h1",null,_(He(E.$t("privacy_policy.TITLE"))),1),d("p",YBe,[V(_(E.$t("privacy_policy.LAST_UPDATE"))+": ",1),d("time",null,_(i.value),1)]),n.value.privacy_policy?(h(),I("div",{key:0,innerHTML:m(Ds)(m(Lo)(n.value.privacy_policy))},null,8,XBe)):(h(),I(pe,{key:1},Pe(u,T=>(h(),I(pe,{key:T},[d("h2",null,_(E.$t(`privacy_policy.CONTENT.${T}.TITLE`)),1),d("p",{innerHTML:m(Ds)(E.$t(`privacy_policy.CONTENT.${T}.CONTENT`))},null,8,QBe)],64))),64))]))}}),qO=ie(JBe,[["__scopeId","data-v-9cb34f1c"]]),eGe={id:"user-privacy-policy"},tGe={key:1},nGe={class:"policy-content"},aGe={for:"accepted_policy",class:"accepted_policy"},sGe={class:"form-buttons"},rGe={class:"confirm",type:"submit"},oGe=te({__name:"UserPrivacyPolicyValidation",props:{user:{}},setup(e){const t=e,{user:n}=me(t),a=ke(),s=w(()=>a.getters[K.GETTERS.ERROR_MESSAGES]),r=de(!1),o=de(!1);function i(){a.dispatch(Q.ACTIONS.ACCEPT_PRIVACY_POLICY,r.value)}function u(){o.value=!0}return pt(()=>{a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),(l,c)=>{const f=oe("ErrorMessage"),E=oe("router-link"),p=oe("i18n-t");return h(),I("div",eGe,[s.value?(h(),Y(f,{key:0,message:s.value},null,8,["message"])):M("",!0),m(n).accepted_privacy_policy?(h(),I("div",tGe,[d("p",null,[F(p,{keypath:"user.YOU_HAVE_ACCEPTED_PRIVACY_POLICY"},{default:le(()=>[F(E,{to:"/privacy-policy"},{default:le(()=>[V(_(l.$t("privacy_policy.TITLE")),1)]),_:1})]),_:1})]),d("button",{class:"cancel",onClick:c[0]||(c[0]=T=>l.$router.push("/profile"))},_(l.$t("user.PROFILE.BACK_TO_PROFILE")),1)])):(h(),I("form",{key:2,class:Te({errors:o.value}),onSubmit:c[3]||(c[3]=be(T=>i(),["prevent"]))},[d("div",nGe,[F(qO)]),d("label",aGe,[ye(d("input",{type:"checkbox",id:"accepted_policy",required:"","onUpdate:modelValue":c[1]||(c[1]=T=>r.value=T),onInvalid:u},null,544),[[Tl,r.value]]),d("span",null,[F(p,{keypath:"user.READ_AND_ACCEPT_PRIVACY_POLICY"},{default:le(()=>[V(_(l.$t("privacy_policy.TITLE")),1)]),_:1})])]),F(E,{to:"/profile/edit/account"},{default:le(()=>[V(_(l.$t("user.I_WANT_TO_DELETE_MY_ACCOUNT")),1)]),_:1}),d("div",sGe,[d("button",rGe,_(l.$t("buttons.SUBMIT")),1),d("button",{class:"cancel",onClick:c[2]||(c[2]=T=>l.$router.push("/profile"))},_(l.$t("user.PROFILE.BACK_TO_PROFILE")),1)])],34))])}}}),iGe=ie(oGe,[["__scopeId","data-v-a7ac61ac"]]),uGe=["equipments:read","equipments:write","profile:read","profile:write","users:read","users:write","workouts:read","workouts:write"],lGe=["application:write"],cGe={id:"new-oauth2-app"},dGe={id:"new-oauth2-title"},EGe={id:"apps-form"},fGe={class:"form-items"},pGe={class:"form-item"},mGe={for:"app-name"},_Ge={class:"form-item"},TGe={for:"app-description"},hGe={class:"form-item"},SGe={for:"app-url"},AGe={class:"form-item"},OGe={for:"app-redirect-uri"},gGe={class:"form-item-scope"},IGe={class:"form-item-scope-label"},RGe={class:"scope-label"},NGe=["name","checked","onChange"],vGe=["innerHTML"],bGe={class:"form-buttons"},CGe=["disabled"],DGe=te({__name:"AddUserApp",props:{authUser:{}},setup(e){const t=e,n=ke(),a=Ht({client_name:"",client_uri:"",client_description:"",description:"",redirect_uri:""}),s=Ht([]),r=w(()=>l(t.authUser,lGe,uGe));function o(){const c={client_name:a.client_name,client_description:a.client_description,client_uri:a.client_uri,redirect_uris:[a.redirect_uri],scope:s.sort().join(" ")};n.dispatch(et.ACTIONS.CREATE_CLIENT,c)}function i(c){a.client_description=c}function u(c){const f=s.indexOf(c);f>-1?s.splice(f,1):s.push(c)}function l(c,f,E){const p=[...E];return c.admin&&p.push(...f),p.sort()}return(c,f)=>{const E=oe("CustomTextArea");return h(),I("div",cGe,[d("h1",dGe,_(c.$t("oauth2.ADD_A_NEW_APP")),1),d("div",EGe,[d("form",{onSubmit:be(o,["prevent"])},[d("div",fGe,[d("div",pGe,[d("label",mGe,_(c.$t("oauth2.APP.NAME"))+"*",1),ye(d("input",{id:"app-name",type:"text",required:"","onUpdate:modelValue":f[0]||(f[0]=p=>a.client_name=p)},null,512),[[tt,a.client_name]])]),d("div",_Ge,[d("label",TGe,_(c.$t("oauth2.APP.DESCRIPTION")),1),F(E,{name:"app-description",charLimit:200,input:a.description,onUpdateValue:i},null,8,["input"])]),d("div",hGe,[d("label",SGe,_(c.$t("oauth2.APP.URL"))+"*",1),ye(d("input",{id:"app-url",type:"text",required:"","onUpdate:modelValue":f[1]||(f[1]=p=>a.client_uri=p)},null,512),[[tt,a.client_uri]])]),d("div",AGe,[d("label",OGe,_(c.$t("oauth2.APP.REDIRECT_URL"))+"* ",1),ye(d("input",{id:"app-redirect-uri",type:"text",required:"","onUpdate:modelValue":f[2]||(f[2]=p=>a.redirect_uri=p)},null,512),[[tt,a.redirect_uri]])]),d("div",gGe,[d("div",IGe,_(c.$t("oauth2.APP.SCOPE.LABEL"))+"* ",1),(h(!0),I(pe,null,Pe(r.value,p=>(h(),I("div",{class:"form-item-scope-checkboxes",key:p},[d("label",RGe,[d("input",{type:"checkbox",name:p,checked:s.includes(p),onChange:T=>u(p)},null,40,NGe),d("code",null,_(p),1)]),d("p",{class:"scope-description",innerHTML:c.$t(`oauth2.APP.SCOPE.${p}_DESCRIPTION`)},null,8,vGe)]))),128))])]),d("div",bGe,[d("button",{class:"confirm",type:"submit",disabled:s.length===0},_(c.$t("buttons.SUBMIT")),9,CGe),d("button",{class:"cancel",onClick:f[3]||(f[3]=be(()=>c.$router.push("/profile/apps"),["prevent"]))},_(c.$t("buttons.CANCEL")),1)])],32)])])}}}),PGe=ie(DGe,[["__scopeId","data-v-e2284e06"]]),yGe={id:"authorize-oauth2-app"},LGe={key:0},$Ge={id:"authorize-oauth2-title"},kGe={class:"oauth2-access description-list"},UGe={class:"client-scope"},wGe=["innerHTML"],MGe={class:"authorize-oauth2-buttons"},FGe={key:1},WGe={class:"no-app"},zGe=te({__name:"AuthorizeUserApp",setup(e){const t=yt(),n=ke(),a=w(()=>n.getters[et.GETTERS.CLIENT]),s=w(()=>n.getters[K.GETTERS.ERROR_MESSAGES]);ft(()=>r());function r(){t.query.client_id&&typeof t.query.client_id=="string"&&n.dispatch(et.ACTIONS.GET_CLIENT_BY_CLIENT_ID,t.query.client_id)}function o(){n.dispatch(et.ACTIONS.AUTHORIZE_CLIENT,{client_id:`${t.query.client_id}`,redirect_uri:`${t.query.redirect_uri}`,response_type:`${t.query.response_type}`,scope:`${t.query.scope}`,state:`${t.query.state?t.query.state:""}`,code_challenge:`${t.query.code_challenge?t.query.code_challenge:""}`,code_challenge_method:`${t.query.code_challenge_method?t.query.code_challenge_method:""}`})}return(i,u)=>{const l=oe("router-link"),c=oe("i18n-t"),f=oe("ErrorMessage");return h(),I("div",yGe,[a.value.client_id?(h(),I("div",LGe,[d("h1",$Ge,[F(c,{keypath:"oauth2.AUTHORIZE_APP"},{default:le(()=>[F(l,{to:{name:"UserApp",params:{id:a.value.id}}},{default:le(()=>[V(_(a.value.name),1)]),_:1},8,["to"])]),_:1})]),s.value?(h(),Y(f,{key:0,message:s.value},null,8,["message"])):M("",!0),d("div",kGe,[d("p",null,_(i.$t("oauth2.APP_REQUESTING_ACCESS")),1),d("dl",null,[(h(!0),I(pe,null,Pe(a.value.scope.split(" "),E=>(h(),I(pe,{key:E},[d("dt",UGe,[d("code",null,_(E),1)]),d("dd",{innerHTML:i.$t(`oauth2.APP.SCOPE.${E}_DESCRIPTION`)},null,8,wGe)],64))),128))]),d("div",MGe,[d("button",{class:"danger",onClick:o},_(i.$t("buttons.AUTHORIZE")),1),d("button",{class:"cancel",onClick:u[0]||(u[0]=E=>i.$router.push("/profile/apps"))},_(i.$t("buttons.CANCEL")),1)])])])):(h(),I("div",FGe,[d("p",WGe,_(i.$t("oauth2.NO_APP")),1),d("button",{onClick:u[1]||(u[1]=E=>i.$router.push("/profile/apps"))},_(i.$t("buttons.BACK")),1)]))])}}}),xGe=ie(zGe,[["__scopeId","data-v-77d2c8f0"]]),BGe={id:"oauth2-apps"},GGe=te({__name:"index",props:{user:{}},setup(e){const t=e,n=ke(),{user:a}=me(t);return pt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(et.MUTATIONS.SET_CLIENTS,[])}),(s,r)=>{const o=oe("router-view");return h(),I("div",BGe,[F(o,{authUser:m(a)},null,8,["authUser"])])}}}),HGe={id:"oauth2-app",class:"description-list"},VGe={key:1},jGe={key:0,class:"info-box success-message"},KGe=["title"],qGe={key:0},YGe={key:1,class:"app-secret"},XGe=["title"],QGe={class:"client-scopes"},ZGe={class:"app-buttons"},JGe={key:2},eHe={class:"no-app"},tHe=te({__name:"UserApp",props:{authUser:{},afterCreation:{type:Boolean,default:!1}},setup(e){const t=e,n=yt(),a=ke(),{afterCreation:s,authUser:r}=me(t),o=w(()=>a.getters[et.GETTERS.CLIENT]),i=w(()=>a.getters[et.GETTERS.REVOCATION_SUCCESSFUL]),u=de(!1),l=de(""),c=de(!1),f=de(!1),E=de(!1);ft(()=>{p(),navigator.clipboard&&(E.value=!0)});function p(){!s.value&&n.params.id&&typeof n.params.id=="string"&&a.dispatch(et.ACTIONS.GET_CLIENT_BY_ID,+n.params.id)}function T(S){l.value=S?"oauth2.APP_DELETION_CONFIRMATION":"oauth2.TOKENS_REVOCATION_CONFIRMATION",O(!0)}function O(S){u.value=S,S||(l.value="")}function R(S){l.value==="oauth2.APP_DELETION_CONFIRMATION"?a.dispatch(et.ACTIONS.DELETE_CLIENT,S):a.dispatch(et.ACTIONS.REVOKE_ALL_TOKENS,S)}function g(){navigator.clipboard.writeText(o.value.client_id),c.value=!0,f.value=!1,setTimeout(()=>{c.value=!1},3e3)}function N(){o.value.client_secret&&(navigator.clipboard.writeText(o.value.client_secret),f.value=!0,c.value=!1,setTimeout(()=>{f.value=!1},3e3))}return pt(()=>{a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),a.commit(et.MUTATIONS.EMPTY_CLIENT),a.commit(et.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1)}),Me(()=>i.value,S=>{S&&O(!1)}),(S,A)=>{const v=oe("Modal");return h(),I("div",HGe,[u.value?(h(),Y(v,{key:0,title:S.$t("common.CONFIRMATION"),message:S.$t(l.value),onConfirmAction:A[0]||(A[0]=D=>R(o.value.id)),onCancelAction:A[1]||(A[1]=D=>O(!1)),onKeydown:A[2]||(A[2]=Je(D=>O(!1),["esc"]))},null,8,["title","message"])):M("",!0),o.value&&o.value.client_id?(h(),I("div",VGe,[m(s)||i.value?(h(),I("div",jGe,_(S.$t(m(s)?"oauth2.APP_CREATED_SUCCESSFULLY":"oauth2.TOKENS_REVOKED")),1)):M("",!0),d("dl",null,[d("dt",null,_(S.$t("oauth2.APP.CLIENT_ID"))+":",1),d("dd",null,[V(_(o.value.client_id)+" ",1),m(s)&&E.value?(h(),I("i",{key:0,class:Te(`fa fa-${c.value?"check":"copy"}`),"aria-hidden":"true",title:S.$t("oauth2.COPY_TO_CLIPBOARD"),onClick:g},null,10,KGe)):M("",!0)]),m(s)&&o.value.client_secret?(h(),I("dt",qGe,_(S.$t("oauth2.APP.CLIENT_SECRET"))+": ",1)):M("",!0),m(s)&&o.value.client_secret?(h(),I("dd",YGe,[V(_(o.value.client_secret)+" ",1),E.value?(h(),I("i",{key:0,class:Te(`fa fa-${f.value?"check":"copy"}`),"aria-hidden":"true",title:S.$t("oauth2.COPY_TO_CLIPBOARD"),onClick:N},null,10,XGe)):M("",!0)])):M("",!0),d("dt",null,_(He(S.$t("oauth2.APP.ISSUE_AT")))+":",1),d("dd",null,[d("time",null,_(m(Wn)(o.value.issued_at,m(r).timezone,m(r).date_format)),1)]),d("dt",null,_(S.$t("oauth2.APP.NAME"))+":",1),d("dd",null,_(o.value.name),1),d("dt",null,_(S.$t("oauth2.APP.DESCRIPTION"))+":",1),d("dd",{class:Te({"no-description":!o.value.client_description})},_(o.value.client_description?o.value.client_description:S.$t("oauth2.NO_DESCRIPTION")),3),d("dt",null,_(S.$t("oauth2.APP.URL"))+":",1),d("dd",null,_(o.value.website),1),d("dt",null,_(S.$t("oauth2.APP.REDIRECT_URL"))+":",1),d("dd",null,_(o.value.redirect_uris.length>0?o.value.redirect_uris[0]:""),1),d("dt",null,_(S.$t("oauth2.APP.SCOPE.LABEL"))+":",1),d("dd",QGe,[(h(!0),I(pe,null,Pe(o.value.scope.split(" "),D=>(h(),I("span",{class:"client-scope",key:D},[d("code",null,_(D),1)]))),128))])]),d("div",ZGe,[d("button",{class:"danger",onClick:A[3]||(A[3]=D=>T(!1))},_(S.$t("oauth2.REVOKE_ALL_TOKENS")),1),d("button",{class:"danger",onClick:A[4]||(A[4]=D=>T(!0))},_(S.$t("oauth2.DELETE_APP")),1),d("button",{onClick:A[5]||(A[5]=D=>S.$router.push("/profile/apps"))},_(S.$t("buttons.BACK")),1)])])):(h(),I("div",JGe,[d("p",eHe,_(S.$t("oauth2.NO_APP")),1),d("button",{onClick:A[6]||(A[6]=D=>S.$router.push("/profile/apps"))},_(S.$t("buttons.BACK")),1)]))])}}}),HT=ie(tHe,[["__scopeId","data-v-3a7d0f4a"]]),nHe={id:"oauth2-apps-list"},aHe={class:"apps-list"},sHe={key:0},rHe={class:"app-issued-at"},oHe={key:1,class:"no-apps"},iHe={class:"app-list-buttons"},uHe=te({__name:"UserAppsList",props:{authUser:{}},setup(e){const t=e,n=ke(),a=yt(),{authUser:s}=me(t),r=w(()=>n.getters[et.GETTERS.CLIENTS]),o=w(()=>n.getters[et.GETTERS.CLIENTS_PAGINATION]);let i=u(a.query);ft(()=>{l(i)});function u(c){const f={};return c.page&&(f.page=iE(c.page,RO)),f}function l(c){n.dispatch(et.ACTIONS.GET_CLIENTS,c)}return Me(()=>a.query,async c=>{i=u(c),l(i)}),(c,f)=>{const E=oe("router-link");return h(),I("div",nHe,[d("p",aHe,_(c.$t("oauth2.APPS_LIST")),1),r.value.length>0?(h(),I("ul",sHe,[(h(!0),I(pe,null,Pe(r.value,p=>(h(),I("li",{key:p.client_id},[F(E,{to:{name:"UserApp",params:{id:p.id}}},{default:le(()=>[V(_(p.name),1)]),_:2},1032,["to"]),d("span",rHe,[V(_(c.$t("oauth2.APP.ISSUE_AT"))+" ",1),d("time",null,_(m(Wn)(p.issued_at,m(s).timezone,m(s).date_format)),1)])]))),128))])):(h(),I("div",oHe,_(c.$t("oauth2.NO_APPS")),1)),r.value.length>0?(h(),Y(tl,{key:2,pagination:o.value,path:"/profile/apps",query:m(i)},null,8,["pagination","query"])):M("",!0),d("div",iHe,[d("button",{onClick:f[0]||(f[0]=p=>c.$router.push("/profile/apps/new"))},_(c.$t("oauth2.NEW_APP")),1),d("button",{onClick:f[1]||(f[1]=p=>c.$router.push("/"))},_(c.$t("common.HOME")),1)])])}}}),lHe=ie(uHe,[["__scopeId","data-v-064a87b7"]]);function Fc(e){return e===0?!1:Array.isArray(e)&&e.length===0?!0:!e}function cHe(e){return(...t)=>!e(...t)}function dHe(e,t){return e===void 0&&(e="undefined"),e===null&&(e="null"),e===!1&&(e="false"),e.toString().toLowerCase().indexOf(t.trim())!==-1}function YO(e,t,n,a){return t?e.filter(s=>dHe(a(s,n),t)).sort((s,r)=>a(s,n).length-a(r,n).length):e}function EHe(e){return e.filter(t=>!t.$isLabel)}function Wc(e,t){return n=>n.reduce((a,s)=>s[e]&&s[e].length?(a.push({$groupLabel:s[t],$isLabel:!0}),a.concat(s[e])):a,[])}function fHe(e,t,n,a,s){return r=>r.map(o=>{if(!o[n])return console.warn("Options passed to vue-multiselect do not contain groups, despite the config."),[];const i=YO(o[n],e,t,s);return i.length?{[a]:o[a],[n]:i}:[]})}const VT=(...e)=>t=>e.reduce((n,a)=>a(n),t);var pHe={data(){return{search:"",isOpen:!1,preferredOpenDirection:"below",optimizedHeight:this.maxHeight}},props:{internalSearch:{type:Boolean,default:!0},options:{type:Array,required:!0},multiple:{type:Boolean,default:!1},trackBy:{type:String},label:{type:String},searchable:{type:Boolean,default:!0},clearOnSelect:{type:Boolean,default:!0},hideSelected:{type:Boolean,default:!1},placeholder:{type:String,default:"Select option"},allowEmpty:{type:Boolean,default:!0},resetAfter:{type:Boolean,default:!1},closeOnSelect:{type:Boolean,default:!0},customLabel:{type:Function,default(e,t){return Fc(e)?"":t?e[t]:e}},taggable:{type:Boolean,default:!1},tagPlaceholder:{type:String,default:"Press enter to create a tag"},tagPosition:{type:String,default:"top"},max:{type:[Number,Boolean],default:!1},id:{default:null},optionsLimit:{type:Number,default:1e3},groupValues:{type:String},groupLabel:{type:String},groupSelect:{type:Boolean,default:!1},blockKeys:{type:Array,default(){return[]}},preserveSearch:{type:Boolean,default:!1},preselectFirst:{type:Boolean,default:!1},preventAutofocus:{type:Boolean,default:!1}},mounted(){!this.multiple&&this.max&&console.warn("[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false."),this.preselectFirst&&!this.internalValue.length&&this.options.length&&this.select(this.filteredOptions[0])},computed:{internalValue(){return this.modelValue||this.modelValue===0?Array.isArray(this.modelValue)?this.modelValue:[this.modelValue]:[]},filteredOptions(){const e=this.search||"",t=e.toLowerCase().trim();let n=this.options.concat();return this.internalSearch?n=this.groupValues?this.filterAndFlat(n,t,this.label):YO(n,t,this.label,this.customLabel):n=this.groupValues?Wc(this.groupValues,this.groupLabel)(n):n,n=this.hideSelected?n.filter(cHe(this.isSelected)):n,this.taggable&&t.length&&!this.isExistingOption(t)&&(this.tagPosition==="bottom"?n.push({isTag:!0,label:e}):n.unshift({isTag:!0,label:e})),n.slice(0,this.optionsLimit)},valueKeys(){return this.trackBy?this.internalValue.map(e=>e[this.trackBy]):this.internalValue},optionKeys(){return(this.groupValues?this.flatAndStrip(this.options):this.options).map(t=>this.customLabel(t,this.label).toString().toLowerCase())},currentOptionLabel(){return this.multiple?this.searchable?"":this.placeholder:this.internalValue.length?this.getOptionLabel(this.internalValue[0]):this.searchable?"":this.placeholder}},watch:{internalValue:{handler(){this.resetAfter&&this.internalValue.length&&(this.search="",this.$emit("update:modelValue",this.multiple?[]:null))},deep:!0},search(){this.$emit("search-change",this.search)}},emits:["open","search-change","close","select","update:modelValue","remove","tag"],methods:{getValue(){return this.multiple?this.internalValue:this.internalValue.length===0?null:this.internalValue[0]},filterAndFlat(e,t,n){return VT(fHe(t,n,this.groupValues,this.groupLabel,this.customLabel),Wc(this.groupValues,this.groupLabel))(e)},flatAndStrip(e){return VT(Wc(this.groupValues,this.groupLabel),EHe)(e)},updateSearch(e){this.search=e},isExistingOption(e){return this.options?this.optionKeys.indexOf(e)>-1:!1},isSelected(e){const t=this.trackBy?e[this.trackBy]:e;return this.valueKeys.indexOf(t)>-1},isOptionDisabled(e){return!!e.$isDisabled},getOptionLabel(e){if(Fc(e))return"";if(e.isTag)return e.label;if(e.$isLabel)return e.$groupLabel;const t=this.customLabel(e,this.label);return Fc(t)?"":t},select(e,t){if(e.$isLabel&&this.groupSelect){this.selectGroup(e);return}if(!(this.blockKeys.indexOf(t)!==-1||this.disabled||e.$isDisabled||e.$isLabel)&&!(this.max&&this.multiple&&this.internalValue.length===this.max)&&!(t==="Tab"&&!this.pointerDirty)){if(e.isTag)this.$emit("tag",e.label,this.id),this.search="",this.closeOnSelect&&!this.multiple&&this.deactivate();else{if(this.isSelected(e)){t!=="Tab"&&this.removeElement(e);return}this.multiple?this.$emit("update:modelValue",this.internalValue.concat([e])):this.$emit("update:modelValue",e),this.$emit("select",e,this.id),this.clearOnSelect&&(this.search="")}this.closeOnSelect&&this.deactivate()}},selectGroup(e){const t=this.options.find(n=>n[this.groupLabel]===e.$groupLabel);if(t){if(this.wholeGroupSelected(t)){this.$emit("remove",t[this.groupValues],this.id);const n=this.trackBy?t[this.groupValues].map(s=>s[this.trackBy]):t[this.groupValues],a=this.internalValue.filter(s=>n.indexOf(this.trackBy?s[this.trackBy]:s)===-1);this.$emit("update:modelValue",a)}else{let n=t[this.groupValues].filter(a=>!(this.isOptionDisabled(a)||this.isSelected(a)));this.max&&n.splice(this.max-this.internalValue.length),this.$emit("select",n,this.id),this.$emit("update:modelValue",this.internalValue.concat(n))}this.closeOnSelect&&this.deactivate()}},wholeGroupSelected(e){return e[this.groupValues].every(t=>this.isSelected(t)||this.isOptionDisabled(t))},wholeGroupDisabled(e){return e[this.groupValues].every(this.isOptionDisabled)},removeElement(e,t=!0){if(this.disabled||e.$isDisabled)return;if(!this.allowEmpty&&this.internalValue.length<=1){this.deactivate();return}const n=typeof e=="object"?this.valueKeys.indexOf(e[this.trackBy]):this.valueKeys.indexOf(e);if(this.multiple){const a=this.internalValue.slice(0,n).concat(this.internalValue.slice(n+1));this.$emit("update:modelValue",a)}else this.$emit("update:modelValue",null);this.$emit("remove",e,this.id),this.closeOnSelect&&t&&this.deactivate()},removeLastElement(){this.blockKeys.indexOf("Delete")===-1&&this.search.length===0&&Array.isArray(this.internalValue)&&this.internalValue.length&&this.removeElement(this.internalValue[this.internalValue.length-1],!1)},activate(){this.isOpen||this.disabled||(this.adjustPosition(),this.groupValues&&this.pointer===0&&this.filteredOptions.length&&(this.pointer=1),this.isOpen=!0,this.searchable?(this.preserveSearch||(this.search=""),this.preventAutofocus||this.$nextTick(()=>this.$refs.search&&this.$refs.search.focus())):this.preventAutofocus||typeof this.$el<"u"&&this.$el.focus(),this.$emit("open",this.id))},deactivate(){this.isOpen&&(this.isOpen=!1,this.searchable?this.$refs.search!==null&&typeof this.$refs.search<"u"&&this.$refs.search.blur():typeof this.$el<"u"&&this.$el.blur(),this.preserveSearch||(this.search=""),this.$emit("close",this.getValue(),this.id))},toggle(){this.isOpen?this.deactivate():this.activate()},adjustPosition(){if(typeof window>"u")return;const e=this.$el.getBoundingClientRect().top,t=window.innerHeight-this.$el.getBoundingClientRect().bottom;t>this.maxHeight||t>e||this.openDirection==="below"||this.openDirection==="bottom"?(this.preferredOpenDirection="below",this.optimizedHeight=Math.min(t-40,this.maxHeight)):(this.preferredOpenDirection="above",this.optimizedHeight=Math.min(e-40,this.maxHeight))}}},mHe={data(){return{pointer:0,pointerDirty:!1}},props:{showPointer:{type:Boolean,default:!0},optionHeight:{type:Number,default:40}},computed:{pointerPosition(){return this.pointer*this.optionHeight},visibleElements(){return this.optimizedHeight/this.optionHeight}},watch:{filteredOptions(){this.pointerAdjust()},isOpen(){this.pointerDirty=!1},pointer(){this.$refs.search&&this.$refs.search.setAttribute("aria-activedescendant",this.id+"-"+this.pointer.toString())}},methods:{optionHighlight(e,t){return{"multiselect__option--highlight":e===this.pointer&&this.showPointer,"multiselect__option--selected":this.isSelected(t)}},groupHighlight(e,t){if(!this.groupSelect)return["multiselect__option--disabled",{"multiselect__option--group":t.$isLabel}];const n=this.options.find(a=>a[this.groupLabel]===t.$groupLabel);return n&&!this.wholeGroupDisabled(n)?["multiselect__option--group",{"multiselect__option--highlight":e===this.pointer&&this.showPointer},{"multiselect__option--group-selected":this.wholeGroupSelected(n)}]:"multiselect__option--disabled"},addPointerElement({key:e}="Enter"){this.filteredOptions.length>0&&this.select(this.filteredOptions[this.pointer],e),this.pointerReset()},pointerForward(){this.pointer0?(this.pointer--,this.$refs.list.scrollTop>=this.pointerPosition&&(this.$refs.list.scrollTop=this.pointerPosition),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerBackward()):this.filteredOptions[this.pointer]&&this.filteredOptions[0].$isLabel&&!this.groupSelect&&this.pointerForward(),this.pointerDirty=!0},pointerReset(){this.closeOnSelect&&(this.pointer=0,this.$refs.list&&(this.$refs.list.scrollTop=0))},pointerAdjust(){this.pointer>=this.filteredOptions.length-1&&(this.pointer=this.filteredOptions.length?this.filteredOptions.length-1:0),this.filteredOptions.length>0&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()},pointerSet(e){this.pointer=e,this.pointerDirty=!0}}},XO={name:"vue-multiselect",mixins:[pHe,mHe],compatConfig:{MODE:3,ATTR_ENUMERATED_COERCION:!1},props:{name:{type:String,default:""},modelValue:{type:null,default(){return[]}},selectLabel:{type:String,default:"Press enter to select"},selectGroupLabel:{type:String,default:"Press enter to select group"},selectedLabel:{type:String,default:"Selected"},deselectLabel:{type:String,default:"Press enter to remove"},deselectGroupLabel:{type:String,default:"Press enter to deselect group"},showLabels:{type:Boolean,default:!0},limit:{type:Number,default:99999},maxHeight:{type:Number,default:300},limitText:{type:Function,default:e=>`and ${e} more`},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},openDirection:{type:String,default:""},showNoOptions:{type:Boolean,default:!0},showNoResults:{type:Boolean,default:!0},tabindex:{type:Number,default:0}},computed:{hasOptionGroup(){return this.groupValues&&this.groupLabel&&this.groupSelect},isSingleLabelVisible(){return(this.singleValue||this.singleValue===0)&&(!this.isOpen||!this.searchable)&&!this.visibleValues.length},isPlaceholderVisible(){return!this.internalValue.length&&(!this.searchable||!this.isOpen)},visibleValues(){return this.multiple?this.internalValue.slice(0,this.limit):[]},singleValue(){return this.internalValue[0]},deselectLabelText(){return this.showLabels?this.deselectLabel:""},deselectGroupLabelText(){return this.showLabels?this.deselectGroupLabel:""},selectLabelText(){return this.showLabels?this.selectLabel:""},selectGroupLabelText(){return this.showLabels?this.selectGroupLabel:""},selectedLabelText(){return this.showLabels?this.selectedLabel:""},inputStyle(){return this.searchable||this.multiple&&this.modelValue&&this.modelValue.length?this.isOpen?{width:"100%"}:{width:"0",position:"absolute",padding:"0"}:""},contentStyle(){return this.options.length?{display:"inline-block"}:{display:"block"}},isAbove(){return this.openDirection==="above"||this.openDirection==="top"?!0:this.openDirection==="below"||this.openDirection==="bottom"?!1:this.preferredOpenDirection==="above"},showSearchInput(){return this.searchable&&(this.hasSingleSelectedSlot&&(this.visibleSingleValue||this.visibleSingleValue===0)?this.isOpen:!0)}}};const _He={ref:"tags",class:"multiselect__tags"},THe={class:"multiselect__tags-wrap"},hHe={class:"multiselect__spinner"},SHe={key:0},AHe={class:"multiselect__option"},OHe={class:"multiselect__option"},gHe=V("No elements found. Consider changing the search query."),IHe={class:"multiselect__option"},RHe=V("List is empty.");function NHe(e,t,n,a,s,r){return h(),Y("div",{tabindex:e.searchable?-1:n.tabindex,class:[{"multiselect--active":e.isOpen,"multiselect--disabled":n.disabled,"multiselect--above":r.isAbove,"multiselect--has-options-group":r.hasOptionGroup},"multiselect"],onFocus:t[14]||(t[14]=o=>e.activate()),onBlur:t[15]||(t[15]=o=>e.searchable?!1:e.deactivate()),onKeydown:[t[16]||(t[16]=Je(be(o=>e.pointerForward(),["self","prevent"]),["down"])),t[17]||(t[17]=Je(be(o=>e.pointerBackward(),["self","prevent"]),["up"]))],onKeypress:t[18]||(t[18]=Je(be(o=>e.addPointerElement(o),["stop","self"]),["enter","tab"])),onKeyup:t[19]||(t[19]=Je(o=>e.deactivate(),["esc"])),role:"combobox","aria-owns":"listbox-"+e.id},[Lt(e.$slots,"caret",{toggle:e.toggle},()=>[F("div",{onMousedown:t[1]||(t[1]=be(o=>e.toggle(),["prevent","stop"])),class:"multiselect__select"},null,32)]),Lt(e.$slots,"clear",{search:e.search}),F("div",_He,[Lt(e.$slots,"selection",{search:e.search,remove:e.removeElement,values:r.visibleValues,isOpen:e.isOpen},()=>[ye(F("div",THe,[(h(!0),Y(pe,null,Pe(r.visibleValues,(o,i)=>Lt(e.$slots,"tag",{option:o,search:e.search,remove:e.removeElement},()=>[(h(),Y("span",{class:"multiselect__tag",key:i},[F("span",{textContent:_(e.getOptionLabel(o))},null,8,["textContent"]),F("i",{tabindex:"1",onKeypress:Je(be(u=>e.removeElement(o),["prevent"]),["enter"]),onMousedown:be(u=>e.removeElement(o),["prevent"]),class:"multiselect__tag-icon"},null,40,["onKeypress","onMousedown"])]))])),256))],512),[[kr,r.visibleValues.length>0]]),e.internalValue&&e.internalValue.length>n.limit?Lt(e.$slots,"limit",{key:0},()=>[F("strong",{class:"multiselect__strong",textContent:_(n.limitText(e.internalValue.length-n.limit))},null,8,["textContent"])]):M("v-if",!0)]),F(au,{name:"multiselect__loading"},{default:le(()=>[Lt(e.$slots,"loading",{},()=>[ye(F("div",hHe,null,512),[[kr,n.loading]])])]),_:3}),e.searchable?(h(),Y("input",{key:0,ref:"search",name:n.name,id:e.id,type:"text",autocomplete:"off",spellcheck:!1,placeholder:e.placeholder,style:r.inputStyle,value:e.search,disabled:n.disabled,tabindex:n.tabindex,onInput:t[2]||(t[2]=o=>e.updateSearch(o.target.value)),onFocus:t[3]||(t[3]=be(o=>e.activate(),["prevent"])),onBlur:t[4]||(t[4]=be(o=>e.deactivate(),["prevent"])),onKeyup:t[5]||(t[5]=Je(o=>e.deactivate(),["esc"])),onKeydown:[t[6]||(t[6]=Je(be(o=>e.pointerForward(),["prevent"]),["down"])),t[7]||(t[7]=Je(be(o=>e.pointerBackward(),["prevent"]),["up"])),t[9]||(t[9]=Je(be(o=>e.removeLastElement(),["stop"]),["delete"]))],onKeypress:t[8]||(t[8]=Je(be(o=>e.addPointerElement(o),["prevent","stop","self"]),["enter"])),class:"multiselect__input","aria-controls":"listbox-"+e.id},null,44,["name","id","placeholder","value","disabled","tabindex","aria-controls"])):M("v-if",!0),r.isSingleLabelVisible?(h(),Y("span",{key:1,class:"multiselect__single",onMousedown:t[10]||(t[10]=be((...o)=>e.toggle&&e.toggle(...o),["prevent"]))},[Lt(e.$slots,"singleLabel",{option:r.singleValue},()=>[V(_(e.currentOptionLabel),1)])],32)):M("v-if",!0),r.isPlaceholderVisible?(h(),Y("span",{key:2,class:"multiselect__placeholder",onMousedown:t[11]||(t[11]=be((...o)=>e.toggle&&e.toggle(...o),["prevent"]))},[Lt(e.$slots,"placeholder",{},()=>[V(_(e.placeholder),1)])],32)):M("v-if",!0)],512),F(au,{name:"multiselect"},{default:le(()=>[ye(F("div",{class:"multiselect__content-wrapper",onFocus:t[12]||(t[12]=(...o)=>e.activate&&e.activate(...o)),tabindex:"-1",onMousedown:t[13]||(t[13]=be(()=>{},["prevent"])),style:{maxHeight:e.optimizedHeight+"px"},ref:"list"},[F("ul",{class:"multiselect__content",style:r.contentStyle,role:"listbox",id:"listbox-"+e.id},[Lt(e.$slots,"beforeList"),e.multiple&&e.max===e.internalValue.length?(h(),Y("li",SHe,[F("span",AHe,[Lt(e.$slots,"maxElements",{},()=>[V("Maximum of "+_(e.max)+" options selected. First remove a selected option to select another.",1)])])])):M("v-if",!0),!e.max||e.internalValue.length(h(),Y("li",{class:"multiselect__element",key:i,id:e.id+"-"+i,role:o&&(o.$isLabel||o.$isDisabled)?null:"option"},[o&&(o.$isLabel||o.$isDisabled)?M("v-if",!0):(h(),Y("span",{key:0,class:[e.optionHighlight(i,o),"multiselect__option"],onClick:be(u=>e.select(o),["stop"]),onMouseenter:be(u=>e.pointerSet(i),["self"]),"data-select":o&&o.isTag?e.tagPlaceholder:r.selectLabelText,"data-selected":r.selectedLabelText,"data-deselect":r.deselectLabelText},[Lt(e.$slots,"option",{option:o,search:e.search,index:i},()=>[F("span",null,_(e.getOptionLabel(o)),1)])],42,["onClick","onMouseenter","data-select","data-selected","data-deselect"])),o&&(o.$isLabel||o.$isDisabled)?(h(),Y("span",{key:1,"data-select":e.groupSelect&&r.selectGroupLabelText,"data-deselect":e.groupSelect&&r.deselectGroupLabelText,class:[e.groupHighlight(i,o),"multiselect__option"],onMouseenter:be(u=>e.groupSelect&&e.pointerSet(i),["self"]),onMousedown:be(u=>e.selectGroup(o),["prevent"])},[Lt(e.$slots,"option",{option:o,search:e.search,index:i},()=>[F("span",null,_(e.getOptionLabel(o)),1)])],42,["data-select","data-deselect","onMouseenter","onMousedown"])):M("v-if",!0)],8,["id","role"]))),128)):M("v-if",!0),ye(F("li",null,[F("span",OHe,[Lt(e.$slots,"noResult",{search:e.search},()=>[gHe])])],512),[[kr,n.showNoResults&&e.filteredOptions.length===0&&e.search&&!n.loading]]),ye(F("li",null,[F("span",IHe,[Lt(e.$slots,"noOptions",{},()=>[RHe])])],512),[[kr,n.showNoOptions&&(e.options.length===0||r.hasOptionGroup===!0&&e.filteredOptions.length===0)&&!e.search&&!n.loading]]),Lt(e.$slots,"afterList")],12,["id"])],36),[[kr,e.isOpen]])]),_:3})],42,["tabindex","aria-owns"])}XO.render=NHe;const vHe=te({__name:"SportsMultiSelect",props:{sports:{},name:{},equipmentSports:{default:()=>[]},disabled:{type:Boolean,default:!1}},emits:["updatedValues"],setup(e,{emit:t}){const n=e,a=t,{equipmentSports:s,name:r,sports:o}=me(n),i=de([]);ft(()=>{s.value&&(i.value=s.value)});function u(l){a("updatedValues",l.map(c=>c.id))}return Me(()=>s.value,async l=>{i.value=l,u(l)}),(l,c)=>m(o)?(h(),Y(m(XO),{key:0,placeholder:"",id:m(r),name:m(r),disabled:l.disabled,modelValue:i.value,"onUpdate:modelValue":[c[0]||(c[0]=f=>i.value=f),u],multiple:!0,options:m(o),taggable:!0,label:"translatedLabel","track-by":"id",selectLabel:l.$t("workouts.MULTISELECT.selectLabel"),selectedLabel:l.$t("workouts.MULTISELECT.selectedLabel"),deselectLabel:l.$t("workouts.MULTISELECT.deselectLabel")},null,8,["id","name","disabled","modelValue","options","selectLabel","selectedLabel","deselectLabel"])):M("",!0)}}),bHe=ie(vHe,[["__scopeId","data-v-a44f31af"]]),QO=e=>(rt("data-v-28e798a0"),e=e(),ot(),e),CHe={id:"new-equipment"},DHe={key:0,id:"new-equipment-title"},PHe={id:"equipment-form"},yHe={class:"form-items"},LHe={class:"form-item"},$He={for:"equipment-label"},kHe={class:"equipment-label-help"},UHe={class:"info-box"},wHe=QO(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),MHe={class:"form-item"},FHe={for:"equipment-type-id"},WHe=["value"],zHe={key:0,class:"equipment-warning"},xHe={class:"info-box"},BHe=QO(()=>d("i",{class:"fa fa-exclamation-triangle warning","aria-hidden":"true"},null,-1)),GHe={class:"form-item"},HHe={for:"equipment-description"},VHe={key:1,class:"form-item-checkbox"},jHe={for:"equipment-active"},KHe={class:"form-item"},qHe={for:"equipment-sports"},YHe={class:"form-buttons"},XHe=["disabled"],QHe=["disabled"],ZHe=te({__name:"EquipmentEdition",props:{equipments:{},translatedEquipmentTypes:{}},setup(e){const t=e,n=ke(),a=yt(),{t:s}=kt(),{equipments:r,translatedEquipmentTypes:o}=me(t),i=w(()=>n.getters[we.GETTERS.LOADING]),u=w(()=>g(r.value)),l=w(()=>n.getters[K.GETTERS.ERROR_MESSAGES]),c=Ht({id:"",label:"",description:"",equipmentTypeId:0,isActive:!0,defaultForSportIds:[]}),f=w(()=>Mn(n.getters[Dt.GETTERS.SPORTS],s)),E=w(()=>o.value.filter(b=>b.id===c.equipmentTypeId)),p=w(()=>E.value.length>0?f.value.filter(b=>AO[E.value[0].label].includes(b.label)):[]),T=de([]),O=w(()=>o.value.filter(b=>{var k;return b.is_active||((k=u.value)==null?void 0:k.equipment_type.id)===b.id})),R=de(!1);St(()=>{var k;const b=document.getElementById("equipment-label");b==null||b.focus(),a.params.id&&a.params.id&&(k=u.value)!=null&&k.id&&S(u.value)});function g(b){if(!a.params.id)return null;const k=b.filter(z=>a.params.id?z.id===a.params.id:null);return k.length===0?null:k[0]}function N(b){T.value=Mn(f.value,s,"all").filter(k=>b.default_for_sport_ids.includes(k.id))}function S(b){c.id=b.id,c.label=b.label,c.description=b.description?b.description:"",c.equipmentTypeId=b.equipment_type.id,c.isActive=b.is_active,N(b)}function A(){n.dispatch(we.ACTIONS[c.id?"UPDATE_EQUIPMENT":"ADD_EQUIPMENT"],c)}function v(b){c.description=b}function D(){R.value=!0}function y(b){c.defaultForSportIds=b}return pt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),Me(()=>u.value,b=>{a.params.id&&(b!=null&&b.id)&&S(b)}),Me(()=>c.equipmentTypeId,b=>{u.value&&b===u.value.equipment_type.id?N(u.value):T.value=[]}),(b,k)=>{var W,X;const z=oe("CustomTextArea"),L=oe("ErrorMessage");return h(),I("div",CHe,[c.id?M("",!0):(h(),I("h1",DHe,_(b.$t("equipments.ADD_A_NEW_EQUIPMENT")),1)),d("div",PHe,[d("form",{class:Te({errors:R.value}),onSubmit:be(A,["prevent"])},[d("div",yHe,[d("div",LHe,[d("label",$He,_(He(b.$t("common.LABEL")))+"* ",1),ye(d("input",{id:"equipment-label",maxlength:"50",type:"text",required:"",onInvalid:D,"onUpdate:modelValue":k[0]||(k[0]=re=>c.label=re)},null,544),[[tt,c.label]]),d("div",kHe,[d("span",UHe,[wHe,V(" "+_(b.$t("equipments.50_CHARACTERS_MAX")),1)])])]),d("div",MHe,[d("label",FHe,_(He(b.$t("equipments.EQUIPMENT_TYPE")))+"* ",1),ye(d("select",{id:"equipment-type-id",required:"",onInvalid:D,"onUpdate:modelValue":k[1]||(k[1]=re=>c.equipmentTypeId=re)},[(h(!0),I(pe,null,Pe(O.value,re=>(h(),I("option",{value:re.id,key:re.id},_(re.translatedLabel)+" "+_(re.is_active?"":`(${b.$t("common.INACTIVE")})`),9,WHe))),128))],544),[[ia,c.equipmentTypeId]])]),(W=u.value)!=null&&W.workouts_count&&c.equipmentTypeId!==((X=u.value)==null?void 0:X.equipment_type.id)?(h(),I("div",zHe,[d("span",xHe,[BHe,V(" "+_(b.$t("equipments.ALL_WORKOUTS_ASSOCIATIONS_REMOVED")),1)])])):M("",!0),d("div",GHe,[d("label",HHe,_(b.$t("common.DESCRIPTION")),1),F(z,{name:"equipment-description",charLimit:200,input:c.description,onUpdateValue:v},null,8,["input"])]),c.id?(h(),I("div",VHe,[d("label",jHe,_(He(b.$t("common.ACTIVE"))),1),ye(d("input",{id:"equipment-active",name:"equipment-active",type:"checkbox","onUpdate:modelValue":k[2]||(k[2]=re=>c.isActive=re)},null,512),[[Tl,c.isActive]])])):M("",!0),d("div",KHe,[d("label",qHe,_(He(b.$t("equipments.DEFAULT_FOR_SPORTS",0))),1),F(bHe,{sports:p.value,name:"equipment-sports",equipmentSports:T.value,disabled:!c.equipmentTypeId,onUpdatedValues:y},null,8,["sports","equipmentSports","disabled"])])]),l.value?(h(),Y(L,{key:0,message:l.value},null,8,["message"])):M("",!0),d("div",YHe,[d("button",{class:"confirm",type:"submit",disabled:i.value},_(b.$t("buttons.SUBMIT")),9,XHe),d("button",{class:"cancel",disabled:i.value,onClick:k[3]||(k[3]=be(()=>{var re;return b.$router.push((re=u.value)!=null&&re.id?m(a).query.fromEdition?"/profile/edit/equipments":`/profile/equipments/${u.value.id}`:"/profile/equipments")},["prevent"]))},_(b.$t("buttons.CANCEL")),9,QHe)])],34)])])}}}),jT=ie(ZHe,[["__scopeId","data-v-28e798a0"]]),JHe={key:0,id:"user-equipments"},KT=te({__name:"index",props:{user:{},isEdition:{type:Boolean}},setup(e){const t=e,n=ke(),{t:a}=kt(),{user:s}=me(t),r=yt(),o=w(()=>n.getters[we.GETTERS.EQUIPMENTS]),i=w(()=>n.getters[we.GETTERS.EQUIPMENT_TYPES]),u=w(()=>SO(i.value,a));return ft(()=>{n.dispatch(we.ACTIONS.GET_EQUIPMENT_TYPES),n.dispatch(we.ACTIONS.GET_EQUIPMENTS)}),pt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),Me(()=>r.name,l=>{l==="UserEquipmentsList"&&n.dispatch(we.ACTIONS.GET_EQUIPMENTS)}),(l,c)=>{const f=oe("router-view");return u.value?(h(),I("div",JHe,[F(f,{authUser:m(s),equipments:o.value,translatedEquipmentTypes:u.value,isEdition:l.isEdition},null,8,["authUser","equipments","translatedEquipmentTypes","isEdition"])])):M("",!0)}}}),eVe=(e,t=!1)=>{let n="0";t&&(n=String(Math.floor(e/86400)),e%=86400);const a=String(Math.floor(e/3600)).padStart(2,"0");e%=3600;const s=String(Math.floor(e/60)).padStart(2,"0"),r=String(e%60).padStart(2,"0");return t?`${n==="0"?"":`${n}d `}${a==="00"?"":`${a}h `}${s}m ${r}s`:`${a==="00"?"":`${a}:`}${s}:${r}`},jf=(e,t)=>{const n=e.match(/day/g)?e.split(", ")[1]:e;return{days:e.match(/day/g)?`${e.split(" ")[0]} ${e.match(/days/g)?t("common.DAY",2):t("common.DAY",1)}`:`0 ${t("common.DAY",2)},`,duration:`${n.split(":")[0]}h ${n.split(":")[1]}min`}},mE=(e,t)=>{if(e.match(/day/g)){const n=jf(e,t);return`${n.days}, ${n.duration}`}return e},tVe={key:0,id:"user-equipment",class:"description-list"},nVe={class:"equipment-type"},aVe={key:0,class:"equipment-description"},sVe={key:1,class:"no-description"},rVe={class:"duration-detail"},oVe={class:"sports-list"},iVe={class:"equipment-buttons"},uVe=["disabled"],lVe=["disabled"],cVe=["disabled"],dVe=["disabled"],EVe={key:1},fVe={class:"no-equipment"},pVe=["disabled"],mVe=te({__name:"UserEquipment",props:{authUser:{},equipments:{}},setup(e){const t=e,n=ke(),a=yt(),{t:s}=kt(),{authUser:r,equipments:o}=me(t),i=Rt("sportColors"),u=w(()=>n.getters[we.GETTERS.LOADING]),l=w(()=>p(o.value)),c=w(()=>n.getters[Dt.GETTERS.SPORTS]),f=w(()=>Mn(c.value,s,"all",r.value.sports_list).filter(g=>{var N;return l.value?(N=l.value)==null?void 0:N.default_for_sport_ids.includes(g.id):!1})),E=de(!1);ft(()=>{n.dispatch(we.ACTIONS.GET_EQUIPMENTS)});function p(g){if(!a.params.id)return null;const N=g.filter(S=>a.params.id?S.id===a.params.id:null);return N.length===0?null:N[0]}function T(g){E.value=g}function O(){var g,N;if((g=l.value)!=null&&g.id){const S={id:l.value.id};((N=l.value)==null?void 0:N.workouts_count)>0&&(S.force=!0),n.dispatch(we.ACTIONS.DELETE_EQUIPMENT,S)}}function R(g){n.dispatch(we.ACTIONS.REFRESH_EQUIPMENT,g)}return pt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),(g,N)=>{const S=oe("Modal"),A=oe("EquipmentTypeImage"),v=oe("router-link"),D=oe("Distance"),y=oe("SportImage");return l.value?(h(),I("div",tVe,[E.value?(h(),Y(S,{key:0,title:g.$t("common.CONFIRMATION"),message:"user.PROFILE.EQUIPMENTS.CONFIRM_EQUIPMENT_DELETION",strongMessage:l.value.label,warning:l.value.workouts_count>0?g.$t("user.PROFILE.EQUIPMENTS.EQUIPMENT_ASSOCIATED_WITH_WORKOUTS"):"",onConfirmAction:O,onCancelAction:N[0]||(N[0]=b=>T(!1)),onKeydown:N[1]||(N[1]=Je(b=>T(!1),["esc"]))},null,8,["title","strongMessage","warning"])):M("",!0),d("dl",null,[d("dt",null,_(He(g.$t("common.LABEL"))),1),d("dd",null,_(l.value.label),1),d("dt",null,_(He(g.$t("equipments.EQUIPMENT_TYPE"))),1),d("dd",nVe,[F(A,{title:g.$t(`equipment_types.${l.value.equipment_type.label}.LABEL`),"equipment-type-label":l.value.equipment_type.label},null,8,["title","equipment-type-label"]),d("span",null,_(g.$t(`equipment_types.${l.value.equipment_type.label}.LABEL`))+" "+_(l.value.equipment_type.is_active?"":`(${g.$t("common.INACTIVE")})`),1)]),d("dt",null,_(g.$t("common.DESCRIPTION")),1),d("dd",null,[l.value.description?(h(),I("span",aVe,_(l.value.description),1)):(h(),I("span",sVe,_(g.$t("common.NO_DESCRIPTION")),1))]),d("dt",null,_(He(g.$t("workouts.WORKOUT",0))),1),d("dd",null,[l.value.workouts_count?(h(),Y(v,{key:0,to:`/workouts?equipment_id=${l.value.id}`},{default:le(()=>[V(_(l.value.workouts_count),1)]),_:1},8,["to"])):(h(),I(pe,{key:1},[V(_(l.value.workouts_count),1)],64))]),d("dt",null,_(He(g.$t("workouts.TOTAL_DISTANCE",0))),1),d("dd",null,[F(D,{distance:l.value.total_distance,unitFrom:"km",digits:2,displayUnit:!1,useImperialUnits:m(r).imperial_units},null,8,["distance","useImperialUnits"]),d("span",null,_(m(r).imperial_units?"miles":"km"),1)]),d("dt",null,_(He(g.$t("workouts.TOTAL_DURATION",0))),1),d("dd",null,[V(_(m(mE)(l.value.total_moving,g.$t))+" ",1),l.value.total_duration!==l.value.total_moving?(h(),I(pe,{key:0},[V(" ("),d("span",rVe,_(g.$t("common.TOTAL_DURATION_WITH_PAUSES"))+": ",1),V(" "+_(m(mE)(l.value.total_duration,g.$t))+") ",1)],64)):M("",!0)]),d("dt",null,_(He(g.$t("common.ACTIVE",0))),1),d("dd",null,[d("i",{class:Te(`fa fa-${l.value.is_active?"check-":""}square-o`),"aria-hidden":"true"},null,2)]),l.value.default_for_sport_ids.length>0?(h(),I(pe,{key:0},[d("dt",null,_(He(g.$t("equipments.DEFAULT_FOR_SPORTS",0))),1),d("dd",oVe,[(h(!0),I(pe,null,Pe(f.value,b=>(h(),I("span",{class:Te(["sport-badge",{inactive:!b.is_active_for_user}]),key:b.label},[F(y,{title:b.translatedLabel,"sport-label":b.label,color:b.color?b.color:m(i)[b.label]},null,8,["title","sport-label","color"]),F(v,{to:`/profile/sports/${b.id}?fromEquipmentId=${l.value.id}`},{default:le(()=>[V(_(b.translatedLabel)+" "+_(b.is_active_for_user?"":`(${g.$t("common.INACTIVE")})`),1)]),_:2},1032,["to"])],2))),128))])],64)):M("",!0)]),d("div",iVe,[d("button",{onClick:N[2]||(N[2]=b=>g.$router.push(`/profile/edit/equipments/${l.value.id}`)),disabled:u.value},_(g.$t("buttons.EDIT")),9,uVe),d("button",{disabled:u.value,onClick:N[3]||(N[3]=b=>R(l.value.id))},_(g.$t("buttons.REFRESH_TOTALS")),9,lVe),d("button",{class:"danger",onClick:N[4]||(N[4]=b=>E.value=!0),disabled:u.value},_(g.$t("buttons.DELETE")),9,cVe),d("button",{disabled:u.value,onClick:N[5]||(N[5]=b=>g.$router.push(m(a).query.fromWorkoutId?`/workouts/${m(a).query.fromWorkoutId}`:m(a).query.fromSportId?`/profile/sports/${m(a).query.fromSportId}`:"/profile/equipments"))},_(g.$t("buttons.BACK")),9,dVe)])])):(h(),I("div",EVe,[d("p",fVe,_(g.$t("equipments.NO_EQUIPMENT")),1),d("button",{onClick:N[6]||(N[6]=b=>g.$router.push("/profile/equipments")),disabled:u.value},_(g.$t("buttons.BACK")),9,pVe)]))}}}),_Ve=ie(mVe,[["__scopeId","data-v-bb9ee5a6"]]),TVe=e=>(rt("data-v-b2876f25"),e=e(),ot(),e),hVe={id:"user-equipments-list"},SVe={key:0,class:"mobile-display"},AVe={key:1,class:"equipments-list"},OVe={key:3},gVe={class:"responsive-table"},IVe={class:"text-left"},RVe={class:"text-left"},NVe={class:"text-left"},vVe={class:"text-left"},bVe={key:0},CVe=TVe(()=>d("th",null,null,-1)),DVe={class:"equipment-label"},PVe={class:"cell-heading"},yVe={class:"column"},LVe={class:"cell-heading"},$Ve={class:"column"},kVe={class:"cell-heading"},UVe={class:"active"},wVe={class:"cell-heading"},MVe={key:0,class:"action-buttons"},FVe={class:"cell-heading"},WVe=["onClick"],zVe={class:"equipments-list-buttons"},xVe=te({__name:"UserEquipmentsList",props:{equipments:{},translatedEquipmentTypes:{},authUser:{},isEdition:{type:Boolean}},setup(e){const t=e,{authUser:n,isEdition:a,equipments:s,translatedEquipmentTypes:r}=me(t),o=w(()=>i(s.value));function i(u){const l={};return u.map(c=>{c.equipment_type.id in l?l[c.equipment_type.id].push(c):l[c.equipment_type.id]=[c]}),l}return(u,l)=>{const c=oe("EquipmentTypeImage"),f=oe("router-link"),E=oe("Distance");return h(),I("div",hVe,[m(s).length>0?(h(),I("div",SVe,[m(a)?M("",!0):(h(),I("button",{key:0,onClick:l[0]||(l[0]=p=>u.$router.push("/profile/edit/equipments"))},_(u.$t("equipments.EDIT_EQUIPMENTS")),1)),m(a)?M("",!0):(h(),I("button",{key:1,onClick:l[1]||(l[1]=p=>u.$router.push("/profile/equipments/new"))},_(u.$t("equipments.NEW_EQUIPMENT")),1)),m(a)?(h(),I("button",{key:2,onClick:l[2]||(l[2]=p=>u.$router.push("/profile/equipments"))},_(u.$t("buttons.BACK")),1)):(h(),I("button",{key:3,onClick:l[3]||(l[3]=p=>u.$router.push("/"))},_(u.$t("common.HOME")),1))])):M("",!0),m(a)?M("",!0):(h(),I("h1",AVe,_(u.$t("user.PROFILE.EQUIPMENTS.YOUR_EQUIPMENTS")),1)),m(s).length===0?(h(),I("p",{key:2,class:Te(["no-equipments",{edition:m(a)}])},_(u.$t("equipments.NO_EQUIPMENTS")),3)):(h(),I("div",OVe,[(h(!0),I(pe,null,Pe(m(r),p=>(h(),I(pe,{key:p.label},[o.value[p.id]?(h(),I(pe,{key:0},[d("h2",null,[F(c,{title:p.translatedLabel,"equipment-type-label":p.label},null,8,["title","equipment-type-label"]),V(" "+_(p.translatedLabel)+" "+_(p.is_active?"":`(${u.$t("common.INACTIVE")})`),1)]),d("div",gVe,[d("table",null,[d("thead",null,[d("tr",null,[d("th",IVe,_(u.$t("common.LABEL")),1),d("th",RVe,_(u.$t("workouts.WORKOUT",0)),1),d("th",NVe,_(He(u.$t("workouts.TOTAL_DISTANCE"))),1),d("th",vVe,_(u.$t("common.ACTIVE")),1),m(a)?(h(),I("th",bVe,_(u.$t("common.ACTION")),1)):M("",!0),CVe])]),d("tbody",null,[(h(!0),I(pe,null,Pe(o.value[p.id].sort(m(wf)),T=>(h(),I("tr",{key:T.label},[d("td",DVe,[d("span",PVe,_(u.$t("common.LABEL")),1),F(f,{to:{name:"Equipment",params:{id:T.id}}},{default:le(()=>[V(_(T.label),1)]),_:2},1032,["to"])]),d("td",yVe,[d("span",LVe,_(u.$t("workouts.WORKOUT",0)),1),T.workouts_count?(h(),Y(f,{key:0,to:`/workouts?equipment_id=${T.id}`},{default:le(()=>[V(_(T.workouts_count),1)]),_:2},1032,["to"])):(h(),I(pe,{key:1},[V(_(T.workouts_count),1)],64))]),d("td",$Ve,[d("span",kVe,_(u.$t("workouts.TOTAL_DISTANCE",0)),1),F(E,{distance:T.total_distance,unitFrom:"km",digits:2,displayUnit:!1,useImperialUnits:m(n).imperial_units},null,8,["distance","useImperialUnits"]),d("span",null,_(m(n).imperial_units?"miles":"km"),1)]),d("td",UVe,[d("span",wVe,_(u.$t("common.ACTIVE")),1),d("i",{class:Te(`fa fa${T.is_active?"-check":""}`),"aria-hidden":"true"},null,2)]),m(a)?(h(),I("td",MVe,[d("span",FVe,_(u.$t("user.PROFILE.SPORT.ACTION")),1),d("button",{onClick:O=>u.$router.push(`/profile/edit/equipments/${T.id}${m(a)?"?fromEdition=true":""}`)},_(u.$t("buttons.EDIT")),9,WVe)])):M("",!0)]))),128))])])])],64)):M("",!0)],64))),128))])),d("div",zVe,[!m(a)&&m(s).length>0?(h(),I("button",{key:0,onClick:l[4]||(l[4]=p=>u.$router.push("/profile/edit/equipments"))},_(u.$t("equipments.EDIT_EQUIPMENTS")),1)):M("",!0),m(a)?M("",!0):(h(),I("button",{key:1,onClick:l[5]||(l[5]=p=>u.$router.push("/profile/equipments/new"))},_(u.$t("equipments.NEW_EQUIPMENT")),1)),m(a)?(h(),I("button",{key:2,onClick:l[6]||(l[6]=p=>u.$router.push("/profile/equipments"))},_(u.$t("buttons.BACK")),1)):(h(),I("button",{key:3,onClick:l[7]||(l[7]=p=>u.$router.push("/"))},_(u.$t("common.HOME")),1))])])}}}),qT=ie(xVe,[["__scopeId","data-v-b2876f25"]]),BVe={id:"users-sports"},YT=te({__name:"index",props:{user:{},isEdition:{type:Boolean}},setup(e){const t=e,n=ke(),{t:a}=kt(),{user:s,isEdition:r}=me(t),o=w(()=>n.getters[Dt.GETTERS.SPORTS]),i=w(()=>Mn(o.value,a,"is_active",s.value.sports_list));return pt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(et.MUTATIONS.SET_CLIENTS,[])}),(u,l)=>{const c=oe("router-view");return h(),I("div",BVe,[F(c,{authUser:m(s),isEdition:m(r),translatedSports:i.value},null,8,["authUser","isEdition","translatedSports"])])}}}),GVe=te({__name:"EquipmentBadge",props:{equipment:{},workoutId:{},sportId:{}},setup(e){const t=e,{equipment:n,sportId:a,workoutId:s}=me(t);return(r,o)=>{var l;const i=oe("EquipmentTypeImage"),u=oe("router-link");return h(),Y(u,{class:Te(["equipment-badge",{inactive:!m(n).is_active}]),to:{name:"Equipment",params:{id:m(n).id},query:{fromWorkoutId:m(s),fromSportId:(l=m(a))==null?void 0:l.toString()}}},{default:le(()=>[F(i,{title:r.$t(`equipment_types.${m(n).equipment_type.label}.LABEL`),"equipment-type-label":m(n).equipment_type.label},null,8,["title","equipment-type-label"]),d("span",null,_(m(n).label)+" "+_(m(n).is_active?"":`(${r.$t("common.INACTIVE")})`),1)]),_:1},8,["class","to"])}}}),ZO=ie(GVe,[["__scopeId","data-v-84285cae"]]);function Kf(){const e=ke(),t=w(()=>e.getters[K.GETTERS.ERROR_MESSAGES]),n=w(()=>e.getters[Q.GETTERS.USER_LOADING]),a="#838383",s=Rt("sportColors"),r=de(!1),o=de(""),i=Ht({sport_id:0,color:null,is_active:!0,stopped_speed_threshold:1,fromSport:!1});function u(E){i.is_active=E.target.checked}function l(E){r.value=E}function c(E){const p={...i};p.stopped_speed_threshold=E.imperial_units?xt(i.stopped_speed_threshold,"mi","km",2):i.stopped_speed_threshold,e.dispatch(Q.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,p)}function f(E,p=!1){e.dispatch(Q.ACTIONS.RESET_USER_SPORT_PREFERENCES,{sportId:E,fromSport:p})}return{defaultColor:a,defaultEquipmentId:o,displayModal:r,errorMessages:t,loading:n,sportColors:s,sportPayload:i,resetSport:f,updateDisplayModal:l,updateIsActive:u,updateSport:c}}const HVe={key:0,id:"user-sport",class:"description-list"},VVe={class:"sport-equipments"},jVe={key:0,class:"no-equipments"},KVe={class:"sport-buttons"},qVe=["disabled"],YVe={key:1},XVe={class:"no-sport"},QVe=te({__name:"UserSport",props:{authUser:{},translatedSports:{}},setup(e){const t=e,n=ke(),a=yt(),{translatedSports:s}=me(t),{displayModal:r,errorMessages:o,loading:i,sportColors:u,resetSport:l,updateDisplayModal:c}=Kf(),f=w(()=>E(s.value));function E(p){if(!a.params.id)return null;const T=p.filter(O=>a.params.id?O.id===+a.params.id:null);return T.length===0?null:T[0]}return pt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),Me(()=>i.value,p=>{!p&&!o.value&&c(!1)}),(p,T)=>{const O=oe("Modal"),R=oe("SportImage"),g=oe("Distance");return f.value?(h(),I("div",HVe,[m(r)?(h(),Y(O,{key:0,title:p.$t("common.CONFIRMATION"),message:p.$t(`user.PROFILE.SPORT.CONFIRM_SPORT_RESET${f.value.default_equipments.length>0?"_WITH_EQUIPMENTS":""}`),onConfirmAction:T[0]||(T[0]=N=>m(l)(f.value.id,!0)),onCancelAction:T[1]||(T[1]=N=>m(c)(!1)),onKeydown:T[2]||(T[2]=Je(N=>m(c)(!1),["esc"]))},null,8,["title","message"])):M("",!0),d("dl",null,[d("dt",null,_(He(p.$t("workouts.SPORT",1))),1),d("dd",null,_(f.value.translatedLabel),1),d("dt",null,_(He(p.$t("user.PROFILE.SPORT.COLOR"))),1),d("dd",null,[F(R,{title:f.value.translatedLabel,"sport-label":f.value.label,color:f.value.color?f.value.color:m(u)[f.value.label]},null,8,["title","sport-label","color"])]),d("dt",null,_(He(p.$t("workouts.WORKOUT",0))),1),d("dd",null,[d("i",{class:Te(`fa fa-${p.authUser.sports_list.includes(f.value.id)?"check-":""}square-o`),"aria-hidden":"true"},null,2)]),d("dt",null,_(He(p.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD"))),1),d("dd",null,[F(g,{distance:f.value.stopped_speed_threshold,unitFrom:"km",speed:!0,useImperialUnits:p.authUser.imperial_units},null,8,["distance","useImperialUnits"])]),d("dt",null,_(He(p.$t("common.ACTIVE",0))),1),d("dd",null,[d("i",{class:Te(`fa fa-${f.value.is_active_for_user?"check-":""}square-o`),"aria-hidden":"true"},null,2)]),d("dt",null,_(p.$t("user.PROFILE.SPORT.DEFAULT_EQUIPMENTS",1)),1),d("dd",VVe,[(h(!0),I(pe,null,Pe(f.value.default_equipments,N=>(h(),Y(ZO,{equipment:N,"sport-id":f.value.id,key:N.label},null,8,["equipment","sport-id"]))),128)),f.value.default_equipments.length===0?(h(),I("div",jVe,_(p.$t("equipments.NO_EQUIPMENTS")),1)):M("",!0)])]),d("div",KVe,[d("button",{onClick:T[3]||(T[3]=N=>p.$router.push(`/profile/edit/sports/${f.value.id}`))},_(p.$t("buttons.EDIT")),1),d("button",{disabled:m(i),class:"danger",onClick:T[4]||(T[4]=be(N=>m(c)(!0),["prevent"]))},_(p.$t("buttons.RESET")),9,qVe),d("button",{onClick:T[5]||(T[5]=N=>p.$router.push(m(a).query.fromEquipmentId?`/profile/equipments/${m(a).query.fromEquipmentId}`:"/profile/sports"))},_(p.$t("buttons.BACK")),1)])])):(h(),I("div",YVe,[d("p",XVe,_(p.$t("user.NO_SPORT_FOUND")),1),d("button",{onClick:T[6]||(T[6]=N=>p.$router.push("/profile/sports"))},_(p.$t("buttons.BACK")),1)]))}}}),ZVe=ie(QVe,[["__scopeId","data-v-1211593f"]]),JVe={key:0,id:"sport-edition"},eje={class:"form-items"},tje={class:"form-item"},nje={for:"sport-label"},aje={class:"form-item"},sje={for:"sport-color"},rje=["disabled"],oje={class:"form-item"},ije={for:"sport-threshold"},uje=["disabled"],lje={class:"form-item-checkbox"},cje={for:"equipment-active"},dje=["checked","disabled"],Eje={class:"form-item"},fje={for:"sport-default-equipment"},pje=["disabled"],mje={value:""},_je=["value"],Tje={class:"form-buttons"},hje=["disabled"],Sje=["disabled"],Aje=te({__name:"UserSportEdition",props:{authUser:{},translatedSports:{}},setup(e){const t=e,{t:n}=kt(),a=ke(),s=yt(),{authUser:r,translatedSports:o}=me(t),{defaultColor:i,defaultEquipmentId:u,errorMessages:l,loading:c,sportColors:f,sportPayload:E,updateIsActive:p,updateSport:T}=Kf(),O=w(()=>S(o.value)),R=w(()=>a.getters[we.GETTERS.EQUIPMENTS]),g=w(()=>R.value&&O.value?OO(R.value,n,"withIncludedIds",O.value,O.value.default_equipments.map(y=>y.id)):[]),N=de(!1);St(()=>{var b;const y=document.getElementById("sport-color");y==null||y.focus(),s.params.id&&s.params.id&&(b=O.value)!=null&&b.id&&A(O.value,!0)});function S(y){if(!s.params.id)return null;const b=y.filter(k=>s.params.id?k.id===+s.params.id:null);return b.length===0?null:b[0]}function A(y,b=!1){y!==null&&(E.sport_id=y.id,E.color=y.color?y.color:f?f[y.label]:i,E.is_active=y.is_active_for_user,E.stopped_speed_threshold=+`${r.value.imperial_units?xt(y.stopped_speed_threshold,"km","mi",2):parseFloat(y.stopped_speed_threshold.toFixed(2))}`,E.fromSport=!0,b&&(u.value=y.default_equipments.length>0?y.default_equipments[0].id:""))}function v(){E.default_equipment_ids=u.value?[u.value]:[],T(r.value)}function D(){N.value=!0}return Me(()=>O.value,y=>{s.params.id&&(y!=null&&y.id)&&A(y,!0)}),(y,b)=>{const k=oe("ErrorMessage");return O.value?(h(),I("div",JVe,[d("form",{class:Te({errors:N.value}),onSubmit:be(v,["prevent"])},[d("div",eje,[d("div",tje,[d("label",nje,_(He(y.$t("workouts.SPORT",1))),1),V(" "+_(O.value.translatedLabel),1)]),d("div",aje,[d("label",sje,_(He(y.$t("user.PROFILE.SPORT.COLOR"))),1),ye(d("input",{id:"sport-color",name:"sport-color",class:"sport-color",type:"color",required:"","onUpdate:modelValue":b[0]||(b[0]=z=>m(E).color=z),disabled:m(c),onInvalid:D},null,40,rje),[[tt,m(E).color]])]),d("div",oje,[d("label",ije,_(He(y.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")))+" ("+_(`${m(r).imperial_units?"mi":"km"}/h`)+")* ",1),ye(d("input",{id:"sport-threshold",name:"sport-threshold",class:"threshold-input",type:"number",min:"0",step:"0.1",required:"","onUpdate:modelValue":b[1]||(b[1]=z=>m(E).stopped_speed_threshold=z),disabled:m(c),onInvalid:D},null,40,uje),[[tt,m(E).stopped_speed_threshold]])]),d("div",lje,[d("label",cje,_(He(y.$t("common.ACTIVE"))),1),d("input",{id:"equipment-active",name:"equipment-active",type:"checkbox",checked:O.value.is_active_for_user,onChange:b[2]||(b[2]=(...z)=>m(p)&&m(p)(...z)),disabled:m(c)},null,40,dje)]),d("div",Eje,[d("label",fje,_(y.$t("user.PROFILE.SPORT.DEFAULT_EQUIPMENTS",1)),1),ye(d("select",{id:"sport-default-equipment",onInvalid:D,disabled:m(c),"onUpdate:modelValue":b[3]||(b[3]=z=>Kt(u)?u.value=z:null)},[d("option",mje,_(y.$t("equipments.NO_EQUIPMENTS")),1),(h(!0),I(pe,null,Pe(g.value,z=>(h(),I("option",{value:z.id,key:z.id},_(z.label),9,_je))),128))],40,pje),[[ia,m(u)]])])]),m(l)?(h(),Y(k,{key:0,message:m(l)},null,8,["message"])):M("",!0),d("div",Tje,[d("button",{class:"confirm",type:"submit",disabled:m(c)},_(y.$t("buttons.SUBMIT")),9,hje),d("button",{class:"cancel",onClick:b[4]||(b[4]=be(()=>{var z;return y.$router.push(`/profile/sports/${(z=O.value)==null?void 0:z.id}`)},["prevent"])),disabled:m(c)},_(y.$t("buttons.CANCEL")),9,Sje)])],34)])):M("",!0)}}}),Oje=ie(Aje,[["__scopeId","data-v-7f3cff18"]]),gje={id:"user-sport-preferences"},Ije={key:1,class:"responsive-table"},Rje={class:"mobile-display"},Nje={key:0,class:"profile-buttons mobile-display"},vje={key:1,class:"profile-buttons"},bje={class:"text-left"},Cje={class:"threshold"},Dje={key:0},Pje={class:"cell-heading"},yje={class:"cell-heading"},Lje={key:2,class:"disabled-message"},$je={key:3,class:"fa fa-refresh fa-spin fa-fw"},kje={class:"cell-heading"},Uje={class:"cell-heading"},wje={class:"cell-heading"},Mje=["checked"],Fje={class:"cell-heading"},Wje={key:1},zje={key:0,class:"action-buttons"},xje={class:"cell-heading"},Bje=["onClick"],Gje={key:1,class:"edition-buttons"},Hje=["disabled"],Vje=["disabled"],jje=["disabled"],Kje={key:0,class:"profile-buttons"},qje={key:1,class:"profile-buttons"},Yje=te({__name:"UserSportPreferences",props:{authUser:{},translatedSports:{},isEdition:{type:Boolean}},setup(e){const t=e,n=ke(),{authUser:a,isEdition:s,translatedSports:r}=me(t),{defaultColor:o,displayModal:i,errorMessages:u,loading:l,sportColors:c,sportPayload:f,resetSport:E,updateDisplayModal:p,updateIsActive:T,updateSport:O}=Kf(),R=de(!1);function g(A){A!==null?(f.sport_id=A.id,f.color=A.color?A.color:c?c[A.label]:o,f.is_active=A.is_active_for_user,f.stopped_speed_threshold=+`${a.value.imperial_units?xt(A.stopped_speed_threshold,"km","mi",2):parseFloat(A.stopped_speed_threshold.toFixed(2))}`,R.value=A.default_equipments.length>0):S()}function N(A){return f.sport_id===A}function S(){f.sport_id=0,f.color=null,f.is_active=!0,f.stopped_speed_threshold=1,R.value=!1,n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}return Me(()=>l.value,A=>{!A&&!u.value&&(S(),p(!1))}),(A,v)=>{const D=oe("Modal"),y=oe("SportImage"),b=oe("router-link"),k=oe("ErrorMessage"),z=oe("Distance");return h(),I("div",gje,[m(i)?(h(),Y(D,{key:0,title:A.$t("common.CONFIRMATION"),message:A.$t(`user.PROFILE.SPORT.CONFIRM_SPORT_RESET${R.value?"_WITH_EQUIPMENTS":""}`),onConfirmAction:v[0]||(v[0]=L=>m(E)(m(f).sport_id)),onCancelAction:v[1]||(v[1]=L=>m(p)(!1)),onKeydown:v[2]||(v[2]=Je(L=>m(p)(!1),["esc"]))},null,8,["title","message"])):M("",!0),m(r).length>0?(h(),I("div",Ije,[d("div",Rje,[m(s)?(h(),I("div",Nje,[d("button",{class:"cancel",onClick:v[3]||(v[3]=be(L=>A.$router.push("/profile/sports"),["prevent"]))},_(A.$t("buttons.BACK")),1)])):(h(),I("div",vje,[d("button",{onClick:v[4]||(v[4]=L=>A.$router.push("/profile/edit/sports"))},_(A.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),d("button",{onClick:v[5]||(v[5]=L=>A.$router.push("/"))},_(A.$t("common.HOME")),1)]))]),d("table",null,[d("thead",null,[d("tr",null,[d("th",null,_(A.$t("user.PROFILE.SPORT.COLOR")),1),d("th",bje,_(A.$t("workouts.SPORT",0)),1),d("th",null,_(A.$t("workouts.WORKOUT",0)),1),d("th",null,_(A.$t("equipments.EQUIPMENT",0)),1),d("th",null,_(A.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),d("th",null,[d("div",Cje,[d("span",null,_(A.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),d("span",null," ("+_(`${m(a).imperial_units?"mi":"km"}/h`)+") ",1)])]),m(s)?(h(),I("th",Dje,_(A.$t("user.PROFILE.SPORT.ACTION")),1)):M("",!0)])]),d("tbody",null,[(h(!0),I(pe,null,Pe(m(r),L=>(h(),I("tr",{key:L.id},[d("td",null,[d("span",Pje,_(A.$t("user.PROFILE.SPORT.COLOR")),1),N(L.id)?ye((h(),I("input",{key:0,class:"sport-color",type:"color","onUpdate:modelValue":v[6]||(v[6]=W=>m(f).color=W)},null,512)),[[tt,m(f).color]]):(h(),Y(y,{key:1,title:L.translatedLabel,"sport-label":L.label,color:L.color?L.color:m(c)[L.label]},null,8,["title","sport-label","color"]))]),d("td",{class:Te(["sport-label",{"disabled-sport":!L.is_active}])},[d("span",yje,_(A.$t("user.PROFILE.SPORT.LABEL")),1),N(L.id)?(h(),I(pe,{key:0},[V(_(L.translatedLabel),1)],64)):(h(),Y(b,{key:1,to:`/profile/sports/${L.id}`},{default:le(()=>[V(_(L.translatedLabel),1)]),_:2},1032,["to"])),L.is_active?M("",!0):(h(),I("span",Lje," ("+_(A.$t("user.PROFILE.SPORT.DISABLED_BY_ADMIN"))+") ",1)),m(l)&&N(L.id)?(h(),I("i",$je)):M("",!0),m(u)&&m(f).sport_id===L.id?(h(),Y(k,{key:4,message:m(u)},null,8,["message"])):M("",!0)],2),d("td",{class:Te(["text-center",{"disabled-sport":!L.is_active}])},[d("span",kje,_(A.$t("workouts.WORKOUT",0)),1),d("i",{class:Te(`fa fa${m(a).sports_list.includes(L.id)?"-check":""}`),"aria-hidden":"true"},null,2)],2),d("td",{class:Te(["text-center",{"disabled-sport":!L.is_active}])},[d("span",Uje,_(A.$t("equipments.EQUIPMENT",0)),1),d("i",{class:Te(`fa fa${L.default_equipments.length>0?"-check":""}`),"aria-hidden":"true"},null,2)],2),d("td",{class:Te(["text-center",{"disabled-sport":!L.is_active}])},[d("span",wje,_(A.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),N(L.id)&&L.is_active?(h(),I("input",{key:0,type:"checkbox",checked:L.is_active_for_user,onChange:v[7]||(v[7]=(...W)=>m(T)&&m(T)(...W))},null,40,Mje)):(h(),I("i",{key:1,class:Te(`fa fa${L.is_active_for_user?"-check":""}`),"aria-hidden":"true"},null,2))],2),d("td",{class:Te(["text-center",{"disabled-sport":!L.is_active}])},[d("span",Fje,_(A.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD"))+" "+_(`${m(a).imperial_units?"mi":"km"}/h`),1),N(L.id)&&L.is_active?ye((h(),I("input",{key:0,class:"threshold-input",type:"number",min:"0",step:"0.1","onUpdate:modelValue":v[8]||(v[8]=W=>m(f).stopped_speed_threshold=W)},null,512)),[[tt,m(f).stopped_speed_threshold]]):(h(),I("span",Wje,[F(z,{distance:L.stopped_speed_threshold,unitFrom:"km",speed:!0,useImperialUnits:m(a).imperial_units,displayUnit:!1},null,8,["distance","useImperialUnits"])]))],2),m(s)?(h(),I("td",zje,[d("span",xje,_(A.$t("user.PROFILE.SPORT.ACTION")),1),m(f).sport_id===0?(h(),I("button",{key:0,onClick:W=>g(L)},_(A.$t("buttons.EDIT")),9,Bje)):M("",!0),N(L.id)?(h(),I("div",Gje,[d("button",{disabled:m(l),onClick:v[9]||(v[9]=be(W=>m(O)(m(a)),["prevent"]))},_(A.$t("buttons.SUBMIT")),9,Hje),d("button",{disabled:m(l),class:"warning",onClick:v[10]||(v[10]=be(W=>m(p)(!0),["prevent"]))},_(A.$t("buttons.RESET")),9,Vje),d("button",{disabled:m(l),onClick:v[11]||(v[11]=W=>g(null))},_(A.$t("buttons.CANCEL")),9,jje)])):M("",!0)])):M("",!0)]))),128))])]),m(s)?(h(),I("div",Kje,[d("button",{class:"cancel",onClick:v[12]||(v[12]=be(L=>A.$router.push("/profile/sports"),["prevent"]))},_(A.$t("buttons.BACK")),1)])):(h(),I("div",qje,[d("button",{onClick:v[13]||(v[13]=L=>A.$router.push("/profile/edit/sports"))},_(A.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),d("button",{onClick:v[14]||(v[14]=L=>A.$router.push("/"))},_(A.$t("common.HOME")),1)]))])):M("",!0)])}}}),XT=ie(Yje,[["__scopeId","data-v-6c042f49"]]),Jo=e=>(rt("data-v-34b1686b"),e=e(),ot(),e),Xje={class:"about-text"},Qje=["innerHTML"],Zje=Jo(()=>d("i",{class:"fa fa-book fa-padding","aria-hidden":"true"},null,-1)),Jje=["href"],eKe=Jo(()=>d("i",{class:"fa fa-github fa-padding","aria-hidden":"true"},null,-1)),tKe={href:"https://github.com/SamR1/FitTrackee",target:"_blank",rel:"noopener noreferrer"},nKe=Jo(()=>d("i",{class:"fa fa-balance-scale fa-padding","aria-hidden":"true"},null,-1)),aKe=Jo(()=>d("a",{href:"https://choosealicense.com/licenses/agpl-3.0/",target:"_blank",rel:"noopener noreferrer"},"AGPLv3",-1)),sKe={key:0},rKe=Jo(()=>d("i",{class:"fa fa-envelope-o fa-padding","aria-hidden":"true"},null,-1)),oKe=["href"],iKe={key:1},uKe=["href"],lKe={class:"about-instance"},cKe=["innerHTML"],dKe=te({__name:"About",setup(e){const t=ke(),n=w(()=>t.getters[K.GETTERS.APP_CONFIG]),a=w(()=>o()),s=w(()=>t.getters[K.GETTERS.LANGUAGE]),r=w(()=>i());function o(){const u={};return n.value.weather_provider==="visualcrossing"&&(u.name="Visual Crossing",u.url="https://www.visualcrossing.com"),u}function i(){let u="https://samr1.github.io/FitTrackee/";return s.value==="fr"&&(u+="fr/"),u}return(u,l)=>{const c=oe("i18n-t");return h(),I("div",Xje,[d("div",null,[d("p",{class:"error-message",innerHTML:u.$t("about.FITTRACKEE_DESCRIPTION")},null,8,Qje),d("p",null,[Zje,d("a",{class:"documentation-link",href:r.value,target:"_blank",rel:"noopener noreferrer"},_(He(u.$t("common.DOCUMENTATION"))),9,Jje)]),d("p",null,[eKe,d("a",tKe,_(u.$t("about.SOURCE_CODE")),1)]),d("p",null,[nKe,F(c,{keypath:"about.FITTRACKEE_LICENSE"},{default:le(()=>[aKe]),_:1})]),n.value.admin_contact?(h(),I("div",sKe,[rKe,d("a",{href:`mailto:${n.value.admin_contact}`},_(u.$t("about.CONTACT_ADMIN")),9,oKe)])):M("",!0),a.value&&a.value.name?(h(),I("div",iKe,[V(_(u.$t("about.WEATHER_DATA_FROM"))+" ",1),d("a",{href:a.value.url,target:"_blank",rel:"nofollow noopener"},_(a.value.name),9,uKe)])):M("",!0),n.value.about?(h(),I(pe,{key:2},[d("p",lKe,_(u.$t("about.ABOUT_THIS_INSTANCE")),1),d("div",{innerHTML:m(Ds)(m(Lo)(n.value.about))},null,8,cKe)],64)):M("",!0)])])}}}),EKe=ie(dKe,[["__scopeId","data-v-34b1686b"]]),fKe={},pKe=e=>(rt("data-v-dc181e30"),e=e(),ot(),e),mKe={id:"bike"},_Ke=pKe(()=>d("img",{class:"bike-img",src:"/img/bike.svg",alt:"mountain bike"},null,-1)),TKe=[_Ke];function hKe(e,t){return h(),I("div",mKe,TKe)}const JO=ie(fKe,[["render",hKe],["__scopeId","data-v-dc181e30"]]),SKe={id:"about",class:"view"},AKe={class:"container"},OKe={class:"container-sub"},gKe={class:"container-sub about-details"},IKe=te({__name:"AboutView",setup(e){return(t,n)=>(h(),I("div",SKe,[d("div",AKe,[d("div",OKe,[F(JO)]),d("div",gKe,[F(EKe)])])]))}}),RKe=ie(IKe,[["__scopeId","data-v-ef9c7198"]]),NKe={id:"error"},vKe={class:"error-content"},bKe=te({__name:"Error",props:{title:{},message:{},buttonText:{},path:{default:"/"}},setup(e){const t=e,{buttonText:n,title:a,message:s,path:r}=me(t);return(o,i)=>(h(),I("div",NKe,[d("div",vKe,[d("h1",null,_(m(a)),1),d("p",null,_(m(s)),1),m(n)?(h(),I("button",{key:0,onClick:i[0]||(i[0]=u=>o.$router.push(m(r))),class:"upper"},_(m(n)),1)):M("",!0)])]))}}),CKe=ie(bKe,[["__scopeId","data-v-48ec856d"]]),qf=te({__name:"NotFound",props:{target:{default:"PAGE"}},setup(e){const t=e,{target:n}=me(t),a=de(),s=de(!1);St(()=>r());function r(){a.value=setTimeout(()=>{s.value=!0},500)}return pt(()=>{a.value&&clearTimeout(a.value)}),(o,i)=>s.value?(h(),Y(CKe,{key:0,title:"404",message:o.$t(`error.NOT_FOUND.${m(n)}`),"button-text":o.$t("common.HOME")},null,8,["message","button-text"])):M("",!0)}}),DKe=e=>(rt("data-v-5eee0876"),e=e(),ot(),e),PKe={id:"admin",class:"view"},yKe={key:0,class:"container"},LKe=DKe(()=>d("div",{id:"bottom"},null,-1)),$Ke=te({__name:"AdminView",setup(e){const t=ke(),n=w(()=>t.getters[K.GETTERS.APP_CONFIG]),a=w(()=>t.getters[K.GETTERS.APP_STATS]),s=w(()=>t.getters[Q.GETTERS.IS_ADMIN]),r=w(()=>t.getters[Q.GETTERS.USER_LOADING]);return ft(()=>t.dispatch(K.ACTIONS.GET_APPLICATION_STATS)),(o,i)=>{const u=oe("router-view");return h(),I("div",PKe,[r.value?M("",!0):(h(),I("div",yKe,[s.value?(h(),Y(u,{key:0,appConfig:n.value,appStatistics:a.value},null,8,["appConfig","appStatistics"])):(h(),Y(qf,{key:1})),LKe]))])}}}),kKe=ie($Ke,[["__scopeId","data-v-5eee0876"]]),eg="/img/workouts/mountains.svg",UKe=["alt"],wKe=d("div",{class:"map-attribution"},[d("a",{class:"map-attribution-text",href:"https://www.openstreetmap.org/copyright",target:"_blank",rel:"noopener noreferrer"}," © OpenStreetMap ")],-1),tg=te({__name:"StaticMap",props:{workout:{},displayHover:{type:Boolean,default:!1}},setup(e){const t=e,{displayHover:n}=me(t),a=`${Bo()}workouts/map/${t.workout.map}`;return(s,r)=>{const o=oe("router-link");return h(),I("div",{class:Te(["static-map",{"display-hover":m(n)}])},[m(n)?(h(),I("img",{key:0,src:a,alt:s.$t("workouts.WORKOUT_MAP")},null,8,UKe)):(h(),Y(o,{key:1,class:"bg-map-image",to:{name:"Workout",params:{workoutId:s.workout.id}},style:ba({backgroundImage:`url(${a})`}),"aria-label":s.$t("workouts.WORKOUT_MAP")},null,8,["to","style","aria-label"])),wKe],2)}}}),Yf=e=>(rt("data-v-ef89664d"),e=e(),ot(),e),MKe={class:"timeline-workout"},FKe={class:"box"},WKe={class:"workout-user-date"},zKe={class:"workout-user"},xKe=["datetime","title"],BKe={class:"workout-map"},GKe={class:"no-map"},HKe={class:"img"},VKe={class:"data"},jKe=Yf(()=>d("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1)),KKe={key:0},qKe={class:"data"},YKe=Yf(()=>d("i",{class:"fa fa-road","aria-hidden":"true"},null,-1)),XKe={key:0,class:"data elevation"},QKe=["alt"],ZKe={class:"data-values"},JKe={key:1,class:"data altitude"},eqe=Yf(()=>d("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1)),tqe={class:"data-values"},nqe=te({__name:"WorkoutCard",props:{user:{},useImperialUnits:{type:Boolean},workout:{default:()=>({})},sport:{default:()=>({})}},setup(e){const t=e,n=ke(),{user:a,workout:s,sport:r,useImperialUnits:o}=me(t),i=w(()=>n.getters[K.GETTERS.LOCALE]),u=w(()=>Wn(s.value.workout_date,a.value.timezone,a.value.date_format));function l(f){return f.with_gpx&&f.min_alt!==null&&f.max_alt!==null}function c(f){return l(f)&&f.ascent!==null&&f.descent!==null}return(f,E)=>{var R;const p=oe("router-link"),T=oe("SportImage"),O=oe("Distance");return h(),I("div",MKe,[d("div",FKe,[d("div",WKe,[d("div",zKe,[F(Go,{user:m(a)},null,8,["user"]),m(a).username?(h(),Y(p,{key:0,class:"workout-user-name",to:{name:"User",params:{username:m(a).username}}},{default:le(()=>[V(_(m(a).username),1)]),_:1},8,["to"])):M("",!0)]),m(s).id?(h(),Y(p,{key:0,class:"workout-title",to:{name:"Workout",params:{workoutId:m(s).id}}},{default:le(()=>[V(_(m(s).title),1)]),_:1},8,["to"])):M("",!0),m(s).workout_date&&m(a)?(h(),I("time",{key:1,class:"workout-date",datetime:u.value,title:u.value},_(m(eD)(new Date(m(s).workout_date),new Date,{addSuffix:!0,locale:i.value})),9,xKe)):M("",!0)]),d("div",BKe,[m(s).with_gpx?(h(),Y(tg,{key:0,workout:m(s)},null,8,["workout"])):m(s).id?(h(),Y(p,{key:1,to:{name:"Workout",params:{workoutId:m(s).id}}},{default:le(()=>[d("div",GKe,_(f.$t("workouts.NO_MAP")),1)]),_:1},8,["to"])):M("",!0)]),d("div",{class:Te(["workout-data",{"without-elevation":!l(m(s))}]),onClick:E[0]||(E[0]=g=>m(s).id?f.$router.push({name:"Workout",params:{workoutId:m(s).id}}):null)},[d("div",HKe,[(R=m(r))!=null&&R.label?(h(),Y(T,{key:0,"sport-label":m(r).label,color:m(r).color},null,8,["sport-label","color"])):M("",!0)]),d("div",VKe,[jKe,m(s)?(h(),I("span",KKe,_(m(s).moving),1)):M("",!0)]),d("div",qKe,[YKe,m(s).id?(h(),Y(O,{key:0,distance:m(s).distance,digits:3,unitFrom:"km",useImperialUnits:m(o)},null,8,["distance","useImperialUnits"])):M("",!0)]),l(m(s))?(h(),I("div",XKe,[d("img",{class:"mountains",src:eg,alt:f.$t("workouts.ELEVATION")},null,8,QKe),d("div",ZKe,[m(s).id?(h(),Y(O,{key:0,distance:m(s).min_alt,unitFrom:"m",displayUnit:!1,useImperialUnits:m(o)},null,8,["distance","useImperialUnits"])):M("",!0),V("/ "),m(s).id?(h(),Y(O,{key:1,distance:m(s).max_alt,unitFrom:"m",useImperialUnits:m(o)},null,8,["distance","useImperialUnits"])):M("",!0)])])):M("",!0),c(m(s))?(h(),I("div",JKe,[eqe,d("div",tqe,[V(" +"),m(s).id?(h(),Y(O,{key:0,distance:m(s).ascent,unitFrom:"m",displayUnit:!1,useImperialUnits:m(o)},null,8,["distance","useImperialUnits"])):M("",!0),V("/- "),m(s).id?(h(),Y(O,{key:1,distance:m(s).descent,unitFrom:"m",useImperialUnits:m(o)},null,8,["distance","useImperialUnits"])):M("",!0)])])):M("",!0)],2)])])}}}),QT=ie(nqe,[["__scopeId","data-v-ef89664d"]]),aqe={},sqe={class:"no-workouts box"};function rqe(e,t){const n=oe("router-link");return h(),I("div",sqe,[d("div",null,[V(_(e.$t("workouts.NO_WORKOUTS"))+" ",1),F(n,{to:"/workouts/add"},{default:le(()=>[V(_(e.$t("workouts.UPLOAD_FIRST_WORKOUT")),1)]),_:1})])])}const Xf=ie(aqe,[["render",rqe],["__scopeId","data-v-b0c91cc6"]]),Xa={ligthMode:{text:"#666",line:"rgba(0, 0, 0, 0.1)"},darkMode:{text:"#a1a1a1",line:"#3f3f3f"}},oqe=(e,t,n,a=!1)=>{const s={speed:{label:t("workouts.SPEED"),backgroundColor:["transparent"],borderColor:[a?"#5f5c97":"#8884d8"],borderWidth:2,data:[],yAxisID:"ySpeed"},elevation:{label:t("workouts.ELEVATION"),backgroundColor:[a?"#303030":"#e5e5e5"],borderColor:[a?"#222222":"#cccccc"],borderWidth:1,fill:!0,data:[],yAxisID:"yElevation"}},r=[],o=[],i=[];return e.map(u=>{r.push(Hi("km",u.distance,n)),o.push(u.duration),s.speed.data.push(Hi("km",u.speed,n)),u.elevation!==void 0&&s.elevation.data.push(Hi("m",u.elevation,n)),i.push({latitude:u.latitude,longitude:u.longitude})}),{distance_labels:r,duration_labels:o,datasets:s,coordinates:i}},iqe=e=>{const t=e.length;if(t===0)return{};const n={};return e.map(a=>{n[a.sport_id]||(n[a.sport_id]={count:0,percentage:0}),n[a.sport_id].count+=1,n[a.sport_id].percentage=n[a.sport_id].count/t}),n},ko={order:"desc",order_by:"workout_date"},uqe={id:"timeline"},lqe={class:"section-title"},cqe={key:0},dqe={key:1},Eqe={key:1,class:"more-workouts"},yi=5,fqe=te({__name:"Timeline",props:{sports:{},user:{}},setup(e){const t=e,n=ke(),{sports:a,user:s}=me(t),r=de(1),o=t.user.nb_workouts>=yi?yi:t.user.nb_workouts;ft(()=>l());const i=w(()=>n.getters[Re.GETTERS.TIMELINE_WORKOUTS]),u=w(()=>i.value.length>0?i.value[i.value.length-1].previous_workout!==null:!1);function l(){n.dispatch(Re.ACTIONS.GET_TIMELINE_WORKOUTS,{page:r.value,per_page:yi,...ko})}function c(){r.value+=1,n.dispatch(Re.ACTIONS.GET_MORE_TIMELINE_WORKOUTS,{page:r.value,per_page:yi,...ko})}return(f,E)=>(h(),I("div",uqe,[d("div",lqe,_(f.$t("workouts.LATEST_WORKOUTS")),1),m(s).nb_workouts>0&&i.value.length===0?(h(),I("div",cqe,[(h(!0),I(pe,null,Pe([...Array(m(o)).keys()],p=>(h(),Y(QT,{user:m(s),useImperialUnits:m(s).imperial_units,key:p},null,8,["user","useImperialUnits"]))),128))])):(h(),I("div",dqe,[(h(!0),I(pe,null,Pe(i.value,p=>(h(),Y(QT,{workout:p,sport:i.value.length>0?m(a).filter(T=>T.id===p.sport_id)[0]:null,user:m(s),useImperialUnits:m(s).imperial_units,key:p.id},null,8,["workout","sport","user","useImperialUnits"]))),128)),i.value.length===0?(h(),Y(Xf,{key:0})):M("",!0),u.value?(h(),I("div",Eqe,[d("button",{onClick:c},_(f.$t("workouts.LOAD_MORE_WORKOUT")),1)])):M("",!0)]))]))}}),pqe=ie(fqe,[["__scopeId","data-v-e0964959"]]),mqe=["title"],ng=te({__name:"CalendarWorkout",props:{displayHARecord:{type:Boolean},workout:{},sportLabel:{},sportColor:{}},setup(e){const t=e,{displayHARecord:n,workout:a,sportLabel:s,sportColor:r}=me(t);return(o,i)=>{const u=oe("SportImage"),l=oe("router-link");return h(),Y(l,{class:"calendar-workout",to:{name:"Workout",params:{workoutId:m(a).id}}},{default:le(()=>[F(u,{"sport-label":m(s),title:m(a).title,color:m(r)},null,8,["sport-label","title","color"]),d("sup",null,[m(a).records.length>0?(h(),I("i",{key:0,class:"fa fa-trophy custom-fa-small","aria-hidden":"true",title:m(a).records.filter(c=>m(n)?!0:c.record_type!=="HA").map(c=>` ${o.$t(`workouts.RECORD_${c.record_type}`)}`)[0]},null,8,mqe)):M("",!0)])]),_:1},8,["to"])}}}),_qe={class:"donut-chart"},Tqe={height:"34",width:"34",viewBox:"0 0 34 34"},hqe=["stroke","stroke-dashoffset","transform"],ZT=16,JT=16,e0=14,Sqe=te({__name:"DonutChart",props:{colors:{},datasets:{}},setup(e){const t=e,{colors:n,datasets:a}=me(t);let s=-90;const r=2*Math.PI*e0;function o(u,l){return l-u*l}function i(u,l){const c=`rotate(${s}, ${ZT}, ${JT})`;return s=l*360+s,c}return(u,l)=>(h(),I("div",_qe,[(h(),I("svg",Tqe,[(h(!0),I(pe,null,Pe(Object.entries(m(a)),(c,f)=>(h(),I("g",{key:f},[d("circle",{cx:ZT,cy:JT,r:e0,fill:"transparent",stroke:m(n)[+c[0]],"stroke-dashoffset":o(c[1].percentage,r),"stroke-dasharray":r,"stroke-width":"3","stroke-opacity":"0.8",transform:i(f,c[1].percentage)},null,8,hqe)]))),128))]))]))}}),Aqe=e=>(rt("data-v-796e8c43"),e=e(),ot(),e),Oqe={class:"calendar-workouts-chart"},gqe=["id"],Iqe={class:"workouts-count"},Rqe={key:0,class:"workouts-pane"},Nqe=["id"],vqe=Aqe(()=>d("i",{class:"fa fa-times","aria-hidden":"true"},null,-1)),bqe=[vqe],Cqe=te({__name:"CalendarWorkoutsChart",props:{colors:{},datasets:{},sports:{},workouts:{},displayHARecord:{type:Boolean},index:{}},setup(e){const t=e;let n=0;const{colors:a,datasets:s,index:r,sports:o,workouts:i}=me(t),u=de(!0);function l(){const E=document.getElementById(`workouts-pane-${r.value}`);return E!=null&&E.children&&(E==null?void 0:E.children.length)>0?E:null}async function c(E){var T;E.preventDefault(),E.stopPropagation(),u.value=!u.value,await on();const p=l();u.value?(T=document.getElementById(`workouts-donut-${r.value}`))==null||T.focus():(p==null?void 0:p.children[0]).focus()}function f(E){if(!u.value){if(!u.value&&(E.key==="Tab"||E.keyCode===9)){E.preventDefault(),E.stopPropagation();const p=l();p&&(E.shiftKey?(n-=1,n<0&&(n=p.children.length-1)):(n+=1,n>=p.children.length&&(n=0)),p.children[n].focus())}E.key==="Escape"&&c(E)}}return St(()=>{document.addEventListener("keydown",f)}),pt(()=>{document.removeEventListener("keydown",f)}),(E,p)=>{const T=eR("click-outside");return h(),I("div",Oqe,[d("button",{class:"workouts-chart transparent",id:`workouts-donut-${m(r)}`,onClick:c},[d("div",Iqe,_(m(i).length),1),F(Sqe,{datasets:m(s),colors:m(a)},null,8,["datasets","colors"])],8,gqe),u.value?M("",!0):(h(),I("div",Rqe,[ye((h(),I("div",{class:"more-workouts",id:`workouts-pane-${m(r)}`},[d("button",{class:"calendar-more-close transparent",onClick:c},bqe),(h(!0),I(pe,null,Pe(m(i),(O,R)=>(h(),Y(ng,{key:R,displayHARecord:E.displayHARecord,workout:O,sportLabel:m(Wf)(O,m(o)),sportColor:m(zf)(O,m(o))},null,8,["displayHARecord","workout","sportLabel","sportColor"]))),128))],8,Nqe)),[[T,c]])]))])}}}),t0=ie(Cqe,[["__scopeId","data-v-796e8c43"]]),Dqe={class:"calendar-workouts"},Pqe={class:"desktop-display"},yqe={key:0,class:"workouts-display"},Lqe={key:1,class:"donut-display"},$qe={class:"mobile-display"},kqe={key:0,class:"donut-display"},n0=6,Uqe=te({__name:"CalendarWorkouts",props:{displayHARecord:{type:Boolean},workouts:{},sports:{},index:{}},setup(e){const t=e,{displayHARecord:n,index:a,sports:s,workouts:r}=me(t),o=w(()=>iqe(t.workouts)),i=w(()=>i7e(t.sports));return(u,l)=>(h(),I("div",Dqe,[d("div",Pqe,[m(r).length<=n0?(h(),I("div",yqe,[(h(!0),I(pe,null,Pe(m(r).slice(0,n0),(c,f)=>(h(),Y(ng,{key:f,displayHARecord:m(n),workout:c,sportLabel:m(Wf)(c,m(s)),sportColor:m(zf)(c,m(s))},null,8,["displayHARecord","workout","sportLabel","sportColor"]))),128))])):(h(),I("div",Lqe,[F(t0,{workouts:m(r),sports:m(s),datasets:o.value,colors:i.value,displayHARecord:m(n),index:m(a)},null,8,["workouts","sports","datasets","colors","displayHARecord","index"])]))]),d("div",$qe,[m(r).length>0?(h(),I("div",kqe,[F(t0,{workouts:m(r),sports:m(s),datasets:o.value,colors:i.value,displayHARecord:m(n),index:m(a)},null,8,["workouts","sports","datasets","colors","displayHARecord","index"])])):M("",!0)])]))}}),wqe={class:"calendar-cells"},Mqe={class:"calendar-cell-day"},Fqe=te({__name:"CalendarCells",props:{currentDay:{},displayHARecord:{type:Boolean},endDate:{},sports:{},startDate:{},timezone:{},weekStartingMonday:{type:Boolean},workouts:{}},setup(e){const t=e,{currentDay:n,displayHARecord:a,endDate:s,sports:r,startDate:o,timezone:i,weekStartingMonday:u,workouts:l}=me(t),c=de([]);St(()=>f());function f(){c.value=[];let T=o.value;for(;T<=s.value;){const O=[];for(let R=0;R<7;R++)O.push(T),T=Vo(T,1);c.value.push(O)}}function E(T){return u.value?[5,6].includes(T):[0,6].includes(T)}function p(T,O){return O?O.filter(R=>iS(Kl(R.workout_date,i.value),T)).reverse():[]}return Me(()=>t.currentDay,()=>f()),(T,O)=>(h(),I("div",wqe,[(h(!0),I(pe,null,Pe(c.value,(R,g)=>(h(),I("div",{class:"calendar-row",key:g},[(h(!0),I(pe,null,Pe(R,(N,S)=>(h(),I("div",{class:Te(["calendar-cell",{"disabled-cell":!m(nD)(N,m(n)),"week-end":E(S),today:m(aD)(N)}]),key:S},[F(Uqe,{workouts:p(N,m(l)),sports:m(r),displayHARecord:m(a),index:S},null,8,["workouts","sports","displayHARecord","index"]),d("div",Mqe,_(m(un)(N,"d")),1)],2))),128))]))),128))]))}}),Wqe={class:"calendar-days"},zqe=te({__name:"CalendarDays",props:{startDate:{},localeOptions:{}},setup(e){const t=e,n=[];for(let a=0;a<7;a++)n.push(Vo(t.startDate,a));return(a,s)=>(h(),I("div",Wqe,[(h(),I(pe,null,Pe(n,(r,o)=>d("div",{class:"calendar-day",key:o},_(m(un)(r,a.localeOptions.code==="eu"?"EEEEEE.":"EEE",{locale:a.localeOptions})),1)),64))]))}}),xqe={class:"calendar-header"},Bqe=["aria-label"],Gqe=d("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1),Hqe=[Gqe],Vqe={class:"calendar-month"},jqe=["aria-label"],Kqe=d("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1),qqe=[Kqe],Yqe=te({__name:"CalendarHeader",props:{day:{},localeOptions:{}},emits:["displayNextMonth","displayPreviousMonth"],setup(e,{emit:t}){const n=e,a=t,{day:s,localeOptions:r}=me(n);return(o,i)=>(h(),I("div",xqe,[d("button",{class:"calendar-arrow calendar-arrow-left transparent",onClick:i[0]||(i[0]=u=>a("displayPreviousMonth")),"aria-label":o.$t("common.PREVIOUS")},Hqe,8,Bqe),d("div",Vqe,[d("span",null,_(m(un)(m(s),"MMM yyyy",{locale:m(r)})),1)]),d("button",{class:"calendar-arrow calendar-arrow-right transparent",onClick:i[1]||(i[1]=u=>a("displayNextMonth")),"aria-label":o.$t("common.NEXT")},qqe,8,jqe)]))}}),Xqe={id:"user-calendar"},Qqe={class:"calendar-card box"},a0="yyyy-MM-dd",Zqe=te({__name:"index",props:{sports:{},user:{}},setup(e){const t=e,n=ke(),{sports:a,user:s}=me(t),r=de(new Date),o=de(PT(r.value,s.value.weekm)),i=w(()=>n.getters[Re.GETTERS.CALENDAR_WORKOUTS]),u=w(()=>n.getters[K.GETTERS.LOCALE]);ft(()=>l());function l(){o.value=PT(r.value,t.user.weekm);const E={from:un(o.value.start,a0),to:un(o.value.end,a0),page:1,per_page:100,...ko};n.dispatch(Re.ACTIONS.GET_CALENDAR_WORKOUTS,E)}function c(){r.value=ur(r.value,1),l()}function f(){r.value=To(r.value,1),l()}return(E,p)=>(h(),I("div",Xqe,[d("div",Qqe,[F(Yqe,{day:r.value,"locale-options":u.value,onDisplayNextMonth:c,onDisplayPreviousMonth:f},null,8,["day","locale-options"]),F(zqe,{"start-date":o.value.start,"locale-options":u.value},null,8,["start-date","locale-options"]),F(Fqe,{currentDay:r.value,displayHARecord:m(s).display_ascent,"end-date":o.value.end,sports:m(a),"start-date":o.value.start,timezone:m(s).timezone,workouts:i.value,weekStartingMonday:m(s).weekm},null,8,["currentDay","displayHARecord","end-date","sports","start-date","timezone","workouts","weekStartingMonday"])])]))}}),ag={data:{type:Object,required:!0},options:{type:Object,default:()=>({})},plugins:{type:Array,default:()=>[]},datasetIdKey:{type:String,default:"label"},updateMode:{type:String,default:void 0}},Jqe={ariaLabel:{type:String},ariaDescribedby:{type:String}},eYe={type:{type:String,required:!0},destroyDelay:{type:Number,default:0},...ag,...Jqe},tYe=yh[0]==="2"?(e,t)=>Object.assign(e,{attrs:t}):(e,t)=>Object.assign(e,t);function Ks(e){return ul(e)?lt(e):e}function nYe(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e;return ul(t)?new Proxy(e,{}):e}function aYe(e,t){const n=e.options;n&&t&&Object.assign(n,t)}function sg(e,t){e.labels=t}function rg(e,t,n){const a=[];e.datasets=t.map(s=>{const r=e.datasets.find(o=>o[n]===s[n]);return!r||!s.data||a.includes(r)?{...s}:(a.push(r),Object.assign(r,s),r)})}function sYe(e,t){const n={labels:[],datasets:[]};return sg(n,e.labels),rg(n,e.datasets,t),n}const rYe=te({props:eYe,setup(e,t){let{expose:n,slots:a}=t;const s=de(null),r=wo(null);n({chart:r});const o=()=>{if(!s.value)return;const{type:l,data:c,options:f,plugins:E,datasetIdKey:p}=e,T=sYe(c,p),O=nYe(T,c);r.value=new hE(s.value,{type:l,data:O,options:{...f},plugins:E})},i=()=>{const l=lt(r.value);l&&(e.destroyDelay>0?setTimeout(()=>{l.destroy(),r.value=null},e.destroyDelay):(l.destroy(),r.value=null))},u=l=>{l.update(e.updateMode)};return St(o),pt(i),Me([()=>e.options,()=>e.data],(l,c)=>{let[f,E]=l,[p,T]=c;const O=lt(r.value);if(!O)return;let R=!1;if(f){const g=Ks(f),N=Ks(p);g&&g!==N&&(aYe(O,g),R=!0)}if(E){const g=Ks(E.labels),N=Ks(T.labels),S=Ks(E.datasets),A=Ks(T.datasets);g!==N&&(sg(O.config.data,g),R=!0),S&&S!==A&&(rg(O.config.data,S,e.datasetIdKey),R=!0)}R&&on(()=>{u(O)})},{deep:!0}),()=>hn("canvas",{role:"img",ariaLabel:e.ariaLabel,ariaDescribedby:e.ariaDescribedby,ref:s},[hn("p",{},[a.default?a.default():""])])}});function og(e,t){return hE.register(t),te({props:ag,setup(n,a){let{expose:s}=a;const r=wo(null),o=i=>{r.value=i==null?void 0:i.chart};return s({chart:r}),()=>hn(rYe,tYe({ref:o},{type:e,...n}))}})}const oYe=og("bar",S0),iYe=og("line",A0),Hr=(e,t,n,a=!0,s="km")=>{const r=n?mn[s].defaultTarget:s;switch(e){case"average_speed":return`${t.toFixed(2)} ${r}/h`;case"average_duration":case"total_duration":return eVe(t,a);case"average_distance":case"average_ascent":case"average_descent":case"total_distance":case"total_ascent":case"total_descent":return`${t.toFixed(2)} ${r}`;default:return t.toString()}},uYe=te({__name:"Chart",props:{datasets:{},labels:{},displayedData:{},displayedSportIds:{},fullStats:{type:Boolean},useImperialUnits:{type:Boolean},label:{}},setup(e){const t=e,{datasets:n,labels:a,displayedData:s,displayedSportIds:r,fullStats:o,useImperialUnits:i}=me(t),u=Ho(),{t:l}=kt(),c=w(()=>u.getters[K.GETTERS.DARK_MODE]),f=w(()=>Rl(c.value)),E=w(()=>({color:f.value?Xa.darkMode.line:Xa.ligthMode.line})),p=w(()=>({color:f.value?Xa.darkMode.text:Xa.ligthMode.text})),T=w(()=>s.value!=="average_workouts"&&s.value.startsWith("average")),O=w(()=>({labels:a.value,datasets:JSON.parse(JSON.stringify(n.value))})),R=w(()=>({responsive:!0,maintainAspectRatio:!1,animation:!1,layout:{padding:{top:o.value?40:22}},scales:{x:{stacked:!0,grid:{drawOnChartArea:!1,...E.value},border:{...E.value},ticks:{...p.value}},y:{stacked:!s.value.startsWith("average"),grid:{drawOnChartArea:!1,...E.value},border:{...E.value},ticks:{maxTicksLimit:6,callback:function(A){return Hr(s.value,+A,i.value,!1,S(s.value))},...p.value},afterFit:function(A){A.width=o.value?90:60}}},plugins:{datalabels:{anchor:"end",align:"end",color:function(A){return T.value&&A.dataset.backgroundColor?A.dataset.backgroundColor[0]:p.value.color},rotation:function(A){return o.value&&A.chart.chartArea.width<580?310:0},display:function(A){return o.value&&A.chart.chartArea.width<300?!1:T.value?r.value.length==1?"auto":!1:!0},formatter:function(A,v){if(s.value.startsWith("average"))return Hr(s.value,A,i.value,!1);{const D=v.chart.data.datasets.map(y=>y.data[v.dataIndex]).reduce((y,b)=>N(y,b),0);return v.datasetIndex===r.value.length-1&&D>0?Hr(s.value,D,i.value,!1,S(s.value)):null}}},legend:{display:!1},tooltip:{interaction:{intersect:!0,mode:"index",position:T.value?"nearest":"average"},filter:function(A){return A.formattedValue!=="0"},callbacks:{label:function(A){let v=s.value==="average_workouts"?l("workouts.WORKOUT",0):l(`sports.${A.dataset.label}.LABEL`)||"";return v&&(v+=": "),A.parsed.y!==null&&(v+=Hr(s.value,A.parsed.y,i.value,!0,S(s.value))),v},footer:function(A){if(s.value.startsWith("average"))return"";let v=0;return A.map(D=>{v+=D.parsed.y}),`${l("common.TOTAL")}: `+Hr(s.value,v,i.value,!0,S(s.value))}}}}}));function g(A){return isNaN(A)?0:+A}function N(A,v){return g(A)+g(v)}function S(A){return A.includes("scent")?"m":"km"}return(A,v)=>(h(),I("div",{class:Te(["bar-chart",{minimal:!m(o)}])},[F(m(oYe),{data:O.value,options:R.value,"aria-label":A.label},null,8,["data","options","aria-label"])],2))}}),lYe=ie(uYe,[["__scopeId","data-v-893ee0af"]]),{locale:sl}=Us.global,ig={week:{api:"yyyy-MM-dd",chart:"MM/dd/yyyy"},month:{api:"yyyy-MM",chart:"MM/yyyy"},year:{api:"yyyy",chart:"yyyy"}},cYe=["average_ascent","average_descent","average_distance","average_duration","average_speed","total_workouts","total_duration","total_distance","total_ascent","total_descent"],dYe=(e,t)=>{const n=[];for(let a=A9e(e.duration,e.start,t);a<=e.end;a=O9e(e.duration,a))n.push(a);return n},Jn=(e,t,n=!1)=>{const a={label:e,backgroundColor:[t],data:[]};return n?(a.type="line",a.borderColor=[t],a.spanGaps=!0):a.type="bar",a},EYe=e=>{const t={average_ascent:[],average_descent:[],average_distance:[],average_duration:[],average_speed:[],average_workouts:[],total_workouts:[],total_distance:[],total_duration:[],total_ascent:[],total_descent:[]};return e.map(n=>{const a=n.color?n.color:Ff[n.label];t.average_ascent.push(Jn(n.label,a,!0)),t.average_descent.push(Jn(n.label,a,!0)),t.average_distance.push(Jn(n.label,a,!0)),t.average_duration.push(Jn(n.label,a,!0)),t.average_speed.push(Jn(n.label,a,!0)),t.total_workouts.push(Jn(n.label,a)),t.total_distance.push(Jn(n.label,a)),t.total_duration.push(Jn(n.label,a)),t.total_ascent.push(Jn(n.label,a)),t.total_descent.push(Jn(n.label,a))}),t},fYe=(e,t,n)=>{switch(e){case"average_speed":case"total_distance":case"total_ascent":case"total_descent":case"average_distance":case"average_ascent":case"average_descent":return Hi(["average_speed","total_distance","average_distance"].includes(e)?"km":"m",t,n);default:case"total_workouts":case"total_duration":case"average_duration":return t}},_E=(e,t,n,a)=>un(e,t==="week"?us(n,sl.value):a,{locale:br[sl.value]}),pYe=(e,t,n,a,s,r,o)=>{const i=dYe(e,t),u=ig[e.duration],l=n.filter(p=>a.includes(p.id)),c=[],f=EYe(l),E={};return l.map(p=>E[p.label]=p.id),i.map(p=>{const T=un(p,u.api),O=_E(p,e.duration,o,u.chart);un(p,e.duration==="week"?us(o,sl.value):u.chart,{locale:br[sl.value]}),c.push(O),cYe.map(R=>{f[R].map(g=>{g.data.push(T in s&&E[g.label]in s[T]?fYe(R,s[T][E[g.label]][R],r):R.startsWith("average")?null:0)})})}),{labels:c,datasets:f}},mYe=(e,t,n,a)=>{const s=n?1:0,r=t==="year"?ZE(Td(e,9)):t==="week"?vl(To(e,2),{weekStartsOn:s}):Ko(To(e,11)),o=t==="year"?uS(e):t==="week"?JE(e,{weekStartsOn:s}):jo(e);return{duration:t,end:o,start:r,statsType:a}},_Ye=(e,t,n)=>{const{duration:a,start:s,end:r}=e,o=n?1:0;return{duration:a,end:a==="year"?uS(t?Td(r,1):du(r,1)):a==="week"?JE(t?km(r,1):_d(r,1),{weekStartsOn:o}):jo(t?To(r,1):ur(r,1)),start:a==="year"?ZE(t?Td(s,1):du(s,1)):a==="week"?vl(t?km(s,1):_d(s,1),{weekStartsOn:o}):Ko(t?To(s,1):ur(s,1)),statsType:e.statsType}},s0=e=>{const t=e.reduce((a,s)=>(a||0)+(s||0),0);return+(e.length?(t||0)/e.length:0).toFixed(1)},TYe=e=>{const t=[],n={label:"workouts_average",backgroundColor:[],data:[]};let a=[];for(const s of e)n.data.push(s0(s.data)),n.backgroundColor.push(s.backgroundColor[0]),t.push(s.label),a.length>0?a=a.map((r,o)=>r+(s.data[o]||0)):a=s.data.map(r=>r||0);return{labels:t,datasets:{workouts_average:[n]},workoutsAverage:s0(a)}},hYe=e=>(rt("data-v-56be982d"),e=e(),ot(),e),SYe={class:"stats-chart"},AYe={key:0},OYe={key:1},gYe={class:"chart-radio"},IYe=["value","checked","disabled"],RYe=["value","checked","disabled"],NYe=["value","checked","disabled"],vYe={key:0},bYe=["checked","disabled"],CYe={key:1},DYe=["value","checked","disabled"],PYe={key:2},yYe=["value","checked","disabled"],LYe={class:"workouts-average"},$Ye={key:0,class:"info-box"},kYe=hYe(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),UYe=te({__name:"index",props:{sports:{},user:{},chartParams:{},displayedSportIds:{default:()=>[]},fullStats:{type:Boolean,default:!1},hideChartIfNoData:{type:Boolean,default:!1},isDisabled:{type:Boolean,default:!1},selectedTimeFrame:{default:null}},setup(e){const t=e,{sports:n,user:a,chartParams:s,displayedSportIds:r,fullStats:o,hideChartIfNoData:i,isDisabled:u}=me(t),l=ke(),c=de("total_distance"),f=w(()=>l.getters[$t.GETTERS.USER_STATS]),E=w(()=>ig[s.value.duration].chart),p=w(()=>_E(s.value.start,s.value.duration,a.value.date_format,E.value)),T=w(()=>_E(s.value.end,s.value.duration,a.value.date_format,E.value)),O=w(()=>pYe(s.value,a.value.weekm,n.value,r.value,f.value,a.value.imperial_units,a.value.date_format)),R=w(()=>O.value.datasets[c.value]),g=w(()=>O.value.labels),N=w(()=>Object.keys(f.value).length===0),S=w(()=>s.value.statsType),A=w(()=>TYe(O.value.datasets.total_workouts));ft(()=>v(y(s.value,a.value)));function v(b){l.dispatch($t.ACTIONS.GET_USER_STATS,{username:a.value.username,params:b})}function D(b){c.value=b.target.value}function y(b,k){return{from:un(b.start,"yyyy-MM-dd"),to:un(b.end,"yyyy-MM-dd"),time:b.duration==="week"?`week${k.weekm?"m":""}`:b.duration,type:S.value}}return Me(()=>s.value,async b=>{v(y(b,a.value))}),Me(()=>S.value,async b=>{c.value=b==="total"&&c.value==="average_speed"?"total_distance":`${S.value}_${c.value.split("_")[1]}`}),(b,k)=>(h(),I("div",SYe,[m(i)&&N.value?(h(),I("div",AYe,_(b.$t("workouts.NO_WORKOUTS")),1)):(h(),I("div",OYe,[d("div",gYe,[d("label",null,[d("input",{type:"radio",name:"value_type",value:`${S.value}_distance`,checked:c.value===`${S.value}_distance`,disabled:m(u),onClick:D},null,8,IYe),V(" "+_(b.$t("workouts.DISTANCE")),1)]),d("label",null,[d("input",{type:"radio",name:"value_type",value:`${S.value}_duration`,checked:c.value===`${S.value}_duration`,disabled:m(u),onClick:D},null,8,RYe),V(" "+_(b.$t("workouts.DURATION")),1)]),d("label",null,[d("input",{type:"radio",name:"value_type",value:`${S.value}_workouts`,checked:c.value===`${S.value}_workouts`,disabled:m(u),onClick:D},null,8,NYe),V(" "+_(b.$t("workouts.WORKOUT",2)),1)]),m(o)&&S.value==="average"?(h(),I("label",vYe,[d("input",{type:"radio",name:"value_type",value:"average_speed",checked:c.value==="average_speed",disabled:m(u),onClick:D},null,8,bYe),V(" "+_(b.$t("workouts.SPEED")),1)])):M("",!0),m(o)?(h(),I("label",CYe,[d("input",{type:"radio",name:"value_type",value:`${S.value}_ascent`,checked:c.value===`${S.value}_ascent`,disabled:m(u),onClick:D},null,8,DYe),V(" "+_(b.$t("workouts.ASCENT")),1)])):M("",!0),m(o)?(h(),I("label",PYe,[d("input",{type:"radio",name:"value_type",value:`${S.value}_descent`,checked:c.value===`${S.value}_descent`,disabled:m(u),onClick:D},null,8,yYe),V(" "+_(b.$t("workouts.DESCENT")),1)])):M("",!0)]),g.value.length>0||A.value.labels.length>0?(h(),Y(lYe,{key:0,datasets:c.value==="average_workouts"?A.value.datasets.workouts_average:R.value,labels:c.value==="average_workouts"?A.value.labels:g.value,displayedData:c.value,displayedSportIds:m(r),fullStats:m(o),useImperialUnits:m(a).imperial_units,label:b.$t(`statistics.STATISTICS_CHARTS.${m(s).duration}`)+` (${p.value} - ${T.value})`},null,8,["datasets","labels","displayedData","displayedSportIds","fullStats","useImperialUnits","label"])):M("",!0),d("div",LYe,[c.value==="average_workouts"&&b.selectedTimeFrame?(h(),I("div",$Ye,[kYe,V(" "+_(b.$t("statistics.DATES"))+": "+_(p.value)+" - "+_(T.value)+", "+_(b.$t("statistics.WORKOUTS_AVERAGE"))+": "+_(A.value.workoutsAverage)+"/"+_(b.$t(`statistics.TIME_FRAMES.${b.selectedTimeFrame}`)),1)])):M("",!0)])]))]))}}),ug=ie(UYe,[["__scopeId","data-v-56be982d"]]),wYe={class:"user-month-stats"},MYe=te({__name:"UserMonthStats",props:{sports:{},user:{}},setup(e){const t=e,{sports:n,user:a}=me(t),s=new Date,r={duration:"week",start:Ko(s),end:jo(s),statsType:"total"},o=n.value.map(i=>i.id);return(i,u)=>{const l=oe("Card");return h(),I("div",wYe,[F(l,null,{title:le(()=>[V(_(i.$t("dashboard.THIS_MONTH")),1)]),content:le(()=>[F(ug,{sports:m(n),user:m(a),"chart-params":r,"displayed-sport-ids":m(o),"hide-chart-if-no-data":!0},null,8,["sports","user","displayed-sport-ids"])]),_:1})])}}}),FYe=ie(MYe,[["__scopeId","data-v-3131940a"]]),WYe={class:"record"},zYe={class:"record-type"},xYe={class:"record-value"},BYe={class:"record-date"},GYe=te({__name:"SportRecordsTable",props:{record:{}},setup(e){const t=e,{record:n}=me(t);return(a,s)=>{const r=oe("router-link");return h(),I("div",WYe,[d("span",zYe,_(He(m(n).label)),1),d("span",xYe,_(m(n).value),1),d("span",BYe,[F(r,{to:{name:"Workout",params:{workoutId:m(n).workout_id}}},{default:le(()=>[d("time",null,_(m(n).workout_date),1)]),_:1},8,["to"])])])}}}),lg=ie(GYe,[["__scopeId","data-v-fce46986"]]),{locale:HYe}=Us.global,VYe=(e,t,n,a)=>{const s="km",r=n?mn[s].defaultTarget:s,o="m",i=n?mn[o].defaultTarget:o;let u;switch(e.record_type){case"AS":case"MS":u=`${xt(+e.value,s,r,2)} ${r}/h`;break;case"FD":u=`${xt(+e.value,s,r,3)} ${r}`;break;case"HA":u=`${xt(+e.value,o,i,2)} ${i}`;break;case"LD":u=e.value;break;default:throw new Error(`Invalid record type, expected: "AS", "FD", "HA", "LD", "MD", got: "${e.record_type}"`)}return{id:e.id,record_type:e.record_type,sport_id:e.sport_id,value:u,user:e.user,workout_date:Wn(e.workout_date,t,a,!1),workout_id:e.workout_id}},cg=(e,t)=>{const n=e.label.toLowerCase(),a=t.label.toLowerCase();return n>a?1:n(r=us(r,HYe.value),e.filter(i=>s?!0:i.record_type!=="HA").reduce((i,u)=>{const l=t.find(c=>c.id===u.sport_id);return l&&l.label&&(o===null||l.id===o)&&(i[l.translatedLabel]===void 0&&(i[l.translatedLabel]={label:l.label,color:l.color,records:[]}),i[l.translatedLabel].records.push(VYe(u,n,a,r))),i},{})),jYe={class:"records-card"},KYe=te({__name:"RecordsCard",props:{records:{},sportTranslatedLabel:{}},setup(e){const t=e,{records:n,sportTranslatedLabel:a}=me(t),{t:s}=kt();function r(o){const i=[];return o.map(u=>{i.push({...u,label:s(`workouts.RECORD_${u.record_type}`)})}),i.sort(cg)}return(o,i)=>{const u=oe("SportImage"),l=oe("Card");return h(),I("div",jYe,[F(l,null,{title:le(()=>[F(u,{"sport-label":m(n).label,color:m(n).color},null,8,["sport-label","color"]),V(" "+_(m(a)),1)]),content:le(()=>[(h(!0),I(pe,null,Pe(r(m(n).records),c=>(h(),Y(lg,{record:c,key:c.id},null,8,["record"]))),128))]),_:1})])}}}),qYe=ie(KYe,[["__scopeId","data-v-7e216666"]]),YYe=e=>(rt("data-v-fff33919"),e=e(),ot(),e),XYe={class:"user-records-section"},QYe={class:"section-title"},ZYe=YYe(()=>d("i",{class:"fa fa-trophy custom-fa-small","aria-hidden":"true"},null,-1)),JYe={class:"user-records"},eXe={key:0,class:"no-records"},tXe=te({__name:"index",props:{sports:{},user:{}},setup(e){const t=e,{t:n}=kt(),a=w(()=>dg(t.user.records,Mn(t.sports,n),t.user.timezone,t.user.imperial_units,t.user.display_ascent,t.user.date_format));return(s,r)=>(h(),I("div",XYe,[d("div",QYe,[ZYe,V(" "+_(s.$t("workouts.RECORD",2)),1)]),d("div",JYe,[Object.keys(a.value).length===0?(h(),I("div",eXe,_(s.$t("workouts.NO_RECORDS")),1)):M("",!0),(h(!0),I(pe,null,Pe(Object.keys(a.value).sort(),o=>(h(),Y(qYe,{sportTranslatedLabel:o,records:a.value[o],key:o,useImperialUnits:s.user.imperial_units},null,8,["sportTranslatedLabel","records","useImperialUnits"]))),128))])]))}}),nXe=ie(tXe,[["__scopeId","data-v-fff33919"]]),aXe={id:"user-stats"},zc="km",xc="m",sXe=te({__name:"index",props:{user:{}},setup(e){const t=e,{t:n}=kt(),{user:a}=me(t),s=w(()=>jf(a.value.total_duration,n)),r=a.value.imperial_units?mn[zc].defaultTarget:zc,o=w(()=>a.value.imperial_units?xt(a.value.total_distance,zc,r,2):parseFloat(a.value.total_distance.toFixed(2))),i=a.value.imperial_units?mn[xc].defaultTarget:xc,u=w(()=>a.value.imperial_units?xt(a.value.total_ascent,xc,i,2):parseFloat(a.value.total_ascent.toFixed(2)));return(l,c)=>(h(),I("div",aXe,[F(Ia,{icon:"calendar",value:m(a).nb_workouts,text:l.$t("workouts.WORKOUT",m(a).nb_workouts)},null,8,["value","text"]),F(Ia,{icon:"road",value:o.value,text:m(r)==="mi"?"miles":m(r)},null,8,["value","text"]),m(a).display_ascent?(h(),Y(Ia,{key:0,icon:"location-arrow",value:u.value,text:m(i)==="ft"?"feet":m(i)},null,8,["value","text"])):M("",!0),F(Ia,{icon:"clock-o",value:s.value.days,text:s.value.duration},null,8,["value","text"]),m(a).display_ascent?M("",!0):(h(),Y(Ia,{key:1,icon:"tags",value:m(a).nb_sports,text:l.$t("workouts.SPORT",m(a).nb_sports)},null,8,["value","text"]))]))}}),rXe={},oXe={class:"privacy-policy-message"};function iXe(e,t){const n=oe("router-link"),a=oe("i18n-t");return h(),I("div",oXe,[d("span",null,[F(a,{keypath:"user.LAST_PRIVACY_POLICY_TO_VALIDATE"},{default:le(()=>[F(n,{to:"/profile/edit/privacy-policy",class:"policy-link"},{default:le(()=>[V(_(e.$t("user.REVIEW")),1)]),_:1})]),_:1})])])}const uXe=ie(rXe,[["render",iXe],["__scopeId","data-v-1b250692"]]),ei=e=>(rt("data-v-6e13c66c"),e=e(),ot(),e),lXe={key:0,id:"dashboard",class:"view"},cXe={class:"container mobile-menu"},dXe={class:"box"},EXe=ei(()=>d("i",{class:"fa fa-calendar","aria-hidden":"true"},null,-1)),fXe=[EXe],pXe=ei(()=>d("i",{class:"fa fa-bar-chart","aria-hidden":"true"},null,-1)),mXe=[pXe],_Xe=ei(()=>d("i",{class:"fa fa-map-o","aria-hidden":"true"},null,-1)),TXe=[_Xe],hXe=ei(()=>d("i",{class:"fa fa-trophy","aria-hidden":"true"},null,-1)),SXe=[hXe],AXe={key:0,class:"container privacy-policy-message"},OXe={class:"container"},gXe={class:"container dashboard-container"},IXe={class:"left-container dashboard-sub-container"},RXe={class:"right-container dashboard-sub-container"},NXe=ei(()=>d("div",{id:"bottom"},null,-1)),vXe={key:1,class:"app-loading"},bXe=te({__name:"Dashboard",setup(e){const t=ke(),n=w(()=>t.getters[Q.GETTERS.AUTH_USER_PROFILE]),a=w(()=>t.getters[Dt.GETTERS.SPORTS]),s=de("calendar");ft(()=>t.dispatch(Q.ACTIONS.GET_USER_PROFILE));function r(o){s.value=o}return(o,i)=>{const u=oe("Loader");return n.value.username&&a.value.length>0?(h(),I("div",lXe,[d("div",cXe,[d("div",dXe,[d("div",{class:Te(["mobile-menu-item",{"is-selected":s.value==="calendar"}]),onClick:i[0]||(i[0]=l=>r("calendar"))},fXe,2),d("div",{class:Te(["mobile-menu-item",{"is-selected":s.value==="chart"}]),onClick:i[1]||(i[1]=l=>r("chart"))},mXe,2),d("div",{class:Te(["mobile-menu-item",{"is-selected":s.value==="timeline"}]),onClick:i[2]||(i[2]=l=>r("timeline"))},TXe,2),d("div",{class:Te(["mobile-menu-item",{"is-selected":s.value==="records"}]),onClick:i[3]||(i[3]=l=>r("records"))},SXe,2)])]),n.value.accepted_privacy_policy?M("",!0):(h(),I("div",AXe,[F(uXe)])),d("div",OXe,[F(sXe,{user:n.value},null,8,["user"])]),d("div",gXe,[d("div",IXe,[F(FYe,{sports:a.value,user:n.value,class:Te({"is-hidden":s.value!=="chart"})},null,8,["sports","user","class"]),F(nXe,{sports:a.value,user:n.value,class:Te({"is-hidden":s.value!=="records"})},null,8,["sports","user","class"])]),d("div",RXe,[F(Zqe,{sports:a.value,user:n.value,class:Te({"is-hidden":s.value!=="calendar"})},null,8,["sports","user","class"]),F(pqe,{sports:a.value,user:n.value,class:Te({"is-hidden":s.value!=="timeline"})},null,8,["sports","user","class"])])]),NXe])):(h(),I("div",vXe,[F(u)]))}}}),CXe=ie(bXe,[["__scopeId","data-v-6e13c66c"]]),DXe={class:"not-found view"},PXe=te({__name:"NotFoundView",setup(e){return(t,n)=>(h(),I("div",DXe,[F(qf)]))}}),yXe={id:"privacy-policy",class:"view"},LXe={class:"container"},$Xe=d("div",{id:"bottom"},null,-1),kXe=te({__name:"PrivacyPolicyView",setup(e){const t=ke();return ft(()=>{t.dispatch(K.ACTIONS.GET_APPLICATION_PRIVACY_POLICY)}),(n,a)=>(h(),I("div",yXe,[d("div",LXe,[F(qO)]),$Xe]))}}),Eg=e=>(rt("data-v-8aaacf94"),e=e(),ot(),e),UXe={class:"chart-menu"},wXe=["disabled","aria-label"],MXe=Eg(()=>d("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1)),FXe=[MXe],WXe={class:"time-frames custom-checkboxes-group"},zXe={class:"time-frames-checkboxes custom-checkboxes"},xXe=["id","name","checked","onInput","disabled"],BXe=["id","tabindex","onKeydown"],GXe=["disabled","aria-label"],HXe=Eg(()=>d("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)),VXe=[HXe],jXe={class:"stats-type"},KXe={class:"stats-type-radio"},qXe=["checked","disabled"],YXe=["checked","disabled"],XXe=te({__name:"StatsMenu",props:{isDisabled:{type:Boolean}},emits:["arrowClick","statsTypeUpdate","timeFrameUpdate"],setup(e,{emit:t}){const n=e,{isDisabled:a}=me(n),s=t,r=de("month"),o=["week","month","year"],i=de("total");function u(c){r.value=c,s("timeFrameUpdate",c)}function l(c){i.value=c.target.value,s("statsTypeUpdate",i.value)}return(c,f)=>(h(),I(pe,null,[d("div",UXe,[d("button",{class:"chart-arrow transparent",onClick:f[0]||(f[0]=E=>s("arrowClick",!0)),onKeydown:f[1]||(f[1]=Je(E=>s("arrowClick",!0),["enter"])),disabled:m(a),"aria-label":c.$t("common.PREVIOUS")},FXe,40,wXe),d("div",WXe,[d("div",zXe,[(h(),I(pe,null,Pe(o,E=>d("div",{class:"time-frame custom-checkbox",key:E},[d("label",null,[d("input",{type:"radio",id:E,name:E,checked:r.value===E,onInput:p=>u(E),disabled:m(a)},null,40,xXe),d("span",{id:`frame-${E}`,tabindex:m(a)?-1:0,role:"button",onKeydown:Je(p=>u(E),["enter"])},_(c.$t(`statistics.TIME_FRAMES.${E}`)),41,BXe)])])),64))])]),d("button",{class:"chart-arrow transparent",onClick:f[2]||(f[2]=E=>s("arrowClick",!1)),onKeydown:f[3]||(f[3]=Je(E=>s("arrowClick",!1),["enter"])),disabled:m(a),"aria-label":c.$t("common.NEXT")},VXe,40,GXe)]),d("div",jXe,[d("div",KXe,[d("label",null,[d("input",{type:"radio",name:"stats_type",value:"total",checked:i.value==="total",disabled:m(a),onClick:l},null,8,qXe),V(" "+_(c.$t("common.TOTAL")),1)]),d("label",null,[d("input",{type:"radio",name:"stats_type",value:"average",checked:i.value==="average",disabled:m(a),onClick:l},null,8,YXe),V(" "+_(c.$t("statistics.AVERAGE")),1)])])])],64))}}),QXe=ie(XXe,[["__scopeId","data-v-8aaacf94"]]),ZXe={class:"sports-menu"},JXe=["id","name","checked","onInput","onKeyup"],eQe={class:"sport-label"},tQe=te({__name:"StatsSportsMenu",props:{userSports:{},selectedSportIds:{default:()=>[]}},emits:["selectedSportIdsUpdate"],setup(e,{emit:t}){const n=e,a=t,{t:s}=kt(),r=Rt("sportColors"),{selectedSportIds:o}=me(n),i=w(()=>Mn(n.userSports,s));function u(l){a("selectedSportIdsUpdate",l)}return(l,c)=>{const f=oe("SportImage");return h(),I("div",ZXe,[(h(!0),I(pe,null,Pe(i.value,E=>(h(),I("label",{type:"checkbox",key:E.id,style:ba({color:E.color?E.color:m(r)[E.label]})},[d("input",{type:"checkbox",id:`${E.id}`,name:E.label,checked:m(o).includes(E.id),onInput:p=>u(E.id),onKeyup:Je(be(p=>u(E.id),["prevent"]),["space"])},null,40,JXe),F(f,{"sport-label":E.label,color:E.color},null,8,["sport-label","color"]),d("span",eQe,_(E.translatedLabel),1)],4))),128))])}}}),nQe={key:0,id:"user-statistics"},aQe=te({__name:"index",props:{sports:{},user:{},isDisabled:{type:Boolean}},setup(e){const t=e,{t:n}=kt(),{sports:a,user:s}=me(t),r=de("month"),o=de("total"),i=de(E(r.value,o.value)),u=w(()=>Mn(t.sports,n)),l=de(T(a.value));function c(R){r.value=R,i.value=E(R,o.value)}function f(R){o.value=R,i.value=E(r.value,R)}function E(R,g){return mYe(new Date,R,t.user.weekm,g)}function p(R){i.value=_Ye(i.value,R,t.user.weekm)}function T(R){return R.map(g=>g.id)}function O(R){l.value.includes(R)?l.value=l.value.filter(g=>g!==R):l.value.push(R)}return Me(()=>t.sports,R=>{l.value=T(R)}),(R,g)=>u.value?(h(),I("div",nQe,[F(QXe,{onStatsTypeUpdate:f,onTimeFrameUpdate:c,onArrowClick:p,isDisabled:R.isDisabled},null,8,["isDisabled"]),F(ug,{sports:m(a),user:m(s),chartParams:i.value,"displayed-sport-ids":l.value,fullStats:!0,isDisabled:R.isDisabled,selectedTimeFrame:r.value},null,8,["sports","user","chartParams","displayed-sport-ids","isDisabled","selectedTimeFrame"]),F(tQe,{"selected-sport-ids":l.value,"user-sports":m(a),onSelectedSportIdsUpdate:O},null,8,["selected-sport-ids","user-sports"])])):M("",!0)}}),sQe=ie(aQe,[["__scopeId","data-v-ff5da6bd"]]),rQe={class:"sport-stat-card"},oQe={class:"stat-content"},iQe={class:"stat-icon"},uQe={class:"stat-details"},lQe={class:"stat-label"},cQe={class:"stat-values"},dQe={key:0,class:"fa fa-refresh fa-spin fa-fw"},EQe={key:1,class:"stat-huge"},fQe={key:2,class:"stat"},pQe={key:0,class:"stat-average"},mQe={key:0},_Qe=d("i",{class:"fa fa-refresh fa-spin fa-fw"},null,-1),TQe=[_Qe],qs=te({__name:"SportStatCard",props:{icon:{},text:{default:""},totalValue:{},label:{},loading:{type:Boolean}},setup(e){const t=e,{icon:n,loading:a,text:s,totalValue:r}=me(t);return(o,i)=>(h(),I("div",rQe,[d("div",oQe,[d("div",iQe,[d("i",{class:Te(["fa",`fa-${m(n)}`])},null,2)]),d("div",uQe,[d("div",lQe,_(o.label),1),d("div",cQe,[m(a)?(h(),I("i",dQe)):(h(),I("span",EQe,_(m(r)?m(r):""),1)),m(s)?(h(),I("span",fQe,_(m(s)),1)):M("",!0)]),["calendar","tachometer"].includes(m(n))?M("",!0):(h(),I("div",pQe,[m(a)?(h(),I("div",mQe,TQe)):Lt(o.$slots,"average",{key:1})]))])])]))}}),fg=e=>(rt("data-v-2e2b2caa"),e=e(),ot(),e),hQe={id:"sport-statistics"},SQe={for:"sport"},AQe=["value"],OQe={key:0,class:"sport-statistics"},gQe={class:"sport-img-label"},IQe={class:"sport-label"},RQe={class:"label"},NQe=fg(()=>d("i",{class:"fa fa-line-chart custom-fa-small","aria-hidden":"true"},null,-1)),vQe={class:"statistics"},bQe={key:0,class:"statistics-workouts-count"},CQe={key:1,class:"statistics-workouts-count"},DQe={class:"statistics"},PQe={class:"records"},yQe={class:"label"},LQe=fg(()=>d("i",{class:"fa fa-trophy custom-fa-small","aria-hidden":"true"},null,-1)),$Qe=te({__name:"SportStatistics",props:{sports:{},authUser:{}},setup(e){const t=e,n=yt(),a=ca(),s=ke(),{t:r}=kt(),{authUser:o,sports:i}=me(t),u=w(()=>Mn(i.value,r,"all")),l=u.value.map(y=>y.id),c=de(l[0]),f=w(()=>dg(o.value.records,u.value,o.value.timezone,o.value.imperial_units,o.value.display_ascent,o.value.date_format,c.value)),E=w(()=>u.value.find(y=>y.id===c.value)),p=w(()=>s.getters.USER_SPORT_STATS[c.value]),T=w(()=>s.getters.TOTAL_WORKOUTS),O=o.value.imperial_units?mn.km.defaultTarget:"km",R=o.value.imperial_units?mn.m.defaultTarget:"m",g=w(()=>s.getters.STATS_LOADING),N=w(()=>p.value?jf(p.value.total_duration,r):{days:"",duration:""});ft(()=>A());function S(y,b){if(y===void 0)return"";const k=o.value.imperial_units?mn[b].defaultTarget:b;return o.value.imperial_units?xt(y,b,k,2):y}function A(){c.value=n.query.sport_id&&l.includes(+n.query.sport_id)?+n.query.sport_id:l[0],s.dispatch($t.ACTIONS.GET_USER_SPORT_STATS,{username:o.value.username,sportId:c.value})}function v(y){var k,z;const b=[];return(k=E.value)!=null&&k.translatedLabel&&y[(z=E.value)==null?void 0:z.translatedLabel].records.map(L=>{b.push({...L,label:r(`workouts.RECORD_${L.record_type}`)})}),b.sort(cg)}function D(y){a.push({path:"/statistics",query:{chart:"by_sport",sport_id:y.target.value}})}return Me(()=>n.query,()=>{A()}),(y,b)=>{var L,W,X,re,G,Z;const k=oe("SportImage"),z=oe("Distance");return h(),I("div",hQe,[d("label",SQe,_(y.$t("workouts.SPORT",1))+": ",1),ye(d("select",{id:"sport","onUpdate:modelValue":b[0]||(b[0]=q=>c.value=q),onChange:D},[(h(!0),I(pe,null,Pe(u.value,q=>(h(),I("option",{value:q.id,key:q.id},_(q.translatedLabel),9,AQe))),128))],544),[[ia,c.value]]),E.value?(h(),I("div",OQe,[d("div",gQe,[F(k,{"sport-label":E.value.label,color:E.value.color},null,8,["sport-label","color"]),d("div",IQe,_(E.value.translatedLabel),1)]),d("div",null,[d("div",RQe,[NQe,V(" "+_(y.$t("statistics.STATISTICS",0)),1)]),d("div",vQe,[F(qs,{icon:"calendar",loading:g.value,"total-value":T.value,label:y.$t("workouts.WORKOUT",0)},null,8,["loading","total-value","label"])]),p.value&&p.value.total_workouts[d("div",null,_(y.$t("statistics.AVERAGE"))+":",1),p.value?(h(),Y(z,{key:0,distance:p.value.average_distance,unitFrom:"km",useImperialUnits:m(o).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),_:1},8,["loading","total-value","text","label"]),F(qs,{icon:"clock-o",loading:g.value,"total-value":N.value.days,text:N.value.duration,label:y.$t("workouts.DURATION")},{average:le(()=>[d("div",null,_(y.$t("statistics.AVERAGE"))+":",1),d("span",null,_(p.value?m(mE)(p.value.average_duration,y.$t):""),1)]),_:1},8,["loading","total-value","text","label"]),F(qs,{icon:"tachometer",loading:g.value,"total-value":S((W=p.value)==null?void 0:W.average_speed,"km"),text:`${m(O)}/h`,label:y.$t("workouts.AVE_SPEED")},null,8,["loading","total-value","text","label"]),((X=p.value)==null?void 0:X.total_ascent)!==null?(h(),Y(qs,{key:0,icon:"location-arrow",loading:g.value,"total-value":S((re=p.value)==null?void 0:re.total_ascent,"m"),text:m(R),label:y.$t("workouts.ASCENT")},{average:le(()=>[d("div",null,_(y.$t("statistics.AVERAGE"))+":",1),p.value?(h(),Y(z,{key:0,distance:p.value.average_ascent,unitFrom:"m",useImperialUnits:m(o).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),_:1},8,["loading","total-value","text","label"])):M("",!0),((G=p.value)==null?void 0:G.total_descent)!==null?(h(),Y(qs,{key:1,icon:"location-arrow fa-rotate-90",loading:g.value,"total-value":S((Z=p.value)==null?void 0:Z.total_descent,"m"),text:m(R),label:y.$t("workouts.DESCENT")},{average:le(()=>[d("div",null,_(y.$t("statistics.AVERAGE"))+":",1),p.value?(h(),Y(z,{key:0,distance:p.value.average_descent,unitFrom:"m",useImperialUnits:m(o).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),_:1},8,["loading","total-value","text","label"])):M("",!0)])]),d("div",PQe,[d("div",yQe,[LQe,V(" "+_(y.$t("workouts.RECORD",0)),1)]),d("div",null,[(h(!0),I(pe,null,Pe(v(f.value),q=>(h(),Y(lg,{record:q,key:q.id},null,8,["record"]))),128))])])])):M("",!0)])}}}),kQe=ie($Qe,[["__scopeId","data-v-2e2b2caa"]]),UQe={id:"statistics",class:"view"},wQe={key:0,class:"container"},MQe=["value"],FQe=te({__name:"StatisticsView",setup(e){const t=yt(),n=ca(),a=ke(),s=w(()=>a.getters[Q.GETTERS.AUTH_USER_PROFILE]),r=w(()=>a.getters[Dt.GETTERS.SPORTS].filter(c=>s.value.sports_list.includes(c.id))),o=w(()=>s.value.nb_workouts===0),i=["by_time","by_sport"],u=de("by_time");ft(()=>{u.value=t.query.chart&&i.includes(t.query.chart)?t.query.chart:"by_time"}),St(()=>{if(!o.value){const c=document.getElementById("stats-type");c==null||c.focus()}});function l(c){n.push({path:"/statistics",query:{chart:c.target.value}})}return(c,f)=>{const E=oe("Card");return h(),I("div",UQe,[s.value.username?(h(),I("div",wQe,[F(E,null,{title:le(()=>[V(_(c.$t("statistics.STATISTICS"))+" ",1),r.value.length>0?ye((h(),I("select",{key:0,class:"stats-types",name:"stats-type",id:"stats-type","onUpdate:modelValue":f[0]||(f[0]=p=>u.value=p),onChange:l},[(h(),I(pe,null,Pe(i,p=>d("option",{value:p,key:p},_(c.$t(`statistics.STATISTICS_TYPES.${p}`)),9,MQe)),64))],544)),[[ia,u.value]]):M("",!0)]),content:le(()=>[c.$route.query.chart!=="by_sport"?(h(),Y(sQe,{key:0,class:Te({"stats-disabled":o.value}),user:s.value,sports:r.value,isDisabled:o.value},null,8,["class","user","sports","isDisabled"])):r.value.length>0?(h(),Y(kQe,{key:1,sports:r.value,authUser:s.value},null,8,["sports","authUser"])):M("",!0)]),_:1}),s.value.nb_workouts===0?(h(),Y(Xf,{key:0})):M("",!0)])):M("",!0)])}}}),WQe=ie(FQe,[["__scopeId","data-v-b57d20e5"]]),zQe={name:"EmailSent"},xQe={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 345.834 345.834",style:{"enable-background":"new 0 0 345.834 345.834"},"xml:space":"preserve"},BQe=d("g",null,[d("path",{d:`M339.798,260.429c0.13-0.026,0.257-0.061,0.385-0.094c0.109-0.028,0.219-0.051,0.326-0.084 c0.125-0.038,0.247-0.085,0.369-0.129c0.108-0.039,0.217-0.074,0.324-0.119c0.115-0.048,0.226-0.104,0.338-0.157 c0.109-0.052,0.22-0.1,0.327-0.158c0.107-0.057,0.208-0.122,0.312-0.184c0.107-0.064,0.215-0.124,0.319-0.194 c0.111-0.074,0.214-0.156,0.321-0.236c0.09-0.067,0.182-0.13,0.27-0.202c0.162-0.133,0.316-0.275,0.466-0.421 @@ -604,7 +616,7 @@ and ensure you are accounting for this risk. V234.967z M185.878,179.888c0.535-0.535,0.969-1.131,1.308-1.765l28.051,24.835c1.418,1.255,3.194,1.885,4.972,1.885 c1.726,0,3.451-0.593,4.853-1.781l28.587-24.254c0.26,0.38,0.553,0.743,0.89,1.08l65.687,65.687H120.191L185.878,179.888z`}),d("path",{d:`M7.5,170.676h126.667c4.143,0,7.5-3.357,7.5-7.5s-3.357-7.5-7.5-7.5H7.5c-4.143,0-7.5,3.357-7.5,7.5 S3.357,170.676,7.5,170.676z`}),d("path",{d:`M20.625,129.345H77.5c4.143,0,7.5-3.357,7.5-7.5s-3.357-7.5-7.5-7.5H20.625c-4.143,0-7.5,3.357-7.5,7.5 - S16.482,129.345,20.625,129.345z`}),d("path",{d:"M62.5,226.51h-55c-4.143,0-7.5,3.357-7.5,7.5s3.357,7.5,7.5,7.5h55c4.143,0,7.5-3.357,7.5-7.5S66.643,226.51,62.5,226.51z"})],-1),qXe=[KXe];function YXe(e,t,n,a,s,r){return h(),I("svg",jXe,qXe)}const dg=ie(VXe,[["render",YXe]]),Eg=e=>(rt("data-v-1d52bb01"),e=e(),ot(),e),XXe={id:"user-form"},QXe={key:2,class:"info-box success-message"},ZXe={class:"form-items"},JXe={key:0,for:"username"},eQe=["disabled"],tQe={key:2,class:"form-info"},nQe=Eg(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),aQe={key:3,for:"email"},sQe=["disabled"],rQe={key:5,class:"form-info"},oQe=Eg(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),iQe={key:6,for:"password"},uQe={key:8,for:"accepted_policy",class:"accepted_policy"},lQe=["disabled"],cQe=["disabled"],dQe={key:3},EQe={key:0},fQe={key:4},pQe={class:"account"},mQe={key:5},_Qe=ee({__name:"UserAuthForm",props:{action:{},token:{default:""}},setup(e){const t=e,n=yt(),a=ke(),{action:s}=me(t),r=Ht({username:"",email:"",password:"",accepted_policy:!1}),o=U(()=>O(t.action)),i=U(()=>a.getters[K.GETTERS.ERROR_MESSAGES]),u=U(()=>a.getters[Q.GETTERS.IS_REGISTRATION_SUCCESS]),l=U(()=>a.getters[Q.GETTERS.IS_SUCCESS]),c=U(()=>a.getters[K.GETTERS.APP_CONFIG]),f=U(()=>a.getters[K.GETTERS.LANGUAGE]),E=U(()=>t.action==="register"&&!c.value.is_registration_enabled),p=U(()=>["reset-request","account-confirmation-resend"].includes(t.action)&&!c.value.is_email_sending_enabled),T=de(!1);function O(S){switch(S){case"reset-request":case"reset":return"buttons.SUBMIT";default:return`buttons.${t.action.toUpperCase()}`}}function N(){T.value=!0}function g(S){r.password=S}function R(S){switch(S){case"reset":return t.token?a.dispatch(Q.ACTIONS.RESET_USER_PASSWORD,{password:r.password,token:t.token}):a.commit(K.MUTATIONS.SET_ERROR_MESSAGES,"user.INVALID_TOKEN");case"reset-request":return a.dispatch(Q.ACTIONS.SEND_PASSWORD_RESET_REQUEST,{email:r.email});case"account-confirmation-resend":return a.dispatch(Q.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL,{email:r.email});default:r.language=f.value,a.dispatch(Q.ACTIONS.LOGIN_OR_REGISTER,{actionType:S,formData:r,redirectUrl:n.query.from})}}function A(){r.username="",r.email="",r.password="",r.accepted_policy=!1}return mt(()=>a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)),Me(()=>n.path,async()=>{a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),a.commit(Q.MUTATIONS.UPDATE_IS_SUCCESS,!1),a.commit(Q.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),T.value=!1,A()}),(S,v)=>{const C=oe("AlertMessage"),y=oe("router-link"),b=oe("i18n-t"),k=oe("ErrorMessage");return h(),I("div",{id:"user-auth-form",class:Te(`${["reset","reset-request"].includes(m(s))?m(s):"user-form"}`)},[d("div",XXe,[d("div",{class:Te(["form-box",{disabled:E.value}])},[E.value?(h(),Y(C,{key:0,message:"user.REGISTER_DISABLED"})):M("",!0),p.value?(h(),Y(C,{key:1,message:"admin.EMAIL_SENDING_DISABLED"})):M("",!0),l.value||u.value?(h(),I("div",QXe,_(S.$t(`user.PROFILE.SUCCESSFUL_${u.value?`REGISTRATION${c.value.is_email_sending_enabled?"_WITH_EMAIL":""}`:"UPDATE"}`)),1)):M("",!0),d("form",{class:Te({errors:T.value}),onSubmit:v[3]||(v[3]=be(z=>R(m(s)),["prevent"]))},[d("div",ZXe,[m(s)==="register"?(h(),I("label",JXe,_(S.$t("user.USERNAME",0)),1)):M("",!0),m(s)==="register"?ye((h(),I("input",{key:1,id:"username",disabled:E.value,required:"",pattern:"[a-zA-Z0-9_]+",minlength:"3",maxlength:"30",onInvalid:N,"onUpdate:modelValue":v[0]||(v[0]=z=>r.username=z),autocomplete:"username"},null,40,eQe)),[[tt,r.username]]):M("",!0),m(s)==="register"?(h(),I("div",tQe,[nQe,V(" "+_(S.$t("user.USERNAME_INFO")),1)])):M("",!0),m(s)!=="reset"?(h(),I("label",aQe,_(S.$t("user.EMAIL",0)),1)):M("",!0),m(s)!=="reset"?ye((h(),I("input",{key:4,id:"email",disabled:E.value||p.value,required:"",onInvalid:N,type:"email","onUpdate:modelValue":v[1]||(v[1]=z=>r.email=z),autocomplete:"email"},null,40,sQe)),[[tt,r.email]]):M("",!0),["reset-request","register","account-confirmation-resend"].includes(m(s))?(h(),I("div",rQe,[oQe,V(" "+_(S.$t("user.EMAIL_INFO")),1)])):M("",!0),["account-confirmation-resend","reset-request"].includes(m(s))?M("",!0):(h(),I("label",iQe,_(S.$t(`user.${m(s)==="reset"?"ENTER_PASSWORD":"PASSWORD"}`)),1)),["account-confirmation-resend","reset-request"].includes(m(s))?M("",!0):(h(),Y(fE,{key:7,id:"password",disabled:E.value,required:!0,password:r.password,checkStrength:["reset","register"].includes(m(s)),onUpdatePassword:g,onPasswordError:N,autocomplete:"current-password"},null,8,["disabled","password","checkStrength"])),m(s)==="register"?(h(),I("label",uQe,[ye(d("input",{type:"checkbox",id:"accepted_policy",disabled:E.value,required:"",onInvalid:N,"onUpdate:modelValue":v[2]||(v[2]=z=>r.accepted_policy=z)},null,40,lQe),[[_l,r.accepted_policy]]),d("span",null,[F(b,{keypath:"user.READ_AND_ACCEPT_PRIVACY_POLICY"},{default:le(()=>[F(y,{to:"/privacy-policy",target:"_blank"},{default:le(()=>[V(_(S.$t("privacy_policy.TITLE")),1)]),_:1})]),_:1})])])):M("",!0)]),d("button",{type:"submit",disabled:E.value||p.value},_(S.$t(o.value)),9,cQe)],34),m(s)==="login"?(h(),I("div",dQe,[F(y,{class:"links",to:"/register"},{default:le(()=>[V(_(S.$t("user.REGISTER")),1)]),_:1}),c.value.is_email_sending_enabled?(h(),I("span",EQe,"-")):M("",!0),c.value.is_email_sending_enabled?(h(),Y(y,{key:1,class:"links",to:"/password-reset/request"},{default:le(()=>[V(_(S.$t("user.PASSWORD_FORGOTTEN")),1)]),_:1})):M("",!0)])):M("",!0),m(s)==="register"?(h(),I("div",fQe,[d("span",pQe,_(S.$t("user.ALREADY_HAVE_ACCOUNT")),1),F(y,{class:"links",to:"/login"},{default:le(()=>[V(_(S.$t("user.LOGIN")),1)]),_:1})])):M("",!0),["login","register"].includes(m(s))&&c.value.is_email_sending_enabled?(h(),I("div",mQe,[F(y,{class:"links",to:"/account-confirmation/resend"},{default:le(()=>[V(_(S.$t("user.ACCOUNT_CONFIRMATION_NOT_RECEIVED")),1)]),_:1})])):M("",!0),i.value?(h(),Y(k,{key:6,message:i.value},null,8,["message"])):M("",!0)],2)])],2)}}}),Xf=ie(_Qe,[["__scopeId","data-v-1d52bb01"]]),TQe={id:"account-confirmation-email",class:"center-card with-margin"},hQe={key:0,class:"email-sent"},AQe={class:"email-sent-message"},SQe={key:1},OQe=ee({__name:"AccountConfirmationEmail",props:{action:{}},setup(e){const t=e,{action:n}=me(t);return(a,s)=>{const r=oe("Card");return h(),I("div",TQe,[m(n)==="email-sent"?(h(),I("div",hQe,[F(dg),d("div",AQe,_(a.$t("user.ACCOUNT_CONFIRMATION_SENT")),1)])):(h(),I("div",SQe,[F(r,null,{title:le(()=>[V(_(a.$t("user.RESENT_ACCOUNT_CONFIRMATION")),1)]),content:le(()=>[F(Xf,{action:m(n)},null,8,["action"])]),_:1})]))])}}}),gQe=ie(OQe,[["__scopeId","data-v-b0299010"]]),IQe={id:"account-confirmation",class:"view"},RQe={class:"container"},NQe=ee({__name:"AccountConfirmationResendView",props:{action:{}},setup(e){const t=e,{action:n}=me(t);return(a,s)=>(h(),I("div",IQe,[d("div",RQe,[F(gQe,{action:m(n)},null,8,["action"])])]))}}),o0=ie(NQe,[["__scopeId","data-v-9a9c1644"]]),vQe={key:0,id:"account-confirmation",class:"center-card with-margin"},bQe={class:"error-message"},CQe=ee({__name:"AccountConfirmationView",setup(e){const t=yt(),n=ca(),a=ke(),s=U(()=>a.getters[K.GETTERS.ERROR_MESSAGES]),r=U(()=>t.query.token);pt(()=>o());function o(){r.value?a.dispatch(Q.ACTIONS.CONFIRM_ACCOUNT,{token:r.value}):n.push("/")}return mt(()=>a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)),(i,u)=>{const l=oe("router-link");return s.value?(h(),I("div",vQe,[F(of),d("p",bQe,[d("span",null,_(i.$t("error.SOMETHING_WRONG"))+".",1),F(l,{class:"links",to:"/account-confirmation/resend"},{default:le(()=>[V(_(i.$t("buttons.ACCOUNT-CONFIRMATION-RESEND"))+"? ",1)]),_:1})])])):M("",!0)}}}),DQe=ie(CQe,[["__scopeId","data-v-1b343aed"]]),PQe={key:0,id:"email-update",class:"center-card with-margin"},yQe={class:"error-message"},LQe=ee({__name:"EmailUpdateView",setup(e){const t=yt(),n=ca(),a=ke(),s=U(()=>a.getters[Q.GETTERS.AUTH_USER_PROFILE]),r=U(()=>a.getters[Q.GETTERS.IS_AUTHENTICATED]),o=U(()=>a.getters[K.GETTERS.ERROR_MESSAGES]),i=U(()=>t.query.token);pt(()=>u());function u(){i.value?a.dispatch(Q.ACTIONS.CONFIRM_EMAIL,{token:i.value,refreshUser:r.value}):n.push("/")}return mt(()=>a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)),Me(()=>o.value,l=>{s.value.username&&l&&n.push("/")}),(l,c)=>{const f=oe("router-link"),E=oe("i18n-t");return o.value&&!s.value.username?(h(),I("div",PQe,[F(of),d("p",yQe,[d("span",null,_(l.$t("error.SOMETHING_WRONG"))+".",1),d("span",null,[F(E,{keypath:"user.PROFILE.ERRORED_EMAIL_UPDATE"},{default:le(()=>[F(f,{to:"/login"},{default:le(()=>[V(_(l.$t("user.LOG_IN")),1)]),_:1})]),_:1})])])])):M("",!0)}}}),$Qe=ie(LQe,[["__scopeId","data-v-8b516209"]]),kQe={id:"loginOrRegister",class:"view"},wQe={class:"container"},UQe={class:"container-sub"},MQe={class:"container-sub"},FQe=ee({__name:"LoginOrRegister",props:{action:{}},setup(e){const t=e,{action:n}=me(t);return(a,s)=>(h(),I("div",kQe,[d("div",wQe,[d("div",UQe,[F(XO)]),d("div",MQe,[F(Xf,{action:m(n)},null,8,["action"])])])]))}}),i0=ie(FQe,[["__scopeId","data-v-84d61340"]]),WQe={name:"Password"},zQe={version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 512.001 512.001",style:{"enable-background":"new 0 0 512.001 512.001"},"xml:space":"preserve"},xQe=vn(`(rt("data-v-1d52bb01"),e=e(),ot(),e),VQe={id:"user-form"},jQe={key:2,class:"info-box success-message"},KQe={class:"form-items"},qQe={key:0,for:"username"},YQe=["disabled"],XQe={key:2,class:"form-info"},QQe=mg(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),ZQe={key:3,for:"email"},JQe=["disabled"],eZe={key:5,class:"form-info"},tZe=mg(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),nZe={key:6,for:"password"},aZe={key:8,for:"accepted_policy",class:"accepted_policy"},sZe=["disabled"],rZe=["disabled"],oZe={key:3},iZe={key:0},uZe={key:4},lZe={class:"account"},cZe={key:5},dZe=te({__name:"UserAuthForm",props:{action:{},token:{default:""}},setup(e){const t=e,n=yt(),a=ke(),{action:s}=me(t),r=Ht({username:"",email:"",password:"",accepted_policy:!1}),o=w(()=>O(t.action)),i=w(()=>a.getters[K.GETTERS.ERROR_MESSAGES]),u=w(()=>a.getters[Q.GETTERS.IS_REGISTRATION_SUCCESS]),l=w(()=>a.getters[Q.GETTERS.IS_SUCCESS]),c=w(()=>a.getters[K.GETTERS.APP_CONFIG]),f=w(()=>a.getters[K.GETTERS.LANGUAGE]),E=w(()=>t.action==="register"&&!c.value.is_registration_enabled),p=w(()=>["reset-request","account-confirmation-resend"].includes(t.action)&&!c.value.is_email_sending_enabled),T=de(!1);function O(A){switch(A){case"reset-request":case"reset":return"buttons.SUBMIT";default:return`buttons.${t.action.toUpperCase()}`}}function R(){T.value=!0}function g(A){r.password=A}function N(A){switch(A){case"reset":return t.token?a.dispatch(Q.ACTIONS.RESET_USER_PASSWORD,{password:r.password,token:t.token}):a.commit(K.MUTATIONS.SET_ERROR_MESSAGES,"user.INVALID_TOKEN");case"reset-request":return a.dispatch(Q.ACTIONS.SEND_PASSWORD_RESET_REQUEST,{email:r.email});case"account-confirmation-resend":return a.dispatch(Q.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL,{email:r.email});default:r.language=f.value,a.dispatch(Q.ACTIONS.LOGIN_OR_REGISTER,{actionType:A,formData:r,redirectUrl:n.query.from})}}function S(){r.username="",r.email="",r.password="",r.accepted_policy=!1}return pt(()=>a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)),Me(()=>n.path,async()=>{a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),a.commit(Q.MUTATIONS.UPDATE_IS_SUCCESS,!1),a.commit(Q.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),T.value=!1,S()}),(A,v)=>{const D=oe("AlertMessage"),y=oe("router-link"),b=oe("i18n-t"),k=oe("ErrorMessage");return h(),I("div",{id:"user-auth-form",class:Te(`${["reset","reset-request"].includes(m(s))?m(s):"user-form"}`)},[d("div",VQe,[d("div",{class:Te(["form-box",{disabled:E.value}])},[E.value?(h(),Y(D,{key:0,message:"user.REGISTER_DISABLED"})):M("",!0),p.value?(h(),Y(D,{key:1,message:"admin.EMAIL_SENDING_DISABLED"})):M("",!0),l.value||u.value?(h(),I("div",jQe,_(A.$t(`user.PROFILE.SUCCESSFUL_${u.value?`REGISTRATION${c.value.is_email_sending_enabled?"_WITH_EMAIL":""}`:"UPDATE"}`)),1)):M("",!0),d("form",{class:Te({errors:T.value}),onSubmit:v[3]||(v[3]=be(z=>N(m(s)),["prevent"]))},[d("div",KQe,[m(s)==="register"?(h(),I("label",qQe,_(A.$t("user.USERNAME",0)),1)):M("",!0),m(s)==="register"?ye((h(),I("input",{key:1,id:"username",disabled:E.value,required:"",pattern:"[a-zA-Z0-9_]+",minlength:"3",maxlength:"30",onInvalid:R,"onUpdate:modelValue":v[0]||(v[0]=z=>r.username=z),autocomplete:"username"},null,40,YQe)),[[tt,r.username]]):M("",!0),m(s)==="register"?(h(),I("div",XQe,[QQe,V(" "+_(A.$t("user.USERNAME_INFO")),1)])):M("",!0),m(s)!=="reset"?(h(),I("label",ZQe,_(A.$t("user.EMAIL",0)),1)):M("",!0),m(s)!=="reset"?ye((h(),I("input",{key:4,id:"email",disabled:E.value||p.value,required:"",onInvalid:R,type:"email","onUpdate:modelValue":v[1]||(v[1]=z=>r.email=z),autocomplete:"email"},null,40,JQe)),[[tt,r.email]]):M("",!0),["reset-request","register","account-confirmation-resend"].includes(m(s))?(h(),I("div",eZe,[tZe,V(" "+_(A.$t("user.EMAIL_INFO")),1)])):M("",!0),["account-confirmation-resend","reset-request"].includes(m(s))?M("",!0):(h(),I("label",nZe,_(A.$t(`user.${m(s)==="reset"?"ENTER_PASSWORD":"PASSWORD"}`)),1)),["account-confirmation-resend","reset-request"].includes(m(s))?M("",!0):(h(),Y(pE,{key:7,id:"password",disabled:E.value,required:!0,password:r.password,checkStrength:["reset","register"].includes(m(s)),onUpdatePassword:g,onPasswordError:R,autocomplete:"current-password"},null,8,["disabled","password","checkStrength"])),m(s)==="register"?(h(),I("label",aZe,[ye(d("input",{type:"checkbox",id:"accepted_policy",disabled:E.value,required:"",onInvalid:R,"onUpdate:modelValue":v[2]||(v[2]=z=>r.accepted_policy=z)},null,40,sZe),[[Tl,r.accepted_policy]]),d("span",null,[F(b,{keypath:"user.READ_AND_ACCEPT_PRIVACY_POLICY"},{default:le(()=>[F(y,{to:"/privacy-policy",target:"_blank"},{default:le(()=>[V(_(A.$t("privacy_policy.TITLE")),1)]),_:1})]),_:1})])])):M("",!0)]),d("button",{type:"submit",disabled:E.value||p.value},_(A.$t(o.value)),9,rZe)],34),m(s)==="login"?(h(),I("div",oZe,[F(y,{class:"links",to:"/register"},{default:le(()=>[V(_(A.$t("user.REGISTER")),1)]),_:1}),c.value.is_email_sending_enabled?(h(),I("span",iZe,"-")):M("",!0),c.value.is_email_sending_enabled?(h(),Y(y,{key:1,class:"links",to:"/password-reset/request"},{default:le(()=>[V(_(A.$t("user.PASSWORD_FORGOTTEN")),1)]),_:1})):M("",!0)])):M("",!0),m(s)==="register"?(h(),I("div",uZe,[d("span",lZe,_(A.$t("user.ALREADY_HAVE_ACCOUNT")),1),F(y,{class:"links",to:"/login"},{default:le(()=>[V(_(A.$t("user.LOGIN")),1)]),_:1})])):M("",!0),["login","register"].includes(m(s))&&c.value.is_email_sending_enabled?(h(),I("div",cZe,[F(y,{class:"links",to:"/account-confirmation/resend"},{default:le(()=>[V(_(A.$t("user.ACCOUNT_CONFIRMATION_NOT_RECEIVED")),1)]),_:1})])):M("",!0),i.value?(h(),Y(k,{key:6,message:i.value},null,8,["message"])):M("",!0)],2)])],2)}}}),Qf=ie(dZe,[["__scopeId","data-v-1d52bb01"]]),EZe={id:"account-confirmation-email",class:"center-card with-margin"},fZe={key:0,class:"email-sent"},pZe={class:"email-sent-message"},mZe={key:1},_Ze=te({__name:"AccountConfirmationEmail",props:{action:{}},setup(e){const t=e,{action:n}=me(t);return(a,s)=>{const r=oe("Card");return h(),I("div",EZe,[m(n)==="email-sent"?(h(),I("div",fZe,[F(pg),d("div",pZe,_(a.$t("user.ACCOUNT_CONFIRMATION_SENT")),1)])):(h(),I("div",mZe,[F(r,null,{title:le(()=>[V(_(a.$t("user.RESENT_ACCOUNT_CONFIRMATION")),1)]),content:le(()=>[F(Qf,{action:m(n)},null,8,["action"])]),_:1})]))])}}}),TZe=ie(_Ze,[["__scopeId","data-v-b0299010"]]),hZe={id:"account-confirmation",class:"view"},SZe={class:"container"},AZe=te({__name:"AccountConfirmationResendView",props:{action:{}},setup(e){const t=e,{action:n}=me(t);return(a,s)=>(h(),I("div",hZe,[d("div",SZe,[F(TZe,{action:m(n)},null,8,["action"])])]))}}),r0=ie(AZe,[["__scopeId","data-v-9a9c1644"]]),OZe={key:0,id:"account-confirmation",class:"center-card with-margin"},gZe={class:"error-message"},IZe=te({__name:"AccountConfirmationView",setup(e){const t=yt(),n=ca(),a=ke(),s=w(()=>a.getters[K.GETTERS.ERROR_MESSAGES]),r=w(()=>t.query.token);ft(()=>o());function o(){r.value?a.dispatch(Q.ACTIONS.CONFIRM_ACCOUNT,{token:r.value}):n.push("/")}return pt(()=>a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)),(i,u)=>{const l=oe("router-link");return s.value?(h(),I("div",OZe,[F(uf),d("p",gZe,[d("span",null,_(i.$t("error.SOMETHING_WRONG"))+".",1),F(l,{class:"links",to:"/account-confirmation/resend"},{default:le(()=>[V(_(i.$t("buttons.ACCOUNT-CONFIRMATION-RESEND"))+"? ",1)]),_:1})])])):M("",!0)}}}),RZe=ie(IZe,[["__scopeId","data-v-1b343aed"]]),NZe={key:0,id:"email-update",class:"center-card with-margin"},vZe={class:"error-message"},bZe=te({__name:"EmailUpdateView",setup(e){const t=yt(),n=ca(),a=ke(),s=w(()=>a.getters[Q.GETTERS.AUTH_USER_PROFILE]),r=w(()=>a.getters[Q.GETTERS.IS_AUTHENTICATED]),o=w(()=>a.getters[K.GETTERS.ERROR_MESSAGES]),i=w(()=>t.query.token);ft(()=>u());function u(){i.value?a.dispatch(Q.ACTIONS.CONFIRM_EMAIL,{token:i.value,refreshUser:r.value}):n.push("/")}return pt(()=>a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)),Me(()=>o.value,l=>{s.value.username&&l&&n.push("/")}),(l,c)=>{const f=oe("router-link"),E=oe("i18n-t");return o.value&&!s.value.username?(h(),I("div",NZe,[F(uf),d("p",vZe,[d("span",null,_(l.$t("error.SOMETHING_WRONG"))+".",1),d("span",null,[F(E,{keypath:"user.PROFILE.ERRORED_EMAIL_UPDATE"},{default:le(()=>[F(f,{to:"/login"},{default:le(()=>[V(_(l.$t("user.LOG_IN")),1)]),_:1})]),_:1})])])])):M("",!0)}}}),CZe=ie(bZe,[["__scopeId","data-v-8b516209"]]),DZe={id:"loginOrRegister",class:"view"},PZe={class:"container"},yZe={class:"container-sub"},LZe={class:"container-sub"},$Ze=te({__name:"LoginOrRegister",props:{action:{}},setup(e){const t=e,{action:n}=me(t);return(a,s)=>(h(),I("div",DZe,[d("div",PZe,[d("div",yZe,[F(JO)]),d("div",LZe,[F(Qf,{action:m(n)},null,8,["action"])])])]))}}),o0=ie($Ze,[["__scopeId","data-v-84d61340"]]),kZe={name:"Password"},UZe={version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 512.001 512.001",style:{"enable-background":"new 0 0 512.001 512.001"},"xml:space":"preserve"},wZe=Cn(``,7),BQe=[xQe];function GQe(e,t,n,a,s,r){return h(),I("svg",zQe,BQe)}const HQe=ie(WQe,[["render",GQe]]),VQe={id:"password-action-done",class:"center-card with-margin"},jQe={class:"password-message"},KQe={key:0},qQe=ee({__name:"PasswordActionDone",props:{action:{}},setup(e){const t=e,{action:n}=me(t);return(a,s)=>{const r=oe("router-link"),o=oe("i18n-t");return h(),I("div",VQe,[m(n)==="request-sent"?(h(),Y(dg,{key:0})):(h(),Y(HQe,{key:1})),d("div",jQe,[m(n)==="request-sent"?(h(),I("span",KQe,_(a.$t("user.PASSWORD_SENT_EMAIL_TEXT")),1)):(h(),Y(o,{key:1,keypath:"user.PASSWORD_UPDATED"},{default:le(()=>[F(r,{to:"/login"},{default:le(()=>[V(_(a.$t("common.HERE")),1)]),_:1})]),_:1}))])])}}}),YQe=ie(qQe,[["__scopeId","data-v-ee1004fc"]]),XQe={id:"password-reset-request",class:"center-card with-margin"},QQe=ee({__name:"PasswordResetForm",props:{action:{},token:{default:""}},setup(e){const t=e,{action:n,token:a}=me(t);return(s,r)=>{const o=oe("Card");return h(),I("div",XQe,[F(o,null,{title:le(()=>[V(_(s.$t("user.RESET_PASSWORD")),1)]),content:le(()=>[F(Xf,{action:m(n),token:m(a)},null,8,["action","token"])]),_:1})])}}}),ZQe=ie(QQe,[["__scopeId","data-v-97f01ba1"]]),JQe={id:"password-reset",class:"view"},eZe={class:"container"},tZe=ee({__name:"PasswordResetView",props:{action:{}},setup(e){const t=e,n=yt(),a=ca(),{action:s}=me(t),r=U(()=>n.query.token);return pt(()=>{t.action==="reset"&&!r.value&&a.push("/")}),(o,i)=>(h(),I("div",JQe,[d("div",eZe,[m(s).startsWith("reset")?(h(),Y(ZQe,{key:0,action:m(s),token:r.value},null,8,["action","token"])):(h(),Y(YQe,{key:1,action:m(s)},null,8,["action"]))])]))}}),Di=ie(tZe,[["__scopeId","data-v-5cbe9029"]]),nZe=e=>(rt("data-v-af92ad3a"),e=e(),ot(),e),aZe={key:0,id:"profile",class:"view"},sZe=nZe(()=>d("div",{id:"bottom"},null,-1)),rZe=ee({__name:"ProfileView",setup(e){const t=ke(),n=U(()=>t.getters[Q.GETTERS.AUTH_USER_PROFILE]);return(a,s)=>{const r=oe("router-view");return n.value.username?(h(),I("div",aZe,[F(r,{user:n.value},null,8,["user"]),sZe])):M("",!0)}}}),oZe=ie(rZe,[["__scopeId","data-v-af92ad3a"]]),iZe={key:0,id:"user",class:"view"},uZe={class:"box"},lZe=ee({__name:"UserView",props:{fromAdmin:{type:Boolean}},setup(e){const t=e,{fromAdmin:n}=me(t),a=yt(),s=ke(),r=U(()=>s.getters[xe.GETTERS.USER]);return pt(()=>{a.params.username&&typeof a.params.username=="string"&&s.dispatch(xe.ACTIONS.GET_USER,a.params.username)}),ko(()=>{s.dispatch(xe.ACTIONS.EMPTY_USER)}),(o,i)=>r.value.username?(h(),I("div",iZe,[F(CO,{user:r.value},null,8,["user"]),d("div",uZe,[F(PO,{user:r.value,"from-admin":m(n)},null,8,["user","from-admin"])])])):M("",!0)}}),u0=ie(lZe,[["__scopeId","data-v-1b7a0b4f"]]),cZe={id:"workout-form"},dZe={class:"form-items"},EZe={key:0,class:"form-item-radio"},fZe=["checked","disabled"],pZe={for:"withGpx"},mZe=["checked","disabled"],_Ze={for:"withoutGpx"},TZe={class:"form-item"},hZe={for:"sport"},AZe=["disabled"],SZe=["value"],OZe={key:1,class:"form-item"},gZe={for:"gpxFile"},IZe=["disabled"],RZe={class:"files-help info-box"},NZe={key:2,class:"form-item"},vZe={for:"title"},bZe=["required","disabled"],CZe={key:3},DZe={class:"workout-date-duration"},PZe={class:"form-item"},yZe={class:"workout-date-time"},LZe=["disabled"],$Ze=["disabled"],kZe={class:"form-item"},wZe={for:"workout-duration-hour",class:"visually-hidden"},UZe=["disabled"],MZe={for:"workout-duration-minutes",class:"visually-hidden"},FZe=["disabled"],WZe={for:"workout-duration-seconds",class:"visually-hidden"},zZe=["disabled"],xZe={class:"workout-data"},BZe={class:"form-item"},GZe=["disabled"],HZe={class:"form-item"},VZe=["disabled"],jZe={class:"form-item"},KZe=["disabled"],qZe={key:4,class:"form-item"},YZe={for:"workout-equipment"},XZe=["disabled"],QZe={value:""},ZZe=["value"],JZe={class:"form-item"},eJe={for:"notes"},tJe={key:1},nJe={key:2,class:"form-buttons"},aJe=["disabled"],sJe=ee({__name:"WorkoutEdition",props:{authUser:{},sports:{},isCreation:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},workout:{default:()=>({})}},setup(e){const t=e,{t:n}=kt(),a=ke(),s=ca(),{authUser:r,workout:o,isCreation:i,loading:u}=me(t),l=U(()=>Un(t.sports,n,"is_active_for_user",o.value.id?[o.value.sport_id]:[])),c=U(()=>a.getters[K.GETTERS.APP_CONFIG]),f=c.value.max_single_file_size?pu(c.value.max_single_file_size):"",E=c.value.gpx_limit_import,p=c.value.max_zip_file_size?pu(c.value.max_zip_file_size):"",T=U(()=>a.getters[K.GETTERS.ERROR_MESSAGES]),O=Ht({sport_id:"",title:"",notes:"",workoutDate:"",workoutTime:"",workoutDurationHour:"",workoutDurationMinutes:"",workoutDurationSeconds:"",workoutDistance:"",workoutAscent:"",workoutDescent:"",equipment_id:""}),N=de(o.value.id?o.value.with_gpx:i.value);let g=null;const R=de(!1),A=de([]),S=U(()=>a.getters[Ue.GETTERS.EQUIPMENTS]),v=U(()=>O.sport_id?l.value.filter(B=>B.id===+O.sport_id)[0]:null),C=U(()=>S.value?hO(S.value,n,i.value?"is_active":"withIncludedIds",v.value,i.value?[]:o.value.equipments.map(B=>B.id)):[]);St(()=>{let B;t.workout.id?(z(t.workout),B=document.getElementById("sport")):B=document.getElementById("withGpx"),B&&B.focus()});function y(B){O.notes=B}function b(){N.value=!N.value,R.value=!1}function k(B){B.target.files&&(g=B.target.files[0])}function z(B){if(O.sport_id=`${B.sport_id}`,O.title=B.title,O.notes=B.notes,O.equipment_id=B.equipments.length>0?`${B.equipments[0].id}`:"",!B.with_gpx){const Ne=vO(jl(B.workout_date,t.authUser.timezone),"yyyy-MM-dd"),Ke=B.duration.split(":");O.workoutDistance=`${r.value.imperial_units?xt(B.distance,"km","mi",3):parseFloat(B.distance.toFixed(3))}`,O.workoutDate=Ne.workout_date,O.workoutTime=Ne.workout_time,O.workoutDurationHour=Ke[0],O.workoutDurationMinutes=Ke[1],O.workoutDurationSeconds=Ke[2],O.workoutAscent=B.ascent===null?"":`${r.value.imperial_units?xt(B.ascent,"m","ft",2):parseFloat(B.ascent.toFixed(2))}`,O.workoutDescent=B.descent===null?"":`${r.value.imperial_units?xt(B.descent,"m","ft",2):parseFloat(B.descent.toFixed(2))}`}}function $(){return A.value.includes("workouts.INVALID_DISTANCE")}function W(){return A.value.includes("workouts.INVALID_DURATION")}function X(){return A.value.includes("workouts.INVALID_ASCENT_OR_DESCENT")}function re(B){A.value=[],B.title=O.title,B.duration=+O.workoutDurationHour*3600+ +O.workoutDurationMinutes*60+ +O.workoutDurationSeconds,B.duration<=0&&A.value.push("workouts.INVALID_DURATION"),B.distance=r.value.imperial_units?xt(+O.workoutDistance,"mi","km",3):+O.workoutDistance,B.distance<=0&&A.value.push("workouts.INVALID_DISTANCE"),B.workout_date=`${O.workoutDate} ${O.workoutTime}`,B.ascent=O.workoutAscent===""?null:r.value.imperial_units?xt(+O.workoutAscent,"ft","m",3):+O.workoutAscent,B.descent=O.workoutDescent===""?null:r.value.imperial_units?xt(+O.workoutDescent,"ft","m",3):+O.workoutDescent,(B.ascent!==null&&B.descent===null||B.ascent===null&&B.descent!==null)&&A.value.push("workouts.INVALID_ASCENT_OR_DESCENT")}function G(){const B={sport_id:+O.sport_id,notes:O.notes,equipment_ids:O.equipment_id&&C.value.find(Ne=>Ne.id===O.equipment_id)?[O.equipment_id]:[]};if(t.workout.id)t.workout.with_gpx?B.title=O.title:re(B),A.value.length>0?a.commit(K.MUTATIONS.SET_ERROR_MESSAGES,A.value):a.dispatch(Re.ACTIONS.EDIT_WORKOUT,{workoutId:t.workout.id,data:B});else if(N.value){if(!g){a.commit(K.MUTATIONS.SET_ERROR_MESSAGES,"workouts.NO_FILE_PROVIDED");return}B.file=g,a.dispatch(Re.ACTIONS.ADD_WORKOUT,B)}else re(B),A.value.length>0?a.commit(K.MUTATIONS.SET_ERROR_MESSAGES,A.value):a.dispatch(Re.ACTIONS.ADD_WORKOUT_WITHOUT_GPX,B)}function Z(){t.workout.id?s.push({name:"Workout",params:{workoutId:t.workout.id}}):s.go(-1)}function q(){R.value=!0}return mt(()=>a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)),Me(()=>t.workout,async(B,Ne)=>{B!==Ne&&B&&B.id&&z(B)}),Me(()=>v.value,B=>{i.value&&(O.equipment_id=B!=null&&B.default_equipments&&(B==null?void 0:B.default_equipments.length)>0?`${B.default_equipments[0].id}`:"")}),(B,Ne)=>{const Ke=oe("CustomTextArea"),Fe=oe("ErrorMessage"),Le=oe("Loader"),Wt=oe("Card");return h(),I("div",{id:"workout-edition",class:Te(["center-card with-margin",{"center-form":m(o)&&m(o).with_gpx}])},[F(Wt,null,{title:le(()=>[V(_(B.$t(`workouts.${m(i)?"ADD":"EDIT"}_WORKOUT`)),1)]),content:le(()=>[d("div",cZe,[d("form",{class:Te({errors:R.value}),onSubmit:be(G,["prevent"])},[d("div",dZe,[m(i)?(h(),I("div",EZe,[d("div",null,[d("input",{id:"withGpx",type:"radio",checked:N.value,disabled:m(u),onClick:b},null,8,fZe),d("label",pZe,_(B.$t("workouts.WITH_GPX")),1)]),d("div",null,[d("input",{id:"withoutGpx",type:"radio",checked:!N.value,disabled:m(u),onClick:b},null,8,mZe),d("label",_Ze,_(B.$t("workouts.WITHOUT_GPX")),1)])])):M("",!0),d("div",TZe,[d("label",hZe,_(B.$t("workouts.SPORT",1))+"*: ",1),ye(d("select",{id:"sport",required:"",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[0]||(Ne[0]=ge=>O.sport_id=ge)},[(h(!0),I(pe,null,Pe(l.value,ge=>(h(),I("option",{value:ge.id,key:ge.id},_(ge.translatedLabel),9,SZe))),128))],40,AZe),[[oa,O.sport_id]])]),m(i)&&N.value?(h(),I("div",OZe,[d("label",gZe,_(B.$t("workouts.GPX_FILE"))+" "+_(B.$t("workouts.ZIP_ARCHIVE_DESCRIPTION"))+"*: ",1),d("input",{id:"gpxFile",name:"gpxFile",type:"file",accept:".gpx, .zip",disabled:m(u),required:"",onInvalid:q,onInput:k},null,40,IZe),d("div",RZe,[d("div",null,[d("strong",null,_(B.$t("workouts.GPX_FILE"))+":",1),d("ul",null,[d("li",null,_(B.$t("workouts.MAX_SIZE"))+": "+_(m(f)),1)])]),d("div",null,[d("strong",null,_(B.$t("workouts.ZIP_ARCHIVE"))+":",1),d("ul",null,[d("li",null,_(B.$t("workouts.NO_FOLDER")),1),d("li",null,_(B.$t("workouts.MAX_FILES"))+": "+_(m(E)),1),d("li",null,_(B.$t("workouts.MAX_SIZE"))+": "+_(m(p)),1)])])])])):(h(),I("div",NZe,[d("label",vZe,_(B.$t("workouts.TITLE"))+": ",1),ye(d("input",{id:"title",name:"title",type:"text",required:!m(i),onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[1]||(Ne[1]=ge=>O.title=ge)},null,40,bZe),[[tt,O.title]])])),N.value?M("",!0):(h(),I("div",CZe,[d("div",DZe,[d("div",PZe,[d("label",null,_(B.$t("workouts.WORKOUT_DATE"))+"*:",1),d("div",yZe,[ye(d("input",{id:"workout-date",name:"workout-date",type:"date",required:"",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[2]||(Ne[2]=ge=>O.workoutDate=ge)},null,40,LZe),[[tt,O.workoutDate]]),ye(d("input",{id:"workout-time",name:"workout-time",class:"workout-time",type:"time",required:"",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[3]||(Ne[3]=ge=>O.workoutTime=ge)},null,40,$Ze),[[tt,O.workoutTime]])])]),d("div",kZe,[d("label",null,_(B.$t("workouts.DURATION"))+"*:",1),d("div",null,[d("label",wZe,_(B.$t("common.HOURS",0)),1),ye(d("input",{id:"workout-duration-hour",name:"workout-duration-hour",class:Te(["workout-duration",{errored:W()}]),type:"text",placeholder:"HH",minlength:"1",maxlength:"2",pattern:"^([0-1]?[0-9]|2[0-3])$",required:"",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[4]||(Ne[4]=ge=>O.workoutDurationHour=ge)},null,42,UZe),[[tt,O.workoutDurationHour]]),V(" : "),d("label",MZe,_(B.$t("common.MINUTES",0)),1),ye(d("input",{id:"workout-duration-minutes",name:"workout-duration-minutes",class:Te(["workout-duration",{errored:W()}]),type:"text",pattern:"^([0-5][0-9])$",minlength:"2",maxlength:"2",placeholder:"MM",required:"",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[5]||(Ne[5]=ge=>O.workoutDurationMinutes=ge)},null,42,FZe),[[tt,O.workoutDurationMinutes]]),V(" : "),d("label",WZe,_(B.$t("common.SECONDS",0)),1),ye(d("input",{id:"workout-duration-seconds",name:"workout-duration-seconds",class:Te(["workout-duration",{errored:W()}]),type:"text",pattern:"^([0-5][0-9])$",minlength:"2",maxlength:"2",placeholder:"SS",required:"",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[6]||(Ne[6]=ge=>O.workoutDurationSeconds=ge)},null,42,zZe),[[tt,O.workoutDurationSeconds]])])])]),d("div",xZe,[d("div",BZe,[d("label",null,_(B.$t("workouts.DISTANCE"))+" ("+_(m(r).imperial_units?"mi":"km")+")*: ",1),ye(d("input",{class:Te({errored:$()}),name:"workout-distance",type:"number",min:"0",step:"0.001",required:"",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[7]||(Ne[7]=ge=>O.workoutDistance=ge)},null,42,GZe),[[tt,O.workoutDistance]])]),d("div",HZe,[d("label",null,_(B.$t("workouts.ASCENT"))+" ("+_(m(r).imperial_units?"ft":"m")+"): ",1),ye(d("input",{class:Te({errored:X()}),name:"workout-ascent",type:"number",min:"0",step:"0.01",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[8]||(Ne[8]=ge=>O.workoutAscent=ge)},null,42,VZe),[[tt,O.workoutAscent]])]),d("div",jZe,[d("label",null,_(B.$t("workouts.DESCENT"))+" ("+_(m(r).imperial_units?"ft":"m")+"): ",1),ye(d("input",{class:Te({errored:X()}),name:"workout-descent",type:"number",min:"0",step:"0.01",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[9]||(Ne[9]=ge=>O.workoutDescent=ge)},null,42,KZe),[[tt,O.workoutDescent]])])])])),S.value?(h(),I("div",qZe,[d("label",YZe,_(B.$t("equipments.EQUIPMENT",1))+": ",1),ye(d("select",{id:"workout-equipment",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[10]||(Ne[10]=ge=>O.equipment_id=ge)},[d("option",QZe,_(B.$t("equipments.NO_EQUIPMENTS")),1),(h(!0),I(pe,null,Pe(C.value,ge=>(h(),I("option",{value:ge.id,key:ge.id},_(ge.label),9,ZZe))),128))],40,XZe),[[oa,O.equipment_id]])])):M("",!0),d("div",JZe,[d("label",eJe,_(B.$t("workouts.NOTES"))+": ",1),F(Ke,{name:"notes",input:O.notes,disabled:m(u),onUpdateValue:y},null,8,["input","disabled"])])]),T.value?(h(),Y(Fe,{key:0,message:T.value},null,8,["message"])):M("",!0),m(u)?(h(),I("div",tJe,[F(Le)])):(h(),I("div",nJe,[d("button",{class:"confirm",type:"submit",disabled:m(u)},_(B.$t("buttons.SUBMIT")),9,aJe),d("button",{class:"cancel",onClick:be(Z,["prevent"])},_(B.$t("buttons.CANCEL")),1)]))],34)])]),_:1})],2)}}}),fg=ie(sJe,[["__scopeId","data-v-f97be344"]]),rJe={id:"add-workout",class:"view"},oJe={class:"container"},iJe=ee({__name:"AddWorkout",setup(e){const t=ke(),n=U(()=>t.getters[Dt.GETTERS.SPORTS]),a=U(()=>t.getters[Q.GETTERS.AUTH_USER_PROFILE]),s=U(()=>t.getters[Re.GETTERS.WORKOUT_DATA]);return(r,o)=>(h(),I("div",rJe,[d("div",oJe,[F(fg,{authUser:a.value,sports:n.value,isCreation:!0,loading:s.value.loading},null,8,["authUser","sports","loading"])])]))}}),uJe={id:"edit-workout",class:"view"},lJe={class:"container"},cJe=ee({__name:"EditWorkout",setup(e){const t=yt(),n=ke(),a=U(()=>n.getters[Q.GETTERS.AUTH_USER_PROFILE]),s=U(()=>n.getters[Dt.GETTERS.SPORTS]),r=U(()=>n.getters[Re.GETTERS.WORKOUT_DATA]);return pt(()=>{n.dispatch(Re.ACTIONS.GET_WORKOUT_DATA,{workoutId:t.params.workoutId})}),Me(()=>t.params.workoutId,async o=>{o||n.commit(Re.MUTATIONS.EMPTY_WORKOUT)}),(o,i)=>(h(),I("div",uJe,[d("div",lJe,[r.value.workout.id?(h(),Y(fg,{key:0,authUser:a.value,sports:s.value,workout:r.value.workout,loading:r.value.loading},null,8,["authUser","sports","workout","loading"])):M("",!0)])]))}}),vr=e=>(rt("data-v-ba7fce77"),e=e(),ot(),e),dJe={id:"workout-card-title"},EJe=["disabled","title"],fJe=vr(()=>d("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1)),pJe=[fJe],mJe={class:"workout-card-title"},_Je={class:"workout-title-date"},TJe={key:0,class:"workout-title"},hJe=["aria-label"],AJe=vr(()=>d("i",{class:"fa fa-edit","aria-hidden":"true"},null,-1)),SJe=[AJe],OJe=["aria-label"],gJe=vr(()=>d("i",{class:"fa fa-download","aria-hidden":"true"},null,-1)),IJe=[gJe],RJe=["aria-label"],NJe=vr(()=>d("i",{class:"fa fa-trash","aria-hidden":"true"},null,-1)),vJe=[NJe],bJe={key:1,class:"workout-title"},CJe={class:"workout-segment"},DJe=vr(()=>d("i",{class:"fa fa-map-marker","aria-hidden":"true"},null,-1)),PJe={class:"workout-date"},yJe=["datetime"],LJe={class:"workout-link"},$Je=["disabled","title"],kJe=vr(()=>d("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)),wJe=[kJe],UJe=ee({__name:"WorkoutCardTitle",props:{sport:{},workoutObject:{}},emits:["displayModal"],setup(e,{emit:t}){const n=e,a=t,{sport:s,workoutObject:r}=me(n);async function o(u){await Be.get(`workouts/${u}/gpx/download`,{responseType:"blob"}).then(l=>{const c=window.URL.createObjectURL(new Blob([l.data],{type:"application/gpx+xml"})),f=document.createElement("a");f.href=c,f.setAttribute("download",`${u}.gpx`),document.body.appendChild(f),f.click()})}function i(){a("displayModal",!0)}return(u,l)=>{const c=oe("SportImage"),f=oe("router-link");return h(),I("div",dJe,[d("button",{class:Te(["workout-previous workout-arrow transparent",{inactive:!m(r).previousUrl}]),disabled:!m(r).previousUrl,title:m(r).previousUrl?u.$t(`workouts.PREVIOUS_${m(r).type}`):u.$t(`workouts.NO_PREVIOUS_${m(r).type}`),onClick:l[0]||(l[0]=E=>m(r).previousUrl?u.$router.push(m(r).previousUrl):null)},pJe,10,EJe),d("div",mJe,[F(c,{"sport-label":m(s).label,color:m(s).color},null,8,["sport-label","color"]),d("div",_Je,[m(r).type==="WORKOUT"?(h(),I("div",TJe,[d("span",null,_(m(r).title),1),d("button",{class:"transparent icon-button",onClick:l[1]||(l[1]=E=>u.$router.push({name:"EditWorkout",params:{workoutId:m(r).workoutId}})),"aria-label":u.$t("workouts.EDIT_WORKOUT")},SJe,8,hJe),m(r).with_gpx?(h(),I("button",{key:0,class:"transparent icon-button",onClick:l[2]||(l[2]=be(E=>o(m(r).workoutId),["prevent"])),"aria-label":u.$t("workouts.DOWNLOAD_WORKOUT")},IJe,8,OJe)):M("",!0),d("button",{id:"delete-workout-button",class:"transparent icon-button",onClick:be(i,["prevent"]),"aria-label":u.$t("workouts.DELETE_WORKOUT")},vJe,8,RJe)])):m(r).segmentId!==null?(h(),I("div",bJe,[V(_(m(r).title)+" ",1),d("span",CJe,[V(" — "),DJe,V(" "+_(u.$t("workouts.SEGMENT"))+" "+_(m(r).segmentId+1),1)])])):M("",!0),d("div",PJe,[d("time",{datetime:m(r).workoutFullDate},_(m(r).workoutDate)+" - "+_(m(r).workoutTime),9,yJe),d("span",LJe,[m(r).type==="SEGMENT"?(h(),Y(f,{key:0,to:{name:"Workout",params:{workoutId:m(r).workoutId}}},{default:le(()=>[V(" > "+_(u.$t("workouts.BACK_TO_WORKOUT")),1)]),_:1},8,["to"])):M("",!0)])])])]),d("button",{class:Te(["workout-next workout-arrow transparent",{inactive:!m(r).nextUrl}]),disabled:!m(r).nextUrl,title:m(r).nextUrl?u.$t(`workouts.NEXT_${m(r).type}`):u.$t(`workouts.NO_NEXT_${m(r).type}`),onClick:l[3]||(l[3]=E=>m(r).nextUrl?u.$router.push(m(r).nextUrl):null)},wJe,10,$Je)])}}}),MJe=ie(UJe,[["__scopeId","data-v-ba7fce77"]]),FJe=e=>(rt("data-v-1b247cbe"),e=e(),ot(),e),WJe={key:0,class:"workout-record"},zJe=FJe(()=>d("sup",null,[d("i",{class:"fa fa-trophy","aria-hidden":"true"})],-1)),xJe=[zJe],BJe=ee({__name:"WorkoutRecord",props:{recordType:{},workoutObject:{}},setup(e){const t=e,{recordType:n,workoutObject:a}=me(t);return(s,r)=>m(a).records&&m(a).records.find(o=>o.record_type===m(n))?(h(),I("span",WJe,xJe)):M("",!0)}}),Br=ie(BJe,[["__scopeId","data-v-1b247cbe"]]),GJe="/img/weather/temperature.svg",HJe="/img/weather/pour-rain.svg",VJe="/img/weather/breeze.svg",jJe=["N","NNE","NE","ENE","E","ESE","SE","SSE","S","SSW","SW","WSW","W","WNW","NW","NNW"],KJe=e=>{const t=Math.floor(e/22.5+.5);return jJe[t%16]},qJe={class:"wind"},YJe={class:"wind-bearing"},XJe=["title"],QJe=ee({__name:"WeatherWind",props:{weather:{},useImperialUnits:{type:Boolean}},setup(e){const t=e,{useImperialUnits:n,weather:a}=me(t),{t:s}=kt();function r(o){return s(`workouts.WEATHER.WIND_DIRECTIONS.${KJe(o)}`)}return(o,i)=>(h(),I("div",qJe,[V(_(m(Aye)(m(a).wind,m(n)))+" ",1),d("div",YJe,[m(a).windBearing?(h(),I("i",{key:0,class:"fa fa-long-arrow-down",style:ba({transform:`rotate(${m(a).windBearing}deg)`}),"aria-hidden":"true",title:r(m(a).windBearing)},null,12,XJe)):M("",!0)])]))}}),l0=ie(QJe,[["__scopeId","data-v-e1f7f9cc"]]),ZJe=e=>(rt("data-v-be2fffb0"),e=e(),ot(),e),JJe={key:0,id:"workout-weather"},eet={class:"weather-table"},tet=ZJe(()=>d("th",null,null,-1)),net={class:"weather-th"},aet=["src","alt","title"],set={class:"weather-th"},ret=["src","alt","title"],oet=["alt","title"],iet=["alt","title"],uet=["alt","title"],cet=ee({__name:"WorkoutWeather",props:{workoutObject:{},useImperialUnits:{type:Boolean}},setup(e){const t=e,{useImperialUnits:n,workoutObject:a}=me(t);return(s,r)=>m(a).weatherStart&&m(a).weatherEnd?(h(),I("div",JJe,[d("table",eet,[d("thead",null,[d("tr",null,[tet,d("th",null,[d("div",net,[V(_(s.$t("workouts.START"))+" ",1),d("img",{class:"weather-img",src:`/img/weather/${m(a).weatherStart.icon}.svg`,alt:s.$t(`workouts.WEATHER.DARK_SKY.${m(a).weatherStart.icon}`),title:s.$t(`workouts.WEATHER.DARK_SKY.${m(a).weatherStart.icon}`)},null,8,aet)])]),d("th",null,[d("div",set,[V(_(s.$t("workouts.END"))+" ",1),d("img",{class:"weather-img",src:`/img/weather/${m(a).weatherEnd.icon}.svg`,alt:s.$t(`workouts.WEATHER.DARK_SKY.${m(a).weatherEnd.icon}`),title:s.$t(`workouts.WEATHER.DARK_SKY.${m(a).weatherEnd.icon}`)},null,8,ret)])])])]),d("tbody",null,[d("tr",null,[d("td",null,[d("img",{class:"weather-img weather-img-small",src:GJe,alt:s.$t("workouts.WEATHER.TEMPERATURE"),title:s.$t("workouts.WEATHER.TEMPERATURE")},null,8,oet)]),d("td",null,_(m(A_)(m(a).weatherStart.temperature,m(n))),1),d("td",null,_(m(A_)(m(a).weatherEnd.temperature,m(n))),1)]),d("tr",null,[d("td",null,[d("img",{class:"weather-img weather-img-small",src:HJe,alt:s.$t("workouts.WEATHER.HUMIDITY"),title:s.$t("workouts.WEATHER.HUMIDITY")},null,8,iet)]),d("td",null,_(Number(m(a).weatherStart.humidity*100).toFixed(1))+"% ",1),d("td",null,_(Number(m(a).weatherEnd.humidity*100).toFixed(1))+"% ",1)]),d("tr",null,[d("td",null,[d("img",{class:"weather-img weather-img-small",src:VJe,alt:s.$t("workouts.WEATHER.WIND"),title:s.$t("workouts.WEATHER.WIND")},null,8,uet)]),d("td",null,[F(l0,{weather:m(a).weatherStart,useImperialUnits:m(n)},null,8,["weather","useImperialUnits"])]),d("td",null,[F(l0,{weather:m(a).weatherEnd,useImperialUnits:m(n)},null,8,["weather","useImperialUnits"])])])])])])):M("",!0)}}),det=ie(cet,[["__scopeId","data-v-be2fffb0"]]),Us=e=>(rt("data-v-9341b3e8"),e=e(),ot(),e),Eet={id:"workout-info"},fet={class:"workout-data"},pet=Us(()=>d("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1)),met={class:"label"},_et={class:"value"},Tet={key:0},het={class:"value"},Aet={class:"value"},Oet={key:0,class:"workout-data"},get=Us(()=>d("i",{class:"fa fa-road","aria-hidden":"true"},null,-1)),Iet={class:"label"},Ret={key:1,class:"workout-data"},Net=Us(()=>d("i",{class:"fa fa-tachometer","aria-hidden":"true"},null,-1)),vet={class:"label"},bet=Us(()=>d("br",null,null,-1)),Cet={class:"label"},Det={key:2,class:"workout-data"},Pet=["alt"],yet={class:"label"},Let=Us(()=>d("br",null,null,-1)),$et={class:"label"},ket={key:3,class:"workout-data"},wet=Us(()=>d("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1)),Uet={class:"label"},Met=Us(()=>d("br",null,null,-1)),Fet={class:"label"},Wet=ee({__name:"WorkoutData",props:{workoutObject:{},useImperialUnits:{type:Boolean},displayHARecord:{type:Boolean}},setup(e){const t=e,{displayHARecord:n,workoutObject:a,useImperialUnits:s}=me(t),r=U(()=>t.workoutObject.pauses!=="0:00:00"&&t.workoutObject.pauses!==null);return(o,i)=>{const u=oe("Distance");return h(),I("div",Eet,[d("div",fet,[pet,d("span",met,_(o.$t("workouts.DURATION")),1),V(": "),d("span",_et,_(m(a).moving),1),F(Br,{workoutObject:m(a),recordType:"LD"},null,8,["workoutObject"]),r.value?(h(),I("div",Tet,[V(" ("+_(o.$t("workouts.PAUSES"))+": ",1),d("span",het,_(m(a).pauses),1),V(" - "+_(o.$t("workouts.TOTAL_DURATION"))+": ",1),d("span",Aet,_(m(a).duration)+")",1)])):M("",!0)]),m(a).distance!==null?(h(),I("div",Oet,[get,d("span",Iet,_(o.$t("workouts.DISTANCE")),1),V(": "),F(u,{distance:m(a).distance,digits:3,unitFrom:"km",strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"]),F(Br,{workoutObject:m(a),recordType:"FD"},null,8,["workoutObject"])])):M("",!0),m(a).aveSpeed!==null&&m(a).maxSpeed!==null?(h(),I("div",Ret,[Net,d("span",vet,_(o.$t("workouts.AVERAGE_SPEED")),1),V(": "),F(u,{distance:m(a).aveSpeed,unitFrom:"km",speed:!0,strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"]),F(Br,{workoutObject:m(a),recordType:"AS"},null,8,["workoutObject"]),bet,d("span",Cet,_(o.$t("workouts.MAX_SPEED")),1),V(": "),F(u,{distance:m(a).maxSpeed,unitFrom:"km",speed:!0,strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"]),F(Br,{workoutObject:m(a),recordType:"MS"},null,8,["workoutObject"])])):M("",!0),m(a).maxAlt!==null&&m(a).minAlt!==null?(h(),I("div",Det,[d("img",{class:"mountains",src:QO,alt:o.$t("workouts.ELEVATION")},null,8,Pet),d("span",yet,_(o.$t("workouts.MIN_ALTITUDE")),1),V(": "),F(u,{distance:m(a).minAlt,unitFrom:"m",strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"]),Let,d("span",$et,_(o.$t("workouts.MAX_ALTITUDE")),1),V(": "),F(u,{distance:m(a).maxAlt,unitFrom:"m",strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"])])):M("",!0),m(a).ascent!==null&&m(a).descent!==null?(h(),I("div",ket,[wet,d("span",Uet,_(o.$t("workouts.ASCENT")),1),V(": "),F(u,{distance:m(a).ascent,unitFrom:"m",strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"]),m(n)?(h(),Y(Br,{key:0,workoutObject:m(a),recordType:"HA"},null,8,["workoutObject"])):M("",!0),Met,d("span",Fet,_(o.$t("workouts.DESCENT")),1),V(": "),F(u,{distance:m(a).descent,unitFrom:"m",strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"])])):M("",!0),F(det,{workoutObject:m(a),useImperialUnits:m(s)},null,8,["workoutObject","useImperialUnits"])])}}}),zet=ie(Wet,[["__scopeId","data-v-9341b3e8"]]);function nr(e,t){return Array.from(e.getElementsByTagName(t))}function br(e){return e==null||e.normalize(),e&&e.textContent||""}function Ds(e,t,n){const a=e.getElementsByTagName(t),s=a.length?a[0]:null;return s&&n&&n(s),s}function xet(e,t,n){const a={};if(!e)return a;const s=e.getElementsByTagName(t),r=s.length?s[0]:null;return r&&n?n(r,a):a}function pg(e,t,n){const a=br(Ds(e,t));return a&&n?n(a)||{}:{}}function c0(e,t,n){const a=parseFloat(br(Ds(e,t)));if(!isNaN(a))return a&&n?n(a)||{}:{}}function Bet(e,t,n){const a=parseFloat(br(Ds(e,t)));if(!isNaN(a))return n&&n(a),a}function _E(e,t){const n={};for(const a of t)pg(e,a,s=>{n[a]=s});return n}function Get(e){return(e==null?void 0:e.nodeType)===1}function mg(e){return xet(e,"line",t=>Object.assign({},pg(t,"color",a=>({stroke:`#${a}`})),c0(t,"opacity",a=>({"stroke-opacity":a})),c0(t,"width",a=>({"stroke-width":a*96/25.4}))))}function _g(e){let t=[];if(e===null)return t;for(const n of Array.from(e.childNodes)){if(!Get(n))continue;const a=Het(n.nodeName);if(a==="gpxtpx:TrackPointExtension")t=t.concat(_g(n));else{const s=br(n);t.push([a,Vet(s)])}}return t}function Het(e){return["heart","gpxtpx:hr","hr"].includes(e)?"heart":e}function Vet(e){const t=parseFloat(e);return isNaN(t)?e:t}function Tg(e){const t=[parseFloat(e.getAttribute("lon")||""),parseFloat(e.getAttribute("lat")||"")];if(isNaN(t[0])||isNaN(t[1]))return null;Bet(e,"ele",a=>{t.push(a)});const n=Ds(e,"time");return{coordinates:t,time:n?br(n):null,extendedValues:_g(Ds(e,"extensions"))}}function Qf(e){var s;const t=_E(e,["name","cmt","desc","type","time","keywords"]),n=Array.from(e.getElementsByTagNameNS("http://www.garmin.com/xmlschemas/GpxExtensions/v3","*"));for(const r of n)((s=r.parentNode)==null?void 0:s.parentNode)===e&&(t[r.tagName.replace(":","_")]=br(r));const a=nr(e,"link");return a.length&&(t.links=a.map(r=>Object.assign({href:r.getAttribute("href")},_E(r,["text","type"])))),t}function hg(e,t){const n=nr(e,t),a=[],s=[],r={};for(let o=0;o1,o=Object.assign({_gpxType:"trk"},Qf(e),mg(Ds(e,"extensions")),a.length?{coordinateProperties:{times:r?a:a[0]}}:{});for(const i of s){n.push(i.line),o.coordinateProperties||(o.coordinateProperties={});const u=o.coordinateProperties,l=Object.entries(i.extendedValues);for(let c=0;cnew Array(p.line.length).fill(null))),u[f][c]=E):u[f]=E}}return{type:"Feature",properties:o,geometry:r?{type:"MultiLineString",coordinates:n}:{type:"LineString",coordinates:n[0]}}}function qet(e){const t=Object.assign(Qf(e),_E(e,["sym"])),n=Tg(e);return n?{type:"Feature",properties:t,geometry:{type:"Point",coordinates:n.coordinates}}:null}function*Yet(e){for(const t of nr(e,"trk")){const n=Ket(t);n&&(yield n)}for(const t of nr(e,"rte")){const n=jet(t);n&&(yield n)}for(const t of nr(e,"wpt")){const n=qet(t);n&&(yield n)}}function Xet(e){return{type:"FeatureCollection",features:Array.from(Yet(e))}}const d0=(e,t)=>{for(const n of Object.keys(t))e.on(n,t[n])},Ag=e=>{for(const t of Object.keys(e)){const n=e[t];n&&ja(n.cancel)&&n.cancel()}},Qet=e=>!e||typeof e.charAt!="function"?e:e.charAt(0).toUpperCase()+e.slice(1),ja=e=>typeof e=="function",Pa=(e,t,n)=>{for(const a in n){const s="set"+Qet(a);e[s]?Me(()=>n[a],(r,o)=>{e[s](r,o)}):t[s]&&Me(()=>n[a],r=>{t[s](r)})}},da=(e,t,n={})=>{const a={...n};for(const s in e){const r=t[s],o=e[s];r&&(r&&r.custom===!0||o!==void 0&&(a[s]=o))}return a},Ms=e=>{const t={},n={};for(const a in e)if(a.startsWith("on")&&!a.startsWith("onUpdate")&&a!=="onReady"){const s=a.slice(2).toLocaleLowerCase();t[s]=e[a]}else n[a]=e[a];return{listeners:t,attrs:n}},Zet=async e=>{const t=await Promise.all([wt(()=>import("./maps-BFpqWvfo.js").then(n=>n.m),__vite__mapDeps([0,1])),wt(()=>import("./maps-BFpqWvfo.js").then(n=>n.b),__vite__mapDeps([0,1])),wt(()=>import("./maps-BFpqWvfo.js").then(n=>n.d),__vite__mapDeps([0,1]))]);delete e.Default.prototype._getIconUrl,e.Default.mergeOptions({iconRetinaUrl:t[0].default,iconUrl:t[1].default,shadowUrl:t[2].default})},Pi=e=>{const t=de((...a)=>console.warn(`Method ${e} has been invoked without being replaced`)),n=(...a)=>t.value(...a);return n.wrapped=t,rn(e,n),n},yi=(e,t)=>e.wrapped.value=t,Hn=typeof self=="object"&&self.self===self&&self||typeof global=="object"&&global.global===global&&global||globalThis,wn=e=>{const t=Rt(e);if(t===void 0)throw new Error(`Attempt to inject ${e.description} before it was provided.`);return t},ya=Symbol("useGlobalLeaflet"),ls=Symbol("addLayer"),Zf=Symbol("removeLayer"),Sg=Symbol("registerControl"),Og=Symbol("registerLayerControl"),gg=Symbol("canSetParentHtml"),Ig=Symbol("setParentHtml"),Rg=Symbol("setIcon"),Jet=Symbol("bindPopup"),ett=Symbol("bindTooltip"),ttt=Symbol("unbindPopup"),ntt=Symbol("unbindTooltip"),Zo={options:{type:Object,default:()=>({}),custom:!0}},Kl=e=>({options:e.options,methods:{}}),Cr={...Zo,pane:{type:String},attribution:{type:String},name:{type:String,custom:!0},layerType:{type:String,custom:!0},visible:{type:Boolean,custom:!0,default:!0}},Jf=(e,t,n)=>{const a=wn(ls),s=wn(Zf),{options:r,methods:o}=Kl(e),i=da(e,Cr,r),u=()=>a({leafletObject:t.value}),l=()=>s({leafletObject:t.value}),c={...o,setAttribution(f){l(),t.value.options.attribution=f,e.visible&&u()},setName(){l(),e.visible&&u()},setLayerType(){l(),e.visible&&u()},setVisible(f){t.value&&(f?u():l())},bindPopup(f){if(!t.value||!ja(t.value.bindPopup)){console.warn("Attempt to bind popup before bindPopup method available on layer.");return}t.value.bindPopup(f)},bindTooltip(f){if(!t.value||!ja(t.value.bindTooltip)){console.warn("Attempt to bind tooltip before bindTooltip method available on layer.");return}t.value.bindTooltip(f)},unbindTooltip(){t.value&&(ja(t.value.closeTooltip)&&t.value.closeTooltip(),ja(t.value.unbindTooltip)&&t.value.unbindTooltip())},unbindPopup(){t.value&&(ja(t.value.closePopup)&&t.value.closePopup(),ja(t.value.unbindPopup)&&t.value.unbindPopup())},updateVisibleProp(f){n.emit("update:visible",f)}};return rn(Jet,c.bindPopup),rn(ett,c.bindTooltip),rn(ttt,c.unbindPopup),rn(ntt,c.unbindTooltip),mt(()=>{c.unbindPopup(),c.unbindTooltip(),l()}),{options:i,methods:c}},ep=(e,t)=>{if(e&&t.default)return hn("div",{style:{display:"none"}},t.default())},att={...Cr,interactive:{type:Boolean,default:void 0},bubblingMouseEvents:{type:Boolean,default:void 0}},Ng={...att,stroke:{type:Boolean,default:void 0},color:{type:String},weight:{type:Number},opacity:{type:Number},lineCap:{type:String},lineJoin:{type:String},dashArray:{type:String},dashOffset:{type:String},fill:{type:Boolean,default:void 0},fillColor:{type:String},fillOpacity:{type:Number},fillRule:{type:String},className:{type:String}},stt={...Ng,radius:{type:Number},latLng:{type:[Object,Array],required:!0,custom:!0}};({...stt});const Dr={...Zo,position:{type:String}},vg=(e,t)=>{const{options:n,methods:a}=Kl(e),s=da(e,Dr,n),r={...a,setPosition(o){t.value&&t.value.setPosition(o)}};return mt(()=>{t.value&&t.value.remove()}),{options:s,methods:r}},rtt=e=>e.default?hn("div",{ref:"root"},e.default()):null,E0=ee({name:"LControl",props:{...Dr,disableClickPropagation:{type:Boolean,custom:!0,default:!0},disableScrollPropagation:{type:Boolean,custom:!0,default:!1}},setup(e,t){const n=de(),a=de(),s=Rt(ya),r=wn(Sg),{options:o,methods:i}=vg(e,n);return St(async()=>{const{Control:u,DomEvent:l}=s?Hn.L:await wt(()=>import("./maps-BFpqWvfo.js").then(f=>f.e),__vite__mapDeps([0,1])),c=u.extend({onAdd(){return a.value}});n.value=Ca(new c(o)),Pa(i,n.value,e),r({leafletObject:n.value}),e.disableClickPropagation&&a.value&&l.disableClickPropagation(a.value),e.disableScrollPropagation&&a.value&&l.disableScrollPropagation(a.value),on(()=>t.emit("ready",n.value))}),{root:a,leafletObject:n}},render(){return rtt(this.$slots)}});({...Dr});const bg={...Dr,collapsed:{type:Boolean,default:void 0},autoZIndex:{type:Boolean,default:void 0},hideSingleBase:{type:Boolean,default:void 0},sortLayers:{type:Boolean,default:void 0},sortFunction:{type:Function}},ott=(e,t)=>{const{options:n}=vg(e,t);return{options:da(e,bg,n),methods:{addLayer(a){a.layerType==="base"?t.value.addBaseLayer(a.leafletObject,a.name):a.layerType==="overlay"&&t.value.addOverlay(a.leafletObject,a.name)},removeLayer(a){t.value.removeLayer(a.leafletObject)}}}},itt=ee({name:"LControlLayers",props:bg,setup(e,t){const n=de(),a=Rt(ya),s=wn(Og),{options:r,methods:o}=ott(e,n);return St(async()=>{const{control:i}=a?Hn.L:await wt(()=>import("./maps-BFpqWvfo.js").then(u=>u.e),__vite__mapDeps([0,1]));n.value=Ca(i.layers(void 0,void 0,r)),Pa(o,n.value,e),s({...e,...o,leafletObject:n.value}),on(()=>t.emit("ready",n.value))}),{leafletObject:n}},render(){return null}});({...Dr});({...Dr});const ql={...Cr},Cg=(e,t,n)=>{const{options:a,methods:s}=Jf(e,t,n),r=da(e,ql,a),o={...s,addLayer(i){t.value.addLayer(i.leafletObject)},removeLayer(i){t.value.removeLayer(i.leafletObject)}};return rn(ls,o.addLayer),rn(Zf,o.removeLayer),{options:r,methods:o}};({...ql});const Dg={...ql,geojson:{type:[Object,Array],custom:!0},optionsStyle:{type:Function,custom:!0}},utt=(e,t,n)=>{const{options:a,methods:s}=Cg(e,t,n),r=da(e,Dg,a);Object.prototype.hasOwnProperty.call(e,"optionsStyle")&&(r.style=e.optionsStyle);const o={...s,setGeojson(i){t.value.clearLayers(),t.value.addData(i)},setOptionsStyle(i){t.value.setStyle(i)},getGeoJSONData(){return t.value.toGeoJSON()},getBounds(){return t.value.getBounds()}};return{options:r,methods:o}},ltt=ee({props:Dg,setup(e,t){const n=de(),a=de(!1),s=Rt(ya),r=wn(ls),{methods:o,options:i}=utt(e,n,t);return St(async()=>{const{geoJSON:u}=s?Hn.L:await wt(()=>import("./maps-BFpqWvfo.js").then(c=>c.e),__vite__mapDeps([0,1]));n.value=Ca(u(e.geojson,i));const{listeners:l}=Ms(t.attrs);n.value.on(l),Pa(o,n.value,e),r({...e,...o,leafletObject:n.value}),a.value=!0,on(()=>t.emit("ready",n.value))}),{ready:a,leafletObject:n}},render(){return ep(this.ready,this.$slots)}}),tp={...Cr,opacity:{type:Number},zIndex:{type:Number},tileSize:{type:[Number,Array,Object]},noWrap:{type:Boolean,default:void 0},minZoom:{type:Number},maxZoom:{type:Number},className:{type:String}},Pg=(e,t,n)=>{const{options:a,methods:s}=Jf(e,t,n),r=da(e,tp,a),o={...s,setTileComponent(){var i;(i=t.value)==null||i.redraw()}};return mt(()=>{t.value.off()}),{options:r,methods:o}},ctt=(e,t,n,a)=>e.extend({initialize(s){this.tileComponents={},this.on("tileunload",this._unloadTile),n.setOptions(this,s)},createTile(s){const r=this._tileCoordsToKey(s);this.tileComponents[r]=t.create("div");const o=hn({setup:a,props:["coords"]},{coords:s});return DN(o,this.tileComponents[r]),this.tileComponents[r]},_unloadTile(s){const r=this._tileCoordsToKey(s.coords);this.tileComponents[r]&&(this.tileComponents[r].innerHTML="",this.tileComponents[r]=void 0)}});({...tp});const f0={iconUrl:{type:String},iconRetinaUrl:{type:String},iconSize:{type:[Object,Array]},iconAnchor:{type:[Object,Array]},popupAnchor:{type:[Object,Array]},tooltipAnchor:{type:[Object,Array]},shadowUrl:{type:String},shadowRetinaUrl:{type:String},shadowSize:{type:[Object,Array]},shadowAnchor:{type:[Object,Array]},bgPos:{type:[Object,Array]},className:{type:String}},dtt=ee({name:"LIcon",props:{...f0,...Zo},setup(e,t){const n=de(),a=Rt(ya),s=wn(gg),r=wn(Ig),o=wn(Rg);let i,u,l,c,f;const E=(N,g,R)=>{const A=N&&N.innerHTML;if(!g){R&&f&&s()&&r(A);return}const{listeners:S}=Ms(t.attrs);f&&u(f,S);const{options:v}=Kl(e),C=da(e,f0,v);A&&(C.html=A),f=C.html?l(C):c(C),i(f,S),o(f)},p=()=>{on(()=>E(n.value,!0,!1))},T=()=>{on(()=>E(n.value,!1,!0))},O={setIconUrl:p,setIconRetinaUrl:p,setIconSize:p,setIconAnchor:p,setPopupAnchor:p,setTooltipAnchor:p,setShadowUrl:p,setShadowRetinaUrl:p,setShadowAnchor:p,setBgPos:p,setClassName:p,setHtml:p};return St(async()=>{const{DomEvent:N,divIcon:g,icon:R}=a?Hn.L:await wt(()=>import("./maps-BFpqWvfo.js").then(A=>A.e),__vite__mapDeps([0,1]));i=N.on,u=N.off,l=g,c=R,Pa(O,{},e),new MutationObserver(T).observe(n.value,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),p()}),{root:n}},render(){const e=this.$slots.default?this.$slots.default():void 0;return hn("div",{ref:"root"},e)}});({...Cr});const Ett=ee({props:ql,setup(e,t){const n=de(),a=de(!1),s=Rt(ya),r=wn(ls),{methods:o}=Cg(e,n,t);return St(async()=>{const{layerGroup:i}=s?Hn.L:await wt(()=>import("./maps-BFpqWvfo.js").then(l=>l.e),__vite__mapDeps([0,1]));n.value=Ca(i(void 0,e.options));const{listeners:u}=Ms(t.attrs);n.value.on(u),Pa(o,n.value,e),r({...e,...o,leafletObject:n.value}),a.value=!0,on(()=>t.emit("ready",n.value))}),{ready:a,leafletObject:n}},render(){return ep(this.ready,this.$slots)}});function yg(e,t,n){var a,s,r;t===void 0&&(t=50),n===void 0&&(n={});var o=(a=n.isImmediate)!=null&&a,i=(s=n.callback)!=null&&s,u=n.maxWait,l=Date.now(),c=[];function f(){if(u!==void 0){var p=Date.now()-l;if(p+t>=u)return u-p}return t}var E=function(){var p=[].slice.call(arguments),T=this;return new Promise(function(O,N){var g=o&&r===void 0;if(r!==void 0&&clearTimeout(r),r=setTimeout(function(){if(r=void 0,l=Date.now(),!o){var A=e.apply(T,p);i&&i(A),c.forEach(function(S){return(0,S.resolve)(A)}),c=[]}},f()),g){var R=e.apply(T,p);return i&&i(R),O(R)}c.push({resolve:O,reject:N})})};return E.cancel=function(p){r!==void 0&&clearTimeout(r),c.forEach(function(T){return(0,T.reject)(p)}),c=[]},E}const p0={...Zo,center:{type:[Object,Array]},bounds:{type:[Array,Object]},maxBounds:{type:[Array,Object]},zoom:{type:Number},minZoom:{type:Number},maxZoom:{type:Number},paddingBottomRight:{type:[Object,Array]},paddingTopLeft:{type:Object},padding:{type:Object},worldCopyJump:{type:Boolean,default:void 0},crs:{type:[String,Object]},maxBoundsViscosity:{type:Number},inertia:{type:Boolean,default:void 0},inertiaDeceleration:{type:Number},inertiaMaxSpeed:{type:Number},easeLinearity:{type:Number},zoomAnimation:{type:Boolean,default:void 0},zoomAnimationThreshold:{type:Number},fadeAnimation:{type:Boolean,default:void 0},markerZoomAnimation:{type:Boolean,default:void 0},noBlockingAnimations:{type:Boolean,default:void 0},useGlobalLeaflet:{type:Boolean,default:!0,custom:!0}},ftt=ee({inheritAttrs:!1,emits:["ready","update:zoom","update:center","update:bounds"],props:p0,setup(e,t){const n=de(),a=Ht({ready:!1,layersToAdd:[],layersInControl:[]}),{options:s}=Kl(e),r=da(e,p0,s),{listeners:o,attrs:i}=Ms(t.attrs),u=Pi(ls),l=Pi(Zf),c=Pi(Sg),f=Pi(Og);rn(ya,e.useGlobalLeaflet);const E=U(()=>{const g={};return e.noBlockingAnimations&&(g.animate=!1),g}),p=U(()=>{const g=E.value;return e.padding&&(g.padding=e.padding),e.paddingTopLeft&&(g.paddingTopLeft=e.paddingTopLeft),e.paddingBottomRight&&(g.paddingBottomRight=e.paddingBottomRight),g}),T={moveend:yg(g=>{a.leafletRef&&(t.emit("update:zoom",a.leafletRef.getZoom()),t.emit("update:center",a.leafletRef.getCenter()),t.emit("update:bounds",a.leafletRef.getBounds()))}),overlayadd(g){const R=a.layersInControl.find(A=>A.name===g.name);R&&R.updateVisibleProp(!0)},overlayremove(g){const R=a.layersInControl.find(A=>A.name===g.name);R&&R.updateVisibleProp(!1)}};St(async()=>{e.useGlobalLeaflet&&(Hn.L=Hn.L||await wt(()=>import("./maps-BFpqWvfo.js").then(k=>k.l),__vite__mapDeps([0,1])));const{map:g,CRS:R,Icon:A,latLngBounds:S,latLng:v,stamp:C}=e.useGlobalLeaflet?Hn.L:await wt(()=>import("./maps-BFpqWvfo.js").then(k=>k.e),__vite__mapDeps([0,1]));try{r.beforeMapMount&&await r.beforeMapMount()}catch(k){console.error(`The following error occurred running the provided beforeMapMount hook ${k.message}`)}await Zet(A);const y=typeof r.crs=="string"?R[r.crs]:r.crs;r.crs=y||R.EPSG3857;const b={addLayer(k){k.layerType!==void 0&&(a.layerControl===void 0?a.layersToAdd.push(k):a.layersInControl.find(z=>C(z.leafletObject)===C(k.leafletObject))||(a.layerControl.addLayer(k),a.layersInControl.push(k))),k.visible!==!1&&a.leafletRef.addLayer(k.leafletObject)},removeLayer(k){k.layerType!==void 0&&(a.layerControl===void 0?a.layersToAdd=a.layersToAdd.filter(z=>z.name!==k.name):(a.layerControl.removeLayer(k.leafletObject),a.layersInControl=a.layersInControl.filter(z=>C(z.leafletObject)!==C(k.leafletObject)))),a.leafletRef.removeLayer(k.leafletObject)},registerLayerControl(k){a.layerControl=k,a.layersToAdd.forEach(z=>{a.layerControl.addLayer(z)}),a.layersToAdd=[],c(k)},registerControl(k){a.leafletRef.addControl(k.leafletObject)},setZoom(k){const z=a.leafletRef.getZoom();k!==z&&a.leafletRef.setZoom(k,E.value)},setCrs(k){const z=a.leafletRef.getBounds();a.leafletRef.options.crs=k,a.leafletRef.fitBounds(z,{animate:!1,padding:[0,0]})},fitBounds(k){a.leafletRef.fitBounds(k,p.value)},setBounds(k){if(!k)return;const z=S(k);z.isValid()&&!(a.lastSetBounds||a.leafletRef.getBounds()).equals(z,0)&&(a.lastSetBounds=z,a.leafletRef.fitBounds(z))},setCenter(k){if(k==null)return;const z=v(k),$=a.lastSetCenter||a.leafletRef.getCenter();($.lat!==z.lat||$.lng!==z.lng)&&(a.lastSetCenter=z,a.leafletRef.panTo(z,E.value))}};yi(u,b.addLayer),yi(l,b.removeLayer),yi(c,b.registerControl),yi(f,b.registerLayerControl),a.leafletRef=Ca(g(n.value,r)),Pa(b,a.leafletRef,e),d0(a.leafletRef,T),d0(a.leafletRef,o),a.ready=!0,on(()=>t.emit("ready",a.leafletRef))}),ko(()=>{Ag(T),a.leafletRef&&(a.leafletRef.off(),a.leafletRef.remove())});const O=U(()=>a.leafletRef),N=U(()=>a.ready);return{root:n,ready:N,leafletObject:O,attrs:i}},render({attrs:e}){return e.style||(e.style={}),e.style.width||(e.style.width="100%"),e.style.height||(e.style.height="100%"),hn("div",{...e,ref:"root"},this.ready&&this.$slots.default?this.$slots.default():{})}}),ptt=["Symbol(Comment)","Symbol(Text)"],mtt=["LTooltip","LPopup"],Lg={...Cr,draggable:{type:Boolean,default:void 0},icon:{type:[Object]},zIndexOffset:{type:Number},latLng:{type:[Object,Array],custom:!0,required:!0}},_tt=(e,t,n)=>{const{options:a,methods:s}=Jf(e,t,n),r=da(e,Lg,a),o={...s,setDraggable(i){t.value.dragging&&(i?t.value.dragging.enable():t.value.dragging.disable())},latLngSync(i){n.emit("update:latLng",i.latlng),n.emit("update:lat-lng",i.latlng)},setLatLng(i){if(i!=null&&t.value){const u=t.value.getLatLng();(!u||!u.equals(i))&&t.value.setLatLng(i)}}};return{options:r,methods:o}},Ttt=(e,t)=>{const n=t.slots.default&&t.slots.default();return n&&n.length&&n.some(htt)};function htt(e){return!(ptt.includes(e.type.toString())||mtt.includes(e.type.name))}const $g=ee({name:"LMarker",props:Lg,setup(e,t){const n=de(),a=de(!1),s=Rt(ya),r=wn(ls);rn(gg,()=>{var l;return!!((l=n.value)!=null&&l.getElement())}),rn(Ig,l=>{var c,f;const E=ja((c=n.value)==null?void 0:c.getElement)&&((f=n.value)==null?void 0:f.getElement());E&&(E.innerHTML=l)}),rn(Rg,l=>{var c;return((c=n.value)==null?void 0:c.setIcon)&&n.value.setIcon(l)});const{options:o,methods:i}=_tt(e,n,t),u={moveHandler:yg(i.latLngSync)};return St(async()=>{const{marker:l,divIcon:c}=s?Hn.L:await wt(()=>import("./maps-BFpqWvfo.js").then(E=>E.e),__vite__mapDeps([0,1]));Ttt(o,t)&&(o.icon=c({className:""})),n.value=Ca(l(e.latLng,o));const{listeners:f}=Ms(t.attrs);n.value.on(f),n.value.on("move",u.moveHandler),Pa(i,n.value,e),r({...e,...i,leafletObject:n.value}),a.value=!0,on(()=>t.emit("ready",n.value))}),ko(()=>Ag(u)),{ready:a,leafletObject:n}},render(){return ep(this.ready,this.$slots)}}),Att={...Ng,smoothFactor:{type:Number},noClip:{type:Boolean,default:void 0},latLngs:{type:Array,required:!0,custom:!0}},m0={...Att},kg={...Zo,content:{type:String,default:null}};({...kg});({...m0,latLngs:{...m0.latLngs}});const np={...tp,tms:{type:Boolean,default:void 0},subdomains:{type:[String,Array],validator:e=>typeof e=="string"?!0:Array.isArray(e)?e.every(t=>typeof t=="string"):!1},detectRetina:{type:Boolean,default:void 0},url:{type:String,required:!0,custom:!0}},Stt=(e,t,n)=>{const{options:a,methods:s}=Pg(e,t,n),r=da(e,np,a),o={...s};return{options:r,methods:o}},Ott=ee({props:np,setup(e,t){const n=de(),a=Rt(ya),s=wn(ls),{options:r,methods:o}=Stt(e,n,t);return St(async()=>{const{tileLayer:i}=a?Hn.L:await wt(()=>import("./maps-BFpqWvfo.js").then(l=>l.e),__vite__mapDeps([0,1]));n.value=Ca(i(e.url,r));const{listeners:u}=Ms(t.attrs);n.value.on(u),Pa(o,n.value,e),s({...e,...o,leafletObject:n.value}),on(()=>t.emit("ready",n.value))}),{leafletObject:n}},render(){return null}});({...kg});({...np});const _0=ee({__name:"CustomMarker",props:{markerCoordinates:{},isStart:{type:Boolean}},setup(e){const t=e,{isStart:n,markerCoordinates:a}=me(t);return(s,r)=>m(a).latitude?(h(),Y(m($g),{key:0,"lat-lng":[m(a).latitude,m(a).longitude]},{default:le(()=>[F(m(dtt),{"icon-url":`/img/workouts/${m(n)?"start":"finish"}.svg`,iconSize:[15,15]},null,8,["icon-url"])]),_:1},8,["lat-lng"])):M("",!0)}}),gtt=e=>(rt("data-v-02ef686a"),e=e(),ot(),e),Itt={id:"workout-map"},Rtt={key:0,class:"leaflet-container"},Ntt={key:1},vtt=gtt(()=>d("i",{class:"fa fa-refresh","aria-hidden":"true"},null,-1)),btt={key:1,class:"no-map"},Ctt=ee({__name:"index",props:{workoutData:{},markerCoordinates:{default:()=>({})}},setup(e){const t=e,n=ke(),{workoutData:a,markerCoordinates:s}=me(t),r=de(null),o=U(()=>N()),i=U(()=>n.getters[K.GETTERS.APP_CONFIG]),u=U(()=>T(o)),l=U(()=>t.workoutData&&t.workoutData.gpx?p(t.workoutData.gpx):{}),c=U(()=>t.workoutData&&t.workoutData.chartData.length>0?{latitude:t.workoutData.chartData[0].latitude,longitude:t.workoutData.chartData[0].longitude}:{}),f=U(()=>t.workoutData&&t.workoutData.chartData.length>0?{latitude:t.workoutData.chartData[t.workoutData.chartData.length-1].latitude,longitude:t.workoutData.chartData[t.workoutData.chartData.length-1].longitude}:{}),E=de(!1);function p(A){if(!A||A!=="")try{return{jsonData:Xet(new DOMParser().parseFromString(A,"text/xml"))}}catch{return console.error("Invalid gpx content"),{}}return{}}function T(A){return[(A.value[0][0]+A.value[1][0])/2,(A.value[0][1]+A.value[1][1])/2]}function O(A){var S,v;(S=r.value)!=null&&S.leafletObject&&((v=r.value)==null||v.leafletObject.fitBounds(A))}function N(){return t.workoutData?[[t.workoutData.workout.bounds[0],t.workoutData.workout.bounds[1]],[t.workoutData.workout.bounds[2],t.workoutData.workout.bounds[3]]]:[]}function g(){var A;(A=r.value)==null||A.leafletObject.fitBounds(N())}function R(){E.value=!E.value,E.value||setTimeout(()=>{g()},100)}return(A,S)=>{const v=oe("VFullscreen");return h(),I("div",Itt,[m(a).loading?(h(),I("div",Rtt)):(h(),I("div",Ntt,[m(a).workout.with_gpx?(h(),Y(v,{key:0,modelValue:E.value,"onUpdate:modelValue":S[1]||(S[1]=C=>E.value=C)},{default:le(()=>[d("div",{class:Te(["leaflet-container",{"fullscreen-map":E.value}])},[l.value.jsonData&&u.value&&o.value.length===2?(h(),Y(m(ftt),{key:0,zoom:13,maxZoom:19,center:u.value,bounds:o.value,zoomAnimation:!1,ref_key:"workoutMap",ref:r,onReady:S[0]||(S[0]=C=>O(o.value)),"use-global-leaflet":!1,class:"map","aria-label":A.$t("workouts.WORKOUT_MAP")},{default:le(()=>[F(m(itt)),F(m(E0),{position:"topleft",class:"map-control",tabindex:"0",role:"button","aria-label":A.$t("workouts.RESET_ZOOM"),onClick:g},{default:le(()=>[vtt]),_:1},8,["aria-label"]),F(m(E0),{position:"topleft",class:"map-control",tabindex:"0",role:"button","aria-label":A.$t(`workouts.${E.value?"EXIT":"VIEW"}_FULLSCREEN`),onClick:R},{default:le(()=>[d("i",{class:Te(`fa fa-${E.value?"compress":"arrows-alt"}`),"aria-hidden":"true"},null,2)]),_:1},8,["aria-label"]),F(m(Ott),{url:`${m(Wo)()}workouts/map_tile/{s}/{z}/{x}/{y}.png`,attribution:i.value.map_attribution,bounds:o.value},null,8,["url","attribution","bounds"]),F(m(ltt),{geojson:l.value.jsonData},null,8,["geojson"]),m(s).latitude?(h(),Y(m($g),{key:0,"lat-lng":[m(s).latitude,m(s).longitude]},null,8,["lat-lng"])):M("",!0),F(m(Ett),{name:A.$t("workouts.START_AND_FINISH"),"layer-type":"overlay"},{default:le(()=>[c.value.latitude?(h(),Y(_0,{key:0,markerCoordinates:c.value,isStart:!0},null,8,["markerCoordinates"])):M("",!0),f.value.latitude?(h(),Y(_0,{key:1,markerCoordinates:f.value,isStart:!1},null,8,["markerCoordinates"])):M("",!0)]),_:1},8,["name"])]),_:1},8,["center","bounds","aria-label"])):M("",!0)],2)]),_:1},8,["modelValue"])):(h(),I("div",btt,_(A.$t("workouts.NO_MAP")),1))]))])}}}),Dtt=ie(Ctt,[["__scopeId","data-v-02ef686a"]]),Ptt={class:"workout-detail"},ytt={class:"workout-map-data"},Ltt={key:0,class:"workout-equipments"},$tt=ee({__name:"index",props:{authUser:{},displaySegment:{type:Boolean},sports:{},workoutData:{},markerCoordinates:{default:()=>({})}},setup(e){const t=e,n=yt(),a=ke(),{authUser:s,markerCoordinates:r,workoutData:o}=me(t),i=U(()=>t.workoutData.workout),u=de(n.params.workoutId?+n.params.segmentId:null),l=U(()=>i.value.segments.length>0&&u.value?i.value.segments[+u.value-1]:null),c=de(!1),f=U(()=>t.sports?t.sports.find(A=>A.id===t.workoutData.workout.sport_id):{}),E=U(()=>T(i.value,l.value));function p(A,S,v){const C=S&&v&&v!==1?`/workouts/${A.id}/segment/${v-1}`:!S&&A.previous_workout?`/workouts/${A.previous_workout}`:null,y=S&&v&&vn.params.segmentId,async A=>{u.value=A?+A:null,R()}),Me(()=>n.params.workoutId,async A=>{A&&(c.value=!1,R())}),(A,S)=>{const v=oe("Modal"),C=oe("Card");return h(),I("div",Ptt,[c.value?(h(),Y(v,{key:0,title:A.$t("common.CONFIRMATION"),message:A.$t("workouts.WORKOUT_DELETION_CONFIRMATION"),onConfirmAction:S[0]||(S[0]=y=>g(E.value.workoutId)),onCancelAction:N,onKeydown:Je(N,["esc"])},null,8,["title","message"])):M("",!0),F(C,null,{title:le(()=>[f.value?(h(),Y(MJe,{key:0,sport:f.value,workoutObject:E.value,onDisplayModal:S[1]||(S[1]=y=>O(!0))},null,8,["sport","workoutObject"])):M("",!0)]),content:le(()=>[d("div",ytt,[F(Dtt,{workoutData:m(o),markerCoordinates:m(r)},null,8,["workoutData","markerCoordinates"]),F(zet,{workoutObject:E.value,useImperialUnits:m(s).imperial_units,displayHARecord:m(s).display_ascent},null,8,["workoutObject","useImperialUnits","displayHARecord"])]),E.value.equipments?(h(),I("div",Ltt,[(h(!0),I(pe,null,Pe(E.value.equipments,y=>(h(),Y(YO,{equipment:y,"workout-id":E.value.workoutId,key:y.label},null,8,["equipment","workout-id"]))),128))])):M("",!0)]),_:1})])}}}),ktt=ie($tt,[["__scopeId","data-v-18a9d144"]]),wtt=e=>{const t=document.getElementById(e);if(t){let n=t.querySelector("ul");return n||(n=document.createElement("ul"),t.appendChild(n)),n}throw new Error("No legend container")},Utt={id:"htmlLegend",afterUpdate(e,t,n){var r,o,i,u,l,c;const a=wtt(n.containerID);for(;a.firstChild;)a.firstChild.remove();((i=(o=(r=e.options.plugins)==null?void 0:r.legend)==null?void 0:o.labels)!=null&&i.generateLabels?(c=(l=(u=e.options.plugins)==null?void 0:u.legend)==null?void 0:l.labels)==null?void 0:c.generateLabels(e):[]).forEach(f=>{var g,R,A;if(!((A=(R=(g=e.config.options)==null?void 0:g.scales)==null?void 0:R.yElevation)!=null&&A.display)&&f.datasetIndex===1)return;const E=document.createElement("li");E.onclick=S=>{S.preventDefault(),f.datasetIndex!==void 0&&(e.setDatasetVisibility(f.datasetIndex,!e.isDatasetVisible(f.datasetIndex)),e.update())};const p=document.createElement("input");p&&(p.type="checkbox",p.id=f.text,p.checked=!f.hidden);const T=document.createElement("label");T.htmlFor=p.id;const O=document.createTextNode(f.text);T.appendChild(O);const N=document.createElement("span");N&&(N.style.background=String(f.fillStyle),N.style.borderColor=String(f.strokeStyle)),T.appendChild(N),E.appendChild(p),E.appendChild(T),a.appendChild(E)})}},Mtt=e=>(rt("data-v-727b605c"),e=e(),ot(),e),Ftt={id:"workout-chart"},Wtt={class:"chart-radio"},ztt=["checked"],xtt=["checked"],Btt=Mtt(()=>d("div",{id:"chart-legend"},null,-1)),Gtt={class:"line-chart"},Htt={class:"chart-info"},Vtt={class:"no-data-cleaning"},jtt={key:0,class:"elevation-start"},Ktt=["checked"],qtt=ee({__name:"index",props:{authUser:{},workoutData:{}},emits:["getCoordinates"],setup(e,{emit:t}){const n=e,a=t,s=xo(),{t:r}=kt(),{authUser:o,workoutData:i}=me(n),u=U(()=>s.getters[K.GETTERS.DARK_MODE]),l=U(()=>Il(u.value)),c=de(!0),f=de(o.value.start_elevation_at_zero),E=U(()=>dKe(i.value.chartData,r,o.value.imperial_units,l.value)),p=U(()=>E.value&&E.value.datasets.elevation.data.length>0),T=z("km"),O=z("m"),N=U(()=>({labels:c.value?E.value.distance_labels:E.value.duration_labels,datasets:JSON.parse(JSON.stringify([E.value.datasets.speed,E.value.datasets.elevation]))})),g=U(()=>E.value.coordinates),R=U(()=>({color:l.value?Xa.darkMode.line:Xa.ligthMode.line})),A=U(()=>({color:l.value?Xa.darkMode.text:Xa.ligthMode.text})),S=U(()=>({responsive:!0,maintainAspectRatio:!1,animation:!1,layout:{padding:{top:22}},scales:{x:{grid:{drawOnChartArea:!1,...R.value},border:{...R.value},ticks:{count:10,callback:function($){return c.value?Number($).toFixed(2):y($)},...A.value},type:"linear",bounds:"data",title:{display:!0,text:c.value?r("workouts.DISTANCE")+` (${T})`:r("workouts.DURATION"),...A.value}},ySpeed:{grid:{drawOnChartArea:!1,...R.value},border:{...R.value},position:"left",title:{display:!0,text:r("workouts.SPEED")+` (${T}/h)`,...A.value},ticks:{...A.value}},yElevation:{beginAtZero:f.value,display:p.value,grid:{drawOnChartArea:!1,...R.value},border:{...R.value},position:"right",title:{display:!0,text:r("workouts.ELEVATION")+` (${O})`,...A.value},ticks:{...A.value}}},elements:{point:{pointStyle:"circle",pointRadius:0}},plugins:{datalabels:{display:!1},tooltip:{interaction:{intersect:!1,mode:"index"},callbacks:{label:function($){const W=` ${$.dataset.label}: ${$.formattedValue}`;return $.dataset.yAxisID==="yElevation"?W+` ${O}`:W+` ${T}/h`},title:function($){return $.length>0&&b(g.value[$[0].dataIndex]),$.length===0?"":c.value?`${r("workouts.DISTANCE")}: ${$[0].label} ${T}`:`${r("workouts.DURATION")}: ${y($[0].label.replace(",",""))}`}}},legend:{display:!1},htmlLegend:{containerID:"chart-legend",displayElevation:p.value}}})),v=[Utt];function C(){c.value=!c.value}function y($){return new Date(+$*1e3).toISOString().substr(11,8)}function b($){a("getCoordinates",$)}function k(){b({latitude:null,longitude:null})}function z($){return n.authUser.imperial_units?mn[$].defaultTarget:$}return($,W)=>{const X=oe("Card");return h(),I("div",Ftt,[F(X,null,{title:le(()=>[V(_($.$t("workouts.ANALYSIS")),1)]),content:le(()=>[d("div",Wtt,[d("label",null,[d("input",{type:"radio",name:"distance",checked:c.value,onClick:C},null,8,ztt),V(" "+_($.$t("workouts.DISTANCE")),1)]),d("label",null,[d("input",{type:"radio",name:"duration",checked:!c.value,onClick:C},null,8,xtt),V(" "+_($.$t("workouts.DURATION")),1)])]),Btt,d("div",Gtt,[F(m(Eqe),{data:N.value,options:S.value,plugins:v,onMouseleave:k,"aria-label":$.$t("workouts.WORKOUT_CHART")},null,8,["data","options","aria-label"])]),d("div",Htt,[d("div",Vtt,_($.$t("workouts.NO_DATA_CLEANING")),1),p.value?(h(),I("div",jtt,[d("label",null,[d("input",{type:"checkbox",checked:f.value,onClick:W[0]||(W[0]=re=>f.value=!f.value)},null,8,Ktt),V(" "+_($.$t("workouts.START_ELEVATION_AT_ZERO")),1)])])):M("",!0)])]),_:1})])}}}),Ytt=ie(qtt,[["__scopeId","data-v-727b605c"]]),Xtt={id:"workout-note"},Qtt=["innerHTML"],Ztt=ee({__name:"WorkoutNotes",props:{notes:{default:()=>""}},setup(e){const t=e,{notes:n}=me(t);return(a,s)=>{const r=oe("Card");return h(),I("div",Xtt,[F(r,null,{title:le(()=>[V(_(a.$t("workouts.NOTES")),1)]),content:le(()=>[d("span",{innerHTML:m(n)&&m(n)!==""?m(Po)(m(n)):a.$t("workouts.NO_NOTES")},null,8,Qtt)]),_:1})])}}}),Jtt=ie(Ztt,[["__scopeId","data-v-f3e81eff"]]),ent={id:"workout-segments"},tnt=ee({__name:"WorkoutSegments",props:{segments:{},useImperialUnits:{type:Boolean}},setup(e){const t=e,{segments:n,useImperialUnits:a}=me(t);return(s,r)=>{const o=oe("router-link"),i=oe("Distance"),u=oe("Card");return h(),I("div",ent,[F(u,null,{title:le(()=>[V(_(s.$t("workouts.SEGMENT",2)),1)]),content:le(()=>[d("ul",null,[(h(!0),I(pe,null,Pe(m(n),(l,c)=>(h(),I("li",{key:l.segment_id},[F(o,{to:{name:"WorkoutSegment",params:{workoutId:l.workout_id,segmentId:c+1}}},{default:le(()=>[V(_(s.$t("workouts.SEGMENT",1))+" "+_(c+1),1)]),_:2},1032,["to"]),V(" ("+_(s.$t("workouts.DISTANCE"))+": ",1),F(i,{distance:l.distance,unitFrom:"km",useImperialUnits:m(a)},null,8,["distance","useImperialUnits"]),V(", "+_(s.$t("workouts.DURATION"))+": "+_(l.duration)+") ",1)]))),128))])]),_:1})])}}}),nnt=ie(tnt,[["__scopeId","data-v-15725c61"]]),ant=e=>(rt("data-v-eac6aa4b"),e=e(),ot(),e),snt={id:"workout",class:"view"},rnt={class:"container"},ont={key:0,class:"workout-container"},int={key:0},unt=ant(()=>d("div",{id:"bottom"},null,-1)),lnt={key:1},cnt=ee({__name:"Workout",props:{displaySegment:{type:Boolean}},setup(e){const t=e,n=yt(),a=ke(),{displaySegment:s}=me(t),r=U(()=>a.getters[Re.GETTERS.WORKOUT_DATA]),o=U(()=>a.getters[Q.GETTERS.AUTH_USER_PROFILE]),i=U(()=>a.getters[Dt.GETTERS.SPORTS]),u=de({latitude:null,longitude:null});pt(()=>{const c={workoutId:n.params.workoutId};t.displaySegment&&(c.segmentId=n.params.segmentId),a.dispatch(Re.ACTIONS.GET_WORKOUT_DATA,c)}),mt(()=>{a.commit(Re.MUTATIONS.EMPTY_WORKOUT)});function l(c){u.value={latitude:c.latitude,longitude:c.longitude}}return Me(()=>n.params.workoutId,async c=>{c&&a.dispatch(Re.ACTIONS.GET_WORKOUT_DATA,{workoutId:c})}),Me(()=>n.params.segmentId,async c=>{if(n.params.workoutId){const f={workoutId:n.params.workoutId};c&&(f.segmentId=c),a.dispatch(Re.ACTIONS.GET_WORKOUT_DATA,f)}}),(c,f)=>(h(),I("div",snt,[d("div",rnt,[i.value.length>0?(h(),I("div",ont,[r.value.workout.id?(h(),I("div",int,[F(ktt,{workoutData:r.value,sports:i.value,authUser:o.value,markerCoordinates:u.value,displaySegment:m(s)},null,8,["workoutData","sports","authUser","markerCoordinates","displaySegment"]),r.value.workout.with_gpx&&r.value.chartData.length>0?(h(),Y(Ytt,{key:0,workoutData:r.value,authUser:o.value,displaySegment:m(s),onGetCoordinates:l},null,8,["workoutData","authUser","displaySegment"])):M("",!0),!m(s)&&r.value.workout.segments.length>1?(h(),Y(nnt,{key:1,segments:r.value.workout.segments,useImperialUnits:o.value.imperial_units},null,8,["segments","useImperialUnits"])):M("",!0),m(s)?M("",!0):(h(),Y(Jtt,{key:2,notes:r.value.workout.notes},null,8,["notes"])),unt])):(h(),I("div",lnt,[r.value.loading?M("",!0):(h(),Y(Kf,{key:0,target:"WORKOUT"}))]))])):M("",!0)])]))}}),T0=ie(cnt,[["__scopeId","data-v-eac6aa4b"]]),ap=e=>(rt("data-v-2ab387eb"),e=e(),ot(),e),dnt={class:"workouts-filters"},Ent={class:"box"},fnt={class:"form-all-items"},pnt={class:"form-items-group"},mnt={class:"form-item"},_nt={for:"from"},Tnt=["value"],hnt={class:"form-item"},Ant={for:"to"},Snt=["value"],Ont={class:"form-item"},gnt={for:"sport_id"},Int=["value"],Rnt=ap(()=>d("option",{value:""},null,-1)),Nnt=["value"],vnt={class:"form-item form-item-equipment"},bnt=["value"],Cnt=ap(()=>d("option",{value:""},null,-1)),Dnt={key:0,value:"",disabled:"",selected:""},Pnt={value:"none"},ynt=ap(()=>d("option",{disabled:""},"---",-1)),Lnt=["label"],$nt=["value"],knt={class:"form-items-group"},wnt={class:"form-item form-item-text"},Unt={for:"title"},Mnt={class:"form-inputs-group"},Fnt=["value"],Wnt={class:"form-item form-item-text"},znt={for:"notes"},xnt={class:"form-inputs-group"},Bnt=["value"],Gnt={class:"form-items-group"},Hnt={class:"form-item"},Vnt={class:"form-inputs-group"},jnt=["value"],Knt=["value"],qnt={class:"form-item"},Ynt={class:"form-inputs-group"},Xnt=["value"],Qnt=["value"],Znt={class:"form-items-group"},Jnt={class:"form-item"},eat={class:"form-inputs-group"},tat=["value"],nat=["value"],aat={class:"form-item"},sat={class:"form-inputs-group"},rat=["value"],oat=["value"],iat={class:"form-button"},uat=ee({__name:"WorkoutsFilters",props:{authUser:{},sports:{}},emits:["filter"],setup(e,{emit:t}){const n=e,a=t,{t:s}=kt(),r=xo(),o=yt(),i=ca(),{authUser:u}=me(n),l=u.value.imperial_units?mn.km.defaultTarget:"km",c=U(()=>Un(n.sports,s)),f=U(()=>N(r.getters[Ue.GETTERS.EQUIPMENTS]));let E=Object.assign({},o.query);St(()=>{const g=document.getElementById("from");g&&g.focus()});function p(g){const R=g.target.name,A=g.target.value;A===""?delete E[R]:E[R]=A}function T(){a("filter"),"page"in E&&(E.page="1"),i.push({path:"/workouts",query:E})}function O(){a("filter"),i.push({path:"/workouts",query:{}})}function N(g){const R={};return g.filter(A=>A.workouts_count>0).map(A=>{const S=s(`equipment_types.${A.equipment_type.label}.LABEL`);S in R?R[S].push(A):R[S]=[A]}),R}return Me(()=>o.query,g=>{E=Object.assign({},g)}),(g,R)=>(h(),I("div",dnt,[d("div",Ent,[d("form",{onSubmit:R[0]||(R[0]=be(()=>{},["prevent"])),class:"form"},[d("div",fnt,[d("div",pnt,[d("div",mnt,[d("label",_nt,_(g.$t("workouts.FROM"))+": ",1),d("input",{id:"from",name:"from",type:"date",value:g.$route.query.from,onChange:p},null,40,Tnt)]),d("div",hnt,[d("label",Ant,_(g.$t("workouts.TO"))+": ",1),d("input",{id:"to",name:"to",type:"date",value:g.$route.query.to,onChange:p},null,40,Snt)]),d("div",Ont,[d("label",gnt,_(g.$t("workouts.SPORT",1))+":",1),d("select",{id:"sport_id",name:"sport_id",value:g.$route.query.sport_id,onChange:p,onKeyup:Je(T,["enter"])},[Rnt,(h(!0),I(pe,null,Pe(c.value.filter(A=>m(u).sports_list.includes(A.id)),A=>(h(),I("option",{value:A.id,key:A.id},_(A.translatedLabel),9,Nnt))),128))],40,Int)]),d("div",vnt,[d("label",null,_(g.$t("equipments.EQUIPMENT",1))+":",1),d("select",{name:"equipment_id",value:g.$route.query.equipment_id,onChange:p,onKeyup:Je(T,["enter"])},[Cnt,Object.keys(f.value).length==0?(h(),I("option",Dnt,_(g.$t("equipments.NO_EQUIPMENTS")),1)):M("",!0),Object.keys(f.value).length>0?(h(),I(pe,{key:1},[d("option",Pnt,_(g.$t("equipments.WITHOUT_EQUIPMENTS")),1),ynt],64)):M("",!0),(h(!0),I(pe,null,Pe(Object.keys(f.value).sort(),A=>(h(),I("optgroup",{label:A,key:A},[(h(!0),I(pe,null,Pe(f.value[A].sort(m(wf)),S=>(h(),I("option",{value:S.id,key:S.id},_(S.label),9,$nt))),128))],8,Lnt))),128))],40,bnt)])]),d("div",knt,[d("div",wnt,[d("label",Unt,_(g.$t("workouts.TITLE",1))+":",1),d("div",Mnt,[d("input",{id:"title",class:"text",name:"title",value:g.$route.query.title,onChange:p,placeholder:"",type:"text",onKeyup:Je(T,["enter"])},null,40,Fnt)])]),d("div",Wnt,[d("label",znt,_(g.$t("workouts.NOTES"))+":",1),d("div",xnt,[d("input",{id:"notes",class:"text",name:"notes",value:g.$route.query.notes,onChange:p,placeholder:"",type:"text",onKeyup:Je(T,["enter"])},null,40,Bnt)])])]),d("div",Gnt,[d("div",Hnt,[d("label",null,_(g.$t("workouts.DISTANCE"))+" ("+_(m(l))+"): ",1),d("div",Vnt,[d("input",{name:"distance_from",type:"number",min:"0",step:"0.1",value:g.$route.query.distance_from,onChange:p,onKeyup:Je(T,["enter"])},null,40,jnt),d("span",null,_(g.$t("workouts.TO")),1),d("input",{name:"distance_to",type:"number",min:"0",step:"0.1",value:g.$route.query.distance_to,onChange:p,onKeyup:Je(T,["enter"])},null,40,Knt)])]),d("div",qnt,[d("label",null,_(g.$t("workouts.DURATION"))+": ",1),d("div",Ynt,[d("input",{name:"duration_from",value:g.$route.query.duration_from,onChange:p,pattern:"^([0-9]*[0-9]):([0-5][0-9])$",placeholder:"hh:mm",type:"text",onKeyup:Je(T,["enter"])},null,40,Xnt),d("span",null,_(g.$t("workouts.TO")),1),d("input",{name:"duration_to",value:g.$route.query.duration_to,onChange:p,pattern:"^([0-9]*[0-9]):([0-5][0-9])$",placeholder:"hh:mm",type:"text",onKeyup:Je(T,["enter"])},null,40,Qnt)])])]),d("div",Znt,[d("div",Jnt,[d("label",null,_(g.$t("workouts.AVE_SPEED"))+" ("+_(m(l))+"/h): ",1),d("div",eat,[d("input",{min:"0",name:"ave_speed_from",value:g.$route.query.ave_speed_from,onChange:p,step:"0.1",type:"number",onKeyup:Je(T,["enter"])},null,40,tat),d("span",null,_(g.$t("workouts.TO")),1),d("input",{min:"0",name:"ave_speed_to",value:g.$route.query.ave_speed_to,onChange:p,step:"0.1",type:"number",onKeyup:Je(T,["enter"])},null,40,nat)])]),d("div",aat,[d("label",null,_(g.$t("workouts.MAX_SPEED"))+" ("+_(m(l))+"/h): ",1),d("div",sat,[d("input",{min:"0",name:"max_speed_from",value:g.$route.query.max_speed_from,onChange:p,step:"0.1",type:"number",onKeyup:Je(T,["enter"])},null,40,rat),d("span",null,_(g.$t("workouts.TO")),1),d("input",{min:"0",name:"max_speed_to",value:g.$route.query.max_speed_to,onChange:p,step:"0.1",type:"number",onKeyup:Je(T,["enter"])},null,40,oat)])])])]),d("div",iat,[d("button",{type:"submit",class:"confirm",onClick:T},_(g.$t("buttons.FILTER")),1),d("button",{class:"confirm",onClick:O},_(g.$t("buttons.CLEAR_FILTER")),1)])],32)])]))}}),lat=ie(uat,[["__scopeId","data-v-2ab387eb"]]),wg=e=>(rt("data-v-f1b11684"),e=e(),ot(),e),cat={class:"workouts-list"},dat={class:"total"},Eat={class:"total-label"},fat={key:0},pat={key:0,class:"workouts-table responsive-table"},mat=wg(()=>d("th",{class:"sport-col"},null,-1)),_at={class:"sport-col"},Tat={class:"cell-heading"},hat=["onMouseover"],Aat={class:"cell-heading"},Sat={key:0,class:"fa fa-map-o","aria-hidden":"true"},Oat={class:"title"},gat={class:"workout-date"},Iat={class:"cell-heading"},Rat={class:"text-right"},Nat={class:"cell-heading"},vat={class:"text-right"},bat={class:"cell-heading"},Cat={class:"text-right"},Dat={class:"cell-heading"},Pat={class:"text-right"},yat={class:"cell-heading"},Lat={class:"text-right"},$at={class:"cell-heading"},kat={class:"text-right"},wat={class:"cell-heading"},Uat=wg(()=>d("div",{id:"bottom"},null,-1)),Mat=ee({__name:"WorkoutsList",props:{user:{},sports:{}},setup(e){const t=e,n=ke(),a=yt(),s=ca(),{user:r,sports:o}=me(t),i=["ave_speed","distance","duration","workout_date"],u=U(()=>n.getters[Re.GETTERS.USER_WORKOUTS]),l=U(()=>n.getters[Re.GETTERS.WORKOUTS_PAGINATION]),c=U(()=>n.getters[K.GETTERS.LANGUAGE]);let f=O(a.query);const E=de(null);pt(()=>{p(f),n.dispatch(Ue.ACTIONS.GET_EQUIPMENTS)});function p(R){n.dispatch(Re.ACTIONS.GET_USER_WORKOUTS,r.value.imperial_units?N(R):R)}function T(R,A){const S=Object.assign({},a.query);S[R]=A,R==="per_page"&&(S.page="1"),f=O(S),s.push({path:"/workouts",query:f})}function O(R){const A=iE(R,i,Lo.order_by,{defaultSort:Lo.order});return Object.keys(R).filter(S=>GMe.includes(S)).map(S=>{typeof R[S]=="string"&&(A[S]=R[S])}),A}function N(R){const A={...R};return Object.entries(A).map(S=>{S[0].match("speed|distance")&&S[1]&&(A[S[0]]=xt(+S[1],"mi","km"))}),A}function g(R){E.value=R}return Me(()=>a.query,async R=>{f=O(R),p(f)}),(R,A)=>{const S=oe("SportImage"),v=oe("router-link"),C=oe("Distance");return h(),I("div",cat,[d("div",{class:Te(["box",{"empty-table":u.value.length===0}])},[d("div",dat,[d("span",Eat,_(R.$t("common.TOTAL").toLowerCase())+": ",1),l.value.total?(h(),I("span",fat,_(l.value.total)+" "+_(R.$t("workouts.WORKOUT",l.value.total)),1)):M("",!0)]),F(SO,{sort:m(xf),order_by:i,query:m(f),message:"workouts",onUpdateSelect:T},null,8,["sort","query"]),u.value.length>0?(h(),I("div",pat,[F(Ju,{class:"top-pagination",pagination:l.value,path:"/workouts",query:m(f)},null,8,["pagination","query"]),d("table",null,[d("thead",{class:Te({smaller:c.value==="de"})},[d("tr",null,[mat,d("th",null,_(He(R.$t("workouts.WORKOUT",1))),1),d("th",null,_(He(R.$t("workouts.DATE"))),1),d("th",null,_(He(R.$t("workouts.DISTANCE"))),1),d("th",null,_(He(R.$t("workouts.DURATION"))),1),d("th",null,_(He(R.$t("workouts.AVE_SPEED"))),1),d("th",null,_(He(R.$t("workouts.MAX_SPEED"))),1),d("th",null,_(He(R.$t("workouts.ASCENT"))),1),d("th",null,_(He(R.$t("workouts.DESCENT"))),1)])],2),d("tbody",null,[(h(!0),I(pe,null,Pe(u.value,y=>(h(),I("tr",{key:y.id},[d("td",_at,[d("span",Tat,_(R.$t("workouts.SPORT",1)),1),m(o).length>0?(h(),Y(S,{key:0,title:m(o).filter(b=>b.id===y.sport_id)[0].translatedLabel,"sport-label":m(Ff)(y,m(o)),color:m(Wf)(y,m(o))},null,8,["title","sport-label","color"])):M("",!0)]),d("td",{class:"workout-title",onMouseover:b=>g(y.id),onMouseleave:A[0]||(A[0]=b=>g(null))},[d("span",Aat,_(He(R.$t("workouts.WORKOUT",1))),1),F(v,{class:"nav-item",to:{name:"Workout",params:{workoutId:y.id}}},{default:le(()=>[y.with_gpx?(h(),I("i",Sat)):M("",!0),d("span",Oat,_(y.title),1)]),_:2},1032,["to"]),y.with_gpx&&E.value===y.id?(h(),Y(ZO,{key:0,workout:y,"display-hover":!0},null,8,["workout"])):M("",!0)],40,hat),d("td",gat,[d("span",Iat,_(R.$t("workouts.DATE")),1),d("time",null,_(m(Fn)(y.workout_date,m(r).timezone,m(r).date_format)),1)]),d("td",Rat,[d("span",Nat,_(R.$t("workouts.DISTANCE")),1),y.distance!==null?(h(),Y(C,{key:0,distance:y.distance,unitFrom:"km",useImperialUnits:m(r).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),d("td",vat,[d("span",bat,_(R.$t("workouts.DURATION")),1),V(" "+_(y.moving),1)]),d("td",Cat,[d("span",Dat,_(R.$t("workouts.AVE_SPEED")),1),y.ave_speed!==null?(h(),Y(C,{key:0,distance:y.ave_speed,unitFrom:"km",speed:!0,useImperialUnits:m(r).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),d("td",Pat,[d("span",yat,_(R.$t("workouts.MAX_SPEED")),1),y.max_speed!==null?(h(),Y(C,{key:0,distance:y.max_speed,unitFrom:"km",speed:!0,useImperialUnits:m(r).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),d("td",Lat,[d("span",$at,_(R.$t("workouts.ASCENT")),1),y.ascent!==null?(h(),Y(C,{key:0,distance:y.ascent,unitFrom:"m",useImperialUnits:m(r).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),d("td",kat,[d("span",wat,_(R.$t("workouts.DESCENT")),1),y.descent!==null?(h(),Y(C,{key:0,distance:y.descent,unitFrom:"m",useImperialUnits:m(r).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)])]))),128))])]),F(Ju,{pagination:l.value,path:"/workouts",query:m(f)},null,8,["pagination","query"])])):M("",!0)],2),u.value.length===0?(h(),Y(Yf,{key:0})):M("",!0),Uat])}}}),Fat=ie(Mat,[["__scopeId","data-v-f1b11684"]]),Wat={key:0,id:"workouts",class:"view"},zat={class:"container workouts-container"},xat={class:"display-filters"},Bat={class:"list-container"},Gat=ee({__name:"WorkoutsView",setup(e){const{t}=kt(),n=ke(),a=U(()=>n.getters[Q.GETTERS.AUTH_USER_PROFILE]),s=U(()=>n.getters[Dt.GETTERS.SPORTS]),r=U(()=>Un(s.value,t)),o=de(!0);function i(){o.value=!o.value}return(u,l)=>a.value.username?(h(),I("div",Wat,[d("div",zat,[d("div",{class:Te(["filters-container",{hidden:o.value}])},[F(lat,{sports:r.value,authUser:a.value,onFilter:i},null,8,["sports","authUser"])],2),d("div",xat,[d("div",{onClick:i},[d("i",{class:Te(`fa fa-caret-${o.value?"down":"up"}`),"aria-hidden":"true"},null,2),d("span",null,_(u.$t(`workouts.${o.value?"DISPLAY":"HIDE"}_FILTERS`)),1)])]),d("div",Bat,[F(Fat,{user:a.value,sports:r.value},null,8,["user","sports"])])])])):M("",!0)}}),Hat=ie(Gat,[["__scopeId","data-v-3fa59b88"]]),{t:h0}=$s.global,A0=e=>{const t=/(\/profile)(\/edit)*(\/*)/,n=e.replace(t,"").toUpperCase();return n===""?"PROFILE":n.split("/")[0].toUpperCase()},Vat=[{path:"/",name:"Dashboard",component:$Ye,meta:{title:"dashboard.DASHBOARD"}},{path:"/login",name:"Login",component:i0,props:{action:"login"},meta:{title:"user.LOGIN",withoutAuth:!0}},{path:"/register",name:"Register",component:i0,props:{action:"register"},meta:{title:"user.REGISTER",withoutAuth:!0}},{path:"/account-confirmation",name:"AccountConfirmation",component:DQe,meta:{title:"user.ACCOUNT_CONFIRMATION",withoutAuth:!0}},{path:"/account-confirmation/resend",name:"AccountConfirmationResend",component:o0,props:{action:"account-confirmation-resend"},meta:{title:"buttons.ACCOUNT-CONFIRMATION-RESEND",withoutAuth:!0}},{path:"/account-confirmation/email-sent",name:"AccountConfirmationEmailSend",component:o0,props:{action:"email-sent"},meta:{title:"buttons.ACCOUNT-CONFIRMATION-RESEND",withoutAuth:!0}},{path:"/password-reset/sent",name:"PasswordEmailSent",component:Di,props:{action:"request-sent"},meta:{title:"user.PASSWORD_RESET",withoutAuth:!0}},{path:"/password-reset/request",name:"PasswordResetRequest",component:Di,props:{action:"reset-request"},meta:{title:"user.PASSWORD_RESET",withoutAuth:!0}},{path:"/password-reset/password-updated",name:"PasswordUpdated",component:Di,props:{action:"password-updated"},meta:{title:"user.PASSWORD_RESET",withoutAuth:!0}},{path:"/password-reset",name:"PasswordReset",component:Di,props:{action:"reset"},meta:{title:"user.PASSWORD_RESET",withoutAuth:!0}},{path:"/email-update",name:"EmailUpdate",component:$Qe,meta:{title:"user.EMAIL_UPDATE",withoutChecks:!0}},{path:"/profile",name:"Profile",component:oZe,children:[{path:"",name:"UserProfile",component:_9e,props:e=>({tab:A0(e.path)}),children:[{path:"",name:"UserInfos",component:PO,meta:{title:"user.PROFILE.TABS.PROFILE"}},{path:"preferences",name:"UserPreferences",component:F9e,meta:{title:"user.PROFILE.TABS.PREFERENCES"}},{path:"sports",name:"UserSports",component:XT,props:{isEdition:!1},meta:{title:"user.PROFILE.TABS.SPORTS"},children:[{path:"",name:"UserSportPreferences",component:QT,meta:{title:"user.PROFILE.TABS.SPORTS"}},{path:":id",name:"UserSport",component:aVe,meta:{title:"user.PROFILE.TABS.SPORTS"}}]},{path:"apps",name:"UserApps",component:qBe,children:[{path:"",name:"UserAppsList",component:pGe,meta:{title:"user.PROFILE.TABS.APPS"}},{path:":id",name:"UserApp",component:VT,meta:{title:"user.PROFILE.TABS.APPS"}},{path:":id/created",name:"CreatedUserApp",component:VT,props:{afterCreation:!0},meta:{title:"user.PROFILE.TABS.APPS"}},{path:"new",name:"AddUserApp",component:wBe,meta:{title:"user.PROFILE.TABS.APPS"}},{path:"authorize",name:"AuthorizeUserApp",component:jBe,meta:{title:"user.PROFILE.TABS.APPS"}}]},{path:"equipments",name:"UserEquipments",component:qT,props:{isEdition:!1},children:[{path:"",name:"UserEquipmentsList",component:YT,meta:{title:"user.PROFILE.TABS.EQUIPMENTS"}},{path:"new",name:"AddEquipment",component:KT,meta:{title:"user.PROFILE.TABS.EQUIPMENTS"}},{path:":id",name:"Equipment",component:OHe,meta:{title:"user.PROFILE.TABS.EQUIPMENTS"}}]}]},{path:"edit",name:"UserProfileEdition",component:z9e,props:e=>({tab:A0(e.path)}),children:[{path:"",name:"UserInfosEdition",component:Hze,meta:{title:"user.PROFILE.EDIT"}},{path:"account",name:"UserAccountEdition",component:Cze,meta:{title:"user.PROFILE.ACCOUNT_EDITION"}},{path:"picture",name:"UserPictureEdition",component:exe,meta:{title:"user.PROFILE.PICTURE_EDITION"}},{path:"preferences",name:"UserPreferencesEdition",component:Zxe,meta:{title:"user.PROFILE.EDIT_PREFERENCES"}},{path:"sports",name:"UserSportsEdition",component:XT,props:{isEdition:!0},meta:{title:"user.PROFILE.EDIT_SPORTS_PREFERENCES"},children:[{path:"",name:"UserSportPreferencesEdition",component:QT,meta:{title:"user.PROFILE.TABS.SPORTS"}},{path:":id",name:"UserSportEdition",component:vVe,meta:{title:"user.PROFILE.TABS.SPORTS"}}]},{path:"equipments",name:"UserEquipmentsEdition",component:qT,props:{isEdition:!0},children:[{path:"",name:"UserEquipmentsListEdition",component:YT,meta:{title:"user.PROFILE.TABS.EQUIPMENTS"}},{path:":id",name:"EquipmentEdition",component:KT,meta:{title:"user.PROFILE.TABS.EQUIPMENTS"}}]},{path:"privacy-policy",name:"UserPrivacyPolicy",component:EBe,meta:{title:"user.PROFILE.PRIVACY-POLICY_EDITION"}}]}]},{path:"/statistics",name:"Statistics",component:HXe,meta:{title:"statistics.STATISTICS"}},{path:"/users/:username",name:"User",component:u0,meta:{title:"administration.USER"}},{path:"/workouts",name:"Workouts",component:Hat,meta:{title:"workouts.WORKOUT",count:0}},{path:"/workouts/:workoutId",name:"Workout",component:T0,props:{displaySegment:!1},meta:{title:"workouts.WORKOUT"}},{path:"/workouts/:workoutId/edit",name:"EditWorkout",component:cJe,meta:{title:"workouts.EDIT_WORKOUT"}},{path:"/workouts/:workoutId/segment/:segmentId",name:"WorkoutSegment",component:T0,props:{displaySegment:!0},meta:{title:"workouts.SEGMENT",count:0}},{path:"/workouts/add",name:"AddWorkout",component:iJe,meta:{title:"workouts.ADD_WORKOUT"}},{path:"/admin",name:"Administration",component:Wje,children:[{path:"",name:"AdministrationMenu",component:dMe,meta:{title:"admin.ADMINISTRATION"}},{path:"application",name:"ApplicationAdministration",component:OT,meta:{title:"admin.APP_CONFIG.TITLE"}},{path:"application/edit",name:"ApplicationAdministrationEdition",component:OT,props:{edition:!0},meta:{title:"admin.APPLICATION"}},{path:"equipment-types",name:"EquipmentTypeAdministration",component:q5e,meta:{title:"admin.EQUIPMENT_TYPES.TITLE"}},{path:"sports",name:"SportsAdministration",component:$Me,meta:{title:"admin.SPORTS.TITLE"}},{path:"users/:username",name:"UserFromAdmin",component:u0,props:{fromAdmin:!0},meta:{title:"admin.USER",count:1}},{path:"users",name:"UsersAdministration",component:Q7e,meta:{title:"admin.USERS.TITLE"}}]},{path:"/about",name:"About",component:Dje,meta:{title:"common.ABOUT",withoutChecks:!0}},{path:"/privacy-policy",name:"PrivacyPolicy",component:WYe,meta:{title:"privacy_policy.TITLE",withoutChecks:!0}},{path:"/:pathMatch(.*)*",name:"not-found",component:wYe,meta:{title:"error.NOT_FOUND.PAGE"}}],Ug=RLe({history:Zye("/"),routes:Vat});Ug.beforeEach((e,t,n)=>{if("title"in e.meta){const a=typeof e.meta.title=="string"?e.meta.title:"",s=a?typeof e.meta.count=="number"?h0(a,+e.meta.count):h0(a):"";window.document.title=`FitTrackee${a?` - ${He(s)}`:""}`}ro.dispatch(Q.ACTIONS.CHECK_AUTH_USER).then(()=>{if(e.meta.withoutChecks)return n();if(ro.getters[Q.GETTERS.IS_AUTHENTICATED]&&e.meta.withoutAuth)return n("/");if(!ro.getters[Q.GETTERS.IS_AUTHENTICATED]&&!e.meta.withoutAuth){const a=e.path==="/"?{path:"/login"}:{path:"/login",query:{from:e.fullPath}};n(a)}else n()}).catch(a=>{console.error(a),n()})});const Et=Ug;TE.register(Fg,Wg,zg,xg,Bg,Gg,Hg,S0,Vg,O0,jg,Kg);const Mg=PN(aye).provide("sportColors",Mf).use($s).use(ro).use(Et).use(_b,{name:"VFullscreen"}).directive("click-outside",j6e);V6e.forEach(e=>{Mg.component(e.name,e.target)});Mg.mount("#app"); + C512.001,172.24,506.387,166.626,499.487,166.626z">`,7),MZe=[wZe];function FZe(e,t,n,a,s,r){return h(),I("svg",UZe,MZe)}const WZe=ie(kZe,[["render",FZe]]),zZe={id:"password-action-done",class:"center-card with-margin"},xZe={class:"password-message"},BZe={key:0},GZe=te({__name:"PasswordActionDone",props:{action:{}},setup(e){const t=e,{action:n}=me(t);return(a,s)=>{const r=oe("router-link"),o=oe("i18n-t");return h(),I("div",zZe,[m(n)==="request-sent"?(h(),Y(pg,{key:0})):(h(),Y(WZe,{key:1})),d("div",xZe,[m(n)==="request-sent"?(h(),I("span",BZe,_(a.$t("user.PASSWORD_SENT_EMAIL_TEXT")),1)):(h(),Y(o,{key:1,keypath:"user.PASSWORD_UPDATED"},{default:le(()=>[F(r,{to:"/login"},{default:le(()=>[V(_(a.$t("common.HERE")),1)]),_:1})]),_:1}))])])}}}),HZe=ie(GZe,[["__scopeId","data-v-ee1004fc"]]),VZe={id:"password-reset-request",class:"center-card with-margin"},jZe=te({__name:"PasswordResetForm",props:{action:{},token:{default:""}},setup(e){const t=e,{action:n,token:a}=me(t);return(s,r)=>{const o=oe("Card");return h(),I("div",VZe,[F(o,null,{title:le(()=>[V(_(s.$t("user.RESET_PASSWORD")),1)]),content:le(()=>[F(Qf,{action:m(n),token:m(a)},null,8,["action","token"])]),_:1})])}}}),KZe=ie(jZe,[["__scopeId","data-v-97f01ba1"]]),qZe={id:"password-reset",class:"view"},YZe={class:"container"},XZe=te({__name:"PasswordResetView",props:{action:{}},setup(e){const t=e,n=yt(),a=ca(),{action:s}=me(t),r=w(()=>n.query.token);return ft(()=>{t.action==="reset"&&!r.value&&a.push("/")}),(o,i)=>(h(),I("div",qZe,[d("div",YZe,[m(s).startsWith("reset")?(h(),Y(KZe,{key:0,action:m(s),token:r.value},null,8,["action","token"])):(h(),Y(HZe,{key:1,action:m(s)},null,8,["action"]))])]))}}),Li=ie(XZe,[["__scopeId","data-v-5cbe9029"]]),QZe=e=>(rt("data-v-af92ad3a"),e=e(),ot(),e),ZZe={key:0,id:"profile",class:"view"},JZe=QZe(()=>d("div",{id:"bottom"},null,-1)),eJe=te({__name:"ProfileView",setup(e){const t=ke(),n=w(()=>t.getters[Q.GETTERS.AUTH_USER_PROFILE]);return(a,s)=>{const r=oe("router-view");return n.value.username?(h(),I("div",ZZe,[F(r,{user:n.value},null,8,["user"]),JZe])):M("",!0)}}}),tJe=ie(eJe,[["__scopeId","data-v-af92ad3a"]]),nJe={key:0,id:"user",class:"view"},aJe={class:"box"},sJe=te({__name:"UserView",props:{fromAdmin:{type:Boolean}},setup(e){const t=e,{fromAdmin:n}=me(t),a=yt(),s=ke(),r=w(()=>s.getters[xe.GETTERS.USER]);return ft(()=>{a.params.username&&typeof a.params.username=="string"&&s.dispatch(xe.ACTIONS.GET_USER,a.params.username)}),Mo(()=>{s.dispatch(xe.ACTIONS.EMPTY_USER)}),(o,i)=>r.value.username?(h(),I("div",nJe,[F(yO,{user:r.value},null,8,["user"]),d("div",aJe,[F($O,{user:r.value,"from-admin":m(n)},null,8,["user","from-admin"])])])):M("",!0)}}),i0=ie(sJe,[["__scopeId","data-v-1b7a0b4f"]]),rJe={id:"workout-form"},oJe={class:"form-items"},iJe={key:0,class:"form-item-radio"},uJe=["checked","disabled"],lJe={for:"withGpx"},cJe=["checked","disabled"],dJe={for:"withoutGpx"},EJe={class:"form-item"},fJe={for:"sport"},pJe=["disabled"],mJe=["value"],_Je={key:1,class:"form-item"},TJe={for:"gpxFile"},hJe=["disabled"],SJe={class:"files-help info-box"},AJe={key:2,class:"form-item"},OJe={for:"title"},gJe=["required","disabled"],IJe={key:3},RJe={class:"workout-date-duration"},NJe={class:"form-item"},vJe={class:"workout-date-time"},bJe=["disabled"],CJe=["disabled"],DJe={class:"form-item"},PJe={for:"workout-duration-hour",class:"visually-hidden"},yJe=["disabled"],LJe={for:"workout-duration-minutes",class:"visually-hidden"},$Je=["disabled"],kJe={for:"workout-duration-seconds",class:"visually-hidden"},UJe=["disabled"],wJe={class:"workout-data"},MJe={class:"form-item"},FJe=["disabled"],WJe={class:"form-item"},zJe=["disabled"],xJe={class:"form-item"},BJe=["disabled"],GJe={key:4,class:"form-item"},HJe={for:"workout-equipment"},VJe=["disabled"],jJe={value:""},KJe=["value"],qJe={class:"form-item"},YJe={for:"notes"},XJe={key:1},QJe={key:2,class:"form-buttons"},ZJe=["disabled"],JJe=te({__name:"WorkoutEdition",props:{authUser:{},sports:{},isCreation:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},workout:{default:()=>({})}},setup(e){const t=e,{t:n}=kt(),a=ke(),s=ca(),{authUser:r,workout:o,isCreation:i,loading:u}=me(t),l=w(()=>Mn(t.sports,n,"is_active_for_user",o.value.id?[o.value.sport_id]:[])),c=w(()=>a.getters[K.GETTERS.APP_CONFIG]),f=c.value.max_single_file_size?_u(c.value.max_single_file_size):"",E=c.value.gpx_limit_import,p=c.value.max_zip_file_size?_u(c.value.max_zip_file_size):"",T=w(()=>a.getters[K.GETTERS.ERROR_MESSAGES]),O=Ht({sport_id:"",title:"",notes:"",workoutDate:"",workoutTime:"",workoutDurationHour:"",workoutDurationMinutes:"",workoutDurationSeconds:"",workoutDistance:"",workoutAscent:"",workoutDescent:"",equipment_id:""}),R=de(o.value.id?o.value.with_gpx:i.value);let g=null;const N=de(!1),S=de([]),A=w(()=>a.getters[we.GETTERS.EQUIPMENTS]),v=w(()=>O.sport_id?l.value.filter(B=>B.id===+O.sport_id)[0]:null),D=w(()=>A.value?OO(A.value,n,i.value?"is_active":"withIncludedIds",v.value,i.value?[]:o.value.equipments.map(B=>B.id)):[]);St(()=>{let B;t.workout.id?(z(t.workout),B=document.getElementById("sport")):B=document.getElementById("withGpx"),B&&B.focus()});function y(B){O.notes=B}function b(){R.value=!R.value,N.value=!1}function k(B){B.target.files&&(g=B.target.files[0])}function z(B){if(O.sport_id=`${B.sport_id}`,O.title=B.title,O.notes=B.notes,O.equipment_id=B.equipments.length>0?`${B.equipments[0].id}`:"",!B.with_gpx){const Ne=DO(Kl(B.workout_date,t.authUser.timezone),"yyyy-MM-dd"),Ke=B.duration.split(":");O.workoutDistance=`${r.value.imperial_units?xt(B.distance,"km","mi",3):parseFloat(B.distance.toFixed(3))}`,O.workoutDate=Ne.workout_date,O.workoutTime=Ne.workout_time,O.workoutDurationHour=Ke[0],O.workoutDurationMinutes=Ke[1],O.workoutDurationSeconds=Ke[2],O.workoutAscent=B.ascent===null?"":`${r.value.imperial_units?xt(B.ascent,"m","ft",2):parseFloat(B.ascent.toFixed(2))}`,O.workoutDescent=B.descent===null?"":`${r.value.imperial_units?xt(B.descent,"m","ft",2):parseFloat(B.descent.toFixed(2))}`}}function L(){return S.value.includes("workouts.INVALID_DISTANCE")}function W(){return S.value.includes("workouts.INVALID_DURATION")}function X(){return S.value.includes("workouts.INVALID_ASCENT_OR_DESCENT")}function re(B){S.value=[],B.title=O.title,B.duration=+O.workoutDurationHour*3600+ +O.workoutDurationMinutes*60+ +O.workoutDurationSeconds,B.duration<=0&&S.value.push("workouts.INVALID_DURATION"),B.distance=r.value.imperial_units?xt(+O.workoutDistance,"mi","km",3):+O.workoutDistance,B.distance<=0&&S.value.push("workouts.INVALID_DISTANCE"),B.workout_date=`${O.workoutDate} ${O.workoutTime}`,B.ascent=O.workoutAscent===""?null:r.value.imperial_units?xt(+O.workoutAscent,"ft","m",3):+O.workoutAscent,B.descent=O.workoutDescent===""?null:r.value.imperial_units?xt(+O.workoutDescent,"ft","m",3):+O.workoutDescent,(B.ascent!==null&&B.descent===null||B.ascent===null&&B.descent!==null)&&S.value.push("workouts.INVALID_ASCENT_OR_DESCENT")}function G(){const B={sport_id:+O.sport_id,notes:O.notes,equipment_ids:O.equipment_id&&D.value.find(Ne=>Ne.id===O.equipment_id)?[O.equipment_id]:[]};if(t.workout.id)t.workout.with_gpx?B.title=O.title:re(B),S.value.length>0?a.commit(K.MUTATIONS.SET_ERROR_MESSAGES,S.value):a.dispatch(Re.ACTIONS.EDIT_WORKOUT,{workoutId:t.workout.id,data:B});else if(R.value){if(!g){a.commit(K.MUTATIONS.SET_ERROR_MESSAGES,"workouts.NO_FILE_PROVIDED");return}B.file=g,a.dispatch(Re.ACTIONS.ADD_WORKOUT,B)}else re(B),S.value.length>0?a.commit(K.MUTATIONS.SET_ERROR_MESSAGES,S.value):a.dispatch(Re.ACTIONS.ADD_WORKOUT_WITHOUT_GPX,B)}function Z(){t.workout.id?s.push({name:"Workout",params:{workoutId:t.workout.id}}):s.go(-1)}function q(){N.value=!0}return pt(()=>a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)),Me(()=>t.workout,async(B,Ne)=>{B!==Ne&&B&&B.id&&z(B)}),Me(()=>v.value,B=>{i.value&&(O.equipment_id=B!=null&&B.default_equipments&&(B==null?void 0:B.default_equipments.length)>0?`${B.default_equipments[0].id}`:"")}),(B,Ne)=>{const Ke=oe("CustomTextArea"),Fe=oe("ErrorMessage"),Le=oe("Loader"),Wt=oe("Card");return h(),I("div",{id:"workout-edition",class:Te(["center-card with-margin",{"center-form":m(o)&&m(o).with_gpx}])},[F(Wt,null,{title:le(()=>[V(_(B.$t(`workouts.${m(i)?"ADD":"EDIT"}_WORKOUT`)),1)]),content:le(()=>[d("div",rJe,[d("form",{class:Te({errors:N.value}),onSubmit:be(G,["prevent"])},[d("div",oJe,[m(i)?(h(),I("div",iJe,[d("div",null,[d("input",{id:"withGpx",type:"radio",checked:R.value,disabled:m(u),onClick:b},null,8,uJe),d("label",lJe,_(B.$t("workouts.WITH_GPX")),1)]),d("div",null,[d("input",{id:"withoutGpx",type:"radio",checked:!R.value,disabled:m(u),onClick:b},null,8,cJe),d("label",dJe,_(B.$t("workouts.WITHOUT_GPX")),1)])])):M("",!0),d("div",EJe,[d("label",fJe,_(B.$t("workouts.SPORT",1))+"*: ",1),ye(d("select",{id:"sport",required:"",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[0]||(Ne[0]=ge=>O.sport_id=ge)},[(h(!0),I(pe,null,Pe(l.value,ge=>(h(),I("option",{value:ge.id,key:ge.id},_(ge.translatedLabel),9,mJe))),128))],40,pJe),[[ia,O.sport_id]])]),m(i)&&R.value?(h(),I("div",_Je,[d("label",TJe,_(B.$t("workouts.GPX_FILE"))+" "+_(B.$t("workouts.ZIP_ARCHIVE_DESCRIPTION"))+"*: ",1),d("input",{id:"gpxFile",name:"gpxFile",type:"file",accept:".gpx, .zip",disabled:m(u),required:"",onInvalid:q,onInput:k},null,40,hJe),d("div",SJe,[d("div",null,[d("strong",null,_(B.$t("workouts.GPX_FILE"))+":",1),d("ul",null,[d("li",null,_(B.$t("workouts.MAX_SIZE"))+": "+_(m(f)),1)])]),d("div",null,[d("strong",null,_(B.$t("workouts.ZIP_ARCHIVE"))+":",1),d("ul",null,[d("li",null,_(B.$t("workouts.NO_FOLDER")),1),d("li",null,_(B.$t("workouts.MAX_FILES"))+": "+_(m(E)),1),d("li",null,_(B.$t("workouts.MAX_SIZE"))+": "+_(m(p)),1)])])])])):(h(),I("div",AJe,[d("label",OJe,_(B.$t("workouts.TITLE"))+": ",1),ye(d("input",{id:"title",name:"title",type:"text",required:!m(i),onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[1]||(Ne[1]=ge=>O.title=ge)},null,40,gJe),[[tt,O.title]])])),R.value?M("",!0):(h(),I("div",IJe,[d("div",RJe,[d("div",NJe,[d("label",null,_(B.$t("workouts.WORKOUT_DATE"))+"*:",1),d("div",vJe,[ye(d("input",{id:"workout-date",name:"workout-date",type:"date",required:"",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[2]||(Ne[2]=ge=>O.workoutDate=ge)},null,40,bJe),[[tt,O.workoutDate]]),ye(d("input",{id:"workout-time",name:"workout-time",class:"workout-time",type:"time",required:"",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[3]||(Ne[3]=ge=>O.workoutTime=ge)},null,40,CJe),[[tt,O.workoutTime]])])]),d("div",DJe,[d("label",null,_(B.$t("workouts.DURATION"))+"*:",1),d("div",null,[d("label",PJe,_(B.$t("common.HOURS",0)),1),ye(d("input",{id:"workout-duration-hour",name:"workout-duration-hour",class:Te(["workout-duration",{errored:W()}]),type:"text",placeholder:"HH",minlength:"1",maxlength:"2",pattern:"^([0-1]?[0-9]|2[0-3])$",required:"",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[4]||(Ne[4]=ge=>O.workoutDurationHour=ge)},null,42,yJe),[[tt,O.workoutDurationHour]]),V(" : "),d("label",LJe,_(B.$t("common.MINUTES",0)),1),ye(d("input",{id:"workout-duration-minutes",name:"workout-duration-minutes",class:Te(["workout-duration",{errored:W()}]),type:"text",pattern:"^([0-5][0-9])$",minlength:"2",maxlength:"2",placeholder:"MM",required:"",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[5]||(Ne[5]=ge=>O.workoutDurationMinutes=ge)},null,42,$Je),[[tt,O.workoutDurationMinutes]]),V(" : "),d("label",kJe,_(B.$t("common.SECONDS",0)),1),ye(d("input",{id:"workout-duration-seconds",name:"workout-duration-seconds",class:Te(["workout-duration",{errored:W()}]),type:"text",pattern:"^([0-5][0-9])$",minlength:"2",maxlength:"2",placeholder:"SS",required:"",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[6]||(Ne[6]=ge=>O.workoutDurationSeconds=ge)},null,42,UJe),[[tt,O.workoutDurationSeconds]])])])]),d("div",wJe,[d("div",MJe,[d("label",null,_(B.$t("workouts.DISTANCE"))+" ("+_(m(r).imperial_units?"mi":"km")+")*: ",1),ye(d("input",{class:Te({errored:L()}),name:"workout-distance",type:"number",min:"0",step:"0.001",required:"",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[7]||(Ne[7]=ge=>O.workoutDistance=ge)},null,42,FJe),[[tt,O.workoutDistance]])]),d("div",WJe,[d("label",null,_(B.$t("workouts.ASCENT"))+" ("+_(m(r).imperial_units?"ft":"m")+"): ",1),ye(d("input",{class:Te({errored:X()}),name:"workout-ascent",type:"number",min:"0",step:"0.01",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[8]||(Ne[8]=ge=>O.workoutAscent=ge)},null,42,zJe),[[tt,O.workoutAscent]])]),d("div",xJe,[d("label",null,_(B.$t("workouts.DESCENT"))+" ("+_(m(r).imperial_units?"ft":"m")+"): ",1),ye(d("input",{class:Te({errored:X()}),name:"workout-descent",type:"number",min:"0",step:"0.01",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[9]||(Ne[9]=ge=>O.workoutDescent=ge)},null,42,BJe),[[tt,O.workoutDescent]])])])])),A.value?(h(),I("div",GJe,[d("label",HJe,_(B.$t("equipments.EQUIPMENT",1))+": ",1),ye(d("select",{id:"workout-equipment",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[10]||(Ne[10]=ge=>O.equipment_id=ge)},[d("option",jJe,_(B.$t("equipments.NO_EQUIPMENTS")),1),(h(!0),I(pe,null,Pe(D.value,ge=>(h(),I("option",{value:ge.id,key:ge.id},_(ge.label),9,KJe))),128))],40,VJe),[[ia,O.equipment_id]])])):M("",!0),d("div",qJe,[d("label",YJe,_(B.$t("workouts.NOTES"))+": ",1),F(Ke,{name:"notes",input:O.notes,disabled:m(u),onUpdateValue:y},null,8,["input","disabled"])])]),T.value?(h(),Y(Fe,{key:0,message:T.value},null,8,["message"])):M("",!0),m(u)?(h(),I("div",XJe,[F(Le)])):(h(),I("div",QJe,[d("button",{class:"confirm",type:"submit",disabled:m(u)},_(B.$t("buttons.SUBMIT")),9,ZJe),d("button",{class:"cancel",onClick:be(Z,["prevent"])},_(B.$t("buttons.CANCEL")),1)]))],34)])]),_:1})],2)}}}),_g=ie(JJe,[["__scopeId","data-v-f97be344"]]),eet={id:"add-workout",class:"view"},tet={class:"container"},net=te({__name:"AddWorkout",setup(e){const t=ke(),n=w(()=>t.getters[Dt.GETTERS.SPORTS]),a=w(()=>t.getters[Q.GETTERS.AUTH_USER_PROFILE]),s=w(()=>t.getters[Re.GETTERS.WORKOUT_DATA]);return(r,o)=>(h(),I("div",eet,[d("div",tet,[F(_g,{authUser:a.value,sports:n.value,isCreation:!0,loading:s.value.loading},null,8,["authUser","sports","loading"])])]))}}),aet={id:"edit-workout",class:"view"},set={class:"container"},ret=te({__name:"EditWorkout",setup(e){const t=yt(),n=ke(),a=w(()=>n.getters[Q.GETTERS.AUTH_USER_PROFILE]),s=w(()=>n.getters[Dt.GETTERS.SPORTS]),r=w(()=>n.getters[Re.GETTERS.WORKOUT_DATA]);return ft(()=>{n.dispatch(Re.ACTIONS.GET_WORKOUT_DATA,{workoutId:t.params.workoutId})}),Me(()=>t.params.workoutId,async o=>{o||n.commit(Re.MUTATIONS.EMPTY_WORKOUT)}),(o,i)=>(h(),I("div",aet,[d("div",set,[r.value.workout.id?(h(),Y(_g,{key:0,authUser:a.value,sports:s.value,workout:r.value.workout,loading:r.value.loading},null,8,["authUser","sports","workout","loading"])):M("",!0)])]))}}),Dr=e=>(rt("data-v-ba7fce77"),e=e(),ot(),e),oet={id:"workout-card-title"},iet=["disabled","title"],uet=Dr(()=>d("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1)),cet=[uet],det={class:"workout-card-title"},Eet={class:"workout-title-date"},fet={key:0,class:"workout-title"},pet=["aria-label"],met=Dr(()=>d("i",{class:"fa fa-edit","aria-hidden":"true"},null,-1)),_et=[met],Tet=["aria-label"],het=Dr(()=>d("i",{class:"fa fa-download","aria-hidden":"true"},null,-1)),Aet=[het],Oet=["aria-label"],get=Dr(()=>d("i",{class:"fa fa-trash","aria-hidden":"true"},null,-1)),Iet=[get],Ret={key:1,class:"workout-title"},Net={class:"workout-segment"},vet=Dr(()=>d("i",{class:"fa fa-map-marker","aria-hidden":"true"},null,-1)),bet={class:"workout-date"},Cet=["datetime"],Det={class:"workout-link"},Pet=["disabled","title"],yet=Dr(()=>d("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)),Let=[yet],$et=te({__name:"WorkoutCardTitle",props:{sport:{},workoutObject:{}},emits:["displayModal"],setup(e,{emit:t}){const n=e,a=t,{sport:s,workoutObject:r}=me(n);async function o(u){await Be.get(`workouts/${u}/gpx/download`,{responseType:"blob"}).then(l=>{const c=window.URL.createObjectURL(new Blob([l.data],{type:"application/gpx+xml"})),f=document.createElement("a");f.href=c,f.setAttribute("download",`${u}.gpx`),document.body.appendChild(f),f.click()})}function i(){a("displayModal",!0)}return(u,l)=>{const c=oe("SportImage"),f=oe("router-link");return h(),I("div",oet,[d("button",{class:Te(["workout-previous workout-arrow transparent",{inactive:!m(r).previousUrl}]),disabled:!m(r).previousUrl,title:m(r).previousUrl?u.$t(`workouts.PREVIOUS_${m(r).type}`):u.$t(`workouts.NO_PREVIOUS_${m(r).type}`),onClick:l[0]||(l[0]=E=>m(r).previousUrl?u.$router.push(m(r).previousUrl):null)},cet,10,iet),d("div",det,[F(c,{"sport-label":m(s).label,color:m(s).color},null,8,["sport-label","color"]),d("div",Eet,[m(r).type==="WORKOUT"?(h(),I("div",fet,[d("span",null,_(m(r).title),1),d("button",{class:"transparent icon-button",onClick:l[1]||(l[1]=E=>u.$router.push({name:"EditWorkout",params:{workoutId:m(r).workoutId}})),"aria-label":u.$t("workouts.EDIT_WORKOUT")},_et,8,pet),m(r).with_gpx?(h(),I("button",{key:0,class:"transparent icon-button",onClick:l[2]||(l[2]=be(E=>o(m(r).workoutId),["prevent"])),"aria-label":u.$t("workouts.DOWNLOAD_WORKOUT")},Aet,8,Tet)):M("",!0),d("button",{id:"delete-workout-button",class:"transparent icon-button",onClick:be(i,["prevent"]),"aria-label":u.$t("workouts.DELETE_WORKOUT")},Iet,8,Oet)])):m(r).segmentId!==null?(h(),I("div",Ret,[V(_(m(r).title)+" ",1),d("span",Net,[V(" — "),vet,V(" "+_(u.$t("workouts.SEGMENT"))+" "+_(m(r).segmentId+1),1)])])):M("",!0),d("div",bet,[d("time",{datetime:m(r).workoutFullDate},_(m(r).workoutDate)+" - "+_(m(r).workoutTime),9,Cet),d("span",Det,[m(r).type==="SEGMENT"?(h(),Y(f,{key:0,to:{name:"Workout",params:{workoutId:m(r).workoutId}}},{default:le(()=>[V(" > "+_(u.$t("workouts.BACK_TO_WORKOUT")),1)]),_:1},8,["to"])):M("",!0)])])])]),d("button",{class:Te(["workout-next workout-arrow transparent",{inactive:!m(r).nextUrl}]),disabled:!m(r).nextUrl,title:m(r).nextUrl?u.$t(`workouts.NEXT_${m(r).type}`):u.$t(`workouts.NO_NEXT_${m(r).type}`),onClick:l[3]||(l[3]=E=>m(r).nextUrl?u.$router.push(m(r).nextUrl):null)},Let,10,Pet)])}}}),ket=ie($et,[["__scopeId","data-v-ba7fce77"]]),Uet=e=>(rt("data-v-1b247cbe"),e=e(),ot(),e),wet={key:0,class:"workout-record"},Met=Uet(()=>d("sup",null,[d("i",{class:"fa fa-trophy","aria-hidden":"true"})],-1)),Fet=[Met],Wet=te({__name:"WorkoutRecord",props:{recordType:{},workoutObject:{}},setup(e){const t=e,{recordType:n,workoutObject:a}=me(t);return(s,r)=>m(a).records&&m(a).records.find(o=>o.record_type===m(n))?(h(),I("span",wet,Fet)):M("",!0)}}),Vr=ie(Wet,[["__scopeId","data-v-1b247cbe"]]),zet="/img/weather/temperature.svg",xet="/img/weather/pour-rain.svg",Bet="/img/weather/breeze.svg",Get=["N","NNE","NE","ENE","E","ESE","SE","SSE","S","SSW","SW","WSW","W","WNW","NW","NNW"],Het=e=>{const t=Math.floor(e/22.5+.5);return Get[t%16]},Vet={class:"wind"},jet={class:"wind-bearing"},Ket=["title"],qet=te({__name:"WeatherWind",props:{weather:{},useImperialUnits:{type:Boolean}},setup(e){const t=e,{useImperialUnits:n,weather:a}=me(t),{t:s}=kt();function r(o){return s(`workouts.WEATHER.WIND_DIRECTIONS.${Het(o)}`)}return(o,i)=>(h(),I("div",Vet,[V(_(m(pLe)(m(a).wind,m(n)))+" ",1),d("div",jet,[m(a).windBearing?(h(),I("i",{key:0,class:"fa fa-long-arrow-down",style:ba({transform:`rotate(${m(a).windBearing}deg)`}),"aria-hidden":"true",title:r(m(a).windBearing)},null,12,Ket)):M("",!0)])]))}}),u0=ie(qet,[["__scopeId","data-v-e1f7f9cc"]]),Yet=e=>(rt("data-v-be2fffb0"),e=e(),ot(),e),Xet={key:0,id:"workout-weather"},Qet={class:"weather-table"},Zet=Yet(()=>d("th",null,null,-1)),Jet={class:"weather-th"},ett=["src","alt","title"],ttt={class:"weather-th"},ntt=["src","alt","title"],att=["alt","title"],stt=["alt","title"],rtt=["alt","title"],ott=te({__name:"WorkoutWeather",props:{workoutObject:{},useImperialUnits:{type:Boolean}},setup(e){const t=e,{useImperialUnits:n,workoutObject:a}=me(t);return(s,r)=>m(a).weatherStart&&m(a).weatherEnd?(h(),I("div",Xet,[d("table",Qet,[d("thead",null,[d("tr",null,[Zet,d("th",null,[d("div",Jet,[V(_(s.$t("workouts.START"))+" ",1),d("img",{class:"weather-img",src:`/img/weather/${m(a).weatherStart.icon}.svg`,alt:s.$t(`workouts.WEATHER.DARK_SKY.${m(a).weatherStart.icon}`),title:s.$t(`workouts.WEATHER.DARK_SKY.${m(a).weatherStart.icon}`)},null,8,ett)])]),d("th",null,[d("div",ttt,[V(_(s.$t("workouts.END"))+" ",1),d("img",{class:"weather-img",src:`/img/weather/${m(a).weatherEnd.icon}.svg`,alt:s.$t(`workouts.WEATHER.DARK_SKY.${m(a).weatherEnd.icon}`),title:s.$t(`workouts.WEATHER.DARK_SKY.${m(a).weatherEnd.icon}`)},null,8,ntt)])])])]),d("tbody",null,[d("tr",null,[d("td",null,[d("img",{class:"weather-img weather-img-small",src:zet,alt:s.$t("workouts.WEATHER.TEMPERATURE"),title:s.$t("workouts.WEATHER.TEMPERATURE")},null,8,att)]),d("td",null,_(m(h_)(m(a).weatherStart.temperature,m(n))),1),d("td",null,_(m(h_)(m(a).weatherEnd.temperature,m(n))),1)]),d("tr",null,[d("td",null,[d("img",{class:"weather-img weather-img-small",src:xet,alt:s.$t("workouts.WEATHER.HUMIDITY"),title:s.$t("workouts.WEATHER.HUMIDITY")},null,8,stt)]),d("td",null,_(Number(m(a).weatherStart.humidity*100).toFixed(1))+"% ",1),d("td",null,_(Number(m(a).weatherEnd.humidity*100).toFixed(1))+"% ",1)]),d("tr",null,[d("td",null,[d("img",{class:"weather-img weather-img-small",src:Bet,alt:s.$t("workouts.WEATHER.WIND"),title:s.$t("workouts.WEATHER.WIND")},null,8,rtt)]),d("td",null,[F(u0,{weather:m(a).weatherStart,useImperialUnits:m(n)},null,8,["weather","useImperialUnits"])]),d("td",null,[F(u0,{weather:m(a).weatherEnd,useImperialUnits:m(n)},null,8,["weather","useImperialUnits"])])])])])])):M("",!0)}}),itt=ie(ott,[["__scopeId","data-v-be2fffb0"]]),Fs=e=>(rt("data-v-9341b3e8"),e=e(),ot(),e),utt={id:"workout-info"},ltt={class:"workout-data"},ctt=Fs(()=>d("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1)),dtt={class:"label"},Ett={class:"value"},ftt={key:0},ptt={class:"value"},mtt={class:"value"},_tt={key:0,class:"workout-data"},Ttt=Fs(()=>d("i",{class:"fa fa-road","aria-hidden":"true"},null,-1)),htt={class:"label"},Stt={key:1,class:"workout-data"},Att=Fs(()=>d("i",{class:"fa fa-tachometer","aria-hidden":"true"},null,-1)),Ott={class:"label"},gtt=Fs(()=>d("br",null,null,-1)),Itt={class:"label"},Rtt={key:2,class:"workout-data"},Ntt=["alt"],vtt={class:"label"},btt=Fs(()=>d("br",null,null,-1)),Ctt={class:"label"},Dtt={key:3,class:"workout-data"},Ptt=Fs(()=>d("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1)),ytt={class:"label"},Ltt=Fs(()=>d("br",null,null,-1)),$tt={class:"label"},ktt=te({__name:"WorkoutData",props:{workoutObject:{},useImperialUnits:{type:Boolean},displayHARecord:{type:Boolean}},setup(e){const t=e,{displayHARecord:n,workoutObject:a,useImperialUnits:s}=me(t),r=w(()=>t.workoutObject.pauses!=="0:00:00"&&t.workoutObject.pauses!==null);return(o,i)=>{const u=oe("Distance");return h(),I("div",utt,[d("div",ltt,[ctt,d("span",dtt,_(o.$t("workouts.DURATION")),1),V(": "),d("span",Ett,_(m(a).moving),1),F(Vr,{workoutObject:m(a),recordType:"LD"},null,8,["workoutObject"]),r.value?(h(),I("div",ftt,[V(" ("+_(o.$t("workouts.PAUSES"))+": ",1),d("span",ptt,_(m(a).pauses),1),V(" - "+_(o.$t("workouts.TOTAL_DURATION"))+": ",1),d("span",mtt,_(m(a).duration)+")",1)])):M("",!0)]),m(a).distance!==null?(h(),I("div",_tt,[Ttt,d("span",htt,_(o.$t("workouts.DISTANCE")),1),V(": "),F(u,{distance:m(a).distance,digits:3,unitFrom:"km",strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"]),F(Vr,{workoutObject:m(a),recordType:"FD"},null,8,["workoutObject"])])):M("",!0),m(a).aveSpeed!==null&&m(a).maxSpeed!==null?(h(),I("div",Stt,[Att,d("span",Ott,_(o.$t("workouts.AVERAGE_SPEED")),1),V(": "),F(u,{distance:m(a).aveSpeed,unitFrom:"km",speed:!0,strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"]),F(Vr,{workoutObject:m(a),recordType:"AS"},null,8,["workoutObject"]),gtt,d("span",Itt,_(o.$t("workouts.MAX_SPEED")),1),V(": "),F(u,{distance:m(a).maxSpeed,unitFrom:"km",speed:!0,strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"]),F(Vr,{workoutObject:m(a),recordType:"MS"},null,8,["workoutObject"])])):M("",!0),m(a).maxAlt!==null&&m(a).minAlt!==null?(h(),I("div",Rtt,[d("img",{class:"mountains",src:eg,alt:o.$t("workouts.ELEVATION")},null,8,Ntt),d("span",vtt,_(o.$t("workouts.MIN_ALTITUDE")),1),V(": "),F(u,{distance:m(a).minAlt,unitFrom:"m",strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"]),btt,d("span",Ctt,_(o.$t("workouts.MAX_ALTITUDE")),1),V(": "),F(u,{distance:m(a).maxAlt,unitFrom:"m",strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"])])):M("",!0),m(a).ascent!==null&&m(a).descent!==null?(h(),I("div",Dtt,[Ptt,d("span",ytt,_(o.$t("workouts.ASCENT")),1),V(": "),F(u,{distance:m(a).ascent,unitFrom:"m",strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"]),m(n)?(h(),Y(Vr,{key:0,workoutObject:m(a),recordType:"HA"},null,8,["workoutObject"])):M("",!0),Ltt,d("span",$tt,_(o.$t("workouts.DESCENT")),1),V(": "),F(u,{distance:m(a).descent,unitFrom:"m",strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"])])):M("",!0),F(itt,{workoutObject:m(a),useImperialUnits:m(s)},null,8,["workoutObject","useImperialUnits"])])}}}),Utt=ie(ktt,[["__scopeId","data-v-9341b3e8"]]);function sr(e,t){return Array.from(e.getElementsByTagName(t))}function Pr(e){return e==null||e.normalize(),e&&e.textContent||""}function ys(e,t,n){const a=e.getElementsByTagName(t),s=a.length?a[0]:null;return s&&n&&n(s),s}function wtt(e,t,n){const a={};if(!e)return a;const s=e.getElementsByTagName(t),r=s.length?s[0]:null;return r&&n?n(r,a):a}function Tg(e,t,n){const a=Pr(ys(e,t));return a&&n?n(a)||{}:{}}function l0(e,t,n){const a=parseFloat(Pr(ys(e,t)));if(!isNaN(a))return a&&n?n(a)||{}:{}}function Mtt(e,t,n){const a=parseFloat(Pr(ys(e,t)));if(!isNaN(a))return n&&n(a),a}function TE(e,t){const n={};for(const a of t)Tg(e,a,s=>{n[a]=s});return n}function Ftt(e){return(e==null?void 0:e.nodeType)===1}function hg(e){return wtt(e,"line",t=>Object.assign({},Tg(t,"color",a=>({stroke:`#${a}`})),l0(t,"opacity",a=>({"stroke-opacity":a})),l0(t,"width",a=>({"stroke-width":a*96/25.4}))))}function Sg(e){let t=[];if(e===null)return t;for(const n of Array.from(e.childNodes)){if(!Ftt(n))continue;const a=Wtt(n.nodeName);if(a==="gpxtpx:TrackPointExtension")t=t.concat(Sg(n));else{const s=Pr(n);t.push([a,ztt(s)])}}return t}function Wtt(e){return["heart","gpxtpx:hr","hr"].includes(e)?"heart":e}function ztt(e){const t=parseFloat(e);return isNaN(t)?e:t}function Ag(e){const t=[parseFloat(e.getAttribute("lon")||""),parseFloat(e.getAttribute("lat")||"")];if(isNaN(t[0])||isNaN(t[1]))return null;Mtt(e,"ele",a=>{t.push(a)});const n=ys(e,"time");return{coordinates:t,time:n?Pr(n):null,extendedValues:Sg(ys(e,"extensions"))}}function Zf(e){var s;const t=TE(e,["name","cmt","desc","type","time","keywords"]),n=Array.from(e.getElementsByTagNameNS("http://www.garmin.com/xmlschemas/GpxExtensions/v3","*"));for(const r of n)((s=r.parentNode)==null?void 0:s.parentNode)===e&&(t[r.tagName.replace(":","_")]=Pr(r));const a=sr(e,"link");return a.length&&(t.links=a.map(r=>Object.assign({href:r.getAttribute("href")},TE(r,["text","type"])))),t}function Og(e,t){const n=sr(e,t),a=[],s=[],r={};for(let o=0;o1,o=Object.assign({_gpxType:"trk"},Zf(e),hg(ys(e,"extensions")),a.length?{coordinateProperties:{times:r?a:a[0]}}:{});for(const i of s){n.push(i.line),o.coordinateProperties||(o.coordinateProperties={});const u=o.coordinateProperties,l=Object.entries(i.extendedValues);for(let c=0;cnew Array(p.line.length).fill(null))),u[f][c]=E):u[f]=E}}return{type:"Feature",properties:o,geometry:r?{type:"MultiLineString",coordinates:n}:{type:"LineString",coordinates:n[0]}}}function Gtt(e){const t=Object.assign(Zf(e),TE(e,["sym"])),n=Ag(e);return n?{type:"Feature",properties:t,geometry:{type:"Point",coordinates:n.coordinates}}:null}function*Htt(e){for(const t of sr(e,"trk")){const n=Btt(t);n&&(yield n)}for(const t of sr(e,"rte")){const n=xtt(t);n&&(yield n)}for(const t of sr(e,"wpt")){const n=Gtt(t);n&&(yield n)}}function Vtt(e){return{type:"FeatureCollection",features:Array.from(Htt(e))}}const c0=(e,t)=>{for(const n of Object.keys(t))e.on(n,t[n])},gg=e=>{for(const t of Object.keys(e)){const n=e[t];n&&ja(n.cancel)&&n.cancel()}},jtt=e=>!e||typeof e.charAt!="function"?e:e.charAt(0).toUpperCase()+e.slice(1),ja=e=>typeof e=="function",Pa=(e,t,n)=>{for(const a in n){const s="set"+jtt(a);e[s]?Me(()=>n[a],(r,o)=>{e[s](r,o)}):t[s]&&Me(()=>n[a],r=>{t[s](r)})}},da=(e,t,n={})=>{const a={...n};for(const s in e){const r=t[s],o=e[s];r&&(r&&r.custom===!0||o!==void 0&&(a[s]=o))}return a},Ws=e=>{const t={},n={};for(const a in e)if(a.startsWith("on")&&!a.startsWith("onUpdate")&&a!=="onReady"){const s=a.slice(2).toLocaleLowerCase();t[s]=e[a]}else n[a]=e[a];return{listeners:t,attrs:n}},Ktt=async e=>{const t=await Promise.all([Ut(()=>import("./maps-BFpqWvfo.js").then(n=>n.m),__vite__mapDeps([0,1])),Ut(()=>import("./maps-BFpqWvfo.js").then(n=>n.b),__vite__mapDeps([0,1])),Ut(()=>import("./maps-BFpqWvfo.js").then(n=>n.d),__vite__mapDeps([0,1]))]);delete e.Default.prototype._getIconUrl,e.Default.mergeOptions({iconRetinaUrl:t[0].default,iconUrl:t[1].default,shadowUrl:t[2].default})},$i=e=>{const t=de((...a)=>console.warn(`Method ${e} has been invoked without being replaced`)),n=(...a)=>t.value(...a);return n.wrapped=t,sn(e,n),n},ki=(e,t)=>e.wrapped.value=t,Hn=typeof self=="object"&&self.self===self&&self||typeof global=="object"&&global.global===global&&global||globalThis,wn=e=>{const t=Rt(e);if(t===void 0)throw new Error(`Attempt to inject ${e.description} before it was provided.`);return t},ya=Symbol("useGlobalLeaflet"),ls=Symbol("addLayer"),Jf=Symbol("removeLayer"),Ig=Symbol("registerControl"),Rg=Symbol("registerLayerControl"),Ng=Symbol("canSetParentHtml"),vg=Symbol("setParentHtml"),bg=Symbol("setIcon"),qtt=Symbol("bindPopup"),Ytt=Symbol("bindTooltip"),Xtt=Symbol("unbindPopup"),Qtt=Symbol("unbindTooltip"),ti={options:{type:Object,default:()=>({}),custom:!0}},ql=e=>({options:e.options,methods:{}}),yr={...ti,pane:{type:String},attribution:{type:String},name:{type:String,custom:!0},layerType:{type:String,custom:!0},visible:{type:Boolean,custom:!0,default:!0}},ep=(e,t,n)=>{const a=wn(ls),s=wn(Jf),{options:r,methods:o}=ql(e),i=da(e,yr,r),u=()=>a({leafletObject:t.value}),l=()=>s({leafletObject:t.value}),c={...o,setAttribution(f){l(),t.value.options.attribution=f,e.visible&&u()},setName(){l(),e.visible&&u()},setLayerType(){l(),e.visible&&u()},setVisible(f){t.value&&(f?u():l())},bindPopup(f){if(!t.value||!ja(t.value.bindPopup)){console.warn("Attempt to bind popup before bindPopup method available on layer.");return}t.value.bindPopup(f)},bindTooltip(f){if(!t.value||!ja(t.value.bindTooltip)){console.warn("Attempt to bind tooltip before bindTooltip method available on layer.");return}t.value.bindTooltip(f)},unbindTooltip(){t.value&&(ja(t.value.closeTooltip)&&t.value.closeTooltip(),ja(t.value.unbindTooltip)&&t.value.unbindTooltip())},unbindPopup(){t.value&&(ja(t.value.closePopup)&&t.value.closePopup(),ja(t.value.unbindPopup)&&t.value.unbindPopup())},updateVisibleProp(f){n.emit("update:visible",f)}};return sn(qtt,c.bindPopup),sn(Ytt,c.bindTooltip),sn(Xtt,c.unbindPopup),sn(Qtt,c.unbindTooltip),pt(()=>{c.unbindPopup(),c.unbindTooltip(),l()}),{options:i,methods:c}},tp=(e,t)=>{if(e&&t.default)return hn("div",{style:{display:"none"}},t.default())},Ztt={...yr,interactive:{type:Boolean,default:void 0},bubblingMouseEvents:{type:Boolean,default:void 0}},Cg={...Ztt,stroke:{type:Boolean,default:void 0},color:{type:String},weight:{type:Number},opacity:{type:Number},lineCap:{type:String},lineJoin:{type:String},dashArray:{type:String},dashOffset:{type:String},fill:{type:Boolean,default:void 0},fillColor:{type:String},fillOpacity:{type:Number},fillRule:{type:String},className:{type:String}},Jtt={...Cg,radius:{type:Number},latLng:{type:[Object,Array],required:!0,custom:!0}};({...Jtt});const Lr={...ti,position:{type:String}},Dg=(e,t)=>{const{options:n,methods:a}=ql(e),s=da(e,Lr,n),r={...a,setPosition(o){t.value&&t.value.setPosition(o)}};return pt(()=>{t.value&&t.value.remove()}),{options:s,methods:r}},ent=e=>e.default?hn("div",{ref:"root"},e.default()):null,d0=te({name:"LControl",props:{...Lr,disableClickPropagation:{type:Boolean,custom:!0,default:!0},disableScrollPropagation:{type:Boolean,custom:!0,default:!1}},setup(e,t){const n=de(),a=de(),s=Rt(ya),r=wn(Ig),{options:o,methods:i}=Dg(e,n);return St(async()=>{const{Control:u,DomEvent:l}=s?Hn.L:await Ut(()=>import("./maps-BFpqWvfo.js").then(f=>f.e),__vite__mapDeps([0,1])),c=u.extend({onAdd(){return a.value}});n.value=Ca(new c(o)),Pa(i,n.value,e),r({leafletObject:n.value}),e.disableClickPropagation&&a.value&&l.disableClickPropagation(a.value),e.disableScrollPropagation&&a.value&&l.disableScrollPropagation(a.value),on(()=>t.emit("ready",n.value))}),{root:a,leafletObject:n}},render(){return ent(this.$slots)}});({...Lr});const Pg={...Lr,collapsed:{type:Boolean,default:void 0},autoZIndex:{type:Boolean,default:void 0},hideSingleBase:{type:Boolean,default:void 0},sortLayers:{type:Boolean,default:void 0},sortFunction:{type:Function}},tnt=(e,t)=>{const{options:n}=Dg(e,t);return{options:da(e,Pg,n),methods:{addLayer(a){a.layerType==="base"?t.value.addBaseLayer(a.leafletObject,a.name):a.layerType==="overlay"&&t.value.addOverlay(a.leafletObject,a.name)},removeLayer(a){t.value.removeLayer(a.leafletObject)}}}},nnt=te({name:"LControlLayers",props:Pg,setup(e,t){const n=de(),a=Rt(ya),s=wn(Rg),{options:r,methods:o}=tnt(e,n);return St(async()=>{const{control:i}=a?Hn.L:await Ut(()=>import("./maps-BFpqWvfo.js").then(u=>u.e),__vite__mapDeps([0,1]));n.value=Ca(i.layers(void 0,void 0,r)),Pa(o,n.value,e),s({...e,...o,leafletObject:n.value}),on(()=>t.emit("ready",n.value))}),{leafletObject:n}},render(){return null}});({...Lr});({...Lr});const Yl={...yr},yg=(e,t,n)=>{const{options:a,methods:s}=ep(e,t,n),r=da(e,Yl,a),o={...s,addLayer(i){t.value.addLayer(i.leafletObject)},removeLayer(i){t.value.removeLayer(i.leafletObject)}};return sn(ls,o.addLayer),sn(Jf,o.removeLayer),{options:r,methods:o}};({...Yl});const Lg={...Yl,geojson:{type:[Object,Array],custom:!0},optionsStyle:{type:Function,custom:!0}},ant=(e,t,n)=>{const{options:a,methods:s}=yg(e,t,n),r=da(e,Lg,a);Object.prototype.hasOwnProperty.call(e,"optionsStyle")&&(r.style=e.optionsStyle);const o={...s,setGeojson(i){t.value.clearLayers(),t.value.addData(i)},setOptionsStyle(i){t.value.setStyle(i)},getGeoJSONData(){return t.value.toGeoJSON()},getBounds(){return t.value.getBounds()}};return{options:r,methods:o}},snt=te({props:Lg,setup(e,t){const n=de(),a=de(!1),s=Rt(ya),r=wn(ls),{methods:o,options:i}=ant(e,n,t);return St(async()=>{const{geoJSON:u}=s?Hn.L:await Ut(()=>import("./maps-BFpqWvfo.js").then(c=>c.e),__vite__mapDeps([0,1]));n.value=Ca(u(e.geojson,i));const{listeners:l}=Ws(t.attrs);n.value.on(l),Pa(o,n.value,e),r({...e,...o,leafletObject:n.value}),a.value=!0,on(()=>t.emit("ready",n.value))}),{ready:a,leafletObject:n}},render(){return tp(this.ready,this.$slots)}}),np={...yr,opacity:{type:Number},zIndex:{type:Number},tileSize:{type:[Number,Array,Object]},noWrap:{type:Boolean,default:void 0},minZoom:{type:Number},maxZoom:{type:Number},className:{type:String}},$g=(e,t,n)=>{const{options:a,methods:s}=ep(e,t,n),r=da(e,np,a),o={...s,setTileComponent(){var i;(i=t.value)==null||i.redraw()}};return pt(()=>{t.value.off()}),{options:r,methods:o}},rnt=(e,t,n,a)=>e.extend({initialize(s){this.tileComponents={},this.on("tileunload",this._unloadTile),n.setOptions(this,s)},createTile(s){const r=this._tileCoordsToKey(s);this.tileComponents[r]=t.create("div");const o=hn({setup:a,props:["coords"]},{coords:s});return kN(o,this.tileComponents[r]),this.tileComponents[r]},_unloadTile(s){const r=this._tileCoordsToKey(s.coords);this.tileComponents[r]&&(this.tileComponents[r].innerHTML="",this.tileComponents[r]=void 0)}});({...np});const E0={iconUrl:{type:String},iconRetinaUrl:{type:String},iconSize:{type:[Object,Array]},iconAnchor:{type:[Object,Array]},popupAnchor:{type:[Object,Array]},tooltipAnchor:{type:[Object,Array]},shadowUrl:{type:String},shadowRetinaUrl:{type:String},shadowSize:{type:[Object,Array]},shadowAnchor:{type:[Object,Array]},bgPos:{type:[Object,Array]},className:{type:String}},ont=te({name:"LIcon",props:{...E0,...ti},setup(e,t){const n=de(),a=Rt(ya),s=wn(Ng),r=wn(vg),o=wn(bg);let i,u,l,c,f;const E=(R,g,N)=>{const S=R&&R.innerHTML;if(!g){N&&f&&s()&&r(S);return}const{listeners:A}=Ws(t.attrs);f&&u(f,A);const{options:v}=ql(e),D=da(e,E0,v);S&&(D.html=S),f=D.html?l(D):c(D),i(f,A),o(f)},p=()=>{on(()=>E(n.value,!0,!1))},T=()=>{on(()=>E(n.value,!1,!0))},O={setIconUrl:p,setIconRetinaUrl:p,setIconSize:p,setIconAnchor:p,setPopupAnchor:p,setTooltipAnchor:p,setShadowUrl:p,setShadowRetinaUrl:p,setShadowAnchor:p,setBgPos:p,setClassName:p,setHtml:p};return St(async()=>{const{DomEvent:R,divIcon:g,icon:N}=a?Hn.L:await Ut(()=>import("./maps-BFpqWvfo.js").then(S=>S.e),__vite__mapDeps([0,1]));i=R.on,u=R.off,l=g,c=N,Pa(O,{},e),new MutationObserver(T).observe(n.value,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),p()}),{root:n}},render(){const e=this.$slots.default?this.$slots.default():void 0;return hn("div",{ref:"root"},e)}});({...yr});const int=te({props:Yl,setup(e,t){const n=de(),a=de(!1),s=Rt(ya),r=wn(ls),{methods:o}=yg(e,n,t);return St(async()=>{const{layerGroup:i}=s?Hn.L:await Ut(()=>import("./maps-BFpqWvfo.js").then(l=>l.e),__vite__mapDeps([0,1]));n.value=Ca(i(void 0,e.options));const{listeners:u}=Ws(t.attrs);n.value.on(u),Pa(o,n.value,e),r({...e,...o,leafletObject:n.value}),a.value=!0,on(()=>t.emit("ready",n.value))}),{ready:a,leafletObject:n}},render(){return tp(this.ready,this.$slots)}});function kg(e,t,n){var a,s,r;t===void 0&&(t=50),n===void 0&&(n={});var o=(a=n.isImmediate)!=null&&a,i=(s=n.callback)!=null&&s,u=n.maxWait,l=Date.now(),c=[];function f(){if(u!==void 0){var p=Date.now()-l;if(p+t>=u)return u-p}return t}var E=function(){var p=[].slice.call(arguments),T=this;return new Promise(function(O,R){var g=o&&r===void 0;if(r!==void 0&&clearTimeout(r),r=setTimeout(function(){if(r=void 0,l=Date.now(),!o){var S=e.apply(T,p);i&&i(S),c.forEach(function(A){return(0,A.resolve)(S)}),c=[]}},f()),g){var N=e.apply(T,p);return i&&i(N),O(N)}c.push({resolve:O,reject:R})})};return E.cancel=function(p){r!==void 0&&clearTimeout(r),c.forEach(function(T){return(0,T.reject)(p)}),c=[]},E}const f0={...ti,center:{type:[Object,Array]},bounds:{type:[Array,Object]},maxBounds:{type:[Array,Object]},zoom:{type:Number},minZoom:{type:Number},maxZoom:{type:Number},paddingBottomRight:{type:[Object,Array]},paddingTopLeft:{type:Object},padding:{type:Object},worldCopyJump:{type:Boolean,default:void 0},crs:{type:[String,Object]},maxBoundsViscosity:{type:Number},inertia:{type:Boolean,default:void 0},inertiaDeceleration:{type:Number},inertiaMaxSpeed:{type:Number},easeLinearity:{type:Number},zoomAnimation:{type:Boolean,default:void 0},zoomAnimationThreshold:{type:Number},fadeAnimation:{type:Boolean,default:void 0},markerZoomAnimation:{type:Boolean,default:void 0},noBlockingAnimations:{type:Boolean,default:void 0},useGlobalLeaflet:{type:Boolean,default:!0,custom:!0}},unt=te({inheritAttrs:!1,emits:["ready","update:zoom","update:center","update:bounds"],props:f0,setup(e,t){const n=de(),a=Ht({ready:!1,layersToAdd:[],layersInControl:[]}),{options:s}=ql(e),r=da(e,f0,s),{listeners:o,attrs:i}=Ws(t.attrs),u=$i(ls),l=$i(Jf),c=$i(Ig),f=$i(Rg);sn(ya,e.useGlobalLeaflet);const E=w(()=>{const g={};return e.noBlockingAnimations&&(g.animate=!1),g}),p=w(()=>{const g=E.value;return e.padding&&(g.padding=e.padding),e.paddingTopLeft&&(g.paddingTopLeft=e.paddingTopLeft),e.paddingBottomRight&&(g.paddingBottomRight=e.paddingBottomRight),g}),T={moveend:kg(g=>{a.leafletRef&&(t.emit("update:zoom",a.leafletRef.getZoom()),t.emit("update:center",a.leafletRef.getCenter()),t.emit("update:bounds",a.leafletRef.getBounds()))}),overlayadd(g){const N=a.layersInControl.find(S=>S.name===g.name);N&&N.updateVisibleProp(!0)},overlayremove(g){const N=a.layersInControl.find(S=>S.name===g.name);N&&N.updateVisibleProp(!1)}};St(async()=>{e.useGlobalLeaflet&&(Hn.L=Hn.L||await Ut(()=>import("./maps-BFpqWvfo.js").then(k=>k.l),__vite__mapDeps([0,1])));const{map:g,CRS:N,Icon:S,latLngBounds:A,latLng:v,stamp:D}=e.useGlobalLeaflet?Hn.L:await Ut(()=>import("./maps-BFpqWvfo.js").then(k=>k.e),__vite__mapDeps([0,1]));try{r.beforeMapMount&&await r.beforeMapMount()}catch(k){console.error(`The following error occurred running the provided beforeMapMount hook ${k.message}`)}await Ktt(S);const y=typeof r.crs=="string"?N[r.crs]:r.crs;r.crs=y||N.EPSG3857;const b={addLayer(k){k.layerType!==void 0&&(a.layerControl===void 0?a.layersToAdd.push(k):a.layersInControl.find(z=>D(z.leafletObject)===D(k.leafletObject))||(a.layerControl.addLayer(k),a.layersInControl.push(k))),k.visible!==!1&&a.leafletRef.addLayer(k.leafletObject)},removeLayer(k){k.layerType!==void 0&&(a.layerControl===void 0?a.layersToAdd=a.layersToAdd.filter(z=>z.name!==k.name):(a.layerControl.removeLayer(k.leafletObject),a.layersInControl=a.layersInControl.filter(z=>D(z.leafletObject)!==D(k.leafletObject)))),a.leafletRef.removeLayer(k.leafletObject)},registerLayerControl(k){a.layerControl=k,a.layersToAdd.forEach(z=>{a.layerControl.addLayer(z)}),a.layersToAdd=[],c(k)},registerControl(k){a.leafletRef.addControl(k.leafletObject)},setZoom(k){const z=a.leafletRef.getZoom();k!==z&&a.leafletRef.setZoom(k,E.value)},setCrs(k){const z=a.leafletRef.getBounds();a.leafletRef.options.crs=k,a.leafletRef.fitBounds(z,{animate:!1,padding:[0,0]})},fitBounds(k){a.leafletRef.fitBounds(k,p.value)},setBounds(k){if(!k)return;const z=A(k);z.isValid()&&!(a.lastSetBounds||a.leafletRef.getBounds()).equals(z,0)&&(a.lastSetBounds=z,a.leafletRef.fitBounds(z))},setCenter(k){if(k==null)return;const z=v(k),L=a.lastSetCenter||a.leafletRef.getCenter();(L.lat!==z.lat||L.lng!==z.lng)&&(a.lastSetCenter=z,a.leafletRef.panTo(z,E.value))}};ki(u,b.addLayer),ki(l,b.removeLayer),ki(c,b.registerControl),ki(f,b.registerLayerControl),a.leafletRef=Ca(g(n.value,r)),Pa(b,a.leafletRef,e),c0(a.leafletRef,T),c0(a.leafletRef,o),a.ready=!0,on(()=>t.emit("ready",a.leafletRef))}),Mo(()=>{gg(T),a.leafletRef&&(a.leafletRef.off(),a.leafletRef.remove())});const O=w(()=>a.leafletRef),R=w(()=>a.ready);return{root:n,ready:R,leafletObject:O,attrs:i}},render({attrs:e}){return e.style||(e.style={}),e.style.width||(e.style.width="100%"),e.style.height||(e.style.height="100%"),hn("div",{...e,ref:"root"},this.ready&&this.$slots.default?this.$slots.default():{})}}),lnt=["Symbol(Comment)","Symbol(Text)"],cnt=["LTooltip","LPopup"],Ug={...yr,draggable:{type:Boolean,default:void 0},icon:{type:[Object]},zIndexOffset:{type:Number},latLng:{type:[Object,Array],custom:!0,required:!0}},dnt=(e,t,n)=>{const{options:a,methods:s}=ep(e,t,n),r=da(e,Ug,a),o={...s,setDraggable(i){t.value.dragging&&(i?t.value.dragging.enable():t.value.dragging.disable())},latLngSync(i){n.emit("update:latLng",i.latlng),n.emit("update:lat-lng",i.latlng)},setLatLng(i){if(i!=null&&t.value){const u=t.value.getLatLng();(!u||!u.equals(i))&&t.value.setLatLng(i)}}};return{options:r,methods:o}},Ent=(e,t)=>{const n=t.slots.default&&t.slots.default();return n&&n.length&&n.some(fnt)};function fnt(e){return!(lnt.includes(e.type.toString())||cnt.includes(e.type.name))}const wg=te({name:"LMarker",props:Ug,setup(e,t){const n=de(),a=de(!1),s=Rt(ya),r=wn(ls);sn(Ng,()=>{var l;return!!((l=n.value)!=null&&l.getElement())}),sn(vg,l=>{var c,f;const E=ja((c=n.value)==null?void 0:c.getElement)&&((f=n.value)==null?void 0:f.getElement());E&&(E.innerHTML=l)}),sn(bg,l=>{var c;return((c=n.value)==null?void 0:c.setIcon)&&n.value.setIcon(l)});const{options:o,methods:i}=dnt(e,n,t),u={moveHandler:kg(i.latLngSync)};return St(async()=>{const{marker:l,divIcon:c}=s?Hn.L:await Ut(()=>import("./maps-BFpqWvfo.js").then(E=>E.e),__vite__mapDeps([0,1]));Ent(o,t)&&(o.icon=c({className:""})),n.value=Ca(l(e.latLng,o));const{listeners:f}=Ws(t.attrs);n.value.on(f),n.value.on("move",u.moveHandler),Pa(i,n.value,e),r({...e,...i,leafletObject:n.value}),a.value=!0,on(()=>t.emit("ready",n.value))}),Mo(()=>gg(u)),{ready:a,leafletObject:n}},render(){return tp(this.ready,this.$slots)}}),pnt={...Cg,smoothFactor:{type:Number},noClip:{type:Boolean,default:void 0},latLngs:{type:Array,required:!0,custom:!0}},p0={...pnt},Mg={...ti,content:{type:String,default:null}};({...Mg});({...p0,latLngs:{...p0.latLngs}});const ap={...np,tms:{type:Boolean,default:void 0},subdomains:{type:[String,Array],validator:e=>typeof e=="string"?!0:Array.isArray(e)?e.every(t=>typeof t=="string"):!1},detectRetina:{type:Boolean,default:void 0},url:{type:String,required:!0,custom:!0}},mnt=(e,t,n)=>{const{options:a,methods:s}=$g(e,t,n),r=da(e,ap,a),o={...s};return{options:r,methods:o}},_nt=te({props:ap,setup(e,t){const n=de(),a=Rt(ya),s=wn(ls),{options:r,methods:o}=mnt(e,n,t);return St(async()=>{const{tileLayer:i}=a?Hn.L:await Ut(()=>import("./maps-BFpqWvfo.js").then(l=>l.e),__vite__mapDeps([0,1]));n.value=Ca(i(e.url,r));const{listeners:u}=Ws(t.attrs);n.value.on(u),Pa(o,n.value,e),s({...e,...o,leafletObject:n.value}),on(()=>t.emit("ready",n.value))}),{leafletObject:n}},render(){return null}});({...Mg});({...ap});const m0=te({__name:"CustomMarker",props:{markerCoordinates:{},isStart:{type:Boolean}},setup(e){const t=e,{isStart:n,markerCoordinates:a}=me(t);return(s,r)=>m(a).latitude?(h(),Y(m(wg),{key:0,"lat-lng":[m(a).latitude,m(a).longitude]},{default:le(()=>[F(m(ont),{"icon-url":`/img/workouts/${m(n)?"start":"finish"}.svg`,iconSize:[15,15]},null,8,["icon-url"])]),_:1},8,["lat-lng"])):M("",!0)}}),Tnt=e=>(rt("data-v-02ef686a"),e=e(),ot(),e),hnt={id:"workout-map"},Snt={key:0,class:"leaflet-container"},Ant={key:1},Ont=Tnt(()=>d("i",{class:"fa fa-refresh","aria-hidden":"true"},null,-1)),gnt={key:1,class:"no-map"},Int=te({__name:"index",props:{workoutData:{},markerCoordinates:{default:()=>({})}},setup(e){const t=e,n=ke(),{workoutData:a,markerCoordinates:s}=me(t),r=de(null),o=w(()=>R()),i=w(()=>n.getters[K.GETTERS.APP_CONFIG]),u=w(()=>T(o)),l=w(()=>t.workoutData&&t.workoutData.gpx?p(t.workoutData.gpx):{}),c=w(()=>t.workoutData&&t.workoutData.chartData.length>0?{latitude:t.workoutData.chartData[0].latitude,longitude:t.workoutData.chartData[0].longitude}:{}),f=w(()=>t.workoutData&&t.workoutData.chartData.length>0?{latitude:t.workoutData.chartData[t.workoutData.chartData.length-1].latitude,longitude:t.workoutData.chartData[t.workoutData.chartData.length-1].longitude}:{}),E=de(!1);function p(S){if(!S||S!=="")try{return{jsonData:Vtt(new DOMParser().parseFromString(S,"text/xml"))}}catch{return console.error("Invalid gpx content"),{}}return{}}function T(S){return[(S.value[0][0]+S.value[1][0])/2,(S.value[0][1]+S.value[1][1])/2]}function O(S){var A,v;(A=r.value)!=null&&A.leafletObject&&((v=r.value)==null||v.leafletObject.fitBounds(S))}function R(){return t.workoutData?[[t.workoutData.workout.bounds[0],t.workoutData.workout.bounds[1]],[t.workoutData.workout.bounds[2],t.workoutData.workout.bounds[3]]]:[]}function g(){var S;(S=r.value)==null||S.leafletObject.fitBounds(R())}function N(){E.value=!E.value,E.value||setTimeout(()=>{g()},100)}return(S,A)=>{const v=oe("VFullscreen");return h(),I("div",hnt,[m(a).loading?(h(),I("div",Snt)):(h(),I("div",Ant,[m(a).workout.with_gpx?(h(),Y(v,{key:0,modelValue:E.value,"onUpdate:modelValue":A[1]||(A[1]=D=>E.value=D)},{default:le(()=>[d("div",{class:Te(["leaflet-container",{"fullscreen-map":E.value}])},[l.value.jsonData&&u.value&&o.value.length===2?(h(),Y(m(unt),{key:0,zoom:13,maxZoom:19,center:u.value,bounds:o.value,zoomAnimation:!1,ref_key:"workoutMap",ref:r,onReady:A[0]||(A[0]=D=>O(o.value)),"use-global-leaflet":!1,class:"map","aria-label":S.$t("workouts.WORKOUT_MAP")},{default:le(()=>[F(m(nnt)),F(m(d0),{position:"topleft",class:"map-control",tabindex:"0",role:"button","aria-label":S.$t("workouts.RESET_ZOOM"),onClick:g},{default:le(()=>[Ont]),_:1},8,["aria-label"]),F(m(d0),{position:"topleft",class:"map-control",tabindex:"0",role:"button","aria-label":S.$t(`workouts.${E.value?"EXIT":"VIEW"}_FULLSCREEN`),onClick:N},{default:le(()=>[d("i",{class:Te(`fa fa-${E.value?"compress":"arrows-alt"}`),"aria-hidden":"true"},null,2)]),_:1},8,["aria-label"]),F(m(_nt),{url:`${m(Bo)()}workouts/map_tile/{s}/{z}/{x}/{y}.png`,attribution:i.value.map_attribution,bounds:o.value},null,8,["url","attribution","bounds"]),F(m(snt),{geojson:l.value.jsonData},null,8,["geojson"]),m(s).latitude?(h(),Y(m(wg),{key:0,"lat-lng":[m(s).latitude,m(s).longitude]},null,8,["lat-lng"])):M("",!0),F(m(int),{name:S.$t("workouts.START_AND_FINISH"),"layer-type":"overlay"},{default:le(()=>[c.value.latitude?(h(),Y(m0,{key:0,markerCoordinates:c.value,isStart:!0},null,8,["markerCoordinates"])):M("",!0),f.value.latitude?(h(),Y(m0,{key:1,markerCoordinates:f.value,isStart:!1},null,8,["markerCoordinates"])):M("",!0)]),_:1},8,["name"])]),_:1},8,["center","bounds","aria-label"])):M("",!0)],2)]),_:1},8,["modelValue"])):(h(),I("div",gnt,_(S.$t("workouts.NO_MAP")),1))]))])}}}),Rnt=ie(Int,[["__scopeId","data-v-02ef686a"]]),Nnt={class:"workout-detail"},vnt={class:"workout-map-data"},bnt={key:0,class:"workout-equipments"},Cnt=te({__name:"index",props:{authUser:{},displaySegment:{type:Boolean},sports:{},workoutData:{},markerCoordinates:{default:()=>({})}},setup(e){const t=e,n=yt(),a=ke(),{authUser:s,markerCoordinates:r,workoutData:o}=me(t),i=w(()=>t.workoutData.workout),u=de(n.params.workoutId?+n.params.segmentId:null),l=w(()=>i.value.segments.length>0&&u.value?i.value.segments[+u.value-1]:null),c=de(!1),f=w(()=>t.sports?t.sports.find(S=>S.id===t.workoutData.workout.sport_id):{}),E=w(()=>T(i.value,l.value));function p(S,A,v){const D=A&&v&&v!==1?`/workouts/${S.id}/segment/${v-1}`:!A&&S.previous_workout?`/workouts/${S.previous_workout}`:null,y=A&&v&&vn.params.segmentId,async S=>{u.value=S?+S:null,N()}),Me(()=>n.params.workoutId,async S=>{S&&(c.value=!1,N())}),(S,A)=>{const v=oe("Modal"),D=oe("Card");return h(),I("div",Nnt,[c.value?(h(),Y(v,{key:0,title:S.$t("common.CONFIRMATION"),message:S.$t("workouts.WORKOUT_DELETION_CONFIRMATION"),onConfirmAction:A[0]||(A[0]=y=>g(E.value.workoutId)),onCancelAction:R,onKeydown:Je(R,["esc"])},null,8,["title","message"])):M("",!0),F(D,null,{title:le(()=>[f.value?(h(),Y(ket,{key:0,sport:f.value,workoutObject:E.value,onDisplayModal:A[1]||(A[1]=y=>O(!0))},null,8,["sport","workoutObject"])):M("",!0)]),content:le(()=>[d("div",vnt,[F(Rnt,{workoutData:m(o),markerCoordinates:m(r)},null,8,["workoutData","markerCoordinates"]),F(Utt,{workoutObject:E.value,useImperialUnits:m(s).imperial_units,displayHARecord:m(s).display_ascent},null,8,["workoutObject","useImperialUnits","displayHARecord"])]),E.value.equipments?(h(),I("div",bnt,[(h(!0),I(pe,null,Pe(E.value.equipments,y=>(h(),Y(ZO,{equipment:y,"workout-id":E.value.workoutId,key:y.label},null,8,["equipment","workout-id"]))),128))])):M("",!0)]),_:1})])}}}),Dnt=ie(Cnt,[["__scopeId","data-v-18a9d144"]]),Pnt=e=>{const t=document.getElementById(e);if(t){let n=t.querySelector("ul");return n||(n=document.createElement("ul"),t.appendChild(n)),n}throw new Error("No legend container")},ynt={id:"htmlLegend",afterUpdate(e,t,n){var r,o,i,u,l,c;const a=Pnt(n.containerID);for(;a.firstChild;)a.firstChild.remove();((i=(o=(r=e.options.plugins)==null?void 0:r.legend)==null?void 0:o.labels)!=null&&i.generateLabels?(c=(l=(u=e.options.plugins)==null?void 0:u.legend)==null?void 0:l.labels)==null?void 0:c.generateLabels(e):[]).forEach(f=>{var g,N,S;if(!((S=(N=(g=e.config.options)==null?void 0:g.scales)==null?void 0:N.yElevation)!=null&&S.display)&&f.datasetIndex===1)return;const E=document.createElement("li");E.onclick=A=>{A.preventDefault(),f.datasetIndex!==void 0&&(e.setDatasetVisibility(f.datasetIndex,!e.isDatasetVisible(f.datasetIndex)),e.update())};const p=document.createElement("input");p&&(p.type="checkbox",p.id=f.text,p.checked=!f.hidden);const T=document.createElement("label");T.htmlFor=p.id;const O=document.createTextNode(f.text);T.appendChild(O);const R=document.createElement("span");R&&(R.style.background=String(f.fillStyle),R.style.borderColor=String(f.strokeStyle)),T.appendChild(R),E.appendChild(p),E.appendChild(T),a.appendChild(E)})}},Lnt=e=>(rt("data-v-727b605c"),e=e(),ot(),e),$nt={id:"workout-chart"},knt={class:"chart-radio"},Unt=["checked"],wnt=["checked"],Mnt=Lnt(()=>d("div",{id:"chart-legend"},null,-1)),Fnt={class:"line-chart"},Wnt={class:"chart-info"},znt={class:"no-data-cleaning"},xnt={key:0,class:"elevation-start"},Bnt=["checked"],Gnt=te({__name:"index",props:{authUser:{},workoutData:{}},emits:["getCoordinates"],setup(e,{emit:t}){const n=e,a=t,s=Ho(),{t:r}=kt(),{authUser:o,workoutData:i}=me(n),u=w(()=>s.getters[K.GETTERS.DARK_MODE]),l=w(()=>Rl(u.value)),c=de(!0),f=de(o.value.start_elevation_at_zero),E=w(()=>oqe(i.value.chartData,r,o.value.imperial_units,l.value)),p=w(()=>E.value&&E.value.datasets.elevation.data.length>0),T=z("km"),O=z("m"),R=w(()=>({labels:c.value?E.value.distance_labels:E.value.duration_labels,datasets:JSON.parse(JSON.stringify([E.value.datasets.speed,E.value.datasets.elevation]))})),g=w(()=>E.value.coordinates),N=w(()=>({color:l.value?Xa.darkMode.line:Xa.ligthMode.line})),S=w(()=>({color:l.value?Xa.darkMode.text:Xa.ligthMode.text})),A=w(()=>({responsive:!0,maintainAspectRatio:!1,animation:!1,layout:{padding:{top:22}},scales:{x:{grid:{drawOnChartArea:!1,...N.value},border:{...N.value},ticks:{count:10,callback:function(L){return c.value?Number(L).toFixed(2):y(L)},...S.value},type:"linear",bounds:"data",title:{display:!0,text:c.value?r("workouts.DISTANCE")+` (${T})`:r("workouts.DURATION"),...S.value}},ySpeed:{grid:{drawOnChartArea:!1,...N.value},border:{...N.value},position:"left",title:{display:!0,text:r("workouts.SPEED")+` (${T}/h)`,...S.value},ticks:{...S.value}},yElevation:{beginAtZero:f.value,display:p.value,grid:{drawOnChartArea:!1,...N.value},border:{...N.value},position:"right",title:{display:!0,text:r("workouts.ELEVATION")+` (${O})`,...S.value},ticks:{...S.value}}},elements:{point:{pointStyle:"circle",pointRadius:0}},plugins:{datalabels:{display:!1},tooltip:{interaction:{intersect:!1,mode:"index"},callbacks:{label:function(L){const W=` ${L.dataset.label}: ${L.formattedValue}`;return L.dataset.yAxisID==="yElevation"?W+` ${O}`:W+` ${T}/h`},title:function(L){return L.length>0&&b(g.value[L[0].dataIndex]),L.length===0?"":c.value?`${r("workouts.DISTANCE")}: ${L[0].label} ${T}`:`${r("workouts.DURATION")}: ${y(L[0].label.replace(",",""))}`}}},legend:{display:!1},htmlLegend:{containerID:"chart-legend",displayElevation:p.value}}})),v=[ynt];function D(){c.value=!c.value}function y(L){return new Date(+L*1e3).toISOString().substr(11,8)}function b(L){a("getCoordinates",L)}function k(){b({latitude:null,longitude:null})}function z(L){return n.authUser.imperial_units?mn[L].defaultTarget:L}return(L,W)=>{const X=oe("Card");return h(),I("div",$nt,[F(X,null,{title:le(()=>[V(_(L.$t("workouts.ANALYSIS")),1)]),content:le(()=>[d("div",knt,[d("label",null,[d("input",{type:"radio",name:"distance",checked:c.value,onClick:D},null,8,Unt),V(" "+_(L.$t("workouts.DISTANCE")),1)]),d("label",null,[d("input",{type:"radio",name:"duration",checked:!c.value,onClick:D},null,8,wnt),V(" "+_(L.$t("workouts.DURATION")),1)])]),Mnt,d("div",Fnt,[F(m(iYe),{data:R.value,options:A.value,plugins:v,onMouseleave:k,"aria-label":L.$t("workouts.WORKOUT_CHART")},null,8,["data","options","aria-label"])]),d("div",Wnt,[d("div",znt,_(L.$t("workouts.NO_DATA_CLEANING")),1),p.value?(h(),I("div",xnt,[d("label",null,[d("input",{type:"checkbox",checked:f.value,onClick:W[0]||(W[0]=re=>f.value=!f.value)},null,8,Bnt),V(" "+_(L.$t("workouts.START_ELEVATION_AT_ZERO")),1)])])):M("",!0)])]),_:1})])}}}),Hnt=ie(Gnt,[["__scopeId","data-v-727b605c"]]),Vnt={id:"workout-note"},jnt=["innerHTML"],Knt=te({__name:"WorkoutNotes",props:{notes:{default:()=>""}},setup(e){const t=e,{notes:n}=me(t);return(a,s)=>{const r=oe("Card");return h(),I("div",Vnt,[F(r,null,{title:le(()=>[V(_(a.$t("workouts.NOTES")),1)]),content:le(()=>[d("span",{innerHTML:m(n)&&m(n)!==""?m(Lo)(m(n)):a.$t("workouts.NO_NOTES")},null,8,jnt)]),_:1})])}}}),qnt=ie(Knt,[["__scopeId","data-v-f3e81eff"]]),Ynt={id:"workout-segments"},Xnt=te({__name:"WorkoutSegments",props:{segments:{},useImperialUnits:{type:Boolean}},setup(e){const t=e,{segments:n,useImperialUnits:a}=me(t);return(s,r)=>{const o=oe("router-link"),i=oe("Distance"),u=oe("Card");return h(),I("div",Ynt,[F(u,null,{title:le(()=>[V(_(s.$t("workouts.SEGMENT",2)),1)]),content:le(()=>[d("ul",null,[(h(!0),I(pe,null,Pe(m(n),(l,c)=>(h(),I("li",{key:l.segment_id},[F(o,{to:{name:"WorkoutSegment",params:{workoutId:l.workout_id,segmentId:c+1}}},{default:le(()=>[V(_(s.$t("workouts.SEGMENT",1))+" "+_(c+1),1)]),_:2},1032,["to"]),V(" ("+_(s.$t("workouts.DISTANCE"))+": ",1),F(i,{distance:l.distance,unitFrom:"km",useImperialUnits:m(a)},null,8,["distance","useImperialUnits"]),V(", "+_(s.$t("workouts.DURATION"))+": "+_(l.duration)+") ",1)]))),128))])]),_:1})])}}}),Qnt=ie(Xnt,[["__scopeId","data-v-15725c61"]]),Znt=e=>(rt("data-v-eac6aa4b"),e=e(),ot(),e),Jnt={id:"workout",class:"view"},eat={class:"container"},tat={key:0,class:"workout-container"},nat={key:0},aat=Znt(()=>d("div",{id:"bottom"},null,-1)),sat={key:1},rat=te({__name:"Workout",props:{displaySegment:{type:Boolean}},setup(e){const t=e,n=yt(),a=ke(),{displaySegment:s}=me(t),r=w(()=>a.getters[Re.GETTERS.WORKOUT_DATA]),o=w(()=>a.getters[Q.GETTERS.AUTH_USER_PROFILE]),i=w(()=>a.getters[Dt.GETTERS.SPORTS]),u=de({latitude:null,longitude:null});ft(()=>{const c={workoutId:n.params.workoutId};t.displaySegment&&(c.segmentId=n.params.segmentId),a.dispatch(Re.ACTIONS.GET_WORKOUT_DATA,c)}),pt(()=>{a.commit(Re.MUTATIONS.EMPTY_WORKOUT)});function l(c){u.value={latitude:c.latitude,longitude:c.longitude}}return Me(()=>n.params.workoutId,async c=>{c&&a.dispatch(Re.ACTIONS.GET_WORKOUT_DATA,{workoutId:c})}),Me(()=>n.params.segmentId,async c=>{if(n.params.workoutId){const f={workoutId:n.params.workoutId};c&&(f.segmentId=c),a.dispatch(Re.ACTIONS.GET_WORKOUT_DATA,f)}}),(c,f)=>(h(),I("div",Jnt,[d("div",eat,[i.value.length>0?(h(),I("div",tat,[r.value.workout.id?(h(),I("div",nat,[F(Dnt,{workoutData:r.value,sports:i.value,authUser:o.value,markerCoordinates:u.value,displaySegment:m(s)},null,8,["workoutData","sports","authUser","markerCoordinates","displaySegment"]),r.value.workout.with_gpx&&r.value.chartData.length>0?(h(),Y(Hnt,{key:0,workoutData:r.value,authUser:o.value,displaySegment:m(s),onGetCoordinates:l},null,8,["workoutData","authUser","displaySegment"])):M("",!0),!m(s)&&r.value.workout.segments.length>1?(h(),Y(Qnt,{key:1,segments:r.value.workout.segments,useImperialUnits:o.value.imperial_units},null,8,["segments","useImperialUnits"])):M("",!0),m(s)?M("",!0):(h(),Y(qnt,{key:2,notes:r.value.workout.notes},null,8,["notes"])),aat])):(h(),I("div",sat,[r.value.loading?M("",!0):(h(),Y(qf,{key:0,target:"WORKOUT"}))]))])):M("",!0)])]))}}),_0=ie(rat,[["__scopeId","data-v-eac6aa4b"]]),sp=e=>(rt("data-v-2ab387eb"),e=e(),ot(),e),oat={class:"workouts-filters"},iat={class:"box"},uat={class:"form-all-items"},lat={class:"form-items-group"},cat={class:"form-item"},dat={for:"from"},Eat=["value"],fat={class:"form-item"},pat={for:"to"},mat=["value"],_at={class:"form-item"},Tat={for:"sport_id"},hat=["value"],Sat=sp(()=>d("option",{value:""},null,-1)),Aat=["value"],Oat={class:"form-item form-item-equipment"},gat=["value"],Iat=sp(()=>d("option",{value:""},null,-1)),Rat={key:0,value:"",disabled:"",selected:""},Nat={value:"none"},vat=sp(()=>d("option",{disabled:""},"---",-1)),bat=["label"],Cat=["value"],Dat={class:"form-items-group"},Pat={class:"form-item form-item-text"},yat={for:"title"},Lat={class:"form-inputs-group"},$at=["value"],kat={class:"form-item form-item-text"},Uat={for:"notes"},wat={class:"form-inputs-group"},Mat=["value"],Fat={class:"form-items-group"},Wat={class:"form-item"},zat={class:"form-inputs-group"},xat=["value"],Bat=["value"],Gat={class:"form-item"},Hat={class:"form-inputs-group"},Vat=["value"],jat=["value"],Kat={class:"form-items-group"},qat={class:"form-item"},Yat={class:"form-inputs-group"},Xat=["value"],Qat=["value"],Zat={class:"form-item"},Jat={class:"form-inputs-group"},est=["value"],tst=["value"],nst={class:"form-button"},ast=te({__name:"WorkoutsFilters",props:{authUser:{},sports:{}},emits:["filter"],setup(e,{emit:t}){const n=e,a=t,{t:s}=kt(),r=Ho(),o=yt(),i=ca(),{authUser:u}=me(n),l=u.value.imperial_units?mn.km.defaultTarget:"km",c=w(()=>Mn(n.sports,s)),f=w(()=>R(r.getters[we.GETTERS.EQUIPMENTS]));let E=Object.assign({},o.query);St(()=>{const g=document.getElementById("from");g&&g.focus()});function p(g){const N=g.target.name,S=g.target.value;S===""?delete E[N]:E[N]=S}function T(){a("filter"),"page"in E&&(E.page="1"),i.push({path:"/workouts",query:E})}function O(){a("filter"),i.push({path:"/workouts",query:{}})}function R(g){const N={};return g.filter(S=>S.workouts_count>0).map(S=>{const A=s(`equipment_types.${S.equipment_type.label}.LABEL`);A in N?N[A].push(S):N[A]=[S]}),N}return Me(()=>o.query,g=>{E=Object.assign({},g)}),(g,N)=>(h(),I("div",oat,[d("div",iat,[d("form",{onSubmit:N[0]||(N[0]=be(()=>{},["prevent"])),class:"form"},[d("div",uat,[d("div",lat,[d("div",cat,[d("label",dat,_(g.$t("workouts.FROM"))+": ",1),d("input",{id:"from",name:"from",type:"date",value:g.$route.query.from,onChange:p},null,40,Eat)]),d("div",fat,[d("label",pat,_(g.$t("workouts.TO"))+": ",1),d("input",{id:"to",name:"to",type:"date",value:g.$route.query.to,onChange:p},null,40,mat)]),d("div",_at,[d("label",Tat,_(g.$t("workouts.SPORT",1))+":",1),d("select",{id:"sport_id",name:"sport_id",value:g.$route.query.sport_id,onChange:p,onKeyup:Je(T,["enter"])},[Sat,(h(!0),I(pe,null,Pe(c.value.filter(S=>m(u).sports_list.includes(S.id)),S=>(h(),I("option",{value:S.id,key:S.id},_(S.translatedLabel),9,Aat))),128))],40,hat)]),d("div",Oat,[d("label",null,_(g.$t("equipments.EQUIPMENT",1))+":",1),d("select",{name:"equipment_id",value:g.$route.query.equipment_id,onChange:p,onKeyup:Je(T,["enter"])},[Iat,Object.keys(f.value).length==0?(h(),I("option",Rat,_(g.$t("equipments.NO_EQUIPMENTS")),1)):M("",!0),Object.keys(f.value).length>0?(h(),I(pe,{key:1},[d("option",Nat,_(g.$t("equipments.WITHOUT_EQUIPMENTS")),1),vat],64)):M("",!0),(h(!0),I(pe,null,Pe(Object.keys(f.value).sort(),S=>(h(),I("optgroup",{label:S,key:S},[(h(!0),I(pe,null,Pe(f.value[S].sort(m(wf)),A=>(h(),I("option",{value:A.id,key:A.id},_(A.label),9,Cat))),128))],8,bat))),128))],40,gat)])]),d("div",Dat,[d("div",Pat,[d("label",yat,_(g.$t("workouts.TITLE",1))+":",1),d("div",Lat,[d("input",{id:"title",class:"text",name:"title",value:g.$route.query.title,onChange:p,placeholder:"",type:"text",onKeyup:Je(T,["enter"])},null,40,$at)])]),d("div",kat,[d("label",Uat,_(g.$t("workouts.NOTES"))+":",1),d("div",wat,[d("input",{id:"notes",class:"text",name:"notes",value:g.$route.query.notes,onChange:p,placeholder:"",type:"text",onKeyup:Je(T,["enter"])},null,40,Mat)])])]),d("div",Fat,[d("div",Wat,[d("label",null,_(g.$t("workouts.DISTANCE"))+" ("+_(m(l))+"): ",1),d("div",zat,[d("input",{name:"distance_from",type:"number",min:"0",step:"0.1",value:g.$route.query.distance_from,onChange:p,onKeyup:Je(T,["enter"])},null,40,xat),d("span",null,_(g.$t("workouts.TO")),1),d("input",{name:"distance_to",type:"number",min:"0",step:"0.1",value:g.$route.query.distance_to,onChange:p,onKeyup:Je(T,["enter"])},null,40,Bat)])]),d("div",Gat,[d("label",null,_(g.$t("workouts.DURATION"))+": ",1),d("div",Hat,[d("input",{name:"duration_from",value:g.$route.query.duration_from,onChange:p,pattern:"^([0-9]*[0-9]):([0-5][0-9])$",placeholder:"hh:mm",type:"text",onKeyup:Je(T,["enter"])},null,40,Vat),d("span",null,_(g.$t("workouts.TO")),1),d("input",{name:"duration_to",value:g.$route.query.duration_to,onChange:p,pattern:"^([0-9]*[0-9]):([0-5][0-9])$",placeholder:"hh:mm",type:"text",onKeyup:Je(T,["enter"])},null,40,jat)])])]),d("div",Kat,[d("div",qat,[d("label",null,_(g.$t("workouts.AVE_SPEED"))+" ("+_(m(l))+"/h): ",1),d("div",Yat,[d("input",{min:"0",name:"ave_speed_from",value:g.$route.query.ave_speed_from,onChange:p,step:"0.1",type:"number",onKeyup:Je(T,["enter"])},null,40,Xat),d("span",null,_(g.$t("workouts.TO")),1),d("input",{min:"0",name:"ave_speed_to",value:g.$route.query.ave_speed_to,onChange:p,step:"0.1",type:"number",onKeyup:Je(T,["enter"])},null,40,Qat)])]),d("div",Zat,[d("label",null,_(g.$t("workouts.MAX_SPEED"))+" ("+_(m(l))+"/h): ",1),d("div",Jat,[d("input",{min:"0",name:"max_speed_from",value:g.$route.query.max_speed_from,onChange:p,step:"0.1",type:"number",onKeyup:Je(T,["enter"])},null,40,est),d("span",null,_(g.$t("workouts.TO")),1),d("input",{min:"0",name:"max_speed_to",value:g.$route.query.max_speed_to,onChange:p,step:"0.1",type:"number",onKeyup:Je(T,["enter"])},null,40,tst)])])])]),d("div",nst,[d("button",{type:"submit",class:"confirm",onClick:T},_(g.$t("buttons.FILTER")),1),d("button",{class:"confirm",onClick:O},_(g.$t("buttons.CLEAR_FILTER")),1)])],32)])]))}}),sst=ie(ast,[["__scopeId","data-v-2ab387eb"]]),Fg=e=>(rt("data-v-f1b11684"),e=e(),ot(),e),rst={class:"workouts-list"},ost={class:"total"},ist={class:"total-label"},ust={key:0},lst={key:0,class:"workouts-table responsive-table"},cst=Fg(()=>d("th",{class:"sport-col"},null,-1)),dst={class:"sport-col"},Est={class:"cell-heading"},fst=["onMouseover"],pst={class:"cell-heading"},mst={key:0,class:"fa fa-map-o","aria-hidden":"true"},_st={class:"title"},Tst={class:"workout-date"},hst={class:"cell-heading"},Sst={class:"text-right"},Ast={class:"cell-heading"},Ost={class:"text-right"},gst={class:"cell-heading"},Ist={class:"text-right"},Rst={class:"cell-heading"},Nst={class:"text-right"},vst={class:"cell-heading"},bst={class:"text-right"},Cst={class:"cell-heading"},Dst={class:"text-right"},Pst={class:"cell-heading"},yst=Fg(()=>d("div",{id:"bottom"},null,-1)),Lst=te({__name:"WorkoutsList",props:{user:{},sports:{}},setup(e){const t=e,n=ke(),a=yt(),s=ca(),{user:r,sports:o}=me(t),i=["ave_speed","distance","duration","workout_date"],u=w(()=>n.getters[Re.GETTERS.USER_WORKOUTS]),l=w(()=>n.getters[Re.GETTERS.WORKOUTS_PAGINATION]),c=w(()=>n.getters[K.GETTERS.LANGUAGE]);let f=O(a.query);const E=de(null);ft(()=>{p(f),n.dispatch(we.ACTIONS.GET_EQUIPMENTS)});function p(N){n.dispatch(Re.ACTIONS.GET_USER_WORKOUTS,r.value.imperial_units?R(N):N)}function T(N,S){const A=Object.assign({},a.query);A[N]=S,N==="per_page"&&(A.page="1"),f=O(A),s.push({path:"/workouts",query:f})}function O(N){const S=uE(N,i,ko.order_by,{defaultSort:ko.order});return Object.keys(N).filter(A=>F7e.includes(A)).map(A=>{typeof N[A]=="string"&&(S[A]=N[A])}),S}function R(N){const S={...N};return Object.entries(S).map(A=>{A[0].match("speed|distance")&&A[1]&&(S[A[0]]=xt(+A[1],"mi","km"))}),S}function g(N){E.value=N}return Me(()=>a.query,async N=>{f=O(N),p(f)}),(N,S)=>{const A=oe("SportImage"),v=oe("router-link"),D=oe("Distance");return h(),I("div",rst,[d("div",{class:Te(["box",{"empty-table":u.value.length===0}])},[d("div",ost,[d("span",ist,_(N.$t("common.TOTAL").toLowerCase())+": ",1),l.value.total?(h(),I("span",ust,_(l.value.total)+" "+_(N.$t("workouts.WORKOUT",l.value.total)),1)):M("",!0)]),F(IO,{sort:m(Bf),order_by:i,query:m(f),message:"workouts",onUpdateSelect:T},null,8,["sort","query"]),u.value.length>0?(h(),I("div",lst,[F(tl,{class:"top-pagination",pagination:l.value,path:"/workouts",query:m(f)},null,8,["pagination","query"]),d("table",null,[d("thead",{class:Te({smaller:c.value==="de"})},[d("tr",null,[cst,d("th",null,_(He(N.$t("workouts.WORKOUT",1))),1),d("th",null,_(He(N.$t("workouts.DATE"))),1),d("th",null,_(He(N.$t("workouts.DISTANCE"))),1),d("th",null,_(He(N.$t("workouts.DURATION"))),1),d("th",null,_(He(N.$t("workouts.AVE_SPEED"))),1),d("th",null,_(He(N.$t("workouts.MAX_SPEED"))),1),d("th",null,_(He(N.$t("workouts.ASCENT"))),1),d("th",null,_(He(N.$t("workouts.DESCENT"))),1)])],2),d("tbody",null,[(h(!0),I(pe,null,Pe(u.value,y=>(h(),I("tr",{key:y.id},[d("td",dst,[d("span",Est,_(N.$t("workouts.SPORT",1)),1),m(o).length>0?(h(),Y(A,{key:0,title:m(o).filter(b=>b.id===y.sport_id)[0].translatedLabel,"sport-label":m(Wf)(y,m(o)),color:m(zf)(y,m(o))},null,8,["title","sport-label","color"])):M("",!0)]),d("td",{class:"workout-title",onMouseover:b=>g(y.id),onMouseleave:S[0]||(S[0]=b=>g(null))},[d("span",pst,_(He(N.$t("workouts.WORKOUT",1))),1),F(v,{class:"nav-item",to:{name:"Workout",params:{workoutId:y.id}}},{default:le(()=>[y.with_gpx?(h(),I("i",mst)):M("",!0),d("span",_st,_(y.title),1)]),_:2},1032,["to"]),y.with_gpx&&E.value===y.id?(h(),Y(tg,{key:0,workout:y,"display-hover":!0},null,8,["workout"])):M("",!0)],40,fst),d("td",Tst,[d("span",hst,_(N.$t("workouts.DATE")),1),d("time",null,_(m(Wn)(y.workout_date,m(r).timezone,m(r).date_format)),1)]),d("td",Sst,[d("span",Ast,_(N.$t("workouts.DISTANCE")),1),y.distance!==null?(h(),Y(D,{key:0,distance:y.distance,unitFrom:"km",useImperialUnits:m(r).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),d("td",Ost,[d("span",gst,_(N.$t("workouts.DURATION")),1),V(" "+_(y.moving),1)]),d("td",Ist,[d("span",Rst,_(N.$t("workouts.AVE_SPEED")),1),y.ave_speed!==null?(h(),Y(D,{key:0,distance:y.ave_speed,unitFrom:"km",speed:!0,useImperialUnits:m(r).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),d("td",Nst,[d("span",vst,_(N.$t("workouts.MAX_SPEED")),1),y.max_speed!==null?(h(),Y(D,{key:0,distance:y.max_speed,unitFrom:"km",speed:!0,useImperialUnits:m(r).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),d("td",bst,[d("span",Cst,_(N.$t("workouts.ASCENT")),1),y.ascent!==null?(h(),Y(D,{key:0,distance:y.ascent,unitFrom:"m",useImperialUnits:m(r).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),d("td",Dst,[d("span",Pst,_(N.$t("workouts.DESCENT")),1),y.descent!==null?(h(),Y(D,{key:0,distance:y.descent,unitFrom:"m",useImperialUnits:m(r).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)])]))),128))])]),F(tl,{pagination:l.value,path:"/workouts",query:m(f)},null,8,["pagination","query"])])):M("",!0)],2),u.value.length===0?(h(),Y(Xf,{key:0})):M("",!0),yst])}}}),$st=ie(Lst,[["__scopeId","data-v-f1b11684"]]),kst={key:0,id:"workouts",class:"view"},Ust={class:"container workouts-container"},wst={class:"display-filters"},Mst={class:"list-container"},Fst=te({__name:"WorkoutsView",setup(e){const{t}=kt(),n=ke(),a=w(()=>n.getters[Q.GETTERS.AUTH_USER_PROFILE]),s=w(()=>n.getters[Dt.GETTERS.SPORTS]),r=w(()=>Mn(s.value,t)),o=de(!0);function i(){o.value=!o.value}return(u,l)=>a.value.username?(h(),I("div",kst,[d("div",Ust,[d("div",{class:Te(["filters-container",{hidden:o.value}])},[F(sst,{sports:r.value,authUser:a.value,onFilter:i},null,8,["sports","authUser"])],2),d("div",wst,[d("div",{onClick:i},[d("i",{class:Te(`fa fa-caret-${o.value?"down":"up"}`),"aria-hidden":"true"},null,2),d("span",null,_(u.$t(`workouts.${o.value?"DISPLAY":"HIDE"}_FILTERS`)),1)])]),d("div",Mst,[F($st,{user:a.value,sports:r.value},null,8,["user","sports"])])])])):M("",!0)}}),Wst=ie(Fst,[["__scopeId","data-v-3fa59b88"]]),{t:T0}=Us.global,h0=e=>{const t=/(\/profile)(\/edit)*(\/*)/,n=e.replace(t,"").toUpperCase();return n===""?"PROFILE":n.split("/")[0].toUpperCase()},zst=[{path:"/",name:"Dashboard",component:CXe,meta:{title:"dashboard.DASHBOARD"}},{path:"/login",name:"Login",component:o0,props:{action:"login"},meta:{title:"user.LOGIN",withoutAuth:!0}},{path:"/register",name:"Register",component:o0,props:{action:"register"},meta:{title:"user.REGISTER",withoutAuth:!0}},{path:"/account-confirmation",name:"AccountConfirmation",component:RZe,meta:{title:"user.ACCOUNT_CONFIRMATION",withoutAuth:!0}},{path:"/account-confirmation/resend",name:"AccountConfirmationResend",component:r0,props:{action:"account-confirmation-resend"},meta:{title:"buttons.ACCOUNT-CONFIRMATION-RESEND",withoutAuth:!0}},{path:"/account-confirmation/email-sent",name:"AccountConfirmationEmailSend",component:r0,props:{action:"email-sent"},meta:{title:"buttons.ACCOUNT-CONFIRMATION-RESEND",withoutAuth:!0}},{path:"/password-reset/sent",name:"PasswordEmailSent",component:Li,props:{action:"request-sent"},meta:{title:"user.PASSWORD_RESET",withoutAuth:!0}},{path:"/password-reset/request",name:"PasswordResetRequest",component:Li,props:{action:"reset-request"},meta:{title:"user.PASSWORD_RESET",withoutAuth:!0}},{path:"/password-reset/password-updated",name:"PasswordUpdated",component:Li,props:{action:"password-updated"},meta:{title:"user.PASSWORD_RESET",withoutAuth:!0}},{path:"/password-reset",name:"PasswordReset",component:Li,props:{action:"reset"},meta:{title:"user.PASSWORD_RESET",withoutAuth:!0}},{path:"/email-update",name:"EmailUpdate",component:CZe,meta:{title:"user.EMAIL_UPDATE",withoutChecks:!0}},{path:"/profile",name:"Profile",component:tJe,children:[{path:"",name:"UserProfile",component:dFe,props:e=>({tab:h0(e.path)}),children:[{path:"",name:"UserInfos",component:$O,meta:{title:"user.PROFILE.TABS.PROFILE"}},{path:"preferences",name:"UserPreferences",component:$Fe,meta:{title:"user.PROFILE.TABS.PREFERENCES"}},{path:"sports",name:"UserSports",component:YT,props:{isEdition:!1},meta:{title:"user.PROFILE.TABS.SPORTS"},children:[{path:"",name:"UserSportPreferences",component:XT,meta:{title:"user.PROFILE.TABS.SPORTS"}},{path:":id",name:"UserSport",component:ZVe,meta:{title:"user.PROFILE.TABS.SPORTS"}}]},{path:"apps",name:"UserApps",component:GGe,children:[{path:"",name:"UserAppsList",component:lHe,meta:{title:"user.PROFILE.TABS.APPS"}},{path:":id",name:"UserApp",component:HT,meta:{title:"user.PROFILE.TABS.APPS"}},{path:":id/created",name:"CreatedUserApp",component:HT,props:{afterCreation:!0},meta:{title:"user.PROFILE.TABS.APPS"}},{path:"new",name:"AddUserApp",component:PGe,meta:{title:"user.PROFILE.TABS.APPS"}},{path:"authorize",name:"AuthorizeUserApp",component:xGe,meta:{title:"user.PROFILE.TABS.APPS"}}]},{path:"equipments",name:"UserEquipments",component:KT,props:{isEdition:!1},children:[{path:"",name:"UserEquipmentsList",component:qT,meta:{title:"user.PROFILE.TABS.EQUIPMENTS"}},{path:"new",name:"AddEquipment",component:jT,meta:{title:"user.PROFILE.TABS.EQUIPMENTS"}},{path:":id",name:"Equipment",component:_Ve,meta:{title:"user.PROFILE.TABS.EQUIPMENTS"}}]}]},{path:"edit",name:"UserProfileEdition",component:UFe,props:e=>({tab:h0(e.path)}),children:[{path:"",name:"UserInfosEdition",component:Wxe,meta:{title:"user.PROFILE.EDIT"}},{path:"account",name:"UserAccountEdition",component:Ixe,meta:{title:"user.PROFILE.ACCOUNT_EDITION"}},{path:"picture",name:"UserPictureEdition",component:Yxe,meta:{title:"user.PROFILE.PICTURE_EDITION"}},{path:"preferences",name:"UserPreferencesEdition",component:KBe,meta:{title:"user.PROFILE.EDIT_PREFERENCES"}},{path:"sports",name:"UserSportsEdition",component:YT,props:{isEdition:!0},meta:{title:"user.PROFILE.EDIT_SPORTS_PREFERENCES"},children:[{path:"",name:"UserSportPreferencesEdition",component:XT,meta:{title:"user.PROFILE.TABS.SPORTS"}},{path:":id",name:"UserSportEdition",component:Oje,meta:{title:"user.PROFILE.TABS.SPORTS"}}]},{path:"equipments",name:"UserEquipmentsEdition",component:KT,props:{isEdition:!0},children:[{path:"",name:"UserEquipmentsListEdition",component:qT,meta:{title:"user.PROFILE.TABS.EQUIPMENTS"}},{path:":id",name:"EquipmentEdition",component:jT,meta:{title:"user.PROFILE.TABS.EQUIPMENTS"}}]},{path:"privacy-policy",name:"UserPrivacyPolicy",component:iGe,meta:{title:"user.PROFILE.PRIVACY-POLICY_EDITION"}}]}]},{path:"/statistics",name:"Statistics",component:WQe,meta:{title:"statistics.STATISTICS"}},{path:"/users/:username",name:"User",component:i0,meta:{title:"administration.USER"}},{path:"/workouts",name:"Workouts",component:Wst,meta:{title:"workouts.WORKOUT",count:0}},{path:"/workouts/:workoutId",name:"Workout",component:_0,props:{displaySegment:!1},meta:{title:"workouts.WORKOUT"}},{path:"/workouts/:workoutId/edit",name:"EditWorkout",component:ret,meta:{title:"workouts.EDIT_WORKOUT"}},{path:"/workouts/:workoutId/segment/:segmentId",name:"WorkoutSegment",component:_0,props:{displaySegment:!0},meta:{title:"workouts.SEGMENT",count:0}},{path:"/workouts/add",name:"AddWorkout",component:net,meta:{title:"workouts.ADD_WORKOUT"}},{path:"/admin",name:"Administration",component:kKe,children:[{path:"",name:"AdministrationMenu",component:o7e,meta:{title:"admin.ADMINISTRATION"}},{path:"application",name:"ApplicationAdministration",component:AT,meta:{title:"admin.APP_CONFIG.TITLE"}},{path:"application/edit",name:"ApplicationAdministrationEdition",component:AT,props:{edition:!0},meta:{title:"admin.APPLICATION"}},{path:"equipment-types",name:"EquipmentTypeAdministration",component:GMe,meta:{title:"admin.EQUIPMENT_TYPES.TITLE"}},{path:"sports",name:"SportsAdministration",component:C7e,meta:{title:"admin.SPORTS.TITLE"}},{path:"users/:username",name:"UserFromAdmin",component:i0,props:{fromAdmin:!0},meta:{title:"admin.USER",count:1}},{path:"users",name:"UsersAdministration",component:j9e,meta:{title:"admin.USERS.TITLE"}}]},{path:"/about",name:"About",component:RKe,meta:{title:"common.ABOUT",withoutChecks:!0}},{path:"/privacy-policy",name:"PrivacyPolicy",component:kXe,meta:{title:"privacy_policy.TITLE",withoutChecks:!0}},{path:"/:pathMatch(.*)*",name:"not-found",component:PXe,meta:{title:"error.NOT_FOUND.PAGE"}}],Wg=S4e({history:KLe("/"),routes:zst});Wg.beforeEach((e,t,n)=>{if("title"in e.meta){const a=typeof e.meta.title=="string"?e.meta.title:"",s=a?typeof e.meta.count=="number"?T0(a,+e.meta.count):T0(a):"";window.document.title=`FitTrackee${a?` - ${He(s)}`:""}`}uo.dispatch(Q.ACTIONS.CHECK_AUTH_USER).then(()=>{if(e.meta.withoutChecks)return n();if(uo.getters[Q.GETTERS.IS_AUTHENTICATED]&&e.meta.withoutAuth)return n("/");if(!uo.getters[Q.GETTERS.IS_AUTHENTICATED]&&!e.meta.withoutAuth){const a=e.path==="/"?{path:"/login"}:{path:"/login",query:{from:e.fullPath}};n(a)}else n()}).catch(a=>{console.error(a),n()})});const dt=Wg;hE.register(xg,Bg,Gg,Hg,Vg,jg,Kg,S0,qg,A0,Yg,Xg);const zg=UN(Zye).provide("sportColors",Ff).use(Us).use(uo).use(dt).use(Ob,{name:"VFullscreen"}).directive("click-outside",xke);zke.forEach(e=>{zg.component(e.name,e.target)});zg.mount("#app"); diff --git a/fittrackee/emails/translations/gl/LC_MESSAGES/messages.mo b/fittrackee/emails/translations/gl/LC_MESSAGES/messages.mo index 7a0d8dbef..0d8ece08c 100644 Binary files a/fittrackee/emails/translations/gl/LC_MESSAGES/messages.mo and b/fittrackee/emails/translations/gl/LC_MESSAGES/messages.mo differ diff --git a/fittrackee/emails/translations/gl/LC_MESSAGES/messages.po b/fittrackee/emails/translations/gl/LC_MESSAGES/messages.po index bee13fc7b..7ded8afe2 100644 --- a/fittrackee/emails/translations/gl/LC_MESSAGES/messages.po +++ b/fittrackee/emails/translations/gl/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2023-03-04 10:33+0100\n" -"PO-Revision-Date: 2023-03-22 17:40+0000\n" +"PO-Revision-Date: 2024-07-05 13:09+0000\n" "Last-Translator: \"josé m.\" \n" "Language-Team: Galician \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.16.2-dev\n" +"X-Generator: Weblate 5.7-dev\n" "Generated-By: Babel 2.12.1\n" #: fittrackee/emails/templates/layout.html:215 @@ -73,7 +73,7 @@ msgstr "Usa o botón inferior para confirmar o enderezo do teu correo." #: fittrackee/emails/templates/email_update_to_new_email/body.html:11 #: fittrackee/emails/templates/email_update_to_new_email/body.txt:4 msgid "Verify your email" -msgstr "Verifica o email" +msgstr "Verifica o enderezo de correo" #: fittrackee/emails/templates/account_confirmation/body.html:18 #: fittrackee/emails/templates/account_confirmation/body.txt:7 @@ -134,11 +134,11 @@ msgstr "" #: fittrackee/emails/templates/email_update_to_current_email/body.html:2 #: fittrackee/emails/templates/email_update_to_current_email/subject.txt:1 msgid "Email changed" -msgstr "Email cambiado" +msgstr "Enderezo cambiado" #: fittrackee/emails/templates/email_update_to_current_email/body.html:3 msgid "Your email is being updated." -msgstr "Estase actualizando o enderezo de email." +msgstr "Estase actualizando o enderezo de correo." #: fittrackee/emails/templates/email_update_to_current_email/body.html:4 #: fittrackee/emails/templates/email_update_to_current_email/body.txt:1 @@ -161,7 +161,7 @@ msgstr "" #: fittrackee/emails/templates/email_update_to_new_email/body.html:2 #: fittrackee/emails/templates/email_update_to_new_email/subject.txt:1 msgid "Confirm email change" -msgstr "Confirma o cambio de email" +msgstr "Confirma o cambio de enderezo" #: fittrackee/emails/templates/email_update_to_new_email/body.html:3 msgid "Use this link to confirm email change." diff --git a/fittrackee/tests/fixtures/fixtures_app.py b/fittrackee/tests/fixtures/fixtures_app.py index 0430410a3..8c0616542 100644 --- a/fittrackee/tests/fixtures/fixtures_app.py +++ b/fittrackee/tests/fixtures/fixtures_app.py @@ -78,7 +78,7 @@ def get_app( current_app.config['UPLOAD_FOLDER'], ignore_errors=True, ) - return app + return app # type: ignore @pytest.fixture diff --git a/fittrackee/tests/users/test_auth_api.py b/fittrackee/tests/users/test_auth_api.py index 95b982c9c..100248bc9 100644 --- a/fittrackee/tests/users/test_auth_api.py +++ b/fittrackee/tests/users/test_auth_api.py @@ -6,8 +6,8 @@ import pytest from flask import Flask -from freezegun import freeze_time from sqlalchemy.dialects.postgresql import insert +from time_machine import travel from fittrackee import db from fittrackee.equipments.models import Equipment @@ -2477,7 +2477,7 @@ def test_it_returns_error_if_token_is_expired( token = get_user_token(user_1.id, password_reset=True) client = app.test_client() - with freeze_time(now + timedelta(seconds=61)): + with travel(now + timedelta(seconds=61), tick=False): response = client.post( '/api/auth/password/update', data=json.dumps( @@ -2891,7 +2891,7 @@ def test_it_returns_error_when_token_is_expired( client, auth_token = self.get_test_client_and_auth_token( app, user_1.email ) - with freeze_time(now + timedelta(seconds=61)): + with travel(now + timedelta(seconds=61), tick=False): response = client.post( '/api/auth/logout', headers=dict(Authorization=f'Bearer {auth_token}'), @@ -2986,8 +2986,7 @@ def test_it_updates_accepted_policy( ) accepted_policy_date = datetime.utcnow() - with patch('fittrackee.users.auth.datetime.datetime') as datetime_mock: - datetime_mock.utcnow = Mock(return_value=accepted_policy_date) + with travel(accepted_policy_date, tick=False): response = client.post( '/api/auth/account/privacy-policy', content_type='application/json', diff --git a/fittrackee/tests/users/test_users_model.py b/fittrackee/tests/users/test_users_model.py index fd8b3128f..d0a61281b 100644 --- a/fittrackee/tests/users/test_users_model.py +++ b/fittrackee/tests/users/test_users_model.py @@ -3,8 +3,8 @@ import pytest from flask import Flask -from freezegun import freeze_time from sqlalchemy.dialects.postgresql import insert +from time_machine import travel from fittrackee import db from fittrackee.equipments.models import Equipment @@ -365,7 +365,7 @@ def test_it_returns_error_when_token_is_expired( ) -> None: auth_token = user_1.encode_auth_token(user_1.id) now = datetime.utcnow() - with freeze_time(now + timedelta(seconds=61)): + with travel(now + timedelta(seconds=61), tick=False): assert ( User.decode_auth_token(auth_token) == 'signature expired, please log in again' diff --git a/fittrackee_client/package.json b/fittrackee_client/package.json index 71f7474a4..fbc02371f 100644 --- a/fittrackee_client/package.json +++ b/fittrackee_client/package.json @@ -1,6 +1,6 @@ { "name": "fittrackee_client", - "version": "0.8.5", + "version": "0.8.6", "private": true, "type": "module", "scripts": { @@ -25,7 +25,7 @@ "@zxcvbn-ts/language-fr": "^3.0.2", "@zxcvbn-ts/language-it": "^3.0.2", "@zxcvbn-ts/language-pl": "^3.0.2", - "axios": "^1.7.2", + "axios": "^1.7.3", "chart.js": "^4.4.3", "chartjs-plugin-datalabels": "^2.2.0", "core-js": "^3.37.1", @@ -36,7 +36,7 @@ "linkifyjs": "^4.1.3", "sanitize-html": "^2.13.0", "snarkdown": "^2.0.0", - "vue": "^3.4.31", + "vue": "^3.4.35", "vue-chartjs": "^5.3.1", "vue-fullscreen": "^3.1.1", "vue-i18n": "^9.13.1", @@ -46,12 +46,12 @@ }, "devDependencies": { "@intlify/vue-i18n-loader": "^4.2.0", - "@rushstack/eslint-patch": "^1.10.3", + "@rushstack/eslint-patch": "^1.10.4", "@tsconfig/node18": "^18.2.4", "@types/jsdom": "^21.1.7", - "@types/node": "^20.14.9", + "@types/node": "^22.1.0", "@types/sanitize-html": "^2.11.0", - "@vitejs/plugin-vue": "^5.0.5", + "@vitejs/plugin-vue": "^5.1.2", "@vue/eslint-config-prettier": "^9.0.0", "@vue/eslint-config-typescript": "^13.0.0", "@vue/test-utils": "^2.4.6", @@ -59,15 +59,15 @@ "eslint": "8.57.0", "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-vue": "^9.26.0", - "jsdom": "^24.1.0", - "npm-run-all2": "^6.2.0", - "prettier": "^3.3.2", - "sass": "^1.77.6", + "eslint-plugin-vue": "^9.27.0", + "jsdom": "^24.1.1", + "npm-run-all2": "^6.2.2", + "prettier": "^3.3.3", + "sass": "^1.77.8", "typescript": "~5.4.5", - "vite": "^5.3.2", - "vitest": "^1.6.0", - "vue-tsc": "^2.0.22" + "vite": "^5.3.5", + "vitest": "^2.0.5", + "vue-tsc": "^2.0.29" }, "resolutions": { "strip-ansi": "6.0.1" diff --git a/fittrackee_client/src/components/Dashboard/UserCalendar/CalendarWorkoutsChart.vue b/fittrackee_client/src/components/Dashboard/UserCalendar/CalendarWorkoutsChart.vue index 288a333f1..0774cbaa8 100644 --- a/fittrackee_client/src/components/Dashboard/UserCalendar/CalendarWorkoutsChart.vue +++ b/fittrackee_client/src/components/Dashboard/UserCalendar/CalendarWorkoutsChart.vue @@ -159,9 +159,6 @@ top: 52px; left: 0; min-width: 60px; - @media screen and (max-width: $small-limit) { - min-width: 70px; - } margin-bottom: 20px; padding: 10px 10px; @@ -170,6 +167,10 @@ flex-wrap: wrap; z-index: 1000; + @media screen and (max-width: $small-limit) { + min-width: 70px; + } + .calendar-more-close { position: absolute; font-size: 0.9em; diff --git a/fittrackee_client/src/components/User/UserEquipments/UserEquipment.vue b/fittrackee_client/src/components/User/UserEquipments/UserEquipment.vue index e1f890916..15c0578e5 100644 --- a/fittrackee_client/src/components/User/UserEquipments/UserEquipment.vue +++ b/fittrackee_client/src/components/User/UserEquipments/UserEquipment.vue @@ -268,6 +268,9 @@ .sport-badge { display: flex; gap: $default-padding; + border: solid 1px var(--card-border-color); + border-radius: $border-radius; + padding: $default-padding * 0.75 $default-padding * 1.2; &.inactive { font-style: italic; } @@ -276,9 +279,6 @@ width: 20px; margin: 0; } - border: solid 1px var(--card-border-color); - border-radius: $border-radius; - padding: $default-padding * 0.75 $default-padding * 1.2; } } .duration-detail { diff --git a/fittrackee_client/src/locales/cs/user.json b/fittrackee_client/src/locales/cs/user.json index 42d51b798..15e10da52 100644 --- a/fittrackee_client/src/locales/cs/user.json +++ b/fittrackee_client/src/locales/cs/user.json @@ -12,11 +12,11 @@ "EXPORT_REQUEST": { "DATA_EXPORT": "Export dat", "DOWNLOAD_ARCHIVE": "Stáhnout archiv", - "GENERATING_LINK": "generování odkazu...", + "GENERATING_LINK": "generování odkazu…", "ONLY_ONE_EXPORT_PER_DAY": "Archiv lze požadovat po 24 hodinách", "STATUS": { "errored": "selhalo (prosím vyžádejte si další export)", - "in_progress": "probíhá..." + "in_progress": "probíhá…" } }, "FILTER_ON_USERNAME": "Filtr na uživatelské jméno", diff --git a/fittrackee_client/src/locales/de/privacy_policy.json b/fittrackee_client/src/locales/de/privacy_policy.json index ce47ea00b..032bcc8ab 100644 --- a/fittrackee_client/src/locales/de/privacy_policy.json +++ b/fittrackee_client/src/locales/de/privacy_policy.json @@ -9,7 +9,7 @@ "TITLE": "Änderungen unserer Datenschutzrichtlinie" }, "DATA_COLLECTED": { - "CONTENT": "Die folgenden Informationen werden gesammelt:\n- Accountinformationen (Benutzername, E-Mail-Adresse und Password). Du kannst auch zusätzliche Profilinformationen wie Vor- und Nachname, Geburtsdatum, Standort und Biographie eingeben und ein Profilbild hochladen.\n- [GPX](https://de.wikipedia.org/wiki/GPS_Exchange_Format)-Dateien. Diese Dateien enthalten Daten, die mit deinen Aktivitäten zusammenhängen (geographische Koordinaten, Datum, Distanz, Dauer, maximale und durchschnittliche Geschwindigkeit, Höhe, Pulsrate...). Wenn du einige dieser Daten nicht preisgeben möchtest, kannst du die Dateien vor dem Hochladen bereinigen oder Workouts ohne GPX-Dateien hochladen.\n- Workout-Daten (Sportart, Titel, Datum, Dauer, Distanz, An- und Abstieg, Notizen).\n- Technische Informationen (Browser und Betriebssystem).", + "CONTENT": "Die folgenden Informationen werden gesammelt:\n- Accountinformationen (Benutzername, E-Mail-Adresse und Password). Du kannst auch zusätzliche Profilinformationen wie Vor- und Nachname, Geburtsdatum, Standort und Biographie eingeben und ein Profilbild hochladen.\n- [GPX](https://de.wikipedia.org/wiki/GPS_Exchange_Format)-Dateien. Diese Dateien enthalten Daten, die mit deinen Aktivitäten zusammenhängen (geographische Koordinaten, Datum, Distanz, Dauer, maximale und durchschnittliche Geschwindigkeit, Höhe, Pulsrate…). Wenn du einige dieser Daten nicht preisgeben möchtest, kannst du die Dateien vor dem Hochladen bereinigen oder Workouts ohne GPX-Dateien hochladen.\n- Workout-Daten (Sportart, Titel, Datum, Dauer, Distanz, An- und Abstieg, Notizen).\n- Technische Informationen (Browser und Betriebssystem).", "TITLE": "Welche Informationen sammeln wir?" }, "INFORMATION_DISCLOSURE": { diff --git a/fittrackee_client/src/locales/de/statistics.json b/fittrackee_client/src/locales/de/statistics.json index 996ba00c3..812033c3f 100644 --- a/fittrackee_client/src/locales/de/statistics.json +++ b/fittrackee_client/src/locales/de/statistics.json @@ -1,13 +1,19 @@ { + "AVERAGE": "Durchschnitt", "STATISTICS": "Statistik", "STATISTICS_CHARTS": { "month": "Monatliche Statistiken", "week": "Wöchentliche Statistiken", "year": "Jährliche Statistiken" }, + "STATISTICS_ON_ALL_WORKOUTS": "Statistiken für alle Trainings:", + "STATISTICS_TYPES": { + "by_sport": "nach Sportart" + }, "TIME_FRAMES": { "month": "Monat", "week": "Woche", "year": "Jahr" - } + }, + "WORKOUTS_AVERAGE": "durchschnittliche Anzahl an Trainings" } diff --git a/fittrackee_client/src/locales/de/user.json b/fittrackee_client/src/locales/de/user.json index 4b5e09cb1..34839e8a8 100644 --- a/fittrackee_client/src/locales/de/user.json +++ b/fittrackee_client/src/locales/de/user.json @@ -13,11 +13,11 @@ "EXPORT_REQUEST": { "DATA_EXPORT": "Datenexport", "DOWNLOAD_ARCHIVE": "Archiv herunterladen", - "GENERATING_LINK": "generiere Link...", + "GENERATING_LINK": "generiere Link…", "ONLY_ONE_EXPORT_PER_DAY": "Du kannst alle 24 Stunden ein Archiv anfragen", "STATUS": { "errored": "fehlgeschlagen (bitte frage einen anderen Export an)", - "in_progress": "in Arbeit..." + "in_progress": "in Arbeit…" } }, "FILTER_ON_USERNAME": "Nach Benutzernamen filtern", diff --git a/fittrackee_client/src/locales/en/user.json b/fittrackee_client/src/locales/en/user.json index 3c0d417e5..e41f8dfd9 100644 --- a/fittrackee_client/src/locales/en/user.json +++ b/fittrackee_client/src/locales/en/user.json @@ -13,11 +13,11 @@ "EXPORT_REQUEST": { "DATA_EXPORT": "Data export", "DOWNLOAD_ARCHIVE": "Download archive", - "GENERATING_LINK": "generating link...", + "GENERATING_LINK": "generating link…", "ONLY_ONE_EXPORT_PER_DAY": "You can request an archive by 24 hours", "STATUS": { "errored": "errored (please request another export)", - "in_progress": "in progres..." + "in_progress": "in progres…" } }, "FILTER_ON_USERNAME": "Filter on username", diff --git a/fittrackee_client/src/locales/es/privacy_policy.json b/fittrackee_client/src/locales/es/privacy_policy.json index d597c045b..5f4250b54 100644 --- a/fittrackee_client/src/locales/es/privacy_policy.json +++ b/fittrackee_client/src/locales/es/privacy_policy.json @@ -9,7 +9,7 @@ "TITLE": "Cambios en la Política de Privacidad" }, "DATA_COLLECTED": { - "CONTENT": "Recogemos la siguiente información:\n- Información de la cuenta (nombre de usuario, dirección de correo electrónico y contraseña). También información opcional de tu perfil como podría ser el nombre, apellido, fecha de nacimiento, localización, biografía y la imagen de perfil subida. \n- Ficheros [GPX](https://en.wikipedia.org/wiki/GPS_Exchange_Format). Estos ficheros contienen datos relacionados con tus actividades (coordenadas geográficas, fecha, distancia, duración, velocidades máxima y media, altitud, ritmo cardíaco...). Si non quieres exponer estos datos, bórralos antes de subirlos o bien añade los entrenamientos sin fichero GPX. \n- Datos de entrenamiento (deporte, título, fecha, duranción, distancia, ascenso, descenso, notas). \n- Información técnica (navegador y sistema operativo).", + "CONTENT": "Recogemos la siguiente información:\n- Información de la cuenta (nombre de usuario, dirección de correo electrónico y contraseña). También información opcional de tu perfil como podría ser el nombre, apellido, fecha de nacimiento, localización, biografía y la imagen de perfil subida. \n- Ficheros [GPX](https://en.wikipedia.org/wiki/GPS_Exchange_Format). Estos ficheros contienen datos relacionados con tus actividades (coordenadas geográficas, fecha, distancia, duración, velocidades máxima y media, altitud, ritmo cardíaco…). Si non quieres exponer estos datos, bórralos antes de subirlos o bien añade los entrenamientos sin fichero GPX. \n- Datos de entrenamiento (deporte, título, fecha, duranción, distancia, ascenso, descenso, notas). \n- Información técnica (navegador y sistema operativo).", "TITLE": "¿Qué información recopilamos?" }, "INFORMATION_DISCLOSURE": { diff --git a/fittrackee_client/src/locales/es/user.json b/fittrackee_client/src/locales/es/user.json index df0e2218c..33c06ecce 100644 --- a/fittrackee_client/src/locales/es/user.json +++ b/fittrackee_client/src/locales/es/user.json @@ -13,11 +13,11 @@ "EXPORT_REQUEST": { "DATA_EXPORT": "Exportar datos", "DOWNLOAD_ARCHIVE": "Descargar archivo", - "GENERATING_LINK": "creando enlace...", + "GENERATING_LINK": "creando enlace…", "ONLY_ONE_EXPORT_PER_DAY": "Puedes solicitar un archivo cada 24 horas", "STATUS": { "errored": "ha fallado (solicita una nueva exportación)", - "in_progress": "en progreso..." + "in_progress": "en progreso…" } }, "FILTER_ON_USERNAME": "Filtrar por nombre de usuario", diff --git a/fittrackee_client/src/locales/eu/privacy_policy.json b/fittrackee_client/src/locales/eu/privacy_policy.json index 83551ae34..d7c549ee2 100644 --- a/fittrackee_client/src/locales/eu/privacy_policy.json +++ b/fittrackee_client/src/locales/eu/privacy_policy.json @@ -9,7 +9,7 @@ "TITLE": "Gure Pribatutasun Politikaren aldaketak" }, "DATA_COLLECTED": { - "CONTENT": "Informazio hau jasotzen dugu:\n- Kontuaren informazioa (erabiltzaile-izena, eposta helbidea eta pasahitza). Zure profilean informazio gehigarria ere gehitu dezakezu, adibidez, zure izen-abizenak, jaiotze-data, herria, biografia eta argazkia.\n- [GPX](https://en.wikipedia.org/wiki/GPS_Exchange_Format) fitxategiak. Fitxategi hauek zure ekintzen informazioa gordetzen dute (koordinatuak, data, distantzia, iraupena, abiadurak, altuera, bihotz-taupadak, ...). Informazioren bat argitaratu nahi ez baduzu, garbitu fitxategia edo GPX fitxategi gabeko ekintzak gehitu.\n- Entrenamenduen informazioa (kirola, izena, data, iraupena, distantzia, igoerak, jaitsierak, oharrak, ...).\n- Informazio teknikoa (nabigatzailearen izena eta sistema eragilearen izena).", + "CONTENT": "Informazio hau jasotzen dugu:\n- Kontuaren informazioa (erabiltzaile-izena, eposta helbidea eta pasahitza). Zure profilean informazio gehigarria ere gehitu dezakezu, adibidez, zure izen-abizenak, jaiotze-data, herria, biografia eta argazkia.\n- [GPX](https://en.wikipedia.org/wiki/GPS_Exchange_Format) fitxategiak. Fitxategi hauek zure ekintzen informazioa gordetzen dute (koordinatuak, data, distantzia, iraupena, abiadurak, altuera, bihotz-taupadak, …). Informazioren bat argitaratu nahi ez baduzu, garbitu fitxategia edo GPX fitxategi gabeko ekintzak gehitu.\n- Entrenamenduen informazioa (kirola, izena, data, iraupena, distantzia, igoerak, jaitsierak, oharrak, …).\n- Informazio teknikoa (nabigatzailearen izena eta sistema eragilearen izena).", "TITLE": "Ze informazio biltzen dugu?" }, "INFORMATION_DISCLOSURE": { diff --git a/fittrackee_client/src/locales/eu/user.json b/fittrackee_client/src/locales/eu/user.json index a80489a12..b9d1e0efa 100644 --- a/fittrackee_client/src/locales/eu/user.json +++ b/fittrackee_client/src/locales/eu/user.json @@ -13,11 +13,11 @@ "EXPORT_REQUEST": { "DATA_EXPORT": "Datuak esportatzea", "DOWNLOAD_ARCHIVE": "Deskargatu artxiboa", - "GENERATING_LINK": "esteka sortzen...", + "GENERATING_LINK": "esteka sortzen…", "ONLY_ONE_EXPORT_PER_DAY": "24 orduero eskatu dezakezu artxiboa", "STATUS": { "errored": "huts egin du (eskatu beste esportazio bat)", - "in_progress": "jardunean..." + "in_progress": "jardunean…" } }, "FILTER_ON_USERNAME": "Filtratu erabiltzaile-izenaren arabera", diff --git a/fittrackee_client/src/locales/fr/user.json b/fittrackee_client/src/locales/fr/user.json index 423af7347..a1ee73dbd 100644 --- a/fittrackee_client/src/locales/fr/user.json +++ b/fittrackee_client/src/locales/fr/user.json @@ -13,11 +13,11 @@ "EXPORT_REQUEST": { "DATA_EXPORT": "Export des données", "DOWNLOAD_ARCHIVE": "Télécharger l'archive", - "GENERATING_LINK": "lien en cours de génération...", + "GENERATING_LINK": "lien en cours de génération…", "ONLY_ONE_EXPORT_PER_DAY": "Vous pouvez demander un export par 24h", "STATUS": { "errored": "en erreur (veuillez demander une nouvelle archive)", - "in_progress": "en cours..." + "in_progress": "en cours…" } }, "FILTER_ON_USERNAME": "Filtrer sur le nom d'utilisateur", diff --git a/fittrackee_client/src/locales/gl/administration.json b/fittrackee_client/src/locales/gl/administration.json index 31392eddc..dbe69bc66 100644 --- a/fittrackee_client/src/locales/gl/administration.json +++ b/fittrackee_client/src/locales/gl/administration.json @@ -11,7 +11,7 @@ "ADMIN_RIGHTS_DELETE_USER_ACCOUNT": "Engadir/eliminar dereitos de administración, eliminar a conta da usuaria.", "APPLICATION": "Aplicación", "APP_CONFIG": { - "ADMIN_CONTACT": "Email de contacto da administración", + "ADMIN_CONTACT": "Enderezo de contacto da administración", "MAX_FILES_IN_ZIP_LABEL": "Num. máximo ficheiros con arquivos zip", "MAX_USERS_HELP": "Se 0, non hai límite de rexistros.", "MAX_USERS_LABEL": "Número máx. de usuarias activas", @@ -25,10 +25,10 @@ "BACK_TO_ADMIN": "Volver a admin", "CONFIRM_USER_ACCOUNT_DELETION": "Tes a certeza de querer eliminar a conta {0}? Borraranse todos os datos, non hai volta atrás.", "CONFIRM_USER_PASSWORD_RESET": "Tes certeza de querer restablecer o contrasinal de {0}?", - "CURRENT_EMAIL": "Email actual", + "CURRENT_EMAIL": "Enderezo actual", "DELETE_USER": "Eliminar usuaria", "EMAIL_SENDING_DISABLED": "O envío de correos está desactivado.", - "ENABLE_DISABLE_EQUIPMENT_TYPES": "Des/Activar tipos de equipamento.", + "ENABLE_DISABLE_EQUIPMENT_TYPES": "Activar/Desactivar tipos de equipamento.", "ENABLE_DISABLE_SPORTS": "Activar/desactivar deportes.", "EQUIPMENT_TYPES": { "TABLE": { @@ -39,7 +39,7 @@ }, "TITLE": "Administración de equipamento" }, - "NEW_EMAIL": "Novo email", + "NEW_EMAIL": "Novo enderezo de correo", "NO_TEXT_ENTERED": "Non escribiches texto", "PASSWORD_RESET_SUCCESSFUL": "Restableceuse o contrasinal.", "PRIVACY_POLICY_DESCRIPTION": "Engade a túa propia política de privacidade ou déixaa baleira para usar unha por defecto. Podes usar Markdown.", @@ -56,7 +56,7 @@ "TITLE": "Administrar deportes" }, "UPDATE_APPLICATION_DESCRIPTION": "Actualizar configuración da aplicación.", - "UPDATE_USER_EMAIL": "Actualizar email", + "UPDATE_USER_EMAIL": "Actualizar correo electrónico", "USER": "usuaria | usuarias", "USERS": { "SELECTS": { @@ -74,5 +74,5 @@ }, "TITLE": "Administración - Usuarias" }, - "USER_EMAIL_UPDATE_SUCCESSFUL": "Actualizouse o enderezo de email." + "USER_EMAIL_UPDATE_SUCCESSFUL": "Actualizouse o enderezo de correo." } diff --git a/fittrackee_client/src/locales/gl/api.json b/fittrackee_client/src/locales/gl/api.json index 6372a5238..d6ace1dfb 100644 --- a/fittrackee_client/src/locales/gl/api.json +++ b/fittrackee_client/src/locales/gl/api.json @@ -5,7 +5,7 @@ "UNKNOWN": "Erro. Inténtao outra vez ou contacta coa administración.", "at least one file in zip archive exceeds size limit, please check the archive": "Polo menos un ficheiro no arquivo .zip excede o tamaño máximo, comproba o arquivo.", "completed request already exists": "Xa existe unha solicitude de exportación completa.", - "email: valid email must be provided": "Email: debes escribir un correo electrónico válido.", + "email: valid email must be provided": "Correo: debes escribir un correo electrónico válido.", "equipment already exists with the same label": "Xa existe equipamento coa mesma etiqueta.", "equipment type is inactive": "O tipo de equipamento non está activo.", "error during gpx file parsing": "Erro ao procesar o ficheiro gpx.", @@ -22,7 +22,7 @@ "invalid payload": "Os datos proporcionados non son válidos.", "invalid token, please log in again": "Token non válido, accede outra vez.", "invalid token, please request a new token": "Token non válido, accede outra vez.", - "new email must be different than current email": "O novo email ten que ser diferente ao actual", + "new email must be different than current email": "O novo enderezo ten que ser diferente ao actual", "no file part": "Sen ficheiro proporcionado.", "no selected file": "Sen ficheiro seleccionado.", "no tracks in gpx file": "Non hai ruta () no ficheiro .gpx.", diff --git a/fittrackee_client/src/locales/gl/privacy_policy.json b/fittrackee_client/src/locales/gl/privacy_policy.json index 8c65ee142..4d98e1e68 100644 --- a/fittrackee_client/src/locales/gl/privacy_policy.json +++ b/fittrackee_client/src/locales/gl/privacy_policy.json @@ -9,7 +9,7 @@ "TITLE": "Cambios na nosa Política de Privacidade" }, "DATA_COLLECTED": { - "CONTENT": "Recollemos a seguinte información:\n- Información da conta (identificador, enderezo de email e contrasinal). Poderías engadir información adicional ao perfil como o nome, apelido, data de nacemento, localización, biografía e subir unha foto de perfil.\n- Ficheiros [GPX](https://en.wikipedia.org/wiki/GPS_Exchange_Format). Estes ficheiros conteñen datos relacionados coas túas actividades (coordenadas xeográficas, data, distancia, duración, velocidades máxima e media, altitude, pulso cardíaco...). Se non queres mostrar algún dos datos, elimínaos antes de subir ou engadir adestramentos con ficheiros GPX.\n- Datos do adestramento (deporte, título, data, duración, distancia, ascenso, descenso, notas).\n- Información técnica (nome do navegador e sistema operativo).", + "CONTENT": "Recollemos a seguinte información:\n- Información da conta (identificador, enderezo de correo e contrasinal). Poderías engadir información adicional ao perfil como o nome, apelido, data de nacemento, localización, biografía e subir unha foto de perfil.\n- Ficheiros [GPX](https://en.wikipedia.org/wiki/GPS_Exchange_Format). Estes ficheiros conteñen datos relacionados coas túas actividades (coordenadas xeográficas, data, distancia, duración, velocidades máxima e media, altitude, pulso cardíaco…). Se non queres mostrar algún dos datos, elimínaos antes de subir ou engadir adestramentos con ficheiros GPX.\n- Datos do adestramento (deporte, título, data, duración, distancia, ascenso, descenso, notas).\n- Información técnica (nome do navegador e sistema operativo).", "TITLE": "Que información recollemos?" }, "INFORMATION_DISCLOSURE": { diff --git a/fittrackee_client/src/locales/gl/user.json b/fittrackee_client/src/locales/gl/user.json index b11583b17..1cd29cc6a 100644 --- a/fittrackee_client/src/locales/gl/user.json +++ b/fittrackee_client/src/locales/gl/user.json @@ -6,18 +6,18 @@ "ALREADY_HAVE_ACCOUNT": "Xa tes unha conta?", "CONFIRM_ACCOUNT_DELETION": "Tes a certeza de querer eliminar a conta? Todos os datos serán borrados, e non poderás restablecelos.", "CURRENT_PASSWORD": "Contrasinal actual", - "EMAIL": "Email", + "EMAIL": "Correo Electrónico", "EMAIL_INFO": "Escribe un enderezo válido.", "EMAIL_UPDATE": "Actualizar correo", "ENTER_PASSWORD": "Escribe un contrasinal", "EXPORT_REQUEST": { "DATA_EXPORT": "Exportar datos", "DOWNLOAD_ARCHIVE": "Descargar arquivo", - "GENERATING_LINK": "creando ligazón...", + "GENERATING_LINK": "creando ligazón…", "ONLY_ONE_EXPORT_PER_DAY": "Podes solicitar un arquivo cada 24 horas", "STATUS": { "errored": "fallou (solicita outra exportación)", - "in_progress": "en progreso..." + "in_progress": "en progreso…" } }, "FILTER_ON_USERNAME": "Filtrar por identificador", diff --git a/fittrackee_client/src/locales/it/common.json b/fittrackee_client/src/locales/it/common.json index b4c137d8d..e7edb9c29 100644 --- a/fittrackee_client/src/locales/it/common.json +++ b/fittrackee_client/src/locales/it/common.json @@ -3,17 +3,24 @@ "CONFIRMATION": "Conferma", "CONTACT": "contatto", "DAY": "giorno | giorni", + "DESCRIPTION": "Descrizione", "DISPLAYED": "Mostrato", "DOCUMENTATION": "documentazione", "HERE": "qui", "HIDDEN": "Nascosto", "HOME": "Home", + "HOURS": "ora|ore", + "INACTIVE": "inattivo", + "LABEL": "etichetta", + "MINUTES": "minuto|minuti", "NEXT": "avanti", + "NO_DESCRIPTION": "nessuna descrizione", "PREVIOUS": "precedente", + "SECONDS": "secondo|secondi", "SELECTS": { "ORDER": { - "ASC": "Dal più basso al più alto", - "DESC": "Dal più alto al più basso", + "ASC": "crescente", + "DESC": "decrescente", "LABEL": "ordina" }, "ORDER_BY": { @@ -23,5 +30,6 @@ "LABEL": "per pagina" } }, - "TOTAL": "Totale" + "TOTAL": "Totale", + "TOTAL_DURATION_WITH_PAUSES": "durata totale con pause" } diff --git a/fittrackee_client/src/locales/it/equipment_types.json b/fittrackee_client/src/locales/it/equipment_types.json index 0967ef424..33a0b0e92 100644 --- a/fittrackee_client/src/locales/it/equipment_types.json +++ b/fittrackee_client/src/locales/it/equipment_types.json @@ -1 +1,20 @@ -{} +{ + "Bike": { + "LABEL": "Bici" + }, + "Bike Trainer": { + "LABEL": "Allenatore per Bici" + }, + "Kayak_Boat": { + "LABEL": "Kayak/Barca" + }, + "Shoes": { + "LABEL": "Scarpe" + }, + "Skis": { + "LABEL": "Sci" + }, + "Snowshoes": { + "LABEL": "Ciaspole" + } +} diff --git a/fittrackee_client/src/locales/it/equipments.json b/fittrackee_client/src/locales/it/equipments.json index 0967ef424..29428a2fe 100644 --- a/fittrackee_client/src/locales/it/equipments.json +++ b/fittrackee_client/src/locales/it/equipments.json @@ -1 +1,17 @@ -{} +{ + "50_CHARACTERS_MAX": "Massimo 50 caratteri", + "ADD_A_NEW_EQUIPMENT": "Aggiungi una nuova attrezzatura", + "ALL_WORKOUTS_ASSOCIATIONS_REMOVED": "Tutte le associazioni degli allenamenti saranno rimosse.", + "EDIT_EQUIPMENTS": "Modifica attrezzature", + "EQUIPMENT": "attrezzatura|attrezzature", + "EQUIPMENT_TYPE": "tipo di attrezzatura|tipi di attrezzatura", + "ERRORS": { + "inactive": "Attrezzatura '{equipmentLabel}' inattiva.", + "invalid": "Attrezzatura '{equipmentLabel}' non valida per questo sport.", + "not_found": "Attrezzatura non trovata." + }, + "NEW_EQUIPMENT": "Nuova attrezzatura", + "NO_EQUIPMENT": "Nessuna attrezzatura trovata.", + "NO_EQUIPMENTS": "Nessuna attrezzatura", + "WITHOUT_EQUIPMENTS": "Senza attrezzature" +} diff --git a/fittrackee_client/src/locales/it/privacy_policy.json b/fittrackee_client/src/locales/it/privacy_policy.json index 0967ef424..8feceefa4 100644 --- a/fittrackee_client/src/locales/it/privacy_policy.json +++ b/fittrackee_client/src/locales/it/privacy_policy.json @@ -1 +1,36 @@ -{} +{ + "CONTENT": { + "ACCOUNT_DELETION": { + "CONTENT": "Puoi richiedere la cancellazione del tuo account in qualsiasi momento andando a questo indirizzo (dopo aver effettuato l'accesso) e cliccando sul pulsante \"Elimina il mio account\" nella sezione modifica account.", + "TITLE": "Eliminazione dell'account" + }, + "CHANGES_TO_OUR_PRIVACY_POLICY": { + "CONTENT": "Se decidiamo di modificare la nostra politica sulla privacy, pubblicheremo tali modifiche su questa pagina.\n\nQuesto documento è sotto licenza [CC-BY-SA](https://creativecommons.org/licenses/by-sa/4.0/) . Originariamente adattato dalla politica sulla privacy di [Discourse](https://github.com/discourse/discourse).", + "TITLE": "Modifiche alla nostra Politica sulla Privacy" + }, + "DATA_COLLECTED": { + "CONTENT": "Le seguenti informazioni vengono raccolte:\n- Informazioni sull'account (nome utente, indirizzo e-mail e password). È inoltre possibile inserire informazioni aggiuntive sul profilo come nome, cognome, data di nascita, posizione, biografia e caricare un'immagine del profilo.\n- File [GPX](https://en.wikipedia.org/wiki/GPS_Exchange_Format). Questi file contengono dati relativi alle tue attività (coordinate geografiche, data, distanza, durata, velocità massima e media, altitudine, frequenza cardiaca…). Se non desideri esporre alcuni dati, puliscili prima di caricarli o aggiungi allenamenti senza file GPX.\n- Dati degli allenamenti (sport, titolo, data, durata, distanza, dislivello in salita, dislivello in discesa, note).\n- Informazioni tecniche (nome del browser e sistema operativo).", + "TITLE": "Quali informazioni raccogliamo?" + }, + "INFORMATION_DISCLOSURE": { + "CONTENT": "Non vendiamo, scambiamo o trasferiamo in alcun modo a terzi le tue informazioni personali identificabili.\n\nCiò non include terze parti di fiducia che ci aiutano a gestire il nostro sito e a fornirti assistenza, purché tali parti accettino di mantenere riservate queste informazioni.\n\nPotremmo inoltre divulgare le tue informazioni quando riteniamo che la divulgazione sia appropriata per ottemperare alla legge, far rispettare le politiche del nostro sito o proteggere i nostri diritti, la nostra proprietà o la nostra sicurezza.\n\nQuando autorizzi un'applicazione di terze parti a utilizzare il tuo account, a seconda dello scopo delle autorizzazioni che approvi, potrebbe accedere alle informazioni del tuo profilo o ai tuoi allenamenti. Le applicazioni non possono mai accedere alla tua password.", + "TITLE": "Divulgamo informazioni a terze parti esterne?" + }, + "INFORMATION_PROTECTION": { + "CONTENT": "Implementiamo una varietà di misure di sicurezza per mantenere la sicurezza delle tue informazioni personali quando inserisci, invii o accedi alle tue informazioni personali.", + "TITLE": "Come proteggiamo le tue informazioni?" + }, + "INFORMATION_USAGE": { + "TITLE": "Per cosa utilizziamo le tue informazioni?" + }, + "SITE_USAGE_BY_CHILDREN": { + "TITLE": "Utilizzo del sito da parte dei bambini" + }, + "YOUR_CONSENT": { + "CONTENT": "Utilizzando il nostro sito, acconsenti alla nostra politica sulla privacy del sito web.", + "TITLE": "Il tuo consenso" + } + }, + "LAST_UPDATE": "Ultimo aggiornamento", + "TITLE": "politica sulla privacy" +} diff --git a/fittrackee_client/src/locales/it/statistics.json b/fittrackee_client/src/locales/it/statistics.json index 83b22b858..8c622fb59 100644 --- a/fittrackee_client/src/locales/it/statistics.json +++ b/fittrackee_client/src/locales/it/statistics.json @@ -1,8 +1,22 @@ { + "AVERAGE": "Media", + "DATES": "Date", "STATISTICS": "Statistiche", + "STATISTICS_CHARTS": { + "month": "Statistiche mensili", + "week": "Statistiche settimanali", + "year": "Statistiche annuali" + }, + "STATISTICS_ON_ALL_WORKOUTS": "Statistiche su tutti gli allenamenti:", + "STATISTICS_ON_LAST_WORKOUTS": "Statistiche sugli ultimi {count} allenamenti:", + "STATISTICS_TYPES": { + "by_sport": "per sport", + "by_time": "per periodo di tempo" + }, "TIME_FRAMES": { "month": "mese", "week": "settimana", "year": "anno" - } + }, + "WORKOUTS_AVERAGE": "numero medio di allenamenti" } diff --git a/fittrackee_client/src/locales/nb/oauth2.json b/fittrackee_client/src/locales/nb/oauth2.json index 7f6ae021c..683a5564d 100644 --- a/fittrackee_client/src/locales/nb/oauth2.json +++ b/fittrackee_client/src/locales/nb/oauth2.json @@ -18,7 +18,7 @@ "COPY_TO_CLIPBOARD": "kopier til utklippstavlen", "DELETE_APP": "Slett program", "NEW_APP": "Legg til et program", - "NO_APP": "Fant ikke program.", + "NO_APP": "Fant ikke program!", "NO_APPS": "ingen programmer", "NO_DESCRIPTION": "ingen beskrivelse", "REVOKE_ALL_TOKENS": "Tilbakekall alle symboler", diff --git a/fittrackee_client/src/locales/nb/user.json b/fittrackee_client/src/locales/nb/user.json index 0f1069d66..0bf1b3f15 100644 --- a/fittrackee_client/src/locales/nb/user.json +++ b/fittrackee_client/src/locales/nb/user.json @@ -10,7 +10,7 @@ "EXPORT_REQUEST": { "DATA_EXPORT": "Dataeksport", "DOWNLOAD_ARCHIVE": "Last ned arkiv", - "GENERATING_LINK": "genererer lenke …", + "GENERATING_LINK": "genererer lenke…", "STATUS": { "in_progress": "underveis …" } diff --git a/fittrackee_client/src/locales/nl/administration.json b/fittrackee_client/src/locales/nl/administration.json index 0c4ba1e86..aeba28e5b 100644 --- a/fittrackee_client/src/locales/nl/administration.json +++ b/fittrackee_client/src/locales/nl/administration.json @@ -17,6 +17,8 @@ "MAX_USERS_LABEL": "Max. aantal actieve gebruikers", "NO_CONTACT_EMAIL": "geen contact email", "SINGLE_UPLOAD_MAX_SIZE_LABEL": "Max. grootte van bestanden voor upload (in Mb)", + "STATS_WORKOUTS_LIMIT_HELP": "Bij 0, geen beperking op het aantal trainingen.", + "STATS_WORKOUTS_LIMIT_LABEL": "Max. aantal trainingen voor sportstatistieken", "TITLE": "Applicatie configureren", "ZIP_UPLOAD_MAX_SIZE_LABEL": "Max. grootte van zip archief (in Mb)" }, diff --git a/fittrackee_client/src/locales/nl/privacy_policy.json b/fittrackee_client/src/locales/nl/privacy_policy.json index 435eada2d..567f5946a 100644 --- a/fittrackee_client/src/locales/nl/privacy_policy.json +++ b/fittrackee_client/src/locales/nl/privacy_policy.json @@ -9,7 +9,7 @@ "TITLE": "Aanpassingen aan ons Privacybeleid" }, "DATA_COLLECTED": { - "CONTENT": "De volgende informatie wordt verzameld:\n- Account informatie (gebruikersnaam, email en wachtwoord). U kan ook bijkomende informatie opgeven zoals: naam, voornaam, geboortedatum, locatie, biografie en een profiel-afbeelding.\n- [GPX](https://en.wikipedia.org/wiki/GPS_Exchange_Format) bestanden. Deze bestanden bevatten gegevens over uw activiteiten (coördinaten, datums, afstand, duur, maximum en minimum snelheden, hoogtegegevens, hartslag, ...). Als u bepaalde gegevens hiervan niet wil delen, verwijder deze dan uit het bestand alvorens deze te uploaden.\n- Sportgerelateerde gegevens (soort sport, titel, datum, duur, afstand, geklommen afstand, gedaalde afstand, notities).\n- Technische informatie (de browsernaam en naam van het besturingssysteem).", + "CONTENT": "De volgende informatie wordt verzameld:\n- Account informatie (gebruikersnaam, email en wachtwoord). U kan ook bijkomende informatie opgeven zoals: naam, voornaam, geboortedatum, locatie, biografie en een profiel-afbeelding.\n- [GPX](https://en.wikipedia.org/wiki/GPS_Exchange_Format) bestanden. Deze bestanden bevatten gegevens over uw activiteiten (coördinaten, datums, afstand, duur, maximum en minimum snelheden, hoogtegegevens, hartslag, …). Als u bepaalde gegevens hiervan niet wil delen, verwijder deze dan uit het bestand alvorens deze te uploaden.\n- Sportgerelateerde gegevens (soort sport, titel, datum, duur, afstand, geklommen afstand, gedaalde afstand, notities).\n- Technische informatie (de browsernaam en naam van het besturingssysteem).", "TITLE": "Welke informatie wordt er door ons verzameld?" }, "INFORMATION_DISCLOSURE": { diff --git a/fittrackee_client/src/locales/nl/statistics.json b/fittrackee_client/src/locales/nl/statistics.json index b822867c9..cba458957 100644 --- a/fittrackee_client/src/locales/nl/statistics.json +++ b/fittrackee_client/src/locales/nl/statistics.json @@ -1,13 +1,22 @@ { + "AVERAGE": "Gemiddelde", + "DATES": "Datums", "STATISTICS": "Statistieken", "STATISTICS_CHARTS": { "month": "Maandelijkse statistieken", "week": "Wekelijkse statistieken", "year": "Jaarlijkse statistieken" }, + "STATISTICS_ON_ALL_WORKOUTS": "Statistieken van alle trainingen:", + "STATISTICS_ON_LAST_WORKOUTS": "Statistieken van de laatste {count} trainingen:", + "STATISTICS_TYPES": { + "by_sport": "op basis van sport", + "by_time": "op basis van periode" + }, "TIME_FRAMES": { "month": "maand", "week": "week", "year": "jaar" - } + }, + "WORKOUTS_AVERAGE": "gemiddeld aantal trainingen" } diff --git a/fittrackee_client/src/locales/nl/user.json b/fittrackee_client/src/locales/nl/user.json index 950b0d3e9..55aeb0880 100644 --- a/fittrackee_client/src/locales/nl/user.json +++ b/fittrackee_client/src/locales/nl/user.json @@ -13,11 +13,11 @@ "EXPORT_REQUEST": { "DATA_EXPORT": "Data exporteren", "DOWNLOAD_ARCHIVE": "Archief downloaden", - "GENERATING_LINK": "link aanmaken...", + "GENERATING_LINK": "link aanmaken…", "ONLY_ONE_EXPORT_PER_DAY": "Je kan 1 keer per 24h een archief aanvragen", "STATUS": { "errored": "fout (gelieve een nieuw archief aan te vragen)", - "in_progress": "Bezig met verwerken..." + "in_progress": "Bezig met verwerken…" } }, "FILTER_ON_USERNAME": "Filter op gebruikersnaam", diff --git a/fittrackee_client/src/locales/pl/privacy_policy.json b/fittrackee_client/src/locales/pl/privacy_policy.json index 97a9b3ac2..8899ed7ba 100644 --- a/fittrackee_client/src/locales/pl/privacy_policy.json +++ b/fittrackee_client/src/locales/pl/privacy_policy.json @@ -9,7 +9,7 @@ "TITLE": "Zmiany w naszej polityce prywatności" }, "DATA_COLLECTED": { - "CONTENT": "Następujące dane są zbierane:\n- Informacje o koncie (nazwa użytkownika, adres e-mail, hasło). Dobrowolnie podane dane konta jak imię, nazwisko, data urodzenia, lokalizacja, informacje o sobie, czy zdjęcie profilowe.\n- Pliki [GPX](https://pl.wikipedia.org/wiki/GPX). Te pliki zawierają dane związane z Twoimi aktywnościami (koordynaty geograficzne, daty, pokonane dystanse, ich czasy trwania, prędkości, wysokości miejsc, tętno...). Jeśli nie chcesz przekazywać części z tych danych, usuń je z plików GPX przed ich wysłaniem, albo dodawaj treningi bez plików GPX.\n- Dane o treningach (jaki sport, nazwy, daty, czasy trwania, pokonane dystanse, wzniesienia, spadki, dodane notatki).\n- Informacje techniczne (użyta przeglądarka internetowa i system operacyjny).", + "CONTENT": "Następujące dane są zbierane:\n- Informacje o koncie (nazwa użytkownika, adres e-mail, hasło). Dobrowolnie podane dane konta jak imię, nazwisko, data urodzenia, lokalizacja, informacje o sobie, czy zdjęcie profilowe.\n- Pliki [GPX](https://pl.wikipedia.org/wiki/GPX). Te pliki zawierają dane związane z Twoimi aktywnościami (koordynaty geograficzne, daty, pokonane dystanse, ich czasy trwania, prędkości, wysokości miejsc, tętno…). Jeśli nie chcesz przekazywać części z tych danych, usuń je z plików GPX przed ich wysłaniem, albo dodawaj treningi bez plików GPX.\n- Dane o treningach (jaki sport, nazwy, daty, czasy trwania, pokonane dystanse, wzniesienia, spadki, dodane notatki).\n- Informacje techniczne (użyta przeglądarka internetowa i system operacyjny).", "TITLE": "Jakie informacje zbieramy?" }, "INFORMATION_DISCLOSURE": { diff --git a/fittrackee_client/src/locales/pl/user.json b/fittrackee_client/src/locales/pl/user.json index 441c93517..6e310b1f3 100644 --- a/fittrackee_client/src/locales/pl/user.json +++ b/fittrackee_client/src/locales/pl/user.json @@ -13,11 +13,11 @@ "EXPORT_REQUEST": { "DATA_EXPORT": "Eksport danych", "DOWNLOAD_ARCHIVE": "Pobierz archiwum", - "GENERATING_LINK": "generowanie linka...", + "GENERATING_LINK": "generowanie linka…", "ONLY_ONE_EXPORT_PER_DAY": "Możesz poprosić o archiwum w przeciągu 24 godzin", "STATUS": { "errored": "niepowodzenie (proszę zlecić kolejny eksport)", - "in_progress": "w trakcie..." + "in_progress": "w trakcie…" } }, "FILTER_ON_USERNAME": "Filtruj po nazwie użytkownika", diff --git a/fittrackee_client/src/locales/pt/privacy_policy.json b/fittrackee_client/src/locales/pt/privacy_policy.json index c4a4714f7..9d13a09ca 100644 --- a/fittrackee_client/src/locales/pt/privacy_policy.json +++ b/fittrackee_client/src/locales/pt/privacy_policy.json @@ -9,7 +9,7 @@ "TITLE": "Mudanças na Política de Privacidade" }, "DATA_COLLECTED": { - "CONTENT": "Coletamos as seguintes informações:\n- Informações da conta (nome de usuário, endereço de e-mail e senha). Também informações opcionais do seu perfil, como nome, sobrenome, data de nascimento, localização, biografia e imagem de perfil carregada.\n- Arquivos [GPX] (https://en.wikipedia.org/wiki/GPS_Exchange_Format). Estes arquivos contêm dados relacionados às suas atividades (coordenadas geográficas, data, distância, duração, velocidades máxima e média, altitude, frequência cardíaca...). Caso não queira expor esses dados, exclua-os antes de carregá-los ou adicione os treinos sem arquivo GPX.\n- Dados de treino (esporte, título, data, duração, distância, subida, descida, notas).\n- Informações técnicas (navegador e sistema operacional).", + "CONTENT": "Coletamos as seguintes informações:\n- Informações da conta (nome de usuário, endereço de e-mail e senha). Também informações opcionais do seu perfil, como nome, sobrenome, data de nascimento, localização, biografia e imagem de perfil carregada.\n- Arquivos [GPX] (https://en.wikipedia.org/wiki/GPS_Exchange_Format). Estes arquivos contêm dados relacionados às suas atividades (coordenadas geográficas, data, distância, duração, velocidades máxima e média, altitude, frequência cardíaca…). Caso não queira expor esses dados, exclua-os antes de carregá-los ou adicione os treinos sem arquivo GPX.\n- Dados de treino (esporte, título, data, duração, distância, subida, descida, notas).\n- Informações técnicas (navegador e sistema operacional).", "TITLE": "Quais são as informações que coletamos?" }, "INFORMATION_DISCLOSURE": { diff --git a/fittrackee_client/src/locales/pt/user.json b/fittrackee_client/src/locales/pt/user.json index bffd8a555..143f45183 100644 --- a/fittrackee_client/src/locales/pt/user.json +++ b/fittrackee_client/src/locales/pt/user.json @@ -13,11 +13,11 @@ "EXPORT_REQUEST": { "DATA_EXPORT": "Exportar dados", "DOWNLOAD_ARCHIVE": "Fazer download do ficheiro", - "GENERATING_LINK": "criando link...", + "GENERATING_LINK": "criando link…", "ONLY_ONE_EXPORT_PER_DAY": "Você pode solicitar um arquivo a cada 24 horas", "STATUS": { "errored": "falhou (solicita uma nova exportação)", - "in_progress": "em progresso..." + "in_progress": "em progresso…" } }, "FILTER_ON_USERNAME": "Filtrar por nome de usuário", diff --git a/fittrackee_client/src/utils/locales.ts b/fittrackee_client/src/utils/locales.ts index bb0fc38d9..d9ab2b3b9 100644 --- a/fittrackee_client/src/utils/locales.ts +++ b/fittrackee_client/src/utils/locales.ts @@ -53,15 +53,15 @@ export const localeFromLanguage: Record = { export const languageLabels: Record = { cs: 'Česky (73%)', - de: 'Deutsch (98%)', + de: 'Deutsch (99%)', en: 'English', es: 'Español', eu: 'Euskara (98%)', fr: 'Français', gl: 'Galego', - it: 'Italiano (73%)', + it: 'Italiano (82%)', nb: 'Norsk bokmål (52%)', - nl: 'Nederlands (98%)', + nl: 'Nederlands', pl: 'Polski (92%)', pt: 'Português (98%)', } diff --git a/fittrackee_client/src/views/Dashboard.vue b/fittrackee_client/src/views/Dashboard.vue index 76c221692..0e59d1f6d 100644 --- a/fittrackee_client/src/views/Dashboard.vue +++ b/fittrackee_client/src/views/Dashboard.vue @@ -175,11 +175,11 @@ color: var(--app-color); } &.is-selected { + color: var(--mobile-menu-selected-color); + background-color: var(--mobile-menu-selected-bgcolor); .fa-trophy { color: var(--mobile-menu-selected-color); } - color: var(--mobile-menu-selected-color); - background-color: var(--mobile-menu-selected-bgcolor); } } } diff --git a/fittrackee_client/yarn.lock b/fittrackee_client/yarn.lock index 927b9eb2f..926ed6c56 100644 --- a/fittrackee_client/yarn.lock +++ b/fittrackee_client/yarn.lock @@ -2,6 +2,14 @@ # yarn lockfile v1 +"@ampproject/remapping@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + "@babel/parser@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.7.tgz#9a5226f92f0c5c8ead550b750f5608e766c8ce85" @@ -235,18 +243,43 @@ wrap-ansi "^8.1.0" wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" -"@jest/schemas@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" - integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== dependencies: - "@sinclair/typebox" "^0.27.8" + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== "@jridgewell/sourcemap-codec@^1.4.15": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== +"@jridgewell/trace-mapping@^0.3.24": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@kurkle/color@^0.3.0": version "0.3.2" resolved "https://registry.yarnpkg.com/@kurkle/color/-/color-0.3.2.tgz#5acd38242e8bde4f9986e7913c8fdf49d3aa199f" @@ -368,15 +401,10 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz#5d694d345ce36b6ecf657349e03eb87297e68da4" integrity sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g== -"@rushstack/eslint-patch@^1.10.3": - version "1.10.3" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.10.3.tgz#391d528054f758f81e53210f1a1eebcf1a8b1d20" - integrity sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg== - -"@sinclair/typebox@^0.27.8": - version "0.27.8" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" - integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== +"@rushstack/eslint-patch@^1.10.4": + version "1.10.4" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz#427d5549943a9c6fce808e39ea64dbe60d4047f1" + integrity sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA== "@tmcw/togeojson@^5.8.1": version "5.8.1" @@ -414,12 +442,12 @@ dependencies: undici-types "~5.26.4" -"@types/node@^20.14.9": - version "20.14.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.9.tgz#12e8e765ab27f8c421a1820c99f5f313a933b420" - integrity sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg== +"@types/node@^22.1.0": + version "22.1.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.1.0.tgz#6d6adc648b5e03f0e83c78dc788c2b037d0ad94b" + integrity sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw== dependencies: - undici-types "~5.26.4" + undici-types "~6.13.0" "@types/sanitize-html@^2.11.0": version "2.11.0" @@ -519,73 +547,80 @@ resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== -"@vitejs/plugin-vue@^5.0.5": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.0.5.tgz#e3dc11e427d4b818b7e3202766ad156e3d5e2eaa" - integrity sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ== +"@vitejs/plugin-vue@^5.1.2": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.1.2.tgz#f11091e0130eca6c1ca8cfb85ee71ea53b255d31" + integrity sha512-nY9IwH12qeiJqumTCLJLE7IiNx7HZ39cbHaysEUd+Myvbz9KAqd2yq+U01Kab1R/H1BmiyM2ShTYlNH32Fzo3A== -"@vitest/expect@1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-1.6.0.tgz#0b3ba0914f738508464983f4d811bc122b51fb30" - integrity sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ== +"@vitest/expect@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-2.0.5.tgz#f3745a6a2c18acbea4d39f5935e913f40d26fa86" + integrity sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA== dependencies: - "@vitest/spy" "1.6.0" - "@vitest/utils" "1.6.0" - chai "^4.3.10" + "@vitest/spy" "2.0.5" + "@vitest/utils" "2.0.5" + chai "^5.1.1" + tinyrainbow "^1.2.0" -"@vitest/runner@1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-1.6.0.tgz#a6de49a96cb33b0e3ba0d9064a3e8d6ce2f08825" - integrity sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg== +"@vitest/pretty-format@2.0.5", "@vitest/pretty-format@^2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-2.0.5.tgz#91d2e6d3a7235c742e1a6cc50e7786e2f2979b1e" + integrity sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ== dependencies: - "@vitest/utils" "1.6.0" - p-limit "^5.0.0" - pathe "^1.1.1" + tinyrainbow "^1.2.0" -"@vitest/snapshot@1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-1.6.0.tgz#deb7e4498a5299c1198136f56e6e0f692e6af470" - integrity sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ== +"@vitest/runner@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-2.0.5.tgz#89197e712bb93513537d6876995a4843392b2a84" + integrity sha512-TfRfZa6Bkk9ky4tW0z20WKXFEwwvWhRY+84CnSEtq4+3ZvDlJyY32oNTJtM7AW9ihW90tX/1Q78cb6FjoAs+ig== dependencies: - magic-string "^0.30.5" - pathe "^1.1.1" - pretty-format "^29.7.0" + "@vitest/utils" "2.0.5" + pathe "^1.1.2" -"@vitest/spy@1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-1.6.0.tgz#362cbd42ccdb03f1613798fde99799649516906d" - integrity sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw== +"@vitest/snapshot@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-2.0.5.tgz#a2346bc5013b73c44670c277c430e0334690a162" + integrity sha512-SgCPUeDFLaM0mIUHfaArq8fD2WbaXG/zVXjRupthYfYGzc8ztbFbu6dUNOblBG7XLMR1kEhS/DNnfCZ2IhdDew== dependencies: - tinyspy "^2.2.0" + "@vitest/pretty-format" "2.0.5" + magic-string "^0.30.10" + pathe "^1.1.2" -"@vitest/utils@1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-1.6.0.tgz#5c5675ca7d6f546a7b4337de9ae882e6c57896a1" - integrity sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw== +"@vitest/spy@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-2.0.5.tgz#590fc07df84a78b8e9dd976ec2090920084a2b9f" + integrity sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA== + dependencies: + tinyspy "^3.0.0" + +"@vitest/utils@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-2.0.5.tgz#6f8307a4b6bc6ceb9270007f73c67c915944e926" + integrity sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ== dependencies: - diff-sequences "^29.6.3" + "@vitest/pretty-format" "2.0.5" estree-walker "^3.0.3" - loupe "^2.3.7" - pretty-format "^29.7.0" + loupe "^3.1.1" + tinyrainbow "^1.2.0" -"@volar/language-core@2.3.1", "@volar/language-core@~2.3.1": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-2.3.1.tgz#0968218ca3210b9d1151b44ac0ad6944562ce3bc" - integrity sha512-25CZ3ulM6jWgQsPQjKb7maKDlryvXWvsl7ytw4uj1Yyy17BgdiTWqMuNSxIODC3+/7IBOOGYoINC/1OOLACLLw== +"@volar/language-core@2.4.0-alpha.18", "@volar/language-core@~2.4.0-alpha.18": + version "2.4.0-alpha.18" + resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-2.4.0-alpha.18.tgz#dafffd68ac07c26d69de16741187fd4c06bfa345" + integrity sha512-JAYeJvYQQROmVRtSBIczaPjP3DX4QW1fOqW1Ebs0d3Y3EwSNRglz03dSv0Dm61dzd0Yx3WgTW3hndDnTQqgmyg== dependencies: - "@volar/source-map" "2.3.1" + "@volar/source-map" "2.4.0-alpha.18" -"@volar/source-map@2.3.1": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-2.3.1.tgz#3404ef0f9f9b53bffc253c2345566f64a998d3d8" - integrity sha512-fU3IL19wRy5S5OaGq67ejSl+/xdMuOHgp9Rsp3OiOhLyg25CctLYDdGZ9Y3+MJ1iqTLDh94PdvdR1BZX6I0hNQ== +"@volar/source-map@2.4.0-alpha.18": + version "2.4.0-alpha.18" + resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-2.4.0-alpha.18.tgz#a2413932ff6b1821ae8efcbd9249d4da3f99f223" + integrity sha512-MTeCV9MUwwsH0sNFiZwKtFrrVZUK6p8ioZs3xFzHc2cvDXHWlYN3bChdQtwKX+FY2HG6H3CfAu1pKijolzIQ8g== -"@volar/typescript@~2.3.1": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-2.3.1.tgz#ffdbd361844ad9b3b6f45a4a173b3d384385792e" - integrity sha512-OrUV6dYt/1h92+aWElexra6dp++gF/IEddvwyxeobyYfKAoKDUMsWU0iJCj0clZlfdyYaLmNEAkulJlVimxnOw== +"@volar/typescript@~2.4.0-alpha.18": + version "2.4.0-alpha.18" + resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-2.4.0-alpha.18.tgz#806aca9ce1bd7c48dc5fcd0fcf7f33bdd04e5b35" + integrity sha512-sXh5Y8sqGUkgxpMWUGvRXggxYHAVxg0Pa1C42lQZuPDrW6vHJPR0VCK8Sr7WJsAW530HuNQT/ZIskmXtxjybMQ== dependencies: - "@volar/language-core" "2.3.1" + "@volar/language-core" "2.4.0-alpha.18" path-browserify "^1.0.1" vscode-uri "^3.0.8" @@ -607,13 +642,13 @@ estree-walker "^2.0.2" source-map-js "^1.2.0" -"@vue/compiler-core@3.4.31": - version "3.4.31" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.31.tgz#b51a76f1b30e9b5eba0553264dff0f171aedb7c6" - integrity sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg== +"@vue/compiler-core@3.4.35": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.35.tgz#421922a75ecabf1aabc6b7a2ce98b5acb2fc2d65" + integrity sha512-gKp0zGoLnMYtw4uS/SJRRO7rsVggLjvot3mcctlMXunYNsX+aRJDqqw/lV5/gHK91nvaAAlWFgdVl020AW1Prg== dependencies: "@babel/parser" "^7.24.7" - "@vue/shared" "3.4.31" + "@vue/shared" "3.4.35" entities "^4.5.0" estree-walker "^2.0.2" source-map-js "^1.2.0" @@ -626,13 +661,13 @@ "@vue/compiler-core" "3.4.29" "@vue/shared" "3.4.29" -"@vue/compiler-dom@3.4.31": - version "3.4.31" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.31.tgz#30961ca847f5d6ad18ffa26236c219f61b195f6b" - integrity sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ== +"@vue/compiler-dom@3.4.35": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.35.tgz#cd0881f1b4ed655cd96367bce4845f87023a5a2d" + integrity sha512-pWIZRL76/oE/VMhdv/ovZfmuooEni6JPG1BFe7oLk5DZRo/ImydXijoZl/4kh2406boRQ7lxTYzbZEEXEhj9NQ== dependencies: - "@vue/compiler-core" "3.4.31" - "@vue/shared" "3.4.31" + "@vue/compiler-core" "3.4.35" + "@vue/shared" "3.4.35" "@vue/compiler-sfc@3.4.29": version "3.4.29" @@ -649,19 +684,19 @@ postcss "^8.4.38" source-map-js "^1.2.0" -"@vue/compiler-sfc@3.4.31": - version "3.4.31" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.31.tgz#cc6bfccda17df8268cc5440842277f61623c591f" - integrity sha512-einJxqEw8IIJxzmnxmJBuK2usI+lJonl53foq+9etB2HAzlPjAS/wa7r0uUpXw5ByX3/0uswVSrjNb17vJm1kQ== +"@vue/compiler-sfc@3.4.35": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.35.tgz#16f87dd3bdab64cef14d3a6fcf53f8673e404071" + integrity sha512-xacnRS/h/FCsjsMfxBkzjoNxyxEyKyZfBch/P4vkLRvYJwe5ChXmZZrj8Dsed/752H2Q3JE8kYu9Uyha9J6PgA== dependencies: "@babel/parser" "^7.24.7" - "@vue/compiler-core" "3.4.31" - "@vue/compiler-dom" "3.4.31" - "@vue/compiler-ssr" "3.4.31" - "@vue/shared" "3.4.31" + "@vue/compiler-core" "3.4.35" + "@vue/compiler-dom" "3.4.35" + "@vue/compiler-ssr" "3.4.35" + "@vue/shared" "3.4.35" estree-walker "^2.0.2" magic-string "^0.30.10" - postcss "^8.4.38" + postcss "^8.4.40" source-map-js "^1.2.0" "@vue/compiler-ssr@3.4.29": @@ -672,13 +707,21 @@ "@vue/compiler-dom" "3.4.29" "@vue/shared" "3.4.29" -"@vue/compiler-ssr@3.4.31": - version "3.4.31" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.31.tgz#f62ffecdf15bacb883d0099780cf9a1e3654bfc4" - integrity sha512-RtefmITAje3fJ8FSg1gwgDhdKhZVntIVbwupdyZDSifZTRMiWxWehAOTCc8/KZDnBOcYQ4/9VWxsTbd3wT0hAA== +"@vue/compiler-ssr@3.4.35": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.35.tgz#0774c9a0afed74d71615209904b38f3fa9711adb" + integrity sha512-7iynB+0KB1AAJKk/biENTV5cRGHRdbdaD7Mx3nWcm1W8bVD6QmnH3B4AHhQQ1qZHhqFwzEzMwiytXm3PX1e60A== dependencies: - "@vue/compiler-dom" "3.4.31" - "@vue/shared" "3.4.31" + "@vue/compiler-dom" "3.4.35" + "@vue/shared" "3.4.35" + +"@vue/compiler-vue2@^2.7.16": + version "2.7.16" + resolved "https://registry.yarnpkg.com/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz#2ba837cbd3f1b33c2bc865fbe1a3b53fb611e249" + integrity sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A== + dependencies: + de-indent "^1.0.2" + he "^1.2.0" "@vue/devtools-api@^6.0.0-beta.11", "@vue/devtools-api@^6.5.0", "@vue/devtools-api@^6.5.1": version "6.6.3" @@ -702,19 +745,19 @@ "@typescript-eslint/parser" "^7.1.1" vue-eslint-parser "^9.3.1" -"@vue/language-core@2.0.22": - version "2.0.22" - resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-2.0.22.tgz#2f8164ecc83f85f27301521d0a6ce37cc59bb23a" - integrity sha512-dNTAAtEOuMiz7N1s5tKpypnVVCtawxVSF5BukD0ELcYSw+DSbrSlYYSw8GuwvurodCeYFSHsmslE+c2sYDNoiA== +"@vue/language-core@2.0.29": + version "2.0.29" + resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-2.0.29.tgz#19462d786cd7a1c21dbe575b46970a57094e0357" + integrity sha512-o2qz9JPjhdoVj8D2+9bDXbaI4q2uZTHQA/dbyZT4Bj1FR9viZxDJnLcKVHfxdn6wsOzRgpqIzJEEmSSvgMvDTQ== dependencies: - "@volar/language-core" "~2.3.1" + "@volar/language-core" "~2.4.0-alpha.18" "@vue/compiler-dom" "^3.4.0" + "@vue/compiler-vue2" "^2.7.16" "@vue/shared" "^3.4.0" computeds "^0.0.1" minimatch "^9.0.3" muggle-string "^0.4.1" path-browserify "^1.0.1" - vue-template-compiler "^2.7.14" "@vue/reactivity@3.4.29": version "3.4.29" @@ -723,12 +766,12 @@ dependencies: "@vue/shared" "3.4.29" -"@vue/reactivity@3.4.31": - version "3.4.31" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.31.tgz#eda80e90c4f9d7659efe1f5ed99c2dfdc9e93d77" - integrity sha512-VGkTani8SOoVkZNds1PfJ/T1SlAIOf8E58PGAhIOUDYPC4GAmFA2u/E14TDAFcf3vVDKunc4QqCe/SHr8xC65Q== +"@vue/reactivity@3.4.35": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.35.tgz#dfbb4f5371da1290ac86e3313d0e9a68bb0ab38d" + integrity sha512-Ggtz7ZZHakriKioveJtPlStYardwQH6VCs9V13/4qjHSQb/teE30LVJNrbBVs4+aoYGtTQKJbTe4CWGxVZrvEw== dependencies: - "@vue/shared" "3.4.31" + "@vue/shared" "3.4.35" "@vue/runtime-core@3.4.29": version "3.4.29" @@ -738,13 +781,13 @@ "@vue/reactivity" "3.4.29" "@vue/shared" "3.4.29" -"@vue/runtime-core@3.4.31": - version "3.4.31" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.31.tgz#ad3a41ad76385c0429e3e4dbefb81918494e10cf" - integrity sha512-LDkztxeUPazxG/p8c5JDDKPfkCDBkkiNLVNf7XZIUnJ+66GVGkP+TIh34+8LtPisZ+HMWl2zqhIw0xN5MwU1cw== +"@vue/runtime-core@3.4.35": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.35.tgz#c036013a7b1bbe0d14a6b76eb4355dae6690d2e6" + integrity sha512-D+BAjFoWwT5wtITpSxwqfWZiBClhBbR+bm0VQlWYFOadUUXFo+5wbe9ErXhLvwguPiLZdEF13QAWi2vP3ZD5tA== dependencies: - "@vue/reactivity" "3.4.31" - "@vue/shared" "3.4.31" + "@vue/reactivity" "3.4.35" + "@vue/shared" "3.4.35" "@vue/runtime-dom@3.4.29": version "3.4.29" @@ -756,14 +799,14 @@ "@vue/shared" "3.4.29" csstype "^3.1.3" -"@vue/runtime-dom@3.4.31": - version "3.4.31" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.31.tgz#bae7ad844f944af33699c73581bc36125bab96ce" - integrity sha512-2Auws3mB7+lHhTFCg8E9ZWopA6Q6L455EcU7bzcQ4x6Dn4cCPuqj6S2oBZgN2a8vJRS/LSYYxwFFq2Hlx3Fsaw== +"@vue/runtime-dom@3.4.35": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.35.tgz#74254c7c327163d692e1d7d2b6d9e92463744e90" + integrity sha512-yGOlbos+MVhlS5NWBF2HDNgblG8e2MY3+GigHEyR/dREAluvI5tuUUgie3/9XeqhPE4LF0i2wjlduh5thnfOqw== dependencies: - "@vue/reactivity" "3.4.31" - "@vue/runtime-core" "3.4.31" - "@vue/shared" "3.4.31" + "@vue/reactivity" "3.4.35" + "@vue/runtime-core" "3.4.35" + "@vue/shared" "3.4.35" csstype "^3.1.3" "@vue/server-renderer@3.4.29": @@ -774,23 +817,23 @@ "@vue/compiler-ssr" "3.4.29" "@vue/shared" "3.4.29" -"@vue/server-renderer@3.4.31": - version "3.4.31" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.31.tgz#bbe990f793c36d62d05bdbbaf142511d53e159fd" - integrity sha512-D5BLbdvrlR9PE3by9GaUp1gQXlCNadIZytMIb8H2h3FMWJd4oUfkUTEH2wAr3qxoRz25uxbTcbqd3WKlm9EHQA== +"@vue/server-renderer@3.4.35": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.35.tgz#188e94e82d8e729ba7b40dd91d10678b85f77c6b" + integrity sha512-iZ0e/u9mRE4T8tNhlo0tbA+gzVkgv8r5BX6s1kRbOZqfpq14qoIvCZ5gIgraOmYkMYrSEZgkkojFPr+Nyq/Mnw== dependencies: - "@vue/compiler-ssr" "3.4.31" - "@vue/shared" "3.4.31" + "@vue/compiler-ssr" "3.4.35" + "@vue/shared" "3.4.35" "@vue/shared@3.4.29", "@vue/shared@^3.4.0": version "3.4.29" resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.29.tgz#84908c284e88a269f8bceee59707b14eb4b2d284" integrity sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA== -"@vue/shared@3.4.31": - version "3.4.31" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.31.tgz#af9981f57def2c3f080c14bf219314fc0dc808a0" - integrity sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA== +"@vue/shared@3.4.35": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.35.tgz#5432f4b1c79e763fcf78cc830faf59ff01248968" + integrity sha512-hvuhBYYDe+b1G8KHxsQ0diDqDMA8D9laxWZhNAjE83VZb5UDaXl9Xnz7cGdDSyiHM90qqI/CyGMcpBpiDy6VVQ== "@vue/test-utils@^2.4.6": version "2.4.6" @@ -862,19 +905,12 @@ acorn-jsx@^5.2.0, acorn-jsx@^5.3.2: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-walk@^8.3.2: - version "8.3.3" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.3.tgz#9caeac29eefaa0c41e3d4c65137de4d6f34df43e" - integrity sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw== - dependencies: - acorn "^8.11.0" - acorn@^7.1.1, acorn@^7.4.1: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.11.0, acorn@^8.11.3, acorn@^8.9.0: +acorn@^8.9.0: version "8.12.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.0.tgz#1627bfa2e058148036133b8d9b51a700663c294c" integrity sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw== @@ -908,11 +944,6 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - ansi-styles@^6.1.0, ansi-styles@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" @@ -1002,10 +1033,10 @@ arraybuffer.prototype.slice@^1.0.3: is-array-buffer "^3.0.4" is-shared-array-buffer "^1.0.2" -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== +assertion-error@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" + integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== asynckit@^0.4.0: version "0.4.0" @@ -1019,10 +1050,10 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" -axios@^1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621" - integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw== +axios@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.3.tgz#a1125f2faf702bc8e8f2104ec3a76fab40257d85" + integrity sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw== dependencies: follow-redirects "^1.15.6" form-data "^4.0.0" @@ -1091,18 +1122,16 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -chai@^4.3.10: - version "4.4.1" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.4.1.tgz#3603fa6eba35425b0f2ac91a009fe924106e50d1" - integrity sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g== +chai@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/chai/-/chai-5.1.1.tgz#f035d9792a22b481ead1c65908d14bb62ec1c82c" + integrity sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA== dependencies: - assertion-error "^1.1.0" - check-error "^1.0.3" - deep-eql "^4.1.3" - get-func-name "^2.0.2" - loupe "^2.3.6" - pathval "^1.1.1" - type-detect "^4.0.8" + assertion-error "^2.0.1" + check-error "^2.1.1" + deep-eql "^5.0.1" + loupe "^3.1.0" + pathval "^2.0.0" chalk@^4.0.0: version "4.1.2" @@ -1124,12 +1153,10 @@ chartjs-plugin-datalabels@^2.2.0: resolved "https://registry.yarnpkg.com/chartjs-plugin-datalabels/-/chartjs-plugin-datalabels-2.2.0.tgz#369578e131d743c2e34b5fbe2d3f9335f6639b8f" integrity sha512-14ZU30lH7n89oq+A4bWaJPnAG8a7ZTk7dKf48YAzMvJjQtjrgg5Dpk9f+LbjCF6bpx3RAGTeL13IXpKQYyRvlw== -check-error@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" - integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== - dependencies: - get-func-name "^2.0.2" +check-error@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc" + integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== "chokidar@>=3.0.0 <4.0.0": version "3.6.0" @@ -1180,11 +1207,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -confbox@^0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.1.7.tgz#ccfc0a2bcae36a84838e83a3b7f770fb17d6c579" - integrity sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA== - config-chain@^1.1.13: version "1.1.13" resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" @@ -1290,17 +1312,22 @@ debug@^3.2.7: dependencies: ms "^2.1.1" +debug@^4.3.5: + version "4.3.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" + integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== + dependencies: + ms "2.1.2" + decimal.js@^10.4.3: version "10.4.3" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== -deep-eql@^4.1.3: - version "4.1.4" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.4.tgz#d0d3912865911bb8fac5afb4e3acfa6a28dc72b7" - integrity sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg== - dependencies: - type-detect "^4.0.0" +deep-eql@^5.0.1: + version "5.0.2" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341" + integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== deep-is@^0.1.3: version "0.1.4" @@ -1335,11 +1362,6 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== -diff-sequences@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" - integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== - dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -1629,10 +1651,10 @@ eslint-plugin-prettier@^5.0.0: prettier-linter-helpers "^1.0.0" synckit "^0.8.6" -eslint-plugin-vue@^9.26.0: - version "9.26.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.26.0.tgz#bf7f5cce62c8f878059b91edae44d22974133af5" - integrity sha512-eTvlxXgd4ijE1cdur850G6KalZqk65k1JKoOI2d1kT3hr8sPD07j1q98FRFdNnpxBELGPWxZmInxeHGF/GxtqQ== +eslint-plugin-vue@^9.27.0: + version "9.27.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.27.0.tgz#c22dae704a03d9ecefa81364ff89f60ce0481f94" + integrity sha512-5Dw3yxEyuBSXTzT5/Ge1X5kIkRTQ3nvBn/VwPwInNiZBSJOO/timWMUaflONnFBzU6NhB68lxnCda7ULV5N7LA== dependencies: "@eslint-community/eslint-utils" "^4.4.0" globals "^13.24.0" @@ -1640,7 +1662,7 @@ eslint-plugin-vue@^9.26.0: nth-check "^2.1.1" postcss-selector-parser "^6.0.15" semver "^7.6.0" - vue-eslint-parser "^9.4.2" + vue-eslint-parser "^9.4.3" xml-name-validator "^4.0.0" eslint-scope@^7.1.1, eslint-scope@^7.2.2: @@ -1919,7 +1941,7 @@ functions-have-names@^1.2.3: resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== -get-func-name@^2.0.1, get-func-name@^2.0.2: +get-func-name@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== @@ -2109,10 +2131,10 @@ http-proxy-agent@^7.0.2: agent-base "^7.1.0" debug "^4.3.4" -https-proxy-agent@^7.0.4: - version "7.0.4" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz#8e97b841a029ad8ddc8731f26595bad868cb4168" - integrity sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg== +https-proxy-agent@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz#9e8b5013873299e11fab6fd548405da2d6c602b2" + integrity sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw== dependencies: agent-base "^7.0.2" debug "4" @@ -2367,11 +2389,6 @@ js-cookie@^3.0.5: resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-3.0.5.tgz#0b7e2fd0c01552c58ba86e0841f94dc2557dcdbc" integrity sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw== -js-tokens@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-9.0.0.tgz#0f893996d6f3ed46df7f0a3b12a03f5fd84223c1" - integrity sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ== - js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" @@ -2379,10 +2396,10 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -jsdom@^24.1.0: - version "24.1.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-24.1.0.tgz#0cffdabd42c506788bfecd160e8ac22d4387f971" - integrity sha512-6gpM7pRXCwIOKxX47cgOyvyQDN/Eh0f1MeKySBV2xGdKtqJBLj8P25eY3EVCWo2mglDDzozR2r2MW4T+JiNUZA== +jsdom@^24.1.1: + version "24.1.1" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-24.1.1.tgz#f41df8f4f3b2fbfa7e1bdc5df62c9804fd14a9d0" + integrity sha512-5O1wWV99Jhq4DV7rCLIoZ/UIhyQeDR7wHVyZAHAshbrvZsLs+Xzz7gtwnlJTJDjleiTKh54F4dXrX70vJQTyJQ== dependencies: cssstyle "^4.0.1" data-urls "^5.0.0" @@ -2390,11 +2407,11 @@ jsdom@^24.1.0: form-data "^4.0.0" html-encoding-sniffer "^4.0.0" http-proxy-agent "^7.0.2" - https-proxy-agent "^7.0.4" + https-proxy-agent "^7.0.5" is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.10" + nwsapi "^2.2.12" parse5 "^7.1.2" - rrweb-cssom "^0.7.0" + rrweb-cssom "^0.7.1" saxes "^6.0.0" symbol-tree "^3.2.4" tough-cookie "^4.1.4" @@ -2403,7 +2420,7 @@ jsdom@^24.1.0: whatwg-encoding "^3.1.1" whatwg-mimetype "^4.0.0" whatwg-url "^14.0.0" - ws "^8.17.0" + ws "^8.18.0" xml-name-validator "^5.0.0" json-buffer@3.0.1: @@ -2488,14 +2505,6 @@ loader-utils@^2.0.0: emojis-list "^3.0.0" json5 "^2.1.2" -local-pkg@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.5.0.tgz#093d25a346bae59a99f80e75f6e9d36d7e8c925c" - integrity sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg== - dependencies: - mlly "^1.4.2" - pkg-types "^1.0.3" - locate-path@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" @@ -2513,10 +2522,10 @@ lodash@^4.17.20, lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -loupe@^2.3.6, loupe@^2.3.7: - version "2.3.7" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" - integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== +loupe@^3.1.0, loupe@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.1.1.tgz#71d038d59007d890e3247c5db97c1ec5a92edc54" + integrity sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw== dependencies: get-func-name "^2.0.1" @@ -2525,7 +2534,7 @@ lru-cache@^10.2.0: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878" integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ== -magic-string@^0.30.10, magic-string@^0.30.5: +magic-string@^0.30.10: version "0.30.10" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.10.tgz#123d9c41a0cb5640c892b041d4cfb3bd0aa4b39e" integrity sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ== @@ -2603,16 +2612,6 @@ minimist@^1.2.0, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== -mlly@^1.4.2, mlly@^1.7.0: - version "1.7.1" - resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.7.1.tgz#e0336429bb0731b6a8e887b438cbdae522c8f32f" - integrity sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA== - dependencies: - acorn "^8.11.3" - pathe "^1.1.2" - pkg-types "^1.1.1" - ufo "^1.5.3" - ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -2655,10 +2654,10 @@ npm-normalize-package-bin@^3.0.0: resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz#25447e32a9a7de1f51362c61a559233b89947832" integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ== -npm-run-all2@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/npm-run-all2/-/npm-run-all2-6.2.0.tgz#ac0a893a593e1ab3ef85c5ac3526321d2e3137bd" - integrity sha512-wA7yVIkthe6qJBfiJ2g6aweaaRlw72itsFGF6HuwCHKwtwAx/4BY1vVpk6bw6lS8RLMsexoasOkd0aYOmsFG7Q== +npm-run-all2@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/npm-run-all2/-/npm-run-all2-6.2.2.tgz#cd98d7c94dfa92e36724a1064609cca7a8991f5f" + integrity sha512-Q+alQAGIW7ZhKcxLt8GcSi3h3ryheD6xnmXahkMRVM5LYmajcUrSITm8h+OPC9RYWMV2GR0Q1ntTUCfxaNoOJw== dependencies: ansi-styles "^6.2.1" cross-spawn "^7.0.3" @@ -2682,10 +2681,10 @@ nth-check@^2.1.1: dependencies: boolbase "^1.0.0" -nwsapi@^2.2.10: - version "2.2.10" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.10.tgz#0b77a68e21a0b483db70b11fad055906e867cda8" - integrity sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ== +nwsapi@^2.2.12: + version "2.2.12" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.12.tgz#fb6af5c0ec35b27b4581eb3bbad34ec9e5c696f8" + integrity sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w== object-inspect@^1.13.1: version "1.13.1" @@ -2768,13 +2767,6 @@ p-limit@^3.0.2: dependencies: yocto-queue "^0.1.0" -p-limit@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-5.0.0.tgz#6946d5b7140b649b7a33a027d89b4c625b3a5985" - integrity sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ== - dependencies: - yocto-queue "^1.0.0" - p-locate@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" @@ -2849,17 +2841,17 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pathe@^1.1.1, pathe@^1.1.2: +pathe@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== -pathval@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== +pathval@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.0.tgz#7e2550b422601d4f6b8e26f1301bc8f15a741a25" + integrity sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA== -picocolors@^1.0.0: +picocolors@^1.0.0, picocolors@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== @@ -2874,15 +2866,6 @@ pidtree@^0.6.0: resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== -pkg-types@^1.0.3, pkg-types@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.1.1.tgz#07b626880749beb607b0c817af63aac1845a73f2" - integrity sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ== - dependencies: - confbox "^0.1.7" - mlly "^1.7.0" - pathe "^1.1.2" - possible-typed-array-names@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" @@ -2905,6 +2888,15 @@ postcss@^8.3.11, postcss@^8.4.38: picocolors "^1.0.0" source-map-js "^1.2.0" +postcss@^8.4.39, postcss@^8.4.40: + version "8.4.40" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.40.tgz#eb81f2a4dd7668ed869a6db25999e02e9ad909d8" + integrity sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.1" + source-map-js "^1.2.0" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -2917,19 +2909,10 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.2.tgz#03ff86dc7c835f2d2559ee76876a3914cec4a90a" - integrity sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA== - -pretty-format@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" - integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== - dependencies: - "@jest/schemas" "^29.6.3" - ansi-styles "^5.0.0" - react-is "^18.0.0" +prettier@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.3.tgz#30c54fe0be0d8d12e6ae61dbb10109ea00d53105" + integrity sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew== proto-list@~1.2.1: version "1.2.4" @@ -2961,11 +2944,6 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -react-is@^18.0.0: - version "18.3.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" - integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== - read-package-json-fast@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz#394908a9725dc7a5f14e70c8e7556dff1d2b1049" @@ -3062,7 +3040,7 @@ rrweb-cssom@^0.6.0: resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz#ed298055b97cbddcdeb278f904857629dec5e0e1" integrity sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw== -rrweb-cssom@^0.7.0: +rrweb-cssom@^0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz#c73451a484b86dd7cfb1e0b2898df4b703183e4b" integrity sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg== @@ -3110,10 +3088,10 @@ sanitize-html@^2.13.0: parse-srcset "^1.0.2" postcss "^8.3.11" -sass@^1.77.6: - version "1.77.6" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.77.6.tgz#898845c1348078c2e6d1b64f9ee06b3f8bd489e4" - integrity sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q== +sass@^1.77.8: + version "1.77.8" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.77.8.tgz#9f18b449ea401759ef7ec1752a16373e296b52bd" + integrity sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -3225,7 +3203,7 @@ stackback@0.0.2: resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== -std-env@^3.5.0: +std-env@^3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.7.0.tgz#c9f7386ced6ecf13360b6c6c55b8aaa4ef7481d2" integrity sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg== @@ -3314,13 +3292,6 @@ strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -strip-literal@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-2.1.0.tgz#6d82ade5e2e74f5c7e8739b6c84692bd65f0bd2a" - integrity sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw== - dependencies: - js-tokens "^9.0.0" - supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -3356,20 +3327,25 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== -tinybench@^2.5.1: - version "2.8.0" - resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.8.0.tgz#30e19ae3a27508ee18273ffed9ac7018949acd7b" - integrity sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw== +tinybench@^2.8.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.9.0.tgz#103c9f8ba6d7237a47ab6dd1dcff77251863426b" + integrity sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg== + +tinypool@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-1.0.0.tgz#a68965218e04f4ad9de037d2a1cd63cda9afb238" + integrity sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ== -tinypool@^0.8.3: - version "0.8.4" - resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.8.4.tgz#e217fe1270d941b39e98c625dcecebb1408c9aa8" - integrity sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ== +tinyrainbow@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/tinyrainbow/-/tinyrainbow-1.2.0.tgz#5c57d2fc0fb3d1afd78465c33ca885d04f02abb5" + integrity sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ== -tinyspy@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-2.2.1.tgz#117b2342f1f38a0dbdcc73a50a454883adf861d1" - integrity sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A== +tinyspy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-3.0.0.tgz#cb61644f2713cd84dee184863f4642e06ddf0585" + integrity sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA== to-regex-range@^5.0.1: version "5.0.1" @@ -3422,11 +3398,6 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-detect@^4.0.0, type-detect@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - type-fest@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" @@ -3481,11 +3452,6 @@ typescript@~5.4.5: resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== -ufo@^1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.5.3.tgz#3325bd3c977b6c6cd3160bf4ff52989adc9d3344" - integrity sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw== - unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" @@ -3501,6 +3467,11 @@ undici-types@~5.26.4: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== +undici-types@~6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.13.0.tgz#e3e79220ab8c81ed1496b5812471afd7cf075ea5" + integrity sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg== + universalify@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" @@ -3526,15 +3497,15 @@ util-deprecate@^1.0.2: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -vite-node@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-1.6.0.tgz#2c7e61129bfecc759478fa592754fd9704aaba7f" - integrity sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw== +vite-node@2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-2.0.5.tgz#36d909188fc6e3aba3da5fc095b3637d0d18e27b" + integrity sha512-LdsW4pxj0Ot69FAoXZ1yTnA9bjGohr2yNBU7QKRxpz8ITSkhuDl6h3zS/tvgz4qrNjeRnvrWeXQ8ZF7Um4W00Q== dependencies: cac "^6.7.14" - debug "^4.3.4" - pathe "^1.1.1" - picocolors "^1.0.0" + debug "^4.3.5" + pathe "^1.1.2" + tinyrainbow "^1.2.0" vite "^5.0.0" vite@^5.0.0: @@ -3548,42 +3519,41 @@ vite@^5.0.0: optionalDependencies: fsevents "~2.3.3" -vite@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.3.2.tgz#2f0a8531c71060467ed3e0a205a203f269b6d9c8" - integrity sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA== +vite@^5.3.5: + version "5.3.5" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.3.5.tgz#b847f846fb2b6cb6f6f4ed50a830186138cb83d8" + integrity sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA== dependencies: esbuild "^0.21.3" - postcss "^8.4.38" + postcss "^8.4.39" rollup "^4.13.0" optionalDependencies: fsevents "~2.3.3" -vitest@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-1.6.0.tgz#9d5ad4752a3c451be919e412c597126cffb9892f" - integrity sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA== - dependencies: - "@vitest/expect" "1.6.0" - "@vitest/runner" "1.6.0" - "@vitest/snapshot" "1.6.0" - "@vitest/spy" "1.6.0" - "@vitest/utils" "1.6.0" - acorn-walk "^8.3.2" - chai "^4.3.10" - debug "^4.3.4" +vitest@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-2.0.5.tgz#2f15a532704a7181528e399cc5b754c7f335fd62" + integrity sha512-8GUxONfauuIdeSl5f9GTgVEpg5BTOlplET4WEDaeY2QBiN8wSm68vxN/tb5z405OwppfoCavnwXafiaYBC/xOA== + dependencies: + "@ampproject/remapping" "^2.3.0" + "@vitest/expect" "2.0.5" + "@vitest/pretty-format" "^2.0.5" + "@vitest/runner" "2.0.5" + "@vitest/snapshot" "2.0.5" + "@vitest/spy" "2.0.5" + "@vitest/utils" "2.0.5" + chai "^5.1.1" + debug "^4.3.5" execa "^8.0.1" - local-pkg "^0.5.0" - magic-string "^0.30.5" - pathe "^1.1.1" - picocolors "^1.0.0" - std-env "^3.5.0" - strip-literal "^2.0.0" - tinybench "^2.5.1" - tinypool "^0.8.3" + magic-string "^0.30.10" + pathe "^1.1.2" + std-env "^3.7.0" + tinybench "^2.8.0" + tinypool "^1.0.0" + tinyrainbow "^1.2.0" vite "^5.0.0" - vite-node "1.6.0" - why-is-node-running "^2.2.2" + vite-node "2.0.5" + why-is-node-running "^2.3.0" vscode-uri@^3.0.8: version "3.0.8" @@ -3600,7 +3570,7 @@ vue-component-type-helpers@^2.0.0: resolved "https://registry.yarnpkg.com/vue-component-type-helpers/-/vue-component-type-helpers-2.0.21.tgz#f2cb9ce72da78b5974122ec168379be146760ae8" integrity sha512-3NaicyZ7N4B6cft4bfb7dOnPbE9CjLcx+6wZWAg5zwszfO4qXRh+U52dN5r5ZZfc6iMaxKCEcoH9CmxxoFZHLg== -vue-eslint-parser@^9.3.1, vue-eslint-parser@^9.4.2: +vue-eslint-parser@^9.3.1, vue-eslint-parser@^9.4.3: version "9.4.3" resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz#9b04b22c71401f1e8bca9be7c3e3416a4bde76a8" integrity sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg== @@ -3641,21 +3611,13 @@ vue-router@^4.4.0: dependencies: "@vue/devtools-api" "^6.5.1" -vue-template-compiler@^2.7.14: - version "2.7.16" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz#c81b2d47753264c77ac03b9966a46637482bb03b" - integrity sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ== +vue-tsc@^2.0.29: + version "2.0.29" + resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-2.0.29.tgz#bf7e9605af9fadec7fd6037d242217f5c6ad2c3b" + integrity sha512-MHhsfyxO3mYShZCGYNziSbc63x7cQ5g9kvijV7dRe1TTXBRLxXyL0FnXWpUF1xII2mJ86mwYpYsUmMwkmerq7Q== dependencies: - de-indent "^1.0.2" - he "^1.2.0" - -vue-tsc@^2.0.22: - version "2.0.22" - resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-2.0.22.tgz#ddfef6b3a016d1b986008a3b8702f7e667db128c" - integrity sha512-lMBIwPBO0sxCcmvu45yt1b035AaQ8/XSXQDk8m75y4j0jSXY/y/XzfEtssQ9JMS47lDaR10O3/926oCs8OeGUw== - dependencies: - "@volar/typescript" "~2.3.1" - "@vue/language-core" "2.0.22" + "@volar/typescript" "~2.4.0-alpha.18" + "@vue/language-core" "2.0.29" semver "^7.5.4" vue@^3.2.25: @@ -3669,16 +3631,16 @@ vue@^3.2.25: "@vue/server-renderer" "3.4.29" "@vue/shared" "3.4.29" -vue@^3.4.31: - version "3.4.31" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.31.tgz#83a3c4dab8302b0e974b0d4b92a2f6a6378ae797" - integrity sha512-njqRrOy7W3YLAlVqSKpBebtZpDVg21FPoaq1I7f/+qqBThK9ChAIjkRWgeP6Eat+8C+iia4P3OYqpATP21BCoQ== +vue@^3.4.35: + version "3.4.35" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.35.tgz#9ad23525919eece40153fdf8675d07ddd879eb33" + integrity sha512-+fl/GLmI4GPileHftVlCdB7fUL4aziPcqTudpTGXCT8s+iZWuOCeNEB5haX6Uz2IpRrbEXOgIFbe+XciCuGbNQ== dependencies: - "@vue/compiler-dom" "3.4.31" - "@vue/compiler-sfc" "3.4.31" - "@vue/runtime-dom" "3.4.31" - "@vue/server-renderer" "3.4.31" - "@vue/shared" "3.4.31" + "@vue/compiler-dom" "3.4.35" + "@vue/compiler-sfc" "3.4.35" + "@vue/runtime-dom" "3.4.35" + "@vue/server-renderer" "3.4.35" + "@vue/shared" "3.4.35" vuex@^4.1.0: version "4.1.0" @@ -3748,10 +3710,10 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -why-is-node-running@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.2.2.tgz#4185b2b4699117819e7154594271e7e344c9973e" - integrity sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA== +why-is-node-running@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.3.0.tgz#a3f69a97107f494b3cdc3bdddd883a7d65cebf04" + integrity sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w== dependencies: siginfo "^2.0.0" stackback "0.0.2" @@ -3784,10 +3746,10 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -ws@^8.17.0: - version "8.17.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" - integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== +ws@^8.18.0: + version "8.18.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" + integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== xml-name-validator@^4.0.0: version "4.0.0" @@ -3822,8 +3784,3 @@ yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -yocto-queue@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" - integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== diff --git a/poetry.lock b/poetry.lock index 239cf54cd..939772c52 100644 --- a/poetry.lock +++ b/poetry.lock @@ -119,38 +119,38 @@ yaml = ["PyYAML"] [[package]] name = "bcrypt" -version = "4.1.3" +version = "4.2.0" description = "Modern password hashing for your software and your servers" optional = false python-versions = ">=3.7" files = [ - {file = "bcrypt-4.1.3-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:48429c83292b57bf4af6ab75809f8f4daf52aa5d480632e53707805cc1ce9b74"}, - {file = "bcrypt-4.1.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a8bea4c152b91fd8319fef4c6a790da5c07840421c2b785084989bf8bbb7455"}, - {file = "bcrypt-4.1.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d3b317050a9a711a5c7214bf04e28333cf528e0ed0ec9a4e55ba628d0f07c1a"}, - {file = "bcrypt-4.1.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:094fd31e08c2b102a14880ee5b3d09913ecf334cd604af27e1013c76831f7b05"}, - {file = "bcrypt-4.1.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:4fb253d65da30d9269e0a6f4b0de32bd657a0208a6f4e43d3e645774fb5457f3"}, - {file = "bcrypt-4.1.3-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:193bb49eeeb9c1e2db9ba65d09dc6384edd5608d9d672b4125e9320af9153a15"}, - {file = "bcrypt-4.1.3-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:8cbb119267068c2581ae38790e0d1fbae65d0725247a930fc9900c285d95725d"}, - {file = "bcrypt-4.1.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:6cac78a8d42f9d120b3987f82252bdbeb7e6e900a5e1ba37f6be6fe4e3848286"}, - {file = "bcrypt-4.1.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:01746eb2c4299dd0ae1670234bf77704f581dd72cc180f444bfe74eb80495b64"}, - {file = "bcrypt-4.1.3-cp37-abi3-win32.whl", hash = "sha256:037c5bf7c196a63dcce75545c8874610c600809d5d82c305dd327cd4969995bf"}, - {file = "bcrypt-4.1.3-cp37-abi3-win_amd64.whl", hash = "sha256:8a893d192dfb7c8e883c4576813bf18bb9d59e2cfd88b68b725990f033f1b978"}, - {file = "bcrypt-4.1.3-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:0d4cf6ef1525f79255ef048b3489602868c47aea61f375377f0d00514fe4a78c"}, - {file = "bcrypt-4.1.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f5698ce5292a4e4b9e5861f7e53b1d89242ad39d54c3da451a93cac17b61921a"}, - {file = "bcrypt-4.1.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec3c2e1ca3e5c4b9edb94290b356d082b721f3f50758bce7cce11d8a7c89ce84"}, - {file = "bcrypt-4.1.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:3a5be252fef513363fe281bafc596c31b552cf81d04c5085bc5dac29670faa08"}, - {file = "bcrypt-4.1.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:5f7cd3399fbc4ec290378b541b0cf3d4398e4737a65d0f938c7c0f9d5e686611"}, - {file = "bcrypt-4.1.3-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:c4c8d9b3e97209dd7111bf726e79f638ad9224b4691d1c7cfefa571a09b1b2d6"}, - {file = "bcrypt-4.1.3-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:31adb9cbb8737a581a843e13df22ffb7c84638342de3708a98d5c986770f2834"}, - {file = "bcrypt-4.1.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:551b320396e1d05e49cc18dd77d970accd52b322441628aca04801bbd1d52a73"}, - {file = "bcrypt-4.1.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6717543d2c110a155e6821ce5670c1f512f602eabb77dba95717ca76af79867d"}, - {file = "bcrypt-4.1.3-cp39-abi3-win32.whl", hash = "sha256:6004f5229b50f8493c49232b8e75726b568535fd300e5039e255d919fc3a07f2"}, - {file = "bcrypt-4.1.3-cp39-abi3-win_amd64.whl", hash = "sha256:2505b54afb074627111b5a8dc9b6ae69d0f01fea65c2fcaea403448c503d3991"}, - {file = "bcrypt-4.1.3-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:cb9c707c10bddaf9e5ba7cdb769f3e889e60b7d4fea22834b261f51ca2b89fed"}, - {file = "bcrypt-4.1.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:9f8ea645eb94fb6e7bea0cf4ba121c07a3a182ac52876493870033141aa687bc"}, - {file = "bcrypt-4.1.3-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:f44a97780677e7ac0ca393bd7982b19dbbd8d7228c1afe10b128fd9550eef5f1"}, - {file = "bcrypt-4.1.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d84702adb8f2798d813b17d8187d27076cca3cd52fe3686bb07a9083930ce650"}, - {file = "bcrypt-4.1.3.tar.gz", hash = "sha256:2ee15dd749f5952fe3f0430d0ff6b74082e159c50332a1413d51b5689cf06623"}, + {file = "bcrypt-4.2.0-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:096a15d26ed6ce37a14c1ac1e48119660f21b24cba457f160a4b830f3fe6b5cb"}, + {file = "bcrypt-4.2.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c02d944ca89d9b1922ceb8a46460dd17df1ba37ab66feac4870f6862a1533c00"}, + {file = "bcrypt-4.2.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d84cf6d877918620b687b8fd1bf7781d11e8a0998f576c7aa939776b512b98d"}, + {file = "bcrypt-4.2.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:1bb429fedbe0249465cdd85a58e8376f31bb315e484f16e68ca4c786dcc04291"}, + {file = "bcrypt-4.2.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:655ea221910bcac76ea08aaa76df427ef8625f92e55a8ee44fbf7753dbabb328"}, + {file = "bcrypt-4.2.0-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:1ee38e858bf5d0287c39b7a1fc59eec64bbf880c7d504d3a06a96c16e14058e7"}, + {file = "bcrypt-4.2.0-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:0da52759f7f30e83f1e30a888d9163a81353ef224d82dc58eb5bb52efcabc399"}, + {file = "bcrypt-4.2.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:3698393a1b1f1fd5714524193849d0c6d524d33523acca37cd28f02899285060"}, + {file = "bcrypt-4.2.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:762a2c5fb35f89606a9fde5e51392dad0cd1ab7ae64149a8b935fe8d79dd5ed7"}, + {file = "bcrypt-4.2.0-cp37-abi3-win32.whl", hash = "sha256:5a1e8aa9b28ae28020a3ac4b053117fb51c57a010b9f969603ed885f23841458"}, + {file = "bcrypt-4.2.0-cp37-abi3-win_amd64.whl", hash = "sha256:8f6ede91359e5df88d1f5c1ef47428a4420136f3ce97763e31b86dd8280fbdf5"}, + {file = "bcrypt-4.2.0-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:c52aac18ea1f4a4f65963ea4f9530c306b56ccd0c6f8c8da0c06976e34a6e841"}, + {file = "bcrypt-4.2.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3bbbfb2734f0e4f37c5136130405332640a1e46e6b23e000eeff2ba8d005da68"}, + {file = "bcrypt-4.2.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3413bd60460f76097ee2e0a493ccebe4a7601918219c02f503984f0a7ee0aebe"}, + {file = "bcrypt-4.2.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:8d7bb9c42801035e61c109c345a28ed7e84426ae4865511eb82e913df18f58c2"}, + {file = "bcrypt-4.2.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3d3a6d28cb2305b43feac298774b997e372e56c7c7afd90a12b3dc49b189151c"}, + {file = "bcrypt-4.2.0-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:9c1c4ad86351339c5f320ca372dfba6cb6beb25e8efc659bedd918d921956bae"}, + {file = "bcrypt-4.2.0-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:27fe0f57bb5573104b5a6de5e4153c60814c711b29364c10a75a54bb6d7ff48d"}, + {file = "bcrypt-4.2.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:8ac68872c82f1add6a20bd489870c71b00ebacd2e9134a8aa3f98a0052ab4b0e"}, + {file = "bcrypt-4.2.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:cb2a8ec2bc07d3553ccebf0746bbf3d19426d1c6d1adbd4fa48925f66af7b9e8"}, + {file = "bcrypt-4.2.0-cp39-abi3-win32.whl", hash = "sha256:77800b7147c9dc905db1cba26abe31e504d8247ac73580b4aa179f98e6608f34"}, + {file = "bcrypt-4.2.0-cp39-abi3-win_amd64.whl", hash = "sha256:61ed14326ee023917ecd093ee6ef422a72f3aec6f07e21ea5f10622b735538a9"}, + {file = "bcrypt-4.2.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:39e1d30c7233cfc54f5c3f2c825156fe044efdd3e0b9d309512cc514a263ec2a"}, + {file = "bcrypt-4.2.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f4f4acf526fcd1c34e7ce851147deedd4e26e6402369304220250598b26448db"}, + {file = "bcrypt-4.2.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:1ff39b78a52cf03fdf902635e4c81e544714861ba3f0efc56558979dd4f09170"}, + {file = "bcrypt-4.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:373db9abe198e8e2c70d12b479464e0d5092cc122b20ec504097b5f2297ed184"}, + {file = "bcrypt-4.2.0.tar.gz", hash = "sha256:cf69eaf5185fd58f268f805b505ce31f9b9fc2d64b376642164e9244540c1221"}, ] [package.extras] @@ -191,13 +191,13 @@ files = [ [[package]] name = "certifi" -version = "2024.6.2" +version = "2024.7.4" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2024.6.2-py3-none-any.whl", hash = "sha256:ddc6c8ce995e6987e7faf5e3f1b02b302836a0e5d98ece18392cb1a36c72ad56"}, - {file = "certifi-2024.6.2.tar.gz", hash = "sha256:3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516"}, + {file = "certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"}, + {file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"}, ] [[package]] @@ -404,63 +404,63 @@ test = ["flake8 (==3.7.8)", "hypothesis (==3.55.3)"] [[package]] name = "coverage" -version = "7.5.4" +version = "7.6.0" description = "Code coverage measurement for Python" optional = false python-versions = ">=3.8" files = [ - {file = "coverage-7.5.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6cfb5a4f556bb51aba274588200a46e4dd6b505fb1a5f8c5ae408222eb416f99"}, - {file = "coverage-7.5.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2174e7c23e0a454ffe12267a10732c273243b4f2d50d07544a91198f05c48f47"}, - {file = "coverage-7.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2214ee920787d85db1b6a0bd9da5f8503ccc8fcd5814d90796c2f2493a2f4d2e"}, - {file = "coverage-7.5.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1137f46adb28e3813dec8c01fefadcb8c614f33576f672962e323b5128d9a68d"}, - {file = "coverage-7.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b385d49609f8e9efc885790a5a0e89f2e3ae042cdf12958b6034cc442de428d3"}, - {file = "coverage-7.5.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b4a474f799456e0eb46d78ab07303286a84a3140e9700b9e154cfebc8f527016"}, - {file = "coverage-7.5.4-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5cd64adedf3be66f8ccee418473c2916492d53cbafbfcff851cbec5a8454b136"}, - {file = "coverage-7.5.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e564c2cf45d2f44a9da56f4e3a26b2236504a496eb4cb0ca7221cd4cc7a9aca9"}, - {file = "coverage-7.5.4-cp310-cp310-win32.whl", hash = "sha256:7076b4b3a5f6d2b5d7f1185fde25b1e54eb66e647a1dfef0e2c2bfaf9b4c88c8"}, - {file = "coverage-7.5.4-cp310-cp310-win_amd64.whl", hash = "sha256:018a12985185038a5b2bcafab04ab833a9a0f2c59995b3cec07e10074c78635f"}, - {file = "coverage-7.5.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:db14f552ac38f10758ad14dd7b983dbab424e731588d300c7db25b6f89e335b5"}, - {file = "coverage-7.5.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3257fdd8e574805f27bb5342b77bc65578e98cbc004a92232106344053f319ba"}, - {file = "coverage-7.5.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a6612c99081d8d6134005b1354191e103ec9705d7ba2754e848211ac8cacc6b"}, - {file = "coverage-7.5.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d45d3cbd94159c468b9b8c5a556e3f6b81a8d1af2a92b77320e887c3e7a5d080"}, - {file = "coverage-7.5.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed550e7442f278af76d9d65af48069f1fb84c9f745ae249c1a183c1e9d1b025c"}, - {file = "coverage-7.5.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7a892be37ca35eb5019ec85402c3371b0f7cda5ab5056023a7f13da0961e60da"}, - {file = "coverage-7.5.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8192794d120167e2a64721d88dbd688584675e86e15d0569599257566dec9bf0"}, - {file = "coverage-7.5.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:820bc841faa502e727a48311948e0461132a9c8baa42f6b2b84a29ced24cc078"}, - {file = "coverage-7.5.4-cp311-cp311-win32.whl", hash = "sha256:6aae5cce399a0f065da65c7bb1e8abd5c7a3043da9dceb429ebe1b289bc07806"}, - {file = "coverage-7.5.4-cp311-cp311-win_amd64.whl", hash = "sha256:d2e344d6adc8ef81c5a233d3a57b3c7d5181f40e79e05e1c143da143ccb6377d"}, - {file = "coverage-7.5.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:54317c2b806354cbb2dc7ac27e2b93f97096912cc16b18289c5d4e44fc663233"}, - {file = "coverage-7.5.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:042183de01f8b6d531e10c197f7f0315a61e8d805ab29c5f7b51a01d62782747"}, - {file = "coverage-7.5.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6bb74ed465d5fb204b2ec41d79bcd28afccf817de721e8a807d5141c3426638"}, - {file = "coverage-7.5.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3d45ff86efb129c599a3b287ae2e44c1e281ae0f9a9bad0edc202179bcc3a2e"}, - {file = "coverage-7.5.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5013ed890dc917cef2c9f765c4c6a8ae9df983cd60dbb635df8ed9f4ebc9f555"}, - {file = "coverage-7.5.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1014fbf665fef86cdfd6cb5b7371496ce35e4d2a00cda501cf9f5b9e6fced69f"}, - {file = "coverage-7.5.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3684bc2ff328f935981847082ba4fdc950d58906a40eafa93510d1b54c08a66c"}, - {file = "coverage-7.5.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:581ea96f92bf71a5ec0974001f900db495488434a6928a2ca7f01eee20c23805"}, - {file = "coverage-7.5.4-cp312-cp312-win32.whl", hash = "sha256:73ca8fbc5bc622e54627314c1a6f1dfdd8db69788f3443e752c215f29fa87a0b"}, - {file = "coverage-7.5.4-cp312-cp312-win_amd64.whl", hash = "sha256:cef4649ec906ea7ea5e9e796e68b987f83fa9a718514fe147f538cfeda76d7a7"}, - {file = "coverage-7.5.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cdd31315fc20868c194130de9ee6bfd99755cc9565edff98ecc12585b90be882"}, - {file = "coverage-7.5.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:02ff6e898197cc1e9fa375581382b72498eb2e6d5fc0b53f03e496cfee3fac6d"}, - {file = "coverage-7.5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d05c16cf4b4c2fc880cb12ba4c9b526e9e5d5bb1d81313d4d732a5b9fe2b9d53"}, - {file = "coverage-7.5.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c5986ee7ea0795a4095ac4d113cbb3448601efca7f158ec7f7087a6c705304e4"}, - {file = "coverage-7.5.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5df54843b88901fdc2f598ac06737f03d71168fd1175728054c8f5a2739ac3e4"}, - {file = "coverage-7.5.4-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:ab73b35e8d109bffbda9a3e91c64e29fe26e03e49addf5b43d85fc426dde11f9"}, - {file = "coverage-7.5.4-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:aea072a941b033813f5e4814541fc265a5c12ed9720daef11ca516aeacd3bd7f"}, - {file = "coverage-7.5.4-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:16852febd96acd953b0d55fc842ce2dac1710f26729b31c80b940b9afcd9896f"}, - {file = "coverage-7.5.4-cp38-cp38-win32.whl", hash = "sha256:8f894208794b164e6bd4bba61fc98bf6b06be4d390cf2daacfa6eca0a6d2bb4f"}, - {file = "coverage-7.5.4-cp38-cp38-win_amd64.whl", hash = "sha256:e2afe743289273209c992075a5a4913e8d007d569a406ffed0bd080ea02b0633"}, - {file = "coverage-7.5.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b95c3a8cb0463ba9f77383d0fa8c9194cf91f64445a63fc26fb2327e1e1eb088"}, - {file = "coverage-7.5.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3d7564cc09dd91b5a6001754a5b3c6ecc4aba6323baf33a12bd751036c998be4"}, - {file = "coverage-7.5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44da56a2589b684813f86d07597fdf8a9c6ce77f58976727329272f5a01f99f7"}, - {file = "coverage-7.5.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e16f3d6b491c48c5ae726308e6ab1e18ee830b4cdd6913f2d7f77354b33f91c8"}, - {file = "coverage-7.5.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dbc5958cb471e5a5af41b0ddaea96a37e74ed289535e8deca404811f6cb0bc3d"}, - {file = "coverage-7.5.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:a04e990a2a41740b02d6182b498ee9796cf60eefe40cf859b016650147908029"}, - {file = "coverage-7.5.4-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ddbd2f9713a79e8e7242d7c51f1929611e991d855f414ca9996c20e44a895f7c"}, - {file = "coverage-7.5.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:b1ccf5e728ccf83acd313c89f07c22d70d6c375a9c6f339233dcf792094bcbf7"}, - {file = "coverage-7.5.4-cp39-cp39-win32.whl", hash = "sha256:56b4eafa21c6c175b3ede004ca12c653a88b6f922494b023aeb1e836df953ace"}, - {file = "coverage-7.5.4-cp39-cp39-win_amd64.whl", hash = "sha256:65e528e2e921ba8fd67d9055e6b9f9e34b21ebd6768ae1c1723f4ea6ace1234d"}, - {file = "coverage-7.5.4-pp38.pp39.pp310-none-any.whl", hash = "sha256:79b356f3dd5b26f3ad23b35c75dbdaf1f9e2450b6bcefc6d0825ea0aa3f86ca5"}, - {file = "coverage-7.5.4.tar.gz", hash = "sha256:a44963520b069e12789d0faea4e9fdb1e410cdc4aab89d94f7f55cbb7fef0353"}, + {file = "coverage-7.6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dff044f661f59dace805eedb4a7404c573b6ff0cdba4a524141bc63d7be5c7fd"}, + {file = "coverage-7.6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a8659fd33ee9e6ca03950cfdcdf271d645cf681609153f218826dd9805ab585c"}, + {file = "coverage-7.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7792f0ab20df8071d669d929c75c97fecfa6bcab82c10ee4adb91c7a54055463"}, + {file = "coverage-7.6.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d4b3cd1ca7cd73d229487fa5caca9e4bc1f0bca96526b922d61053ea751fe791"}, + {file = "coverage-7.6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7e128f85c0b419907d1f38e616c4f1e9f1d1b37a7949f44df9a73d5da5cd53c"}, + {file = "coverage-7.6.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a94925102c89247530ae1dab7dc02c690942566f22e189cbd53579b0693c0783"}, + {file = "coverage-7.6.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:dcd070b5b585b50e6617e8972f3fbbee786afca71b1936ac06257f7e178f00f6"}, + {file = "coverage-7.6.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d50a252b23b9b4dfeefc1f663c568a221092cbaded20a05a11665d0dbec9b8fb"}, + {file = "coverage-7.6.0-cp310-cp310-win32.whl", hash = "sha256:0e7b27d04131c46e6894f23a4ae186a6a2207209a05df5b6ad4caee6d54a222c"}, + {file = "coverage-7.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:54dece71673b3187c86226c3ca793c5f891f9fc3d8aa183f2e3653da18566169"}, + {file = "coverage-7.6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7b525ab52ce18c57ae232ba6f7010297a87ced82a2383b1afd238849c1ff933"}, + {file = "coverage-7.6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bea27c4269234e06f621f3fac3925f56ff34bc14521484b8f66a580aacc2e7d"}, + {file = "coverage-7.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed8d1d1821ba5fc88d4a4f45387b65de52382fa3ef1f0115a4f7a20cdfab0e94"}, + {file = "coverage-7.6.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01c322ef2bbe15057bc4bf132b525b7e3f7206f071799eb8aa6ad1940bcf5fb1"}, + {file = "coverage-7.6.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03cafe82c1b32b770a29fd6de923625ccac3185a54a5e66606da26d105f37dac"}, + {file = "coverage-7.6.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0d1b923fc4a40c5832be4f35a5dab0e5ff89cddf83bb4174499e02ea089daf57"}, + {file = "coverage-7.6.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4b03741e70fb811d1a9a1d75355cf391f274ed85847f4b78e35459899f57af4d"}, + {file = "coverage-7.6.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a73d18625f6a8a1cbb11eadc1d03929f9510f4131879288e3f7922097a429f63"}, + {file = "coverage-7.6.0-cp311-cp311-win32.whl", hash = "sha256:65fa405b837060db569a61ec368b74688f429b32fa47a8929a7a2f9b47183713"}, + {file = "coverage-7.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:6379688fb4cfa921ae349c76eb1a9ab26b65f32b03d46bb0eed841fd4cb6afb1"}, + {file = "coverage-7.6.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f7db0b6ae1f96ae41afe626095149ecd1b212b424626175a6633c2999eaad45b"}, + {file = "coverage-7.6.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bbdf9a72403110a3bdae77948b8011f644571311c2fb35ee15f0f10a8fc082e8"}, + {file = "coverage-7.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cc44bf0315268e253bf563f3560e6c004efe38f76db03a1558274a6e04bf5d5"}, + {file = "coverage-7.6.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da8549d17489cd52f85a9829d0e1d91059359b3c54a26f28bec2c5d369524807"}, + {file = "coverage-7.6.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0086cd4fc71b7d485ac93ca4239c8f75732c2ae3ba83f6be1c9be59d9e2c6382"}, + {file = "coverage-7.6.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1fad32ee9b27350687035cb5fdf9145bc9cf0a094a9577d43e909948ebcfa27b"}, + {file = "coverage-7.6.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:044a0985a4f25b335882b0966625270a8d9db3d3409ddc49a4eb00b0ef5e8cee"}, + {file = "coverage-7.6.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:76d5f82213aa78098b9b964ea89de4617e70e0d43e97900c2778a50856dac605"}, + {file = "coverage-7.6.0-cp312-cp312-win32.whl", hash = "sha256:3c59105f8d58ce500f348c5b56163a4113a440dad6daa2294b5052a10db866da"}, + {file = "coverage-7.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:ca5d79cfdae420a1d52bf177de4bc2289c321d6c961ae321503b2ca59c17ae67"}, + {file = "coverage-7.6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d39bd10f0ae453554798b125d2f39884290c480f56e8a02ba7a6ed552005243b"}, + {file = "coverage-7.6.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:beb08e8508e53a568811016e59f3234d29c2583f6b6e28572f0954a6b4f7e03d"}, + {file = "coverage-7.6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2e16f4cd2bc4d88ba30ca2d3bbf2f21f00f382cf4e1ce3b1ddc96c634bc48ca"}, + {file = "coverage-7.6.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6616d1c9bf1e3faea78711ee42a8b972367d82ceae233ec0ac61cc7fec09fa6b"}, + {file = "coverage-7.6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad4567d6c334c46046d1c4c20024de2a1c3abc626817ae21ae3da600f5779b44"}, + {file = "coverage-7.6.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d17c6a415d68cfe1091d3296ba5749d3d8696e42c37fca5d4860c5bf7b729f03"}, + {file = "coverage-7.6.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:9146579352d7b5f6412735d0f203bbd8d00113a680b66565e205bc605ef81bc6"}, + {file = "coverage-7.6.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:cdab02a0a941af190df8782aafc591ef3ad08824f97850b015c8c6a8b3877b0b"}, + {file = "coverage-7.6.0-cp38-cp38-win32.whl", hash = "sha256:df423f351b162a702c053d5dddc0fc0ef9a9e27ea3f449781ace5f906b664428"}, + {file = "coverage-7.6.0-cp38-cp38-win_amd64.whl", hash = "sha256:f2501d60d7497fd55e391f423f965bbe9e650e9ffc3c627d5f0ac516026000b8"}, + {file = "coverage-7.6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7221f9ac9dad9492cecab6f676b3eaf9185141539d5c9689d13fd6b0d7de840c"}, + {file = "coverage-7.6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ddaaa91bfc4477d2871442bbf30a125e8fe6b05da8a0015507bfbf4718228ab2"}, + {file = "coverage-7.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4cbe651f3904e28f3a55d6f371203049034b4ddbce65a54527a3f189ca3b390"}, + {file = "coverage-7.6.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:831b476d79408ab6ccfadaaf199906c833f02fdb32c9ab907b1d4aa0713cfa3b"}, + {file = "coverage-7.6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46c3d091059ad0b9c59d1034de74a7f36dcfa7f6d3bde782c49deb42438f2450"}, + {file = "coverage-7.6.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:4d5fae0a22dc86259dee66f2cc6c1d3e490c4a1214d7daa2a93d07491c5c04b6"}, + {file = "coverage-7.6.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:07ed352205574aad067482e53dd606926afebcb5590653121063fbf4e2175166"}, + {file = "coverage-7.6.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:49c76cdfa13015c4560702574bad67f0e15ca5a2872c6a125f6327ead2b731dd"}, + {file = "coverage-7.6.0-cp39-cp39-win32.whl", hash = "sha256:482855914928c8175735a2a59c8dc5806cf7d8f032e4820d52e845d1f731dca2"}, + {file = "coverage-7.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:543ef9179bc55edfd895154a51792b01c017c87af0ebaae092720152e19e42ca"}, + {file = "coverage-7.6.0-pp38.pp39.pp310-none-any.whl", hash = "sha256:6fe885135c8a479d3e37a7aae61cbd3a0fb2deccb4dda3c25f92a49189f766d6"}, + {file = "coverage-7.6.0.tar.gz", hash = "sha256:289cc803fa1dc901f84701ac10c9ee873619320f2f9aff38794db4a4a0268d51"}, ] [package.dependencies] @@ -471,43 +471,38 @@ toml = ["tomli"] [[package]] name = "cryptography" -version = "42.0.8" +version = "43.0.0" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." optional = false python-versions = ">=3.7" files = [ - {file = "cryptography-42.0.8-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:81d8a521705787afe7a18d5bfb47ea9d9cc068206270aad0b96a725022e18d2e"}, - {file = "cryptography-42.0.8-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:961e61cefdcb06e0c6d7e3a1b22ebe8b996eb2bf50614e89384be54c48c6b63d"}, - {file = "cryptography-42.0.8-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e3ec3672626e1b9e55afd0df6d774ff0e953452886e06e0f1eb7eb0c832e8902"}, - {file = "cryptography-42.0.8-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e599b53fd95357d92304510fb7bda8523ed1f79ca98dce2f43c115950aa78801"}, - {file = "cryptography-42.0.8-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:5226d5d21ab681f432a9c1cf8b658c0cb02533eece706b155e5fbd8a0cdd3949"}, - {file = "cryptography-42.0.8-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:6b7c4f03ce01afd3b76cf69a5455caa9cfa3de8c8f493e0d3ab7d20611c8dae9"}, - {file = "cryptography-42.0.8-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:2346b911eb349ab547076f47f2e035fc8ff2c02380a7cbbf8d87114fa0f1c583"}, - {file = "cryptography-42.0.8-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:ad803773e9df0b92e0a817d22fd8a3675493f690b96130a5e24f1b8fabbea9c7"}, - {file = "cryptography-42.0.8-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:2f66d9cd9147ee495a8374a45ca445819f8929a3efcd2e3df6428e46c3cbb10b"}, - {file = "cryptography-42.0.8-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:d45b940883a03e19e944456a558b67a41160e367a719833c53de6911cabba2b7"}, - {file = "cryptography-42.0.8-cp37-abi3-win32.whl", hash = "sha256:a0c5b2b0585b6af82d7e385f55a8bc568abff8923af147ee3c07bd8b42cda8b2"}, - {file = "cryptography-42.0.8-cp37-abi3-win_amd64.whl", hash = "sha256:57080dee41209e556a9a4ce60d229244f7a66ef52750f813bfbe18959770cfba"}, - {file = "cryptography-42.0.8-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:dea567d1b0e8bc5764b9443858b673b734100c2871dc93163f58c46a97a83d28"}, - {file = "cryptography-42.0.8-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4783183f7cb757b73b2ae9aed6599b96338eb957233c58ca8f49a49cc32fd5e"}, - {file = "cryptography-42.0.8-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0608251135d0e03111152e41f0cc2392d1e74e35703960d4190b2e0f4ca9c70"}, - {file = "cryptography-42.0.8-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:dc0fdf6787f37b1c6b08e6dfc892d9d068b5bdb671198c72072828b80bd5fe4c"}, - {file = "cryptography-42.0.8-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:9c0c1716c8447ee7dbf08d6db2e5c41c688544c61074b54fc4564196f55c25a7"}, - {file = "cryptography-42.0.8-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:fff12c88a672ab9c9c1cf7b0c80e3ad9e2ebd9d828d955c126be4fd3e5578c9e"}, - {file = "cryptography-42.0.8-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:cafb92b2bc622cd1aa6a1dce4b93307792633f4c5fe1f46c6b97cf67073ec961"}, - {file = "cryptography-42.0.8-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:31f721658a29331f895a5a54e7e82075554ccfb8b163a18719d342f5ffe5ecb1"}, - {file = "cryptography-42.0.8-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b297f90c5723d04bcc8265fc2a0f86d4ea2e0f7ab4b6994459548d3a6b992a14"}, - {file = "cryptography-42.0.8-cp39-abi3-win32.whl", hash = "sha256:2f88d197e66c65be5e42cd72e5c18afbfae3f741742070e3019ac8f4ac57262c"}, - {file = "cryptography-42.0.8-cp39-abi3-win_amd64.whl", hash = "sha256:fa76fbb7596cc5839320000cdd5d0955313696d9511debab7ee7278fc8b5c84a"}, - {file = "cryptography-42.0.8-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ba4f0a211697362e89ad822e667d8d340b4d8d55fae72cdd619389fb5912eefe"}, - {file = "cryptography-42.0.8-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:81884c4d096c272f00aeb1f11cf62ccd39763581645b0812e99a91505fa48e0c"}, - {file = "cryptography-42.0.8-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c9bb2ae11bfbab395bdd072985abde58ea9860ed84e59dbc0463a5d0159f5b71"}, - {file = "cryptography-42.0.8-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7016f837e15b0a1c119d27ecd89b3515f01f90a8615ed5e9427e30d9cdbfed3d"}, - {file = "cryptography-42.0.8-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5a94eccb2a81a309806027e1670a358b99b8fe8bfe9f8d329f27d72c094dde8c"}, - {file = "cryptography-42.0.8-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:dec9b018df185f08483f294cae6ccac29e7a6e0678996587363dc352dc65c842"}, - {file = "cryptography-42.0.8-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:343728aac38decfdeecf55ecab3264b015be68fc2816ca800db649607aeee648"}, - {file = "cryptography-42.0.8-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:013629ae70b40af70c9a7a5db40abe5d9054e6f4380e50ce769947b73bf3caad"}, - {file = "cryptography-42.0.8.tar.gz", hash = "sha256:8d09d05439ce7baa8e9e95b07ec5b6c886f548deb7e0f69ef25f64b3bce842f2"}, + {file = "cryptography-43.0.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:64c3f16e2a4fc51c0d06af28441881f98c5d91009b8caaff40cf3548089e9c74"}, + {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3dcdedae5c7710b9f97ac6bba7e1052b95c7083c9d0e9df96e02a1932e777895"}, + {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d9a1eca329405219b605fac09ecfc09ac09e595d6def650a437523fcd08dd22"}, + {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ea9e57f8ea880eeea38ab5abf9fbe39f923544d7884228ec67d666abd60f5a47"}, + {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:9a8d6802e0825767476f62aafed40532bd435e8a5f7d23bd8b4f5fd04cc80ecf"}, + {file = "cryptography-43.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:cc70b4b581f28d0a254d006f26949245e3657d40d8857066c2ae22a61222ef55"}, + {file = "cryptography-43.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4a997df8c1c2aae1e1e5ac49c2e4f610ad037fc5a3aadc7b64e39dea42249431"}, + {file = "cryptography-43.0.0-cp37-abi3-win32.whl", hash = "sha256:6e2b11c55d260d03a8cf29ac9b5e0608d35f08077d8c087be96287f43af3ccdc"}, + {file = "cryptography-43.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:31e44a986ceccec3d0498e16f3d27b2ee5fdf69ce2ab89b52eaad1d2f33d8778"}, + {file = "cryptography-43.0.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:7b3f5fe74a5ca32d4d0f302ffe6680fcc5c28f8ef0dc0ae8f40c0f3a1b4fca66"}, + {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac1955ce000cb29ab40def14fd1bbfa7af2017cca696ee696925615cafd0dce5"}, + {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:299d3da8e00b7e2b54bb02ef58d73cd5f55fb31f33ebbf33bd00d9aa6807df7e"}, + {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ee0c405832ade84d4de74b9029bedb7b31200600fa524d218fc29bfa371e97f5"}, + {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cb013933d4c127349b3948aa8aaf2f12c0353ad0eccd715ca789c8a0f671646f"}, + {file = "cryptography-43.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fdcb265de28585de5b859ae13e3846a8e805268a823a12a4da2597f1f5afc9f0"}, + {file = "cryptography-43.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2905ccf93a8a2a416f3ec01b1a7911c3fe4073ef35640e7ee5296754e30b762b"}, + {file = "cryptography-43.0.0-cp39-abi3-win32.whl", hash = "sha256:47ca71115e545954e6c1d207dd13461ab81f4eccfcb1345eac874828b5e3eaaf"}, + {file = "cryptography-43.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:0663585d02f76929792470451a5ba64424acc3cd5227b03921dab0e2f27b1709"}, + {file = "cryptography-43.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2c6d112bf61c5ef44042c253e4859b3cbbb50df2f78fa8fae6747a7814484a70"}, + {file = "cryptography-43.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:844b6d608374e7d08f4f6e6f9f7b951f9256db41421917dfb2d003dde4cd6b66"}, + {file = "cryptography-43.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:51956cf8730665e2bdf8ddb8da0056f699c1a5715648c1b0144670c1ba00b48f"}, + {file = "cryptography-43.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:aae4d918f6b180a8ab8bf6511a419473d107df4dbb4225c7b48c5c9602c38c7f"}, + {file = "cryptography-43.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:232ce02943a579095a339ac4b390fbbe97f5b5d5d107f8a08260ea2768be8cc2"}, + {file = "cryptography-43.0.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5bcb8a5620008a8034d39bce21dc3e23735dfdb6a33a06974739bfa04f853947"}, + {file = "cryptography-43.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:08a24a7070b2b6804c1940ff0f910ff728932a9d0e80e7814234269f9d46d069"}, + {file = "cryptography-43.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e9c5266c432a1e23738d178e51c2c7a5e2ddf790f248be939448c0ba2021f9d1"}, + {file = "cryptography-43.0.0.tar.gz", hash = "sha256:b88075ada2d51aa9f18283532c9f60e72170041bba88d7f37e49cbb10275299e"}, ] [package.dependencies] @@ -520,7 +515,7 @@ nox = ["nox"] pep8test = ["check-sdist", "click", "mypy", "ruff"] sdist = ["build"] ssh = ["bcrypt (>=3.1.5)"] -test = ["certifi", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test = ["certifi", "cryptography-vectors (==43.0.0)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] test-randomorder = ["pytest-randomly"] [[package]] @@ -577,13 +572,13 @@ watch = ["watchdog (>=4.0)", "watchdog-gevent (>=0.2)"] [[package]] name = "exceptiongroup" -version = "1.2.1" +version = "1.2.2" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" files = [ - {file = "exceptiongroup-1.2.1-py3-none-any.whl", hash = "sha256:5258b9ed329c5bbdd31a309f53cbfb0b155341807f6ff7606a1e801a891b29ad"}, - {file = "exceptiongroup-1.2.1.tar.gz", hash = "sha256:a4785e48b045528f5bfe627b6ad554ff32def154f42372786903b7abcfe1aa16"}, + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, ] [package.extras] @@ -657,19 +652,19 @@ dramatiq = ">=1.5,<2.0" [[package]] name = "flask-limiter" -version = "3.7.0" +version = "3.8.0" description = "Rate limiting for flask applications" optional = false python-versions = ">=3.8" files = [ - {file = "Flask_Limiter-3.7.0-py3-none-any.whl", hash = "sha256:4318382f17ecb09848bc6d0f7bc4bb1bf89bcf162200bf47b7b969126693bfda"}, - {file = "flask_limiter-3.7.0.tar.gz", hash = "sha256:e474462505f6dd0d776db16c46092e9a065ebcb30b10aed0caf54c6b9a4a471a"}, + {file = "Flask_Limiter-3.8.0-py3-none-any.whl", hash = "sha256:0ab44f586d8cc349412791711b6cbafe8f86e7b60ad9e8f24f2686009f00900e"}, + {file = "flask_limiter-3.8.0.tar.gz", hash = "sha256:686f8b4a75404e47b91565a795c70d29f69c145f6907f1f32522e962b134dada"}, ] [package.dependencies] Flask = ">=2" limits = [ - {version = ">=2.8"}, + {version = ">=3.13"}, {version = "*", extras = ["redis"], optional = true, markers = "extra == \"redis\""}, ] ordered-set = ">4,<5" @@ -712,29 +707,15 @@ files = [ flask = ">=2.2.5" sqlalchemy = ">=1.4.18" -[[package]] -name = "freezegun" -version = "1.5.1" -description = "Let your Python tests travel through time" -optional = false -python-versions = ">=3.7" -files = [ - {file = "freezegun-1.5.1-py3-none-any.whl", hash = "sha256:bf111d7138a8abe55ab48a71755673dbaa4ab87f4cff5634a4442dfec34c15f1"}, - {file = "freezegun-1.5.1.tar.gz", hash = "sha256:b29dedfcda6d5e8e083ce71b2b542753ad48cfec44037b3fc79702e2980a89e9"}, -] - -[package.dependencies] -python-dateutil = ">=2.7" - [[package]] name = "furo" -version = "2024.5.6" +version = "2024.7.18" description = "A clean customisable Sphinx documentation theme." optional = false python-versions = ">=3.8" files = [ - {file = "furo-2024.5.6-py3-none-any.whl", hash = "sha256:490a00d08c0a37ecc90de03ae9227e8eb5d6f7f750edf9807f398a2bdf2358de"}, - {file = "furo-2024.5.6.tar.gz", hash = "sha256:81f205a6605ebccbb883350432b4831c0196dd3d1bc92f61e1f459045b3d2b0b"}, + {file = "furo-2024.7.18-py3-none-any.whl", hash = "sha256:b192c7c1f59805494c8ed606d9375fdac6e6ba8178e747e72bc116745fb7e13f"}, + {file = "furo-2024.7.18.tar.gz", hash = "sha256:37b08c5fccc95d46d8712c8be97acd46043963895edde05b0f4f135d58325c83"}, ] [package.dependencies] @@ -859,13 +840,13 @@ files = [ [[package]] name = "humanize" -version = "4.9.0" +version = "4.10.0" description = "Python humanize utilities" optional = false python-versions = ">=3.8" files = [ - {file = "humanize-4.9.0-py3-none-any.whl", hash = "sha256:ce284a76d5b1377fd8836733b983bfb0b76f1aa1c090de2566fcf008d7f6ab16"}, - {file = "humanize-4.9.0.tar.gz", hash = "sha256:582a265c931c683a7e9b8ed9559089dea7edcf6cc95be39a3cbc2c5d5ac2bcfa"}, + {file = "humanize-4.10.0-py3-none-any.whl", hash = "sha256:39e7ccb96923e732b5c2e27aeaa3b10a8dfeeba3eb965ba7b74a3eb0e30040a6"}, + {file = "humanize-4.10.0.tar.gz", hash = "sha256:06b6eb0293e4b85e8d385397c5868926820db32b9b654b932f57fa41c23c9978"}, ] [package.extras] @@ -895,13 +876,13 @@ files = [ [[package]] name = "importlib-metadata" -version = "8.0.0" +version = "8.2.0" description = "Read metadata from Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_metadata-8.0.0-py3-none-any.whl", hash = "sha256:15584cf2b1bf449d98ff8a6ff1abef57bf20f3ac6454f431736cd3e660921b2f"}, - {file = "importlib_metadata-8.0.0.tar.gz", hash = "sha256:188bd24e4c346d3f0a933f275c2fec67050326a856b9a359881d7c2a697e8812"}, + {file = "importlib_metadata-8.2.0-py3-none-any.whl", hash = "sha256:11901fa0c2f97919b288679932bb64febaeacf289d18ac84dd68cb2e74213369"}, + {file = "importlib_metadata-8.2.0.tar.gz", hash = "sha256:72e8d4399996132204f9a16dcc751af254a48f8d1b20b9ff0f98d4a8f901e73d"}, ] [package.dependencies] @@ -1124,44 +1105,44 @@ files = [ [[package]] name = "mypy" -version = "1.10.1" +version = "1.11.1" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" files = [ - {file = "mypy-1.10.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e36f229acfe250dc660790840916eb49726c928e8ce10fbdf90715090fe4ae02"}, - {file = "mypy-1.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:51a46974340baaa4145363b9e051812a2446cf583dfaeba124af966fa44593f7"}, - {file = "mypy-1.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:901c89c2d67bba57aaaca91ccdb659aa3a312de67f23b9dfb059727cce2e2e0a"}, - {file = "mypy-1.10.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0cd62192a4a32b77ceb31272d9e74d23cd88c8060c34d1d3622db3267679a5d9"}, - {file = "mypy-1.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:a2cbc68cb9e943ac0814c13e2452d2046c2f2b23ff0278e26599224cf164e78d"}, - {file = "mypy-1.10.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bd6f629b67bb43dc0d9211ee98b96d8dabc97b1ad38b9b25f5e4c4d7569a0c6a"}, - {file = "mypy-1.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a1bbb3a6f5ff319d2b9d40b4080d46cd639abe3516d5a62c070cf0114a457d84"}, - {file = "mypy-1.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8edd4e9bbbc9d7b79502eb9592cab808585516ae1bcc1446eb9122656c6066f"}, - {file = "mypy-1.10.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6166a88b15f1759f94a46fa474c7b1b05d134b1b61fca627dd7335454cc9aa6b"}, - {file = "mypy-1.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:5bb9cd11c01c8606a9d0b83ffa91d0b236a0e91bc4126d9ba9ce62906ada868e"}, - {file = "mypy-1.10.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d8681909f7b44d0b7b86e653ca152d6dff0eb5eb41694e163c6092124f8246d7"}, - {file = "mypy-1.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:378c03f53f10bbdd55ca94e46ec3ba255279706a6aacaecac52ad248f98205d3"}, - {file = "mypy-1.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bacf8f3a3d7d849f40ca6caea5c055122efe70e81480c8328ad29c55c69e93e"}, - {file = "mypy-1.10.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:701b5f71413f1e9855566a34d6e9d12624e9e0a8818a5704d74d6b0402e66c04"}, - {file = "mypy-1.10.1-cp312-cp312-win_amd64.whl", hash = "sha256:3c4c2992f6ea46ff7fce0072642cfb62af7a2484efe69017ed8b095f7b39ef31"}, - {file = "mypy-1.10.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:604282c886497645ffb87b8f35a57ec773a4a2721161e709a4422c1636ddde5c"}, - {file = "mypy-1.10.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37fd87cab83f09842653f08de066ee68f1182b9b5282e4634cdb4b407266bade"}, - {file = "mypy-1.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8addf6313777dbb92e9564c5d32ec122bf2c6c39d683ea64de6a1fd98b90fe37"}, - {file = "mypy-1.10.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5cc3ca0a244eb9a5249c7c583ad9a7e881aa5d7b73c35652296ddcdb33b2b9c7"}, - {file = "mypy-1.10.1-cp38-cp38-win_amd64.whl", hash = "sha256:1b3a2ffce52cc4dbaeee4df762f20a2905aa171ef157b82192f2e2f368eec05d"}, - {file = "mypy-1.10.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe85ed6836165d52ae8b88f99527d3d1b2362e0cb90b005409b8bed90e9059b3"}, - {file = "mypy-1.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c2ae450d60d7d020d67ab440c6e3fae375809988119817214440033f26ddf7bf"}, - {file = "mypy-1.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6be84c06e6abd72f960ba9a71561c14137a583093ffcf9bbfaf5e613d63fa531"}, - {file = "mypy-1.10.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2189ff1e39db399f08205e22a797383613ce1cb0cb3b13d8bcf0170e45b96cc3"}, - {file = "mypy-1.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:97a131ee36ac37ce9581f4220311247ab6cba896b4395b9c87af0675a13a755f"}, - {file = "mypy-1.10.1-py3-none-any.whl", hash = "sha256:71d8ac0b906354ebda8ef1673e5fde785936ac1f29ff6987c7483cfbd5a4235a"}, - {file = "mypy-1.10.1.tar.gz", hash = "sha256:1f8f492d7db9e3593ef42d4f115f04e556130f2819ad33ab84551403e97dd4c0"}, + {file = "mypy-1.11.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a32fc80b63de4b5b3e65f4be82b4cfa362a46702672aa6a0f443b4689af7008c"}, + {file = "mypy-1.11.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c1952f5ea8a5a959b05ed5f16452fddadbaae48b5d39235ab4c3fc444d5fd411"}, + {file = "mypy-1.11.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e1e30dc3bfa4e157e53c1d17a0dad20f89dc433393e7702b813c10e200843b03"}, + {file = "mypy-1.11.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2c63350af88f43a66d3dfeeeb8d77af34a4f07d760b9eb3a8697f0386c7590b4"}, + {file = "mypy-1.11.1-cp310-cp310-win_amd64.whl", hash = "sha256:a831671bad47186603872a3abc19634f3011d7f83b083762c942442d51c58d58"}, + {file = "mypy-1.11.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7b6343d338390bb946d449677726edf60102a1c96079b4f002dedff375953fc5"}, + {file = "mypy-1.11.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e4fe9f4e5e521b458d8feb52547f4bade7ef8c93238dfb5bbc790d9ff2d770ca"}, + {file = "mypy-1.11.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:886c9dbecc87b9516eff294541bf7f3655722bf22bb898ee06985cd7269898de"}, + {file = "mypy-1.11.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fca4a60e1dd9fd0193ae0067eaeeb962f2d79e0d9f0f66223a0682f26ffcc809"}, + {file = "mypy-1.11.1-cp311-cp311-win_amd64.whl", hash = "sha256:0bd53faf56de9643336aeea1c925012837432b5faf1701ccca7fde70166ccf72"}, + {file = "mypy-1.11.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f39918a50f74dc5969807dcfaecafa804fa7f90c9d60506835036cc1bc891dc8"}, + {file = "mypy-1.11.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0bc71d1fb27a428139dd78621953effe0d208aed9857cb08d002280b0422003a"}, + {file = "mypy-1.11.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b868d3bcff720dd7217c383474008ddabaf048fad8d78ed948bb4b624870a417"}, + {file = "mypy-1.11.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a707ec1527ffcdd1c784d0924bf5cb15cd7f22683b919668a04d2b9c34549d2e"}, + {file = "mypy-1.11.1-cp312-cp312-win_amd64.whl", hash = "sha256:64f4a90e3ea07f590c5bcf9029035cf0efeae5ba8be511a8caada1a4893f5525"}, + {file = "mypy-1.11.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:749fd3213916f1751fff995fccf20c6195cae941dc968f3aaadf9bb4e430e5a2"}, + {file = "mypy-1.11.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b639dce63a0b19085213ec5fdd8cffd1d81988f47a2dec7100e93564f3e8fb3b"}, + {file = "mypy-1.11.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c956b49c5d865394d62941b109728c5c596a415e9c5b2be663dd26a1ff07bc0"}, + {file = "mypy-1.11.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:45df906e8b6804ef4b666af29a87ad9f5921aad091c79cc38e12198e220beabd"}, + {file = "mypy-1.11.1-cp38-cp38-win_amd64.whl", hash = "sha256:d44be7551689d9d47b7abc27c71257adfdb53f03880841a5db15ddb22dc63edb"}, + {file = "mypy-1.11.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2684d3f693073ab89d76da8e3921883019ea8a3ec20fa5d8ecca6a2db4c54bbe"}, + {file = "mypy-1.11.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:79c07eb282cb457473add5052b63925e5cc97dfab9812ee65a7c7ab5e3cb551c"}, + {file = "mypy-1.11.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11965c2f571ded6239977b14deebd3f4c3abd9a92398712d6da3a772974fad69"}, + {file = "mypy-1.11.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a2b43895a0f8154df6519706d9bca8280cda52d3d9d1514b2d9c3e26792a0b74"}, + {file = "mypy-1.11.1-cp39-cp39-win_amd64.whl", hash = "sha256:1a81cf05975fd61aec5ae16501a091cfb9f605dc3e3c878c0da32f250b74760b"}, + {file = "mypy-1.11.1-py3-none-any.whl", hash = "sha256:0624bdb940255d2dd24e829d99a13cfeb72e4e9031f9492148f410ed30bcab54"}, + {file = "mypy-1.11.1.tar.gz", hash = "sha256:f404a0b069709f18bbdb702eb3dcfe51910602995de00bd39cea3050b5772d08"}, ] [package.dependencies] mypy-extensions = ">=1.0.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing-extensions = ">=4.1.0" +typing-extensions = ">=4.6.0" [package.extras] dmypy = ["psutil (>=4.0)"] @@ -1232,84 +1213,95 @@ files = [ [[package]] name = "pillow" -version = "10.3.0" +version = "10.4.0" description = "Python Imaging Library (Fork)" optional = false python-versions = ">=3.8" files = [ - {file = "pillow-10.3.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:90b9e29824800e90c84e4022dd5cc16eb2d9605ee13f05d47641eb183cd73d45"}, - {file = "pillow-10.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a2c405445c79c3f5a124573a051062300936b0281fee57637e706453e452746c"}, - {file = "pillow-10.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78618cdbccaa74d3f88d0ad6cb8ac3007f1a6fa5c6f19af64b55ca170bfa1edf"}, - {file = "pillow-10.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:261ddb7ca91fcf71757979534fb4c128448b5b4c55cb6152d280312062f69599"}, - {file = "pillow-10.3.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:ce49c67f4ea0609933d01c0731b34b8695a7a748d6c8d186f95e7d085d2fe475"}, - {file = "pillow-10.3.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b14f16f94cbc61215115b9b1236f9c18403c15dd3c52cf629072afa9d54c1cbf"}, - {file = "pillow-10.3.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d33891be6df59d93df4d846640f0e46f1a807339f09e79a8040bc887bdcd7ed3"}, - {file = "pillow-10.3.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b50811d664d392f02f7761621303eba9d1b056fb1868c8cdf4231279645c25f5"}, - {file = "pillow-10.3.0-cp310-cp310-win32.whl", hash = "sha256:ca2870d5d10d8726a27396d3ca4cf7976cec0f3cb706debe88e3a5bd4610f7d2"}, - {file = "pillow-10.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:f0d0591a0aeaefdaf9a5e545e7485f89910c977087e7de2b6c388aec32011e9f"}, - {file = "pillow-10.3.0-cp310-cp310-win_arm64.whl", hash = "sha256:ccce24b7ad89adb5a1e34a6ba96ac2530046763912806ad4c247356a8f33a67b"}, - {file = "pillow-10.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:5f77cf66e96ae734717d341c145c5949c63180842a545c47a0ce7ae52ca83795"}, - {file = "pillow-10.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e4b878386c4bf293578b48fc570b84ecfe477d3b77ba39a6e87150af77f40c57"}, - {file = "pillow-10.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdcbb4068117dfd9ce0138d068ac512843c52295ed996ae6dd1faf537b6dbc27"}, - {file = "pillow-10.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9797a6c8fe16f25749b371c02e2ade0efb51155e767a971c61734b1bf6293994"}, - {file = "pillow-10.3.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:9e91179a242bbc99be65e139e30690e081fe6cb91a8e77faf4c409653de39451"}, - {file = "pillow-10.3.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:1b87bd9d81d179bd8ab871603bd80d8645729939f90b71e62914e816a76fc6bd"}, - {file = "pillow-10.3.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:81d09caa7b27ef4e61cb7d8fbf1714f5aec1c6b6c5270ee53504981e6e9121ad"}, - {file = "pillow-10.3.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:048ad577748b9fa4a99a0548c64f2cb8d672d5bf2e643a739ac8faff1164238c"}, - {file = "pillow-10.3.0-cp311-cp311-win32.whl", hash = "sha256:7161ec49ef0800947dc5570f86568a7bb36fa97dd09e9827dc02b718c5643f09"}, - {file = "pillow-10.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:8eb0908e954d093b02a543dc963984d6e99ad2b5e36503d8a0aaf040505f747d"}, - {file = "pillow-10.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:4e6f7d1c414191c1199f8996d3f2282b9ebea0945693fb67392c75a3a320941f"}, - {file = "pillow-10.3.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:e46f38133e5a060d46bd630faa4d9fa0202377495df1f068a8299fd78c84de84"}, - {file = "pillow-10.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:50b8eae8f7334ec826d6eeffaeeb00e36b5e24aa0b9df322c247539714c6df19"}, - {file = "pillow-10.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d3bea1c75f8c53ee4d505c3e67d8c158ad4df0d83170605b50b64025917f338"}, - {file = "pillow-10.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19aeb96d43902f0a783946a0a87dbdad5c84c936025b8419da0a0cd7724356b1"}, - {file = "pillow-10.3.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:74d28c17412d9caa1066f7a31df8403ec23d5268ba46cd0ad2c50fb82ae40462"}, - {file = "pillow-10.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:ff61bfd9253c3915e6d41c651d5f962da23eda633cf02262990094a18a55371a"}, - {file = "pillow-10.3.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d886f5d353333b4771d21267c7ecc75b710f1a73d72d03ca06df49b09015a9ef"}, - {file = "pillow-10.3.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4b5ec25d8b17217d635f8935dbc1b9aa5907962fae29dff220f2659487891cd3"}, - {file = "pillow-10.3.0-cp312-cp312-win32.whl", hash = "sha256:51243f1ed5161b9945011a7360e997729776f6e5d7005ba0c6879267d4c5139d"}, - {file = "pillow-10.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:412444afb8c4c7a6cc11a47dade32982439925537e483be7c0ae0cf96c4f6a0b"}, - {file = "pillow-10.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:798232c92e7665fe82ac085f9d8e8ca98826f8e27859d9a96b41d519ecd2e49a"}, - {file = "pillow-10.3.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:4eaa22f0d22b1a7e93ff0a596d57fdede2e550aecffb5a1ef1106aaece48e96b"}, - {file = "pillow-10.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cd5e14fbf22a87321b24c88669aad3a51ec052eb145315b3da3b7e3cc105b9a2"}, - {file = "pillow-10.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1530e8f3a4b965eb6a7785cf17a426c779333eb62c9a7d1bbcf3ffd5bf77a4aa"}, - {file = "pillow-10.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d512aafa1d32efa014fa041d38868fda85028e3f930a96f85d49c7d8ddc0383"}, - {file = "pillow-10.3.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:339894035d0ede518b16073bdc2feef4c991ee991a29774b33e515f1d308e08d"}, - {file = "pillow-10.3.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:aa7e402ce11f0885305bfb6afb3434b3cd8f53b563ac065452d9d5654c7b86fd"}, - {file = "pillow-10.3.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0ea2a783a2bdf2a561808fe4a7a12e9aa3799b701ba305de596bc48b8bdfce9d"}, - {file = "pillow-10.3.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c78e1b00a87ce43bb37642c0812315b411e856a905d58d597750eb79802aaaa3"}, - {file = "pillow-10.3.0-cp38-cp38-win32.whl", hash = "sha256:72d622d262e463dfb7595202d229f5f3ab4b852289a1cd09650362db23b9eb0b"}, - {file = "pillow-10.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:2034f6759a722da3a3dbd91a81148cf884e91d1b747992ca288ab88c1de15999"}, - {file = "pillow-10.3.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:2ed854e716a89b1afcedea551cd85f2eb2a807613752ab997b9974aaa0d56936"}, - {file = "pillow-10.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:dc1a390a82755a8c26c9964d457d4c9cbec5405896cba94cf51f36ea0d855002"}, - {file = "pillow-10.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4203efca580f0dd6f882ca211f923168548f7ba334c189e9eab1178ab840bf60"}, - {file = "pillow-10.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3102045a10945173d38336f6e71a8dc71bcaeed55c3123ad4af82c52807b9375"}, - {file = "pillow-10.3.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:6fb1b30043271ec92dc65f6d9f0b7a830c210b8a96423074b15c7bc999975f57"}, - {file = "pillow-10.3.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:1dfc94946bc60ea375cc39cff0b8da6c7e5f8fcdc1d946beb8da5c216156ddd8"}, - {file = "pillow-10.3.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b09b86b27a064c9624d0a6c54da01c1beaf5b6cadfa609cf63789b1d08a797b9"}, - {file = "pillow-10.3.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d3b2348a78bc939b4fed6552abfd2e7988e0f81443ef3911a4b8498ca084f6eb"}, - {file = "pillow-10.3.0-cp39-cp39-win32.whl", hash = "sha256:45ebc7b45406febf07fef35d856f0293a92e7417ae7933207e90bf9090b70572"}, - {file = "pillow-10.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:0ba26351b137ca4e0db0342d5d00d2e355eb29372c05afd544ebf47c0956ffeb"}, - {file = "pillow-10.3.0-cp39-cp39-win_arm64.whl", hash = "sha256:50fd3f6b26e3441ae07b7c979309638b72abc1a25da31a81a7fbd9495713ef4f"}, - {file = "pillow-10.3.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:6b02471b72526ab8a18c39cb7967b72d194ec53c1fd0a70b050565a0f366d355"}, - {file = "pillow-10.3.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8ab74c06ffdab957d7670c2a5a6e1a70181cd10b727cd788c4dd9005b6a8acd9"}, - {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:048eeade4c33fdf7e08da40ef402e748df113fd0b4584e32c4af74fe78baaeb2"}, - {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e2ec1e921fd07c7cda7962bad283acc2f2a9ccc1b971ee4b216b75fad6f0463"}, - {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:4c8e73e99da7db1b4cad7f8d682cf6abad7844da39834c288fbfa394a47bbced"}, - {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:16563993329b79513f59142a6b02055e10514c1a8e86dca8b48a893e33cf91e3"}, - {file = "pillow-10.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:dd78700f5788ae180b5ee8902c6aea5a5726bac7c364b202b4b3e3ba2d293170"}, - {file = "pillow-10.3.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:aff76a55a8aa8364d25400a210a65ff59d0168e0b4285ba6bf2bd83cf675ba32"}, - {file = "pillow-10.3.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:b7bc2176354defba3edc2b9a777744462da2f8e921fbaf61e52acb95bafa9828"}, - {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:793b4e24db2e8742ca6423d3fde8396db336698c55cd34b660663ee9e45ed37f"}, - {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d93480005693d247f8346bc8ee28c72a2191bdf1f6b5db469c096c0c867ac015"}, - {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c83341b89884e2b2e55886e8fbbf37c3fa5efd6c8907124aeb72f285ae5696e5"}, - {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1a1d1915db1a4fdb2754b9de292642a39a7fb28f1736699527bb649484fb966a"}, - {file = "pillow-10.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a0eaa93d054751ee9964afa21c06247779b90440ca41d184aeb5d410f20ff591"}, - {file = "pillow-10.3.0.tar.gz", hash = "sha256:9d2455fbf44c914840c793e89aa82d0e1763a14253a000743719ae5946814b2d"}, + {file = "pillow-10.4.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:4d9667937cfa347525b319ae34375c37b9ee6b525440f3ef48542fcf66f2731e"}, + {file = "pillow-10.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:543f3dc61c18dafb755773efc89aae60d06b6596a63914107f75459cf984164d"}, + {file = "pillow-10.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7928ecbf1ece13956b95d9cbcfc77137652b02763ba384d9ab508099a2eca856"}, + {file = "pillow-10.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4d49b85c4348ea0b31ea63bc75a9f3857869174e2bf17e7aba02945cd218e6f"}, + {file = "pillow-10.4.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:6c762a5b0997f5659a5ef2266abc1d8851ad7749ad9a6a5506eb23d314e4f46b"}, + {file = "pillow-10.4.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a985e028fc183bf12a77a8bbf36318db4238a3ded7fa9df1b9a133f1cb79f8fc"}, + {file = "pillow-10.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:812f7342b0eee081eaec84d91423d1b4650bb9828eb53d8511bcef8ce5aecf1e"}, + {file = "pillow-10.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ac1452d2fbe4978c2eec89fb5a23b8387aba707ac72810d9490118817d9c0b46"}, + {file = "pillow-10.4.0-cp310-cp310-win32.whl", hash = "sha256:bcd5e41a859bf2e84fdc42f4edb7d9aba0a13d29a2abadccafad99de3feff984"}, + {file = "pillow-10.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:ecd85a8d3e79cd7158dec1c9e5808e821feea088e2f69a974db5edf84dc53141"}, + {file = "pillow-10.4.0-cp310-cp310-win_arm64.whl", hash = "sha256:ff337c552345e95702c5fde3158acb0625111017d0e5f24bf3acdb9cc16b90d1"}, + {file = "pillow-10.4.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:0a9ec697746f268507404647e531e92889890a087e03681a3606d9b920fbee3c"}, + {file = "pillow-10.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dfe91cb65544a1321e631e696759491ae04a2ea11d36715eca01ce07284738be"}, + {file = "pillow-10.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dc6761a6efc781e6a1544206f22c80c3af4c8cf461206d46a1e6006e4429ff3"}, + {file = "pillow-10.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e84b6cc6a4a3d76c153a6b19270b3526a5a8ed6b09501d3af891daa2a9de7d6"}, + {file = "pillow-10.4.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:bbc527b519bd3aa9d7f429d152fea69f9ad37c95f0b02aebddff592688998abe"}, + {file = "pillow-10.4.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:76a911dfe51a36041f2e756b00f96ed84677cdeb75d25c767f296c1c1eda1319"}, + {file = "pillow-10.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:59291fb29317122398786c2d44427bbd1a6d7ff54017075b22be9d21aa59bd8d"}, + {file = "pillow-10.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:416d3a5d0e8cfe4f27f574362435bc9bae57f679a7158e0096ad2beb427b8696"}, + {file = "pillow-10.4.0-cp311-cp311-win32.whl", hash = "sha256:7086cc1d5eebb91ad24ded9f58bec6c688e9f0ed7eb3dbbf1e4800280a896496"}, + {file = "pillow-10.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cbed61494057c0f83b83eb3a310f0bf774b09513307c434d4366ed64f4128a91"}, + {file = "pillow-10.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:f5f0c3e969c8f12dd2bb7e0b15d5c468b51e5017e01e2e867335c81903046a22"}, + {file = "pillow-10.4.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:673655af3eadf4df6b5457033f086e90299fdd7a47983a13827acf7459c15d94"}, + {file = "pillow-10.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:866b6942a92f56300012f5fbac71f2d610312ee65e22f1aa2609e491284e5597"}, + {file = "pillow-10.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29dbdc4207642ea6aad70fbde1a9338753d33fb23ed6956e706936706f52dd80"}, + {file = "pillow-10.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf2342ac639c4cf38799a44950bbc2dfcb685f052b9e262f446482afaf4bffca"}, + {file = "pillow-10.4.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:f5b92f4d70791b4a67157321c4e8225d60b119c5cc9aee8ecf153aace4aad4ef"}, + {file = "pillow-10.4.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:86dcb5a1eb778d8b25659d5e4341269e8590ad6b4e8b44d9f4b07f8d136c414a"}, + {file = "pillow-10.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:780c072c2e11c9b2c7ca37f9a2ee8ba66f44367ac3e5c7832afcfe5104fd6d1b"}, + {file = "pillow-10.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:37fb69d905be665f68f28a8bba3c6d3223c8efe1edf14cc4cfa06c241f8c81d9"}, + {file = "pillow-10.4.0-cp312-cp312-win32.whl", hash = "sha256:7dfecdbad5c301d7b5bde160150b4db4c659cee2b69589705b6f8a0c509d9f42"}, + {file = "pillow-10.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:1d846aea995ad352d4bdcc847535bd56e0fd88d36829d2c90be880ef1ee4668a"}, + {file = "pillow-10.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:e553cad5179a66ba15bb18b353a19020e73a7921296a7979c4a2b7f6a5cd57f9"}, + {file = "pillow-10.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8bc1a764ed8c957a2e9cacf97c8b2b053b70307cf2996aafd70e91a082e70df3"}, + {file = "pillow-10.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6209bb41dc692ddfee4942517c19ee81b86c864b626dbfca272ec0f7cff5d9fb"}, + {file = "pillow-10.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bee197b30783295d2eb680b311af15a20a8b24024a19c3a26431ff83eb8d1f70"}, + {file = "pillow-10.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ef61f5dd14c300786318482456481463b9d6b91ebe5ef12f405afbba77ed0be"}, + {file = "pillow-10.4.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:297e388da6e248c98bc4a02e018966af0c5f92dfacf5a5ca22fa01cb3179bca0"}, + {file = "pillow-10.4.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:e4db64794ccdf6cb83a59d73405f63adbe2a1887012e308828596100a0b2f6cc"}, + {file = "pillow-10.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bd2880a07482090a3bcb01f4265f1936a903d70bc740bfcb1fd4e8a2ffe5cf5a"}, + {file = "pillow-10.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b35b21b819ac1dbd1233317adeecd63495f6babf21b7b2512d244ff6c6ce309"}, + {file = "pillow-10.4.0-cp313-cp313-win32.whl", hash = "sha256:551d3fd6e9dc15e4c1eb6fc4ba2b39c0c7933fa113b220057a34f4bb3268a060"}, + {file = "pillow-10.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:030abdbe43ee02e0de642aee345efa443740aa4d828bfe8e2eb11922ea6a21ea"}, + {file = "pillow-10.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:5b001114dd152cfd6b23befeb28d7aee43553e2402c9f159807bf55f33af8a8d"}, + {file = "pillow-10.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:8d4d5063501b6dd4024b8ac2f04962d661222d120381272deea52e3fc52d3736"}, + {file = "pillow-10.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7c1ee6f42250df403c5f103cbd2768a28fe1a0ea1f0f03fe151c8741e1469c8b"}, + {file = "pillow-10.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15e02e9bb4c21e39876698abf233c8c579127986f8207200bc8a8f6bb27acf2"}, + {file = "pillow-10.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a8d4bade9952ea9a77d0c3e49cbd8b2890a399422258a77f357b9cc9be8d680"}, + {file = "pillow-10.4.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:43efea75eb06b95d1631cb784aa40156177bf9dd5b4b03ff38979e048258bc6b"}, + {file = "pillow-10.4.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:950be4d8ba92aca4b2bb0741285a46bfae3ca699ef913ec8416c1b78eadd64cd"}, + {file = "pillow-10.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d7480af14364494365e89d6fddc510a13e5a2c3584cb19ef65415ca57252fb84"}, + {file = "pillow-10.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:73664fe514b34c8f02452ffb73b7a92c6774e39a647087f83d67f010eb9a0cf0"}, + {file = "pillow-10.4.0-cp38-cp38-win32.whl", hash = "sha256:e88d5e6ad0d026fba7bdab8c3f225a69f063f116462c49892b0149e21b6c0a0e"}, + {file = "pillow-10.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:5161eef006d335e46895297f642341111945e2c1c899eb406882a6c61a4357ab"}, + {file = "pillow-10.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0ae24a547e8b711ccaaf99c9ae3cd975470e1a30caa80a6aaee9a2f19c05701d"}, + {file = "pillow-10.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:298478fe4f77a4408895605f3482b6cc6222c018b2ce565c2b6b9c354ac3229b"}, + {file = "pillow-10.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:134ace6dc392116566980ee7436477d844520a26a4b1bd4053f6f47d096997fd"}, + {file = "pillow-10.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:930044bb7679ab003b14023138b50181899da3f25de50e9dbee23b61b4de2126"}, + {file = "pillow-10.4.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:c76e5786951e72ed3686e122d14c5d7012f16c8303a674d18cdcd6d89557fc5b"}, + {file = "pillow-10.4.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b2724fdb354a868ddf9a880cb84d102da914e99119211ef7ecbdc613b8c96b3c"}, + {file = "pillow-10.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dbc6ae66518ab3c5847659e9988c3b60dc94ffb48ef9168656e0019a93dbf8a1"}, + {file = "pillow-10.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:06b2f7898047ae93fad74467ec3d28fe84f7831370e3c258afa533f81ef7f3df"}, + {file = "pillow-10.4.0-cp39-cp39-win32.whl", hash = "sha256:7970285ab628a3779aecc35823296a7869f889b8329c16ad5a71e4901a3dc4ef"}, + {file = "pillow-10.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:961a7293b2457b405967af9c77dcaa43cc1a8cd50d23c532e62d48ab6cdd56f5"}, + {file = "pillow-10.4.0-cp39-cp39-win_arm64.whl", hash = "sha256:32cda9e3d601a52baccb2856b8ea1fc213c90b340c542dcef77140dfa3278a9e"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5b4815f2e65b30f5fbae9dfffa8636d992d49705723fe86a3661806e069352d4"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8f0aef4ef59694b12cadee839e2ba6afeab89c0f39a3adc02ed51d109117b8da"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f4727572e2918acaa9077c919cbbeb73bd2b3ebcfe033b72f858fc9fbef0026"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff25afb18123cea58a591ea0244b92eb1e61a1fd497bf6d6384f09bc3262ec3e"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:dc3e2db6ba09ffd7d02ae9141cfa0ae23393ee7687248d46a7507b75d610f4f5"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:02a2be69f9c9b8c1e97cf2713e789d4e398c751ecfd9967c18d0ce304efbf885"}, + {file = "pillow-10.4.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:0755ffd4a0c6f267cccbae2e9903d95477ca2f77c4fcf3a3a09570001856c8a5"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:a02364621fe369e06200d4a16558e056fe2805d3468350df3aef21e00d26214b"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:1b5dea9831a90e9d0721ec417a80d4cbd7022093ac38a568db2dd78363b00908"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b885f89040bb8c4a1573566bbb2f44f5c505ef6e74cec7ab9068c900047f04b"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87dd88ded2e6d74d31e1e0a99a726a6765cda32d00ba72dc37f0651f306daaa8"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:2db98790afc70118bd0255c2eeb465e9767ecf1f3c25f9a1abb8ffc8cfd1fe0a"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f7baece4ce06bade126fb84b8af1c33439a76d8a6fd818970215e0560ca28c27"}, + {file = "pillow-10.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:cfdd747216947628af7b259d274771d84db2268ca062dd5faf373639d00113a3"}, + {file = "pillow-10.4.0.tar.gz", hash = "sha256:166c1cd4d24309b30d61f79f4a9114b7b2313d7450912277855ff5dfd7cd4a06"}, ] [package.extras] -docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-removed-in", "sphinxext-opengraph"] +docs = ["furo", "olefile", "sphinx (>=7.3)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] fpx = ["olefile"] mic = ["olefile"] tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] @@ -1479,34 +1471,34 @@ windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pyjwt" -version = "2.8.0" +version = "2.9.0" description = "JSON Web Token implementation in Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "PyJWT-2.8.0-py3-none-any.whl", hash = "sha256:59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320"}, - {file = "PyJWT-2.8.0.tar.gz", hash = "sha256:57e28d156e3d5c10088e0c68abb90bfac3df82b40a71bd0daa20c65ccd5c23de"}, + {file = "PyJWT-2.9.0-py3-none-any.whl", hash = "sha256:3b02fb0f44517787776cf48f2ae25d8e14f300e6d7545a4315cee571a415e850"}, + {file = "pyjwt-2.9.0.tar.gz", hash = "sha256:7e1e5b56cc735432a7369cbfa0efe50fa113ebecdc04ae6922deba8b84582d0c"}, ] [package.extras] crypto = ["cryptography (>=3.4.0)"] -dev = ["coverage[toml] (==5.0.4)", "cryptography (>=3.4.0)", "pre-commit", "pytest (>=6.0.0,<7.0.0)", "sphinx (>=4.5.0,<5.0.0)", "sphinx-rtd-theme", "zope.interface"] -docs = ["sphinx (>=4.5.0,<5.0.0)", "sphinx-rtd-theme", "zope.interface"] +dev = ["coverage[toml] (==5.0.4)", "cryptography (>=3.4.0)", "pre-commit", "pytest (>=6.0.0,<7.0.0)", "sphinx", "sphinx-rtd-theme", "zope.interface"] +docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"] tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] [[package]] name = "pyopenssl" -version = "24.1.0" +version = "24.2.1" description = "Python wrapper module around the OpenSSL library" optional = false python-versions = ">=3.7" files = [ - {file = "pyOpenSSL-24.1.0-py3-none-any.whl", hash = "sha256:17ed5be5936449c5418d1cd269a1a9e9081bc54c17aed272b45856a3d3dc86ad"}, - {file = "pyOpenSSL-24.1.0.tar.gz", hash = "sha256:cabed4bfaa5df9f1a16c0ef64a0cb65318b5cd077a7eda7d6970131ca2f41a6f"}, + {file = "pyOpenSSL-24.2.1-py3-none-any.whl", hash = "sha256:967d5719b12b243588573f39b0c677637145c7a1ffedcd495a487e58177fbb8d"}, + {file = "pyopenssl-24.2.1.tar.gz", hash = "sha256:4247f0dbe3748d560dcbb2ff3ea01af0f9a1a001ef5f7c4c647956ed8cbf0e95"}, ] [package.dependencies] -cryptography = ">=41.0.5,<43" +cryptography = ">=41.0.5,<44" [package.extras] docs = ["sphinx (!=5.2.0,!=5.2.0.post0,!=7.2.5)", "sphinx-rtd-theme"] @@ -1526,13 +1518,13 @@ files = [ [[package]] name = "pytest" -version = "8.2.2" +version = "8.3.2" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.8" files = [ - {file = "pytest-8.2.2-py3-none-any.whl", hash = "sha256:c434598117762e2bd304e526244f67bf66bbd7b5d6cf22138be51ff661980343"}, - {file = "pytest-8.2.2.tar.gz", hash = "sha256:de4bb8104e201939ccdc688b27a89a7be2079b22e2bd2b07f806b6ba71117977"}, + {file = "pytest-8.3.2-py3-none-any.whl", hash = "sha256:4ba08f9ae7dcf84ded419494d229b48d0903ea6407b030eaec46df5e6a73bba5"}, + {file = "pytest-8.3.2.tar.gz", hash = "sha256:c132345d12ce551242c87269de812483f5bcc87cdbb4722e48487ba194f9fdce"}, ] [package.dependencies] @@ -1540,7 +1532,7 @@ colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" -pluggy = ">=1.5,<2.0" +pluggy = ">=1.5,<2" tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] @@ -1791,20 +1783,20 @@ sphinx = ">=1.3.1" [[package]] name = "redis" -version = "5.0.7" +version = "5.0.8" description = "Python client for Redis database and key-value store" optional = false python-versions = ">=3.7" files = [ - {file = "redis-5.0.7-py3-none-any.whl", hash = "sha256:0e479e24da960c690be5d9b96d21f7b918a98c0cf49af3b6fafaa0753f93a0db"}, - {file = "redis-5.0.7.tar.gz", hash = "sha256:8f611490b93c8109b50adc317b31bfd84fff31def3475b92e7e80bf39f48175b"}, + {file = "redis-5.0.8-py3-none-any.whl", hash = "sha256:56134ee08ea909106090934adc36f65c9bcbbaecea5b21ba704ba6fb561f8eb4"}, + {file = "redis-5.0.8.tar.gz", hash = "sha256:0c5b10d387568dfe0698c6fad6615750c24170e548ca2deac10c649d463e9870"}, ] [package.dependencies] async-timeout = {version = ">=4.0.3", markers = "python_full_version < \"3.11.3\""} [package.extras] -hiredis = ["hiredis (>=1.0.0)"] +hiredis = ["hiredis (>1.0.0)"] ocsp = ["cryptography (>=36.0.1)", "pyopenssl (==20.0.1)", "requests (>=2.26.0)"] [[package]] @@ -1849,29 +1841,29 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"] [[package]] name = "ruff" -version = "0.5.0" +version = "0.5.6" description = "An extremely fast Python linter and code formatter, written in Rust." optional = false python-versions = ">=3.7" files = [ - {file = "ruff-0.5.0-py3-none-linux_armv6l.whl", hash = "sha256:ee770ea8ab38918f34e7560a597cc0a8c9a193aaa01bfbd879ef43cb06bd9c4c"}, - {file = "ruff-0.5.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:38f3b8327b3cb43474559d435f5fa65dacf723351c159ed0dc567f7ab735d1b6"}, - {file = "ruff-0.5.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:7594f8df5404a5c5c8f64b8311169879f6cf42142da644c7e0ba3c3f14130370"}, - {file = "ruff-0.5.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:adc7012d6ec85032bc4e9065110df205752d64010bed5f958d25dbee9ce35de3"}, - {file = "ruff-0.5.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d505fb93b0fabef974b168d9b27c3960714d2ecda24b6ffa6a87ac432905ea38"}, - {file = "ruff-0.5.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9dc5cfd3558f14513ed0d5b70ce531e28ea81a8a3b1b07f0f48421a3d9e7d80a"}, - {file = "ruff-0.5.0-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:db3ca35265de239a1176d56a464b51557fce41095c37d6c406e658cf80bbb362"}, - {file = "ruff-0.5.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b1a321c4f68809fddd9b282fab6a8d8db796b270fff44722589a8b946925a2a8"}, - {file = "ruff-0.5.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2c4dfcd8d34b143916994b3876b63d53f56724c03f8c1a33a253b7b1e6bf2a7d"}, - {file = "ruff-0.5.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81e5facfc9f4a674c6a78c64d38becfbd5e4f739c31fcd9ce44c849f1fad9e4c"}, - {file = "ruff-0.5.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:e589e27971c2a3efff3fadafb16e5aef7ff93250f0134ec4b52052b673cf988d"}, - {file = "ruff-0.5.0-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:d2ffbc3715a52b037bcb0f6ff524a9367f642cdc5817944f6af5479bbb2eb50e"}, - {file = "ruff-0.5.0-py3-none-musllinux_1_2_i686.whl", hash = "sha256:cd096e23c6a4f9c819525a437fa0a99d1c67a1b6bb30948d46f33afbc53596cf"}, - {file = "ruff-0.5.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:46e193b36f2255729ad34a49c9a997d506e58f08555366b2108783b3064a0e1e"}, - {file = "ruff-0.5.0-py3-none-win32.whl", hash = "sha256:49141d267100f5ceff541b4e06552e98527870eafa1acc9dec9139c9ec5af64c"}, - {file = "ruff-0.5.0-py3-none-win_amd64.whl", hash = "sha256:e9118f60091047444c1b90952736ee7b1792910cab56e9b9a9ac20af94cd0440"}, - {file = "ruff-0.5.0-py3-none-win_arm64.whl", hash = "sha256:ed5c4df5c1fb4518abcb57725b576659542bdbe93366f4f329e8f398c4b71178"}, - {file = "ruff-0.5.0.tar.gz", hash = "sha256:eb641b5873492cf9bd45bc9c5ae5320648218e04386a5f0c264ad6ccce8226a1"}, + {file = "ruff-0.5.6-py3-none-linux_armv6l.whl", hash = "sha256:a0ef5930799a05522985b9cec8290b185952f3fcd86c1772c3bdbd732667fdcd"}, + {file = "ruff-0.5.6-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b652dc14f6ef5d1552821e006f747802cc32d98d5509349e168f6bf0ee9f8f42"}, + {file = "ruff-0.5.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:80521b88d26a45e871f31e4b88938fd87db7011bb961d8afd2664982dfc3641a"}, + {file = "ruff-0.5.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d9bc8f328a9f1309ae80e4d392836e7dbc77303b38ed4a7112699e63d3b066ab"}, + {file = "ruff-0.5.6-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4d394940f61f7720ad371ddedf14722ee1d6250fd8d020f5ea5a86e7be217daf"}, + {file = "ruff-0.5.6-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:111a99cdb02f69ddb2571e2756e017a1496c2c3a2aeefe7b988ddab38b416d36"}, + {file = "ruff-0.5.6-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:e395daba77a79f6dc0d07311f94cc0560375ca20c06f354c7c99af3bf4560c5d"}, + {file = "ruff-0.5.6-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c476acb43c3c51e3c614a2e878ee1589655fa02dab19fe2db0423a06d6a5b1b6"}, + {file = "ruff-0.5.6-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e2ff8003f5252fd68425fd53d27c1f08b201d7ed714bb31a55c9ac1d4c13e2eb"}, + {file = "ruff-0.5.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c94e084ba3eaa80c2172918c2ca2eb2230c3f15925f4ed8b6297260c6ef179ad"}, + {file = "ruff-0.5.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:1f77c1c3aa0669fb230b06fb24ffa3e879391a3ba3f15e3d633a752da5a3e670"}, + {file = "ruff-0.5.6-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:f908148c93c02873210a52cad75a6eda856b2cbb72250370ce3afef6fb99b1ed"}, + {file = "ruff-0.5.6-py3-none-musllinux_1_2_i686.whl", hash = "sha256:563a7ae61ad284187d3071d9041c08019975693ff655438d8d4be26e492760bd"}, + {file = "ruff-0.5.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:94fe60869bfbf0521e04fd62b74cbca21cbc5beb67cbb75ab33fe8c174f54414"}, + {file = "ruff-0.5.6-py3-none-win32.whl", hash = "sha256:e6a584c1de6f8591c2570e171cc7ce482bb983d49c70ddf014393cd39e9dfaed"}, + {file = "ruff-0.5.6-py3-none-win_amd64.whl", hash = "sha256:d7fe7dccb1a89dc66785d7aa0ac283b2269712d8ed19c63af908fdccca5ccc1a"}, + {file = "ruff-0.5.6-py3-none-win_arm64.whl", hash = "sha256:57c6c0dd997b31b536bff49b9eee5ed3194d60605a4427f735eeb1f9c1b8d264"}, + {file = "ruff-0.5.6.tar.gz", hash = "sha256:07c9e3c2a8e1fe377dd460371c3462671a728c981c3205a5217291422209f642"}, ] [[package]] @@ -1894,18 +1886,19 @@ urllib3 = {version = ">=1.26,<3", extras = ["socks"]} [[package]] name = "setuptools" -version = "70.1.1" +version = "72.1.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-70.1.1-py3-none-any.whl", hash = "sha256:a58a8fde0541dab0419750bcc521fbdf8585f6e5cb41909df3a472ef7b81ca95"}, - {file = "setuptools-70.1.1.tar.gz", hash = "sha256:937a48c7cdb7a21eb53cd7f9b59e525503aa8abaf3584c730dc5f7a5bec3a650"}, + {file = "setuptools-72.1.0-py3-none-any.whl", hash = "sha256:5a03e1860cf56bb6ef48ce186b0e557fdba433237481a9a625176c2831be15d1"}, + {file = "setuptools-72.1.0.tar.gz", hash = "sha256:8d243eff56d095e5817f796ede6ae32941278f542e0f941867cc05ae52b162ec"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.10.0)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.text (>=3.7)", "more-itertools (>=8.8)", "ordered-set (>=3.1.1)", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.11.*)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (<0.4)", "pytest-ruff (>=0.2.1)", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] [[package]] name = "shortuuid" @@ -2169,57 +2162,55 @@ test = ["pytest"] [[package]] name = "sqlalchemy" -version = "1.4.52" +version = "1.4.53" description = "Database Abstraction Library" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ - {file = "SQLAlchemy-1.4.52-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:f68016f9a5713684c1507cc37133c28035f29925c75c0df2f9d0f7571e23720a"}, - {file = "SQLAlchemy-1.4.52-cp310-cp310-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24bb0f81fbbb13d737b7f76d1821ec0b117ce8cbb8ee5e8641ad2de41aa916d3"}, - {file = "SQLAlchemy-1.4.52-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e93983cc0d2edae253b3f2141b0a3fb07e41c76cd79c2ad743fc27eb79c3f6db"}, - {file = "SQLAlchemy-1.4.52-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:84e10772cfc333eb08d0b7ef808cd76e4a9a30a725fb62a0495877a57ee41d81"}, - {file = "SQLAlchemy-1.4.52-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:427988398d2902de042093d17f2b9619a5ebc605bf6372f7d70e29bde6736842"}, - {file = "SQLAlchemy-1.4.52-cp310-cp310-win32.whl", hash = "sha256:1296f2cdd6db09b98ceb3c93025f0da4835303b8ac46c15c2136e27ee4d18d94"}, - {file = "SQLAlchemy-1.4.52-cp310-cp310-win_amd64.whl", hash = "sha256:80e7f697bccc56ac6eac9e2df5c98b47de57e7006d2e46e1a3c17c546254f6ef"}, - {file = "SQLAlchemy-1.4.52-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2f251af4c75a675ea42766880ff430ac33291c8d0057acca79710f9e5a77383d"}, - {file = "SQLAlchemy-1.4.52-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb8f9e4c4718f111d7b530c4e6fb4d28f9f110eb82e7961412955b3875b66de0"}, - {file = "SQLAlchemy-1.4.52-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afb1672b57f58c0318ad2cff80b384e816735ffc7e848d8aa51e0b0fc2f4b7bb"}, - {file = "SQLAlchemy-1.4.52-cp311-cp311-win32.whl", hash = "sha256:6e41cb5cda641f3754568d2ed8962f772a7f2b59403b95c60c89f3e0bd25f15e"}, - {file = "SQLAlchemy-1.4.52-cp311-cp311-win_amd64.whl", hash = "sha256:5bed4f8c3b69779de9d99eb03fd9ab67a850d74ab0243d1be9d4080e77b6af12"}, - {file = "SQLAlchemy-1.4.52-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:49e3772eb3380ac88d35495843daf3c03f094b713e66c7d017e322144a5c6b7c"}, - {file = "SQLAlchemy-1.4.52-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:618827c1a1c243d2540314c6e100aee7af09a709bd005bae971686fab6723554"}, - {file = "SQLAlchemy-1.4.52-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de9acf369aaadb71a725b7e83a5ef40ca3de1cf4cdc93fa847df6b12d3cd924b"}, - {file = "SQLAlchemy-1.4.52-cp312-cp312-win32.whl", hash = "sha256:763bd97c4ebc74136ecf3526b34808c58945023a59927b416acebcd68d1fc126"}, - {file = "SQLAlchemy-1.4.52-cp312-cp312-win_amd64.whl", hash = "sha256:f12aaf94f4d9679ca475975578739e12cc5b461172e04d66f7a3c39dd14ffc64"}, - {file = "SQLAlchemy-1.4.52-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:853fcfd1f54224ea7aabcf34b227d2b64a08cbac116ecf376907968b29b8e763"}, - {file = "SQLAlchemy-1.4.52-cp36-cp36m-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f98dbb8fcc6d1c03ae8ec735d3c62110949a3b8bc6e215053aa27096857afb45"}, - {file = "SQLAlchemy-1.4.52-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e135fff2e84103bc15c07edd8569612ce317d64bdb391f49ce57124a73f45c5"}, - {file = "SQLAlchemy-1.4.52-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5b5de6af8852500d01398f5047d62ca3431d1e29a331d0b56c3e14cb03f8094c"}, - {file = "SQLAlchemy-1.4.52-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3491c85df263a5c2157c594f54a1a9c72265b75d3777e61ee13c556d9e43ffc9"}, - {file = "SQLAlchemy-1.4.52-cp36-cp36m-win32.whl", hash = "sha256:427c282dd0deba1f07bcbf499cbcc9fe9a626743f5d4989bfdfd3ed3513003dd"}, - {file = "SQLAlchemy-1.4.52-cp36-cp36m-win_amd64.whl", hash = "sha256:ca5ce82b11731492204cff8845c5e8ca1a4bd1ade85e3b8fcf86e7601bfc6a39"}, - {file = "SQLAlchemy-1.4.52-cp37-cp37m-macosx_11_0_x86_64.whl", hash = "sha256:29d4247313abb2015f8979137fe65f4eaceead5247d39603cc4b4a610936cd2b"}, - {file = "SQLAlchemy-1.4.52-cp37-cp37m-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a752bff4796bf22803d052d4841ebc3c55c26fb65551f2c96e90ac7c62be763a"}, - {file = "SQLAlchemy-1.4.52-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7ea11727feb2861deaa293c7971a4df57ef1c90e42cb53f0da40c3468388000"}, - {file = "SQLAlchemy-1.4.52-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d913f8953e098ca931ad7f58797f91deed26b435ec3756478b75c608aa80d139"}, - {file = "SQLAlchemy-1.4.52-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a251146b921725547ea1735b060a11e1be705017b568c9f8067ca61e6ef85f20"}, - {file = "SQLAlchemy-1.4.52-cp37-cp37m-win32.whl", hash = "sha256:1f8e1c6a6b7f8e9407ad9afc0ea41c1f65225ce505b79bc0342159de9c890782"}, - {file = "SQLAlchemy-1.4.52-cp37-cp37m-win_amd64.whl", hash = "sha256:346ed50cb2c30f5d7a03d888e25744154ceac6f0e6e1ab3bc7b5b77138d37710"}, - {file = "SQLAlchemy-1.4.52-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:4dae6001457d4497736e3bc422165f107ecdd70b0d651fab7f731276e8b9e12d"}, - {file = "SQLAlchemy-1.4.52-cp38-cp38-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5d2e08d79f5bf250afb4a61426b41026e448da446b55e4770c2afdc1e200fce"}, - {file = "SQLAlchemy-1.4.52-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bbce5dd7c7735e01d24f5a60177f3e589078f83c8a29e124a6521b76d825b85"}, - {file = "SQLAlchemy-1.4.52-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:bdb7b4d889631a3b2a81a3347c4c3f031812eb4adeaa3ee4e6b0d028ad1852b5"}, - {file = "SQLAlchemy-1.4.52-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c294ae4e6bbd060dd79e2bd5bba8b6274d08ffd65b58d106394cb6abbf35cf45"}, - {file = "SQLAlchemy-1.4.52-cp38-cp38-win32.whl", hash = "sha256:bcdfb4b47fe04967669874fb1ce782a006756fdbebe7263f6a000e1db969120e"}, - {file = "SQLAlchemy-1.4.52-cp38-cp38-win_amd64.whl", hash = "sha256:7d0dbc56cb6af5088f3658982d3d8c1d6a82691f31f7b0da682c7b98fa914e91"}, - {file = "SQLAlchemy-1.4.52-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:a551d5f3dc63f096ed41775ceec72fdf91462bb95abdc179010dc95a93957800"}, - {file = "SQLAlchemy-1.4.52-cp39-cp39-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ab773f9ad848118df7a9bbabca53e3f1002387cdbb6ee81693db808b82aaab0"}, - {file = "SQLAlchemy-1.4.52-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2de46f5d5396d5331127cfa71f837cca945f9a2b04f7cb5a01949cf676db7d1"}, - {file = "SQLAlchemy-1.4.52-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7027be7930a90d18a386b25ee8af30514c61f3852c7268899f23fdfbd3107181"}, - {file = "SQLAlchemy-1.4.52-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99224d621affbb3c1a4f72b631f8393045f4ce647dd3262f12fe3576918f8bf3"}, - {file = "SQLAlchemy-1.4.52-cp39-cp39-win32.whl", hash = "sha256:c124912fd4e1bb9d1e7dc193ed482a9f812769cb1e69363ab68e01801e859821"}, - {file = "SQLAlchemy-1.4.52-cp39-cp39-win_amd64.whl", hash = "sha256:2c286fab42e49db23c46ab02479f328b8bdb837d3e281cae546cc4085c83b680"}, - {file = "SQLAlchemy-1.4.52.tar.gz", hash = "sha256:80e63bbdc5217dad3485059bdf6f65a7d43f33c8bde619df5c220edf03d87296"}, + {file = "SQLAlchemy-1.4.53-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:b61ac5457d91b5629a3dea2b258deb4cdd35ac8f6fa2031d2b9b2fff5b3396da"}, + {file = "SQLAlchemy-1.4.53-cp310-cp310-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a96aa8d425047551676b0e178ddb0683421e78eda879ab55775128b2e612cae"}, + {file = "SQLAlchemy-1.4.53-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e10ac36f0b994235c13388b39598bf27219ec8bdea5be99bdac612b01cbe525"}, + {file = "SQLAlchemy-1.4.53-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:437592b341a3229dd0443c9c803b0bf0a466f8f539014fef6cdb9c06b7edb7f9"}, + {file = "SQLAlchemy-1.4.53-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:784272ceb5eb71421fea9568749bcbe8bd019261a0e2e710a7efa76057af2499"}, + {file = "SQLAlchemy-1.4.53-cp310-cp310-win32.whl", hash = "sha256:122d7b5722df1a24402c6748bbb04687ef981493bb559d0cc0beffe722e0e6ed"}, + {file = "SQLAlchemy-1.4.53-cp310-cp310-win_amd64.whl", hash = "sha256:4604d42b2abccba266d3f5bbe883684b5df93e74054024c70d3fbb5eea45e530"}, + {file = "SQLAlchemy-1.4.53-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fb8e15dfa47f5de11ab073e12aadd6b502cfb7ac4bafd18bd18cfd1c7d13dbbc"}, + {file = "SQLAlchemy-1.4.53-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc8be4df55e8fde3006d9cb1f6b3df2ba26db613855dc4df2c0fcd5ec15cb3b7"}, + {file = "SQLAlchemy-1.4.53-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86b11640251f9a9789fd96cd6e5d176b1c230230c70ad40299bcbcc568451b4c"}, + {file = "SQLAlchemy-1.4.53-cp311-cp311-win32.whl", hash = "sha256:cd534c716f86bdf95b7b984a34ee278c91d1b1d7d183e7e5ff878600b1696046"}, + {file = "SQLAlchemy-1.4.53-cp311-cp311-win_amd64.whl", hash = "sha256:6dd06572872ca13ef5a90306a3e5af787498ddaa17fb00109b1243642646cd69"}, + {file = "SQLAlchemy-1.4.53-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:2774c24c405136c3ef472e2352bdca7330659d481fbf2283f996c0ef9eb90f22"}, + {file = "SQLAlchemy-1.4.53-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68a614765197b3d13a730d631a78c3bb9b3b72ba58ed7ab295d58d517464e315"}, + {file = "SQLAlchemy-1.4.53-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d13d4dfbc6e52363886b47cf02cf68c5d2a37c468626694dc210d7e97d4ad330"}, + {file = "SQLAlchemy-1.4.53-cp312-cp312-win32.whl", hash = "sha256:197065b91456574d70b6459bfa62bc0b52a4960a29ef923c375ec427274a3e05"}, + {file = "SQLAlchemy-1.4.53-cp312-cp312-win_amd64.whl", hash = "sha256:421306c4b936b0271a3ce2dc074928d5ece4a36f9c482daa5770f44ecfc3a883"}, + {file = "SQLAlchemy-1.4.53-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:13fc34b35d8ddb3fbe3f8fcfdf6c2546e676187f0fb20f5774da362ddaf8fa2d"}, + {file = "SQLAlchemy-1.4.53-cp36-cp36m-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:626be971ff89541cfd3e70b54be00b57a7f8557204decb6223ce0428fec058f3"}, + {file = "SQLAlchemy-1.4.53-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:991e42fdfec561ebc6a4fae7161a86d129d6069fa14210b96b8dd752afa7059c"}, + {file = "SQLAlchemy-1.4.53-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:95123f3a1e0e8020848fd32ba751db889a01a44e4e4fef7e58c87ddd0b2fca59"}, + {file = "SQLAlchemy-1.4.53-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c58e011e9e6373b3a091d83f20601fb335a3b4bace80bfcb914ac168aad3b70d"}, + {file = "SQLAlchemy-1.4.53-cp37-cp37m-macosx_11_0_x86_64.whl", hash = "sha256:670c7769bf5dcae9aff331247b5d82fe635c63731088a46ce68ba2ba519ef36e"}, + {file = "SQLAlchemy-1.4.53-cp37-cp37m-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07ba54f09033d387ae9df8d62cbe211ed7304e0bfbece1f8c55e21db9fae5c11"}, + {file = "SQLAlchemy-1.4.53-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a38834b4c183c33daf58544281395aad2e985f0b47cca1e88ea5ada88344e63"}, + {file = "SQLAlchemy-1.4.53-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:616492f5315128a847f293a7c552f3561ac7e996d2aa5dc46bef4fb0d3781f1d"}, + {file = "SQLAlchemy-1.4.53-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0cf8c0af9563892c6632f7343bc393dfce6eeef8e4d10c5fadba9c0390520bd"}, + {file = "SQLAlchemy-1.4.53-cp37-cp37m-win32.whl", hash = "sha256:c05fe05941424c2f3747a8952381b7725e24cba2ca00141380e54789d5b616b6"}, + {file = "SQLAlchemy-1.4.53-cp37-cp37m-win_amd64.whl", hash = "sha256:93e90aa3e3b2f8e8cbae4d5509f8e0cf82972378d323c740a8df1c1e9f484172"}, + {file = "SQLAlchemy-1.4.53-cp38-cp38-macosx_12_0_x86_64.whl", hash = "sha256:9d7368df54d3ed45a18955f6cec38ebe075290594ac0d5c87a8ddaff7e10de27"}, + {file = "SQLAlchemy-1.4.53-cp38-cp38-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89d8ac4158ef68eea8bb0f6dd0583127d9aa8720606964ba8eee20b254f9c83a"}, + {file = "SQLAlchemy-1.4.53-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16bb9fa4d00b4581b14d9f0e2224dc7745b854aa4687738279af0f48f7056c98"}, + {file = "SQLAlchemy-1.4.53-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4fe5168d0249c23f537950b6d75935ff2709365a113e29938a979aec36668ecf"}, + {file = "SQLAlchemy-1.4.53-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b8608d162d3bd29d807aab32c3fb6e2f8e225a43d1c54c917fed38513785380"}, + {file = "SQLAlchemy-1.4.53-cp38-cp38-win32.whl", hash = "sha256:a9d4d132198844bd6828047135ce7b887687c92925049a2468a605fc775c7a1a"}, + {file = "SQLAlchemy-1.4.53-cp38-cp38-win_amd64.whl", hash = "sha256:c15d1f1fcf1f9bec0499ae1d9132b950fcc7730f2d26d10484c8808b4e077816"}, + {file = "SQLAlchemy-1.4.53-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:edf094a20a386ff2ec73de65ef18014b250259cb860edc61741e240ca22d6981"}, + {file = "SQLAlchemy-1.4.53-cp39-cp39-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83a9c3514ff19d9d30d8a8d378b24cd1dfa5528d20891481cb5f196117db6a48"}, + {file = "SQLAlchemy-1.4.53-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eaaeedbceb4dfd688fff2faf25a9a87a391f548811494f7bff7fa701b639abc3"}, + {file = "SQLAlchemy-1.4.53-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d021699b9007deb7aa715629078830c99a5fec2753d9bdd5ff33290d363ef755"}, + {file = "SQLAlchemy-1.4.53-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0465b8a68f8f4de754c1966c45b187ac784ad97bc9747736f913130f0e1adea0"}, + {file = "SQLAlchemy-1.4.53-cp39-cp39-win32.whl", hash = "sha256:5f67b9e9dcac3241781e96575468d55a42332157dee04bdbf781df573dff5f85"}, + {file = "SQLAlchemy-1.4.53-cp39-cp39-win_amd64.whl", hash = "sha256:a8c2f2a0b2c4e3b86eb58c9b6bb98548205eea2fba9dae4edfd29dc6aebbe95a"}, + {file = "SQLAlchemy-1.4.53.tar.gz", hash = "sha256:5e6ab710c4c064755fd92d1a417bef360228a19bdf0eee32b03aa0f5f8e9fe0d"}, ] [package.dependencies] @@ -2230,17 +2221,17 @@ aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"] asyncio = ["greenlet (!=0.4.17)"] asyncmy = ["asyncmy (>=0.2.3,!=0.2.4)", "greenlet (!=0.4.17)"] -mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2)"] +mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2)", "mariadb (>=1.0.1,!=1.1.2)"] mssql = ["pyodbc"] -mssql-pymssql = ["pymssql"] -mssql-pyodbc = ["pyodbc"] +mssql-pymssql = ["pymssql", "pymssql"] +mssql-pyodbc = ["pyodbc", "pyodbc"] mypy = ["mypy (>=0.910)", "sqlalchemy2-stubs"] mysql = ["mysqlclient (>=1.4.0)", "mysqlclient (>=1.4.0,<2)"] -mysql-connector = ["mysql-connector-python"] +mysql-connector = ["mysql-connector-python", "mysql-connector-python"] oracle = ["cx_oracle (>=7)", "cx_oracle (>=7,<8)"] postgresql = ["psycopg2 (>=2.7)"] -postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] -postgresql-pg8000 = ["pg8000 (>=1.16.6,!=1.29.0)"] +postgresql-asyncpg = ["asyncpg", "asyncpg", "greenlet (!=0.4.17)", "greenlet (!=0.4.17)"] +postgresql-pg8000 = ["pg8000 (>=1.16.6,!=1.29.0)", "pg8000 (>=1.16.6,!=1.29.0)"] postgresql-psycopg2binary = ["psycopg2-binary"] postgresql-psycopg2cffi = ["psycopg2cffi"] pymysql = ["pymysql", "pymysql (<1)"] @@ -2277,19 +2268,87 @@ pbr = ">=2.0.0,<2.1.0 || >2.1.0" [[package]] name = "tenacity" -version = "8.4.2" +version = "9.0.0" description = "Retry code until it succeeds" optional = false python-versions = ">=3.8" files = [ - {file = "tenacity-8.4.2-py3-none-any.whl", hash = "sha256:9e6f7cf7da729125c7437222f8a522279751cdfbe6b67bfe64f75d3a348661b2"}, - {file = "tenacity-8.4.2.tar.gz", hash = "sha256:cd80a53a79336edba8489e767f729e4f391c896956b57140b5d7511a64bbd3ef"}, + {file = "tenacity-9.0.0-py3-none-any.whl", hash = "sha256:93de0c98785b27fcf659856aa9f54bfbd399e29969b0621bc7f762bd441b4539"}, + {file = "tenacity-9.0.0.tar.gz", hash = "sha256:807f37ca97d62aa361264d497b0e31e92b8027044942bfa756160d908320d73b"}, ] [package.extras] doc = ["reno", "sphinx"] test = ["pytest", "tornado (>=4.5)", "typeguard"] +[[package]] +name = "time-machine" +version = "2.14.2" +description = "Travel through time in your tests." +optional = false +python-versions = ">=3.8" +files = [ + {file = "time_machine-2.14.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a8293386d8ac68ecf6a432f8c2ca7251e108e160093954b14225dbed856c0d55"}, + {file = "time_machine-2.14.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f4c5ff83704abbc48083e899df712861d0acd31abe6b0f1f0795e1b15f521c90"}, + {file = "time_machine-2.14.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32b5b44372d1f025b4fcc4209cbdc5d3e10a3e07a8334b297bb0ba4a827906e4"}, + {file = "time_machine-2.14.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:03dcbda69bdc1186fe93e5fc095493e577ecf82390bb6b86d2a445727c3e722d"}, + {file = "time_machine-2.14.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6327866c00c64ce1c18b1c0444e61bd65c267d4929d2be787fa11da0455823c3"}, + {file = "time_machine-2.14.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:1c6e9b6df0e6ab34776e04ce936f1f6099e8d3983ce0cc60aca2d3cf2d5ef27b"}, + {file = "time_machine-2.14.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:2f2eb7ccf5f1c706f335a998ce8b009b3f968d625a4ffcf1b16ddef38fa283bc"}, + {file = "time_machine-2.14.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fa488e27fb6f7efbfbb41586533963cebff3ce396b3e8cd7b013ed30e4f830df"}, + {file = "time_machine-2.14.2-cp310-cp310-win32.whl", hash = "sha256:4386f303a4b4bc12d3b0266e88deb64c11109474ad32ba71c18bc4812cbb3e1f"}, + {file = "time_machine-2.14.2-cp310-cp310-win_amd64.whl", hash = "sha256:826a3608420e08f0c4bc404dce6141d8ec80d3729e0278a6e0d5ae4532f76247"}, + {file = "time_machine-2.14.2-cp310-cp310-win_arm64.whl", hash = "sha256:c80664830c774d60e26a267bc25c59151f281b2befc1b40a7526fc7633286401"}, + {file = "time_machine-2.14.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c2e8a877c1c2a39011979680bbd44b05e2d7fef45000cdcef3f1b7c1c56d53de"}, + {file = "time_machine-2.14.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a665fa8f4484850c8df0d33edaa781b37a7cd2d615479f0e5467599a49e5f6c0"}, + {file = "time_machine-2.14.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e24f8b526c1f1c17b478fe68360afba8a609c3547b7a51e0ca350ac8a2959961"}, + {file = "time_machine-2.14.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27d12a3eaca2f7b10da33774a8edd3a6b97358a3bed9ffecefc88d7e3d7b5f5f"}, + {file = "time_machine-2.14.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:55f373873583c93e2107e4e9e4db4cb4d637df75d82c57aaa6349c4993305b77"}, + {file = "time_machine-2.14.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9219e488ab0637120ebbfb2183e1c676f3de79ce6b11666ec0383d71e82803be"}, + {file = "time_machine-2.14.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:22db0f8af1686b5d96be39dd21ddb7de13caf5a45f3fca6c41d61007e08c0eb0"}, + {file = "time_machine-2.14.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:caaf7700e6b47799c94bf4b4fb9b5cc067f463ec29f5fdc38a66628e3b062a4c"}, + {file = "time_machine-2.14.2-cp311-cp311-win32.whl", hash = "sha256:134ec3c5050ddbc6926da11a17c2d632cef8bb3f164098084f6f267f913c9304"}, + {file = "time_machine-2.14.2-cp311-cp311-win_amd64.whl", hash = "sha256:fda6fc706a2d78cc8688018d17fb52ea80169fb9fd0f70642d218bd676049f9d"}, + {file = "time_machine-2.14.2-cp311-cp311-win_arm64.whl", hash = "sha256:c2f05834faf501fa14d5a0318f736965b7ea58dd3a11c22bf8e9eca4889d5955"}, + {file = "time_machine-2.14.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:576179845483203182e4d423db1c6c27b3a8b569a3e3df9980a785adefc3ef6f"}, + {file = "time_machine-2.14.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:146aee86d237aa3a0ad1287718f1228107d21f3cd775c40f121a4670b3dee02c"}, + {file = "time_machine-2.14.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:603fb67082f1795f1bd352dccad5c6884e56cfb7a115ac6edb03bb9434ec5698"}, + {file = "time_machine-2.14.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e3b76ef7c02bbf3dce58a7c4a5c73ed919483a946150e7dda89ea1be0314811c"}, + {file = "time_machine-2.14.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:faa7c67a1dafa29d17ca098b61a717419dd5c7ebb21f4f644f4a859983013273"}, + {file = "time_machine-2.14.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:24034c253b37c125842cf9bbd112786c4381a067b1c1cb224615688101066f5f"}, + {file = "time_machine-2.14.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:1ea4319010914c8d69bd16d9839a5c2f1df104b5a4704882bc44599d81611582"}, + {file = "time_machine-2.14.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:10c7cf6134e32e1074d37319f8b7662cc200ee9dd813a48b7520dd4aa49131a9"}, + {file = "time_machine-2.14.2-cp312-cp312-win32.whl", hash = "sha256:3f985a98704e81e0183043db5889f17fa68daea1ad230e9c8feb3bb303a518c1"}, + {file = "time_machine-2.14.2-cp312-cp312-win_amd64.whl", hash = "sha256:25edfd2d8c62cbe25ea2c80463c4ab7e3386792a7fe0d70909d52dbfc9aa4c6d"}, + {file = "time_machine-2.14.2-cp312-cp312-win_arm64.whl", hash = "sha256:71f42b2257ce71ce9b90320072e327edeeb6368ccd0602acd979033e172df656"}, + {file = "time_machine-2.14.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:1a6627ce920f1b4b73b2a4957e53f2740d684535af6924f62085005e6e3181cb"}, + {file = "time_machine-2.14.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:1bbbb04a8e5f0381b75847c96356c7b55348bfac54bee024bd61dfbf33176c11"}, + {file = "time_machine-2.14.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f739a7660a97869333ff960e7e03c6047910e19bccc3adc86954050ec9c8e074"}, + {file = "time_machine-2.14.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0573432aadc97b07e2be6756476e9ba3f5864aa4453c473a03da72ae8b6c5145"}, + {file = "time_machine-2.14.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c1076e8435f27f25e55c659cf0de9a20ffc12265a1f8e00641512fb023c60fab"}, + {file = "time_machine-2.14.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb6f03ae4ee4c854d1534768fb579d4ca6b680373ad8ab35cc9008289c9efec9"}, + {file = "time_machine-2.14.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:720071c6fd7edae7149dc3b336de0bfb03d4fb66b13abd96e6145c4bef7c1b40"}, + {file = "time_machine-2.14.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:f1bc051f7a3204fb8aceac0f4aa01bdc3a5c936dd0d7334ae1b791862ced89b3"}, + {file = "time_machine-2.14.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:69428e17e2b9ab04ccbd178f18aedbb4fa4e7f53807ee067fe3c55fca286a6df"}, + {file = "time_machine-2.14.2-cp38-cp38-win32.whl", hash = "sha256:7726801fa7d744fb0faab7131bf2a6bd2c56e2cf01c7215cfef6987968652392"}, + {file = "time_machine-2.14.2-cp38-cp38-win_amd64.whl", hash = "sha256:93ad7844a67ae29043b78ab3148d0fa59f00e68f762eb8982110ac27f684dd62"}, + {file = "time_machine-2.14.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8cca04142f39564722648b03ad061c411b6a83f01549c59248d604f2ac76789b"}, + {file = "time_machine-2.14.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:34c35287b6667a6c233ed0658649d52854858bb6a8ee30d2aa680bf2288a166d"}, + {file = "time_machine-2.14.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca63bd68fe1b31a1135c535bb579dd96ddaa1f802d9cbf638cc344f18701575f"}, + {file = "time_machine-2.14.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30d1e3c18e7dcf5981e7e0fa3ed8b4bfbe6b1dc430442838283455049996f9e0"}, + {file = "time_machine-2.14.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76004bd92f23e3863ace7fd4ac0751134ea13953ec11bd8f47a8fec1f8dc89ff"}, + {file = "time_machine-2.14.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:037ff158179517fa9ae045c5ac8e995a4d465660f4d4b53510630e2ab2aa4eab"}, + {file = "time_machine-2.14.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:098b709455bc9f95e5cc42a2cf42373a4f2aa3f6d5e79e4fe9a7c3f44834cdb7"}, + {file = "time_machine-2.14.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:51a0b17ddd29e7106f84db7539f6a92153c3617754f691c851af6b1cf524f60c"}, + {file = "time_machine-2.14.2-cp39-cp39-win32.whl", hash = "sha256:875456bb4389112e1e827492cb47965910fa2dfe00c4d521670baf0125d7a454"}, + {file = "time_machine-2.14.2-cp39-cp39-win_amd64.whl", hash = "sha256:cc19096db9465905662d680b1667cbe37c4ca9cdfbeb30680d45687fdc449c14"}, + {file = "time_machine-2.14.2-cp39-cp39-win_arm64.whl", hash = "sha256:f9c5d5b8a8667d85a37f07c0b6f85fa551fb65e8b6e647b2dee29c517a249f0c"}, + {file = "time_machine-2.14.2.tar.gz", hash = "sha256:6e5150cdf1e128c4b3bea214204b4d7747456d9c7ce8e3d83c204e59f9640b72"}, +] + +[package.dependencies] +python-dateutil = "*" + [[package]] name = "tomli" version = "2.0.1" @@ -2303,13 +2362,13 @@ files = [ [[package]] name = "trio" -version = "0.25.1" +version = "0.26.0" description = "A friendly Python library for async concurrency and I/O" optional = false python-versions = ">=3.8" files = [ - {file = "trio-0.25.1-py3-none-any.whl", hash = "sha256:e42617ba091e7b2e50c899052e83a3c403101841de925187f61e7b7eaebdf3fb"}, - {file = "trio-0.25.1.tar.gz", hash = "sha256:9f5314f014ea3af489e77b001861c535005c3858d38ec46b6b071ebfa339d7fb"}, + {file = "trio-0.26.0-py3-none-any.whl", hash = "sha256:bb9c1b259591af941fccfbabbdc65bc7ed764bd2db76428454c894cd5e3d2032"}, + {file = "trio-0.26.0.tar.gz", hash = "sha256:67c5ec3265dd4abc7b1d1ab9ca4fe4c25b896f9c93dac73713778adab487f9c4"}, ] [package.dependencies] @@ -2364,13 +2423,13 @@ files = [ [[package]] name = "types-pyopenssl" -version = "24.1.0.20240425" +version = "24.1.0.20240722" description = "Typing stubs for pyOpenSSL" optional = false python-versions = ">=3.8" files = [ - {file = "types-pyOpenSSL-24.1.0.20240425.tar.gz", hash = "sha256:0a7e82626c1983dc8dc59292bf20654a51c3c3881bcbb9b337c1da6e32f0204e"}, - {file = "types_pyOpenSSL-24.1.0.20240425-py3-none-any.whl", hash = "sha256:f51a156835555dd2a1f025621e8c4fbe7493470331afeef96884d1d29bf3a473"}, + {file = "types-pyOpenSSL-24.1.0.20240722.tar.gz", hash = "sha256:47913b4678a01d879f503a12044468221ed8576263c1540dcb0484ca21b08c39"}, + {file = "types_pyOpenSSL-24.1.0.20240722-py3-none-any.whl", hash = "sha256:6a7a5d2ec042537934cfb4c9d4deb0e16c4c6250b09358df1f083682fe6fda54"}, ] [package.dependencies] @@ -2390,13 +2449,13 @@ files = [ [[package]] name = "types-redis" -version = "4.6.0.20240425" +version = "4.6.0.20240726" description = "Typing stubs for redis" optional = false python-versions = ">=3.8" files = [ - {file = "types-redis-4.6.0.20240425.tar.gz", hash = "sha256:9402a10ee931d241fdfcc04592ebf7a661d7bb92a8dea631279f0d8acbcf3a22"}, - {file = "types_redis-4.6.0.20240425-py3-none-any.whl", hash = "sha256:ac5bc19e8f5997b9e76ad5d9cf15d0392d9f28cf5fc7746ea4a64b989c45c6a8"}, + {file = "types-redis-4.6.0.20240726.tar.gz", hash = "sha256:de2aefcf7afe80057debada8c540463d06c8863de50b8016bd369ccdbcb59b5e"}, + {file = "types_redis-4.6.0.20240726-py3-none-any.whl", hash = "sha256:233062b7120a9908532ec9163d17af74b80fa49a89d510444cad4cac42717378"}, ] [package.dependencies] @@ -2405,13 +2464,13 @@ types-pyOpenSSL = "*" [[package]] name = "types-requests" -version = "2.32.0.20240622" +version = "2.32.0.20240712" description = "Typing stubs for requests" optional = false python-versions = ">=3.8" files = [ - {file = "types-requests-2.32.0.20240622.tar.gz", hash = "sha256:ed5e8a412fcc39159d6319385c009d642845f250c63902718f605cd90faade31"}, - {file = "types_requests-2.32.0.20240622-py3-none-any.whl", hash = "sha256:97bac6b54b5bd4cf91d407e62f0932a74821bc2211f22116d9ee1dd643826caf"}, + {file = "types-requests-2.32.0.20240712.tar.gz", hash = "sha256:90c079ff05e549f6bf50e02e910210b98b8ff1ebdd18e19c873cd237737c1358"}, + {file = "types_requests-2.32.0.20240712-py3-none-any.whl", hash = "sha256:f754283e152c752e46e70942fa2a146b5bc70393522257bb85bd1ef7e019dcc3"}, ] [package.dependencies] @@ -2419,13 +2478,13 @@ urllib3 = ">=2" [[package]] name = "types-setuptools" -version = "70.1.0.20240627" +version = "71.1.0.20240726" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-70.1.0.20240627.tar.gz", hash = "sha256:385907a47b5cf302b928ce07953cd91147d5de6f3da604c31905fdf0ec309e83"}, - {file = "types_setuptools-70.1.0.20240627-py3-none-any.whl", hash = "sha256:c7bdf05cd0a8b66868b4774c7b3c079d01ae025d8c9562bfc8bf2ff44d263c9c"}, + {file = "types-setuptools-71.1.0.20240726.tar.gz", hash = "sha256:85ba28e9461bb1be86ebba4db0f1c2408f2b11115b1966334ea9dc464e29303e"}, + {file = "types_setuptools-71.1.0.20240726-py3-none-any.whl", hash = "sha256:a7775376f36e0ff09bcad236bf265777590a66b11623e48c20bfc30f1444ea36"}, ] [[package]] @@ -2598,4 +2657,4 @@ test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", [metadata] lock-version = "2.0" python-versions = "^3.8.1" -content-hash = "c25959f1292a2ba3c7dd83de0f6f61235317d7ed17710a6160f227c43f2d42ae" +content-hash = "82a60a8e0386341fa44e147850543d000901a23e22373d4baf064a47e60831ff" diff --git a/pyproject.toml b/pyproject.toml index 656b57c8d..1e9f3259c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "fittrackee" -version = "0.8.5" +version = "0.8.6" description = "Self-hosted outdoor workout/activity tracker" authors = ["SamR1"] license = "AGPL-3.0-only" @@ -32,39 +32,39 @@ dramatiq = {version = "^1.15.0", extras = ["redis"]} flask = "^3.0.3" flask-bcrypt = "^1.0.1" flask-dramatiq = "^0.6.0" -flask-limiter = {version = "^3.7.0", extras = ["redis"]} +flask-limiter = {version = "^3.8.0", extras = ["redis"]} flask-migrate = "4.0.7" flask-sqlalchemy = "3.0.5" gpxpy = "=1.6.2" gunicorn = "^22.0.0" -humanize = "^4.9.0" +humanize = "^4.10.0" psycopg2-binary = "^2.9.9" -pyjwt = "^2.8.0" -pyopenssl = "^24.1.0" +pyjwt = "^2.9.0" +pyopenssl = "^24.2.1" pytz = "^2024.1" shortuuid = "^1.0.13" staticmap = "^0.5.7" -sqlalchemy = "=1.4.52" +sqlalchemy = "=1.4.53" ua-parser = "^0.18.0" [tool.poetry.group.dev.dependencies] bandit = "^1.7.9" -freezegun = "^1.5.1" -furo = "^2024.5.6" -mypy = "^1.10.1" -pytest = "^8.2.2" +furo = "^2024.7.18" +mypy = "^1.11.1" +pytest = "^8.3.2" pytest-cov = "^5.0.0" pytest-html = "^4.1.1" pytest-runner = "^6.0.1" pytest-selenium = "^4.1.0" pytest-xdist = {extras = ["psutil"], version = "^3.6.0"} recommonmark = "^0.7.1" -ruff = "^0.5.0" +ruff = "^0.5.6" selenium = "4.20.0" sphinx = "^7.1" sphinx-copybutton = "^0.5.2" sphinx-intl = "^2.1.0" sphinxcontrib-httpdomain = "^1.8.1" +time-machine = "^2.14.2" types-freezegun = "^1.1" types-pytz = "^2024.1" types-redis = "^4.6"
    "+U_(Fr(o).replace(/^\n+|\n+$/g,""))+"
    "+U_(xr(o).replace(/^\n+|\n+$/g,""))+"