From 620391973a379247ccb2c4cc6d73a6358076f8c3 Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 31 Dec 2022 18:38:44 +0100 Subject: [PATCH] bump version to 0.7.11 --- .env.docker | 7 +- .env.example | 2 +- CHANGELOG.md | 21 + VERSION | 2 +- docs/.buildinfo | 2 +- docs/_images/fittrackee_screenshot-01.png | Bin 580786 -> 580962 bytes docs/_images/fittrackee_screenshot-02.png | Bin 387044 -> 387333 bytes docs/_images/fittrackee_screenshot-03.png | Bin 221091 -> 221390 bytes docs/_images/fittrackee_screenshot-04.png | Bin 75996 -> 76287 bytes docs/_images/fittrackee_screenshot-05.png | Bin 80184 -> 80488 bytes docs/_images/fittrackee_screenshot-06.png | Bin 128050 -> 128349 bytes docs/_images/fittrackee_screenshot-07.png | Bin 133551 -> 133993 bytes docs/_images/fittrackee_screenshot-08.png | Bin 84111 -> 84553 bytes docs/_sources/changelog.md.txt | 21 + docs/_sources/features.rst.txt | 2 +- docs/_sources/installation.rst.txt | 48 +- docs/_static/documentation_options.js | 2 +- docs/api/auth.html | 6 +- docs/api/configuration.html | 16 +- docs/api/index.html | 6 +- docs/api/oauth2.html | 6 +- docs/api/records.html | 6 +- docs/api/sports.html | 6 +- docs/api/stats.html | 6 +- docs/api/users.html | 6 +- docs/api/workouts.html | 6 +- docs/apps.html | 6 +- docs/changelog.html | 798 +++++++++--------- docs/cli.html | 6 +- docs/features.html | 8 +- docs/genindex.html | 10 +- docs/http-routingtable.html | 6 +- docs/index.html | 6 +- docs/installation.html | 58 +- docs/objects.inv | Bin 1523 -> 1530 bytes docs/search.html | 6 +- docs/searchindex.js | 2 +- docs/troubleshooting/administrator.html | 6 +- docs/troubleshooting/index.html | 6 +- docs/troubleshooting/user.html | 6 +- .../_images/fittrackee_screenshot-01.png | Bin 580786 -> 580962 bytes .../_images/fittrackee_screenshot-02.png | Bin 387044 -> 387333 bytes .../_images/fittrackee_screenshot-03.png | Bin 221091 -> 221390 bytes .../_images/fittrackee_screenshot-04.png | Bin 75996 -> 76287 bytes .../_images/fittrackee_screenshot-05.png | Bin 80184 -> 80488 bytes .../_images/fittrackee_screenshot-06.png | Bin 128050 -> 128349 bytes .../_images/fittrackee_screenshot-07.png | Bin 133551 -> 133993 bytes .../_images/fittrackee_screenshot-08.png | Bin 84111 -> 84553 bytes docsrc/source/features.rst | 2 +- docsrc/source/installation.rst | 24 +- fittrackee/__init__.py | 2 +- fittrackee/application/app_config.py | 4 +- fittrackee/dist/index.html | 2 +- fittrackee/dist/service-worker.js | 2 +- fittrackee/dist/service-worker.js.map | 2 +- .../js/{app.9be9e4e9.js => app.02c11a8c.js} | 4 +- ...pp.9be9e4e9.js.map => app.02c11a8c.js.map} | 2 +- ...kouts.e312ce33.js => workouts.143c4328.js} | 2 +- ...12ce33.js.map => workouts.143c4328.js.map} | 2 +- fittrackee_client/package.json | 2 +- pyproject.toml | 2 +- 61 files changed, 637 insertions(+), 510 deletions(-) rename fittrackee/dist/static/js/{app.9be9e4e9.js => app.02c11a8c.js} (99%) rename fittrackee/dist/static/js/{app.9be9e4e9.js.map => app.02c11a8c.js.map} (99%) rename fittrackee/dist/static/js/{workouts.e312ce33.js => workouts.143c4328.js} (99%) rename fittrackee/dist/static/js/{workouts.e312ce33.js.map => workouts.143c4328.js.map} (99%) diff --git a/.env.docker b/.env.docker index c25c7400..2eaeb804 100644 --- a/.env.docker +++ b/.env.docker @@ -19,7 +19,7 @@ export DATABASE_TEST_URL=postgresql://fittrackee:fittrackee@fittrackee-db:5432/f export REDIS_URL=redis://redis:6379 # API rate limits -# export API_RATE_LIMITS=300 per 5 minutes +# export API_RATE_LIMITS="300 per 5 minutes" # Emails export UI_URL=http://0.0.0.0:5000 @@ -31,6 +31,11 @@ export WORKERS_PROCESSES=2 # Workouts # export TILE_SERVER_URL= +# export STATICMAP_SUBDOMAINS= # export MAP_ATTRIBUTION= # export DEFAULT_STATICMAP=False + +# Weather +# available weather API providers: darksky, visualcrossing +# export WEATHER_API_PROVIDER= # export WEATHER_API_KEY= \ No newline at end of file diff --git a/.env.example b/.env.example index 8311ffcb..c4615bcb 100644 --- a/.env.example +++ b/.env.example @@ -20,7 +20,7 @@ export UPLOAD_FOLDER= # export REDIS_URL= # API rate limits -# export API_RATE_LIMITS=300 per 5 minutes +# export API_RATE_LIMITS="300 per 5 minutes" # Emails export UI_URL= diff --git a/CHANGELOG.md b/CHANGELOG.md index 57099b20..216a3754 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,28 @@ # Change log +## Version 0.7.11 (2022/12/31) + +### Features and enhancements + +* [PR#265](https://github.com/SamR1/FitTrackee/pull/265) - Implementing alternative weather API (VisualCrossing.com) + **Note**: A new environment variable must be to set to configure the weather data provider: `WEATHER_API_PROVIDER` (see [documentation](https://samr1.github.io/FitTrackee/installation.html#weather-data)) + +### Translations + +* [PR#287](https://github.com/SamR1/FitTrackee/pull/287) - Translations update from Hosted Weblate (Dutch) +* [PR#289](https://github.com/SamR1/FitTrackee/pull/289) - Translations update from Hosted Weblate (German) + + +Thanks to the contributors: +- @bjornclauw +- @jat255 +- @qwerty287 + + ## Version 0.7.10 (2022/12/21) +FitTrackee is now available in Italian (thanks to @dperruso). + ### Features and enhancements * [#92](https://github.com/SamR1/FitTrackee/issues/92) - Add ascent and descent parameters in workout import without GPX file diff --git a/VERSION b/VERSION index 5b209ea2..b4d6d121 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.7.10 +0.7.11 diff --git a/docs/.buildinfo b/docs/.buildinfo index d73bd4f2..4aaba710 100644 --- a/docs/.buildinfo +++ b/docs/.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: 5abf538cacc290d4cea92d1f42946aba +config: 042de095012a0d21fe180df7971496bf tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/_images/fittrackee_screenshot-01.png b/docs/_images/fittrackee_screenshot-01.png index 99476e8c6f1e2d49f1bda0e4bafef589e5bfabd3..036dd01342b4bb53b3a32b1db7170b21fedf149f 100644 GIT binary patch delta 511503 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¨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≫&_#Xv?SUhJs_o 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∓%ZAWT($S?tR$cZ_d|6PIiVNTD4gwYeKq1Oz| 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

v7#=Pe66CON@)KWp*$OZHJ*~7 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∈iMQ&jk%g`bf_Y?0aA& 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%0A5M_s^<4_ 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 delta 512194 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

  • u2YyNkH9{Z3Rl^waL4Z&0cwUCB+s&a+ee)+X!kU(577CR(Ga7%ZQkG#@d7 z%1uK*s#kov-`q(=BkuimNT9T0$jE@@G^3`}U&>noWP+ zdVbezto6X$hb1mE5y-UL6Lv3P+e{bM>F_cQzoLparA<%HR7!L^I&AB6SE{&)^4vFs z3DH~3FE-}UZ`H!Jwg%BjCURbqt&Z0-GO1Xt#TrMvOss{Z7aAILoi86&UH8+MC!!d+ zon;9{yr}{DKKyj69%f#d3vQGg^<|$PR?fEZ{lf42A5;naKUleIN{9)Kl75Yo$qUEz z{iMg4PR;aPpx0)o?t5fBUW%T@fit@p-<3#If6%ghs9S8YZo3wq$)0c{Ce1732!^^) zTMz#xJ&qA<FiRE*UiV2$i7jsvKi9*RU~Z-JwC+~sOpH`d>h3X!q;nLbs+(}^ zV~N25R9~l267bC}p6JWJezsLFEpLeTTc;{E>h90$cxM{^sVmL@E1Xj4$2Z*PVZ_b% zN?|`>o=wC!99eJ_l&24|n*Ht2Gzt2(?X14lkJFdL`nu#pOhy0C=Wu1ykN)4M1tsdg zeO?`;GiXlqSd9~Oy7)d40G>I9JD&a|rU{+}u=m|j1nL$vnvrD`S*4G8hVf;G;ElWql-aD0N$2`7;E66*BO z-glrgHnjO@QdL@x!aaIufb~#K6YBiqmvG0X8*;Q^1M-t)p85NXR1^*o5!sVwPC8Qs z{*p9LKIs*-Jw67fmdXr}hQm%KMO1YTRr!^_q9L1Ho}_=wCOF6}2Z$?kp%|9Z%~|B1 zQ_|d+TT<`dlA#s}`BAREI4`Aa?EImG6bEUz?q5cJA?P|LMjcb*F~_?p|K=^(tNG8d z>)G0NzMA`64LZT$E#}h+64Vqf@$`o$r|a~-M8z>$O(XN$I=oSDX%m4l&gDORp>4dC z5YZGp8nmKuBgLf0Mxd2G3x__@_5VlVbk&Bf5{&pq=DgURdf^FCwxNbHY^^^IEAl^o z*fEvYbg33B7B`6Wm5Fp%9kH{a`VxYRN#W{ed&NJ6gaMTgWb?~dG3J{Q;oAjJ2AJ(hmjBksbYx)(`#+<4;&%O4Z z&9Uvu?i9$ZzRz*CSx#|{9KF%fBiR3r#-vbJ_3r2QGXF`BhMsok_37=$p__n7+x>&X z!wF5b;>!GJmRf6Tn%`}u2ke{@drO;T$i`Uh`<+$D!HK+F`z^(ygTq50W3DaIkN-2$ zVyf$GkX&sJ0W+j*hcxBSpe(0ej+7o|0k;r8un@)ZpP>7~{KRjZY;Z(`Y*u>cg=UeJ zD=A>;umZm;y*X2q8f17YplFVYP93FG05^=RK0tApQHe7tU0eHmIai9L7qrwbIrCT8 zlRVdQ#?Iq$G4c0F4|)COO-t5q3awdmL-8YgjLj`{sbYa%o=PmZ$zuJH& z{tcySUdGIA5H~|=bjYN6R~|W{(s*Q@2Zp}Jk-7NvyJCZy~Q+ijVLq@A6j zCtBmqH@X>=?vY^FG*KG*hu~`8FI5sZrc<$7Eh_Wx7*UcyjP&@rRkHfXx*!M>{r}J=WyPOG&8uT-E#~Nb8*Fts*&H&WL)+g=F zzsddD{!gWK-*V_@9b&Gp%nLLo@}k*#7Q3bX#h2;nG4*q>A^FE1B47-*lM zC?cO%GhWf+$TP*8>S4x>Z>0Mzjrj?m`=h84nH3%h*^dAGKn34cU0?^SDmCJ{7lvED z?goL9Mtlk5f0YWM)vFwZyRsVuXfRs{9e#8np|y8>I(__1A<-=IutuAMgt=4qUWmZ5 zD?(KVubgY2Z^E*HCf8jw*X?%QbJmm1fkGAI1>c{7n*}Hm#wRP)d7WC=hHv5~Yx7JyCY0b2?G3 z5Y_re-hzh0qo>v0_iag}01f>g`iu+ojaAuz*`JYNH#KK}x7pitEh<{7DA+Bn6~+ul z9UFeR1|G>DtPWfbiEsyb8ggUa*7s1l%N#4%#HK#EA!2G2tFJ5pqjL_7bBfC$Y8ZSR zxuw!pHan`=Q?|d6KP*TZ>gR<0&M(diA3?SX|KF1qDq~wXy7!Aky7K2+$zAm5;cB25 zk}$MMSU9SBzo0NspRde>ZT6>Ro1bCflQTNF$x?kmS9KI8&HFDLs8m41yNkShg;=*Gpf}`X18PZteNtX-QO&BUa zv3A6Y_?Ch~l#UuPw>K}Yy?0Z%gw>lk#Zg-;VVY|2vp+R!hAp4YbQ4R0wkYJ59P3-F zA?P_^b>a8&zC)n(R>nhbS{`Tz{j#pn~jSmvc07#V;GKBthTT5^P~y7+#+E=`?NgKHB{WG0iiZ4d z*Vb9vCT7~ozgdF>KaJb^o1c_aWgh10!+jf@Y4v}fCMAk1(LoQPl{gc|Fpin{lW&_yuZ zHtP(aby_V&^S+Xn_fjM*aNCXZTs0Nsqe!di;6$dr$|@{{bVqO>9~Ut!aI}mJLLd%f1>M(4l6UQJ6qK2F9BnDliOpM+@>EYwOg4Cnu^QogLpzd*N3!AGu?(J$X%5c z0bdkX8hX5Od&=L1xJ&&z*YmKvzoYK2=db*{Zrz&cyhCCbmem?j z&@ub3r~rZ$!mg<&-ukGf-Z}@Ig{>otcI&X{|f%PklvYd&(4{u zqg685gNd-L02hj^Zgk2E)rc#0Wg`Q;fOps+1~Tn}YXfJrLQz;LcV$A<>=#Qqi4sgu z-CAXiv-kgbL$M?YNy0OWEk$$H_&!YttW*~mRUu6yasJJgU0+)IXvEvZ6Kq_htsNX=x2m+N@|yI`s+%3sPl0|D!s z6O@@r+QY*m4j0+M!GVg}aDBDFh%KED&D|((BDc-^QRdfSUQV)oPm{$4pU`hxFuCL* zroe_eML&NvnPp2ZkEn|}}yF*Ay>NVlBdHczlb>d*|(Xn9! z0>Kw`9${M6;o^#!EqlH$%4fuBHlxXwxxUTh1vgvp3-kto03-?>C(ll}n`L@Ea4_E@ z)6AUZ;7v#jJCjOXwp!N+HL3ve8 z_O)iAiEUkcrDkIIk9;SD0kU$80Ehc*$%RM zb+ok4wA{4;v5bVVaL$Aen)YL=jUbssH+wh^+AY=iMD?EjG@vB*UwvY%sc95vwb;(* zeDsr>h_8)kj&J&0V_YnW~Yxt^#3-3rT+sRli>Xg}J5qu9{?J)$eqSthjPe4zdQb z)CRsprh_zfE||iO72&M12(*|qCuZ`ua-dq#NEn< zPJ267uB?I>S(56sRrvAL>Yu`I5s^-iOV*3ChIvUe7bjXHK7t*NBgouD#|Aw~T!U|W zUnNz5(MdFlf_iIAp5F7Gp?SNWvrfZcvSpn2I<@retKV`M5j(NG$^(2V1-=_Xkp<4X zLvg#-9r=-Oz<$Ti)i4C(VCx#7J79mBwh4-m($8DPkX!f~iV zBTJcf&!Xpl=4U0H);=oKn|UV^vVbo9{`iNMPbJK#3m{hn<$ppFAJWa0(rHP;`@{tf zvV^|AhM|P#VO;s=Dyp)oC8rE`x3%k6$ygW$fPWS2W#LW@kS1ZPZL5Ya6ExqEJilbBv=9i^2jf z4b%I%`zIQ7O*zi#TM;d-7_<{gi&ckRP|o%C52?l+i#4nC8##O@)4XqVBcC0A6!K^u z>#nB19S$)k$Th@-H~h(~um=dcG*PlwW9vNrt|Dt(?)l{QTK-A$e;>;bLhU|h$Ce+z z);ld<=#q%fUnffmIZ+nI+ZyMl&2L1Og_QC2M_)Bn+y1PztO)_ph#nM$H_ud=x16-4 zNd9|rMMQ$@fl^wB4M8&sZVlRc^7m5Y5O(_JTOl5zih6S z*RtyR#()ENJZQ&nVo%`Q{0=O2RAqzn|LzoWi6MQ&uYMeJ%RWqNx{AJz$@g?e$O(Ug zXmI;?z6y}bDYPWG@tdEeU+?TP!$8F+`F&R#aYPAJA$3~9=?Sb@>M#Br8EiY{cIu5v zGqo4K5SjL?crze<<|~1UZepFo+JMjuE|>bCX&fjz9@{cH`#e7JlwrCQR!^NrgKh#TkfQml<0obZhKJ^9Q4YFk!Aaw+b@gLKmXV_CJ}tH`asu< zqq$yn-HVp~iz%t--px)8jo&o-%82hYNqAp@Dv@Yp+0p?(vz=$JvYt(x(1t&9+CRe5 za7?c0GxF`{w(LRncWvxskYO^@toK;@%xOzdW+?cpxuY~oiT=+*dKo?(zK{C9K)SvV z?N9298p?Y%EleQRl|0h1>ScbQ$}aG?P4MOn4tZE)(GT<3G}38M8mWUx!?7K?vEkPA zJi0?=xO@~4l&B_tVDz;_&-uSquQj|A$P95|g>dreF#o{>O@sxKx=)Rb-bZ9J`~Di4 z(v*U94B5sFXU`GuQ?;7$QR<9dDv~MZPe^))v6+gRR*XuHb}V}T_p)U_;@14jEb#PCG_x-g z;cqZWt1C5fe&h5t*Gg`yw#f)xuIv_=v_CD)L{NNXFJ8&qK1?LeeA+o7#@$p0P@Qh% z^7g5rO_Flo6y!snXku*wZs&^!&zLFI1NEWsM6M$q?N2WrZbpTXBzvGHz4r2Ft}bld zdvd`~St&u5!WXyKI%EHjn^yA4i9;4M)aOk6p}M5pN`Tsh6%D1pT~|1~J(;DoDSys1 zcQk<~miFSSdwFIt=D!>eH5L4Xq^vb<{(Ehk+-I*QQWn0JDWq>kL%YhfAt>J8yziH8 zVmr0I5Rev{!e~>eyyOAqGN; z6E>$o^ZNq9XCBvDFP&?-SJj58u%l}^wHGwPDE~;Xtr|2!O0Aderb+T;6RxZ>V?I-_ zhzU^>WR^F1W(-Lo(Zww!#z<)NeggV%2Tkd*nAF~;7dCS5LMjVYo2A8 zCn*iwVpl5@pQ0R2dbI9!PG@s5M#lV~0@JxO;$>UGeJw(V?7{sBBYt(ZxcjvS(cU7d zL!nCOTN-z^?TWP*kuA+tZh}N)E*B61z5tCtJG?2j=|#F1k4moX%G6YU2EeX;RhF-k zBfVOCOpKk_D=_vs)UZuTi;EGOF2c*}EhKNB^#MH=5AG95vKxK8)TvzJ2z6onWWn}= z7*3Z42xRQ`Bv ztWs{D$=w2Um%{J2SnVY6YyzY3JB_8vDfFwcQ8+k$|b+`o@GumHnlzq&hi;|DY7E)j*!`31rAJF(}`u;p9N%evg_ z!TTAN_FRD!CBXBdzP{xohw%ru&zlU5|Qxmn|=9qIW@A`=iCoD|>bcx$%-$#Z~``{Pvtt!?ToIggL2));8fpO3sa$+_21=B+fJ) zrkVjJqy9pL>i*=4Ps4fR4Mb3a*>_L%aM*&vgY%imDmT=72sLa(DC$)^Z~JtqW@4LP z8uU;fN7ZND9Kg$}Uyr?)=D4r$(Q*fD{at+~%(t52kuzYw z9~KJSx93g_K2-@>EZkv=J&@J>Wuv&(d-@~R7Uua zt$xF^RvnjC0nuHLH850)>n}jat!HND9&jNkc8!_)z^PK;bBh6CF*!?rqVi<{Hecq& zCOp9po%b0kYZ7Z3cPt!t*e@twFyMgbHy3*p#opxaN4-^ms0v8+?GhzY(E&-2XFTP-#^S6lLQ3o+D)1f2^NcS)T zmgUb7jjW*IZVxEc>rQIwYmc-86OSC>QuK|6XJQ$~7O-;0>?&i?OG%ken)uGDu4Y0- z!gL#Kv5H5{RyzKz@Puxj1$#nSiJM33;gMce_tlKF*z*_ zD^}pa2^MTViu9RF4a&@)5*{ZqrQ~l|ZxuFi`<74??=WClIx4l@P1>;4+RAS^lpW1^ zent~l+ulBUIx+El;94FT3uX!CBn6OVAd*5Vp1@%*x_8w2CFn zq+TUVIC)8Ji&oCObaRa_n(VbkY^|P0YNt6SMK@$VubT|~fO_I|BNhRU!w#n>A|{A| z@qle9jiGcNMCrn+=6&b+P984?x$7|RT5u|d87h+Qp<(7)}w!M+x7 z0-vF~@MDb#kXv&X-R?b`%y$Xty1n&Y&FQW*MEaf@2V*gDl@sxf&3!zn*+qo8O@_g$ zAQ#|=Ue5vW-TLNVF_EheFZ-7{Jt=>D{Vyo?y~Uo*I=1<8dmBWDTqeW(hUBg~2M0Si zChr3IE^q!I)LC^rLx7(xqK`QD|5#M=d`>k+pqohm#P2Mc0PG*vhkq2t;WZxxb z=WeNpIeQ_r|AheiRUI(5++KeSo~JUz*DoOHe#g%>5C^Ej+2`G^m$gi7hpVlqJDZVdvkay++f3fxC|I_(Sw&|e^%c))(Psp@@L z2KLR6IoWuR@|~ressFAAwsxUaRQG%=b<5(>iDJTjWFN)lv+tF6W16(QN7tWoWuofK z|E=Wx&60h#_?@lpsj^Tz!0ctUCWn3^g~mq&qp(8M5oKrG|)NN{o%~ zfiV+@5CS2Xp04z?9}~073%1&K72X}n07aW+C2=VZ+bO2a2KUTe$|xb=QTRMMzg}@^ zrsYU7GwodT6ekF2)Lvp3xep=q`E4Thg~#g3O3#?rZh~w$=M2w5c$0`8ZHhWh6jf5c z)f}y#!;C`1;q_D+Nu(wM-s#GSF(|@HYA&59!pjn6WCuU=Ilk@?USvxnicq;5ke8st zsoE?IxY$|1=L$7v}$Dx#C*XI`Z6(@hV;`8)s_=4~MtYqm?L8)bqh{iu!|!-VcG^t`t^mjZ^bX(nA#`$QdGey;Bn%uhdEc+{ zHw?TNcj<`oy#{gwoAGRTPTm|L*nB27z6*lx$pY6@Gs(C6v*0u6#U7A*@n;zB7l11E zbiLVwYVwTU_Fyb}*8n5meDPL+jBh^T`Hcoon%@|}g2k5FN4AG422)=)fdrM`I=>!` zj4vEEC%U}uozBBIdc*u42+q)eo#nNXfnM0N*jX~{iQ#T<^Jpm`E^ZeU_OiL(kURa^ z3lVnE4o(7YX1ltDfX7gWmTmB4&du40ML+p|39SG24CN6?^pR$BtP7Y&Cdhx>%)Yg! zuJP?>xxZGqH{W>5g!XhU%3fCb^1}6Mcbsd9^<#)VD2bl$Y{os-NEWx$!1$h8yB>GG z1KTWj7=Ujsa93h7B$<2Ob>3(KLk_rzd0czM0#drJ6P$ppM=&h)?&Ng%DS_jO3w*%6 zk@Qp_$k(xJ(NTTR_%d7~OyqACFus>*Jdz4@D|+8&`jX%Mo`mGS^s4L-rH0QrZQdwv zyv*J1`-cY4i$vV|#>K**4yeb$9vFshv%Narcc<-MBX4D&h3x*F#G|RTu;&FUN{x?aEy!M zmU-c4jaOfs=F1HXXPD4NzX8qK?Ofb030PrjkHqVsX~MPUQ7hm8jIsSwrBk;7Mdwqv z8y%dB1N2LsRqeCor`3!<*n|YU^>wO*4X7IIv49#Rtd>Wel}Ez{wZ{L;`k1RtjO{Q% zRs!ocPU-?W-f#JR=4n4WDCOUF%MHgBF>eTHUcfs7b$^=JCWJED^2(W+O{fg?jF!VH z(Z_gi$nnM%CNBK7cvzNV^*XAOK};1&>%}uFGF&I23;vQW%4(b=UnjLwkw^1QRdvYj zlz@8q4YWQNH3~sUX$MXJkZUXHXdJpyT8EXVXR6lfe)J^B`p~B{cRs;0&lJqu?Cbfk zaM6(U3xihMCJ5RV+vcYYWubg!KQax!SMW32zPjsujy&Nmg5QsY;KH~4)w|B&eL!mf z*!i7p=S1u0ue=CkPu1BQ3NHkuLh$Mh0Y8zP8hZ6pN;Lr{JN7l>;X&W%ka(oBycU6q z#&PC}aJ4~_00A9O{@d!o=C6!0d+(A_=d`|RHyPU8EIHiR76u`8SI}1 zOqHJBzTYmOY9AGRPjc_Mc^Tt(0M|9N_>{Rgo9H!*(G~CHf7IaJ9o3ba3p<^J1nT&| zmYTL7Colr=y`9Oh5%6jTKa%^T&VzW^wFS7(W^d z!&pS4;IPV?C+&b;*j~lUdFrKA4lKCC(Vflp3gd1X>doY|{A~R)Ve<0PgBHgIb|MDO z>K}Zud09jB34qRXYy%Yl>v>u3?SY@ywTJObe(D8_q*(8^&RutIfY7bj?d)CQbOGtz zJPd~S^x`WTWhK(O;~8)ob{Du9rr0EQQ^Wqvci_hBD}VJd@9{|$`WG*3r#ICk6WWBYhXAvcdy#hXa9qc%4+gR@Jq zNBoUj0qCGV!Ewmnas-Hi9%^thZ3RWxYlCIxSiMm@M?QSQJGyK6FTy`FIq>HXNkeUf za>;Vy%`xkJz%8Sgh~fHGH92s4&pYmyY1{nirL;z--7uP}OZH#5|Lf|%L6>xy-vpN- zJ3cG^<1xpL^=b-kgM#w{kG+EvB=o4f=LeyiOEg-ZNus<;XDBuohw4HRPZ+APlq2iB zp;Z0#n$B+tg#Asciy1An>YNz-i(oe$fm&_^>14N9pnT+HadfYq=c`*t;o9=@H_^;j zGTCU=lJ4lP71v!W09Gzu(YCbXG)YNLylqCsq@iGOe3#{~uVCXCKwailrYbz*-DvFy zQX*3sd^h!T=8()E%=A&W>-`+jt1e%AU85C5@Nef5s#G|I)vm?96v4^T5W`epN6Cm< zm#no0%#K}dkNHsIU;E3UWuMeXt~Qnp@3}A~*|#!Gpe$R2bI*}%Fubni8`r#E_j{A$ zPR|Znt#lYnG_SnvF|@V!PrUf&cuMj3EL={iG|q+|Pdx6!4DIJumH{nsqyF&Iw(1H( zZD}b2DJ)u~G}Rz#N)&#{wC|FhI`ha~ViRS+A=vYj3?YqZf8uJV!UWyT_rXIeThKjc z@;;=_K1+H$nU&nQ8^6j0+re_}p<)v^AG%lgYh59YSeXeYB6IL-l4rNuOtVPw4yQw0 z_F-oS>fc1UzBc5svPCLhVeY6zYL1~xOl_SM1iK#k{f=xa={NP4N}QiSs`T};s_x`~ z4cUxf$ZAKpAJ_YNTqL6I^X5S%AN$1}1(VI*$`Y%@=*-D^8SiW2xi^KRb3T54aVBnf zEynZVbQnDA~=9{li-I&)tX(o^Y5nqz`@1&OqDG z_7koE?{N{*i#42OC(Q&_(KH-#tJdqAWL!R2h8@00f=1kOMyTz1+75=q?lJr_(ojr)@iv*2u2GrqGq=`=`Yg@K7B1ihRR$E~W7`?7^hX&o9<0!R$U6 za=v$jgZ>DVIQQglFv?*Bh(ZPSXpQ}Q%;cs>pSE>eA1+OXE^idiSWeAs$WNmlIl97g zD_7DX!fqTs!eaf79DYJ34?rs4#rZ5c<@FA0Yl#rdw^7d#Tg-(8VwB^$t1nl4Ss8iaFY(9|IQX{3;bW73HPVZj z^bvnBO}0nJ)tK7aCZ=Nczas~%T2rpiL+Ags^&D9S zGNU+6%MSUp@kcOlCOwYzdFtV0ZFmpQCf3 z+VlExjJNwBBex-|*F@O?gyziygwdS-nH5ZW_?@*om%}TyGPvP;lx_?X;?8K;U*4*()s3JzyGyQ$0lqGU^rVcuL+bQSaBh!3xe0`xNgx z+1?(I$ineV=J|A?AA9E#Lb8S=WDF38k`%R?!bfNZf9BvT zF2v54`8on?!r!RwX0v(QaNTM$QCusDUU-a_bX^!L3*T}+?FgAnj@}~MFg|~&AL6R- zP#jdQHPs4Z5q-v2elWdDKk*{J)Qusbu-Y@J*+Jvz;`u=WE);RaMHB13h@isfAogN* zAl?_6l@-S~IcpOyJ=?phvM~^yvBf>Dbd{ zAP(FOTl2zoTGa`3tg{})k7{0v)KK=PhL}8eJzdw_ZW9`<$4zbww}4$4T%+IwPU^T5 ze>YLTm7;+YH(X*QMnl^$twOx@3~+vdIwN)jSwSm{Kh*&S_N|yde{pgtAza!IYJcRJ z`4NGRlY_(~NY8*8+5$EE{1CMH48>b}xGOnRS-tk&U3bGF*k~83S?0?QD1ttVKTI0t`CgBVndx&D`Q z@Ow!C76!mapIL0)qI}uhyh__DN2sPFf)0_qzq=~tJn>5S`EbsbNiE^0l|w{a9=C)| zh{i0O1v7$$-_NPkKYmveR890>u!+YJ^fG1$)b*iADkk9(HWvpkFeuO^`*q}QJsNo? zl`yD)x?*DIqlLVqTRrQ0s2rD^xk5(aFO7~{kOd&m01f>`tinc>;+EDg1gV`EIHxk* zZZzch(2MvmMyaNAt$UfEPydrv5zo6t(YJj3?96#xS8K8(0RL!A8ma`0#E8r2XFDCS zZiLju)5@c%&K%4QpNEHG%+PY7s(V5inR@R1`HjMAE;hs!0u$}Xxr>q;M?+?YU&DB@ z_JEBt-az+$+egMse8RvtMG5SV3b^Y&Iq~uc%x_vV+t>6^0%O4z6UYcWv$B2zD2fsc zaNKQ#rqmQgm7hm^bi^r>B^71M1koK{4WlII!HmcfCD4k9D` zBT`#e^xxx#C?Nyh)UCu${?B9B%sy(>EI_(vQAc>r5cA5sm+;2D58U`lY2)Wmsq-)9 zJcoHt)^J^ZMGF zOt9XTN`-Ce5C@ZdWJ09e`?auRSa-N+c-3Nd*Au4#nfldbd2qWqI?B-*I6;Lty#_$! zvv@A30?w|r)&i!I_&qc!=aC9x1~2v}yOMCi7Teap4$>I^k&W|0_cZq6Ey;1i8VuOi zs~DHi08BcK8*!UW93|}s5tLaac4oR$-Z?L9%R^EqjUmouvN>APtsJ%Q==oNIo)HV~e1?d8(H<4KApI1YiGuK~UjxA%9;V*6(*Vwpzd zeS92_56GLHMg1;Nk;MK?LNVdhZ=9=Zogrcbk8aioOM7cRo&(h?r*$6~UI1sJ+%_A6 z4X=H49^X;Fm#c=%ziC$WgFJB~dw#IBBh^X4bex64BHqv-kT&z5s=wQcIxcfeLbv{+ zcYA!7ujvv3TVGVn77r6EI6YRue+^n{dZ3+{Z@<5IaNOFra0^w%SY&smM%A$L-&~O` z6Si8IBtp?aH{&NOGHU~f?HYy9l9t~&ah#(YKhC6TdZgsB2*$@bOs!sBd4lap!HH|W;X zMpdxJpE;OSuolxOWvjC{jdHIXyVlB1TcR!hjTL8dO;OH-rJ>l-(O+PeNH?n-VaE@+ zi*1t2rgT?Gv?d;>gpgBEl+4>sTk{l)ktK!H)o~UV7pG-p(aQ5wS#sCf_sj6UMGlM% z2$5E!{J}G-sxWQO%M?k?6Rvjg;;fJ-@vl)y-Y@bR;fR9RE$@P}fw#CvF+wL2F?*DZ ztEyJ!V{(bo9?^iu*)yR0#x$VBe-cejE<|~n2KC$`mIY;O7ha+{K@V=782#&>WweI2 zlEM+f@rfApD^r^n+Oau$cj9QN%%n{iC9RmK6*9J0DtqEc1Yk8SfPEsS&%3sWF-CEE?Qnx!b9_RsXAZ z9|qe&6$8hVr7LV$c%D7B({mcnklN-ycKi|?P31oQ_4}63?+ z>oj|`Tv9-VqJYOIi1#d{CXc&=BMe&hc65C61>Wg?h~R!oR&+?r?~b67a3wA&cEdJS zUY7G=3E~V4XtWe|-1~_Nm9Y9X+q&)Dr@GuO3|<8FhVr%sC^~i_4zjhq{@oclX~Ow7 zdC|Gf_k+p`Tb8^hEGFxD-a`0ZOSazWP~t1fX9zm`-8>-!d1tNXgn#$zERvJJ(dC1a zs0XeS*~IOBs@84w*PfuG>fLfDqtS8S)8X#kua3Z@2*Ieo*Fd#@#o|Q(__DQvN!f>a za#PK;D()y16db#j?8^a;RD?DxMYQunWdW<)0tzF=iO$P9rfB;A}VSr zxPY{H4rF&d%dthVWEG7(Q6s6bg#MthZnbxX;==GEPGM=u~}5!U7X>MGEZcMO@bvxr z$EcSw{uYOet$URyIOYx2ku@0l9>BWp`0Sr->frE()?Y;hS0dE@WbvR}%DHN|9$|ox zo`HdBv|f3zTETAoH3U>I!?da!L|4qpJ7Vy| zB;4A&N?hu*dS91D`e$3tC?N1gGP5^0sOJkJW6{5cEld|lUU&q3JHGUn8Wa^ig((}` zl`8lG3$h%VYz8K>75+lAf=0YEQLb+>-B;d%+8k!VAmCGaKz|4Bl+$O50lhbjTJ)-H zfg@5#*6K&rYvZ5xi$2@@R7P0qxYrD>_*7%rsb%P~d~)pBV|;ZfxC<;Gx{PUW?&O;^ zdG}1SHH(}Mle#Rc=QMeCbhs+!Jgbykrp5&XLUI~W1nR>@V*QaRyiTaKU-q%VF9xHt zIc)~H$Ftn-gB<*il~JwUdh+$wD#lL>vrE!Fxh|C*50}D6Au6go_-;dP8-2dH_`9uf zqW5T7b-QjI*F~G=)Bw@9$5)DOb)yLM2p^RRU~eQtVT2$0ys1jGpI(#QMm`Av4YRm1HPGIZTicyDdiK#Dub2Z;(g<1+5XC%s_rZ$G}SJV&v&cwr2` zRoPjEE~UN)8t+eF0jVm++=0WP%N8)W`$e78acVW^dAgSRUKfty)K0VCTLuuf({Y@C zVlNCTVv9Qo$M=b|cVpZwU;q6v^IkOJ*iM3qhBZ84K9a*UHv%-_<6k3F_i|yGH5){q z!4<|YvWfn&uj7!-oh5bLr^9*!J-@4{C2yMSH}6;g4%Sj7y^j`b>6~|#4VE0*FA2$W zWvq${8m687f)q1l7GJTo{}wM0Gg-))@`iE+MI%upWxS7=a@n%}D1Fv|Yb--K5U7l$ z|4oTVlwnd$fAOp4_45o*Kgi+(aL$it%uiYP!xxIlRVz^SDV$5TGNW&6I7}u_AVit_ zJMj|{U;&DrWG6!tT2e1(WJ#rR(G~t3GN+ItLZUI_+0}=MPCjGCy4ksycJgw{kFm*8WlYv|KLtChR~L>> zHcT zP7w#Y$nuB$?0sBWb2JZ%b|cN*Ntr)G70!3pFC}u$#xm&K_O8WlZZU6*rX>r8DzSKJ zN3vY~h`5GTtFX)ysioSM>zHYlt>S&aSZ_dhlhaf~4pGCV(K98TwIwUTGt*N7Z0p5E z0E4`Ftfw32#dC1mZ{r^^;sVmejOv}kIUZ$y`pb;VM=D&`gA6wWq|9X}+C;;d#;Ccj zujnVNtB>Imd$@%4z9tvqyj3dclPRFB1bs+0DOE=y>-=r^hWlmB*Q6$50W@V?)L)@V zIs4C-8R^fRkEt5EZO$gg28Oj=oTkzJD6r|W`weldz{$RKkHrZ>)^B$=aS$hi#{U0N z^_4+&bWxB%kO#qCg1bwA;1=B70|a*u4ugi^_Hg&$?hZi$0fM{BgCGxgS-zFp-KzOH zzoyRI)3;Bb?yWqsbJx{}4JQb~2H_iB{lP{HY!yQ!Y;zm(c+ z4&S=3x#1NLP#-N_803j==3t_nf?#1}5+iOCrio3fh31D4UylPzMf4o}LEh>o_favS zPh5N=i(R~>O}w357#PKh)mtqd@+H!d00Ni9@gYO(2$zv(9{)$D0&h3mSJJfvgu8uA z0W>bpDq4N|Ci*?aB^AAtO2f9qw_cZ00-8$t!(5C7xQ=5V_QtwjqZnUhhx@b|XnZv6 zYC5Qlkgs2)AyQl)6pWH@Afzkky@xRxnoO0a*24CDLD109*p=!#7y*6${F&!$)p*S@ z{P%CUWepAYl_c&AR{hTdB&4#)o1Md8S_ygL7{nN9=?qIkvyqN3ksy5?e7O1znQtjW z8y(K;Kvs)vKBoTd5Iz15T9OB?gCLRaugWi%da#dLmmgXNYt0DB-xe?sBwJow{Vw=Kpu+zrleTmV!o}r#;hsNR!yafHv zd0EB6N!||Wx{HSs{O`&weqLndAwEBAm4s_{0lH!h^VK#}yOdb=e(#9exqVeHoooR!IF8RG^c|%T~nN zF>Mxwsb7!@C;Xv{VPO!lF8u97>!p~-Aj%a$gb<;^QbvDI_RV9WrKwjMWjexHK1D}E z0NA1r@(fM=LmbqH!u?@?>F5#I>Qz4N{=tRA_qF{_6Ja;ps$Id0Jyu`YC7pb_vROHl zL0jTIyc5?9M}@^B+tvqpdL$VCcx-W51)Jom8bUlPRE^!UcPg~SAAYe5E4JhdQeoM7 zAw}Qa{X+I)+u(c4^gY)Z1_|||3a&PV2Y4qq$sg(|3w36L5yrD(aWF5^lP78M9UDj}jW_;(X25L-9=qoL$+7AUE6xHd=JHb3jnnXw)Hhj#f=D`i4 zQ+mfSXKhJIBqTpZ5`*ZyUc7R01?L|cgBCOVKEkd!9;E38DxHDx`PQMBP9;AV4#+m3 zrk7NFqL7lyA>eUSIp9kp%e%i=M`CQ}0jXubZxi?^eT5q1XCWbLF+oQ7!RTr+?amp! zSk}j9lgPf8MM+IP5yC%|ra!-7ESJb7AP~uu5^?T=4f({RGCF$PZR?sm?*%>Z5Tukc zLh`7xZ~7}Go{#ITrizOoSMctK5WxI*&o-jd6TfDlt$dF5Z2T~ zgFT-eyH_S8P!qd8rDPm5w>p_pCP}@g-$gYaqCVqxPnD|LL#1avukL;SkfT+6WG;49 zNj3jTYzfk3w~c5yu81REP+pXg8PR%!5fa~Q|Bmkv#kma$4@N#+ihcB(S7$(qsKbrj zWvd~lJ|{o+ytwu#F-V6Eo;R$PRHmgYBy|rlReu?d0hlj9d}AOGd475u5_O0^Yx(&( zQwvuom+)4tT#<=W@*zF_rH(8#fKt@j8=7FM73`!5Yo&juaGsU%VTE; zg6uirzm+#%qH7Re2o3X-=mPRVs7eSETZJrb=oxBM@(up%JO+~d4VdB{JN;DC8C*Wr z+O7pKfa-67BKrCdp}k;4yV2S+ZrW*FS*tU-$Qec|IjnjDY)xER35My`9T5XPE6(}Z zZYhcCXOyOk3`30&y6v_Ety=k4$omLY6e7K}=N~#SLKPc0PZAZA8fwj78doZ4&WW@!t;23UG@MV$zm1jbmzA(FGbWgZ!kyEIxYLOi%5p=m@MLdHQ`>8JAwiemb{ zL0qRO7nCD&;eS{rT}9dS?)9P4rVq7kzn1nyFrrm zLmbUkHPg+G7G8p}Q>QDe*>jV{q|PF?;k%(bmP8_r95~eKYv00fr1QF&1I&{IAS-(? z(s>kQ`P`#HPc$<6>T)C16_0}4x3WN7OPM_7s}p{1T_s0?R?khXggwndEvK${MQ7ha z&$#?0aRPqX;Aw=)Z~2!@bL4>)4@yvt`1BmX?)qc+hj@*9Qp7+H^zv{_Vf?b$5fN=& z5Qf~DQTQa5D-UDy@J<$5UL~jpkdf8;=$3WMNz_H5G&3he(!gTo-WN=KH#QyZj#%hE zz#~Rxhc-bN+>t33ftqiARhN1|n8(G*DW1YZNK9Pbr(MirlQQMl^82zAanS-nTk4nC zKW^TSU+vpQUht+s(iF0i!31co0vP2k7`%v*s&i^!L@3^}Z=z(rW$c^3(*aR(j5j@hqxx5} z=C@D(4z0IczVsl4@udDY*k;RKHkYm*B_S`lxQxzv#N~|NYs1W2YUp~vF*1gl^@DfG zJhQA`kXv$77-qpRA|90^ka53^QyY*XcfU!`jIr*cNI&9ep{Sjrgz5AA+fmBTL({}A zxmM^>sI@g;o0*n3X-m|>Z*Ul#6wH+%OOV+6W%U@9%O#GN(q2X{d@9kAy1HwA;LiQo zD5>EocHIki3d1kfyFvae=XsudHg7*C4yn}Szy9;ziG$QLiVOG)_V+7vg0U!YHb2a# zw{ACZuC3%H!Q<(f;w{pKQYfkGSK;%@_jj?L&u=oN1i|QaINXb*%&@#4A=G@g874V$ zXH<5E`Sh~gbIaLPcQI2*ObaDNiL2#b2YVF{6f6%9{(L{IQT%%h$wXgRb;TGqUA+I) zu0~!jC=O4Re+4j27r`&n7iJI#;dLSn8lERmjVxCUA`=MZQ=O$3A@}RHud(%3_HoH2 za=hKocS8%;9FZ{p${^n(en|M1;f;z}E+qY!8D3uJ%*OqD2<$G94Js=A$|7wCM=2Tq zD$~r~-SZXs_mv1TYC4mjwU1N5Un@DX*93WK@B8R# zdhBn+5no#qGz6p^-@O}@VQ-#hpc5b(unDS5)LfYxI@q86jLbQVC5R9<(8jh-68euK zS(=7O{ir)8QK`_p@y!a;AULMp4}q(VYu!a!S9Wz8qROHHY<^+CK}0&6Yx`u^%QSyTJ@y%u z;wW8$7iFzLVEml4elj}SgKi35g}OjoBngYrS?waw``pa`r^~+l6$<;Q0I7F3k4yqh zZ1lfVvHR^$QpTfKNVMpor|ql3RBX+iNoi8b@;NPn zz>DcG8y9j|B~FF7WJH6$Qe+4w1MT^!%4g%wZ(s9|Q0ZFI3i2v&W2BQT8}xkHZHukV zi2w&7snVEu0q*VzM2^Yiv}x1AXx|u$y$>v7hnpFhDbrPnsKwNn-+^9=41N8fW5E|Y zecJF`A7^}ac=Wh46j}+ccJTKykIZ@&n(1Yn#i~RZf9TWyx1fHetE5(pF5_m5icsR)Vv9Mr3x)gNQvfkEg3~syYi0?DTt3= ziQZxvUW7p$DW4(HtT}8%E&$)TqSy_cH%nT_kdcM#V{#>AYSJ`gQY~`-*)eln2j=or z_MBwNNy;-y$(nn%e11Bn*V((mo^Vwh+urLQ2ID0#zdja4}}3tAfX zELFM6{l_2&SjU20DG1_*g_g@C8UqSa1}KDzKt<<${PkGj7M@&XMWdk zqgP*RgUH+OEL21EJulBUaZ&$QVIVen@bCnXsPo7sau$ukb%4$i%C?#1%*}&A^o2-; zpl*!`wSCeoM#iYlNdhj)sf?nH0WKxG+_8))%iuDwCt?uj5Bb+e8enQ>@6Sj7JU{cf zJHp6!lrBQ_X~m^-5{Zbp5@k5%%P>dh>cO6T8rz1biY~$%?L5WeI`MOV=*CxiIj+~| z`grgR>Qe?}FdHwj4UJtn-uyr4zon^M`xb$IC+mm3o_ci1GRn;~I{qw&u2}Qxaqvpp z$kUaUSo0E-=-!Zaw*Z>r%SN1xgZB9h2`+N*c-alOQe^7;F_cP)6tHo}@@9%>%5LZ~ z7+`eB?}bDsCsuX4(AlQkVtnKX+22x-AjT$t$U6VR@ZT#wl`|`zpsz*XgWpp}`|~r3 zXl7Mx%*$0w^kpwyWI-<2N9Ky?mN2Rl9z@*naz*xtCCSK{w7@!_qAxaO38sK}36VPO z*JwTD;=o@aImXeytULHcm+}+D^=L1Apzp-E3+>_Acpk72nS6T|1R`7_mD8u#GI4n$ zHh=u=GEa6#wQ|5W$Klo_pk5Vx|OloZi+YMY%_R_@M-XOMKy=j1oT$%KjyyVS%M53_}j_TgFRyS6{xrHp{F7e?y zQN=70zVno(nl3+f!q^Cp`bM9Q!}f>Nv(>T{gUYU5PX$Xacxr?{Tcwj6DSd`QG~3>4 z1*7zT!`uH(6g#~gW=9Gof+_nG`DMZ*g;}~#K;g=!G&E5b@=p;xV%Q*LyaT+xBMCF) zp7__ETWuU)y=?P+T8S6AP+4R_-prxut~aRk96bW9XGXo$fH^x)5<5`V@;3Z9^>wb^ z1;Wrl2|sL3l-|Uhp_E7?et?_)9dRHX+v;=q$6vcnP}{iCww0;5Juga1ftvIrb^4!; zKoD;GO*^V=8;S_Ly>f`FrvvTL5f-|G^=psWd5Qvy)sVwEqL96IYxRZtKtABt}j43;3_eYD|gtVyAq>9>;R$r=Tf#%IW zz{`)BweNF@Lg+2!W;r|FkZ({FyRqF8qL{_2608_F#4gx_h?jhr;EVY( z4Urxw#`;zj#hTfA$$Q}oe9!!SnS7<+b7dW_6js`qejybmQKAp2h2A_WRKO5W62i7> z*O_M&kdj{EK3HV9_L$2iP6{oyD4MdYs?_L?yraU5$KqThSq>ZJ z8nciDGO~@(^3Mn6CaD9yrWA28VdaZE z!*@cES|22e(qxi#F)P%A{gSL>VloC!D*(xDavrJyS2fz%15-(2I)55ricoNojoL>_ zP%j*ciXsJgn+djYgkYHueZZL7UrDH5QUZ|ADjjUDYPo5(wf}UR#M34ZDHu1r{=51r zIjO)|e^o>ee+#+}M5CC>J`b6#i(md(AEtkIr_@QyEi8f4?F~d)QCcYi@@es&ODrl zt3&2c;tJ>HM)kgME}!K5vQKbX7=cku_;#OhXc4Sw z?fyz(3LO`nX>#nkH%H_-XPi4q7qAS(2>Cn$GB@*i3+1rJE&^ZtJZ?V1xo>i6hNvN(YmWJ1WuuBQ5Ber&$lsKrAE>>$m00_;FtM&{5Z$YEg$>t%4y&3m?%f8 zRVT7CJRHH5IL?EpW#68F5Zs@V6rtj2R9;T}G6@iOLs<>&w?S=_HE-qtNS97d{Uh_G zQ0YluvIW@SQJ+}n_Xv}d7^OM*pXRiA#ERyc?;qb%1lG{IXDqF)(=5&BY^&swLOU6(TUOHgO%)?FQCLHEb^e+2V76V9*#Cr4 z*SD+vgQm_@>};V2l&;^DE^EVB=%w&bD>6rT3WTC#!qJ;=j75z0F!MfPqg3e5O;{hi z2{#TB7zYEj_|Z&M$uyxN)2Kn@a6-)orpq{AlR})0U+F0HDz9I#_m1iH1;X+j)?6oYjAF8Y3X?)cyTZq}?QevMJEXXa zsx{SI#C>~)+TS%YJEA&1_FD;MV#R$)7YS`Gk}&dGCeg%Z3F`55zXOHa*lJqf!+RNc zAYKFE@V-Jn8gE5xgyp{0VXdN4Sg@}$dR_k`{^34_KcsIU+VDSx9^d|-+93NA^6@u7 zNVXIy-SEpN?i|@70ORc$~SgbN~}qrR}-m9(RlghO(YyfgW%1J zZewWfbH|@Kgd%Z5tNaLK{+kG9!yf3&VJZ`EfSB zNZ#0zTd!d>YO_Pn=Hop}YI!-BW@yk%EZ$mblWapHB3ew7u8M47DrH1BdFsY792zi` zR#tSCjPbU>RDT?TRf5E!DYuthKr@9>#UtSbzCyJ^c*8O{QqnE6T{JN43{|FFlZ1?} zm8r7Fwij)%EmmkhVhKRWd6@$syeT$3y`Qcx!JW?{fsQ#eGG2bHJKApcKR`ai7SUzU zF0|pIEXKm}4%`^Vz-p%!NimEncA43PL@8KQ7m zT4f|bJS+RVj`}=JD#wQ~(w-L%Hhw~r5dDR&`TvVzuPMl~1f+nYoCT8(;l5wHD3Jx9 z)jY5URtiEt`w%Sm9@G&oMsrfoaeXM|apBCK)5DqW{jH{-R7BLhL=&^AcwOGFBH&FB zKAZ-lj~HQx+H@{lk`)>Konf&$)0I+_HOR=p<>*nPKnjgmKAWOT>ern)6mo-n6a*IO zF3&@`7V|gcQ;`P{0_#l;wDZ~F&TM(SdAm&&GVVmMg5)&9uN9BJV|m#*Klc!lhRl9J zgE^3#8U1dH?2cd^@h@=uUNH%t5grEzXV;tTNh-;_5T>hK^OR>V`#o%;b9ZDv0z0Rf zbBsxRu4Ik;$eD-c1Se9vO3q3iy16Q&ydfc7*R(T zn9I3m#H`gYSOnIE7A~as?)=rKC^lnY*8Tf0(O1dw+v2+)1mlFi%|8{-$U7@bHoJV2 zLTchoOPVEiHzuJBp6!tTj>iFwH)4dB51W1T#&J4&{4BeBO#cNF)?a6GAnuoH&Ax&i z!U$VAF?& z7M~Z*$^ItTmXS~jrn~;qrj|acq5DC)LUU5c%*X54$~%DPTna`)^xxwp~n!V2gYFFC&McwHWNLF15Az+jsX!c5)-vb< zp{_e&1n1}E>wVZWrjur|dnfE`Ar2307LPX@XIqnOdyM2FL4`@RVh@iPJriZdk8eMo zgaxvXJuvZbhvR)L%|fX-gGf#N-o*p{Nb#!DP<&nQ`#DN-Y~Hk*yBVzdqzGUd24=|q z4z?*P++C*Z983=u!ayFQs<(K<@G{Ukma%wwslbn+^l!pv?8VR~q0IPyO5B1q?Zr8` zhF5Y%kHSQs88GCxzF;p&qfi{+#b`a?CQ0=^12sO%wa%IEswJy5}#+P z9VEsKqFn~qXo<;_`nniHZh=Hko&$lHbUoS#K?3ZLU1AEVAmVZ9D+3gxd_0XZ+Zzk> z!bl=g>p?FE;&kB++l8C@Db*hmjm)l)oA4URmmG#7{)NC z#TC0!`_8A*;VNmP8a&wA7l|BVuCVuLnSv+f33k=haS_%ZMWpL~U;~Za-qU)1$P{Yo z@wBwmF~P}SNHn^o(DIU{x%RLxByPW|h2Yy|bN@=dlVxFww7 zS!K7Q_pgq*%ae~lw+6uYmH6c(UOw*R&V)4yIh6R1+*_*VSjI0FyKWu?UD`w5#0Qa| zPb?uiEu}$k<8D{bWg{fE0RbJ(=LhU=JDeO2CV@`CV$m+p7l-z z(byI0E;;p?#R+6NesXPmat#3Ha`l|AD39qDPKEECdL~vT?hyt>RCcApH-=RLp5Cpy zO|X5q3Nq7c{RT{@1#9+6$sZU+ zS6>ISI%D$upDp~(AWBBB`3r78yQA3s4&Wxb-AP1zo&W~8u|zwzy+2MbVOlsV7vS!> zX%G5taFj|VMpn<$W~N_b*FvM&5(9aWfcO!a79~{iyN*a0D_Xxh)`Uq|?;~aC0q47; zr=tTr#-eDl1lkGdt`yI-`l9H-RCSb0i?`vngo!zKz4Z7SZk)n{i$<1PRU;i)qJldxpSnO8Zo(;Trp2fC020MLqC011GqRMQ4)&~L5@pF zn!Sj|j=Oe34Hv;ek3vfSF<4l&LC-sQo>GdW6$rwYFQj_c)c$=)-|s5&*vedvQ7#ES zA=Fo_aiyuoCawu@DBC$lv&ajUmbMzHAygq;%vF=KG@K+mfFXb+9^tw!w--Bb^ZH zO8*1up=uUt_4?P zv3QVe7D*)Z6^RFi5vd8kclh~f+c$OF13*++v|OWx8O&wdVb&oX8YAPDWz_ZS#o_-N z1Fc&PSVAytoXPJrfl+t-Q0%co3-uvkk63^Vu|MOmcldZ3-Rx%j{we3_9{Ubz6y`@Eskmzi7wE$18H{(^3Mn;{>xx4c$djU+#5p zHe~9YH~j7LoQ6MpLZ%>Veb}GLYax2BgV(Fxn^PaS+S7LL2G60M+l#}zce9CdAF6Ud zzgpU!j&z(irY85(KYrry%VZAl0qA|n02Tv>B$sL4x7U|K2AW^qd9FcCNXBXcTu4@g z_HfZRBq$ftQ-#fZmGAEzR$q&T>#Pr*?smh1336Qs34pU2yEMtu?WbJ*SfAnf%Tw{< z8B|KV_9+x2{~`4hX2uIVuk`$Sgadon@;VB{lOIGdSrT;EWvkpnW*}LBfuk8U@k~gD zNh+hLNKgCYO8p%q9^R25@`DC(<=drodZl~L34Xj$x}4@X`j$tc`^ETqqT8}HkwE>E zhMnzbk$gNScj*R6!%aoB;?PTO)%j&;f0+@3DwL6mNtjfk{A}smtympY7DB`SFyReR zmCv6E<^C-@&3#9DQ@ji4lSFSHxgGX@YZ~I<7WxxhS7)=K2NExw0_APfB_K9NCD5oc6Dg8vf?tD5Yu4*XE+EM;&Vt%nI_*TVMKNaCio<5ty2a&Bg* zO*U5xJCDHBg-8$W92F!j++XeLcbDG(`>2-qz0)Ocf2!X67 z2)gU5LB~)u99K&1&vYo6wf3%|c-d+t$Dm>-_>M55mKD`yi>Q1TVmT+rc=hjS)VfwS ze~kiDgQ;e8n|uJOiwAhdgxO|FEzIA4-W%MXGLhzdo)M!lhKf>Y-npGfF^bv79|p?t zLt*5RsxR<(#GA>hI?pF2ADkWrVI&@!))y;JJehjyosOl>(eUHm3^=}wo^5K9f!|RI z+1S`9C#OkHjcby2YqXXAXl1*SK+P!&Ar1s*vZuN5lM4Zl9fmH$uG-(YJB04>{GOC# zYFWqlprlskkEFy;FIFw}CyY+}fl(9NqK=bWXzV*jX2TcfHQA_qr#+`6o%=JXXPLgF z2BcnGQOBMSOMd6x1}aIg?RyKCgAK1qPA@lP0_}48bXaMPt7n72 zw*O(~{ZLt)1WQ-q?dwtM{W&S=RdBY~slmqhmQGjlN4CyfiLAb_uXUuaXAyDd%UjG= zq8`3@P_OHzQfFkT6Z8CqaIlo1{n(FJ z+SHd_X`?&!F(ps$W)VMf5B(XqG1eVls1G&td9BcErOk>$-G@QVNX8xdt$!7T8TC7@NR6#+W1DU(Cm-fq1n)+|I5sSZbUI7T|0TSq$M5FwvZ#jxlK*|NFapGDI-pYy%ha;RChZ9)p| zxupweHUDJPw(+J0$=>ch|Jtla)5o^c+ySV2_+F?!uYD(PLNnNK6ZO-6 z|F%a|v(>uN(-UOu*o2Y0?6K1h6)2WM`RjTrX;+L5mY22J&MH1orhL;e)yFWFo~>_o z!m=2B!sJ3`PgdoGNOZ^kJ4p<0Vuo{`hu6+z5SKNyJd&oLB3?=bkv&zyOW+2@SOSGs zhQ<`=YR$)5)9;njVKr`ge~Cax(;gTOip8qSl2YUmRGU?ljr=j39ANgqM&qB{CJ=Rl zuNq`#QLx0sYTUbIrAOnb^4wueg-7llo91Z*yjU%5^vNqOa|%F=DJ3kwqdG0GlcmI4 zR-~8)|DHLM?yK|UYf*K~XMB*r`3I27%kWtp5n z4Yea|S`;t`!&aRLhmdWJBy6#U;y$CEsZEI`V(-OYFLM7_xS7DB@$!WmG93V)PlGC{ z)`r@>e(EFBJ3*g-FC3KSXdYTG-ziZQW(O9v0*0#z;F@3dljcMhyyd>~;CLtPWvglL zQM>!&9BD!O=-}1)!0xEUq|%uhoE)XYA`AKrYGZD1+Qy< z=N7zP81vaHZVIJB^5hF6AqVq+P5e_PwprXZQH>YDYa_&zn7L*%8z=?h$VH$WMs3t4 zrw7KdTt?-^b~~Ab(-|F(4?}r z5v$yKBAC0q<4M*}-}54J^Ur83-RXhKSm2EpreoV5Ya#8W@9|_p`jNca#AMbt@3e(2 zGU_5K7_A`Uj9PI50o?${O3J5;sfC=6W9ECU&-5FR$ZVrQsa(;} zq4MHYcA3SO_{j^KTmA0Z8Kk?5OM>uwXWLk_4fH=>diHNs9w{K*F7$~#uYog0*KcM9 zMV{xCQ+rvj5tFXh)lS^So1o!dhQ@jyPZ!!rJMIeGxPoW|uuzP%ysKM{;+vjRIO|~Bkb^D*+wr(QG zoRxpsA4>+V6qVdfe)g$$o$5r#nky=MoL_~2V+8}gk=zHUn8t~iv|NTC-47N#-~B?Z zom5%x+iP(gPhf{$*0_(gopk`a>&3wzH+mvdpLUY?4%KX)?^_IgsBaFE7VW+x`v#2V z-d`V7cLH{>)nnxzqXk2Ag%pFDVF$rR9yi%p*X zV?xVbHtHkonjzK2hrr6IpG#nQM&fZgo0RLo=FTX_!mQPmO;-L?$y$`%l&{yviV<#z zP!?b!><2ECbUuS87!0R2_S64$z6ZnA-bx{hvA=CLqiM;thA7GH*$_eF7KOWxmm{L{ zW09Oh;gX~s9_)B8MRLNS)o5Zp!^l{0J@<7J$jFqKopmDA<R0btr61DmkHkMC6Wg**AWUm*~xcVa#rcTR_;) z$~KnPs6)ad z>VhY`G_xVLh4sHI?d9V1UD-oz8JBr1LYgk9#z>@$bt`fxt~FN9oRpF3qKREXk(?KA z1li&-YwNU`8#&CVEwvo{Q1(Z%d^SWQ@MTLvT;-w=3|KZ^z))dIMKN|W&*7c)l|32! z&+lRw5l!6~C2MMI(G?E_sg7{($bm9AhYu(DV4)d4+L8#or@+^bKihH~LNquq#?}UP zHl9#&&W>li`WsYs?mUftZIJ%R&*pQ64x-AbnswAewzDFbiXpr&p?jZ39Dgd8#V7xR9M`bw^C+)d8xMr-w462A zLCvZ3MwAU&$h=$@x`T3G9A%80NBitkQ6$}>Su;%Mmweo}815Z<_8~2m60r_rH*TTt zs?HbZaFar5);CsmXi~@&o$=)Z^jt%sb!$Gk@kSu+9lk*O ztEjIN8QYT9f-f-N7+x*_arcw}VVaZSrenp!V1)*98DbI5z3;quh%BHYIDfMs#MAu# z7>N=rG&)!DV+Rj5Y$T6?;@=(>*C=6FD9zfT$mcn-dG}XcJDs^h5nzqzK)GG;dQ3yb zvt31JE@$58sG+9^dV86A*532v`LN@!{b&*J+Oj^ZMIaPOAo7fU2}9a;PLcE23Eh6o zeK9$$M6e?e2_q0baS?h9RbG*KUTNn#n>9O5US9#C+%apE}x>)jPRHW(uu5{xb zNB<%?xWslZdRhlk8#RfHY|l{DF)Qy^Ef36>3L_eYVs;F)0!w&zOIo3)98*nh2s>Q1|SUcZk%M@cYhn4BuLzHQK`XAa_U@axJIb4fm{Ta6d#kA5Oa)ehz zr@qS5_Y>Gzw1}cQ=;;6YyOg!k@u<15GI29-20my<@>fO=J6>KJg$!kJWk1tfEITdZ z%30{+5;19O0$Rzq0#xsYs|%0XSF7z^Cg{Qx)<4-8VEfJJV|AKYS!H$$-mp;?6_qpn zYe!@}qb#nTG}zf$Pi={p`^Ho>y1C08l*|}Fhp>PuVxztrrWj1~WgVb=mp}!zGmC^T zYY;8MN07$1wuzUpXib}dVHeWY&ARf!s$S50i_VZ%0rGwRedw-J%rgz0VC2n=)N=x< zWsN)>!NU+pz(AenW0U$}iLS3(az;sEUSc`fM$7;>Il5x?!q<+(=PyG99Uc7K&!FQM)p`7D|!j zdPh4q|?gNHyEx zJ|Ue;X$^BoJ>>ImNKLorAH4A#XOp^mPJ;D4zR+PY`&N33f+t13-Hie$T(s}?Xxh^AVtI{0me4NTC<{1Ta1@l^VpxY-H4!!i=~eP8pqM80=TAe52% z^k=5+td|VxUEo0An!k#TpoLXS)<40UX&U0@88kVvzmKmIu-PQEMSYKEKepQ)XL7B2 zq0fSX;h)y>Y&I}X{>(wf-OeVub3bda@n#(l?2$cP801V+?^$`DTpIOf0+7l3O*0@X z{DiXf_+?AQtB|2}#&a!Pkma*u@!voOJ0>waVq{INpdYZ1iK65JlTPhEj{y&wkfGiQ z<;h)b1(cD+%R13#UlE`u%KL>iwJ}-8FVfSizbv5ZNccX%zXP~BlX;14;l163kPH1T?}?0Y8BRC} zBV$xHDET(tRtwbXTytUAe2GS`6cC1k#r> zZYdt+zg))yG9b0T+(_vTj`{9k02lS_uC}cAy3nFU+9tIID9rF7tMB7qZv|BR6{)NS zqN2m1B9=(+_pR!--SH<6Da|(6vM%V1w3ao4pF#Y|D|-|fX+n74Y}H!kCp6^a^uP>Z zzqg36&elutFHv>F{(|r@DQO5>ION&`C|FyHd{g0&!Qh{$HsguyP9Q2wz%>7RBd@p| zXXBcJ9A#8kzb%;n<&?e#!S{6m-nb9qcH_$r51cDbk#JCd$8RkZ-_W7_-PrDAysjBA zqu!65Z2OqW9~5bdC2(EQ=^naEp}x{PoLXAr1RLt|Z^1`4#HNb2l&q-5l~}M3i>w*l z2$Bgy@kav~>TrINkz!?n0MiWDH@wf^C-UU~35;VIyO?lO!v}$}D7V=Jg`) zF0baH7naEqChoyY`fKi*$#8Ynmno5dTkZ~d^Bw*kK?+8h?%zBxjfHXy2|YdskyA=t zu;Q9l|BUuF_|AEH-~u&=Hk(Os73AIe}WFdr-E-<9Zv1YL197>=B}J1*)`y*nF}4KsVlH;dX`5JKBm z9@{|7E}k*SDa9CGI1RsSuaY@K59CtSQ-N_4^^- zXCsta_35wi#8iod06bM7orz(dE$cTk8)*as65HZ(!#Nc79E1Ua>miW|;aVZ=rl)Zd zqk&f@AnnuBev5N=H~7=j-x})Z){>>grdDR2+Hg(jUX^^#v^UM0z;^d+u6(KBq>=K*cSvACMv@k8n#RLGO@nOs59 zG9)p8{)P6R5r#5Q$VT#i(mAG>@u=-C3R)VxQr-+qDqj792Go6p0bkkTq-mM5Xuj%@ z3lDU<9icbhHTD^aKa>_~xE+4fsbAGm*lOMO5=Jh+6@P>KF2nxwmqZ_pJqlO7zsd~v zB}F>F7$%&9qPhll()M4OB7PB=juPz~5}Pm}LUK}A-Rulm7lK*%H5b*U$v+odETxuL zufkMYajjXvU@r9|_9ZOrEHK4;W>d?{ zGJpI?zV$hEcxS^?YOr;6|AJZY$(`PJkQB0 z{^@am1rh=6b*r>h9D$xzT8NHIScARew+^J-^X#@shwk2v4FCb%y5|nVZ&SS|T%W4m z`w(*9kEMY5{r9gwGF9ztd|rd%m1|$!_N!N#F?iaUF*;`mypEuLp<_NELF2uTsd}ep zfxf02w~)>gg^zGKCp7^<>>mIyt&RIJPaxL$G5n&ngU;>p1mlG`?q$O2>}ul~ zJ76+5om%G9FV#uR{{-9UV*ArY#zJ>wYR?ho;1_6L7yYmru@>Zf(MmMP7fi+iNd1XsH~Y!qOE;Ly)P4tX zF9|9e*VTSw@T&wO6SNnOLi;xgz2juNDgiqKS8=|$8*X+Hx1R;g`uy2Dg>{TBDA$4H zVW&5b;+H*(Rp5luGpi+QI3E8RQ$uXT^#Nif+P9JBw7b2Mo6}O-^gDFQI+Pbd&BTuTE-Sn5ojO*E73wsCBBD?1E>Yn}kJg{{!Q4H@Qun9LmKUrKoH1fjna%SZ$BND#S zj=SKv-Ss7O{+P2yQ@$_?#Q~*Joq-awZ|fmv$$n^l9>8B&S<&M^#FBX1(o6as+SJ4| zzpy|wSNMg(Ntb$PwM5a8=tFP8bR_u3&yTj46R{X=-uIz;SWv;8jaD}tH-oBJBGa|H zx>Gr7Jilv7|Dl^cG!Qqjy;{%M*vi2_`?r^(Udmgr{W9fRHT1*ICbR@=3db!ZnLAW~D`fKbxcSO+-gl{a2a-!5Vdu^O~ z8L;ZHQAGND9xB}MoG5Vjcr{(NZfAT=ynhX3768F43}1D2g6T=_?BbIT>!n8rB^(u) zpithQwxK!p6l2&M_B$n+k^u2~qual!bT9YsVjmp1E!6(_(<=pt6*jJCWBN~zEad_C zcN9xD^3}^(XUU%-&WHJ#ZrAqNLn(Zv>K9iO9hxTKQf=19BUZ;I7rdi6cOC1MG6`H| z1t!a#;1XUwR-8&9jo5}i4!u$jJc1S!+&>e<4w65dl&DGsGf5&Qeb${WOHIapM+?wT zpY&GZ*nj2YD_>$9cU0ym3a&|6|8%I&$T*ond|3+xh=J$G)N@jRe;?noCoPJd+px|% zi`g(|IE2jS{rc0TXzzeyfauE@bFMd)Vn1o_RpHa(UQgfq?pur{Uc1$Q)f*Ek-3Rlt z#xH_Km;V&*t|+7UA=N@B2$S0$*uY&0(%D(|!Ug#CitY3&G{MJqriEXprN;odp7uePC8pPS? zW$)ZvdU7>z-3)fxJ`_DSTm5R>CNQq7dNTtI2zJx74ZE>Xozn)D4=I*MUc1<03Efzw zOw`ef#^nlLNgKW9++O&SSG0|H<@Pe?z7jgR1(Q^_Ul-n;5BFrgLf)9cqYYor@J{{(sGm|e3CF3}H zPClM(ylgmaf0(+=zxB&`Pxiu%za$u|@-(&LHB;I$mFxX+eroX}tt%O5fIW~R%Hxnxj%>@&%xLrd_J=Y{m zviwUTlUL^zrcV)YCYcZF$7%n}*Ab&doNw1?BvWpxv+{}miFOD?MMtagCfQVXZ6iBk z{T1kj?!c{|8CK5~zWj?YL7gqAt@R2UM2R(Op2raJX0*05RqEsjbrt!mRO+>&_9MQt zd9e$ztJ#^$l7pXt9uhItCZ&HgyKj`XyFz3ZyuGg9sbT_fS*D5pd;%weEyOpj-SX%{ zWy^MG1_MXb$~eQHQH7P3aY1EgSS1Za7J6LeNdz0UO6u~_ocw=BXqxgBh9%7B(&PXA z!JJ19G>UrA7xCWzyh`34ufZqvMyD7RFo*&|D@`_Es&W?%35_>x)F8F~0z zgS43v-3jK3H%ytZHcqxX*~w0 z-R-7+p+9-n)Of8oX56HG7gT{^)-l-EG^9bP4~OxgTBFqLk!2-PWyys0sgMmuc9=&u^H8^=wd?eg zAVuVkm!nRFBU6Z!t3#v?2LmI%Kq~USF_*#bnw!Wk8Zo|i7FVEo(4I~FjtI*cuC`VE zxA)>R5CP>=SJ}<@LEGP#)t@aERpMQTs+`LnHpBwrF(`Z*ekbbxuGaN*V=|tk=)O9h zD7b%q`o35tA20Wk{{D4fH{f=hZ7;|cr&5e?`w;bY)AGoSjUhJlZOGjw+H^|IadU%} zO!Smxc^XBO|J4t-MtxVy*2X{ZOK38c%H1+#hNNx}=y6Eb9%rjy&s=c{;^OWK%$Kfc zLLb#-JQ2QSN`&A@pML#|c}l9m@Ka&M+CVc&)_r=+q*4Rm1P0GcR8+arqr&8?)MZ5Y z`U-8*_c~w&Ew}$*(+o1z@4jgXQv6s!Lt9>S zg-qu_N=`4Vx>t63__Y&V;_KhU`>lQ>SG&%TB*q$jONSb*(Ag>HDaM^+LzOB9o~e*U(!!`^NzCST0raNoHmL#Q@v!B_rHs_hdoQc9B0X1Hu%0#*;li`A~|C76>^T=&kT*yUm8*P_o^ z9-+U0ltX!$@muA#RyWsf-B4kfx=<8&bTzzItOa?djkf=d^REjZ6h}vfoUd*7$bqtF zO9G49$tjSU7c`de_{ z49gfk;b310c9f4}bha78K9|=yaB`IYLA(8qWVbTbdl4^MoaYCwF~X-fz{w-K3@u zBg+dcqcy>qV)|e-dqtbTlD(8_U^a6_n_nYd;lDUDqAMSw317$jcD+5n1-xRY$ELle zw|X*U>db3eU?k|-@=uJ@6>*?Si~(CW>fv^;nMkzY5+Inkgg{lLJiN=kxrNdI8hHtI zga#Ukyt9*N4P@DLVx6LJDo^xSlbva~xNDIGZ~b*MG3(u`8*Q@X?ga7QOGI+?L-omv zXG<2R>q_~zsi9dSEZ&pNN<&ZtM*>xaEk-MQWRPBKwN9Obj%~l8#kT6xKkS0M+v?Ms zPo^I2zcEC~#tfAfJ&%r#*fYP9A`(E{8Cu{r&;FV(FG(!dNlCAKiZ>TF9Lcg!lkX6& z)Y2>}>(6?Qzj$f|+d6$FD+Al=FP6%+7a8}Fbrz5!gEH5YnIRZYyHlb{^bnQB~fnsXE$N@8OCbS5&+7AAFbTyE%NSs{p zE38w&&}KUh*|GWe1XACZ%8b)AEn>@TSjJOJ7&7MdN7bebl~z1G1nP_w--Il61j}~e z7-&S+)^>|+>M_3G!wodKhvC~|WtiG<5E@5zhdh+>pxWS>@3{(sp3ZexZ@y zdS(gGH+1sSk`uLEYGtpWC=L?w;aE1OJ1#)A*qccPwJSJFDgz0(oRFi;{f9u3qy~Bn zD|ZFM7s;|y+O{Z3C?&Ot-Pz1$_>Y*s$)|!6{aMgtLqAz-sY4}Zl+zvK5IkxR)yCh@ zJjeGgf$GGe%QF*7&%eiROYnemvS2I@z&RI(Rb} zeQO}SSt>`p54kDDRg+uTy73ou1~pV*of^acX?l(ZXw0EBW+i+C|m zYZ-F_$%Gkd1s2E9LrR~AKkh!4?1o5C0_gAPCPN{30z(EdNIWP@d7-L0XG4Tl(aB$+ zP3ub2{NVYY1BK*=K~4f3&Oli0d>YVKXDlntynMi4jmz=p^a^4`rsJUDcfDEjnL^QcM(6$4oLJCRe6XRSc99dW^ zxA3#+Iq=DtGD5Cg{)ph>188dR`H z*M_Q0*PCMN>9r>*{7B5N`x)O|+;CAyGMc!KsG#MC|4P9pqcU!J6IR`GI1Ne@!S<3w zXLz#u2)ESByn&=~wu0hW&i=u8;2D{(f3X{MwIGlCwh2Y~~Y&Tu50`W@#lj zZ2d#F1UornN&;3}E5EF;~vnAG7?IYks@Mq0*G$3rg% z{SKF8x>1litl;))yRFJ&!Dx90&8L=^(4*6Ffg<3}t}9U_8@xM67pBHX50=KoA{5?OdJAs3^PL}c=TyJ0$v9BrLF^I5%$OYfdB-Ud zMI}JRra*HkOn4F+pv~_(z+KkUaXkyaHmCZ2!Pu4jfF?WE8#1Bwr)cRj=8Be-xv;E% zz?D0|n{oW!N&`|9E~zA=L6hulNxo1jBO;0tNZE1UdV*8a6 zAW>CKWL+PS3hHrsM%LIAP=h0(zUt|cMKnh>G_Zus2Wmtnock8bAdREe=kdkK(Jnl- zflMA6L`uj_Tl4+SYJEU^;-pSwuCi+JXB6PSEA4u{nw~NsFOWIxOCP0=Yp1UJQ!(i zu8|LHt}R8gy)>2nEPT3dat$vJxr&P$N?;wr`=RO<3-t{xOOn-hj1dyTfczki5yd&X zgq#uW31D-OoGK;!G#47}@<2;1*bCG^(`B@XSGE<>F1Fz&H;*^xF8DQJb5$p!ph7zW z0DWy7FGvS@eaHV7HiUt_XsAH~Qkni@_r){L^8*t%RkR64%W?fqQym&ine=1zX5>^x zytMI|^hXy7^_@@UCSwC1i}I92^Ee{!2Oxqbm1gTNXH;}D<(R~vwAPSRfI(3#TEEw~ z8%jSgVjZ14JuYii_~&RXp}}D6m$Dk0X?AFHiP`)r(%G9;`V;t(>v5QBFo@(XVA;3j9YN2Cl7tZFx7rrcjoov&&3$zRfod1S zqHa}eGTmUe|G(+g7!u}rH|Nf@u;k|EDm>4(UAAo$r{3la`X^ly#YmSVM@WOvI;C^) zWFOIb>HkD}c_BCNTSNObw_?iP{+oUZRf!+Jyh(&PXsP%^y_LNo^)|dh;rJga<@PTl z6z#{|)EVB@K}q6=TIQAEP6rheaS+y)kuJ)_EpQC+slSoxa%cab32)3acuYbbbXzryS5tz#YeC$jf6 z2EK*+ALb{mKZ=GfARwzBX#wQ`PjFNOTLD3eq>;lM2k*OlL8dd+V}yPz zve?UMlc!%*GGt*6b3)0YB2USNA-z~5o}<&+E-V|Sr1kMbdjgq1zNF4|LAW$XMr7&S0+b+HZmF)5f(*Jyg&i7AcpK~uIY@ykE$h6Q>9E8*#YxL>Yoc^@k0{)?AKx1M850@?fst*=lh$aRj zi#}8F#19{s`A3Oupx!hBWmQW>GWD>`cQqm7Lp*7o*rHi)fMyvx3H9YIo|1sG00H}( z>J%H{!c*g_z|Y22b~aNGd2xp#oeF3Xx-Nm%t=}1iiNmF)xs?F-92VZIZW;Z>t2Jc0 zXFy7NSRQ9Tt3U;tPB+=@zuTft{@1ts7j&p*yc~~X8XCYZCnGiAus^Ba<-p_OXFlTDFA6<$N~W zO2!zKkJsmpjvao}7D^gj)e~)NVKZi$Yfu2E?g{qXSXKnelNqRHq}sw#NA%1i0iqj{ zMcC$8j8f5e_dnv&%tU3EH#o>4u~+4|vLy#-<=RNL`$@(!#n_bB;h%sK5guPk_|eH5 z9M}}?<0b6#$)R~Tw&d<_(m*LoB`iKir&j!mKp97jJT)&Ocib|?f;7(I4%p5&J7U7g zRny{ML?DE&NqV&x-}3y*eN{_^M(R#XZBc>9nOhzbaHPYXeht<_3*J6 zrB#fT`fd#aO{!*6klw9~;Y57m&Sqy^Sjx7q&+!$c0JUz|SdPk)q<8>QPH3s?{xB%< z8jb2Siys2@R7Lnc64ov{PRtVp>Z;Qb?hYtWiK&X-JX)>)?v-Ca343tMD%DRzfJAOk zRPGuh*9Cn46TGkG^2^BzV&}+p8$midX&vnY`dU7)uFp7Jx@j52ufdlw(^6T7@z!+P zo_@DBhC=_}k)iXK;NVwr*!*=gBI=D+29LE)DRfw9#6!?pFn{k8S;DQgV#Q5j{ps63 zFy$kaM%F+uux3jU%E+-hY@80OG#k3r3VrkI(^wAqDxVzy`B1Js^2I83OI-s>9m^SU zpuf`em#pm2AAnZt3&I%!RH0i$Bb_!oa7lC|r%Ovl?;tV|;n3feEyVZlE|ug>6Ke&l z#@xQaV7#|ft33Pau`_l^xD{TC@%!t9)(YuqUo&;m5NT!vM1;dv6G<*hyzOMjDC;!b zPbahDY2SZ^aNW`HL&K)r0A&h_(x9g4Vtv!^*qx^M83Kkb)o zBR^9LAjuPeM0&x7WjIiokQo#WG#iyc!6?bna3BMu5HTIdiqZ`jJcI|eUexMv3F^6g zGZ=}@oBx37Ll?8ge#qq2nZtuSGq%nEUz!sAE`@l@`1oi2FRRAG#bT&B1Ie5(a}svx z1qy!t$b+~y`ann`1_<#RgNtY@*9S5Ux{4_FPT-VbfS6PgT{tJ62W53S>s}{x7Tq&H zDQ*ygI;3jW{5w&A|L;hOO#-n@ldL{^gC?+~RSqL*xY1O_prNu>PivvtKvz}v^A{ge z65v~eSQ1Ej$4OBP9fvHO6$C2Bjozww2ZD|D63>YQB(7f63GVq@oJgJlLg9=s-_h`n zUS3E|96G>}UK;lkp*s^;>zHf59T{@V!FUjL$9`FoB{M<6^$p3)6RD=M`41%)UGH01 z-O3W2py;LVG~XlD;gxB-os%9TN!_0XhC=xRkERqIG-TRGzEE0pnzmpQAErpKiL%$I zw~iNSD&%SKE&F<3i4xn`kCls4*%EO6YgUrz`QHMrJCJT|6)CqDvQd$OXq2&M!XF9P zULpx><(1k41J|j;2koRx5?nmdwMY^i-eS5L!ctQyEpCK08MJ`(u+r*41KP#8CD7j~ zf+s9l$KkXZVDS&iA1h^IW?81*z7X@FNn>U4h_}R_=iwVD5Enm*O~8rneln$ z)}Eu5AZ?U}wvdQ6{O3dmL48^eeZ<=Wsi2|j&al+VvT)`bQ^tNsa2m~xt>1ZJE*F~2enL*I2bZ(g8p}k4rSYHJgDhZ-<{c^nl z@~1Ivh%4o+N&iU5O|e4UN7Dq8@GrGEr4+P)u^);tjn^Mx>}oi%IQwc6f;xWIZCN>E(y!`D?0Z5Z>|3I$ncWf2>itBXqUsisjX4DnM8clR7zw%T_aHVOFPTN|>UNJlaklznYR(HaQyXIc^BJ+Y#uAx}`>z7*e5BP@z zEP=|_Sm+J-Jk*aOYE_MP>li^=v^x2JEEW86C^-N$Av8vE?hSq{Y-dXSjmFt(6X%4| zP$sRQu+n-J81?30#G+VUb__qJ0MgJb)(LghRFVW-1tz&;IkK26&U%aB%oxtSmwE6; z9F(Fg8w-}TvMY5j@g8VX1a&VCW^Gtt;!2}0r7SgoMaL&!ZQvSy6w*R?Y&01oH{Me+ zIrqgPl;RgL|L51J`87$UsO``&#|s5_`ExiZ6;?suu=qj@SLP0Sk|!-cO4hXLQx#D& z_nv}TVsSpkoQN7LsmIMf1X8&L061{~ z`^DlDD?SOoEaBy)bs@646>q#<7m4kM`T7xHSM)-L6Yifc-dT4jptM;pJ`aI(A*K~3 zEAf4)pAN;lf!Tev7VqcD5%LGV?r+Lc@W7(Jqbi(gF`d^o*qcb4Vrr4>TjfGkOiN=C zbco`e6pAy3xj`v-@rI;H-^Si`tOavQOGM+r2w53;bJ3!5Jt4fdmR`#<^<+#k($&$a z$#$YR+JjLlqQ25#k?Gv3FH` zktwKs9!(IuiwNR%tuaEc`Zg^h;GfX#ZTF`OtdxNfNW3l7T|=yWX2MPR+;f=$iEo|98FgZ2KL8h`P5? zcIux~(QlxnH2AnZ7mOneUi`I!C6K0Ui`=|Kw>=XMIk(H7v769OgcV3hF+@vJT19-w zm#e*z`ij&pHAhCrZ6w_;W0I7ujJ4BZ>$w`!0?ldq(5yz%*=xH1Hvd7?qpn?=TdLxj z;J88+A41hFvoBDVr^eh;!GO77@P;3kc2+RN{&l8BUbYK3`y(nb+IC2UKaKNCk#1cM z0lbI@u~0S_)SM_b(RoYrva7T9_ZNzil}ESyG8Wqgc3GQBhgI8Lp~LdwwE zNL4nEvUgjmq*r~Lb{3|1TwmEL7!Vbv&@U+&%L!()1db>)k5QG7QUXPX>@&RtgS9xK`l2cz zAK%FAHf_TwD$$|T@g1Dx!NfSy(o7uaH#{u(bGWXQ5;>`zu}3vRipR-r<(VDzBbFrV zcgX~GD}SSpKj+PL$z7d%aUn(1lu`W4#rk0(7Kv`L+Ta459+ViVdVP*VRRVTUVyUfU zBb@xge>@wlh7yS8r62)9YC}IppU?<;W}X)6U@mB_mng^E^EY?MOtkkC3B&a zU4L27dQ5cvIx&nq=gOfLDP}KK^yis|79AkytyKswV4?x&o_h2I{Ut5>Cz6(rRY}vP zes%9@x$3Z`5x4=At{yh8E%f)Sr`&xj%meN8N6ZGlVP{UirJB1GA*?X*jd5qly?xL| zjoPk>n6LAE=4+m9&zYI;QNt6aTIVjB?2=1#d+$a>z(JMs4(y~)kWjZ(&tUEK!uDc2 zbAsqnN8>Wf?2asGzdx3(Z@2FvoG<9}Z4sNS@IiUsPz}YCwdr*r+nzU@83NzlTKAi@ zKZE{6Y|7Uj`+TO)57qfO6Hyp)D3i4Pkr2oGZcu1#pyA~_>h903NSe`lex>kj)P4V> z)2bB_{YmWf#Yg8mqn8JzcSHB>u&U|aEc&%Z>2GWoW3abKj8>5rI7al+Z;Q$kK1w)soLGxBW zD0WiYO@_!QtbEo_A<5p519q*RB-Ef=@3XX|P5~Zqr~4hD^+^b1B(q~R;oG4U+g8N7 zzwMNnUyWs-)J~IkcZBWBnzhwARWnrmYd#sY4+P;fps7j%vgedq$v?gizWEY7qZ3wr>zzN2ex)w}akp)ErwBg&Y^Wq_{oYw>GB zdB-G%e=#g){jJriuS}ZJxl#83AXxQq)_d_V3zlIC2@;$yNNnZe=rPco5_!=aMJA}W zzHJ(+_4;O>l7xV!dCM^F{sTFck!&f4;BdF2_o>in;03nI7rH8~R@H-uqdx0+*^g4R zccvpk5ez~`SmR;2{_dD`X zOU;rKJ(}i?rJ&v~{~vBe{+bl1jC0MV$6rlV4VWtDD@wTobz2GqcXv39aI>R)^0K7! zH+hhDJvtymMrnrK(|fyyy>EI5o$%SJcSh0k?~-9uk_^c?Uofo*lrMvUbkKQ|Dug_R(^sHN;TLZDl3e3t&Z=t_R zu3b^WDX`U9gq46Nlgu;o`%mQVN!%Xsp98(gU1vIcQZ;S8_Fp%pqE04#>0AH zAV|D7u%rX(-E&Osw02r-{H^g8H`=Ih!;{UA(D^}n`u^5W*hnQjCivUr$l9fOZ|CcY z@B?dZz|QmQ;Ne@wO2FmmEBkw0z7Q##`aQ_=@ZjLkyP_tJ`Z@=9i z9k#Cirgs(Z&j!pXK0^xho}cJDZUaZUrXZK!u64vd0uvj z+zh!lGJWCWnGPIs_YHnQcMcd@@tu5}hNUOz%WWiGk|DJR9NoH&TE1W3R)U;Ibwk{4 z5>~Id4ZW4D6e$bhIb;yLgjR$|J01XYOHg~R^3z94%3Ti9KO>m*-hZ-rm2*MOHc_r3 z=EiDY4s$dK07$I-6~|Cw#I%_Y!}Ho{MjMBS{EPTqOiS4&k)3Q`p=Yp;Kf(H0aXt7;s*B#;u)V}xW$MJUMoUhsG~s!GRUWNmG!pXXiL`Q6>4 z`B|X{+8L{4loM7oiR9e@XVrwS4-EvL)1PTaG$jNf3G_8%!SCmr@^XEjHJ#77a-U*HwaTvc4oDtJ_#T*!i7f%50a z^5f-FHJ;X%kH$BY%<&53nQL=VL@?(6u-_b87L;YFbK0zVm8y0)B9Z)>ZK0C7&Z+xf@>qT(=_5FC5gJ(J}mYl8}LT1&v%HdxLju^+qT7oj9WN&HoD zdD7ojbl&4B;XZf}I6danj=}&zePR3V(A#)*!IqJ+}V(S(ZZJ{h`nd>#7`UO^F zGJ`SC>=u#Za$+@BcLQ!T^`4)dV)>}wKjtW%&dQL}yK`WZ-vG{sNS$H?sFz_j%99S$ zWrq&G9c-p2E-%Ye3u7Qfzxf2{SJ52_ zExM$RK1#PnGRqYaNHVk}+krF}qgjhcrJ_CH^9ZDAQJr|5rP}DqeH=fki&Da~AqP^$ zSch;$@}iUC(Wh-gq&qc`CHZKVvCOMI*5~)hIodbR3UFroa|ld=zNMPhDPdu34v zlBp=S4%WWDU2~nTHN9{7e);VkA!75FLw$ilr!SGHXFGEcETn>|_2U+~wbh&A^+|W~ z<;zjNzUXy9A6B)OUE8yb>z4P^{y%RotD|;u`%|#bo=zXxVZv9N!agc+Ft^QH;cSd& z>!*IT-h8DI?5)fKZ(P_Z&nP>5JFU(qOQq9D}eJ@&OEwu7!>(KY&OGVN4 z=@s_*suHAk!nOh3*ypfWY=J%Cy15&6Aao)1zHmhTJDB{X&iLu1{rqLxWKiU^!fO(t z{^?Ba{vY`Chx?-Uv=`g!BV<$T z#o6ThW@9m1=mo% zKxLOPG`CkYnY^?c2+h^%x4Fi;n>iwct`=Gf~(I>GiKlw>~oT zeu(Q+L!n?sWzfUQ(R~bsIn3H@H$l%8(|+$VQ1nV++MZ4H!sfOpmdsJjFGd%w#n{-m z?B6c)ABl^aJms%#DiiD!v(h(kad*t)2KxHq3NhD-n^w{~e3&`p)&@Ws3sr$r4U;!d zX|xs`Mmf7AdU2OQ^=&DozbFBJ7VnuDIi=D{d9w%T*#l=-~t; zj1i?&WGWx#t`0#!6e;>vs{iAX|ny$v00 z=NOLGR1hTVR*LWbh80h4 zF+%;Azo_gqWytfX?qp6s?6wJ`_`uLb>mU#)j8>Zoda^~2_LQp3XhfVQ)s#lx#sP9- zT=wurJN)a#V&ZqBR^KQsbB$CmYJ%uq8&nYyx6@MnypNQNp6|6@P|t~!&}~$YC*HwF zpCh-x-x!7?Pn9#pL8!6L-15&d_Y`eppr+JDAMN0w@s)Fq0q671L1mc|Qadpkwd_(; zB|N8jwY?i?8fkcNR~kJuJf_Rs zVmUe00G?c<3C^={N@=-mIxEd)C==uRDkrPD6acs670%zWiu0Uh`-Kk@y9kN{l=xO- zmVseO`F`{P1>bl)YI@9y~e@JO#wapvcd z?V#=Q)l-bV{!6jWC|%(~ipLtuyLIO~>H>dQM}$7C14E+eHP`Y`Fi?hmcMXpX3vi6YE9q7qv_K~z$Mi3elxRoq_;JYdqga9vFC{1An35! zcda-PTvOjvjj=xcmRjd8;2kukbobl;7CQ^Wcd7C<-F>*rci_i~tTQ>~OB9#yWrUE= z(|Ezu53GR`aPJHJl9j8go51tWXC%i8y(w`mD&Q9xFXqn=wJx-f%TU-^#)YlV z@PM8#Od#`9QYXc<-vwCU^e@F$T&6;z&^F1_ew^xdmeDWi2FU$Oy0PEY`D&0~yRJ~j zCD=&x?iuYI8gbnV7=Jpn)w^#j6bq_Nb%!&JfmY6t$QqS|nj zl8eBD%Ak-!chI@2F!A2Cw|^;i^bGQ~CexyYYFdei2-0?ns##AFC9Np2WCUbG;hqey z$Yv+0oAHzAeMV~PpJABLj`HA%2y!u)aG8R8Z}SEwSfCE~eGiIW|T z7p!F6Iq{9)FfQ~u{4PAI=(X)SYbUZ^W(`I27KvNJbf|X!wiK$vTdW`%L$vY+)7+=Z z!FuJ1$s<_<7Wt}ZNjfwNr?2QZl0fYPE*QQMgnRf8GIEM!dbb?AN_8Rwjpo&ChiAMZ zcW%tNB}g|7Io}FT~wC zPrUC=1Us@>zDuKW^YU8i-!AE46E6hj=^gfq%>{?uWALX`XsyYV@H@kim%_0jr473b zK@NhAecv>ni|<&mQtbF5@&7i>6eLIt&tWyHHtS;Rle0Amo0fSAh|-`OPM}MnmjQ^6 z|I8R!$~mV8>1t%5(EdYu{oS4gw*v!vXBCfWgN@5X3yaHs(=w!twho!@)6c!CA|J`|ma za3QK;FUdp0ONgt0^8uEoGcg}3B`=X&;M%2FLBwAow$YSgJA_hCj2c<@iE4aQXDtNE z?o`|qGA!psJc^4b!|F)q6@Puq;-+ThUX-~1#F&m<%aZQnx!qJyN$I8@O8J{e0b-9) zwpyLLC~Zyg`ZVIavE5ZLDfD{2M!L(obv^Be@!HBZz=0Z$1zS1U% z_)$>YJ+JR#zn;tau4_GR^iJCLJ-V!2SHN79yR-O2F0p-JnUGMuo(;xCFr=p50`r}~ zp$WyNkxHD;`r%!-OqpG%;{Y`bC2ld2S5^el?a zayqSG==AkT!D;Y4iTkiBLJoZB~lg7weTIJILd;tC7>&6k=I}ZB7u|T3h zcnXEmOR-^k@_U~GuVI+aAw*7W{BX?!mHcs@{*0^8mjdFwfO>a^e>&Z;`jWwk4%{|J zehz&(@*s@E5Gd79u_7z;Sno-0&K0^WN#k8xsBsR+clTP$=kxfq-tSuRv%K(u24Z_M zen`adL7auQrk$ELkIBGq{ZilK?JhTimZw|Q#I&c zyA*4gRPR=8dq-j_#j^fx?JZE}>m{oNmyc8)Zzs+W1d1yT4SWjWoYprq{v=%W#)_=~ z+pj=hcaU^FCZ#fKxKNTMnhmsrVaf9Qqwd^%0`AC+t45~e&H*k@PqZtvK z0UfmR3521pJpIc#io&PnEg>qRsWB>*c+vC7dcopGa&|WsQc4p<>Pv9uis9XUTBw$o z3`1r0_IXm?lVw9DMlr8RhGaUq_Lh)396X_c5y!1tYp( zP7jx`qRWS?W;UDe75#=iL5i+vzt*JUEQq-xRi?g-{h*u;7X}y(3C>!2(yf(rg9WJCJ3A;kRMTZiR@-}I= z4vzB)Ig|lm)F3CMeXUQb(jP)N5nLVN7~qS!v_-{jX_pD?s_-qJs%4)^y{ZHu=C<6P zG>zbN8X|*b8ZO5DYN6Z|L=!1URR^sk2^8lJ=WHq!(^F6<7%ER|o0}o3Pj{TWYUf91 zYm^d?mXoMKQY!9kxey_L3{)KOqBdXz27()VEmmv)0wu=2RS|{}_^{ZcCt%|8*^X0g z%~Nysu&xo0(6+^kw~3F{b#5{R6ngib?LYk`rK07w9F)R3TOLKud%lLOTnx4sj?JK` zix6@4yLipq@INag!Fs#6UG&I(nl_Fz8*r=R?v9Y#VQ6f@dKGf7(s-Ktn zmV9EHqHFlQ*o*H}z^;(M{@>~CtCxrBovzm_?*NZ!FY&VM4wffP=zyu!0N$C0vu!y0+wg0_ zcFP}N!eMK{FWRc_?l$a>_|H*+Uo238Mv^!&y%yhY$h3(Y!H+2n9l@(Kb*t>4f0Eu! zwNb4+j*k9Sa+!GJ)GisVGQG;t6AC8YXRxjF?g|oHIMoq z>meLCi19POdRToji71CD%St{Ql_`HJxy4&CEO8bx$e=-wIkMWOx?38Mv`>gmB{sfj zicgdm2hDLjr{*zDEBQSKS*TVI`sJZOTfj;>eEhaT>YbNGtKzo@tcX;jQj6%L+ra#LP_Aur%nSF9u8`o7vgnFT z$5XPXBCuXEpa9f1`yBTBw-DKt&&*PmDozNI*h>ZilHbnCs&F~`B#p$O0O>iKBZzqn z=m%TGKfs4V{ErG}2&aTgym7iOC@Ne9O#o*NjNc44O^%1$+ih0UK0^NVN=R(@;v_T>S{3xNFF#w9o))rbp7q+D z;I1qNK00CLJV2M!j#eyV!nnBEjpOt0`xJb|JSrZsy4z~Yt zaiy%MxiQFnrAEnrB}eZWDUP84MW|V;k*WXu)w^n;)q9sf#`Sq|FKe%T)m+3{c%^oQ^cZi7x=2#GE4gfI zYk{k`-2tPln{ag~X%DTzhosNv@!I25>E#^zE+HLpBfC^bcMGp81Ir6l-6}he3e7hK zx0^mbs+MmaGF{(Fl?JB&jGzmw zsc|$uU*bFebJs%t#Aof(}m z|Ad|}Ay49f5>}_Ajy_y^f&JMebipx-8M7XC~o)zpo|=6+bPw{ z``LWrrQb}5`ZfE^*Ifel$VPa!o2)h+RHT8K0WXrQke)^RC%aP{A0CEQswEDV ziLTR_e9~?iU4&C%MFq)dyZmm%xF#g3#JajY^6$r}&h7oJEnynwNJ!k$WVw=I+VGY(_t^iItyPvHz8YXO3GxSF_I&z_nKgO~vsXL7Dk$YX+$a{}%I` z&v9k{x_CIAf7G$t_T_Z!eWrktiF_ov*RQWKvSd@ zIJXeBkn51GH;Q-TVjGh%o%s_le$is=_@E6A!HC64dtLIN{-h5xZt9jtdgxFIDn%U* z!ioXVM?j9mV-uV%YgCiO*@l`ZmLt2#c)C5((L2L6XM(iL(P;G|%q^8Qn;(O5`L2uD!mwD4 zB?g-hO+U}y%PY7Dj}y5UEk@S(P=yQ4j*1=YYY4B}OPb_ZjYt+>aFzxQn*(M<%w4kn zqp}3wX>@(QLH0aY4iOJok>H3CBf~AMu(>-Ohzzl|9ZMTWIi;`d;AqYDn6CYS2q|oQ z&)3=&jXUS7<45aiXu;JwI;moQciK3ZtaCc6&&RE^}b!`+cbXRcwo>CDB$3lZI|a%Bpq86mKc?X8F~85#pXZm z?F0FDXgYeRM!F$-=@+!cC8%-mUTx>R@4=1ywk6JI8^dfo8`g7Uo*X`>c?Z)?=}hi?!|lE#IwpILQ(b5GB17Q5eEPy&6g8$`3H zKg;AiKk>@B%wx0e_AUFntdpLN{~xNpIw-0){Fjz)knUQ#8zdHlC4{BBOFE^OM!J?x zfd%RA?vyS;NJ|Lzf;or@d9Kh=4>)m$-t=?^ z61WC$QzQirK!(ID#OaoVFWj7_p8o};`(FE?Xarqia=-f}>hj6E+WeIy@9r^UvCz-x zI(KhVuOi#{US>y?$#TO-%H0rjE%{z4av`diZK9ECL%8`{R;5dpc1Gv-vEF5RzcMy{ zHF(ATYaRm|QD|PNuCA_cbfv9weE!Tg$Du;{mh^jTJtRN)d&zWwz8-Tj_#>2aE+10N z{kFje*z_b{c>;WsVp~Qh9~0br zPG8eFJL#Jk4Yc9B24{Cu9xl|tKns90%4@_6rANzLBdb6)^LTS2GmNhk>m5vbYA4Z-O&fd%2t&u5yu=y zU2>j>exv0@tA~z0YTw{9&p1Y@CAC1rL%WEKG#-&og&stk2(xs*P_`acot@P+^t82F zsG6Pf7N0g)#|vOMK%)_F*pawV_aE?MXnvi0S*cFz#*3cmo-|;&6U~=XV|~$(Gmijb z#PlYHt6_%5YcwP3NQ{CODg0{OP3f~x@08MrI!~v^J|`6Ha5hkcu9#!8xGO;pK4O}H za}c}yB>-xng&SQ&)Jorfvl0Uy|R5)3G zxQi_R3(S>L8FPPD7&14vZEAotPOo`B(o~;oZb+;2bd-*MoCe~G`hTKzsM|T4HHqI7 zEcz9&-3|TOzPIM=kBvEyPH>xlIgn)h$o==SPcm6g>L*$IS(ow3y8?+H_cUvIkYv2q z{U*QZbI;Lt58QgUA9ir#q6<7|PS#pa<^(D@W}ZAv|1uBd`=D}5A8G|c7|(v%(RzS0 zHQyRY+-v3a{5X`w>zifybJExvtPw3 zl?L(MlovaX*D?^lcQXBLbah3fD|TqLExWm^oaf#h);=lb`e-%tg7?jY)(3n0`Dok2 zR{O`_+p(+9MAN(fc;Ed|he%oA?WEy136LYk zHR0{Q%by;vGTVMH)~)qgc#sYWK8pCn^ZKRJq+D$Ln=!a1HuW2%Dzdr1x`+HxSbzVD zozzz|{QMb;M9;4t)Q{19P}kRAe(~(4&cl5W^zTJp-S6nb^yt`^M97!dU#NlWKO*(= z-EM%zJ@?9ChQt%O^(tOlS2-1zv~+S=4HSnqGwWofXC+>;n!epC7(0C8Co2SFBs1@G z{N)PZM&=Ekhw81)8;UwQ@loz(cSpXz8afCW--@5oFFVid<@%%;5zk) zMgN_JjW?~L^7V9)8YGl&By_Au+u8uHR8d0ZRLW(0IsB4c<}SC=wVIFu5lz^yo;0K_qk=pNsc?WCuMks*8Q5GZ^6#z)?Iqitth zxYQU^OBi`3c|~kcu$O-(=aDL6g>*^ST+veIOaZrleH<>rhRl?pDE+5E1O=G0wxeY2 z6x}pygVO9!{Y;Bm3PRVtb*!A@z>QWPSPCoQl=Df`ON2&O<-YCr=qX`V)yz};&AR9f z(qHtzp=gfORaI4Rko;DITluBhw8`q7ou!64;(U0`msLG&z3p21(a+WIKl@;JGMzAR zHFrVXfrkksfPL(uAMJF+r-#E!9CP#~%C8DP=rUW(;8NdqMKdoJ*6R&2Beh%7#G%W! z{iR%47QzG{bKMW@C8SHG+0?=_T#yAGI{ANri!|5q-RVORB6AS!=+U}wVw5rMVHzUj zX&%ATin>+ORm&kk%SZ{cU=J^)o8f)gWBuu|vx~ZV?ZjjTuj+B{r1l7#vK!&`2JOTv z%?9HMC^keIYvE`#KE$1?!zsyp1Bny&i0NlFYdG!KPM|9zc6c|iii+{(n02-<8DFZV z${|SpG}ntqJPX^9>I#DQ-Dj0lCR-}C=ZiNS$u(=ZS?(j&GUaA!)ie5-_)R=rPw~h` zNM+>nh{tfNhpI)6H_x_<3na~IJKxphx_J>euM7dY&c`)1BPDSYvZU1$IC<_0=dXPi5g89?ZH z6TgAoju_v3TM>CR#S%b$IvXQH9GIu}2ns@%UjsY_%s!VC!(rukG1wtfX!fsC)5~ukVj) z?@edlj(d`!0{7XzdilF-J*fZ*z2IG`?){#(?hahvgUe|TNBRQn1XGDFKbgg5{*}i2 zyRZ4O zbPNOU#q4D_$TOnj9gqL~$jgk8+4QmNywkg1+%JQ1kbKtd^F!ae*}r0SPYLBW>*97} z&g#D=cmn^zH-;z4W34*Tfl#;aB$*x)nZ4g0<=_9yO7mTCedXur{!l)YP?h)kyRIJ6 zx+h4}V-QCD$KyL*-44gUKRD9!)>M8ANjE?3-X*-hAg%{Du1y{DKvS z+YsE#4h_#UDM-|6@0ELADZQ}|?!QZ`cl~G&_ernF|8PTg$6Rj~+c1*}JJJe+R>B_# z3L&3aU$x}@&hj5354T)NO^LYS`*?21yHK-rXnW6ncb(_1NpQsBtQqBB%&p%>mp}6} zOE;%@UIrm>)I<3F%S=-JY0+EY)Z;&YzBa${*(RFi^Y)!r+Mhf;6vh8;&Lw~HFcM5C ze+Z^<4Z6jBx);ySe3|XL8qMsDTpg4CB(Z1l^2=fKL3E$5Iq*^7t>-Xu;jp_1M60#> zo(4v&pgBzzsHJj<#6(-V!mmJ{Xy2Jw;`6p&6hpV~XBZ0a_z5LD*0I+MpK zXDxq@c04Y`hvMa{W>I#Puf5~>Ln5GssO>hzI6O^cY>c|)TM z4KR#toomNk>hspxAdv{kj*ET`O0%UL1zTW)IT*!xlF&EH$f!hu(QM%M7!1@`!}T*1 z*m8s^`v$UgtMZfy+JqbW>t(Q7j=(ExgN(Hn6ZBa(Q51T%YX;>{hjLy|uhL-9pR@1s z8^SRI9TP;_l_>S%r(aL}M~4LsS!IYm(`!hmU^gHeEbH*Fl~*US$+#e~i||UP-a1b* z>9)%0Rwc_5M-?$>`ZPjZnPW~WLo&T9%svyGN|sT6Sj0hu5gP(xB}-f=;4R=lK=%il zJVk3DfyDPV73l(Z(3VuPp9_V6qF6krzfhBgQYfA4SC~_gcTP`m%;zFr959O4uMTNg zH+XWNetpx-R{6+e1GO+%x`$Rx>(CWV6lJJ$*2Yny!dQ6^M-_rd1_zsCZq{cdtx4%0 z%QTQ1OJ@F}wlgSN#|JIjh1HIXrMMC2opy-|ERP2%-C~?2S4DJ}e6{Jz4=n z#(Q%?u{bIB;uz_RLMq8NC&Fk#iL9|!yp$q(qP^pwbxXhsMJcKMmzeq88hMQD{teML zsb)ic%yKf`loFb(*=?OPb6bEC59;?9!b_^5%Q>P3BYF_|;wHE@njDd~A|(ZXTU4s8 z?F50<@S8RldIAyD!cD3`QWuS6@D5&mLw*DxrMned5hpE~xzIBE;y2u;Oe;DaClyZ6 zI|B`qwLSe|shll*7NWVby6;Z8#D05IW)@7eE3!R~^+DGtzh1}4TU1y7S5MsoZ<<*k zdtV?mc?`sTTg3Ociu=GFa;0&RzwME;6V=`q{P#y)C~exISoi=!iI5y-b&H^y%A#QN z`KY#HjgU%Q+`d9$6M&$z1$PzoFam!eQ-!m?wZ_32S<`2iNC^McNiG`DxyvygTXxy`T zg)(H4jM352FxG?S3%#fPXjP!7jDumwmpat=N3Z;DbwW}eCG*-ItqkaFI7j zzPJ7%_@vW0W??U~1cQWoP4EK4cNc@fE!jqdFAOVZ^4E*`Hi5C&y5gxCNG|a-^&nWc zp+?{8-ki4U4TlnW-8(nd+9u|5<*PTyUg_Y|)wzVu+RcZt>Q(*n$G;~j#+|KLr#hCo zQ7%Jrn3Irdi%*b9>K+}R+f`d>=$nHZMOm4haO)pXW9c6gpqBpj^WE?eblw0tm(+B-f-Bi{0{+$YOQTUV;BDR*% z5l3AdyrGecdoB`aB{<^FD_P=xS?V^Iiwch|%~%jO(|Lb+8&8&2^B>T7xO$_J#`nNc z^?X-GW~uB(;H<}DV4&cUnHSfUu6J|d?*Ch@W zfCkumc0~S%uN>V|hJM25S_QTQZSwWoIhL^_PO01+mPfZkKg^698fG2KWfk`pT6zYi ze_%+UrF}H_<}+HZ%h5O_soO`Ig(!0)g50}) zP|7{N!NiZm!KWdIr%MZTYo7}->x3cwq(#hfW>bt}{Cri(WRVOyR5h0?L*tT&t9HA? zgrpv)<(5h=mV=sI`gVWve?&g+FFpg4kU&Vv?4?v}ITcqMg>6;qiCfRF=z#B@xdFc; zPU%Ow{|>N+zu8U;_+@mCnQWsq`%X=hc;8QPu~o@{xp&6+>&y~|I;DKUp>k>kiDAGx zz@KO%{n^{+ZU{7x6tiK`kzPq$M2u6*BRp6$YrCxfq$k#21eLs2(Z zYaEr7L8pT$lH7UYt4+zW64pGY2eKd#oY7hqslEsU~ZIwNQNUgbV#a+KW~S(;kS>GBpyb zLYNoB4jUanph>4Rz-?n-886Eo)0ENb?68hz$Hg)wj1XpcN`7S9wVE?MEi(xy(Qs5t zITTnayP;`{31!C@P_#k%cDkQmafdyO$x`B+)>no_U*lPZs3GSRl3#}P6$N68`Pp+( z;S&EF`Yy5@6r=syR5quit(2wDrdA!8);q5KV(OXLa^DFPlGB*h#Q9-Yo1T{@!EL2D zLKaIc86(dr@)X>+hlr5nR}c1bnpAT5h`G6=`S4X-*Zd=FgMT+WRLqcb zL0oN*iKE5ZH9f3uLCO|$oDIbI-GBlun?Vm%9c1a`wnf13!1i0yX9%LA(GkCHD=6*v zg_|T*u1&QE8HMSw>-MuFBKiuq)emU(a(Fh^K<=ZnYr14;zt(oYufA=T5|{PO|#3M8za^SQyzpBZIYkjqdr%` z;rz1fLRLN;?)dKp@cSV~_KubU%1P5(42GFs*))|p&qr}?ST57jBQ-4h@T;mMT>w`Y zDSetxyvqF~gHRjtBFNS>KtLJD~gcC_jTBO-yDTmqsMY@ zFIshs=nizLk5Xw(9xQ@iy$gRmr-f|!Na6);dHN0i;cB?ibza^zv^)kD+)tk#Hce`& z?=hDXvUk0ei|;}SPB<^&x4`p)D+|p5pL@$H-e+y8dv!Eh z&@-dnrUQRPSscx`XQZbG0Wa~gT=GN8fR z`+9ET9)@qNNEBXDOK8;SoV))o`v4%S4Dj!vVObQcQQKAFD>Ts~4Ndy`I8tp|G)HnVu6h#q*k%Aatb2XkiO@`{a#uEL1|NNH3 zU5uwctTQ|YcVbiGtW=OQewdd1JrO4YKFWv;oW2;q3=fp6zf=iLv&Q5H!$@B|O zTvq=BsrlYd!ujKp{AK7(LBle!QHu^dRvTJfH>7iw+FD`Gl3?~`U9vO_etDhcuk3u^ zbIOjhl5pr*vOTyPAt=1ws=UsUI&iaj^@2RIOpqf~GeVLvipe`)8>hiL8R zU*eru9krute~!P=>dTz=rhF!4VLA`y!TecH^H40|KK_INGHOpMp1lgy?4aQ#o`|Em zG`VJJrYR|}Sg|C{NqHKw;sTo$%vKPji)6vOwll>R z$;5*xhh1F*Nw|`3I2rc(J*21zqhqk_U(W~`why0YnUIqBH&~PgZFf*WdLwRoaQjkL z$WrotZh}A}+Y?IYn%W&8&h0XOr;*wiV2RDfJkO5m+_GX}q~aD6l&%myquNGZwD^!v z)D1+-Cd?_94x9fbDTs%Xs3w~`*nHcV^W~iJOi+Uj5`+psAJFK^(_EB~6@3FXb=7M3 zlJYVSKV9SR>H3JJ+f|>3^EpQ;eqdqgwkdY7+5X@=dIxp)efgfzq*Auf zt%=&~l73zN7XF@pybm^SYY>H*IWR6BXHdxt4Xg@VMhaDoBYca=Uas%Rz~N0NGA9yN z5JSuk`59K!8uld<+i|2_x#}R8We&{1t1Zm`k)cHZFcBy&eYBRVm1=PGP5%I6R_U;5 z2X~m=WQ-NJ^fn2dMQz~Y^4R;xPR; z)UU957tkM_KnH^|__1>MCFILRV4>4~7O9_pmQgEL8W6|CFl6+y?4b2vR7RgOIN7TT zf((dW`PgoR;pdXI5HygN_QK2vWuWGfsx;};ZsdpBbPO!K3u`jDtcnLt8y#ASPRnq5 z!hZ+szwp-2I9iBI*KLCSy2I#`ag;ZeDL5QXF5Ps7&-v$M8_Mo55aDiQBTA8jA&^*E zoOzXb#m}_9z8;I28SZZZR}8R+ILqmL_?nx8KZKYh5W$o{jT^n>{cZh(0#0p#!4%*t z51YC?zWoRdCFb$BiKE0=!yjqAyJDN<4W)`j)(QxF@ibUCl0Dvbs!h+8b>@|Az3+A7 zG;q}uk^Ru09UCTxSvp;jf#5&*A`iyW` zOCvs+;Zfd)bK+>jC1sV_BPv-&*~)fTrub%>m?094I@M%>PbcUKg?4_FX#$dA#V^nF zGvBKF(qptruV^a&D6qkb$v>>AX+++VeKNbE&q*QGL*o5Lt9{MY+TA{3De1t5z3ed3LcG!Tz-*csY9c8L(MVe5SqXSzI^fkO83{`yvYeY+C2yR9EROcfz;Y!ZvFsJdJy5nqbi-%?v( z<-sCOQyi;SIlf~jrN=qOK?E`brdP!UF<#RopQ%_1uxLXZzaC#oBzsJD4hv1J@5}6| zu}3WVrtjJaH&JSWU;t$|pdCT20$LJA3LW+g?AyTiQRR3by!HJYVA2|o9<2W%*~ozEzsA&g z`G1FnehYPZ&-F|lpPvW|+NRe4Obz6&4Py8#s1}zhG$Wp~Vwo%ah-!Q6J(@+nlW{<9 z__6xZx}7?1Ad87vm)c4|1a%MYbjDxo0Lc}c-|i1Hdb3>CSY75|?<`_%_7$v&_=-gz>^l?yZapaKYoyCJdsekdFHo}=+rpI*~|7DlAO5^9W@ zw<2hue#+@MgaM-Pw}FIX^d%#u*%0#;M>FQ#P%8uY9tMdYi1H!7yxfV??6htZA!LDv zDFC~|iqdsDGj-<=tOqzTatvus-MN2RNlo*Rs0eM~H%wX?J;P7Lr8}e>3ri%nNHEkQQ{vz7PX2;>^)lzVUbii@O`rS0;U2bMQP^45g7E0n1VE3T3*g2 zwalNAh?an7X_7#hCURhS)TAFDqdC3b-IfS4g*ti{DjV&DsfP@8f67OPSWohgbD;Sp zr0!DuOZd)`9Aa$Lnl3N*R$YJ;@H>DTKMNl<{d6}s&oWOq!iV32&Jc=@&XqE_6K1(4 z8W>@W6|d^?O__siCH5f3*00#0hImhxK=^Cz!P!+=Z`L%Rb#WK|R>-HEpBmZfWq+>w zT>)zM2;QLn`PIMH{!Z5p0%cqzEun%re4pPQYqbPAyc%{%B54Dag-eNek{rv^ZQh1vPm@={=cJQ$Wg+9|5cqk%R)PK;iHu;*pQxie%K&c9eu~R zKMTUyu-tvB?}Bv6QK_u9VVHM=jfPB0N=lxf7|*(w&AN1Q!ahpY$em~7;GWXypilW9 zde_F=JH6Ez&gRXtlkPxSL1ssU&Wyw4PBN;U$yW9FA=#W-E`3tP5ETB>5ydhlZgv*wp_T&o12)e% zXRdYo<~-y>rJWyxgGi&*tYVHGft-LTqf7xXNQW7VsNGJtKOmZ)meQm(` zt3eLFoMHPgPSNatyFaMuo9BP=?5CZ+13GKqcc?vzQpd*Hz3B2;0Ae@ljrS4NQ_F} zo4tPhBtG04$$WIQj&hMJCzFL~TuaRI@%&Ow=GIoptEsW(Ab;UTTr$dZAxxj06_V2d z=TB(E7mK}m-4Sm&wpWo!*FW}aH;w~2N^)&WHDycHu6nFlWvL*bot>~JD*L6ql1VoJ zv#ESGi$xRjSz`o3;|7DLTl%auM7sa2ytN}ziVre$J#Cgl2I!#FrptIR#LspW5liP% zgU+^&7)D_0^F4)VRK&LhfJdwth{Y z-fY0hef%C-Pc*wIEx?##;PhR>N0&&E1FreXP0BBp$>Pw*fIgyt5KIkS2xZsTBjHS3 zX%{OcF_%5z|A{}4Mv`EBDAd$SA(43$|4WY|Wv)<5CaC$Pf#jB5 zjSblqiW+PqC#s=#7H7M_U3LA7EjH`OM-!aN#P|A_j!7gJe^~3yQ1b#*(D{oO!bgJ) zi+mdghnNMj>&Bu@b%;Zo(Xgfx&s%=Q(d9uUrT7NovRPirpFNDq;%qR=O`ar?Wh5+9Wb*n?ZwC22m zh>BBbcbLFQ1d;q?C7mjU%(q7gWEG&hKQoC+P@vM^TJY+7$g)(*3ea8E7`YE5WsqTW zwdX}zL8#3Rh;GtP`=Xlo6?BNiSu?P8jU=lZ#5@}}s@2REix!xKbSSRSJ?$CWh*F_3 z-}tG}9{fXIEQ^m6C`-H?q@}wB8{k=fT(9yVfAK5-Z5TcLF+XHZU%RFKPAH*6LC)yJ zQG>P#Ke>_^QbVGgBUd1@WxN%Qk9O%G7uSqSQ->H5Azi5ea*Nl<7UTH zB0516eAnGaf&6syBWfC&7wGJ;DilS-_*S_p9nh+J&A6fg>#_` zHHBAnmyh%soScbdh3W?&Ck=ZHwdB)!U?<5F@3WQ|Wu>?rM);8K#b%@Vkrm$_#f^dk zppqaTL3~4SaGcOX2oi7h0Tu(XhP)h8j=e%%4Ci98N^eOXZreJ8^*I3PaI3se*k%M4 zlAaLpulhB7=!fi*fkrB5zkSp8ZY(s?Pf!TjGE`b!(Gzu6=t}`W3LYU-kg-%|GJpIA zX!|N#0Qb^a;ID9y-U{rGN9j;hWhC{qR&F5)hyVH4Z4Vq-SGSiwg7SGqig~1a)-b4C z$nElBFSBdQ)6Hf3XdSZE^GuyWqNpOOT*@~A?%cdJ< z(#n(()D1-rzjFJLl6<`thbXRODb*W;S3-m)fR)z4 zok~DRXarn0_VXu$l6-2S%sN_Qg`(d{cS$-6kR+mcg_le;mYSObV zHpQ#_v!RLCG23Kn_jtn!Cr@lk?{`gE9J_qa{d6;1XvA~n@<&wPY@RovY$OYtar_}$ zY>7&#S%Pqc_Aj>5dWr23aijG3ToSBcgUoM?2F^mq#Xmbktu5NSY3fvxHIu(bJj!Ms zx3bRLjGVH+(`}%JLDr`bZQ9=x8;}cdhQEb1VD{xJficH`{N|mTj87#Im|R+NTwLd( z5di>)H3q$uY#oUg`y;Ga$G0qODsi?M8Jx#Jnp385xdtc)sH)!7oB(PQQs2(P*wq>Z z7d${BEQ^?(&L_2saabKj-W&51vemL(tUp27AF7+-0~JWQ z%~s7gVnG)F%`2nDM}gygdI}i;4apKsGx&7>kk)td-Ocsb*~nA+-lg%&7~4HOaz{2> zo$j`PXR!r3oFa#rK&)Z-7CN|M;VNf7j@!q8LXQfH`qr8=WQ5Q(bxJ8$N@c19g$}z% z+|MV31&i211f~^Y<)&CPY<{$MeO>t(OW#YzP|Wnz+nW%nV$}J^XtKwT{~rGZk8#-) zL5T!LY9a37}#5+YYd7TWXxfca5?=%MahDQ{eM&%ir{V+0SUEFb7cE25j{-d}-a_CcT_%ApC zJPR(;4acP& zbq||K0RPkH650kSbT~;7c3H^kB>mo6`h>VM!8)yf!f{vNa#$2gJfZm35HH!4-|? z+(jOY#iNDft%(_3`c>38l&hI-H0MsageFHRBvr7@cmr~p@5EEudVhJ~rKk5AAnIM& z;RToDiWXn5PB&o}G9~CaR&9=EQINiwRZVhE9hd^u7;o^g{io$=11#NhGds3%ZKlvz ziPdwKIwxCSC*qJD@R5$7Y2>$c;gzL0P;GtEDZJee9dIZW;!jdJ=fUJzqfb8vA%tnmP@5|(F~T#h|uJ+dK+;#YBO1K9AV z7Q{@l4rVi$M13^|>n}qe>&8pXnfNx|c-xms5%H;(?@WxV7Albrv-`>_PM$>(p<`0c z#|Xr0ebfIXMa*67rRjZn0ik(|wW|@~R_-HNN`!X|9NKwb;e4~}x*RM2?k9$E5HBLz zo<=&uI##F-q27?OOSmFt*>EPgX!K_-Ae63HN+m#d*_YHIa-|Z~@Rp8BPP7zXpS2-< z)=G3U7;n^Q{((!Xx{sy8U^p5okSn4Q_VC9Dlh@}il! z+4-@!4$9z3?w113ZQw7!?|#v3E-=F6B4Q3TWnrpD?TSejRu+xLMPKu&3@)dQ)&v-g znUwUc(&6Ee52UNwv?m8%4dxv_k=;H|yX4xq1SfVx`aQkU*QdL*4ebLnbrzrTy@kMz z*5Z+|8^l93oVT@fGta8Sd=3j3y-6EtUXj|slp=|S95&kec3$r~t2(x#|kG^`BAozBF$rPTQrz(h(N;?5};A^gJ@;Z5{h@Wmr`GqVx)J z31UXf%Ooi>zQEhU^7o52T^YR`WRi)e(kjKSV7FI5MB;GBl|FnOpWT{FDcDxF3Dh?H zDH(sGj@igm+>L|P(+zNYMFlP>`snFg+2g&v2BnUAKWtu)7JzrRO*yK)i6ddnE^q#A znk2MX1QW80LNz34KHNdRUZXCWP13A0KdVOqj4BYl(V-5K z6hgjn-Zaq)gp=rdqAn0^PeZsuy+VRVBO53lXLU%QQqC?996;avILAI zpfRAbNNM~fVtg8?q?pWE&cm zq@YDBBR?a!CCq0A>ZeK!hofHQNDP}LZ+>4Tx+DsH{Wrh$t=J*sr)*OUoEama*~!l8 zMV_%vH0DMPkzYPou=*K2n=|I`ZZgDU3B`?@AEV9btg00JHEJ>CVuEXaHjgHE?Oh4h81jpwMT!F2Zc6cS`qQ0G$EXVVx}?lphWgEoN(2Zi z38qB;$zc2uO;pI)2-mx{<&ba6Aj)pGXPdaeQO3z3%nX$etP@!-Tq%kpIC5RNnCz!a z-iS<{GNlEBXn2#b?vZ*`#ovGx09skXEQ(lcHI$69o8x^GkU|j=x#5T%6`f54~*Er{s}U-eR1Z&<`7fLtZT!@v&~WX zr5Mq1rsJRiE0hR{H9U4fdl^L=vu}e6tf`4U9zz(B_~{gnjRMvP1cd4~HqsL~*&TKS zCb20Khd0aW9On(iCys60&sM(l;x-^^#D{=BSf%WK`Mte$uz4cYx?srRe#1`f?V^D%RbO7#;f z>!xu4cX`1JpZdRL-5=A6G}q0CH?e6h?=gv2^Tr^Myg%fk;leSNz^kY@zp zi_+_nzkjSGPa^*fk$Bsr8GqZ``Wrr9ip>#Nwvc%ymWSZ}C+nb%m4%Z|XR z$@udYM0mT~NvS)SF)3gr=H*}jW6*fgs1PDBetgN?_xNj8 zzkLeA_rs2MU}xdR?$#rVwiqe%V?3FNoe-(B^M1OXq8ZBZ+%H`}Z~ zB?=!9&HBs}dkf$e%3?8)z;SUy1nE5yv%lh(qBkD3e9pLi+rPVCVxk*^_hCMgXtT?9 z!KvjzFCR}1GC&NsxA|g^)Ob5zd+ghZ_^W*&@(%4oRsa)qO{FI+RHHfrI@*kH`_x5? z$Gk#9k)JFy=ZsF~Pw&`NV;X$gF7?W-Nd2UdLM6*MDL<%MVZR0!!m~-;Dpo&_a#l`` z?OkQinw>3gF&+6meqm7AX=o<_l#p)M5Xl2C@3mCy%omvq0|*t$wf2OAR+*ZhdhN zF}75={=}9t)0iho88wFnAQ*(`)jJsM0$`(h782SahQ2Y$v7-4j3hW|tpNQGjKldmQ zCrVBs73HkplsX}JQ3;TYNtocTm_oPwirM5q6K=dk)uj0#9SeSUptfQb!%z;Ab<0sr zcwj7&1XYyBplI2q3y~h|(jh0c44_buW=C!y%rqrXEDqBwd&`^j)pn) z5bZGF2*kr8&pXv38v^e>vDH8hca3jt&YS5Z^R4?;15)%ijS-v;E{=jUNJrUa()81f z&sVFpwZ-dAQ|4KCECxb8A-#=?%SV_*NNc%mW_ZuRU#dBA(rWk5K~@A1LO+9-GWb)G zTQ#k_M@4;yvR%A$Vp%z=d2g2n9Im-0#n7;cwUk!U4Xi}ygH$)s$rihT&7sBd#EKa4 zZK9_HjbS-$4HJPTKYKh5J@pP%iy{~nVwq?(Kg8x2npM(e>a%xe=$`@-M$&^bP1C{3 zf)V|_hQCb_fBMg8%7YA~D1ER1zx7?^Q`+18>~=JDleulM%hs)wI-+MY@^NasN#HJ5 z@Jy4qv9%otNiqw5ZTrRf07-EXrCdM`z4vR2Z(qO-k&d*Zch`g zR@eQXuI}Fhp}Dhr(`FL5Vt;ypnR!#6dS8M~KRruaLw3h%w@70Ebx_`fHz;@B0?PKA6{z&@0FLvSIRr1!rQ&rPH7qo8U zMzrJkdkNhy;XHc>-?)7FTmxQR+ov{l|9tB6<@@)#Y(NuOy_e%T`_sFyBR+BqP5s9s zW#gmK_AiLl+jOeFCZjWv!<&h1*B$5k82wLY@{j#-tAwsk1a-cPZDKbwNrw%msNrS> z-zfVwek!>76O0{w%llKt^ZQTJ%FPN93&ENRRk-ODdmt;3>~B}f{8~1ovk=~wvaY#jdZ>$4KFPbi!X3;qnS-Tj-bXC zm%ck%{MhEuVq{NF^x+KafT81fH;&M;mQ}fHSUI5FP5C{>`HWzt;J(XeN*9~~41c5w z7Ty`i9!KFYHK{s@zW0g-E>^dm%&^CCc|ZMCFPtmvAnzLi9q8i+=ZL1Lk+*>>F@%vQ z;8#d~wBmF9|g{DU-u{xa|6nS7XzSsTIx#UZs%Q>5U8&jkn+bkC9|N|jz-2b%R<#SIVg+k_ za*gE*9!Jx(D!wYaeDV;3=Q#NZU*bs5GV3c@MjYl{O~PnihQpytk%?-;&{A6wIMODT z(sgcrwlApS&VC^XVQ7lI(C{~Wr+Rb`N-5(ix}Is~&I_i`loCLt-_N*`Iy^u(#)Kp< zJQcBflR4S!?W8lua&Zx*RK|mq<28KWJ{i_TO{r;IA4s$ClSV3F$yX!QI~~)5I@qCy zQRXZBZVL+wu^!EhXGiLOo^pVO;-~Na$}YtStfw~y|00NoCzHR1sYB;uPxlUNrB>!! zyoyzn-kk0Inx9Nf$HZY_h%z^o}-u8l!XtU@?NGBKF3K&{t+wOtJ?1V{Fc_8 zDZlGo!fc@Amkq-9D!iSF507kpefC6AcV|nA#_Dcoi)NEm7mXgGDtKZAhcrKr^Y3M8 z{+Y?+1}s$hZlxS=eKIofrr*wy$~w$%&u9%nruB7Ie|aL$yL;a2xJmg4VP^X~|Ck4P z?z%3XNY@&2?ER-Aym{CABWO49@7+|`Sl_;B;9i2>*~@F~D|30Ej@!Os#~yeA@8NHo zi2DP^Sd(qgAmfVO_PZmEizt7o`Y^rZj0BL55Kmmh{KTm778!N()t20jA*^y z>Y4>eUv`FCAr!4mlW(_DLGEL{+t%MKy96Cbik|YphKOmj9+KBhh<)M6>a6T+ay!{qZgOzhf;a-<&bJV=ws1k(=tz7Ylt$W2~|B6|h;OH!$Xr;$G{6UjYG#m zsi3APUx-XAoyQ15DP0nqoL*?-$s-o$DI6k-VtV#{K^&?zrc~kXr)Xmk+mf;CHV$ug zj2n(UY}>vqT;fn9O$Oa>X1?BU_h}lttT)G)){PAhqiCh2l{&~7pkFtZ3WlvkB2d>b z7U}AvkyvZQPgd@4{`|quRI>{r_Om87_bnE3Ck(&0_EU!xM5hLJkU5qiBO`+>V+f5Rrjn@_qZHhw zuM`mNj@n+-?iEbls4$tFLtn$j*hZjUSu}hj6ha8K2hq}Ver7=6%agZMUJj}7Enwmw zw-=*R_<;a1$M;?MDx(~o>Y`obKlQ(;`l_I~qHSB;T>=CPPUG&u3GNQTEhM;m z?gV#tOXD8g-7VPbbL!q#?|tmgUA1@BT64`Y*O29i7!^5fiE)N48hRLC`k~*Q^lM%^ zo~j2ePzt1)8Yrfufxn6z8ePEOdB(&Shf)*!WorFavG zc#E#alo-7pI-k%c$cB?ULTgP&%v@Q@+9v)PI&}vm>RE$u=$R9M?+D|jLl08h-bPu` zSd=z=d<38q&7;)vUhOvpP9CVq)zICK`hIztaLNd+9oj$IMOZS-;f;d=%GRV7)_^Rr zCkt}3e7KA&CN>LMYa9GeI-1fNVm|ft3$1nTXMbGbZHw3_hmY$bZ%UMGeAx%l2@+%x zaj+-@*zZXHGwK4iWD3Y;z6>3Do_BOlD%UXoxCCnF+_+Ee1EgKC_c1+(ZvFb-rCG1% zPziMY@))lV7)`F_y6_onAHO~P>fB$qy6TcYBn)RkBzdFXxEq#slGf}x02m$otwa?- z{F{CFK8N~r8f0b(ym2)2x>a>E>;>2t83>DIp@A(gNX(Fp0Au` zF7IKwA2NUv{BQO~10`0Sf}&MB3}Bx}@8`z`7KFp~Wh<#5ogibnhJtnYl<>mL@Km+=$J zXKPt5gU}{W0#^>PId?wS^^EDR()C&;F8ULkJ^?^u%LQ{4)r=_54^+dEk+%VlOKwALU#VEKEOanm{LD$!S#=WHU=h%SBr^=ViMd0)uN z?+Iu%7{?dU@ph!ZvgQYBdxrsc9$*N)9G!!U&KoT1CjKqpobj-%kT{1SvR3kUv=~jb zpElQz^=F{FZ@#f>*j`nB?2r74-J3^m=^hII9T0r4a~dQ!+e(^ek&VVw{KYP$2X&k1 z4&_G3YOUE8WI@#VY6Dgij^kn18-lRRegfN3L>IQH#o9jk(B2BsO>ssR~1HXS?+UDT>nk@h(3X;*p?i83aD< zgKVtO!F$`CE`k#$LKL4h%~aI1%E5xVd!IbP#(aZqwOC1VIAg7Hk%sA_%teyNt-7^i z=bf}cm-z!Llx1w1^uC{*rqEBM@XhD!+yisV!fYFyzq=jNFflV@m$Dd;HerccPr9M%N6d>(>aTh!a*wS?Ls2dk@9(OZ$}}q9B6?f@H=(=ae=@W8cu;~1Q*2J(K#60pBjJp$a;Epy<6dtv?Oz=c491VeJk-X(<6w-0}6a@kHw=ygP{U~6j!F`+L zQ^#*1M%3KdhB>q=q>j?^iu@{G9-8!sbh*?txzuowZhm|_zgRM%r^P9CTLd85u9HN1 z+ptIhUV}LX<@Qrxc~hV&Qh1YzI2sIB3`g@r>G4bn2zzlnes4QqGd+QC(#i3P_e*3*l@iR|TlPvxxudiDOREr)0=C(^b+ML@jIf}uY8PxIdN^>mTWEEw$_PrV6k`VBIAYP_OuT(5G{=RULgy!E|M z{1(c#>U!d+aRxegd@^)Ck@^^hM9uVBdMp|D zGhBu4-s}gz9%}rZP~NB;B%lXAZock@HD4X^cEw?mFPcseY>pQ8v{)4$pTRf$y>FcJ z7!Zgc$T_`uU^9F?1Wu8bkP!IoEeO5b8QlbH=MGwvUjv0+;8SlWmAk$`skyHo6-LR6 zxHH&qx}aUY&!6&lzM@}xJ&$!>Oa?vo7HY#19cFj*cD%p+A>mEBertJSwtwy)%6fX0 z7~vg{If;(Sat6cWtrxa!s^YVANqFfh_2ja*)CLz$+?jI+#N$pX$i2?uMD?yFocjHV z^XrFq;|9hFmoUsdz{>|^WG7Jf6A&ntW1 z411LPCv*r0tH{`?@Yg@#4lpxmqV^M4nchNl3lGU8POope&WxFu{HK{JB)^23@6!5J z4+K-_7^_ths3YMS66r}l6$)sXTgd+IA*_k`#D@}U32jYD&0gIq!T6B;VKh&#L`e$r zCk1XImv6{_MNrc~-4d1f$(@b`qx~!kC>O_4w!T^{4EZKa@mhqC4ly8Ont)hDeOEQ@ zK(q3NU z^a6nSF}~iZ@YpQ(o-9hPhJo!_OHb2 zP&~GA)l8(Oh}}K7#f<3_&@T6rg#U2s^nwwiHpN3>t)!Gn<;@AIt5;}Ay;4*8hcwPs zE5PWOJeB_&r#R#a9qATHF4fp3&;j_DuZ&(SHN_;yxQcQHUX3sKPBY^U?65=bD8(p# z()0*(isz{-CMO7E3IFA50#A`@tk%WBUP*`Omx*b1wGwDhHT{TA$ZcW(KAxlwom)-l zZ(N%zoziPVj$}ehwTaqE!W8+tD5)w&`}zC@l{~Eu>Eu7b8uj(bNRJgwv_(LUrA(+6 z3)(OJzByif8qf`V|N70OjNiB4Q~N};L*P!kKB)+V@zQh?1|Q}t^~dbkx-YRx~QE9KCgY6hTET;RkdufK%$1fFD z!5HX$^hd-~wneQz_xtZ(Y<>Vwe)@d_VvIu@hC10}BdhG+XFc4Kg)ff$w?NKZ ztiA-(R$kaUJe}`9yl(fp{j>onSH3vDV>dC`<_ES5t~b(}&JEQE@P1YV;!QX1Lm^GC zyFk%``oQahRaVD8XrC>=QyCf(xBjl>r=f|~$@SC)PHgS>yYGIEQ$XC-weHh?)-#^9 zKBsF;zu~QAtE<+5b{S(!%fPR`gXL?aLtmFFN_-sNwxzj0TCQu~R0+^WkuS_UN>JCH zw&Q;9lL4REV$bBZ=yR^qB%W>?{QmSC{Uwh-1OA0=dyIxsixoI=vw7=t#fzrckFkEX zpV|r%`Rp`p^fmHDSqo@#8~t1jz9;ya4gbw=tjcj_|WHyvqy^L+C1mV zN;BWx1&;OQh|Yr@I|2sdnNj%PN)q9u?amsxr^w}NAHmb~BiT5BPKh$UO7MEfXXgmM z=IvhF;{~w?{PFTA(K?bzHY)7>QUna!<$e9vL4ZU4@&m&_6&kp4m}PH&Fp5joTS5FZ z={ND)^N|-f=lZ5lhwer2UDS===-(JM=EssIW9folfW6N(j@?H*os&1RE8A7%DPyZD znVR2Ph|g|4>{HZXi@obl6ZlcY}N%|1~QS{QxT2~(K~5rhUQCi-M$>W z(rjcxgoJUgpcC-2)-#qx%@p4_YEiY2HX*nO61!!+T5$FW4M75eeLZs^1f`|m14&gR ze0B>We??V|D3gvXJcE$@c`S~J`r$_>ZR9-eDztcKnGE__ox~$e>UG&rDa>Crh3h%A zN&EfbO8fB#j{5vCE%=*txzfUdlsMC#5DShNY<+>dw z`;5hUyQ_k-qT?7%Dx09-$Z!m?Zigkao^_TxsKngPF1GS_cVu}vzz(<-0BHd0Tu-$i z@cpl+6&xM;YvjH zU?#kVR@P7y?TR4lE|mGHSyjJvV{MUY1dbcQRHgpAClO%a1S}N6qC48b6p8V5t^eQ8 z+ri&H#_&j(Z!pd1B$)@PqvK?957*|&flgCXw`G_XSH9>*O_%1&c-V}?dS(j#Vt*ed zw6byVA_6tA=_30<9=~Q1XlEh3EN|vo$oa#2wylV5Lszi(NwWx`6Ssh<(nwQMjTt_*=4yeA`&hYmtWYf!sarsaFzpI-#hR z&MVb9&U;;$ zWEKz&IOW`Q9`&V7|H-h3@VY1Rp2TU1xn=#^mk=>V7*n(HwY~k%iSKIFh84Q9-zqHM zu5|8UBxB78djw3P=8N-S#T)<5mG80-SlQzxgut=R^UI5*_XIM&3#}UP2>sZz;$^+K*m&ljUN2t_F1o&^e_ILOWds*@n=%lh161@W&HQu~Lkk!bOcqk+AWKUHN}Er4%sH*ORCxcOnB+9dSU_ z3sy0dG0r)i^p4Ggp2ScV`_lYgzC-BKsVX(3;=T}%EU=a^^h8hdFB;mIRaLnN_RzLA zeuzuuky}TVK?5-5Kir>lH)#Payz!|nI@ZXFdbZvJNI8O#Dx~%stgC6JoEOg;+5_hV zf~o#YH7x5FwalZ+wj+5(MM3lm5VlM;mxZHAK=oR4eeH4~z4#`CO2ae(VMS_HN+nXe z2$I%xTnO;kcSoil6P1*fz^dHC8U3+cTW&m-i!>z#5--|Arj!AHGI?h%ABoV!3)*HQ zg{Ig`s8?A%{Os1-lTT|pVj-VX)kIIKwk3Fuv3>!EH7^WZ>+Q2gJONeB4Q|V0xF^#u z7wx+Ja_V2WUr7-{P5F)TdR8-X+#ycR;%G~?KOrM9e{4)clEsW8DSn0U6n`=8qT06tn$GA2nBNnPhnP^Qs zTFM6O;yJ1j-M6e;$$BldRg~V1*?Hr^!g>LYY9{q+;RqJhS<23V&tvg?Wi-+R*Ho+t zL|<;dH|VIOMUQb&MMQ2nwhwsTbnsKgRl>*sT^7ibHKNa4xPE#-^j1QXc0R&0jO@xyx9v{C~_7|s)m7hgztArFM1)7J@=l2UOv0G-|f?Y zTsdo+QnAjlvu(Ai<+wuFX(Z#F^$hVy*l|HF!~Y%gPi17J<$dKHY5r{fB-PB^oGSm* z{oXs9XKV+?nM@1yYEgxtw(J5<9q|LcH2a^-!{)mME#~&`_XlpFgX5lk1K`J}4eyI} zkGZbpKh%oT7e#m8uq64teQ_S&0mZ;PE|4pKD)-s=@rc1Q{`>uUs^gBn(bQO&3%gbB zWDt0fS11nGphVEOW?2i0xtB9d-5kZ8BTQ*qg5dWKyS*REh@Eti zO^V4bC?W>2uIClL=ly;k^vDm__Dt#5K(7NF6`RzEYOdb=!20kS{)FM#e+u*jV>3c$ zvT}0Z=*`GImc2JEaU8-UDk)z`{@@$Aza^Won_HR4sT_O%r3+l(e(i4M9HI8l-ruRj z;Su)GwcrCn(tM*}<941awI%T!x7}I%U%nxN{=O5<>l+wF{>)_P zMF(#eJC)Vc>!>Uozj&mZ`vzn#_47&yds~-S(b@F>nIU+leYGM_a3wwY#eX|_$$7mS z(W&FBuFcBn^Drh#ED#LcB8NExcA3?=g1^k!;(s2In)AOwvc47`P?_Z=N{^VKq?iH7 zCeJe`!;$0UcVx39#4-R}TJHasOR#SY;RLFE;`hBAYy2iR4V0U+ZmDIVAhtvc9Y7F; zQS`jb;Qkf9n`Zc1yL>HWwBDw4T<%gL&?9A^&}=L+afq(~x47|M?{8in*DYjo&r(YP zy3~?o=xsj<sfB ziyh?IS9^0E4NT%IQ!h53zD&SGr1wGEY(qxHprBSeMj8LNC9g}T?H%S^ax?k&8X=kT zj!}$$h0IbSvfg-M@@M-x@|}`gjX0ljQ`&t_f!f4Hhl$a{y1mg=ZEb6Ba%Rn--oVZd zjNY$yTwDc3MaO9|MAgqhOR zgV{qFe|IJ_*0cut0sU{Mk6qHUvLK{|gM$MIpFXH56hi7?J7S$VcL^`#D@ulRQG$XK zq3AD8dkHT)*>n>eHGf@bQolO^aB-6w^_ZJ&R>W0P{=VnMxCoFYQd7=CIEDh*V3}OB zo?Htepnw{F8RjB%(@#Fx#5|Zk&RLFqOHLhIIq}UkTJ#L4sb)SApjZt8Nroc3HA&O# z!PdNzvqQiDM;{fN)|@*aB+6lw*5o_a*h=8~u@|r3%iw$|HD8H5d{Ql2PH)};Gj|qIHK!fR6&c@DX^{z*}xIgEc(7APqt@ zM)Kt@RQ@14c?`fJY``Hx?$*5cqaCA#<; zwD?(FNpBRF$^RLP#lproGl}rR-CT7z#jV8MY&Vei{<;+TlX96e#yc*u+k|+TgK{Ks zF-rPdIB4qi4$jcgedu?$2MT)v)C}c-k(ULCj_2TgK9;irQ zDB-mgP!+N2qTcrjGaRHeyIXMTeD)q|QYqi!X-R+KP%1&_vqj?f4w7h-_ReYOdDQ0s z;*m|CF4bAi(R@!6iT93F^m&)>G5>KHzCQLkiTQ$No{IiUVD!eT`}Qr09Y{g|mdr@R zXmN6#;+U71KU&qg80d=Coj?@+pz-s49C0f8_?r7Vd&$2eHf8=34e-%x+4e80QV@*tIeoNQg5W=*I-_6JM~s?_;>uO2swwxRXlfdf?0z;sU$2_kE5#t;yb3 z)A3Kny-Gnpr58LsgUAvN5{<6WJ*j_h@;Tj%SNmM}iWGPZ7Cu$NQZN34(v+NBk6j<_ zfLzgl1rG8_at#Mcdz`qXbDr|P)pd24(X+f7brY{A@Y-~`vS=kfFi!`-AuXsNS8;l1 ztE`gj%V%+ZA=Mk9F9)j1X}yO4RPoFVG{<*IN|=I-Omy>_0^v*x;$28bitt@X?%DCg zr|nuGw2dRVfRd(?%}ecZp1HHZB~*;dKB6G@W(Grine;6w1+6`EsQ?1@jbDk&g-zlb zCnKMakZEKsGWp~H)x8N+?(7TXin!HpiP7w7loDlF;{_mbZ6F0euae>XyXJ^~G2dFE z(C;9N{zDBplL;L4(Ak$vhHxZ5Llh(E2n$gn9KUStZIbZwKpzI~T*B*EE_{dR-85?1 zjLWEm8{@%P6rpNY`tywss3MTfN_&XyTJv_6#WeY}wfnJ4yQHeW&tlujvXI=*8zw6| zKbE4|rIXKx4#16>pG_<7o4&++d?F&7%jkR%Qh0~LltPjP(VAt;%&{BWaINjBR_IDR z1Xa#*6>l1uIyxqV3`s58FQ<-;$!59AP#izLK=^L#glOSAguf)pjY&ozrB2}dlXV8q zp*dcduKuICCQXcbvVY|_ex_hZR)Z^xO_o-!Jy&fJP)h>^t{X;uB2q4DIM$}jBP&&> z^yru;h;qnV%!E6Eo+t%*_!Nr4;;Oup0%QLxA6>1|j;)GCidI;nQ!YYr9-BgQpre%x zR7-OG8>X~RlYOOYVpa5*BFR4&_?Hl*v3og?WC1k}zuq47iswx5$}6(v_}XSX{q~PB z5(qv9V)RLb#EdEy`!sPp*~B90S0~^3M&9C7Gi{)@JJL7AfsoTYOHVZGV84_ReDoQ) zADVrml5>4uq#thg?2X0Y^CV7*mWv422QD{?B0V|a^SVaGQ@9z6iHb;HN{VMf-Pn9irbzs6-eAm8ev#h)QlzrMb6McSD;kcF$k zsa|Qg#zJ%e|B(Y2T;(zHov#4@STn))3VwYw$hxW6^;|D!J$z~*S|z@iR5yHsyGV!W zxPJIl8Fy&G+Ul?UzJ}VmR6Bq@LOy<8=^1!LHZbx2jAH10BI5YLtKVMvc(|eLL-8B9 zrhS#9oIUOh?#dvu<=J?YeO+Tm9&P%2=tul?b(%W{ySSd6+I>#$G5>F$?i=K#Elm+1 z!EeuDR9RYW$I>LF9WfE2*~i+cZOnas={Mq!o9G@Z%b(otz%yKrW$jP8aF)%2mad}` zp4V?1VEvqT8zo&=L9(mSUA})K`Q||H+=~REr<&Xy#WjO&^BU0-?%S-P@veIGx6Qs@sIARlGSdE|O`@>StPtJ&;7nD85S z2d<7NpG|e;UZK4omm@YToxhDOyzbv#PHA3>1daHzmo{zY3*AdS+V%hX%S~_&O&@?; zySf;wJg=8lkg;LUc|P#bMCqR~J-pB>vN9yS=DXBk&B*OIV>h_N@ZL`8f%L+qU&71t+?A8|oP<+bf9MGcEDsN%6#N@!=3#98*<& zX2kF$4apIQh*GhoZQ)X9RIi8D2~_@y@>ocNpz+h}u;zy?kL`|%nI>(%!V^&r_gOyiCcGLcZw~x=4xYOo73(vADY~U z($(Gq%cMp03e0Re9zS7#Zhc$SKW>j52*cd%+C8e-M%*JHBJ73l^OdA?yeH zu}kf%WZ#Y%N2}u8+=D%XC@HB47iP8fN7FDkE$c1QyF6L*dvi`Lj?bO1XbT-1&dhPZvjNt! zUnnh|p_hISF+#h_xdW+b7UayobO|g%a9^*Lds4>ca)*K4QPG2~*J6IJR`%P(zzbQS z_D+wCtvU9d?$fVJPDhY5O~3qO_&yX3rfCgONdePO5LdcxdT(;g>5mLcus<5bR`!4{ zFlsikq5?1xSkFWlJ8WZTcYeh%t2bAPtNw>D2s5C1JO28|pgD)7KsHCVQXP0ZTbY=c zg3oDB4TDT*)J34!mRN6XCtG4fM%jDur*zNayldR-k4PrwAQvZl-@FKJB@CUf4ryK% zhpG!d`1T&w>=7vl(GbcECb2TpbEH&NfOznly2aBeSV!%#V=jTtDdxMZiF-_?qgtAZ z$phvPKR~+j^I)veEEQkvW^n+1cV@#w(flY$I2R(Z^Oq#G#EKg0j1=JeA*R#Ko-E{} z2JliBR?l-1@3*tgc9_lHg-QC-NbQreTzfXFqxz%3Vba|&yNPgHY6kPfn%Oa9}1D+O4m?B=Z`OBbhP|L;@=&Pr{)Aa=| z0Sf$`aUpo&=VV?68$I2fLZ(`;#WH+B_C!5U5ZZfI^KW|-IATmVbRFsxf70Ixpu?V7 zm4SQqTe^Upbz&rwhiT1#EY@#jCpX|?@5>AK{IcSWBt?F~mI&`6piLwyn*?C;l|*XL zlGXxcx!qx0PN%zILV&dHd5<=T)te8K zHTB%94-`ELV_Mq^+`8^I5g<|x&k%p0Z+Klu!_!dL)Py;tO`5DYLt3PejA}}`{vq_p znw70TOy~$^{~Tw%>Xw5gOo#^AM|^8_O-(~%xFbX{!_jXp7c=~*o4Q8IeM|#0@zsBr zd3cqaOn0n1OYCWanoS_8l@Ga)@u&^3CvA+ygq(miy%r3xL(0i^$?D1iCw&! z)o+^AKJ@@m5CBv_kDJKHqsn&Gf$klW%B_kyW z-&#II{`GtVj&-PxaUvq(OUX_;Z8h7j{Qa91w8g&v&Z zK@V)SXd*Ew8t{~5ln-R>6}#h{riC8C7y_a2YDH&~1#tunFy5yn{|v-4fks)klc0cy zOAvFeqZ`FF8w|S(RU6CZ!9u-xQ8#Xg%JR{1$yun5-OkHnW|>D1ZwQYR)uY8J>&sw-?qC-uwj7ij=;=%YN0{(^b>}0RJ+M3JR(E+!1h}EQNi^P z`IOuGlrQ`B7u`-id+0sGaj*L^Ho9Zu$#FX`9}`J!rhumJi}ft4I4>6?n8LTOomy{O ztOq?`JyuF`w|!kL@h8*VBFb@-=_2+d4K@CUsvA{5-TKD(V?_dz6e>y^GMaege=YzQSig#) z6e0QjYQ=~hT)Ybw_&lSMOj92Z0Opk_piLq1Pf|j&xMR6Gt!7)^>|{NQoTGDs*F@y| zmmaETTvOKUd$P?&VmS!WeypVw&?nLvhtp^8HC>PdVgxE%FU=i;u3f~b)sm6tn-{^p z((d*tR!nS;2=QtFSrasfonLh|b1b=F=y>mCx9(pzr0?W5>X__>KPQM*|75~3?; zN34G=dGtdpR6~jA#VQyXfx)Jt^e4bzeFeJ-41HqH3l?3E(18cQEdBzap>+t))fC-_ z`in|Bi0xDldMVPO%2~_+`|D__zC8M~5|aZ|#LO+OH=ktxnE=d~b9t^k)jBQR;QIa~8;#pXf- z%PZMt^NS}o@}OyiU~&tiNx^h(tb4F1>}J(cS#chzgd1unpy5v7DZO|Wx?A%h@O!Jx z1pOBzvDawKxVhRR(Fa*du`}jK=Lw>63^KMEXbytRTAfJ2b3{-XBt$pIWh0 zQ2l1zrIv+m?LoIy6;kAjX%au&pb02Uv!qeP<`dJtI*QEY?ejQ)z{GZp?@HIsQMpe| z;p{wQIJTh}E#edbzb~#Eg-ZKOv0kNI>NXG7r!-Yr7~~OJBnE?5G?8tvZbR#*GEF%DtBoqDd;ZNfYK(MjI$UWM1P&`c%~ z_6c?~8t@P@HFJ*o6Qj7=Y{8LTTj!WqU&ZIJ1qDgnfXLLHJ26BFCmWbN%8fK(3& z^(IzDYZsTe4Dui(#!*}T*&3$}_MGTzE#p$(Xqf8BSafsBZ2CZuOY?wdm`b2piVQPA z5{6-|x!C$MNI^m1k|gOG4jW#L+U%L=7L(#fX6Vt^68f}!)N71aYWE;_@hnnx`eBf0 z4an5jm-G+_%e&!$OQ)1I_|p6DAN1nl16A;7VpT>(&Gp851ba%qPezFeAB68Uh#X7y zb=-lk^H-EYv5vmJ8P{jWmzhEcP8j)mF%|%en7F4&j6uRTSlv=8nk&{L{kx*<z)wywm9%3{+?;x|=mw!y|4dSBt%!n_U^Cg98I!eR%RR$Cu z$z8IL!+Lfw#B})q3+|+#SUZb6Gm>y9@V9B`F|HS+@pxFEigp?krl19wnEq}DW%>2l zxC2|tD{c+3Yt`b)BU6%+Qj%~-WO;k_vK{kVcbClISgF;uXNCf+?fh|MQ4GsdDr!L` zg&Ha1O?WHbi@IS1vKSQ_H<^lv3fPA*;1K>KL6r2M{r-pKNaq)jpw$p6u5g_m#~D$T zD#7G*xHr$eU7k~4L7)4eTYWqRFaaT25*WU*Z5x(rgPk>0Rb>`Q7UYLX0JAaj483Vk zE;=~e%OlT+Wr@gFdTpP~V_ZVU4A;%WSABKDDPm`tv$YLlNsN+c^lU1cg;OfmEzv9! z&_%dDp$A#lkjng@mCStVjGGp1ok|@jiXi5~d5)h)84kq(ZbKXEXYn+V!jAxY1k0ew zFX==xG-PQ~TJRfbC`Sc0TPIrOI*-LAl1$gPLhBoAiJMmFR$@_(eV?c(uoGNuA8=!U z4gzogB`nuS6xS8RtkYd@2?fY?I(u9$XLw||iLY@jgX_ISXDWY!gk94qO+^u+97r2S zuIdNY02SZG2!gUR5x(q6d9DGQ2MGZa9EhWM&Up+080>Y@orS+jMT;sbC+j&u)Uv7W zEZ%ao&B$tBisg{^#dAvEm2E0(ZhsWBYyMeX{hVs#$FHxiPhb2agL)wawO3bD8$eP* zzuaPvpWS!(T%dePy~Ik|JDlxDPge9>&S(Ko9AD$l8wmP%`z2fmJ>15SDHyv5}15%AQc;l2x$Qlve@fYAh zyw}O(rNkPT-?Ki6gqK;S`;HKzS7WZx*}H6l378l4>JxzkqbIKc@*qmII%RqjTuXX#R`65$atH&FjCQ`vZ$ttX^us5+ zyS$+riB9>0_xJ%JqTn1<@$dNF564#%HA%ldp zf$?7~ZcGdyy8+V4{C7wE(#?%QqKV)qg6o$JP6mb($ynDT$%TDg%;k4#xeGtK?%R0- z9h(Q1ST^;DYc2q=N|y?2PWPPoAo=Angc#C9mqHEEzi1`wO6ELkWp(j>sH-e-Ly)Y% z$PX^lRW2JFn_6xXwa)|N<0xSmq&r&yuxSOxkP3Qsr24IpqUF$^{E~FP8}F=vAW1D! z21xOhHaektBn+FBX5r+kyFaJ_zI746RciY=%h}m~mM|$pAn;ruOEG{aP;`k~#~z!( zR@8C}^q8ZBl+^^ciER)SADPE3M}zhBY7-38Cz$ofN5gJ02I(_Arh~`^7Z*Q`#F9da zb$wl3Kq8D8*PEaH#fYqlj*-Zy@wD0!aIGdsDgmc12oq!>W$;+$?RqgMI>$vK=oSr& zh~cnzW%5v6Q=$S&hSvL~rKL5!x|LnLxt4y>)!sh7pK1hNUDZppvWmE0?dC3uhqD)p zgfoA5!4gtM0lvOYY;lDAe19V}1rZv;-OHP8c@t<^s5#JGhGqrW(wxiq zyB(7;s1JkfE!K&`s!Fb0qh9z(&-BXUvg}mgS#$Ag<18dapsEQ8aQI#>K91*w#~nGy z;54%sOF3pU!tyydCb}cTaEXn+ zM27TYP$yWl-Y`7ssYEB3RXq{-RB*!K82~e5nHlU6pwuk*!4Q5I1t?bPlW00_wP=mC zMH9F4R>v_LrZPprv&bbga}iBOP(^1k{1Ao~{~4@GSRTG{sPQ9e9$p;K znBpv3i-}E6wfN5&0nidK?wm#(ERz!_x8tfN|F=4bU;NG*eV#vRF;ZN%Al{P<$-jrK zL#qhZKV86*_A#XhHYp7_0PK_(bCOccQ!dp&id|Nm{Z5I0METYRIXlG0Eg(ZD$Z=9H zJkd9vrravE+V+if%SAM3dBYr5l4v$6ZBQw#Jv`TqP}9UEAcBS`57m5iH66%sdR50 zwE#lv5_NGT4NXhZ6pM!+C{H9mvCW{!e`Er_9Gp!MRepg}z7nS5Bl}KGiQMqm8AUul zXgmrI5eFJ)!&0yl(Sy|L+uP-qnw)EG*$5}s@QiJ3nW4K^%-Ek51pdAGy^{ukISwG8 zGl5F_zz_r>QnptRqRm=*KRkQ8X7?IgCdh$(8H+)XpeL5DJ2kH^Ll}rD^?}?h`5nL0 zv4v<614=EaiBLbIly>r$B<=kG*i(Q59dSZ3P*ciaN!E^;hLN%Ihpmo*0Yz{)D6sv4 zo$yXoZno(>3)`pp7|IlZ?*P4_i6@}TbMl87{R9fdCvzvx<9blULeSt~q#+)cLO3*x zFek$l4z*wqC|S|p2#p!V%DIY_lcI2A zz(&S&7jEI7&5C&N;@?m#%3UQa1cH&)mSlxA&;0^|I8kfyzIi-^v3D7(GSsVbH_lG~ z3oPM&$_rPcHn_@q&S3uH0}~lSa2tFzc)D@=wgVve^68yYY7kNO5MBM!jk*byvaoq% z(Iq|&^!!m2u3z0qette^pubU{GLe zhMv%kddhP!+~&}q^$NKiOP%*pJmlgb6k>R8&< zR&xFxz7nOwGD#W{5GFG@4CfyKj~L!~k;abkm@@cWG{n^g@V3yt%junx?LkgKxGxYZsms zGXy2L7{G88VrrD|75-JuOx)Ol`X*(=Yw^n^Yv!tO{`9eQwu`!L;s!!srlk{B&P2F` z{YIo0DV&Vu+(-8Bravy_ zrx^lN#@Ud>G(k+OlY1{nBK2f|(3)=6BPb;QV&U#z7oN_X>(k69KWA7*c!S?1N9acj zuoxsdhg*F>2|;1?=!7G6;~7Xh_wsnT*_W6VCde=S>s*NN@cT~$8G&3vYJ(+OQEq(< z4T})GL~G8Wm%XrWmXY8-A_@r2*pI z!mWI}pLR%WK4><4hT7=dgOUZ`nUNg@qq- zN^qZ=N&1?f@9ax^4b@LxNUpr6IyjWsDGW=KFnR4-hdPRvhc!w+Ek|1{9X$vIMy!f! zJ$gXv?U-{f!{IB8@Ug_{4uJxRQpW4vTx3ZA=_BS(0=2xS#4kZIVPjx^8{zpViUtM? zltfMe_%US9jBhC@CJY6($bSfnEXNAJ|G(Ixfe<7K#efq+SH`xc91wlj%tjC;YV}1f z%&dRj`)pJ#EwR2VUd=SxgpH88M{QT#}Jw>hgZY9U9Qzqq~>7gTsVKUg49+^H)&P1gskN@7k0KC?^7g=pYh;=WZ?FesR)O)JXC?rreDPTq+C8_Xo4J**sS45Oo}BUwU!YzbBA0Ig61a6gisr8gz<0)3EUwPnKUY?EY4P|%Qn*P zFHVt7tz{*~aLeMr;sHdWa>*#H1dhh46snSD(-Q_-gE20U^TqdQ&VvpaqYn1IuVT?2 z2fxM)3pq>nD8tiB27L%QA1gr7?PQ-~axkW6)#y|APNn3_ZExB%FsQzY2OAjYv{F6Y z)il||5kYLn5jwRF-&OSCXbFgQ%>8wkqSs$lT!m$u4O9k!^f-b|jL7VDd{)QzWHAyZ z)&2Z2f5<@2J1v&xIs3H zLd041m#Ck>Hn;zbf&MRCZundZ^31OUPbF&a;a#N#5m%ju+e%pc8%)!24*?wAdqGZk zNJgkZ<{MgwG2~K=NckXoT#9y$>CFq_JB`EmuFWb55(VzEI_)Dn7f>v_Xeo5fLq(XBP&>={pkx@{KSySJz zyd*M9R$)o>hV)*XT^vIIFJIBpC8th=GdXyjn8A$8V5yG#uQ<|J-sa}qturw&R;D-i z@sky)9szxILy-}Vc+sgqL4yvA8o(UEb^m(_xnnk!hw`W|WAZnKn4^1Su-MX8bult_ z0&I9ylPm)Z{AwA5^_m>vj#TZgw3#V9A@T^v^K+K zXYCl|5O{tdI{~qG*BWg7!vNe^?|})xra_Sau|JQ5@`UJRkD#9wsI|_Lp1v`+tJJQb z)${5l=F^EF1W2==c;Ss-+;QVY)$S09juY**g=IL-#5vW8H!EYMC%8JYkK>Fk;G>vO zmdOD0<@B^n<^Gbja1+l#6IX3@Q3vlKe=eZ@q8=LhH+_c;*7^C-bPb4N>AX+66?8o> zSxh9ssT*Xow7jVBJzLzbp3c%%;Ne~xEfSDySFVU!A_a)+XN?X!>q-x3zRkvBp&Z3Z zprAGB|?(PI%xVyW1aDuzL)4?5rySux)2e;q^cXyY=zxUYtj(Z-?Q;)9IqpMbRb@f+s z&idxznp}f`e{P0RtF_c(POvzzfR1l_<;$^h$4)%^mW9VAe^W1k$ts>>K+`m7U30(v_u0%Y;i4 z1Z^q{Pq?{HpnLNQ(pc_X)&I!0NzE~xDl<3Sz>p=R&XO1AEpEijnp{J}8J#W+A5r+o zexRz>`X^9(=pNsu?OdglRRJoqE}ssEIo6+{_eA*uF6Jvc3ix*nWh@J$?bpd59y4LQ zNjn@BMh(s0m!AE73T5fCvX#c<&tX@aqADqLD=rr1sl~7wiJH#f&FH*^}NU zSs9gu3RIYecMyW3&E$Uzh665ylb7J6_V4vBf;xbOWj|QZLJU5(36MLwsz)v?lfSk~ z?o`fna%{GwwVoY^R0xwxSa<<7Ask*c>=(F)=sXpW;xEvCX~K z&8=Pb8S@P`G@0I5rEAY$H7Z_lE?66!1ho4fq_8#zJHnxJg}_{P2nubFjF7syKRPF! zTho=r@SAt|zi%)H*XOKh#Z3jZkW8@Nsp}yVOD_Uf!0A0<$ zb1^@5Tq~Z8lUWmK7p<&l^zal-tnWh}(6iR06v|q{hUC&==;6qy<*LMUicajc1I|Kg z0b8ZFr9PDfB;lbhFwpAC-^*!D)Nza9Ns1eXv7v>@k_sL~aiE!qv0h2cm@lxs4cqgO z4ZKKwj$dR7kewH{GxMorBBeI1flwyDgzu9+cnY0U5W%QnqmiR2IL@w!X<0})%&>|i zImS79vYO>hsEj-1@YF>QcS_7*7}DRq4Wj4cYd!NM)^;QvHd$*6GF}IQa1)O&nU`7zK z#48L5p2&UkRS|YX4`(zYfpL)6(1(7abFG29>Fy`_Mt0~w)O6&NhxLco_5Oi9EOyr} zEwxEG*aimpwuRZ-+c{HI4+YBq?JQP6vzw){JBgeb#2;$7zK$XUZDCC@(xhL0#AN9i zNL4GulyRTx`~$aLm;&a#0tgFOO0up;&P6l*mj84!QRIwr;P{S>CD1M?9fOH!XqW}Z z8(L#ih=M_dEStC0!f06L>k`e6P?u7$$6L*y&tN z2X4Oo{5YsSusNo2-m$;ZfvFiya(TNyQ|fWn#nqRgDlm^RJOp@PY1topfwK}E3t4~VXD7M};yusNzn*yjoF?qnN8_tJVD${|-9-TZ z?#HL@U9^v@_NT3o(_=IslH+Y&>HLMWfA!}({rclpeB>Q&%-hgMPYmx9Bb%W0t#WgpBRYKK#k$SIt3|xW8y05Sn`hXDQ9OUKel@NI!asq$qA7NK#M1Kcy0Vh8-8rsL zp;ePe`ECrz6^^JrK^J45w(p@~d_dvFpZ>*?`(W0r^n_rG>o+Qoy7~hXP7HQTFa(k` zR`Ea9kj=|=)V#4cPc{X6N~m3A5kq>@Fr&-pL%LDV1UKl5FzN5%*A-il%XbA6d?UU+ zT4iN`@WIuO2TR#phsmvsLCqTD*2+7{)RcB+z3K!@-w7s&juT?s1g6tU2H8_e!vR+U zVd&93L6F=J^`&vLXytR9%LMGi@HlQ3YDnEpUS?{ypDs4sh_}I!HVl5W?bnT@aSM3z z^6HASDyfL%{WuR<-zn~wTPkrH*%nH6 zFXOFP<~m<^ReJuyL;p)!J$Rzbzg8A4ko{#FiW-q6Fjj{_7i4)@iqdES3U}6zC)+vt zWqf5XktVe0hyBI8ERPaUn1C);tN#?c{~Rspy7luv;T!}=Kw@lTfCf0Q@!nzJO&!~1 zU%I)depXp`XTIhe!_->Ptr)qh-t+jlLwb6t^x@sLBJ3Cc)!&ZP-n>4+(6I?9xSPEx zc5UG;w7ySVY?2E!j~;YyFMB&U@BqFO5$+>U4^DTBz}MuBSGSJqz3zdSd%bZY{=2N~ zt{}Cw?aJ!Muf99+3R`g5cgy~m*_%HYJa{oIjj~Jw@Pzm79jsCLvJyYQ21kHPI=WFw8|EfnXjlj_UrE*ro1D@lJ z_WCH1u3f7q1M;KD#Q_FUYXX+Qr2XTS-k=O{i5i~1K5+xQS9Y8mDC}uRLsKli(Fr_6 zryab$Iz0;euzYMxbtmb0zM%ZP9ryw9&bmn4a%$BTz~M7-@8W&RRt@Zm#Y0_tU?B^F zQXtKA{-8u3TzZ)POzhnX=x-NH{%Q!}xEiBi0Wr;r@Le=q*uv!Q~r#(LiGTS8xec%~lqWQP#g-YY1n)$nnO@L7@gLa3}lwh67~vYFY-c0rg2$6C=mU zQ$l~94pLd_nbR0W?1hO(Yh-vkt+MIj$}<|nj>?_3Ei@@ilbq;M`%LR0-nIxCcFq5e0AnZSK)yb{W!Ce>n#6P51vbls9fk?dXwhVgW7VS=58tvfu7H(=9piqPox-a;JUELE!|O`}f&Q&_%h% zD?d^-k2FguZpT2v{&9ZFE~;&XdXmyMGjM8PW~+@PlR(^`xut8ZI-YmW1$L%zh!#_d zYB=s%auzBcYcCBuXeCAqnqWBwCZ7=lG2wBk-%O#IvLlgdlYAVhe!q`oN>X5kP=X|2 zV$i`r;NUevJF%jFGaNu<*n1@tDau}v@?iQS?HnHXQ?F@ebvERa=TF36$mdwj46j`> zm-902tO3mL-xO*v{Y8<9Rd2*YrMEqgJTT|E&PkZT2@Z&zA%Fvo9_4TXsMz|}AL3Bi z0iyrmWMGu(tqdp~$scgL(l)%OcAki0@Cw+5!`!a4FIagGP56|ZJ*MFO2H;aOkeu?^yPRkZ=~usHBjXQtA(o@Z@%k5wZwJCeCBG2_WL`xt>ABw zaHCR<#e3HpvnMC;5Z1YIv2gM@-;K%pxb7J9WflhbSV({Dp!_+JOG>WiMFxD7z1%GI z6YcIBfknHozqoPO?@B4`L?BW@s9$I5`5;WTG)K_j!^Iyf0$j*JT6A(#Kylz*iNL3y!}kf~h6n9e))C%WLL7`RV`$ zR+(IJ`V|{!mCqd?e_rz#o4EZCjeKC5$h&_m<34fmjzQ!*?slm^=Ws@&H)sv8SiBFcF2+8dCoXn#P5NJeou}8o zyY22zH-v-ywGZgt+eCUpz|&y&RyGG@d9pw>5zxA?={>*F?(zQ6ogVP8y1k+hxwI0; zySobf%6?w)QbOVKIMchF>wflp-%=rX8zY){cw4G}T6jsC_K913d$zmoUcXmj-}NQD zPB62dU?Cd$4zo4j(s7&Yo2~wyy_#~I)`y!_cY4`g%S+@jPvd?TM&mJL$DeH1F`D5k z0(d_X>L_{gU*5Z2GAKO4^1sI#mC$tm3OU2FzezDbhgW-{`r<^6)FzF>Zy&kJR}2YS zMS2I@c>U-~Ixqi>=-ls9vR~Wub_NzdD9_&*st*trW4JC$?6x&yx?%-9m%Sb}+ zbsgN~Rd@S4Cq^T6pHFz_c*8Sz_X+LZ0Y_}b935dF&ygHgO)=Whyyq6LqYC_~FKH3Q z5-aI3j$?%n+hxnvl?xs{dj!>89>U(2qxY^<8Jlz$YrC}yomia&x}JD;?q-`|Q=O65 zvtup$klnn)o)0=$N#E#jM~loR|UpTY+I2wUZ!=o0fGHPVBr_( z3F@nZZArqhSl0z5C_RTjC zMK&7>@~76xE0(Zus*_qO%XdM}VUpDP3ksENoOiNG>MOVinR^TZO5sS{ij9iLr%>D@ z5c&3{bKF}dXOcG5Z2t(|$TR^4*gxegm1lTpVjt-(uag$yn>6$>J|_7$jbdo{bO&1! zF(4=f-vc(3;CzOSLO0VSDnQbNhs@nUAJ#?EVo8t2K13Wez?E&{1t-K;Trm?*X=r%8 z=F``a@`f2^FnI{iq;Kbs&qlP>^f`kR;!)P?vnq zTYrIQ+nYx0knoJ4wJcy4wNbu)(j`m>PmJHO@!i-YV0s>K&49#}3QG;ThOS|UJb^wz z?wjzT!K!T`gNaHtCv~;vHCno_i3IacUaA^f&!V98#p`ejGoeZG`jvIvk?|QsDoqOZ z2iyO|PK0}4jP+$AA3}Em_PyQzhwvq4KCmKU5QP^{sPU$@Yc>Q|m^`roo41G=ixDY0NAyQM&)Q>OqQbnR47R zH3E7e<6!m>yjxD%$7cjHjnKNk=rtDV&MoQkQ|M<`KFAgJ+CA;I)Hm#T&Xbz2l4 zE?#1iS@bZ&)4X_(K^>cmdVL#R??{jTC~dF301tqGE^e&*-pgZXldj`3k;v#o1Q?p? zKJn$fNR8n|5QG_!TfZ;1%X_ZU+u;LlLOPDky26I>B?V4x-@jyg?m9hv=v~Xa4zlU> z*>t~nbsRTI;(wrZKh|I9Z+zScuU`dk>@Rkoa&}+Ex!G$&uU#H=4>4@qO8$HePriES zz5!UHJ8lYJC!z2M5Y{ipKH@p5J}7^_AFE%U3%nb2J;&`?jQ@N2{RCm>`4TlCfx;$CfM(wTzu95|9GK>tvJC)0wWx>;lS*j`Z96j37ycucFTqVKwF&nqY;1dILEQxw?)aH%AlPYg*PnlF|pcu7anp| z6F`vt*eZpPK>b4|1eEzxIXSXLm$fKIISlwIPrL z!4p!w$NEC3JSCc`@;D|8Wjs1o!=E42W)8>ha-yDGIBVFYl%&Ws!Yb{r-9$J@IhtZ) zupoY($u|fTO?T0MvqRr^Tm!C*BLGuw^59?WY415x`X)iX0)8_)TbR15lN<&tj5FLa zt1hxdD#879pF++y=&e>lt(O4<%dVuJdZ5x?I z_68dnXt2U~(YC4+bV8#u`Aa%dB&Xmkb}E$&%o^^EFD93W8;y@u_>H~9<`?H31UjjHfaflolw{T$db8?MLj7bV_09CP8_Mih0;+?q-8@B;z28g#CbP9 zC*k-l1qo!_GCY}epPMW8_W=s+bnTJmx|2(OCiF%%^v~S+>h*2R`Wsz76%|#=51!_Q zSL;(~ef?E`7Lj?^-P{*Zb&|J zxUogsow9)J?eMo|$K|ek{Nrrn$`wO>id2HbxfaEdbj~La9n+D7M@lDXS7MH~>4Jwc=yS?q2a5Y@8Z8K7(3|Zlyzo?#}%d7=Nons6s|dLJVOy zWj3b+h{Fzlzi9?cUUrdlrlNMaYWf+K2m>sYZ0qScFJ|>S6*GW{AZ!=lsVv@bty*TH zD63K4#L3DzVq(?oH0Y<@YWWtwX7z@7-umGhT|sEp+1=|20P$~~bjNvOVZTKJWM$9 z>3gI+YP%_yZL-Tx%aMW(4H?~`X8s$QrwFXBwB&z}c7fF&D1;jVqZ{;_Qxg0aHwPbW z4`0v2+I)rK5`beu-n)>lEDnK-=Eq#ODEFTFs;y%mvy@7)-e=$bsE=DDofpVY8a|mI z%K$Uyd@9*T36>mm{v^h`H7anhaze17(;Wk7d^rAmE(|FpP1q<1PJXf6T||UdMhK>-r}$lU{- zs}#F^N+A2ba6pE?ho-tSdYJdl%VS>!wyNbE;dRF=+R+N`@K3Ev%@>eM$g z^=d0u_~FLqbIcp3!*2D|J~`R`dV6K3;RT;76NRw}!~bFrwt9adv*Utaqw|i2)Je3} zK+~L`np8r`zJIx}>y6mfY1KJziNMUS82$%}{ z*a0S0R%T|ta`@Tzfu~{8;(SF2^FyYGZq5o`^4^v?^j#odzVfFP)*+fj9gBpJ(It(w zzE3^y_;E*Bj}yY*hm~uO{+I19LZ&2JeV{CR+zzLoB4)V2b6TWRSy)2XMZ7FU|K8ZQ zT8&8mSMWGj)Kw`Jt)m@Jiwx{taRgbB{=a~Wvt0jQIa$FuRLKqT7J7I3rE-UY80VYI zOm9(Jel^x;98^UgQEY zVe~K=vHe7?FqF2bFhzpfFG52Vx34wd^0I8~rsnK3^;=Dbws?1Jvr5^h`%D^rv6Go2 z4Pq_wBTpP3GgHsJvO;#2IHQ9s(o%}TPTGW$?6LE$w6`l@5d3g<<%4k&yDoNQ?9l!e z!=FT3@?#>ls>O|(`(HcPh$cnu)I$JMbEUWWs!L3$uJ90|2<>IAdWS!)y(mD#uHn8t&jU|E*Q-9!Ws}Vonmse{PCIPK|cJ*RODF|8(};p2h?~JI(P=F zqfvN}tP>(4#wP~i2s|3=7imjXVLRzUO@%nGS@+-pIO@19UBL$@EmhIlmC-<9#d!lA zBt3UlHPmu+Rv0OQHG_s_6-+nbjE?cDdOUwuaqM-4z7#iw#UgwY2K~+b+h!Z?-{6Yy z#hhrXf65T4g*PM>l%-buZ7A4l&>Ir*{B4BBGUCqZp(wNmP4G}MNB}&PuB2#Yp z>h!0~bZH7#Bt0P|O=7%($pxrhd8%}kOC-^`mow*XBot0zxZ-V9LvfD4pwcCpxJOnd zp|ja(lbV27lXHJdOm`tHEV4)`Qo8U_4_NJWij{{wI>?!gK$k9fRVNL#b;CAu>x#rH zy4~IyPS3CHcvekICF<(?Gqb^D)EFR}q&QPanF>Lb@1uu!!W)ifdI#)X>E0|d&l%3lw+#krj#@;ZCMPpQSQ%+^W*Dxf`~1%@Q)&!7pmU zMP4YyPvn3DB|!L^nw((Wndw(SWztBMW8sIp{@&yT&Lg*i)xh}(PS|FyEvq@CMqcdn z){vcges6SPiQ`;q_Y>IPcL06+=R~=9`g?cIt9q;Nis7nn%BRK9D|6vRZzv^8;_{~A zholdCjLsX0jO(Fz`E!-uy0=pyZGyw zX~XXv3+Tvig>yK~6)XqV-BpEH?0TJ7kOCFgPkW;%YX>qJ4FMl7lKdxYAtBXgLZ>H0 zPZsF}oYgt|dP&}II1H3-oBRB^mo#~-qf+&49cclkBw{3(q}4*YpSgQxoiQH{`{}QM zZ4k<%;OIj@SS5h>S6)~&>`;m18+0YOoGQr``$=1(|0dX%wvYq$xNF^xzyPa#sOHWyVlZ5;9Z_GU}eY*J+34!5hnkSok$n6+d&$N`}#CS&7Alnn`^=Hjv2o30K_$ zWHJ>{61}dprY7i0BeKt5c%{ik!Xq!^`kGm-`lpzMhd*%5xjP6M<;Z%S=Z_y>p&4o* zJ~AVhXYj92)C4E79BW5wkh7LTDE4*w%O6H~!x_#r$ynLKOO_oaDy@?~aNXd%!pDd{ zCF5i?(o;J(~C~bJ&7BNY$&bn z^TX^%d|PN&>%fbTA{B9>#J~13*~BBBRN#u&L~4`tt>g*uDadgIbTROC)SP}1Btz|G z4Jf=xrPb3#A~LSn%fLx7hj0Ps!`Bf&zT-$eY5ooDipRBdMek@A=+LktqH6Y|HT1xE zxG-bMJ&Gdmq;rA#3hShJggv+kY2OeAwS^SB7nljINnp0ssO|YM<0jZrB_+eoWje-{ z4K0sQ590Gzl zCUS0vx*;d-W^AzjxeEQFEOeZDN1H~-EWxy?+366@6_p<3K9|5{+PqcK;Iq^A6dfsu zhKz6Z*lB&wT|NaCC)Vb;upZ*Q4j;mVOple`&uDlXy%nNuUoc32;t9s=tkyO$`;Y+L zED}1-UqdpV;gED3DUpDG@vE+td;vN`YlW?>c80mD9<0Z#DZ{};!d8|0X1=3S`5Ubd zEY^!!kg;PsyY7hzl;kPkmsg2M(|UNyTv4Ftex$J^mG8O8SgT+LnxbF@64VH>B|~LT z5gKyzak(t>1&QAaZ4nH35sg3|om| zg|}R_1hvOLuJa7=Kx^bz2L4~sIC4@9`sHfu`KE~^?HDA#b~{XHZI+{(5I`#XbVhw- z>77&7BD+NH{CNe)!bm!Sg~2rBSww#!&~j@<|FTX85~jFYPrAnBTKFfRg2?zStjT5* z|DbD_qK`F9Hws>&NIJ{?mIk02k!PHZTN2oJATpVdeo^my0g*=^{FqOJ51M+Wu*y2f zwZi?(kSVDbCr>UFIOZKR-48D=#fv$7LmrIN`=B!#Pgr#jFKtz@{mnr|9|v3nPA9LC z@$0ag%4Vv2U$2{5Jbk<*gAi{uj42t`9P6bC#Bez`eN<#T2rrQj!~rN4BWn@Mnu?C< zr?&Pmg4d@yb4N|HIyyO(hjo*@OjB}DCOd9WYHEg=XtLdl1dskwqw80G##yu@Qjmd) z?o30(;kc=}KcrB28fmaIpC%PXVWvVtrca!}K6pgci{JF{^Ck(vE%VDMg~G`X_QO~R z8#nHMo*lkh+bn06KL>K5Gr}~5YjvRgEK&~B0In;L##H1Zd(yr zC@=ZK5&`j{?ckv)>>hP-fx0-xzYMmXJQw`bq$S%a3QKip`^gDm2E_TsL*tP{GYshX z%jT8QN&dL9xL}Dqlm$*ru!am>lBul>&a>g`iX4NNS{)i>_5wZdV#Ct`X#pq7n1y8N z4yl!`?UU=>7VXmF6_|b1Dyw4;jrw6t-$Mh(-eUFJO$lNixVO!y2t9uu64E1lTFrYH zr=FP_N*(^#Ho6QhL1nX=PffUMh%J(W-!eS3)%VVC*AOR`78mYi&f^iCU^PX+dTDI# zEV;83&lxxNY6H4rZK@f?n4J|K7#o}$FG@YWq;f(B4+Sr(C7^cLr#dMb2);ZRt6FZJ z;P%0??6K8uVU5bk{)TTarH1{OX!aB)W*2`|8?D`*I(iSEc!p>?@2~BIJIRntl~pX= zo6VC#OskKK;m;N-Ld}+y-O1gWTY6hlX?a}>K(2mIP6qZpHt7xfZj2tSEzV{r20J!P z>uL8$$2nVPjyX{GXtga!-=uvBZkX*x*729*h7T74bd$aRsAMyIKax3}eR{1U4*MH^ z)M)iRI|g?+rkw9mh4$Tse#{%0OZRZbmf}KACmgQ8)Mv2RiBI(?sT;W*FW??jbRAL5 z_0d$^dIA(_dtCBlt9e}rxy_jzlVVN3Z$(QG?QKhRQ>3=@ zbuzP|{M+;9Imf8tzmN|0O)DBMHFJ<%WkcZNep*G?>H{0(?2g>qQW#sl<|(MZhg5OTpJV{H$;nNOr>4K_G`Ytu##D>fS?x(4{&zeqI9Tz1G}Mu|=Fao1V* zVae*8ZzVEp?p;MJxlYM1lOI^ELcKIwcw4)gd_;eYkEvvp5UVT1+QDp_>i^9Rv1-BJ zCiVYQuFrBba)(JF$+*Tw> zH6E!ed}X>pQcJEHVs%O5u#$dpJsTOD=m#A5l9I_ZYDjwX<_T%2A*CcXJxOTzkJ9Aj zZNY+~v}1{4kTEcp3Rytf%$d%E(%w^Ib8Ho%Qe?Oy9OFHLrf9r!W1OOPf1D-IxZ4bJ zaZHKT!UbO&^H4}?u}4(HXJ?i1hf8mo{UmXQnJ01>o_*(i0~_ZGF3gf;cA%CI{Q$|W z-}2-&K3J>ao1#YUwVYj72b}RR{w9lQwh%JMcbD!g;CWwk(fn?jO@i)dT*&yN90=EC(Rf(QsH6Y20Ndouf7@?@CbriBZ+Zv7NU(Wz?oS zOGzlYrjptF-H_js^;6ECjAp<%va^1r{?8u{7X(punb_H@P<3umW%{C>{HIbh_82 zSJbIELnx^pEci=Hn}AT|#N|is2oh?6_T58WG!@A5@4pH(eXY$dn?pn;KB;IWp>avm zm|SWcHB%PKdT^VfD&tP!hzc6D(Vh;~lRlR|_pSWd zND|#5w#j~{%N1IP@!fGF3-i(0AasYbJ1KZmi^YYM9b@=Iu*x_d83>_RZ9__+>N&5 ztysv-jqW1L;T?Xs*2Q>lNW*Tk@ek9i?J0_(b2GicyLG_Bdz+_2*rgmTiy;Se|!vDd{W)WLaXLWb$V{p zl`z%GSf?bAx`-j#3NRbGR+$RkQyxu>$G-FMucADkLfpr6mu?_I6fh&g~N-Z?g0FcbfPs;z~Q<&W%d4G z@WeIGJ?deMJzgM1=)@C>~zdVR_&q zY`On_9?NCD0en%vhk^XeoDnd=kv*Pslr=nkPV@{dH!J~-CD(iv7`AV*tl1shgPdw& zv!28j`^Q-62q1=8Yb5}KfuhA3ye7>(G)IjZ^j9Wsippw|vg8(an&HDbYSrY}jcj)t zLgBSp70pv3u^K73^T8(@{23mfz&mrf<$8!?WXon;n8jX6LL6Ac~y3RcpQ=iiW7 zL>oKgr0dNf&6{U{gUh6X$|8s+{u_hpP4V~4CGwwLSO8y_*fE_rk}ApM+Z_7Fn5jFg zT>0XiS7n@VN~~mx30kP_^S6wwwvBQN?ly}0J02UJKlW^LEXepGxwQ4STnr3IARlV9 zupX2(*7EsHIF_Hfl;fuJD8XUB36c<6Vw>;&2Ekx{v6aRaWe6Qmq*16S~{X55DutBw7A>b2 z7ku>=q=V6{p0$+@+(0HxszD0K?G^(57f0r(tVpa1c|81W`v#VXSI*%rsU)_Aj0nkX z{J>q_K7V)_ZU(Y3T5|DDLZPEQZ@@U}g{<3jPz=2eD?aa{5Eia)%0B{C$={C#Fz5o_ zoADr=X+jkmuMEaa8F*Md@LII@6Ice<3@i z?u=!pm4@rM5WEUF*ZPK4>PanBU$I??w~=?9fc7*cZb~*fFW_)S7r}M9@V3lV_r%(p z&D16TeC(CR5f7~*5|dW&1|6n~zKYh;r69T(YJnU4BiKN7bLab2Q-iJUkNolZOMoCC zG!$*#F?4YI6TI_B)#Xo2OeBi~jannEUe$PG9W9ZmB)Vs5i?o0k7>XMj61KMu)7WjK z9UPb-A=%(^==HiXF1lW#RjI`yFzIS&;TByStnof!##C8l%~atpV`c~u>DE-2KGgA2yi=rv5hxMEBVof#<7o=c z%;2UYWr+!iRTLZyG4Aq+sh$a3T&;&`;wH>EoL*zZJIu&VEJJK}&~P6>j`p}Lf{+w3 zE@xGQh1S3}6Nwtc7&A!fu|oQ>qM`;Q!?m0G+fE8s%qLHLK2HTF{Iu#MEV@KKd>M0fAhX?kQQ8)iDP@CKc zAqt6-RXy&4vx1>Je-^TPn)vwNFkJ2w?!KiY$gkf2MlGbt_pP|AP<)*ndaKwa6?g3sl+%c%B0d_j*Wo*a0-uH`+DD#O zK_AAPp*15cvd~ZcmR4nA_2^lZJYkGfSJlrXRAE<*nG!5dYiX!DM!lAo>??zu6=M%k zAXh-~+W{#O0Sl@Spt-Uc87dH3=~9qxGtkTiY7@3s9$jI1p?I-SCd5QPTJwJCC^dLk zF?^7yQWOg3KE@*hy`qCcm~N)o-`i`mQK`!5`}SxwXWF17T$kKEI2&sc)_h!zheIvZ zztCO=2JdJsW%=zuxy`guFtQo{o_s#BVi)~3|ic~WL9p76Z;-`D?)=T zQbcKK80}}QXVU`qpCl&+n6K@1uvVo)z9IQb4v^s1h7RTp7}ho}6pWkZ2aXLCT9`sI zi*VTEV@=&Oc{LUMkCs5PaBeGZwI_1e)mph!l|8?(p(4_F1@?Y!Cbmj`9Cct^f7yQX z5qAxs79(Nub`I3V#g@?EGVde9jmkOVb~Rs$W0KcQr@}~q@Q~c-eef^z5=Jx79hQ5M zlz>JFZH*S8P85~SHYc;c#he%Y+~r+Q!6-a;>5a4~g%&nYE39s(H%g60rYnNR%{&fK zQ3U=TFT%l-jWGn9dlt5=c{rvQJ+y2or9CGs)a%I$!c&gsxVIf#djo46a}JK z!NUv=Mf21S)jCskS=js{)EX;v7m-ank~Qx;uZAS8ma%GG6K9jb7gB)|SBFtEj3zcRxoNeQA7vltO9-r5cSX%Tf(B@UrxP0r z6iNOwv=`BGZ+hxm6xc*3qy+OPb?o9+KF}LTT77OP9%xZk?rqkkag}CMDuT;aInTQFxSvZ zXxLFy(E`!&O(czn@wyw7>JWx_DD^kSe;lq^zVRpw_TtKpN(IjVzj90ke|d z0r&2~fsvT^?;okWp5~E8DVS{r!Twfh8oW?ruxkqh!@US%(lYhn1}-eL;#AP%imY<| zF1pGiWFU}KE|XK@U?l2SRs@jjB^g(63^GVo*U+4>4MpCPjbH-0t^_UY6UVSf6D7e+ zGBK@Jp`oFvJ!9ntd^a(x)6EZa7Oe%oL!j`5)5DXIbN=+qk72u{f?3OqaFhlUT8Ri8 zQyam2b1ICcK|pm)5akxPB@3&1Qe8nAjdSoWH7Qg0Hr7!XQ^>U|fi_U#T+^{U%@jG| zRGQ83Mb~)etM0E{n{Y(zmhp&beIuWNR!`^Q=el=GQ^xR9;DQa_sxPu9+&N?Z$eTJt zgWXH{xo$=JePy*OT(05L4aYbK2B$2Rgb_E-HK{Neg|F0N4&lc+58irMxp#)~nRxlE zpbx9EucB8y2?3>L5mjXJ9Oq9=Zr>NSCe2PrZ7-5vpm{9O2tw{+dVgAaSXbO?g_9(Y?E-8Hf8G3OlW8At@)d0#z z<#;_ftW$X#a!|DwtGB-Q8}6{`e4Z+tQozl&Uwoh>A_*!S{4IL8+%HrR243`Xy4UcX z+F6bw)jQiE36%PwyYD60Ix_g!WoW7eD_s=j>|@IZ5Z*M+I8#$&5?JszpyE3Wv&D`F z;f#4j*}fjpLqlvE871zNDM>*9fY;7P~xZhgF`%9(wZPAP{-R_T*W zVkM6fipW4QIS@@qePf*ZaF{PN@ORWOLrt}X zJ8d-ZRaS>n)~b`ucKW`XX=jE%ZSxbBKGMU;$TNnIv%|3#I!D&KO8!Mp1G4EElH^P* zK|4n+U49o4xQ*a6vkplK7&Dwd#s5khy_izTn=(^Ucpt*=4f6uAwKdQjSfXCGJ zWtnfPjp0oyaKuFu$`~j_ewov}=N8+*>cL z9G{_di8}FJvgu49so_16&}i9Svdth>_ns^dvouoadYf1xd_GML(m)Hp>E>~OSoM{T zDpomHkqSNh+iaJ))jTu+p4oKXF*(&>wHWPswo*Fuj20%IkB)&=dG*#e6xBTLTPg2D z0sbrRn=dWrv-~@ymo1gH1?h70AzlTR2rT@(I z|6d{SpC2E!|F6>jSK$!Xf8P&R_9<`h^?jcwVLVN4mA~`Q@sD4b(*IUAD4x#@!uYRC zD`Kz3B0#BZA#s{c_VFN7xyR5r&3dquho|HOfI+JQSL%NoWX(z)|6hIaxmZbH&>CMv z;>~#L9P9n+pj?WZEtOb7QEdV@ukqh4_^it?Uokb|zt4^b<%*79yXJjg3`I%5>^7Op z$J?}*1uOsW|Hq3OEl~Zhvl-$za&ktQY1`~hfXaL$sW1BMNB;j_7cS?I3i=So#oDiT zAA!|kWl)RyPy5nC2W8ZzTNw4&2C`?GHhe$rg$#xfZ+TxD00%3{3{eode8Lc; z|Madk*>TphU4h)m{_Ex3#TV(4&)UP~dbY`FQrOJEc&s-G^qmRk$shE@$JjeD*WYUvRj?0QJnf8Hs)mPWMq8K zJ}lvXZkda`U+Dmhf8VB?qslN#9&eOL_BK8-&J2R4i@sM#na@W0St5T9k0r_f^hN)@ z?w^UU@}Wn#l!s-khJW=B-TUryP8$cuG#_J7GCHF2Xl?iAGAb-1eK^47+2g^Z>vl1| z$C-;xyV;c|##<8>(618HJ$eYL*WALGuH2}FZ?9nh2r51KY0+M9hk(|*!jW;RnCYT} zcOBoOnNy_-Fv78JqT$QpjlFoir1){0v996l{^@@1d7kgiU0xYq>3u>>d>{Q60(Xeq z1It~fg_4+_KjaUdt24_4rg0rMYeHI#s&x_&?;jMoo*WQAx*s%;16t=&JG}G&U*P(K z)6N^f=?a~BsoUapw7>Gi%6!0z-WrI{+LLJBKk*#Sci#&$T5ijFYUp+*NzM?6{U?FA zvs7dt>OS_gTRPnGab_{Da4>5TBhq>w7jT$Gvw)-GxQ>SpED&X|K7U}BG`s_Zb^aE1 z-G4$qor>EbVe%?nw;v;>cE&TWQ8>Llhb@4N4|&MC=Z#R#7rhU?^M4$Ob^b&@-x%B? z)A}w7zg4=f#K>Pzt&`VO-++}zw%Y*&dBa( zn+MVL@jr{??5vLP7dZO8*hxF5&9ot&Uw?UrqP-JB1Tsdb^HT_*@TaC(yyg}lE+5~3 z)G@B(BQEz;k%+UAH#=QvfqHRLrTcT6+s-$)B%WVg~p><%geD;6N#j1O5Bos8?Bt5?ovt6N`!7ejTOp|IR4`KD#4%{s=W zPxOqn;(un$tb>tQ(yG25QN>={QE*VoFIMuD1^?&O95fxSc%W2n`4IvHwFAwvuYY_N z`6i*p@=on<2jO{Iu?U=Wq>~a1FjL1pE;NIqQ~s1Uugl$p*ltD2n~F5cI!+SN+5pJS zSxc!Dd-1IYMZ-7?RWu4j%N!0|?-4{r6R;!R1X8@Bgs%m0@x9Ov9xVD1}0Chqe?b#ofKQ z6(}xS+}-ui;_mKV+}(;hi@Uoou(*EP=f0o!eSdsEcCXzeC&|p@WF#{av1TFEcHQ^K zjxW;0MmoVkT35{*a85E(e~fl+`tU3FUeNF7yc%q0cs-POvxBD|C8|a!=ZesVAxCH! zOl|Esd?X}ZG3{0qt5N;5^msv^TV4L?cHa-lHSdztp^U*{$*;v@m&HS6CVsg%2(emh zxsNTQ4%ix8gcKBTr6inqCWb&5b}kRy6dJ-4qYqG@yZrJoz0$KP!RoVivOGSkAd=DA zdS0*-L+TKzf{*rSLkLF%w0d_O#2utbs@46o83Fw*7KpFQkfCHNa>#l;e8$k@wBM$T zXeFM*dL^Zo4G||y1xdSOkDnb=^7ewGaUZ7v*o(DN#!@v#hVZ-KUCV1o4zRb*w15XP zTpmT{j>C6Mif5TuqIMRkARFlfe2uy{ehx)9@kmxg9dWmGuIt@by14n7F6}6;7rFF% z-tU-_XObjQ?5=rJIGXbMrSwN%>NG#@b_Y+S9cBs+qB|azrD*^YS@+JLLwk#_GQ26W1(=h4A_&g}_t7edA!G z{3hhvZPP#Ojr}!8+{Uhg^*3g7xv&g68>i8daq!uKhvcFNgYgzu>wY5npWC=7yk+oS zoU4WN*e$Qy?Fn|?^V&X@fU&C&4xUhsPM=-ZfP0mF-%ibaUWEn<4V8PL)^hV=2sVTntN*9NJn&aC4KiMV48jVAF){5Bck zJxj*SvBr3oB@K6trQD{(G@YJROuU21V(`v(26V1Zmh(Eh)wJw{__^(~7JCo}rK%A) zk7ZjDk<5`kAzTxqjndW#kTDo$IJvW4>d!M=lp(Ik)^y00%Zu39@i96~<} zT?r$djxlR#49%$U)|Tgr6KSf=blhFhvO9Zm-u4hEKa?9>2;l3lJbH(ew^pwMnf2>? z(sH|VI%y`eReX=~g#B_j)roE0NUtihacjW6-;`85&oDyVPNXvc;ujH(lTUvRJ@Jhp z^HEMDPFuM-P9K<^>1#2UJ9P_@j~DB*Jv$UvTu$)ZQUPYqb5Sua-J=R3m)|91v&7R@ zbVCgk6frBi)hdr%xoLG*XY@>Qsw+MnyBQMCawDegn?JSO6;*fIpiGlXMU@Nv=Fxn; zSC)jcGz%tNqBTQ6orrYs4lv4T&4D&Q^Gd4?fUsbC%CBX&@{Bbp|w6Nq5%l}fT;3+^it$$KiT+z~LG5w^EH{{=kOzB5g+*^ZI z%10UT99D|HCyQnISZ=!lOVZ-5MNZ$azm@!QoBLkOQBel)I#e2dyswT?ZfC8o^VD#+ zfcq#FGb3bi9|PKDLu9%*WxuR*J}B6|1&77#JDf;f6kDG~m8?xtWf<@98)5f@2n| zIb2OSfLPCzq|BG)u@=UlO&6H{?ayHf^Hp~G;GV`644SCE@e+gMb2f=@{W+;&*+(yn z%X}Q+M%ggYp=uv8K`6}p;ah_tyB>>6UbSZ5eUabiF~Ch&kddCeUV;%if(z=V({LtO7gR<8KMNXdwtgO!L%LQkcy}`T6lc0Hb2Pz4zWX}Z>0nfa#+cc2 zT5RiP5R)JO8U7gYA}<83{}l=@mB|Xwq^_J1W+@A%XNT@2tdUa_IHLqC^Mo5)-3lO* zIDKsO*Xk%Glhc3jnYG`;C>Xn6v*&t_Blz?j)%9I0l{bXE44|fwLzFeExQy(Y=K$c# z$e9N^S9dEuQ4o<*)m8vcf%VePx)S9YNzrc!Bec8-uiim$)p(KO<(`%j?DcMo&00JmT(-YZZGgEs(nxgLYW1tW2KH@#Poh|7RXK|b+MUcm;M4Y;uP3;n3i$dQz`SXB`o&9 zxd%{2A)#K*XjbeiuMqrPU%zVfyH%TaEive!B0II67n6CrtR9+H5zU8mqG3)z-(Ll3 zcs?ngf10S~s*t1Wz;_*gqZ0dF>5XXUQewbn2}ow1rPpqVh>!}z?j(-Q3)=?4LhMKS12Yd!*=g7_>Vv3P7V%kbFZ>v-3@L zY(fJ3>1nlo;qTvSpy|LWGA{$Ml;b^hwd=x>B1y7y*GW%K*5dTn$tS?eg1*)57Mk?! z(g>aHJ0?Wqj5Z`c^RXY8O6j|G*Qym;J^@_Uqt3Tnnt-wVx2ZauuoKG_ zHc#aUkf&^Rzy{fjQ$OpLcNp70jOZt7K)U+bF5eDBN387LA7APJn5;#veY;q|U8#JD z$guqUMIhm+mwa}4;FKX=2~wS6!otnUGCS8k1hl7h%F~6YUGz_*5_>Q|$~6Wx3ut^V z{UkvEX=RQpOIRMdw_Y0J5?!@}#(^u{PQzMQb|lkDV|V#SvZ!!Lnx1geap9dLegvJaQuboXQ7;hYvvfHf`{F+(c=vhwt* zeAR27JHng@LcA!HjBDh03`o>hIN&X!ZPYzR785)UxAL+asX3M3L>33M^WE#ZX12_KEm_v*5J@LCUu3Xg-b1PEz&TinP29o?3K+5>Atno)K*7PfBxQ(QYe@yg zP%oPP^^^EG)H{o}{Rd@4sx2ztJ(*}Z5kJ@{gyWN(!8}LkQ#J+?$rwWQOl_;sY{TH~ zuv*P8h!-2@R#g_S>(JRz#U2}dqcx@@rseDu$HQ$4mlw4=Nev5v-tjfj;Yz`s9*upH zb!Q|I*~W-?`Of(YVA{LnKn4bDuBx3S@!0bR5eTpVDLIXhC!&V^Kd;G_Tsh<)P7EPb z8dqeUy2l@1S5vpT)pZ`UFi;(9c>9a?ku;B)oOQYlaec-<6eigH$BLsy&Xa1#TTSWF zeZJp5o+Mfx^RvW@wAUv^ei*hu6TgWHHLkZ6l{riMTlAIN*fxlW#zXLvsZ(7jve~h(Y4T{GLI(gIDWiaIy!1(@#tC_$=<4a-=HXH(RGJ z61c9*5Qv}t}@<)?!Wb$O~qb?dDmI)&vY2?1X)AJ zQ*-uaT;Iy)9)Sq%g?@Q5?5mf44a^*PGPZ$|T{9jE~W zt9=#^<8)1;!szT~CQ-Z+5D%YSK--7{5)h|DeR`~I4}#>Grsv0KrGymPp)RfktP?2% zF{-U{C!z_q4(23uE1Zk`hv8TQ=Me%1c8hIV3vDOfbCKq$AQh>gl{Bb7DHzW0r3tvl z_;D~`)?*;nfDEyFc9~;ha%GpU8Qu8=8{repN>kF$>&JJTjwy?F(bwMV;9RDBB*mS%bkm468+cs8_X6pTO~?zeZpp_YSrj0 zJ+imjPQ!G~k?wiK5k>7f6u)uT{u}IIsFO`AkY_U=`9j^UiU?F^NFbRqzU^fx=mF{qe?spjbQH=6p!}+dJ+dlI1L2vHP|L! zx$%gn?p<_M@#4&}~im)0IQ;`Q2Hm z4Yxy{d+TFXdLkxaBV9_TJQA9!0%$y@v{1@j@h=ilB@=h70Z)71^r5Raq2U!bbJ%N{_(lr*I3h4zoIx1Z@^y z%8Yg})!W~z=IrKjN(Iruh^0FTw9i}c`40PinYh_Pn`t^)GMmwcv}JXkz_e8SP%kSi zESWGwjLtMAC6~5xr&YoOih*^(hu@-~JL8NudHstgkrQ|VWbiLh$()p}=c|D>{CV8OJkr{(iNyNR!fcFTXUX z9wC>*+>V5oT1RupLni%nPRP*$V62A@A&uM0+AHUf^El9N9#Sihu0Bodd(>z1@mOFD z1iz{l7Z~o3e#CcD#LIrW3}^j;WyiF}V%p^`mR`Ur01|9bMhTu;-UJ1LORo7#j1prS zeXNC6b0W4%V#2pdChw}!)DKHsrSS!x3NBe^BWWLOJ_=Y=Gx!_~ykfTlLQE!$5G+{) z=-vdPg!GQ2Oy*0h6h#m(GbY4~tS@iFDG3Fu&mH3>W!PTru;5_C2I;)I#2&d&9nn`2#abvE_$nHIc6MWJQU!qOG(~m_ zD(p-(i1pWRt`qAX(~oNX@(awv*vH1*TMGr`mINrzXQD|6s#H4w?(P*f&}L09ovHcA zdcbPYl)U@;$N28#v5)%U)$wf~RJ{fcm3VCCyhf@wLeghrOSxI{C2i*N0f2Pl3uEH^1vg4w1U`l!(s802KD7@f1(F^C?roG~N(4%)h5m#Y9 z7`?668P=tngg&U|g`p!dfnT-|H)iPI%cjnx=Hp7F43z+UnredO* zB3L${jkJmP@L*ofc-LmMHE*Mrk+ILGFI8L1Y>!Nv0W45cJjdBsn#4G57 znLihSA9=#BVQvAwfCralcIH{l48hdCMF{}4Px~iOCPj4lixXP05 z^6OUhCK_Gh)g3f6y)ID{n$Kj`t>(2*L7pg~L_bQn_I0Y5x?KL92Vx;y0`v_4VawIoY|9t2Npxg-VVj zx`O(_Fb4loga>W8eMEzDF*>@C!REL)T3_yTT#?>)kk2K^v3Z$YxagjgnQ%g^o`8v5)}|B7_E?=K*=;&Jh^}cusXE zP5IgafSl@Pra3%zTA$(CAuVLE6j9~HBr|+sWo&f@6zyJYNo2cp#^XmB1Uw#`V2bOF z8-CZo1=}x^C29?@Ws;zD(ilsx-hbpe^x5`h&~MpQ&;6&x&sH91JVvnM+46@3<6S5H z(-qmjOCCiG?H{99FdNKj>vZ)@a=nW8`qkiYd!cf1b-DGvNe>^;Xt(8ak-?abw|bil zF=Eim$I6o|KAvlaco94Akvh<*fftpE~TQ0#wqPSzP97 zQ>$tVxqCoC{rYRlUGtSo#kCfr*|zyN32kh1if`rfwG15*K_lpfR@Mca_x${uki_)%C7Z<056zA{$co~GhssN znb=Lyz>2CsPawP)sS|BhlAgKKC&SyP~9DlzxP9{5-U31Np@ z?vgX+J1}}1+;{R6NRSuZIg>UAoilGVun8%dYrSYi;z;U5)#Dg(MyVrBG^=-!59D+ns#pzVvc z3yr5q)1j1T6dEzBn3dGi0z(BUO!F|T_h)?i{I#5?b(V*&4KQo71ZDhLU+DZ+{Jmgo z8n`96Sd727Uz)*yD{Q}QHHp{7jU)T;fao!Sac9}?s@X!^Zq`-ikdS;9L(>jHsgHjM z$WcmAAfV14Li23cKgpTn6Q2rGg5ZgzJ7bj_#$FOJY&f=(7z=nY>^e@2CquxcT~dwP zS?k15ndsCyKF+87YWxWqlgw251BDawL_!b=MO{lI`_nq)O9fsf6bM&!1LmA-q z>@V}aqM%SGaiv(3xxexL6@EN_djvciz_Q2W$XCJ6?Vp-M9kJhtN>G4!?_Xu8HQQ}< zG>=oO%9=c*(YIa6Nnr-ndKvY@xij5(KWRDNOTa8t$)2r@Q~^j+QaMJkyTXc!y2j;FTVMgdV?r zpT^0uJDhr*nq<1*jpgDRg0o%-wpj`Zb3ISOGNluFx6P|_^o~H1+V`DspqnyonbD>E zTi7tFEgln4NY@9#LljOy~t2<&dsT9yx+%N*JZf-@RQSCijg+k{AY|(&h^*TtG6$xFo7sR z=+k8%TGqmv;_DB-bN1N#KF7`#U$)Yu`qL`F){cY=3K9`~kto}-3mi;rB0mmJSMQ|)u@135p#BYYbkd2gN z@YSDi#dg$u=T5WhG(oxPJ_b&EwjttPcl-al;sxZ+vtN`rZ+ zOCQo@6Lzk#AAe~=OV`*uT8uKBQBLEm>9@(VW7;`Q{F6u(Gd!8x>dyg7uYkr4-BL8K2lONpE9w91GQ4}q3Q~omlxOpQn~4YyB9>V6M7(IIWQ4Z2 zg&3|1^jHhD`R=0}pSyBZi`jMm*(9*J|0)Gs?mVkLZdMa>pSqxVZQ&j9X@6b^xvZ7w z61(i*4?8+-xL?VT^6wJ6q4WPNLrN2jAb;vmNZ{`bnH)SlReKuOM&;f3Xhj0@50}|G z5DCxeYp23kw)m*&A?Kvfwz_5r!&a{G-& znj3cjyTanr?>ABDaiVgH%pGaLd*s;V#qU!a(F@Ql;LMGo(>Fm6*Q;X>rN#THu|je& z_(?&F#fop9(LCk;66D|a4y@H){F)=&(O9%SNzvQ$s6`mMRPpG5kZGR+QaaT=NG6)l(bECWTM0HV>|I#Zyhq|{dgQG1Zc$4mfw-Uu$L zdVlwSDf#Msy*r0mRIu`k?|2MG``7Z7YlqE;UaBoy&87ShE(|GEISR$fV9`yoqWhy! zpf1Phmpbjch-h3J23I^AFa4LVDeQ~bnoL-M zU3C6*c(T;+w+;5OHue$q|fJ@j>+ZHw=D&Ws#&i7`uISgp2 zB?PN?>l>&4@tO_K`fbB}4RU@fo^C_QhnUg(2THc-W5~{l;$kp|?9jf(7w>5TFFm%1|;=0ZxF2eH~vCm+js)W7|heU_!8cghVPd02-%zVmKOEe<&L?;?N)nCx1 ze+mx(rKmu7TcRPZ!1m$`5jlZhkHUvZ7Y6|{zsmsRBaoQw!~mY{dFgXs$(D|mhmJt9 zWdZK=@QpWyQZ{y~4I0%p0Z)ruS!*E1vsHqM<|7eyV@Rx0rtCK`wcerp<8BSQIp)(F4(hbsiOssUm!$B*+WNhz7g&YO@(*orCCVu@MxB5WLJ z-vp-&L+lB9q}y^FdcNCnlMEGsR_>NfAG0*ul)WGQ(}smWj|tYe`L-9@0h7HCzfam7 zWx4V&!sdTtguN9s9;aRWlcFOR)C?bkj)+`%vnuoldhi@wrrukSv$EYv9ipzT2uQjj z{CbllnFFTrYnA-OK@|p1(Ap+>l#Kv-o<{GjaB+LDjNB0&{Txh1N%YT4)8?NqUX&+xI+BVhe%bee$EqM_ z;{6l$HSpvIcfpGq5!QUTgnfo(a4Cc~r)Pimd;$xP@iWf%_ul{s;5J|`Hun35?iw`d zvaP6Z^`7>L?fuUlGQJT2m}^|DQGPG@%@rFjE*tKclQa7Jn@aIgwMPGkc-Jihj_Cgp zHWFf%17T$)YK>xVHW`FrOpL#V2Fu!bch8N*n5|DJ>WSI`+?FG_^ml^l*>~ z>_xO-2WG}sqeSj<&u{1C8*WFxTyYpf*X?Al6p+T~-X>Fap-+lKhwo|BpKm#5+#<27 z0jf16U(8?lD{uI{?o4MK7BkZG;!H@gU3&B==@a{7?cQoU?_&gwo=fuHUPw(H%!j76 zpfTUsc6)tDR0Jy`RC69YY~CCNB-}pa$rH>#0fXcdlO9?V@q#rqO0TPr&VFt`WJthf z=*$LqczO}kFo_By_8;;+_`yKd8>os?d2VGhDSJ7dl@V|U}|KzA^Jc+KAi3lwSa2K3eY7) z6JiyQ9@nEO_{e>gS!1qOA5-OxRbnO&@lV`uFwtaJuTEvE=iim_aw9pP74SYfBJ*&& z$JxH0)nbZ7Yuom?xWgMpHi)4HYL)*-E_xd~p)n+z>)xMBW;9lR&EM>hJlzwbcJ(;f zY~hv`?)H^^O6NWIB{f>}x~7KK6)Qv9m|7YA>q?}B*<~i#fA;-uP`UMcC-lbU=AV+o z7P3R|^jR(g&J9k9$3U3!ij^pQrC}VsR=(kb?%I$bwvm~h042b8FEk(hiqIU z445q>0%U-8e?!$rOxlRq70(zdvbKzBFkc4ClWiMz>OZ1qc1H|sTTv;Ff%Ex1fg+|b>#M^VJSP1GFig&)OEyr{P#;`y6lEP6`taey&&1=% z#*NhrQ2G7U$zY^4sWA9t2p6#!*Q>pM1`!`G_LWZ46gpvvT^acZ+Z|;y0A76R! z|H-z^5o5KA6>_yDNK!X7SYVO@v?YW%6FQezz2v0+pz`=y1{@5&p>J9fUU7Za=5{=x zMWFdRNF|5O&gq}|@)+paa_aQ=V+52f1#V|za?o=$L|7bpKJqB3RF%{X3V;dSGDgL4 z26cq*5ny1u|Af*5EkCD*4cty9e;PH0Nytfm+(ZA7$r#&ve%o&rFEW0osFLCEzSy0e z>bsV#?XBCA4XV7lx5)dou5mQyB{vj^$4wM=$zMRbb^g$3bn@0Cz*jrjWB%?MCgMrn zwhT9t7_wY?S6mD;J$5ZUS-$B*f2JzG9{!;4QtAwk{6pSf{iBlTVRwA@_67=hkx;q% z*bm3YGhV1~&RqjDg{zF1E_{yr_Bl{skNn;1cg3ii+dB%=OMf(uj31LRVb`qbDexXE zkc6Lg#X?*U+9T}uaa67B+s2il__w{^dq-&UIkV5GK1ENqc(X8&b_<1V$tVXt=M`nN zZ44&hRpbL7g}ZAdB;|7)udQHqRsI_Jg*1Doq|;R@*D;RRYlhLjdhwYR-JRbFjk+qD zq%DVn+z3}wDmFC9=on&5VHQm7liy$YM$6u>SyGMWYMXyrPLG%^^x$Mc)p)(gR{ zY%x?_I6Ar8rrlcJEr9u`>erpYrQBLS1~l(nZbwlCjB$Tn6nkL%SC>VM;DZvX2s8U5 zY%43vB(bL;#}r`LXJcbyj}^Jnw_ce_4;jfKvzvaMD9+H0i;o$rWs{C)_(aVn0gSPZ zTfG($QsxxnB-|`j1ZZ`HP)CdXh54kz*gI8|xw+QbMWww-hHyWl9X=gEwO7tLb^r zgqZm&d_`=*L?&l}{^*~NL2@@qpxt3{5>FD<8_LtW2n=+h;EeceuQv5{&09T!nr*k?RqbVR)R&y6KWV_O9_TSH-m^O^ zC2n=XzHZ?Qaa6#I^Zbm??}3?C-=bJox^GC6UF@|sPqn&PY>4wcfREW7ZL=~3G1}Nf z%GhfdULNSVaGZ{GfA`#!<8=Gg=i`4A_R5gf+nr`?U*wt>gBsN{0i+TDq_=RtuZ!0-$f(l-Knm)+08~w z1gFQ|jOxU4+|W&92~*$dRKic9^pGjq5IJpwl-HF7pIIcFfZbKM+@#`gG!V|aR(GtCwJvEU(YiEH`5 zv~Ak^*y86$`1@rKBr<1dgI=rz=r=|jX;l_$A+FK@_MTTZfGVT;ibro@8?Ws#8*0WW z86yAPCu?mtc;}_KQB@A~-9rkdQ4<3FCGzXjRER~ot0ORh*WR(u;qhndgX%c+ezw6~ zM^&uN?qlgAX;h#%<6M|K!;@bQ)z#)EaQ(rycqc#k%sQ-R_#PACQ!psS{SvZB*nh|V1%xbHQvlW$FtD;C&}ZU%JMNS@bMZ`sLKJ*dlNx#Qc! z31vJUehC|2XKKe}Y|79#)NB>wJV0OtlkBO3hD{VYJs5nN8}u?sYmhmGvk zYY$9jpyz`tv|NcC;K{|QVa!4g@80R*D{V6>X7wo&ug74Qt;LcFzMd}aP_B4Dey$%j zmRFi&ZZK8w%-rfSxY`(*?5tfnER1 zsGIr?@t%y&_b|djD*C1I4!-{*C=lADdr^2+&En(Gsh00Sc0E;~3>tD?PQy%;9C7>H) zE2(T^n$3i-C!iXQ`G2Q{1+ZC1Y}O7Gt0|XCm`=nBQK1{%JejI_E7c^bf|C02ssX9b zlU~VN^}2Hch<0i$WNQ@$ORBsVD=%^58gG*78!-Kau)(j_CGDIcSYki$KN)vc~qe7qD5y$};ZDcclarEw$BrR(n@K?#8H%7~; zR&*)GW72KRfG;~x!~51tT?Na9HiiUYHa#GuKZp##N$ayz9nP8_dx0g847LNQl0HCw zG)aTM1-d0id}$-N1ips1#h|bw6f6AKm!LWChs$A7{ajX8(mejC7GT6+E>$pd#zL>% zc@)R`9fOb{N4a}Wn*ZHMwqRMbJ^{#XpP>7=hi!` zljm#}FlkJqdSF6i0wA4J>xb^@NU0=89K<^D3zHHV&jxpg6`0 z*ShuWq9>(UM(X;W?$-~n&hSLM<^Ep4X=hK#!mi7cyA3;>AeF&HH>e+7N!4~MYDDt2 zg(u|!-K`$cWXKux(7M84t+r*nfQesgXXHNYsE#V;D~>+s9>DfoT27s3hx3#63Ss>+ z_~lFxX1WxsEBGrHg^Z-K5tTO)ms_wAqJV^%DGp~g{Ye<#3R8X;UB3@fdi|M*1z*q< z9XQ01PS_tWLIx@{i z&CoT4PX!!CKzkRG?e6jJ>4Ltoop$|~6_Q&l=u*?9czjsWFoPx9`aBiGc3KKg4prFB zf$_{3bfVhzzERp`gE7WhCuI;-v#$0XPgk*44-be|wEoMF)rHwoLdk)e)pCy66&r4H zGJ%Lbd9dC%&*qIq=?Z@0NZMeCv|ZytI?C;jZiI(oz?=dSkvdqi;HJrK$T}OQCS$UO z!FxN05Zd(k4v}qsi*=RWV9O`t)NeW59Kso);7ro-&K&O9b&V)rrMe3W7h#w~#n@;I zBE5%Dc-&k_qMq%XcDsiZ!i{0%x194wFi05Bu^FE&C8{Q4f9 z{7W9dtZR!CWSlsq!M88{HYtyE@4&Bx*X#qbh}_n8A9%YEKwImVGi~1LK@XpgW$~}g zF}s*;X&px3Rqme&D%N0HzcOz;_sRSEq6Kq@-o|v5zIf$D9}TsE zXy;EYS6#9<(K4aA?5HPE9WYH*Gi;0fJUObqEmFBss?AmZqpUoE6wD_GSzxweCnSLD zIGd>P^ekhb^%SHvKD|{>=B4+@543W zSfkGM@SrMKz9(tt(xlt3E7+woI6@CX;2;2P8+u*aPmtMf$jua1;#XWz)=mo=MR z)g4)|W3HZ{7&G%WNcns8)I3*0z+%gbhf|zsbg4I3Y&o3EdTL&?+KH+L_*#C}0m)2F zC;AJ!(wA-OCI!d(zCty`ywLnasTLa_P#E;GE(9yA!eqYa&bZ{I1OFLzdUG4caj>xs z_$@i-^*Gs0qroP%S*9ov8YD?v$cZ_OkYmT2R95nHX{Jd`wOaKy|AW3DrO^8i?cOIz zh>ef#ObtN@YOIF~p_FVr04>98Ri)nziO%%L^oB<^`nEGsxt1dmeiiM8+w(^gD~r7; zHp4Y<5AN-}aZd6ur&g$GX_1<0mE>bpGSgA2r%BrHKd;9h|F9b*lPcqe4PWl^H;r-^RW*J3wi7AKqzT-)^TBQZ6|a;t|CjvpqbU(~(1H7vvf zg;#lu@)Z!>Z{dBKXkQDi>&3yG~)Qw#}X;di>7NcpiAUlfOO5E{UODlZaFL z#>BGs@W>jP5VewT=&@C=*L@2$E213-n7usF9v10fEG%+{`Rnp*NNj*fUOt za;hkQ#H*i-p${Sfisu_Cq4cxwGzUxKM)to~gw2dGGFhakX)BQ!UM@&gRk75YF?<)M zFI5ay<0Hu-*R6{v4HWrW><3iG0OM&2bE^L;@|qlyzX&CBEE9A2h- zm0F8kW9pwbl+^rQ2IgzUo)qwr33&hf1gX795s2Oes_M;V>)80Jiz2tT!%UN~GLq|` zjN7zR#dlw#Xe$jj*?b9`FyH+STL<9&T=|GzOcORiJAfAxro1~<+I$LSmW|cT)DAc; zLb!=x`SwAejHJg}a6Vc269wfr#qXg)s3NAs$5EJXB2)JYC^5Sx-<@iHpZiv?frV^+J(gY#ep;%KNB3t)?HMBPv!6URTyomgy^!{qOZICyI{}AgsCF+%5y`vH zwOyqw*8!z3y@VYfwFH8Md~$OImxD6T?_Y1c3mT}y-MIeki<|28s(jV5sv|5ejg)iZ6-Eox`ASl{CmgE<$@Um9fixr?8$z zR}P4^YvL|SV446XAhdKQf0{C_&ZoyFo1=B@{qcr2`lK#vnxWI$!4CkEn}ygPc|lbL z^_)UapFX1wLCy`~Kkc?;3W)g^ul(kIc6SGC`xm}3Z`t$E@vx#TW&yunv{A1+<%qV6 z_yqU1$-faQ-7mn)zoDo~r)y!s4VQ7xKo28n%zjR~rI)CgUR&#$39!H95Qe*T2K^N_W_@hQmVjiF) zyX(1Dm{}=F`GQ;%lApexYOWY-P=M(}N!jz9mvCQ5QldL?aw+rl@e%8ef6ipeBpc*! zvb>Egs6@pgL(~ye!U~T{jSb9`VRYWg9e$r9t6J7Z@%1JnO%`XMst1W|tRTd!gDr}Z1 zKin-NV25LOFeJeCo7bDHQ(CJghc|7<>3P-~)NJX9Lkm|}dTg1sMnje0c2K=@?z#0D zK@Rfn5`frM=hmBTG=i5&=)9XHj-D^w8bXu_Ju5i9^H!E2enx?`JaFsp5RWMB;zc&~ zY<*WGDr=((NM49jeEMqVlnI!!RyEnpGub!Xz=xnfR$Wpyo{L(BOVD8VAgH9?4QcV; zpHo@2n!@cadofdOTehBR_?Qy#)Zh%KqS~qVFHtBsT;WyMMjMIit!_qgR zwjJmpQvQ;%7Sp^$o=s;92=CJxjVai%ev+}N_O>q<2wo&@N%F}!moTjrcy54V`cGZk zvByb-w0vgCzh1wD0}9XTK8}S!84|lMpW6aEI#>y}9oD*0!1>xLfmQ(|QaL=N+o67R zdvnI0ci*aYU<$a<;8nlp%7`&1GS=n_z_ap*X9(7kq47ft(C$87E-Bq8u#}ajxLga> z7q^E_CotAog8Ut=goO3X-^lz~3P52v9Cp0c?tC97Q|v``26S)pMd7(~$o%6Z(>zD8 z`{3EJGSb~&Z&a{T<9mnq2L4!I9hWlw6qANrt(veN zMFMF!z*lA?&3*ZqIoT*ut#it*-#+>9yaQoM?jrBe?$?Bq;%~NsEVz@ zx8roK^|eyJr0WWgn?4A|y)x80zAbdtnl=4qv4Rfj z)S`rT*xva~lwzLf3yjG%JAdM1T(?6AXpiSp9%QdF&i5w?n(33CTC4J)RNZnM1Yw*< zy?p?eMGS~!g5}A1VoZ}jz+n?&?FCJ5%J96`>EH9@nAwFdBk6!6dPin@g z-HA6UVTIo|W_3yR{(7M0@jO4EfpqDj69rhh;Hh4{x`^I$?C|vPgcJ0IoV17HlAxG@ zuni_G#wc3Y_Auwko)Nb=YXfBObp5em?neQ`O)fOMBzAsXRnor}_vF-$gTf zOW~w{!ll=ZIiZS}|3dzth~@JsfYxHM$B9Hw;s3GqPJwv^>-%=B#&WG({p&0o~BT7AAqcnzcr$RB2?jqGuY0*U@ zKHrb;-Lb_#J^JMHGzN}5<89t-^P^OmfyjaPC|#cRk=1ryBld}@f6`X^yz!fv!w`kA%H62!2B2{pf)23Ha;?Aho69)x&(_qkR< zMQ%@yru|wD(%HWw{v<{`kqO(biho5GO?k6Io2gg(%H?_$bXi!Ze`xdZaFM(iWs?CE z6p(JzC%(3~LO-b*3PVSR%Df~7_E@j{qRClgHgqZdkv|^b(dhf5?M-|3=;U8Je~S-r zFC|fxIb^lFkl(RZk=#AJx5VLjdG;3H@{cV2Ca5vjIj--|G6&w>J3r_x*ioGC-!uG` z>j5ukIWBh`j%CzVO{dhUEF_w7V7LZ=X)QH`7=QefeZ7OSOz5bV#P4)%CmE&Usj<27 zB1!fstS~ngvw%5UYj^L_&GMKmm5!$hq}vU7{~UQ1?vBQi6sChzcgL0X-8D=JGasjF z5@U}|kyVvNgpAy6?bkt>olY6;j&gq#A@ev}?AUk;8e@1oThs*ITYM_@C=38uD)!l` z;~mrI-QAzy6+9PtS+9rlEW9uL!E;GAJWr=Rmutdd`HpI&{pZEQcswcF%KH2NlD+dj zx;&jOHG|n7THx0_o>YE&C?gBn!r`>&+uqlvopB74d`mcC=rr0}pSturES7p<&HxNu z#bqK;XSQxQ_emB}#5&kRgKdFy;T9ayCSBOdjvAp3bl3f3=zm_5@HzyzLj)|H11G96 zb3EZ*FLy>cu#f4E=XWA(;<85lZydBvps$u25#SQ_-QeZd?B1#Tfrokw#l2i3)~el4 z$+t!RPeL0qZ3XR!T7=V)Ss0zW8z(q1GqsR7`s>jNn@QJ`&G3v2k+}f+-y_E@L!D)o znvH7G>0F_vY@3_SCcWKe9Ly13CZ6+*p37_cKl}#aj_?g9Qz9SI#&e#tZdWtew4rzf zTqD~)81j1=WD}C{+7yA01mSE?GYl;zQu^l|uBfsPe{QFY*Vn4tj}o&r@f;k=31Rdd z=!(B4il5lI7Zo%lsXGDZJ#zK`0qw39&GlVf(#&){1cDBgVzR>v`41+th61FNHCs=) zt8J=51|^SuQ`5hXmy!-5(Z5?+pP|7IY3OT({_$GSVZ|+|ua8?GTD{ya&K?%W{*UsA zYJ_r!)PGK9O#LYmhOBR0`g*y4+|)2?=}CIeB1YjlveIO-0ttx>>g-kvpo2+$Ne2hs zq|H2$w)?MkX_MT>U3u;7;wG{Ye~;m06MrN|#U`kK7c&VcIkO*El=!**pOf`xIrxPC z#|?fKP>&I9xRx?i;wZC_5C~tvNZIB~n!TlP~T!$)fS89k!pC+(4OPw&&`;}I&5Mf;XvUsS=fCe4_5YL!{}T;M|MdGP{B(vA z)5vVAo3t~+hY_5jN>TY?ZUY~w8+`q$lf)12V1D{{~$-CPX`bMy1f9zNYE1dx z8WSK1?isKXm^hwPxNhO5sqOEVBT78Bsxm{buk5hU=c3b=0`%LvQ#3pMMz<%cnYK3R zdAF8Y4dZ4cJ}f3A8M2DHEuz zDyygooprd=qM)WC?Ct=+DVq@_>(dEKJYMY-^z-}wwCKxUl>ceUDsHpg7*<1 zn8a(aHE*6#zcV7_OhJ{XNK6hHN5`H%G#3*Ye>(aH>|Hzr#{Uf`;a3~U|0AnjqlrAn zW0m0k`xLGQzGeOYvAO^E{r@9u|6BD>vN-?$mpuK?*!eGicu(u@5cQuP_NQif_PEfd z#i@sMyUG@j-)$idVrP{JM1TmX;x^syN`3qOB# zj70TIx*tg~$~fxq$iv59H^nP=Ul4Sl5m@;@eOtfECV-F5(H6e%3D!tyn&-QC@mmj35jNE5x(?Cg za5sKgiTdc+KGlc*frn7IV^aRcC!m6Jd{G7#`OGlBirSx0AafaDSb z4kn}pn{7y*2bNiA?VO~9?EoT~T$x4+#j{?Hj z*U!^uwxKV~)Sbf7CXquyXj2#4V(vHWo_W1?oB1mzXcOAc zyNwPgd%Ua~fAJn8-+M4lqu;nc{|N9xb7imzoyzxIPy<StO}ODHnH&TP`9o_Z&sw4Ncvoz2=N|BA~6eZuX##i^gCVuBiO3KWPA3L~B^lD0+z zcVAsQFhR@H?OV`^g|&n+K1>o;cfZ86m zW_77D@^FAJE(>yn(>~F^IKz#r`1e`mF9R(EeO(%0{=3x|`PF98E6cW00+9q+bTU3- zl{&~wmJ%^SAuV;3}U$(YmrXEzZ@o%p@!1RN(dEQNef(teH+AoNDVhqS~i(OP$o4Fo;lqH z#yl;6L$D|Vip{clpO^#^qKyF*dNm_S(UkfkxLP`;XO^1iI+$t=rjAWchwQt)ub~@M zIh=PL%wj0&e2px2jZ10$pA*otEJ4@5n7weHD4)YV*4IZbghJ!y871pK_T#jp_G}4F z>yzcV5v{E!O^Aq27w}XkcG|i|QQ^fME1U{IKOxCJr&K~PhJ#LBSJPbikX6qI>wFBV?A1xKfO2Em;)h5P)N#`5*_qIrf;n#XXqwmfLvwOkUrDC zeKLi*h+u#{!sEf~v-ylaR~2s#@Gh3X{s78^+8rDzLf8r`$fkAs=b;Zg@>toAzt;#9ZU;6rM^0sFfF>X1W7K;KeS^(7)s#Vtu^aUB-~6){kJreSkW7_4CeZCj5Ysf?ra>?c*CKo8SXAuRpX zoW}cyRp0#9rdb1yQ0ZTMejK8T-ZDCoCt+Fu^%b0zsYIail=CpM^&a#kP|+1s z&uSHYn0_!IJ>V~?s=m@7Ldb~i07@A0#G>WCy)tjUe|o5%-r9b$GdLd_sTP;IHsZw%L)x&m!C2`-g7gizf}*gEgNp|*_psuiaMWG60+-{~r7fQQX3g4)jUptiIpxQXKLjZZV_g*_8L%TmE zdSSLTI@(SzyZ?x{P(|C~R`C7P(eQ5os!tT_OWh3r^*?qsKKObed$2_mtDpDOUsUUU z;Xep;1c_Ym`MqnOYt<-Gdp{CY$ssu|tcx5GBs^=m{ymy^$3L z;1bgAc9`Q*lBaYvJ#2>mIKEQ5ghZ2JNFx)eEZbj7b}a7DpiQvX@2@nbl(JCCx4b?* zbDjPJ!WR|IlSp+wk=A7U#-?+ZASiSSr@JQK%@)s%`4Qu|R|ZfX;7dj3;?(05v>spi zm~C~@Tj}G};h*X$Q48=R6V8SDTy!oTj5V*i8lnKMnV$__)k2HIKRdq$Ig#nv`s%P&*m(D0%v=H^b|AW z#~)9aMWrr3FRx)8S1R~!8uF_X6+Ov}MMRYOq~~s|>bHH3``h*#R^4Y2w%o6xiVrR7 zH(39O&#Ng$UVp`A9_hg?B@52^Ts4Dtn;V=*fj{YMgHe{CfSO!c(5Qq_97>l-jzD?| zQPE0-Uz8y(^Bj)C@kEu1HQb1o8fb1_&lCG}0p>cY(uzZ1D(4%19%GzLBth@}t6NqW z3G7m{tjIfUYA(BQC$3vsN#hm2>|BEbKWwCL*=~Lgl1!Y)NC1e;FA3N!`AcMR(I62C z7%LmE_7lSHi%;7o?DdnDmTE#lhOWwtc?k;9jYy@KlIK*P;m&9vZS8#VY5CH|(O~>w z-#}26&eM?J=1R?YU#;7;fwuY4W?5#rs#aIYG^6+G=f}Q7v748r&L^#7NI#JDfaA78 zaV#3zV*7fI&=;bATT<~Y>%>UHn5V%RC_L9V^VqUjs}`q2F-a-O@wL#(!Hlv|#waUd zSBk1QTVY>t8x>(7>Z&%itasVP5#myjDg3y-(zc4+^=LSRIk*6Ed875SdOgM|RST0f z5=vQUfU}N2hJ37S*@&$F)!I#^evDTL5_(td6HXO8#>Xt|W>tI_MKsBg5lU$QBLA>= zFLij`$wGFWfoMC=xEZT9rgh39^U0fT)*l16BWd(kX45mWah>yNPC6vFTb(Irxou8d zt>^acxoq2QmhE9fqELJ*ZKfT^zQ9X0S^w*??S-p0eB4 z!H~PBBCdYbL~B(2F#v(X-QWvId%rm%ZW6rl)Rw8*6<7U!PS^^_@NJ*th2+D>C* zxjaHibo&U;R8hbDyd--w_lM%h*#UA{Ll6GrVVuYN#GT)6J!$f}Cfo5WKHmH$+y7tV zNZ|5P93B6=7~1{z9o886##>&1h{yi!*xBS63b90%UeBzncW>Qh(_SU;4u1vN9L09B z?%M3?!rWKIlj?uncs?O!D!&^U$jiSpBoW^k%(ipQ_{z|E806V?Fl$@vpwyUmkbJdv zV-qrV-Vvd0JORKI=h$lsm=Lrn;-U5%FVCyPOXI2h&DFQ4@X;yQRDach=gf9Dj(? z=Z)G!A~Pw~;^F-b16Hq1kdkq6cK8;ydLOJzQo{=S&fAQ!>Il$~r zGz%-jDM;tdyFL9q4i8p+o8GOFEDZUbDUM(~!A76hDHTN#`dhe?J%eC?;&OvLBu1Dl zP#8XNV0zFH6y*Z^(WXR2V1fGayo9jGB8Q%!1pPvG4DvSeHLReTa*7y%>>K2jIjH_i zQAi$zsfD#T8V=#dWRL*A_#HutFcg_p8KSWRsAEjfj6|4zng96)F>QTCo1mhSNAJ}d zon#sJ5>cNzYa2DAPI5FnnF9s$M}>aA^ibJ&xHiJ2O{@-B@BKAl@5Mjt=S&YF+^p7Z zGqX=DXc6OBcw*GuAV7|u8^k`7pCG%okx#hx?n_KQ!p=m)hH`c=w^o6d&f^m?o)tq-k$R- zD%5Y{g)s{_C&I<(#!(;MuZWK*;tbOE`YM~aW(ATGK4;y`!EZ>_Bq{m>Jt^f#P_Q$& z&tqq=N3I*wYL)x1YN6x^Av8*j;p+U%Y7jc6)`UG`B32V4HWKyDraR(&S$Uinf{eVr zGOoYQ2g(?+Wn}moTahw^qCxFB_`)XvIh^bUZx9w}Lk`f+hkQhba>Cv{<)FvFA|Ed+ z6!T4hIPo&5|5?2e@41L)W;7@LFzYU1%I;_D1%xBP-iAHv&FdA(kHm3p~qfjN5DR{??7{P z={z_{Z4(U96#V(<7l zt!O1cmBWwcd2PXf3<6K_z$>_)#3~1&>_7e9+dX;o&9I#%-T(c?<}|3R#i~beyyaN> z{dwVRNg%D0de#O>dzZTN)wjw~uh!>{t1}fi8A^___TFM^Kk1I>%6yjcuK&d~^tK33 z$Xb2fowe@p&FG=l=V>AwY%{^9&!3#;GojZ^!qR!E!`yO6ihZhbs&Np`^ETwlYW$*^BBi$Wg{2D! z40Z*;JyFJ~zFFH|y%!PII|asLM{Sqn`rKzG-`o*!AMAd3v$iczYomT`d5uP?dozS( zGxP3^y$OG4T1xUdTpy+QNjTo511xup16Kq~c16O~cpulbk#2q27bYXQQ^pIs+}9H~ z&{duvojSJzurygr519bjA#z8|hdc1H0Nv)=y6v|!V@90r*?vca7cPx3{oQxYmzR!Q zt?EMyw&K&aKqJvNbjH@~SIZ9xd^(frQspqpP`-g|HkeOvusI|yFhJrSlPYT*x7{l4 zXEZtjE=o#*=YcS-rD9~5^a7&!T_dDStDnGf+oQU0c|R9|j6&Dnu8J>$IsA}6a_HN8nLYEFGOpS&$%FU-GkY_vB^>QuY<7tCEpM0cEm6L3``Y#OG& zU=)7RN@P-T$OPn5PS^Yw*j$0GhJ-`?4l30L5FQ%O0-9FljY{p8qO|2i15eoGrDVU` z|MDh`k4cvK*?guNgmN(E&~;kWFT8mh&LM-P(w_8PerEKwAo22)-J|#R1zj zn;VnMF^O?c&XMCS4q#J3wFqTuFB!WKw6%4?<{NQC=3Bicq%fzZhmT_aPJqd44IHr_`s6a(i3E@ z1TJ*_8QV=PBzyt>K`s}f+a|$kx#|uEd#_K0k}LMclO(eRqm@as-znt5$Iz_8rRSJ;o z03R2Y=ToLmTYT@4RfHWDJ#TDl@2f(Wi@#XjZ>E9e;kIz6mIrddtA+5#SxDZS2LN*O zaeUjlgV^`^ABB9iz5m2=-f6id_Nqp*4;} zPhnKwMi<$xJfGRW>xkv_yTE~PJBNXb3*&V4E?-?sWyW9Fo0E1pwgam!nF<3dF!B+% zYygl1)t2B%61sdWwtiS-ck?u^T^|t4G`?&g-}%bxYrQ@x#*ld`^7{N2q3UT|?L^?a z=BPz~K;We%j#Q_a7nO&C4E<)alzbR&ex<-LLQw%BiURh91s?-4|I2wjSi;>RQ{|2>Je*Q&l= zQqwQ7tVMztGfks^E?&?wQ7}Q_7jr9g z;CyimK`ON9Shx%1Xpl~5{n^`-;mF&g`!I|wh+f?sCg(Dn7eE&xSu_CZu{7dg?2mDgbK*yjC|0GM1Wz>;bRT_rM z_flY2f<;#`?l20Gbug~&${#SR8h0tIVMy9N{9z1HCm8kZB$`#w^Lj3>h}R;`g{!eX zD&&_ESg*SwR`YpJj^l;{vg0YHND--0k6yv)qI76tY7uirc1_Y+TCw|V{|Yp%mwy}c zyMURF2g%P>8140#w#KeUoSI56oNwp82Q3tyOR$3@)gX%!16CDodmZ}}J z@uwG}&4m^t=x?In(=?U3{lKgL)1>DiT1!Md6Yd;>>md{9B&~wSWK8fk%6AKdc`>+| zSOK-~-hVkcI!E@+^!<$W3B!&txXYJYPQ+LeFt4!~KY`5-vB4}YBL zXuFzl+8DMqf{sR{0pGf`v3=AYFWr1%agh>ldA0f&#F1M~ya5E;IifSX(DeZ~yUwSZ zsXCDtEy0JLi<>^Lu8E*{*&*`6mw8w})`^k7LUB-A1CP z3uU1RJ%6P4%fjf({D0c*QR)JmE?zS|2IqTzQY6)i%+LSqTKFbV%|Lj zJ_oJ{?%e?iAHehIT#BZ)Fga^foyFf@=-m{#V|Vt|sA0axXp;AiocMS%ou$)(`?(+M z`=spQTj-M=Pnh~i-D6jo_uwIkm!RECGDY)w@!@rGwr)QYizkDpWsdt7Gri^*_uvkH zf4*_~KAWztfTM0`M%=bID;B=s=G0DxA z^Xn8=o!eokHplPnc?KqCt)`7$lRB4u0)i0u-C;f^RC{f)VUz9UiEFzRoR4mlUw;BG=76BuMS+Kz9h8^lj7e@=oHm<4*dw z3L4xSLx7H5wZi~gM^5eYp^>Ksx3P$_txruNzHht*CP>4b1yzmsvx}|1mo-wYS z3~Ec1?1)?iopi^K*P<6fyC2%ARqWBK;Ys^AMyG`VK1n+m;jTKO4*Ncn}h88 z_aofs92-RANW(vg->#tSq$`Y$8}RnrBSxSdFqJFjq-JAcPWq3%79oE28x2GJ{L6D% zQm9p`B=v{3utcToD?udr+iF}op?Nd|SYm>xgG?MHr4-oRb$R3nq9CN9KrMZYc>qhn zVJ`r)CCpRcLmQ`YF+B0@G>S@O(KBLVI3SM+x@E#54JMTX*91=%De|7y>k7jcpT1 zz~wYP$+df5blvQp1oQ4t*?3<^uHv30*Uu&tKI!N^Gzu))bl2?-mOU-BM6+8%1M?O4 zd-|L0kPSbl4#!;8@IIIMBot#;fGpc#KiS-K6`DzI3MNm9G2@~ z357U9a5q_JkFzh_)c!R1KJR_#=i|(sF)q#W(U$+yu%T1Tmy4afS=*h;Mu|DD{Q%cf z`AvQAspSXeK42F|r(@~|Xd6`lxZx&kd6#BhI)T&Uf=$x*BH~7|9e<@lAYveHzI4q1 z$@(+OUZtP)nQgXE+z@vJ$$wbGLxvVE6B_^CI0u~u*c7q(+?B|h#g_x9R1}LkBkNzX zrZ%uff?x%*kt#d<(v?s}UhK!c$9O(^U)a939Pel^?NGtiTD;ilc&uUrgfA<)sRVRE zE&?$)=O0Sd|^AOoXtSo0qt`#d5mvXSYY%kOX zJI?T>mz3nX6Cd)lHXI55sq2RqwU~7W$i?w*0o=qq(P4jT)(u~3_xm24x->_z)cMDW zhdSdrOzC5sO_9WBqtK=R2-KVI2TVGDq93akh}vgu#eB_E)@3^j5>3A zAMhVUi1+Z5&m#iXuDv~{i$YHjhqXe2y>h`eV=`>-9-F|7^IFHrd3$vZV=L89_mbtJ z+LLY2N5X^s@hbPuq%zB1`@q1wrBJtBCDGPCOA4>|&Sjs@?~M*???+~9W>0z__ziI@ z@&kNNYdrY~_(lw`vlHH%7rWh?7cQQ=J*$?XN|I!=5GWCFn&h$&C_PB4sF-BLP$)b! z-jI1KG7=EIljBU02|+|*UouxHlp3nI))<~mg+V>P|(vr31`W3aIb!rt3oZ_WrdVmmY)|;;>)8gh^#`={&pd-01H!ia*M^z_C& zxXIu2%f0!+!d6mN&NlpNJ2k-_$IwA{40XzqT@hhgv;56hIT)2S7kW}V?Tq!_#62h> z%%dUNQiX#2$FrGyN*RqtAe4gOZP(h;JH;2S9CX!9Ncamw7=@>4>WbTQA$Lt4?jJ?gbw7JQfxeBQ9P~% zyB2#apS@1Naq+tW$lkB$g0H~c*i+w|O$KU+Cg1f8Mx$|G2lD=EHh=~@b;-jQw(+FU z`CJOQ{BotubGKdb_%PLx6fe}l{fS8@rq5C*XE+nQ4H5T^WP2iIYh6N_>2i)oRq^w?8qwKgzo5%AerOboI8eU{S~dM9WetPynGgJMZ_qjO*;7 z%e?(2r}@9EALSZahb9-iVN<}hq+atazPH!r*WPNu1`Fzak6^_phXE??o9_9=+K-D- zXjh^1wQK78^|rxx7C=z{?Jw2Z!J|3W zb>T$xPM4tR(}D%fHE>O0J)|vor6;#USIz4|MMN$o`In1{Z}fT_I~h2kAbff=%CL2B zT-Dqa7uUGja&Er}_=%utAy@YSM(>?qlJ9&lDP44NQul{0h-)J*H_|YfX{h-X<)bgr zbxnR$TxHQ(Yrp4<_sB)IxiRxQa#c(7XEwoXV4d&j4VFe~6=+0pI

    YFgu@2cgecs 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 diff --git a/docs/_images/fittrackee_screenshot-02.png b/docs/_images/fittrackee_screenshot-02.png index c6eac91917df81b5ab24cf2d5c89bed132212374..12d04ea48d9032fb2450fac39ee4b7b9d3ab71cd 100644 GIT binary patch delta 15871 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 AfdBvi delta 15723 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 PzeieJ;d_;+f&c#pamKYx diff --git a/docs/_images/fittrackee_screenshot-03.png b/docs/_images/fittrackee_screenshot-03.png index b3e38a812124e7f01a53c426771b9194bb9b12b9..e1fcfd766cd68e52ddc12625c661904177fdb754 100644 GIT binary patch delta 21088 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 AasU7T delta 21015 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

    I-fBsc}dhV89Qv5SJG_)je z`x1};r>2=32xcne0J4*buO&}I@A7rI#183dkZF^e#LkiW2~5! z8p}-U%+q8?&0m~9_F&Zz>{DX{@5}n47B$s}j>Pl= zfJw!-5@Kmp8i%YA<<@v521OxJQ9jIJPVMKQiN@dig30Q-EWEqX<>)iV9&pxl_`@6~{SWyBUf;}4@tiOFqF8@?7*=M;T?7sz^uD?{y;r@kg_O5f7 zhW~?wh3VFr{3Z53=oqS*`!DkU+I0Qj19j^TrI+a4jj_na$-kXK$OEVr>7GsSe*hwU B!nyze delta 20146 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 diff --git a/docs/_images/fittrackee_screenshot-05.png b/docs/_images/fittrackee_screenshot-05.png index 416ecdcd672307236897c7ee38c62667962db10c..ff9e50a1b9aaa99e93ce0b2de1dbaafb92875d2a 100644 GIT binary patch delta 8861 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 D>dK;C delta 22311 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 PeNW@5?vqkg%a8vB@tEzQ diff --git a/docs/_images/fittrackee_screenshot-07.png b/docs/_images/fittrackee_screenshot-07.png index 397f0b535d1a7305bb7ad288672baad3365cdd99..a0f81b85f86a65b4864296039b390c4dd72bad67 100644 GIT binary patch delta 22553 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 delta 22292 zcmZ^}by!qi^fwA3f+(UQh@?oDNDN2|2uOFQG(&fDL=+SRWGLybAx64G5$Tfd?(T-W z=lgr#d*A1|_wvUuablmn*Iw%rYb^#B6^Z+u7PBCNjta7HqGkIYc;g%_bc>dL?)B)G z`d^e#N~SIw7wJjplMEhp3DNiwrG?|0s~yLiX2l1^RZ-U*6r4|}^rW-bN}UU^I^UbR*)5pM^b!Hq(3#*XVJge;x%xqNEFt?R zwvxXSj>w^0A)Mg-*AJ7i4qHontkgwbzTa%!I5?LgIbGRQ927XV{*FqCd|V%W#u>ax zlD=a9ZU4ucGHBj-<-@M#i#d-5g2Z8yV0#Yg=QAy9M*~0li}SMW70;uhVFojP=hs_F z7x9I(y{hxE&tpe6DraiHH}-bmUj+%|ocl1OG^S8PZ6=b2>Gn50+DDVH(%@vgw3odS z_37sJufwrtlr&lggEge7a$HQu#E| zr10TK2)dIJ$HD&S9?!tft}#Oe8k#x5fOz{4Gk%TNS_U-Fx`@rJBP5MlO}<1l3q1al zu-f)DZiK;O)$75VFIBGQoYV-+5@O>AbRI9GR=z0qmqv%U5EIVqnuxAJ9o34JeFmyj!JKNQ*1rB z$Zf4Wgp~IVg$?P+4(V9u*Gq?dFt^LH$}cRRuC}mP>={ZT^rGUNe@9cR92mwwz8bk7 zXSJ-I-NQezDXXD3+sZ7fsc(Bk!IM=s&{JzO4lMz!5btDWNGTHANa;>nsLUGkp2gmxuG5vjY&%9mIu!p2-c5=h| z-AKD&3PvG!|Kf4kZ_vk9+)~Xu`FBo22EC4$3ImJov##8%fMk%LideGLD^DJ)-qDhF zSNKU>>dJ>5ig2=IE#Y#XEwqaNSE(6l8jNbU>?|`Mc_rIpM4c}b@vuJ7C7k16EWeT` z`XD43Chd`E@nw;C#q#~1=25rSLE-RS@}^=^W3S`wCGyi#CG0eH!vUK?W&HcIkhY@L z3JK25>rbJt=xKGR{1jNkiA>vC$9xwEtDWA z;1kRTo1)#{b{Ad^#K!%~{Pwo3MT!{z-fO$FDP(?clFH=LqJxefRd0}rw^ve*^A=^e z%d3kO&BF$74JCVJ!a@BE5}l6b7-&WX4_C-o)UCCns9w=n#Xc{*!2!mEg$h7^ljtPS^OpQs#2?7@07A_U)eny+w1dvm$52UrAF6CjwE08bXXt=PbRl z*hx!#;UhtnWBFc($n$lUZ~~^gR-%;#BWZ`ZpS2GP^i8!EQf`rZEKN`+Jo^S&uuiVT zf0w{n9#)(&>(|H{R5!iT!O7EjrLipEZ{aC1Hq1^Whz#cq9~n-|?W3hY<`=59Vmf|# zyT>5K@<4)r5Fd$A_?fO^Q(KF_=(zg9EY7#hS79kxI5nEcza>qLi3|H!xI(s8TN3r+E;fqn#%(^a{g}iEFdS zf@*zd;X=N8Sm(Hxfbh2{g_ZsAk*jp7Jt1ZyrZ!#YIYpI7$^P`Ky5Y~{s}N(kr!jWy z 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

    RxoLW+F!1p$vj`fiwexlI04 z5mn$bwCCg3Gf?9Oyl`m|idV~*BpO0$0J2w2SH3p_O66Ksbx72YsPwuzpKhI>Y9TSc z^m!g$-9K6l2Me%eqvKkB2V+$4ppu9?93&5C2A%U3ckIc)l)>^i7aPdVTEd zW&QD_2_iaL19f9CV>?An#jZ$c{NMgERaa9}d;9D|$<{cTQo5UM{AFWcO#Kr8{Zm*rgVQpCC8o181fVd}8$WyCxvtd}Cs zM=?@0SJ(l^rsmzcn&7rC$j0B8=G>}&h9=fjz7^XswuZ(k!6l{6b|K!5wA^|?mqO~b z-%#&&mOK@;VVw%r2{tp_1*#TlPBw!Eq`>^bqJ^kR2R-&uZs`H#>e63gF%Cf!MocU zH*#R0BzJ+(aE~KyzihX;chI#j0Pb{x;kqdzX3d;_2L6< zUhDU-@M+hd`}_Ol7SNY%$RR%7^;zbyP~dui;&2Sy+D)MdJ(-(oQJxclRDK$*-cq`o zC-Y?Yy0@6}uS9l)jf9sWovnyWD)-Hy**(>vx(y?I@{>#;v>29#fxwMFTfSHygbL7? zO%|sb9+|O)H6{a9;VeXRb^GEk5@4jG&8|vXX$c7l^kzK|^HS@sxv$cw9L~%z;xcs- zF8mZF-P@&>klZ{7t}gGl3_G|eICl#0df?gS!`^ug;a~o0PQ$yuj%wrTj~Dh%10&w3 zY;L8KZf$-6+x{9mSTb={V=>x1USrZL@A=YXft?u?oFn+iX=`u&R;*z;nB?nWJ{6UL zqmDW{_>4u=_z`8E_PrQnZtgpky|y6v3BUeU>yQ88%&{%MZtc^Emc92m>D=$v@0V{v zZjIxIpxPmyaR;_c2zB4ZXGV=>%wmdbLwA2GWGiS7&{@8Q;sUer@8dd zc-UR|a&Z3gfEd-M%C&se2+;$KZ>NbC0APzND;skb<{bc~ba#rU9h5$I|?0WU-_qtaYB10;{b$&GtakwA&-I^??tGd7}<_dUgw zPpMZj^gRjKUUQ124h}n8$ zo}3rxyH!jBOIu56?7}}7Kxxa$%$7!&*Vn5xZVKh{S_l`Cs$)GNa~BPJa6ICBV`1Kq zrvpQ-x1wU8Jg`gvE6_?eUV16*u%_G6ugl*f5sexjX)#J>;p$$|>q{T`tYXucSh?-rI zG*DR4G(Mr?Djmo`aHX8U8W&3zX$VNPgDZyiYVVaJ;A;3vd{pe9YE~j|t0~QFCzXjT z=En2dJts?;Ck+Jk3ly&P{yd1)*zeg$H>PPM4_Df4^Mbr8LUA8mjJKrBr5k%6K+d$**fDEd&Uc<#%df1fF zn|~vebab_{vnD2%eje_pS6}1SM}fbw4ob}f$_MH@cB1F=SJmS`mn^RA_nd^T+DNpu zwVCD*wL?7*v4!^f80)zt_Kme$yGl+`o|5J%1H%-rd2q$m ze!kb_l!4VVD30`~%^B_|C2p%-ss@xz?(^cOt`;HmaG*b(J=^ioOt?Ae1?p+jR`4UT zCN|@tSh6R8#@ToKNMaIQnc3UttUB*4&uvI4e(D@+SLRBNH+_IzaaE!?;dYH|an8h(&r1ifEln{f6p?!7DYZgG*j;Z*O?2T8VvNK*1N7f_X0Ww8u z;-5C3D9ZLm#RetlB_;t;s$d-U(!R2!MCJ2-LkW;l%R7jcw%1k66T$-n^Odj0mzBg3 z262^d11{V~W*erKfDBIwxmThk*`5}C#shMo4Ig%AZy_>4E?i!t0NF)JIRecO#OdV* zs;llHwHgwa*$wid^BW^*mzGvKhlV6-Pl7D_rBc8{q;vp9%&nqj?BrTpYN*7DMp|We zc`Lr&A?~c&=ORG;d?tN~*|0|n091I}C#&W1*V7jsP^fXQq2113Dt9<2N_5hIE4gwo zX}2o81(SvZdb6p$g~hb{^gNLcS)Fz?^J)87`(FG=y~o*8_`lp_NrGxk4UK>P-%Xrc zT$Cgrk)?RK;McAi0p~6Qr*l|~AlHDBySTj$FFMlQ@huRZ5`Y_}*g3iUM2p`bkwKv{ z+3DoMl=Ql~WZelI@?dtAqCemv)qW{HeT)c3Ikv#7t7|O(mIW;>uNP$dAF21x^a>*K zQd5;$6(!?S_HK6mCpy2NqjUbib;kPeyPwm~%2+i)wxzd!tfu;ZCRdjZ6gXn3GaB~z zbZL_LDFM2q*5Bx%t575j&E=%KNCng^o9MvqsWp3*ceRp(gb_mDk~El}{(?g2QQBTJ z&JV+rgQH=Sg`kc0*k$-URshVrt$w-xLDon7MkjuVLzKgDrJUX)q~UUvEeTho5Uih* ztK+{0aVglsTKkAiquS-fHHY|iy}5V8M2$F*kne;;DsFBSNJy{WP)J}Vi~7nt2CnEQ z>fbO{Ca+56_Xhm99F|#|AA(eWX@D{UiCIYa{im}d+2Pyv!$L_r%tP-lGftrGy}kJJ z{TmmM@p^@hQz!M3=%j%a244sl;P$vwlZW=Hv8Tr7<4>*~EPs&lR@G&TYb`!QkMXm8 zozZj*l!#!KHVYfBdV+Bl{plVW>tyWg59+L<6`(j+&XM)T^2sb90E_TFxZ(kFljTNOy_37M`hcYC(b_y8VAfgRGZ;** ztuv^vc8Wc&H-?y!RS1a)^C`Tcf%E8{ABHzqqtfaqQlo}&v@@VI18wggI@Hb^WVTOq ziUSmLZa&~9baLtu()&&Z9)Bi`&f)+r1HbUV@C=Ra07a`}n(r}Gv$@2E*-y?oSuk8i z+1T24(_jJIl;2O3M4jg$(=-@F^$MaOC1&#WzQ_-&zD$@wN7G&WkG*<@ALX!ToI(K$4Nlus0Uzy=Z~} z|J~;A|d1`om0QLz~mq+bSCp3#Gku zFV_If4hAUBte+5CXnRRZi}Y?Ed?ek`(;m@Fq-qiz9DF!2w*UdjiZ4Wo=34AyNr_Y0 zd4l}-bth{4`besT?OA&<+KZfa4?o)gv-kgUf7{p@87W-!I36#;6$QCv!W&=d3JFw> zG!sm+Q`z^bTqK6nrj~t^+nPA6PVB(-K`)PAQv5O#ckIWIzjP-ei>uOnkN_Xjyu2gU zP{i+_@mwEG+8imz&y%GU>dUDAafJPQS_~NtyfZai4>l}J=7Uq_YRbEQz1t#HUs^S~ zLHYa#{G={BaH_CrX|vuTE`5Bvl9IBhQ0hh?<138y6UI=agNV(_vdB#guk@S<6Kc#e zAL;;B&)8QHedwQ6jY~2O!*BHr_y<0pDwTnzb5aqX4;9xwTi7ftQS3QY2Txr&=f6=_ zHKx$!NtSn@(coXMYn@**|sW#|s`P6s2PFAn* z0`*EA5tSTAC+)5T*JHiJ@k%>1#k8F&)~v6^UIPjR*eT8P zqd>&ez0LMMLb;@(L?u%4h_$EorcW8D7`e_D!}~7orBz`j3^aqOc98tRNF$}-3lQUY zxvMBFYAH5J-A$q0T8TbtqVQSEvCK^)6Ni~?ylam%Ak%TbA7?S!j(O6;%JMSpuJqQ9wW{ zC&M@jP^S7u3JndnFyK3vdEZbEA(fZLDbDwopfYdhOSU{IoA<^1(IdDz;5!V?7W{t1DADWmXgHW)-a?6S4>wW@epg`bdMM zn`B_t^NwU98dDMz$&cFOjm*r=&=iozc7{$Gsb3%5Fufb_7=a*ys73Qf?4k4KlbPz1 zRKTCmGyzB{Y=AhNoqMbujyZ!+qlsiv1nI;@kaa)a`s3Tgu$a)$a=oZ=njy>PE-)LXP1(;uI}3GPOGbC!ZOHPh)9z?Qlc|D z%%-Os4YBQzsme&I0GoJVcBl+C!-aSld~^2#tqq5g3BLhVL<3M`+IGM-0CuC>NkLZc zyc~%7njy0-`mIiIsynS;Kvsl}$T$&Kgw2o&r844Vb%jS|uZY&KDD8@X)AmLJ0w50U zL!#~AoZjRCw2M+}x;L3Gb+_dYl%xrm9iJs`u989V3Of*<z zM+UzYGM;}|e{{`&H(jPb#a}*fPf>30FYr&ost3o|w^y}`mip4A#nC+NC048Tn-n`> z_ZBX*>SY5Yj)q|g%b`b`CJRMl+rdkndHVU;>!U?kp1R#|Or&mp&35%X%2_Y}N=mGG zs8R}QwXRrc50bR{^8xq-6j>3GDUkv7N%41h`e+scW5$v}%Y!vQZ1IPOa_WpbIgZU2 z0Ot4C;b#AT_`Z}ng4nZ5Rs-$O*m*bw?T*>fVJKDofNPM%u@WafJCpRq?LPK zo^QRE_!Kg;Hp%!-lcrPR6bhnpX=^RbKwrS}^h1gG*Kt^W$4sy06pkY39)XoR&9TDl zl%!M{LWjQr*(*LGuU3b5pu^pweW>NE=2u{BP%Xf4gUegBPk^~nnj^v_y*}6wjn;;M z&yC0ks7I<7WwtoybpHLTvs0)Cf_=OYTCF+&IqDyfKaR!^!t)f`8Dp=gTe*KK@=B`! zwxv^dc@Iqp(QGNQ^+Er}y%;#?Cx`~EFkcDo4^M6BN+Wb&_=8=%GXo6)Qh;1D1Jy`n zKw-SXvLMGG4h4^9L94(pH!Ud3%oIL5$^bwyGY$?8AK&Q4(F#Pxeh^PVu?e#{Cyc+? zcJe(Qaz`gZ|N7dFo?%HK!UO|Dn1sS{(c=fR<~}bfw!guZ%N0H&gY{QVdFVs1m+9pz zph3lN`27Fb#N9h0J4<=-2isCQ*JoZsD1CiEV}=AnY0=3EN;iJVPJT`R(f76(_I>>_ z&;eVD<|D!Z>bl$e|3m%zPyE~1@!mAe1WsL|pF!h%O_KI3KuOZk83E0(r_ZlgfGGjLs}?Vn{C z7QqDfyBvE`HN;_zRfWAdM)ks;T@kIu?>&9Y?R@htHmWYTBF@sc) zh~V^Cd$C%dv8}ECvT@oCJxEpzG(Az(eXJmt+pz&Fj_vupT-k74y&51kU~!NyMQvfW z|48t#CTRiNGBqK$wKeb{21i%E%udG``Q;!2-tU$&Ian{C(qkh|F#G;*^B4TkWCkGO zlR46Yf`Z&Nc_j4*YnoB?*S74S6Uv)_TvU{OmKy=P4FE0nD z*yTDa$lv(kV@{HQI)i~RISh_1^J{j4+3G3U>fG)aYKcqNQ%=}zD?LBHpjhwEDxB2Q zH#IS#A%n;gHr%@M)@D%DAIPN8HuZ;z@#(9ep)yAySb<@rv0h!uNh1aZRX5tSZW(IP zmM0sDq^02Z0bCjOy}rJlR=?8Zf8G5xF#*tEn{3&xebV701!B}i8E)OoU}*pot&pRS z#KXfYsijQe7HqT$;1{5l>7^ zypDDor~XnA`My-(;o(8|A0+#^B*t?Wbc*9N-THM0TzeOKimtN#D+VKrj?HC<-Om7U z9ombG0L*kJu=l;K?NN9|o?Rh)8Cn561dQ+8Xu2~Hk0;shNFI&z2g1Lp4>Wmo^s@Iw zEWAe&D@6o7c=JDV&}0}Dg~$fJ^|{LiBM20<$gtW&ygb4HtY=c*f_zXP;-E@=l8aAh ze(hU>4FLJpCfao=oGFtBoeb-a?%rszhi`O(1@x5#3cgkkS0u@6q4F(?Dsw5f?SBhC zrt$6gWrEZS2+l|(fk-N4(zrCjAink;&|T2d*JkL7>9DMF}5#0bN6M(m)lmo=ztMewEmR2ghEk{=Z21a>IfDeRQr%WeF4qGYjjC z3y=dqv1uQVe|Fha_)U@Vf9793ZxJOxIy_X$H8TkM8=y6EK-rjp8sn!^DP}F~qk2I= zF;t@1$kUkoBM}LDM~Uj-5j?1~H;*iO;ERhZhr3t-M;qC_M}6S`exkd&l9HvP0idaD zzRrQPR%5y-cxOC;-5F42+%|<$W8_J7K9OqXukPeLQLF;vmEwDqM9aiPr%ssNkRGGQTQm}+;ZSppZMY%#kiqD*n|D!L!}M#&>^H14Gh14orQ(Pb!Sik-GKN` z=2~%(n~6^yVEd7&9AFP3HEU}?>UpA+R)-dDS4TY#HYm64NQE*}fOxsMu#}cs!RERy zS4L}f!G5s_6v}?_?dZtJ49KTW2z_(V3P*8z^&?x3oLWFY7u{cG*jrn^l%p@W+Qb%? zhhD3unb}n%)Lj~!wO^00js~``;)O5t%`8@OftO-NrKD!Mmj$|y3JPALO6R~8KfUez zo}L&!vP3m&YrD9$^nS0Lc4_75CBypK+Fa2O7O~(Gn=>n@vSEBT02rrcW^@wCUjYuB zBZ3{4{17&_u*e5~m-N4uKc?!ehDC#Xy$rO{h(MvkZ=Sja2G>-9tQdB}|0R`KDkC$q zEQKu{wC6VNz5Db0Wc>vYAVMBg($djpY5639zyZwCxyljjB8l(R(i)IsC=QGEv!XD_ zHlBC5bmk@(@GteWZy56@CJaZH8}=I+l@>_H0DeR!HDR{CD|?YXyS<|O!8o}laFe5G z(Q92@&42I)>&|brCtz}B*@J_>4grM6!ojER>3IfxeieY1)dnPw=%iuDJC-+T8NdRf zl;7KmNr{d^z#YQ|%Upbqp&@thbsumDeM^pY58?@+*!ub;AT+wLvZ^3tKC@P)gYGts z46kx-$8nbPrIG)-J9Q+p0nLq-tCo()4~bkKLcYxN2t@#)h1cgA1n8QN7(&>vQW=b+ zqpj;7=x7AaS9<)N;SsVOR&}^e4K2`}5uo|BH2``rIsaek2UgwKShddXH3N8%XeM^W z=*ue?sFAYfW||U_*)M*+)-rZ)$bFFp&^pyAouQ#@Pm>VmNuconWl^owyEW=kJ<5%g z_p$*h2pymg9ZrzdfN%c}FWU`Wag}PWsdSMCUAITmHwMGrESeif*s^G9;s#ZK#7y@l zWTh@QwW7PcT!L_lYxDit#Tn8siFADmwi?*G1A?i=*szEa7zh2wJkwVu8!ObSNE@bX1QrZur%WVr^xt2$s5%_^O%4iGg zdX1McC}zzr84?VBS6E0g|Qvkk0IS~COaW)V}z>S!My*8wf?&?raFe(Vyl-3s$I5*{6>e2L`ivhG?-z~LRd7x z^uJCg|F6i|=>j_iH0{PD09u{IBv? zZ3%3HYKt)4_5nU>Zf@=uql`@9Sh$N7UQ6g5vcW^t$p4-*jHDBULJj~;V9dC%qJEAW zt`Gy2fks1d3|`RR1|GaBeL*_t;2f5oee>83AM=vqzy1Cpi~)viq%|CSd4S0W6*W)y zXn;t60#rK;UJ$v4$H#6@ZZTp3dzKX*Qc55*9T`w)@||0grtUsO`bQ zVJ3@cEO6}#1lyj(Q1#2tZ`JcvzJA0o`w3=;IsJaq(T&Ap$92%(QL3h-^hOjMyo)L> zFOR5A$R~ym<${>e#k&>d|KFH_Gfb?i9NT|_`Mt952s7eVEO>Qeh(WL9!n=1pskj)s z?E6PfS-2PuA*KIw18_mG%3pp2--`WkjOhZ|Fkxa`p7>NcW{8Q4%i8Wt<;QMrZkEl} z?zl)T{9PX{Hp%nll&lKA z3Id_`j?~b5i>QEzG!a4zy(*A|@=^ojuK)Yo`|*Ce`|Pvr>^Wz5<~K8E_ROq5Xsh|2<>5zkw5P z#5xaVti8N(^QQXZ;vyKzTPy@leCPno`dOknx;i=|Z~IgF@OW!SE%f;?ZoN624p(j} zZdz$&nlM(0Fb``8Z8bJASzTOwIyVf8?%dqmTD6RfjQ>(MJ?sIhqvzPc(XsJ76FF80 zXZAcfC;#UOI|a~Y7!lm3aw8?r?vAJs)qlpLGtLDC1q}!Nz+H~X(s+=ARcMuC zjf88g*UMh)t&5kc(=~cb?Pl}>?0gkRM?rFKKQ-C|NoM#a&s8F^Dx8j4Ojua+(($nv ziBwITZR_jD1Rb63EcZ4d4!w$siu!tbG_y$`+s9s*S6deT`sF$sI3HGSgl!wjfnl;0 z1H}ZTjACPB-KT(pHyLsW5glE9eOwa(?@yeO*D=nXZp5`dcbS@;Ok!YT;(L%s&#Wv8 z4oY;4U0q92Q;m<9V+E>PS{_{T|Mg^U9wb^-RaMk`bf?!3?|*+8nPRMPN_DGjDk>^h z1)zEm2t-UmOw51AKCH9z=Iz@$Zf=<-WP z+6l!SyKma&a1XIWF9{t6c}S)CJk$6D$#A^%mhxjio4Nx5>&AiZEQkA z*f4!q1F*)`W2A%WUb-udyT5H*el2SEbyb){e|U9;mzsCMBwbV zjgpeAgnj%YU1Op4D9i(^iRd|aZ}=mbv===sf_Ma>cy?>%dD_<$gVRudCGXzQwLw0W zm4kls6*dmYK=yt6BYCG}pm0RVS$5?bIXW98zyU%?dM;&KbL+R^k^Zpz9gLEc}& z;B+-KE(+%7^QoY+Y}*4`6|4sbJ^F{u;ldC2nB=~B>)M9F_V@R@dwSwo1Pl=f@yz+K zRA^!(C^ND=SKlZGJSoL=Eqd4ZjEclUV7g#ug<3HM6&+dFki#6G9CpCOxW+76M+`ct2e->?j9x5o0A@<@Q_0v%HIDsiklc}~7)S4YE#}o-DlxBs3 zY_52*#*}l?!`1|tsXiTfXpoEJ4e%NEd>#Z0(wyEyhyix{Bl38JjUKn5Qcc?a-I<=B znJzo085gpmq$>^xjR!lKD(l{w?h*(}Ly|R8Z~gEtN;@WBXVw{^dV9H7^Uq5Ko$LV1 z`@kJdZXT;ux`&qqKf;~5|6x%JMX#={#%HFMoRb&dLVT?SxVg2zo*sA9qG0jy@lGx- z%;d@R^z;t~e6l303Uz6L=;`VkE>|x%>L)-th9+b+`uac)j91g>?`v<)$cGp*aSqEH zqt(@M?o>=ZAgCK% z_$x$}55TawysU2QaD$GC?=L7cB_{{M=vU0H~Nm+qHms=aMF;2o-06AYn1Pl zTvW4;;ql5+N$>a~4a!&b+TTImZnU|a=CvgaT45W?Nk-Jc9Su208~za&!$RmSD3<$2 zDAn8bKNBtLKFLYn4s8g5M1pm_I^9GPO$w-kK%@n#ob#*=K|G*}_9?jC@%Mr3*NNZH z*tlS)b@k4MLJBu5JXNfLT-)pm(vG@Ht$5q{iIgVEk2CiDZxI6B=G8Y9q$A|bMNE9U zOKBmTLpqLX4iUjKAV_qrL+%TzqFg+y<;{iL&(1);OK{?ArUMVTa7RHQe}MAC^)Ik? z_4lhQ94UJXKaZ)p;pnxu=_XWZaonGuv3?%o&UhEYkSstC2u8$x0=fQ<)Ha&cb z$swAaH_iFS$jE0GO-*h_S_#f81|=qh%T3MAG;v8uA9A`D_C#;r>G6QdAc;0=>bCq> zO(@DFVEa`F-E@~a%uYv#URYRoLxCAx&#b1GDH{n+n^c&Io0^(xz~SsHEH8^n=%_Hb zC^Q<~h6QF9AFMwP->sAWX>2mwE(s%}UwmA(WhAMtQXT!;pVyU-x`6bY?dok8cl9E4 zkFP(O$#WB>$`4m4-jRCx_;D`Pr^(5oWD~ZT*Fwt54@`3Kw6^WnpXyopU*-nW?dTyO zzPs0bLqJMV&O2D53cQ1(wT&KzBl5MnnxXs4?Ph4KnWCLtjyf_=)E(P$XY}Q$ydS@t zEYDC0!!T#P$=K4h&<^Z3;B0Y`AMpd_V&drPd>mzi@+a*N=o%Ja@ZUkNN7{-2Y+vAI zaG~`W4$yDSP5cKSa0o}Rs9oR%srJ#RMB!42*1fFi*jT0kXPM8RKkMl}Dr|2Db<5ao zt`dbEIwpwI)?}?{)a$SxWA7UpWHT}|<-NE6>gnkj$W}~USa`xnO9O+!z_dw>>LsjQ zwTO^h=AedF%RlXh2M0?80&E44FD@!JHZ|1*qh%r^BR6*6y}KL>QPlGDYrwn6CkL+h z(TR(_+Zf*T5gcmncn{9EcJnvSpI6$ebHJkqTBR+sQ9nlUZx8qkXPEirRsAA1@5mTA zhL2x=Z;iW-I5ng(G!^R|}nY_Q5FOMh~kGDWS&8G%rv-r5ne$L8l zx58w3zQ)oQ>`v-P8hY!8m&r6Od5dX8#1!;96irOSJ;Sc}j11a&spaSN?RXw(fT;eS!QO2P&DeA{_|+MpU`tUYbONEaWUV)JiR3<1R@7@a z1-oStc7@gPHH+G1pWi^-Nss+rw zFIezvNl-D^8t$q^&MTW$+6{hB7RPn)mJDRcvx6>;?jfNNgL&U~7AfD%#kp%|z?2E~ zbii%kEF?I;#_*QJehLcdqV;X^dbXb-_jqEA@kMM|Ss4Ion1sZ{SzjBybfxr!1h#U7 zyDJ!NvapQS(bfGjKc7n^dNp+%<|yo6vT5ZsFyv|T#6z3w^hMY`Jv~LE)ZlPB@ZiD8 z=90~7jFV$;biv9?>cpup@s2SbM+*uUI$+{)6$X zvY@eF3e-Ub>Z8Ch_kHU9TdhLW+@JP%Nu0IS1rT+0alp1YdrBtZGUE^S>ktiHhl|4< z35GqaHyiiwoSu!+xbvq7C>y*lyJDT24RB4MUeEPj>79r!<`FxRcJx&;?CgjMH`UsR z@$5K5NfG!{o)UoIkQjdUi2VHIjcE}pJ==;PEDJaH;*LK-Q5?n!Hj|9p%3J&p`P!E5 zc&p#tt3^`ZiwLrnKAshnB#^tf&2;531@a-O*S&G6Xf%7CInu2E^`$G5KT7%7`>d+!=jT`2dzq2Z$rmW;bRCA&Ny}LJ zo$YT;wWosKSZG+7PWA&<5Cuvwm}Nq?{$eb@EEHORa|dNg@B<*!`}gP6h@&7-$Iqsq z1ymsQQ+leZ)X>ZrAR^*oowO~opk~TLR!(jNkH^rWBskyW-!Z=|E*80Q0*|Gt0QU4f zpc9D)%*v-MFBM5G;Uk6c-1?6AtrXs$WlF&b0`n9xDI-CpU~`eXRpg5=^B&qe>l-?O z`bI$^3={WaF%vF{~N}x;Y7{`rn3%=OJm<)L= z)(b0@%_~#9{Uecg`*45FrFr0sQ`3*}xxrs7lxk0V(5&T92$f2E-{C9QlGr$xh8+W4 zq$C5PXJ+28EU^_Bo#WWe-++=28YFNd83*WTvi{Fm_dDTNSO2>JERD8coBZD!|KEz_ g|GV@5voi|wi!evz+~(Pz|3gseXc}l#sXcl9U$wfmiU0rr diff --git a/docs/_images/fittrackee_screenshot-08.png b/docs/_images/fittrackee_screenshot-08.png index 415a172e128506a1a48cf3fff663b09722042001..cbd10c6821c6b1c905b13619c57f4675ceeb55e2 100644 GIT binary patch delta 19241 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 Na&dHbp#6L~{eL1MVJ83p delta 18963 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�K!T3WCw+;9B(Wl3TZJj{42& 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 DscSGf diff --git a/docs/_sources/changelog.md.txt b/docs/_sources/changelog.md.txt index 57099b20..216a3754 100644 --- a/docs/_sources/changelog.md.txt +++ b/docs/_sources/changelog.md.txt @@ -1,7 +1,28 @@ # Change log +## Version 0.7.11 (2022/12/31) + +### Features and enhancements + +* [PR#265](https://github.com/SamR1/FitTrackee/pull/265) - Implementing alternative weather API (VisualCrossing.com) + **Note**: A new environment variable must be to set to configure the weather data provider: `WEATHER_API_PROVIDER` (see [documentation](https://samr1.github.io/FitTrackee/installation.html#weather-data)) + +### Translations + +* [PR#287](https://github.com/SamR1/FitTrackee/pull/287) - Translations update from Hosted Weblate (Dutch) +* [PR#289](https://github.com/SamR1/FitTrackee/pull/289) - Translations update from Hosted Weblate (German) + + +Thanks to the contributors: +- @bjornclauw +- @jat255 +- @qwerty287 + + ## Version 0.7.10 (2022/12/21) +FitTrackee is now available in Italian (thanks to @dperruso). + ### Features and enhancements * [#92](https://github.com/SamR1/FitTrackee/issues/92) - Add ascent and descent parameters in workout import without GPX file diff --git a/docs/_sources/features.rst.txt b/docs/_sources/features.rst.txt index 8e3d3123..1542ef9f 100644 --- a/docs/_sources/features.rst.txt +++ b/docs/_sources/features.rst.txt @@ -43,7 +43,7 @@ Workouts | Ascent and descent can also be provided (*new in 0.7.10*). - | A workout with a gpx file can be displayed with map and charts (speed and elevation). | Controls allow full screen view and position reset (*new in 0.5.5*). -- | If DarkSky API key is provided, weather is displayed in workout detail. +- | If **DarkSky API** or **Visual Crossing** (*new in 0.7.11*) API key is provided, weather is displayed in workout detail. Data source is displayed in About page. | Wind is displayed, with arrow indicating direction (a tooltip can be displayed with the direction that the wind is coming **from**) (*new in 0.5.5*). - Segments can be displayed. - Workout gpx file can be downloaded (*new in 0.5.1*) diff --git a/docs/_sources/installation.rst.txt b/docs/_sources/installation.rst.txt index 5b33d773..a000747b 100644 --- a/docs/_sources/installation.rst.txt +++ b/docs/_sources/installation.rst.txt @@ -28,7 +28,7 @@ Prerequisites - optional - Redis for task queue (if email sending is enabled) and API rate limits - SMTP provider (if email sending is enabled) - - API key from `Dark Sky `__ (deprecated, DarkSky will stop on March 31st, 2023) + - API key from a `weather data provider `__ - `Poetry `__ (for installation from sources only) - `Yarn `__ (for development only) - Docker and Docker Compose (for development or evaluation purposes) @@ -172,7 +172,7 @@ deployment method. Number of processes used by **Dramatiq**. -.. envvar:: API_RATE_LIMITS 🆕 +.. envvar:: API_RATE_LIMITS .. versionadded:: 0.7.0 @@ -229,7 +229,14 @@ deployment method. .. versionchanged:: 0.4.0 ⚠️ replaces ``WEATHER_API`` - **Dark Sky** API key for weather data (not mandatory). + Weather API key (not mandatory), see ``WEATHER_API_PROVIDER``. + + +.. envvar:: WEATHER_API_PROVIDER 🆕 + + .. versionadded:: 0.7.11 + + Provider for weather data (not mandatory), see `Weather data `__. .. envvar:: VUE_APP_API_URL @@ -302,8 +309,8 @@ For instance, to set OSM France tile server, the expected values are: The subdomain will be chosen randomly. -API rate limits 🆕 -^^^^^^^^^^^^^^^^^^ +API rate limits +^^^^^^^^^^^^^^^ .. versionadded:: 0.7.0 | API rate limits are managed by `Flask-Limiter `_, based on IP with fixed window strategy. @@ -338,6 +345,21 @@ API rate limits 🆕 limits Enumerate details about all routes with rate limits +Weather data +^^^^^^^^^^^^ +.. versionchanged:: 0.7.11 + +The following weather data providers are supported by **FitTrackee**: + +- `Dark Sky `__ (deprecated, will stop on March 31st, 2023) +- `Visual Crossing `__ (**note**: historical data are provided on hourly period) + +To configure a weather provider, set the following environment variables: + +- ``WEATHER_API_PROVIDER``: ``darksky`` for **Dark Sky** or ``visualcrossing`` for **Visual Crossing** +- ``WEATHER_API_KEY``: the key to the corresponding weather provider + + Installation ~~~~~~~~~~~~ @@ -480,13 +502,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.7.10): +- Download the last release (for now, it is the release v0.7.11): .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.10.tar.gz - $ tar -xzf v0.7.10.tar.gz - $ mv FitTrackee-0.7.10 FitTrackee + $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.11.tar.gz + $ tar -xzf v0.7.11.tar.gz + $ mv FitTrackee-0.7.11 FitTrackee $ cd FitTrackee - Create **.env** from example and update it @@ -606,13 +628,13 @@ Prod environment - Change to the directory where FitTrackee directory is located -- Download the last release (for now, it is the release v0.7.10) and overwrite existing files: +- Download the last release (for now, it is the release v0.7.11) and overwrite existing files: .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.10.tar.gz - $ tar -xzf v0.7.10.tar.gz - $ cp -R FitTrackee-0.7.10/* FitTrackee/ + $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.11.tar.gz + $ tar -xzf v0.7.11.tar.gz + $ cp -R FitTrackee-0.7.11/* FitTrackee/ $ cd FitTrackee - Update **.env** if needed (see `Environment variables `__). diff --git a/docs/_static/documentation_options.js b/docs/_static/documentation_options.js index cd82ceeb..c6a6075b 100644 --- a/docs/_static/documentation_options.js +++ b/docs/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '0.7.10', + VERSION: '0.7.11', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/api/auth.html b/docs/api/auth.html index 28a1362b..44da839a 100644 --- a/docs/api/auth.html +++ b/docs/api/auth.html @@ -5,7 +5,7 @@ - Authentication — FitTrackee 0.7.10 + <title>Authentication — FitTrackee 0.7.11 documentation @@ -43,7 +43,7 @@ FitTrackee - 0.7.10 + 0.7.11 @@ -1239,7 +1239,7 @@ for other reasons.

  • © Copyright 2018 - 2022, SamR1 . - Last updated on Dec 21, 2022.
    + Last updated on Dec 31, 2022.
    Created using Sphinx 5.3.0.

    diff --git a/docs/api/configuration.html b/docs/api/configuration.html index db9fd6cc..dd6b2782 100644 --- a/docs/api/configuration.html +++ b/docs/api/configuration.html @@ -5,7 +5,7 @@ - Configuration — FitTrackee 0.7.10 + <title>Configuration — FitTrackee 0.7.11 documentation @@ -43,7 +43,7 @@ FitTrackee - 0.7.10 + 0.7.11 @@ -154,8 +154,9 @@ "max_single_file_size": 1048576, "max_users": 0, "max_zip_file_size": 10485760, - "map_attribution": "&copy; <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors" - "version": "0.7.10" + "map_attribution": "&copy; <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors", + "version": "0.7.11", + "weather_provider": null }, "status": "success" } @@ -195,8 +196,9 @@ "max_single_file_size": 1048576, "max_users": 10, "max_zip_file_size": 10485760, - "map_attribution": "&copy; <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors" - "version": "0.7.10" + "map_attribution": "&copy; <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors", + "version": "0.7.11", + "weather_provider": null }, "status": "success" } @@ -279,7 +281,7 @@

    © Copyright 2018 - 2022, SamR1 . - Last updated on Dec 21, 2022.
    + Last updated on Dec 31, 2022.
    Created using Sphinx 5.3.0.

    diff --git a/docs/api/index.html b/docs/api/index.html index 4399fa29..83fb96b7 100644 --- a/docs/api/index.html +++ b/docs/api/index.html @@ -5,7 +5,7 @@ - API documentation — FitTrackee 0.7.10 + <title>API documentation — FitTrackee 0.7.11 documentation @@ -43,7 +43,7 @@ FitTrackee - 0.7.10 + 0.7.11 @@ -160,7 +160,7 @@

    © Copyright 2018 - 2022, SamR1 . - Last updated on Dec 21, 2022.
    + Last updated on Dec 31, 2022.
    Created using Sphinx 5.3.0.

    diff --git a/docs/api/oauth2.html b/docs/api/oauth2.html index 0c51d5aa..044490d7 100644 --- a/docs/api/oauth2.html +++ b/docs/api/oauth2.html @@ -5,7 +5,7 @@ - OAuth2 — FitTrackee 0.7.10 + <title>OAuth2 — FitTrackee 0.7.11 documentation @@ -43,7 +43,7 @@ FitTrackee - 0.7.10 + 0.7.11 @@ -694,7 +694,7 @@ are supported by FitTrackee)

    © Copyright 2018 - 2022, SamR1 . - Last updated on Dec 21, 2022.
    + Last updated on Dec 31, 2022.
    Created using Sphinx 5.3.0.

    diff --git a/docs/api/records.html b/docs/api/records.html index e9b55de9..cd10469a 100644 --- a/docs/api/records.html +++ b/docs/api/records.html @@ -5,7 +5,7 @@ - Records — FitTrackee 0.7.10 + <title>Records — FitTrackee 0.7.11 documentation @@ -43,7 +43,7 @@ FitTrackee - 0.7.10 + 0.7.11 @@ -262,7 +262,7 @@

    © Copyright 2018 - 2022, SamR1 . - Last updated on Dec 21, 2022.
    + Last updated on Dec 31, 2022.
    Created using Sphinx 5.3.0.

    diff --git a/docs/api/sports.html b/docs/api/sports.html index 73d259ed..9338a9a8 100644 --- a/docs/api/sports.html +++ b/docs/api/sports.html @@ -5,7 +5,7 @@ - Sports — FitTrackee 0.7.10 + <title>Sports — FitTrackee 0.7.11 documentation @@ -43,7 +43,7 @@ FitTrackee - 0.7.10 + 0.7.11 @@ -492,7 +492,7 @@

    © Copyright 2018 - 2022, SamR1 . - Last updated on Dec 21, 2022.
    + Last updated on Dec 31, 2022.
    Created using Sphinx 5.3.0.

    diff --git a/docs/api/stats.html b/docs/api/stats.html index 6d4492f9..6433879b 100644 --- a/docs/api/stats.html +++ b/docs/api/stats.html @@ -5,7 +5,7 @@ - Statistics — FitTrackee 0.7.10 + <title>Statistics — FitTrackee 0.7.11 documentation @@ -43,7 +43,7 @@ FitTrackee - 0.7.10 + 0.7.11 @@ -419,7 +419,7 @@

    © Copyright 2018 - 2022, SamR1 . - Last updated on Dec 21, 2022.
    + Last updated on Dec 31, 2022.
    Created using Sphinx 5.3.0.

    diff --git a/docs/api/users.html b/docs/api/users.html index 6973a18c..f2b882b1 100644 --- a/docs/api/users.html +++ b/docs/api/users.html @@ -5,7 +5,7 @@ - Users — FitTrackee 0.7.10 + <title>Users — FitTrackee 0.7.11 documentation @@ -43,7 +43,7 @@ FitTrackee - 0.7.10 + 0.7.11 @@ -663,7 +663,7 @@ one admin.

    © Copyright 2018 - 2022, SamR1 . - Last updated on Dec 21, 2022.
    + Last updated on Dec 31, 2022.
    Created using Sphinx 5.3.0.

    diff --git a/docs/api/workouts.html b/docs/api/workouts.html index f34a0bb8..b4ff7a26 100644 --- a/docs/api/workouts.html +++ b/docs/api/workouts.html @@ -5,7 +5,7 @@ - Workouts — FitTrackee 0.7.10 + <title>Workouts — FitTrackee 0.7.11 documentation @@ -43,7 +43,7 @@ FitTrackee - 0.7.10 + 0.7.11 @@ -1187,7 +1187,7 @@ must be provided with ascent)

    © Copyright 2018 - 2022, SamR1 . - Last updated on Dec 21, 2022.
    + Last updated on Dec 31, 2022.
    Created using Sphinx 5.3.0.

    diff --git a/docs/apps.html b/docs/apps.html index 061bb84f..afb46d20 100644 --- a/docs/apps.html +++ b/docs/apps.html @@ -5,7 +5,7 @@ - Third-party applications — FitTrackee 0.7.10 + <title>Third-party applications — FitTrackee 0.7.11 documentation @@ -43,7 +43,7 @@ FitTrackee - 0.7.10 + 0.7.11 @@ -259,7 +259,7 @@ It is recommended to use PKCE to provide a better security.

    © Copyright 2018 - 2022, SamR1 . - Last updated on Dec 21, 2022.
    + Last updated on Dec 31, 2022.
    Created using Sphinx 5.3.0.

    diff --git a/docs/changelog.html b/docs/changelog.html index f8870893..b0cb4cad 100644 --- a/docs/changelog.html +++ b/docs/changelog.html @@ -5,7 +5,7 @@ - Change log — FitTrackee 0.7.10 + <title>Change log — FitTrackee 0.7.11 documentation @@ -42,7 +42,7 @@ FitTrackee - 0.7.10 + 0.7.11 @@ -82,368 +82,373 @@ role="menu" aria-labelledby="dLabelLocalToc">
    • Change log
        -
      • Version 0.7.10 (2022/12/21)
          +
        • Version 0.7.11 (2022/12/31)
        • -
        • Version 0.7.9 (2022/12/11)
            +
          • Version 0.7.10 (2022/12/21)
          • +
          • Version 0.7.9 (2022/12/11) +
          • Version 0.7.8 (2022/11/30)
          • Version 0.7.7 (2022/11/27)
          • Version 0.7.6 (2022/11/09)
          • Version 0.7.5 (2022/11/09)
          • Version 0.7.4 (2022/11/05)
          • Version 0.7.3 (2022/11/01)
          • Version 0.7.2 (2022/09/21) -
          • -
          • Version 0.7.1 (2022/09/21)
          • +
          • Version 0.7.1 (2022/09/21) +
          • Version 0.7.0 (2022/09/19)
          • Version 0.6.12 (2022/09/14)
          • Version 0.6.11 (2022/07/27)
              -
            • Issues Closed
                -
              • Bugs Fixed
              • +
              • Issues Closed
              • -
              • Pull Requests
                  +
                • Pull Requests
                • Version 0.6.10 (2022/07/13)
                • -
                • Issues Closed
                    -
                  • Bugs Fixed
                  • +
                  • Issues Closed
                  • -
                  • Pull Requests
                  • Version 0.6.9 (2022/07/03)
                      -
                    • Issues Closed
                    • Version 0.6.8 (2022/06/22)
                        -
                      • Issues Closed
                      • Version 0.6.7 (2022/06/11)
                          -
                        • Issues Closed
                        • Version 0.6.6 (2022/05/29)
                        • Version 0.6.5 (2022/04/24)
                            -
                          • Issues Closed
                          • Version 0.6.4 (2022/04/23) -
                          • -
                          • Version 0.6.3 (2022/04/09)
                              -
                            • Pull Requests
                            • -
                            • Version 0.6.2 (2022/04/03)
                                -
                              • Issues Closed
                                  +
                                • Version 0.6.3 (2022/04/09)
                                • -
                                • Version 0.6.1 (2022/03/27)
                                    +
                                  • Version 0.6.2 (2022/04/03)
                                  • -
                                  • Version 0.6.0 (2022/03/27)
                                      +
                                    • Version 0.6.1 (2022/03/27)
                                      • Issues Closed
                                      • -
                                      • Pull Requests
                                          +
                                        +
                                      • +
                                      • Version 0.6.0 (2022/03/27)
                                      • Version 0.5.7 (2022/02/13)
                                          -
                                        • Issues Closed
                                            -
                                          • Misc
                                          • +
                                          • Issues Closed
                                          • -
                                          • Pull Requests
                                          • Version 0.5.6 (2022/02/05)
                                              -
                                            • Issues Closed
                                            • Version 0.5.5 (2022/01/19) -
                                            • -
                                            • Version 0.5.4 (2022/01/01)
                                            • -
                                            • Version 0.5.3 (2022/01/01)
                                                +
                                              • Version 0.5.4 (2022/01/01)
                                              • -
                                              • Version 0.5.2 (2021/12/19)
                                                  +
                                                • Version 0.5.3 (2022/01/01)
                                                • -
                                                • Version 0.5.1 (2021/11/30)
                                                    +
                                                  • Version 0.5.2 (2021/12/19)
                                                  • -
                                                  • Version 0.5.0 (2021/11/14)
                                                      +
                                                    • Version 0.5.1 (2021/11/30) +
                                                    • +
                                                    • Version 0.5.0 (2021/11/14)
                                                    • Version 0.4.9 (2021/07/16) -
                                                    • -
                                                    • Version 0.4.8 (2021/07/03)
                                                        -
                                                      • Issues Closed
                                                      • -
                                                      • Version 0.4.7 (2021/04/07)
                                                          +
                                                        • Version 0.4.8 (2021/07/03) +
                                                        • +
                                                        • Version 0.4.7 (2021/04/07)
                                                        • Version 0.4.6 (2021/02/21) -
                                                        • -
                                                        • Version 0.4.5 (2021/02/17)
                                                        • -
                                                        • Version 0.4.4 (2021/01/31)
                                                            +
                                                          • Version 0.4.5 (2021/02/17) +
                                                          • +
                                                          • Version 0.4.4 (2021/01/31)
                                                          • Version 0.4.3 (2021/01/10)
                                                              -
                                                            • Issues Closed
                                                            • Version 0.4.2 (2021/01/03)
                                                            • Version 0.4.1 (2020/12/31) -
                                                            • -
                                                            • Version 0.4.0 - FitTrackee on PyPI (2020/09/19)
                                                            • -
                                                            • Version 0.3.0 - Administration (2020/07/15)
                                                                +
                                                              • Version 0.4.0 - FitTrackee on PyPI (2020/09/19)
                                                              • +
                                                              • Version 0.3.0 - Administration (2020/07/15) +
                                                              • Version 0.2.5 - Fix and improvements (2020/01/31)
                                                              • Version 0.2.4 - Minor fix (2020/01/30)
                                                                  -
                                                                • Issues Closed
                                                                • Version 0.2.3 - FitTrackee available in French (2019/12/29) -
                                                                • -
                                                                • Version 0.2.2 - Statistics fix (2019/09/23)
                                                                    -
                                                                  • Issues Closed
                                                                  • -
                                                                  • Version 0.2.1 - Fix and improvements (2019/09/01)
                                                                      +
                                                                    • Version 0.2.2 - Statistics fix (2019/09/23) +
                                                                    • +
                                                                    • Version 0.2.1 - Fix and improvements (2019/09/01)
                                                                    • Version 0.2.0 - Statistics (2019/07/07)
                                                                        -
                                                                      • Issues Closed
                                                                      • Version 0.1.1 - Fix and improvements (2019/02/07)
                                                                          -
                                                                        • Issues Closed
                                                                        • Version 0.1.0 - First release 🎉 (2018-07-04)
                                                                            -
                                                                          • Issues Closed @@ -495,17 +500,40 @@

                                                                            Change log

                                                                            -
                                                                            -

                                                                            Version 0.7.10 (2022/12/21)

                                                                            +
                                                                            +

                                                                            Version 0.7.11 (2022/12/31)

                                                                            Features and enhancements

                                                                              -
                                                                            • #92 - Add ascent and descent parameters in workout import without GPX file

                                                                            • +
                                                                            • PR#265 - Implementing alternative weather API (VisualCrossing.com)
                                                                              Note: A new environment variable must be to set to configure the weather data provider: WEATHER_API_PROVIDER (see documentation)

                                                                            Translations

                                                                              +
                                                                            • PR#287 - Translations update from Hosted Weblate (Dutch)

                                                                            • +
                                                                            • PR#289 - Translations update from Hosted Weblate (German)

                                                                            • +
                                                                            +

                                                                            Thanks to the contributors:

                                                                            +
                                                                              +
                                                                            • @bjornclauw

                                                                            • +
                                                                            • @jat255

                                                                            • +
                                                                            • @qwerty287

                                                                            • +
                                                                            +
                                                                            +
                                                                            +
                                                                            +

                                                                            Version 0.7.10 (2022/12/21)

                                                                            +

                                                                            FitTrackee is now available in Italian (thanks to @dperruso).

                                                                            +
                                                                            +

                                                                            Features and enhancements

                                                                            +
                                                                              +
                                                                            • #92 - Add ascent and descent parameters in workout import without GPX file

                                                                            • +
                                                                            +
                                                                            +
                                                                            +

                                                                            Translations

                                                                            +
                                                                            • #279 - [Translation Request] - Italian (thanks to @dperruso)

                                                                            • c88a515 - Translations update from Hosted Weblate (Dutch, thanks to @bjornclauw)

                                                                            • f96dcef - Translations update (German)

                                                                            • @@ -515,14 +543,14 @@

                                                                            Version 0.7.9 (2022/12/11)

                                                                            -
                                                                            -

                                                                            Features and enhancements

                                                                            +
                                                                            +

                                                                            Features and enhancements

                                                                            • #280 - New sport: Mountaineering

                                                                            -
                                                                            -

                                                                            Translations

                                                                            +
                                                                            +

                                                                            Translations

                                                                            • PR#278 - Translations update from Hosted Weblate (German, thanks to @qwerty287)

                                                                            • PR#282 - Init italian translation files

                                                                            • @@ -533,8 +561,8 @@

                                                                              Version 0.7.8 (2022/11/30)

                                                                              FitTrackee is now available in Dutch (thanks to @bjornclauw).

                                                                              -
                                                                              -

                                                                              Translations

                                                                              +
                                                                              +

                                                                              Translations

                                                                              • #270 - [translations request] Dutch (Nederlands)

                                                                              @@ -542,8 +570,8 @@

                                                                              Version 0.7.7 (2022/11/27)

                                                                              -
                                                                              -

                                                                              Features and enhancements

                                                                              +
                                                                              +

                                                                              Features and enhancements

                                                                              • #258 - Request: parse links in notes area (thanks to @jat255)

                                                                              @@ -554,8 +582,8 @@
                                                                            • PR#271 - Fix workouts creation

                                                                            -
                                                                            -

                                                                            Translations

                                                                            +
                                                                            +

                                                                            Translations

                                                                            • PR#273 - Init Dutch translations files

                                                                            @@ -571,14 +599,14 @@

                                                                            Version 0.7.6 (2022/11/09)

                                                                            -
                                                                            -

                                                                            Translations

                                                                            +
                                                                            +

                                                                            Translations

                                                                            • 3c8d9c2 - fix api locale file (remove trailing comma)

                                                                            -
                                                                            -

                                                                            Misc

                                                                            +
                                                                            +

                                                                            Misc

                                                                            • dev dependencies update

                                                                            @@ -586,14 +614,14 @@

                                                                            Version 0.7.5 (2022/11/09)

                                                                            -
                                                                            -

                                                                            Bugs Fixed

                                                                            +
                                                                            +

                                                                            Bugs Fixed

                                                                            • #264 - UI has white and gray background

                                                                            -
                                                                            -

                                                                            Translations

                                                                            +
                                                                            +

                                                                            Translations

                                                                            • #266 - Translations update from Hosted Weblate (German, thanks to @qwerty287)

                                                                            @@ -601,16 +629,16 @@

                                                                            Version 0.7.4 (2022/11/05)

                                                                            -
                                                                            -

                                                                            Bugs Fixed

                                                                            +
                                                                            +

                                                                            Bugs Fixed

                                                                            • #260 - Files size is not checked in zip archive

                                                                            • #261 - The API should return an error when the number of files in an archive exceeds the limit

                                                                            Note: archive import still needs some improvements (see #89)

                                                                            -
                                                                            -

                                                                            Translations

                                                                            +
                                                                            +

                                                                            Translations

                                                                            • b1536fc - fix french translations in administration

                                                                            @@ -625,23 +653,23 @@

                                                                            Version 0.7.3 (2022/11/01)

                                                                            -
                                                                            -

                                                                            Features and enhancements

                                                                            +
                                                                            +

                                                                            Features and enhancements

                                                                            • #112 - allow user to change date format

                                                                            • #244 - New sport type: “Virtual Ride”

                                                                            Thanks to @jat255

                                                                            -
                                                                            -

                                                                            Bugs Fixed

                                                                            +
                                                                            +

                                                                            Bugs Fixed

                                                                            • #246 - Add support to PostgreSQL 15

                                                                            • #247 - Segments duration is displayed with microseconds

                                                                            -
                                                                            -

                                                                            Translations

                                                                            +
                                                                            +

                                                                            Translations

                                                                            • PR#252 - init Norwegian Bokmål translations files

                                                                            @@ -650,8 +678,8 @@

                                                                            Version 0.7.2 (2022/09/21)

                                                                            -
                                                                            -

                                                                            Translations

                                                                            +
                                                                            +

                                                                            Translations

                                                                            • PR#242 - Translations update from Weblate (German, thanks to @qwerty287)

                                                                            @@ -659,14 +687,14 @@

                                                                            Version 0.7.1 (2022/09/21)

                                                                            -
                                                                            -

                                                                            Bugs Fixed

                                                                            +
                                                                            +

                                                                            Bugs Fixed

                                                                            • PR#241 - Add missing password strength estimation package (german)

                                                                            -
                                                                            -

                                                                            Translations

                                                                            +
                                                                            +

                                                                            Translations

                                                                            • PR#239 - Translations update from Weblate (German, thanks to @qwerty287)

                                                                            • cb9d02f - Update OAuth 2.0 translations (English & French)

                                                                            • @@ -675,23 +703,23 @@

                                                                            Version 0.7.0 (2022/09/19)

                                                                            -
                                                                            -

                                                                            Features and enhancements

                                                                            +
                                                                            +

                                                                            Features and enhancements

                                                                            • #88 - OAuth 2.0 access token for api access

                                                                            • #231 - Invalidate token on logout

                                                                            • PR#236 - Add API rate limits

                                                                            -
                                                                            -

                                                                            Bugs Fixed

                                                                            +
                                                                            +

                                                                            Bugs Fixed

                                                                            • #232 - Speed chart can not be hidden

                                                                            • #237 - Can not edit a workout when notes value is null

                                                                            -
                                                                            -

                                                                            Translations

                                                                            +
                                                                            +

                                                                            Translations

                                                                            • PR#212 - Translations update from Hosted Weblate (thanks to J. Lavoie)

                                                                            @@ -702,8 +730,8 @@

                                                                            Version 0.6.12 (2022/09/14)

                                                                            Issues Closed

                                                                            -
                                                                            -

                                                                            Bugs Fixed

                                                                            +
                                                                            +

                                                                            Bugs Fixed

                                                                            • #230 - Database problem after upgrade to 0.6.11

                                                                            @@ -711,8 +739,8 @@

                                                                            Pull Requests

                                                                            -
                                                                            -

                                                                            Misc

                                                                            +
                                                                            +

                                                                            Misc

                                                                            • #225 - Fix grammar issue

                                                                            @@ -723,17 +751,17 @@

                                                                            Version 0.6.11 (2022/07/27)

                                                                            -
                                                                            -

                                                                            Issues Closed

                                                                            -
                                                                            -

                                                                            Bugs Fixed

                                                                            +
                                                                            +

                                                                            Issues Closed

                                                                            +
                                                                            +

                                                                            Bugs Fixed

                                                                            • #213 - Statistics - When using imperial measurements, ascent/descent should be in ft not mi

                                                                            -
                                                                            -

                                                                            Pull Requests

                                                                            +
                                                                            +

                                                                            Pull Requests

                                                                            Features

                                                                              @@ -748,19 +776,19 @@

                                                                              Version 0.6.10 (2022/07/13)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #210 - ERROR - could not download 6 tiles
                                                                                Note: for tile server requiring subdomains, see the new environment variable STATICMAP_SUBDOMAINS

                                                                              -
                                                                              -

                                                                              Pull Requests

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Pull Requests

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #209 - Incorrect duration with track containing multiple segments

                                                                              @@ -772,23 +800,23 @@

                                                                              Version 0.6.9 (2022/07/03)

                                                                              FitTrackee is now available in German (thanks to @gorgobacka).
                                                                              And translations can be updated on Weblate.

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              Features

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              Features

                                                                              • #200 - Detect browser language to use matching translation if available

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • PR#208 - fix order on records cards

                                                                              • #201 - html lang attribute is not updated when changing language

                                                                              -
                                                                              -

                                                                              Translations

                                                                              +
                                                                              +

                                                                              Translations

                                                                              • PR#197 - Translations update from Weblate (French)

                                                                              • #196 - Use translation management tool

                                                                              • @@ -805,10 +833,10 @@

                                                                              Version 0.6.8 (2022/06/22)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #193 - Allow deleting a workout when files are missing

                                                                              • #192 - Returns 404 instead of 500 when map file not found

                                                                              • @@ -816,8 +844,8 @@
                                                                              -
                                                                              -

                                                                              Misc

                                                                              +
                                                                              +

                                                                              Misc

                                                                              • change gpx and map file naming (included in PR#195)
                                                                                Note: it does not affect previously imported files

                                                                              • cc4287e - Fix docker env file

                                                                              • @@ -827,10 +855,10 @@

                                                                              Version 0.6.7 (2022/06/11)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #156 - Process gpx file with offset

                                                                              @@ -840,8 +868,8 @@

                                                                              Version 0.6.6 (2022/05/29)

                                                                              -
                                                                              -

                                                                              Misc

                                                                              +
                                                                              +

                                                                              Misc

                                                                              No new features in this release, only dependencies update and code refacto before introducing new features.

                                                                              @@ -850,10 +878,10 @@

                                                                              It is now possible to start FitTrackee without a configured SMTP provider (see documentation). It reduces pre-requisites for single-user instances.

                                                                              To manage users, a new CLI is available.

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              Features

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              Features

                                                                              • #180 - allow using FitTrackee without SMTP server

                                                                              @@ -863,10 +891,10 @@ It reduces pre-requisites for single-user instances.

                                                                              Version 0.6.4 (2022/04/23)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #178 - cannot send email with TLS

                                                                              @@ -876,10 +904,10 @@ It reduces pre-requisites for single-user instances.

                                                                              Version 0.6.3 (2022/04/09)

                                                                              -
                                                                              -

                                                                              Pull Requests

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Pull Requests

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #177 - Minor fixes

                                                                                  @@ -893,10 +921,10 @@ It reduces pre-requisites for single-user instances.

                                                                              Version 0.6.2 (2022/04/03)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #175 - Distance card on dashboard is not refreshed

                                                                              • #173 - link to user profile in workout card is incorrect

                                                                              • @@ -907,10 +935,10 @@ It reduces pre-requisites for single-user instances.

                                                                              Version 0.6.1 (2022/03/27)

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #171 - Stats chart is not updated correctly

                                                                              @@ -921,26 +949,26 @@ It reduces pre-requisites for single-user instances.

                                                                              Version 0.6.0 (2022/03/27)

                                                                              This version introduces some changes on user registration.
                                                                              From now on, a user needs to confirm his account after registration (an email with confirmation instructions is sent after registration).

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              Features

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              Features

                                                                              • #155 - Improve user registration

                                                                              • #106 - Allow user to update email

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #169 - user picture is not refreshed after update

                                                                              -
                                                                              -

                                                                              Pull Requests

                                                                              -
                                                                              -

                                                                              Bugs Fixed

                                                                              +
                                                                              +

                                                                              Pull Requests

                                                                              +
                                                                              +

                                                                              Bugs Fixed

                                                                              • #161 - Minor translation issue on ‘Farthest’

                                                                              • #160 - Minor translation issue on APP_ERROR

                                                                              • @@ -955,17 +983,17 @@ It reduces pre-requisites for single-user instances.

                                                                                This release contains several fixes including security fixes.
                                                                                Thanks to @DanielSiersleben for the report.

                                                                                And from now on, admin account is not created on application initialization.
                                                                                A new command is added to set administration rights on the account created after registration (see documentation)

                                                                                -
                                                                                -

                                                                                Issues Closed

                                                                                -
                                                                                -

                                                                                Misc

                                                                                +
                                                                                +

                                                                                Issues Closed

                                                                                +
                                                                                +

                                                                                Misc

                                                                                • #149 - improve database initialisation

                                                                                -
                                                                                -

                                                                                Pull Requests

                                                                                +
                                                                                +

                                                                                Pull Requests

                                                                                Security

                                                                                  @@ -983,8 +1011,8 @@ It reduces pre-requisites for single-user instances.

                                                                                -
                                                                                -

                                                                                Misc

                                                                                +
                                                                                +

                                                                                Misc

                                                                                • #152 - Fixes and improvements:

                                                                                    @@ -1000,17 +1028,17 @@ It reduces pre-requisites for single-user instances.

                                                                                Version 0.5.6 (2022/02/05)

                                                                                -
                                                                                -

                                                                                Issues Closed

                                                                                -
                                                                                -

                                                                                Bugs Fixed

                                                                                +
                                                                                +

                                                                                Issues Closed

                                                                                +
                                                                                +

                                                                                Bugs Fixed

                                                                                • #146 - incorrect label on workouts filters

                                                                                -
                                                                                -

                                                                                Pull Requests

                                                                                +
                                                                                +

                                                                                Pull Requests

                                                                                • #145 - fix on database models

                                                                                @@ -1019,8 +1047,8 @@ It reduces pre-requisites for single-user instances.

                                                                                Version 0.5.5 (2022/01/19)

                                                                                -
                                                                                -

                                                                                Issues Closed

                                                                                +
                                                                                +

                                                                                Issues Closed

                                                                                New Features

                                                                                  @@ -1030,8 +1058,8 @@ It reduces pre-requisites for single-user instances.

                                                                                • #134 - Wind direction

                                                                                -
                                                                                -

                                                                                Bugs Fixed

                                                                                +
                                                                                +

                                                                                Bugs Fixed

                                                                                • 877fa0f - fix sport icon color (when changed) on calendar on small resolutions

                                                                                @@ -1041,10 +1069,10 @@ It reduces pre-requisites for single-user instances.

                                                                                Version 0.5.4 (2022/01/01)

                                                                                -
                                                                                -

                                                                                Issues Closed

                                                                                -
                                                                                -

                                                                                Bugs Fixed

                                                                                +
                                                                                +

                                                                                Issues Closed

                                                                                +
                                                                                +

                                                                                Bugs Fixed

                                                                                • #131 - No workouts displayed on calendar

                                                                                @@ -1054,10 +1082,10 @@ It reduces pre-requisites for single-user instances.

                                                                                Version 0.5.3 (2022/01/01)

                                                                                -
                                                                                -

                                                                                Issues Closed

                                                                                -
                                                                                -

                                                                                Bugs Fixed

                                                                                +
                                                                                +

                                                                                Issues Closed

                                                                                +
                                                                                +

                                                                                Bugs Fixed

                                                                                • #129 - Display only active sports when editing a workout

                                                                                • #127 - parse_email_url() can’t validate a legitimate EMAIL_URI such as “smtp://localhost:25”

                                                                                • @@ -1068,10 +1096,10 @@ It reduces pre-requisites for single-user instances.

                                                                                Version 0.5.2 (2021/12/19)

                                                                                -
                                                                                -

                                                                                Issues Closed

                                                                                -
                                                                                -

                                                                                New Features

                                                                                +
                                                                                +

                                                                                Issues Closed

                                                                                +
                                                                                +

                                                                                New Features

                                                                                • #123 - Allow user to reset preferences for a sport

                                                                                • #121 - Add activity : snowshoes

                                                                                • @@ -1082,10 +1110,10 @@ It reduces pre-requisites for single-user instances.

                                                                                Version 0.5.1 (2021/11/30)

                                                                                -
                                                                                -

                                                                                Issues Closed

                                                                                -
                                                                                -

                                                                                New Features

                                                                                +
                                                                                +

                                                                                Issues Closed

                                                                                +
                                                                                +

                                                                                New Features

                                                                                • #116 - Better UI for Speed and Elevation buttons in the graph of the Workout screen

                                                                                • #115 - Add option to download the GPX file of a Workout

                                                                                • @@ -1097,10 +1125,10 @@ It reduces pre-requisites for single-user instances.

                                                                                Version 0.5.0 (2021/11/14)

                                                                                -
                                                                                -

                                                                                Issues Closed

                                                                                -
                                                                                -

                                                                                New Features

                                                                                +
                                                                                +

                                                                                Issues Closed

                                                                                +
                                                                                +

                                                                                New Features

                                                                                • #99 - Display workout with imperial units

                                                                                • #91 - Display elevation chart with min and max altitude of workout

                                                                                • @@ -1108,21 +1136,21 @@ It reduces pre-requisites for single-user instances.

                                                                                • #18 - Better UI

                                                                                -
                                                                                -

                                                                                Bugs Fixed

                                                                                +
                                                                                +

                                                                                Bugs Fixed

                                                                                • #95 - Some workouts seem to be missing on statistics chart

                                                                                -
                                                                                -

                                                                                Misc

                                                                                +
                                                                                +

                                                                                Misc

                                                                                • #104 - Switch to AGPLv3 license

                                                                                -
                                                                                -

                                                                                Pull Requests

                                                                                +
                                                                                +

                                                                                Pull Requests

                                                                                • #101 - Docker updates for full files

                                                                                • #100 - Add client application in docker for development

                                                                                • @@ -1139,17 +1167,17 @@ It reduces pre-requisites for single-user instances.

                                                                                Version 0.4.9 (2021/07/16)

                                                                                -
                                                                                -

                                                                                Issues Closed

                                                                                -
                                                                                -

                                                                                New Features

                                                                                +
                                                                                +

                                                                                Issues Closed

                                                                                +
                                                                                +

                                                                                New Features

                                                                                • #83 - allow using configured tile server to generate static maps
                                                                                  Note: to keep using the default tile server, set environment variable DEFAULT_STATICMAP to True

                                                                                • #81 - display remaining characters in textarea

                                                                                -
                                                                                -

                                                                                Bugs Fixed

                                                                                +
                                                                                +

                                                                                Bugs Fixed

                                                                                • #82 - a user can not modify his birth day

                                                                                • #80 - can not save notes with control characters

                                                                                • @@ -1160,10 +1188,10 @@ It reduces pre-requisites for single-user instances.

                                                                                Version 0.4.8 (2021/07/03)

                                                                                -
                                                                                -

                                                                                Issues Closed

                                                                                -
                                                                                -

                                                                                Bugs Fixed

                                                                                +
                                                                                +

                                                                                Issues Closed

                                                                                +
                                                                                +

                                                                                Bugs Fixed

                                                                                • #79 - Fails to start after make rebuild

                                                                                @@ -1173,17 +1201,17 @@ It reduces pre-requisites for single-user instances.

                                                                                Version 0.4.7 (2021/04/07)

                                                                                -
                                                                                -

                                                                                Issues Closed

                                                                                -
                                                                                -

                                                                                Bugs Fixed

                                                                                +
                                                                                +

                                                                                Issues Closed

                                                                                +
                                                                                +

                                                                                Bugs Fixed

                                                                                • #75 - Workouts on the same day are not displayed in right order

                                                                                -
                                                                                -

                                                                                Misc

                                                                                +
                                                                                +

                                                                                Misc

                                                                                • Update Python and Javascript dependencies
                                                                                  IMPORTANT: Due to SQLAlchemy update (1.4+), engine URLs starting with postgres:// are no longer supported. Please update DATABASE_URL with postgresql://.

                                                                                @@ -1192,10 +1220,10 @@ It reduces pre-requisites for single-user instances.

                                                                                Version 0.4.6 (2021/02/21)

                                                                                -
                                                                                -

                                                                                Issues Closed

                                                                                -
                                                                                -

                                                                                Bugs Fixed

                                                                                +
                                                                                +

                                                                                Issues Closed

                                                                                +
                                                                                +

                                                                                Bugs Fixed

                                                                                • #72 - Error message when file exceeding size is incorrect

                                                                                • #71 - max size or max number of files must be greater than 0

                                                                                • @@ -1207,10 +1235,10 @@ It reduces pre-requisites for single-user instances.

                                                                                Version 0.4.5 (2021/02/17)

                                                                                -
                                                                                -

                                                                                Issues Closed

                                                                                -
                                                                                -

                                                                                Bugs Fixed

                                                                                +
                                                                                +

                                                                                Issues Closed

                                                                                +
                                                                                +

                                                                                Bugs Fixed

                                                                                • #66 - invalid gpx limit used when importing zip archive

                                                                                • #64 - Only 50 workouts per month shown in calendar

                                                                                • @@ -1221,17 +1249,17 @@ It reduces pre-requisites for single-user instances.

                                                                                Version 0.4.4 (2021/01/31)

                                                                                -
                                                                                -

                                                                                Issues Closed

                                                                                -
                                                                                -

                                                                                Bugs Fixed

                                                                                +
                                                                                +

                                                                                Issues Closed

                                                                                +
                                                                                +

                                                                                Bugs Fixed

                                                                                • #62 - Error when sending reset password email

                                                                                -
                                                                                -

                                                                                Misc

                                                                                +
                                                                                +

                                                                                Misc

                                                                                • Refactoring before introducing new features.

                                                                                • Add docker files for evaluation purposes.

                                                                                • @@ -1241,16 +1269,16 @@ It reduces pre-requisites for single-user instances.

                                                                                Version 0.4.3 (2021/01/10)

                                                                                -
                                                                                -

                                                                                Issues Closed

                                                                                -
                                                                                -

                                                                                New Features

                                                                                +
                                                                                +

                                                                                Issues Closed

                                                                                +
                                                                                +

                                                                                New Features

                                                                                • #58 - Standardize terms used for workouts
                                                                                  Note: Database model, upload directory for workouts and API endpoints are also updated.

                                                                                -
                                                                                -

                                                                                Bugs Fixed

                                                                                +
                                                                                +

                                                                                Bugs Fixed

                                                                                • #59 - No message displayed on uploading image error

                                                                                @@ -1260,18 +1288,18 @@ It reduces pre-requisites for single-user instances.

                                                                                Version 0.4.2 (2021/01/03)

                                                                                -
                                                                                -

                                                                                Misc

                                                                                +
                                                                                +

                                                                                Misc

                                                                                No new features in this release, only some refactorings before introducing new features.

                                                                                Version 0.4.1 (2020/12/31)

                                                                                -
                                                                                -

                                                                                Issues Closed

                                                                                -
                                                                                -

                                                                                New Features

                                                                                +
                                                                                +

                                                                                Issues Closed

                                                                                +
                                                                                +

                                                                                New Features

                                                                                • #57 - Use uuid for activities

                                                                                @@ -1287,10 +1315,10 @@ new features.

                                                                              • It’s now possible to change the tile provider for maps. The default tile server is now OpenStreetMap’s standard tile layer (replacing ThunderForest Outdoors), see Map tile server in documentation.

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              New Features

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              New Features

                                                                              • #54 - Tile server can be changed

                                                                              • #53 - Simplify FitTrackee installation

                                                                              • @@ -1306,10 +1334,10 @@ see documentation)
                                                                                ⚠️ Warning: some application parameters move from environment variables to database (see installation).

                                                                              • in order to send emails, Redis is now a mandatory dependency

                                                                              -
                                                                              -

                                                                              Issues Closed

                                                                              -
                                                                              -

                                                                              New Features

                                                                              +
                                                                              +

                                                                              Issues Closed

                                                                              +
                                                                              +

                                                                              New Features

                                                                              • #50 - A user can reset his password

                                                                              • #17 - A user can delete his account

                                                                              • @@ -1321,8 +1349,8 @@ see

                                                                                Version 0.2.5 - Fix and improvements (2020/01/31)

                                                                                -
                                                                                -

                                                                                Misc

                                                                                +
                                                                                +

                                                                                Misc

                                                                                This version contains minor fix and improvements on client side:

                                                                                • 4c3fc34 - empty user data on logout

                                                                                • @@ -1335,10 +1363,10 @@ add URL interceptors to simplify routes definition

                                                                                Version 0.2.4 - Minor fix (2020/01/30)

                                                                                -
                                                                                -

                                                                                Issues Closed

                                                                                -
                                                                                -

                                                                                Bugs Fixed

                                                                                +
                                                                                +

                                                                                Issues Closed

                                                                                +
                                                                                +

                                                                                Bugs Fixed

                                                                                • #47 - timezone drop-down is not displayed correctly

                                                                                • #46 - calendar cannot display more than 5 or 6 activities on the same day

                                                                                • @@ -1349,17 +1377,17 @@ add URL interceptors to simplify routes definition

                                                                                Version 0.2.3 - FitTrackee available in French (2019/12/29)

                                                                                -
                                                                                -

                                                                                Issues Closed

                                                                                -
                                                                                -

                                                                                New Features

                                                                                +
                                                                                +

                                                                                Issues Closed

                                                                                +
                                                                                +

                                                                                New Features

                                                                                • #43 - Display weekend days with a different background color on calendar

                                                                                • #40 - Localize FitTrackee (i18n)

                                                                                -
                                                                                -

                                                                                Bugs Fixed

                                                                                +
                                                                                +

                                                                                Bugs Fixed

                                                                                • #44 - Cannot edit an activity that does not have a gpx file

                                                                                @@ -1369,10 +1397,10 @@ add URL interceptors to simplify routes definition

                                                                                Version 0.2.2 - Statistics fix (2019/09/23)

                                                                                -
                                                                                -

                                                                                Issues Closed

                                                                                -
                                                                                -

                                                                                Bugs Fixed

                                                                                +
                                                                                +

                                                                                Issues Closed

                                                                                +
                                                                                +

                                                                                Bugs Fixed

                                                                                • #41 - User statistics are incorrect

                                                                                @@ -1382,10 +1410,10 @@ add URL interceptors to simplify routes definition

                                                                                Version 0.2.1 - Fix and improvements (2019/09/01)

                                                                                -
                                                                                -

                                                                                Issues Closed

                                                                                -
                                                                                -

                                                                                New Features

                                                                                +
                                                                                +

                                                                                Issues Closed

                                                                                +
                                                                                +

                                                                                New Features

                                                                                • #4 - Show points on the map when mouse over the chart

                                                                                • #14 - Display segments informations

                                                                                • @@ -1396,15 +1424,15 @@ add URL interceptors to simplify routes definition

                                                                                • #37 - Display map on activities list

                                                                                -
                                                                                -

                                                                                Bugs Fixed

                                                                                +
                                                                                +

                                                                                Bugs Fixed

                                                                                • #34 - Weather is not displayed anymore

                                                                                -
                                                                                -

                                                                                Misc

                                                                                +
                                                                                +

                                                                                Misc

                                                                                @@ -1413,17 +1441,17 @@ add URL interceptors to simplify routes definition

                                                                                Version 0.2.0 - Statistics (2019/07/07)

                                                                                -
                                                                                -

                                                                                Issues Closed

                                                                                -
                                                                                -

                                                                                New Features

                                                                                +
                                                                                +

                                                                                Issues Closed

                                                                                +
                                                                                +

                                                                                New Features

                                                                                • #13 - Detailed statistics

                                                                                -
                                                                                -

                                                                                Misc

                                                                                +
                                                                                +

                                                                                Misc

                                                                                • Update dependencies

                                                                                @@ -1432,17 +1460,17 @@ add URL interceptors to simplify routes definition

                                                                                Version 0.1.1 - Fix and improvements (2019/02/07)

                                                                                -
                                                                                -

                                                                                Issues Closed

                                                                                -
                                                                                -

                                                                                New Features

                                                                                +
                                                                                +

                                                                                Issues Closed

                                                                                +
                                                                                +

                                                                                New Features

                                                                                • #25 - Display records on calendar

                                                                                • #22 - Add a total on current month statistics

                                                                                -
                                                                                -

                                                                                Bugs Fixed

                                                                                +
                                                                                +

                                                                                Bugs Fixed

                                                                                • #31 - Use moving duration for stats

                                                                                • #29 - Pause duration calculation with segments

                                                                                • @@ -1491,10 +1519,10 @@ add URL interceptors to simplify routes definition

                                                                                • no administration for now

                                                                                ➡️ more informations: see documentation and current issues

                                                                                -
                                                                                -

                                                                                Issues Closed

                                                                                -
                                                                                -

                                                                                New Features

                                                                                +
                                                                                +

                                                                                Issues Closed

                                                                                +
                                                                                +

                                                                                New Features

                                                                                • #11 - Timezone support

                                                                                • #10 - Add a note to an activity

                                                                                • @@ -1522,7 +1550,7 @@ add URL interceptors to simplify routes definition

                                                                                  © Copyright 2018 - 2022, SamR1 . - Last updated on Dec 21, 2022.
                                                                                  + Last updated on Dec 31, 2022.
                                                                                  Created using Sphinx 5.3.0.

                                                                                  diff --git a/docs/cli.html b/docs/cli.html index c2ed0db9..151ca5de 100644 --- a/docs/cli.html +++ b/docs/cli.html @@ -5,7 +5,7 @@ - Command line interface — FitTrackee 0.7.10 + <title>Command line interface — FitTrackee 0.7.11 documentation @@ -43,7 +43,7 @@ FitTrackee - 0.7.10 + 0.7.11 @@ -288,7 +288,7 @@ Commands:

                                                                                  © Copyright 2018 - 2022, SamR1 . - Last updated on Dec 21, 2022.
                                                                                  + Last updated on Dec 31, 2022.
                                                                                  Created using Sphinx 5.3.0.

                                                                                  diff --git a/docs/features.html b/docs/features.html index b3e60461..883b3e91 100644 --- a/docs/features.html +++ b/docs/features.html @@ -5,7 +5,7 @@ - Features — FitTrackee 0.7.10 + <title>Features — FitTrackee 0.7.11 documentation @@ -43,7 +43,7 @@ FitTrackee - 0.7.10 + 0.7.11 @@ -206,7 +206,7 @@
                                                                                • -
                                                                                  If DarkSky API key is provided, weather is displayed in workout detail.
                                                                                  +
                                                                                  If DarkSky API or Visual Crossing (new in 0.7.11) API key is provided, weather is displayed in workout detail. Data source is displayed in About page.
                                                                                  Wind is displayed, with arrow indicating direction (a tooltip can be displayed with the direction that the wind is coming from) (new in 0.5.5).
                                                                                • @@ -400,7 +400,7 @@ A user with an inactive account cannot log in. (new in 0.6.0)

                                                                                  © Copyright 2018 - 2022, SamR1 . - Last updated on Dec 21, 2022.
                                                                                  + Last updated on Dec 31, 2022.
                                                                                  Created using Sphinx 5.3.0.

                                                                                  diff --git a/docs/genindex.html b/docs/genindex.html index 187dac98..47ab1f03 100644 --- a/docs/genindex.html +++ b/docs/genindex.html @@ -4,7 +4,7 @@ - Index — FitTrackee 0.7.10 + <title>Index — FitTrackee 0.7.11 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.7.10 + 0.7.11 @@ -126,7 +126,7 @@ environment variable
                                                                                +
                                                                                +

                                                                                Weather data

                                                                                +
                                                                                +

                                                                                Changed in version 0.7.11.

                                                                                +
                                                                                +

                                                                                The following weather data providers are supported by FitTrackee:

                                                                                +
                                                                                  +
                                                                                • Dark Sky (deprecated, will stop on March 31st, 2023)

                                                                                • +
                                                                                • Visual Crossing (note: historical data are provided on hourly period)

                                                                                • +
                                                                                +

                                                                                To configure a weather provider, set the following environment variables:

                                                                                +
                                                                                  +
                                                                                • WEATHER_API_PROVIDER: darksky for Dark Sky or visualcrossing for Visual Crossing

                                                                                • +
                                                                                • WEATHER_API_KEY: the key to the corresponding weather provider

                                                                                • +
                                                                                +

                                                                                Installation

                                                                                @@ -795,11 +821,11 @@ $ make install-db
                                                                                  -
                                                                                • Download the last release (for now, it is the release v0.7.10):

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

                                                                                -
                                                                                $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.10.tar.gz
                                                                                -$ tar -xzf v0.7.10.tar.gz
                                                                                -$ mv FitTrackee-0.7.10 FitTrackee
                                                                                +
                                                                                $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.11.tar.gz
                                                                                +$ tar -xzf v0.7.11.tar.gz
                                                                                +$ mv FitTrackee-0.7.11 FitTrackee
                                                                                 $ cd FitTrackee
                                                                                 
                                                                                @@ -919,11 +945,11 @@ $ source .env
                                                                                • Stop the application

                                                                                • Change to the directory where FitTrackee directory is located

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

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

                                                                                -
                                                                                $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.10.tar.gz
                                                                                -$ tar -xzf v0.7.10.tar.gz
                                                                                -$ cp -R FitTrackee-0.7.10/* FitTrackee/
                                                                                +
                                                                                $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.11.tar.gz
                                                                                +$ tar -xzf v0.7.11.tar.gz
                                                                                +$ cp -R FitTrackee-0.7.11/* FitTrackee/
                                                                                 $ cd FitTrackee
                                                                                 
                                                                                @@ -1182,7 +1208,7 @@ $ make docker-test-python # run unit tests on API

                                                                                © Copyright 2018 - 2022, SamR1 . - Last updated on Dec 21, 2022.
                                                                                + Last updated on Dec 31, 2022.
                                                                                Created using Sphinx 5.3.0.

                                                                                diff --git a/docs/objects.inv b/docs/objects.inv index b5827b019f492a2d60d4bd855e9126b941361440..1f86d4391d933f7b89ca90f60baf62f5afe56c50 100644 GIT binary patch delta 785 zcmV+s1Md9u3;GL?Ljf_7L{<$rsXb8&D7GpXSdcT5k*6yHUTBfjQv!T1lPLi(0>03b zTLCHog_DK>gb?51pWy)LVUU1)9;_yBl9;livbie;=nyjl+yWJ6ZX?$V;4^ zGzZjE&64^5=Z+^gd(yVJa?ar6m=r*UdhG-l-idJcI&03Iv!C$y1ODF6zf|MH(~LkZ z3p#y{fQ5jCI+h-|D3iY440c^4b;xp;eiFK|mn{5yKaT8%Wf!D)d&4!LXaVo*JXel+ zq6z)pDwoM3fB0soh`g)Ni<3L=Ph(*m`w!ntGkgldJ1;a*UAwV+=|*01?MLqA!b_Gx zuz<+NAXeeRMCRSNt3{kdu^anW_wLd_>)pHl!Z6;=!j0|{7$pPEZ4kuwb|Yg|<>!{E{9DgXNS?|)`8CiQ?7 z>z|vhyeRTaW~%!MtCeJBY9sAuE!%}}@Uo$43$R9aV_iAEINMjMsU^@NBR_OyYm`Bk zz6~uqfBu@=tHgy~mnqkLJK))VwbYBb=B-}L?NB^e%4J-0SMIuY)PA@6d*8^nzYN+D z&$@v@6Yk<-r@8O%F!qXnwFZ|A&3W*)v!CRX)&8(HaIK_EyrFf5DmeAMb89Z=ud(1H zSgc82u2o%cloQrI+VE_pIUP9Ww42lI78jYFf760Mi7`^Y;FMS|1oJD`AgRtKgg5fZ zT9aa5204BvId|@?!rA9vE&l39HFOxxM+`sbWGERm3+-(jFYQp6?U>uGQQ0Y>ZYYau zoW2t7wqG$rZ*3((etV0xEwhOZRqv>45Ssfk+d&sZ*Ob;zWXpH9fpiAyQ;bPNaGh?3 zKWbr(KfSYCl~Eqoj{= delta 778 zcmV+l1NHp+3-b$*Ljf?6L{<%WQhTBlP;6B&upnoWk*6yHo@tTPQv&=blPLi(0zT7| zTLCHonUjVAgb?20pWy)LVUU1)9;_y>l9elivbif49@6#$iUGovi#(}K%A~J1gIyO%9kSe|pM-AgB@6%Fk0blnzkmN@H!Qm##p^4sfkz8? zY3I3e))P%gf0uIDGFb%QX6k>JipaYPy*Rn^{xlZGvH$QbGL$_A;hh(nsIJ}Ey>ufl zx%MOXa^WS*AXq@;V-TxwVIuQx+|?pZqS%f7t9y58p!M!ue_L04U#?<5crZ{dgU}>U=)rUu_CN9-uDvj6e}~RQ)=f_mtuC(vP(PT|SL{Pg zMPB$FLYw8g@=XQHMc`g1H^Bn>X`uVQ@_1P!e9@aleDvJ-7COe2W@}t7)MOb3S6&o( zCPUi&{M1UaGPRNRla%ekH+WIdv;|nBd#$baU#-CfL319wsq9DjWVJtv4O}bf5^rdop$blH@7$Wp`D-jV#T9Fkmupqm z8|8$xk2XA8X-)@@Iql|jyTwIj=d>VDVvN+!e>f%9Gr|12G)Stm3E_==veu;7mqCu7 zNY0%*t8n)DSBt;4Q4Jl2vkk*fIT=bu%|d${$4fgDW;^C~YgBehs2j@S8mBLWyX{xZ z&|6zckl)^7ZOd$;L)AO#8ieM)%y!TP(KV&@6WQ{eZ6KY2`V?c*5L~C5p<38vDU0?c zI9?Nr0TDECtSmXf!P%A;Q0K6+%UT_&4;|$aS4|`GXr?9|WT_9EMl8P2K0@*K{W`S% I13GX - Search — FitTrackee 0.7.10 + <title>Search — FitTrackee 0.7.11 documentation @@ -47,7 +47,7 @@ FitTrackee - 0.7.10 + 0.7.11
                                                                                @@ -154,7 +154,7 @@

                                                                                © Copyright 2018 - 2022, SamR1 . - Last updated on Dec 21, 2022.
                                                                                + Last updated on Dec 31, 2022.
                                                                                Created using Sphinx 5.3.0.

                                                                                diff --git a/docs/searchindex.js b/docs/searchindex.js index 55b8c191..ee473dc0 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["api/auth", "api/configuration", "api/index", "api/oauth2", "api/records", "api/sports", "api/stats", "api/users", "api/workouts", "apps", "changelog", "cli", "features", "index", "installation", "troubleshooting/administrator", "troubleshooting/index", "troubleshooting/user"], "filenames": ["api/auth.rst", "api/configuration.rst", "api/index.rst", "api/oauth2.rst", "api/records.rst", "api/sports.rst", "api/stats.rst", "api/users.rst", "api/workouts.rst", "apps.rst", "changelog.md", "cli.rst", "features.rst", "index.rst", "installation.rst", "troubleshooting/administrator.rst", "troubleshooting/index.rst", "troubleshooting/user.rst"], "titles": ["Authentication", "Configuration", "API documentation", "OAuth2", "Records", "Sports", "Statistics", "Users", "Workouts", "Third-party applications", "Change log", "Command line interface", "Features", "FitTrackee", "Installation", "Administrator", "Troubleshooting", "User"], "terms": {"post": [0, 3, 8, 9], "api": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13], "auth": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "regist": [0, 1, 12, 14], "user": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 14, 16], "send": [0, 7, 10, 12, 14], "confirm": [0, 3, 10, 12, 14], "email": [0, 1, 7, 10, 11, 12, 15], "The": [0, 9, 10, 11, 12, 14], "newli": [0, 14], "creat": [0, 3, 8, 9, 10, 12, 14], "account": [0, 7, 10, 11, 14], "i": [0, 1, 3, 9, 10, 11, 12, 13, 14, 16], "inact": [0, 7, 12, 14], "must": [0, 1, 3, 5, 7, 8, 9, 10, 12, 14, 15], "hi": [0, 7, 10, 12], "activ": [0, 5, 7, 10, 11, 12, 13, 14], "exampl": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14], "request": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "http": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "1": [0, 1, 3, 4, 5, 6, 7, 8, 12, 14], "content": [0, 1, 3, 4, 5, 6, 7, 8], "type": [0, 1, 3, 4, 5, 6, 7, 8, 10, 14], "applic": [0, 1, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14], "json": [0, 1, 3, 4, 5, 6, 7, 8], "respons": [0, 1, 3, 4, 5, 6, 7, 8], "success": [0, 1, 3, 4, 5, 6, 7, 8], "200": [0, 1, 3, 4, 5, 6, 7, 8, 10, 14], "statu": [0, 1, 3, 4, 5, 6, 7, 8, 11, 12], "error": [0, 1, 3, 5, 7, 8, 10, 14, 15], "registr": [0, 1, 9, 10, 12, 14], "400": [0, 1, 3, 5, 7, 8], "bad": [0, 1, 3, 5, 7, 8], "messag": [0, 1, 3, 8, 10, 11, 14], "valid": [0, 1, 3, 4, 5, 6, 7, 8, 10, 14, 15], "provid": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15], "n": 0, "object": [0, 1, 5, 7, 8], "usernam": [0, 6, 7, 10, 14], "string": [0, 1, 3, 5, 6, 7, 8, 9, 14], "3": [0, 5, 6, 7, 8, 12, 14], "30": [0, 6], "charact": [0, 10], "requir": [0, 9, 10, 14], "password": [0, 7, 10, 11, 12, 14], "8": [0, 8, 12], "lang": [0, 10], "languag": [0, 7, 10, 12], "prefer": [0, 7, 10], "invalid": [0, 1, 3, 4, 5, 6, 7, 8, 10, 14], "fallback": 0, "en": [0, 7], "english": [0, 10, 12], "code": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10], "ok": [0, 1, 3, 4, 5, 6, 7, 8], "payload": [0, 1, 3, 5, 7, 8], "sorri": 0, "alreadi": 0, "taken": 0, "onli": [0, 3, 7, 8, 9, 10, 11, 12, 14], "alphanumer": [0, 10], "underscor": 0, "_": [0, 10], "allow": [0, 1, 8, 9, 10, 12, 13, 14], "403": [0, 1, 5, 6, 7, 8], "forbidden": [0, 1, 5, 6, 7, 8], "disabl": [0, 10, 11, 12, 14], "500": [0, 1, 5, 7, 8, 10], "intern": [0, 1, 5, 7, 8], "server": [0, 1, 5, 7, 8, 10, 12, 13], "pleas": [0, 1, 3, 4, 5, 6, 7, 8, 10], "try": [0, 7, 8], "again": [0, 1, 3, 4, 5, 6, 7, 8], "contact": [0, 1, 7, 8, 12], "administr": [0, 1, 7, 8, 9, 16], "after": [0, 3, 9, 10, 12, 14], "auth_token": 0, "web": [0, 9, 13, 14], "token": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11], "resend": 0, "instruct": [0, 10, 12, 14], "If": [0, 3, 9, 12, 14], "thi": [0, 3, 8, 10, 11, 12, 13, 14], "endpoint": [0, 1, 3, 9, 10, 14], "avail": [0, 4, 9, 11, 12, 14], "resent": 0, "404": [0, 3, 5, 6, 7, 8, 10], "Not": [0, 3, 5, 6, 7, 8], "found": [0, 3, 5, 6, 7, 8, 10], "url": [0, 3, 9, 10, 14, 15], "wa": [0, 10], "login": 0, "an": [0, 1, 3, 5, 7, 9, 10, 12, 14, 15], "can": [0, 7, 9, 10, 12, 13, 14, 15], "log": [0, 1, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15], "successfulli": 0, "401": [0, 1, 3, 4, 5, 6, 7, 8], "unauthor": [0, 1, 3, 4, 5, 6, 7, 8], "credenti": [0, 14], "get": [0, 1, 3, 4, 5, 6, 7, 8, 9], "profil": [0, 3, 9, 10], "info": 0, "scope": [0, 1, 3, 4, 5, 6, 7, 8], "read": [0, 3, 4, 5, 6, 7, 8, 9, 10], "data": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14], "admin": [0, 1, 4, 5, 6, 7, 8, 10, 11, 12, 14], "fals": [0, 1, 3, 5, 7, 8, 14], "bio": [0, 7], "null": [0, 5, 7, 8, 10], "birth_dat": [0, 7], "created_at": [0, 7], "sun": [0, 4, 7, 8], "14": [0, 3, 7, 8, 12], "jul": [0, 4, 7, 8], "2019": [0, 4, 6, 7, 8], "09": [0, 7], "58": [0, 7, 10], "gmt": [0, 3, 4, 7, 8], "display_asc": 0, "true": [0, 1, 3, 5, 7, 10, 14], "sam": [0, 4, 7, 8], "com": [0, 1, 3, 7, 9, 14], "first_nam": [0, 7], "imperial_unit": [0, 7], "is_act": [0, 5, 7], "last_nam": [0, 7], "locat": [0, 7, 14], "nb_sport": [0, 7], "nb_workout": [0, 6, 7], "6": [0, 5, 7, 8, 11, 12, 14], "pictur": [0, 7, 8, 10], "record": [0, 2, 7, 8, 10, 12], "id": [0, 3, 4, 5, 6, 7, 8, 9], "9": [0, 4, 7, 12, 14], "record_typ": [0, 4, 7, 8], "AS": [0, 4, 7, 8], "sport_id": [0, 4, 5, 6, 7, 8], "valu": [0, 3, 4, 7, 8, 9, 10, 14], "18": [0, 4, 7, 8, 10], "workout_d": [0, 4, 7, 8], "07": [0, 4, 7, 8], "08": [0, 4, 7, 8], "00": [0, 4, 7, 8], "workout_id": [0, 4, 7, 8], "hvybqybra7wwxpastwr4v2": [0, 4, 7, 8], "10": [0, 1, 4, 7, 8, 12, 14], "fd": [0, 4, 7, 8], "13": [0, 4, 7, 8], "ha": [0, 4, 7, 8, 10, 12, 13], "43": [0, 4, 7, 8, 10], "97": [0, 4, 7, 8], "11": [0, 4, 7, 12], "ld": [0, 4, 7, 8], "01": [0, 4, 6, 7, 8], "12": [0, 4, 7, 8], "m": [0, 4, 6, 7, 8], "sports_list": [0, 7], "4": [0, 5, 6, 7, 8, 12, 14], "timezon": [0, 7, 8, 10, 12], "europ": [0, 7], "pari": [0, 7], "total_dist": [0, 6, 7], "67": [0, 7], "895": [0, 7], "total_dur": [0, 6, 7], "50": [0, 7, 10, 14], "27": [0, 3, 7], "weekm": [0, 6, 7], "header": [0, 1, 3, 4, 5, 6, 7, 8, 9], "author": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "oauth": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 14], "2": [0, 1, 3, 4, 5, 6, 7, 8, 9, 12, 14], "0": [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 12, 14], "bearer": [0, 1, 3, 4, 5, 6, 7, 8], "signatur": [0, 1, 3, 4, 5, 6, 7, 8], "expir": [0, 1, 3, 4, 5, 6, 7, 8, 11], "edit": [0, 10, 12], "write": [0, 1, 3, 5, 7, 8, 9], "updat": [0, 1, 5, 7, 8, 10, 12, 14], "first": [0, 3, 9, 12], "name": [0, 3, 7, 10, 14], "last": [0, 10, 14], "biographi": 0, "birth": [0, 10], "date": [0, 6, 8, 10, 12], "format": [0, 6, 8, 10, 12], "y": [0, 6, 8, 14], "d": [0, 6, 8], "support": [0, 3, 9, 10, 12, 14, 15], "mm": 0, "dd": 0, "yyyi": 0, "default": [0, 3, 6, 7, 8, 10, 12, 14], "date_str": 0, "correspond": 0, "client": [0, 3, 9, 10, 12, 14], "mmm": 0, "do": [0, 1, 5, 6, 7, 8], "local": [0, 10, 13, 14], "fr": [0, 7, 14], "de": [0, 14], "date_format": 0, "us": [0, 3, 7, 8, 9, 10, 12, 13, 14], "displai": [0, 8, 9, 10, 11, 12, 13, 14, 16], "app": [0, 3, 9, 10, 12, 13], "boolean": [0, 1, 3, 7, 11], "highest": [0, 4, 12], "ascent": [0, 4, 8, 10, 12], "total": [0, 3, 10, 12], "distanc": [0, 4, 8, 10, 12], "imperi": [0, 10, 12], "unit": [0, 10, 14], "time": [0, 6, 8, 10, 12], "zone": 0, "doe": [0, 6, 7, 8, 10], "week": [0, 6, 10, 12], "start": [0, 6, 8, 10, 12, 14, 16], "mondai": [0, 6, 12], "don": 0, "t": [0, 10, 15], "match": [0, 10], "sport": [0, 2, 6, 8, 10, 12, 14], "color": [0, 5, 10, 12], "000000": 0, "stopped_speed_threshold": [0, 5], "user_id": 0, "hexadecim": 0, "when": [0, 1, 10, 11, 12, 14], "ad": [0, 10, 11, 12], "workout": [0, 2, 3, 4, 5, 6, 9, 10, 13, 16], "float": [0, 8], "stop": [0, 10, 12, 14], "speed": [0, 4, 8, 10, 12, 14], "threshold": [0, 10, 12], "gpxpy": [0, 12, 14], "exist": [0, 6, 7, 8, 10, 12, 13, 14], "delet": [0, 3, 7, 8, 10, 11, 12], "reset": [0, 7, 10, 11, 12, 14], "given": [0, 3, 14], "204": [0, 3, 7, 8], "paramet": [0, 3, 5, 6, 7, 8, 9, 10, 12, 14], "No": [0, 3, 7, 8, 10, 13], "multipart": [0, 3, 8], "form": [0, 3, 8], "file": [0, 1, 8, 10, 11, 12, 13, 14], "imag": [0, 7, 8, 10, 12, 14, 16], "extens": [0, 8, 14], "jpg": 0, "png": [0, 8, 14], "gif": 0, "part": [0, 8], "select": [0, 8, 12], "413": [0, 8], "entiti": [0, 8], "too": [0, 8], "larg": [0, 8, 12, 14], "dure": [0, 8], "size": [0, 1, 8, 10, 12, 14], "exce": [0, 8, 10], "0mb": [0, 8], "NO": [0, 3, 7, 8], "handl": [0, 12, 14], "process": [0, 10, 14], "patch": [0, 1, 5, 7, 8], "It": [0, 7, 9, 10, 12, 13, 15], "enabl": [0, 1, 7, 12, 14], "chang": [0, 12, 13, 14], "one": [0, 7, 8, 12], "current": [0, 10], "address": [0, 12, 14], "inform": [0, 10, 13, 14], "anoth": [0, 7, 14], "new": [0, 7, 9, 11, 12, 14], "new_password": 0, "miss": [0, 10], "logout": [0, 10], "blacklist": [0, 11], "out": 0, "access": [0, 3, 9, 10, 14], "revok": [0, 3], "malform": 0, "other": [0, 7, 14], "reason": 0, "config": [1, 10, 14], "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, 14], "copi": [1, 14], "href": [1, 14], "www": [1, 14], "openstreetmap": [1, 10, 14], "org": [1, 14], "copyright": [1, 14], "contributor": [1, 10, 14], "version": [1, 11, 14], "7": [1, 8, 9, 11, 12, 14], "authent": [1, 2, 3, 4, 5, 7, 8, 9], "integ": [1, 3, 5, 6, 7, 8], "max": [1, 7, 8, 10], "number": [1, 7, 8, 10, 11, 12, 14], "zip": [1, 8, 10, 12], "archiv": [1, 10, 12, 14], "singl": [1, 7, 10, 12, 14], "instanc": [1, 3, 9, 10, 12, 14], "you": [1, 5, 6, 7, 8, 12, 13, 14], "have": [1, 5, 6, 7, 8, 10], "permiss": [1, 5, 6, 7, 8], "ping": 1, "health": 1, "check": [1, 10, 14, 15], "pong": 1, "configur": [2, 9, 10, 12, 14], "oauth2": [2, 9], "statist": 2, "pagin": [3, 7, 8], "5": [3, 5, 6, 7, 8, 11, 12, 14], "page": [3, 7, 8, 10], "fittracke": [3, 9, 11, 12, 14, 16], "parti": [3, 12, 13], "without": [3, 6, 7, 8, 10, 12, 13], "client_descript": 3, "client_id": [3, 9], "o22a27s2abpuoxjbxv3ujdox": 3, "issued_at": 3, "thu": 3, "juli": 3, "2022": 3, "06": [3, 6], "53": [3, 10], "gpx": [3, 8, 10, 12, 13, 14], "import": [3, 10, 14], "redirect_uri": 3, "callback": [3, 9], "websit": 3, "has_next": 3, "has_prev": 3, "queri": [3, 6, 7, 8], "client_secret": 3, "secret": [3, 9, 14], "client_nam": 3, "client_uri": 3, "arrai": 3, "list": [3, 10, 13, 14], "redirect": [3, 9], "descript": [3, 11, 14], "option": [3, 9, 10, 11, 14], "client_client_id": 3, "NOT": [3, 5, 8], "int": [3, 5, 8], "by_id": 3, "all": [3, 4, 5, 6, 7, 14], "associ": 3, "issu": [3, 13, 14], "response_typ": [3, 9], "state": [3, 9], "uniqu": [3, 9], "prevent": [3, 9, 14], "cross": [3, 9, 12], "site": [3, 9], "forgeri": [3, 9], "mandatori": [3, 8, 9, 10, 14], "recommend": [3, 9, 14], "code_challeng": [3, 9], "gener": [3, 9, 10, 12, 14], "from": [3, 6, 8, 9, 10, 12, 13], "verifi": [3, 9], "pkce": [3, 9], "code_challenge_method": [3, 9], "method": [3, 9, 14], "challeng": [3, 9], "s256": [3, 9], "return": [3, 4, 7, 8, 10, 14], "authlib": [3, 9, 14], "librari": [3, 9, 14], "refresh": [3, 10], "access_token": 3, "roehv64thcg28wcewzhrnvlusoduvw8nvnhkcml57": 3, "expires_in": 3, "864000": 3, "refresh_token": 3, "nuv9cy8vqonrqkhtz5pqaq2zw7msh0mornpjr14amswd6f6i": 3, "token_typ": 3, "expires_at": 3, "1658660147": 3, "0667062": 3, "grant_typ": 3, "grant": [3, 9], "authorization_cod": [3, 9], "ar": [3, 4, 8, 9, 10, 11, 12, 13, 14, 16], "code_verifi": 3, "follow": [4, 9, 11, 12, 14, 15], "averag": [4, 8, 10, 12], "farthest": [4, 10, 12], "longest": [4, 10, 12], "durat": [4, 8, 10, 12], "maximum": [4, 10, 12], "non": [5, 13], "is_active_for_us": 5, "label": [5, 10], "cycl": [5, 10, 12], "transport": [5, 10, 12], "hike": [5, 10, 12], "mountain": [5, 10, 12], "bike": [5, 8, 10, 12], "run": [5, 9, 10, 12, 14], "walk": [5, 10, 12], "has_workout": 5, "stat": [6, 10], "user_nam": [6, 7], "by_tim": 6, "2018": [6, 8], "2017": [6, 8], "average_spe": 6, "48": 6, "total_asc": 6, "203": 6, "156": [6, 10], "15": [6, 8], "282": [6, 10], "12341": 6, "16": [6, 8], "99": [6, 10], "150": 6, "178": [6, 10], "47": [6, 8, 10], "9960": 6, "95": [6, 10], "46": [6, 10], "78": 6, "613": 6, "1267": 6, "end": [6, 8], "frame": 6, "sundai": [6, 8, 12], "month": [6, 10, 12], "year": [6, 12], "by_sport": 6, "uploads_dir_s": 6, "1000": 6, "regardless": 7, "right": [7, 9, 10, 11, 12, 14], "some": [7, 8, 9, 10, 12, 13, 14], "order_bi": [7, 8], "workouts_count": 7, "par_pag": 7, "is_admin": 7, "sat": 7, "20": 7, "03": [7, 8], "per_pag": [7, 8], "per": [7, 8, 10, 14], "q": 7, "order": [7, 8, 9, 10], "sort": [7, 8], "asc": [7, 8], "desc": [7, 8], "criteria": [7, 8], "detail": [7, 10, 14, 16], "jpeg": 7, "add": [7, 10, 11, 12, 13], "remov": [7, 10, 11, 12], "modifi": [7, 10, 11, 14], "new_email": 7, "reset_password": 7, "differ": [7, 10, 12], "than": [7, 10, 11], "curent": 7, "A": [7, 10, 11, 12, 14, 15], "own": [7, 12, 13], "except": [7, 14, 15], "he": 7, "": [7, 8, 10, 14], "john_do": 7, "your": [7, 12, 13, 14], "02": 8, "31": 8, "least": 8, "ave_spe": 8, "bound": 8, "creation_d": 8, "51": 8, "descent": [8, 10, 12], "17": [8, 14], "04": 8, "kjxavsturjvoah2wvcegef": 8, "map": [8, 10, 12, 13, 16], "max_alt": 8, "max_spe": 8, "min_alt": 8, "modification_d": 8, "move": [8, 10], "next_workout": 8, "note": [8, 10, 12, 14], "paus": [8, 10], "previous_workout": 8, "mon": 8, "jan": 8, "segment": [8, 10, 12], "titl": 8, "weather_end": 8, "weather_start": 8, "with_gpx": 8, "100": [8, 10, 12], "distance_from": 8, "minim": [8, 9], "distance_to": 8, "maxim": 8, "duration_from": 8, "h": [8, 12], "duration_to": 8, "ave_speed_from": 8, "ave_speed_to": 8, "max_speed_from": 8, "max_speed_to": 8, "workout_short_id": 8, "57": [8, 10], "45": 8, "22": 8, "morn": 8, "short": 8, "leaflet": [8, 14], "chart_data": 8, "chart": [8, 10, 12, 14], "j": [8, 10, 14], "elev": [8, 10, 12, 14], "279": [8, 10], "latitud": 8, "5078118": 8, "longitud": 8, "1232004": 8, "63": 8, "fri": 8, "44": [8, 10], "7380": 8, "280": [8, 10], "5079733": 8, "1234538": 8, "39": 8, "segment_id": 8, "rechart": 8, "map_id": 8, "fa33f4d996844a5c73ecd1ae24456ab8": 8, "1563529507772": 8, "map_til": 8, "z": [8, 14], "x": [8, 9, 14], "tile": [8, 10, 12], "c": [8, 14], "4109": 8, "2930": 8, "subdomain": [8, 10, 14], "zoom": 8, "index": 8, "along": 8, "axi": 8, "download": [8, 10, 12, 14], "xml": 8, "201": [8, 10], "doubl": 8, "quot": 8, "escap": 8, "no_gpx": 8, "uuid": [8, 10], "km": [8, 12], "second": 8, "rest": 9, "see": [9, 10, 12, 13, 14, 15], "document": [9, 13, 14], "whose": 9, "most": 9, "To": [9, 10, 14], "interact": 9, "set": [9, 10, 11, 12, 14, 15], "tab": 9, "exchang": 9, "sent": [9, 10, 12, 14], "bodi": [9, 10, 14], "better": [9, 10], "secur": 9, "relat": [9, 12, 14], "shown": [9, 10, 16], "thei": [9, 14], "store": [9, 12, 13], "3rd": 9, "need": [9, 10, 14], "fittrackee_host": 9, "sinc": [9, 14], "separ": [9, 14], "space": 9, "For": [9, 12, 14], "3aread": 9, "3awrit": 9, "so": 9, "fetch": [9, 14], "implement": 9, "behind": 9, "proxi": [9, 14], "forward": [9, 14], "proto": [9, 14], "nginx": [9, 10, 12, 14], "proxy_set_head": [9, 14], "scheme": [9, 14], "about": [9, 14], "simplifi": [9, 10], "aaron": 9, "parecki": 9, "oauthlib": 9, "python": [9, 10, 14], "session": 9, "92": 10, "italian": [10, 12], "thank": 10, "dperruso": 10, "c88a515": 10, "host": [10, 14], "weblat": [10, 12], "dutch": [10, 12], "bjornclauw": 10, "f96dcef": 10, "german": [10, 12], "contain": [10, 14], "databas": [10, 12, 14, 15], "migrat": [10, 11, 14], "upgrad": 10, "pr": 10, "278": 10, "qwerty287": 10, "init": [10, 14], "now": [10, 11, 12, 14], "270": 10, "nederland": 10, "258": 10, "pars": [10, 14], "link": [10, 14], "area": 10, "jat255": 10, "271": 10, "creation": [10, 12], "273": 10, "274": 10, "test": [10, 14], "parallel": 10, "275": 10, "worker": [10, 14], "entri": [10, 14], "point": [10, 14], "fittrackee_work": [10, 11, 14], "command": [10, 12, 13, 14], "flask": [10, 14], "dramatiq": [10, 14], "cli": [10, 11, 12, 14], "3c8d9c2": 10, "trail": [10, 12], "comma": [10, 14], "dev": 10, "depend": [10, 14], "264": 10, "ui": 10, "white": 10, "grai": 10, "background": 10, "266": 10, "260": 10, "261": 10, "should": [10, 14], "limit": [10, 12], "still": [10, 12, 13, 14], "89": 10, "b1536fc": 10, "257": 10, "112": 10, "244": 10, "virtual": [10, 12], "ride": 10, "246": 10, "postgresql": [10, 14, 15], "247": 10, "microsecond": 10, "252": 10, "norwegian": 10, "bokm\u00e5l": 10, "242": 10, "241": 10, "strength": 10, "estim": 10, "packag": [10, 14], "239": 10, "cb9d02f": 10, "88": 10, "231": 10, "236": 10, "rate": 10, "232": 10, "hidden": [10, 12], "237": 10, "212": 10, "lavoi": 10, "230": 10, "problem": 10, "225": 10, "grammar": 10, "skylan0916": 10, "In": [10, 12], "execut": 10, "lower": 10, "v0": [10, 14], "postgr": [10, 15], "213": 10, "measur": 10, "ft": 10, "mi": 10, "223": 10, "icon": [10, 14], "167": 10, "dashboard": 10, "162": 10, "fmstrat": 10, "210": 10, "could": 10, "environ": [10, 11, 15], "variabl": [10, 15], "staticmap_subdomain": [10, 14], "209": 10, "incorrect": 10, "track": [10, 13], "multipl": 10, "gorgobacka": 10, "And": 10, "detect": 10, "browser": 10, "208": 10, "card": 10, "html": 10, "attribut": [10, 14], "197": 10, "196": 10, "manag": [10, 11, 14], "tool": [10, 14], "190": 10, "were": 10, "193": 10, "192": 10, "instead": [10, 12], "191": 10, "layout": 10, "includ": 10, "195": 10, "affect": 10, "previous": 10, "cc4287e": 10, "docker": 10, "env": [10, 14], "offset": 10, "refacto": 10, "befor": [10, 14], "introduc": 10, "possibl": [10, 12, 13, 14], "smtp": [10, 14], "reduc": 10, "pre": 10, "requisit": 10, "180": 10, "cannot": [10, 12], "tl": [10, 14], "177": 10, "posit": [10, 12], "small": 10, "screen": [10, 12], "175": 10, "173": 10, "171": 10, "correctli": 10, "155": 10, "106": 10, "169": 10, "161": 10, "160": 10, "sever": [10, 12, 13, 14], "danielsiersleben": 10, "report": 10, "initi": [10, 14], "149": 10, "initialis": [10, 14], "152": 10, "autoescap": 10, "jinja": 10, "templat": 10, "151": 10, "sanit": 10, "input": 10, "serv": [10, 14], "warn": [10, 12], "launch": 10, "w": 10, "script": 10, "entrypoint": 10, "drop": 10, "avoid": 10, "product": 10, "dotenv": 10, "146": 10, "filter": [10, 12], "145": 10, "model": 10, "140": 10, "fullscreen": 10, "control": [10, 12, 14], "138": 10, "135": 10, "finish": 10, "marker": 10, "134": 10, "wind": [10, 12], "direct": [10, 12], "877fa0f": 10, "calendar": [10, 12], "resolut": 10, "131": 10, "129": 10, "127": [10, 14], "legitim": 10, "uri": 10, "localhost": [10, 14], "25": [10, 14], "123": 10, "121": 10, "snowsho": [10, 12], "116": 10, "button": 10, "graph": 10, "115": 10, "91": 10, "min": 10, "altitud": 10, "90": 10, "seem": 10, "104": 10, "switch": 10, "agplv3": 10, "licens": [10, 13, 14], "101": 10, "full": [10, 12], "develop": [10, 11, 13], "98": 10, "109": 10, "slow": 10, "movement": 10, "84": 10, "93": 10, "paf38": 10, "83": 10, "static": [10, 12, 14], "keep": [10, 13, 14], "default_staticmap": [10, 14], "81": 10, "remain": 10, "textarea": 10, "82": 10, "dai": [10, 11, 12, 14], "80": [10, 14], "save": [10, 12], "79": 10, "fail": [10, 16], "make": [10, 14], "rebuild": 10, "75": 10, "same": 10, "javascript": [10, 14], "due": 10, "sqlalchemi": [10, 14, 15], "engin": [10, 14, 15], "longer": [10, 15], "database_url": [10, 14], "72": 10, "exceed": 10, "71": 10, "greater": 10, "70": 10, "less": 10, "upload": [10, 11, 12, 14], "66": 10, "64": 10, "62": 10, "refactor": 10, "evalu": [10, 14], "purpos": [10, 14], "standard": [10, 14], "term": [10, 14], "directori": [10, 12, 14], "also": [10, 11, 12, 13, 14], "59": 10, "major": 10, "instal": [10, 13], "becom": 10, "more": [10, 11, 13, 14], "easi": 10, "been": [10, 13], "renam": 10, "layer": [10, 14], "replac": [10, 14], "thunderforest": [10, 14], "outdoor": [10, 12, 13, 14], "54": 10, "redi": [10, 14], "complet": 10, "side": 10, "4c3fc34": 10, "empti": [10, 11, 14], "34614d5": 10, "spinner": 10, "load": [10, 15], "b862a77": 10, "2e1ee2c": 10, "interceptor": 10, "rout": [10, 14], "definit": 10, "down": 10, "weekend": 10, "40": 10, "i18n": 10, "41": 10, "show": [10, 11, 14], "mous": 10, "over": 10, "choos": [10, 12], "36": 10, "33": 10, "37": 10, "34": 10, "weather": [10, 12, 14], "anymor": 10, "poetri": [10, 14], "pipenv": 10, "calcul": 10, "28": 10, "26": 10, "tooltip": [10, 12], "montain": 10, "even": [10, 12], "enter": [10, 12], "darkski": [10, 12, 14], "kei": [10, 12, 14], "farest": 10, "search": 10, "owner": [10, 12, 14], "view": [10, 12, 14], "usag": [11, 14], "arg": [11, 14], "help": [11, 14], "exit": [11, 14], "deprec": [11, 14], "next": [11, 12], "fittrackee_set_admin": 11, "fittrackee_upgrade_db": 11, "appli": 11, "kind": 12, "encrypt": 12, "With": [12, 14], "open": [12, 13, 14], "street": [12, 13], "electr": 12, "row": 12, "ski": 12, "alpin": 12, "countri": 12, "overridden": 12, "which": 12, "up": [12, 13], "metric": 12, "system": [12, 14], "arrow": 12, "indic": 12, "come": 12, "period": 12, "mai": [12, 13, 14], "origin": 12, "dropdown": 12, "On": [12, 14], "case": [12, 14], "line": [12, 13, 14], "between": 12, "hide": 12, "overrid": 12, "appear": 12, "third": [12, 13], "defin": 12, "individu": 12, "necessari": [12, 14], "like": [12, 14], "lock": 12, "via": 12, "french": 12, "mobil": 13, "yet": 13, "export": [13, 14], "them": 13, "android": 13, "exhaust": 13, "runner": 13, "gpl": 13, "v3": 13, "forrunn": 13, "opentrack": 13, "apach": 13, "fitotrack": 13, "under": [13, 14], "heavi": [13, 14], "featur": [13, 14], "unstabl": [13, 14], "interfac": [13, 14], "troubleshoot": 13, "written": 14, "typescript": 14, "staticmap": 14, "coordin": 14, "forecast": 14, "io": 14, "dark": 14, "sky": 14, "former": 14, "task": 14, "queue": 14, "vue3": 14, "vuex": 14, "logo": 14, "made": 14, "freepik": 14, "flaticon": 14, "fork": 14, "awesom": 14, "march": 14, "31st": 14, "2023": 14, "yarn": 14, "compos": 14, "step": 14, "describ": 14, "linux": 14, "debian": 14, "arch": 14, "o": 14, "encount": 14, "adapt": 14, "makefil": 14, "custom": 14, "flask_app": 14, "modul": 14, "pwd": 14, "__main__": 14, "py": 14, "els": 14, "port": 14, "5000": 14, "app_set": 14, "productionconfig": 14, "app_secret_kei": 14, "strong": 14, "jwt": 14, "app_work": 14, "spawn": 14, "gunicorn": [14, 15], "app_log": 14, "path": [14, 15], "upload_fold": [14, 15], "absolut": [14, 15], "where": 14, "folder": 14, "application_directori": 14, "virtualenv": 14, "5432": 14, "begin": 14, "database_disable_pool": 14, "pool": 14, "directli": 14, "ui_url": 14, "email_url": [14, 15], "sender_email": 14, "sender": 14, "redis_url": 14, "workers_process": 14, "api_rate_limit": 14, "300": 14, "minut": 14, "tile_server_url": 14, "b": 14, "osm": 14, "franc": 14, "target": 14, "_blank": 14, "rel": 14, "noopen": 14, "noreferr": 14, "komoot": 14, "otherwis": 14, "insensit": 14, "weather_api_kei": 14, "weather_api": 14, "vue_app_api_url": 14, "unencrypt": 14, "ssl": 14, "465": 14, "starttl": 14, "587": 14, "office365": 14, "work": 14, "omit": 14, "old": 14, "adress": 14, "apikei": 14, "xxxx": 14, "servic": 14, "expect": 14, "osmfr": 14, "fond": 14, "cart": 14, "par": 14, "mention": 14, "legal": 14, "nofollow": 14, "sou": 14, "nbsp": 14, "creativecommon": 14, "sa": 14, "licenc": 14, "cc": 14, "BY": 14, "chosen": 14, "randomli": 14, "base": 14, "ip": 14, "fix": 14, "window": 14, "strategi": 14, "subject": 14, "asset": 14, "notat": 14, "hour": 14, "mainten": 14, "diagnost": 14, "util": 14, "commmand": 14, "clear": 14, "specif": 14, "enumer": 14, "wai": 14, "pip": 14, "WITH": 14, "schema": 14, "privileg": 14, "nano": 14, "ftcli": 14, "db": 14, "systemd": 14, "archlinux": 14, "yai": 14, "project": 14, "clone": 14, "repo": 14, "git": 14, "github": 14, "samr1": 14, "cd": 14, "vue": 14, "3000": 14, "releas": 14, "wget": 14, "tar": 14, "gz": 14, "xzf": 14, "mv": 14, "sql": 14, "backup": 14, "pg_dump": 14, "u": 14, "changelog": 14, "restart": 14, "pull": 14, "repositori": 14, "overwrit": 14, "cp": 14, "r": 14, "There": 14, "One": 14, "pass": 14, "distribut": 14, "network": 14, "startlimitintervalsec": 14, "simpl": 14, "alwai": 14, "restartsec": 14, "standardoutput": 14, "syslog": 14, "standarderror": 14, "syslogidentifi": 14, "workingdirectori": 14, "home": 14, "execstart": 14, "venv": 14, "bin": 14, "create_app": 14, "logfil": 14, "wantedbi": 14, "multi": 14, "OF": 14, "listen": 14, "443": 14, "http2": 14, "server_nam": 14, "ssl_certif": 14, "fullchain": 14, "pem": 14, "ssl_certificate_kei": 14, "privkei": 14, "how": 14, "1mb": 14, "larger": 14, "ll": 14, "uncom": 14, "below": 14, "want": 14, "client_max_body_s": 14, "1m": 14, "proxy_pass": 14, "proxy_redirect": 14, "real": 14, "remote_addr": 14, "proxy_add_x_forwarded_for": 14, "301": 14, "request_uri": 14, "build": 14, "8025": 14, "mailhog": 14, "shell": 14, "insid": 14, "addit": 14, "fittrackee_cli": 14, "lint": 14, "exc": 15, "nosuchmoduleerror": 15, "plugin": 15, "dialect": 15, "invalidemailurlschem": 15, "todo": 17}, "objects": {"": [[0, 0, 1, "post--api-auth-account-confirm", "/api/auth/account/confirm"], [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, 1, 1, "delete--api-auth-picture", "/api/auth/picture"], [0, 0, 1, "post--api-auth-picture", "/api/auth/picture"], [0, 2, 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, 1, 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, 2, 1, "get--api-config", "/api/config"], [1, 3, 1, "patch--api-config", "/api/config"], [3, 2, 1, "get--api-oauth-apps", "/api/oauth/apps"], [3, 0, 1, "post--api-oauth-apps", "/api/oauth/apps"], [3, 1, 1, "delete--api-oauth-apps-(int-client_id)", "/api/oauth/apps/(int:client_id)"], [3, 2, 1, "get--api-oauth-apps-(int-client_id)-by_id", "/api/oauth/apps/(int:client_id)/by_id"], [3, 0, 1, "post--api-oauth-apps-(int-client_id)-revoke", "/api/oauth/apps/(int:client_id)/revoke"], [3, 2, 1, "get--api-oauth-apps-(string-client_client_id)", "/api/oauth/apps/(string:client_client_id)"], [3, 0, 1, "post--api-oauth-authorize", "/api/oauth/authorize"], [3, 0, 1, "post--api-oauth-revoke", "/api/oauth/revoke"], [3, 0, 1, "post--api-oauth-token", "/api/oauth/token"], [1, 2, 1, "get--api-ping", "/api/ping"], [4, 2, 1, "get--api-records", "/api/records"], [5, 2, 1, "get--api-sports", "/api/sports"], [5, 2, 1, "get--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [5, 3, 1, "patch--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [6, 2, 1, "get--api-stats-(user_name)-by_sport", "/api/stats/(user_name)/by_sport"], [6, 2, 1, "get--api-stats-(user_name)-by_time", "/api/stats/(user_name)/by_time"], [6, 2, 1, "get--api-stats-all", "/api/stats/all"], [7, 2, 1, "get--api-users", "/api/users"], [7, 1, 1, "delete--api-users-(user_name)", "/api/users/(user_name)"], [7, 2, 1, "get--api-users-(user_name)", "/api/users/(user_name)"], [7, 3, 1, "patch--api-users-(user_name)", "/api/users/(user_name)"], [7, 2, 1, "get--api-users-(user_name)-picture", "/api/users/(user_name)/picture"], [8, 2, 1, "get--api-workouts", "/api/workouts"], [8, 0, 1, "post--api-workouts", "/api/workouts"], [8, 1, 1, "delete--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [8, 3, 1, "patch--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)-chart_data", "/api/workouts/(string:workout_short_id)/chart_data"], [8, 2, 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)"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)-gpx", "/api/workouts/(string:workout_short_id)/gpx"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)-gpx-download", "/api/workouts/(string:workout_short_id)/gpx/download"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)-gpx-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/gpx/segment/(int:segment_id)"], [8, 2, 1, "get--api-workouts-map-(map_id)", "/api/workouts/map/(map_id)"], [8, 0, 1, "post--api-workouts-no_gpx", "/api/workouts/no_gpx"], [14, 4, 1, "envvar-API_RATE_LIMITS", "API_RATE_LIMITS \ud83c\udd95"], [14, 4, 1, "-", "APP_LOG"], [14, 4, 1, "-", "APP_SECRET_KEY"], [14, 4, 1, "-", "APP_SETTINGS"], [14, 4, 1, "-", "APP_WORKERS"], [14, 4, 1, "-", "DATABASE_DISABLE_POOLING"], [14, 4, 1, "-", "DATABASE_URL"], [14, 4, 1, "-", "DEFAULT_STATICMAP"], [14, 4, 1, "-", "EMAIL_URL"], [14, 4, 1, "-", "FLASK_APP"], [14, 4, 1, "-", "HOST"], [14, 4, 1, "-", "MAP_ATTRIBUTION"], [14, 4, 1, "-", "PORT"], [14, 4, 1, "-", "REDIS_URL"], [14, 4, 1, "-", "SENDER_EMAIL"], [14, 4, 1, "-", "STATICMAP_SUBDOMAINS"], [14, 4, 1, "-", "TILE_SERVER_URL"], [14, 4, 1, "-", "UI_URL"], [14, 4, 1, "-", "UPLOAD_FOLDER"], [14, 4, 1, "-", "VUE_APP_API_URL"], [14, 4, 1, "-", "WEATHER_API_KEY"], [14, 4, 1, "-", "WORKERS_PROCESSES"]], "/api/workouts/map_tile/(s)/(z)/(x)/(y)": [[8, 2, 1, "get--api-workouts-map_tile-(s)-(z)-(x)-(y).png", "png"]]}, "objtypes": {"0": "http:post", "1": "http:delete", "2": "http:get", "3": "http:patch", "4": "std:envvar"}, "objnames": {"0": ["http", "post", "HTTP post"], "1": ["http", "delete", "HTTP delete"], "2": ["http", "get", "HTTP get"], "3": ["http", "patch", "HTTP patch"], "4": ["std", "envvar", "environment variable"]}, "titleterms": {"authent": 0, "configur": 1, "api": [2, 14], "document": [2, 10], "endpoint": 2, "oauth2": [3, 11], "record": 4, "sport": 5, "statist": [6, 10, 12], "user": [7, 11, 17], "workout": [8, 12, 15], "third": 9, "parti": 9, "applic": 9, "scope": 9, "flow": 9, "resourc": 9, "chang": 10, "log": 10, "version": 10, "0": 10, "7": 10, "10": 10, "2022": 10, "12": 10, "21": 10, "featur": [10, 12], "enhanc": 10, "translat": [10, 12], "9": 10, "11": 10, "8": 10, "30": 10, "27": 10, "bug": 10, "fix": 10, "misc": 10, "6": 10, "09": 10, "5": 10, "4": 10, "05": 10, "3": 10, "01": 10, "2": 10, "1": 10, "19": 10, "14": 10, "issu": 10, "close": 10, "pull": 10, "request": 10, "07": 10, "13": 10, "03": 10, "06": 10, "22": 10, "29": 10, "04": 10, "24": 10, "23": 10, "02": 10, "secur": 10, "new": 10, "2021": 10, "16": 10, "17": 10, "31": 10, "2020": 10, "fittracke": [10, 13, 15], "pypi": [10, 14], "administr": [10, 12, 15], "15": 10, "improv": 10, "minor": 10, "avail": 10, "french": 10, "2019": 10, "first": 10, "releas": 10, "2018": 10, "command": 11, "line": 11, "interfac": 11, "databas": 11, "ftcli": 11, "db": 11, "upgrad": [11, 14], "drop": 11, "clean": 11, "clean_token": 11, "updat": 11, "account": 12, "prefer": 12, "screenshot": 12, "dashboard": 12, "detail": [12, 15], "list": 12, "tabl": 13, "content": 13, "instal": 14, "prerequisit": 14, "environ": 14, "variabl": 14, "email": 14, "map": [14, 15], "tile": 14, "server": 14, "rate": 14, "limit": 14, "from": 14, "sourc": 14, "dev": 14, "product": 14, "prod": 14, "deploy": 14, "docker": 14, "develop": 14, "fail": 15, "start": 15, "imag": 15, "ar": 15, "displai": 15, "i": 15, "shown": 15, "troubleshoot": 16}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"Authentication": [[0, "authentication"]], "Configuration": [[1, "configuration"]], "API documentation": [[2, "api-documentation"]], "Endpoints:": [[2, null]], "OAuth2": [[3, "oauth2"], [11, "oauth2"]], "Records": [[4, "records"]], "Sports": [[5, "sports"]], "Statistics": [[6, "statistics"], [12, "statistics"]], "Users": [[7, "users"], [11, "users"]], "Workouts": [[8, "workouts"], [12, "workouts"]], "Third-party applications": [[9, "third-party-applications"]], "Scopes": [[9, "scopes"]], "Flow": [[9, "flow"]], "Resources": [[9, "resources"]], "Change log": [[10, "change-log"]], "Version 0.7.10 (2022/12/21)": [[10, "version-0-7-10-2022-12-21"]], "Features and enhancements": [[10, "features-and-enhancements"], [10, "id1"], [10, "id4"], [10, "id12"], [10, "id18"]], "Translations": [[10, "translations"], [10, "id2"], [10, "id3"], [10, "id5"], [10, "id6"], [10, "id9"], [10, "id11"], [10, "id14"], [10, "id15"], [10, "id17"], [10, "id20"], [10, "id33"], [12, "translations"]], "Version 0.7.9 (2022/12/11)": [[10, "version-0-7-9-2022-12-11"]], "Version 0.7.8 (2022/11/30)": [[10, "version-0-7-8-2022-11-30"]], "Version 0.7.7 (2022/11/27)": [[10, "version-0-7-7-2022-11-27"]], "Bugs Fixed": [[10, "bugs-fixed"], [10, "id8"], [10, "id10"], [10, "id13"], [10, "id16"], [10, "id19"], [10, "id21"], [10, "id24"], [10, "id27"], [10, "id29"], [10, "id32"], [10, "id35"], [10, "id38"], [10, "id43"], [10, "id45"], [10, "id47"], [10, "id49"], [10, "id52"], [10, "id54"], [10, "id60"], [10, "id63"], [10, "id65"], [10, "id67"], [10, "id74"], [10, "id79"], [10, "id81"], [10, "id83"], [10, "id86"], [10, "id88"], [10, "id90"], [10, "id94"], [10, "id104"], [10, "id107"], [10, "id109"], [10, "id112"], [10, "id119"]], "Misc": [[10, "misc"], [10, "id7"], [10, "id22"], [10, "id36"], [10, "id39"], [10, "id56"], [10, "id58"], [10, "id75"], [10, "id84"], [10, "id91"], [10, "id95"], [10, "id102"], [10, "id113"], [10, "id116"]], "Version 0.7.6 (2022/11/09)": [[10, "version-0-7-6-2022-11-09"]], "Version 0.7.5 (2022/11/09)": [[10, "version-0-7-5-2022-11-09"]], "Version 0.7.4 (2022/11/05)": [[10, "version-0-7-4-2022-11-05"]], "Documentation": [[10, "documentation"]], "Version 0.7.3 (2022/11/01)": [[10, "version-0-7-3-2022-11-01"]], "Version 0.7.2 (2022/09/21)": [[10, "version-0-7-2-2022-09-21"]], "Version 0.7.1 (2022/09/21)": [[10, "version-0-7-1-2022-09-21"]], "Version 0.7.0 (2022/09/19)": [[10, "version-0-7-0-2022-09-19"]], "Version 0.6.12 (2022/09/14)": [[10, "version-0-6-12-2022-09-14"]], "Issues Closed": [[10, "issues-closed"], [10, "id23"], [10, "id26"], [10, "id30"], [10, "id34"], [10, "id37"], [10, "id40"], [10, "id42"], [10, "id46"], [10, "id48"], [10, "id50"], [10, "id55"], [10, "id59"], [10, "id62"], [10, "id64"], [10, "id66"], [10, "id68"], [10, "id70"], [10, "id72"], [10, "id77"], [10, "id80"], [10, "id82"], [10, "id85"], [10, "id87"], [10, "id89"], [10, "id92"], [10, "id96"], [10, "id98"], [10, "id100"], [10, "id103"], [10, "id105"], [10, "id108"], [10, "id110"], [10, "id114"], [10, "id117"], [10, "id120"]], "Pull Requests": [[10, "pull-requests"], [10, "id25"], [10, "id28"], [10, "id44"], [10, "id53"], [10, "id57"], [10, "id61"], [10, "id76"]], "Version 0.6.11 (2022/07/27)": [[10, "version-0-6-11-2022-07-27"]], "Features": [[10, "features"], [10, "id31"], [10, "id41"], [10, "id51"], [12, "features"]], "Version 0.6.10 (2022/07/13)": [[10, "version-0-6-10-2022-07-13"]], "Version 0.6.9 (2022/07/03)": [[10, "version-0-6-9-2022-07-03"]], "Version 0.6.8 (2022/06/22)": [[10, "version-0-6-8-2022-06-22"]], "Version 0.6.7 (2022/06/11)": [[10, "version-0-6-7-2022-06-11"]], "Version 0.6.6 (2022/05/29)": [[10, "version-0-6-6-2022-05-29"]], "Version 0.6.5 (2022/04/24)": [[10, "version-0-6-5-2022-04-24"]], "Version 0.6.4 (2022/04/23)": [[10, "version-0-6-4-2022-04-23"]], "Version 0.6.3 (2022/04/09)": [[10, "version-0-6-3-2022-04-09"]], "Version 0.6.2 (2022/04/03)": [[10, "version-0-6-2-2022-04-03"]], "Version 0.6.1 (2022/03/27)": [[10, "version-0-6-1-2022-03-27"]], "Version 0.6.0 (2022/03/27)": [[10, "version-0-6-0-2022-03-27"]], "Version 0.5.7 (2022/02/13)": [[10, "version-0-5-7-2022-02-13"]], "Security": [[10, "security"]], "Version 0.5.6 (2022/02/05)": [[10, "version-0-5-6-2022-02-05"]], "Version 0.5.5 (2022/01/19)": [[10, "version-0-5-5-2022-01-19"]], "New Features": [[10, "new-features"], [10, "id69"], [10, "id71"], [10, "id73"], [10, "id78"], [10, "id93"], [10, "id97"], [10, "id99"], [10, "id101"], [10, "id106"], [10, "id111"], [10, "id115"], [10, "id118"], [10, "id121"]], "Version 0.5.4 (2022/01/01)": [[10, "version-0-5-4-2022-01-01"]], "Version 0.5.3 (2022/01/01)": [[10, "version-0-5-3-2022-01-01"]], "Version 0.5.2 (2021/12/19)": [[10, "version-0-5-2-2021-12-19"]], "Version 0.5.1 (2021/11/30)": [[10, "version-0-5-1-2021-11-30"]], "Version 0.5.0 (2021/11/14)": [[10, "version-0-5-0-2021-11-14"]], "Version 0.4.9 (2021/07/16)": [[10, "version-0-4-9-2021-07-16"]], "Version 0.4.8 (2021/07/03)": [[10, "version-0-4-8-2021-07-03"]], "Version 0.4.7 (2021/04/07)": [[10, "version-0-4-7-2021-04-07"]], "Version 0.4.6 (2021/02/21)": [[10, "version-0-4-6-2021-02-21"]], "Version 0.4.5 (2021/02/17)": [[10, "version-0-4-5-2021-02-17"]], "Version 0.4.4 (2021/01/31)": [[10, "version-0-4-4-2021-01-31"]], "Version 0.4.3 (2021/01/10)": [[10, "version-0-4-3-2021-01-10"]], "Version 0.4.2 (2021/01/03)": [[10, "version-0-4-2-2021-01-03"]], "Version 0.4.1 (2020/12/31)": [[10, "version-0-4-1-2020-12-31"]], "Version 0.4.0 - FitTrackee on PyPI (2020/09/19)": [[10, "version-0-4-0-fittrackee-on-pypi-2020-09-19"]], "Version 0.3.0 - Administration (2020/07/15)": [[10, "version-0-3-0-administration-2020-07-15"]], "Version 0.2.5 - Fix and improvements (2020/01/31)": [[10, "version-0-2-5-fix-and-improvements-2020-01-31"]], "Version 0.2.4 - Minor fix (2020/01/30)": [[10, "version-0-2-4-minor-fix-2020-01-30"]], "Version 0.2.3 - FitTrackee available in French (2019/12/29)": [[10, "version-0-2-3-fittrackee-available-in-french-2019-12-29"]], "Version 0.2.2 - Statistics fix (2019/09/23)": [[10, "version-0-2-2-statistics-fix-2019-09-23"]], "Version 0.2.1 - Fix and improvements (2019/09/01)": [[10, "version-0-2-1-fix-and-improvements-2019-09-01"]], "Version 0.2.0 - Statistics (2019/07/07)": [[10, "version-0-2-0-statistics-2019-07-07"]], "Version 0.1.1 - Fix and improvements (2019/02/07)": [[10, "version-0-1-1-fix-and-improvements-2019-02-07"]], "Version 0.1.0 - First release \ud83c\udf89 (2018-07-04)": [[10, "version-0-1-0-first-release-2018-07-04"]], "Command line interface": [[11, "command-line-interface"]], "Database": [[11, "database"]], "ftcli db upgrade": [[11, "ftcli-db-upgrade"]], "ftcli db drop": [[11, "ftcli-db-drop"]], "ftcli oauth2 clean": [[11, "ftcli-oauth2-clean"]], "ftcli users clean_tokens": [[11, "ftcli-users-clean-tokens"]], "ftcli users update": [[11, "ftcli-users-update"]], "Account & preferences": [[12, "account-preferences"]], "Administration": [[12, "administration"], [12, "id1"]], "Screenshots": [[12, "screenshots"]], "Dashboard": [[12, "dashboard"]], "Workout detail": [[12, "workout-detail"]], "Workouts list": [[12, "workouts-list"]], "FitTrackee": [[13, "fittrackee"]], "Table of contents": [[13, "table-of-contents"]], "Installation": [[14, "installation"], [14, "id2"], [14, "id6"]], "Prerequisites": [[14, "prerequisites"]], "Environment variables": [[14, "environment-variables"]], "Emails": [[14, "emails"]], "Map tile server": [[14, "map-tile-server"]], "API rate limits \ud83c\udd95": [[14, "api-rate-limits"]], "From PyPI": [[14, "from-pypi"], [14, "id3"]], "From sources": [[14, "from-sources"], [14, "id4"]], "Dev environment": [[14, "dev-environment"], [14, "id5"]], "Production environment": [[14, "production-environment"]], "Upgrade": [[14, "upgrade"]], "Prod environment": [[14, "prod-environment"]], "Deployment": [[14, "deployment"]], "Docker": [[14, "docker"]], "Development": [[14, "development"]], "Administrator": [[15, "administrator"]], "FitTrackee fails to start": [[15, "fittrackee-fails-to-start"]], "Map images are not displayed but map is shown in Workout detail": [[15, "map-images-are-not-displayed-but-map-is-shown-in-workout-detail"]], "Troubleshooting": [[16, "troubleshooting"]], "User": [[17, "user"]]}, "indexentries": {"api_rate_limits \ud83c\udd95": [[14, "envvar-API_RATE_LIMITS"]], "app_log": [[14, "envvar-APP_LOG"]], "app_secret_key": [[14, "envvar-APP_SECRET_KEY"]], "app_settings": [[14, "envvar-APP_SETTINGS"]], "app_workers": [[14, "envvar-APP_WORKERS"]], "database_disable_pooling": [[14, "envvar-DATABASE_DISABLE_POOLING"]], "database_url": [[14, "envvar-DATABASE_URL"]], "default_staticmap": [[14, "envvar-DEFAULT_STATICMAP"]], "email_url": [[14, "envvar-EMAIL_URL"]], "flask_app": [[14, "envvar-FLASK_APP"]], "host": [[14, "envvar-HOST"]], "map_attribution": [[14, "envvar-MAP_ATTRIBUTION"]], "port": [[14, "envvar-PORT"]], "redis_url": [[14, "envvar-REDIS_URL"]], "sender_email": [[14, "envvar-SENDER_EMAIL"]], "staticmap_subdomains": [[14, "envvar-STATICMAP_SUBDOMAINS"]], "tile_server_url": [[14, "envvar-TILE_SERVER_URL"]], "ui_url": [[14, "envvar-UI_URL"]], "upload_folder": [[14, "envvar-UPLOAD_FOLDER"]], "vue_app_api_url": [[14, "envvar-VUE_APP_API_URL"]], "weather_api_key": [[14, "envvar-WEATHER_API_KEY"]], "workers_processes": [[14, "envvar-WORKERS_PROCESSES"]], "environment variable": [[14, "envvar-API_RATE_LIMITS"], [14, "envvar-APP_LOG"], [14, "envvar-APP_SECRET_KEY"], [14, "envvar-APP_SETTINGS"], [14, "envvar-APP_WORKERS"], [14, "envvar-DATABASE_DISABLE_POOLING"], [14, "envvar-DATABASE_URL"], [14, "envvar-DEFAULT_STATICMAP"], [14, "envvar-EMAIL_URL"], [14, "envvar-FLASK_APP"], [14, "envvar-HOST"], [14, "envvar-MAP_ATTRIBUTION"], [14, "envvar-PORT"], [14, "envvar-REDIS_URL"], [14, "envvar-SENDER_EMAIL"], [14, "envvar-STATICMAP_SUBDOMAINS"], [14, "envvar-TILE_SERVER_URL"], [14, "envvar-UI_URL"], [14, "envvar-UPLOAD_FOLDER"], [14, "envvar-VUE_APP_API_URL"], [14, "envvar-WEATHER_API_KEY"], [14, "envvar-WORKERS_PROCESSES"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["api/auth", "api/configuration", "api/index", "api/oauth2", "api/records", "api/sports", "api/stats", "api/users", "api/workouts", "apps", "changelog", "cli", "features", "index", "installation", "troubleshooting/administrator", "troubleshooting/index", "troubleshooting/user"], "filenames": ["api/auth.rst", "api/configuration.rst", "api/index.rst", "api/oauth2.rst", "api/records.rst", "api/sports.rst", "api/stats.rst", "api/users.rst", "api/workouts.rst", "apps.rst", "changelog.md", "cli.rst", "features.rst", "index.rst", "installation.rst", "troubleshooting/administrator.rst", "troubleshooting/index.rst", "troubleshooting/user.rst"], "titles": ["Authentication", "Configuration", "API documentation", "OAuth2", "Records", "Sports", "Statistics", "Users", "Workouts", "Third-party applications", "Change log", "Command line interface", "Features", "FitTrackee", "Installation", "Administrator", "Troubleshooting", "User"], "terms": {"post": [0, 3, 8, 9], "api": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13], "auth": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "regist": [0, 1, 12, 14], "user": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 14, 16], "send": [0, 7, 10, 12, 14], "confirm": [0, 3, 10, 12, 14], "email": [0, 1, 7, 10, 11, 12, 15], "The": [0, 9, 10, 11, 12, 14], "newli": [0, 14], "creat": [0, 3, 8, 9, 10, 12, 14], "account": [0, 7, 10, 11, 14], "i": [0, 1, 3, 9, 10, 11, 12, 13, 14, 16], "inact": [0, 7, 12, 14], "must": [0, 1, 3, 5, 7, 8, 9, 10, 12, 14, 15], "hi": [0, 7, 10, 12], "activ": [0, 5, 7, 10, 11, 12, 13, 14], "exampl": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14], "request": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "http": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "1": [0, 1, 3, 4, 5, 6, 7, 8, 12, 14], "content": [0, 1, 3, 4, 5, 6, 7, 8], "type": [0, 1, 3, 4, 5, 6, 7, 8, 10, 14], "applic": [0, 1, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14], "json": [0, 1, 3, 4, 5, 6, 7, 8], "respons": [0, 1, 3, 4, 5, 6, 7, 8], "success": [0, 1, 3, 4, 5, 6, 7, 8], "200": [0, 1, 3, 4, 5, 6, 7, 8, 10, 14], "statu": [0, 1, 3, 4, 5, 6, 7, 8, 11, 12], "error": [0, 1, 3, 5, 7, 8, 10, 14, 15], "registr": [0, 1, 9, 10, 12, 14], "400": [0, 1, 3, 5, 7, 8], "bad": [0, 1, 3, 5, 7, 8], "messag": [0, 1, 3, 8, 10, 11, 14], "valid": [0, 1, 3, 4, 5, 6, 7, 8, 10, 14, 15], "provid": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15], "n": 0, "object": [0, 1, 5, 7, 8], "usernam": [0, 6, 7, 10, 14], "string": [0, 1, 3, 5, 6, 7, 8, 9, 14], "3": [0, 5, 6, 7, 8, 12, 14], "30": [0, 6], "charact": [0, 10], "requir": [0, 9, 10, 14], "password": [0, 7, 10, 11, 12, 14], "8": [0, 8, 12], "lang": [0, 10], "languag": [0, 7, 10, 12], "prefer": [0, 7, 10], "invalid": [0, 1, 3, 4, 5, 6, 7, 8, 10, 14], "fallback": 0, "en": [0, 7], "english": [0, 10, 12], "code": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10], "ok": [0, 1, 3, 4, 5, 6, 7, 8], "payload": [0, 1, 3, 5, 7, 8], "sorri": 0, "alreadi": 0, "taken": 0, "onli": [0, 3, 7, 8, 9, 10, 11, 12, 14], "alphanumer": [0, 10], "underscor": 0, "_": [0, 10], "allow": [0, 1, 8, 9, 10, 12, 13, 14], "403": [0, 1, 5, 6, 7, 8], "forbidden": [0, 1, 5, 6, 7, 8], "disabl": [0, 10, 11, 12, 14], "500": [0, 1, 5, 7, 8, 10], "intern": [0, 1, 5, 7, 8], "server": [0, 1, 5, 7, 8, 10, 12, 13], "pleas": [0, 1, 3, 4, 5, 6, 7, 8, 10], "try": [0, 7, 8], "again": [0, 1, 3, 4, 5, 6, 7, 8], "contact": [0, 1, 7, 8, 12], "administr": [0, 1, 7, 8, 9, 16], "after": [0, 3, 9, 10, 12, 14], "auth_token": 0, "web": [0, 9, 13, 14], "token": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11], "resend": 0, "instruct": [0, 10, 12, 14], "If": [0, 3, 9, 12, 14], "thi": [0, 3, 8, 10, 11, 12, 13, 14], "endpoint": [0, 1, 3, 9, 10, 14], "avail": [0, 4, 9, 11, 12, 14], "resent": 0, "404": [0, 3, 5, 6, 7, 8, 10], "Not": [0, 3, 5, 6, 7, 8], "found": [0, 3, 5, 6, 7, 8, 10], "url": [0, 3, 9, 10, 14, 15], "wa": [0, 10], "login": 0, "an": [0, 1, 3, 5, 7, 9, 10, 12, 14, 15], "can": [0, 7, 9, 10, 12, 13, 14, 15], "log": [0, 1, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15], "successfulli": 0, "401": [0, 1, 3, 4, 5, 6, 7, 8], "unauthor": [0, 1, 3, 4, 5, 6, 7, 8], "credenti": [0, 14], "get": [0, 1, 3, 4, 5, 6, 7, 8, 9], "profil": [0, 3, 9, 10], "info": 0, "scope": [0, 1, 3, 4, 5, 6, 7, 8], "read": [0, 3, 4, 5, 6, 7, 8, 9, 10], "data": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13], "admin": [0, 1, 4, 5, 6, 7, 8, 10, 11, 12, 14], "fals": [0, 1, 3, 5, 7, 8, 14], "bio": [0, 7], "null": [0, 1, 5, 7, 8, 10], "birth_dat": [0, 7], "created_at": [0, 7], "sun": [0, 4, 7, 8], "14": [0, 3, 7, 8, 12], "jul": [0, 4, 7, 8], "2019": [0, 4, 6, 7, 8], "09": [0, 7], "58": [0, 7, 10], "gmt": [0, 3, 4, 7, 8], "display_asc": 0, "true": [0, 1, 3, 5, 7, 10, 14], "sam": [0, 4, 7, 8], "com": [0, 1, 3, 7, 9, 10, 14], "first_nam": [0, 7], "imperial_unit": [0, 7], "is_act": [0, 5, 7], "last_nam": [0, 7], "locat": [0, 7, 14], "nb_sport": [0, 7], "nb_workout": [0, 6, 7], "6": [0, 5, 7, 8, 11, 12, 14], "pictur": [0, 7, 8, 10], "record": [0, 2, 7, 8, 10, 12], "id": [0, 3, 4, 5, 6, 7, 8, 9], "9": [0, 4, 7, 12, 14], "record_typ": [0, 4, 7, 8], "AS": [0, 4, 7, 8], "sport_id": [0, 4, 5, 6, 7, 8], "valu": [0, 3, 4, 7, 8, 9, 10, 14], "18": [0, 4, 7, 8, 10], "workout_d": [0, 4, 7, 8], "07": [0, 4, 7, 8], "08": [0, 4, 7, 8], "00": [0, 4, 7, 8], "workout_id": [0, 4, 7, 8], "hvybqybra7wwxpastwr4v2": [0, 4, 7, 8], "10": [0, 1, 4, 7, 8, 12, 14], "fd": [0, 4, 7, 8], "13": [0, 4, 7, 8], "ha": [0, 4, 7, 8, 10, 12, 13], "43": [0, 4, 7, 8, 10], "97": [0, 4, 7, 8], "11": [0, 1, 4, 7, 12, 14], "ld": [0, 4, 7, 8], "01": [0, 4, 6, 7, 8], "12": [0, 4, 7, 8], "m": [0, 4, 6, 7, 8], "sports_list": [0, 7], "4": [0, 5, 6, 7, 8, 12, 14], "timezon": [0, 7, 8, 10, 12], "europ": [0, 7], "pari": [0, 7], "total_dist": [0, 6, 7], "67": [0, 7], "895": [0, 7], "total_dur": [0, 6, 7], "50": [0, 7, 10, 14], "27": [0, 3, 7], "weekm": [0, 6, 7], "header": [0, 1, 3, 4, 5, 6, 7, 8, 9], "author": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "oauth": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 14], "2": [0, 1, 3, 4, 5, 6, 7, 8, 9, 12, 14], "0": [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 12, 14], "bearer": [0, 1, 3, 4, 5, 6, 7, 8], "signatur": [0, 1, 3, 4, 5, 6, 7, 8], "expir": [0, 1, 3, 4, 5, 6, 7, 8, 11], "edit": [0, 10, 12], "write": [0, 1, 3, 5, 7, 8, 9], "updat": [0, 1, 5, 7, 8, 10, 12, 14], "first": [0, 3, 9, 12], "name": [0, 3, 7, 10, 14], "last": [0, 10, 14], "biographi": 0, "birth": [0, 10], "date": [0, 6, 8, 10, 12], "format": [0, 6, 8, 10, 12], "y": [0, 6, 8, 14], "d": [0, 6, 8], "support": [0, 3, 9, 10, 12, 14, 15], "mm": 0, "dd": 0, "yyyi": 0, "default": [0, 3, 6, 7, 8, 10, 12, 14], "date_str": 0, "correspond": [0, 14], "client": [0, 3, 9, 10, 12, 14], "mmm": 0, "do": [0, 1, 5, 6, 7, 8], "local": [0, 10, 13, 14], "fr": [0, 7, 14], "de": [0, 14], "date_format": 0, "us": [0, 3, 7, 8, 9, 10, 12, 13, 14], "displai": [0, 8, 9, 10, 11, 12, 13, 14, 16], "app": [0, 3, 9, 10, 12, 13], "boolean": [0, 1, 3, 7, 11], "highest": [0, 4, 12], "ascent": [0, 4, 8, 10, 12], "total": [0, 3, 10, 12], "distanc": [0, 4, 8, 10, 12], "imperi": [0, 10, 12], "unit": [0, 10, 14], "time": [0, 6, 8, 10, 12], "zone": 0, "doe": [0, 6, 7, 8, 10], "week": [0, 6, 10, 12], "start": [0, 6, 8, 10, 12, 14, 16], "mondai": [0, 6, 12], "don": 0, "t": [0, 10, 15], "match": [0, 10], "sport": [0, 2, 6, 8, 10, 12, 14], "color": [0, 5, 10, 12], "000000": 0, "stopped_speed_threshold": [0, 5], "user_id": 0, "hexadecim": 0, "when": [0, 1, 10, 11, 12, 14], "ad": [0, 10, 11, 12], "workout": [0, 2, 3, 4, 5, 6, 9, 10, 13, 16], "float": [0, 8], "stop": [0, 10, 12, 14], "speed": [0, 4, 8, 10, 12, 14], "threshold": [0, 10, 12], "gpxpy": [0, 12, 14], "exist": [0, 6, 7, 8, 10, 12, 13, 14], "delet": [0, 3, 7, 8, 10, 11, 12], "reset": [0, 7, 10, 11, 12, 14], "given": [0, 3, 14], "204": [0, 3, 7, 8], "paramet": [0, 3, 5, 6, 7, 8, 9, 10, 12, 14], "No": [0, 3, 7, 8, 10, 13], "multipart": [0, 3, 8], "form": [0, 3, 8], "file": [0, 1, 8, 10, 11, 12, 13, 14], "imag": [0, 7, 8, 10, 12, 14, 16], "extens": [0, 8, 14], "jpg": 0, "png": [0, 8, 14], "gif": 0, "part": [0, 8], "select": [0, 8, 12], "413": [0, 8], "entiti": [0, 8], "too": [0, 8], "larg": [0, 8, 12, 14], "dure": [0, 8], "size": [0, 1, 8, 10, 12, 14], "exce": [0, 8, 10], "0mb": [0, 8], "NO": [0, 3, 7, 8], "handl": [0, 12, 14], "process": [0, 10, 14], "patch": [0, 1, 5, 7, 8], "It": [0, 7, 9, 10, 12, 13, 15], "enabl": [0, 1, 7, 12, 14], "chang": [0, 12, 13, 14], "one": [0, 7, 8, 12], "current": [0, 10], "address": [0, 12, 14], "inform": [0, 10, 13, 14], "anoth": [0, 7, 14], "new": [0, 7, 9, 11, 12, 14], "new_password": 0, "miss": [0, 10], "logout": [0, 10], "blacklist": [0, 11], "out": 0, "access": [0, 3, 9, 10, 14], "revok": [0, 3], "malform": 0, "other": [0, 7, 14], "reason": 0, "config": [1, 10, 14], "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, 14], "copi": [1, 14], "href": [1, 14], "www": [1, 14], "openstreetmap": [1, 10, 14], "org": [1, 14], "copyright": [1, 14], "contributor": [1, 10, 14], "version": [1, 11, 14], "7": [1, 8, 9, 11, 12, 14], "weather_provid": 1, "authent": [1, 2, 3, 4, 5, 7, 8, 9], "integ": [1, 3, 5, 6, 7, 8], "max": [1, 7, 8, 10], "number": [1, 7, 8, 10, 11, 12, 14], "zip": [1, 8, 10, 12], "archiv": [1, 10, 12, 14], "singl": [1, 7, 10, 12, 14], "instanc": [1, 3, 9, 10, 12, 14], "you": [1, 5, 6, 7, 8, 12, 13, 14], "have": [1, 5, 6, 7, 8, 10], "permiss": [1, 5, 6, 7, 8], "ping": 1, "health": 1, "check": [1, 10, 14, 15], "pong": 1, "configur": [2, 9, 10, 12, 14], "oauth2": [2, 9], "statist": 2, "pagin": [3, 7, 8], "5": [3, 5, 6, 7, 8, 11, 12, 14], "page": [3, 7, 8, 10, 12], "fittracke": [3, 9, 11, 12, 14, 16], "parti": [3, 12, 13], "without": [3, 6, 7, 8, 10, 12, 13], "client_descript": 3, "client_id": [3, 9], "o22a27s2abpuoxjbxv3ujdox": 3, "issued_at": 3, "thu": 3, "juli": 3, "2022": 3, "06": [3, 6], "53": [3, 10], "gpx": [3, 8, 10, 12, 13, 14], "import": [3, 10, 14], "redirect_uri": 3, "callback": [3, 9], "websit": 3, "has_next": 3, "has_prev": 3, "queri": [3, 6, 7, 8], "client_secret": 3, "secret": [3, 9, 14], "client_nam": 3, "client_uri": 3, "arrai": 3, "list": [3, 10, 13, 14], "redirect": [3, 9], "descript": [3, 11, 14], "option": [3, 9, 10, 11, 14], "client_client_id": 3, "NOT": [3, 5, 8], "int": [3, 5, 8], "by_id": 3, "all": [3, 4, 5, 6, 7, 14], "associ": 3, "issu": [3, 13, 14], "response_typ": [3, 9], "state": [3, 9], "uniqu": [3, 9], "prevent": [3, 9, 14], "cross": [3, 9, 12, 14], "site": [3, 9], "forgeri": [3, 9], "mandatori": [3, 8, 9, 10, 14], "recommend": [3, 9, 14], "code_challeng": [3, 9], "gener": [3, 9, 10, 12, 14], "from": [3, 6, 8, 9, 10, 12, 13], "verifi": [3, 9], "pkce": [3, 9], "code_challenge_method": [3, 9], "method": [3, 9, 14], "challeng": [3, 9], "s256": [3, 9], "return": [3, 4, 7, 8, 10, 14], "authlib": [3, 9, 14], "librari": [3, 9, 14], "refresh": [3, 10], "access_token": 3, "roehv64thcg28wcewzhrnvlusoduvw8nvnhkcml57": 3, "expires_in": 3, "864000": 3, "refresh_token": 3, "nuv9cy8vqonrqkhtz5pqaq2zw7msh0mornpjr14amswd6f6i": 3, "token_typ": 3, "expires_at": 3, "1658660147": 3, "0667062": 3, "grant_typ": 3, "grant": [3, 9], "authorization_cod": [3, 9], "ar": [3, 4, 8, 9, 10, 11, 12, 13, 14, 16], "code_verifi": 3, "follow": [4, 9, 11, 12, 14, 15], "averag": [4, 8, 10, 12], "farthest": [4, 10, 12], "longest": [4, 10, 12], "durat": [4, 8, 10, 12], "maximum": [4, 10, 12], "non": [5, 13], "is_active_for_us": 5, "label": [5, 10], "cycl": [5, 10, 12], "transport": [5, 10, 12], "hike": [5, 10, 12], "mountain": [5, 10, 12], "bike": [5, 8, 10, 12], "run": [5, 9, 10, 12, 14], "walk": [5, 10, 12], "has_workout": 5, "stat": [6, 10], "user_nam": [6, 7], "by_tim": 6, "2018": [6, 8], "2017": [6, 8], "average_spe": 6, "48": 6, "total_asc": 6, "203": 6, "156": [6, 10], "15": [6, 8], "282": [6, 10], "12341": 6, "16": [6, 8], "99": [6, 10], "150": 6, "178": [6, 10], "47": [6, 8, 10], "9960": 6, "95": [6, 10], "46": [6, 10], "78": 6, "613": 6, "1267": 6, "end": [6, 8], "frame": 6, "sundai": [6, 8, 12], "month": [6, 10, 12], "year": [6, 12], "by_sport": 6, "uploads_dir_s": 6, "1000": 6, "regardless": 7, "right": [7, 9, 10, 11, 12, 14], "some": [7, 8, 9, 10, 12, 13, 14], "order_bi": [7, 8], "workouts_count": 7, "par_pag": 7, "is_admin": 7, "sat": 7, "20": 7, "03": [7, 8], "per_pag": [7, 8], "per": [7, 8, 10, 14], "q": 7, "order": [7, 8, 9, 10], "sort": [7, 8], "asc": [7, 8], "desc": [7, 8], "criteria": [7, 8], "detail": [7, 10, 14, 16], "jpeg": 7, "add": [7, 10, 11, 12, 13], "remov": [7, 10, 11, 12], "modifi": [7, 10, 11, 14], "new_email": 7, "reset_password": 7, "differ": [7, 10, 12], "than": [7, 10, 11], "curent": 7, "A": [7, 10, 11, 12, 14, 15], "own": [7, 12, 13], "except": [7, 14, 15], "he": 7, "": [7, 8, 10, 14], "john_do": 7, "your": [7, 12, 13, 14], "02": 8, "31": 8, "least": 8, "ave_spe": 8, "bound": 8, "creation_d": 8, "51": 8, "descent": [8, 10, 12], "17": [8, 14], "04": 8, "kjxavsturjvoah2wvcegef": 8, "map": [8, 10, 12, 13, 16], "max_alt": 8, "max_spe": 8, "min_alt": 8, "modification_d": 8, "move": [8, 10], "next_workout": 8, "note": [8, 10, 12, 14], "paus": [8, 10], "previous_workout": 8, "mon": 8, "jan": 8, "segment": [8, 10, 12], "titl": 8, "weather_end": 8, "weather_start": 8, "with_gpx": 8, "100": [8, 10, 12], "distance_from": 8, "minim": [8, 9], "distance_to": 8, "maxim": 8, "duration_from": 8, "h": [8, 12], "duration_to": 8, "ave_speed_from": 8, "ave_speed_to": 8, "max_speed_from": 8, "max_speed_to": 8, "workout_short_id": 8, "57": [8, 10], "45": 8, "22": 8, "morn": 8, "short": 8, "leaflet": [8, 14], "chart_data": 8, "chart": [8, 10, 12, 14], "j": [8, 10, 14], "elev": [8, 10, 12, 14], "279": [8, 10], "latitud": 8, "5078118": 8, "longitud": 8, "1232004": 8, "63": 8, "fri": 8, "44": [8, 10], "7380": 8, "280": [8, 10], "5079733": 8, "1234538": 8, "39": 8, "segment_id": 8, "rechart": 8, "map_id": 8, "fa33f4d996844a5c73ecd1ae24456ab8": 8, "1563529507772": 8, "map_til": 8, "z": [8, 14], "x": [8, 9, 14], "tile": [8, 10, 12], "c": [8, 14], "4109": 8, "2930": 8, "subdomain": [8, 10, 14], "zoom": 8, "index": 8, "along": 8, "axi": 8, "download": [8, 10, 12, 14], "xml": 8, "201": [8, 10], "doubl": 8, "quot": 8, "escap": 8, "no_gpx": 8, "uuid": [8, 10], "km": [8, 12], "second": 8, "rest": 9, "see": [9, 10, 12, 13, 14, 15], "document": [9, 13, 14], "whose": 9, "most": 9, "To": [9, 10, 14], "interact": 9, "set": [9, 10, 11, 12, 14, 15], "tab": 9, "exchang": 9, "sent": [9, 10, 12, 14], "bodi": [9, 10, 14], "better": [9, 10], "secur": 9, "relat": [9, 12, 14], "shown": [9, 10, 16], "thei": [9, 14], "store": [9, 12, 13], "3rd": 9, "need": [9, 10, 14], "fittrackee_host": 9, "sinc": [9, 14], "separ": [9, 14], "space": 9, "For": [9, 12, 14], "3aread": 9, "3awrit": 9, "so": 9, "fetch": [9, 14], "implement": [9, 10], "behind": 9, "proxi": [9, 14], "forward": [9, 14], "proto": [9, 14], "nginx": [9, 10, 12, 14], "proxy_set_head": [9, 14], "scheme": [9, 14], "about": [9, 12, 14], "simplifi": [9, 10], "aaron": 9, "parecki": 9, "oauthlib": 9, "python": [9, 10, 14], "session": 9, "pr": 10, "265": 10, "altern": 10, "weather": [10, 12], "visualcross": [10, 14], "environ": [10, 11, 15], "variabl": [10, 15], "weather_api_provid": [10, 14], "287": 10, "host": [10, 14], "weblat": [10, 12], "dutch": [10, 12], "289": 10, "german": [10, 12], "thank": 10, "bjornclauw": 10, "jat255": 10, "qwerty287": 10, "now": [10, 11, 12, 14], "italian": [10, 12], "dperruso": 10, "92": 10, "c88a515": 10, "f96dcef": 10, "contain": [10, 14], "databas": [10, 12, 14, 15], "migrat": [10, 11, 14], "upgrad": 10, "278": 10, "init": [10, 14], "270": 10, "nederland": 10, "258": 10, "pars": [10, 14], "link": [10, 14], "area": 10, "271": 10, "creation": [10, 12], "273": 10, "274": 10, "test": [10, 14], "parallel": 10, "275": 10, "worker": [10, 14], "entri": [10, 14], "point": [10, 14], "fittrackee_work": [10, 11, 14], "command": [10, 12, 13, 14], "flask": [10, 14], "dramatiq": [10, 14], "cli": [10, 11, 12, 14], "3c8d9c2": 10, "trail": [10, 12], "comma": [10, 14], "dev": 10, "depend": [10, 14], "264": 10, "ui": 10, "white": 10, "grai": 10, "background": 10, "266": 10, "260": 10, "261": 10, "should": [10, 14], "limit": [10, 12], "still": [10, 12, 13, 14], "89": 10, "b1536fc": 10, "257": 10, "112": 10, "244": 10, "virtual": [10, 12], "ride": 10, "246": 10, "postgresql": [10, 14, 15], "247": 10, "microsecond": 10, "252": 10, "norwegian": 10, "bokm\u00e5l": 10, "242": 10, "241": 10, "strength": 10, "estim": 10, "packag": [10, 14], "239": 10, "cb9d02f": 10, "88": 10, "231": 10, "236": 10, "rate": 10, "232": 10, "hidden": [10, 12], "237": 10, "212": 10, "lavoi": 10, "230": 10, "problem": 10, "225": 10, "grammar": 10, "skylan0916": 10, "In": [10, 12], "execut": 10, "lower": 10, "v0": [10, 14], "postgr": [10, 15], "213": 10, "measur": 10, "ft": 10, "mi": 10, "223": 10, "icon": [10, 14], "167": 10, "dashboard": 10, "162": 10, "fmstrat": 10, "210": 10, "could": 10, "staticmap_subdomain": [10, 14], "209": 10, "incorrect": 10, "track": [10, 13], "multipl": 10, "gorgobacka": 10, "And": 10, "detect": 10, "browser": 10, "208": 10, "card": 10, "html": 10, "attribut": [10, 14], "197": 10, "196": 10, "manag": [10, 11, 14], "tool": [10, 14], "190": 10, "were": 10, "193": 10, "192": 10, "instead": [10, 12], "191": 10, "layout": 10, "includ": 10, "195": 10, "affect": 10, "previous": 10, "cc4287e": 10, "docker": 10, "env": [10, 14], "offset": 10, "refacto": 10, "befor": [10, 14], "introduc": 10, "possibl": [10, 12, 13, 14], "smtp": [10, 14], "reduc": 10, "pre": 10, "requisit": 10, "180": 10, "cannot": [10, 12], "tl": [10, 14], "177": 10, "posit": [10, 12], "small": 10, "screen": [10, 12], "175": 10, "173": 10, "171": 10, "correctli": 10, "155": 10, "106": 10, "169": 10, "161": 10, "160": 10, "sever": [10, 12, 13, 14], "danielsiersleben": 10, "report": 10, "initi": [10, 14], "149": 10, "initialis": [10, 14], "152": 10, "autoescap": 10, "jinja": 10, "templat": 10, "151": 10, "sanit": 10, "input": 10, "serv": [10, 14], "warn": [10, 12], "launch": 10, "w": 10, "script": 10, "entrypoint": 10, "drop": 10, "avoid": 10, "product": 10, "dotenv": 10, "146": 10, "filter": [10, 12], "145": 10, "model": 10, "140": 10, "fullscreen": 10, "control": [10, 12, 14], "138": 10, "135": 10, "finish": 10, "marker": 10, "134": 10, "wind": [10, 12], "direct": [10, 12], "877fa0f": 10, "calendar": [10, 12], "resolut": 10, "131": 10, "129": 10, "127": [10, 14], "legitim": 10, "uri": 10, "localhost": [10, 14], "25": [10, 14], "123": 10, "121": 10, "snowsho": [10, 12], "116": 10, "button": 10, "graph": 10, "115": 10, "91": 10, "min": 10, "altitud": 10, "90": 10, "seem": 10, "104": 10, "switch": 10, "agplv3": 10, "licens": [10, 13, 14], "101": 10, "full": [10, 12], "develop": [10, 11, 13], "98": 10, "109": 10, "slow": 10, "movement": 10, "84": 10, "93": 10, "paf38": 10, "83": 10, "static": [10, 12, 14], "keep": [10, 13, 14], "default_staticmap": [10, 14], "81": 10, "remain": 10, "textarea": 10, "82": 10, "dai": [10, 11, 12, 14], "80": [10, 14], "save": [10, 12], "79": 10, "fail": [10, 16], "make": [10, 14], "rebuild": 10, "75": 10, "same": 10, "javascript": [10, 14], "due": 10, "sqlalchemi": [10, 14, 15], "engin": [10, 14, 15], "longer": [10, 15], "database_url": [10, 14], "72": 10, "exceed": 10, "71": 10, "greater": 10, "70": 10, "less": 10, "upload": [10, 11, 12, 14], "66": 10, "64": 10, "62": 10, "refactor": 10, "evalu": [10, 14], "purpos": [10, 14], "standard": [10, 14], "term": [10, 14], "directori": [10, 12, 14], "also": [10, 11, 12, 13, 14], "59": 10, "major": 10, "instal": [10, 13], "becom": 10, "more": [10, 11, 13, 14], "easi": 10, "been": [10, 13], "renam": 10, "layer": [10, 14], "replac": [10, 14], "thunderforest": [10, 14], "outdoor": [10, 12, 13, 14], "54": 10, "redi": [10, 14], "complet": 10, "side": 10, "4c3fc34": 10, "empti": [10, 11, 14], "34614d5": 10, "spinner": 10, "load": [10, 15], "b862a77": 10, "2e1ee2c": 10, "interceptor": 10, "rout": [10, 14], "definit": 10, "down": 10, "weekend": 10, "40": 10, "i18n": 10, "41": 10, "show": [10, 11, 14], "mous": 10, "over": 10, "choos": [10, 12], "36": 10, "33": 10, "37": 10, "34": 10, "anymor": 10, "poetri": [10, 14], "pipenv": 10, "calcul": 10, "28": 10, "26": 10, "tooltip": [10, 12], "montain": 10, "even": [10, 12], "enter": [10, 12], "darkski": [10, 12, 14], "kei": [10, 12, 14], "farest": 10, "search": 10, "owner": [10, 12, 14], "view": [10, 12, 14], "usag": [11, 14], "arg": [11, 14], "help": [11, 14], "exit": [11, 14], "deprec": [11, 14], "next": [11, 12], "fittrackee_set_admin": 11, "fittrackee_upgrade_db": 11, "appli": 11, "kind": 12, "encrypt": 12, "With": [12, 14], "open": [12, 13, 14], "street": [12, 13], "electr": 12, "row": 12, "ski": 12, "alpin": 12, "countri": 12, "overridden": 12, "which": 12, "up": [12, 13], "metric": 12, "system": [12, 14], "visual": [12, 14], "sourc": 12, "arrow": 12, "indic": 12, "come": 12, "period": [12, 14], "mai": [12, 13, 14], "origin": 12, "dropdown": 12, "On": [12, 14], "case": [12, 14], "line": [12, 13, 14], "between": 12, "hide": 12, "overrid": 12, "appear": 12, "third": [12, 13], "defin": 12, "individu": 12, "necessari": [12, 14], "like": [12, 14], "lock": 12, "via": 12, "french": 12, "mobil": 13, "yet": 13, "export": [13, 14], "them": 13, "android": 13, "exhaust": 13, "runner": 13, "gpl": 13, "v3": 13, "forrunn": 13, "opentrack": 13, "apach": 13, "fitotrack": 13, "under": [13, 14], "heavi": [13, 14], "featur": [13, 14], "unstabl": [13, 14], "interfac": [13, 14], "troubleshoot": 13, "written": 14, "typescript": 14, "staticmap": 14, "coordin": 14, "forecast": 14, "io": 14, "dark": 14, "sky": 14, "former": 14, "task": 14, "queue": 14, "vue3": 14, "vuex": 14, "logo": 14, "made": 14, "freepik": 14, "flaticon": 14, "fork": 14, "awesom": 14, "yarn": 14, "compos": 14, "step": 14, "describ": 14, "linux": 14, "debian": 14, "arch": 14, "o": 14, "encount": 14, "adapt": 14, "makefil": 14, "custom": 14, "flask_app": 14, "modul": 14, "pwd": 14, "__main__": 14, "py": 14, "els": 14, "port": 14, "5000": 14, "app_set": 14, "productionconfig": 14, "app_secret_kei": 14, "strong": 14, "jwt": 14, "app_work": 14, "spawn": 14, "gunicorn": [14, 15], "app_log": 14, "path": [14, 15], "upload_fold": [14, 15], "absolut": [14, 15], "where": 14, "folder": 14, "application_directori": 14, "virtualenv": 14, "5432": 14, "begin": 14, "database_disable_pool": 14, "pool": 14, "directli": 14, "ui_url": 14, "email_url": [14, 15], "sender_email": 14, "sender": 14, "redis_url": 14, "workers_process": 14, "api_rate_limit": 14, "300": 14, "minut": 14, "tile_server_url": 14, "b": 14, "osm": 14, "franc": 14, "target": 14, "_blank": 14, "rel": 14, "noopen": 14, "noreferr": 14, "komoot": 14, "otherwis": 14, "insensit": 14, "weather_api_kei": 14, "weather_api": 14, "vue_app_api_url": 14, "unencrypt": 14, "ssl": 14, "465": 14, "starttl": 14, "587": 14, "office365": 14, "work": 14, "omit": 14, "old": 14, "adress": 14, "apikei": 14, "xxxx": 14, "servic": 14, "expect": 14, "osmfr": 14, "fond": 14, "cart": 14, "par": 14, "mention": 14, "legal": 14, "nofollow": 14, "sou": 14, "nbsp": 14, "creativecommon": 14, "sa": 14, "licenc": 14, "cc": 14, "BY": 14, "chosen": 14, "randomli": 14, "base": 14, "ip": 14, "fix": 14, "window": 14, "strategi": 14, "subject": 14, "asset": 14, "notat": 14, "hour": 14, "mainten": 14, "diagnost": 14, "util": 14, "commmand": 14, "clear": 14, "specif": 14, "enumer": 14, "march": 14, "31st": 14, "2023": 14, "histor": 14, "hourli": 14, "wai": 14, "pip": 14, "WITH": 14, "schema": 14, "privileg": 14, "nano": 14, "ftcli": 14, "db": 14, "systemd": 14, "archlinux": 14, "yai": 14, "project": 14, "clone": 14, "repo": 14, "git": 14, "github": 14, "samr1": 14, "cd": 14, "vue": 14, "3000": 14, "releas": 14, "wget": 14, "tar": 14, "gz": 14, "xzf": 14, "mv": 14, "sql": 14, "backup": 14, "pg_dump": 14, "u": 14, "changelog": 14, "restart": 14, "pull": 14, "repositori": 14, "overwrit": 14, "cp": 14, "r": 14, "There": 14, "One": 14, "pass": 14, "distribut": 14, "network": 14, "startlimitintervalsec": 14, "simpl": 14, "alwai": 14, "restartsec": 14, "standardoutput": 14, "syslog": 14, "standarderror": 14, "syslogidentifi": 14, "workingdirectori": 14, "home": 14, "execstart": 14, "venv": 14, "bin": 14, "create_app": 14, "logfil": 14, "wantedbi": 14, "multi": 14, "OF": 14, "listen": 14, "443": 14, "http2": 14, "server_nam": 14, "ssl_certif": 14, "fullchain": 14, "pem": 14, "ssl_certificate_kei": 14, "privkei": 14, "how": 14, "1mb": 14, "larger": 14, "ll": 14, "uncom": 14, "below": 14, "want": 14, "client_max_body_s": 14, "1m": 14, "proxy_pass": 14, "proxy_redirect": 14, "real": 14, "remote_addr": 14, "proxy_add_x_forwarded_for": 14, "301": 14, "request_uri": 14, "build": 14, "8025": 14, "mailhog": 14, "shell": 14, "insid": 14, "addit": 14, "fittrackee_cli": 14, "lint": 14, "exc": 15, "nosuchmoduleerror": 15, "plugin": 15, "dialect": 15, "invalidemailurlschem": 15, "todo": 17}, "objects": {"": [[0, 0, 1, "post--api-auth-account-confirm", "/api/auth/account/confirm"], [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, 1, 1, "delete--api-auth-picture", "/api/auth/picture"], [0, 0, 1, "post--api-auth-picture", "/api/auth/picture"], [0, 2, 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, 1, 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, 2, 1, "get--api-config", "/api/config"], [1, 3, 1, "patch--api-config", "/api/config"], [3, 2, 1, "get--api-oauth-apps", "/api/oauth/apps"], [3, 0, 1, "post--api-oauth-apps", "/api/oauth/apps"], [3, 1, 1, "delete--api-oauth-apps-(int-client_id)", "/api/oauth/apps/(int:client_id)"], [3, 2, 1, "get--api-oauth-apps-(int-client_id)-by_id", "/api/oauth/apps/(int:client_id)/by_id"], [3, 0, 1, "post--api-oauth-apps-(int-client_id)-revoke", "/api/oauth/apps/(int:client_id)/revoke"], [3, 2, 1, "get--api-oauth-apps-(string-client_client_id)", "/api/oauth/apps/(string:client_client_id)"], [3, 0, 1, "post--api-oauth-authorize", "/api/oauth/authorize"], [3, 0, 1, "post--api-oauth-revoke", "/api/oauth/revoke"], [3, 0, 1, "post--api-oauth-token", "/api/oauth/token"], [1, 2, 1, "get--api-ping", "/api/ping"], [4, 2, 1, "get--api-records", "/api/records"], [5, 2, 1, "get--api-sports", "/api/sports"], [5, 2, 1, "get--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [5, 3, 1, "patch--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [6, 2, 1, "get--api-stats-(user_name)-by_sport", "/api/stats/(user_name)/by_sport"], [6, 2, 1, "get--api-stats-(user_name)-by_time", "/api/stats/(user_name)/by_time"], [6, 2, 1, "get--api-stats-all", "/api/stats/all"], [7, 2, 1, "get--api-users", "/api/users"], [7, 1, 1, "delete--api-users-(user_name)", "/api/users/(user_name)"], [7, 2, 1, "get--api-users-(user_name)", "/api/users/(user_name)"], [7, 3, 1, "patch--api-users-(user_name)", "/api/users/(user_name)"], [7, 2, 1, "get--api-users-(user_name)-picture", "/api/users/(user_name)/picture"], [8, 2, 1, "get--api-workouts", "/api/workouts"], [8, 0, 1, "post--api-workouts", "/api/workouts"], [8, 1, 1, "delete--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [8, 3, 1, "patch--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)-chart_data", "/api/workouts/(string:workout_short_id)/chart_data"], [8, 2, 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)"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)-gpx", "/api/workouts/(string:workout_short_id)/gpx"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)-gpx-download", "/api/workouts/(string:workout_short_id)/gpx/download"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)-gpx-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/gpx/segment/(int:segment_id)"], [8, 2, 1, "get--api-workouts-map-(map_id)", "/api/workouts/map/(map_id)"], [8, 0, 1, "post--api-workouts-no_gpx", "/api/workouts/no_gpx"], [14, 4, 1, "-", "API_RATE_LIMITS"], [14, 4, 1, "-", "APP_LOG"], [14, 4, 1, "-", "APP_SECRET_KEY"], [14, 4, 1, "-", "APP_SETTINGS"], [14, 4, 1, "-", "APP_WORKERS"], [14, 4, 1, "-", "DATABASE_DISABLE_POOLING"], [14, 4, 1, "-", "DATABASE_URL"], [14, 4, 1, "-", "DEFAULT_STATICMAP"], [14, 4, 1, "-", "EMAIL_URL"], [14, 4, 1, "-", "FLASK_APP"], [14, 4, 1, "-", "HOST"], [14, 4, 1, "-", "MAP_ATTRIBUTION"], [14, 4, 1, "-", "PORT"], [14, 4, 1, "-", "REDIS_URL"], [14, 4, 1, "-", "SENDER_EMAIL"], [14, 4, 1, "-", "STATICMAP_SUBDOMAINS"], [14, 4, 1, "-", "TILE_SERVER_URL"], [14, 4, 1, "-", "UI_URL"], [14, 4, 1, "-", "UPLOAD_FOLDER"], [14, 4, 1, "-", "VUE_APP_API_URL"], [14, 4, 1, "-", "WEATHER_API_KEY"], [14, 4, 1, "envvar-WEATHER_API_PROVIDER", "WEATHER_API_PROVIDER \ud83c\udd95"], [14, 4, 1, "-", "WORKERS_PROCESSES"]], "/api/workouts/map_tile/(s)/(z)/(x)/(y)": [[8, 2, 1, "get--api-workouts-map_tile-(s)-(z)-(x)-(y).png", "png"]]}, "objtypes": {"0": "http:post", "1": "http:delete", "2": "http:get", "3": "http:patch", "4": "std:envvar"}, "objnames": {"0": ["http", "post", "HTTP post"], "1": ["http", "delete", "HTTP delete"], "2": ["http", "get", "HTTP get"], "3": ["http", "patch", "HTTP patch"], "4": ["std", "envvar", "environment variable"]}, "titleterms": {"authent": 0, "configur": 1, "api": [2, 14], "document": [2, 10], "endpoint": 2, "oauth2": [3, 11], "record": 4, "sport": 5, "statist": [6, 10, 12], "user": [7, 11, 17], "workout": [8, 12, 15], "third": 9, "parti": 9, "applic": 9, "scope": 9, "flow": 9, "resourc": 9, "chang": 10, "log": 10, "version": 10, "0": 10, "7": 10, "11": 10, "2022": 10, "12": 10, "31": 10, "featur": [10, 12], "enhanc": 10, "translat": [10, 12], "10": 10, "21": 10, "9": 10, "8": 10, "30": 10, "27": 10, "bug": 10, "fix": 10, "misc": 10, "6": 10, "09": 10, "5": 10, "4": 10, "05": 10, "3": 10, "01": 10, "2": 10, "1": 10, "19": 10, "14": 10, "issu": 10, "close": 10, "pull": 10, "request": 10, "07": 10, "13": 10, "03": 10, "06": 10, "22": 10, "29": 10, "04": 10, "24": 10, "23": 10, "02": 10, "secur": 10, "new": 10, "2021": 10, "16": 10, "17": 10, "2020": 10, "fittracke": [10, 13, 15], "pypi": [10, 14], "administr": [10, 12, 15], "15": 10, "improv": 10, "minor": 10, "avail": 10, "french": 10, "2019": 10, "first": 10, "releas": 10, "2018": 10, "command": 11, "line": 11, "interfac": 11, "databas": 11, "ftcli": 11, "db": 11, "upgrad": [11, 14], "drop": 11, "clean": 11, "clean_token": 11, "updat": 11, "account": 12, "prefer": 12, "screenshot": 12, "dashboard": 12, "detail": [12, 15], "list": 12, "tabl": 13, "content": 13, "instal": 14, "prerequisit": 14, "environ": 14, "variabl": 14, "email": 14, "map": [14, 15], "tile": 14, "server": 14, "rate": 14, "limit": 14, "weather": 14, "data": 14, "from": 14, "sourc": 14, "dev": 14, "product": 14, "prod": 14, "deploy": 14, "docker": 14, "develop": 14, "fail": 15, "start": 15, "imag": 15, "ar": 15, "displai": 15, "i": 15, "shown": 15, "troubleshoot": 16}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"Authentication": [[0, "authentication"]], "Configuration": [[1, "configuration"]], "API documentation": [[2, "api-documentation"]], "Endpoints:": [[2, null]], "OAuth2": [[3, "oauth2"], [11, "oauth2"]], "Records": [[4, "records"]], "Sports": [[5, "sports"]], "Statistics": [[6, "statistics"], [12, "statistics"]], "Users": [[7, "users"], [11, "users"]], "Workouts": [[8, "workouts"], [12, "workouts"]], "Third-party applications": [[9, "third-party-applications"]], "Scopes": [[9, "scopes"]], "Flow": [[9, "flow"]], "Resources": [[9, "resources"]], "Change log": [[10, "change-log"]], "Version 0.7.11 (2022/12/31)": [[10, "version-0-7-11-2022-12-31"]], "Features and enhancements": [[10, "features-and-enhancements"], [10, "id1"], [10, "id3"], [10, "id6"], [10, "id14"], [10, "id20"]], "Translations": [[10, "translations"], [10, "id2"], [10, "id4"], [10, "id5"], [10, "id7"], [10, "id8"], [10, "id11"], [10, "id13"], [10, "id16"], [10, "id17"], [10, "id19"], [10, "id22"], [10, "id35"], [12, "translations"]], "Version 0.7.10 (2022/12/21)": [[10, "version-0-7-10-2022-12-21"]], "Version 0.7.9 (2022/12/11)": [[10, "version-0-7-9-2022-12-11"]], "Version 0.7.8 (2022/11/30)": [[10, "version-0-7-8-2022-11-30"]], "Version 0.7.7 (2022/11/27)": [[10, "version-0-7-7-2022-11-27"]], "Bugs Fixed": [[10, "bugs-fixed"], [10, "id10"], [10, "id12"], [10, "id15"], [10, "id18"], [10, "id21"], [10, "id23"], [10, "id26"], [10, "id29"], [10, "id31"], [10, "id34"], [10, "id37"], [10, "id40"], [10, "id45"], [10, "id47"], [10, "id49"], [10, "id51"], [10, "id54"], [10, "id56"], [10, "id62"], [10, "id65"], [10, "id67"], [10, "id69"], [10, "id76"], [10, "id81"], [10, "id83"], [10, "id85"], [10, "id88"], [10, "id90"], [10, "id92"], [10, "id96"], [10, "id106"], [10, "id109"], [10, "id111"], [10, "id114"], [10, "id121"]], "Misc": [[10, "misc"], [10, "id9"], [10, "id24"], [10, "id38"], [10, "id41"], [10, "id58"], [10, "id60"], [10, "id77"], [10, "id86"], [10, "id93"], [10, "id97"], [10, "id104"], [10, "id115"], [10, "id118"]], "Version 0.7.6 (2022/11/09)": [[10, "version-0-7-6-2022-11-09"]], "Version 0.7.5 (2022/11/09)": [[10, "version-0-7-5-2022-11-09"]], "Version 0.7.4 (2022/11/05)": [[10, "version-0-7-4-2022-11-05"]], "Documentation": [[10, "documentation"]], "Version 0.7.3 (2022/11/01)": [[10, "version-0-7-3-2022-11-01"]], "Version 0.7.2 (2022/09/21)": [[10, "version-0-7-2-2022-09-21"]], "Version 0.7.1 (2022/09/21)": [[10, "version-0-7-1-2022-09-21"]], "Version 0.7.0 (2022/09/19)": [[10, "version-0-7-0-2022-09-19"]], "Version 0.6.12 (2022/09/14)": [[10, "version-0-6-12-2022-09-14"]], "Issues Closed": [[10, "issues-closed"], [10, "id25"], [10, "id28"], [10, "id32"], [10, "id36"], [10, "id39"], [10, "id42"], [10, "id44"], [10, "id48"], [10, "id50"], [10, "id52"], [10, "id57"], [10, "id61"], [10, "id64"], [10, "id66"], [10, "id68"], [10, "id70"], [10, "id72"], [10, "id74"], [10, "id79"], [10, "id82"], [10, "id84"], [10, "id87"], [10, "id89"], [10, "id91"], [10, "id94"], [10, "id98"], [10, "id100"], [10, "id102"], [10, "id105"], [10, "id107"], [10, "id110"], [10, "id112"], [10, "id116"], [10, "id119"], [10, "id122"]], "Pull Requests": [[10, "pull-requests"], [10, "id27"], [10, "id30"], [10, "id46"], [10, "id55"], [10, "id59"], [10, "id63"], [10, "id78"]], "Version 0.6.11 (2022/07/27)": [[10, "version-0-6-11-2022-07-27"]], "Features": [[10, "features"], [10, "id33"], [10, "id43"], [10, "id53"], [12, "features"]], "Version 0.6.10 (2022/07/13)": [[10, "version-0-6-10-2022-07-13"]], "Version 0.6.9 (2022/07/03)": [[10, "version-0-6-9-2022-07-03"]], "Version 0.6.8 (2022/06/22)": [[10, "version-0-6-8-2022-06-22"]], "Version 0.6.7 (2022/06/11)": [[10, "version-0-6-7-2022-06-11"]], "Version 0.6.6 (2022/05/29)": [[10, "version-0-6-6-2022-05-29"]], "Version 0.6.5 (2022/04/24)": [[10, "version-0-6-5-2022-04-24"]], "Version 0.6.4 (2022/04/23)": [[10, "version-0-6-4-2022-04-23"]], "Version 0.6.3 (2022/04/09)": [[10, "version-0-6-3-2022-04-09"]], "Version 0.6.2 (2022/04/03)": [[10, "version-0-6-2-2022-04-03"]], "Version 0.6.1 (2022/03/27)": [[10, "version-0-6-1-2022-03-27"]], "Version 0.6.0 (2022/03/27)": [[10, "version-0-6-0-2022-03-27"]], "Version 0.5.7 (2022/02/13)": [[10, "version-0-5-7-2022-02-13"]], "Security": [[10, "security"]], "Version 0.5.6 (2022/02/05)": [[10, "version-0-5-6-2022-02-05"]], "Version 0.5.5 (2022/01/19)": [[10, "version-0-5-5-2022-01-19"]], "New Features": [[10, "new-features"], [10, "id71"], [10, "id73"], [10, "id75"], [10, "id80"], [10, "id95"], [10, "id99"], [10, "id101"], [10, "id103"], [10, "id108"], [10, "id113"], [10, "id117"], [10, "id120"], [10, "id123"]], "Version 0.5.4 (2022/01/01)": [[10, "version-0-5-4-2022-01-01"]], "Version 0.5.3 (2022/01/01)": [[10, "version-0-5-3-2022-01-01"]], "Version 0.5.2 (2021/12/19)": [[10, "version-0-5-2-2021-12-19"]], "Version 0.5.1 (2021/11/30)": [[10, "version-0-5-1-2021-11-30"]], "Version 0.5.0 (2021/11/14)": [[10, "version-0-5-0-2021-11-14"]], "Version 0.4.9 (2021/07/16)": [[10, "version-0-4-9-2021-07-16"]], "Version 0.4.8 (2021/07/03)": [[10, "version-0-4-8-2021-07-03"]], "Version 0.4.7 (2021/04/07)": [[10, "version-0-4-7-2021-04-07"]], "Version 0.4.6 (2021/02/21)": [[10, "version-0-4-6-2021-02-21"]], "Version 0.4.5 (2021/02/17)": [[10, "version-0-4-5-2021-02-17"]], "Version 0.4.4 (2021/01/31)": [[10, "version-0-4-4-2021-01-31"]], "Version 0.4.3 (2021/01/10)": [[10, "version-0-4-3-2021-01-10"]], "Version 0.4.2 (2021/01/03)": [[10, "version-0-4-2-2021-01-03"]], "Version 0.4.1 (2020/12/31)": [[10, "version-0-4-1-2020-12-31"]], "Version 0.4.0 - FitTrackee on PyPI (2020/09/19)": [[10, "version-0-4-0-fittrackee-on-pypi-2020-09-19"]], "Version 0.3.0 - Administration (2020/07/15)": [[10, "version-0-3-0-administration-2020-07-15"]], "Version 0.2.5 - Fix and improvements (2020/01/31)": [[10, "version-0-2-5-fix-and-improvements-2020-01-31"]], "Version 0.2.4 - Minor fix (2020/01/30)": [[10, "version-0-2-4-minor-fix-2020-01-30"]], "Version 0.2.3 - FitTrackee available in French (2019/12/29)": [[10, "version-0-2-3-fittrackee-available-in-french-2019-12-29"]], "Version 0.2.2 - Statistics fix (2019/09/23)": [[10, "version-0-2-2-statistics-fix-2019-09-23"]], "Version 0.2.1 - Fix and improvements (2019/09/01)": [[10, "version-0-2-1-fix-and-improvements-2019-09-01"]], "Version 0.2.0 - Statistics (2019/07/07)": [[10, "version-0-2-0-statistics-2019-07-07"]], "Version 0.1.1 - Fix and improvements (2019/02/07)": [[10, "version-0-1-1-fix-and-improvements-2019-02-07"]], "Version 0.1.0 - First release \ud83c\udf89 (2018-07-04)": [[10, "version-0-1-0-first-release-2018-07-04"]], "Command line interface": [[11, "command-line-interface"]], "Database": [[11, "database"]], "ftcli db upgrade": [[11, "ftcli-db-upgrade"]], "ftcli db drop": [[11, "ftcli-db-drop"]], "ftcli oauth2 clean": [[11, "ftcli-oauth2-clean"]], "ftcli users clean_tokens": [[11, "ftcli-users-clean-tokens"]], "ftcli users update": [[11, "ftcli-users-update"]], "Account & preferences": [[12, "account-preferences"]], "Administration": [[12, "administration"], [12, "id1"]], "Screenshots": [[12, "screenshots"]], "Dashboard": [[12, "dashboard"]], "Workout detail": [[12, "workout-detail"]], "Workouts list": [[12, "workouts-list"]], "FitTrackee": [[13, "fittrackee"]], "Table of contents": [[13, "table-of-contents"]], "Installation": [[14, "installation"], [14, "id2"], [14, "id6"]], "Prerequisites": [[14, "prerequisites"]], "Environment variables": [[14, "environment-variables"]], "Emails": [[14, "emails"]], "Map tile server": [[14, "map-tile-server"]], "API rate limits": [[14, "api-rate-limits"]], "Weather data": [[14, "weather-data"]], "From PyPI": [[14, "from-pypi"], [14, "id3"]], "From sources": [[14, "from-sources"], [14, "id4"]], "Dev environment": [[14, "dev-environment"], [14, "id5"]], "Production environment": [[14, "production-environment"]], "Upgrade": [[14, "upgrade"]], "Prod environment": [[14, "prod-environment"]], "Deployment": [[14, "deployment"]], "Docker": [[14, "docker"]], "Development": [[14, "development"]], "Administrator": [[15, "administrator"]], "FitTrackee fails to start": [[15, "fittrackee-fails-to-start"]], "Map images are not displayed but map is shown in Workout detail": [[15, "map-images-are-not-displayed-but-map-is-shown-in-workout-detail"]], "Troubleshooting": [[16, "troubleshooting"]], "User": [[17, "user"]]}, "indexentries": {"api_rate_limits": [[14, "envvar-API_RATE_LIMITS"]], "app_log": [[14, "envvar-APP_LOG"]], "app_secret_key": [[14, "envvar-APP_SECRET_KEY"]], "app_settings": [[14, "envvar-APP_SETTINGS"]], "app_workers": [[14, "envvar-APP_WORKERS"]], "database_disable_pooling": [[14, "envvar-DATABASE_DISABLE_POOLING"]], "database_url": [[14, "envvar-DATABASE_URL"]], "default_staticmap": [[14, "envvar-DEFAULT_STATICMAP"]], "email_url": [[14, "envvar-EMAIL_URL"]], "flask_app": [[14, "envvar-FLASK_APP"]], "host": [[14, "envvar-HOST"]], "map_attribution": [[14, "envvar-MAP_ATTRIBUTION"]], "port": [[14, "envvar-PORT"]], "redis_url": [[14, "envvar-REDIS_URL"]], "sender_email": [[14, "envvar-SENDER_EMAIL"]], "staticmap_subdomains": [[14, "envvar-STATICMAP_SUBDOMAINS"]], "tile_server_url": [[14, "envvar-TILE_SERVER_URL"]], "ui_url": [[14, "envvar-UI_URL"]], "upload_folder": [[14, "envvar-UPLOAD_FOLDER"]], "vue_app_api_url": [[14, "envvar-VUE_APP_API_URL"]], "weather_api_key": [[14, "envvar-WEATHER_API_KEY"]], "weather_api_provider \ud83c\udd95": [[14, "envvar-WEATHER_API_PROVIDER"]], "workers_processes": [[14, "envvar-WORKERS_PROCESSES"]], "environment variable": [[14, "envvar-API_RATE_LIMITS"], [14, "envvar-APP_LOG"], [14, "envvar-APP_SECRET_KEY"], [14, "envvar-APP_SETTINGS"], [14, "envvar-APP_WORKERS"], [14, "envvar-DATABASE_DISABLE_POOLING"], [14, "envvar-DATABASE_URL"], [14, "envvar-DEFAULT_STATICMAP"], [14, "envvar-EMAIL_URL"], [14, "envvar-FLASK_APP"], [14, "envvar-HOST"], [14, "envvar-MAP_ATTRIBUTION"], [14, "envvar-PORT"], [14, "envvar-REDIS_URL"], [14, "envvar-SENDER_EMAIL"], [14, "envvar-STATICMAP_SUBDOMAINS"], [14, "envvar-TILE_SERVER_URL"], [14, "envvar-UI_URL"], [14, "envvar-UPLOAD_FOLDER"], [14, "envvar-VUE_APP_API_URL"], [14, "envvar-WEATHER_API_KEY"], [14, "envvar-WEATHER_API_PROVIDER"], [14, "envvar-WORKERS_PROCESSES"]]}}) \ No newline at end of file diff --git a/docs/troubleshooting/administrator.html b/docs/troubleshooting/administrator.html index e99b1fdb..7c22f6b5 100644 --- a/docs/troubleshooting/administrator.html +++ b/docs/troubleshooting/administrator.html @@ -5,7 +5,7 @@ - Administrator — FitTrackee 0.7.10 + <title>Administrator — FitTrackee 0.7.11 documentation @@ -43,7 +43,7 @@ FitTrackee - 0.7.10 + 0.7.11
                                                                                @@ -174,7 +174,7 @@

                                                                                © Copyright 2018 - 2022, SamR1 . - Last updated on Dec 21, 2022.
                                                                                + Last updated on Dec 31, 2022.
                                                                                Created using Sphinx 5.3.0.

                                                                                diff --git a/docs/troubleshooting/index.html b/docs/troubleshooting/index.html index 089199dd..bd61697f 100644 --- a/docs/troubleshooting/index.html +++ b/docs/troubleshooting/index.html @@ -5,7 +5,7 @@ - Troubleshooting — FitTrackee 0.7.10 + <title>Troubleshooting — FitTrackee 0.7.11 documentation @@ -43,7 +43,7 @@ FitTrackee - 0.7.10 + 0.7.11 @@ -157,7 +157,7 @@

                                                                                © Copyright 2018 - 2022, SamR1 . - Last updated on Dec 21, 2022.
                                                                                + Last updated on Dec 31, 2022.
                                                                                Created using Sphinx 5.3.0.

                                                                                diff --git a/docs/troubleshooting/user.html b/docs/troubleshooting/user.html index 8fa4e672..2ffd2c18 100644 --- a/docs/troubleshooting/user.html +++ b/docs/troubleshooting/user.html @@ -5,7 +5,7 @@ - User — FitTrackee 0.7.10 + <title>User — FitTrackee 0.7.11 documentation @@ -43,7 +43,7 @@ FitTrackee - 0.7.10 + 0.7.11 @@ -148,7 +148,7 @@

                                                                                © Copyright 2018 - 2022, SamR1 . - Last updated on Dec 21, 2022.
                                                                                + Last updated on Dec 31, 2022.
                                                                                Created using Sphinx 5.3.0.

                                                                                diff --git a/docsrc/source/_images/fittrackee_screenshot-01.png b/docsrc/source/_images/fittrackee_screenshot-01.png index 99476e8c6f1e2d49f1bda0e4bafef589e5bfabd3..036dd01342b4bb53b3a32b1db7170b21fedf149f 100644 GIT binary patch delta 511503 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¨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≫&_#Xv?SUhJs_o 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∓%ZAWT($S?tR$cZ_d|6PIiVNTD4gwYeKq1Oz| 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

                                                                                v7#=Pe66CON@)KWp*$OZHJ*~7 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∈iMQ&jk%g`bf_Y?0aA& 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%0A5M_s^<4_ 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 delta 512194 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

                                                                              • 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

                                                                                YFgu@2cgecs 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
                                                                                >$eR20{5Bcfh{qL4OK;!+=tMm0MZ|ATne+$|IL4cZARmc1fEbf9O@X$lx(95>$M(2)aL@Z-X!Y{z zbFoP0ah88U%vPtC)vqNoex_AVNnFyH*=!aONY$z{e6e?RkGViWlGWLLStS49J|djv z?a2M=;>*Nszc%@>hX1#0L^q@fXWdkRE_Y#BVo&cLAdWfrBL>3|FJ(K>7EOh>eDxTpi3CO3m2EA2&O<^o&df1ktguwhA>^XBSJEngF# zpR=a8r=5@Z5$#qU>chlNgNqpF)(hgo=~;zxN@c*$v5qHyD>8Wtr6JIa707V#!>FI1 z)S&W(lx($t4vf>mqz$H$BsU7GBO$wuM!4wf`bFqX|B@$vvfAZch8(8{p&s8EqCRDa z0INimGGGQO=J+=BYv@v&S$s;tlWgxdmITc07bBI*U=aB-4v(I4NwO&JT701ct9f8G zZ48koSF-LJuZd|{BQyB;HK!6@hu>zXIgW z@l37G@Uo5je5!6H*nt;Z%&PlNq7aY_)Pih>1klJNjWVxVt0Ct1E7crB&`k~;l!845 z_MYbag|t#U7sA7qG)_8|X39sMo(1II`S}yuUp5W!Wuw06m5L~4uMDBloXz>0TCHcV zNfOaPC!^%l7caH`hkM?U%j^$>6Y`b#UgiXz67?b)(k#F37L&Z<&-jWWs#eim{Hu=u zYPPfA!Ab%SCwmVLa7l*VFWckm^gCX|><<3`doB5O+U&I%*>8U7uip-4+Kpa;;+UOb zv!2CWkW|iqWH)y&`*qW&NApqFt8G00we=x$PW!p%Ij7KWZ!6*Ot)fsyUNFDlow?%2 z8x8NryjuIw^|{+&-BHNL8^tnVXHY#LYGm}7dg-#%P4er#40R;e)A{vM%K0xm(YEIn zVH7b;#rHSt?YHy6=hO6W8Gd(~9S&kWuG<=fe(RNl?$TpsC^jGO(_RN9aYDcUPQjx@ z`QHXl@b2H0yWaSQ{D~Jhn2WexWHy{WjM$1n?tSBO;+497Wfq8XGrGM!$WLRSoqiU` z*MC&reuk&v2Mdzur5BQ&_vKy%=T)UXf%c zNzYKAk;vi>4nrBO><%2H$^XE^{lT;mENC&?>JX!g&bjyj+S*fa z!Gu(>4nb2D1Fgcu!2$GCn_n?H)i6x4MA1ZLd7^lNet&EE;qtY-;~)JW5P2s2pKcnc z-kVj0C@kzhY4PcdY6k6U$+N-C4!d7%RH9!MxfYjI=0~$k*WSkp6f`u3@buCWZ7`S4 zgJavFzqD}HWEzUKEez|#G~t+?&lho=>I~>Ms;W zIre9>iJTK{SP0K(l;n*ZHxFgAHJR!jYQnYGDeK(O(BYQSL-NQ5F%X8eVCiBmBK&~m zd#$U?H3z7YqJRxS`njM6C0$*vf9v%>G6D#xgjbMhR}`8&Jp1n5!cB@3e_J)HT95(~8cFt0A!Mzf3h>2BM2ZV!)rTI++4u*z}Sns~5;@F+60v{)%n8 zv`p1J)ZpxvuyWaFHOekdbrid$jw?rO8)%^*^ssE57Yk=qGiuTU1u(ui(ex})1^8RjB{n@8dCRm5zmW(pSaY=) zw2FrFL`9%N@j-}27$GPt`u8A|Jx8j;!YZ^`#H2&!Fkb{a&Osx{AePD|dnKuX6E%75 z*jjUg{LoPJu_8#s4|F7HKJve-qeq$$8Eib>&{@Irw5adj8ENnv~LB^>l-}pW}`QA+&R;CUON+N zf`kC?%ZSs>aOUfE*~cU7YC=~CH}Fud-(r#X^TIptJsJ1*4*BSI)9MXzhmfl0F&lT5 z_vG3C;=t>`jM)Y*l*S;Z6mfh3c#?F{f4gkHOJ-Vd?ATR^lbesJW-(Q%4iEOLO z{;Y}K(Iq$b&0j8ER~j=%DiJ>vZ98{#YJk0xQNh%eZ+qOd|K5H013@QMGdFLzUHNvz zZ>EAzMSgQ6-}3?Q2_O6JjX~b-e-QbGF48kD{Z>6AWtFcttFLuqr`kVby@WneyNrm3 z`FEcEI-hd0C=`7dnS0*RH-QNqfxlnc3=$iAd@)yud}%HO@@l7G;@iarX?_rsj{-`C zk@~(5fXlWC>K}==SC~uP9-63?+e~H}MZev19eS?&&7Up1o?e9e7J8EY_ikFwcb9^x zosXVu6PwQP`8^k31&)X(%wt{h6xbnA)(XhBe;s@lmIu3tX9xYcC?}0CG16A7+XXvITVQHOLJ2=S%Fpgh!jixCBK@s zBr)KyS#tiwv@JIwET<#)ITm>cYG8WS5|n9?Lj#Is~$U4Bsp@# zc&KIGxU&yQztA;(xmifo7IEgiz4>7Ox3p+weZ?=MW_+#r@HARVi?TG$m`~5Dbu{u+ zG93yOg&|VwR0}&gi^}F@7_$)=yY}OmNjV|-A7cet;;O%Tis98MKw*U&dTlj7;r-Mr zBCu@yhhk_-Ea6G9Dfn4jOC*jr_)sWZ$1Pq`&DEmew*9g?s6&Ny z)0X+tx@dIhPl%hGJhDwE*nnAPDzc$Tas2Y~3&qyTmj3oh0X-C2-^)yr=>-mC*$_7_ z_7i;(6U0~@FoqV@JHKx)-P?*nZZIclMTnAiInbhtsJ$9hhb~K%P_V( z1u~9fZLh{rDr#Y-Nmj=LuhzBFk`&2o#yf1a)KP=AAU{SY#@u227(gS7$mGC(VOUm@ z-24oR*U}*2(oY{kd1q5lMjWb_QCYl&v{V#=mKAUAr>pSXnlPtYqen^9#B>V?0|8fu z8;^CXww|lEoHL6w3J-U7a+8xcYW+3KSDiJ7s3Bm3k>@!H!l|ZkI3)H54r~pQOR# zl<{38jtifK*zY@m1K?cM_ec7V-r?VI(o!xMD&F?*P7R1u!3qfJcR$FWWk`vs)@IZ% zow`97$?;E%n_G7=|0fhsUJ~ob6|^W1sYH}_Upo{l4WN81`_?RbPA2|+Cy8XPq$731 z>Y$&8)cg$pZ;eDukxL~q&v;CfW^MW@RLMru>7;;cKA?euRjXwjvwZ?xotnK^Dr=%= zd|w8m$N)KR-F#YT7L~6wG;3TV8B1Lvo+xj$Ogp*i!3Dc$w)AK2XZ?pv$_#VLO0C}g zL};Oqp8Vw(hF#L&5(4Yc@J{xN&n|0EGj7LLC<^Fc0>zEYGL;OX5{-DYbEDa zGw=N`s`FXz8yO7&oE8vsDfEZ4>rq1L_m6k18Se`z-b+?sa4-7u=1|KYx!?21j2e32yKEUM*d3n!2@vl!;?e2LGTs_yvEt5uV z_`s|r@%6<@;=e10l3srbW&z95J&upPge%;SpHVx4w+3C88DFyn?+L!YPWW+QJGGl5 zJ_?>P8g{eh7w7}|QrF{BANXE6DNkd)Z%i}KtB>9{JA%ng|0KMpZ-J2}!KXK*#In>br-!l)-n>-!7s_U*=(z-TAKpSf*sgLXcB9np1NyAoX& znCUJrBwHT$B5NVoR__7CQ|uGd1{5ebg`X+i<_gZMp%hzvXT zwYWD?PDs4RCaAmMX8C3|8DExT=OZOO-vR#n!ruNpRP5F~w+%u6jC>-I-cKDtD?wSg z?BOAODBZve^I@&gR^P3m3)ZRNM;y^ZW-*C>0wULDNUxAO(_kPllFq#G>pg#aD#pu= z6W4H^;$Cn>ZKpHy`9efsKg#M#s=UUoe`-i+=7a1yC}G!eqUQc@zTtRVS;D@?7XZ5? z`g|}LIYa`ZQzX4|j`~oSxjvV!Zy;6cDtCbV@;k|g|8wG>+0Ltdt8cNRo0UAyI8*oE z5SZ?`py`k2JJl)`^ROGlrS6r$(Rhq9Dy5FmaSs%Q3b}*{sp?I{uMQEQ+J4@Nj60c+K*D z-kc2erD|z=OA3SaSyJl4+{Rs>q8#jr0`95B#dYYJdV?S+x_J(<;2#aL)Ugz`*wZ$q zd|+L4qo?(T6fEm5j=P@ zRXn*JoD6J8&Bj^1^@0)*IUPr)j2#i3NMtZ7>%_++CZr68II6^)Nr#Za6i2os)os7I z(5S>!Qu3L^T0;=>do*V^OmS1Lm=2!mINMAHglKl!*SurQLL5rbHGppQrwb&l*xI=& z7R(XW>9T^$)9x31c@I4K$7A=`MZ+tO3Q(jVMpyY>Rr z3RFrX)>0Nmsi)#p3aPSHHRdIjixA?^8xxVDC~S<8%CUf0SDuAJMNYa4epaKNG2_BkCOAREa^SWD4SbF*3F3|idmQvP!JO+BBQd&!!mRAJBN|E3B6$+HrE}6 z8-BS*>DRmFC_?1nGFQg-N9wirg6Fr{ozApaJZucyrD@=qLV&a2ll5AXN-;smSB!ZF zYx@Ej?EaOZjM_vHt@`H%eal>@fu7d?KxdTbMY7XP+j!bM2J?uFe)w$WzdRTHjj|Du@BicQ3v2I;$Cu4fT~&GA!)8A zM@goNXFk9;fYbiK!z)+;P|6Bj!5};hVgF&Bp%O4iFYV)&-E+J5+}1=Q))@cdce%%T zw3u^OL*u3kq@jxU%{1BEditKOu+;k?I&VE6xv6v~(d4>7VAAk;5i#GHf+-ShwwiKHBpDP8bll>9obru)UCb8yWRv z6G9u85zsU!Cj*DkKZV#K1zlCHfm;(dQN%Uyt_qV!3E$;WFVogF zmEel0q=6)Y3}H0m@iWPwY>m)AHwxLFYH)&lWr@JdlO!G$;7jd}!wITQ{fzVorb2g{ zZZ|l;7L3lg#Of^D<_tC)MpZ)p<%|~H7{eplNTKV#GIF;}ma~t%hqEA*)B{XSA(Sud zaH@1Uiq9hJ89;cl8x~c)X=~5KD>M9u{?uiaQ~_ilE;i@96Gw%*E5w;f4URpKUX)Ij z1Dl+@49xp@V+kXn-HLUIMLd47%k=M@&vqdbQ<<}O9li##BAvVJ6McjoC>JG?B`co> z&2@D~n|#O6LHFkD!ompN8bF`K^VUOmb|gCo_0c4UYYWfY_99=pWN1n!;Sm(!@)b%& zqZc!Uofo|e)KXmu3M8pGL?%xcx|*U{sOVbQVZbxRC>}gBSdeP8(12o4!EkaEM~Nr! z&*%}d0}?l$r8MO`Eal~inLY8*u%r@MlGZNn-$~dZ9#cn4RqyIHzI_3Wo^ zdz7q@i*x4y5_KW~vZkkN<` zN5>LMS(A(!BZhjzucW31u0;y=Q%RphSY}Q6`tL`pMxtxW`4Ntl75)!iU+~CTJ6`Ye z#Qe!-)aH4_Gb)W)fDS`Ybh9=0xkai`m0Bhz(`4flIG~k;dQ(Gu!_`m=ihXmQfczfn}iau-WRiLr5@eaOsEE%K65jw%65q0L!uMSD{NG@6plTL5mFmw)OE%mq(Mf z_DZ&i)^@=*y-RBLUE@K%jwbfWUq7?&_U&>T1MwcJN2lrl4&@U<-PYSmRR4H}>Trhb zYm8~{(WmN<>C5+RE$?l=ZIIgO!jk{Xtq}F*iI>lr%Y&B~ zs=YnD-^8HR{~pnQ|A;-qt1I2DJJDZkIKq3=$Lnxr`%Rme%@6)))0qQsf3zUB;r7q> z0vaYRd+&g0%AMT+|MBg~ z>p9mo^e#`A+oQ+9*g*O?cfnRx4^_aQWd(Zd6R5IeN%zUHn*Wc~_7{f(Q`( z8**?LZV;`S6r-{H$PjDz6=LUV4)c_3!K9KYh%3Bt!z6^WCQ9u;Ihkd)wpkth5#jCa zK9;RBY~7Z~c4aH`=N@zu(*rqZr9G0S^Ld(GYrlUAGAGS#I?Pe1hrvvTq1XwzZk)>GWD8+=53I~2Cnq55 zb&MyqMmI~ndsYCQho$lPQT#j8sRU%CRVK%X{%EGDeSXXCNJM+mWF(?Ir)W{f<|;)Z zP$Za@H*%<~^Grt(={{}5aBT?AlwdMR7`*j#2b>$D;bk_nvJ2<#nF%PlNHUjSva!NM zWBN~$70Y96S9*lS8j%%hqR8ZD2Z0Ca7-~sTEOm9fFIxKC&GXvTv^7DBL0r$q^i(?6 z^^%l&(G?ZSDr73N>&mNN2O=YTPYQ~9EKqgXZUvhDj=<_B<3Nm#z-sP^RYSH=$<&TE zjPS8vf5t@?ierkA4o5N|#4bOhaZ$fLk+!z*v5st0RB)^% zQ6w#j=25*6$F(^7|CtVMf%x!d}ei;=GpLE`nPiR@_%=4D-mEvv6t%dl4C5@C) zI*e4N?Y8LTvb;e&fkM{1Aa&dM*~d!w4D0ru$nTE#GV~^y7J&Cm&0Ie9`YeW$+r%@& z1^+pkAwA7z;fqC^lv^0Q0K-<^Ya4a@cPqWo+{E8V{ZHZq&g48FYvehN9e}+2omH?c zq-guCY3sk*W!Uz*M3QZciG~_OMWZqwuguR8I|Surj(?h*KBNS9zU68Oyn?^gEq}1T z-NpF7uuZ`O-hWY$_^z?BsSF-ZcbQa)zq3Sq+H$9JJ?;--MC$!K1G17SNVfMpNB?n= z2zlI?I}Zar`Roh$Irl?xc;rGa`&3s2qpmB%>;antG~0fxhb~ILRbZLY%)LGvI<98H z{LO}%Djd`F(t5m)Z|4HPE4@lOpA7Av(VbprkrG}Oq@4Gk1T$MU59-5FjT(q}9f=U| z-v7Y-=zS;R9XRtv1OzkaGkX2wExUM1#j(U(0=MiwW%s)JSD+0xw|*~1YmbFMSsmjy z8M%d7hhyPg#^qMb`U;sWOUrGEPnUT$Wlvc&YyS{bY{59;XDXy|10&HatmB3Ql)oi1 zQ-pNt;??~bn%})9c2I3FQ_bWRCtPP5fvg z9SX)H6VFFP0cza>qZqM{ByB*gcuSdJ$IEvo?#r_k;bq|IY^ZADkqm^)@uQ1)Ir?u# zwb;wYT(wVS;2J9ADi|$w6;-wvpXuQPw%H2rrDC#CWj3_-5)QVu8_HVP3Y_G_(hKGZ z?IRIq*{eMSM(hYpP#R_k{X9JNoNwo1ZP~EG=es%8fCZzR{X3xt%vkd>*0O1OT&;YS zy0Kn9p8$qHLuKSPd%WQ_EBZXd7w?^r<_?SAYARBtNc3XlcS900KP0h!`{GqY22=B( zv8Bds1WcWcTAhVj7i#u?b9h=i+8hcQ)5S&i+>m8ra;n10_fQ25?oV-6YPSkMG;Klx zHm9-)KuYO8*>55n)B@8yfQ^#;IS8hd>@t_R?IF*P9(PO7O3H%y!o=5X)7^pG_cOH; z(k#;fE@{M1I&*4ATxn|&B=L|%^y&p8kkqUMo2rSgPd`D-_ji**x3H#AMj6Ad1jE@a1cC=1ElRY|1gH*8IzuX@D>G<%dNRhDq{MfF2}WYG6{>nlR2` zBCCfg2W9swajS;QKZjNIgBn+Gei6wRvzM#ol!V(Zf!Y*m_gS{1I7oKie2#|EWg% zdPKviY&0x2^N+X~k49oVc}6hHssfe}@Kq)`clzDi>$*lcr|rS#E}7l#$;Fm6W;{Az z-AhE1>&=4u{m%Y73r)$I+;iVry6ff`O}*uk+@ob(T2p$?sLtgpTz>Z^#Xl?mhmU~B zrs-~hQ7-*!mAsdq<<28^Ju;sVvb(5uk!?gnGMej)&~gZ;D0t$1v8ok#w2|Kl1m<_{ zd7llU={tQ_+1mPwW+&rFZfn~8&mIdp9f+9E%L{0(v0i$3+%O3 zxgv#&$b1DVUvdhJ(7}$N8&MN0a5dp%@QZhasDEr!d*EQ_NIyUzLC|&1{}1u;B8qa?#B zLLHI7Yrg>5DRvdd&kB5dMfWzUSfz?=jMiC4AkTCXT1kz2 zQDf?@-qew2AOibloeF)JBALZJpU#ev%-hn+>Ppq51Kr_(T4*LpxS+`Pu;MSTc!;M& zb>=1sSm~KEX{BbKb+aLFW_pI&Jk?iI_zao+sOIlBczjrQ>Ir$oXZuU##rz;1S;8&s z-Zm*MFPHIi?{5$?Sag-yKt1<#pia57JA%~i1M`B(Sz9V)LU29fotRCW8%izKHus{5 zG?g3DJ7d!z{$aI`WFfh31n8S&kBK9XSR{Y^LD6x&<%_2^g?)Z+bk$m`m}8agyH+m! z@n3L*t@PYr$#F>40B@_)maM@F1J;<2 zewu|$uaNOphX>=P1v_+f%R|eb7cWMxQyyAw=N`SkUmR8%w|3yR zvP=`fWn1LeyOn=`R5@{*V}w$|O>4j8ehq7qo9h=9(GoF1uZ{AM$jBd_nIWY!_JySF zT$Fp0etfnKQo*U-1TYfWWCkJvTeCP97R0v>*3av^$I&)#?B;|kDeO8a%J{K0kM7l& zlErk*j#GJmmDspiXKUtl*sgY1#7{7HhhGL9srLBHQR&}=Fs!)`a{c8qjzI!jR)|B* zql7o?eAb;GO2G>Qu)+LMV#~#_#S{^W809Jh8JPY0ko1GCYn=o9AbD&XnUa| zmAZ1t_R5VPuzt4q|5}_Xs>7){phOine%P9x-dcGC6^D$R75nH&(0 zex99L=R)BA7gJy1R&~^DEh0!9q>+}8&O>)Mhwkp~PWjQ@-OVASyE~*qq+1$kDXGi* zKKDM~_b=={d-lwlHETHoSiFJi@TGbJOC6&mJ8}v)-CkQ}pEO4o&|0dv*`UD=&Yrqz zYHV&X4w-OP9;-DA_?1nV4=rxXe!KpcMQa*&bAe}pXFpE7aZpag6b-0fNckEUmf0eW?3zd}_2ughzuZHJe$hitZE zm$h<_J^9mrh455YJFkx}`j^c;`+YSrAP&N*QQ%^v^XfJ-O5mPj!)d!|V(#~kj{+e* zymcSGF_-ckDsJ3WSX{=(-0e+oUI3nJq{yrWue(&&iRYamX@b{rG^L9!caj2$VR~%F z`djWJ0)c{j+vlFZ5$kKTn+=EKCKX?X z)Ggx8ABm@{D6t3IcP}IsFE6b3rI>zcE!}5>6sw&@xfkzWrrpkWr-9d`i3+P&pL-Y2 zJqLTSn#gts_pImFWuI%V(fazS$H(lwjqo2O72aX?wyE#{x~YK}np3j)rMLkn4mS1& zEz^r{BYN{ru!O3r@GyN!l5lXzL|F0S#agC9XfSYE9a+tH)ngPp8$MHB`*AMzVy5cm zZtiO4vnZE;sRU8OynaptuaGE4+70(~Gfq~73zRo|N&-=72)^=E@)+Zcbs;&F+3oR0Ed(kAd?wq#4nqGhXs*}XWr9K#a$BBze}4Bz z0KJcwmq>p@tMf!lQA>gL_1x9aEO`~vSdGG3vJ~fgQs-+V9e#=k$=pz=G$HFJ0@w1a zg*&7`&oErec5rHMK5@V%?SfG>o#2U>-gJCzw58RdW$B;PqZg)6MI3hxP?|%_Z1H(V zpwN2Vi*nCtyb@stL^?V4&Y=+;2;(G^MM;>Yo0kKagt-V1@N4n12Ojl}J-7)a&9PxZ zR^ySvXNDO&Wk#$CBKD3g6qC zKwh&lP|oP)Jqs^0*t>(OPhR*Nwz5Zn4r}Bnu8wdE96vSGbhg~_SR~02TZS6!TAb8x zyE7!Us&4a)EM5QNt4x-bbpNfF{0S#e8E4nf8`(=UkYlxyqS>*Twp49sZ=V<&3*XK+ zUt??33!7K;io@Hq1WVZ;V52PG z$qbLeq2pm?LqweI?`DJNCy^V=RZ5TKbq-H}BD<2BP6{TMg`(+b=b-&0(a^ySYrrN- z`lgeTBo^2VSpiGXyYcsG8&q%5>l4Zos)Hn0DsAlCCl)NP|1I034clh3{4ASdTuuebL<*u(e^3Ys; zdR|G9%~CO!ThZMF8_2P^y)fEplRGziTfvxu(+7i>ZIfMtu1BTVuHR8a=t*xWUWV$?{Xe$W>7be-n{T%`5dZa33@NaAqNp z?6Vm?D1>VKt?T~Vm;KvC{T?_?63YJKlGW^5_wSia$PT*XL%2un%x3@E-kS!e-^{|_ z_#5ddY2X~x7og0>^N8A|X;#N#xd$7$bWVA8O0c6w9J~aN#p$(2d1Vjo^jI_^AqYJ8iac(vPz^U4@$MkeJ=&2Q=Lw0J*OG_ld zu||5^gk_B?RI2>79*UG!kRlYTDOU?BW)4;f7YtiS9v|}oW5uB6U+&fT@ooiV>g4gt z94A$ld=61-)_xqgLkX(r-#jOi;02Dj?am=J`+puWVBDC)T^@J|fcxN&PCcLY`ejEo zuQ$7ffe+lkKVSHu>*a9CWr)pBXD{;50KEF+sbI?`%LTjz(J3BZ9K-@d27*(ig{-1R zo&s4Nt>^_)^J9CHQb9ycy?iTJaL$L`MN}vW8eAG}CtfX^rnyz?pdoW{MFovw+t1!< z?IJ5A{n` z!Y1?8NRg4t8Lox*Q8_zCOWts#Ezxq7G3dU#A4_p8V)^Q)8xiRTS|_gGiU&#-y{;r) zdMMIXzoVBo~c17X0WwoICquZZ!lfuIA>^ee;1Q!U?Va;|;)B5E@hWKQg{h z8{9u(XM5cmO>v(iv~+IKt81i{b&mLixun|E^hDBCKad6OHQ-ieM@cPc|5@k_hB?S~ zBOaFpzH5DC5^IN=*!`wntkM&=A!v-HIz8+pm?A+E5Xk}2)foqmELZr?&Z%@SSHjv9 z#hPMszYFS0PHv8J1&`YWE8n1b$18sThf*{Q)@yD5*lyr%bcP>Uh^ue*ioWqAGFe|r zyTQ#bG#{j;8>loO5Ham+)0$`lom^5AY*X6-wh>~XO#`b)nUO2>Z$CDOt#4%o|7889 z^2jY*t#dr_gM_*57@tCexdTT;ZVV?%pnIU*$8`7P46mj=O%I|Iz3yUZAGR5%;hoBo z3i=ezkIqn%n-yYj5fW8w4l0J<(BG6qT@XdB4wkI?l8W#2*lAdYtJqt=zO03xCj^j&+{LL|CM1FF-r)T356g`xIjgn#wGf zEmEVPKp;pT2{eMl7DTn(cm)$1t!iC=?lEz}Mm*IJ^Hlzw)#;dpxgo z>uPCEksSY?7W1D2ncr)Oav{caX9T$JKj1Q9ySE|(3*4W zWQv%3H&1b^(rb<^ALJq;{UTu{jni+LGHoch$}QO={T`P3?qb1|8%3wrY;3 z+a#DE>U{`CGl8LQ(2B-M+shA-|JM|6du2wSIML0g-m~#B2I3lxid|$Mj4rFT7(6rE z$dKb6jKzYiG2wcOIhvV3CPGWUnhw0D)t*l=J2M6uXXl{qsGciWe9obP1@!q~sak2X z*x1XB=Xe5-bA@GSGJE&mWqjk=Q}$~k6l&oqxck7N|6 zw29z*EI0kT)Zhj#)-5yz`Ftn|xH9tn70B52_8Iw3Gltnu1J8BO50%?FJwSj#>vf@= z!qP^{KqZ13#L>*~x2Ve@7ge8#1gbv*cKrjg4g_i2g(70;Y2yPn*#iKffX>%}I~{7c-|KbP1Mq!GGG4B8ONv;yATfew18X zr;sv`G8#8=xPSgM9KV!tTp~CUrU_L3ha|{MEe48W%xN@d%ffccbvn{cY@B_t{o|cMv4sdD&;>`-Uz{Omb z9_tOCl;)I|#!nw~8~*LKVPPfWpqvq8=Vrzp&u3lYeu4KVoaFf*CYF2gow$*f>rV38ek~vW8P4 z{wjzyaxy_F{=q~Jp1MQIk%-}R{_9A1U*!5-;)+z2dIM{S24=&hTLQj3 zcG@>^QhIQB0Nk1kKl}tSaVS5Oy6U6%WmMK>vEekdhnTLA;gIZ+-SYF@c|N^voqy@E zj1Z?cMvvm6QS3+Xj5@(+$FoWccGr?pzlA2HKSgWuJg{=Cr<5A0OTGQ5 z-d(FoQ(}~mm-r6{v*Wl~jgd9=;|xSF9W5nvz3SuiaH=ebKsuOd)qd!I{}h&0Pb`Ae z)?;>ebxnlXLF12k)HuoG$dgw)6(d_-Rt)7BD97xogDr&5+^3dKX~$2fDz`{TvWlCP zYt(^l0D_MV$6d;xM|V`C@*7|ZK3j$YoWAe^4pCaXU61&FXj1T8U6!0TDuR!N)Nwc% zJE?|XwGPf)Nh-&<(9FszM3~)}ZLDN-BW=#XRJatJ2Ex$WT;Cnr{MS#h!Dn_pS$Fr^=SCYmt-8=`^jaJi;p`Q}4KqzpVu z5WPkO`9QC7N?A_gJVxzAx$@aN<;s)30ZczpM`}W4R{r1H7Gvd z=7L|#Xj3FlnYDygZWrSeTYaQhgv+jZ!(~lIH1;xvY-xoiE-fK76+h-eX%a4>NTtHC z28-{daV_E3Eay0(Y%rINgYwCym4U-JK20K1hsz^H_9cCr8OB)a>V2eL zo;bbG*ncBcbCAq_r?gEM!;VvUf!v;c3BHWMDR1z}M^A+1kB}M)l!T%JD1%o;=~!5m zhED)Ng)|~k->pE#f9}U!mD`0Uffsx#YtUT0W07f&REwO5vmF<u-%;*y)?9rxk&#Zr%4eCFAZ!jwF6(2>PleIvLt?Xnj0aE2%O6i-BFe4D zZYdI{#g3`YL!pV8#R4V!z&khUh!yaR%A&1+`~kDJ0_ zIxnB0aD%hRc$JXEj@aV=LhC1FW;41128YeQ@xEC>bWWyvnUnx3qTA<{yvcPg^mlER+`x7qp6T`M+FlD~dY#DBoC%iuf z!bk3R`B&i$DnTi1Ej>hstqr-m!Aovl4z!bIgYjR-Wy^%Ha#);vA~0s(D<|GYwB<4B zwa?csRBh`Hv3%z`!Chd_!jwe9GjtwKK89h1qoFZZdMgNk9SSD+=p4PdvU-o&T1;ci zbhZpT0_A?GkTryX{N(!mdN3zSstLyz7uVo#ZZ$n^A?Qgl>CuwRVy9(xlh)tD2_{-SPDiy zrP*@kh7zxVWem?A&E#uv`eaV$bQ+Q|E@KRCo0&urMdzDxyZSq|JuQ8GniVH44fhdF zfXNwcd8r@kTN@}7mt1Eo%|~AMg|FaN>y>5DbM0xYHs1ks@Imgg@&QV+!9JoKhaf6!Z60ce%;t}#~`<28n-hv}oHi2)imT&|W84buX_ z;7DALY;{{f@pYkIT084{oFevRLR&uJY)8)<<`ZEqjtr8scMY=3w=O)lH~ro0Azjh? zcP$I@-!W}#U~`mnxk^oHlEva`;W zi^=37C2tIA-7(7y&p$z@A8+JqY#pVB#cmY6OYPqEw_g%6dr#1xH|yzb<6knK?a#Fx zDu-@A+eab2{(n)b0nkfnaThz!FWMPaqqvGnHWZ3GTHTqpE8MrEU6c&64yWr?$zse8 zg&&a(t7{&VSKucy6z%mlFR>u60u*OtEteGhe#NKvRyPl9?(0 zgHWhVBYR#`93rOj6&mi;TpQxt_Wk&1)G>vP;k$b5d1lhDO(0SEg}5cfmVkZ96z{=I zyDBo6MP-MCfA5~Y(_Ha_pSt5ZE5&(8RKcTS#~*Ofl~_Z=NV1QwZHIJeiE9lNA$ zf+_Vx1umK1DxmBW*McL5*jLxtICi|n9JKAIL21Y_S3bjX+oF#&u{31NBDK~Z@emI6!R?XB6t=u-VSqN3p znudl+vu|M`3FM4Vm%fXuuyvi+k;&xy;#}Qx=3UuDDBzrq%*dCuC(0fqoQj>F$LbGum_?`c-&-yK-d7w{AIPf@(2G zr~q>kvWy}fSxi!ln7(4(&_!^$Q|@Yukdbmcs)qU4_Vgo_E)er6cVdc=lgf5n+egHo zW!fx*2RLu~70nfDFJ|_Ajtj4IqMjgB54Giy1wg%SqX^dQ9dRbLy6W&wn|`xjqHahR zO_0A-OQA5G5D9aIQD%HAJKsKYoH~SwvVN}tLs99pmPQND{={WC5ZLpebYc{Z3_Q3a zm5pj50V-E9{=ivw$aXr1v3YzCxZ}L%+L6p!h_5E!`XZi#!1pY)KqlJcZK99u>O^(MVzf$hF_P+eK zB!hr}49CQ}QZw60^Kw<-Cs_uxt>rHO`EVY^SbXhDieY@K=FVXwpnU)x#u%Pg-C)I4 z<+3=;42B=#R?u7YanWS}r9HG|C$d;kvdIMzaMcF>m@qffx2OZo);BDy3ypd^CMvN8 zl7*K6gXoC(+i`3@SeyzGW$sTTYNHfW5_7TqtTn%)>ODR$6UQ-nHL}1Wo5%odgH2!8 zyBeIPt0!F8a~io*NVrs3<4Fhl!ut%F;n2K8ZIshp9bMmNF*K~~6(UO6q1AKLae*4f6@Q8Cp-{Hz+Qmc6g$rFEio)a0+*v@7w{8br{0G|e zvOm;We>1|lBc|eLgsCTfv6=8O?Z{&Dvuf5Eli5iNW9F}*2H{Rcr4PP3<)qcYO{u``sl|cVIaXDeo<%dlFPefLhNDUS*pwtYd zDNX9YM;b9@2=3e6QNH4Wz_f*_GNGO-up%-E=_|U4w71C^BIFsD=4fQG>Y48q4>yDZ zR3M;ILwy;St>9&2c;}*|6|(!+l6I+c6o2En_s)Bt-8dSy9vD;&Je+Om6ep*QjJIt#pEmP>WOu0yVuqv&&2A<6{+$R<~7>{5sx-)e0$#vYaeE;a|@5e9pQq;z-5vUG)n1N1hB|wGQDUmRE{@SR80r4 zK+WVZ5{*RWpYCcBYNdLMGt!HSK$(c}Fel+0;oyEVW$v{> z@D)!aE&js_&B&@^O5a!KHNrm!Ds#F8hFvDRp|0SWVVolPB6E(OyV|_3lfNg1It@DzzfS{`O7dX^=?~8T+lY;+S-*P)u`d0fOv%CMCQID`3575J!sN5REkMb;F zh|q+WAcT)no9Tt!wA3A2`j z3lCz6zn=?D+rFvv{vaw=i%^YLk28O5?sPI`78(UYbbf-0J)vy(1wq8HMi`#H=@!A5%HZ0rOK;M2z-W-2Qn( znR(_~S$Za-!mFV7#UECh$&dSZYQDZF!Yp)$Q)yg2q{2(Y&n_* zC|xzD$uN7%IeV8UJr!8+2Hl!Z$~gq~EF>jRU*Wna1fg4FrpFb57BzvEy<^OChHBmS z`)#OTq0clO zD3)IAdC)1aV#IQeBbC?=taVhl<181h3C37tf3XC4hl4|#?WDklD32%M85qed4k@nx zR_a^R92Af$6X^Z?$c4tr|7O|#DxeiF{peAu43oY`R+oBy4J&4niGEV>Kn{R+ml>NSeWyA^C_i`KB?vj_k@!CaW+Otv(uv`wqk)RQ>XNqra=0 zn8{{B#(-U9xnL01!|P~>z)v)3sH&p`aN?aqjpUOiy7n_euv76Vnj?uem{WM}ez{`g zDQhCFF2>=03Z-VYq9R=78Xoo}4@x#hzlbG%aeU6j9)#IjMAg*70dRgciZL>A{E~1emkHpERrk*S=WN z3AnIXNp7L;5k~wX{xj~&Y*UM#D%;8-(D2)mfqDg>;N#Rg(TU_qc0mn=7ha_NO*aT7 z%FS9BG#xr|_oUq>NbeO#e2-37B&yn-$&$ayJnC{I#F2BQ`<09+!Wh@MKFQ-Vy;u~T zcZ-(~s+g5DbRe^yD%Coucv%XN^cE7FoZ_svv%QI4KvRK!81aSnnM*#tuvE%?`Z{IB zaTLd4)_1T+$1duZdxwjJ)zdNW}PTW<}XS- z3#QIRFL1^~V0FQO<)_9JDL(2~Wp&$J3G@XU${BCzz;_!Fe*DlRWs02STtuY!m|CLp zJmotr!qft+WKkbkC03U~CKL5au3!hXDSv~rCMk1>lHgGg1`jRCY%R&8H$=sJ5YfuM z8MfJLRTycmzPFyrhya_&nX^)51g8CL`w$MUB-9$xz%E~luB-+*;be}cm!y!kv|s3| zYlMY2S%NHiC1|;ci?gd;5-9C=ss_~P2I<*k58nexG2qz9U$c0&gC=Z7tOStJmoscq zaW+eHq!ruH#xK`xc^$j~D$w*;&jau%i8a`|d_BJ4OC6iGky#@M$!>LKP>!-)IQdLy zIOFe$E{sJYt=%e_&>P-c5QytEfPdiI=5N{e6+(l}IgIu0CkbWRjS(j%w&RNJn0UhWK2(Z_bbt*i7LJbIQNy@duFCOseF)1| zUfB%E|656}!?>K#%21We;LhYbixmO^HR%QZGvTpv&~)>S=lD?lZk<(^#o^l|^^E{g zB_D2UlK5SjcRGJ6oX!S`Y`SHNufQa?V-n}Jvoi=(?su@tH6ql$Pu_X&@fzIoulMsZ;YQ%&i(uRyo}jaXechf3S>Cayi>PL^pGJ#2HV$nW-a?e>Uihho!>lJfu$z53om|Gp5|s>&l$ z$??!3ehv=1;{W_>^>($l2k6>i@?u2Y3yI@Pt72HbtZVU$FY@RnB5-*AsDHaL-r8B- zI=LtqZo&5=ugkniwQ`l=VK5P80MN8}J)vF{^V-|Ad9pirovP`&0@JGo-e8B9dpFzG zfwl9Fo|rtpr8W?ZYyZf`y?O3q=(Lj;uG5HvFPh*rtjAVoTiD7IFcJ19D)5pNCh)k; z=h(4q=tFewH`#H24d7ph_FOU(Gq)c74bjpYvt^aba8g`m@Rs{|t#+1JS+40rdr*7B zvf~R+W0HTWt^IRu&fduq8$J8Y`QwUolBaUAvU$eLT|x>oTCLM<u2a*w!WCo|`O1E!U#K2G%FAQ^ ziHBLy5`mU{wQCj%M>hry&Y0#4>v4RfB`Lu#vk9t!m@8nU2ZLkRa#e8tfKb-p=MThc zzo@uRIeF*_gJ3Q{KxiJCDUFbVzNZ6gIuumYO*;@-NaE6b{dcoy`6*Sb0DXYLgpieUIZ(TOU z;5}t5a7?hWf;|!u_chAHYx`x zB_V3)R7+|+lS;H_rYvvUTC}F!!F{s0nrd` zhVkAWp;S(SDcaFo5d9uz%1PsGi3q-hM4f(PHTq<>^TXurm#nNA87Xo9_v2z{Ix)@TfP`o^(-$xMH4@2q_C7s48{#=U^MWy?zXM+ zjj^6M_~gA0#raJX6i!O=eL&UDYmo-3WrAvkYDru(MF>%zN@Oaox6Y?qVa_1~DrMP*#h zG-lq5RQFNfZy)QcI@HU0h4sMA_MU^akG^zFFEs~>dRO{>w^|OrQ9OJ=n}A1d?Lz{v zm2pmZ)o8&VQ{$3$6*le7-*X*%?Ku^sflijz^Gft|JT5ps+oW?bb80Z7H@W$A`~ALy z^?XF(`D*d%S5TI^hwA4I47r5)Chj&@Mpidx%1;uJ3kI{-$N`OY!n&)2s-lD3(G8v! zjvL?^BXgqspGh95s{466KY-^q;aMw(v}iHn(&8OLy7i*U}O6Gax zLe@lS4b2=7Od;HjywRhO4m3DSj4Ax=BqHIp#+VsHM^zBsJ$li0IFO8yG#X5ei05ss zLt0TBFI)F$N(U8#z@(_Ml_saZFZ7z&Z~nVv+)RQX$~&ksYn5)TdW3W6Xpb}!8qXs& z6C7%UyJaV?_eJCqmp4F98P0^ZQ->^q_fzdzj&rGWkMfwb8^H!~MCNM_mUXC4%K`L82S{j&xZZy0`ViKU`4b9}zy$AL&lxm+8&-&$>{s&}M1;xls#c zU^wifIiRhecZ=hqwB?R8q+m3**@!uOQsQ@qTk}dKkqHLIR)AGTGKSqM^CyDnpFB$a zf4hqChxOzzzjbrbK*m7&qIz(t9~qhyG0Cw+4WRg!aig6ilqR#QBHQxy22nTFi91;CUI!E1Dca&XZ!a?#~ zE-V~;Q1iUz$=eS76~|m3c)f-M-PV57pzh!9*Yxl)kBz_N^z_`4sbD9OeJ=!P@vRrs(NQAs5rKrOeGYes-Ew7KnJEARS8aC4ykml-Gpew;gc zIX@Tjuwitcb{49q75v-{ggO#l0TPh>UYd8_wG2@VohP|?S!^&K1uTzK44UMEwdH7N zlRsIPo(*0_@)$+bO6I3F6~C(D{X`|eS|Y|w8uZ-otG0a*UX844**Y z8T5XEnMJeJKUk4Wb}xo+MasGl?pr|YD;Ow-Oeu$RFH^M;J_&=lANY)Rtm|C09%Tzo zwc`=yj3InRO!GG^bac5A`ASj%1}j2~jU=H#W_jj%IlH^58beT$7=$Qk#&jl~ZAjYZ zI!1*F`O87BwVj*^2E<|~5 zA~%{_2~zQKxNzcijHEav8K%f?B~TiLR9l&)p{I1BF8#I|+X~|DL8K0dhC(Ich{$6` z5KwkL;C(`T!vLn&1e!e35=nei!1d$ve&H^;lb7&s00pHHWX65GQ<`?LFkywsdG0z? zyjJ3p!)#q>`Bu;8LzlOK{s{=5JSz*6W06X0fZ3Eo@26{JjRP~G`XNK?-^29?jWI|R zIkdNRwO4DpUS}vmbQZ9Z{#%Pb*DTw{$J%JPY|wJ9FX{Sd7E0q2q*VB(=5%yhA_@f^ zFb-Eij8h63cnmEi=k2A;LP1adV`^Lnr7U#Pn0A)+pBxu!XRE=V2+Fv*^el4Trx0fm z(n56yi^)((JPphgKZe(lTPMj*Q}kHKXxIKuB6xgmoxo4W;{s&B*u4r-_NCnR2RT=5 z$V2J@`4L@--hYYXDVVkcn22Tp5H8r#caXrD^v~CIqb}O;~y|boe{tC z#O&>`rXasoUIN;qhU0!E6}WDyAn3G7jJTRqh3c>oyTLzdLpdSHM;aSVRNLI1BsfUh zJDSf<@k%avA9DsyUKVX0?!Wo@^FF4c_B{R4z4ZU+^2pg$R5?N5dtnCjy1d>d={ldn zU;fDP>Sy(f99b{lNnCuw7rg%$b)Uy{FMOu0a6j|qi5}?bd=TyYTY5G`y6nZ3d7Npy2bL(u=CF&GBi0hpue5M-$)s>k~p=^VabqAltxiunI3<_inpq zTf^@)rt>w5LAIrxQ{i7*>D7-YYfGlzDANGU>-A~gwzo@g2j3GS-{Z*H=ra6V)0gd` zo@=Vkr#zs>@K2~}&cSxnr_H;IA|oJs`Xg7z7~c15Gj&XXhw7fanz)UCj{;lYxfk=^ zt+oC$>HOCOd*(a+==_SDb~SYLCU8hgU&FXpZvv2dw8v09kN?ueTgEQ775G=`d#=!# zd%FrG^mrY^_xvTA{=IVkJ9@+*B+6dmJK@NrkgD;V-)^r!a`cbKhH^ za9Z{`o~`YscfULQy2_O0oaL<{5fixi*K=TZ0FVnhEj)T|-(H({26A@MU2c_bCRWv~ zJ52&^3>JE=*^iJB-6xN{?c2>q%`=vjy+0}0oUO-8EC)GOB>DrT zOjWJxqNz~H)IFWNkv0w8Nec9-?x8NP+ZrVEC#MbPwQ;|I#ZH^vBEKVdPC0*!!}d?J z!Ajx~f%I~OI!=Ue7Fa^HS?Q=~9aFm?`yxPCLUebAg$F-BMN$`@RusY2j<@vJ&x2|g zq0sSO2}zC#gv9V*kbFhK8)59SYo&cszRYGbmGCLL!C;O+w>?|FKg^c7unr zJaAGQZ6qG(Z-B}(X_)Y;_eYKF46rHe7xo-#TM{vcLKEg}HVuxgcb4?Q(?D!)36 za8)yG6rLgLYeWa-aXai)_7Bi3BLoNsqv^_vtnS?6DQn0?y9B~UHmy;+K#4|7j10{d zZ?gZexVdd=%P_oG4>scOrB}N@4n4?f2rV(nSse?WfKSfpn@jG+gH6SQwelO4k7zzY zxcqxqji+S2$l}PLzN4B|>CyP9ubu|B{m^^~dMG`qLJrTATR_BIXwK4|?Fl@mARr3j zD=`p3uXCL^-#i0&#P7_M`o7BQ#c2`~7F@xqrc9bAnPf>?nTfDCjdz$fciLCYnOK6d8TBFHAavGFuJL#$?=cD ze;&q74I9S|IN_)^DzXFrIs!&{iYS$5GP>98^Q)(9Gh7Lz&gXY7=(9vCRl{&mQpmcWR0-*7S1%z&w*U1#njMt-f7yDVt{Aa z4BJ5@)~On#0l!p&Hj6p+S>ZF(VX)pQ+buxX%nb2@W$NFVuSHnty8Z3 z8s*5E+|!kOMz0Oy=3hx9ScSOn@~SkmtHP;Mg~9{!^-^mSs>ZgxD)+Awl8`Ja${R%i znwrczZt@2VcIoa5MBsyR+J$Q6J$CAeS@r%g9764X)2!3(o5W$*#jRu~ky&xO-&bvHZ z=kX?8ge+brm%f5)y3cE_4);(mR(mexKk=V(dL6)O-2X8Uh@$Gb$l*I|A@2WYAQ*R` z?`+_AZq_rr2ziMxcz)HN__BWf@bt94;Pul5h~vzAz|#Mh`REvRX2N&y#u~?UAu@#s z46h2-hV}qIyIRl3_@vtU!t`%Od=J(7uX2bdzr380x1BJWwOk^9zJA*5z;&{?w(GgD z&3$IDFrMl{@z9j+e5tD0|8@6|_^di_%PtSeaQ!SwzCBUnbyVlRf9%`ag6vw3SsU)* z{lQ{a&NcBPk#CI;1#r2Mc4d>s?@#rzHSo}z*OLmg^!#P;-CfP=?INmuK-a(AALqX7 zQ`pIZ`rB+7yq*!=J9H9w=m4m%f8%O)YXtr=Jnis1Fv{lD*KvfFz{vhQtE;S@udGo} zR7c2reb)nAX7D{|Fuv`UYf?p0L??+hA$Ids53FvH|T{=$$r}kh3`6fmJZk0D) z%h3U=zqG`UiQkuTb0-0>-2uJJXrulaCp2eyl%JMTX%h+2io+jz&iN{(wGZqBJLw7mzw-6iO zmdy|MpT=65W9yT7mTL~gk|@bw)oAS#t*FB_Frj6Z-(n;BQJN{X`u($6Y>szePnIjx zoULQ}b0WI2#^3{8Gj2%sSOcY;E6rPvJjrZ?k%=c11b*TMdKEC1LOf$pV>p!H_TSU+L z(TY#Lu$4VPA-TGTVQXUt&!HwolUi@F9FmZT`JmXy?gJmaW;nOf5KUGA`1-o?x`r;pWqmPOsp!DoF5ooC>3gi!T(dwsHSPd^VM^+>w859&m^S9 z|3*MT;ZAkQ=hUN$^Bb_~UknIQ#)qL?wJKE)P*=uq9ssSEV|Hkz7cQJ9S46x4IKSBLpnk*RIctK?+bJys2?`fy{KQgM-4?MzIf(2S)^ z7yc#t7Sa3D2sr5sP|DEptO^J2k|$zIL_$`~CCOCx??-zRPlF$ou>fg{uQwJ{Tb{`O z{9;X!rB#B`4WcbcgqUD-p5Wv5{HV9B zabiq$4Xo=)%ETB;I(cPQ#u&@*oXveufaI488mbZG9Fi#(0cT~r1(dWjx;gDxUWrBs z)sW&?X1^?6y;}2VG!{*Vma;ZP9f&C|U+-9XdAT1NYrA^iLiM54$N7^ge>7P#Ry8!L z0Rxs6Bh5LrFxqeXAmxADrZ44dzVo5H>c795Km6pslAiLTJa~2^Z{0CWFS+|Ymj8F< z-7Z6aXwC?<`u2SN4?KlG`;p(`2i~#C-M;&|JnX>9b`1^ZpJ(~xd)~$S?)PZ!d+Ej7 zdt`lA9{#`*O43~RKpu6)e=B+4hXPNV{2lK){}KGoLocRNaJNT4fGc17F+LU!^O1L5 z&;6eEM80HA!`heegfIO){-2K?Azk$^yybm&;A?*W%eb@=Fb6p_5f1O)?X%P(AAjvD zc>QP3;|V|XP;OV(V13oo_=A@}p83t6;w>-!Eq?7CujWN>dmO+1f0(sn_Lfr~^Aj)R ze)FDd-~a#dOTYF8-t^)(^34zbCa&)8&9lDe!Tjz2{dRut*>6MagsEiIT`uBcz4sR7 zrgyxISO0_M0nd2`PdHy-DBo$m>}mYhXFQaA(fj$6_x%H3_VwSvcRr!v@_%>(?|$cv zTsM}D@@L=nCjRW`e-(V|lfQ@-@b&m`=db-SUi2Mzrhn6%M?Uv`TzmaMX65r+xUs}w zZ{!t!@NeAhTb|AXSK(vF?L4-4`&&NE)sKDzhh%quf9%cg;X_~YAbzA$7Sm@B^U3+Z zUB2Y0{LXhA#Qn=V_{m>;6R*9?*YedD2@D_Sb?;u|i9da4f49w0KFXV4`w{N=*l*;H zifyIXZq@E-fn}SYxrrM$8}9n7Z{P>65I*|G*YV>ocsF-{?nAihbA;HJulej!Mwg5t zG{x9G1+Xb$tM}YuTSf+nJCX={M?Sm-Ya_}U#41!%d@9X}Hp0Sk^B4Ds63ukcJDpTZ4pAi7*o?T?e?*P^vIKj8Uib zKwW~Ae?GFY)#H62*2MMY!8(_OX`{*kUMan2AE%UwKB2QhYtHEXm)DUsL+n^^RXR0b z)ZU;#%7uL#L+0!gD7W80DQJzSF%EJnNz;q|NZ`@LJYmaE*c_+Kn!cvS?hTrs2;fp8 z=uxBQnqcRQGAE21ko)p8!D8k;8HKXkCK65~e+?70N@u4uO~ZU^i>-c>G0q8UJRxAU zi+hxJ|H&0Zzty)$0Hx_>9e23nC8!L>XjGk#j;?Pqomygy9RBQ0v{RT(C-j`!yRCT4 z3En%_`y&`*S(&YpLL|E44HrYk(9-J2$W|%noTSTD9mA?JxI*MsGhNRNq*UmvS?vz6 zf7YEx*A~`y41vDy+3MFB{2Y&8f|8kBq}@xP?;P#mb7BY%Yde~@!Hu4N9I@>VnQTss zuBRWjkV*AKO^{M4vgj#R~`_JZ5t+&X?gva=-nnm@OAD^r!H2W@@W@P zhLpg?h#Ch}IJ#tMiUy2eyH!lLf=A=Bf6&hdybsvMVsu$M7SDgqzR3LRWSCO1LNJX* zRTgSW36l(*#XV?p8NXQqh)7@$D2zRar<7ct02fCxnMPSAOiuUiZ+k`NJ(hrlC9Nvn z;W}G%>d>i0XN6e=Eh$JT5_3fF(0wfcW2H3HY4P6P*jOi}c+$OyLDNZFyeOrGf244J zU+TRNQtr2Nf>Lz%_$t2ZsvqWO-t$0S@H>~FxN*n#M?UhFKjAn3^u2ueh$r_qv-!pM zT@HJ5$4Bs0SG}B{`RF6~o%^kwVw*PQ;m`gF4*&ii^E1zUB?lh;?fl~RK8VZeE@gSH zmX=8y>4!k{>m2#SdwBM@{6&?Le|qMt524E&+uYTi)dD8FHg|^S!?H-1_d6Xk^ zkc$q={_Q;%8=Pz2%yVDzFSHN-KECh%+tOUjl=Cl`a{dJu@{DhN1h4sOWLDPI2KPoWOohi|*bF-hE}ELYOCAYiRU&~%-F9EmYQ`V6mq&HG6A{&t>v zh2C|Ihb}k|jnJ*G(8BSO%+K+0K3nZzqh}*ifyTtOfB0u!f5TOL_dR!4MAHrL=ePcH!q@-TJ1rTSxp$0rxSFrM z{~@LdreE}>JofVU^4^aGzWO4|&D0dr$p8Q#07*naRPTB}|9JO%@x2FkU*XN~dOI)c z@5RqQqyoRvabPxbWMc>CZ);#{GGSFtzDt_VJr~{ofjs_B9U8dmf6@2kUVr*NK5!&+ z)%l+z^Mdm`&;bxvBukQ{u%?#2fhRdMYJt&_Z#Y7Bj&yK}nzpF!R8nn)#$qdbFl0}n z1eqY)na45vy74bwl^RvOeoh>&lLey6%k=4U2T~SqtYe4e0&u!T5-V9iin%bU$RHXK zT`T@_#@Fa$V2qwIe|m;E7Etk+!*lV)Y?wAHthNVen+C1Q0XHVUl>7={w4t#Lo$Z)5 zEBNRcU5{j47>+TMV?<>|RvHy84H{!Cotdy=S7~iWPKnX?Y>w-UsV^RAmB^EQB#L8h zi$7Xx8zd{{zDEarYHXt>aT{ZpbREw7l13e40bWn%-sA*%e}FuoWV)1;9|yF>L_a!| z3@Cbx(zH#>G_DcJ3~>%Q(aDrXy26%NB=YX?U(~t=C?QxHa!wVhS4-ckEJc1Dadh96r_~w6F}cGGdsh7ONYAWLy{-!%)(7wT2{EX_g73yZcM3cbukl zNeL1t_^m$8f9Fy`*5qVJS)n9hBoyDrlX$d+7zrt!9S_QrRMkW>M#TzN20}KZykIa1 z5!e`JC`qieJu6MmtR3jAKfda9vTIL*#7qiD3F&6CpR-_|<}eVp4&xb#vnfg6^2ttR zg=9l(C(N1^tZvA$q9pHc9a6t)sVNZ@^-?_IGVh>4>|Hn{PIn`yg-wF5J>E{tNya@w~xt4Pp^G4{;+ ztx_TO86OHesCSbxpV>PpDD4fERTYh}B>4CrRf2(xugq$)%7z!)a%^AWLE{{a2k6tYhp4+N-@g&YsNC~1Oyo!iux^99oB|OeK zSCYm=bzBr`7J*m!Hgbbr6uY$|=b~WABHL2( z%3#eQ69-4smMFT)y0;5dvTc;R&B))G6kinse~V&TUVi;7?2S@oQMv+D5-Xdt&&%SD zC_x&|DoDDMolA7MMek`Ba_nC1WIwkEr&fuDZ<$9T*y{XD;X)e7OQzs#fFYU&)9+4#FZ;rDL*a=!NRck&yrd@T3*#w$1( zvs~7$;%VRiGkn#zeUSh0gTKfN-gRGo;eN+Xwm0yJ>sPqs!UpYDIdGS!^4rgQGP?qT z(+&LN+A5Fwo?qkV?zj6L^Tw1}oU_qqf3T(8m-cgj&Q2RY#_vD(4|%7#Kfmz(58oAf zvvXz0ZF&zxpe0#VypS*$VFTH}x^~rajE2|A#AKAn$7N?Ym zS<~3h&BBF*j83U+m`+m;Bt|1MMIHj_Gl$8WTja0?=N~|~?a8HZD717429*tt0Y?u6 z(hlBB%%KF}WQE3H#bRI%z>xP92JY|z43G$5HI9-W1T2?|3KVfF)thHO*?!aMMb7qXn#l(`vBjB%x9g_AGM#jw>a18kF zB9dxvaX(1bnAp&^e-l=wE9IGVfx-98!#Yug9qGoq-^1#_YBy)oO;AM0b$6bH95b6k zLyVc#R+wmyQWtljlsE4JQHuh zy)n9sODJ{*gZG>&yk4?GCB>wfaj+}CxW*W^Dl2v?9A!vzl7y1jeGIsBZWqnP*e|}z zA!ml{nRZiVv&nL<>HC4rt#t+&h&rGv@Do!eq{^gT;B~@|V3RW)2cY715vC|j(%B2* z(z>h(G{9_|e;J<=G zfm#dm#a_iP?_FbU0V!37rQNmS?zerAa=)F!rY?I3e_wyu9@9d<#ayj$y9;M1e*=I1 zS05(ukn+8)5AgiweSimi|1a_*=Uu`xf9Q94>6iZ;-+bxyy!mDCX7UwJ;ma@HIh+SR z`LEZ~U2z2$+9@lYaN{z9c7q!ZJMtv(udjX?ugeeOSH4(d+ zZ+x1Me{5X9-7mX<2j1^IUi|Xc^ZvU&i7#36T>Ed=qp!Mxi)MG_K3Dut-t-sO^TelI zLip%AdD|x<_t-Cd+{PQ6qrCn3zrqXt$#9RyUdkt5|0ld4Ywq;0r}FqK6(4-X^LWum zXPnOsy!)+x&&{(h<@>(;LKK0&f8lfZ_Wzamf0|$Z4SxK}zvq{K@vj*!ny~SqzvV6e zDqQ~bhjE_;NEvSA@80z1yz(_~;0^zlxX-hm#n)YaA|OYzc8{;*IgkA-zV{8U;RSDd zB){~))BQkm-tn5Za?QmLW~zpf0?U2dun;m%QPNx$}R% zkgfN=i`QR!Ip26UL-@%1d9%8jpTBa)=D~lKSHAFXa8G&)PrHL!`l*RD-1os(^87#e zYyRT?kK&AYBD3x|pFn|X zV&2eD5=g_stUniiN2bWDN)Hz%VI-m!Dd3_}6$0FO*h&l5;W+{)7iq{oL}EH7e*shk zrRB7`GvxvXM$t=rryS19p)2RIxi#9LND#)7f~rrzEX@#NuIbjruTbZfPHQx6Nrz6M zfWbTZtTipOc7@iqhzO$_=*KyMf!K`Xl!!6nT?C)##tBASy0&F4A1K$V0WIa=mrHu3 z)}|Q7>!tu+N)tn13Ie?deSMx#M7 z*IOk8w)T;=4V_H(Oh(;i7gFZU>WNlTw=-ICYA{L?ROV!dU?dzT*IW>pQuS8zAr%>icrgtqao2CC^%8-LFNDCs^tw2n|O54*Khgvf5@}2-}2^1a> zl|aTlfbpWkSKiU|b9~MOf7_G*pELO|Sum<$rdQ~i3EF5zHx}E4&=XW3%P9&0l2Ee4 z9$*K1F(n};A!XSPcF9uk)+E)V_4KY*D@7*ZM#ne|q!`g!(RCdcUTisZ-T}_P@Bjx7 zuHfS)ql=(&m2g&oWRYZ@D&uU&GbE~{{Kn|n8a7yI*XY{PCj!{Ue;`IUuyPPHXtv@e z!8PEMY$*n)U_eq0#AZ%KjRt(l8YB`i1CDsN~0{Dnlfo-w3R{G4}}rC6*dXD z!qSs}hp|(iH-*AbQkRV>etV56Om3?RV|(F;>cYsD+hSk~&qzvv>`EUOPuf)N1{Q_O zGY_fC)ho8J;S|9|f969^&WV^Jkx-=GITp5--<~E6le?+8c!1vAs-{DEV*cmSN zABEAXs?X_mP?J*S-Y%Z;Gv2H0w|$Uuznz<=uX-HMe(108i{JJg{Q9BGdBl?+!k4^r zo%P)F@fW{{zq$7_`J?+xY2-=#0Pljko;i8(F#QzxIi<%5(n@*3$KF=S6S4e+Hl6{cn5~?+3v0h|8YH8cN2g4N3Y^-`kp-Fr@n>ne$?fhT+BMg!PmfEP z55I$#fB)4MU-XQ}a4-7>c*E5BeD!xfoNIpTHGJJ`M<%zwE8p^c4?Hfs=Gb=lUH`y8 zf6*ir9DnmiALg=0em&dSJAn_p{5AaUe+M@(|ML4h{&zDO#ofQ*+xX2VA7XZ& zhw+o2coYBQr=HI*=Nb2W^kez4hg1ML-oT6h%S-s5pDKrizy6kg!Cw7n{`mj=QZBgQ zp8U`=Z|0X?^m{z%2%LA9tNH$C-J454SN9n{lIIR-OpzcNg`B2*P^?C*Cc8*JGLVK1 ze{%0p2RqcE8C-e+s%udCc*(OM1$+?$ObB@-Cf#lkzk+nK30?_B6_{Qxc$S5D_VoQ^smrf^S?;P6>Sy zP&xR7a}mKHVlZam*%?b)EIvg(HFzN*I-3;16ih&I| zifcS=d%+109J_us!LT{vM~|+Fy(QS?43B9G+4P>EO<7wM4OXUTX^PLC8%ZfLf1Ax{ z+YXZtGRny4ip<{Zyl*v3K}ktGcWxl(gq3EOY)s3xbS#UYWh9gE3@9{OCgs3YSFxNj zF^$CJ5PUhbrWul(ZE4$%^Ox0y!6EgzZEV9tb;q$Nk2{PhS)RRP%y^%`s#6B|h$PSs z3nx{=! z`NY0?3t1uJ5j}$V6Yr5@pzXI15u&kY22xgV#_EPyyUL`QptQyX$I-2I2DM1@KKYB3 zbnm^#MENYT6N1@=*_`g>7LZYqkP@ynju@k88cWkmSXrHN@W70=H5jW{e_tQyhXQsh zrO>Jrixz&#KEx6ZCEKhoC1qZS-ZPFPvu=fUVO=7Ewi?mG!PP@p)8KCMgcu5=Qg4rg zV%4zCT#L6*N+tDkm!ctPv1pa(Qzo+aYg*MX)oV-(K+sf8R|eOIdR8f#3u4ev8e19j6AI8i+ZPQpE2d$SPT|(d1TL zQ`u}NL^OU3gsrhky%S;Lp}CcExLgf1w;$#cKm3cJy`2+h&NX?wctDqNXG$S5L~>5c zfU!lY_f9Jlr4(A{wPlf&tb zU?!;M04It)HOkUe>k`?~_a%_11Sgg1N)3CIKoWz>sotOCJGAWoicQgCZdOasaW??D z_^;NQ#@cG{5KE}eK1lg_-6ZF{&r|z%YVUaG`*`pJ?)~}u0sLR{!%uxHk9he{@Wk2v z{oHTIFLmSKv0ZZ(f7jQT!WWB5<)=T8@$jrsK*?|dIu-E?HTZ|07)K9p^eQOMMyre~H!o@0WT z$RUAGNTZ?A&@^Bhq|vB}MOG)stVNopFaURrf=H?XAt46>e~yqHNdj566B8wugNYW6 z#-MXU4kN+Oi8>RloU@932#L{0LOt~6V_1}v*3vcR1c}p&*U0#g$fHBt$lB}>YpWM* z9|B?tn#r^%)fVtD2Il<+nSgCoJ)jhJOv;JiGa-P{4O%rQrOTgcP+0tril<+Qju2f* ztOX|R3e#?de;6Ync(%e3hPZ*)NLD5Fc^o}k^ASVCYIA^g*s*bBq~(*5quN&m)_ge;%VdjGin%OVhMiTf%yB&Wz5L z!+7->ODQp%PFY=DEB)g=&JB3)x9{5?*XGhdAGZnvnLwvjn5hHhKuZbhNI4MlNF-Em zSA$k98L6!0KqQtsmJ{p45svgX)7g&BcC0mrSZxk6o0g!Woo!=tof{6{Kr#dEY6-xY z_r8F@f1Y6GWCxYg)$mt^zxw+Da`i;8;(7g zyD?@$NSHXKNvotGlZH|dOgYg{HW-_&Te11fWIsR*pfo6hXu~P1H^)r&sVW#^Ow|@- zdyZUy+gn$2sBM|nuzV;mH?V#lyey{(QwgK)JoI**MH+FS`#X+bq)BqjUU}hnbWEzQ09GMZqo(z>LLwbGO71<< zS<+gEy7&N+SJ5+p#w=L_MHaJ=aAyn&mkV$jfVd+vwg6d)R6Q$og5WlBfBj*k?a+4h zoM4m-A4=!Lacr4|_)OJ<@oBwY7>NDNq^8@we>Mt|;Ku+_VVedqnuHk5e?Au0QHTK_9DV3hKEn|+jJP>oJo@0fkmU1AZf3dJsB^4i7F%_sz z_~h_;#ET>5K+2IZ4UjUD1d|J}FzHIV`*8{CsxV|^iA(K}(@KQ64aji1<6vjde9lWS zDa3S(S!rjhb=J{Y$7-0fHFhWxz3T``lNQqVD7a+t$ubWUHvOdbNn)nram-vv2^|t@ zn4|h5Cm#-fju^$CsPC=f8`=KPcgGHU8M;vX}x$s zCh-^qtJK03px84gwPd-4GC0cpR|=yIS{Jr`&IK@A7O!FfB$d*bT7*&>8qvj4BUM&h zE+C~%9i5&qo30Riz&lrha^fa!)6(dcF}mY|(r#;zXy?CG)|hOuGNF?Rvv!3^JHc98 z!f7%%?-+)Ge_@={k3BB;_&ktwDT-NbYJiYHD&pE*88bVlo-B~`4iLWv>7*L=wnuPt zObHhw#E7kcx3Y>95)y9xM4UxMU|{f@B~W9!~j3xX$SUyG^{v?q&#XtwvuRpzZ!VP%ePlVKQHSy`do z5k9AlF8-M*)?Y2_wo+1vn>zw5wNj<1ss#3(DfdCj{kGrs+kQJYt>vo6KZ{@8?}*(S zjssWmf9&tPZC-0~^+Wi{tM~i#giR^b>J&L|MxGC(qdhXQNV~nf7B9j?A3ZJvf~!nC zirh^ZVYQiZpq(O0$VQ=N4Y@T1XcHkH-Xb3v$VMa623hNnl?hBb#OS5TyP&WX@F`%4 z*;UWVP(2HC1w%YBI8yAFX_n^%K+ii5+IwtDe`>m`J_EKw&WRj+Ie6}IDkw}hPfP)$ zEz{|g5IrF{e2f*CGKjKFTEncf7-Jx3hGD=5M-pFB)MN2Bw3TtAMK3{29~@x}41SKw zb25I_DJyDL1ADex@`>y-t+q6_L2JEaE*6%=se*GdDfYy$iB=trZT3v|7SSLLT7xy) zKuqzc(^aY*8HOHf%Y7*cwssks(=??R=AC0}W3x)+PtNpIqG)tmWRS_#^zXRzXiH>b z&NzGt5x`+oL#rkz5uy|ZX3h)lYr+`Ke`HcXg;q^yO@}e21l8nJfR%+$T2|<+k!(;o z){??Ptyso@t>gMk$JS0@a^WHPxzlz7Y(@p9&A_4QIszOWR#+cqq*T4fSa?+mE;bzL zS5YJy?NQ3@dIrttXgBBR@$`dVv~zUpn~W<{qM4rj44Va=EUlTc+O5#Fh1E0of1dU6 zW`?wN8bt%y@eF2K<5-<+!3bM^x+{G)iKY(|w%m-hNsp31h$a48ltQ0@lyMwAH+*)J zjiYnsTLa|GY&PS-+A2yxH))uzv}hCYek6+qZBH)#qq-~e;SlDeBf@Mt zLyIQ3KyaQIBFZS%R@Vr5f{P8*nR}fd*_>|>bEIurW_E_w2A_`*cO(ek_QOI@ zSuivhv9!&kvM1Z(J83K;3gV&^lwH(RI6f~r9ef?$23?L8?9N!scUsN7j$2s$HlQEA3sex%K6$V-b zCA(JddbgAmN)nz$f^#HzN3O-3yo987Ufb?xe>RcvsTf>{D!^(^3p)TsW19lp>x5Th zVQ1!B*Gq^3r3-_1n|6MSUP|dw7z#chs(2VKq}vN7VM&Xw>WI7>AXK;1kFpXFbIK$S zu`jP}8bLKu7|3$Un#NfMDFs2(=!S`zF4u4uJuW$hI1-X0kq}WBRlszG&ZE>xw*+rH{Z-f7hSY0 zl9n~HuJ23h1wm_5zo*H$0MH8?9Tz-DjviriV*~Wc{_$lWq}*@&ZNKfe{kGq}5b?>v zAV3RhW>70FdZj~FJ6J1{<2(kinxrzDe`C*l7#V%>!ZMAfF&1qKASp_i+7s_oMF~ta z(o_R3t;mCi{wVpHqvY0*XASz`3Ub~`0ZvV+Qj4@G3=vO|vHYDpDU5`nN0dT!Q^Yps zNa|f>&uRC8Z^0l_dRyXm%8hkRMpm*1r!Z4}k^%!GA$o?*bsF8VGCP1Z9h0tGe;$4p zX_7G|`o1SdM~t4V0=BIoL^*=ZKqM+hpADlo5Gw0J0?B$Z0Yxfuxn0jpI*#qBwWe(w zq;A$@4L{IUV~r_{rrI~R(P?D)m&8nDWGk*Sp`()tF&5dW#b6tYH4REBy!UwLDtK&8 z5#pcY<;3Ut6&soZC9AKD_CQR zA>v0zjFHybodCFDU~Gp5Mxa+{(P{S-_5ABIxuT{e?-Bw8Mto! z5QjGp6bP~)B!x|xEG`&Q7EH=aQo?49K_hwH?nR`!fAU0p#d%`o%~ zVa|{@s~v_WT6@y;`I4?|nAj;@JH=>2Oo7d<4SGK(N>~PHoz^g1hSFx#jsP9m**8+; z)mm$;)mWn{xLQ1YL19jVf32n$$N!XR8q4i2J;=cWQzl)DwS~1_7)QnHQ7LtXY3Ij& zHbE<3l1Rog_v<*{&~;PnWJ>e_+Z0x`)BqQ)6|HF*!<=!wN1BW@#j8@AZO|;MQ)4%} zCNPiQ5mUtI5^P5RR=Shlc39kB=t+UwSp;+T+8q^!u^6UL)N z-5|ygb0)-XYY!s|v*T$@K*$iQM>4S_QA<*o#xk8u(PBz*4~JJhDTP}PQkoV~rT~?v zYs7jBnl_rY`W0kye_{Q`fU#!Dz+8Z_XFSa%$N}P5WZp^@k4e=EVn0`A<3!4yO}~MQ z^$V`GDhF1na2?sx^%BGBjtB7p-3)@Z8wL04O% zlyfOq#7vA1qsv}nxjzww2JUd#WgI&15a%B{L}P3zDDL#2e-#B3)quoMg1(f{G;Iyy zQiQs1xaQNJ=EfUuMCgq(cx>zOb8xvnXFvtcTretkYgmsDFnQC#59t!$5=3$MLY_N=*R6rL`r+ zI>w0i4j)1VAcRvpj%Ad}XuY?kVv&Ru?EY zkn6!(8$;8!C{ zh$y;4htS3lHaE!Q5nOHv*`3aCL9)iGhDkG}f3qEk;DTd5ZZW2wB#B!BVeRq-T=vNl zqg)nGmeR%Q`<55U%4&yS?nz!>E1@xl++-T7DrOh)E-~(62PUj-38IRR>9KyarwhO; z&}{}C@gWdnpiwQxSTYJ-!BLUQbTutv6)9xAk7OmFLVBtn4#sEGh-vRt9CmIZf?86-XH~#LzR)9|K&za4p-1*8om;OtMF%0-P76!5iB8C)mDIz(C^PUtEL<&f0TPBkU)9G}%e<$p^ z76BS-tHq4qoM&@ulMq7js|^w7eD(Jg+P0%@C+MyPCCuk@Zo26(*I$1<*IjqrK1jI_ zQtr3?w%_*Ke%o(fpe<$c5K%LYUhT-v5k7J)d3{b=pCheB+Jep~rC8~vOq#BM6e3Hu zpi!923(rFi&X$0l$%R#^X^Ao}eFztR zmS?@&s?2-gmACWUqC{bJsgir2P^z*d&%l!}dCGEQDIvTZ#wswzaA>hM^_Yvnc(j_KU zdbseK-2KScL|i=A1qub*vlT{*%BT7$>4uud? zV4gRTDiw_>5D6GltQd4ne;wAMA!}0B5ERKNTGKFTCTL?&+5nl+jcoRt^uwGKGFCUc zK2u4R)dUnVZF{DfGhh-g##D?&3YtF0!f{Ubc)Tk#L^4K2TI-oKBV%mvm9@1PV<{_! z(BklrJj%8hJ0sRW7f~6bBRWR3ci5bZ1;;HMbAqCwrBhQT-4tUif8G}WX`Z%l*&P?+ zbEcTa$w17V>}Mqfsk36xQfKg-mTcp_UONI}H0PZ^wy5-|Tj`{oZVMgFpT5=`DGuZ+;97BzwNjEw%@*hK}r|MMu7|DF_PB@^61OP zP60LWMv2hcvygHxQrM4XM<~v{?6IxJwku1y+-`6!;rxhm zg$dC%+j2Us_45Aiy7me(6scGwDsr-%6Db#Kg{&e;d7?P7IE0AF ziX@qo;!>KPRVvI3T}}F>NV#LwOBSWh2CXXSe_&b`18MXlgX`HG)*0M@$t_kldjJY7 zrE3K&S;%cqAD|2&Rf%`H^~tkrdvz*N)vL3dRu^)=h2(GXvr4vqewk37ixf5Ie3}fZ zZQsela!a(vF|`A+GA98f7nyxTGlmu?fh?fJpu~dY0*I($wV=u9lrTym#w@{Ksa}fQQaZm^L$->a9AAJ-wgf8HsW>{6F*YIE^TbROxvVbd^aL zwo|A;W!?+2LutjzYKxm&t{XfLH_!^_e^raB804SmlGq##Nv~iVlL^xl53%8=Uhz%#Bwcg zDO?ETkkHB$*7f4&YFfF{niPu{VajQ{5S7y@XV`_eUKtN{b`@R6#UdC)VZ>l)X;edF zOAwB+W|<@%Q^19RVI1gP&lm<=9Ei#jl|KPHvfQ%;Ta;=Va-tO}#Z2^(G!Dhve{Z^i zn3kP%zRds6-n%x*aa?Jd&+%JCWM);N0FWRlN~3Pgs%Ons+yDO;?C!_4v7YVe8Pn)a ziX>2|OJ-dBa`uCJW>o;t~@>~=f;_{Tr8*=$&?*L92=Pf@{;>$6ST z8dOd7WNyRt=6cJE7cV$JKWCX|y1oNdE-o(k;>$1i{AZun@Hth+amSzkfAlA&Y2=en zKcnx5>h-J;W8&iF1u-tH)@#=54XUkkM}L@Ss_@*0GLttiQ?9qLh@->s;Hs zgN5J_Z;(s@q-7?lLdj@cu&SKcz|f!3hrWiR z7>jL+6>4KH_JQ^4J~8(GX1j(hINgJ+_gAcG19Msm{0QsheOOZc`>=hk*PDHNvLi@G zX9tFUMISoivM??aF(pz;x2f@BS_|s850(#4KuU>{b8Yc@P3{G$_K<9lFf0O{Z6y_L7uc(s07o-%6GlAaqghSeVVaXFqo>|IL;T=^;)0qyx zhqP^MOlilIYS7gFYu^WKp%83UQck63$_-G}{%10dDfTQjqg|=?2|3sK%^OG!!yCal z3*IB4rOS(8y~7rJ2w^c8I@>Y$0igy+jj8$oYAHDJtojY>e{O>n%N%F6^9@tnwbonZ z2fwNHVSpU0hoaKHkWe2fCX*FxYLmzw5nNQVqQ+v!d-x!dR)D=y5J?|%2c z7^jh3e+t((HyCT1XYD@B@AhE3l*}@Xc<1=+)6aPN^dr{mHOsOv?sok4fBlv}{rS&) z_Sxrz5cu@d&rpSN9GRD6y7v)M9_v`gI@Ym{^>+#=5s+Y^R3)EL+n}U*jm+&AR=H$$ zabd}cv`>$uslSY+4}syG6_>j2M!VhE?_0pFe?eo0C0Au{@xN?Y6J9u-N^gKEnZ!6dE8%B3J#5v^&Xd&P?P7H=W+ zYeE>Bs^#^qn|((@AWeI!QfefQ$~(8O-EQn?Auqgj18l8nfiUk+j`zx%+R|^a#vRmQ ze|u@H8eHe-x~>6o4&X26 zTt~RxDl6XwQWmYiJLUSP{DA5ZYixZ_OJ<2%N?cGBx9$n9Bk3)8v|{lR&@r+dudvSJ zLkBkFjBUQ4<^Jb&XFjO6#r^OsX=aSZfNcrRhn8o({d7bEB26uBEo$t+$8kTMf88p% z3@JrkeD!Bk3%2V(GEVGa8)Oh{QA%7$Q8BKz=!=@_Md=5;^Q4@ZxVvj`cXxLf+=B-lELd=N_u%d@xXa)KznpXbZ>{sX-+Om;b#>KOIos|9 z--k^GPcvwKpLA{HgZtOf_HVG8^uM#63yCwTo6Rh*7DfI*Zt`J|I=@%J<69mt36Kf! z(G1R$2i1%xCb4CPVKcVYTgh;o@4^KGt5wJpB7>4LO#tTduzXoQ%G)SInrJ=#Cw0B# zgQCCbPwR(EO$O8l8DUf?XsB$zTK9Q}+*oYxu9N3rs#dwSru&Y}!6}(;l$Y#Z68qfE zRY1uWPu7|M?Bm>rwgz^cxYrhhCU+|A;h31zyHZYkwZ8%+O!U&{`jVs$>I%|Sl1x@4P7m-1uKITFwWPjvzMD(g^Y~e)R#CUH$?!7S^sT<#ub$SNrzi__x441?oO}+5ZEtFXu zXe5>tH`S3gVOCKg?*&^F`8{H8FsB;|h_#_;@K07d9RMZHDb=2a|bj}25AkIbW0v+ikfjqrcg(M_W>Zeqt@g)h(_Lqp>Xlwg5q4A3z6Xi-o zaWRKCJxJ5zYPpoZQ{}?#1l~GtOzq}`kYl$qiksW_ErkfKZ7`{7%SOU*lGBdOkqDjq zoVYBK#0|wCF)*|uIA9sWt)jh$OFtR(VJmM6dp4>fYuvmBoP7|Wa2vmI2}C+j$g4{v zT@wyW?PH(7uQ#eR$JcPvSAZzc)os{o@5np5^Mhe}>7RTMTM?-c#F18Z2H9?*^^a_h zFz*CG2T|uOwg_#-y~trd63vd5IFPq4U`w&7hQyO%Lm$=#mNXva<@e$6_B94;O+6n$ z8(dQv4$J_cq}P4#lDFN4#SswLt5*Dm8o|O zU>n7<4}Jni0UcHv$=pKfv4!0GEy8PoD+u9BX&^4Jv~0tA1!H2J&;&x(at2xRxt&|h zSo8a#Q(lpns<$az&Adu{SU|G7Z8VAdCpy# zWe36I(;fNl1n5oSTBwcwB1K{_pB$T1=9 zqVM#}qDOCn3q?2LQUh!Z&*$t4_@V=c;6!nc$5>xlcsaNx~9ToVQy*h>Sb3P0JV5s z1)q-DdK|LdB+1Zi-V}r3&KDf8d$>VpxBl_&so16{x%KzxM_8u36+EuY#6+F({{x>l z%TyX+GYx*g{rapuqt*$$j;{QasHaYu?F@1g=xxjVgWxt-RVG zAQja2?y|4oue}`VMR_XzSniWGS+p!wC*hWCHVcqB}IEaV?*cYv|>kGx<0K3%3 zwvJ)ly6_94OaTBlGTYf>!4N2vfbeU`{ z287@1a#FP|C*?%4fAL!p*V*>zP)#K9MHq-}?0Z3(*I~`jOc<()@r>vwQf8)&%xz!jzMPZ6P7vTE1v%1Y8Pn-!){b1}qbIr`yk`o5~niY^6I_ORa$ z7HvZtEj7ybLq84VeRI)E_v9L1BdXvibS`AHjn!zZ`<;MfofFwkGUgQmKo2KPTlCs9 zAdk%V*~wQoFFf~^))f-jZt|BY>CBd^?C-e zo7WZkf9R?hyk}nb`JXnZvl5#&@O3dgo@IgN%H?Pz+{J#T9mJ zRZ7_XvC#%BcfMCIvU6Do|DTqiRXaAXwG22A{si%D%)AhicRIPEUT;;>RgPNkEVoxb zjsnhWY^(g0v)k=3Y9#)2nS~m8|9vh6X{^D?y>2kvc*aeC%YlU*rdj4}E>m<#KS6l~+0wtSUj8lQzzd@h^R>V=r1zey#K z?lN@}l+m1|&~fHBO?LWn*iL3pQB|~wNdp)4zuEolCF_tWA60B9{bnDQ*z4Aqy$0Ly zuuxU#y|Z74olRFnAEzpVqkNF*lq37?pr{O`RD`=tDLm~t!qamhX`#His3S{P!o2AI zu3pL4aY{u?rR*WQwCsJ+4r-{WcGk~a&R!`_$Jj;&iE0?y&OQ`-FpwMc#Yc7Fp%>`+ zhh8pcrHIHvvd$X(r>Q9~xzR(&kBb=AS@I@0T|r#|7~wu_0MJfqBG0r6>qMP$$cKmgq z;qa^fxmDvq=uDdKe~Wl+Kf`wnksZfvG{u@?SX|I~4=gGx9TdMv<7Y>byi)v6<9g69{iPQubO!}9az)-ucc{`AYw+G`HH5y z3LxRJ`;kSZ^;`p&2}s@I@^W7I)@dd$gDoJ^INf^jQ~9E#%sOwP!prYcPhY>55ve89;-#s{b7$DZ!VQ&D&rFVq12F6YQ2r3!;q&`z%|(2C>WeL@jHCo5`gara zi0+*aOnD_AnZzSCf&#lUBi`!1>^S?R$~Ggk$L@Cr&3=+}3;>RORqrLEObDxkTzC>1 zX`(f;%o<5C7dMejg5sz=S6ZQYAMa+;MAkcfLz8AqniM-MmU_wn9WC8A=Al^~$^9Ot z)Gujk!3!ju{y&*$kh3@@(QdmaTcwjSSL4+QibmX?19(d99=2UM7#%iCSHfX8yB$5X?c8=?2-+{cA#q5Z2l8hL!d&=}o)IVW95f>KyU~7 zins^Ct^loA{jy>HAEMEqQBrbTQw@~JB9r9-H29^PAJR*m+!i9|P(doH|FA$opl$O-9d zR?9*qOsw+v6bZWIuZpY;=$nC8n*yK?n4`&m9!@69TvzzE2t(IK>=d3Z-o4_#F!{-MIHmbr3tItZfwV{`}7$`llnme|J?3JNENo)muy7rlW+1?+>dq%fEs|6>ScSgoC6RpZktgj zb%AhnFnanNKZ`1LC|ku!gF;yED&nVVSBpjitTy2#cQ_ceSfrv9Xl!;gT84e6Dg0Qq z{foMB+Au}fSb&>x524g0Nf`1+S=mY6+YdK3Zmyk(XuD7p5io_}+df;wE=VEW%a%M@ zE;!;pabzvXKm${n<<3(u+s{+a-9p@8EZ2%xq-}-LxWHl@TJ)OT%CAm=*B9gn@^+v!`9rtlDa^Qiek3w@_pjoFbBrjOtzvphk$#0v_7RJ5AnR{GI2YihCJY zkBY~ur+FB8wU6{-A-3fC2SaTx$9KD;~XYoC7dbh&h9KRgTkNF#JVx z;fm{{QlAbOVqNhMX^Wc3Q1gfRwoi6==I-0*ts2YfsK5WvNFjFUm7fWbbt0AW@EKg3 zK!(pZG&LDmy1FJ+E`&iYpmTL?q&ys-izlleN77u<^>e~E)iOCav7ol>ZSQf&h@w-6 zw?9LB!{6|YE2G!YNl(E@B3iLF&LL4j=26$OuN-U-v?d**({NnDM2b4$A+VcTc>>f= zrqS@gQUZ%_pnGA|jJ0uHWcHG5mKCB3LDE!-+R}9mpIYW)Meb)={p|^y9aXz>rDA(K zWOyE@F@tP4wo6k#N#GoglT_>aKQBAQu_9|R>{U%}6yMK@VbuA6^quQ?O*!mXO`@E) z4-TTU_M>^?jT)j!>{YQP>9HAM3(lk7;tVDgIDrNQ8*)LAt20I!IvK|h2Ri{fPLEBT zg61X7GGHO0ayf^d3=tFHS-BXt*X{$$U5&lQL(ws1pI;3Xw2C_C2aDPwFRJfX+89Tb zmWGxyjj}7y${u~D$--JJcfT8-$Z!Tp1Hkk;n{I&pje}I^9`;6EGl;8y1!W=sBH#Qj z@J6-k-!+lo>)!E|3GsjDSu{06zekk#DJ7wQkQqICd=Tzv3#%YNFPCtXIzjWz>7;xR zv+Db{P2W#~xmK~5#byX&Q4_;?Y7;AG1f-KFg;HahCtr1dpU^;6t&DaYfdk2#Pc`_r zSSyGBdtl6I8L6*V?hhz6Tj_>p&Rw9t-AKE={7#*D$IIvVKBxQs?tqjcM#eT`o!g5L zE~+8X@u+mRa5cr22L{FDdcF^+E70i$ho#H9bvHoQ!gAqoz_iA~iKfF|o;ucbC5z_|C!&IeLogf?!~L&;mCdH9$t!n}G6~ zgZ%7ggD5jlft7I_n`;h+ZFz~ACXjhr?I#X1-U2M4V=_9st^dT$_*T_|69G8!P+UukVjdN}TZXY~J_@gc1X&pw6 z4cza;l#u!N9o$j|S5_{!r%gTX0N=PO(74HJ@=Jtxc3);p0E)5^shk^XTBurNOK-zcNZ{A-|LeCU2S8n1Hm274V}Q01h)39k9p($I4!r1h~}EC zt0K@PdR*1S08s*{pwOv^G{!$O@)Qx4Qax#`0gnrR#}@a&y>+@>csJ{{9gm(# zA^bcR#plu>N@pEuIkTLwJBx{tM}l_iVTV;00rdpt&Uswd$}XQ;#sNJvLS)!e;v^I* zBuN;WRB-NWJJwS`50BJjhIbCZaH2JVZFHwLEwlPa9vyJOaqjGu0s=1G44C4zJq~Vn zwQ?pC@46%8l-Ms%bb?%WF2Yqj)U3|$7OT9Y<4J$)nX~z}Z}&jV6?8>DL0ug_y_|;i z=?JGxLv1I+M`fK*+KG(mCUn%@&mBdpd$CUfOQZ>^_G_LYMtnSZ99!46G0}q4yW8x6St_$4^qq-v4dC zLg;xf=a9Dnq4$F&GF18E;K{_K2U$d_@DpIv5=*K%{hug~o*}|$99c*FDUzL(fT)%V zY0Wj#&9+8%*jk-VCez~eacTO$Td3y^n8cu49MMUFY_@$H(I>uWS<1g#<)T}s4ACB! z)`nD)WG%8cW_t!kan?3@ZC>JE9Bs4AQm-$fk!(1BsF_Ex-MIa9C0PuEJn%qN3rc}D z>C$$A*Z1z{6lRk?$|}EQWy56V1Yq_f!ent&V2=@shsXFj9*S9&D@#`=c{+XWkQt2e6|d0zV2e^XbvA3B$p75F|5#PNw?6IR!oh?Y?1TSaB*kR}()O6R}u8o_)aU@X~5BjIFD!a>GHOf}F6c9JyP zICj1U7Xt8)UjrpRxt{GKZmfj#UERB?gX(X~bLOz7c4^4w?q~++)E727k+g(uqboj) zz=fVbAS}c8N6*-c%mr@s0y&$kd=7WhQxIiKjyfCC>a(Kq@5#4^835p=AdK9M+aup9gzjoKi~4 zs#`?|YPrzuy*M#E=%QubcO~DSkB)e@hHsufja6>uUhv_3mSlYOk-%Hj+ST6a`}i!_ z3~SS)DoRQ1tdVqVf!oG5h%m;i3>~%dbp?J|-okVo+JbRbpkCeq&q$QbNB_LyW(rtO`h)X-gd)Ee@wGKAfSnbKE!oMhN0_`L~ag zX~qFN%myxxJJEPkEdSo$_BY}6U-b^H4|Xk;RzMYyS9&sj;Oq3Rj&x?Ek%EBTS^I^E zT*el3`2r$@`0EzP9N%Y>EEh1L6qi-_pLX3oZ_&Av3%s#?`&Yv9_)*Vp9pwMr?%oNU zUOm#izhoKKYgY@7v;6&-`AdAuZp^#gA< zJ0ZkZi~_HiN1fZdq|7pp(;Xb)@!QUsX9vF65@@doCJ;WSFxRso^ned?Cbq?oPzP&r z;mi$i8`K!&))6Xheo8@-(-Rix^u%|*yRrQ=;~W3bT)FeC!StWSFXBX4c{u|!i=jr5 zAw1KO6!`Ne8&;)g4r8vORj@V=Zd0SiDj|BZ%U$MpE3E#2bQ}WHovR|^VmmCIuSU5$ zkfho1ha^NS$iSd$&!^*CMC1+11%c93W+4)iDT!sZ*9)F{YKnG%8BSzmZv@UFoHEsL zq*ZT20*dTVgF*pY&in2oZ2f zRAoshvAR2;7Xo~aSgp!d5m-kEiWl-8rO6fCJ(g1Pe%hl<#r^?v6Crdnag+9PH&%TG zt~aRE%B}dfXF0{KpG$fmgpq&Bt8vN!e(ncdfJ{3LnxRLRSp1gUK{=rLeuYvE*z)|t z#*;>PFztKs3^zi&yYh(82_P`ujrM!kBvIt zP`JU}?UgS9iA?b|pvi=Mhq&X`*VoZSjW{aGp00m6t2P7!?4j^hdkzJ89_~*Oc|>BP zs3bp(;x;CAL^mf00)`lJ;=f^tTe)#5 zv45J4h}+>?eX(^P3dMRGU+<+dne2o^Fa*4P$tvLlQm9-}~O!C6Mq>F1Z=68F&&?Qqh-`vprQ=%JZeN zCy$CQ%CjdD(|0780E$EpDb(PTT+C#35B#7xO)9!@8{FT$)sxRQE$^37MJs?v2m^@N z5#OfD)~26VPjYw0`N1`ey0IAuq{Is+Jp{wkmCJ6nAg@>*kABf{0){Hs>9e_GGT;g0 zG6QWIg8on$2$^93&DR?2eD%nsQiPq#Z(6atXV!oCVZK>XQc{>iOFO9*e207*bY~$U zq?P1=@k5c5asM1cI$<^@iageTm1m9(fZ!`NaCG^g7co^?}y(i-jChRY$ zmwGwi>h9H%+kCJ`A;2gVtP^@(0Ztt~=fvmus|{xa-vlY;_z$hD@Mv-kr$heJasMNn z`lw1sWnC~w`W83wP9`E$Blh30gg_X#vdX1QObMjg5XLYS%oTX%{nh9v`xqxmX+x2~ z@zP>{mexK6+lyur0ufFUm(>D1KDYLU>UL<~X+*l=P*~{Kh&AZ>o_L@r{bQql!taQ0 z7L>TQBoc_)DebS>AJQUg$)8CPE?d~eMZ6vXgRJnir-a0Z(G1e4a4hm zH{=WPFWz02SfL=|d-558^=h&m{$iHTO8eTKpc6|VBgsmRzypVZu9|AsMQ7z_MIRII z)faNvmT-?h!f*|9lMYD6JjVR|6{0cL;GU#P(oLo%AU$TP3*{1YJY+@zvP`c_l_x=R z?f0I;5%>}Rx?pUW+?Z>Rzgy#~)W@R#*{1iR*2j?36gcG9vP_r^@sTcVbnZqq?z8Dn zRtk`L9CLiU{s;gl1TiD`w@q#b;!>6Tomg=FkaUy~zG30T-t4uo+E*V}Cb2h}B2RmG z64Y{EebfG1RFhIhj%CXV&ToQsrqcgw(|XvwRxCJEHq^d?LpzGDahrv@tEXV#*bRBz z3O32!Hd_{^k8N))`=J>$HxZuu{<6|pt;EA2QOfh_H5XVnFmII6=~qjCOX=KPv$0Wg z!danNvgL4yi1D$ZhzeVTQoAQ4+jT@k;u*D=_px7Hg&qpO5GN?*Z) zLZfvR$qSV4HpM&S#8ca}vrhCvBZ*7E%EXOitMmENe{7#VVXM?{`f8S-!cceyny&WI zIK?3YUjOKX5PK0To}EX_;+d=%11c8d4DAHVx!8=H@KLHOeeZ*GrgHrIhCLTQnIO}Y z(15bD6Xi^_an;y#5Qk{L=EMuVMaJj)&ojodSpm;yy*~s~!vE5MuNzll{Qsk>=#usE z3=C>UC~7{Z^N|L_5_~~`Wva56Bcw;yCQicMkZgdf-Dqz_(hjMB9xtW#Aqtu#!S%u< z)T4*#%$Rl#O3$l*2!IVKw@HbCi7j$FpwW6-;*`he%^-aGTKw5iUVT;l?+@U#UZ!Q5 zgu3#^GyJ0Fd93L^oQI6IteIlssrNUph-TFOb{cg&raeqLAEXQVj&_)w)lZ^yI%4vp z+4GAKZAnHAJ#{A=2cnI3`)gPR(uiT)h{$|TqVR=i=38X{J1h1k>h{HNtF4XPODH=V zwzZmd7siRMsa@5T<v9#rG7u_<%|>=+XNQZZYr}|McZ56$y)zsQ)K#@!oU1eOyY&Gr)Q1czDnGXa=67e zLf+Fd!$XqX@uh90FwhM@n*x?xG$SDCT66?~Ayq2NRqv1e&g7R0HFeUT!q)}%%Ilnn^SJ$TAn)6`#68|9bFA(wjz0d81+%QCplH|Z57+aFbw&#%+d$6lX zLbnKoE{+CLRSDgyWz&AJ`A5_v{u7kt28EVXqfuuO#K+Hx(OV)K>88W<__Q~&KBr3; zBXfU%e`7-1^ezQg;#Hiy-@M-OkimV05W8e{%1py*| z*CdIKH0WW*wFOk@iLQonSX~spUxds`tM>|eMOrfMoKT<}f7)DtUTPnGhaM0L9?iv8 zNzxvbSG;p%Xo5XA@BK!h8`3`4s>0V@jtCPCLO4`>)xB} zUaUcgvH2~JprT*Xjf9BFFx|ddE1-n#y0M%In+$@|oa=IrMt4nSyr9srWrEOyw!bIw zg$;K}biefwk^1wssb)%L+t>W2%EVQLDUUEyTPWkkiR7u@ldowevb1Cz()}&@jp(<9 zG>}b8f{~k1gXzJO?}1Ce_xeFy+N%7iwM|@hX4!oY(I-0x=jPaOep{ z^Q$(c_D%0iU6Ugbh}%co_$p7dh6L&G;YCW(1xSIDQm4PD}lGOqy7J60OOc= zvdlOaJf6xDpF`2TZjUh1mNd@{)PyRmY@K2f2?y$wnDJC~Lu2SOu_TaD9r{Z$GkHRL zY#Ie$x|W7-?d9G@I93c!+2hWJNL*tVfH9$fzP8O8(#6|XVfby4qOx3SV1={%Zk%@p zd{;rU{>BTAs_GyI@DiQcK2HVGWe5npgO%|9fR7mt4(NaiY|-wo6Ku(;e5Op$2xOo0 z4HHexzz)3{1ZE(QJ@ekMK$HN-B&Wa>4>G%NvQDxPq{$@3~z*5WQ8$R5S z2)(py`WA*Iq}iA2h-C=4)gBk%-*<9`usb2=z--vCv`)5lQ5gnBJcXsLIkT;hdDBM4}TB`!W*^QM*| z_l@DJ4V{BmM9q!w80L@FsMUe`y_jp%m`7F5n1TMexY=H?Ejt@n;pb_7_p#ED=m|a1 z&qyUKQ%`EzBBV+emc7fPWX1sW`84)viNz+8aOn+?aeCk!^80u9wJYlmnpQ->2~up% z9(0mf_>|neE7ZSb_j)-BmQG<`EW2Iqdhp^+f7ROkAP|lI@?fPUHpC)Vp^ppF6?b~9 z<-hHb_NwPoFFyl)mQ`P^PL0hL{UDE;xs|xJ`J@_x!odpdlBI?H4`jysN?+(2%P5m2 zO*kV$)G2XPd>sF_86w&0lbyYGsIxBf;yN|%^J%UTs-d2CK7n@8gBuN}&XyPek}lfH zQIXi4So_raz1v=NJE?LD8aJ#=sfJAH;IUJY0NA zyhoZaK_U1%n;AJaoj5sw>RatZsb#4=9t~%_6^V6fu^58eFcS zhFF&2Ozb?gQ$aZ>zUTrUe$^G+dF~-MiGTr=%CAG44q6Y^2Dvj15Wbn6H-EkbS(JmyJ3!o40RZn##p-gjb#N@bMMco^O2( zZcM$a>Ep*}+Wot5pQ$c19TumDNVSAszV$g?QITf@WVC7=3^>RkTqVYA+Xx}r?>u2Y zBy9R2=4JC&afHA=YA*k@rfF3~jiY#2JEHOaXV0*2JfN?Rk&y?`5E28v)iOmDOsoYC z_-4JJX{(RuNb_vR_O}Um!7oqmK64Cx3B6sV=9K$rK7Yy>s|~&z7*1!~p;HcIeI(VL z(i|eklaesPk$x_26{Z*6*7(twt0=3O@)*8x*LQ=unB^KiVY&kvY0p@&zC)~X?zm^| zmVRDWooophd>j@k8Th-P2^8TX5>*AB;!`femQ}NK<)?g65uhtM=g{X`R}Hl$a+K3s zX5y>zSQ@{HyLpT4+BAwaUv=<)8_Y$}#9Ia%zaZ{P>In|ZN+t3_7MkvT{$a}(bXLi(ce;cfbVp<+fBb zrcZ8v92-zfV$HE*>7h&kOq{@E{6EK%j$Q+WZf;*cF?HBOv~^ud1AaS;+lk(uqufJw z80b8upUdeV5r=FqGdW-xf-^Z$0}5w9Qz16Feu1n}e0V7LwFD=60-2b-d_G7S+N8)8 z%$rxsnnQ4Me`JsM43s8mGxY?@<388x9;Jz zuaO~lMI~y4!vv>rbh+SAD|xYCt{A)*M5jcdu_lTR5Qil_;8~>oc|G^qKy#h`YgD(4 z%)kFVeSvf`>(0KuZbJKVtu#|^65?^fF9{d4{|uR*4F=kQGhAd*`Vg8jwFW;o&EwS> z2JQzB1#5f$9o4kTK%#FdRVwW3rxIcJ`y-&-c;pu%WU3k(g+GvG@M1*$(Rznm@Oe}Vv)$aJIreO>ZY@H> zT7*~Ui#ib1nEg5V4T4Iepw5&jY{~1h#P+W%np{FVw*NqY9Q%NuOL;}qFO!CbsnsXL zGTQwQ!vN?nk7nMyPGJX^g7ymYB}vR@TNEn_W~9ky#M#y5c@Me^dSU~Tc%CW7F{-K? zZa=LV&%?;jrTjY)1vUDLtix3mLquRJW1-$!9>(P)nUUy{yBB1nsD@}5 z78A>N5R|yuwBgRAyz5Kbe?QV&1XbDrmr}IVG3c!XPolp>mNY{4MDUOg0~csrXaF@Wz9F=mIB|g1OeL3ZQW%PUr)R~7TzMwc zuo|e1Cv6CnA#OG!L#HhC?t`5=x#BUdr}*_{2tAym3c?CbJU0-iz@LHs!=uMrd0s5R zBqw_|M6g+TEUu+uoPkAw*Jd$c3@Rbw+#()oTb<0tG9l?7p$t!!y6q1S;HE&P(K-YS z%{nR)Op@m7q&F=^;(z$fp&5=A%s;G+)42wXW!Ke?O2s2(140)NYlCg8RlU3jg`8N6M(3bR z>EWg2Ofo;@5^Bp1l=_fk-uN3_+w#V6PbiKi14y^=t4=47m^6YZ9NV-}x(4@Z0f;-e zTvoPNk)nnkYUGQYid~Ml<~vo#*to!_FwVQ9p5<{_nO>(8dX();bTPpJr_QBb>RZn0 zhznhWZYo*%dx(6r@>(D4m~nX`JPmi@-gz?)Q)DJmPt5;YHF^)**=!)i6Rue0)ff=W zah|A32%~_JPrkT4IM*6CS#`9o3{)Q(YP#!XK-VlMbcIw`_^7G8HN@66s&b*7bRITZ zPY8rXbl9DW*urF~H2Dn7V*k}%@lME8>flC+V{e|m_Fm8XuUuhXhZ+4@C#;nXw! z$^TqHxq-Hd_p^X8%yddrVnq}qPV`PE;6ir6GdZeTOoFWStm(FkD>c(g!z5QrI5asD zuQx`SUDXD#m_c3agQjw922HQVG~SrxqLVeiZVnpz$PwZRpI%O{0H@62^Qr%GCS387 zIwCFRV8~lAJG}drxDrf9OgB;JCR}bS7^C!)YDuM=>*EqfWpq@Yk!n}GWxY|{ek-8c zQjx8Cv%?rx`E|+g z1zK&;9rtrGM?QGQu#>eogMO7~h<}$?sikYL4N^MS;UhMBcPNdQ@H1$rRQ}&YPd&?f z(6W>$86B?(lby-V@2n`yyl@;xF{o}4maYL5Ad%=pG`d|E|F{IQFVeRJdHU;?H4d1J}%?pf2$Qz^Vmf_Fu62EP&1~nYPum*LQ`h&Ys8{15V+zwrKARt?bJEtS zwE0K_`KHULw^=#;+dbzSC~%zxEd(s2!1!my8!KbW_GFG39ty7;*hy{L!570cj>1J* z6)H__f|mp9C+4jJ{)PapkeN_Vv*U8)`}DqW&YB}N3q|#{-&lYQk2(c{_#NeSPd%2f zQIN#}@AqF(Aj#3U%F3cOOS?7{%~y`EIc1}2)b}WQoI}|om+A{i%ctvS5|e>*z$wSK z3=VPRxPMl=j~njre{l0kN->o|!kg{`%iAx`AuMShlA^+tMN2eQfqyWMg1Ikj(%x0B z*{6Dkyi1!N=gq@Sd0s{0-f-g5FrwDj2snQ1^z%(+}6r6D{*1(6v|}15?f$t1?RE zxgCvif>JVMd3?yS{br(}5?g5-g-2V1QV_8DbB=gTmN1HFWH)<)L=|M22`W>0b9BG9 z16~A4136knE@tLqH)jlBW zghozZ<){4F&m>Y+abniWJmM$H;-o2d-V5kXsW62QFHZxCJ$b@axossVd{fnmbffjtY{t zWuXSNvL}(8@&l~Lgm+!d&n;v-&m3(_m0DI@G667JXnu)2R^GoZsgMG0Dq9gb(T-t5 zyB?%L1`dX@ur0|pbmv*9Y?x6a#?h}N_1(Y2<>5WQV2F;0YtC$4mI0+XB`d}7oA6qy z*aBObMW|p`9a*ZDyZ*&mXA&G{d<)Bj7+tz;NAp8wk`#u>I_$Bd@*=5fN(4A~cWxLW zMVUvIOTdX`_QZC4H{Vc-3N&= zL5oHv<;qku7A5jkBw(3te2<0(g%{G>abw*W+rDR5_4{qOlG?Jt1vfEuo(nhevYl^L zt|8!z^MK%`EA$|@g*Z;w4vI;1$vc^_Tw8Gd_qcaxCzMB{z170+7IWz0jq(F;6JSfp zEyA&zJJP>Pzr!HQv$`f&&jthxxZd`Kh*b^`->P3KaZskzSwMlATKY{?6&q9h=&!%g zIL*|QUS4s}z$71sLLBktnpvD8KPen+bHsEKuzn7{pOZ74^76;Qq236LC@6og4Sq;G z;zV{3qamV~T`&_IFsHUHwz6>ktFGVW7&ZvG3=Q(B>h>df6(@r_0dMDCb1z|Kg*1&Y zNaXQ?(C%Mw;(!Lza!%mV&ge27FQd!T`joPCn*9+#_V6GHD%XP!ziUoOb_i^KPAW#m7xq#hf5g z)J!kJ-`JUaC=kJ1dF9djnOx7j4C|NdY-l-_VgXcnmG3fz$y?C9!1p3AlcgZ|Irbm6 zMKQz9zycIy1I!71BmjNUSG6|Wr@GJ(P_Rdl+Xr18fshVfn~wAn&v|PCKOg)g&~&O^ z6degmsV6w&n`+|neqQ6Mma#qSk#YJW7)!$dvI+L!_K%OpZ0 zWBC&ExI?uglVNnb_kSH3}9Ht~nrv6TBh zMe7ki6Q=v>Li;m?_UBZph5sD34RUUnz=!%Rg>Y&S$UYWEE_%pk!o@ln#q)FhSK?VQ z5U#6XCmT>^Dn4;|j_W94aFz?akRw;b!tN3!?b+{folzo1RG(5=5h{VC=m zglkvZPYndTCh+5`=9z5O5Cei_f7htfpZR2>4!Tf{0${u+!&)l|B;3u7nK7NR9y?q39rIRd%Uw zR*q1MFNd-&iyY3PB$q{r| zw)gayV#E#PC}|M1WD1yxIkJR01C}FJc@Hvc@R#Iz!_rTY@BhD&(*qK5O~|Bi5}@R) zdN(}G8)#UBlvSaWspeCQP^yKZ6FaaIjj&oG)gm~USNWF|k4FV%#{(z05UfkBe*Cp? zV2;<#;&^4J@b9qDyqFe&XcEOn;5}Qj-Sm}cfV`W!z6Q^0PgwN$t6Z8EMNPM zK~i*NS`&!iccR?D9W|T*{l%NL$IT3X)XQZiQpHE^xVsJ?zvoh!vZ@1C^nS_r{um@k zxDm`#A?}3G>iiw~lvfreE{c!gEPf0|XmQ?&<@xoU+>SE~i}li2v?d3{GM{;Gj33Lh zs#0wlyH(g(#mS1H24vg8{JK9v?PJ`_EtX7YlV>{OeV6Cs`R@pNQ_49G{WF+H7NGr) zUtxV?`q$FEJjEI(zI78_z&aknino7nW+U^WA|G@)-8*9xtJtfm#Asq-v{e3!&yFL#IeB zlgnKW<(fUKLlOVq|HR#+z9z6^WN!sGlR+{ytxXMV8ij#A7=j1)9qT2FW)P3Kw8r;R z-#(Sv4BbNuo>QXd>oqcjI2PK$#W-{O2b#bcpAGe;DM18hLjlq>l*O_k12(cvVG8Ai zUAmTdVyIcsGV$@YZ@fwnXn*+7n%+m0U_%l8UJU&KK8mfQNF@P{1P(U5dSg0E^pg^3 z+HCZ!4n82eMM2AOUh8E~K|yBYq{}8pm`snasj}kS0Q=7ryU~zjG+Wa3)9fY~2zJ&x zbAyl}PlrWs9e=s<6y6!KO3r^_VC&@FSS8*&=h}^u`biU|q15$_^hzi-H#6>+nI0Y- z=~@+jd0i#xAa2ojYD!?{d4n;cd)4U)0y`Rd2K9gMiV317)L zw?b?L^eXrnpxnxS9}{2rFjUBq@w*0tVt;&0v$|zn|8nOsh8il_k;HR|aAKT8)m21} z2Wo?~`z>F;*V+g2S-eV1nJGnuh}QZXSkH%WuiZ1}t1i04h77GAi)Qqz>=y{@8RRUJ zaVkCg$TEswCmafM=EeO~o*JQzdn9&XJE7FEG^@7g`F@7IHS>asZ?~;Wv)Ed~VpX>& zx-UGGJAg=+&?v$CMcH|t5dXW~T--DqXTOC$pNs5}*95FG?gVwNLA=09I(y46Ao>ep z+lgL=tG-cV7ojS8!45L5%lVl{=73As@=!KePp>k zw4@Bx+98gkK}ftk3vNQs2%!h5cqaSY_P}DEW0%jw_8kh3uFZwe%Z8=jb-As9pUYs) zIYH3xr+O1wo~tj%SC~1gCRTPpHS^RcOiX>&sj273xJfj-_WzHnuMDcIiIxonm*DR1 z?(V_u;Bat<;1=}Y9^BpG;O-6~xI4k!HMl(PtGchg_kZ@Esl8_P^sMgI$3WMjRgt&5 zUF9w=!tK3yY;J-!g%ycYACo>8dLEhw;s)t+f}cIwY?T|TL=eB=brwdwd-ru`Bqbs0 z*M#3rh0HwW ze{a@IRO(n%n4(K`>4R1FR9g0cmh8=^9Q-_ zPqLr&yFE-RVaeBr-E6#nA75PD5lhiJ6Q!Lg_mAjHFp;*dcdn~Io@yF^)kOJ%$WnE# zgR-CAq7F+>1G$^R@=O!F!A8O{y_||wV%#j?2@8p{oeWW1fW0Y}qMFT?p542BGQh%_ z*lAldT=~e2*cfPaHp{i7tc^u~|+DX~1ER+)DX(1h=CYk@KId}0KdRpp*Vnsl_pm%7gF z4bkuc4 zCk%U2MwKYs#qNdodE~6%v&m2T?Z@M_R?cZ{tF3E~P9E>e@V=H>etjl^?w7q(SOQk^ zKtu=}e#sk*O}(Wl-~u9Yba@l^$j{i@K1Pwh9htJADCwrpaP~`m4cUz0q-H5k3)T0c z+v<_()cxL0YJx=7kY=8UiY;|IuhBg>UL1Jz>j?ty6;l1Z^^F&|#0ncbQPYwH0#Q4I zfnrSnxYP4CA@!4n>R8eKviv(`Vw%fg)BHT;HbfvO>60$_zu4;SW>g>9_Vxs`QT>%C z0^}vK&Fua6U+C+8jBC@b@VfJ~khw7$9cJC#nqNoX$Ftfi&%@rwD+RxW3^ZP+Y%d5Y zj}^;RZWwi<2S6+)a`8e#1bS@18DSuSqAPXXL)^c)7TwyJ;7=-9C&u7=SBV* z@o0oJ=$R3&dc9F29QbmblljszZf}D&2HI>OL%&k$)@V=VN<3A#45g6KK@7V_-gQN} zMsOo4`z;YZ52N^q61<>IQ^$(s!pwX48DF5jvbos;`ynHOgftL}+K-T6`<1)Y`oNJl zu7L`hB#{TPcw>7wczQbrt`ywl%=;G*X?o;mmmsH+<#OlyVVw6Sgj)&Gle5g{1A3Cj9W@$bUb34D!B=L zrQp^$jj4)&7YlOK9~?ojVj_cRGpnaA!Y&hGdy!y`_-OIp?v^#*pF)?YCK2u(s$@2h zne4BwDv_o^!A4rAPXUyobD`;}zUC6*Vuj0wjuI z5Pk<%;QwrU+)v5SdUBWyAtdbbLiNZn?=MmAY+Y8nBvM0`&UQC_N{NK7%*w*15s&i^ za#&YEL+j)Pa+SR0`h6sP9D?2*4QZ z=YV13!edNmSs=fh^S45=O@VXXkplJZJce7|{AilR`>qIR?BfmerY!vN>eBssgXs76 z&|`ti?f)IG?tf2p;oY8%fo?~q<6~}t z3%qpJk%$m3D4+08Hq}zV=Lxe*NaYfR6~{F6QAO(NsPe2Jg8$Q$>kxUCi3H$PWL zv5n*pK?u&A<+tsu!qX0qS6Y%Bua-b+#MA2z@i6-29d=V8#|Dr*i5KFSHLSoS?8O7f z<7|#d_M7_1CP|)IA5{!U$c^}9L^(gMQDs&#=bOT=kc)8MY`!1bCcP@8DnEaV{@n29 z!&7x}=hQ6{BNGK{L*idz440xnDBqvul28DKq=G$ug6g`!-(i z(YR*o)&E_Lx;IKJJ8!6bk6eyosd0ZjAn6(8`@<@kBeYq!E`|6A_&O2jk(aJ}I|blw zx!3rrH8IAun?3y`bNH(b)a1W57K#%{H3PeL1c!d@Izes*{~Tw*cI6kx3bT3e z^(V__dh0)ll)(@#yutiuA)TaBTfCKn!0T|klr&$cr6FHP_7ApN;hlE(z* z(IA>iy6!4DjRUiLY=i#i2LHg5Gs8k&JqqPcGO176Pfj^+Kp?2F^T8q(J%h&9G;|55 z%HH(k#PB;UevFqvF2myD;i1##AG*f=$}PiZA%r+(;!Le_B;NezmJr2)Hi%g7R11Hk zJ}nX0fya^q+Rhb`_DH2xEK$jTRZfzz5<|Lh4(eD|G1$ywF)TFPRJ;8Cx0v(Gbr=an zwsiXy^K!d?lE{rqrVFCV)3w7{5LYsR#nByAnI0jt8iEVjSQi-}3arsy&L;2?Vo64K%L9a~Za83^Si!rICd)X}KE zhZ5)+Q=aUZ18!nRA}~3-O6{(D`g>B!Glda05P(ZwcZwU@XK*SlM@Jn7OyIJmE{-?w zHaW}r5vh@HQA|nvlaD!XC)UZnV|nKHMUf}_obOTwtL>2Bc7Zo4_MNF#RWgv~`?qK> z(xu=6&>j1h6Y`dmBK~WwF+CMqjJGpa9QsF;AwOF1#skoOse*=FF#Hc&T>a02s7oS< z?1qP<6$-K#rhBPPt~5xYUs6Ls|fc~R~>je4yGx}0ZKPw$FwQlY_RQgO=l|rKXC2?4E$9~Z-O8| zQ*u(nq;CJ9n1$IFVzQtQ2TsgSeowBDC!>&6X8zJ;YPHL;7# z|12kTi_T&x{uEtQbK@G}eQk&qc}tNmu_S%jO)`SFK*eOLll_G85^z^_980nI+-!Bd8WLQb z%tLdgp&j3sd!{+g>rBwAz>5T1dP{0-g8}c-f9Tno>XQj8q(4^mXS)O00g>!bMckW% zsXRy9y;s0#eIpix4V~u-6zMqeUOU*W3|%Hd$qlRZf8Eh9A(vbp>}ztXT#1LBg$+!XzuC?Pun#n8Oaw#56l=FY!XZl zJBh|Pt18E;Pf_bYnD^zY8Pf>k*u}43$US+{k)3WC8^7tRsk{q*os!K=Ww2EsCY%T( z@YVVCj5EcggCX^6DZYYT>o+`-fsFY<9Ew>s9e<)LwQW6VjQJp#N>HGw$WpW*u?TA~XjzhB#P?j!?WT^C+=q?$Fy}`BO zGf$4;Wvkb9mY?m0XIM*3+tY!^c~i1(L&(rz_!?4h6w?m9OFA(tR54LzxLy!3wxK#k zEK9%13yZqu<+^actNe{&EtWetha04R1#*app}R z)G)h~RUcF7!~WQk4i8*`+sptHMK;kZ$zpVWkoj&8Fl`3ZOmLR%-G>~%!xjITfVc@> z{EGh-wa4xJ>U~D{Ms1w&X{O|8C;iHYA71BW{;85XRlJ(CFyv5GYu9z?sqh*?&;D#Y$ zdtOK|yS~3S=y6MYT%T$})(k7W72;y>coEp>^c$O4)4R3Af)lP?`SEzypxoNtPC1n0 zMCkeN1VkVy)Gi#6@x|HKj@mpbjiC(LZzjvz zK!1J;^(@{%N&Xe|;+HMlGF`o^U(HDiIetgTgf>S1vJ}Y8Wlz)QXS@$QK_&AFOK!G7 z^yK3%HliiAvsF;8KH&i+P^bkAhxJ3>Q$;S3;O>rqX(%3@PXi85 zyP#JVpYY(xp(d30!=7hkkk?A#)5_c_P~#hq!_TLG9|eh^t&>}pBc8yAkj&Jc{ROQL zd;e_BMrar04n+4{zahtKq{C$O0}Lbwysy|s#mM`%B@i(3a<@7IWL`;?8S1aY=D^;` ztpTUEYMK;y8`6H8oxIuz_?`+RhlGG6n^}F#darwPBN1~zd*OW)Nbirgxbq%u?!vzk z$5)4{tAl?`A2%QG0=v8-ybZfaR~xryPcfD(+{i^gw(T`Cm1_i@44=p9*0Q|#VZMT6b@LZXtg2r%EiTDZi)cLYk9J$m~rBVv8{af+o=1f%> zxAQG;q>*XtT*l{Kat3(odpdS2Hhq6PeB3^qy2Ng^ws-bIfFvw`j9F(r4P1V@$DN)k zKiy$0|KL8?N37ZC-1F%95K5h5_H_6CO*2)4XF|D)idB>&GhYE{!cAQEG{HIM5t=gXD==OtMwaaG1KzR7M&azN86uf>?eJG>bMX92uz|bd`atnlEx-AL zdQDx&$*C4kRHq@oq=Q^_hNit;wuwsxwSBRSl^kvJ2lpT@UT8p;+O2hk&o~uxTBq|r9+#YxJEB?->z}r__HHzl zLn0qPcQx zva}p^rz>}Q3DoGvvZ7;r(o0gHERRpWL>yW!J#<$jD~$odf0P`D+btz!33Ak_tFvyu zRvz;s>RB1Es4CD22RCl_YebB3cOpDWAWlH9Cs-{W-X_sSV7z47;rB0zBhKs77%ezM zH`OY%Neh2!-=z*JWqCi}7Lv!+CmP~(k9?F51^O`z+EU;y9Mu~w2od0ocn_S6on9%B$%R9L|*objp>l|MamTpSn)@tco zAd;ZS?#RJC6WZUMpKtNN zor!v?;`D@u5H)^f60ah9Rq~U0|AlGQ-+?$d8YBDr(4TT+cs?vp_xp+RkCy;ToYXvV zuw|70e|ySx$y4UkbVvN_1cCh2Bn-B7X}F$BG)y%Tnw*pa&0pcVcz?u=FVcq!LigGw zJg$$-%yr@OpKYgOgqFiVWVnn`mrgg`mfF^MS0K>aHIoIaB--HnUA;t$|0{3r@a$>Y z4{gvBpWb(PMeHBxt$)6dIGyt8shR%E2m5FgtHAHz`TSu9IR+keb5<7$2omr)8ov*r+{OT zo{DocOcaK%{tH7MdGO@z&K!gA+ZkxZOP9%C;=1p8fy7|Di>8$N1T#z?ON2&1tD5G* zD+@|Jsj{sLIsQUEH-MIrU*_3BD87R%)pA~dirRpX$wNq&4E6(QHd*l zm3|fVFfpKlT07}#eb;*3PtQ~y zEe}v6pQvpLTwbKUC=IB({~JtuG7eL^r!WD{6uEW9jBX?5Xfd}XxFHp(R-WV*^l#@T za7y?iN#uRow)<(9sptLGMY33EEXzCXztvUO{;ir2Bn{9#EOtr#2 z-EisMUj3OKjB1h?@$1yvj{!G&Yd-qTr80OD67-|Q)86Rhx)qyrewlwlOMY+Uw3KFR zC-*CdHf4A@C(ME>03Rxn`u?~Vcz{6lxKItRr(FhsJ(8asIM3xiH{U&TXn^Tg3U>s> zmms0cqs<;Caz&&gA~v{}8bg1$mP(`Rl(t=<)IM14xukgi@z|jhWO9|i{%6!t{FvW#2s@u zEiNvoZ6>%8T*!*Ymq0$hPqlb_?w`1rfuOA@st5aa<#4~+hj26+Cuo)|I0$7qZ$Qq{ z*J?2p7Lk)>HgG3|Nt5T*f^Hsm!R3*!CHsp*_Aboxq)TYKAy2gp_}~}5*D#SMvGJv2 zM-=wX-L1KLO0%rCTt1^gMbzIOh#A|Pdv9vV#qr9yuNDtGLdRJHu(4_$KyT%Dc#wrh zJQv&P-wg>|zC4qNYi3@PrEOc$igh)$QQpg|*xpepV6};{v`tW~Qu9w_g@3);mmp2j zVop?jCDiAzOs{*(?90~ZR0VVL(rCdiwC5XYHe~w|Cy~FD-CW)BqP}JtH?RXseT?K_ z6Mw$c>vjwJG`d1<&V=PmN)^$2gFqjurk?R?-iM5gm0$^zt5(#t6lTJUi%)_-@nFzc zpKUE24NJ(t(0-M$fI(Q*^bgEdG_B zLC)LEp3@B&muO10e`_H)n^Nwg_>G&)9D463_cq7GPmOr!31zZpleaa|dbqHivh`IW z9K{@%@@PDv;2>@ZqT?eh}TrA z$-?wHVT^CaNfZQzy2KaQGYb!wEtmU;8GW3XuGj6&XY89+qfd%IO@>-j000-1X*)Y5 z<%m+sNFVaw-Ut-*+ZG;YZFR|ZzH}SnVYcZbUcRkDGgkIdNgm#rWc<~I+nD2-^EBnf z*Xw(sO8>We2Ah?p&RHxO6QL-Q*H?5s#975rTU(- zS}hdY$^!#QAW)oByWnga2}{E}zdYLHZz0DQ_b;Y$H|SojqIvp@HKRi801wIZbBtw4 zvx~v-xxl00D?2?hCa^A1cP2?T?5k<#Z|OcMX(u!$0!apgXv=5ZGD19Dw_fm0RDDm^ zp+$G;zzj%WN`=0o02mgLfG!N>6RqxwJRXm+#mOu4;C=CNhb#@pa!izD8!{M$&KjW6BT#5h3l~nbVQt>y zcd}cc#UEKHxn5FC#@#zn5?`1*q&UXbX+plZ&IOcoUyQ%W3j|cNby*SsQm-aen7_C{p$3AcXH$ahQh0z<_ew1CN$JqIa=`@N3M?Oa22zkh_yL`bpYZ`oVSEh&S~?woNq5$$}0kI(nW zYD$2qWqz36+lRFv$#pgeESYuy&rt)$q4o)h8NR% z<^sU_bs*~J8x1T7QA9_y`=IA&5KX-IrMGq^&V`(6ZNX!Gz+z(7R7iZ&XjptkakdT0=9pis-jTcGm`U{EDzLh>wca*7$VLwa!Sl{3;jt@R>3M ztVPYrn$1A?{P8hA6PMeo4RzA)h2=I;!r?L}LUmz>uGc{Ra$nCX=s!PtlRTv8^JZpY zNiT`8#-BK4xw9=Bcm5k2kPTSlyG0Z=7ERRDPp=^%t~fZ)=IMk4-|gBY$9ej{6WUo=VSJ#zSJt;icDAzjvGc>$av+| zE<_s|Cl1tVp2g5GIUXjYi#}(p%*>IAlUuMhwfv089E$vMCMz{v&sq1!r34Ooo7*mp zbL)i40Aaln_;g1tEs$r)H_8W)<-h$CT(J3OU;zxT##e`7HZA`+% z?TkNxadl2hSilx~ssuI626U8eP^`(jo$_RHKku(kqZ)wR5UiBOG<`7Y@(-3JQsEgvvz*W5(Nk{oADA(3_1A`L=nk4 z&y^jLo6A*P`EZtU=}b7V6K==hS`M3_G!3d0?u4S>j|cVuRxNT`hp8n^)OZ+WPX$2M z_slO$>)SCp4+{H6H`erJ0~&vZkbhni&JueRWP+*FmbL&`Winbj;z!1!!_o zRyEW(=wUmcDn5K5WO#ppYH3MJVQx?h^qL{!_r}%Y(eiqbJ4w3#AI3cuNWKN#_IHZ~ zrhGuqbqKG->};e68@LN~4LNDH#BYv^GGCy6xNYLEZ^<}uq!bEtGp6N982I54^GR5&?-VLp=?+D~|QQD&;dr8L?^jjK`5+!-0@)L1%hR}6Z z1<)1UXraH79iV7)vK^qMBKgeY_JyTr>*_UV{5lT9>+vKB?^}-DEefBfxu!x};&sih z6H_R#yGTfvBa>l;Q)2+oC-l+${uADc+@(D{yZXwNLfkHM33|o1YPhp5#&njO5E#b~ z!YB7lZ1P}(92HcQhq?Z0oehB;(0wUO7Y{JWIZSrLE`*5SLveMIxLQx#T7@jIF{QQ9 z_)Ko{{Qg``1p5n20Y!2}<~WM)eU==t>VwcHjx)T{AENH`{C*V|x};L3&RAq&(s+PO zRc1=@HL|qa6jVOyt0_*wJ7rG2G}wK{x92_NY8g@Rt*A~e#Xk_hsG*;=Wn;VuW;^^l z*K2$GhWT_H5Zi;>TOc=C7HRJdj~?;nfc#oRik`uqbfSz!2jv`Y-9<#ePA$r3w13F@`FNIo+U zwNBm+7^Ilv9nzlotL+kjwheX>-H!P)Z|k%;MO+DQ3CqM0bd4OM zRx?r_sY!4-_Nds#TKZbpo2!9<$GazF9R0Yps92kI+s^jXy=j=Xhq$Jpw0J9CkRq26 zx$faY>N-)nG(yk7l#b5 zLsdC0iz_qR_Fw2j(03(pzB^IK}ifnA? zw{jYpKV%-R#d=J3D#adO<70Fg)V>CJ4xW8Xw`yykm~3=@YJtS7)0b*Ct}Z|BK_sv1 zBCi>ipJ(O|_d(S3n?Ymz_#~yl3;T5iTBdNYjm~8pA5O_kpo?}6;C07*wdpWU#_^q! zS0UD@`~hg7fBpJ9V8D3q{ys;`!N7@^@NuHeh3`Kz4t7S#i$c$*@_$Q8ySt0K+lssS zdW{3^EDe&+A>;_BL9lSd6X|!kpui0Z-@%^com__*qZcDa`1wY=KQFeM^9Qt?H=?q`~3!kw(2NFL?!}P*7qM zkz@d=`w;i76(9!9@^$0fQSrHh71^1NI^DK1rTQ}CP8GK_!ik@7f0Nvm4bZehSj1U_ z@=!j?8b$Lz@1ocbWAuB2Y_sCJioU;sfNdO^YL8M4H5k;g!ictsrDFDj6H=M(GdJc6wqDg8-hv*9`=Sm-S9SxD|8EF{6fc2aRjbYaH;fR2~mjY zJx~Ktltbzmd$;Y9e1Hw@6)P@J#?DhRTfChoJN@1=j46=T9%pdd!%@SCx(Uwy@(lxI z6D9<1!u~p--AW9qE)?b9bT#-Fk~pHY)KYj}eOmmc!dA^Em05r9$Sv_T7&^>~$(i!H zu@s@Fjbz{V&gxh3dR~<6}^D z; z4G?o*3aB|QUvmDhp)sHGR@6CMvt?pOhn_*_PZ*`+=iv(z>7_6WMPtTS;kz`s3egR^3fv5Xi~~46+l7rv7>+Ey=Wc&t;jLAuJP}s(92@r zJVYq)HE(0emZWWcWhLk0w=?G-M?Vdd_O|5QYOoAJR^%TcKhk}@e zOX8l)6S1vmbgQ9`rLmv)bR-cwlCWVqZ znsv8LtxSOt!($pI{eD;2Kkri<9GAY*jTm*TbBt%Uk<^q5lM2IXyYbDIO*1hgII=oU zqU}yCz987W>Vmo?%Uxx`JeA+ZO&^MV)rh@^#Y4F0pOlYcV`ISN>*BL@dKJ^4-NfAG zTtm3?0vklYC|ObeV*k(=w0$;ulj}~;G`Vz`sgoZU*cHO@#WLa=^c+~^ zRWNna7`~Yvpd7PcQ~kqVD)&akrQEyhF(W{q?tWT@-bH4~6XqFuUoHgbDD#KSmvYX0YS(vHwt}gW zIdCcBAd0L5)w_HXq?&_@Q7=ZVgE44}D-IfFjnri(4`#UCl;*(H3v_j0^fh{LRe{|} zJB@Jt(}Kp!cXDZ3iU(3as1=>8WMnNo7zCDrY$GcvlC<<228h!_$*Fq-(d#v>D!{7< z`@H0p-zANM6Uv!27elKtC*>DI(KPvtwJZ(c0bvY4X*oUTPKr=cm zY^ckXWjb*T!NDtO&Kv=x3)G0$r%V9sD5->lVCzfV_EG&LIjRC+@Smt8;@CgC*FHOC zC%AU#JB{Kd31=gIi{<2$fL6I0D-}s*1b71U@$r!5W`ue=ls4gaP=4SLVN(K*ni6X^ z+jqTbY&);=Ky371;h1n@YTYvSAgiN(;v{+f%KR#0V@p^>{x#V~Y6Q$*$W-|F2+N#e zpLx~|vv@>JApkC=hTpRvhC6bkSjff!K-9$$s2Q4Y(RplHuK3wy1M>41-TphBbr`X4 zR9|-{x#{ed&>tw%Hq1)3GbfvU?@ZHp9A z^%RZl7TI&Cp~S+IB4c8ps`S09Q71iA>15Lw$jtC0EqhEw;ow4`(0FI0B14fLxKYc<^UXvn@_};#hv5zhvp4>{a%%$0eso0n zkR;4q-9{!j0@4rxkXjWOgjxs}VJ1q70jX15xGI+A%9k1XBd+xg3EXr#Z}ZlagfTUuSHmvsTrk$0}1^FG>>#YL>(p4VF1jB`=;W zge=uGw$d~cZkWWG$RM6#(%kCQl0%n?0Mtv%e6Iq}Jc+~5i-zYZ^Cl;<+3C-Z2Zm|( zkE$bxDbZtlxZYgc@wvLI1E-}-!c7$|rD=3a6@cDIRRelxnwC}93=Av0@p6lj45mOS z6WzWO1a^9IL`8Yl>!DL@nq;K7DUw;EgYp8zt6(AkZdzDk{jbb%?) z?+CqC@@;?;6~=j?=B60g1ZH|!9I$Nt8~{ybX~Q0{f06D@7yuM5SXLp0!xBTC7A#92 zDoHRL{24#H3%dR(n4?TgBulVbRK!o+WQ`qed;;zQ&_<6+nHv>X}VIsAgLTSpM$T8ZrP4qJcF zSeK^>QD30JdttF=CPvr16liw*GIlTMvrcZQ3EpbXr=EwV#miU!mN`V3{CUb2MZ)#_ zvxaBs2v;-lE21ZiPmNd{+{xdjpr`ZsX4udt*K=&uc&h$;Bs!L((O+|ej{F^n=#N%! zpb-&b18S1Pl`F71#?s@q9m8l|`&WO!W5GeTz5-nJx~i#)#hR%xQbmN5O$eq`lnEw_ zPm$C{=ZxS|m&6t|YJf6D(m;x^t)CLMyd*F(<%)=)D}|Jo`vCxCtH|<~QDgO!Rz{VW z<%-Qi6?$yV6K}cUy<7|NP$EEohv&Dn3%j#;!x(ekO zfNZ0Nw~Q2qqJ0E*IJ#z}?;#N4MSB{7oNUI23X=0;YWSq4QRPLP2N`I^VvSl7tGnUz zGMuwSIK6pgHoyD7$tUUR-lF3{(=vWHOTPAnmJ32Wo=G3jmlJA~CYT;-5|FEExS}{g z0YU9>QYpFCaR1f)=N(72w|EG}F2*eY?;Kx@YmKd?7<(&g)~Ap#DJMyVV^ZaM8-GM+ z$}H_NFyUFwjRPA<3VFDT%LCab zoyvF-&54AiFIJ2urAFRZ9cf6#MqNR8$(Olk;kEDpUv~5sSD;mE0D(>tni73IxmA?dg!AAlAvqVx9OEK$1?bg7 zj4x7UPet6EZH+5`@lBy%U1G;8qlvnXjSZp>IV&XG5rw=xv8~~h1KX}#y(yFurkvEY zpY*bPHpFoqi=0Z9X_U4o#qCm#D*N{@K%|V+aHqKWq2`Z{a3<~iI&m}mv=t2<6_k>O zMg4{*SypyQ8L_cEiy>v)C@y&IAP|B?Kj~<@uy|!NXL82yzH_j#3^;#qYf_Is)|WL+l`SaDC2YuUy3gj zg+LAyrtuq|LS4R0F=8wZozVZZ+9$KR)^^f4WDeB=_r!E)7OTvJ$iekIkTi0c4}?Z| zEuw&I$>czz2U(KiLR_2CNNuucpfgW>bIoDLkwMwrlA%@A?~>35Y!;L6YvLKsd>M#R zy7>5X`-qbb42#3*=fjkeE!^VvM#V{s_tkko<2P1})}(}BxqBOwufR;>*xx=?*#-o{ znDMhudQ?`Yfp(fdW-P^UK{!c?Rr=;awI&f-78(J~IVWItG3`v_Jxj20AT zAf=-0+~AYJ_j2Y+888swQ5?yZ2N@FAt~s}03#)y)Dq|ZU;M*bv0vn|VexLeC5dtXu zVk>e|Fafxd$^_?|xV-@@;Uvfzp)263iXuyFURKfW;52)Sb8RxGlc`-x(s3P-o$w2r z$W+|Z2Lf|6S_2I#>`Z}N3AOkVe{BW+vW2URJ|*9?tG!A_B|+vx?o56gb=jl;1NAtfmHOE5xewu4Vz*xXiv1UW$LPS=bXQQA&c7;>~3Na z$58}F=xA6J*~;eB!G9u*#i*!9X*ioi%P7Tg;}VP_Uic!IxSNjVn*uYTen9F5H8T59 z&%hYZwI628gi<;Y+wD^xbAc8lEv!YqF*y)1B zKrB-%akIls1h`~$G16>NI;g!!vY;?7Q!d&HxCTc|EI4)2@B-AR5~g#?h2zoK30I$Eksv?Dh>AGmf% zg^kTx_j{&$^f76~nzaqSoV?msV|>&S2zYb!^5w>RBR&X*;StC-Qe`qN(n#mMThG8= zjbZl`Ds@iUU&sJ-Q{aP``v*3yM@(#tn3&Y78qza3%ZX16_0Y6Psq(G%jOc>+JmC{}eIX2HfPt$DL(s(gv8 z9DIG4j5QiA14k~W&WE0mRG%)^oam=i8wZFzX`|Ixg|VH`r07wnS7kD(D+B0~L~H?Z zF~iT@1B9|j^(tyHSG6#dK1$q`} zGXnVH8<_z%iY8p}1zI6y=N_Ds2dR`LFxcOk{%-4P2c2UhHL)2F| zdH8d2x|o6qrb8MK#sAEL>NlWZsI<21r|Ix=3cV0(xk6lEQ*uPI+keur+_S zJ$c14<47PFFEDPtU2cRll>)R$SsO1d2?3Kj$bh<+k%24h=Y}vbftzW8=-IFrRHVCa z7u#0p!0IbJ&$(wR4nB2}v_oL~9!DzsYmkvauym>oyLFZ(K~9`&kx>ab*+#*VYp4V! z->!>m-l9NKLLvsJWc#t7Q(oqHHic;n=a0AF7qJwZ zT>ZIO?WM1)2*`Z>(;8ppPJN<_or#AbE$7J5me2mmRl1LC(xOwSf}K$!-Q>Xe@xZi@ zT`=qID^VILkRUc60Ui{5a?v|HRE$}Tpeh@J-gNJ>&#%#V_MxxnPx=Mxf!Bda(~2@> zdbpiQ+yHBYA%snX6?{7}*^UvdLW-3i9Y^kpjb|O5RGqy#w7OCc7omEwnp#4)--uxf zC}lF`$hDAS9yL`!7~&1!=y-2~jU;aXJ3i3QE_?OnpkDkVR{=oW>@DUI{W%i6>RhKh;Ht`G2igos6BVjEr_R%k~)CE=fEIp-h~3MMI25J2<@qw;^wi zDGxDUQ2s-cp#?X}ZFEO2T_@^*!*&~T2!&*5nM`7Y;jm^&UJ!t=5I0~H*HAvGR#o;~ zHGbC7s?Xd`ipL! zpJ3VO;b>-u)0BmbK?SR#K~a_`is#4sbVDST98pRUq*kX-9iH~rEiyA2>HHaFLdt%~ z*I<}NFUQ0cD+YkWD9RW`B@x7MLn)6<`1vi3e*^&SWiF}89hthsVL&Sn5=L9QYZm!p za?m;|DhI08NE#IpO!9VH70?(`n&{eMsq%H?(`<|CvI+o{t`lLSu7~`%>Vi>iWUv&} zMKj-meO*z}C?J4J3>AHk63tT_E#CzmPF@D0vdCmirU(%!VLgi1pB0YoK;BhH(S+fj z`=T=akPW(iaU6q+6$lr~I#70$QX4=v4DAVthn`6v5dpSod1OW=3dKjyYq%wo#ZbpZ z-@nDRo)%Z5MS#IO`q2_T2v5P4E3YUi)fBgf09C9MSQ})s8Z$8{nHkc?*@#4KMH~|; zUKz;gv;ce(rx25f=(MBchS$hWID%rxGrmHV`xT_hm)`Vm4de$+Vi%2gQZH1A?Ugi+ zNQzUG~OIAY=q{@z+%h=95 z72M(`k-U%4gH9sON!*H?)TWyvtS@zu@Nf9E6!G?NCheit*719?P90kI16(0^7SiM_ zL!7m60NT#K;dC$-8&nA6+s|pCpp#IG+T}FaK0qI!jX6c3nmR@%E<$0d(=lA}#ch5a{&fJ+fGjrz5opY~iK13>W?W*&*COk;@ zP_^QDSBiRHQluEqERr5fI!5~%=ds3RT%Q<#R!(+TS+`Bl*5LZQ*Q;OrC|E8yf&a-D zIJj})Xh5h|O~pf)oKvG+um=eaHl&l6{_s+zs$PKep>~M!cjHHG$j@FfzV~b7dt=I| z)j04R>sd0(oAJj-BX~PVMP|8rp=W`l1~1IH1Vl8R4&J?}@3LDwQsmsLzb{UPA!qdn zSkor8Q47)~6IgMWw-TP2=i(13*w2=< zWl17^>MgVtX@l@+jkg|r{4o7Ir3I2S;z#IPxE1nMXECbU#;npe91&p~X{z-R36Hk_B)m~>e!AS9n8Kau$9``b1tt+bwmlXs-)z^JWV1KPi7hE$WqF9MfT&3zMH=J z+ixGRUnbdDgq2pSr9!A$6o>eKOuc!=3yx1AdXY4+n%J6GGxI}3Rrj3$r}9Byn-Fhw zyBvjWVp-sG#eA|p-3+cQjSwOsLz}3fRGA7Kg6EWF;XagHYZ8SN6j%f$oQjzrRBBHj z6_39w{-La*_@FRCAVpuVD%H6Hhe2xH-CjqF&}@GW2A_slkpHaG+|hqKuG-|OW53js zY%KHaUXVO=-)g_Had?_a5dI@BrUHN3PL4Eiyd@xYpaO^IX|h7%&%R*a!JO6-#8*R} zu--K8Xk&YJFIGzhYdZ1CSE&@0IM0CT7s++9FEb=S990mp;w-x^~ zw)#yp`8(3bub=sTc^>Y8?YJzgU;O2b;=>7D5zL=0k#?9R>&H~?H<&7H%;U#j>#CnG zn#wW}95_gFYkSf$#Y?|(1wF1He_mQE{9Z?8=-p>3!#`i1*FVli2H!5_@w}&tDmOrj zb-6zprX*PS8JE&3IznAGeZhK~p#gmPf8k#VzF#k&F^S}DzHGbfelR`}=3x8zO2?65 z*E^D*K%zQZ*Fjf4t3@%hdKp9V_;}IZOj&{Y16DX5HZ$qti7EY8n?YNV7IIIC9x`P7 z)Jg2ap$TJ?nrNY#t_XZN?i2iwpEaTL&!v_4Q74u%TI3DfpuOBr+3*WgF=iG3l z-V}-Rm6F)-95(Rj_jx@A9v5SN>XZv47fG(eBeO1d_vw8@*ERXSJ#W!GC8IKeR9ADN zWYu6*S{)+&ZgcJg3=Q*&S-Gi?;X2X6IK^CHb?SDBJ_CbpOi~<;E|KK3ISwA{4N8jl zAzbY#1yhRfcLDS3m0$Sr!xPgk-EidwOii=RskL7u+m!MGtmSs>>Oi2PYLL-gp{;5< z@9fL;`q7WF2QL?R#Z5n&jJB;Be|dt>Eg&M`!DQr+%)!CJ`N3o3aYB&n8%-W~%f}3L zbph3bb!|JH&z?~Qq-lRHX}PK^td4Rf9*GLaD}Y14rcLpB_|1>>Yt#1Byi+wQP5P-+ z3WmbToFTf@eXvqLWj`Kc?P&I{ndG*9g{zJ0-td+~Jy^ zG=`HT)#H`>;KhA6K9XUA*C;=sjKfgA>56dfi(}xEFSBS#c%kB;Tu=VlXa0p%^6GJo zy~$R^47FpGgyO=JL_3F2#5;5S0Y5I#ox2hqyD<&RU!XhS6J-OX+6(Q+bcsI&;v)uj z+$u6UYll5-3E$|XsFH5Wzne$?m`PzB&s*|W;CS+VS5{pL__#@fkB9yVYy!={%tZqS6cGiKc;lh!WVC{j{&_y}+4?39fEKHkk zUJ{hDJir7nBh)%_iQ*NKxE@V6sq*H6XL&i}RVUIt-)anRcDMP)G2%a?iH|(v{lZ>O z+E1CON=r-2K^eiD#H(4n%DDSzu~zM;bE9l~$P@l~tPMlmCb>lp`*u&=_^qbIl0AjZ zkEx8%4V5V23j5wdoXiXgsY;#M!j3;j;d1x{?^)CVh~pTdH{ySRp-t`5hBw`8F_gMr zwg0|i{Xqf58WYbiL~&DA2N~52%pKQ#h`+%!V6NFTdSFobLjix}&T}M7k+jSU$ikzj z5s&4kL^!bz=EeOKE@QW%wb<_x>zkuE%YA3?MJ>-*w~&I(;jwuF^~gts>aKbY|KG|0 zC!QR8n&N9-X4NUmT-m3o`k(0Rm6hMT|E~V<^(P8XWF@gZ#T(bdZ;kwfZ(qQdjE748 z=x^MyI)eYkB~|Pz*oD7MXiy~ZzRGT-k@DgoBv)vb!p4|x3Y?)Wz+|_jYDy>RzS1)=V3@W5i%{H!v(ML0n_2zJ2^QC3RUt^C1UI`qheW9gnH{!Cz*f z1|c&1@FZrrt*V)DqB)E#E@7DX)9P?I2LaZP-;a{N65^C;Oug8T61ea``Zhz4Jr2b2 zT%Q+N@p|Os*;WF4i295bwQY6oCz$-o-^1UjGnXZ##Z7(E?Q(jPps#36PlnBW^CnM$ zX-D5a)im9~{ynB=_>tkbos~Veid|I$Sn>U6eqABB*@ZWv)4D#|Mg}uXlAme=vi_O% z20rYvGGkher6kK49k6Mw7iz#7^OldZ1=p z{xm4=>1Sqv1?m?qs$~{>;T1aC`Fgwbf_+m=P2q+`->ALB(g#smPocBF>bgHF2FB|~ z{T+DqW?&~?Ra;}dY|2PX5|3r@kyt8r$DzM1KdZ83csHp%k4i#b(vLL01W#RN*Dif! zDpcxYof${{#E%LY*vLnL3XlIV%aUr_*|4UrHsCxJYx%4`#XyS|L=nv z_31)6t9sC6vsOgf!#oT}-}^BAW7X)$eyp*8)x49s0SFeCSrvFEo*4G2}F!2|zGWwdC9~m?3VkMg&NmuH}!V!MLXA9*Fqiu}Bn0 z)s_I2%bp&N1S5~*6)M9KfHSR|La7KBH=Z0z`}oU!IrkVtuACa*RO}&3T%=<1TL8(ZqPi)!kXDQVX?(qe1Bmi0SX z`30RUpva2t;JT~IU%FS@g zyCSq9k;?f-x(IsmL}$UhtmZU^-uGPe=8ja9B}0+Ved{O44M27lPQIrer1WJRP(e8U z{u}Uogu=&h%ftz^<8W+@^a^Oa3PbIf2u9k+-ta^MUX&n%B8Y3F*Ir~yNE%#U==ZB=L7qY}+9x+tByWnR$m!Se? z9KH01agO)_PEy;Xnz>8uS3fjJwotX;PgO1m@bM(DcCH573b(bS?Q{GC2K?}#Xa}^# z%ErypQ}Dz8l-2u)MnjRbIm`b)1%8^nJ7iwum)b zAH~c8*^Hu}DNLL82{nB@88p!w0S>~SXd zo`YnW(JZ4&p90Z@fyo?zVm{f!`$HMq94HenYRPP&s~1cQ&s8tN81}*=i1-XTf_?Sy*u{1 z*75KBqdk!8kXaEqYzn!&KRoL``qpc>qTUNav{w;fAVvJX31+? z_pa8FJCje*&*uQLa|WQPdm#aWKzMXdWAj>;nwZ-JDavP^l909o%i64&bNcpRxXo+% zW=UupUbX^m;p!YPV+w?13t%>5x?Au&>G6trTlaB2P=ucx3R^MrX~p}Uu99DOx?)tK zw=gxYr|ZkW%dyvfX4Ru3t1Xj!+vD*FfxQSw9Dwu;a2>lbuD)cA(boYmQhNE8hakX( zsOb@RO+UN$uQc8jze8T$&Rfl6pq4@7_X6%=A0?A=PuE#RXo_MiGAF;nt-o_@u> zlk3I_Zd>e43s-~g1Lx79%}4F^;^rSgvsQ1{)j-m*kQ5$L`1W$D``QSf`_y~QJXZfu zF0JOY{`b;xY8A!=h;B2n)3(|smvhzt)V#4jit(%<*JVDyKJNiDKA};`I(hZ9*4Van zW{ZKzCawU7&eNkirJHG6l8+s5a;G^T(n*x3I6LypaHi!LP;yAVs?FQ!>4h@=XN3(o zCscz|(S8I3(2RwH1M;Sc^>U-iwe7u>YG3-{-cYB(5+ck5z2@sMl_iPJ_zO?Ttl^mD ztgdO%rZbY*(;SoWtC=>}$x5-q1}R*I25FWQogbtkM3#4R<5AA(Jv_5_snNt}Mk8Sl zbV9%mU^>=On$DDa*=|XYv@Pufy7nm#HA+n@I{sqQLVuOMLXjy!h4~OUZ0TosjYv_3Ys~NF{2P5S zR^4;s>eP}EU6V{3yhw3Rv&N!p#+Nqlj)e1pbpF@yspZP*?bOE4(~1Fv{$1e_AbrMIJ#cJ3<=W-kV$vUKo&7093c5X*9Dy)$I7bm;)`S^B2u z+!j_kCE<`{w2*X742Gh4Gmn4=t(Afa0;SG_Z#rDP?H%c+U--d)1zlfKlGBLVNl6|y z3etJD^>WpYCcxf$Ck{GCTf(rwpAud3^_>xw@agHD)4r()#A)R08B!634*{amN%ErlGrgVNI$%_gOFzRL|GrrUClN#Mx9WVFaTIkb8t~@;Nvsn@ z4d8g5O<*lafpucU{ETD-eOM1*exyo{I@=YkW_j8GiR|Cq%i(_>>s00HwOrB@BHWWn z?IYoufqXw7MW0RNIf{LP5v7Y+Ni7~V3TA%R*cip0(aOmoVfddvNy9HcYe4WNCcV~s zy9RWA>w_vekO9mIDrlt6V;fc64%~lt986AKg+N<^yH1We21WIfKdT31^;1>uMz?+J zZU{XKjU=&X6o_C;ZOhoNh zuE>zf>la>plHbY$t_dn6EvaUPdLA2bsYOxKo^5mK>;hF^j@GmHj-t#wo~)=GSO{=< zA9UcR(=XnN(O#9C!7C9JJE(lnqRG)OYuBq~zP}d%s3entATS8hl-*z%ZApK3y%l=1 zxUMm8A6d3<{mNosLg41g&oWl0>C_}T-ID-;y0&vdZO|Md%dzI%Qkh(SQ)r#SBzZqV z{W~BcK>CfE0UkaedIi1dAnrQ7xQ9jr{P1r zhdwA{bg_2i@lKZ{iPVVwfpfp6|6<>$?-HUBn4Lf2G7^yEb#|g(<%}<6tx<5d0PSmu zrNwKwd#z3PI-&p6dRecKK96zVvc8!HZyrVhgVjcauhZBdLBU{TL}iXUl^$|`=kRvg zfBs`-uG_6VpX=34=ZDxz7$n8)hAb2+6nxh2W>^xQhzq|kTY5vqjzNlHe|#a_U~dS7 zTbUbK^&RM>o9ykhwA3A#-%>&}Y|S@_LT0f^#C@bi7$kyHSHc9`clfzP1FOsHp`=lU z&W<4vpH$lxSe)^tz2e3K{YhqR)4A`#M3kki9)%lepIK(+eJcZi6laF>!P_byN*$>1fPnp3Iwb~mN%j%9!@fd4l4JY+`Y6aepQd%{Gr89|XKvOFWIiuq zWs+-3yaHJ+(K3sN-gt<+Gm+=B*poRhHfkwPp;5JVa_*WV6x6c5AF_s<$heBi^ncy-aB2qwFN%*C*?EF!$?#NzGQt!ZcLiYMxHrCwLwppYBmGTBou#$? zmp!Sjhg?z~kd3ONOTUV$#}>a1D0szTkNW68bNI%(4qu%ow>DMVTl2P}VwbLlHN0UV zg5sA<8)7#kdM8)*zyK{|`FC!P+MT{W@#N0P_5m)#@TRp{2>=7K2r3HO+Zn#7Rdi&> z#Kcgf<9Q=yBAb8Oi)uohqgSR4p8fdFVZaZ##^Umj75sRnGNGR5ouXom&Vyv=*}m(`yHd`sB~1?855SE6QQbbbXO$eglkADKaaeA7Q(N<)ri z0^3HCuwhM*R3L6}N%7GBwREP24-^fTN82hAbh|l0{kg``5%GBe{*# zMjUU-ct4t2Uxh@3JR_1Qfbo+L`<8PEI5`ZvF|Ha|f$kna%CFcw8K0+k=d^!5Dli85 zlf{~SmH@S)*eI#55bis?Kh2dPL&~zQyB|~usQ4kDV{^qDbB8Ef8UM`2AjnBZjA!W6 zPk!@V0hW>N#5;NJOzRhnLyh!k%b59sAhj6rpkbzfB$XYh!Rw$at6`r~Fx}O%P-XO4P^<-^%OH`-q~drMnDS1Rdxm~6+iniSfO2RFQH>KwlS}VdSZvKiWX!^Rzu9IwL5R!M%=8x<&@Kn$qlcGU!g#n6 zAr8TVdgvI$Yalhz^N9Id$ie9mtU{~wiBLr+^8uBr-&(2UO98$(o`b5rYu>`qlVpkE zjeA+&uIJPdM@11}cv%d+WAwQL_HH4Ii;Lo?qEviW{w2;!-JIYCm#Nd%nuW)-Mmf=q z`mw!N(BHYH#tI*W3DCZvMro?azj3&=VYs|)5uy#CKnu`p(;>EvSiGYMf!Ah6rk8_e zlt8w+_q8la9HdmN<@@>KCbWrtB}-bAijyGj^|p<{QEHT$peG679 zqGgjOC!m@<(2Wka3|85eJhqY89iU(C_pfMOYb=${>w3+|F3ko>JByT+0$XnwjO27` z&QaW_jeeCn!W&sZAigy^Eq;1;L_H0kRgC%AajE3~+NZ87;B&2Q!h|LkabON`2GM$VOL%Fbq92ga{N` zV;3H6=7Q0Y>zC}+Zc9RlF?pNDEGMfu&(&W!rFpR99wL;UvvV0Ka#FV;&6k?Y zDN3Q6B>l+b39|l^Q2~4dhjLhMfeA@t%(G{Yho*C|SeP}RM#$mm?S!%)_DB|)j4-yU z%ay#IF)95V90(`{o6-ycmfIJP6BMMzpP>^hr0)EL@g zk!4Ria`K#7<|Cl#bESBRM!@Ti&artwqF z*jOv}tsQ$@tR2y3o^Si`xw?LGeZKgi=SpJR$p+D!)aPVKr}(zv`Pa@Zpo6Dm3A{3Y z2dxIy1BXdIBs%Qu5Hvd+Q*6S;-^t6jZ^$cKfMgkJL=#C`r4t+^>kgfD~e7`yJW_uIPcPj493 zqk-uTp=qp+E!r{Nm#7^-AhSEWMOaurxApM=-XTu?7-|w*=1vG$4t?$MZzrTA8qR-J z3K86^ZMJmy%Z>7c7&%lS$l4YAwxYi;P&?9eg^l$$Z4CnAe&(|U1px#Kpq|-V>=W(1 z-Q8b$S~E?X`-}6AseG>MYq)3AK`}=cwHuJ8ID}J+AE)~&$0cg(=J2DPGluoF)=w|+_R@EsjbM)F()AqhIIClO_C(HAi+`(%m z{!peSJRa~TZm~fThUUN}iTCvf0_$G&ls3A|%)mu!#9eR^s^}UC>Ox!G`>?Y)?k3>xzfuWU~v|mNAQ9rFaVYk)c|Y63+Po zYIi+c65YF+tz~iayZyeBHDh=5fo_fav;MyUT+?hUO2l8STX$;$&3kahg>R%6xTnfq zaKQn}zvC^mJ+}k|&Wyct+UX5rTh8XLBOD>gMUzgo?z{1e&DL|rOP9UhzhQbxZY#BU zu2wd0&BJO2Q;>H&3ty{ zSDsHzr?GW2+v3~0P9vCZLOnFlhv5`wYi;hEQW;=8bteyj{_OwRFE#4*rG$%{Htobc7K27b;91A#ZyF+gDPP!>WUCylv3h+a% zTV!ux8w45gV` zIB0Q*tXyvCMWtD9COk`dER1l^78s30&?+biZ%i|!_LV&Kv{=;i^C-*pZ`JBq{8`%p zTrbH@0i;PpzS2v5)z_7R@!PXGTTqYKHGBvN{hY|YQWjV!H{g$Mln8n0*=+tcB?eq5 z;5&zx#a30|2)IfnsZQk*{KCl~2w}Z+uiIfs6TSPNFulY0Vf@`<#vu=ky~PD|TuidP z+kU@++bNL(s~~%c94{6Bl#4ZYDXDaJfh5_EG?PrQsPO)JGkV~Dy{B|G{T8dOU3DQ% zz!Aq8VpmimnJ(y$qhrncBOzSdc_n}tBzDjLLOT9hv+eKJg=fcE25o15%ClSs3DlPk z)XGY~EcqNZXRlroRIHBaSqpAl^j{xs#p*1X8;OLc`0*{H7GWuUu2;QdC-<{st+dgF zu(i>e04sIF@|Cz}{+{vYV}EtH{p!`|efXsLUT-3h^Ma6$5&2kjX3r)11>S7S%B-zPocAih&{Kvm}KneDBG^p>!y&P$!6v~{mf+L zl=_DARmZTEr1Rik8Ti|?efg#F4mPvJy3m_Fx1HC+OPrMgmScX~>Ok@$q%-W`g%P~m zP+MA{a{0a%-PmGA?xEB-?@8;E%ewTDy}DPygMdV~Jg;v^Fy&Oq!P)$^E5O^j4Qdmx zCq^T8h>TCZSVfMS9Edjzp)Ft?8=EEj=-AG&X3L?=C=*MEs1Z zK8sdSbrz6ak}X0>99bShn}=K!ieT z(DGOAi&zl&emBJk$>cd>6NT@Q`vWsEH__))9q5OArYB}&(g@H9Uu-b1v0NL-rTsDY&K}qtIhOmJ+!qeqZyeHfbicl%a%Qf-YV_WoSXSO!@w;q={yfzK zwj_(7>N3-*gSc5;m6|ls?9P#+O1iEm!JQV`dUr9lpJguWDY4x9+%932+neBT{t`z0 zs~R17iRQp~Ppp7-ruq27=B<1*7Zg@@p{AaOdHL|do#}@dW(dax$=-8k#@XdFrg0D(`4B7itydmY$^(nDk-p7 z5jt+$kwIO0QR#Ge3lur7(?+Gy4^wh~I!-%N0UjHD8YhT7g)PFiDhlMq(M4v52Dl_o z(@v?cJdX#0TRUohR1d(fq~$LKq1Krmo;6pybQ)X`=%szY?I&`@#+3NQqfrtd0JAkI z=xXAi(G3+Xs86Y}b62_acBQc2lnR+%3c@NMrW7bGjsAhH+fG1bx-hV%hmI#lr}P{F z(h*o4ei%?wch_8-=YZJNOVs5109^F0loL3_ZRSGH_4t?87|qiy>tBb`!HF_;FNUse zrQS`!+;Q}TP5U7gEpbM0n%A1*fu&>6Y*TyBjH+-dCciM?Zb#O%6ck}**5t1B3suqK z#L^i2SnF<^&iLe=xNX3i68!}@HM;|FSStWZJA7HUtSG! zY%C?`p0}x{BdL8UU@PZ`Md)1ziGUmMnD~X(FVhXNJ0s{;RP`3+7-TC~?=D3$W$Swh z)8Y|A5p|usoRB;F`rxo=yu0{rGodwo-u&00Xoi0bnlbgFj^Sqm5>qexh8^JT+(yuk z<6p2e?hvHrjD07n!K}K*yCt!=6sEeL7whd(f=9xhi2(fpe|nLoPgKo zdcaoiwhFOX8jva--nZ{OTQ3pxlWN^bqsJQox}`3}qGlJ=!ADm+bN)(iVScX~P1M$c z?Zs}j+Ha7;{rsv{%mc1%bFA7b_k~d9!Y=j=$CWqKDlrG&!9JS+CNINGxW0@`O{>a3 zV*b-VfOtg1*SWhyvip|8|57G>_zLy3A=z?>)69AZ(GpvLEU+D!zkI-(Y*!f@8jBcS zjb7U%==VEmJbJr6T~sJ|7^g^=w<29f#=SB7N1YwmWC+w+GYoxp zBqEPRFG)c8>KdF+I&z{&gZ}~hjTFtq`t!;CmE#`?O3;M^q_Yt@5#E$egd3}iRp6%m zuS&!_?M&QT`KP;n{}+bmiALiCX)MGBu=Ar53}i8b0O6MwGB*n6duaE4{-8At?8}9M z?ysv|A?m)-%bw}1ME~9UM&BPv@>TtcGWE;Sea>;1#v3y|jg28I+y91PZXk{3$}Fxd zO$nKkQ&#?mOAdiuLATW(#$P^q@gKr-m_ii}R$V_V2^pufXe|hssm93eM-_QnAqknV zHU->?Swe_@ z0G*~2PyeA2shr<^n&ZDXI<#I;KYGzf`dIs4Mt|5o#GaaYr}pZfH@l}4rFHPraRZ^B+24T11aH@2M9SJ5ZMHe7YXVx53$y z7tqf6kj;-zBNwCH`!u>)YGp-zMtJEK)(Jp%ZV0PrW& z!9z!oMEd$E!Op0;4HV}kO{#8bW^sAhr@NDmDLq~7$x14$*M!}LFQXVmzvi_jc0xZh zurpnWTXkHd2>tj!-jHkjJ1y4bg@CSSCy!_UItY-J?^+#r_#q2preg6pXKXm`7@~_bNDQ9G6 zdas8UDSPueEwE=_s@!n?E&x}WMlndz+kgMA#j_ZKK@LqDmW9*KPimNR)r!TaQOj49 zCf1ILCDKe5spbE}FS#%x{<=}WBr}sUhM3zyojN01GN9TrUie>Pk__5fo4(SJr;ya7 zg{*#U|5Z}XdQ|k6qpqeYM=7@pY3pQ{e>x{^yX1uL$j3XsAF z68UNlV#w3Q%%5y15m}s{Fca?T%0Ex+)AIeP%^6sMX|?*)OK* znoIE?E)+GuNISexWb^{7ScmQ#1;+j>M?#Fgl%RR8=<{v4FpuC7R6ieZeOk7BJq-i( z{Hm)9n|t|x495#_A1!a1e^E!k&`b~Md>K@f;~)I=g@D_patH~{z*u4*zr)Fc34hD-HXdq57%2^4AEXm*#Fg3iQ|ysme<$klTquy+6(xmur;#M&5bl*dZk#KWPHmo`_kd z5#Er=IVV{Kr!xFmt*3-VZbL`6bd=ydPzUb3sPq7&X!BgwFoSh;7e=5#qf0mBV+Vlb zj55A{3UuCX_)9hZpu0Wly#oARw$5_m=?Pw>WHzBr73)54J+g1uYRk=q#J3m1Yn`Qf zs{B=@T%c|ZGKj}9`W}Lyo1M?^Q$N1z#Jb;Xu$bS^w*Dbf*B%ftab|0bK%h@ferUE3 zgoH3?ZHiJI^*n7yH7vDj-Y#g-{@*;91E6S>bB3g(K#ZD5xw1EHfpBw$X15=e^JmX$ zhhDcINsyyhb&ItT@l8F^eDw#7RK<1!H9N#CVb8Fh7v__GC}Yb!!;AE0yoN2)`(4Mw zWX_En!crG~;q#H67P-O{Qb7oQS9@=bZ`bGA=eac$i6|sBNypS^j&Hk(xQ!kJ*pBzE zr#~scn403Un<4ac=QQ4WyI7RN>_5Z!z=yEHSa850Uyk!vxy8T(v`(7z6YuR5+-6aF zh-E6n0PnPOr)(088idVV(!0o-qAwE=)r&dV&>VanR4fh(pX zZRn-$DFL%hXY$n3ez?1{B99KP1w)34}Q!wh-CxP1ud6zS-e@|SK4 zTA)6kDVcQ>0mq?@w-{qhWywA0bKIDt4bo)HDM>8V#a@Qi1s5Ytao0R!n=SI!|Jea7k&Eym*B;MbyFs}xy@p5?nO%z?$YRWT%$eUk zuoH|ZTJcK!Xiet?%&FRj#}rodv1Gn&6R)J0?UTA4*f=2K^zgv; zsDtm*mD3C6eFgX9q}&H$HWqxhU%D%@^O!IPz?kW8wt{ZXL?}22-O(NdAc)rX-&LOD zfc)TXr`|8wm#YW9Pnr(QoX@sPoX#|*eY3r&cVO=$S@;?OQYPOLDHyw|7{KAH1upbyHv!{u8v0lF=S|H+T28Dp_ecDxE+d$+g~LWTNkm&^nghiUKIrHj)sbz66adr@NDF2 zmHn(*Ub{okSq#2rkn-(+hr0dqk+LDwOE~%3Bn3FFktC?LtP*GJyf8f+Plfji7(5YR z37MIgU%|!-6@1~Bi0zod;GG3s(i^4eTn?X*Pj&U}iC^jffVR7rrWx~tapTC-5w}7} z<#w1eeedSQg=m*LBk-NhfAv$x#b_<{m~j9YwPk$z`@OO6rydDrQ_sJze98^G@Ud7Z zrGVdNsak96NNx4@bzb~XR2n2!oxIF1XqL{NTAVe~#D!fC1PXyWFC>1q#j_rWCAX|ZhRAFH*0PgMeDTc56EulIX_jyz`5@+4AR*2W&wQ<;+ znCBa>Djvdf0&44_2^2x4oEV68K-Dg!b|7f^o127DD>o}OL$65(Q3t)3DmsD1{B`8 z@%2eQ2vH=F9zHM=PqByC{2uX7fb;st!HZ(o7C~acYPa1#d{Lv~jUB&bBpC)SbJ|wq z{0@tSS`P(7_RU6C<0%sFCtqMwcz=$gb!JfiI81(wV=)JagBf=wlxvE8gTkg>75*KO zo?Y&3mxe%!D$uWpC0$>#Al|P6sTs{zA+0x~3_bH(Wn@2xuu!4s8;SnxD+8zWchLr? z`1cC>U4^fY5C~cs=+!3_fY2YX?r?vhbX8kdY4;;vq&3`L)G#B*=L-Rv+~tpL|Jic9 zt(&{qc8NV~BZIjJ-p-%{ThMH4if=BY%4O<2?f;vs8?_ifbtzSmBVz#A_;1kgBHNl4Jg$Q`qH0D$X(WTe^3Swt!&Fr@3TR&OxKF$=$oVXJilYz^& zIbe}riG`Xm2|rBs&1wV;L)^~?F8W0aJ+Rekece{lb(Ec6W+1`8cB=a*2@gV&eExpG z5pM50%ZpTOlpg)E!DnqR913)1S#PzKUf+@Prnh`QbltuZx1|eZ1AM~^Rr;&!3or?X zt@)lwJDK_Hr8QddSpEL9QOpAlEOArn09%T7wynRELEjD<`*#63ga$jDbSdhKzb{9O zoig5cp+F2NWjYQE-u9X~0{vG?N|T~XDK$m@>;EmF{C*d9UOtZxe=Ey=)A!63{Z=fw z{!f8Z*~a?M`_*TiQ2hss$b1R~0oPBi42m8ik?)CZp#{(EZ4Nl%F8%Q=erU&gN2WMG z4O6b37U*|h27c)^-NdBc3}W+5IQM5?FK|j$`}@05r_xGf1cg>K%Tu%-^M5%c&laN7 z*P+}a%=}aAE6hqYM=g*rNW@2W+#-m$(jcb8aTZMLXymhW4Yl-brj8{w`Zjf4K36&W znK8glxIgzV73Ik0>7}`!cToh%)idsfpnkM7uV-WaHE_(_Gw>kJ(vJ!0sT^+gce9*k z3XbOXjjCKXgSYH9urjkn$oL-j+9sAHVjO;XbO<_DsW6*TSI2%H5niX|FHhm`(|W#V zg6_!Km{Ot|NBm9{v+Oq=%mWv3(o0_up(JXe_TZg_@*UzlkW^ACsQ9LO9xf~SLN8!EZ_ZI+!+cI}DOZ{(coM4}juPyR%L-6j*H zn@)_dTn^ptlYYha6U?`SC4+TjzIOy>%6j8Pq*)~YJo<{G~!X#qJsvW!q{X@>xtaj$41Xm1u2mEn1 z7Kp9JIQehCbsS_7R#I1!fbL9y3aO2qrIU$@JFnDwh*c($6J$_&bUkLpVHPx>Ve69) z6vJ_=VanhQN6yv-_Ly%;|Eyzi%ieJ3(c=~fi^Onn=LVVS#tvQoF@Izxj~Lo|_x_Wu zqmwLoUNT!v$i8|+34X4hz;Au!8{THWaJFG1n}Zjmk}_|rtHxt5QHh@Gfhv+G$<32D z!x~yHNnLNZduew~)wl-7}>uDh&j)B5rZdE>eVkJz&C=v}J;B4{Y(g<4V#S{A+$OS4h0A z?i(IT>wDVFu>U6bIb$=@;5fh%JJKlP;ml)2T|cL6&Dk!KgYb;$QSR`4u@4HbE7p1b zP^uOj*eLUCjLv%#LmPfi**k3k^$eQpMm<7#)WSXwoROy*GQPc9G%$>Y2-EsyDRF=C z0>_Y5iub4QEg~MV*x6*YKM=OV_ZNv9*fX_AH})271l1%kkl5wjG%q%p_bGJTP2Yk; zy);3uiAP*vK#ukA(^UR0tmNYSE|ZZ`cl^Uv-4JcKA7zGl)B#q`f%Y!I`w`CoH8;9+ zt(w8vk09;nJ?{;gvwGJIukp?>d_vUzlJp4&ZS3d$W$8Jb#vLy&q3T}(&nmJ9i8}A7 zD&N5d#XayT9Lsom*^gZmGhY1@%J`r=J3YS8mhrCPu|3g3-``~gje=O!g53x?Lp|<- z!W!aoVRM_`hHr@d>Gn?m`skOGdXio?>O%>958vs&Uwwg_r6JBSITgDS0_PihbG_Yu z=ezL4bFnkC)7YCY_Hr?Z0C0I?bfMBydIfJj5IPQd-Ho3Vl@NT*N|;X5f_Sgqbl}bC z?=E)Bc5fOOYT{Q5B)9|; z+(LlhZr?obd+++z{Xf&I*Xgr&*RDEU1w9zL7kTGOfEO+neWE6u zR&@H+L2GzTqL*mgxN@4+{Lx0k6yJ&=!GTSq0zhmO6?XYt8=@<2LmQMfRWQq+R*exClN&?C$#O< z!4it6aCw|kom|_z(cZ(%_gV-KI(_o=vz~O#?_5-G#xDaNzL|opY6i`Hmn-@oh$Vd3 zs&zkc4K8hQ!9R57g)T-wWe%i3;JW4rD6I6)AWr^bsos3_zuic0{?R#o+td0X4h8(G`>spe6=b}Nq!+CP(oQkGSS28Nn3YGR8{ zr0?9WF*?Mq(7QcEvLG+0Y{3jA@h{FRC6pCDFl82heOJDp! zt%Y&W6>3z#8=MhM)W%D(cg&dH-$pWH}TDgZ5o&O4apBl2^iaV#a5zLmX`1J&~ClcviBh%5n%i{*_`OV!Xjm4zHk#}cd6fUSYqrj z$O7l1(*2o*9gLf^2?+?s__Q@jmMF+O8!Z;MWiy*x!BuqC7N^0{IHJ#t;{Cn|m%6^q zL9>?R-A6j6C+q4)x}M*&Zmd0)nT?;yUOg_g;^c^WOwDjZ0inB zZL@)hJNx0gwqc&`8!^{f+zK8jmwg2#m%W?@x+Mx`Ln$y~_X2@f2{4KT9h@bQa~K-f zwBtJNdEUJib1f-LqjOU}=nE9KXD0sbj1QI?P1t&huli(8fsAp`+TycI*zrVBl~16- z?aVV;&@67upOu+PijR8kki2Hgd_$CNH=MqjWPesghj~z zPIdpGDjvY9o$x#MlzbWH=K3|V>}8kJ`qx;{9%Rh;@?#>w`?u?toGfIl2_nIxEO1BV zNv%1eDCd^9gasUy&+{tg3PMqWLe9VAZ}qetlmK28}gx$9ZozruAM;CG{3L zUFVkaNezAusIQX=(P?cE5QZEy8&eA^I`)Naq+vVxuMJ)>;avOE?BQF1p0!o3h~ z5ZhhfJd!^XO~t(?`Ja%Wk?8P7=X-;Jb#6gn6ot3c8nvmjUsbol%09dvvstFJ!S#t# zy@8f~v7~syW0)Gao8qmQ?qQL|^`zYWo|&1g0Vlo3W6SIE^xhr9+3ON>t!l>SX%8^%=F&8sa z%q*E$f1cZQ{XNts;Bln5mX@uAQe^h&z5gNgQO{%HbN7FJhDz|@80>k!+GV%p%A2#;7hc9&7^|S?lWMT2 zcq&k8HT;oa%1mBn)$WeZD!X}JI<8~{_|1uX|4VmQWHd!UR8C!Y=f6hg3XT6GeHF?7 zuP#H8s*u*P7oGJILGgN5b=BBpr{l?dvQ~icM{63B|0T^J{Nan`Yk|T$gbGIRNSq)% zI$5*eyt?uGm*W)Hz#0F@P&O#x`_%~kvi}v5X8)U~VkK`g9wULj6tTd;L+s6DqP6~i{R+jc|t`%h!84N`s zk;#CsCtd6eA&1Pk>i?r@z_r-(^tL5M?*A5-k0>$_Cf8CE_y8Qgje&^Ie zLaVdDhuaf1ExXV-W!}KkHsQyU-mg5}*pjsW{f(k*$M1YA^?xM6VY%aK8mtW2|J@9d zF>T+y+_FCYMiB+?4hjA@9MA{2t}OV1HJILz@+5lH_<*WCxC9K#CN_>N2K7-P^b`*0 zDW%v3^uu)s>R6$8xQEH5Od4E+ za<3vgsQAd%VYr9z@CX&dz`GEF5>8kM!>Kb^D$E zx{j#o@^$r_7CF8te&e;h!I~mezqGbCRhvHYVz4^M6 zEgcU+3HU>dvb?j^fTg7pDXd&4YE@fwMVqchJ1(du@5Y!U(c_$yB7yCc`!vXn7{V#7 zfuy)4z_tY378o-8q8}t4d0N2;cn{Yi>-E=Q;RX&XB4fV`c@qDD0S+qU{w3_|>YQFmtHiUNDu} zcPj{0+SH~1CX7~G$=R~LZSPhV!t_cpa2X^rJ?hSrxFpc16c|Y2xj!l4^kb$(s;0Vn z*jv=O%LM`zy;bYhjRg6MxRYwI0M12{R=b7LH39Es&?BkuHB%ZXW#p18fx-Yw6*;i^ zcVukYTn?X@`fv%U`!=Z43kU6U-rL5+vx4N%MU|@t$3b5yV+PZ&fpid)3yIvsAUf7H zUax4PICo+zz%T*8-lay>S1WC7wyw0`uNQw~;_PbuFN6L|(PR6WxVFOm=wEi#)^0z# zGqeL1TkBmb9BlARPE3$Sk}ag7X8XZrV6GgV!XvszH&VP2oWi4&AJ&{O><9!Gmy_1^ zcKXLegk?|p3N0RWkq-I7(`)ixFu6CM=-Qn@y;ui3X0{;m> zN6bO*TB0>avc$bU-bqxuno4_<#CaThry2dcjt)flQBt~Yi_spheRKBLoJYx2F69}JyUlO#nHX~ zj^!nR(UqJ3gHL4l=_7R<(-Eg`nXo7p9sfAxYqY;M-u z!wp0n=9H|gtblmrxg3l`?Obh8WLp#^`k&)Jr40=U0&!_#OT_A%j#=qhr6nbW;$=KN76DXDF zzj2yX-0{O~JTR|k0^8DwLPpY)*q2u~0B&GegS_9WD}`(d=RW<9Q*V`>(tfR8JTEOL zxlCE{+Dt?<-OwCLM*c6$Fq#J?aF&*rM@s^*t-7!K10r>kHBt14crZ)c(LP9{c*v$C z6-NQ(jM7mKg2^4gOvs685qXMCBGbs0aWdhYIEg!3&XnZ~#H4zmkpivK8n`e)#b8IN z@j}8x+HwrVs370ZJC4oxVz5|L9qBQ^n9Ti;8;ph>OR}smA4b7kj%8IqtCr3p$>@1% zNsiCC7F*$uR4C`6B*Xnb-EOjIfs8PW;iLCV*O^y}OzDd7a2HBcgFb7)lLj&jVxHtE zu@Bk{w(g?Qs0q5nRu~Bra1&zBrsk8IUvo`vW~6(?+URCg$;Fks{ox)C{&tP@JiUTC3aachO}#*bQ^I(-f|%sSnU zO`Q(|b;MzkHHsGSz=e8w#CB8}XJbjHSvJ4Kp?UNMUTEyZ3WSc&oGihIC(-BJn4*EV zmejsGG<>I1Ad$_Eia^e(RDeF~h(7D{3koe*oe}D&gI9Pk+yD9z#LQcGM1MlU5Pr4$ zf;Q?tBjlje07xO(wl8Qk0nQa1Ay!mR+E!0Wf)Pvgwa_gT^yICwN`CnPER#wV@tClb z=3bmur)xdr55t;hnpH#5#nt$9Sg;219UDSBPo?j2NE_qQP5}54$*?GMt1r4ZBr4!Q zXq;sJkSBEzKkX6z>>gF`-$SiqVUJ^4Ms>wt9x6Hznp1kXE@r_=0gF*ZFJYrbnIE7*NB2(wJIw4QKl#QO3B5}rsJqk}7E5Kjk^lRRBC=qEeVUrIA# zj+|3S-rL+{B(zLm4f}vlHrohO_zJY)5Td8{7w;?j{ymmPvjVa3;u9%h1rK=1u#~YF z0Ep!>PzL4w7C^x_)W&Em8`J^Xbi_;}Ik9r$xZfWNfdtt+Gvce($~Qbk>%(S{TD@AE zon>ggMI}&TNM*8`$r>4v^akFR>PfM4)c{g>z4nC+TD>?g4<<*mcO%qENi3~Ck!6jK zqr(zN;)~ADdjWk#Lzl*+qhJZ9H9Vv!3wdlL`v!NDB;&?BorF4|IGf^weFX=U3RP0O zE2&L?h-26=&v{y-_;+ENb^8B)qlo{l@G7RdfXCy@0L(~E{Wv6`Ra)^}KsmTAx~{;NOx*#QX;gD( z6hQr54&5qE!j)=HzfS&ZX1djR+sJI5&+eZ87{Vuj8~}a9L%s$oYcUC%4rG=q>80&_ z6Q96B-z?Dm6d`UiST1StA)_9H|3!iRaRr7xkMW z65fUdF*A*hdV+&V`E|(s>_x1aiFWv&2Z?BKHVgzaz~Up zZbXvHPa89_&RvV#b^P09kb0aYG#d#mF-<#iuR9f861+TmD@xjMI7P^qp$Npg&F7JK z-LYVmwn)YxZ)1zDQ_wGIgX0nO29pO&AO`+hgY@Yc0!>Vmv@@K7i0_f|P@#7QIMXdZ_&4Teh7?!|C?l;Q4UFnc3@=+N zeBnWtgz)~kxKyZ^^D~`mw77q%ww_tXvvrI=Fs$W9rq(Hj=^>>^{qaLus=}^h8X>pX z#f7m^VLGtW=7BT{#x+h3s^#&Q{vsa>tLo5#gR2i@7i>L-mr4NlfHt*a(e#Sn1lT0e zQ|LDJ#Q2}6S?H5~8b5W1#FpC7Kv8XF6>K?!Z`PsEW( z7V@Mcz%=b=U2FJ}ANmZ%*$%gj!sP)&DYh&c3`w}}Is8p_Avsmc!#+ny(jnXc(^qm}BoZy(M$+L8FkgAMZVNajbs*UO< z75xtfhPom{Mvn{y{#X6ci+=6k1~k7`?@yM5WWw0tizr71ki;05Cm-IO*Yz~3C2e=O zJ((iA;8?Ldh(!g7PgB830R2Qr!4F)X_Qv5`Mh1ZmMq=CD>Y&b1=0DgHuD(>y(sO;= za0>EURS?>BN2?}pLn3#W9?q5Zx)VO_KZr3I4soNf`R#+`BxANq>&goYyIVas~c;Wx=^f*tV+bH1QjV1K5bl%NZ$)z{Ano}?p>f}@-YX30DwY~La9)# z>Y<&D^cn7G-myW(<<^Qwe8zUUe{DZ7wS_NYhVEcTGHn}^Sk!E?JhA5CTh^g?$-+dIr|8@v&j?sDbSe>(>yYITGU5)IdQ#MOYYWiLS% z^)bqp=F+hLns_1*X(gnU-RHYEBjV-Frgp}(pI7vk?)RWEEeSip^7Aue!s%Q0HYrFc zAY#~E9w_N-S;`3aqt{>rK$kX!a=qx|kGj1MF1>ufK3_cc6ff=(bCgj=XaBqH08`xB z%&LH_gZdr&cN=Q8`|!GfCjbe+&FyU&0jc1oL)He~|1v|gOVt_GQ)&jLD+5qq67Zy- zw;~%1dynPw4k8LaEt1F9OgQJ~zNC&N90c zTpa}JLG(UU{o8D^VB4J<(q5I+disy#&2;S9+*$-wsxKWzEMqU?+(R#-4lEnPZ?VT9 z>PY`R8mlq>rB89Zt?si}?z(hYMmR|C1w}&MSC4%9yt<}w%IC!zkG7bTq8$sgNrUrA!Y1t*nQzrOiyvE>)$W@ z-o|L&sKgsp0(N6%ssGMPawmejSB3sti|Gu3O7{^iUB1TRnuB6|$IruNR^MAe;mbR=zL5> zE2{xn!dw|=@%C=JI$X<=?EAPgCp*MAG>fSLz>PxiZX>ARJvnjN8?;YhO#D<(KJ?|Q zuo_T%=W$G^L}Ah5VtwAQ;cI3C=(S|PvzX0kEHbk_l{)5Q1JfPn40x8z@^XzwK=5xq z<`4(`ttOOF+TES|^8C2f&1Pa!(Av>9KRb&MS4ausi`w6(ujho2^2WV9znfWGQ<0Nn zh_p=Mzz7H_R2F2p5~Vl_@axlKt6vy1bdiXyP|9lVu8ECvM(#VEUs;rplY3{<#TK+N z>P}i8S*%?SpC2=qzyv6mK7s#dc34a_au$nwa#hXKFP$jSJg*uN}vXkl|HD~&9_5C^&<;$ACystjgXrTH_Ze^sxVsuZ3B- zL+6x3Y}APRud<;xq5Z~Z)#%sZuMYOMwnYI$JULD>GBTcyR%}@+3&6}`PMJO8>y7w0um!AWlea_|c5HvnmYt-EwF3&p}!ANQnv-SZs{* zRf%32otCc^20?;^L&62`Dt$i`9WOnLK^?QP?i1O3OURyKT7U+pLi{QC+Ge#oV;|wmhGI`vqt{MsH_txT%dVjZ` z_iFdXmBS%xFcDSa5?C#1uEjlZgqN&3v5;p09NFf?vFPYzXj?OXB8`TZ^@P)+NQYP!yqernoAt{};`#uBK8aiIo7%;UpQtBilibW_jl~DvO%)&$0oQOn{65Gg} z1QHwC7L(IMndpw807-B`h!;e#ev5!cYQBOlFW>M_SM9X#_Mg7aLB8nI#pt@u?fR{0 z-Pe=_$JmGK?q}Cty$;s`ExXf}+uK{Re`LX*TlBVbG;UAsZM4! zh?SNIon(88LQhEPO~bstU332BG#Ke)4Z+dbb`rzg8z~AjPK`E{9f0C{u@CvfcqnMo zu2;HD!}?)4*jmF_WK!Y`QG!g!90Ydyn$d;4sn;BA;2-Z6qu*d_W&fd@U zb(mo^Uv4i6|Idy7k((*ZEH)DuR?Z&K>Som_Vz-zpZ{O?fNnDS*Czq%NUmmohW3((u zWN5K&`O6Yl-n4+AAXBl6^wFd&#Y16P8BL?vhE-tTyCY-Qi}LSdUgJOVI^e$}PRLyL zM$duT7SO@GqDF#@q$B3Q=5rUcf+AB9823onWy!L3w%M6g_O?DKlG<_Ye;w)ylUe5b zEEJWn^C|`uwnnhaE8=-g>SsYE8Rp)I_@{45rIF~S)jcrnfa;(?Wnv@R(h&-+1tujY zAPOcHmj78vv^rxLmLFdBk4jQf_|bS+!tb7Q(dQn9DEVKuM2qBF@I!Qv7Q4UBQ)B0lm3m?1V-*wzlM`Tq zk)^z{9Ro&RnG1>R4yVd|ahoj=C3W}Swz*w)z7=SdGc62$a2>$<)||r|5$Z2&5+D43 zReOFru~UJc;^wdWtc}LKaWS7h`3=w{iR2H;i5?X6KU_ZDHTB1jR*}{84%zi=v7Z<9 zUubs8(OQ1LjOo5+3;ARAd)LP7-tYw`GxAg-z8(GA@fu&$cSFDK$7HlToNSQ3Wc@m6 zaaImaKj10*FfMr(>bh>njOR3-pG>lG8hCVi{!6%M^7f@;`6s!a@Ih6wljh-_wsY#~%$6zytsUlbdM zrq>xR{!hzz&gpXi<(0@Os41*BV~1gFg9S0P0`?rdR4Q0?^MrRbRo`2^*G1FOp6s!W zi9@~8aObh_!H4l#UazerSH(NcM2d#)CQwOjTd$UQ4Y!UsKTkaqEfLicw0ir~l#6$Z zFV7>LVyOF=3_M1(Jy6NPeW5J&tqz|^*-Z^=TaBV96}cfxyUtUB6PR#UZ?W$mN* zvri^V!pGm9ty=Y4s3#|f8gsln6Y7EHY}i>jf%%SJ z+t5++s#?&$t^@K$lR(V8ygVcdzbmL5yfrfJ)YArJ&7=TnIEQV3!|HrjL{|yJz!)m* z1S$gXbhl$>u@2+3hGIA_25~e^Ez8J{gKWBQoS1aV)Sz`iJKdOvh$d4;Zli7Y96`IWVb+X*!t#` zyDM9H=^J?^S$9xh@cS+YkXR0<-%KvlfQIP|S6=#oho<}($C&>ESVOL|#flb`p2m>V z%{6S74g*CKq$;Du=Se|u~Yx66j4j%-4LnQz2b{MN*nb`iyBi&HiS1Z9hecFdEm7ZU;5s=uLF8zn1~1`zOi;w{ z^O*hcUV#bQ$-m4b{W$Ua^p0nC@gX(7q9KNVLhHT)pYC_Wz=;hT_h$Z=R%Wn{kbkzW zn1V7o!mfQg2#IFr2ma6Te1BAJ7xez^^atFBKh1ZXTt>0yUs`QE29hcROg7xVnQiw! z#i?!YICkDg_fLpFM9K*g{P@$Sw(s;Zr?Y#~Ka$krJE=?jCn+(O{Sl+@{<7V{Q7Ye- z!lJ}Nq!E>W13ZZJa`!9}aKW*0wP~|{=iOBLK-mAiDQ@r2`G@tp1a_;ZiPuDmz(+I* zo@KEkt^4lf<5G%XLh%Q+m$#?+?;%a+S^W=t${{Dq{u5tsQ%)a=)?ecE&Rv>Nf)8<> z`X7Bl_A-j535_F+;2#G*4Z?KTFpFv3U)f(l;uq~iC148q>1XMe(WU?#LW<|NeLF>` zExK~HmrV0Y>|6bhbAft!+4%BZ{{wd5O-#;=h%=say{e}K8(D&y(;Er@qB1|uP*8aV zgVk-^@QWgcp@ny*P5j67$=du_5Io(?rI|6ip1xb7zZ^6}7ja}yc z-L5!wk{N`KSP3aeeDqO}3S9#?VZ1&&f7p4Zvb32OBwPO%YN1LY+IuA!D~38IAbmvI zcv&CL==nL3P)%h>f5KW+>DqRl2nN&~Hw^@%%j|*R`%5l5`ggZ?yag~WtE|EmWQ@Gl zGr`r_NHd}}E$PJF+0xSc&9m^5R1TMBXx_^up_{nlie z6M&_p5T=_uZqp<{#gHf^so=`E*i8ja&T&Oh19=#XpGtpxhmhC6nmH`%{cBmP8ur1t z*2=cTR;cyP9L-WyG+u@iY1ExqBQLb!6J!ymVLrzUq?8x`DAg6xE@Fz_yi520L7lV{L+Mfnin0NlhMS(IN~L=Gb=|?=0MEH$EOcAGqbY` zWKg>AmD~3iW$AfCLO5EV4*Qw^vp|%irR{SI0ma3^`t37rwKj4mY0s#klnuynaR#W? zB-}%M=J1{G{nFfwx(ai*J$9a}r;#x&uudzs$@)|wUMijrnJRKFn8)VL=oG@-#e*ZtcJ*5tD6f1tYK#x>)f+9DsuBGsUo(`4l^2>?@?;ELUesMZD? z=6%hUvP4IXbr+T`IeaV(?oh)>N%)~sc$%WiCDT#y zpp>myvpeLF%?{POK({BB^*gw^_QS>U#e+#CDOvFqThnWp(bIRe-e~dHJ=WKU4c(r9 z@eEH3{o~6wm*S5t_y3md(@8JqH!ewfPL|&LlMQV(MDahL=v|<>jKhuY8f=1t!~2T3kJLVC*pv9aE1MTe z;M26$Oih@z$_xk7hNa)L9(j_$kYwhv_hP85!QiTN>Lr6*m<5Y8VhfKIvGBGWF#H0I z-Aa#Bxm})fW>kJBaCJxOucNX_Ld(;%e*MxWNV;9aqS$i4m+aCts>v~k8^H?anT4AX zPacFrXX{WtTkqCL#pL1THx#rq`{P|tlCujtA{L}^;lVdpuI|qdJFO=%6Itvny=^~MtrL2CMc0F0 zzY;~|=LcWI!&;5|Ah&&Ayqcfd8y%MzX!w?xWi2H6TOx{M-Ww|+Rd_x;@Cdp3L`~o? zxRjG6Wcvm~Ib-&oZIb5<^s*x($qJF^;=n+f^;=pO4|JEw$x#96r{uSS(Bpu z=e-Sx{m-}Ave-?w|D1j9J9Us{9VbGJ6^lX)LtWBA-t8udH^QGlGjT>;xX2Hn__?uR zXIQ=)0-Ra>bh4`RulE*N2|Nx&a?aqW^OG!ek1&l+En$k7ozFayZ;PJ#V+{sI4RRB=2^__6a*5{H66hfK6FR`& ze_6#UTyY+6FyikD*%6u&_}eYJh77(o;c#qQTF^nb%-G(w9=|?XCQ2~WR6IV}!!DHB z%z~nn@lp#?vc1a{Y+oaIcTJ^1HXogsc8HcX3oQGPK(v)srRBMOLTQtNNNB;2lyH#? zSadLtnN_DNRY2Nn8Gb|)uR~_Zrdvjp&Jg2CJsYZ5-d#51Vs4l^9!Kt>Ujb9gB4U4l zwIWlBKa2DbaW*-nwr2N@vr|NHT$eXS1k#27<;7J>eMFRJ*KbHKlgqH0-q`nS69{6h zV%ehmb`hkXEKkjJUtGZLy^pS}fGS3rY>+f%!v}3?wZ?LjK=l*KnH?oph*i{!0OggZA+!EX3;jJD?0HP^QO z6r5H(4=}*%>>xHbk+K+ zX~_BOlS9aLMbVEuvwqJ5o*Ix(2M93K@Ob+(a92qDD)r4 zw>mw4)b(vRK-`3^#R=v*7Wc^>55AgS5;*AJJaDir@PWMpYRJ9G9!iwMp&@@9TBqun zBJOAKIjAifglx2HorUeaZa5S`6TI+DGnVMvqlG z^atwpoGM4`Xe3c%fi15^$hK0_-I9p z5~d3a@mruaS9bD8>QX#e|JGc*dK$wHWqfdZaeDlRKxG^|p0sODsf`xjXWN_Qqqp8* zla}6=5kD@&2Za42HXDK;L*Y2pf8*BTg^!(2)Vt!kCbJxtrfe#$A)HcpurFO*1}~;5 zwC;bBvZpFVUha12W-7;+>Zn-gpiC7Nb=!!Ln!31I`(fBa09>s%bfq7eL2Jn#wdahR z^f-~Yyj$RKjr`yg56GiCVqh?@v!Mh_LZGxdqpxy*u-YrbQ^NY7x{|2IA{WVj1y~-gHop1bGg)hW~W@TVrR^t&|iZwDsVlE zh%%TQG*|o>G-x>|gMSPBgQOZkjz z9OkBw&;QlPS-^yoNG_aUp9=k^f3`;cZR6sn9+ z_``N$!N*BCrJoOZ018>W z+Fs41i@$fxFri`vWd`P$mOF#(KaaOeD(dX}F>R@$Cn%!hTV`N#Lw=VG3BFog8OjKYO4PiliL9g>4bfv#!*Fk&K zpe?TlPa)=jb3LmI-;CGW#H8XrWvnCzZ?LC*DezXJ3R?R6e{%r5U|eEz;SPQb6qIMT@bssj zBGo5a&SF>d`_s#h*3{i9GMgkCF!`^-TT{T8&pj2VG>I`Ur(%CRIOrODN&PQJ8K?#$ zB`3W&3*2HU_?>@Az-8QdYIX0#-u3pF<01>S@`c3V9l(II!w_;eASY zFDm{T>_(R>l2p_%$dEr@_qpKznb<0*%0gkQJ%e!9G(YzDOX1Qzs0_F{RhV@wvIg|v zN(<+|d)r!R!JuVQZNqGTm3LQYmYS2uL33URhI#fb!w&kJX@<;ymvG;DtwFG<)5ehO z$eeb(A3|V3VpX*O7pK#o;n7q$J;`CkkkWRciSOdW_*O%Y*$C08yWM9TM#of|xRQ_& z&&%U~2VQ7R+G6h%9k8Vo1#5`LloK()$?yYb9Ol|DVzu(5hzblna54S<5A!T>oSsen z=v|2H^0fVPK8n;@V~MsDKYq6=<>JrrSx96qxwvp8chr}&y3 z-M1O5hHr*Ov~y9F4xL`-T*3b}D52A!<*%qzpRUJk*i8DqTe~PLudqX1TBJpWV}u09 zlt&5p`1x1X*JYhlvPpcRBN#ZmFxiQsun}TEafD|_XwV@M3W^;9AD;SZYf%#8Pt9l} zK2ro?uFN=gT`tCB<2TI8pm&3l*+30YL-+G-WZAMPU^9c+JP(h{#Q8a-tZe7FMsQN$ zd?AgaLV5$s;9tSE2Sm~}D&IyW7B&3zFv=f=tYAW{e}dvzVRGj{z%KWyC~Q)2H)onfexIXV#lU*hahBC3Y6wh|XvX?%ek z3TmbnI~@emRv<)RIQ)*qW+r32Z`OWDJ-d`D{0^2qboUh;_}R3*uI=Y;GL=%O4t~7! zw$$+`BN2wm?m5m_0v-T(SQ90M5jWnj)B0meh>41c(ta42uFG=lKJwY+!`MEopcXlo zl$3U4YX3=H|Kpy}&OmCoiYpQ)RYW!$1v!aI{?SGxhx z23{SLl2*$s4#syVU=JZ*{?n=ZYPNwTkQ~!Fm`ZTX0#spnkwDiW_P2zXrkI|EThu%T= zZcmIG5Bp|Yb5+lTL8n=hcPGBecX!jg2aVm#ML`t5Hm-%iJ$o78(CM{^mj^hD{fo5d z`~ykEi>w%Ub#{q+{o(Z1e`}(Ns|zG@x&+?!ZR}4Dq@SUf64;sfVvWdNE1t`Vr~fW0 zoW`{#7m8rRQ*(>tF@13SxZ3TTwZ-u7V6ACw-zxX}mW6q6a9&cEPx!`DFHzIO0;etC z!OvD_p#*MlXt*l2;0B=MwkQ4cPS&2K%J>flhsp;+ehiPG0`UM+(;n;}5z=pV&w`&e zUN^F{f(j$$bRYj8z(l5q24Yg?ih;-QMOD$wGUuT(Dbuih673qRRovOPK09zokgIAH+@>t=&HRt_@D$9_)+sN7Zs@p zxbHvjmS5^fs-|?xS{2*IWTOicTv;x--(I<8a==a~-_{_MsEKGJ-eFlHrYs2;r|BAJ zcVv$D4u}mY$5tcCVT5=vmd((=Enot;2_ZB{Ft?=VQLViFqWA&SMfV2efesF1B{H|8 zP+B);&9Rs^%;_0lE^UzKbE}jZPrXf!0182*Y4166z zfmH96I?Z4|EJMZ5iB#%c-Jj_Mc{}s$lD?ilMAW(?op-{T``V^@rpf)p{Gu!bY^X}* z_y2wNR?HF2994x^)$Fwi0(i)PE6RgX`J;o%JdgfCrn0=tWa?h$*~Y|YJ1yKnnhXVJ z{miOuDqT^79>e^#PzI`LnFMo5!wS{k%H47b?=|EFSx^R zk13ArYz=>D3hMQ|Q=*YL7(Q)l!jzi_oCCv`IR4mn4VIUm?sppwk-G8#-0 zt=Pka>X(x(AJkKbGKS`}z|8L`!Ra%9wn%^8zeG0}hNY?MEOd`=q7WPP+=6sU(#JC2 zfox7Kc@i9ehd2$c@p2nXjP-3phTr!0QCxmC_k#y!XEkicU@>zepkh~jvyJcOYI{Fd ze}j&HP3pEqD)jK>P$I&zQ!Sf1{k9Nm?^^cV@nUf-7vRHkEvQ6!34Who%DsI8mHEwR zgrjC(I#k$SmT$5dU#en8=Kf}y(}eq3j^9R4dew1^m8O}7{4+prpaN-Y`eQD~+EZso z&{z56q0i6@p8jG%jRfJFDXJ3vU~K(E+TGG~Yh4HQr%!FzBR%DysG?Q=3#}>BM5)s> z(E11|w8)+lM%B@QG){U76O~|oHzr^x&y-Pj!mFVS4zUz9{ zMnydG#}`uWJg%1L(H%4rlB05f|6NLSjxs$&mUT%#eeQQp*XRrQMWwdV(#5l2wtD1o zU_F7vc;oBT*cckj@F8UL?k+p+(A_`bJk`O`^vs}V?1{teWn<$zf5=|Pnbb@6rzdRj z*SF#@ijeWFbC;t79O>Xgx}bSIucra=7ln`jVvTE|rk8EK%ZG`$6@(aYI>qb1jx+W& z%iHPRu>O~3^dVmG`qe}9{UG?l^C@8di~Ie~eN+DxGLNqt#pQt8i_q((5mqev)h=Sw z%iQ#?4gU8w=HI@rZs!}X1-=(uW;c$F`S(nhLs@5fW)Hd{XFp!ixf_4p4`*F|FoXNv z-=$`qCsI5M_T3zSU}-LWXUt*+(_a_hTK(eF8u*UjW#bimW%Kl7x#;;h*W*ZFo;Qfx z?5fuHJRE##cVF|K@GhHBpt2=QL+tF`Qv-kh+mxuR7rUYy*Eu;^`X&`i*eLUW~A!(e0FS zZ2yOeD3%pvzoNGenidJH5?q2Zh+Y=B+Kn)x=w=)`aySCHsKK8SSapw=E~%(qu4=a4i5xwPXf0B=TV^5#pJ80$If5l!Na|~IemEh8n{%{} z=-_)_w9ay$+D#@^d6n@#_cU{dX{7*KhnAme|mbUL$=cPN4}qUtb^ny5)aQDopP{ltYxUx4oxSji)CT$|y;e z5HFMHw#;)s2xn&Y+}ykdbEGG}{#T561Lt4feBM@nglVPuK;KHV^cAr)g?0i_F(l5< zsD3Xbx(CNL*d}xnSxw@-9kshmA}|8KVz8}D3gk}vZ9I~fo(8fV|7-5+o3iE_lVG5- zE>eB#l*T((G5kWYv7I7EVIg+vAZJy2tE^UeH^|O^u_S1$Q_^b7mv{MdC+WcY07%qx zVE+0h*1(aCGewg2K|UrFTXa3Tg7CNGcE5Sx`iVfo+(NemE!Xf$Y66X&uZ%4?b{gr(%6K6dp~Vahncs+-W9u*Cs2Svp8?x8Uv;8h3|4U3 z;0}$uySux)L(s-8I0Sch2+PdQ?0$dYKDVB#I`!5mySl$DW9X5@s`;b=NGk{8%iD64 z^tqStz#Ur{Z?iAPApyy1mX&Zq;!<$`%L_p7MHP_iu;)PRHi^o#XvTpoP)fQ?y7LQ0 zhJ`EHn_CV)&mIubH2NH1O8mSGVTF5`ud<(eVti@2iMjE-B}&?BYCuiq zAw~8&ja%5LQG}kr3!1*!T&nkbKON%*Ws_aZyW+1LKaJfxvj1>F)95 zN{!D(5p3Z^?0p6CP;-fHY{;8=(+7pR=M@xSvs~kF&g0TEoDA7KcIf@ST>soCH1YVc zk-Kx??RTvvxQlG?+s*d`dv5Hm#YFwA=MMYrJk^^u^t1A_01>UN?RLG@;qTYnX!PtP zcde)JG+tiQ)!)N|Vt%~`r2>d^$Ga8uuaCVCO|yhhox*G1rlx<0AL+k-^?oeP-t#&> zz#lIoByE21?s*{Lf4r;qzBk}c_Nxp@?Yh2w{>SCW`vbmg;_>=^>vQ*YIpOc-cXy(X zJ4E@9gSDRhDUgDyfd}2zd-U@w;xBh5p|_B=C05ixpPh*(Sc6AnP7VCa|7=p7$`hi= z$R>2ET*R^AhHkfa=b;(CeW1dLkV_U*y;4chA_>bC6HVbZjjs_^=fzURv-!tH#DI$; zq%oru3C5~`h53}F)^@@T3YvOcL2*|-AhC8Z3plfy@p+E#S#msU9djk1)) zB18J2Sr#E2M%*dpLiMd8#X{~-+`)#vq62c@X`t3r(liW$gui3DmOylLZi>xnB7rrm zjEapz8LeQt7mQ0s9DwH@?nC*kB5ZklS+q!J*%((*EE}#WWv<5?YC{;87#?Z_>U)F& zP%*;mMmnZDkkdnbua{b4eWcz`?l`b2h671GHfSGy2T(ciQKB)VFv_h*F7}B&ldE8My^|4v1`l~W z*`20cc}B$f29v1KA^lCr6#fs88U64iZXt)9N@HhdARuJSG|GjuaWdkE^=Ew`xqG&w z=|^}-cxrQcc6O$yaX&ZB8szu=QxcxA}Ig)pJfgYy*7=p9>)t5I= z7Vstt4q5bhu243tyQXQNS=b*65>f~2HV>N)+?g|J{`aoh_y$-l?;drhRiIDm4yeIi zVQwn9&~fndXFt3|^~qnMjGO6l{7SIikH|byc;Nofc|}9mpJE|Bnqv$r4uYm?<)-{3+yseP4xS@$LEq zTvts5pbqivJHodis%uw`0xe>musYo^JmH9q~!$oaloF*s&k zR@}QWloN#>RMVjKRheIJvAmtS#<6|Y^wzt(?O(K$CdIRUA(m@@-nV|N zSm3Fy(es*0?vyQgMm2s0?`!(zPmF(9!ZuW`a>WDVG>&R+z2@TL>ZL~iTQNNv^ggfk zPJ>R|)69r-MQVuRjp0b~le&r?8pFv6#+Hh_JX}1@{>S3h)_|0#9pbtQ; zVBGGvE<>u)@L!^g8YlYqyl!GQxN3=MLIh+mZ={G(_&LiS(=nD8Oo?m0@=aMM*rB4x zckA7*^sm#hn}5CnDNOKWL#u>#?G%9^85`&u70yT7Z~ZCDsOG3;$pyQ?u1vPvsdQrV zmC|aY)#I*hg>;C-t~gQcpCuX1A=X)32MIyXJ5feCV!uvW%zZ4fJE~_T*#xp2>)eDR zj>FX#TdTVjMD}M_!=kh0WZ{)Eh-G;;g~l`kl$%bO)O5^-HSX?wrqN)$@!?p}uEIca zhK*Y^2P>|>5$UO%BhvE4vcch8=221m1Hqr6){onoRL}hOrSqBW_FquBIyjpmiYr|0 zbw~H)Zp)0VUJ(kp5yiY5{1uCi+^mW-y1Kt(ht z%8b(){F>vj6)%pa%5Hi=wJkB>P?7k8WBBb(IPd>T?PhIU;exqyX;M-g^^Iv8|)AP_H;^gnhDXcW4-! zJcfCF=XEk@JhOn1q^d&EUF(|a?u<2d;g@?+&#U6)z!k*wR5@i_$w>pKuYCPDgGUjW zlFAe*FU26vpPB>#QoadzLw4R#cbHYsCfd%+OYx;o&R1JA6~8uZWT{i$K!L9Y}Nx>8t=Obd=0- zG*9_rhE^=WBj%ta0hlVWGT^GG(qsp~{JJjK~zuo7s0-zvpAa0W%SryEC+p~DB~ zzx->fLQIb6v6H)(g-QZlg`(b+*S-xch8$4jsmqT47s~x#9aoOA1h()gxJ=l8`MI7) zkI;AfkD@e$L>RfaviUbkZiLTu)8?#(g^B_Iel>Dt+|~nO_W&RgMV4H!JE4dfuk7OOtr|`~*?!;G+5Bn(F?vI{wfWbQZh? zHRiwbgvX5^YvAd$Q#yy8zp=bDn0mmaAaINpZ@&l$uYAWYi2N|v_b42YH)6QS+_a_YF-K}t1ooio?P2iiML4H8dpV10!5H1}NIeaTzcyY~ zHA@ZMjgpvJbFh1&J=})(__kL-Wur#1Z-~p~*RGReDQY8I!H*KwyddVOW0fCLIXNgI z_SB`Q8XW_?SdrL~^BmPSfK{y69zQ2f_|+n;n^ZmlSbR?Kc1)P5hlxiGX%McWR6GCI zQgVWp(pqdWzrg&z?q%|aq-3y`VP+@6p|Ruuc#Yv0>Eb%-(9|daSYi+hTNW}*F^7^P z{Vz2>S+lZCg!nEkbzyqYFm5A>xlv`zNFkM!Ry)EeAtL0oao0%GRqEuW-YFOyLxz<* z=}c`XlkLBTDZ(!T!w)5RzoPK;?k^!K|MFlqHJ^u{gQ3~@1wT3_>J(3`DeEakzGB@_ zdt0jjZY*x7F9C_!q7Njm2tR`mIQ1{FB7c!7`e#b{`ep5%oztp{onltAmTa(ey4DF5 zJTFWa$;}%R=^v`Ag!EJ^cq!(ZTUFOrN-DdVA#5HtXVomv7Fjuxf^Yw|_eE!(zg!qL^$tF7+t!Y_>9L7n9}CSF}7%Ig1$jI{YZ~`Od;?akZfp{m0@B z@EU4u6$9KdQV^h~8JUqh&#nsvpAyVJN&P)bQCd2=SZg~?gfuJiBY;e*E)uv|Otqnf zjA1no!VQ=us?1MWeoQiIiAq=9M5CJmHWsr~HhCU!|B zwGb@qz)O+xv)d#ry3GfhNbz;XG=z#e+|gJSjIP)xGQg9#-oAZoM@9Xr{U0LMI~8(} zDK$i7)4nEWheA_-=oF1CP1G=l%WfIH7Xoh<@?+bCaX5K)zq;*u(V|+M^tsH za9FjZ=CZPc!YN-#qff~gTdwWjOaQmumpzM$#y9~3zI4nXl@%D3KNf(mFvsv14Ol{x zctr*cc1cTZtICz=*w~Utvp>8ErT!|>8%zK!6Wo>Q1>Jy!_+^!xq4x{)UdbV#(d|%h zNcp<*ONPj4Mh^>KGlyHeS|cG8q-JuRxnV0%^O}~LFq9tZv2};h$1gMni7mJ8>rw`{ z2znU6^mF?<&rV+V;c4MphO(9F5g0}L$)p4~JRxyNEGmz^BS%o>UX0efJ(`k3g?LfZt4s*FiP;wmKw7Acd5636lX;Ra=kgEYm@ zWRz5_#AG5+!oj4zVqx0&T_*2F_TLzuy81)dLYGi`sWOi&jdmawPWlok^7I7DU5o#b zuqz)ZCbP%6%@SH)4B2wX(gdb{5Ztykf6CHsz}5?pl4{0)*jG2EY$qjOGOhP z^%JfmNEt`Y{K;&1$8IFci<2_DA=EfR#_uuRcBTxM1u#Raf}c^kOJ5?)1wO8(T9iX6 z=Xu@L7twgji0v|1){%gVdM8WGlQJk zY($f2thC0fqXDYTV#y(et_X$LVuV-q7A#I(_$k7qkb;&k`6Dec71fQ?HR>x5#eWnT z4|33;h=`6@G?KCnJyMrl~y9+AO(?zZgk~PkfP|<=AV+1MddraFR{cDq|jo&#ir(i zdmU-`%dsS}TvRocrXl?tyH-c5g#TX-7VMx0Ug*&HQGJbixk`dxX$?J90F(iJTRUusRk? z!b=ICF_R|wjVX&4R}@zkpQosAWc@>rtKADk{q9LNILG_TS@)WCyu8bw4CQcI&cjFV z4G^u*|55X_g30J zFGxF?)v|`N^j7;50t$7uv>TUH%(pe_ONom{Qamt0pvx;X3KI~QP>nCb*z`ykLlTM{ z+-Ax0yk&a7EBdbQQ!%m$-k_O&A!ZId^2ffODV@ta}4u?FR5Jx8+ANGy>+2v zN_dcs8!AgiNk0mLJP-l5_?G8;4=4}ui}>-ntWFWLja~*%uutXv-$pjKd(>`%QD-g| zhSG>qjE8xw%n*nTdU^|oUR-1~YT> z;aV?m%thCTlcVJ50{^Bc3@jyO>{++|m&>bi&lC|058ek}16)&C;U+Oce`e z|JYXi^X2${0`*vxG*39ejO=Xn^s(aA`oNt)A$QB+^au(Yg?2Afmab0L-Vk`bJ6q&` z{rDJMKbt(8w7mp7|GF%rTnzuh$~J)7^6dZ}K8_S#{W|Ylz7nAI z+M@BTby1nzX!g;z;XE4Vp6-2d!%?i$e+IIj9Lhu?UyTxhjNVErYF=t0`ZrEO``$9} zSIQc)+KCO_pur4KH@{eX<+5(uh;3qn;pRN{Yy@Oe(^tGz5e8ELV@!xQ0k(e>2%Tpt zGn^-m9D~?Hg#a2r(b17E60}ib7Dh2+5My06!1eDb&gg8vf$#<1&V;`U>hm>@|1&4WT$Kox~ zHw1M0_}VbdS3s4`kyPLe@Z~0&Po|H|yidIO6*7lp1d8im+~b=oF*ud4omSQhyPDQxuB4z29)Lmx?Q-AJoBrlK&h!2}HM~t{dM5R=`2Ef& z^*k)|)7J}_G(=0$$pSdJN+^FO|yC;i5 zY4WmuoYqDVz^(L9)LH1Oi(Fq{2jrStY{fziZs+qhZ35S%kN_I$i<>qDv6P^mlpZ92R8IvmRIsrsclV2onjpQS(Zh`Ori`DnV}?V^E#3n zduc6J##tYbNM4Z#6Xx8d1c*y+B!ZlsVfL+d7AF~ECj5)1kgN>3E^tH8p?y2v_Sl%uys&-}W;t)+d5SQh;BAnt>PS9~mkvHrh~S~% z{B6b8WLfQEkA5(J7F|rg%g$rZD{dT>)_?5$*O@;-<`~N))|t+zzYO}=(1>NAdzjbq zk0xNrU*h!a0>G|{;|t1>*6 zuDYB=yfVOkv_xDOBir%Po)Vuh?3mG)sEqP1uU6KW4IRWP9h4a;XLe{&B=$hv@s^)^$}>|fD)3Pbj#>3;sXjmI3^SE? z#Fn>072iXnIm;uKjszpA-$`d!nx}@FP*K+6)#0evqzt2W1MeG~#sRt9!BXe2lCc4I zz9k3YV1q0K8XZtYD^R?W{I{0>BtCVXSFgStff`b!1?R~-UqJ!stlbwdPhf>!<44cL zdLP12T-&A|n;a&&Xia+Oa|*D($sr3hD06htH`dxvNMDJLu&sFEfi2*Mmz#Oc>^J~R zBB0hyZuPtIhHpcs`QhEeXOKWD>z^p6c6`Rn{TM0G6BJPhB>{O6TJ*wgc~_pmf1bsD zesh`r8-a|Dj|eyL*F>r{qnc&~+HcxfuhX>kONQ_1M!2}c@yZOGZat!y>{OyG?2Kii zGoxveHMO~ksj`ASH@QEfJp}9jgtH6d8{uMJzg*i%RwvI9u6sv9r8NqyL1M#l3qnYx zQ`RA3B7;m?-jwj*Y-p#noIMYQG=p1k^CguDvdqS|t2Eb1PESto(eoF^&nJ;vpF=YE z2C2i@RQL7y7$2lzyJ;jQcyy$&5P>M+{Cf3ZH^SJ~q=fp_H1<3)yQ&IyeRR7KRkp$7 z6!)j_L6!iR3YZMfK}+N+{3U3+pEo2&q(zd-_8|2YESeIlWvc#b2$rjb5W&$w{*_hw zW-R$q%vr6x$;%lIPDb_<9JUX#J_}en4pvZ! z_)OopHB+@?Rk{k?g3+0gdFl!_c&n3~^rhf!sL?&x0PIx3 z)!+BnP3k5) z7p`I(Mo?poiZ-GNDjGT>j;*jgj{DUe(mi86W;_M9do?gkOp_e-jQ zEbd7y$MvP$l_}wz2o@xY5J2uhj(&D|Glq&Inp_llI-`>X(~k@+e4wR&S$IKnAVWv} zx6>5I^X>XTCzfHLZ16Xe-DkKFNEss&zYO>h!e zc2|N><#9Ye>zob((V}oz@Pc-E@z3o7Yhf|(K3^|NKbW8&+5rPEPM3o6qYzB5OcR`PR+F$Pu7wF<-4SR>G~$_UjiYr7R{!16ny7 z#F}H1vPDTW&@T^(Rob?!RIB^wQm`d!iNltpai*q8;d$}O2)B;LKY!R7j4aYes4r6kN+x`{woKR zex(P=A%$<2X_rhCLYd!Bh$TTrpsV37XfD*ztDbHq;Y*1S;xqg(4&TcXK;{^RtzI41 zg&%`5U_V+h6jT*unJX(o3scJVeYd>)>ZEfze0~jHe{Sp4gN3|fV@ncWB1+rA%iizG zZp~5lWVK$y4Bz81iA3i>hYvz4#|n^Ojhq14=)n5uq{0gtKK&^?AMDJG{3j62)V>5| z)e%&g-5yCT{{e^w*C*JN?2*tu3u8OXOn>6^6t7M0N%8zgLp!ODom)xu^zS)+`?btsC|AuMrCtWn`jFlRwd8vo+P+{`aGEP_DQ z;d341fA^7^c-m5VvgP->xNjYBh4lt3JW<1zIf6>tYAqB@no)>b7TxOIjjxsva0<0e z62@`azLySHLY|ZEnQQ8STy|BHi{*4Rn7f-L ztE2tU2Jn)si(MtN4MuS9qnpl435h{{Jlo@gW_ujl;IfTQ$LxR+RNDF zKhnu^Ea=+Tq(lsP)V{(qE5B-mtYc2c3S+YkSe-}&cx1XZv_&}m=0t$+%8?u90Q-MF z>lcP_R<}NO)j8D+t)V52Rv@E_<_g}_x|HaAFPQpQU5fw?Cn2*%UsA;~CKu3_=!z|Z zYO({N);MJKYcLQLdyZJOxmu@~2R|1OsBoUD3!q2=*MW=fqS9P_h#kL=YejXfsmwoF z8lp_DBrYAg->^PfN#L}uT@q;=L)}KHJ)kdwn+ZG z!kwvC3JrGCwYHXsBg=OBFR=>!d-C~()HIRPf$n7kF2zgki~OWs;~bgUD`h*wD$oO7 z{e7f%PtnUS{aGgyshpSu?q~#Ob1#kwESr0Cs&DCebnnCq?X^)XQBbfVF_3`(>&hXl zHvC$+T_jU(__j-I%SZkqZCHf_(s~{IJxPY>kWwSA z>p05A3pG59ThP7CNt;FaX4&~|JRK6!E(gY(jlhd6Ju)JCO2n&Utf42r+?+&f4KIsOrbTW>J!wyc5xaqu2PWloWif1HG-C^(@5j4amONYU%VKR>3DF>n zVg!kD(_CT~34bk-aKOJ;Np|nH*n%=NG;2Mpt{wF4Pb0e=C<^Q1y@q#PrE@acH%Hf3 z1l0>abdadZs_`FmTZd`66~qpZdsqWxk`7}`cYOBzpi>fMeIwutiYtD|!yeJcRJ!TfR} zqX+u`ANijiWHNO$bvA&Kv?NU0Vt=grVYgXuo9!ebIp;1Kppl=Zlwq$8k&K3`R^F_5 z>tOQDK6d|)_U(3{(b*2k7?co;F;){S4u3i9c|*T>_VwfDWK*ebYK9lE5#z~yBVnTZ zBcezuTTWw4bwZPeOf8(({Rjv`v{a$=st{2{WzCoqr^Y-D&=%Jwl_~%p)9s*K7@>Tz z`ZcoxsrlKG3~>iFQFRp(F=C;XYVL=^F*jnu(o3|cuZfY&#bD5%JIhr6p#5rtElPIp z)eiZ2yVJUV72Sr$5-362d{2s4>@wZ?N>be%U4Lj;(Azu1ce2=eEf)uBC{=Vb?8{K9 z3LQ4pHOHI!nVb)MZO9OKMM&G2F8Ht|Q3VyYR95X-1}6$PE7GG|R_!9ZjOSzwsild#)^58L~Jh4U3X-aIA&{$i)PccIr{7(xbfp{!CKwd?I%# z_O)|M>n3c}25fu8?hOr+TU=P1E&N?mCD0b{%{dQM^h0?IN3K*dr#&UqdVstj0EQ^( zu=t`V8Av2EMXli?%EDrQ)tu>8L~IdX8&N6fT7P@pv#p^CsGe`tw>dmjZ5YW0SqCsq(I* z3;Iy^KReF!RfH`@7&S_l=_bY;){2|BPLRp3zbU!Mj~EnmviVAK>6J>E_UxJ!_B6x# zP#S!2KnwAl%v5axjHTfPe}5y~(RSr=NC}~6pWv)KxM}FjJYs6}7%0OoSI`JDir#8L@zU;Q~WoM*lDdA87E7_p3i%HJ!S)hxU zrX?u{!*%4S&T<;oZwG^5Z^!5Ku(~aS`p#8!(LA-?tNCoNRxJuj)Iez!a+FzuE@C(p znfx>zhz0fX<{8s~IG(@%(p}P5numX`caKF(wo2*IR>xz=nFVgi8IA zpKdr&Blhj-4bgJHTS3O*?u5Gb_?YQVWzx4W0XGL6}Bd;mnq&(J~u|+_B%3IKS`>wIMGp5hh{V5D44Iz#{X-RlJxt zdcrX8BiH=}2Xt|THc8Tbjc2aE>`8B+4tlItq%)OAF`W^78DfCH8?U8MGvt2!3(1ZN zL|kXW9M_7Nj*&)WRhBBaro}_#&xX5b-)@^l;uV$Y5lgRt6L;XT7Jw%t@-*+R zR-XDCe!ULARqH1mESI@(>abaur7Yq3Dj+r4gJueCYj5kj=(=gD5kynk@IIh`N2~9s&l$6cO%36o$Y3&X zBbim{77j$jlqke-@#beB*jzqZbz2r5R_P@wxl$(Q*PF9vTuh`BQhri9vmddmV%aQ_I6)_#Ar{!RJ z&`Sl*hQRZEGGk5V+0yX!?dyEvy+Xt+yUXYHw*nux1|KwBTwDvq@db?#YJ{X$MK&vc ztP2|aIf|2*%3#jf6nt$4)PuDe>Tj|+3sW@9;GO159q+Z5A{E+MBYPBWO3 zTrj7@Q|+l&8~r+iv?*G)7lJP5yCf)dqkSulF345ZEx$>1R8kT&fdw_v1Dov>AQ%b2?0maWO_?Gnz zI5vdq*%vJcXXSPKj#uq+b<}LO0964U-%{M+Wf;+GaoTSuJ%kFa?Q&I8327XCm~`nt zzWmkdN2{#|jm_f4`=yTHV`EVZNUz_}`BL-NWB6>N_HlF%2S_~$tK30dLR5iXr8FV> zGdK&z8lMyAt`M77lyr*r+xrl0Vij`}1cv}DoSFrR4h!lxgya%mxTQMOo+UwL-D}Zv zHU-$At@M*k;Ym~s*FkI%igw2J$=0mZSuy+1t7SjoRmZ>{<_L&`+^j|MAfJxm3Wo|e z5<;Xl&jKCxR+#dQ!IrN}Vx1gsMSJmkL9YboZa(h$eyA`-AOt$h-@@qT^!lV=-G&Kfozt5tR|S}tAf{&l zS9LT6*MFK`7Jz>r@dD*jn+=8wWM25y16G3eUF~9CS7Y2~xS@I$>gw7KLO+n1ZCjUC z5=$vao0xB70y9%1xM^Mai92+c_YWyy^JL$0c(2PohYV?iGe{t^IPOy8+P=jT2s(A8 z$}-^@zho%RUeR&%aU&bbKze$~BIR+g<5SGQm(DHnK}1RhWTJO*~7&-ZXpzvi`LV>SCXev z&au`5Bu2n4CkWO@_*T4NW? zJuS+*ENEUB7_W=K^DQM|tat|8zvMuee(0|VNqx=FNfJoICuM``r?>WobY9Q#UVa*v z#TKWL|Hx<3EkPXc_I@~$kbXcxr=Q=SJE+az!4p@Ww87zmyM?SA1F7UW-sUHti! zmhqPGI?xOO;&HQO{bH6GO-_B2)6jux-Y~68ph35}?jN`H%j`nlC>U)WJqOlZq7qss z1CuutG(5)ro4y8#we6wLF*D@TCWcZ_-*bI}35|GiX!D=_M^s4kc^cn~36Nye*ctFA z-+7r#l2BX?9!~!=Uf#X@>AF`EC9xmjL>K4vb%cv^U2EmQBkOcM#ptY{EIf^}vab

                                                                                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 diff --git a/docsrc/source/_images/fittrackee_screenshot-02.png b/docsrc/source/_images/fittrackee_screenshot-02.png index c6eac91917df81b5ab24cf2d5c89bed132212374..12d04ea48d9032fb2450fac39ee4b7b9d3ab71cd 100644 GIT binary patch delta 15871 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 AfdBvi delta 15723 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 PzeieJ;d_;+f&c#pamKYx diff --git a/docsrc/source/_images/fittrackee_screenshot-03.png b/docsrc/source/_images/fittrackee_screenshot-03.png index b3e38a812124e7f01a53c426771b9194bb9b12b9..e1fcfd766cd68e52ddc12625c661904177fdb754 100644 GIT binary patch delta 21088 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 AasU7T delta 21015 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

                                                                                I-fBsc}dhV89Qv5SJG_)je z`x1};r>2=32xcne0J4*buO&}I@A7rI#183dkZF^e#LkiW2~5! z8p}-U%+q8?&0m~9_F&Zz>{DX{@5}n47B$s}j>Pl= zfJw!-5@Kmp8i%YA<<@v521OxJQ9jIJPVMKQiN@dig30Q-EWEqX<>)iV9&pxl_`@6~{SWyBUf;}4@tiOFqF8@?7*=M;T?7sz^uD?{y;r@kg_O5f7 zhW~?wh3VFr{3Z53=oqS*`!DkU+I0Qj19j^TrI+a4jj_na$-kXK$OEVr>7GsSe*hwU B!nyze delta 20146 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 diff --git a/docsrc/source/_images/fittrackee_screenshot-05.png b/docsrc/source/_images/fittrackee_screenshot-05.png index 416ecdcd672307236897c7ee38c62667962db10c..ff9e50a1b9aaa99e93ce0b2de1dbaafb92875d2a 100644 GIT binary patch delta 8861 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 D>dK;C delta 22311 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 PeNW@5?vqkg%a8vB@tEzQ diff --git a/docsrc/source/_images/fittrackee_screenshot-07.png b/docsrc/source/_images/fittrackee_screenshot-07.png index 397f0b535d1a7305bb7ad288672baad3365cdd99..a0f81b85f86a65b4864296039b390c4dd72bad67 100644 GIT binary patch delta 22553 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 delta 22292 zcmZ^}by!qi^fwA3f+(UQh@?oDNDN2|2uOFQG(&fDL=+SRWGLybAx64G5$Tfd?(T-W z=lgr#d*A1|_wvUuablmn*Iw%rYb^#B6^Z+u7PBCNjta7HqGkIYc;g%_bc>dL?)B)G z`d^e#N~SIw7wJjplMEhp3DNiwrG?|0s~yLiX2l1^RZ-U*6r4|}^rW-bN}UU^I^UbR*)5pM^b!Hq(3#*XVJge;x%xqNEFt?R zwvxXSj>w^0A)Mg-*AJ7i4qHontkgwbzTa%!I5?LgIbGRQ927XV{*FqCd|V%W#u>ax zlD=a9ZU4ucGHBj-<-@M#i#d-5g2Z8yV0#Yg=QAy9M*~0li}SMW70;uhVFojP=hs_F z7x9I(y{hxE&tpe6DraiHH}-bmUj+%|ocl1OG^S8PZ6=b2>Gn50+DDVH(%@vgw3odS z_37sJufwrtlr&lggEge7a$HQu#E| zr10TK2)dIJ$HD&S9?!tft}#Oe8k#x5fOz{4Gk%TNS_U-Fx`@rJBP5MlO}<1l3q1al zu-f)DZiK;O)$75VFIBGQoYV-+5@O>AbRI9GR=z0qmqv%U5EIVqnuxAJ9o34JeFmyj!JKNQ*1rB z$Zf4Wgp~IVg$?P+4(V9u*Gq?dFt^LH$}cRRuC}mP>={ZT^rGUNe@9cR92mwwz8bk7 zXSJ-I-NQezDXXD3+sZ7fsc(Bk!IM=s&{JzO4lMz!5btDWNGTHANa;>nsLUGkp2gmxuG5vjY&%9mIu!p2-c5=h| z-AKD&3PvG!|Kf4kZ_vk9+)~Xu`FBo22EC4$3ImJov##8%fMk%LideGLD^DJ)-qDhF zSNKU>>dJ>5ig2=IE#Y#XEwqaNSE(6l8jNbU>?|`Mc_rIpM4c}b@vuJ7C7k16EWeT` z`XD43Chd`E@nw;C#q#~1=25rSLE-RS@}^=^W3S`wCGyi#CG0eH!vUK?W&HcIkhY@L z3JK25>rbJt=xKGR{1jNkiA>vC$9xwEtDWA z;1kRTo1)#{b{Ad^#K!%~{Pwo3MT!{z-fO$FDP(?clFH=LqJxefRd0}rw^ve*^A=^e z%d3kO&BF$74JCVJ!a@BE5}l6b7-&WX4_C-o)UCCns9w=n#Xc{*!2!mEg$h7^ljtPS^OpQs#2?7@07A_U)eny+w1dvm$52UrAF6CjwE08bXXt=PbRl z*hx!#;UhtnWBFc($n$lUZ~~^gR-%;#BWZ`ZpS2GP^i8!EQf`rZEKN`+Jo^S&uuiVT zf0w{n9#)(&>(|H{R5!iT!O7EjrLipEZ{aC1Hq1^Whz#cq9~n-|?W3hY<`=59Vmf|# zyT>5K@<4)r5Fd$A_?fO^Q(KF_=(zg9EY7#hS79kxI5nEcza>qLi3|H!xI(s8TN3r+E;fqn#%(^a{g}iEFdS zf@*zd;X=N8Sm(Hxfbh2{g_ZsAk*jp7Jt1ZyrZ!#YIYpI7$^P`Ky5Y~{s}N(kr!jWy z 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

                                                                                RxoLW+F!1p$vj`fiwexlI04 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 diff --git a/docsrc/source/_images/fittrackee_screenshot-08.png b/docsrc/source/_images/fittrackee_screenshot-08.png index 415a172e128506a1a48cf3fff663b09722042001..cbd10c6821c6b1c905b13619c57f4675ceeb55e2 100644 GIT binary patch delta 19241 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 Na&dHbp#6L~{eL1MVJ83p delta 18963 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�K!T3WCw+;9B(Wl3TZJj{42& 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 DscSGf diff --git a/docsrc/source/features.rst b/docsrc/source/features.rst index 5c0555c9..1542ef9f 100644 --- a/docsrc/source/features.rst +++ b/docsrc/source/features.rst @@ -43,7 +43,7 @@ Workouts | Ascent and descent can also be provided (*new in 0.7.10*). - | A workout with a gpx file can be displayed with map and charts (speed and elevation). | Controls allow full screen view and position reset (*new in 0.5.5*). -- | If **DarkSky API** or **Visual Crossing** (*new in 0.7.11*) API key is provided, weather is displayed in workout detail. +- | If **DarkSky API** or **Visual Crossing** (*new in 0.7.11*) API key is provided, weather is displayed in workout detail. Data source is displayed in About page. | Wind is displayed, with arrow indicating direction (a tooltip can be displayed with the direction that the wind is coming **from**) (*new in 0.5.5*). - Segments can be displayed. - Workout gpx file can be downloaded (*new in 0.5.1*) diff --git a/docsrc/source/installation.rst b/docsrc/source/installation.rst index 32b79d2e..a000747b 100644 --- a/docsrc/source/installation.rst +++ b/docsrc/source/installation.rst @@ -172,7 +172,7 @@ deployment method. Number of processes used by **Dramatiq**. -.. envvar:: API_RATE_LIMITS 🆕 +.. envvar:: API_RATE_LIMITS .. versionadded:: 0.7.0 @@ -232,7 +232,7 @@ deployment method. Weather API key (not mandatory), see ``WEATHER_API_PROVIDER``. -.. envvar:: WEATHER_API_PROVIDER +.. envvar:: WEATHER_API_PROVIDER 🆕 .. versionadded:: 0.7.11 @@ -309,8 +309,8 @@ For instance, to set OSM France tile server, the expected values are: The subdomain will be chosen randomly. -API rate limits 🆕 -^^^^^^^^^^^^^^^^^^ +API rate limits +^^^^^^^^^^^^^^^ .. versionadded:: 0.7.0 | API rate limits are managed by `Flask-Limiter `_, based on IP with fixed window strategy. @@ -502,13 +502,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.7.10): +- Download the last release (for now, it is the release v0.7.11): .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.10.tar.gz - $ tar -xzf v0.7.10.tar.gz - $ mv FitTrackee-0.7.10 FitTrackee + $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.11.tar.gz + $ tar -xzf v0.7.11.tar.gz + $ mv FitTrackee-0.7.11 FitTrackee $ cd FitTrackee - Create **.env** from example and update it @@ -628,13 +628,13 @@ Prod environment - Change to the directory where FitTrackee directory is located -- Download the last release (for now, it is the release v0.7.10) and overwrite existing files: +- Download the last release (for now, it is the release v0.7.11) and overwrite existing files: .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.10.tar.gz - $ tar -xzf v0.7.10.tar.gz - $ cp -R FitTrackee-0.7.10/* FitTrackee/ + $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.11.tar.gz + $ tar -xzf v0.7.11.tar.gz + $ cp -R FitTrackee-0.7.11/* FitTrackee/ $ cd FitTrackee - Update **.env** if needed (see `Environment variables `__). diff --git a/fittrackee/__init__.py b/fittrackee/__init__.py index f5bac107..a4ea03dc 100644 --- a/fittrackee/__init__.py +++ b/fittrackee/__init__.py @@ -25,7 +25,7 @@ from werkzeug.middleware.proxy_fix import ProxyFix from fittrackee.emails.email import EmailService from fittrackee.request import CustomRequest -VERSION = __version__ = '0.7.10' +VERSION = __version__ = '0.7.11' REDIS_URL = os.getenv('REDIS_URL', 'redis://') API_RATE_LIMITS = os.environ.get('API_RATE_LIMITS', '300 per 5 minutes').split( ',' diff --git a/fittrackee/application/app_config.py b/fittrackee/application/app_config.py index cc0a4331..d91caa8e 100644 --- a/fittrackee/application/app_config.py +++ b/fittrackee/application/app_config.py @@ -48,7 +48,7 @@ def get_application_config() -> Union[Dict, HttpResponse]: "max_users": 0, "max_zip_file_size": 10485760, "map_attribution": "© OpenStreetMap contributors", - "version": "0.7.10", + "version": "0.7.11", "weather_provider": null }, "status": "success" @@ -101,7 +101,7 @@ def update_application_config(auth_user: User) -> Union[Dict, HttpResponse]: "max_users": 10, "max_zip_file_size": 10485760, "map_attribution": "© OpenStreetMap contributors", - "version": "0.7.10", + "version": "0.7.11", "weather_provider": null }, "status": "success" diff --git a/fittrackee/dist/index.html b/fittrackee/dist/index.html index a882e4f5..984789ff 100644 --- a/fittrackee/dist/index.html +++ b/fittrackee/dist/index.html @@ -1 +1 @@ -FitTrackee

                                                                                \ No newline at end of file +FitTrackee
                                                                                \ No newline at end of file diff --git a/fittrackee/dist/service-worker.js b/fittrackee/dist/service-worker.js index 531fcdd8..bdd4322a 100644 --- a/fittrackee/dist/service-worker.js +++ b/fittrackee/dist/service-worker.js @@ -1,2 +1,2 @@ -if(!self.define){let s,i={};const e=(e,t)=>(e=new URL(e+".js",t).href,i[e]||new Promise((i=>{if("document"in self){const s=document.createElement("script");s.src=e,s.onload=i,document.head.appendChild(s)}else s=e,importScripts(e),i()})).then((()=>{let s=i[e];if(!s)throw new Error(`Module ${e} didn’t register its module`);return s})));self.define=(t,r)=>{const a=s||("document"in self?document.currentScript.src:"")||location.href;if(i[a])return;let l={};const n=s=>e(s,a),c={module:{uri:a},exports:l,require:n};i[a]=Promise.all(t.map((s=>c[s]||n(s)))).then((s=>(r(...s),l)))}}define(["./workbox-db5fc017"],(function(s){"use strict";s.setCacheNameDetails({prefix:"fittrackee_client"}),self.addEventListener("message",(s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()})),s.precacheAndRoute([{url:"/img/bike.svg",revision:"ab4faed007625b209af72b9b8dce84db"},{url:"/img/weather/breeze.svg",revision:"428c6ccb838f8e91dc4826c5b650a98b"},{url:"/img/weather/clear-day.svg",revision:"f3e8628de2e5089f508f03944f8be951"},{url:"/img/weather/clear-night.svg",revision:"6a0d6579a93e89fdf1a2a95b398e0935"},{url:"/img/weather/cloudy.svg",revision:"c52fe62c9d9fea2cdf5ae2813b3df366"},{url:"/img/weather/fog.svg",revision:"9f4d74289594eb83f9c175d13167a0eb"},{url:"/img/weather/partly-cloudy-day.svg",revision:"f730c2e4f4c014e8b49c9d4a0a141b90"},{url:"/img/weather/partly-cloudy-night.svg",revision:"0d9270901c4dffbc05f3998d835171c8"},{url:"/img/weather/pour-rain.svg",revision:"91eb3159ba8781d258d8c384a8ef987c"},{url:"/img/weather/rain.svg",revision:"c52ca88ce0ddf4de0fc29167e578b2be"},{url:"/img/weather/sleet.svg",revision:"97d61d89332f912c1ec27bcbe077b7bd"},{url:"/img/weather/snow.svg",revision:"9e88c89c0d6d14174e9665e98932dd80"},{url:"/img/weather/temperature.svg",revision:"d42b62d0b57d5d326506277d87b70435"},{url:"/img/weather/wind.svg",revision:"d75fbe559220d7b2b9577a98a91f38d0"},{url:"/img/workouts/finish.svg",revision:"375196b7ade7c07c3b64ac4cb8b850a8"},{url:"/img/workouts/mountains.svg",revision:"0b94f1d4a050a86ca5ac89ab3ed60f9c"},{url:"/img/workouts/start.svg",revision:"97f6a197b6c2869e0cb2ff0e7697af86"},{url:"/index.html",revision:"8c71e2380eb085c0118653f3333dee46"},{url:"/manifest.json",revision:"c61028ca6e9f81bf958e6b66238e2d7c"},{url:"/robots.txt",revision:"b6216d61c03e6ce0c9aea6ca7808f7ca"},{url:"/static/css/admin.73df498d.css",revision:null},{url:"/static/css/app.92a77a8d.css",revision:null},{url:"/static/css/fork-awesome.min.css",revision:"82c1118c918377daaa71a320ab8eea42"},{url:"/static/css/leaflet.css",revision:"5c761a156eea82263d8bacf1718fe04d"},{url:"/static/css/profile.9f83730d.css",revision:null},{url:"/static/css/reset.e2527ec6.css",revision:null},{url:"/static/css/statistics.40e24e75.css",revision:null},{url:"/static/css/workouts.b4a2d0f0.css",revision:null},{url:"/static/fonts/forkawesome-webfont.eot",revision:"e719f9244c69e28e7d00e725ca1e280e"},{url:"/static/fonts/forkawesome-webfont.svg",revision:"d58987a18774d859d98af95281c1dee5"},{url:"/static/fonts/forkawesome-webfont.ttf",revision:"fe45770c6c277da3921355d971045ea5"},{url:"/static/fonts/forkawesome-webfont.woff",revision:"92cd4d8328b2ae614386a01ff935a9f3"},{url:"/static/fonts/forkawesome-webfont.woff2",revision:"12ee76445f0383c58529169d700b6650"},{url:"/static/fonts/pt-sans-v9-latin-700.01a58da9.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.6514157e.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.8293436e.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2",revision:null},{url:"/static/img/map.5b26d82b.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-700.b8a7047e.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-italic.0b285c83.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-regular.59a385b4.svg",revision:null},{url:"/static/js/243.e034bc01.js",revision:null},{url:"/static/js/431.6f0a9946.js",revision:null},{url:"/static/js/633.3c9401e6.js",revision:null},{url:"/static/js/858.5db37332.js",revision:null},{url:"/static/js/93.7582eaa7.js",revision:null},{url:"/static/js/admin.443044dd.js",revision:null},{url:"/static/js/app.9be9e4e9.js",revision:null},{url:"/static/js/chunk-vendors.5bcd2175.js",revision:null},{url:"/static/js/password.de.c02a3162.js",revision:null},{url:"/static/js/password.en.6a36a15a.js",revision:null},{url:"/static/js/password.f10cfc3b.js",revision:null},{url:"/static/js/password.fr.7161a5de.js",revision:null},{url:"/static/js/password.it.eac74305.js",revision:null},{url:"/static/js/profile.d9355913.js",revision:null},{url:"/static/js/reset.a4de7412.js",revision:null},{url:"/static/js/statistics.99fc9524.js",revision:null},{url:"/static/js/workouts.e312ce33.js",revision:null}],{})})); +if(!self.define){let s,i={};const e=(e,t)=>(e=new URL(e+".js",t).href,i[e]||new Promise((i=>{if("document"in self){const s=document.createElement("script");s.src=e,s.onload=i,document.head.appendChild(s)}else s=e,importScripts(e),i()})).then((()=>{let s=i[e];if(!s)throw new Error(`Module ${e} didn’t register its module`);return s})));self.define=(t,r)=>{const a=s||("document"in self?document.currentScript.src:"")||location.href;if(i[a])return;let l={};const n=s=>e(s,a),c={module:{uri:a},exports:l,require:n};i[a]=Promise.all(t.map((s=>c[s]||n(s)))).then((s=>(r(...s),l)))}}define(["./workbox-db5fc017"],(function(s){"use strict";s.setCacheNameDetails({prefix:"fittrackee_client"}),self.addEventListener("message",(s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()})),s.precacheAndRoute([{url:"/img/bike.svg",revision:"ab4faed007625b209af72b9b8dce84db"},{url:"/img/weather/breeze.svg",revision:"428c6ccb838f8e91dc4826c5b650a98b"},{url:"/img/weather/clear-day.svg",revision:"f3e8628de2e5089f508f03944f8be951"},{url:"/img/weather/clear-night.svg",revision:"6a0d6579a93e89fdf1a2a95b398e0935"},{url:"/img/weather/cloudy.svg",revision:"c52fe62c9d9fea2cdf5ae2813b3df366"},{url:"/img/weather/fog.svg",revision:"9f4d74289594eb83f9c175d13167a0eb"},{url:"/img/weather/partly-cloudy-day.svg",revision:"f730c2e4f4c014e8b49c9d4a0a141b90"},{url:"/img/weather/partly-cloudy-night.svg",revision:"0d9270901c4dffbc05f3998d835171c8"},{url:"/img/weather/pour-rain.svg",revision:"91eb3159ba8781d258d8c384a8ef987c"},{url:"/img/weather/rain.svg",revision:"c52ca88ce0ddf4de0fc29167e578b2be"},{url:"/img/weather/sleet.svg",revision:"97d61d89332f912c1ec27bcbe077b7bd"},{url:"/img/weather/snow.svg",revision:"9e88c89c0d6d14174e9665e98932dd80"},{url:"/img/weather/temperature.svg",revision:"d42b62d0b57d5d326506277d87b70435"},{url:"/img/weather/wind.svg",revision:"d75fbe559220d7b2b9577a98a91f38d0"},{url:"/img/workouts/finish.svg",revision:"375196b7ade7c07c3b64ac4cb8b850a8"},{url:"/img/workouts/mountains.svg",revision:"0b94f1d4a050a86ca5ac89ab3ed60f9c"},{url:"/img/workouts/start.svg",revision:"97f6a197b6c2869e0cb2ff0e7697af86"},{url:"/index.html",revision:"4a33506a1e4d907ba7266c3586310514"},{url:"/manifest.json",revision:"c61028ca6e9f81bf958e6b66238e2d7c"},{url:"/robots.txt",revision:"b6216d61c03e6ce0c9aea6ca7808f7ca"},{url:"/static/css/admin.73df498d.css",revision:null},{url:"/static/css/app.92a77a8d.css",revision:null},{url:"/static/css/fork-awesome.min.css",revision:"82c1118c918377daaa71a320ab8eea42"},{url:"/static/css/leaflet.css",revision:"5c761a156eea82263d8bacf1718fe04d"},{url:"/static/css/profile.9f83730d.css",revision:null},{url:"/static/css/reset.e2527ec6.css",revision:null},{url:"/static/css/statistics.40e24e75.css",revision:null},{url:"/static/css/workouts.b4a2d0f0.css",revision:null},{url:"/static/fonts/forkawesome-webfont.eot",revision:"e719f9244c69e28e7d00e725ca1e280e"},{url:"/static/fonts/forkawesome-webfont.svg",revision:"d58987a18774d859d98af95281c1dee5"},{url:"/static/fonts/forkawesome-webfont.ttf",revision:"fe45770c6c277da3921355d971045ea5"},{url:"/static/fonts/forkawesome-webfont.woff",revision:"92cd4d8328b2ae614386a01ff935a9f3"},{url:"/static/fonts/forkawesome-webfont.woff2",revision:"12ee76445f0383c58529169d700b6650"},{url:"/static/fonts/pt-sans-v9-latin-700.01a58da9.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.6514157e.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.8293436e.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2",revision:null},{url:"/static/img/map.5b26d82b.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-700.b8a7047e.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-italic.0b285c83.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-regular.59a385b4.svg",revision:null},{url:"/static/js/243.e034bc01.js",revision:null},{url:"/static/js/431.6f0a9946.js",revision:null},{url:"/static/js/633.3c9401e6.js",revision:null},{url:"/static/js/858.5db37332.js",revision:null},{url:"/static/js/93.7582eaa7.js",revision:null},{url:"/static/js/admin.443044dd.js",revision:null},{url:"/static/js/app.02c11a8c.js",revision:null},{url:"/static/js/chunk-vendors.5bcd2175.js",revision:null},{url:"/static/js/password.de.c02a3162.js",revision:null},{url:"/static/js/password.en.6a36a15a.js",revision:null},{url:"/static/js/password.f10cfc3b.js",revision:null},{url:"/static/js/password.fr.7161a5de.js",revision:null},{url:"/static/js/password.it.eac74305.js",revision:null},{url:"/static/js/profile.d9355913.js",revision:null},{url:"/static/js/reset.a4de7412.js",revision:null},{url:"/static/js/statistics.99fc9524.js",revision:null},{url:"/static/js/workouts.143c4328.js",revision:null}],{})})); //# sourceMappingURL=service-worker.js.map diff --git a/fittrackee/dist/service-worker.js.map b/fittrackee/dist/service-worker.js.map index d1947b91..718f1a2c 100644 --- a/fittrackee/dist/service-worker.js.map +++ b/fittrackee/dist/service-worker.js.map @@ -1 +1 @@ -{"version":3,"file":"service-worker.js","sources":["../../../../../../tmp/211c7fa919d4a63302524d3e755b856a/service-worker.js"],"sourcesContent":["import {setCacheNameDetails as workbox_core_setCacheNameDetails} from '/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/workbox-core/setCacheNameDetails.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\nworkbox_core_setCacheNameDetails({prefix: \"fittrackee_client\"});\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"/img/bike.svg\",\n \"revision\": \"ab4faed007625b209af72b9b8dce84db\"\n },\n {\n \"url\": \"/img/weather/breeze.svg\",\n \"revision\": \"428c6ccb838f8e91dc4826c5b650a98b\"\n },\n {\n \"url\": \"/img/weather/clear-day.svg\",\n \"revision\": \"f3e8628de2e5089f508f03944f8be951\"\n },\n {\n \"url\": \"/img/weather/clear-night.svg\",\n \"revision\": \"6a0d6579a93e89fdf1a2a95b398e0935\"\n },\n {\n \"url\": \"/img/weather/cloudy.svg\",\n \"revision\": \"c52fe62c9d9fea2cdf5ae2813b3df366\"\n },\n {\n \"url\": \"/img/weather/fog.svg\",\n \"revision\": \"9f4d74289594eb83f9c175d13167a0eb\"\n },\n {\n \"url\": \"/img/weather/partly-cloudy-day.svg\",\n \"revision\": \"f730c2e4f4c014e8b49c9d4a0a141b90\"\n },\n {\n \"url\": \"/img/weather/partly-cloudy-night.svg\",\n \"revision\": \"0d9270901c4dffbc05f3998d835171c8\"\n },\n {\n \"url\": \"/img/weather/pour-rain.svg\",\n \"revision\": \"91eb3159ba8781d258d8c384a8ef987c\"\n },\n {\n \"url\": \"/img/weather/rain.svg\",\n \"revision\": \"c52ca88ce0ddf4de0fc29167e578b2be\"\n },\n {\n \"url\": \"/img/weather/sleet.svg\",\n \"revision\": \"97d61d89332f912c1ec27bcbe077b7bd\"\n },\n {\n \"url\": \"/img/weather/snow.svg\",\n \"revision\": \"9e88c89c0d6d14174e9665e98932dd80\"\n },\n {\n \"url\": \"/img/weather/temperature.svg\",\n \"revision\": \"d42b62d0b57d5d326506277d87b70435\"\n },\n {\n \"url\": \"/img/weather/wind.svg\",\n \"revision\": \"d75fbe559220d7b2b9577a98a91f38d0\"\n },\n {\n \"url\": \"/img/workouts/finish.svg\",\n \"revision\": \"375196b7ade7c07c3b64ac4cb8b850a8\"\n },\n {\n \"url\": \"/img/workouts/mountains.svg\",\n \"revision\": \"0b94f1d4a050a86ca5ac89ab3ed60f9c\"\n },\n {\n \"url\": \"/img/workouts/start.svg\",\n \"revision\": \"97f6a197b6c2869e0cb2ff0e7697af86\"\n },\n {\n \"url\": \"/index.html\",\n \"revision\": \"8c71e2380eb085c0118653f3333dee46\"\n },\n {\n \"url\": \"/manifest.json\",\n \"revision\": \"c61028ca6e9f81bf958e6b66238e2d7c\"\n },\n {\n \"url\": \"/robots.txt\",\n \"revision\": \"b6216d61c03e6ce0c9aea6ca7808f7ca\"\n },\n {\n \"url\": \"/static/css/admin.73df498d.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/app.92a77a8d.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/fork-awesome.min.css\",\n \"revision\": \"82c1118c918377daaa71a320ab8eea42\"\n },\n {\n \"url\": \"/static/css/leaflet.css\",\n \"revision\": \"5c761a156eea82263d8bacf1718fe04d\"\n },\n {\n \"url\": \"/static/css/profile.9f83730d.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/reset.e2527ec6.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/statistics.40e24e75.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/workouts.b4a2d0f0.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.eot\",\n \"revision\": \"e719f9244c69e28e7d00e725ca1e280e\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.svg\",\n \"revision\": \"d58987a18774d859d98af95281c1dee5\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.ttf\",\n \"revision\": \"fe45770c6c277da3921355d971045ea5\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.woff\",\n \"revision\": \"92cd4d8328b2ae614386a01ff935a9f3\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.woff2\",\n \"revision\": \"12ee76445f0383c58529169d700b6650\"\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.01a58da9.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.6514157e.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.8293436e.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/map.5b26d82b.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-700.b8a7047e.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-italic.0b285c83.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-regular.59a385b4.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/243.e034bc01.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/431.6f0a9946.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/633.3c9401e6.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/858.5db37332.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/93.7582eaa7.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/admin.443044dd.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/app.9be9e4e9.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/chunk-vendors.5bcd2175.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.de.c02a3162.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.en.6a36a15a.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.f10cfc3b.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.fr.7161a5de.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.it.eac74305.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/profile.d9355913.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/reset.a4de7412.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/statistics.99fc9524.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/workouts.e312ce33.js\",\n \"revision\": null\n }\n], {});\n\n\n\n\n\n\n\n\n"],"names":["workbox_core_setCacheNameDetails","prefix","self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision"],"mappings":"0nBAiBAA,EAAAA,oBAAiC,CAACC,OAAQ,sBAG1CC,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,aACP,IAWFC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,gBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,iBACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,uDACPC,SAAY,MAEd,CACED,IAAO,qDACPC,SAAY,MAEd,CACED,IAAO,qDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,uDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,wDACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,gDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,uCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,OAEb,CAAA"} \ No newline at end of file +{"version":3,"file":"service-worker.js","sources":["../../../../../../tmp/ba5f36429e0342c3064c46daea6c2a05/service-worker.js"],"sourcesContent":["import {setCacheNameDetails as workbox_core_setCacheNameDetails} from '/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/workbox-core/setCacheNameDetails.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\nworkbox_core_setCacheNameDetails({prefix: \"fittrackee_client\"});\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"/img/bike.svg\",\n \"revision\": \"ab4faed007625b209af72b9b8dce84db\"\n },\n {\n \"url\": \"/img/weather/breeze.svg\",\n \"revision\": \"428c6ccb838f8e91dc4826c5b650a98b\"\n },\n {\n \"url\": \"/img/weather/clear-day.svg\",\n \"revision\": \"f3e8628de2e5089f508f03944f8be951\"\n },\n {\n \"url\": \"/img/weather/clear-night.svg\",\n \"revision\": \"6a0d6579a93e89fdf1a2a95b398e0935\"\n },\n {\n \"url\": \"/img/weather/cloudy.svg\",\n \"revision\": \"c52fe62c9d9fea2cdf5ae2813b3df366\"\n },\n {\n \"url\": \"/img/weather/fog.svg\",\n \"revision\": \"9f4d74289594eb83f9c175d13167a0eb\"\n },\n {\n \"url\": \"/img/weather/partly-cloudy-day.svg\",\n \"revision\": \"f730c2e4f4c014e8b49c9d4a0a141b90\"\n },\n {\n \"url\": \"/img/weather/partly-cloudy-night.svg\",\n \"revision\": \"0d9270901c4dffbc05f3998d835171c8\"\n },\n {\n \"url\": \"/img/weather/pour-rain.svg\",\n \"revision\": \"91eb3159ba8781d258d8c384a8ef987c\"\n },\n {\n \"url\": \"/img/weather/rain.svg\",\n \"revision\": \"c52ca88ce0ddf4de0fc29167e578b2be\"\n },\n {\n \"url\": \"/img/weather/sleet.svg\",\n \"revision\": \"97d61d89332f912c1ec27bcbe077b7bd\"\n },\n {\n \"url\": \"/img/weather/snow.svg\",\n \"revision\": \"9e88c89c0d6d14174e9665e98932dd80\"\n },\n {\n \"url\": \"/img/weather/temperature.svg\",\n \"revision\": \"d42b62d0b57d5d326506277d87b70435\"\n },\n {\n \"url\": \"/img/weather/wind.svg\",\n \"revision\": \"d75fbe559220d7b2b9577a98a91f38d0\"\n },\n {\n \"url\": \"/img/workouts/finish.svg\",\n \"revision\": \"375196b7ade7c07c3b64ac4cb8b850a8\"\n },\n {\n \"url\": \"/img/workouts/mountains.svg\",\n \"revision\": \"0b94f1d4a050a86ca5ac89ab3ed60f9c\"\n },\n {\n \"url\": \"/img/workouts/start.svg\",\n \"revision\": \"97f6a197b6c2869e0cb2ff0e7697af86\"\n },\n {\n \"url\": \"/index.html\",\n \"revision\": \"4a33506a1e4d907ba7266c3586310514\"\n },\n {\n \"url\": \"/manifest.json\",\n \"revision\": \"c61028ca6e9f81bf958e6b66238e2d7c\"\n },\n {\n \"url\": \"/robots.txt\",\n \"revision\": \"b6216d61c03e6ce0c9aea6ca7808f7ca\"\n },\n {\n \"url\": \"/static/css/admin.73df498d.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/app.92a77a8d.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/fork-awesome.min.css\",\n \"revision\": \"82c1118c918377daaa71a320ab8eea42\"\n },\n {\n \"url\": \"/static/css/leaflet.css\",\n \"revision\": \"5c761a156eea82263d8bacf1718fe04d\"\n },\n {\n \"url\": \"/static/css/profile.9f83730d.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/reset.e2527ec6.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/statistics.40e24e75.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/workouts.b4a2d0f0.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.eot\",\n \"revision\": \"e719f9244c69e28e7d00e725ca1e280e\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.svg\",\n \"revision\": \"d58987a18774d859d98af95281c1dee5\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.ttf\",\n \"revision\": \"fe45770c6c277da3921355d971045ea5\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.woff\",\n \"revision\": \"92cd4d8328b2ae614386a01ff935a9f3\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.woff2\",\n \"revision\": \"12ee76445f0383c58529169d700b6650\"\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.01a58da9.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.6514157e.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.8293436e.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/map.5b26d82b.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-700.b8a7047e.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-italic.0b285c83.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-regular.59a385b4.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/243.e034bc01.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/431.6f0a9946.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/633.3c9401e6.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/858.5db37332.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/93.7582eaa7.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/admin.443044dd.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/app.02c11a8c.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/chunk-vendors.5bcd2175.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.de.c02a3162.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.en.6a36a15a.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.f10cfc3b.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.fr.7161a5de.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.it.eac74305.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/profile.d9355913.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/reset.a4de7412.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/statistics.99fc9524.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/workouts.143c4328.js\",\n \"revision\": null\n }\n], {});\n\n\n\n\n\n\n\n\n"],"names":["workbox_core_setCacheNameDetails","prefix","self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision"],"mappings":"0nBAiBAA,EAAAA,oBAAiC,CAACC,OAAQ,sBAG1CC,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,aACP,IAWFC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,gBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,iBACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,uDACPC,SAAY,MAEd,CACED,IAAO,qDACPC,SAAY,MAEd,CACED,IAAO,qDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,uDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,wDACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,gDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,uCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,OAEb,CAAA"} \ No newline at end of file diff --git a/fittrackee/dist/static/js/app.9be9e4e9.js b/fittrackee/dist/static/js/app.02c11a8c.js similarity index 99% rename from fittrackee/dist/static/js/app.9be9e4e9.js rename to fittrackee/dist/static/js/app.02c11a8c.js index 059240d1..77c448d3 100644 --- a/fittrackee/dist/static/js/app.9be9e4e9.js +++ b/fittrackee/dist/static/js/app.02c11a8c.js @@ -1,2 +1,2 @@ -(function(){var e={5167:function(e,t,n){"use strict";var r=n(594),a=n(8566),o=n(2894),i=n(5801),s=n(2024);const l=r.Z.create({baseURL:(0,s.k)()});l.interceptors.request.use((e=>{const t=new AbortController;e.signal=t.signal;const n=(0,a.a)(e);a.j.set(n,t);const r=o.Z.getters[i.YN.GETTERS.AUTH_TOKEN];if(r){const t=`Bearer ${r}`;e.headers&&e.headers.Authorization!==t&&(e.headers.Authorization=`Bearer ${r}`)}return e}),(e=>Promise.reject(e))),l.interceptors.response.use((e=>((0,a.a)(e.config),e)),(e=>("canceled"!==e.message&&(0,a.a)(e.response.config),Promise.reject(e)))),t["Z"]=l},8566:function(e,t,n){"use strict";n.d(t,{a:function(){return o},j:function(){return r}});const r=new Map,a=e=>{const{method:t,url:n,params:r={},data:a={}}=e;return[t,n,JSON.stringify(r),JSON.stringify(a)].join("")},o=e=>{const t=a(e);if(r.has(t)){const e=r.get(t)||{};e?.abort(),r.delete(t)}return t}},2540:function(e,t,n){"use strict";var r=n(9150);const a=["nb"];function o(){const e=n(4612),t={};return e.keys().forEach((n=>{const r=n.match(/([A-Za-z0-9-_]+)\./i);if(r&&r.length>1&&!a.includes(r[1])){const a=r[1];t[a]=e(n).default}})),t}t["Z"]=(0,r.o)({legacy:!1,locale:"en",fallbackLocale:"en",globalInjection:!0,messages:o()})},9923:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return _}});var r={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Kontaktiere den Administrator"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee ist ein selbst-gehosteter Outdoor-Aktivitäts-Tracker."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["unter ",n(r(0))," Lizenz "])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Quellcode"])}},a={ACTION:e=>{const{normalize:t}=e;return t(["Aktion"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Aktiviere Konto"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Aktiv"])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Hinzufügen/Entfernen von Administratorrechten, Lösche Nutzerkonto."])},APPLICATION:e=>{const{normalize:t}=e;return t(["Anwendung"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Kontakt-E-Mail des Administrators"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. Dateianzahl im zip Archiv"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Wenn 0, gibt es keine Registrierungslimitierung.."])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. Anzahl aktiver Nutzer"])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["keine Kontakt-E-Mail"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. Größe der hochgeladenen Dateien (in Mb)"])},TITLE:e=>{const{normalize:t}=e;return t(["Anwendungskonfiguration"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. Größe des zip Archives (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Zurück zu Admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Möchtest du wirklich das ",n(r(0))," Konto löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Möchtest du wirklich das ",n(r(0))," Passwort zurücksetzen?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Aktuelle E-Mail"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Lösche Nutzer"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["E-Mail-Versand ist deaktiviert."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Aktivieren/Deaktivieren von Sportarten."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["Neue E-Mail"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Das wasswort wurde zurückgesetzt."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Registrierung ist derzeit deaktiviert."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Registrierung ist derzeit aktiviert."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort zurücksetzen"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Aktiv"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["Trainings existieren"])},IMAGE:e=>{const{normalize:t}=e;return t(["Bild"])},LABEL:e=>{const{normalize:t}=e;return t(["Titel"])}},TITLE:e=>{const{normalize:t}=e;return t(["Sportarten Administration"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Aktualisiere Anwemdungskonfiguration (maximale Anzahl an registrierten Nutzern, maximale Dateigröße)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Aktualisiere E-Mail"])},USER:e=>{const{normalize:t}=e;return t(["Nutzer"])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["Adminstatus"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["Registrierungsdatum"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["Accountstatus"])},USERNAME:e=>{const{normalize:t}=e;return t(["Nutzername"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["Trainingsanzahl"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Administratorrechte hinzufügen"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Administratorrechte entfernen"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Die E-Mail Adresse wurde aktualisiert."])}},o={ERROR:{"Network Error":e=>{const{normalize:t}=e;return t(["Netzwerkfehler."])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:t}=e;return t(["Mindestens eine Datei im ZIP-Archiv überschreitet das Größenlimit, bitte überprüfe das Archiv."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["E-Mail: Eine gültige E-Mail muss angegeben werden."])},"error during gpx file parsing":e=>{const{normalize:t}=e;return t(["Fehler beim Einlesen der GPX-Datei"])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Fehler bei der GPX-Verarbeitung."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Fehler beim Abrufen der Konfiguration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Fehler beim Aktualisieren der Konfiguration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Fehler. Die Registrierung ist deaktiviert."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["Dateierweiterung ist nicht erlaubt."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["Die Datei ist größer als erlaubt."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Ungültige Anmeldedaten."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Die bereitgestellten Daten sind ungültig."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Ungültiges Token, bitte erneut anmelden."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Ungültiges Token, bitte erneut anmelden."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["Die neue E-Mail muss sich von der aktuellen E-Mail unterscheiden"])},"no file part":e=>{const{normalize:t}=e;return t(["Keine Datei angegeben."])},"no selected file":e=>{const{normalize:t}=e;return t(["Keine Datei ausgewählt."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Passwort: Passwort und Passwortbestätigung stimmen nicht überein."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Gebe ein gültiges Authentifizierungstoken an."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Die Signatur ist abgelaufen. Bitte melde dich erneut an."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Es tut mir leid, der Benutzername ist schon vergeben."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Sportart existiert nicht."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Registrierung erfolgreich."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:t}=e;return t(["Die Anzahl der Dateien im Archiv überschreitet die Begrenzung."])},"user does not exist":e=>{const{normalize:t}=e;return t(["Der Nutzer existiert nicht."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["Um den Administrator zu kontaktieren, muss eine gültige E-Mail-Adresse angegeben werden"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["Du kannst Dein Konto nicht löschen, da kein anderer Nutzer hat Administratorrechte besitzt."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["Du hast keine Berechtigung."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["Vorhergehende"])},NEXT:e=>{const{normalize:t}=e;return t(["Nächste"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Bestätigungs-E-Mail erneut senden"])},AUTHORIZE:e=>{const{normalize:t}=e;return t(["Autorisieren"])},BACK:e=>{const{normalize:t}=e;return t(["Zurück"])},CANCEL:e=>{const{normalize:t}=e;return t(["Abbrechen"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Filter löschen"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Mein Konto löschen"])},DISABLE:e=>{const{normalize:t}=e;return t(["Deaktivieren"])},EDIT:e=>{const{normalize:t}=e;return t(["Bearbeiten"])},ENABLE:e=>{const{normalize:t}=e;return t(["Aktivieren"])},FILTER:e=>{const{normalize:t}=e;return t(["Filter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Anmelden"])},NO:e=>{const{normalize:t}=e;return t(["Nein"])},REGISTER:e=>{const{normalize:t}=e;return t(["Registrieren"])},RESET:e=>{const{normalize:t}=e;return t(["Zurücksetzen"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Speichern"])},YES:e=>{const{normalize:t}=e;return t(["Ja"])}},s={ABOUT:e=>{const{normalize:t}=e;return t(["Über"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bestätigung"])},CONTACT:e=>{const{normalize:t}=e;return t(["Kontakt"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["Tag"]),t(["Tage"])])},DISPLAYED:e=>{const{normalize:t}=e;return t(["Angezeigt"])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["Dokumentation (en)"])},HERE:e=>{const{normalize:t}=e;return t(["hier"])},HIDDEN:e=>{const{normalize:t}=e;return t(["Versteckt"])},HOME:e=>{const{normalize:t}=e;return t(["Startseite"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:t}=e;return t(["aufsteigend"])},DESC:e=>{const{normalize:t}=e;return t(["absteigend"])},LABEL:e=>{const{normalize:t}=e;return t(["sortieren"])}},ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["sortiert nach"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["pro Seite"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Insgesamt"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Dashboard"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["Dieser Monat"])}},c={APP_ERROR:e=>{const{normalize:t}=e;return t(["Bei der Anwendung scheinen einige Probleme aufgetreten zu sein.
                                                                                Bitte versuche es später noch einmal oder kontaktiere den Administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Seite nicht gefunden"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Training nicht gefunden"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Etwas lief schief"])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])}},u={ADD_A_NEW_APP:e=>{const{normalize:t}=e;return t(["Eine neue OAuth2-Anwendung hinzufügen"])},APP:{CLIENT_ID:e=>{const{normalize:t}=e;return t(["ID"])},CLIENT_SECRET:e=>{const{normalize:t}=e;return t(["Geheimnis"])},DESCRIPTION:e=>{const{normalize:t}=e;return t(["Anwendungsbeschreibung"])},ISSUE_AT:e=>{const{normalize:t}=e;return t(["Erstellt am"])},NAME:e=>{const{normalize:t}=e;return t(["Anwendungsname"])},REDIRECT_URL:e=>{const{normalize:t}=e;return t(["Weiterleitungs-URL"])},SCOPE:{LABEL:e=>{const{normalize:t}=e;return t(["Geltungsbereich"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf die Anwendungskonfiguration"])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Lesezugriff auf auth-Endpunkte"])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf auth-Endpunkte"])},"users:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Lesezugriff auf users-Endpunkte"])},"users:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf users-Endpunkte"])},"workouts:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Lesezugriff auf workouts-Endpunkte"])},"workouts:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf workouts-Endpunkte"])}},URL:e=>{const{normalize:t}=e;return t(["Anwendungs-URL"])}},APPS_LIST:e=>{const{normalize:t}=e;return t(["OAuth2-Anwendungen"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:t}=e;return t(["Anwendung erfolgreich erstellt. Stelle sicher, dass du das Geheimnis kopierst, du kannst es nicht erneut anzeigen."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bist sicher, dass du diese App löschen willst?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Die Anwendung ",n(r(0))," fragt an:"])},AUTHORIZE_APP:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0))," den Zugriff auf deinen Account erlauben?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:t}=e;return t(["in Zwischenablage kopieren"])},DELETE_APP:e=>{const{normalize:t}=e;return t(["Anwendung löschen"])},NEW_APP:e=>{const{normalize:t}=e;return t(["Anwendung hinzufügen"])},NO_APP:e=>{const{normalize:t}=e;return t(["Anwendung wurde nicht gefunden!"])},NO_APPS:e=>{const{normalize:t}=e;return t(["keine Anwendungen"])},NO_DESCRIPTION:e=>{const{normalize:t}=e;return t(["keine Beschreibung"])},REVOKE_ALL_TOKENS:e=>{const{normalize:t}=e;return t(["Alle Tokens zurückrufen"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bist du sicher, dass du alle Tokens zurückrufen möchtest?"])},TOKENS_REVOKED:e=>{const{normalize:t}=e;return t(["Alle vorhandenen und vergebenen Tokens wurde zurückgerufen."])}},m={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Radfahren (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Radfahren (Pendeln)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:t}=e;return t(["Radfahren (Virtuell)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Wandern"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["Mountainbiken"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["Mountainbiken (elektrisch)"])}},Mountaineering:{LABEL:e=>{const{normalize:t}=e;return t(["Bergsteigen"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Rudern"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Laufen"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Skifahren (Alpin)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Skifahren (Langlauf)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Schneeschuhe"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Gehen"])}}},d={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistik"])},TIME_FRAMES:{month:e=>{const{normalize:t}=e;return t(["Monat"])},week:e=>{const{normalize:t}=e;return t(["Woche"])},year:e=>{const{normalize:t}=e;return t(["Jahr"])}}},E={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Hast du keine Anweisungen erhalten?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Prüfe deine E-Mail. Eine neue Bestätigungs-E-Mail wurde an die angegebene Adresse geschickt."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Hast du bereits ein Konto?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Möchtest du dein Konto wirklich löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden"])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Aktuelles Passwort"])},EMAIL:e=>{const{normalize:t}=e;return t(["E-Mail"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Gebe eine gültige E-Mail-Adresse an."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Gebe ein Passwort ein"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Nach Benutzernamen filtern"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort verbergen"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Ungültiges Token, bitte fordere ein neues Passworts an."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Sprache"])},LOGIN:e=>{const{normalize:t}=e;return t(["Anmeldung"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Abmelden"])},LOG_IN:e=>{const{normalize:t}=e;return t(["Anmelden"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["Neues Passwort"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["Keine Nutzer gefunden."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort"])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Passwort vergessen?"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["Mindestens 8 Zeichen sind erforderlich."])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Passwort zurücksetzen"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Prüfe Deine E-Mail. Wenn Deine Adresse in der Datenbank enthalten ist, wirst du eine E-Mail mit einem Link erhalten um Dein Passwort zurückzusetzen."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:t}=e;return t(["mittel"])},GOOD:e=>{const{normalize:t}=e;return t(["gut"])},LABEL:e=>{const{normalize:t}=e;return t(["Passwortstärke"])},STRONG:e=>{const{normalize:t}=e;return t(["start"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:t}=e;return t(["Schreibe einige, aber nicht alle Buchstaben groß."])},anotherWord:e=>{const{normalize:t}=e;return t(["Füge weitere weniger gebräuchliche Wörter hinzu."])},associatedYears:e=>{const{normalize:t}=e;return t(["Vermeide Jahreszahlen, die mit Dir in Verbindung gebracht werden."])},capitalization:e=>{const{normalize:t}=e;return t(["Schreibe mehr als nur den ersten Buchstaben groß."])},dates:e=>{const{normalize:t}=e;return t(["Vermeide Daten und Jahreszahlen, die mit Dir in Verbindung gebracht werden."])},l33t:e=>{const{normalize:t}=e;return t(["Vermeide vorhersehbare Buchstabenersetzungen wie ","@"," für a."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Verwende längere Tastaturmuster und ändere mehrmals die Schreibrichtung."])},noNeed:e=>{const{normalize:t}=e;return t(["Du kannst sichere Passwörter erstellen, ohne Symbole, Zahlen oder Großbuchstaben zu verwenden."])},pwned:e=>{const{normalize:t}=e;return t(["Wenn Sie dieses Passwort auch anderweitig verwenden, sollten Sie es ändern."])},recentYears:e=>{const{normalize:t}=e;return t(["Vermeide Angabe von letzten Jahreszahlen."])},repeated:e=>{const{normalize:t}=e;return t(["Vermeide wiederholungen von Wörtern und Zeichen."])},reverseWords:e=>{const{normalize:t}=e;return t(["Vermeide umgekehrte Schreibweisen gebräuchlicher Wörter."])},sequences:e=>{const{normalize:t}=e;return t(["Vermeide gebräuchliche Zeichenfolgen."])},useWords:e=>{const{normalize:t}=e;return t(["Verwenden Sie mehrere Wörter, aber vermeide gebräuchliche Ausdrücke."])}},WEAK:e=>{const{normalize:t}=e;return t(["schwach"])}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Dein Passwort wurde aktualisiert. Klicke ",n(r(0))," um dich anzumelden."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Kontoausgabe"])},ASCENT_DATA:e=>{const{normalize:t}=e;return t(["Anstiegs-bezogene Daten (Aufnahmen, gesamt)"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Zurück zum Profil"])},BIO:e=>{const{normalize:t}=e;return t(["Biographie"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Geburtsdatum"])},DATE_FORMAT:e=>{const{normalize:t}=e;return t(["Datumsanzeigeformat"])},EDIT:e=>{const{normalize:t}=e;return t(["Profil bearbeiten"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Einstellungen ändern"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Einstellungen für Sportarten ändern"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Bitte ",n(r(0))," um Deine E-Mail Adresse nochmals zu ändern oder kontaktiere den Administrator"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["Erster Tag der Woche"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["Vorname"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Sprache"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Nachname"])},LOCATION:e=>{const{normalize:t}=e;return t(["Ort"])},MONDAY:e=>{const{normalize:t}=e;return t(["Montag"])},PICTURE:e=>{const{normalize:t}=e;return t(["Bild"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Bildausgabe"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Bild entfernen"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Bild aktualisieren"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Einstellungsausgabe"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Profil-Ausgabe"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Registrierungsdatum"])},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["Aktion"])},COLOR:e=>{const{normalize:t}=e;return t(["Farbe"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["vom Admin deaktiviert"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["aktiv"])},LABEL:e=>{const{normalize:t}=e;return t(["Titel"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["Geschwindigkeitsschwellenwert für Stopp"])}},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Sportarten-Einstellungsausgabe"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Dein Konto wurde erfolgreich aktualisiert. Bitte prüfe Deine E-Mail um die neue E-Mail Adresse zu bestätigen."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Dein Konto wurde erfolgreich erstellt."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["Ein Aktivierungslink für Dein Konto wurde an die angegebene E-Mail Adresse geschickt."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Dein Konto wurde erfolgreich aktualisiert."])},SUNDAY:e=>{const{normalize:t}=e;return t(["Sontag"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["Konto"])},APPS:e=>{const{normalize:t}=e;return t(["Anwendungen"])},PICTURE:e=>{const{normalize:t}=e;return t(["Bild"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["Einstellungen"])},PROFILE:e=>{const{normalize:t}=e;return t(["Profil"])},SPORTS:e=>{const{normalize:t}=e;return t(["Sportarten"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Zeitzone"])},UNITS:{IMPERIAL:e=>{const{normalize:t}=e;return t(["Imperiales System (ft, mi, mph, °F)"])},LABEL:e=>{const{normalize:t}=e;return t(["Einheiten für die Distanz"])},METRIC:e=>{const{normalize:t}=e;return t(["Metrisches System (m, km, m/s, °C)"])}}},REGISTER:e=>{const{normalize:t}=e;return t(["Registrieren"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Entschuldigung, die Registrierung ist deaktiviert."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["E-Mail zur Kontobestätigung erneut senden"])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort zurücksetzen"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort anzeigen"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["Dieser Account ist inaktiv."])},USERNAME:e=>{const{normalize:t}=e;return t(["Nutzername"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(["3 bis 30 Zeichen sind erforderlich, nur alphanumerische Zeichen und der Unterstrich _ sind erlaubt."])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["Benutzerbild"])}},S={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Training hinzufügen"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["Analyse"])},ASCENT:e=>{const{normalize:t}=e;return t(["Aufstieg"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["Durchschnittsgeschwindigkeit"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["Durchschn. Geschwindigkeit"])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["zurück zum Training"])},DATE:e=>{const{normalize:t}=e;return t(["Datum"])},DESCENT:e=>{const{normalize:t}=e;return t(["Abstieg"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["zeige Filter"])},DISTANCE:e=>{const{normalize:t}=e;return t(["Entfernung"])},DURATION:e=>{const{normalize:t}=e;return t(["Dauer"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Training bearbeiten"])},ELEVATION:e=>{const{normalize:t}=e;return t(["Höhe"])},END:e=>{const{normalize:t}=e;return t(["Ende"])},FROM:e=>{const{normalize:t}=e;return t(["Von"])},GPX_FILE:e=>{const{normalize:t}=e;return t([".gpx Datei"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["verberge Filter"])},INVALID_ASCENT_OR_DESCENT:e=>{const{normalize:t}=e;return t(["Beide Höhenwerte müssen angegeben werden und größer oder gleich 0 sein."])},INVALID_DISTANCE:e=>{const{normalize:t}=e;return t(["Die Distanz muss größer als 0 sein"])},INVALID_DURATION:e=>{const{normalize:t}=e;return t(["Die Dauer muss größer als 0 Sekunden sein"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Letzte Trainings"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Lade mehr Trainings"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["maximale Höhe"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["Maximale Dateianzahl"])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["Maximalgröße"])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["Max. Geschwindigkeit"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["minimale Höhe"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Nächstes Segment"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Nächstes Training"])},NOTES:e=>{const{normalize:t}=e;return t(["Anmerkungen"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["Daten aus gpx, ohne Bereinigung"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["Keine Datei angegeben"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["enthält keinen Ordner"])},NO_MAP:e=>{const{normalize:t}=e;return t(["Keine Karte"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Kein nächstes Segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Kein nächstes Training"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["Keine Anmerkungen"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Kein vorheriges Segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Kein vorheriges Training"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["Keine Aufzeichnungen."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["Keine Trainings."])},PAUSES:e=>{const{normalize:t}=e;return t(["Pausen"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Vorheriges Segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Vorheriges Training"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["Aufzeichnung"]),t(["Aufzeichnungen"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Durchschn. Geschwindigkeit"])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Weiteste Entfernung"])},RECORD_HA:e=>{const{normalize:t}=e;return t(["Höchster Anstieg"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Längste Dauer"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Max. Geschwindigkeit"])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["verbleibende Zeichen"])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["Segment"]),t(["Segmente"])])},SPEED:e=>{const{normalize:t}=e;return t(["Geschwindigkeit"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["Sportart"]),t(["Sportarten"])])},START:e=>{const{normalize:t}=e;return t(["Start"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Start und Ziel"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["Höhenachse bei Null starten"])},TITLE:e=>{const{normalize:t}=e;return t(["Titel"])},TO:e=>{const{normalize:t}=e;return t(["bis"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["Gesamtdauer"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Füge erstes Training hinzu!"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["klarer Tag"])},"clear-night":e=>{const{normalize:t}=e;return t(["klare Nacht"])},cloudy:e=>{const{normalize:t}=e;return t(["wolkig"])},fog:e=>{const{normalize:t}=e;return t(["Nebel"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["teilweise bewölkter Tag"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["teilweise bewölkte Nacht"])},rain:e=>{const{normalize:t}=e;return t(["Regen"])},sleet:e=>{const{normalize:t}=e;return t(["Schneeregen"])},snow:e=>{const{normalize:t}=e;return t(["Schnee"])},wind:e=>{const{normalize:t}=e;return t(["Wind"])}},HUMIDITY:e=>{const{normalize:t}=e;return t(["Luftfeuchtigkeit"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["Temperatur"])},WIND:e=>{const{normalize:t}=e;return t(["Wind"])},WIND_DIRECTIONS:{E:e=>{const{normalize:t}=e;return t(["O"])},ENE:e=>{const{normalize:t}=e;return t(["ONO"])},ESE:e=>{const{normalize:t}=e;return t(["OSO"])},N:e=>{const{normalize:t}=e;return t(["N"])},NE:e=>{const{normalize:t}=e;return t(["NO"])},NNE:e=>{const{normalize:t}=e;return t(["NNO"])},NNW:e=>{const{normalize:t}=e;return t(["NNW"])},NW:e=>{const{normalize:t}=e;return t(["NW"])},S:e=>{const{normalize:t}=e;return t(["S"])},SE:e=>{const{normalize:t}=e;return t(["SO"])},SSE:e=>{const{normalize:t}=e;return t(["SSO"])},SSW:e=>{const{normalize:t}=e;return t(["SSW"])},SW:e=>{const{normalize:t}=e;return t(["SW"])},W:e=>{const{normalize:t}=e;return t(["W"])},WNW:e=>{const{normalize:t}=e;return t(["WNW"])},WSW:e=>{const{normalize:t}=e;return t(["WSW"])}}},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["ohne .gpx Datei"])},WITH_GPX:e=>{const{normalize:t}=e;return t(["mit .gpx Datei"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["Training"]),t(["Trainings"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["Trainingsdatum"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bist du sicher, dass du dieses Training löschen möchtest?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t([".zip Datei"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["oder .zip Datei mit .gpx Dateien"])}},_={about:r,admin:a,api:o,buttons:i,common:s,dashboard:l,error:c,oauth2:u,sports:m,statistics:d,user:E,workouts:S}},8757:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return _}});var r={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Contact the administrator"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee is a self-hosted outdoor activity tracker."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["under ",n(r(0))," license "])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Source code"])},WEATHER_DATA_FROM:e=>{const{normalize:t}=e;return t(["Weather data from:"])}},a={ACTION:e=>{const{normalize:t}=e;return t(["Action"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Activate account"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Active"])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Add/remove admin rights, delete user account."])},APPLICATION:e=>{const{normalize:t}=e;return t(["Application"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Administrator email for contact"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. files of zip archive"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["If 0, no limitation on registration."])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. number of active users"])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["no contact email"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. size of uploaded files (in Mb)"])},TITLE:e=>{const{normalize:t}=e;return t(["Application configuration"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. size of zip archive (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Back to admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Are you sure you want to delete ",n(r(0))," account? All data will be deleted, this cannot be undone."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Are you sure you want to reset ",n(r(0))," password?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Current email"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Delete user"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["Email sending is disabled."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Enable/disable sports."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["New email"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["The password has been reset."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Registration is currently disabled."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Registration is currently enabled."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset password"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Active"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["workouts exist"])},IMAGE:e=>{const{normalize:t}=e;return t(["Image"])},LABEL:e=>{const{normalize:t}=e;return t(["Label"])}},TITLE:e=>{const{normalize:t}=e;return t(["Sports administration"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Update application configuration (maximum number of registered users, maximum files size)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Update email"])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["user"]),t(["users"])])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["admin status"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["registration date"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["account status"])},USERNAME:e=>{const{normalize:t}=e;return t(["username"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["workout count"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Add admin rights"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Remove admin rights"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["The email address has been updated."])}},o={ERROR:{"Network Error":e=>{const{normalize:t}=e;return t(["Network Error."])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:t}=e;return t(["At least one file in zip archive exceeds size limit, please check the archive."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Email: valid email must be provided."])},"error during gpx file parsing":e=>{const{normalize:t}=e;return t(["Error during gpx file parsing."])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Error during gpx processing."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Error on getting configuration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Error when updating configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Error, please try again or contact the administrator."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Error, registration is disabled."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["File extension not allowed."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["File size is greater than the allowed size."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Invalid credentials."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Provided data are invalid."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Invalid token, please log in again."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Invalid token, please log in again."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["The new email must be different than curent email"])},"no file part":e=>{const{normalize:t}=e;return t(["No file provided."])},"no selected file":e=>{const{normalize:t}=e;return t(["No selected file."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Password: password and password confirmation don't match."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Provide a valid auth token."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expired. Please log in again."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Sorry, that username is already taken."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Sport does not exist."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Successfully registered."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:t}=e;return t(["The number of files in the archive exceeds the limit."])},"user does not exist":e=>{const{normalize:t}=e;return t(["User does not exist."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["A valid email must be provided for administrator contact"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["You can not delete your account, no other user has admin rights."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["You do not have permissions."])}},PAGINATION:{NEXT:e=>{const{normalize:t}=e;return t(["next"])},PREVIOUS:e=>{const{normalize:t}=e;return t(["previous"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Resend confirmation email"])},AUTHORIZE:e=>{const{normalize:t}=e;return t(["Authorize"])},BACK:e=>{const{normalize:t}=e;return t(["Back"])},CANCEL:e=>{const{normalize:t}=e;return t(["Cancel"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Clear filters"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Delete my account"])},DISABLE:e=>{const{normalize:t}=e;return t(["Disable"])},EDIT:e=>{const{normalize:t}=e;return t(["Edit"])},ENABLE:e=>{const{normalize:t}=e;return t(["Enable"])},FILTER:e=>{const{normalize:t}=e;return t(["Filter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Log in"])},NO:e=>{const{normalize:t}=e;return t(["No"])},REGISTER:e=>{const{normalize:t}=e;return t(["Register"])},RESET:e=>{const{normalize:t}=e;return t(["Reset"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Submit"])},YES:e=>{const{normalize:t}=e;return t(["Yes"])}},s={ABOUT:e=>{const{normalize:t}=e;return t(["about"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation"])},CONTACT:e=>{const{normalize:t}=e;return t(["contact"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["day"]),t(["days"])])},DISPLAYED:e=>{const{normalize:t}=e;return t(["Displayed"])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentation"])},HERE:e=>{const{normalize:t}=e;return t(["here"])},HIDDEN:e=>{const{normalize:t}=e;return t(["Hidden"])},HOME:e=>{const{normalize:t}=e;return t(["Home"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:t}=e;return t(["ascending"])},DESC:e=>{const{normalize:t}=e;return t(["descending"])},LABEL:e=>{const{normalize:t}=e;return t(["sort"])}},ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["order by"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["par page"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Total"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Dashboard"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["This month"])}},c={APP_ERROR:e=>{const{normalize:t}=e;return t(["The application seems to have encountered some issues.
                                                                                Please try again later or contact the administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Page not found"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Workout not found"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Something went wrong"])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])}},u={ADD_A_NEW_APP:e=>{const{normalize:t}=e;return t(["Add a new OAuth2 application"])},APP:{CLIENT_ID:e=>{const{normalize:t}=e;return t(["Id"])},CLIENT_SECRET:e=>{const{normalize:t}=e;return t(["Secret"])},DESCRIPTION:e=>{const{normalize:t}=e;return t(["Application description"])},ISSUE_AT:e=>{const{normalize:t}=e;return t(["Issue at"])},NAME:e=>{const{normalize:t}=e;return t(["Application name"])},REDIRECT_URL:e=>{const{normalize:t}=e;return t(["Redirect URL"])},SCOPE:{LABEL:e=>{const{normalize:t}=e;return t(["Scope"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants write access to application configuration."])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants read access to auth endpoints."])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants write access to auth endpoints."])},"users:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants read access to users endpoints."])},"users:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants write access to users endpoints."])},"workouts:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants read access to workouts endpoints."])},"workouts:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants write access to workouts endpoints."])}},URL:e=>{const{normalize:t}=e;return t(["Application URL"])}},APPS_LIST:e=>{const{normalize:t}=e;return t(["OAuth2 applications"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:t}=e;return t(["Application created successfully. Make sure to copy the secret now, it won't show up again."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete this app?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["The application ",n(r(0))," is requesting:"])},AUTHORIZE_APP:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Authorize ",n(r(0))," to use your account?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:t}=e;return t(["copy to the clipboard"])},DELETE_APP:e=>{const{normalize:t}=e;return t(["Delete application"])},NEW_APP:e=>{const{normalize:t}=e;return t(["Add an application"])},NO_APP:e=>{const{normalize:t}=e;return t(["Application not found!"])},NO_APPS:e=>{const{normalize:t}=e;return t(["no applications"])},NO_DESCRIPTION:e=>{const{normalize:t}=e;return t(["no description"])},REVOKE_ALL_TOKENS:e=>{const{normalize:t}=e;return t(["Revoke all tokens"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Are you sure you want to revoke all tokens?"])},TOKENS_REVOKED:e=>{const{normalize:t}=e;return t(["All existing associated tokens have been revoked."])}},m={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Transport)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Virtual)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Hiking"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking (Electric)"])}},Mountaineering:{LABEL:e=>{const{normalize:t}=e;return t(["Mountaineering"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Rowing"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Running"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiing (Alpine)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiing (Cross Country)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Snowshoes"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Walking"])}}},d={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistics"])},TIME_FRAMES:{month:e=>{const{normalize:t}=e;return t(["month"])},week:e=>{const{normalize:t}=e;return t(["week"])},year:e=>{const{normalize:t}=e;return t(["year"])}}},E={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Didn't received instructions?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Check your email. A new confirmation email has been sent to the address provided."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Already have an account?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete your account? All data will be deleted, this cannot be undone"])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Current password"])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Enter a valid email address."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Enter a password"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Filter on username"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["hide password"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Invalid token, please request a new password reset."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Language"])},LOGIN:e=>{const{normalize:t}=e;return t(["Login"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Logout"])},LOG_IN:e=>{const{normalize:t}=e;return t(["log in"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["New password"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["No users found."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Password"])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Forgot password?"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["At least 8 characters required."])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Password reset"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Check your email. If your address is in our database, you'll received an email with a link to reset your password."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:t}=e;return t(["average"])},GOOD:e=>{const{normalize:t}=e;return t(["good"])},LABEL:e=>{const{normalize:t}=e;return t(["password strength"])},STRONG:e=>{const{normalize:t}=e;return t(["strong"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:t}=e;return t(["Capitalize some, but not all letters."])},anotherWord:e=>{const{normalize:t}=e;return t(["Add more words that are less common."])},associatedYears:e=>{const{normalize:t}=e;return t(["Avoid years that are associated with you."])},capitalization:e=>{const{normalize:t}=e;return t(["Capitalize more than the first letter."])},dates:e=>{const{normalize:t}=e;return t(["Avoid dates and years that are associated with you."])},l33t:e=>{const{normalize:t}=e;return t(["Avoid predictable letter substitutions like ","@"," for a."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Use longer keyboard patterns and change typing direction multiple times."])},noNeed:e=>{const{normalize:t}=e;return t(["You can create strong passwords without using symbols, numbers, or uppercase letters."])},pwned:e=>{const{normalize:t}=e;return t(["If you use this password elsewhere, you should change it."])},recentYears:e=>{const{normalize:t}=e;return t(["Avoid recent years."])},repeated:e=>{const{normalize:t}=e;return t(["Avoid repeated words and characters."])},reverseWords:e=>{const{normalize:t}=e;return t(["Avoid reversed spellings of common words."])},sequences:e=>{const{normalize:t}=e;return t(["Avoid common character sequences."])},useWords:e=>{const{normalize:t}=e;return t(["Use multiple words, but avoid common phrases."])}},WEAK:e=>{const{normalize:t}=e;return t(["weak"])}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Your password have been updated. Click ",n(r(0))," to log in."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Account edition"])},ASCENT_DATA:e=>{const{normalize:t}=e;return t(["Ascent-related data (records, total)"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Back to profile"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Birth date"])},DATE_FORMAT:e=>{const{normalize:t}=e;return t(["Date display format"])},EDIT:e=>{const{normalize:t}=e;return t(["Edit profile"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Edit preferences"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Edit sports preferences"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Please ",n(r(0))," to change your email address again or contact the administrator"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["First day of week"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["First name"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Language"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Last name"])},LOCATION:e=>{const{normalize:t}=e;return t(["Location"])},MONDAY:e=>{const{normalize:t}=e;return t(["Monday"])},PICTURE:e=>{const{normalize:t}=e;return t(["Picture"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Picture edition"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Remove picture"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Update picture"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Preferences edition"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Profile edition"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Registration date"])},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["action"])},COLOR:e=>{const{normalize:t}=e;return t(["color"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["disabled by admin"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["active"])},LABEL:e=>{const{normalize:t}=e;return t(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["stopped speed threshold"])}},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Sports preferences edition"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Your account has been updated successfully. Please check your email to confirm your new email address."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Your account has been created successfully."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["A link to activate your account has been emailed to the address provided."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Your account has been updated successfully."])},SUNDAY:e=>{const{normalize:t}=e;return t(["Sunday"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["account"])},APPS:e=>{const{normalize:t}=e;return t(["apps"])},PICTURE:e=>{const{normalize:t}=e;return t(["picture"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["preferences"])},PROFILE:e=>{const{normalize:t}=e;return t(["profile"])},SPORTS:e=>{const{normalize:t}=e;return t(["sports"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Timezone"])},UNITS:{IMPERIAL:e=>{const{normalize:t}=e;return t(["Imperial system (ft, mi, mph, °F)"])},LABEL:e=>{const{normalize:t}=e;return t(["Units for distance"])},METRIC:e=>{const{normalize:t}=e;return t(["Metric system (m, km, m/s, °C)"])}}},REGISTER:e=>{const{normalize:t}=e;return t(["Register"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Sorry, registration is disabled."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Resend account confirmation email"])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset your password"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["show password"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["This user account is inactive."])},USERNAME:e=>{const{normalize:t}=e;return t(["Username"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(['3 to 30 characters required, only alphanumeric characters and the underscore character "_" allowed.'])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["user picture"])}},S={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Add a workout"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["analysis"])},ASCENT:e=>{const{normalize:t}=e;return t(["ascent"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["average speed"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["ave. speed"])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["back to workout"])},DATE:e=>{const{normalize:t}=e;return t(["date"])},DESCENT:e=>{const{normalize:t}=e;return t(["descent"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["display filters"])},DISTANCE:e=>{const{normalize:t}=e;return t(["distance"])},DURATION:e=>{const{normalize:t}=e;return t(["duration"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Edit the workout"])},ELEVATION:e=>{const{normalize:t}=e;return t(["elevation"])},END:e=>{const{normalize:t}=e;return t(["end"])},FROM:e=>{const{normalize:t}=e;return t(["from"])},GPX_FILE:e=>{const{normalize:t}=e;return t([".gpx file"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["hide filters"])},INVALID_ASCENT_OR_DESCENT:e=>{const{normalize:t}=e;return t(["Both elevation values must be provided and be greater than or equal to 0."])},INVALID_DISTANCE:e=>{const{normalize:t}=e;return t(["The distance must be greater than 0"])},INVALID_DURATION:e=>{const{normalize:t}=e;return t(["The duration must be greater than 0 seconds"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Latest workouts"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Load more workouts"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["max. altitude"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["max files"])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["max size"])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["max. speed"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["min. altitude"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["No next segment"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Next workout"])},NOTES:e=>{const{normalize:t}=e;return t(["notes"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["data from gpx, without any cleaning"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["No file provided"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["no folder inside"])},NO_MAP:e=>{const{normalize:t}=e;return t(["No map"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["No next segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["No next workout"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["No notes"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["No previous segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["No previous workout"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["No records."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["No workouts."])},PAUSES:e=>{const{normalize:t}=e;return t(["pauses"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Previous segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Previous workout"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Ave. speed"])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Farthest distance"])},RECORD_HA:e=>{const{normalize:t}=e;return t(["Highest ascent"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Longest duration"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Max. speed"])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["remaining characters"])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["segment"]),t(["segments"])])},SPEED:e=>{const{normalize:t}=e;return t(["speed"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["sport"]),t(["sports"])])},START:e=>{const{normalize:t}=e;return t(["start"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Start and finish"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["start elevation axis at zero"])},TITLE:e=>{const{normalize:t}=e;return t(["title"])},TO:e=>{const{normalize:t}=e;return t(["to"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["total duration"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Upload one!"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["clear day"])},"clear-night":e=>{const{normalize:t}=e;return t(["clear night"])},cloudy:e=>{const{normalize:t}=e;return t(["cloudy"])},fog:e=>{const{normalize:t}=e;return t(["fog"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["partly cloudy day"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["partly cloudy night"])},rain:e=>{const{normalize:t}=e;return t(["rain"])},sleet:e=>{const{normalize:t}=e;return t(["sleet"])},snow:e=>{const{normalize:t}=e;return t(["snow"])},wind:e=>{const{normalize:t}=e;return t(["wind"])}},HUMIDITY:e=>{const{normalize:t}=e;return t(["humidity"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["temperature"])},WIND:e=>{const{normalize:t}=e;return t(["wind"])},WIND_DIRECTIONS:{E:e=>{const{normalize:t}=e;return t(["E"])},ENE:e=>{const{normalize:t}=e;return t(["ENE"])},ESE:e=>{const{normalize:t}=e;return t(["ESE"])},N:e=>{const{normalize:t}=e;return t(["N"])},NE:e=>{const{normalize:t}=e;return t(["NE"])},NNE:e=>{const{normalize:t}=e;return t(["NNE"])},NNW:e=>{const{normalize:t}=e;return t(["NNW"])},NW:e=>{const{normalize:t}=e;return t(["NW"])},S:e=>{const{normalize:t}=e;return t(["S"])},SE:e=>{const{normalize:t}=e;return t(["SE"])},SSE:e=>{const{normalize:t}=e;return t(["SSE"])},SSW:e=>{const{normalize:t}=e;return t(["SSW"])},SW:e=>{const{normalize:t}=e;return t(["SW"])},W:e=>{const{normalize:t}=e;return t(["W"])},WNW:e=>{const{normalize:t}=e;return t(["WNW"])},WSW:e=>{const{normalize:t}=e;return t(["WSW"])}}},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["without .gpx file"])},WITH_GPX:e=>{const{normalize:t}=e;return t(["with .gpx file"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["workout"]),t(["workouts"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["workout date"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete this workout?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t([".zip file"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["or .zip file containing .gpx files"])}},_={about:r,admin:a,api:o,buttons:i,common:s,dashboard:l,error:c,oauth2:u,sports:m,statistics:d,user:E,workouts:S}},6625:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return _}});var r={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Contacter l'administrateur"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee est un tracker d'activités sportives (en extérieur)."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["sous licence ",n(r(0))," (en) "])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Code source (en)"])},WEATHER_DATA_FROM:e=>{const{normalize:t}=e;return t(["Source des données météo :"])}},a={ACTION:e=>{const{normalize:t}=e;return t(["Action"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Activer le compte"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Actif"])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs."])},APPLICATION:e=>{const{normalize:t}=e;return t(["Application"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Email de l'administrateur pour contact "])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Nombre max. de fichiers dans une archive zip "])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Si égal à 0, pas limite d'inscription"])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Nombre maximum d'utilisateurs actifs "])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["non renseigné"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Taille max. des fichiers (en Mo) "])},TITLE:e=>{const{normalize:t}=e;return t(["Configuration de l'application"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Taille max. des archives zip (en Mo) "])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Revenir à l'admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Êtes-vous sûr de vouloir supprimer le compte de l'utilisateur ",n(r(0))," ? Toutes les données seront définitivement."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Êtes-vous sûr de vouloir réinitialiser le mot de passe de l'utilisateur ",n(r(0))," ?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Adresse email actuelle"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Supprimer l'utilisateur"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["L'envoi d'emails est désactivé."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Activer/désactiver des sports."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["Nouvelle adresse email"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Le mot de passe a été réinitialisé."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Les inscriptions sont actuellement désactivées."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Les inscriptions sont actuellement activées."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Réinit. le mot de passe"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Actif"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["des séances existent"])},IMAGE:e=>{const{normalize:t}=e;return t(["Image"])},LABEL:e=>{const{normalize:t}=e;return t(["Label"])}},TITLE:e=>{const{normalize:t}=e;return t(["Administration - Sports"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Configurer l'application (nombre maximum d'utilisateurs inscrits, taille maximale des fichers)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Changer l'email"])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["utilisateur"]),t(["utilisateurs"])])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["status administrateur"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["date d'inscription"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["statut du compte"])},USERNAME:e=>{const{normalize:t}=e;return t(["nom d'utilisateur"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["nombre de séances"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Ajouter les droits d'admin"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Retirer les droits d'admin"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["L'adresse email a été mise à jour."])}},o={ERROR:{"Network Error":e=>{const{normalize:t}=e;return t(["Erreur réseau."])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:t}=e;return t(["Au moins un fichier de l'archive zip dépasse la taille maximale, veuillez vérifier l'archive."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Courriel : une adresse électronique valide doit être fournie."])},"error during gpx file parsing":e=>{const{normalize:t}=e;return t(["Erreur lors de l'analyse du fichier."])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Erreur lors du traitement du fichier gpx."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Erreur lors de la récupération de la configuration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Erreur lors de la mise à jour de la configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Erreur, veuillez réessayer ou contacter l'administrateur."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Erreur, les inscriptions sont désactivées."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["Extension de fichier non autorisée."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["La taille du fichier est supérieure à la limite autorisée."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Identifiants invalides."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Données fournies incorrectes."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Jeton de connexion invalide, merci de vous reconnecter."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Jeton de connexion, merci de vous reconnecter."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["La nouvelle addresse électronique doit être differente de l'adresse actuelle"])},"no file part":e=>{const{normalize:t}=e;return t(["Pas de fichier fourni."])},"no selected file":e=>{const{normalize:t}=e;return t(["Pas de fichier sélectionné."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Mot de passe : les mots de passe saisis sont différents."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Merci de fournir un jeton de connexion valide."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expirée. Merci de vous reconnecter."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Désolé, ce nom d'utilisateur est déjà utilisé."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Ce sport n'existe pas."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Inscription validée."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:t}=e;return t(["Le nombre de fichiers de l'archive dépasse la limite."])},"user does not exist":e=>{const{normalize:t}=e;return t(["L'utilisateur n'existe pas."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["Une adresse électronique doit être fournie pour le contact de l'administrateur"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["Vous n'avez pas les permissions nécessaires."])}},PAGINATION:{NEXT:e=>{const{normalize:t}=e;return t(["suivant"])},PREVIOUS:e=>{const{normalize:t}=e;return t(["précédent"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Renvoyer le message de confirmation"])},AUTHORIZE:e=>{const{normalize:t}=e;return t(["Autoriser"])},BACK:e=>{const{normalize:t}=e;return t(["Retour"])},CANCEL:e=>{const{normalize:t}=e;return t(["Annuler"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Réinitialiser"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Supprimer mon compte"])},DISABLE:e=>{const{normalize:t}=e;return t(["Désactiver"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifier"])},ENABLE:e=>{const{normalize:t}=e;return t(["Activer"])},FILTER:e=>{const{normalize:t}=e;return t(["Filtrer"])},LOGIN:e=>{const{normalize:t}=e;return t(["Se connecter"])},NO:e=>{const{normalize:t}=e;return t(["Non"])},REGISTER:e=>{const{normalize:t}=e;return t(["S'inscrire"])},RESET:e=>{const{normalize:t}=e;return t(["Réinit."])},SUBMIT:e=>{const{normalize:t}=e;return t(["Valider"])},YES:e=>{const{normalize:t}=e;return t(["Oui"])}},s={ABOUT:e=>{const{normalize:t}=e;return t(["à propos"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation"])},CONTACT:e=>{const{normalize:t}=e;return t(["contact"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["jour"]),t(["jours"])])},DISPLAYED:e=>{const{normalize:t}=e;return t(["Affiché"])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentation (en)"])},HERE:e=>{const{normalize:t}=e;return t(["ici"])},HIDDEN:e=>{const{normalize:t}=e;return t(["Masqué"])},HOME:e=>{const{normalize:t}=e;return t(["Accueil"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:t}=e;return t(["ascendant"])},DESC:e=>{const{normalize:t}=e;return t(["descendant"])},LABEL:e=>{const{normalize:t}=e;return t(["tri"])}},ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["trier par "])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["par page"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Total"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Tableau de bord"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["Ce mois-ci"])}},c={APP_ERROR:e=>{const{normalize:t}=e;return t(["L'application semble rencontrer quelques problèmes.
                                                                                Veuillez réessayer plus tard ou contacter l'administrateur."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Page introuvable"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Séance introuvable"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Une erreur s'est produite"])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])}},u={ADD_A_NEW_APP:e=>{const{normalize:t}=e;return t(["Ajouter une nouvelle application OAuth2"])},APP:{CLIENT_ID:e=>{const{normalize:t}=e;return t(["Identifiant"])},CLIENT_SECRET:e=>{const{normalize:t}=e;return t(["Secret"])},DESCRIPTION:e=>{const{normalize:t}=e;return t(["Description de l'application"])},ISSUE_AT:e=>{const{normalize:t}=e;return t(["Créée le"])},NAME:e=>{const{normalize:t}=e;return t(["Nom de l'application"])},REDIRECT_URL:e=>{const{normalize:t}=e;return t(["URL de redirection"])},SCOPE:{LABEL:e=>{const{normalize:t}=e;return t(["Scope"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en écriture à la configuration de l'application."])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en lecture aux routes auth."])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en écriture aux routes auth."])},"users:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en lecture aux routes users."])},"users:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en écriture aux routes users."])},"workouts:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en lecture aux routes workouts."])},"workouts:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en écriture aux routes workouts."])}},URL:e=>{const{normalize:t}=e;return t(["URL de l'application"])}},APPS_LIST:e=>{const{normalize:t}=e;return t(["Applications OAuth2"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:t}=e;return t(["Application créée avec succès. Assurez-vous de copier le secret maintenant, il ne s'affichera plus."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Êtes-vous sûr de vouloir supprimer cette application ?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["L'application ",n(r(0))," demande les accès suivants :"])},AUTHORIZE_APP:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Autoriser ",n(r(0))," à utiliser votre compte ?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:t}=e;return t(["copier dans le presse papier"])},DELETE_APP:e=>{const{normalize:t}=e;return t(["Supprimer l'application"])},NEW_APP:e=>{const{normalize:t}=e;return t(["Ajouter une application"])},NO_APP:e=>{const{normalize:t}=e;return t(["Application introuvable !"])},NO_APPS:e=>{const{normalize:t}=e;return t(["pas de applications"])},NO_DESCRIPTION:e=>{const{normalize:t}=e;return t(["pas de description"])},REVOKE_ALL_TOKENS:e=>{const{normalize:t}=e;return t(["Révoquer tous les jetons"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Êtes-vous sûr de vouloir révoquer tous les jetons ?"])},TOKENS_REVOKED:e=>{const{normalize:t}=e;return t(["Tous les jetons associés existants ont été révoqués."])}},m={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Transport)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Virtuel)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Randonnée"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["VTT"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["VTT (Électrique)"])}},Mountaineering:{LABEL:e=>{const{normalize:t}=e;return t(["Alpinisme"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Aviron"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Course"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Ski (Alpin)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Ski (Randonnée)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Raquettes"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Marche"])}}},d={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistiques"])},TIME_FRAMES:{month:e=>{const{normalize:t}=e;return t(["mois"])},week:e=>{const{normalize:t}=e;return t(["semaine"])},year:e=>{const{normalize:t}=e;return t(["année"])}}},E={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Vous n'avez pas reçu les instructions ?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Vérifiez vos courriels. Un nouveau courriel de confirmation a été envoyé à l'adresse électronique fournie."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Vous avez déjà un compte ?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Êtes-vous sûr·e de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés"])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Mot de passe actuel"])},EMAIL:e=>{const{normalize:t}=e;return t(["Courriel"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Saisissez une adresse électronique valide."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Saisissez un mot de passe"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Filtrer sur le nom d'utilisateur"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["masquer le mot de passe"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Jeton invalide, veuillez demander une nouvelle réinitialisation de mot de passe."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Langue"])},LOGIN:e=>{const{normalize:t}=e;return t(["Se connecter"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Se déconnecter"])},LOG_IN:e=>{const{normalize:t}=e;return t(["connecter"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["Nouveau mot de passe"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["Aucun utilisateur trouvé."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Mot de passe"])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Mot de passe oublié ?"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["8 caractères minimum."])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Réinitialisation du mot de passe"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Vérifiez vos courriels. Si vote adresse est dans notre base de données, vous recevrez un courriel avec un lien pour réinitialiser votre mot de passe."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:t}=e;return t(["moyenne"])},GOOD:e=>{const{normalize:t}=e;return t(["bonne"])},LABEL:e=>{const{normalize:t}=e;return t(["robustesse du mot de passe"])},STRONG:e=>{const{normalize:t}=e;return t(["forte"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:t}=e;return t(["Mettez quelques lettres en majuscules, mais pas toutes."])},anotherWord:e=>{const{normalize:t}=e;return t(["Ajoutez des mots moins courants."])},associatedYears:e=>{const{normalize:t}=e;return t(["Évitez les années qui vous sont associées. (ex : date de naissance)."])},capitalization:e=>{const{normalize:t}=e;return t(["Capitalisez mais pas seulement la première lettre."])},dates:e=>{const{normalize:t}=e;return t(["Évitez les dates et les années qui vous sont associées. (ex : date ou année de naissance)."])},l33t:e=>{const{normalize:t}=e;return t(["Évitez les substitutions de lettres prévisibles comme ","@"," pour a."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Utilisez des motifs de clavier plus longs et changez de sens de frappe plusieurs fois."])},noNeed:e=>{const{normalize:t}=e;return t(["Vous pouvez créer des mots de passe forts sans utiliser de symboles, de chiffres ou de lettres majuscules."])},pwned:e=>{const{normalize:t}=e;return t(["Si vous utilisez ce mot de passe ailleurs, vous devriez le modifier."])},recentYears:e=>{const{normalize:t}=e;return t(["Évitez les dernières années."])},repeated:e=>{const{normalize:t}=e;return t(["Évitez les mots et les caractères répétés."])},reverseWords:e=>{const{normalize:t}=e;return t(["Évitez les orthographes inversées des mots courants."])},sequences:e=>{const{normalize:t}=e;return t(["Évitez les séquences de caractères courantes."])},useWords:e=>{const{normalize:t}=e;return t(["Utilisez plusieurs mots, mais évitez les phrases courantes."])}},WEAK:e=>{const{normalize:t}=e;return t(["faible"])}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Votre mot de passe a été mis à jour. Cliquez ",n(r(0))," pour vous connecter."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour du compte"])},ASCENT_DATA:e=>{const{normalize:t}=e;return t(["Données relatives au dénivelé positif (records, total)"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Revenir au profil"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Date de naissance"])},DATE_FORMAT:e=>{const{normalize:t}=e;return t(["Format d'affichage de la date"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifier le profil"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Modifier les préférences"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Modifier les préférences des sports"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Veuillez vous ",n(r(0))," pour changer de nouveau votre adresse électronique ou contacter l'administrateur"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["Premier jour de la semaine"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["Prénom"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Langue"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Nom"])},LOCATION:e=>{const{normalize:t}=e;return t(["Lieu"])},MONDAY:e=>{const{normalize:t}=e;return t(["Lundi"])},PICTURE:e=>{const{normalize:t}=e;return t(["Image de profil"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour de l'image de profil"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Supprimer"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Mettre à jour l'image"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour des préférences"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour du profil"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Date d'inscription"])},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["action"])},COLOR:e=>{const{normalize:t}=e;return t(["couleur"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["désactivé par l'administrateur"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["actif"])},LABEL:e=>{const{normalize:t}=e;return t(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["seuil de vitesse arrêtée"])}},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour des préférences des sports"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Votre compte a été modifié avec succès. Veuillez vérifier votre boîte de réception pour valider votre nouvelle adresse électronique."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Votre compte a été créé avec succès."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["Un lien pour activer votre compte a été envoyé à l'adresse électronique fournie."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Votre compte a été modifié avec succès."])},SUNDAY:e=>{const{normalize:t}=e;return t(["Dimanche"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["compte"])},APPS:e=>{const{normalize:t}=e;return t(["apps"])},PICTURE:e=>{const{normalize:t}=e;return t(["image"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["préférences"])},PROFILE:e=>{const{normalize:t}=e;return t(["profil"])},SPORTS:e=>{const{normalize:t}=e;return t(["sports"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Fuseau horaire"])},UNITS:{IMPERIAL:e=>{const{normalize:t}=e;return t(["Système impérial (ft, mi, mph, °F)"])},LABEL:e=>{const{normalize:t}=e;return t(["Unités pour les distances"])},METRIC:e=>{const{normalize:t}=e;return t(["Système métrique (m, km, m/s, °C)"])}}},REGISTER:e=>{const{normalize:t}=e;return t(["S'inscrire"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Désolé, les inscriptions sont désactivées."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Envoyer à nouveau le courriel de confirmation de compte"])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Réinitialiser votre mot de passe"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["afficher le mot de passe"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["Le compte de cet utilisateur est inactif."])},USERNAME:e=>{const{normalize:t}=e;return t(["Nom d'utilisateur"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(["3 à 30 caractères requis, seuls les caractères alphanumériques et le caractère _ sont autorisés."])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["photo de l'utilisateur"])}},S={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Ajouter une séance"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["analyse"])},ASCENT:e=>{const{normalize:t}=e;return t(["dénivelé positif"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["vitesse moyenne"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["vitesse moy."])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["revenir à la séance"])},DATE:e=>{const{normalize:t}=e;return t(["date"])},DESCENT:e=>{const{normalize:t}=e;return t(["dénivelé négatif"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["afficher les filtres"])},DISTANCE:e=>{const{normalize:t}=e;return t(["distance"])},DURATION:e=>{const{normalize:t}=e;return t(["durée"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Modifier la séance"])},ELEVATION:e=>{const{normalize:t}=e;return t(["altitude"])},END:e=>{const{normalize:t}=e;return t(["fin"])},FROM:e=>{const{normalize:t}=e;return t(["à partir de"])},GPX_FILE:e=>{const{normalize:t}=e;return t(["fichier .gpx"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["masquer les filtres"])},INVALID_ASCENT_OR_DESCENT:e=>{const{normalize:t}=e;return t(["Les 2 valeurs pour l'élévation doivent être renseignées et être supérieures ou égales à 0."])},INVALID_DISTANCE:e=>{const{normalize:t}=e;return t(["La distance doit être supérieure à 0"])},INVALID_DURATION:e=>{const{normalize:t}=e;return t(["La durée doit être supérieure à 0 secondes"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Séances récentes"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Charger les séances suivantes"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitude max"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["fichiers max. "])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["taille max. "])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["vitesse max"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitude min"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Segment suivant"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Séance suivante"])},NOTES:e=>{const{normalize:t}=e;return t(["notes"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["données issues du fichier gpx, sans correction"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["Pas de fichier fourni"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["pas de répertoire"])},NO_MAP:e=>{const{normalize:t}=e;return t(["Pas de carte"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Pas de segment suivant"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Pas de séance suivante"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["Pas de notes"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Pas de segment précédent"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Pas de séance précédente"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["Pas de records."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["Pas de séances."])},PAUSES:e=>{const{normalize:t}=e;return t(["pauses"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Segment précédent"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Séance précédente"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Vitesse moy."])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Distance la + longue"])},RECORD_HA:e=>{const{normalize:t}=e;return t(["Dénivelé positif le + élevé"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Durée la + longue"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Vitesse max."])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["nombre de caractères restants "])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["segment"]),t(["segments"])])},SPEED:e=>{const{normalize:t}=e;return t(["vitesse"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["sport"]),t(["sports"])])},START:e=>{const{normalize:t}=e;return t(["début"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Départ et arrivée"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["démarrer l'axe de l'altitude à 0"])},TITLE:e=>{const{normalize:t}=e;return t(["titre"])},TO:e=>{const{normalize:t}=e;return t(["jusqu'au"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["durée totale"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Ajoutez votre première séance !"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["ensoleillé"])},"clear-night":e=>{const{normalize:t}=e;return t(["nuit claire"])},cloudy:e=>{const{normalize:t}=e;return t(["nuageux"])},fog:e=>{const{normalize:t}=e;return t(["brouillard"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["partiellement nuageux"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["nuit partiellement nuageuse"])},rain:e=>{const{normalize:t}=e;return t(["pluie"])},sleet:e=>{const{normalize:t}=e;return t(["neige fondue"])},snow:e=>{const{normalize:t}=e;return t(["neige"])},wind:e=>{const{normalize:t}=e;return t(["venteux"])}},HUMIDITY:e=>{const{normalize:t}=e;return t(["humidité"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["température"])},WIND:e=>{const{normalize:t}=e;return t(["vent"])},WIND_DIRECTIONS:{E:e=>{const{normalize:t}=e;return t(["E"])},ENE:e=>{const{normalize:t}=e;return t(["ENE"])},ESE:e=>{const{normalize:t}=e;return t(["ESE"])},N:e=>{const{normalize:t}=e;return t(["N"])},NE:e=>{const{normalize:t}=e;return t(["NE"])},NNE:e=>{const{normalize:t}=e;return t(["NNE"])},NNW:e=>{const{normalize:t}=e;return t(["NNO"])},NW:e=>{const{normalize:t}=e;return t(["NO"])},S:e=>{const{normalize:t}=e;return t(["S"])},SE:e=>{const{normalize:t}=e;return t(["SE"])},SSE:e=>{const{normalize:t}=e;return t(["SSE"])},SSW:e=>{const{normalize:t}=e;return t(["SSO"])},SW:e=>{const{normalize:t}=e;return t(["SO"])},W:e=>{const{normalize:t}=e;return t(["O"])},WNW:e=>{const{normalize:t}=e;return t(["ONO"])},WSW:e=>{const{normalize:t}=e;return t(["OSO"])}}},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["sans fichier .gpx"])},WITH_GPX:e=>{const{normalize:t}=e;return t(["avec un fichier .gpx"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["séance"]),t(["séances"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["date de la séance"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Etes-vous sûr de vouloir supprimer cette séance ?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t(["archive .zip"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["ou une archive .zip contenant des fichiers .gpx"])}},_={about:r,admin:a,api:o,buttons:i,common:s,dashboard:l,error:c,oauth2:u,sports:m,statistics:d,user:E,workouts:S}},4334:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return _}});var r={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Contatta l'amministratore"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee è un tracker self-hosted per attività outdoor."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Sotto licenza ",n(r(0))," "])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Codice sorgente"])}},a={ACTION:e=>{const{normalize:t}=e;return t(["Azione"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Attiva account"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Attivo"])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Amministrazione"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Aggiungi/rimuovi permessi, elimina account utente."])},APPLICATION:e=>{const{normalize:t}=e;return t(["Applicazione"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Email di contatto dell'amministratore"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Numero massimo di files zip"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Se settato a 0, non ci sono limiti per le registrazioni."])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Numero massimo di utenti attivi"])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["nessuna mail di contatto"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Dimensione massima dei file caricabili (in Mb)"])},TITLE:e=>{const{normalize:t}=e;return t(["Configurazione applicazione"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Dimensione massima dell'archivio zip (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Ritorna ad amministrazione"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Sei sicuro di voler eliminare ",n(r(0))," account? Tutti i dati verranno persi, quest'azione non può essere annullata."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Sei sicuro di voler resettare ",n(r(0))," password?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Email corrente"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Elimina utente"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["L'invio di email è disabilitato."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Attiva/Disattiva sports."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["Nuova email"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["La password è stata reimpostata."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["La registrazione è al momento disabilitata."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["La registrazione è al momento abilitata."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset password"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Attivo"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["workout esistono"])},IMAGE:e=>{const{normalize:t}=e;return t(["Immagine"])},LABEL:e=>{const{normalize:t}=e;return t(["Etichetta"])}},TITLE:e=>{const{normalize:t}=e;return t(["Amministrazione sport"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Aggiorna configurazione applicazione (numero massimo di utenti registrati, dimensione massima dei files)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Aggiorna email"])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["utente"]),t(["utenti"])])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["stato admin"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["data di registrazione"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["stato account"])},USERNAME:e=>{const{normalize:t}=e;return t(["nome utente"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["numero di workout"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Aggiungi permessi di amministratore"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Rimuovi permessi di amministratore"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["L'indirizzo email è stato aggiornato."])}},o={ERROR:{"Network Error":e=>{const{normalize:t}=e;return t(["Errore di rete."])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Errore. Per favore riprova o contatta l'amminstratore."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:t}=e;return t(["Almeno un file nell'archivio zip supera il limite di dimensione, per favore controlla."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Email: dev'essere inserita un'email valida."])},"error during gpx file parsing":e=>{const{normalize:t}=e;return t(["Errore nella lettura del file gpx."])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Errore nell'elaborazione del file gpx."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Errore nella lettura della configurazione."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Errore nell'aggiornamento della configurazione"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Errore, per favore riprova o contatta l'amministratore."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Errore, la registrazione è disabilitata."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["File con estensione non permessa."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["La dimensione del file è maggiore di quella massima permessa."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Credenziali errate."])},"invalid payload":e=>{const{normalize:t}=e;return t(["I dati inseriti non sono validi."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Token scaduto, per favore ripeti il log in."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Token scaduto, per favore ripeti il log in."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["La nuova email dev'essere diversa dalla vecchia mail"])},"no file part":e=>{const{normalize:t}=e;return t(["Nessun file scelto."])},"no selected file":e=>{const{normalize:t}=e;return t(["Nessun file scelto."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Password: la password inserita e la conferma non combaciano."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Insersci un token di autenticazione valido."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Token scaduto. Per favore ripeti il log in."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Mi dispiace, quell'username è già esistente."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Questo sport non esiste."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Registrato con successo."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:t}=e;return t(["Il numero di files nell'archivio supera il limite massimo permesso."])},"user does not exist":e=>{const{normalize:t}=e;return t(["L'utente non esiste."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["Dev'essere inserita un'email valida"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["Non puoi eliminare questo account, nessun'altro account ha permessi di amministratore."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["Non hai i permessi necessari."])}},PAGINATION:{NEXT:e=>{const{normalize:t}=e;return t(["avanti"])},PREVIOUS:e=>{const{normalize:t}=e;return t(["precedente"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Re-invia email di conferma"])},AUTHORIZE:e=>{const{normalize:t}=e;return t(["Autorizza"])},BACK:e=>{const{normalize:t}=e;return t(["Indietro"])},CANCEL:e=>{const{normalize:t}=e;return t(["Annulla"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Resetta filtri"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Elimina il mio account"])},DISABLE:e=>{const{normalize:t}=e;return t(["Disattiva"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifica"])},ENABLE:e=>{const{normalize:t}=e;return t(["Attiva"])},FILTER:e=>{const{normalize:t}=e;return t(["Filtra"])},LOGIN:e=>{const{normalize:t}=e;return t(["Log in"])},NO:e=>{const{normalize:t}=e;return t(["No"])},REGISTER:e=>{const{normalize:t}=e;return t(["Registra"])},RESET:e=>{const{normalize:t}=e;return t(["Reset"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Invia"])},YES:e=>{const{normalize:t}=e;return t(["Si"])}},s={ABOUT:e=>{const{normalize:t}=e;return t(["about"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Conferma"])},CONTACT:e=>{const{normalize:t}=e;return t(["contatto"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["giorno"]),t(["giorni"])])},DISPLAYED:e=>{const{normalize:t}=e;return t(["Mostrato"])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentazione"])},HERE:e=>{const{normalize:t}=e;return t(["qui"])},HIDDEN:e=>{const{normalize:t}=e;return t(["Nascosto"])},HOME:e=>{const{normalize:t}=e;return t(["Home"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:t}=e;return t(["Dal più basso al più alto"])},DESC:e=>{const{normalize:t}=e;return t(["Dal più alto al più basso"])},LABEL:e=>{const{normalize:t}=e;return t(["ordina"])}},ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["ordina per"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["per pagina"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Totale"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Dashboard"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["Questo mese"])}},c={APP_ERROR:e=>{const{normalize:t}=e;return t(["L'applicazione ha riscontrato dei problemi.
                                                                                Per favore riprova più tardi o contatta l'amministratore."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Pagina non trovata"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Workout non trovato"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Qualcosa è andato storto"])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Errore. Per favore riprova o contatta l'amministratore."])}},u={ADD_A_NEW_APP:e=>{const{normalize:t}=e;return t(["Aggiungi una nuova applicazione OAuth2"])},APP:{CLIENT_ID:e=>{const{normalize:t}=e;return t(["Id"])},CLIENT_SECRET:e=>{const{normalize:t}=e;return t(["Secret"])},DESCRIPTION:e=>{const{normalize:t}=e;return t(["Descrizione applicazione"])},ISSUE_AT:e=>{const{normalize:t}=e;return t(["Issue at"])},NAME:e=>{const{normalize:t}=e;return t(["Nome applicazione"])},REDIRECT_URL:e=>{const{normalize:t}=e;return t(["URL redirect"])},SCOPE:{LABEL:e=>{const{normalize:t}=e;return t(["Scope"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["da permessi di scrittura alla configurazioen dell'applicazione."])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["da permessi di lettura a auth endpoints."])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["da permessi di scrittura a auth endpoints."])},"users:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["da permessi di lettura a users endpoints."])},"users:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["da permessi di scrittura a usersendpoints."])},"workouts:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["da permessi di lettura a workouts endpoints."])},"workouts:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["da permessi di scrittura a workouts endpoints."])}},URL:e=>{const{normalize:t}=e;return t(["URL applicazione"])}},APPS_LIST:e=>{const{normalize:t}=e;return t(["Applicazioni OAuth2"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:t}=e;return t(["Applicazione creata. Sii certo di copiare il secret ora, non lo rivedrai più."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Sei sicuro di voler eliminare quest'app?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["L'applicazione ",n(r(0))," sta chiedendo:"])},AUTHORIZE_APP:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Autorizzi ",n(r(0))," ad utilizzare il tuo account?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:t}=e;return t(["copia nella clipboard"])},DELETE_APP:e=>{const{normalize:t}=e;return t(["Elimina applicazione"])},NEW_APP:e=>{const{normalize:t}=e;return t(["Aggiungi applicazione"])},NO_APP:e=>{const{normalize:t}=e;return t(["Applicazione non trovata!"])},NO_APPS:e=>{const{normalize:t}=e;return t(["nessuna applicazione"])},NO_DESCRIPTION:e=>{const{normalize:t}=e;return t(["nessuna descrizione"])},REVOKE_ALL_TOKENS:e=>{const{normalize:t}=e;return t(["Rimuovi tutti i tokens"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Sei sicuro di voler rimuovere tutti i token?"])},TOKENS_REVOKED:e=>{const{normalize:t}=e;return t(["Tutti i token esistenti associati sono stati rimossi."])}},m={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Ciclismo (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Ciclismo (Trasporto)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:t}=e;return t(["Cicliscmo (Virtuale)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Escursioni"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking (Elettrica)"])}},Mountaineering:{LABEL:e=>{const{normalize:t}=e;return t(["Alpinismo"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Canottaggio"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Corsa"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Sci (Alpino)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Sci (Cross Country)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Racchette da neve"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Sentieri"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Camminata"])}}},d={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistiche"])},TIME_FRAMES:{month:e=>{const{normalize:t}=e;return t(["mese"])},week:e=>{const{normalize:t}=e;return t(["settimana"])},year:e=>{const{normalize:t}=e;return t(["anno"])}}},E={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Non hai ricevuto istruzioni?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Controlla la tua email. Una nuova email di conferma è stata inviata all'indirizzo specificato."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Hai già un account?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Sei sicuro di voler eliminare il tuo account? Tutti i dati saranno eliminati, quest'azione non può essere annullata"])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Password corrente"])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Inserisci un indirizzo email valido."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Inserisci una password"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Filtra per username"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["nascondi password"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Token invalido, per favore richiedi un nuovo reset della password."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Lingua"])},LOGIN:e=>{const{normalize:t}=e;return t(["Login"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Logout"])},LOG_IN:e=>{const{normalize:t}=e;return t(["log in"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["Nuova password"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["Nessun utente trovato."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Password"])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Password dimenticata?"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["Inserisci almeno 8 caratteri."])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Reset password"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Controlla la tua email. Se l'indirizzo inserito è nel nostro database, riceverai un'email con un link per resettare la tua password."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:t}=e;return t(["media"])},GOOD:e=>{const{normalize:t}=e;return t(["buona"])},LABEL:e=>{const{normalize:t}=e;return t(["sicurezza password"])},STRONG:e=>{const{normalize:t}=e;return t(["forte"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:t}=e;return t(["Inserisci qualche maiuscola."])},anotherWord:e=>{const{normalize:t}=e;return t(["Aggiungi più parole che sono meno comuni."])},associatedYears:e=>{const{normalize:t}=e;return t(["Evita date che possono essere associate a te."])},capitalization:e=>{const{normalize:t}=e;return t(["Inserisci maiuscole oltre alla prima lettera."])},dates:e=>{const{normalize:t}=e;return t(["Evita date che possono essere associate a te."])},l33t:e=>{const{normalize:t}=e;return t(["Evita sostituzioni prevedibili, per esempio, ","@"," per la a."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Usa patterns più lunghi e cambia direzione di scrittura più volte."])},noNeed:e=>{const{normalize:t}=e;return t(["Puoi creare password sicure senza utilizzare simboli, numeri, o maiuscole."])},pwned:e=>{const{normalize:t}=e;return t(["È consigliabile cambiare questa password se è utilizzata per altro."])},recentYears:e=>{const{normalize:t}=e;return t(["Evita date recenti."])},repeated:e=>{const{normalize:t}=e;return t(["Evita di ripetere lettere e parole."])},reverseWords:e=>{const{normalize:t}=e;return t(["Evita di scrivere parole al contrario."])},sequences:e=>{const{normalize:t}=e;return t(["Evita sequenze di caratteri comuni."])},useWords:e=>{const{normalize:t}=e;return t(["Usa più parole, ma evita frasi comuni."])}},WEAK:e=>{const{normalize:t}=e;return t(["bassa"])}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["La tua password è stata aggiornata. Clicca ",n(r(0))," per effettuare il login."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Tipo di account"])},ASCENT_DATA:e=>{const{normalize:t}=e;return t(["Dati relativi alle salite (singoli, totale)"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Ritorna al profilo"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Data di nascita"])},DATE_FORMAT:e=>{const{normalize:t}=e;return t(["Formato data"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifica profilo"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Modifica preferenze"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Modifica preferenze sport"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Per favore ",n(r(0))," per cambiare di nuovo la tua mail o contatta l'amministratore"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["Primo giorno della settimana"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["Nome"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Lingua"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Cognome"])},LOCATION:e=>{const{normalize:t}=e;return t(["Posizione"])},MONDAY:e=>{const{normalize:t}=e;return t(["Lunedì"])},PICTURE:e=>{const{normalize:t}=e;return t(["Foto"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Foto"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Rimuovi foto"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Aggiorna foto"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Preferenze"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Profilo"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Data di registrazione"])},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["azione"])},COLOR:e=>{const{normalize:t}=e;return t(["colore"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["disattivato dall'amministratore"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["attivo"])},LABEL:e=>{const{normalize:t}=e;return t(["etichetta"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["Limite minimo di velocità"])}},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Preferenze sport"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Il tuo account è stato aggiornato con successo. Per favore controlla la tua email per confermare il tuo indirizzo email."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Il tuo account è stato creato con successo."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["Un link per attivare il tuo account è stato inviato all'indirizzo specificato."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Il tuo account è stato aggiornato con successo."])},SUNDAY:e=>{const{normalize:t}=e;return t(["Domenica"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["account"])},APPS:e=>{const{normalize:t}=e;return t(["apps"])},PICTURE:e=>{const{normalize:t}=e;return t(["foto"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["preferenze"])},PROFILE:e=>{const{normalize:t}=e;return t(["profilo"])},SPORTS:e=>{const{normalize:t}=e;return t(["sports"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Timezone"])},UNITS:{IMPERIAL:e=>{const{normalize:t}=e;return t(["Sistema imperiale (ft, mi, mph, °F)"])},LABEL:e=>{const{normalize:t}=e;return t(["Unità per la distanza"])},METRIC:e=>{const{normalize:t}=e;return t(["Sistema metrico (m, km, m/s, °C)"])}}},REGISTER:e=>{const{normalize:t}=e;return t(["Registra"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Mi dispiace, la registrazione è disabilitata."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Re-invia email di conferma dell'account"])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Resetta password"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["mostra password"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["Questo account è inattivo."])},USERNAME:e=>{const{normalize:t}=e;return t(["Username"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(['Sono richiesti da 3 a 30 caratteri, è permesso utilizzare solo caratteri alfanumerici ed il simbolo "_".'])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["foto profilo"])}},S={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Aggiungi un workout"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["analisi"])},ASCENT:e=>{const{normalize:t}=e;return t(["salita"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["velocità media"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["vel. media"])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["ritorna al workout"])},DATE:e=>{const{normalize:t}=e;return t(["data"])},DESCENT:e=>{const{normalize:t}=e;return t(["discesa"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["mostra filtri"])},DISTANCE:e=>{const{normalize:t}=e;return t(["distanza"])},DURATION:e=>{const{normalize:t}=e;return t(["durata"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Modifica il workout"])},ELEVATION:e=>{const{normalize:t}=e;return t(["elevazione"])},END:e=>{const{normalize:t}=e;return t(["fine"])},FROM:e=>{const{normalize:t}=e;return t(["da"])},GPX_FILE:e=>{const{normalize:t}=e;return t(["file .gpx"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["nascondi filtri"])},INVALID_DISTANCE:e=>{const{normalize:t}=e;return t(["La distanza dev'essere maggiore di 0"])},INVALID_DURATION:e=>{const{normalize:t}=e;return t(["La durata dev'essere maggiore di 0"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Ultimi workout"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Carica più workout"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitudine massima"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["file massimi"])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["dimensione massima"])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["velocità massima"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitudine minima"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Nessun segmento successivo"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Prossimo workout"])},NOTES:e=>{const{normalize:t}=e;return t(["note"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(['data dal file gpx, senza "pulizia"'])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["Nessun file scelto"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["nessuna cartella all'interno"])},NO_MAP:e=>{const{normalize:t}=e;return t(["Nessuna mappa"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Nessun segmento successivo"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Nessun workout successivo"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["Nessuna nota"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Nessun segmento precedente"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Nessun workout precedente"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["Nessun record."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["Nessun workout."])},PAUSES:e=>{const{normalize:t}=e;return t(["pause"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Segmento precedente"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Workout precedente"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Vel. media"])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Distanza più lunga"])},RECORD_HA:e=>{const{normalize:t}=e;return t(["Salita più alta"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Durata più lunga"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Vel. massima"])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["caratteri rimanenti"])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["segmento"]),t(["segmenti"])])},SPEED:e=>{const{normalize:t}=e;return t(["velocità"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["sport"]),t(["sports"])])},START:e=>{const{normalize:t}=e;return t(["inizio"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Inizio e fine"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["partenza asse elevazione a 0"])},TITLE:e=>{const{normalize:t}=e;return t(["titolo"])},TO:e=>{const{normalize:t}=e;return t(["a"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["durata totale"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Carica file!"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["cielo chiaro"])},"clear-night":e=>{const{normalize:t}=e;return t(["notte chiara"])},cloudy:e=>{const{normalize:t}=e;return t(["nuvoloso"])},fog:e=>{const{normalize:t}=e;return t(["nebbia"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["parzialmente nuvoloso"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["notte parzialmente nuvolosa"])},rain:e=>{const{normalize:t}=e;return t(["pioggia"])},sleet:e=>{const{normalize:t}=e;return t(["nevischio"])},snow:e=>{const{normalize:t}=e;return t(["neve"])},wind:e=>{const{normalize:t}=e;return t(["vento"])}},HUMIDITY:e=>{const{normalize:t}=e;return t(["umidità"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["temperatura"])},WIND:e=>{const{normalize:t}=e;return t(["vento"])},WIND_DIRECTIONS:{E:e=>{const{normalize:t}=e;return t(["E"])},ENE:e=>{const{normalize:t}=e;return t(["ENE"])},ESE:e=>{const{normalize:t}=e;return t(["ESE"])},N:e=>{const{normalize:t}=e;return t(["N"])},NE:e=>{const{normalize:t}=e;return t(["NE"])},NNE:e=>{const{normalize:t}=e;return t(["NNE"])},NNW:e=>{const{normalize:t}=e;return t(["NNW"])},NW:e=>{const{normalize:t}=e;return t(["NW"])},S:e=>{const{normalize:t}=e;return t(["S"])},SE:e=>{const{normalize:t}=e;return t(["SE"])},SSE:e=>{const{normalize:t}=e;return t(["SSE"])},SSW:e=>{const{normalize:t}=e;return t(["SSW"])},SW:e=>{const{normalize:t}=e;return t(["SW"])},W:e=>{const{normalize:t}=e;return t(["W"])},WNW:e=>{const{normalize:t}=e;return t(["WNW"])},WSW:e=>{const{normalize:t}=e;return t(["WSW"])}}},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["senza file .gpx"])},WITH_GPX:e=>{const{normalize:t}=e;return t(["con file .gpx"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["workout"]),t(["workouts"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["data workout"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Sei sicuro di voler eliminare questo workout?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t(["file .zip"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["o file .zip contenente files .gpx"])}},_={about:r,admin:a,api:o,buttons:i,common:s,dashboard:l,error:c,oauth2:u,sports:m,statistics:d,user:E,workouts:S}},8891:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return _}});var r={},a={},o={},i={},s={},l={},c={},u={},m={},d={},E={},S={},_={about:r,admin:a,api:o,buttons:i,common:s,dashboard:l,error:c,oauth2:u,sports:m,statistics:d,user:E,workouts:S}},701:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return _}});var r={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Contacteer uw administrator"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee is zelf-gehoste buitenshuis activiteiten tracker."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Onder ",n(r(0))," licentie "])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Broncode"])}},a={ACTION:e=>{const{normalize:t}=e;return t(["Actie"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Activeer account"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Ingeschakeld"])},ADMIN:e=>{const{normalize:t}=e;return t(["Beheer"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Instellingen"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Toevoegen/verwijderen van administrator rechten, verwijder gebruikersaccount."])},APPLICATION:e=>{const{normalize:t}=e;return t(["Applicatie"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Administrator email voor contact"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. aantal bestanden in zip archief"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Bij 0, geen limiet op registratie."])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. aantal actieve gebruikers"])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["geen contact email"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. grootte van bestanden voor upload (in Mb)"])},TITLE:e=>{const{normalize:t}=e;return t(["Applicatie configureren"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. grootte van zip archief (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Terug naar beheer"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Weet u zeker dat u de account ",n(r(0))," wilt wissen? Alle gegevens worden verwijderd, dit kan niet ongedaan gemaakt worden."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Weet u zeker dat u het wachtwoord voor ",n(r(0))," wilt resetten?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Huidige email"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Verwijder gebruiker"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["Emails verzenden is uitgeschakeld."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Aan- of uitzetten van sporten."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["Nieuwe email"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Het wachtwoord werd gereset."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Registratie is momenteel uitgeschakeld."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Registratie is momenteel ingeschakeld."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset wachtwoord"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Ingeschakeld"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["Trainingen aanwezig"])},IMAGE:e=>{const{normalize:t}=e;return t(["Afbeelding"])},LABEL:e=>{const{normalize:t}=e;return t(["Label"])}},TITLE:e=>{const{normalize:t}=e;return t(["Beheer sporten"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["De applicatie configureren (maximum aantal geregistreerde gebruikers, maximum bestandsgrootte)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Update email"])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["gebruiker"]),t(["gebruikers"])])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["admin status"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["Registratie datum"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["Account status"])},USERNAME:e=>{const{normalize:t}=e;return t(["gebruikersnaam"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["aantal trainingen"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Admin rechten toevoegen"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Verwijder admin rechten"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Het emailadres werd bijgewerkt."])}},o={ERROR:{"Network Error":e=>{const{normalize:t}=e;return t(["Netwerk fout."])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Fout. Probeer opnieuw of contacteer de administrator."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:t}=e;return t(["Ten minste 1 bestand in het zip archief is groter dan toegelaten, gelieve de bestanden te controleren."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Email: een geldige email is vereist."])},"error during gpx file parsing":e=>{const{normalize:t}=e;return t(["Fout bij het verwerken van het gpx bestand."])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Fout bij verwerken van gpx."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Fout bij ophalen van configuratie."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Fout bij het updaten van de configuratie"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Fout, probeer opnieuw of contacteer de administrator."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Fout, registratie is uitgeschakeld."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["Bestandsformaat niet toegelaten."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["Bestandsgrootte is groter dan toegestaan."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Ongeldige inloggegevens."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Ingegeven data is ongeldig."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Ongeldige token, log opnieuw in."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Ongeldige token, log opnieuw in."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["Het nieuwe email adres dient te verschillen van het oude"])},"no file part":e=>{const{normalize:t}=e;return t(["Geen bestand opgegeven."])},"no selected file":e=>{const{normalize:t}=e;return t(["Geen bestand geselecteerd."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Wachtwoord: het wachtwoord en de bevestiging komen niet overeen."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Geef een geldig auth token."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signatuur verlopen. Log opnieuw in."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Sorry, deze gebruikersnaam is al in gebruik."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Deze sport bestaat niet."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Succesvol geregistreerd."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:t}=e;return t(["Het aantal bestanden in het zip archief overschrijdt de limiet."])},"user does not exist":e=>{const{normalize:t}=e;return t(["Gebruiker bestaat niet."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["Een geldige email is vereist voor admin contact informatie"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["U kunt uw account niet verwijderen, geen andere gebruiker heeft admin rechten."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["U hebt geen machtigingen."])}},PAGINATION:{NEXT:e=>{const{normalize:t}=e;return t(["volgende"])},PREVIOUS:e=>{const{normalize:t}=e;return t(["vorige"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Herzend bevestigings email"])},AUTHORIZE:e=>{const{normalize:t}=e;return t(["Toekennen"])},BACK:e=>{const{normalize:t}=e;return t(["Terug"])},CANCEL:e=>{const{normalize:t}=e;return t(["Annuleren"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Verwijder filters"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Verwijder mijn account"])},DISABLE:e=>{const{normalize:t}=e;return t(["Uitzetten"])},EDIT:e=>{const{normalize:t}=e;return t(["Bewerken"])},ENABLE:e=>{const{normalize:t}=e;return t(["Aanzetten"])},FILTER:e=>{const{normalize:t}=e;return t(["Filter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Inloggen"])},NO:e=>{const{normalize:t}=e;return t(["Nee"])},REGISTER:e=>{const{normalize:t}=e;return t(["Registreer"])},RESET:e=>{const{normalize:t}=e;return t(["Reset"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Uploaden"])},YES:e=>{const{normalize:t}=e;return t(["Ja"])}},s={ABOUT:e=>{const{normalize:t}=e;return t(["over"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bevestiging"])},CONTACT:e=>{const{normalize:t}=e;return t(["contacteer"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["dag"]),t(["dagen"])])},DISPLAYED:e=>{const{normalize:t}=e;return t(["Weergegeven"])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentatie"])},HERE:e=>{const{normalize:t}=e;return t(["hier"])},HIDDEN:e=>{const{normalize:t}=e;return t(["Verborgen"])},HOME:e=>{const{normalize:t}=e;return t(["Startscherm"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:t}=e;return t(["oplopend"])},DESC:e=>{const{normalize:t}=e;return t(["aflopend"])},LABEL:e=>{const{normalize:t}=e;return t(["sorteer"])}},ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["sorteer op"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["per pagina"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Totaal"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Dashboard"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["Deze maand"])}},c={APP_ERROR:e=>{const{normalize:t}=e;return t(["Er heeft zich een onbekende fout voorgedaan.
                                                                                Probeer aub later opnieuw of contacteer de administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Pagina niet gevonden"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Training niet gevonden"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Er ging iets mis"])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Fout. Probeer opnieuw of contacteer de administrator."])}},u={ADD_A_NEW_APP:e=>{const{normalize:t}=e;return t(["Nieuwe OAuth2 app toevoegen"])},APP:{CLIENT_ID:e=>{const{normalize:t}=e;return t(["Id"])},CLIENT_SECRET:e=>{const{normalize:t}=e;return t(["Geheim"])},DESCRIPTION:e=>{const{normalize:t}=e;return t(["App omschrijving"])},ISSUE_AT:e=>{const{normalize:t}=e;return t(["Probleem bij"])},NAME:e=>{const{normalize:t}=e;return t(["Naam van de app"])},REDIRECT_URL:e=>{const{normalize:t}=e;return t(["Doorverwijs URL"])},SCOPE:{LABEL:e=>{const{normalize:t}=e;return t(["Omvang"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["geeft toestemming tot aanpassen van de applicatie instellingen."])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["staat leestoegang toe aan auth endpoints."])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["staat schrijftoegang toe aan auth endpoints."])},"users:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["staat leestoegang toe aan users endpoints."])},"users:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["staat schrijftoegang toe aan users endpoints."])},"workouts:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["staat leestoegang toe aan workouts endpoints."])},"workouts:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["staat schrijftoegang toe aan workouts endpoints."])}},URL:e=>{const{normalize:t}=e;return t(["App URL"])}},APPS_LIST:e=>{const{normalize:t}=e;return t(["OAuth2 apps"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:t}=e;return t(["App succesvol aangemaakt. Kopieer zeker de geheime sleutel, deze zal later niet meer verschijnen."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Weet u zeker dat u deze app wilt verwijderen?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["De app ",n(r(0))," vraagt:"])},AUTHORIZE_APP:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Toegang geven aan ",n(r(0))," tot uw gebruikersaccount?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:t}=e;return t(["kopieer naar klembord"])},DELETE_APP:e=>{const{normalize:t}=e;return t(["Verwijder app"])},NEW_APP:e=>{const{normalize:t}=e;return t(["Voeg een app toe"])},NO_APP:e=>{const{normalize:t}=e;return t(["App niet gevonden!"])},NO_APPS:e=>{const{normalize:t}=e;return t(["geen apps"])},NO_DESCRIPTION:e=>{const{normalize:t}=e;return t(["geen beschrijving"])},REVOKE_ALL_TOKENS:e=>{const{normalize:t}=e;return t(["Verwijder alle tokens"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Weet u zeker dat u alle tokens wilt intrekken?"])},TOKENS_REVOKED:e=>{const{normalize:t}=e;return t(["Alle bestaande tokens werden ingetrokken."])}},m={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Fietsen (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Fietsen (Transport)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:t}=e;return t(["Fietsen (Virtueel)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Trektocht"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["Mountainbiken"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["Mountainbiken (Elektrisch)"])}},Mountaineering:{LABEL:e=>{const{normalize:t}=e;return t(["Bergbeklimmen"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Roeien"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Lopen"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiën (Alpine)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiën (Cross Country)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Sneeuwschoenen"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Wandelen"])}}},d={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistieken"])},TIME_FRAMES:{month:e=>{const{normalize:t}=e;return t(["maand"])},week:e=>{const{normalize:t}=e;return t(["week"])},year:e=>{const{normalize:t}=e;return t(["jaar"])}}},E={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Geen instructies ontvangen?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Controleer uw email. Een nieuwe bevestigingsmail werd verzonden naar het opgegeven adres."])},ADMIN:e=>{const{normalize:t}=e;return t(["Beheer"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Al een account aangemaakt?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Weet u zeker dat u uw account wilt verwijderen? Alle data wordt verwijderd, dit kan niet ongedaan worden"])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Huidig wachtwoord"])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Geef een geldig email adres op."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Geef een paswoord in"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Filter op gebruikersnaam"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["verberg wachtwoord"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Ongeldig token, vraag een nieuwe wachtwoord reset aan."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Taal"])},LOGIN:e=>{const{normalize:t}=e;return t(["Inloggen"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Uitloggen"])},LOG_IN:e=>{const{normalize:t}=e;return t(["inloggen"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["Nieuw wachtwoord"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["Geen gebruikers gevonden."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Wachtwoord"])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Wachtwoord vergeten?"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["Tenminste 8 karakters vereist."])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Wachtwoord reset"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Controleer uw inbox. Als uw email adres in onze database zit, hebt u een email ontvangen om uw wachtwoord te resetten."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:t}=e;return t(["gemiddeld"])},GOOD:e=>{const{normalize:t}=e;return t(["goed"])},LABEL:e=>{const{normalize:t}=e;return t(["wachtwoord sterkte"])},STRONG:e=>{const{normalize:t}=e;return t(["sterk"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:t}=e;return t(["Gebruik enkele hoofdletters."])},anotherWord:e=>{const{normalize:t}=e;return t(["Voeg meer niet gangbare woorden toe."])},associatedYears:e=>{const{normalize:t}=e;return t(["Vermijd jaartallen met een persoonlijke betekenis."])},capitalization:e=>{const{normalize:t}=e;return t(["Gebruik niet enkel voor de eerste letter een hoofdletter."])},dates:e=>{const{normalize:t}=e;return t(["Vermijd persoonlijke gegevens en jaartallen."])},l33t:e=>{const{normalize:t}=e;return t(["Vermijd voorspelbare vervangingen, zoals ","@"," voor de letter a."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Gebruik langere patronen en verander de richting van typen meerdere malen."])},noNeed:e=>{const{normalize:t}=e;return t(["U kan sterke wachtwoorden maken zonder gebruik van symbolen, nummers, of hoofdletters."])},pwned:e=>{const{normalize:t}=e;return t(["Als u dit wachtwoord ergens anders gebruikt zou u het beter veranderen."])},recentYears:e=>{const{normalize:t}=e;return t(["Vermijd recente jaartallen."])},repeated:e=>{const{normalize:t}=e;return t(["Vermijd opeenvolgende woorden en karakters."])},reverseWords:e=>{const{normalize:t}=e;return t(["Vermijd gangbare woorden die achterstevoren geschreven zijn."])},sequences:e=>{const{normalize:t}=e;return t(["Vermijd voorspelbare opeenvolgingen."])},useWords:e=>{const{normalize:t}=e;return t(["Gebruik verschillende woorden, maar vermijd vaak gebruikte zinnen."])}},WEAK:e=>{const{normalize:t}=e;return t(["zwak"])}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Uw wachtwoord werd aangepast. Klik ",n(r(0))," om in te loggen."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Account aanpassen"])},ASCENT_DATA:e=>{const{normalize:t}=e;return t(["Hoogte gerelateerde data (opnames, totaal)"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Terug naar profiel"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Geboortedatum"])},DATE_FORMAT:e=>{const{normalize:t}=e;return t(["Weergaveformaat datum"])},EDIT:e=>{const{normalize:t}=e;return t(["Profiel aanpassen"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Voorkeuren wijzigen"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Sport voorkeuren wijzigen"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Gelieve ",n(r(0))," om uw email adres opnieuw te wijzigen of contacteer uw administrator"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["Eerste dag van de week"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["Voornaam"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Taal"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Achternaam"])},LOCATION:e=>{const{normalize:t}=e;return t(["Locatie"])},MONDAY:e=>{const{normalize:t}=e;return t(["Maandag"])},PICTURE:e=>{const{normalize:t}=e;return t(["Afbeelding"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Afbeelding aanpassen"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Afbeelding verwijderen"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Afbeelding veranderen"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Voorkeuren aanpassen"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Profiel aanpassen"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Datum registratie"])},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["actie"])},COLOR:e=>{const{normalize:t}=e;return t(["kleur"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["uitgeschakeld door admin"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["actief"])},LABEL:e=>{const{normalize:t}=e;return t(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["snelheidsgrens voor stilstand"])}},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Sport voorkeuren aanpassen"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Uw account werd succesvol bijgewerkt. Controleer uw inbox om uw nieuw email adres te bevestigen."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Uw account werd succesvol aangemaakt."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["Een link om uw account te activeren werd doorgestuurd naar opgegeven email adres."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Uw account werd succesvol bijgewerkt."])},SUNDAY:e=>{const{normalize:t}=e;return t(["Zondag"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["account"])},APPS:e=>{const{normalize:t}=e;return t(["apps"])},PICTURE:e=>{const{normalize:t}=e;return t(["afbeelding"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["voorkeuren"])},PROFILE:e=>{const{normalize:t}=e;return t(["profiel"])},SPORTS:e=>{const{normalize:t}=e;return t(["sporten"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Tijdzone"])},UNITS:{IMPERIAL:e=>{const{normalize:t}=e;return t(["Imperialistisch systeem (ft, mi, mph, °F)"])},LABEL:e=>{const{normalize:t}=e;return t(["Eenheid voor afstand"])},METRIC:e=>{const{normalize:t}=e;return t(["Metrisch systeem (m, km, m/s, °C)"])}}},REGISTER:e=>{const{normalize:t}=e;return t(["Registreren"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Sorry, registreren is uitgeschakeld."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Opnieuw zenden van account bevestigingsmail"])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset uw wachtwoord"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["toon wachtwoord"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["Deze account is niet actief."])},USERNAME:e=>{const{normalize:t}=e;return t(["Gebruikersnaam"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(['3 tot 30 karakters vereist, enkel alfanumerieke karakters en het underscore karakter "_" zijn toegestaan.'])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["gebruikersafbeelding"])}},S={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Training toevoegen"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["analyse"])},ASCENT:e=>{const{normalize:t}=e;return t(["geklommen"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["gemiddelde snelheid"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["gem. snelheid"])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["Terug naar training"])},DATE:e=>{const{normalize:t}=e;return t(["datum"])},DESCENT:e=>{const{normalize:t}=e;return t(["gedaald"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["toon filters"])},DISTANCE:e=>{const{normalize:t}=e;return t(["afstand"])},DURATION:e=>{const{normalize:t}=e;return t(["duur"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Training aanpassen"])},ELEVATION:e=>{const{normalize:t}=e;return t(["hoogte"])},END:e=>{const{normalize:t}=e;return t(["einde"])},FROM:e=>{const{normalize:t}=e;return t(["van"])},GPX_FILE:e=>{const{normalize:t}=e;return t([".gpx bestand"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["verberg filters"])},INVALID_ASCENT_OR_DESCENT:e=>{const{normalize:t}=e;return t(["Beide waarden moeten opgegeven worden en dienen groter dan of gelijk aan 0 te zijn."])},INVALID_DISTANCE:e=>{const{normalize:t}=e;return t(["De afstand moet groter zijn dan 0"])},INVALID_DURATION:e=>{const{normalize:t}=e;return t(["De duur moet langer zijn dan 0 seconden"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Laatste trainingen"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Toon meer trainingen"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["max. hoogte"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["max. aantal bestanden"])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["max. grootte"])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["max. snelheid"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["min. hoogte"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Geen volgend segment"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Volgende training"])},NOTES:e=>{const{normalize:t}=e;return t(["notities"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["data vanuit gpx, zonder op te schonen"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["Geen bestand opgegeven"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["geen map aanwezig"])},NO_MAP:e=>{const{normalize:t}=e;return t(["Geen kaart"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Geen volgend segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Geen volgende training"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["Geen notities"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Geen vorig segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Geen vorige training"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["Geen records."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["Geen trainingen."])},PAUSES:e=>{const{normalize:t}=e;return t(["pauzes"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Vorig segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Vorige training"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Gem. snelheid"])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Langste afstand"])},RECORD_HA:e=>{const{normalize:t}=e;return t(["Hoogst geklommen"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Langste duur"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Max. snelheid"])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["resterende karakters"])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["segment"]),t(["segmenten"])])},SPEED:e=>{const{normalize:t}=e;return t(["snelheid"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["sport"]),t(["sporten"])])},START:e=>{const{normalize:t}=e;return t(["start"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Start en aankomst"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["Zet hoogte-as vast op 0"])},TITLE:e=>{const{normalize:t}=e;return t(["titel"])},TO:e=>{const{normalize:t}=e;return t(["aan"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["totale duur"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Eén uploaden!"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["heldere dag"])},"clear-night":e=>{const{normalize:t}=e;return t(["heldere nacht"])},cloudy:e=>{const{normalize:t}=e;return t(["bewolkt"])},fog:e=>{const{normalize:t}=e;return t(["mist"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["gedeeltelijk bewolkte dag"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["gedeeltelijk bewolkte nacht"])},rain:e=>{const{normalize:t}=e;return t(["regen"])},sleet:e=>{const{normalize:t}=e;return t(["natte sneeuw"])},snow:e=>{const{normalize:t}=e;return t(["sneeuw"])},wind:e=>{const{normalize:t}=e;return t(["wind"])}},HUMIDITY:e=>{const{normalize:t}=e;return t(["vochtigheid"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["temperatuur"])},WIND:e=>{const{normalize:t}=e;return t(["wind"])},WIND_DIRECTIONS:{E:e=>{const{normalize:t}=e;return t(["O"])},ENE:e=>{const{normalize:t}=e;return t(["ONO"])},ESE:e=>{const{normalize:t}=e;return t(["OZO"])},N:e=>{const{normalize:t}=e;return t(["N"])},NE:e=>{const{normalize:t}=e;return t(["NO"])},NNE:e=>{const{normalize:t}=e;return t(["NNO"])},NNW:e=>{const{normalize:t}=e;return t(["NNW"])},NW:e=>{const{normalize:t}=e;return t(["NW"])},S:e=>{const{normalize:t}=e;return t(["Z"])},SE:e=>{const{normalize:t}=e;return t(["ZO"])},SSE:e=>{const{normalize:t}=e;return t(["ZZO"])},SSW:e=>{const{normalize:t}=e;return t(["ZZW"])},SW:e=>{const{normalize:t}=e;return t(["ZW"])},W:e=>{const{normalize:t}=e;return t(["W"])},WNW:e=>{const{normalize:t}=e;return t(["WNW"])},WSW:e=>{const{normalize:t}=e;return t(["WZW"])}}},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["zonder .gpx bestand"])},WITH_GPX:e=>{const{normalize:t}=e;return t(["met .gpx bestand"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["training"]),t(["trainingen"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["datum training"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Weet u zeker dat u deze training wilt verwijderen?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t([".zip bestand"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["of .zip archief met .gpx bestanden"])}},_={about:r,admin:a,api:o,buttons:i,common:s,dashboard:l,error:c,oauth2:u,sports:m,statistics:d,user:E,workouts:S}},5326:function(e,t,n){"use strict";var r=n(3148),a=n(7028),o=n(9963),i=n(2343),s=n(5205);(0,s.z)("/service-worker.js",{ready(){console.log("App is being served from cache by a service worker.\nFor more details, visit https://goo.gl/AFskqB")},registered(){console.log("Service worker has been registered.")},cached(){console.log("Content has been cached for offline use.")},updatefound(){console.log("New content is downloading.")},updated(){console.log("New content is available; please refresh.")},offline(){console.log("No internet connection found. App is running in offline mode.")},error(e){console.error("Error during service worker registration:",e)}});var l=n(6252),c=n(2262),u=n(3577);const m=e=>((0,l.dD)("data-v-2c73279e"),e=e(),(0,l.Cn)(),e),d={id:"footer"},E={class:"footer-items"},S={class:"footer-item"},_=m((()=>(0,l._)("strong",null,"FitTrackee",-1))),T=m((()=>(0,l._)("div",{class:"footer-item bullet"},"•",-1))),p={class:"footer-item"},A={key:0,class:"footer-item bullet"},O={key:1,class:"footer-item"},z=["href"],I=m((()=>(0,l._)("div",{class:"footer-item bullet"},"•",-1))),R={class:"footer-item"},g={href:"https://samr1.github.io/FitTrackee/",target:"_blank",rel:"noopener noreferrer"};var N=(0,l.aZ)({__name:"Footer",props:{version:null,adminContact:null},setup(e){const t=e,{adminContact:n,version:r}=(0,c.BK)(t);return(e,t)=>{const a=(0,l.up)("router-link");return(0,l.wg)(),(0,l.iD)("div",d,[(0,l._)("div",E,[(0,l._)("div",S,[_,(0,l.Uk)(" v"+(0,u.zw)((0,c.SU)(r)),1)]),T,(0,l._)("div",p,[(0,l.Wm)(a,{to:"/about"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("common.ABOUT")),1)])),_:1})]),(0,c.SU)(n)?((0,l.wg)(),(0,l.iD)("div",A,"•")):(0,l.kq)("",!0),(0,c.SU)(n)?((0,l.wg)(),(0,l.iD)("div",O,[(0,l._)("a",{href:`mailto:${(0,c.SU)(n)}`},(0,u.zw)(e.$t("common.CONTACT")),9,z)])):(0,l.kq)("",!0),I,(0,l._)("div",R,[(0,l._)("a",g,(0,u.zw)(e.$t("common.DOCUMENTATION")),1)])])])}}}),U=n(3744);const h=(0,U.Z)(N,[["__scopeId","data-v-2c73279e"]]);var C=h,w=(n(7658),n(6595)),D=n(5801),v=n(9917),f=n(6287);const P=e=>((0,l.dD)("data-v-ab6e62ae"),e=e(),(0,l.Cn)(),e),k={id:"nav"},L={class:"nav-container"},M={class:"nav-app-name"},b={class:"nav-items-close"},y=P((()=>(0,l._)("div",{class:"app-name"},"FitTrackee",-1))),G={key:0,class:"nav-items-group"},F=P((()=>(0,l._)("div",{class:"nav-item nav-separator"},null,-1))),W={class:"nav-items-user-menu"},B={key:0,class:"nav-items-group"},K={class:"nav-item nav-profile-img"},Y={key:1,class:"nav-items-group"},x=P((()=>(0,l._)("i",{class:"fa fa-language"},null,-1)));var H=(0,l.aZ)({__name:"NavBar",emits:["menuInteraction"],setup(e,{emit:t}){const n=(0,v.o)(),r=(0,l.Fl)((()=>n.getters[D.YN.GETTERS.AUTH_USER_PROFILE])),a=(0,l.Fl)((()=>n.getters[D.YN.GETTERS.IS_AUTHENTICATED])),o=(0,l.Fl)((()=>n.getters[D.SY.GETTERS.LANGUAGE])),i=(0,c.iH)(!1);function s(){i.value=!0,t("menuInteraction",!0)}function m(){i.value=!1,t("menuInteraction",!1)}function d(e){n.dispatch(D.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,e.value.toString())}function E(){n.dispatch(D.YN.ACTIONS.LOGOUT)}return(e,t)=>{const n=(0,l.up)("router-link"),S=(0,l.up)("Dropdown");return(0,l.wg)(),(0,l.iD)("div",k,[(0,l._)("div",L,[(0,l._)("div",M,[(0,l._)("div",{class:"nav-item app-name",onClick:t[0]||(t[0]=t=>e.$router.push("/"))}," FitTrackee ")]),(0,l._)("div",{class:(0,u.C_)(["nav-icon-open",{"menu-open":i.value}])},[(0,l._)("i",{class:"fa fa-bars hamburger-icon",onClick:t[1]||(t[1]=e=>s())})],2),(0,l._)("div",{class:(0,u.C_)(["nav-items",{"menu-open":i.value}])},[(0,l._)("div",b,[y,(0,l._)("i",{class:(0,u.C_)(["fa fa-close close-icon nav-item",{"menu-closed":!i.value}]),onClick:t[2]||(t[2]=e=>m())},null,2)]),(0,l._)("div",{class:"nav-items-app-menu",onClick:t[3]||(t[3]=e=>m())},[(0,c.SU)(a)?((0,l.wg)(),(0,l.iD)("div",G,[(0,l.Wm)(n,{class:"nav-item",to:"/"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("dashboard.DASHBOARD")),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/workouts"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,u.kC)(e.$t("workouts.WORKOUT",2))),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/statistics"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("statistics.STATISTICS")),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/workouts/add"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("workouts.ADD_WORKOUT")),1)])),_:1}),(0,c.SU)(a)&&(0,c.SU)(r).admin?((0,l.wg)(),(0,l.j4)(n,{key:0,class:"nav-item",to:"/admin"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("admin.ADMIN")),1)])),_:1})):(0,l.kq)("",!0),F])):(0,l.kq)("",!0)]),(0,l._)("div",W,[(0,c.SU)(a)?((0,l.wg)(),(0,l.iD)("div",B,[(0,l._)("div",K,[(0,l.Wm)(w.Z,{user:(0,c.SU)(r)},null,8,["user"])]),(0,l.Wm)(n,{class:"nav-item",to:"/profile",onClick:m},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,c.SU)(r).username),1)])),_:1}),(0,l._)("div",{class:"nav-item nav-link",onClick:E},(0,u.zw)(e.$t("user.LOGOUT")),1)])):((0,l.wg)(),(0,l.iD)("div",Y,[(0,l.Wm)(n,{class:"nav-item",to:"/login",onClick:m},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("user.LOGIN")),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/register",onClick:m},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("user.REGISTER")),1)])),_:1})])),(0,c.SU)(f.mT)&&(0,c.SU)(o)?((0,l.wg)(),(0,l.j4)(S,{key:2,class:"nav-item",options:(0,c.SU)(f.mT),selected:(0,c.SU)(o),onSelected:d},{default:(0,l.w5)((()=>[x])),_:1},8,["options","selected"])):(0,l.kq)("",!0)])],2)])])}}});const Z=(0,U.Z)(H,[["__scopeId","data-v-ab6e62ae"]]);var $=Z,V=n(7167);const q={id:"no-config"},j={class:"error-page"},X={class:"error-img"},J=["innerHTML"];var Q=(0,l.aZ)({__name:"NoConfig",setup(e){return(e,t)=>((0,l.wg)(),(0,l.iD)("div",q,[(0,l._)("div",j,[(0,l._)("div",X,[(0,l.Wm)(V.Z)]),(0,l._)("p",{class:"error-message",innerHTML:e.$t("error.APP_ERROR")},null,8,J)])]))}});const ee=(0,U.Z)(Q,[["__scopeId","data-v-47759238"]]);var te=ee;const ne=(0,l._)("div",{id:"top"},null,-1),re={key:0,class:"app-container"},ae={class:"app-loading"},oe={class:"container scroll"},ie=(0,l._)("i",{class:"fa fa-chevron-up","aria-hidden":"true"},null,-1),se=[ie];var le=(0,l.aZ)({__name:"App",setup(e){const t=(0,v.o)(),n=(0,l.Fl)((()=>t.getters[D.SY.GETTERS.APP_CONFIG])),r=(0,l.Fl)((()=>t.getters[D.SY.GETTERS.APP_LOADING])),a=(0,c.iH)(!1),o=(0,c.iH)(!1);function i(e){a.value=e}function s(e){return e.getBoundingClientRect().top=0}function m(){window.onscroll=()=>{const e=document.querySelector("#bottom");o.value=null!==e&&s(e)}}function d(){window.scrollTo({top:0,behavior:"smooth"}),setTimeout((()=>{o.value=!1}),300)}function E(){let e="en";try{const t=navigator.language.split("-")[0];t in f.v1&&(e=t)}catch(n){e="en"}t.dispatch(D.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,e)}return(0,l.wF)((()=>{E(),t.dispatch(D.SY.ACTIONS.GET_APPLICATION_CONFIG)})),(0,l.bv)((()=>m())),(e,t)=>{const s=(0,l.up)("Loader"),m=(0,l.up)("router-view");return(0,l.wg)(),(0,l.iD)(l.HY,null,[ne,(0,l.Wm)($,{onMenuInteraction:i}),(0,c.SU)(r)?((0,l.wg)(),(0,l.iD)("div",re,[(0,l._)("div",ae,[(0,l.Wm)(s)])])):((0,l.wg)(),(0,l.iD)("div",{key:1,class:(0,u.C_)(["app-container",{"hide-scroll":a.value}])},[(0,c.SU)(n)?((0,l.wg)(),(0,l.j4)(m,{key:0})):((0,l.wg)(),(0,l.j4)(te,{key:1}))],2)),(0,l._)("div",oe,[(0,l._)("div",{class:(0,u.C_)(["scroll-button",{"display-button":o.value}]),onClick:d},se,2)]),(0,c.SU)(n)?((0,l.wg)(),(0,l.j4)(C,{key:2,version:(0,c.SU)(n)?(0,c.SU)(n).version:"",adminContact:(0,c.SU)(n).admin_contact},null,8,["version","adminContact"])):(0,l.kq)("",!0)],64)}}});const ce=le;var ue=ce,me=n(2540),de=n(3654),Ee=n(2894);const Se={class:"alert-message"},_e=["innerHTML"];var Te=(0,l.aZ)({__name:"AlertMessage",props:{message:null},setup(e){const t=e,{message:n}=(0,c.BK)(t);return(e,t)=>((0,l.wg)(),(0,l.iD)("div",Se,[(0,l._)("div",{innerHTML:e.$t((0,c.SU)(n))},null,8,_e)]))}});const pe=(0,U.Z)(Te,[["__scopeId","data-v-69d7e4ff"]]);var Ae=pe,Oe=n(2531);const ze={class:"custom-textarea"},Ie=["id","name","maxLenght","disabled"],Re={class:"remaining-chars"};var ge=(0,l.aZ)({__name:"CustomTextArea",props:{name:null,charLimit:{default:500},disabled:{type:Boolean,default:!1},input:{default:""}},emits:["updateValue"],setup(e,{emit:t}){const n=e,r=(0,c.iH)("");function a(e){t("updateValue",e.target.value)}return(0,l.YP)((()=>n.input),(e=>{r.value=null===e?"":e})),(t,n)=>((0,l.wg)(),(0,l.iD)("div",ze,[(0,l.wy)((0,l._)("textarea",{id:e.name,name:e.name,maxLenght:e.charLimit,disabled:e.disabled,"onUpdate:modelValue":n[0]||(n[0]=e=>r.value=e),onInput:a},null,40,Ie),[[o.nr,r.value]]),(0,l._)("div",Re,(0,u.zw)(t.$t("workouts.REMAINING_CHARS"))+": "+(0,u.zw)(r.value.length)+"/"+(0,u.zw)(e.charLimit),1)]))}});const Ne=(0,U.Z)(ge,[["__scopeId","data-v-8cf5cc64"]]);var Ue=Ne,he=n(3649),Ce=(0,l.aZ)({__name:"Distance",props:{distance:null,unitFrom:null,useImperialUnits:{type:Boolean},digits:{default:2},displayUnit:{type:Boolean,default:!0},speed:{type:Boolean,default:!1},strong:{type:Boolean,default:!1}},setup(e){const t=e,{digits:n,displayUnit:r,distance:a,speed:o,strong:i,unitFrom:s,useImperialUnits:m}=(0,c.BK)(t),d=(0,l.Fl)((()=>m.value?he.Dl[s.value].defaultTarget:s.value)),E=(0,l.Fl)((()=>m.value?(0,he.sC)(a.value,s.value,d.value,n.value):parseFloat(a.value.toFixed(n.value))));return(e,t)=>((0,l.wg)(),(0,l.iD)(l.HY,null,[(0,l._)("span",{class:(0,u.C_)(["distance",{strong:(0,c.SU)(i)}])},(0,u.zw)((0,c.SU)(E)),3),(0,l.Uk)(" "+(0,u.zw)(" ")+" "),(0,c.SU)(r)?((0,l.wg)(),(0,l.iD)("span",{key:0,class:(0,u.C_)(["unit",{strong:(0,c.SU)(i)}])},(0,u.zw)((0,c.SU)(d))+(0,u.zw)((0,c.SU)(o)?"/h":""),3)):(0,l.kq)("",!0)],64))}});const we=(0,U.Z)(Ce,[["__scopeId","data-v-f46ff1d6"]]);var De=we,ve=n(2201);const fe={class:"dropdown-wrapper"},Pe={key:0,class:"dropdown-list"},ke=["onClick"];var Le=(0,l.aZ)({__name:"Dropdown",props:{options:null,selected:null},emits:{selected:e=>e},setup(e,{emit:t}){const n=e,r=(0,ve.yj)(),a=(0,c.iH)(!1),o=n.options.map((e=>e));function i(){a.value=!a.value}function s(e){t("selected",e),a.value=!1}return(0,l.YP)((()=>r.path),(()=>a.value=!1)),(t,n)=>((0,l.wg)(),(0,l.iD)("div",fe,[(0,l._)("div",{class:"dropdown-selected",onClick:i},[(0,l.WI)(t.$slots,"default")]),a.value?((0,l.wg)(),(0,l.iD)("ul",Pe,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)((0,c.SU)(o),((t,n)=>((0,l.wg)(),(0,l.iD)("li",{class:(0,u.C_)(["dropdown-item",{selected:t.value===e.selected}]),key:n,onClick:e=>s(t)},(0,u.zw)(t.label),11,ke)))),128))])):(0,l.kq)("",!0)]))}});const Me=(0,U.Z)(Le,[["__scopeId","data-v-9590c0e6"]]);var be=Me;const ye={class:"error-message"},Ge={key:0},Fe={key:1};var We=(0,l.aZ)({__name:"ErrorMessage",props:{message:null},setup(e){const t=e,{message:n}=(0,c.BK)(t);return(e,t)=>((0,l.wg)(),(0,l.iD)("div",ye,[Array.isArray((0,c.SU)(n))?((0,l.wg)(),(0,l.iD)("ul",Ge,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)((0,c.SU)(n),((t,n)=>((0,l.wg)(),(0,l.iD)("li",{key:n},(0,u.zw)(e.$t(t)),1)))),128))])):((0,l.wg)(),(0,l.iD)("div",Fe,(0,u.zw)(e.$t((0,c.SU)(n))),1))]))}});const Be=(0,U.Z)(We,[["__scopeId","data-v-2659a79a"]]);var Ke=Be;const Ye={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 491.737 491.737",style:{"enable-background":"new 0 0 491.737 491.737"},"xml:space":"preserve"},xe=(0,l._)("desc",{id:"cyclingSportDescription"}," silhouette of a person riding a bicycle ",-1),He=(0,l._)("g",null,[(0,l._)("path",{d:"M321.097,112.359c20.973,12.338,47.985,5.315,60.293-15.652c12.34-20.973,5.35-47.974-15.623-60.304\n\t\tc-21.009-12.332-47.99-5.317-60.314,15.65C293.129,73.036,300.103,100.027,321.097,112.359z"}),(0,l._)("path",{d:"M393.081,264.102c-2.414,0-4.8,0.194-7.169,0.362l-14.431-71.605l4.702-1.757c10.666-3.987,16.093-15.868,12.098-26.54\n\t\tc-3.994-10.681-15.946-16.084-26.531-12.09l-51.823,19.38l-2.321-18.864c6.3-13.193,5.541-29.78-4.767-41.482\n\t\tc-21.224-24.092-47.12-12.508-55.191-5.976l-106.884,86.555l0.016,0.024c-3.319,2.893-6.089,6.485-7.86,10.842\n\t\tc-2.191,5.396-2.596,11.067-1.564,16.384c-8.503,0.669-15.255,7.571-15.255,16.246c0,9.085,7.346,16.44,16.432,16.48l-6.797,15.906\n\t\tc-8.62-2.465-17.674-3.866-27.066-3.866C44.27,264.102,0,308.354,0,362.754c0,54.403,44.27,98.663,98.668,98.663\n\t\tc54.403,0,98.652-44.26,98.652-98.663c0-36.228-19.683-67.867-48.858-85.024l10.957-25.652h17.767l60.281,24.462l-32.201,52.773\n\t\tc-8.297,13.612-3.994,31.382,9.615,39.685c4.691,2.86,9.878,4.229,15,4.229c9.729,0,19.234-4.929,24.677-13.838l29.339-48.095\n\t\tl19.072,11.511c-5.447,12.227-8.54,25.726-8.54,39.95c0,54.403,44.254,98.663,98.652,98.663c54.402,0,98.656-44.26,98.656-98.663\n\t\tC491.737,308.354,447.483,264.102,393.081,264.102z M98.668,436.671c-40.756,0-73.923-33.161-73.923-73.917\n\t\tc0-40.756,33.167-73.909,73.923-73.909c5.944,0,11.649,0.896,17.188,2.224l-20.476,47.893\n\t\tc-11.758,1.619-20.843,11.598-20.843,23.792c0,13.323,10.808,24.132,24.13,24.132c8.767,0,16.367-4.745,20.589-11.76h52.065\n\t\tC165.395,409.988,135.188,436.671,98.668,436.671z M171.322,350.383h-52.065c-0.355-0.588-0.708-1.176-1.112-1.732l20.476-47.901\n\t\tC155.679,311.776,167.793,329.595,171.322,350.383z M296.781,290.175l7.666-12.564c4.416-7.233,5.431-16.038,2.774-24.084\n\t\tc-2.661-8.046-8.718-14.515-16.562-17.704l-52.725-21.395l32.443-26.281l1.804,14.691c0.756,6.267,4.366,11.841,9.761,15.12\n\t\tc3.271,1.981,6.979,2.988,10.698,2.988c2.435,0,4.88-0.435,7.218-1.306l48.15-18.001l13.627,67.691\n\t\tc-18.268,6.162-34.117,17.51-45.848,32.314L296.781,290.175z M375.396,337.633l-38.003-22.94\n\t\tc7.877-9.118,17.787-16.319,29.205-20.734L375.396,337.633z M393.081,436.671c-40.757,0-73.907-33.161-73.907-73.917\n\t\tc0-9.544,1.965-18.597,5.268-26.983l44.541,26.888c0,0.032-0.016,0.064-0.016,0.095c0,13.323,10.808,24.132,24.114,24.132\n\t\tc13.322,0,24.118-10.81,24.118-24.132c0-10.478-6.721-19.307-16.06-22.64l-10.277-51.043c0.756-0.024,1.463-0.226,2.22-0.226\n\t\tc40.757,0,73.911,33.153,73.911,73.909C466.992,403.51,433.838,436.671,393.081,436.671z"})],-1),Ze=[xe,He];function $e(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Ye,Ze)}var Ve={name:"CyclingSport"};const qe=(0,U.Z)(Ve,[["render",$e]]);var je=qe;const Xe={version:"1.1",id:"Capa_1",x:"0px",y:"0px",viewBox:"0 0 491.737 491.737",style:{"enable-background":"new 0 0 491.737 491.737"},"xml:space":"preserve",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},Je=(0,l._)("desc",{id:"cyclingTransportDescription"}," silhouette of a person riding a bicycle (for transportation) ",-1),Qe=(0,l._)("g",{id:"g147"},[(0,l._)("path",{d:"m 189.097,82.359 c 20.97701,12.331184 47.97442,5.308784 60.293,-15.652 12.32942,-20.979222 5.35418,-47.981117 -15.623,-60.304 -21.00482,-12.3391184 -47.99,-5.317 -60.314,15.65 -12.324,20.983 -5.34599,47.967183 15.644,60.306 z",id:"path143"}),(0,l._)("path",{d:"m 393.081,264.102 c -2.414,0 -4.8,0.194 -7.169,0.362 l -14.431,-71.605 4.702,-1.757 c 10.666,-3.987 16.093,-15.868 12.098,-26.54 -3.994,-10.681 -15.946,-16.084 -26.531,-12.09 l -63.05508,-1.53717 C 284.04753,137.09803 248.90259,106.55858 243.33317,101.62481 217.77732,75.090916 186.1698,85.012419 178.0988,91.544419 L 140.764,192.085 l 0.016,0.024 c -3.319,2.893 -6.089,6.485 -7.86,10.842 -2.191,5.396 -2.596,11.067 -1.564,16.384 -8.503,0.669 -15.255,7.571 -15.255,16.246 0,9.085 7.346,16.44 16.432,16.48 l -6.797,15.906 c -8.62,-2.465 -17.674,-3.866 -27.066,-3.866 C 44.27,264.102 0,308.354 0,362.754 c 0,54.403 44.27,98.663 98.668,98.663 54.403,0 98.652,-44.26 98.652,-98.663 0,-36.228 -19.683,-67.867 -48.858,-85.024 l 10.957,-25.652 h 17.767 l 60.281,24.462 -32.201,52.773 c -8.297,13.612 -3.994,31.382 9.615,39.685 4.691,2.86 9.878,4.229 15,4.229 9.729,0 19.234,-4.929 24.677,-13.838 l 29.339,-48.095 19.072,11.511 c -5.447,12.227 -8.54,25.726 -8.54,39.95 0,54.403 44.254,98.663 98.652,98.663 54.402,0 98.656,-44.26 98.656,-98.663 0,-54.401 -44.254,-98.653 -98.656,-98.653 z M 98.668,436.671 c -40.756,0 -73.923,-33.161 -73.923,-73.917 0,-40.756 33.167,-73.909 73.923,-73.909 5.944,0 11.649,0.896 17.188,2.224 L 95.38,338.962 c -11.758,1.619 -20.843,11.598 -20.843,23.792 0,13.323 10.808,24.132 24.13,24.132 8.767,0 16.367,-4.745 20.589,-11.76 h 52.065 c -5.926,34.862 -36.133,61.545 -72.653,61.545 z m 72.654,-86.288 h -52.065 c -0.355,-0.588 -0.708,-1.176 -1.112,-1.732 l 20.476,-47.901 c 17.058,11.026 29.172,28.845 32.701,49.633 z m 125.459,-60.208 7.666,-12.564 c 4.416,-7.233 5.431,-16.038 2.774,-24.084 -2.661,-8.046 -8.718,-14.515 -16.562,-17.704 l -73.83357,-31.7176 16.7558,-45.21274 c 10.36934,4.13303 41.82171,27.90767 45.77423,28.08592 3.271,1.981 8.57725,1.46711 12.29625,1.46711 2.435,0 18.50584,0.70472 20.84384,-0.16628 L 343.32113,188.03378 361.635,269.33 c -18.268,6.162 -34.117,17.51 -45.848,32.314 z m 78.615,47.458 -38.003,-22.94 c 7.877,-9.118 17.787,-16.319 29.205,-20.734 z m 17.685,99.038 c -40.757,0 -73.907,-33.161 -73.907,-73.917 0,-9.544 1.965,-18.597 5.268,-26.983 l 44.541,26.888 c 0,0.032 -0.016,0.064 -0.016,0.095 0,13.323 10.808,24.132 24.114,24.132 13.322,0 24.118,-10.81 24.118,-24.132 0,-10.478 -6.721,-19.307 -16.06,-22.64 l -10.277,-51.043 c 0.756,-0.024 1.463,-0.226 2.22,-0.226 40.757,0 73.911,33.153 73.911,73.909 -10e-4,40.756 -33.155,73.917 -73.912,73.917 z",id:"path145"})],-1),et=[Je,Qe];function tt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Xe,et)}var nt={name:"CyclingTransport"};const rt=(0,U.Z)(nt,[["render",tt]]);var at=rt;const ot={version:"1.1",id:"Capa_1",x:"0px",y:"0px",viewBox:"0 0 491.737 491.737",style:{"enable-background":"new 0 0 491.737 491.737"},"xml:space":"preserve",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},it=(0,l.uE)(' silhouette of a person riding a bicycle with virtual indicator ',4),st=[it];function lt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",ot,st)}var ct={name:"CyclingVirtual"};const ut=(0,U.Z)(ct,[["render",lt]]);var mt=ut;const dt={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 463.507 463.507",style:{"enable-background":"new 0 0 463.507 463.507"},"xml:space":"preserve"},Et=(0,l._)("desc",{id:"hikingDescription"},"silhouette of a person hiking",-1),St=(0,l._)("g",null,[(0,l._)("path",{d:"M246.413,78.492c21.688,0,39.255-17.573,39.255-39.251c0-21.67-17.567-39.24-39.255-39.24\n\t\tc-21.652,0-39.242,17.57-39.242,39.24C207.171,60.919,224.761,78.492,246.413,78.492z"}),(0,l._)("path",{d:"M386.604,202.858c0-11.185-9.066-20.251-20.253-20.251h-68.479l-38.62-54.832l0.127-0.933\n\t\tc1.378-10.474-1.474-21.067-7.911-29.444c-6.441-8.378-15.932-13.852-26.408-15.23c-11.596-1.511-22.592,2.224-30.852,9.225V45.779\n\t\tc0-7.847-6.362-14.217-14.225-14.217H140.59c-7.867,0-14.225,6.37-14.225,14.217v168.953c0,20.68,15.821,37.476,35.979,39.446\n\t\tl-3.043,7.073l-23.859,90.136l-53.73,72.188c-8.006,10.768-5.794,25.987,4.984,34.001c4.348,3.245,9.443,4.811,14.491,4.811\n\t\tc7.422,0,14.729-3.385,19.511-9.795l56.529-75.945c1.851-2.484,3.213-5.299,4.003-8.289l16.266-61.414l44.521,40.877l-6.076,88.603\n\t\tc-0.917,13.393,9.177,24.99,22.58,25.908c0.552,0.04,1.124,0.056,1.691,0.056c12.66,0,23.339-9.819,24.208-22.642l6.882-100.264\n\t\tc0.508-7.364-2.371-14.572-7.815-19.564l-45.994-42.219l13.992-90.613l19.331,27.435c3.801,5.387,9.972,8.592,16.552,8.592h70.882\n\t\tl1.339,232.294c0,4.478,3.626,8.101,8.101,8.101c4.479,0,8.101-3.624,8.101-8.101l-1.339-234.036\n\t\tC381.588,218.245,386.604,211.15,386.604,202.858z"})],-1),_t=[Et,St];function Tt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",dt,_t)}var pt={name:"Hiking"};const At=(0,U.Z)(pt,[["render",Tt]]);var Ot=At;const zt={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 503.162 503.162",style:{"enable-background":"new 0 0 503.162 503.162"},"xml:space":"preserve"},It=(0,l._)("desc",{id:"mountainBikingDescription"}," silhouette of a person riding a mountain bike ",-1),Rt=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M149.951,67.997c15.711-7.143,22.739-25.675,15.596-41.416c-7.124-15.701-25.723-22.682-41.453-15.539\n\t\t\tc-15.721,7.134-22.702,25.752-15.578,41.444C115.679,68.216,134.23,75.14,149.951,67.997z"}),(0,l._)("path",{d:"M87.517,89.072l-32.828,87.755c-1.979,5.967-1.683,12.594,1.1,18.733c4.055,8.922,12.604,14.525,21.755,15.271\n\t\t\tl76.873,6.244l29.137,64.184c4.122,9.046,14.832,13.148,23.906,9.017c9.075-4.131,13.072-14.859,8.951-23.944l-36.424-80.201\n\t\t\tc0,0-3.605-13.76-21.343-14.133l-43.873-2.572l21.009-55.166l31.671,20.588c5.584,3.663,10.997,3.682,15.1,1.722l55.051-24.997\n\t\t\tc17.069-7.755,6.952-30.036-10.108-22.29l-47.506,21.707l-53.55-34.846c0,0-11.638-8.013-24.241-2.285\n\t\t\tC102.205,73.858,91.112,77.243,87.517,89.072z"}),(0,l._)("path",{d:"M423.687,182.488l-2.61,15.042c-2.123,12.154-13.35,25.092-25.092,28.888l-3.711,1.195\n\t\t\tc3.041-16.543,1.282-34.148-6.215-50.633c-19.498-42.974-70.094-61.87-112.943-42.419\n\t\t\tc-42.878,19.479-61.936,70.017-42.438,112.981c17.069,37.562,57.881,56.744,96.534,47.966l-0.784,1.415\n\t\t\tc-5.968,10.796-20.817,19.221-33.144,18.8l-17.892-0.622c-12.336-0.411-30.514,5.002-40.603,12.116l-22.376,15.759\n\t\t\tc-10.107,7.104-28.276,12.632-40.612,12.354l-12.001-0.277c12.718-22.845,14.889-51.159,3.242-76.806\n\t\t\tc-19.517-42.955-70.074-61.879-113.019-42.381c-42.792,19.44-61.87,70.007-42.372,112.933\n\t\t\tc16.667,36.711,56.084,55.788,93.914,48.444l-1.32,2.056c-6.675,10.385-22.08,18.398-34.406,17.92l-32.79-1.291\n\t\t\tc-12.326-0.497-24.021,8.97-26.096,21.143l-2.62,15.339c-0.564,3.271-0.354,6.11,0.401,8.501c-0.43,1.778-0.736,3.548-0.736,5.326\n\t\t\tv9.562c0,10.557,8.568,19.125,19.125,19.125h460.932c10.557,0,19.115-8.568,19.106-19.125l-0.125-167.507\n\t\t\tc0-2.782-0.593-5.221-1.616-7.286c1.396-3.806,2.057-7.841,1.598-11.839l-4.677-40.497c-1.415-12.249-9.763-29.146-18.637-37.724\n\t\t\tl-36.127-34.951C434.712,167.418,425.79,170.325,423.687,182.488z"})])],-1),gt=[It,Rt];function Nt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",zt,gt)}var Ut={name:"MountainBiking"};const ht=(0,U.Z)(Ut,[["render",Nt]]);var Ct=ht;const wt={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg",x:"0px",y:"0px",viewBox:"0 0 503.162 503.162",style:{"enable-background":"new 0 0 503.162 503.162"},"xml:space":"preserve"},Dt=(0,l.uE)(' silhouette of a person riding an electric mountain bike ',18),vt=[Dt];function ft(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",wt,vt)}var Pt={name:"MountainBikingElectric"};const kt=(0,U.Z)(Pt,[["render",ft]]);var Lt=kt;const Mt={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 495.017 495.017",style:{"enable-background":"new 0 0 495.017 495.017"},"xml:space":"preserve"},bt=(0,l.uE)(' silhouette of a person doing mountaineering ',2),yt=[bt];function Gt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Mt,yt)}var Ft={name:"Mountaineering"};const Wt=(0,U.Z)(Ft,[["render",Gt]]);var Bt=Wt;const Kt={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 534.51 534.51",style:{"enable-background":"new 0 0 534.51 534.51"},"xml:space":"preserve"},Yt=(0,l._)("desc",{id:"rowingDescription"},"silhouette of a person rowing",-1),xt=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M70.517,393.857h132.622l-67.205,68.631c-3.28,3.385-3.204,8.797,0.172,12.076c1.597,1.568,3.72,2.43,5.958,2.43\n\t\t\tc2.305,0,4.533-0.947,6.12-2.572l78.881-80.555h221.315c12.45,0,30.676-6.006,40.296-13.914\n\t\t\tc8.788-7.229,19.049-16.217,26.345-24.299c10.375-9.811,22.214-23.639-4.255-22.834c-6.98,0.248-206.789,0.02-223.926,0\n\t\t\tl47.144-48.139l22.176-22.032l28.209,9.17c10.414,3.385,22.472-0.803,26.919-9.362c4.446-8.558,0.268-18.407-9.343-21.993\n\t\t\tl-17.404-6.512l54.698-54.774c12.507,6.617,28.362,4.867,38.899-5.671l46.541-46.607c13.11-13.015,13.11-33.957,0-46.923\n\t\t\tc-12.909-13.034-34.042-13.034-46.942,0l-46.512,46.598c-10.892,10.815-12.508,27.139-5.26,39.742l-57.853,59.077L253.744,183.09\n\t\t\tc-1.482-0.851-14.153-5.786-26.833-10.643c-14.898-5.719-30.371,0.583-34.53,13.971l-7.525,24.241l-35.324,118.451\n\t\t\tc-0.468,1.34-0.603,2.562-0.746,3.711H14.136c-12.45,0-17.662,8.836-11.618,19.727l23.237,21.592\n\t\t\tC39.123,385.068,58.066,393.857,70.517,393.857z M272.63,248.727c1.797-5.967,8.099-9.39,14.075-7.64l51.37,14.975l-33.038,33.737\n\t\t\tl-43.453,43.012h-14.2L272.63,248.727z"}),(0,l._)("circle",{cx:"248.953",cy:"109.842",r:"52.326"})])],-1),Ht=[Yt,xt];function Zt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Kt,Ht)}var $t={name:"Rowing"};const Vt=(0,U.Z)($t,[["render",Zt]]);var qt=Vt;const jt={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 494.49 494.49",style:{"enable-background":"new 0 0 494.49 494.49"},"xml:space":"preserve"},Xt=(0,l._)("desc",{id:"runningDescription"},"silhouette of a running person",-1),Jt=(0,l._)("g",null,[(0,l._)("path",{d:"M282.74,80.771c22.318,0,40.401-18.08,40.401-40.389C323.141,18.084,305.058,0,282.74,0\n\t\tc-22.281,0-40.378,18.084-40.378,40.383C242.362,62.691,260.458,80.771,282.74,80.771z"}),(0,l._)("path",{d:"M400.207,188.547H331.47l-38.766-55.03l0.123-0.944c1.384-10.514-1.475-21.146-7.94-29.556\n\t\tc-6.461-8.409-16.007-13.903-26.52-15.287c-10.926-1.429-22.619,3.12-31.206,8.646c-1.441,0.928-84.97,54.921-84.97,54.921\n\t\tc-5.175,3.358-8.542,8.877-9.165,15.016c-0.634,6.13,1.574,12.222,5.976,16.541l58.982,58l-6.417,48.954l-18.707,65.584l-67.8-19.4\n\t\tc-12.911-3.676-26.44,3.796-30.159,16.747c-3.699,12.951,3.799,26.459,16.758,30.168l91.271,26.109\n\t\tc2.192,0.627,4.444,0.936,6.7,0.936c4.113,0,8.195-1.04,11.848-3.073c5.655-3.146,9.833-8.409,11.611-14.635l21.963-77.057\n\t\tl26.365,36.639l6.684,119.628c0.73,12.991,11.501,23.036,24.349,23.036c0.441,0,0.92-0.016,1.379-0.039\n\t\tc13.453-0.748,23.745-12.262,23-25.713l-7.083-126.736c-0.271-4.643-1.846-9.116-4.56-12.887l-32.24-44.811l11.959-91.279\n\t\tl19.409,27.555c3.794,5.407,10.005,8.624,16.613,8.624h79.28c11.226,0,20.326-9.101,20.326-20.329\n\t\tC420.533,197.647,411.432,188.547,400.207,188.547z M204.606,190.357l-19.026-18.717l23.476-15.206L204.606,190.357z"})],-1),Qt=[Xt,Jt];function en(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",jt,Qt)}var tn={name:"Running"};const nn=(0,U.Z)(tn,[["render",en]]);var rn=nn;const an={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 522.362 522.362",style:{"enable-background":"new 0 0 522.362 522.362"},"xml:space":"preserve"},on=(0,l._)("desc",{id:"alpineSkiingDescription"},"silhouette of a person skiing",-1),sn=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M14.314,351.859L408.088,461.78c4.484,1.311,9.104,1.97,13.731,1.97l0,0c17.471,0,33.746-9.429,42.467-24.604\n\t\t\tc2.716-4.724,3.137-10.27,1.157-15.214c-1.912-4.762-5.767-8.31-10.576-9.744c-7.373-2.237-15.481,1.109-22.146,9.229\n\t\t\tc-3.548,4.303-9.496,6.244-15.07,4.714l-136.467-38.078c1.396-0.555,2.812-1.195,4.236-2.065l103.266-63.15\n\t\t\tc15.443-9.362,18.493-33.957,7.812-43.883l-64.758-60.233l39.972-21.688l69.682,9.744c5.23,0.736,9.744-2.037,10.079-6.187\n\t\t\tc0.344-4.141-3.624-8.1-8.855-8.826l-48.605-6.828l22.472-12.192c39.895-23.275,5.823-85.192-35.334-63.112l-87.554,61.19\n\t\t\tl-117.503-16.515l2.543-12.087c0.545-2.582-1.109-5.116-3.691-5.661c-2.572-0.593-5.116,1.1-5.661,3.701l-2.678,12.709\n\t\t\tl-18.331-2.582c-5.231-0.727-9.467,2.123-9.467,6.369s4.236,8.281,9.467,9.017l15.176,2.123l-2.544,12.087\n\t\t\tc-0.545,2.582,1.109,5.125,3.691,5.671c0.334,0.076,0.66,0.105,0.994,0.105c2.209,0,4.198-1.54,4.676-3.787l2.678-12.737\n\t\t\tl102.414,14.315l-5.308,3.72c-4.332,3.022-10.155,9.151-11.723,14.201c-3.844,12.45-1.473,26.717,10.452,37.705l68.802,62.175\n\t\t\tc0,0-50.978,31.776-74.998,46.397c-14.219,8.606-13.674,23.858-6.129,33.393L23.705,318.199\n\t\t\tc-10.012-2.792-20.569,2.554-23.113,11.695C-2,339.169,4.159,349.029,14.314,351.859z"}),(0,l._)("path",{d:"M450.842,72.003c-15.291,16.715-14.201,42.667,2.639,58.121c16.706,15.31,42.716,14.086,58.073-2.668\n\t\t\tc15.386-16.677,14.172-42.734-2.544-58.016C492.305,54.064,466.17,55.192,450.842,72.003z"})])],-1),ln=[on,sn];function cn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",an,ln)}var un={name:"SkiingAlpine"};const mn=(0,U.Z)(un,[["render",cn]]);var dn=mn;const En={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 296 296",style:{"enable-background":"new 0 0 296 296"},"xml:space":"preserve"},Sn=(0,l._)("desc",{id:"crossCountrySkiingDescription"}," silhouette of a person skiing (cross country) ",-1),_n=(0,l._)("g",null,[(0,l._)("path",{d:"M241.313,246.906h-39.564l0.456-1.273c5.62-18.374,3.479-37.58-6.027-54.278c-5.653-9.929-13.443-18.018-22.745-23.959\n\t\tl12.886-51.126c3.035-12.05-4.272-24.266-16.322-27.301c-2.634-0.664-5.278-0.826-7.833-0.559\n\t\tc-0.151-0.011-0.299-0.032-0.452-0.038c-26.03-1.077-51.443,8.485-70.33,25.993L41.586,82.855\n\t\tc-4.332-2.741-10.065-1.451-12.806,2.881s-1.451,10.065,2.88,12.806l47.625,30.136c-2.557,6.013-0.962,13.224,4.375,17.531\n\t\tc2.774,2.24,6.104,3.33,9.413,3.33c4.377-0.001,8.717-1.907,11.68-5.579l0.478-0.591c8.686-10.766,20.465-18.479,33.484-22.317\n\t\tl-11.095,44.046c-1.061,4.214-0.854,8.448,0.374,12.305c-12.908,17.917-28.398,33.68-46.198,46.979l-14.649,10.727\n\t\tc-3.938,2.943-6.001,7.798-6.005,11.798H8.25c-4.556,0-8.083,4.131-8.083,8.688v2.063c0,4.556,3.527,8.25,8.083,8.25h55.188\n\t\th161.375H280c9.113,0,16.167-7.387,16.167-16.5v-2.5H241.313z M153.974,192.398c0.741-0.153,1.471-0.231,2.188-0.457\n\t\tc5.742,3.406,10.53,8.313,13.945,14.311c5.378,9.447,6.59,20.402,3.41,30.797l-1.799,5.674c-0.447,1.461-0.656,3.184-0.657,4.184\n\t\th-69.909C121.581,231.906,139.297,213.274,153.974,192.398z M167,57.938c0-15.378,12.466-27.844,27.844-27.844\n\t\ts27.844,12.466,27.844,27.844s-12.466,27.844-27.844,27.844S167,73.315,167,57.938z"})],-1),Tn=[Sn,_n];function pn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",En,Tn)}var An={name:"SkiingCrossCountry"};const On=(0,U.Z)(An,[["render",pn]]);var zn=On;const In={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"},Rn=(0,l.uE)('silhouette of a person with snowshoes',6),gn=[Rn];function Nn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",In,gn)}var Un={name:"Snowshoes"};const hn=(0,U.Z)(Un,[["render",Nn]]);var Cn=hn;const wn={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 535.876 535.876",style:{"enable-background":"new 0 0 535.876 535.876"},"xml:space":"preserve"},Dn=(0,l._)("desc",{id:"trailDescription"},"silhouette of a person running (trail)",-1),vn=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M505.204,326.949c-5.805-10.892-15.176-10.862-20.923,0.067l-7.114,13.512c-5.757,10.92-20.416,19.775-32.752,19.775\n\t\t\th-16.753c-12.346,0-29.645,6.847-38.643,15.29l-32.35,30.342l-1.233-105.388c0.822-18.446-10.596-24.634-10.596-24.634\n\t\t\tl-56.543-25.972l33.67-67.645l38.527,22.912c0,0,15.472,9.715,26.727-9.324l37.026-63.093c1.625-3.519,2.094-7.564,1.052-11.609\n\t\t\tc-2.381-9.256-11.81-14.86-21.095-12.479c-4.083,1.042-7.459,3.49-9.754,6.713l-30.772,51.962l-62.777-37.102\n\t\t\tc-4.733-2.716-10.519-3.691-16.257-2.209l-78.345,20.12c-5.03,1.291-8.96,4.762-11.017,9.142l-38.097,76.165\n\t\t\tc-2.591,3.854-3.624,8.73-2.371,13.607c2.285,8.941,11.456,14.363,20.435,12.059c5.04-1.291,8.951-4.743,10.997-9.161\n\t\t\tl35.314-70.858l28.936-7.296l-76.203,149.921l-65.981,16.734c-1.759,0.393-3.48,1.023-5.163,1.836\n\t\t\tc-10.596,5.412-14.679,18.179-9.267,28.803c4.733,9.266,15.252,13.636,24.901,10.978l78.067-20.187\n\t\t\tc18.6-4.093,23.313-14.449,23.313-14.449l30.581-58.79l62.28,35.678l0.593,86.216c0.01,1.08,0.259,2.161,0.421,3.241l-11.6-4.188\n\t\t\tc-11.608-4.188-30.57-4.608-42.361-0.956l-26.135,8.128c-11.79,3.663-30.791,3.338-42.447-0.717l-19.221-6.694\n\t\t\tc-11.657-4.054-28.831-0.984-38.374,6.838L109.9,433.954c-9.544,7.822-26.67,10.72-38.25,6.483L40.84,429.135\n\t\t\tc-11.58-4.256-25.608,1.157-31.336,12.097l-7.21,13.789c-5.728,10.93-0.354,19.794,11.982,19.794H500.27\n\t\t\tc12.336,0,24.309-9.802,26.728-21.907l8.004-39.981c2.409-12.097-0.325-30.733-6.14-41.616L505.204,326.949z"}),(0,l._)("path",{d:"M326.395,126.625c17.806-4.562,28.563-22.721,23.983-40.526c-4.581-17.844-22.74-28.554-40.555-23.983\n\t\t\tc-17.796,4.581-28.535,22.711-23.964,40.535C290.439,120.476,308.599,131.205,326.395,126.625z"})])],-1),fn=[Dn,vn];function Pn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",wn,fn)}var kn={name:"Trail"};const Ln=(0,U.Z)(kn,[["render",Pn]]);var Mn=Ln;const bn={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"},yn=(0,l.uE)('silhouette of a walking person',3),Gn=[yn];function Fn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",bn,Gn)}var Wn={name:"Walking"};const Bn=(0,U.Z)(Wn,[["render",Fn]]);var Kn=Bn;const Yn=["title"];var xn=(0,l.aZ)({__name:"index",props:{sportLabel:null,color:null,title:{default:""}},setup(e){const t=e,{color:n,sportLabel:r,title:a}=(0,c.BK)(t),o=(0,l.f3)("sportColors");return(e,t)=>((0,l.wg)(),(0,l.iD)("div",{class:"sport-img",style:(0,u.j5)({fill:(0,c.SU)(n)?(0,c.SU)(n):(0,c.SU)(o)[(0,c.SU)(r)]}),title:(0,c.SU)(a)?(0,c.SU)(a):e.$t(`sports.${(0,c.SU)(r)}.LABEL`)},["Cycling (Sport)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(je,{key:0})):(0,l.kq)("",!0),"Cycling (Transport)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(at,{key:1})):(0,l.kq)("",!0),"Cycling (Virtual)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(mt,{key:2})):(0,l.kq)("",!0),"Hiking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Ot,{key:3})):(0,l.kq)("",!0),"Mountain Biking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Ct,{key:4})):(0,l.kq)("",!0),"Mountain Biking (Electric)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Lt,{key:5})):(0,l.kq)("",!0),"Mountaineering"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Bt,{key:6})):(0,l.kq)("",!0),"Rowing"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(qt,{key:7})):(0,l.kq)("",!0),"Running"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(rn,{key:8})):(0,l.kq)("",!0),"Skiing (Alpine)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(dn,{key:9})):(0,l.kq)("",!0),"Skiing (Cross Country)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(zn,{key:10})):(0,l.kq)("",!0),"Snowshoes"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Cn,{key:11})):(0,l.kq)("",!0),"Trail"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Mn,{key:12})):(0,l.kq)("",!0),"Walking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Kn,{key:13})):(0,l.kq)("",!0)],12,Yn))}});const Hn=xn;var Zn=Hn;const $n={class:"loader"};function Vn(e,t){return(0,l.wg)(),(0,l.iD)("div",$n)}const qn={},jn=(0,U.Z)(qn,[["render",Vn],["__scopeId","data-v-4c9921ee"]]);var Xn=jn;const Jn={id:"modal"},Qn={class:"custom-modal"},er={key:0,class:"modal-message"},tr={key:1,class:"modal-message"},nr={class:"modal-buttons"};var rr=(0,l.aZ)({__name:"Modal",props:{title:null,message:null,strongMessage:{default:()=>null}},emits:["cancelAction","confirmAction"],setup(e,{emit:t}){const n=e,r=(0,v.o)(),{title:a,message:o,strongMessage:i}=(0,c.BK)(n),s=(0,l.Fl)((()=>r.getters[D.SY.GETTERS.ERROR_MESSAGES]));return(0,l.Ah)((()=>r.commit(D.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(e,n)=>{const r=(0,l.up)("i18n-t"),m=(0,l.up)("ErrorMessage"),d=(0,l.up)("Card");return(0,l.wg)(),(0,l.iD)("div",Jn,[(0,l._)("div",Qn,[(0,l.Wm)(d,null,{title:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,c.SU)(a)),1)])),content:(0,l.w5)((()=>[(0,c.SU)(i)?((0,l.wg)(),(0,l.iD)("div",er,[(0,l.Wm)(r,{keypath:(0,c.SU)(o)},{default:(0,l.w5)((()=>[(0,l._)("span",null,(0,u.zw)((0,c.SU)(i)),1)])),_:1},8,["keypath"])])):((0,l.wg)(),(0,l.iD)("div",tr,(0,u.zw)((0,c.SU)(o)),1)),(0,c.SU)(s)?((0,l.wg)(),(0,l.j4)(m,{key:2,message:(0,c.SU)(s)},null,8,["message"])):(0,l.kq)("",!0),(0,l._)("div",nr,[(0,c.SU)(s)?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("button",{key:0,class:"confirm",onClick:n[0]||(n[0]=e=>t("confirmAction"))},(0,u.zw)(e.$t("buttons.YES")),1)),(0,l._)("button",{class:"cancel",onClick:n[1]||(n[1]=e=>t("cancelAction"))},(0,u.zw)(e.$t("buttons."+((0,c.SU)(s)?"CANCEL":"NO"))),1)])])),_:1})])])}}});const ar=(0,U.Z)(rr,[["__scopeId","data-v-e8fcfaba"]]);var or=ar;const ir=[{target:Ae,name:"AlertMessage"},{target:Oe.Z,name:"Card"},{target:Ue,name:"CustomTextArea"},{target:De,name:"Distance"},{target:be,name:"Dropdown"},{target:Ke,name:"ErrorMessage"},{target:Xn,name:"Loader"},{target:or,name:"Modal"},{target:Zn,name:"SportImage"}],sr={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 lr=n(631);r.kL.register(r.ZL,r.jn,r.od,r.De,r.Dx,r.u,r.Gu,r.vn,r.uw,r.ST,r.f$,a.Z);const cr=(0,o.ri)(ue).provide("sportColors",lr.Zo).use(me.Z).use(Ee.Z).use(de.Z).use(i.ZP,{name:"VFullscreen"}).directive("click-outside",sr);ir.forEach((e=>{cr.component(e.name,e.target)})),cr.mount("#app")},3654:function(e,t,n){"use strict";n.d(t,{Z:function(){return Dl}});var r=n(2201),a=(n(7658),n(6252)),o=n(3577),i=n(9963),s=n(2262),l=n(5801),c=n(9917),u=n(8966);const m=e=>((0,a.dD)("data-v-24ec93e2"),e=e(),(0,a.Cn)(),e),d={id:"admin-app",class:"admin-card"},E=["onSubmit"],S={for:"admin_contact"},_=["value"],T=["disabled"],p={for:"max_users"},A=["disabled"],O={class:"user-limit-help"},z={class:"info-box"},I=m((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),R={for:"max_single_file_size"},g=["disabled"],N={for:"max_zip_file_size"},U=["disabled"],h={for:"gpx_limit_import"},C=["disabled"],w={key:1,class:"form-buttons"},D={class:"confirm",type:"submit"},v=["onClick"],f={key:2,class:"form-buttons"};var P=(0,a.aZ)({__name:"AdminApplication",props:{appConfig:null,edition:{type:Boolean,default:!1}},setup(e){const t=e,{edition:n}=(0,s.BK)(t),m=(0,c.o)(),P=(0,r.tv)(),k=(0,s.qj)({admin_contact:"",max_users:0,max_single_file_size:0,max_zip_file_size:0,gpx_limit_import:0}),L=(0,a.Fl)((()=>m.getters[l.SY.GETTERS.ERROR_MESSAGES]));function M(e){Object.keys(k).map((t=>{["max_single_file_size","max_zip_file_size"].includes(t)?k[t]=(0,u.j)(e[t]):k[t]=e[t]}))}function b(){M(t.appConfig),m.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),P.push("/admin/application")}function y(){const e=Object.assign({},k);e.max_single_file_size*=1048576,e.max_zip_file_size*=1048576,m.dispatch(l.SY.ACTIONS.UPDATE_APPLICATION_CONFIG,e)}return(0,a.wF)((()=>{t.appConfig&&M(t.appConfig)})),(e,t)=>{const r=(0,a.up)("ErrorMessage"),l=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",d,[(0,a.Wm)(l,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.TITLE")),1)])),content:(0,a.w5)((()=>[(0,a._)("form",{class:"admin-form",onSubmit:(0,i.iM)(y,["prevent"])},[(0,a._)("label",S,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.ADMIN_CONTACT"))+": ",1),(0,s.SU)(n)||k.admin_contact?(0,a.wy)(((0,a.wg)(),(0,a.iD)("input",{key:1,id:"admin_contact",name:"admin_contact",type:"email","onUpdate:modelValue":t[0]||(t[0]=e=>k.admin_contact=e),disabled:!(0,s.SU)(n)},null,8,T)),[[i.nr,k.admin_contact]]):((0,a.wg)(),(0,a.iD)("input",{key:0,class:"no-contact",value:e.$t("admin.APP_CONFIG.NO_CONTACT_EMAIL"),disabled:""},null,8,_))]),(0,a._)("label",p,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.MAX_USERS_LABEL"))+": ",1),(0,a.wy)((0,a._)("input",{id:"max_users",name:"max_users",type:"number",min:"0","onUpdate:modelValue":t[1]||(t[1]=e=>k.max_users=e),disabled:!(0,s.SU)(n)},null,8,A),[[i.nr,k.max_users]])]),(0,a._)("div",O,[(0,a._)("span",z,[I,(0,a.Uk)(" "+(0,o.zw)(e.$t("admin.APP_CONFIG.MAX_USERS_HELP")),1)])]),(0,a._)("label",R,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL"))+": ",1),(0,a.wy)((0,a._)("input",{id:"max_single_file_size",name:"max_single_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":t[2]||(t[2]=e=>k.max_single_file_size=e),disabled:!(0,s.SU)(n)},null,8,g),[[i.nr,k.max_single_file_size]])]),(0,a._)("label",N,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL"))+": ",1),(0,a.wy)((0,a._)("input",{id:"max_zip_file_size",name:"max_zip_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":t[3]||(t[3]=e=>k.max_zip_file_size=e),disabled:!(0,s.SU)(n)},null,8,U),[[i.nr,k.max_zip_file_size]])]),(0,a._)("label",h,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL"))+": ",1),(0,a.wy)((0,a._)("input",{id:"gpx_limit_import",name:"gpx_limit_import",type:"number",min:"0","onUpdate:modelValue":t[4]||(t[4]=e=>k.gpx_limit_import=e),disabled:!(0,s.SU)(n)},null,8,C),[[i.nr,k.gpx_limit_import]])]),(0,s.SU)(L)?((0,a.wg)(),(0,a.j4)(r,{key:0,message:(0,s.SU)(L)},null,8,["message"])):(0,a.kq)("",!0),(0,s.SU)(n)?((0,a.wg)(),(0,a.iD)("div",w,[(0,a._)("button",D,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:(0,i.iM)(b,["prevent"])},(0,o.zw)(e.$t("buttons.CANCEL")),9,v)])):((0,a.wg)(),(0,a.iD)("div",f,[(0,a._)("button",{class:"confirm",onClick:t[5]||(t[5]=(0,i.iM)((t=>e.$router.push("/admin/application/edit")),["prevent"]))},(0,o.zw)(e.$t("buttons.EDIT")),1),(0,a._)("button",{class:"cancel",onClick:t[6]||(t[6]=(0,i.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1)]))],40,E)])),_:1})])}}}),k=n(3744);const L=(0,k.Z)(P,[["__scopeId","data-v-24ec93e2"]]);var M=L;const b={class:"stat-card"},y={class:"stat-content box"},G={class:"stat-icon"},F={class:"stat-details"},W={class:"stat-huge"},B={class:"stat"};var K=(0,a.aZ)({__name:"StatCard",props:{icon:null,text:null,value:null},setup(e){const t=e,{icon:n,text:r,value:i}=(0,s.BK)(t);return(e,t)=>((0,a.wg)(),(0,a.iD)("div",b,[(0,a._)("div",y,[(0,a._)("div",G,[(0,a._)("i",{class:(0,o.C_)(["fa",`fa-${(0,s.SU)(n)}`])},null,2)]),(0,a._)("div",F,[(0,a._)("div",W,(0,o.zw)((0,s.SU)(i)),1),(0,a._)("div",B,(0,o.zw)((0,s.SU)(r)),1)])])]))}});const Y=K;var x=Y;const H={id:"user-stats"};var Z=(0,a.aZ)({__name:"AppStatsCards",props:{appStatistics:null},setup(e){const t=e,{appStatistics:n}=(0,s.BK)(t),r=(0,a.Fl)((()=>(0,u.Z)(n.value.uploads_dir_size,!1)));return(e,t)=>((0,a.wg)(),(0,a.iD)("div",H,[(0,a.Wm)(x,{icon:"users",value:(0,s.SU)(n).users,text:e.$t("admin.USER",(0,s.SU)(n).users)},null,8,["value","text"]),(0,a.Wm)(x,{icon:"tags",value:(0,s.SU)(n).sports,text:e.$t("workouts.SPORT",(0,s.SU)(n).sports)},null,8,["value","text"]),(0,a.Wm)(x,{icon:"calendar",value:(0,s.SU)(n).workouts,text:e.$t("workouts.WORKOUT",(0,s.SU)(n).workouts)},null,8,["value","text"]),(0,a.Wm)(x,{icon:"folder-open",value:(0,s.SU)(r).size,text:(0,s.SU)(r).suffix},null,8,["value","text"])]))}});const $=Z;var V=$,q=n(2531);const j=e=>((0,a.dD)("data-v-0dd66f89"),e=e(),(0,a.Cn)(),e),X={id:"admin-menu",class:"center-card"},J={class:"admin-menu description-list"},Q={class:"application-config-details"},ee=j((()=>(0,a._)("br",null,null,-1))),te={class:"registration-status"},ne={key:0,class:"email-sending-status"},re=j((()=>(0,a._)("i",{class:"fa fa-exclamation-triangle","aria-hidden":"true"},null,-1)));var ae=(0,a.aZ)({__name:"AdminMenu",props:{appConfig:null,appStatistics:{default:()=>({})}},setup(e){const t=e,{appConfig:n,appStatistics:r}=(0,s.BK)(t);return(e,t)=>{const i=(0,a.up)("router-link");return(0,a.wg)(),(0,a.iD)("div",X,[(0,a.Wm)(q.Z,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.ADMINISTRATION")),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(V,{appStatistics:(0,s.SU)(r)},null,8,["appStatistics"]),(0,a._)("div",J,[(0,a._)("dl",null,[(0,a._)("dt",null,[(0,a.Wm)(i,{to:"/admin/application"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.APPLICATION")),1)])),_:1})]),(0,a._)("dd",Q,[(0,a.Uk)((0,o.zw)(e.$t("admin.UPDATE_APPLICATION_DESCRIPTION")),1),ee,(0,a._)("span",te,(0,o.zw)(e.$t("admin.REGISTRATION_"+((0,s.SU)(n).is_registration_enabled?"ENABLED":"DISABLED"))),1),(0,s.SU)(n).is_email_sending_enabled?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("span",ne,[re,(0,a.Uk)(" "+(0,o.zw)(e.$t("admin.EMAIL_SENDING_DISABLED")),1)]))]),(0,a._)("dt",null,[(0,a.Wm)(i,{to:"/admin/sports"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,o.kC)(e.$t("workouts.SPORT",0))),1)])),_:1})]),(0,a._)("dd",null,(0,o.zw)(e.$t("admin.ENABLE_DISABLE_SPORTS")),1),(0,a._)("dt",null,[(0,a.Wm)(i,{to:"/admin/users"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,o.kC)(e.$t("admin.USER",0))),1)])),_:1})]),(0,a._)("dd",null,(0,o.zw)(e.$t("admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT")),1)])])])),_:1})])}}});const oe=(0,k.Z)(ae,[["__scopeId","data-v-0dd66f89"]]);var ie=oe,se=n(9150),le=n(631);const ce=e=>((0,a.dD)("data-v-6d62af67"),e=e(),(0,a.Cn)(),e),ue={id:"admin-sports",class:"admin-card"},me={class:"responsive-table"},de=ce((()=>(0,a._)("th",null,"#",-1))),Ee={class:"text-left"},Se={class:"text-left sport-action"},_e=ce((()=>(0,a._)("th",null,null,-1))),Te={class:"text-center"},pe=ce((()=>(0,a._)("span",{class:"cell-heading"},"id",-1))),Ae={class:"cell-heading"},Oe={class:"sport-label"},ze={class:"cell-heading"},Ie={class:"text-center"},Re={class:"cell-heading"},ge={class:"sport-action"},Ne={class:"cell-heading"},Ue={class:"action-button"},he=["onClick"],Ce={key:0,class:"has-workouts"},we=ce((()=>(0,a._)("i",{class:"fa fa-warning","aria-hidden":"true"},null,-1)));var De=(0,a.aZ)({__name:"AdminSports",setup(e){const{t:t}=(0,se.QT)(),n=(0,c.o)(),r=(0,a.Fl)((()=>(0,le.xH)(n.getters[l.O8.GETTERS.SPORTS],t))),u=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function m(e,t){n.dispatch(l.O8.ACTIONS.UPDATE_SPORTS,{id:e,isActive:t})}return(e,t)=>{const n=(0,a.up)("SportImage"),l=(0,a.up)("ErrorMessage"),c=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",ue,[(0,a.Wm)(c,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.SPORTS.TITLE")),1)])),content:(0,a.w5)((()=>[(0,a._)("button",{class:"top-button",onClick:t[0]||(t[0]=(0,i.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1),(0,a._)("div",me,[(0,a._)("table",null,[(0,a._)("thead",null,[(0,a._)("tr",null,[de,(0,a._)("th",null,(0,o.zw)(e.$t("admin.SPORTS.TABLE.IMAGE")),1),(0,a._)("th",Ee,(0,o.zw)(e.$t("admin.SPORTS.TABLE.LABEL")),1),(0,a._)("th",null,(0,o.zw)(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),(0,a._)("th",Se,(0,o.zw)(e.$t("admin.ACTION")),1),_e])]),(0,a._)("tbody",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(r),(t=>((0,a.wg)(),(0,a.iD)("tr",{key:t.id},[(0,a._)("td",Te,[pe,(0,a.Uk)(" "+(0,o.zw)(t.id),1)]),(0,a._)("td",null,[(0,a._)("span",Ae,(0,o.zw)(e.$t("admin.SPORTS.TABLE.IMAGE")),1),(0,a.Wm)(n,{title:t.translatedLabel,"sport-label":t.label,color:t.color},null,8,["title","sport-label","color"])]),(0,a._)("td",Oe,[(0,a._)("span",ze,(0,o.zw)(e.$t("admin.SPORTS.TABLE.LABEL")),1),(0,a.Uk)(" "+(0,o.zw)(t.translatedLabel),1)]),(0,a._)("td",Ie,[(0,a._)("span",Re,(0,o.zw)(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),(0,a._)("i",{class:(0,o.C_)("fa fa"+(t.is_active?"-check":"")),"aria-hidden":"true"},null,2)]),(0,a._)("td",ge,[(0,a._)("span",Ne,(0,o.zw)(e.$t("admin.ACTION")),1),(0,a._)("div",Ue,[(0,a._)("button",{class:(0,o.C_)({danger:t.is_active}),onClick:e=>m(t.id,!t.is_active)},(0,o.zw)(e.$t(`buttons.${t.is_active?"DIS":"EN"}ABLE`)),11,he),t.has_workouts?((0,a.wg)(),(0,a.iD)("span",Ce,[we,(0,a.Uk)(" "+(0,o.zw)(e.$t("admin.SPORTS.TABLE.HAS_WORKOUTS")),1)])):(0,a.kq)("",!0)])])])))),128))])]),(0,s.SU)(u)?((0,a.wg)(),(0,a.j4)(l,{key:0,message:(0,s.SU)(u)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("button",{onClick:t[1]||(t[1]=(0,i.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1)])])),_:1})])}}});const ve=(0,k.Z)(De,[["__scopeId","data-v-6d62af67"]]);var fe=ve,Pe=n(8626),ke=n(5020),Le=n(6595);const Me={class:"users-filters"},be={class:"search-username"},ye=["onKeyup","placeholder"];var Ge=(0,a.aZ)({__name:"UsersNameFilter",emits:["filterOnUsername"],setup(e,{emit:t}){const n=(0,r.yj)(),l=(0,s.iH)(n.query.q?n.query.q:"");function c(){""!==l.value&&t("filterOnUsername",l)}function u(){l.value="",t("filterOnUsername",l.value)}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Me,[(0,a._)("div",be,[(0,a.wy)((0,a._)("input",{id:"username",name:"username","onUpdate:modelValue":t[0]||(t[0]=e=>l.value=e),onKeyup:(0,i.D2)(c,["enter"]),placeholder:e.$t("user.FILTER_ON_USERNAME")},null,40,ye),[[i.nr,l.value,void 0,{trim:!0}]]),""!==l.value?((0,a.wg)(),(0,a.iD)("i",{key:0,class:"fa fa-times","aria-hidden":"true",onClick:u})):(0,a.kq)("",!0)]),(0,a._)("i",{class:(0,o.C_)(["fa fa-search",{"fa-disabled":""===l.value}]),"aria-hidden":"true",onClick:c},null,2)]))}});const Fe=(0,k.Z)(Ge,[["__scopeId","data-v-627a8e91"]]);var We=Fe,Be=n(2766),Ke=n(6558);const Ye=e=>((0,a.dD)("data-v-dc12ff78"),e=e(),(0,a.Cn)(),e),xe={id:"admin-users",class:"admin-card"},He={key:0,class:"no-users"},Ze={key:1,class:"responsive-table"},$e=Ye((()=>(0,a._)("th",null,"#",-1))),Ve={class:"left-text"},qe={class:"left-text"},je={class:"left-text"},Xe={class:"cell-heading"},Je={class:"cell-heading"},Qe={class:"cell-heading"},et={class:"cell-heading"},tt={class:"text-center"},nt={class:"cell-heading"},rt={class:"text-center"},at={class:"cell-heading"},ot={class:"text-center"},it={class:"cell-heading"},st={class:"text-center"},lt={class:"cell-heading"},ct=["disabled","onClick"];var ut=(0,a.aZ)({__name:"AdminUsers",setup(e){const t=(0,c.o)(),n=(0,r.yj)(),u=(0,r.tv)(),m=["is_active","admin","created_at","username","workouts_count"],d="created_at";let E=(0,s.qj)((0,Be.pm)(n.query,m,d));const S=(0,a.Fl)((()=>t.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),_=(0,a.Fl)((()=>t.getters[l.RT.GETTERS.USERS])),T=(0,a.Fl)((()=>t.getters[l.RT.GETTERS.USERS_PAGINATION])),p=(0,a.Fl)((()=>t.getters[l.SY.GETTERS.ERROR_MESSAGES]));function A(e){t.dispatch(l.RT.ACTIONS.GET_USERS,e)}function O(e){I("q",e.value)}function z(e,n){t.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,admin:n})}function I(e,t){E[e]=t,"per_page"===e&&(E.page=1),u.push({path:"/admin/users",query:E})}return(0,a.wF)((()=>A(E))),(0,a.Ah)((()=>{t.dispatch(l.RT.ACTIONS.EMPTY_USERS)})),(0,a.YP)((()=>n.query),(e=>{E=(0,Be.pm)(e,m,d,{query:E}),A(E)})),(e,t)=>{const n=(0,a.up)("router-link"),r=(0,a.up)("ErrorMessage"),l=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",xe,[(0,a.Wm)(l,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,o.kC)(e.$t("admin.USER",0))),1)])),content:(0,a.w5)((()=>[(0,a._)("button",{class:"top-button",onClick:t[0]||(t[0]=(0,i.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1),(0,a.Wm)(We,{onFilterOnUsername:O}),(0,a.Wm)(Pe.Z,{sort:(0,s.SU)(Be.fS),order_by:m,query:(0,s.SU)(E),message:"admin.USERS.SELECTS.ORDER_BY",onUpdateSelect:I},null,8,["sort","query"]),0===(0,s.SU)(_).length?((0,a.wg)(),(0,a.iD)("div",He,(0,o.zw)(e.$t("user.NO_USERS_FOUND")),1)):((0,a.wg)(),(0,a.iD)("div",Ze,[(0,a._)("table",null,[(0,a._)("thead",null,[(0,a._)("tr",null,[$e,(0,a._)("th",Ve,(0,o.zw)(e.$t("user.USERNAME")),1),(0,a._)("th",qe,(0,o.zw)(e.$t("user.EMAIL")),1),(0,a._)("th",je,(0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE")),1),(0,a._)("th",null,(0,o.zw)((0,o.kC)(e.$t("workouts.WORKOUT",0))),1),(0,a._)("th",null,(0,o.zw)(e.$t("admin.ACTIVE")),1),(0,a._)("th",null,(0,o.zw)(e.$t("user.ADMIN")),1),(0,a._)("th",null,(0,o.zw)(e.$t("admin.ACTION")),1)])]),(0,a._)("tbody",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(_),(t=>((0,a.wg)(),(0,a.iD)("tr",{key:t.username},[(0,a._)("td",null,[(0,a._)("span",Xe,(0,o.zw)(e.$t("user.PROFILE.PICTURE")),1),(0,a.Wm)(Le.Z,{user:t},null,8,["user"])]),(0,a._)("td",null,[(0,a._)("span",Je,(0,o.zw)(e.$t("user.USERNAME")),1),(0,a.Wm)(n,{to:`/admin/users/${t.username}`},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(t.username),1)])),_:2},1032,["to"])]),(0,a._)("td",null,[(0,a._)("span",Qe,(0,o.zw)(e.$t("user.EMAIL")),1),(0,a.Uk)(" "+(0,o.zw)(t.email),1)]),(0,a._)("td",null,[(0,a._)("span",et,(0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE")),1),(0,a.Uk)(" "+(0,o.zw)((0,s.SU)(Ke.p6)(t.created_at,(0,s.SU)(S).timezone,(0,s.SU)(S).date_format)),1)]),(0,a._)("td",tt,[(0,a._)("span",nt,(0,o.zw)((0,o.kC)(e.$t("workouts.WORKOUT",0))),1),(0,a.Uk)(" "+(0,o.zw)(t.nb_workouts),1)]),(0,a._)("td",rt,[(0,a._)("span",at,(0,o.zw)(e.$t("admin.ACTIVE")),1),(0,a._)("i",{class:(0,o.C_)(`fa fa${t.is_active?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),(0,a._)("td",ot,[(0,a._)("span",it,(0,o.zw)(e.$t("user.ADMIN")),1),(0,a._)("i",{class:(0,o.C_)(`fa fa${t.admin?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),(0,a._)("td",st,[(0,a._)("span",lt,(0,o.zw)(e.$t("admin.ACTION")),1),(0,a._)("button",{class:(0,o.C_)({danger:t.admin}),disabled:t.username===(0,s.SU)(S).username,onClick:e=>z(t.username,!t.admin)},(0,o.zw)(e.$t(`admin.USERS.TABLE.${t.admin?"REMOVE":"ADD"}_ADMIN_RIGHTS`)),11,ct)])])))),128))])]),(0,s.SU)(T).page?((0,a.wg)(),(0,a.j4)(ke.Z,{key:0,path:"/admin/users",pagination:(0,s.SU)(T),query:(0,s.SU)(E)},null,8,["pagination","query"])):(0,a.kq)("",!0),(0,s.SU)(p)?((0,a.wg)(),(0,a.j4)(r,{key:1,message:(0,s.SU)(p)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("button",{onClick:t[1]||(t[1]=(0,i.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1)]))])),_:1})])}}});const mt=(0,k.Z)(ut,[["__scopeId","data-v-dc12ff78"]]);var dt=mt,Et=n(2179);const St={class:"profile-tabs custom-checkboxes-group"},_t={class:"profile-tabs-checkboxes custom-checkboxes"},Tt=["id","name","checked","disabled","onInput"];var pt=(0,a.aZ)({__name:"UserProfileTabs",props:{tabs:null,selectedTab:null,edition:{type:Boolean},disabled:{type:Boolean,default:!1}},setup(e){const t=e,{tabs:n,selectedTab:r,disabled:i}=(0,s.BK)(t);function l(e){switch(e){case"ACCOUNT":case"PICTURE":return`/profile/edit/${e.toLocaleLowerCase()}`;case"APPS":case"PREFERENCES":case"SPORTS":return`/profile${t.edition?"/edit":""}/${e.toLocaleLowerCase()}`;default:case"PROFILE":return"/profile"+(t.edition?"/edit":"")}}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",St,[(0,a._)("div",_t,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(n),(t=>((0,a.wg)(),(0,a.iD)("div",{class:"profile-tab custom-checkbox",key:t},[(0,a._)("label",null,[(0,a._)("input",{type:"radio",id:t,name:t,checked:(0,s.SU)(r).split("/")[0]===t,disabled:(0,s.SU)(i),onInput:n=>e.$router.push(l(t))},null,40,Tt),(0,a._)("span",null,(0,o.zw)(e.$t(`user.PROFILE.TABS.${t}`)),1)])])))),128))])]))}});const At=pt;var Ot=At;const zt={id:"user-profile"},It={class:"box"};var Rt=(0,a.aZ)({__name:"index",props:{user:null,tab:null},setup(e){const t=e,{user:n,tab:r}=(0,s.BK)(t),o=["PROFILE","PREFERENCES","SPORTS","APPS"];return(e,t)=>{const i=(0,a.up)("router-view");return(0,a.wg)(),(0,a.iD)("div",zt,[(0,a.Wm)(Et.Z,{user:(0,s.SU)(n)},null,8,["user"]),(0,a._)("div",It,[(0,a.Wm)(Ot,{tabs:o,selectedTab:(0,s.SU)(r),edition:!1},null,8,["selectedTab"]),(0,a.Wm)(i,{user:(0,s.SU)(n)},null,8,["user"])])])}}});const gt=(0,k.Z)(Rt,[["__scopeId","data-v-9729cba4"]]);var Nt=gt,Ut=n(1585),ht=n(6287);const Ct={id:"user-preferences",class:"description-list"},wt={class:"profile-buttons"};var Dt=(0,a.aZ)({__name:"UserPreferences",props:{user:null},setup(e){const t=e,n=(0,c.o)(),r=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.LANGUAGE])),i=(0,a.Fl)((()=>t.user.language?ht.zK[t.user.language]:ht.zK.en)),u=(0,a.Fl)((()=>t.user.weekm?"MONDAY":"SUNDAY")),m=(0,a.Fl)((()=>t.user.timezone?t.user.timezone:"Europe/Paris")),d=(0,a.Fl)((()=>t.user.date_format?t.user.date_format:"MM/dd/yyyy")),E=(0,a.Fl)((()=>t.user.display_ascent?"DISPLAYED":"HIDDEN"));return(t,n)=>((0,a.wg)(),(0,a.iD)("div",Ct,[(0,a._)("dl",null,[(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.LANGUAGE"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,s.SU)(i)),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.TIMEZONE"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,s.SU)(m)),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.DATE_FORMAT"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,s.SU)(Ke.mh)((0,s.SU)(d),(0,s.SU)(r))),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+":",1),(0,a._)("dd",null,(0,o.zw)(t.$t(`user.PROFILE.${(0,s.SU)(u)}`)),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.UNITS.LABEL"))+":",1),(0,a._)("dd",null,(0,o.zw)(t.$t("user.PROFILE.UNITS."+(e.user.imperial_units?"IMPERIAL":"METRIC"))),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.ASCENT_DATA"))+":",1),(0,a._)("dd",null,(0,o.zw)(t.$t(`common.${(0,s.SU)(E)}`)),1)]),(0,a._)("div",wt,[(0,a._)("button",{onClick:n[0]||(n[0]=e=>t.$router.push("/profile/edit/preferences"))},(0,o.zw)(t.$t("user.PROFILE.EDIT_PREFERENCES")),1),(0,a._)("button",{onClick:n[1]||(n[1]=e=>t.$router.push("/"))},(0,o.zw)(t.$t("common.HOME")),1)])]))}});const vt=Dt;var ft=vt;const Pt={id:"user-profile-edition",class:"center-card"};var kt=(0,a.aZ)({__name:"index",props:{user:null,tab:null},setup(e){const t=e,n=(0,c.o)(),{user:r,tab:i}=(0,s.BK)(t),u=["PROFILE","ACCOUNT","PICTURE","PREFERENCES","SPORTS"],m=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING]));return(e,t)=>{const n=(0,a.up)("router-view"),l=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",Pt,[(0,a.Wm)(l,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t(`user.PROFILE.${(0,s.SU)(i)}_EDITION`)),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(Ot,{tabs:u,selectedTab:(0,s.SU)(i),edition:!0,disabled:(0,s.SU)(m)},null,8,["selectedTab","disabled"]),(0,a.Wm)(n,{user:(0,s.SU)(r)},null,8,["user"])])),_:1})])}}});const Lt=kt;var Mt=Lt,bt=n(8403);const yt={id:"user-infos-edition"},Gt={class:"profile-form form-box"},Ft={key:1,class:"info-box success-message"},Wt=["onSubmit"],Bt={class:"form-items",for:"email"},Kt=["disabled"],Yt={class:"form-items",for:"password-field"},xt={class:"form-items",for:"new-password-field"},Ht={class:"form-buttons"},Zt={class:"confirm",type:"submit"};var $t=(0,a.aZ)({__name:"UserAccountEdition",props:{user:null},setup(e){const t=e,{user:n}=(0,s.BK)(t),r=(0,c.o)(),u=(0,s.qj)({email:"",password:"",new_password:""}),m=(0,a.Fl)((()=>r.getters[l.YN.GETTERS.USER_LOADING])),d=(0,a.Fl)((()=>r.getters[l.SY.GETTERS.APP_CONFIG])),E=(0,a.Fl)((()=>r.getters[l.YN.GETTERS.IS_SUCCESS])),S=(0,s.iH)(!1),_=(0,a.Fl)((()=>r.getters[l.SY.GETTERS.ERROR_MESSAGES])),T=(0,s.iH)(!1),p=(0,s.iH)(!1);function A(){T.value=!0}function O(e){u.email=e.email}function z(e){u.password=e}function I(e){u.new_password=e}function R(){const e={email:u.email,password:u.password};u.new_password&&(e.new_password=u.new_password),S.value=u.email!==n.value.email,r.dispatch(l.YN.ACTIONS.UPDATE_USER_ACCOUNT,e)}function g(e){p.value=e}function N(e){r.dispatch(l.YN.ACTIONS.DELETE_ACCOUNT,{username:e})}return(0,a.bv)((()=>{t.user&&O(t.user)})),(0,a.Ah)((()=>{r.commit(l.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),r.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(0,a.YP)((()=>E.value),(async e=>{e&&(z(""),I(""),O(n.value),T.value=!1)})),(0,a.YP)((()=>n.value.email),(async()=>{O(n.value)})),(e,t)=>{const r=(0,a.up)("Modal"),l=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",yt,[p.value?((0,a.wg)(),(0,a.j4)(r,{key:0,title:e.$t("common.CONFIRMATION"),message:e.$t("user.CONFIRM_ACCOUNT_DELETION"),onConfirmAction:t[0]||(t[0]=e=>N((0,s.SU)(n).username)),onCancelAction:t[1]||(t[1]=e=>g(!1))},null,8,["title","message"])):(0,a.kq)("",!0),(0,a._)("div",Gt,[(0,s.SU)(_)?((0,a.wg)(),(0,a.j4)(l,{key:0,message:(0,s.SU)(_)},null,8,["message"])):(0,a.kq)("",!0),(0,s.SU)(E)?((0,a.wg)(),(0,a.iD)("div",Ft,(0,o.zw)(e.$t(`user.PROFILE.SUCCESSFUL_${S.value&&(0,s.SU)(d).is_email_sending_enabled?"EMAIL_":""}UPDATE`)),1)):(0,a.kq)("",!0),(0,a._)("form",{class:(0,o.C_)({errors:T.value}),onSubmit:(0,i.iM)(R,["prevent"])},[(0,a._)("label",Bt,[(0,a.Uk)((0,o.zw)(e.$t("user.EMAIL"))+"* ",1),(0,a.wy)((0,a._)("input",{id:"email","onUpdate:modelValue":t[2]||(t[2]=e=>u.email=e),disabled:(0,s.SU)(m),required:!0,onInvalid:A},null,40,Kt),[[i.nr,u.email]])]),(0,a._)("label",Yt,[(0,a.Uk)((0,o.zw)(e.$t("user.CURRENT_PASSWORD"))+"* ",1),(0,a.Wm)(bt.Z,{id:"password-field",disabled:(0,s.SU)(m),password:u.password,required:!0,onUpdatePassword:z,onPasswordError:A},null,8,["disabled","password"])]),(0,a._)("label",xt,[(0,a.Uk)((0,o.zw)(e.$t("user.NEW_PASSWORD"))+" ",1),(0,a.Wm)(bt.Z,{id:"new-password-field",disabled:(0,s.SU)(m),checkStrength:!0,password:u.new_password,isSuccess:!1,onUpdatePassword:I,onPasswordError:A},null,8,["disabled","password"])]),(0,a._)("div",Ht,[(0,a._)("button",Zt,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:t[3]||(t[3]=(0,i.iM)((t=>e.$router.push("/profile")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1),(0,a._)("button",{class:"danger",onClick:t[4]||(t[4]=(0,i.iM)((e=>g(!0)),["prevent"]))},(0,o.zw)(e.$t("buttons.DELETE_MY_ACCOUNT")),1)])],42,Wt)])])}}});const Vt=(0,k.Z)($t,[["__scopeId","data-v-37b8c4c8"]]);var qt=Vt,jt=n(6761);const Xt={id:"user-infos-edition"},Jt={class:"profile-form form-box"},Qt=["onSubmit"],en={class:"form-items",for:"registrationDate"},tn=["value"],nn={class:"form-items",for:"first_name"},rn=["disabled"],an={class:"form-items",for:"last_name"},on={class:"form-items",for:"birth_date"},sn=["disabled"],ln={class:"form-items",for:"location"},cn=["disabled"],un={class:"form-items"},mn={class:"form-buttons"},dn={class:"confirm",type:"submit"};var En=(0,a.aZ)({__name:"UserInfosEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),r=(0,s.qj)({first_name:"",last_name:"",birth_date:"",location:"",bio:""}),u=(0,a.Fl)((()=>t.user.created_at?(0,Ke.p6)(t.user.created_at,t.user.timezone,t.user.date_format):"")),m=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),d=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function E(e){r.first_name=e.first_name?e.first_name:"",r.last_name=e.last_name?e.last_name:"",r.birth_date=e.birth_date?(0,jt.Z)(new Date(e.birth_date),"yyyy-MM-dd"):"",r.location=e.location?e.location:"",r.bio=e.bio?e.bio:""}function S(e){r.bio=e}function _(){n.dispatch(l.YN.ACTIONS.UPDATE_USER_PROFILE,r)}return(0,a.bv)((()=>{t.user&&E(t.user)})),(0,a.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,t)=>{const n=(0,a.up)("ErrorMessage"),l=(0,a.up)("CustomTextArea");return(0,a.wg)(),(0,a.iD)("div",Xt,[(0,a._)("div",Jt,[(0,s.SU)(d)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,s.SU)(d)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("form",{onSubmit:(0,i.iM)(_,["prevent"])},[(0,a._)("label",en,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE"))+" ",1),(0,a._)("input",{id:"registrationDate",value:(0,s.SU)(u),disabled:""},null,8,tn)]),(0,a._)("label",nn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.FIRST_NAME"))+" ",1),(0,a.wy)((0,a._)("input",{id:"first_name","onUpdate:modelValue":t[0]||(t[0]=e=>r.first_name=e),disabled:(0,s.SU)(m)},null,8,rn),[[i.nr,r.first_name]])]),(0,a._)("label",an,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.LAST_NAME"))+" ",1),(0,a.wy)((0,a._)("input",{id:"last_name","onUpdate:modelValue":t[1]||(t[1]=e=>r.last_name=e)},null,512),[[i.nr,r.last_name]])]),(0,a._)("label",on,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.BIRTH_DATE"))+" ",1),(0,a.wy)((0,a._)("input",{id:"birth_date",type:"date",class:"birth-date","onUpdate:modelValue":t[2]||(t[2]=e=>r.birth_date=e),disabled:(0,s.SU)(m)},null,8,sn),[[i.nr,r.birth_date]])]),(0,a._)("label",ln,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.LOCATION"))+" ",1),(0,a.wy)((0,a._)("input",{id:"location","onUpdate:modelValue":t[3]||(t[3]=e=>r.location=e),disabled:(0,s.SU)(m)},null,8,cn),[[i.nr,r.location]])]),(0,a._)("label",un,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.BIO"))+" ",1),(0,a.Wm)(l,{name:"bio",charLimit:200,input:r.bio,disabled:(0,s.SU)(m),onUpdateValue:S},null,8,["input","disabled"])]),(0,a._)("div",mn,[(0,a._)("button",dn,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:t[4]||(t[4]=(0,i.iM)((t=>e.$router.push("/profile")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])],40,Qt)])])}}});const Sn=(0,k.Z)(En,[["__scopeId","data-v-5e5a4552"]]);var _n=Sn;const Tn=e=>((0,a.dD)("data-v-687e9604"),e=e(),(0,a.Cn)(),e),pn={id:"user-picture-edition"},An={class:"user-picture-form"},On=["onSubmit"],zn={class:"picture-help"},In={class:"info-box"},Rn=Tn((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),gn={class:"picture-buttons"},Nn=["disabled"];var Un=(0,a.aZ)({__name:"UserPictureEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),{user:r}=(0,s.BK)(t),m=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),d=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.APP_CONFIG])),E=d.value.max_single_file_size?(0,u.Z)(d.value.max_single_file_size):"",S=(0,s.iH)(null);function _(){n.dispatch(l.YN.ACTIONS.DELETE_PICTURE)}function T(e){e.target.files&&(S.value=e.target.files[0])}function p(){S.value&&n.dispatch(l.YN.ACTIONS.UPDATE_USER_PICTURE,{picture:S.value})}return(0,a.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,t)=>{const n=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",pn,[(0,a._)("div",An,[(0,s.SU)(m)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,s.SU)(m)},null,8,["message"])):(0,a.kq)("",!0),(0,a.Wm)(Le.Z,{user:(0,s.SU)(r)},null,8,["user"]),(0,a._)("form",{onSubmit:(0,i.iM)(p,["prevent"])},[(0,a._)("input",{type:"file",name:"picture",accept:".png,.jpg,.gif",onInput:T},null,32),(0,a._)("div",zn,[(0,a._)("span",In,[Rn,(0,a.Uk)(" "+(0,o.zw)(e.$t("workouts.MAX_SIZE"))+": "+(0,o.zw)((0,s.SU)(E)),1)])]),(0,a._)("div",gn,[(0,a._)("button",{type:"submit",disabled:!S.value},(0,o.zw)(e.$t("user.PROFILE.PICTURE_UPDATE")),9,Nn),(0,s.SU)(r).picture?((0,a.wg)(),(0,a.iD)("button",{key:0,class:"danger",onClick:_},(0,o.zw)(e.$t("user.PROFILE.PICTURE_REMOVE")),1)):(0,a.kq)("",!0),(0,a._)("button",{class:"cancel",onClick:t[0]||(t[0]=t=>e.$router.push("/profile"))},(0,o.zw)(e.$t("user.PROFILE.BACK_TO_PROFILE")),1)])],40,On)])])}}});const hn=(0,k.Z)(Un,[["__scopeId","data-v-687e9604"]]);var Cn=hn;const wn=["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"],Dn={id:"tz-dropdown"},vn=["value","disabled","onKeydown"],fn=["onClick","onMouseover","autofocus"];var Pn=(0,a.aZ)({__name:"TimezoneDropdown",props:{input:null,disabled:{type:Boolean,default:!1}},emits:["updateTimezone"],setup(e,{emit:t}){const n=e,{input:r,disabled:l}=(0,s.BK)(n),c=(0,s.iH)(n.input),u=(0,s.iH)(!1),m=(0,s.iH)(null),d=(0,s.iH)(0);function E(e){return e.toLowerCase().match(c.value.toLowerCase())}function S(e){d.value=e}function _(e){c.value=e,u.value=!1,t("updateTimezone",e)}function T(e){e.preventDefault(),m.value?.firstElementChild?.innerHTML&&_(m.value?.firstElementChild?.innerHTML)}function p(e){e.preventDefault(),u.value=!0,c.value=e.target.value.trim()}return(0,a.YP)((()=>n.input),(e=>{c.value=e})),(e,t)=>((0,a.wg)(),(0,a.iD)("div",Dn,[(0,a._)("input",{class:"tz-dropdown-input",id:"timezone",name:"timezone",value:c.value,disabled:(0,s.SU)(l),required:"",onKeydown:[t[0]||(t[0]=(0,i.D2)((e=>_((0,s.SU)(r))),["esc"])),(0,i.D2)(T,["enter"])],onInput:p},null,40,vn),u.value?((0,a.wg)(),(0,a.iD)("ul",{key:0,class:"tz-dropdown-list",ref_key:"tzList",ref:m},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(wn).filter((e=>E(e))),((e,t)=>((0,a.wg)(),(0,a.iD)("li",{key:e,class:(0,o.C_)(["tz-dropdown-item",{focus:t===d.value}]),onClick:t=>_(e),onMouseover:e=>S(t),autofocus:t===d.value},(0,o.zw)(e),43,fn)))),128))],512)):(0,a.kq)("",!0)]))}});const kn=(0,k.Z)(Pn,[["__scopeId","data-v-47ea2903"]]);var Ln=kn;const Mn={id:"user-preferences-edition"},bn={class:"profile-form form-box"},yn=["onSubmit"],Gn={class:"form-items"},Fn=["disabled"],Wn=["value"],Bn={class:"form-items"},Kn={class:"form-items"},Yn=["disabled"],xn=["value"],Hn={class:"form-items form-checkboxes"},Zn={class:"checkboxes-label"},$n={class:"checkboxes"},Vn=["id","name","checked","disabled","onInput"],qn={class:"checkbox-label"},jn={class:"form-items form-checkboxes"},Xn={class:"checkboxes-label"},Jn={class:"checkboxes"},Qn=["id","name","checked","disabled","onInput"],er={class:"checkbox-label"},tr={class:"form-items form-checkboxes"},nr={class:"checkboxes-label"},rr={class:"checkboxes"},ar=["id","name","checked","disabled","onInput"],or={class:"checkbox-label"},ir={class:"form-buttons"},sr={class:"confirm",type:"submit"};var lr=(0,a.aZ)({__name:"UserPreferencesEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),r=(0,s.qj)({display_ascent:!0,imperial_units:!1,language:"",timezone:"Europe/Paris",date_format:"dd/MM/yyyy",weekm:!1}),u=[{label:"SUNDAY",value:!1},{label:"MONDAY",value:!0}],m=[{label:"METRIC",value:!1},{label:"IMPERIAL",value:!0}],d=[{label:"DISPLAYED",value:!0},{label:"HIDDEN",value:!1}],E=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),S=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),_=(0,a.Fl)((()=>(0,Ke.d2)((new Date).toUTCString(),t.user.timezone,r.language)));function T(e){r.display_ascent=e.display_ascent,r.imperial_units=!!e.imperial_units&&e.imperial_units,r.language=e.language?e.language:"en",r.timezone=e.timezone?e.timezone:"Europe/Paris",r.date_format=e.date_format?e.date_format:"dd/MM/yyyy",r.weekm=!!e.weekm&&e.weekm}function p(){n.dispatch(l.YN.ACTIONS.UPDATE_USER_PREFERENCES,r)}function A(e){r.timezone=e}function O(e){r.display_ascent=e}function z(e){r.imperial_units=e}function I(e){r.weekm=e}return(0,a.bv)((()=>{t.user&&T(t.user)})),(0,a.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,t)=>{const n=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",Mn,[(0,a._)("div",bn,[(0,s.SU)(S)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,s.SU)(S)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("form",{onSubmit:(0,i.iM)(p,["prevent"])},[(0,a._)("label",Gn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.LANGUAGE"))+" ",1),(0,a.wy)((0,a._)("select",{id:"language","onUpdate:modelValue":t[0]||(t[0]=e=>r.language=e),disabled:(0,s.SU)(E)},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(ht.mT),(e=>((0,a.wg)(),(0,a.iD)("option",{value:e.value,key:e.value},(0,o.zw)(e.label),9,Wn)))),128))],8,Fn),[[i.bM,r.language]])]),(0,a._)("label",Bn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.TIMEZONE"))+" ",1),(0,a.Wm)(Ln,{input:r.timezone,disabled:(0,s.SU)(E),onUpdateTimezone:A},null,8,["input","disabled"])]),(0,a._)("label",Kn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.DATE_FORMAT"))+" ",1),(0,a.wy)((0,a._)("select",{id:"date_format","onUpdate:modelValue":t[1]||(t[1]=e=>r.date_format=e),disabled:(0,s.SU)(E)},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(_),(e=>((0,a.wg)(),(0,a.iD)("option",{value:e.value,key:e.value},(0,o.zw)(e.label),9,xn)))),128))],8,Yn),[[i.bM,r.date_format]])]),(0,a._)("div",Hn,[(0,a._)("span",Zn,(0,o.zw)(e.$t("user.PROFILE.FIRST_DAY_OF_WEEK")),1),(0,a._)("div",$n,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(u,(t=>(0,a._)("label",{key:t.label},[(0,a._)("input",{type:"radio",id:t.label,name:t.label,checked:t.value===r.weekm,disabled:(0,s.SU)(E),onInput:e=>I(t.value)},null,40,Vn),(0,a._)("span",qn,(0,o.zw)(e.$t(`user.PROFILE.${t.label}`)),1)]))),64))])]),(0,a._)("div",jn,[(0,a._)("span",Xn,(0,o.zw)(e.$t("user.PROFILE.UNITS.LABEL")),1),(0,a._)("div",Jn,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(m,(t=>(0,a._)("label",{key:t.label},[(0,a._)("input",{type:"radio",id:t.label,name:t.label,checked:t.value===r.imperial_units,disabled:(0,s.SU)(E),onInput:e=>z(t.value)},null,40,Qn),(0,a._)("span",er,(0,o.zw)(e.$t(`user.PROFILE.UNITS.${t.label}`)),1)]))),64))])]),(0,a._)("div",tr,[(0,a._)("span",nr,(0,o.zw)(e.$t("user.PROFILE.ASCENT_DATA")),1),(0,a._)("div",rr,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(d,(t=>(0,a._)("label",{key:t.label},[(0,a._)("input",{type:"radio",id:t.label,name:t.label,checked:t.value===r.display_ascent,disabled:(0,s.SU)(E),onInput:e=>O(t.value)},null,40,ar),(0,a._)("span",or,(0,o.zw)(e.$t(`common.${t.label}`)),1)]))),64))])]),(0,a._)("div",ir,[(0,a._)("button",sr,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:t[2]||(t[2]=(0,i.iM)((t=>e.$router.push("/profile/preferences")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])],40,yn)])])}}});const cr=(0,k.Z)(lr,[["__scopeId","data-v-3b8a9a12"]]);var ur=cr;const mr=["profile:read","profile:write","users:read","users:write","workouts:read","workouts:write"],dr=["application:write"],Er={id:"new-oauth2-app"},Sr={id:"new-oauth2-title"},_r={id:"apps-form"},Tr=["onSubmit"],pr={class:"form-items"},Ar={class:"form-item"},Or={for:"app-name"},zr={class:"form-item"},Ir={for:"app-description"},Rr={class:"form-item"},gr={for:"app-url"},Nr={class:"form-item"},Ur={for:"app-redirect-uri"},hr={class:"form-item-scope"},Cr={class:"form-item-scope-label"},wr={class:"scope-label"},Dr=["name","checked","onChange"],vr=["innerHTML"],fr={class:"form-buttons"},Pr=["disabled"];var kr=(0,a.aZ)({__name:"AddUserApp",props:{authUser:null},setup(e){const t=e,n=(0,c.o)(),r=(0,s.qj)({client_name:"",client_uri:"",client_description:"",redirect_uri:""}),u=(0,s.qj)([]),m=(0,a.Fl)((()=>_(t.authUser,dr,mr)));function d(){const e={client_name:r.client_name,client_description:r.client_description,client_uri:r.client_uri,redirect_uris:[r.redirect_uri],scope:u.sort().join(" ")};n.dispatch(l.Km.ACTIONS.CREATE_CLIENT,e)}function E(e){r.client_description=e}function S(e){const t=u.indexOf(e);t>-1?u.splice(t,1):u.push(e)}function _(e,t,n){const r=[...n];return e.admin&&r.push(...t),r.sort()}return(e,t)=>{const n=(0,a.up)("CustomTextArea");return(0,a.wg)(),(0,a.iD)("div",Er,[(0,a._)("h1",Sr,(0,o.zw)(e.$t("oauth2.ADD_A_NEW_APP")),1),(0,a._)("div",_r,[(0,a._)("form",{onSubmit:(0,i.iM)(d,["prevent"])},[(0,a._)("div",pr,[(0,a._)("div",Ar,[(0,a._)("label",Or,(0,o.zw)(e.$t("oauth2.APP.NAME"))+"*",1),(0,a.wy)((0,a._)("input",{id:"app-name",type:"text",required:"","onUpdate:modelValue":t[0]||(t[0]=e=>r.client_name=e)},null,512),[[i.nr,r.client_name]])]),(0,a._)("div",zr,[(0,a._)("label",Ir,(0,o.zw)(e.$t("oauth2.APP.DESCRIPTION")),1),(0,a.Wm)(n,{name:"app-description",charLimit:200,input:r.description,onUpdateValue:E},null,8,["input"])]),(0,a._)("div",Rr,[(0,a._)("label",gr,(0,o.zw)(e.$t("oauth2.APP.URL"))+"*",1),(0,a.wy)((0,a._)("input",{id:"app-url",type:"text",required:"","onUpdate:modelValue":t[1]||(t[1]=e=>r.client_uri=e)},null,512),[[i.nr,r.client_uri]])]),(0,a._)("div",Nr,[(0,a._)("label",Ur,(0,o.zw)(e.$t("oauth2.APP.REDIRECT_URL"))+"* ",1),(0,a.wy)((0,a._)("input",{id:"app-redirect-uri",type:"text",required:"","onUpdate:modelValue":t[2]||(t[2]=e=>r.redirect_uri=e)},null,512),[[i.nr,r.redirect_uri]])]),(0,a._)("div",hr,[(0,a._)("div",Cr,(0,o.zw)(e.$t("oauth2.APP.SCOPE.LABEL"))+"* ",1),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(m),(t=>((0,a.wg)(),(0,a.iD)("div",{class:"form-item-scope-checkboxes",key:t},[(0,a._)("label",wr,[(0,a._)("input",{type:"checkbox",name:t,checked:u.includes(t),onChange:e=>S(t)},null,40,Dr),(0,a._)("code",null,(0,o.zw)(t),1)]),(0,a._)("p",{class:"scope-description",innerHTML:e.$t(`oauth2.APP.SCOPE.${t}_DESCRIPTION`)},null,8,vr)])))),128))])]),(0,a._)("div",fr,[(0,a._)("button",{class:"confirm",type:"submit",disabled:0===u.length},(0,o.zw)(e.$t("buttons.SUBMIT")),9,Pr),(0,a._)("button",{class:"cancel",onClick:t[3]||(t[3]=(0,i.iM)((()=>e.$router.push("/profile/apps")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])],40,Tr)])])}}});const Lr=(0,k.Z)(kr,[["__scopeId","data-v-0657ee77"]]);var Mr=Lr;const br={id:"authorize-oauth2-app"},yr={key:0},Gr={id:"authorize-oauth2-title"},Fr={class:"oauth2-access description-list"},Wr={class:"client-scope"},Br=["innerHTML"],Kr={class:"authorize-oauth2-buttons"},Yr={key:1},xr={class:"no-app"};var Hr=(0,a.aZ)({__name:"AuthorizeUserApp",setup(e){const t=(0,r.yj)(),n=(0,c.o)(),i=(0,a.Fl)((()=>n.getters[l.Km.GETTERS.CLIENT])),u=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function m(){t.query.client_id&&"string"===typeof t.query.client_id&&n.dispatch(l.Km.ACTIONS.GET_CLIENT_BY_CLIENT_ID,t.query.client_id)}function d(){n.dispatch(l.Km.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(0,a.wF)((()=>m())),(e,t)=>{const n=(0,a.up)("router-link"),r=(0,a.up)("i18n-t"),l=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",br,[(0,s.SU)(i).client_id?((0,a.wg)(),(0,a.iD)("div",yr,[(0,a._)("h1",Gr,[(0,a.Wm)(r,{keypath:"oauth2.AUTHORIZE_APP"},{default:(0,a.w5)((()=>[(0,a.Wm)(n,{to:{name:"UserApp",params:{id:(0,s.SU)(i).id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,s.SU)(i).name),1)])),_:1},8,["to"])])),_:1})]),(0,s.SU)(u)?((0,a.wg)(),(0,a.j4)(l,{key:0,message:(0,s.SU)(u)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("div",Fr,[(0,a._)("p",null,(0,o.zw)(e.$t("oauth2.APP_REQUESTING_ACCESS")),1),(0,a._)("dl",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(i).scope.split(" "),(t=>((0,a.wg)(),(0,a.iD)(a.HY,{key:t},[(0,a._)("dt",Wr,[(0,a._)("code",null,(0,o.zw)(t),1)]),(0,a._)("dd",{innerHTML:e.$t(`oauth2.APP.SCOPE.${t}_DESCRIPTION`)},null,8,Br)],64)))),128))]),(0,a._)("div",Kr,[(0,a._)("button",{class:"danger",onClick:d},(0,o.zw)(e.$t("buttons.AUTHORIZE")),1),(0,a._)("button",{class:"cancel",onClick:t[0]||(t[0]=t=>e.$router.push("/profile/apps"))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])])])):((0,a.wg)(),(0,a.iD)("div",Yr,[(0,a._)("p",xr,(0,o.zw)(e.$t("oauth2.NO_APP")),1),(0,a._)("button",{onClick:t[1]||(t[1]=t=>e.$router.push("/profile/apps"))},(0,o.zw)(e.$t("buttons.BACK")),1)]))])}}});const Zr=(0,k.Z)(Hr,[["__scopeId","data-v-3b2fe9ed"]]);var $r=Zr;const Vr={id:"oauth2-apps"};var qr=(0,a.aZ)({__name:"index",props:{user:null},setup(e){const t=e,n=(0,c.o)(),{user:r}=(0,s.BK)(t);return(0,a.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(l.Km.MUTATIONS.SET_CLIENTS,[])})),(e,t)=>{const n=(0,a.up)("router-view");return(0,a.wg)(),(0,a.iD)("div",Vr,[(0,a.Wm)(n,{authUser:(0,s.SU)(r)},null,8,["authUser"])])}}});const jr=qr;var Xr=jr;const Jr={id:"oauth2-app",class:"description-list"},Qr={key:1},ea={key:0,class:"info-box success-message"},ta=["title"],na={key:0},ra={key:1,class:"app-secret"},aa=["title"],oa={class:"client-scopes"},ia={class:"app-buttons"},sa={key:2},la={class:"no-app"};var ca=(0,a.aZ)({__name:"UserApp",props:{authUser:null,afterCreation:{type:Boolean,default:!1}},setup(e){const t=e,n=(0,r.yj)(),i=(0,c.o)(),{afterCreation:u,authUser:m}=(0,s.BK)(t),d=(0,a.Fl)((()=>i.getters[l.Km.GETTERS.CLIENT])),E=(0,a.Fl)((()=>i.getters[l.Km.GETTERS.REVOCATION_SUCCESSFUL])),S=(0,s.iH)(!1),_=(0,s.iH)(null),T=(0,s.iH)(!1),p=(0,s.iH)(!1),A=(0,s.iH)(!1);function O(){!u.value&&n.params.id&&"string"===typeof n.params.id&&i.dispatch(l.Km.ACTIONS.GET_CLIENT_BY_ID,+n.params.id)}function z(e){_.value=e?"oauth2.APP_DELETION_CONFIRMATION":"oauth2.TOKENS_REVOCATION_CONFIRMATION",I(!0)}function I(e){S.value=e,e||(_.value=null)}function R(e){"oauth2.APP_DELETION_CONFIRMATION"===_.value?i.dispatch(l.Km.ACTIONS.DELETE_CLIENT,e):i.dispatch(l.Km.ACTIONS.REVOKE_ALL_TOKENS,e)}function g(){navigator.clipboard.writeText(d.value.client_id),T.value=!0,p.value=!1,setTimeout((()=>{T.value=!1}),3e3)}function N(){d.value.client_secret&&(navigator.clipboard.writeText(d.value.client_secret),p.value=!0,T.value=!1,setTimeout((()=>{p.value=!1}),3e3))}return(0,a.wF)((()=>{O(),navigator.clipboard&&(A.value=!0)})),(0,a.Ah)((()=>{i.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),i.commit(l.Km.MUTATIONS.EMPTY_CLIENT),i.commit(l.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1)})),(0,a.YP)((()=>E.value),(e=>{e&&I(!1)})),(e,t)=>{const n=(0,a.up)("Modal");return(0,a.wg)(),(0,a.iD)("div",Jr,[S.value?((0,a.wg)(),(0,a.j4)(n,{key:0,title:e.$t("common.CONFIRMATION"),message:e.$t(_.value),onConfirmAction:t[0]||(t[0]=e=>R((0,s.SU)(d).id)),onCancelAction:t[1]||(t[1]=e=>I(!1))},null,8,["title","message"])):(0,a.kq)("",!0),(0,s.SU)(d)&&(0,s.SU)(d).client_id?((0,a.wg)(),(0,a.iD)("div",Qr,[(0,s.SU)(u)||(0,s.SU)(E)?((0,a.wg)(),(0,a.iD)("div",ea,(0,o.zw)(e.$t((0,s.SU)(u)?"oauth2.APP_CREATED_SUCCESSFULLY":"oauth2.TOKENS_REVOKED")),1)):(0,a.kq)("",!0),(0,a._)("dl",null,[(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.CLIENT_ID"))+":",1),(0,a._)("dd",null,[(0,a.Uk)((0,o.zw)((0,s.SU)(d).client_id)+" ",1),(0,s.SU)(u)&&A.value?((0,a.wg)(),(0,a.iD)("i",{key:0,class:(0,o.C_)("fa fa-"+(T.value?"check":"copy")),"aria-hidden":"true",title:e.$t("oauth2.COPY_TO_CLIPBOARD"),onClick:g},null,10,ta)):(0,a.kq)("",!0)]),(0,s.SU)(u)&&(0,s.SU)(d).client_secret?((0,a.wg)(),(0,a.iD)("dt",na,(0,o.zw)(e.$t("oauth2.APP.CLIENT_SECRET"))+": ",1)):(0,a.kq)("",!0),(0,s.SU)(u)&&(0,s.SU)(d).client_secret?((0,a.wg)(),(0,a.iD)("dd",ra,[(0,a.Uk)((0,o.zw)((0,s.SU)(d).client_secret)+" ",1),A.value?((0,a.wg)(),(0,a.iD)("i",{key:0,class:(0,o.C_)("fa fa-"+(p.value?"check":"copy")),"aria-hidden":"true",title:e.$t("oauth2.COPY_TO_CLIPBOARD"),onClick:N},null,10,aa)):(0,a.kq)("",!0)])):(0,a.kq)("",!0),(0,a._)("dt",null,(0,o.zw)((0,o.kC)(e.$t("oauth2.APP.ISSUE_AT")))+":",1),(0,a._)("dd",null,(0,o.zw)((0,s.SU)(Ke.p6)((0,s.SU)(d).issued_at,(0,s.SU)(m).timezone,(0,s.SU)(m).date_format)),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.NAME"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,s.SU)(d).name),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.DESCRIPTION"))+":",1),(0,a._)("dd",{class:(0,o.C_)({"no-description":!(0,s.SU)(d).client_description})},(0,o.zw)((0,s.SU)(d).client_description?(0,s.SU)(d).client_description:e.$t("oauth2.NO_DESCRIPTION")),3),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.URL"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,s.SU)(d).website),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.REDIRECT_URL"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,s.SU)(d).redirect_uris.length>0?(0,s.SU)(d).redirect_uris[0]:""),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.SCOPE.LABEL"))+":",1),(0,a._)("dd",oa,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(d).scope.split(" "),(e=>((0,a.wg)(),(0,a.iD)("span",{class:"client-scope",key:e},[(0,a._)("code",null,(0,o.zw)(e),1)])))),128))])]),(0,a._)("div",ia,[(0,a._)("button",{class:"danger",onClick:t[2]||(t[2]=e=>z(!1))},(0,o.zw)(e.$t("oauth2.REVOKE_ALL_TOKENS")),1),(0,a._)("button",{class:"danger",onClick:t[3]||(t[3]=e=>z(!0))},(0,o.zw)(e.$t("oauth2.DELETE_APP")),1),(0,a._)("button",{onClick:t[4]||(t[4]=t=>e.$router.push("/profile/apps"))},(0,o.zw)(e.$t("buttons.BACK")),1)])])):((0,a.wg)(),(0,a.iD)("div",sa,[(0,a._)("p",la,(0,o.zw)(e.$t("oauth2.NO_APP")),1),(0,a._)("button",{onClick:t[5]||(t[5]=t=>e.$router.push("/profile/apps"))},(0,o.zw)(e.$t("buttons.BACK")),1)]))])}}});const ua=(0,k.Z)(ca,[["__scopeId","data-v-3a844fa2"]]);var ma=ua;const da={id:"oauth2-apps-list"},Ea={class:"apps-list"},Sa={key:0},_a={class:"app-issued-at"},Ta={key:1,class:"no-apps"},pa={class:"app-list-buttons"};var Aa=(0,a.aZ)({__name:"UserAppsList",props:{authUser:null},setup(e){const t=e,n=(0,c.o)(),i=(0,r.yj)(),{authUser:u}=(0,s.BK)(t),m=(0,a.Fl)((()=>n.getters[l.Km.GETTERS.CLIENTS])),d=(0,a.Fl)((()=>n.getters[l.Km.GETTERS.CLIENTS_PAGINATION]));let E=S(i.query);function S(e){const t={};return e.page&&(t.page=(0,Be.z_)(e.page,Be.Hf)),t}function _(e){n.dispatch(l.Km.ACTIONS.GET_CLIENTS,e)}return(0,a.wF)((()=>{_(E)})),(0,a.YP)((()=>i.query),(async e=>{E=S(e),_(E)})),(e,t)=>{const n=(0,a.up)("router-link");return(0,a.wg)(),(0,a.iD)("div",da,[(0,a._)("p",Ea,(0,o.zw)(e.$t("oauth2.APPS_LIST")),1),(0,s.SU)(m).length>0?((0,a.wg)(),(0,a.iD)("ul",Sa,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(m),(t=>((0,a.wg)(),(0,a.iD)("li",{key:t.client_id},[(0,a.Wm)(n,{to:{name:"UserApp",params:{id:t.id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(t.name),1)])),_:2},1032,["to"]),(0,a._)("span",_a,(0,o.zw)(e.$t("oauth2.APP.ISSUE_AT"))+" "+(0,o.zw)((0,s.SU)(Ke.p6)(t.issued_at,(0,s.SU)(u).timezone,(0,s.SU)(u).date_format)),1)])))),128))])):((0,a.wg)(),(0,a.iD)("div",Ta,(0,o.zw)(e.$t("oauth2.NO_APPS")),1)),(0,s.SU)(m).length>0?((0,a.wg)(),(0,a.j4)(ke.Z,{key:2,pagination:(0,s.SU)(d),path:"/profile/apps",query:(0,s.SU)(E)},null,8,["pagination","query"])):(0,a.kq)("",!0),(0,a._)("div",pa,[(0,a._)("button",{onClick:t[0]||(t[0]=t=>e.$router.push("/profile/apps/new"))},(0,o.zw)(e.$t("oauth2.NEW_APP")),1),(0,a._)("button",{onClick:t[1]||(t[1]=t=>e.$router.push("/"))},(0,o.zw)(e.$t("common.HOME")),1)])])}}});const Oa=(0,k.Z)(Aa,[["__scopeId","data-v-efa45ea0"]]);var za=Oa;const Ia={id:"user-sport-preferences"},Ra={key:0,class:"responsive-table"},ga={class:"mobile-display"},Na={key:0,class:"profile-buttons mobile-display"},Ua={key:1,class:"profile-buttons"},ha={class:"text-left"},Ca={key:0},wa={class:"cell-heading"},Da=["value"],va={class:"cell-heading"},fa={key:0,class:"disabled-message"},Pa={key:1,class:"fa fa-refresh fa-spin fa-fw"},ka={class:"cell-heading"},La={class:"cell-heading"},Ma=["checked"],ba={class:"cell-heading"},ya=["value"],Ga={key:1},Fa={key:0,class:"action-buttons"},Wa={class:"cell-heading"},Ba=["onClick"],Ka={key:1,class:"edition-buttons"},Ya=["disabled"],xa=["disabled","onClick"],Ha=["disabled"],Za={key:0,class:"profile-buttons"},$a={key:1,class:"profile-buttons"};var Va=(0,a.aZ)({__name:"UserSportPreferences",props:{user:null,isEdition:{type:Boolean}},setup(e){const t=e,n=(0,c.o)(),{t:r}=(0,se.QT)(),{isEdition:u,user:m}=(0,s.BK)(t),d="#838383",E=(0,a.f3)("sportColors"),S=(0,a.Fl)((()=>n.getters[l.O8.GETTERS.SPORTS])),_=(0,a.Fl)((()=>(0,le.xH)(S.value,r,"is_active",m.value.sports_list))),T=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),p=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),A=(0,s.qj)({sport_id:0,color:null,is_active:!0,stopped_speed_threshold:1});function O(e){null!==e?(A.sport_id=e.id,A.color=e.color?e.color:E?E[e.label]:d,A.is_active=e.is_active_for_user,A.stopped_speed_threshold=e.stopped_speed_threshold):N()}function z(e){return A.sport_id===e}function I(e){A.color=e.target.value}function R(e){A.stopped_speed_threshold=parseFloat(e.target.value)}function g(e){A.is_active=e.target.checked}function N(){A.sport_id=0,A.color=null,A.is_active=!0,A.stopped_speed_threshold=1,n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)}function U(e){e.preventDefault(),n.dispatch(l.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,A)}function h(e,t){e.preventDefault(),n.dispatch(l.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES,t)}return(0,a.YP)((()=>T.value),(e=>{e||p.value||N()})),(e,t)=>{const n=(0,a.up)("SportImage"),r=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",Ia,[(0,s.SU)(S).length>0?((0,a.wg)(),(0,a.iD)("div",Ra,[(0,a._)("div",ga,[(0,s.SU)(u)?((0,a.wg)(),(0,a.iD)("div",Na,[(0,a._)("button",{class:"cancel",onClick:t[0]||(t[0]=(0,i.iM)((t=>e.$router.push("/profile/sports")),["prevent"]))},(0,o.zw)(e.$t("buttons.BACK")),1)])):((0,a.wg)(),(0,a.iD)("div",Ua,[(0,a._)("button",{onClick:t[1]||(t[1]=t=>e.$router.push("/profile/edit/sports"))},(0,o.zw)(e.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),(0,a._)("button",{onClick:t[2]||(t[2]=t=>e.$router.push("/"))},(0,o.zw)(e.$t("common.HOME")),1)]))]),(0,a._)("table",null,[(0,a._)("thead",null,[(0,a._)("tr",null,[(0,a._)("th",null,(0,o.zw)(e.$t("user.PROFILE.SPORT.COLOR")),1),(0,a._)("th",ha,(0,o.zw)(e.$t("workouts.SPORT",0)),1),(0,a._)("th",null,(0,o.zw)(e.$t("workouts.WORKOUT",0)),1),(0,a._)("th",null,(0,o.zw)(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),(0,a._)("th",null,(0,o.zw)(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),(0,s.SU)(u)?((0,a.wg)(),(0,a.iD)("th",Ca,(0,o.zw)(e.$t("user.PROFILE.SPORT.ACTION")),1)):(0,a.kq)("",!0)])]),(0,a._)("tbody",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(_),(i=>((0,a.wg)(),(0,a.iD)("tr",{key:i.id},[(0,a._)("td",null,[(0,a._)("span",wa,(0,o.zw)(e.$t("user.PROFILE.SPORT.COLOR")),1),z(i.id)?((0,a.wg)(),(0,a.iD)("input",{key:0,class:"sport-color",type:"color",value:A.color,onInput:I},null,40,Da)):((0,a.wg)(),(0,a.j4)(n,{key:1,title:i.translatedLabel,"sport-label":i.label,color:i.color?i.color:(0,s.SU)(E)[i.label]},null,8,["title","sport-label","color"]))]),(0,a._)("td",{class:(0,o.C_)(["sport-label",{"disabled-sport":!i.is_active}])},[(0,a._)("span",va,(0,o.zw)(e.$t("user.PROFILE.SPORT.LABEL")),1),(0,a.Uk)(" "+(0,o.zw)(i.translatedLabel)+" ",1),i.is_active?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("span",fa," ("+(0,o.zw)(e.$t("user.PROFILE.SPORT.DISABLED_BY_ADMIN"))+") ",1)),(0,s.SU)(T)&&z(i.id)?((0,a.wg)(),(0,a.iD)("i",Pa)):(0,a.kq)("",!0),(0,s.SU)(p)&&A.sport_id===i.id?((0,a.wg)(),(0,a.j4)(r,{key:2,message:(0,s.SU)(p)},null,8,["message"])):(0,a.kq)("",!0)],2),(0,a._)("td",{class:(0,o.C_)(["text-center",{"disabled-sport":!i.is_active}])},[(0,a._)("span",ka,(0,o.zw)(e.$t("workouts.WORKOUT",0)),1),(0,a._)("i",{class:(0,o.C_)("fa fa"+((0,s.SU)(m).sports_list.includes(i.id)?"-check":"")),"aria-hidden":"true"},null,2)],2),(0,a._)("td",{class:(0,o.C_)(["text-center",{"disabled-sport":!i.is_active}])},[(0,a._)("span",La,(0,o.zw)(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),z(i.id)&&i.is_active?((0,a.wg)(),(0,a.iD)("input",{key:0,type:"checkbox",checked:i.is_active_for_user,onChange:g},null,40,Ma)):((0,a.wg)(),(0,a.iD)("i",{key:1,class:(0,o.C_)("fa fa"+(i.is_active_for_user?"-check":"")),"aria-hidden":"true"},null,2))],2),(0,a._)("td",{class:(0,o.C_)(["text-center",{"disabled-sport":!i.is_active}])},[(0,a._)("span",ba,(0,o.zw)(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),z(i.id)&&i.is_active?((0,a.wg)(),(0,a.iD)("input",{key:0,class:"threshold-input",type:"number",min:"0",step:"0.1",value:A.stopped_speed_threshold,onInput:R},null,40,ya)):((0,a.wg)(),(0,a.iD)("span",Ga,(0,o.zw)(i.stopped_speed_threshold),1))],2),(0,s.SU)(u)?((0,a.wg)(),(0,a.iD)("td",Fa,[(0,a._)("span",Wa,(0,o.zw)(e.$t("user.PROFILE.SPORT.ACTION")),1),0===A.sport_id?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e=>O(i)},(0,o.zw)(e.$t("buttons.EDIT")),9,Ba)):(0,a.kq)("",!0),z(i.id)?((0,a.wg)(),(0,a.iD)("div",Ka,[(0,a._)("button",{disabled:(0,s.SU)(T),onClick:U},(0,o.zw)(e.$t("buttons.SUBMIT")),9,Ya),(0,a._)("button",{disabled:(0,s.SU)(T),onClick:e=>h(e,i.id)},(0,o.zw)(e.$t("buttons.RESET")),9,xa),(0,a._)("button",{disabled:(0,s.SU)(T),onClick:t[3]||(t[3]=e=>O(null))},(0,o.zw)(e.$t("buttons.CANCEL")),9,Ha)])):(0,a.kq)("",!0)])):(0,a.kq)("",!0)])))),128))])]),(0,s.SU)(u)?((0,a.wg)(),(0,a.iD)("div",Za,[(0,a._)("button",{class:"cancel",onClick:t[4]||(t[4]=(0,i.iM)((t=>e.$router.push("/profile/sports")),["prevent"]))},(0,o.zw)(e.$t("buttons.BACK")),1)])):((0,a.wg)(),(0,a.iD)("div",$a,[(0,a._)("button",{onClick:t[5]||(t[5]=t=>e.$router.push("/profile/edit/sports"))},(0,o.zw)(e.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),(0,a._)("button",{onClick:t[6]||(t[6]=t=>e.$router.push("/"))},(0,o.zw)(e.$t("common.HOME")),1)]))])):(0,a.kq)("",!0)])}}});const qa=(0,k.Z)(Va,[["__scopeId","data-v-74e52489"]]);var ja=qa,Xa=n(2894);const Ja=e=>((0,a.dD)("data-v-2b7b6dd6"),e=e(),(0,a.Cn)(),e),Qa={class:"about-text"},eo=["innerHTML"],to=Ja((()=>(0,a._)("i",{class:"fa fa-book fa-padding","aria-hidden":"true"},null,-1))),no={href:"https://samr1.github.io/FitTrackee/",target:"_blank",rel:"noopener noreferrer"},ro=Ja((()=>(0,a._)("i",{class:"fa fa-github fa-padding","aria-hidden":"true"},null,-1))),ao={href:"https://github.com/SamR1/FitTrackee",target:"_blank",rel:"noopener noreferrer"},oo=Ja((()=>(0,a._)("i",{class:"fa fa-balance-scale fa-padding","aria-hidden":"true"},null,-1))),io=Ja((()=>(0,a._)("a",{href:"https://choosealicense.com/licenses/agpl-3.0/",target:"_blank",rel:"noopener noreferrer"}," AGPLv3 ",-1))),so={key:0},lo=Ja((()=>(0,a._)("i",{class:"fa fa-envelope-o fa-padding","aria-hidden":"true"},null,-1))),co=["href"],uo={key:1},mo=["href"];var Eo=(0,a.aZ)({__name:"About",setup(e){const t=(0,c.o)(),n=(0,a.Fl)((()=>t.getters[l.SY.GETTERS.APP_CONFIG])),r=(0,a.Fl)((()=>i()));function i(){const e={};return"darksky"===n.value.weather_provider&&(e["name"]="Dark Sky",e["url"]="https://darksky.net"),"visualcrossing"===n.value.weather_provider&&(e["name"]="Visual Crossing",e["url"]="https://www.visualcrossing.com"),e}return(e,t)=>{const i=(0,a.up)("i18n-t");return(0,a.wg)(),(0,a.iD)("div",Qa,[(0,a._)("div",null,[(0,a._)("p",{class:"error-message",innerHTML:e.$t("about.FITTRACKEE_DESCRIPTION")},null,8,eo),(0,a._)("p",null,[to,(0,a._)("a",no,(0,o.zw)((0,o.kC)(e.$t("common.DOCUMENTATION"))),1)]),(0,a._)("p",null,[ro,(0,a._)("a",ao,(0,o.zw)(e.$t("about.SOURCE_CODE")),1)]),(0,a._)("p",null,[oo,(0,a.Wm)(i,{keypath:"about.FITTRACKEE_LICENSE"},{default:(0,a.w5)((()=>[io])),_:1})]),(0,s.SU)(n).admin_contact?((0,a.wg)(),(0,a.iD)("div",so,[lo,(0,a._)("a",{href:`mailto:${(0,s.SU)(n).admin_contact}`},(0,o.zw)(e.$t("about.CONTACT_ADMIN")),9,co)])):(0,a.kq)("",!0),(0,s.SU)(r)&&(0,s.SU)(r).name?((0,a.wg)(),(0,a.iD)("div",uo,[(0,a.Uk)((0,o.zw)(e.$t("about.WEATHER_DATA_FROM"))+" ",1),(0,a._)("a",{href:(0,s.SU)(r).url,target:"_blank",rel:"nofollow noopener"},(0,o.zw)((0,s.SU)(r).name),9,mo)])):(0,a.kq)("",!0)])])}}});const So=(0,k.Z)(Eo,[["__scopeId","data-v-2b7b6dd6"]]);var _o=So;const To={id:"bike"},po=["src"];function Ao(e,t){return(0,a.wg)(),(0,a.iD)("div",To,[(0,a._)("img",{class:"bike-img",src:"/img/bike.svg",alt:"mountain bike"},null,8,po)])}const Oo={},zo=(0,k.Z)(Oo,[["render",Ao],["__scopeId","data-v-795f7f5f"]]);var Io=zo;const Ro={id:"about",class:"view"},go={class:"container"},No={class:"container-sub"},Uo={class:"container-sub about-details"};var ho=(0,a.aZ)({__name:"AboutView",setup(e){return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Ro,[(0,a._)("div",go,[(0,a._)("div",No,[(0,a.Wm)(Io)]),(0,a._)("div",Uo,[(0,a.Wm)(_o)])])]))}});const Co=(0,k.Z)(ho,[["__scopeId","data-v-bffb50d0"]]);var wo=Co,Do=n(1818),vo=n(2056);const fo=e=>((0,a.dD)("data-v-645a9e33"),e=e(),(0,a.Cn)(),e),Po={class:"timeline-workout"},ko={class:"box"},Lo={class:"workout-user-date"},Mo={class:"workout-user"},bo=["title"],yo={key:0},Go={key:1,class:"no-map"},Fo={class:"img"},Wo={class:"data"},Bo=fo((()=>(0,a._)("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1))),Ko={key:0},Yo={class:"data"},xo=fo((()=>(0,a._)("i",{class:"fa fa-road","aria-hidden":"true"},null,-1))),Ho={key:0,class:"data elevation"},Zo=["alt"],$o={class:"data-values"},Vo={key:1,class:"data altitude"},qo=fo((()=>(0,a._)("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1))),jo={class:"data-values"};var Xo=(0,a.aZ)({__name:"WorkoutCard",props:{user:null,useImperialUnits:{type:Boolean},workout:{default:()=>({})},sport:{default:()=>({})}},setup(e){const t=e,n=(0,c.o)(),{user:r,workout:i,sport:u,useImperialUnits:m}=(0,s.BK)(t),d=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.LOCALE]));function E(e){return e&&null!==e.ascent&&null!==e.descent}return(e,t)=>{const n=(0,a.up)("router-link"),l=(0,a.up)("SportImage"),c=(0,a.up)("Distance");return(0,a.wg)(),(0,a.iD)("div",Po,[(0,a._)("div",ko,[(0,a._)("div",Lo,[(0,a._)("div",Mo,[(0,a.Wm)(Le.Z,{user:(0,s.SU)(r)},null,8,["user"]),(0,s.SU)(r).username?((0,a.wg)(),(0,a.j4)(n,{key:0,class:"workout-user-name",to:{name:"User",params:{username:(0,s.SU)(r).username}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,s.SU)(r).username),1)])),_:1},8,["to"])):(0,a.kq)("",!0)]),(0,s.SU)(i).id?((0,a.wg)(),(0,a.j4)(n,{key:0,class:"workout-title",to:{name:"Workout",params:{workoutId:(0,s.SU)(i).id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,s.SU)(i).title),1)])),_:1},8,["to"])):(0,a.kq)("",!0),(0,s.SU)(i).workout_date&&(0,s.SU)(r)?((0,a.wg)(),(0,a.iD)("div",{key:1,class:"workout-date",title:(0,s.SU)(Ke.p6)((0,s.SU)(i).workout_date,(0,s.SU)(r).timezone,(0,s.SU)(r).date_format)},(0,o.zw)((0,s.SU)(Do.Z)(new Date((0,s.SU)(i).workout_date),new Date,{addSuffix:!0,locale:(0,s.SU)(d)})),9,bo)):(0,a.kq)("",!0)]),(0,a._)("div",{class:(0,o.C_)(["workout-map",{"no-cursor":!(0,s.SU)(i)}]),onClick:t[0]||(t[0]=t=>(0,s.SU)(i).id?e.$router.push({name:"Workout",params:{workoutId:(0,s.SU)(i).id}}):null)},[(0,s.SU)(i)?((0,a.wg)(),(0,a.iD)("div",yo,[(0,s.SU)(i).with_gpx?((0,a.wg)(),(0,a.j4)(vo.Z,{key:0,workout:(0,s.SU)(i)},null,8,["workout"])):((0,a.wg)(),(0,a.iD)("div",Go,(0,o.zw)(e.$t("workouts.NO_MAP")),1))])):(0,a.kq)("",!0)],2),(0,a._)("div",{class:(0,o.C_)(["workout-data",{"without-gpx":(0,s.SU)(i)&&!(0,s.SU)(i).with_gpx}]),onClick:t[1]||(t[1]=t=>(0,s.SU)(i).id?e.$router.push({name:"Workout",params:{workoutId:(0,s.SU)(i).id}}):null)},[(0,a._)("div",Fo,[(0,s.SU)(u).label?((0,a.wg)(),(0,a.j4)(l,{key:0,"sport-label":(0,s.SU)(u).label,color:(0,s.SU)(u).color},null,8,["sport-label","color"])):(0,a.kq)("",!0)]),(0,a._)("div",Wo,[Bo,(0,s.SU)(i)?((0,a.wg)(),(0,a.iD)("span",Ko,(0,o.zw)((0,s.SU)(i).moving),1)):(0,a.kq)("",!0)]),(0,a._)("div",Yo,[xo,(0,s.SU)(i).id?((0,a.wg)(),(0,a.j4)(c,{key:0,distance:(0,s.SU)(i).distance,digits:3,unitFrom:"km",useImperialUnits:(0,s.SU)(m)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)]),(0,s.SU)(i)&&(0,s.SU)(i).with_gpx?((0,a.wg)(),(0,a.iD)("div",Ho,[(0,a._)("img",{class:"mountains",src:"/img/workouts/mountains.svg",alt:e.$t("workouts.ELEVATION")},null,8,Zo),(0,a._)("div",$o,[(0,s.SU)(i).id?((0,a.wg)(),(0,a.j4)(c,{key:0,distance:(0,s.SU)(i).min_alt,unitFrom:"m",displayUnit:!1,useImperialUnits:(0,s.SU)(m)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0),(0,a.Uk)("/ "),(0,s.SU)(i).id?((0,a.wg)(),(0,a.j4)(c,{key:1,distance:(0,s.SU)(i).max_alt,unitFrom:"m",useImperialUnits:(0,s.SU)(m)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)])])):(0,a.kq)("",!0),E((0,s.SU)(i))?((0,a.wg)(),(0,a.iD)("div",Vo,[qo,(0,a._)("div",jo,[(0,a.Uk)(" +"),(0,s.SU)(i).id?((0,a.wg)(),(0,a.j4)(c,{key:0,distance:(0,s.SU)(i).ascent,unitFrom:"m",displayUnit:!1,useImperialUnits:(0,s.SU)(m)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0),(0,a.Uk)("/- "),(0,s.SU)(i).id?((0,a.wg)(),(0,a.j4)(c,{key:1,distance:(0,s.SU)(i).descent,unitFrom:"m",useImperialUnits:(0,s.SU)(m)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)])])):(0,a.kq)("",!0)],2)])])}}});const Jo=(0,k.Z)(Xo,[["__scopeId","data-v-645a9e33"]]);var Qo=Jo,ei=n(5630),ti=n(3768);const ni={id:"timeline"},ri={class:"section-title"},ai={key:0},oi={key:1},ii={key:1,class:"more-workouts"};var si=(0,a.aZ)({__name:"Timeline",props:{sports:null,user:null},setup(e){const t=e,n=(0,c.o)(),{sports:r,user:i}=(0,s.BK)(t),u=(0,s.iH)(1),m=5,d=t.user.nb_workouts>=m?m:t.user.nb_workouts;(0,a.wF)((()=>_()));const E=(0,a.Fl)((()=>n.getters[l.aX.GETTERS.TIMELINE_WORKOUTS])),S=(0,a.Fl)((()=>E.value.length>0&&null!==E.value[E.value.length-1].previous_workout));function _(){n.dispatch(l.aX.ACTIONS.GET_TIMELINE_WORKOUTS,{page:u.value,per_page:m,...ti.eR})}function T(){u.value+=1,n.dispatch(l.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS,{page:u.value,per_page:m,...ti.eR})}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",ni,[(0,a._)("div",ri,(0,o.zw)(e.$t("workouts.LATEST_WORKOUTS")),1),(0,s.SU)(i).nb_workouts>0&&0===(0,s.SU)(E).length?((0,a.wg)(),(0,a.iD)("div",ai,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)([...Array((0,s.SU)(d)).keys()],(e=>((0,a.wg)(),(0,a.j4)(Qo,{user:(0,s.SU)(i),useImperialUnits:(0,s.SU)(i).imperial_units,key:e},null,8,["user","useImperialUnits"])))),128))])):((0,a.wg)(),(0,a.iD)("div",oi,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(E),(e=>((0,a.wg)(),(0,a.j4)(Qo,{workout:e,sport:(0,s.SU)(E).length>0?(0,s.SU)(r).filter((t=>t.id===e.sport_id))[0]:null,user:(0,s.SU)(i),useImperialUnits:(0,s.SU)(i).imperial_units,key:e.id},null,8,["workout","sport","user","useImperialUnits"])))),128)),0===(0,s.SU)(E).length?((0,a.wg)(),(0,a.j4)(ei.Z,{key:0})):(0,a.kq)("",!0),(0,s.SU)(S)?((0,a.wg)(),(0,a.iD)("div",ii,[(0,a._)("button",{onClick:T},(0,o.zw)(e.$t("workouts.LOAD_MORE_WORKOUT")),1)])):(0,a.kq)("",!0)]))]))}});const li=(0,k.Z)(si,[["__scopeId","data-v-35567bf2"]]);var ci=li,ui=n(1640),mi=n(4559),di=n(7349),Ei=n(1743),Si=n(9160),_i=n(1085);const Ti=["title"];var pi=(0,a.aZ)({__name:"CalendarWorkout",props:{displayHARecord:{type:Boolean},workout:null,sportLabel:null,sportColor:null},setup(e){const t=e,{displayHARecord:n,workout:r,sportLabel:o,sportColor:i}=(0,s.BK)(t);return(e,t)=>{const l=(0,a.up)("SportImage");return(0,a.wg)(),(0,a.iD)("div",{class:"calendar-workout",onClick:t[0]||(t[0]=t=>e.$router.push({name:"Workout",params:{workoutId:(0,s.SU)(r).id}}))},[(0,a.Wm)(l,{"sport-label":(0,s.SU)(o),title:(0,s.SU)(r).title,color:(0,s.SU)(i)},null,8,["sport-label","title","color"]),(0,a._)("sup",null,[(0,s.SU)(r).records.length>0?((0,a.wg)(),(0,a.iD)("i",{key:0,class:"fa fa-trophy custom-fa-small","aria-hidden":"true",title:(0,s.SU)(r).records.filter((e=>!!(0,s.SU)(n)||"HA"!==e.record_type)).map((t=>` ${e.$t(`workouts.RECORD_${t.record_type}`)}`))},null,8,Ti)):(0,a.kq)("",!0)])])}}});const Ai=pi;var Oi=Ai;const zi={class:"donut-chart"},Ii={height:"34",width:"34",viewBox:"0 0 34 34"},Ri=["stroke","stroke-dashoffset","transform"];var gi=(0,a.aZ)({__name:"DonutChart",props:{colors:null,datasets:null},setup(e){const t=e,{colors:n,datasets:r}=(0,s.BK)(t);let o=-90;const i=16,l=16,c=14,u=2*Math.PI*c;function m(e,t){return t-e*t}function d(e,t){const n=`rotate(${o}, ${i}, ${l})`;return o=360*t+o,n}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",zi,[((0,a.wg)(),(0,a.iD)("svg",Ii,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(Object.entries((0,s.SU)(r)),((e,t)=>((0,a.wg)(),(0,a.iD)("g",{key:t},[(0,a._)("circle",{cx:i,cy:l,r:c,fill:"transparent",stroke:(0,s.SU)(n)[+e[0]],"stroke-dashoffset":m(e[1].percentage,u),"stroke-dasharray":u,"stroke-width":"3","stroke-opacity":"0.8",transform:d(t,e[1].percentage)},null,8,Ri)])))),128))]))]))}});const Ni=gi;var Ui=Ni;const hi={class:"calendar-workouts-chart"},Ci={class:"workouts-count"},wi={key:0,class:"workouts-pane"},Di={class:"more-workouts"};var vi=(0,a.aZ)({__name:"CalendarWorkoutsChart",props:{colors:null,datasets:null,sports:null,workouts:null},setup(e){const t=e,{colors:n,datasets:r,sports:i,workouts:l}=(0,s.BK)(t),c=(0,s.iH)(!0);function u(e){e.stopPropagation(),c.value=!c.value}return(e,t)=>{const m=(0,a.Q2)("click-outside");return(0,a.wg)(),(0,a.iD)("div",hi,[(0,a._)("div",{class:"workouts-chart",onClick:u},[(0,a._)("div",Ci,(0,o.zw)((0,s.SU)(l).length),1),(0,a.Wm)(Ui,{datasets:(0,s.SU)(r),colors:(0,s.SU)(n)},null,8,["datasets","colors"])]),c.value?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("div",wi,[(0,a.wy)(((0,a.wg)(),(0,a.iD)("div",Di,[(0,a._)("i",{class:"fa fa-times calendar-more","aria-hidden":"true",onClick:u}),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(l),((e,t)=>((0,a.wg)(),(0,a.j4)(Oi,{key:t,workout:e,sportLabel:(0,s.SU)(le.PA)(e,(0,s.SU)(i)),sportColor:(0,s.SU)(le.CM)(e,(0,s.SU)(i))},null,8,["workout","sportLabel","sportColor"])))),128))])),[[m,u]])]))])}}});const fi=(0,k.Z)(vi,[["__scopeId","data-v-52d4310a"]]);var Pi=fi;const ki={class:"calendar-workouts"},Li={class:"desktop-display"},Mi={key:0,class:"workouts-display"},bi={key:1,class:"donut-display"},yi={class:"mobile-display"},Gi={key:0,class:"donut-display"};var Fi=(0,a.aZ)({__name:"CalendarWorkouts",props:{displayHARecord:{type:Boolean},workouts:null,sports:null},setup(e){const t=e,{displayHARecord:n,workouts:r,sports:o}=(0,s.BK)(t),i=(0,a.Fl)((()=>(0,ti.BN)(t.workouts))),l=(0,a.Fl)((()=>(0,le.Yx)(t.sports))),c=6;return(e,t)=>((0,a.wg)(),(0,a.iD)("div",ki,[(0,a._)("div",Li,[(0,s.SU)(r).length<=c?((0,a.wg)(),(0,a.iD)("div",Mi,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(r).slice(0,c),((e,t)=>((0,a.wg)(),(0,a.j4)(Oi,{key:t,displayHARecord:(0,s.SU)(n),workout:e,sportLabel:(0,s.SU)(le.PA)(e,(0,s.SU)(o)),sportColor:(0,s.SU)(le.CM)(e,(0,s.SU)(o))},null,8,["displayHARecord","workout","sportLabel","sportColor"])))),128))])):((0,a.wg)(),(0,a.iD)("div",bi,[(0,a.Wm)(Pi,{workouts:(0,s.SU)(r),sports:(0,s.SU)(o),datasets:(0,s.SU)(i),colors:(0,s.SU)(l)},null,8,["workouts","sports","datasets","colors"])]))]),(0,a._)("div",yi,[(0,s.SU)(r).length>0?((0,a.wg)(),(0,a.iD)("div",Gi,[(0,a.Wm)(Pi,{workouts:(0,s.SU)(r),sports:(0,s.SU)(o),datasets:(0,s.SU)(i),colors:(0,s.SU)(l)},null,8,["workouts","sports","datasets","colors"])])):(0,a.kq)("",!0)])]))}});const Wi=Fi;var Bi=Wi;const Ki={class:"calendar-cells"},Yi={class:"calendar-cell-day"};var xi=(0,a.aZ)({__name:"CalendarCells",props:{currentDay:null,displayHARecord:{type:Boolean},endDate:null,sports:null,startDate:null,timezone:null,weekStartingMonday:{type:Boolean},workouts:null},setup(e){const t=e,{currentDay:n,displayHARecord:r,endDate:i,sports:l,startDate:c,timezone:u,weekStartingMonday:m,workouts:d}=(0,s.BK)(t),E=(0,s.iH)([]);function S(){E.value=[];let e=c.value;while(e<=i.value){const t=[];for(let n=0;n<7;n++)t.push(e),e=(0,di.Z)(e,1);E.value.push(t)}}function _(e){return m.value?[5,6].includes(e):[0,6].includes(e)}function T(e,t){return t?t.filter((t=>(0,Ei.Z)((0,Ke.eB)(t.workout_date,u.value),e))).reverse():[]}return(0,a.bv)((()=>S())),(0,a.YP)((()=>t.currentDay),(()=>S())),(e,t)=>((0,a.wg)(),(0,a.iD)("div",Ki,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(E.value,((e,t)=>((0,a.wg)(),(0,a.iD)("div",{class:"calendar-row",key:t},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(e,((e,t)=>((0,a.wg)(),(0,a.iD)("div",{class:(0,o.C_)(["calendar-cell",{"disabled-cell":!(0,s.SU)(Si.Z)(e,(0,s.SU)(n)),"week-end":_(t),today:(0,s.SU)(_i.Z)(e)}]),key:t},[(0,a.Wm)(Bi,{workouts:T(e,(0,s.SU)(d)),sports:(0,s.SU)(l),displayHARecord:(0,s.SU)(r)},null,8,["workouts","sports","displayHARecord"]),(0,a._)("div",Yi,(0,o.zw)((0,s.SU)(jt.Z)(e,"d")),1)],2)))),128))])))),128))]))}});const Hi=xi;var Zi=Hi;const $i={class:"calendar-days"};var Vi=(0,a.aZ)({__name:"CalendarDays",props:{startDate:null,localeOptions:null},setup(e){const t=e,n=[];for(let r=0;r<7;r++)n.push((0,di.Z)(t.startDate,r));return(t,r)=>((0,a.wg)(),(0,a.iD)("div",$i,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(n,((t,n)=>(0,a._)("div",{class:"calendar-day",key:n},(0,o.zw)((0,s.SU)(jt.Z)(t,"EEE",{locale:e.localeOptions})),1))),64))]))}});const qi=Vi;var ji=qi;const Xi={class:"calendar-header"},Ji=(0,a._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1),Qi=[Ji],es={class:"calendar-month"},ts=(0,a._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1),ns=[ts];var rs=(0,a.aZ)({__name:"CalendarHeader",props:{day:null,localeOptions:null},emits:["displayNextMonth","displayPreviousMonth"],setup(e,{emit:t}){const n=e,{day:r,localeOptions:i}=(0,s.BK)(n);return(e,n)=>((0,a.wg)(),(0,a.iD)("div",Xi,[(0,a._)("div",{class:"calendar-arrow calendar-arrow-left",onClick:n[0]||(n[0]=e=>t("displayPreviousMonth"))},Qi),(0,a._)("div",es,[(0,a._)("span",null,(0,o.zw)((0,s.SU)(jt.Z)((0,s.SU)(r),"MMM yyyy",{locale:(0,s.SU)(i)})),1)]),(0,a._)("div",{class:"calendar-arrow calendar-arrow-right",onClick:n[1]||(n[1]=e=>t("displayNextMonth"))},ns)]))}});const as=rs;var os=as;const is={id:"user-calendar"},ss={class:"calendar-card box"};var ls=(0,a.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const t=e,n=(0,c.o)(),{sports:r,user:o}=(0,s.BK)(t),i="yyyy-MM-dd",u=(0,s.iH)(new Date),m=(0,s.iH)((0,Ke.yx)(u.value,t.user.weekm)),d=(0,a.Fl)((()=>n.getters[l.aX.GETTERS.CALENDAR_WORKOUTS])),E=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.LOCALE]));function S(){m.value=(0,Ke.yx)(u.value,t.user.weekm);const e={from:(0,jt.Z)(m.value.start,i),to:(0,jt.Z)(m.value.end,i),page:1,per_page:100,...ti.eR};n.dispatch(l.aX.ACTIONS.GET_CALENDAR_WORKOUTS,e)}function _(){u.value=(0,ui.Z)(u.value,1),S()}function T(){u.value=(0,mi.Z)(u.value,1),S()}return(0,a.wF)((()=>S())),(e,t)=>((0,a.wg)(),(0,a.iD)("div",is,[(0,a._)("div",ss,[(0,a.Wm)(os,{day:u.value,"locale-options":(0,s.SU)(E),onDisplayNextMonth:_,onDisplayPreviousMonth:T},null,8,["day","locale-options"]),(0,a.Wm)(ji,{"start-date":m.value.start,"locale-options":(0,s.SU)(E)},null,8,["start-date","locale-options"]),(0,a.Wm)(Zi,{currentDay:u.value,displayHARecord:(0,s.SU)(o).display_ascent,"end-date":m.value.end,sports:(0,s.SU)(r),"start-date":m.value.start,timezone:(0,s.SU)(o).timezone,workouts:(0,s.SU)(d),weekStartingMonday:(0,s.SU)(o).weekm},null,8,["currentDay","displayHARecord","end-date","sports","start-date","timezone","workouts","weekStartingMonday"])])]))}});const cs=ls;var us=cs,ms=n(3703),ds=n(4135),Es=n(436);const Ss={class:"user-month-stats"};var _s=(0,a.aZ)({__name:"UserMonthStats",props:{sports:null,user:null},setup(e){const t=e,{sports:n,user:r}=(0,s.BK)(t),i=new Date,l={duration:"week",start:(0,ms.Z)(i),end:(0,ds.Z)(i)},c=t.sports.map((e=>e.id));return(e,t)=>{const i=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",Ss,[(0,a.Wm)(i,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("dashboard.THIS_MONTH")),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(Es.Z,{sports:(0,s.SU)(n),user:(0,s.SU)(r),"chart-params":l,"displayed-sport-ids":(0,s.SU)(c),"hide-chart-if-no-data":!0},null,8,["sports","user","displayed-sport-ids"])])),_:1})])}}});const Ts=(0,k.Z)(_s,[["__scopeId","data-v-1bcddc12"]]);var ps=Ts,As=n(2540),Os=n(3649);const{locale:zs}=As.Z.global,Is=(e,t,n,r)=>{const a="km",o=n?Os.Dl[a].defaultTarget:a,i="m",s=n?Os.Dl[i].defaultTarget:i;let l;switch(e.record_type){case"AS":case"MS":l=`${(0,Os.sC)(+e.value,a,o,2)} ${o}/h`;break;case"FD":l=`${(0,Os.sC)(+e.value,a,o,3)} ${o}`;break;case"HA":l=`${(0,Os.sC)(+e.value,i,s,2)} ${s}`;break;case"LD":l=e.value;break;default:throw new Error(`Invalid record type, expected: "AS", "FD", "HA", "LD", "MD", got: "${e.record_type}"`)}return{workout_date:(0,Ke.p6)(e.workout_date,t,r,!1),workout_id:e.workout_id,id:e.id,record_type:e.record_type,value:l}},Rs=(e,t)=>{const n=e.label.toLowerCase(),r=t.label.toLowerCase();return n>r?1:n(o=(0,Ke.mh)(o,zs.value),e.filter((e=>!!a||"HA"!==e.record_type)).reduce(((e,a)=>{const i=t.find((e=>e.id===a.sport_id));return i&&i.label&&(void 0===e[i.translatedLabel]&&(e[i.translatedLabel]={label:i.label,color:i.color,records:[]}),e[i.translatedLabel].records.push(Is(a,n,r,o))),e}),{})),Ns={class:"records-card"},Us={class:"record-type"},hs={class:"record-value"},Cs={class:"record-date"};var ws=(0,a.aZ)({__name:"RecordsCard",props:{records:null,sportTranslatedLabel:null},setup(e){const t=e,{records:n,sportTranslatedLabel:r}=(0,s.BK)(t),{t:i}=(0,se.QT)();function l(e){const t=[];return e.map((e=>{t.push({...e,label:i(`workouts.RECORD_${e.record_type}`)})})),t.sort(Rs)}return(e,t)=>{const i=(0,a.up)("SportImage"),c=(0,a.up)("router-link"),u=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",Ns,[(0,a.Wm)(u,null,{title:(0,a.w5)((()=>[(0,a.Wm)(i,{"sport-label":(0,s.SU)(n).label,color:(0,s.SU)(n).color},null,8,["sport-label","color"]),(0,a.Uk)(" "+(0,o.zw)((0,s.SU)(r)),1)])),content:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(l((0,s.SU)(n).records),(e=>((0,a.wg)(),(0,a.iD)("div",{class:"record",key:e.id},[(0,a._)("span",Us,(0,o.zw)(e.label),1),(0,a._)("span",hs,(0,o.zw)(e.value),1),(0,a._)("span",Cs,[(0,a.Wm)(c,{to:{name:"Workout",params:{workoutId:e.workout_id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.workout_date),1)])),_:2},1032,["to"])])])))),128))])),_:1})])}}});const Ds=(0,k.Z)(ws,[["__scopeId","data-v-8d17c606"]]);var vs=Ds;const fs=e=>((0,a.dD)("data-v-f0c85cb8"),e=e(),(0,a.Cn)(),e),Ps={class:"user-records-section"},ks={class:"section-title"},Ls=fs((()=>(0,a._)("i",{class:"fa fa-trophy custom-fa-small","aria-hidden":"true"},null,-1))),Ms={class:"user-records"},bs={key:0,class:"no-records"};var ys=(0,a.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const t=e,{t:n}=(0,se.QT)(),r=(0,a.Fl)((()=>gs(t.user.records,(0,le.xH)(t.sports,n),t.user.timezone,t.user.imperial_units,t.user.display_ascent,t.user.date_format)));return(t,n)=>((0,a.wg)(),(0,a.iD)("div",Ps,[(0,a._)("div",ks,[Ls,(0,a.Uk)(" "+(0,o.zw)(t.$t("workouts.RECORD",2)),1)]),(0,a._)("div",Ms,[0===Object.keys((0,s.SU)(r)).length?((0,a.wg)(),(0,a.iD)("div",bs,(0,o.zw)(t.$t("workouts.NO_RECORDS")),1)):(0,a.kq)("",!0),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(Object.keys((0,s.SU)(r)).sort(),(t=>((0,a.wg)(),(0,a.j4)(vs,{sportTranslatedLabel:t,records:(0,s.SU)(r)[t],key:t,useImperialUnits:e.user.imperial_units},null,8,["sportTranslatedLabel","records","useImperialUnits"])))),128))])]))}});const Gs=(0,k.Z)(ys,[["__scopeId","data-v-f0c85cb8"]]);var Fs=Gs;const Ws={id:"user-stats"};var Bs=(0,a.aZ)({__name:"index",props:{user:null},setup(e){const t=e,{t:n}=(0,se.QT)(),{user:r}=(0,s.BK)(t),o=(0,a.Fl)((()=>t.user.total_duration)),i=(0,a.Fl)((()=>S(o))),l="km",c=r.value.imperial_units?Os.Dl[l].defaultTarget:l,u=(0,a.Fl)((()=>r.value.imperial_units?(0,Os.sC)(r.value.total_distance,l,c,2):parseFloat(r.value.total_distance.toFixed(2)))),m="m",d=r.value.imperial_units?Os.Dl[m].defaultTarget:m,E=(0,a.Fl)((()=>r.value.imperial_units?(0,Os.sC)(r.value.total_ascent,m,d,2):parseFloat(r.value.total_ascent.toFixed(2))));function S(e){const t=e.value.match(/day/g)?e.value.split(", ")[1]:e.value;return{days:e.value.match(/day/g)?`${e.value.split(" ")[0]} ${e.value.match(/days/g)?n("common.DAY",2):n("common.DAY",1)}`:`0 ${n("common.DAY",2)},`,duration:`${t.split(":")[0]}h ${t.split(":")[1]}min`}}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Ws,[(0,a.Wm)(x,{icon:"calendar",value:(0,s.SU)(r).nb_workouts,text:e.$t("workouts.WORKOUT",(0,s.SU)(r).nb_workouts)},null,8,["value","text"]),(0,a.Wm)(x,{icon:"road",value:(0,s.SU)(u),text:"mi"===(0,s.SU)(c)?"miles":(0,s.SU)(c)},null,8,["value","text"]),(0,s.SU)(r).display_ascent?((0,a.wg)(),(0,a.j4)(x,{key:0,icon:"location-arrow",value:(0,s.SU)(E),text:"ft"===(0,s.SU)(d)?"feet":(0,s.SU)(d)},null,8,["value","text"])):(0,a.kq)("",!0),(0,a.Wm)(x,{icon:"clock-o",value:(0,s.SU)(i).days,text:(0,s.SU)(i).duration},null,8,["value","text"]),(0,s.SU)(r).display_ascent?(0,a.kq)("",!0):((0,a.wg)(),(0,a.j4)(x,{key:1,icon:"tags",value:(0,s.SU)(r).nb_sports,text:e.$t("workouts.SPORT",(0,s.SU)(r).nb_sports)},null,8,["value","text"]))]))}});const Ks=Bs;var Ys=Ks;const xs=e=>((0,a.dD)("data-v-4c0893c1"),e=e(),(0,a.Cn)(),e),Hs={key:0,id:"dashboard",class:"view"},Zs={class:"container mobile-menu"},$s={class:"box"},Vs=xs((()=>(0,a._)("i",{class:"fa fa-calendar","aria-hidden":"true"},null,-1))),qs=[Vs],js=xs((()=>(0,a._)("i",{class:"fa fa-bar-chart","aria-hidden":"true"},null,-1))),Xs=[js],Js=xs((()=>(0,a._)("i",{class:"fa fa-map-o","aria-hidden":"true"},null,-1))),Qs=[Js],el=xs((()=>(0,a._)("i",{class:"fa fa-trophy","aria-hidden":"true"},null,-1))),tl=[el],nl={class:"container"},rl={class:"container dashboard-container"},al={class:"left-container dashboard-sub-container"},ol={class:"right-container dashboard-sub-container"},il=xs((()=>(0,a._)("div",{id:"bottom"},null,-1))),sl={key:1,class:"app-loading"};var ll=(0,a.aZ)({__name:"Dashboard",setup(e){const t=(0,c.o)(),n=(0,a.Fl)((()=>t.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),r=(0,a.Fl)((()=>t.getters[l.O8.GETTERS.SPORTS])),i=(0,s.iH)("calendar");function u(e){i.value=e}return(0,a.wF)((()=>t.dispatch(l.YN.ACTIONS.GET_USER_PROFILE))),(e,t)=>{const l=(0,a.up)("Loader");return(0,s.SU)(n).username&&(0,s.SU)(r).length>0?((0,a.wg)(),(0,a.iD)("div",Hs,[(0,a._)("div",Zs,[(0,a._)("div",$s,[(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"calendar"===i.value}]),onClick:t[0]||(t[0]=e=>u("calendar"))},qs,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"chart"===i.value}]),onClick:t[1]||(t[1]=e=>u("chart"))},Xs,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"timeline"===i.value}]),onClick:t[2]||(t[2]=e=>u("timeline"))},Qs,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"records"===i.value}]),onClick:t[3]||(t[3]=e=>u("records"))},tl,2)])]),(0,a._)("div",nl,[(0,a.Wm)(Ys,{user:(0,s.SU)(n)},null,8,["user"])]),(0,a._)("div",rl,[(0,a._)("div",al,[(0,a.Wm)(ps,{sports:(0,s.SU)(r),user:(0,s.SU)(n),class:(0,o.C_)({"is-hidden":!("chart"===i.value)})},null,8,["sports","user","class"]),(0,a.Wm)(Fs,{sports:(0,s.SU)(r),user:(0,s.SU)(n),class:(0,o.C_)({"is-hidden":!("records"===i.value)})},null,8,["sports","user","class"])]),(0,a._)("div",ol,[(0,a.Wm)(us,{sports:(0,s.SU)(r),user:(0,s.SU)(n),class:(0,o.C_)({"is-hidden":!("calendar"===i.value)})},null,8,["sports","user","class"]),(0,a.Wm)(ci,{sports:(0,s.SU)(r),user:(0,s.SU)(n),class:(0,o.C_)({"is-hidden":!("timeline"===i.value)})},null,8,["sports","user","class"])])]),il])):((0,a.wg)(),(0,a.iD)("div",sl,[(0,a.Wm)(l)]))}}});const cl=(0,k.Z)(ll,[["__scopeId","data-v-4c0893c1"]]);var ul=cl,ml=n(8273);const dl={class:"not-found view"};var El=(0,a.aZ)({__name:"NotFoundView",setup(e){return(e,t)=>((0,a.wg)(),(0,a.iD)("div",dl,[(0,a.Wm)(ml.Z)]))}});const Sl=El;var _l=Sl,Tl=n(2411);const pl={id:"loginOrRegister",class:"view"},Al={class:"container"},Ol={class:"container-sub"},zl={class:"container-sub"};var Il=(0,a.aZ)({__name:"LoginOrRegister",props:{action:null},setup(e){const t=e,{action:n}=(0,s.BK)(t);return(e,t)=>((0,a.wg)(),(0,a.iD)("div",pl,[(0,a._)("div",Al,[(0,a._)("div",Ol,[(0,a.Wm)(Io)]),(0,a._)("div",zl,[(0,a.Wm)(Tl.Z,{action:(0,s.SU)(n)},null,8,["action"])])])]))}});const Rl=(0,k.Z)(Il,[["__scopeId","data-v-58043acb"]]);var gl=Rl;const Nl=e=>{const t=/(\/profile)(\/edit)*(\/*)/,n=e.replace(t,"").toUpperCase();return""===n?"PROFILE":n.toUpperCase()},Ul=[{path:"/",name:"Dashboard",component:ul},{path:"/login",name:"Login",component:gl,props:{action:"login"}},{path:"/register",name:"Register",component:gl,props:{action:"register"}},{path:"/account-confirmation",name:"AccountConfirmation",component:()=>n.e(845).then(n.bind(n,4264))},{path:"/account-confirmation/resend",name:"AccountConfirmationResend",component:()=>n.e(24).then(n.bind(n,5639)),props:{action:"account-confirmation-resend"}},{path:"/account-confirmation/email-sent",name:"AccountConfirmationEmailSend",component:()=>n.e(24).then(n.bind(n,5639)),props:{action:"email-sent"}},{path:"/password-reset/sent",name:"PasswordEmailSent",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"request-sent"}},{path:"/password-reset/request",name:"PasswordResetRequest",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"reset-request"}},{path:"/password-reset/password-updated",name:"PasswordUpdated",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"password-updated"}},{path:"/password-reset",name:"PasswordReset",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"reset"}},{path:"/email-update",name:"EmailUpdate",component:()=>n.e(845).then(n.bind(n,8793))},{path:"/profile",name:"Profile",component:()=>n.e(845).then(n.bind(n,1133)),children:[{path:"",name:"UserProfile",component:Nt,props:e=>({tab:Nl(e.path)}),children:[{path:"",name:"UserInfos",component:Ut.Z},{path:"preferences",name:"UserPreferences",component:ft},{path:"sports",name:"UserSportPreferences",component:ja,props:{isEdition:!1}},{path:"apps",name:"UserApps",component:Xr,children:[{path:"",name:"UserAppsList",component:za},{path:":id",name:"UserApp",component:ma},{path:":id/created",name:"CreatedUserApp",component:ma,props:{afterCreation:!0}},{path:"new",name:"AddUserApp",component:Mr},{path:"authorize",name:"AuthorizeUserApp",component:$r}]}]},{path:"edit",name:"UserProfileEdition",component:Mt,props:e=>({tab:Nl(e.path)}),children:[{path:"",name:"UserInfosEdition",component:_n},{path:"account",name:"UserAccountEdition",component:qt},{path:"picture",name:"UserPictureEdition",component:Cn},{path:"preferences",name:"UserPreferencesEdition",component:ur},{path:"sports",name:"UserSportPreferencesEdition",component:ja,props:{isEdition:!0}}]}]},{path:"/statistics",name:"Statistics",component:()=>n.e(193).then(n.bind(n,7885))},{path:"/users/:username",name:"User",component:()=>n.e(845).then(n.bind(n,9453))},{path:"/workouts",name:"Workouts",component:()=>n.e(401).then(n.bind(n,9628))},{path:"/workouts/:workoutId",name:"Workout",component:()=>n.e(401).then(n.bind(n,8691)),props:{displaySegment:!1}},{path:"/workouts/:workoutId/edit",name:"EditWorkout",component:()=>n.e(401).then(n.bind(n,8237))},{path:"/workouts/:workoutId/segment/:segmentId",name:"WorkoutSegment",component:()=>n.e(401).then(n.bind(n,8691)),props:{displaySegment:!0}},{path:"/workouts/add",name:"AddWorkout",component:()=>n.e(401).then(n.bind(n,4189))},{path:"/admin",name:"Administration",component:()=>n.e(328).then(n.bind(n,6e3)),children:[{path:"",name:"AdministrationMenu",component:ie},{path:"application",name:"ApplicationAdministration",component:M},{path:"application/edit",name:"ApplicationAdministrationEdition",component:M,props:{edition:!0}},{path:"sports",name:"SportsAdministration",component:fe},{path:"users/:username",name:"UserFromAdmin",component:()=>n.e(845).then(n.bind(n,9453)),props:{fromAdmin:!0}},{path:"users",name:"UsersAdministration",component:dt}]},{path:"/about",name:"About",component:wo},{path:"/:pathMatch(.*)*",name:"not-found",component:_l}],hl=(0,r.p7)({history:(0,r.PO)("/"),routes:Ul}),Cl=["/login","/password-reset","/password-reset/password-updated","/password-reset/request","/password-reset/sent","/register","/account-confirmation","/account-confirmation/resend","/account-confirmation/email-sent"],wl=["/email-update","/about"];hl.beforeEach(((e,t,n)=>{Xa.Z.dispatch(l.YN.ACTIONS.CHECK_AUTH_USER).then((()=>{if(wl.includes(e.path))return n();if(Xa.Z.getters[l.YN.GETTERS.IS_AUTHENTICATED]&&Cl.includes(e.path))return n("/");if(Xa.Z.getters[l.YN.GETTERS.IS_AUTHENTICATED]||Cl.includes(e.path))n();else{const t="/"===e.path?{path:"/login"}:{path:"/login",query:{from:e.fullPath}};n(t)}})).catch((e=>{console.error(e),n()}))}));var Dl=hl},5801:function(e,t,n){"use strict";var r,a,o,i,s,l,c,u,m,d,E,S,_,T,p,A,O,z;n.d(t,{YN:function(){return U},Km:function(){return h},SY:function(){return R},O8:function(){return g},gu:function(){return N},RT:function(){return C},aX:function(){return w}}),function(e){e["CHECK_AUTH_USER"]="CHECK_AUTH_USER",e["CONFIRM_ACCOUNT"]="CONFIRM_ACCOUNT",e["CONFIRM_EMAIL"]="CONFIRM_EMAIL",e["DELETE_ACCOUNT"]="DELETE_ACCOUNT",e["DELETE_PICTURE"]="DELETE_PICTURE",e["GET_USER_PROFILE"]="GET_USER_PROFILE",e["LOGIN_OR_REGISTER"]="LOGIN_OR_REGISTER",e["LOGOUT"]="LOGOUT",e["SEND_PASSWORD_RESET_REQUEST"]="SEND_PASSWORD_RESET_REQUEST",e["RESEND_ACCOUNT_CONFIRMATION_EMAIL"]="RESEND_ACCOUNT_CONFIRMATION_EMAIL",e["RESET_USER_PASSWORD"]="RESET_USER_PASSWORD",e["RESET_USER_SPORT_PREFERENCES"]="RESET_USER_SPORT_PREFERENCES",e["UPDATE_USER_ACCOUNT"]="UPDATE_USER_ACCOUNT",e["UPDATE_USER_PICTURE"]="UPDATE_USER_PICTURE",e["UPDATE_USER_PROFILE"]="UPDATE_USER_PROFILE",e["UPDATE_USER_PREFERENCES"]="UPDATE_USER_PREFERENCES",e["UPDATE_USER_SPORT_PREFERENCES"]="UPDATE_USER_SPORT_PREFERENCES"}(r||(r={})),function(e){e["AUTH_TOKEN"]="AUTH_TOKEN",e["AUTH_USER_PROFILE"]="AUTH_USER_PROFILE",e["IS_ADMIN"]="IS_ADMIN",e["IS_AUTHENTICATED"]="IS_AUTHENTICATED",e["IS_SUCCESS"]="IS_SUCCESS",e["IS_REGISTRATION_SUCCESS"]="IS_REGISTRATION_SUCCESS",e["USER_LOADING"]="USER_LOADING"}(a||(a={})),function(e){e["CLEAR_AUTH_USER_TOKEN"]="CLEAR_AUTH_USER_TOKEN",e["UPDATE_AUTH_TOKEN"]="UPDATE_AUTH_TOKEN",e["UPDATE_AUTH_USER_PROFILE"]="UPDATE_AUTH_USER_PROFILE",e["UPDATE_IS_SUCCESS"]="UPDATE_USER_IS_SUCCESS",e["UPDATE_IS_REGISTRATION_SUCCESS"]="UPDATE_IS_REGISTRATION_SUCCESS",e["UPDATE_USER_LOADING"]="UPDATE_USER_LOADING"}(o||(o={})),function(e){e["AUTHORIZE_CLIENT"]="AUTHORIZE_CLIENT",e["CREATE_CLIENT"]="CREATE_CLIENT",e["DELETE_CLIENT"]="DELETE_CLIENT",e["GET_CLIENTS"]="GET_CLIENTS",e["GET_CLIENT_BY_CLIENT_ID"]="GET_CLIENT_BY_CLIENT_ID",e["GET_CLIENT_BY_ID"]="GET_CLIENT_BY_ID",e["REVOKE_ALL_TOKENS"]="REVOKE_ALL_TOKENS"}(i||(i={})),function(e){e["CLIENT"]="CLIENT",e["CLIENTS"]="CLIENTS",e["CLIENTS_PAGINATION"]="CLIENTS_PAGINATION",e["REVOCATION_SUCCESSFUL"]="REVOCATION_SUCCESSFUL"}(s||(s={})),function(e){e["EMPTY_CLIENT"]="EMPTY_CLIENT",e["SET_CLIENT"]="SET_CLIENT",e["SET_CLIENTS"]="SET_CLIENTS",e["SET_CLIENTS_PAGINATION"]="SET_CLIENTS_PAGINATION",e["SET_REVOCATION_SUCCESSFUL"]="SET_REVOCATION_SUCCESSFUL"}(l||(l={})),function(e){e["GET_APPLICATION_CONFIG"]="GET_APPLICATION_CONFIG",e["GET_APPLICATION_STATS"]="GET_APPLICATION_STATS",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG",e["UPDATE_APPLICATION_LANGUAGE"]="UPDATE_APPLICATION_LANGUAGE"}(c||(c={})),function(e){e["APP_CONFIG"]="APP_CONFIG",e["APP_LOADING"]="APP_LOADING",e["APP_STATS"]="APP_STATS",e["ERROR_MESSAGES"]="ERROR_MESSAGES",e["LANGUAGE"]="LANGUAGE",e["LOCALE"]="LOCALE"}(u||(u={})),function(e){e["EMPTY_ERROR_MESSAGES"]="EMPTY_ERROR_MESSAGES",e["SET_ERROR_MESSAGES"]="SET_ERROR_MESSAGES",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG",e["UPDATE_APPLICATION_LOADING"]="UPDATE_APPLICATION_LOADING",e["UPDATE_APPLICATION_STATS"]="UPDATE_APPLICATION_STATS",e["UPDATE_LANG"]="UPDATE_LANG"}(m||(m={})),function(e){e["GET_SPORTS"]="GET_SPORTS",e["UPDATE_SPORTS"]="UPDATE_SPORTS"}(d||(d={})),function(e){e["SPORTS"]="SPORTS"}(E||(E={})),function(e){e["SET_SPORTS"]="SET_SPORTS"}(S||(S={})),function(e){e["GET_USER_STATS"]="GET_USER_STATS"}(_||(_={})),function(e){e["USER_STATS"]="USER_STATS"}(T||(T={})),function(e){e["EMPTY_USER_STATS"]="EMPTY_USER_STATS",e["UPDATE_USER_STATS"]="UPDATE_USER_STATS"}(p||(p={})),function(e){e["EMPTY_USER"]="EMPTY_USER",e["EMPTY_USERS"]="EMPTY_USERS",e["GET_USER"]="GET_USER",e["GET_USERS"]="GET_USERS",e["UPDATE_USER"]="UPDATE_USER",e["DELETE_USER_ACCOUNT"]="DELETE_USER_ACCOUNT"}(A||(A={})),function(e){e["USER"]="USER",e["USERS"]="USERS",e["USERS_IS_SUCCESS"]="USERS_IS_SUCCESS",e["USERS_LOADING"]="USERS_LOADING",e["USERS_PAGINATION"]="USERS_PAGINATION"}(O||(O={})),function(e){e["UPDATE_USER"]="UPDATE_USER",e["UPDATE_USER_IN_USERS"]="UPDATE_USER_IN_USERS",e["UPDATE_USERS"]="UPDATE_USERS",e["UPDATE_USERS_LOADING"]="UPDATE_USERS_LOADING",e["UPDATE_USERS_PAGINATION"]="UPDATE_USERS_PAGINATION",e["UPDATE_IS_SUCCESS"]="UPDATE_IS_SUCCESS"}(z||(z={}));var I=n(52);const R={ACTIONS:c,GETTERS:u,MUTATIONS:m},g={ACTIONS:d,GETTERS:E,MUTATIONS:S},N={ACTIONS:_,GETTERS:T,MUTATIONS:p},U={ACTIONS:r,GETTERS:a,MUTATIONS:o},h={ACTIONS:i,GETTERS:s,MUTATIONS:l},C={ACTIONS:A,GETTERS:O,MUTATIONS:z},w={ACTIONS:I.tW,GETTERS:I.JP,MUTATIONS:I.CW}},2894:function(e,t,n){"use strict";n.d(t,{Z:function(){return me}});var r=n(3907),a=(n(7658),n(5167)),o=n(594),i=n(8566),s=n(2024);const l=o.Z.create({baseURL:(0,s.k)()});l.interceptors.request.use((e=>{const t=new AbortController;e.signal=t.signal;const n=(0,i.a)(e);return i.j.set(n,t),e}),(e=>Promise.reject(e))),l.interceptors.response.use((e=>((0,i.a)(e.config),e)),(e=>("canceled"!==e.message&&(0,i.a)(e.response.config),Promise.reject(e))));var c=l,u=n(3654),m=n(5801);const d=(e,t)=>{e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z["delete"](`users/${t.username}`).then((n=>{204===n.status?t.fromAdmin?u.Z.push("/admin/users"):e.dispatch(m.YN.ACTIONS.LOGOUT).then((()=>u.Z.push("/"))):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},E={[m.RT.ACTIONS.EMPTY_USER](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USER,{})},[m.RT.ACTIONS.EMPTY_USERS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(m.RT.MUTATIONS.UPDATE_USERS_PAGINATION,{})},[m.RT.ACTIONS.GET_USER](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),a.Z.get(`users/${t}`).then((t=>{"success"===t.data.status?e.commit(m.RT.MUTATIONS.UPDATE_USER,t.data.data.users[0]):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.GET_USERS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),a.Z.get("users",{params:t}).then((t=>{"success"===t.data.status?(e.commit(m.RT.MUTATIONS.UPDATE_USERS,t.data.data.users),e.commit(m.RT.MUTATIONS.UPDATE_USERS_PAGINATION,t.data.pagination)):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.UPDATE_USER](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1);const n={};void 0!==t.admin&&(n.admin=t.admin),t.resetPassword&&(n.reset_password=t.resetPassword),t.activate&&(n.activate=t.activate),void 0!==t.new_email&&(n.new_email=t.new_email),a.Z.patch(`users/${t.username}`,n).then((n=>{"success"===n.data.status?(e.commit(m.RT.MUTATIONS.UPDATE_USER_IN_USERS,n.data.data.users[0]),(t.resetPassword||t.new_email)&&e.commit(m.RT.MUTATIONS.UPDATE_IS_SUCCESS,!0),(t.activate||t.new_email)&&e.commit(m.RT.MUTATIONS.UPDATE_USER,n.data.data.users[0])):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.DELETE_USER_ACCOUNT](e,t){d(e,{username:t.username,fromAdmin:!0})}},S=e=>{localStorage.removeItem("authToken"),e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.gu.MUTATIONS.EMPTY_USER_STATS),e.commit(m.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN),e.commit(m.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(m.aX.MUTATIONS.EMPTY_WORKOUTS),e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),u.Z.push("/login")},_={[m.YN.ACTIONS.CHECK_AUTH_USER](e){window.localStorage.authToken&&!e.getters[m.YN.GETTERS.IS_AUTHENTICATED]&&(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,window.localStorage.authToken),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE)),!window.localStorage.authToken&&e.getters[m.YN.GETTERS.IS_AUTHENTICATED]&&S(e)},[m.YN.ACTIONS.CONFIRM_ACCOUNT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/account/confirm",{token:t.token}).then((t=>{if("success"===t.data.status){const n=t.data.auth_token;window.localStorage.setItem("authToken",n),e.commit(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,n),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/")))}else(0,s.S)(e,null)})).catch((t=>{(0,s.S)(e,t)}))},[m.YN.ACTIONS.CONFIRM_EMAIL](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),c.post("/auth/email/update",{token:t.token}).then((n=>{"success"===n.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0),t.refreshUser&&e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile/edit/account"))),u.Z.push("/profile/edit/account")):(0,s.S)(e,null)})).catch((t=>{(0,s.S)(e,t)}))},[m.YN.ACTIONS.GET_USER_PROFILE](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("auth/profile").then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),t.data.data.language&&e.dispatch(m.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,t.data.data.language),e.dispatch(m.O8.ACTIONS.GET_SPORTS)):((0,s.S)(e,null),S(e))})).catch((t=>{"canceled"!==t.message&&((0,s.S)(e,t),S(e))}))},[m.YN.ACTIONS.LOGIN_OR_REGISTER](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),c.post(`/auth/${t.actionType}`,t.formData).then((n=>{if("success"===n.data.status)if("login"===t.actionType){const r=n.data.auth_token;window.localStorage.setItem("authToken",r),e.commit(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,r),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("string"===typeof t.redirectUrl?t.redirectUrl:"/")))}else u.Z.push("/login").then((()=>e.commit(m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!0)));else(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.YN.ACTIONS.LOGOUT](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.post("auth/logout").then((t=>{"success"===t.data.status?S(e):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.YN.ACTIONS.UPDATE_USER_PROFILE](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit",t).then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),u.Z.push("/profile")):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.UPDATE_USER_ACCOUNT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),a.Z.patch("auth/profile/edit/account",t).then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0)):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.UPDATE_USER_PREFERENCES](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit/preferences",t).then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.dispatch(m.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,t.data.data.language).then((()=>u.Z.push("/profile/preferences")))):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z["delete"](`auth/profile/reset/sports/${t}`).then((t=>{204===t.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,s.S)(e,null)})).catch((t=>{(0,s.S)(e,t),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[m.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit/sports",t).then((t=>{"success"===t.data.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,s.S)(e,null)})).catch((t=>{(0,s.S)(e,t),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[m.YN.ACTIONS.UPDATE_USER_PICTURE](e,t){if(e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),!t.picture)throw new Error("No file part");const n=new FormData;n.append("file",t.picture),a.Z.post("auth/picture",n,{headers:{"content-type":"multipart/form-data"}}).then((t=>{"success"===t.data.status?e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile"))):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.DELETE_ACCOUNT](e,t){d(e,t)},[m.YN.ACTIONS.DELETE_PICTURE](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z["delete"]("auth/picture").then((t=>{204===t.status?e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile"))):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.SEND_PASSWORD_RESET_REQUEST](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/password/reset-request",t).then((t=>{"success"===t.data.status?u.Z.push("/password-reset/sent"):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.YN.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/account/resend-confirmation",t).then((t=>{"success"===t.data.status?u.Z.push("/account-confirmation/email-sent"):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.YN.ACTIONS.RESET_USER_PASSWORD](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/password/update",t).then((t=>{"success"===t.data.status?u.Z.push("/password-reset/password-updated"):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))}},T={[m.YN.GETTERS.AUTH_TOKEN]:e=>e.authToken,[m.YN.GETTERS.AUTH_USER_PROFILE]:e=>e.authUserProfile,[m.YN.GETTERS.IS_AUTHENTICATED]:e=>null!==e.authToken,[m.YN.GETTERS.IS_ADMIN]:e=>e.authUserProfile&&e.authUserProfile.admin,[m.YN.GETTERS.IS_REGISTRATION_SUCCESS]:e=>e.isRegistrationSuccess,[m.YN.GETTERS.IS_SUCCESS]:e=>e.isSuccess,[m.YN.GETTERS.USER_LOADING]:e=>e.loading},p={[m.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN](e){e.authToken=null,e.authUserProfile={}},[m.YN.MUTATIONS.UPDATE_AUTH_TOKEN](e,t){e.authToken=t},[m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE](e,t){e.authUserProfile=t},[m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS](e,t){e.isRegistrationSuccess=t},[m.YN.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t},[m.YN.MUTATIONS.UPDATE_USER_LOADING](e,t){e.loading=t}},A={authToken:null,authUserProfile:{},isSuccess:!1,isRegistrationSuccess:!1,loading:!1},O={state:A,actions:_,getters:T,mutations:p};var z=O;const I=(e,t)=>{e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get(t).then((t=>{"success"===t.data.status?e.commit(m.Km.MUTATIONS.SET_CLIENT,t.data.data.client):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},R={[m.Km.ACTIONS.AUTHORIZE_CLIENT](e,t){e.commit(m.SY.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),a.Z.post("oauth/authorize",n,{headers:{"Content-Type":"multipart/form-data"}}).then((t=>{200==t.status&&t.data.redirect_url?window.location.href=t.data.redirect_url:(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.Km.ACTIONS.CREATE_CLIENT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.post("oauth/apps",t).then((t=>{"created"===t.data.status?(e.commit(m.Km.MUTATIONS.SET_CLIENT,t.data.data.client),u.Z.push(`/profile/apps/${t.data.data.client.id}/created`)):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.Km.ACTIONS.DELETE_CLIENT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z["delete"](`oauth/apps/${t}`).then((t=>{204===t.status?e.dispatch(m.Km.ACTIONS.GET_CLIENTS).then((()=>u.Z.push("/profile/apps"))):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.Km.ACTIONS.GET_CLIENT_BY_CLIENT_ID](e,t){I(e,`oauth/apps/${t}`)},[m.Km.ACTIONS.GET_CLIENT_BY_ID](e,t){I(e,`oauth/apps/${t}/by_id`)},[m.Km.ACTIONS.GET_CLIENTS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("oauth/apps",{params:t}).then((t=>{"success"===t.data.status?(e.commit(m.Km.MUTATIONS.SET_CLIENTS,t.data.data.clients),e.commit(m.Km.MUTATIONS.SET_CLIENTS_PAGINATION,t.data.pagination)):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.Km.ACTIONS.REVOKE_ALL_TOKENS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1),a.Z.post(`oauth/apps/${t}/revoke`).then((t=>{"success"===t.data.status?e.commit(m.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!0):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))}},g={[m.Km.GETTERS.CLIENT]:e=>e.client,[m.Km.GETTERS.CLIENTS]:e=>e.clients,[m.Km.GETTERS.CLIENTS_PAGINATION]:e=>e.pagination,[m.Km.GETTERS.REVOCATION_SUCCESSFUL]:e=>e.revocationSuccessful},N={[m.Km.MUTATIONS.SET_CLIENT](e,t){e.client=t},[m.Km.MUTATIONS.EMPTY_CLIENT](e){e.client={}},[m.Km.MUTATIONS.SET_CLIENTS](e,t){e.clients=t},[m.Km.MUTATIONS.SET_CLIENTS_PAGINATION](e,t){e.pagination=t},[m.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL](e,t){e.revocationSuccessful=t}},U={client:{},clients:[],pagination:{},revocationSuccessful:!1},h={state:U,actions:R,getters:g,mutations:N};var C=h,w=n(2540);const{locale:D}=w.Z.global,v={[m.SY.ACTIONS.GET_APPLICATION_CONFIG](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!0),a.Z.get("config").then((t=>{"success"===t.data.status?e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!1)))},[m.SY.ACTIONS.GET_APPLICATION_STATS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("stats/all").then((t=>{"success"===t.data.status?e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_STATS,t.data.data):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.SY.ACTIONS.UPDATE_APPLICATION_CONFIG](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.patch("config",t).then((t=>{"success"===t.data.status?(e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data),u.Z.push("/admin/application")):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE](e,t){document.querySelector("html")?.setAttribute("lang",t),e.commit(m.SY.MUTATIONS.UPDATE_LANG,t),D.value=t}},f={[m.SY.GETTERS.APP_CONFIG]:e=>e.application.config,[m.SY.GETTERS.APP_LOADING]:e=>e.appLoading,[m.SY.GETTERS.APP_STATS]:e=>e.application.statistics,[m.SY.GETTERS.ERROR_MESSAGES]:e=>e.errorMessages,[m.SY.GETTERS.LANGUAGE]:e=>e.language,[m.SY.GETTERS.LOCALE]:e=>e.locale};var P=n(6287);const k={[m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES](e){e.errorMessages=null},[m.SY.MUTATIONS.SET_ERROR_MESSAGES](e,t){e.errorMessages=t},[m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG](e,t){e.application.config=t},[m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING](e,t){e.appLoading=t},[m.SY.MUTATIONS.UPDATE_APPLICATION_STATS](e,t){e.application.statistics=t},[m.SY.MUTATIONS.UPDATE_LANG](e,t){e.language=t,e.locale=P.v1[t]}};var L=n(5826);const M={root:!0,language:"en",locale:L.Z,errorMessages:null,application:{statistics:{sports:0,uploads_dir_size:0,users:0,workouts:0}},appLoading:!1},b={[m.O8.ACTIONS.GET_SPORTS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("sports").then((t=>{"success"===t.data.status?(e.commit(m.O8.MUTATIONS.SET_SPORTS,t.data.data.sports),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.O8.ACTIONS.UPDATE_SPORTS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.patch(`sports/${t.id}`,{is_active:t.isActive}).then((t=>{"success"===t.data.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))}},y={[m.O8.GETTERS.SPORTS]:e=>e.sports},G={[m.O8.MUTATIONS.SET_SPORTS](e,t){e.sports=t}},F={sports:[]},W={state:F,actions:b,getters:y,mutations:G};var B=W;const K={[m.gu.ACTIONS.GET_USER_STATS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get(`stats/${t.username}/${t.filterType}`,{params:t.params}).then((t=>{"success"===t.data.status?e.commit(m.gu.MUTATIONS.UPDATE_USER_STATS,t.data.data.statistics):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))}},Y={[m.gu.GETTERS.USER_STATS]:e=>e.statistics},x={[m.gu.MUTATIONS.UPDATE_USER_STATS](e,t){e.statistics=t},[m.gu.MUTATIONS.EMPTY_USER_STATS](e){e.statistics={}}},H={statistics:{}},Z={state:H,actions:K,getters:Y,mutations:x};var $=Z;const V={[m.RT.GETTERS.USER]:e=>e.user,[m.RT.GETTERS.USERS]:e=>e.users,[m.RT.GETTERS.USERS_IS_SUCCESS]:e=>e.isSuccess,[m.RT.GETTERS.USERS_LOADING]:e=>e.loading,[m.RT.GETTERS.USERS_PAGINATION]:e=>e.pagination},q={[m.RT.MUTATIONS.UPDATE_USER](e,t){e.user=t},[m.RT.MUTATIONS.UPDATE_USER_IN_USERS](e,t){e.users=e.users.map((e=>e.username===t.username?t:e))},[m.RT.MUTATIONS.UPDATE_USERS](e,t){e.users=t},[m.RT.MUTATIONS.UPDATE_USERS_LOADING](e,t){e.loading=t},[m.RT.MUTATIONS.UPDATE_USERS_PAGINATION](e,t){e.pagination=t},[m.RT.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t}},j={user:{},users:[],loading:!1,isSuccess:!1,pagination:{}},X={state:j,actions:E,getters:V,mutations:q};var J=X,Q=n(52);const ee=(e,t,n)=>{e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("workouts",{params:t}).then((t=>{"success"===t.data.status?(e.commit(m.aX.MUTATIONS[n],t.data.data.workouts),n===Q.CW.SET_USER_WORKOUTS&&e.commit(m.aX.MUTATIONS.SET_WORKOUTS_PAGINATION,t.data.pagination)):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},te={[m.aX.ACTIONS.GET_CALENDAR_WORKOUTS](e,t){e.commit(m.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS),ee(e,t,Q.CW.SET_CALENDAR_WORKOUTS)},[m.aX.ACTIONS.GET_USER_WORKOUTS](e,t){ee(e,t,Q.CW.SET_USER_WORKOUTS)},[m.aX.ACTIONS.GET_TIMELINE_WORKOUTS](e,t){ee(e,t,Q.CW.SET_TIMELINE_WORKOUTS)},[m.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](e,t){ee(e,t,Q.CW.ADD_TIMELINE_WORKOUTS)},[m.aX.ACTIONS.GET_WORKOUT_DATA](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0);const n=t.segmentId?`/segment/${t.segmentId}`:"";a.Z.get(`workouts/${t.workoutId}`).then((r=>{const o=r.data.data.workouts[0];if("success"===r.data.status){if(t.segmentId&&(0===o.segments.length||!o.segments[+t.segmentId-1]))throw new Error("WORKOUT_NOT_FOUND");e.commit(m.aX.MUTATIONS.SET_WORKOUT,r.data.data.workouts[0]),r.data.data.workouts[0].with_gpx&&(a.Z.get(`workouts/${t.workoutId}/chart_data${n}`).then((t=>{"success"===t.data.status&&e.commit(m.aX.MUTATIONS.SET_WORKOUT_CHART_DATA,t.data.data.chart_data)})),a.Z.get(`workouts/${t.workoutId}/gpx${n}`).then((t=>{"success"===t.data.status&&e.commit(m.aX.MUTATIONS.SET_WORKOUT_GPX,t.data.data.gpx)})))}else e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),(0,s.S)(e,null)})).catch((t=>{e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),(0,s.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.DELETE_WORKOUT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z["delete"](`workouts/${t.workoutId}`).then((()=>{e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE),u.Z.push("/")})).catch((t=>{(0,s.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.EDIT_WORKOUT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z.patch(`workouts/${t.workoutId}`,t.data).then((()=>{e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE),e.dispatch(m.aX.ACTIONS.GET_WORKOUT_DATA,{workoutId:t.workoutId}).then((()=>{u.Z.push({name:"Workout",params:{workoutId:t.workoutId}})}))})).catch((t=>{(0,s.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.ADD_WORKOUT](e,t){if(e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),!t.file)throw new Error("No file part");const n=t.notes.replace(/"/g,'\\"'),r=new FormData;r.append("file",t.file),r.append("data",`{"sport_id": ${t.sport_id}, "notes": "${n}"}`),a.Z.post("workouts",r,{headers:{"content-type":"multipart/form-data"}}).then((t=>{if("created"===t.data.status){e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE);const n=t.data.data.workouts[0];u.Z.push(1===t.data.data.workouts.length?`/workouts/${n.id}`:"/")}})).catch((t=>{(0,s.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z.post("workouts/no_gpx",t).then((t=>{if("created"===t.data.status){e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE);const n=t.data.data.workouts[0];u.Z.push(`/workouts/${n.id}`)}})).catch((t=>{(0,s.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))}},ne={[m.aX.GETTERS.CALENDAR_WORKOUTS]:e=>e.calendar_workouts,[m.aX.GETTERS.TIMELINE_WORKOUTS]:e=>e.timeline_workouts,[m.aX.GETTERS.USER_WORKOUTS]:e=>e.user_workouts,[m.aX.GETTERS.WORKOUT_DATA]:e=>e.workoutData,[m.aX.GETTERS.WORKOUTS_PAGINATION]:e=>e.pagination},re={[m.aX.MUTATIONS.ADD_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=e.timeline_workouts.concat(t)},[m.aX.MUTATIONS.SET_CALENDAR_WORKOUTS](e,t){e.calendar_workouts=t},[m.aX.MUTATIONS.SET_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=t},[m.aX.MUTATIONS.SET_USER_WORKOUTS](e,t){e.user_workouts=t},[m.aX.MUTATIONS.SET_WORKOUTS_PAGINATION](e,t){e.pagination=t},[m.aX.MUTATIONS.SET_WORKOUT](e,t){e.workoutData.workout=t},[m.aX.MUTATIONS.SET_WORKOUT_CHART_DATA](e,t){e.workoutData.chartData=t},[m.aX.MUTATIONS.SET_WORKOUT_GPX](e,t){e.workoutData.gpx=t},[m.aX.MUTATIONS.SET_WORKOUT_LOADING](e,t){e.workoutData.loading=t},[m.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](e){e.calendar_workouts=[]},[m.aX.MUTATIONS.EMPTY_WORKOUTS](e){e.calendar_workouts=[],e.user_workouts=[],e.timeline_workouts=[]},[m.aX.MUTATIONS.EMPTY_WORKOUT](e){e.workoutData={gpx:"",loading:!1,workout:{},chartData:[]}}},ae={calendar_workouts:[],timeline_workouts:[],pagination:{},user_workouts:[],workoutData:{gpx:"",loading:!1,workout:{},chartData:[]}},oe={state:ae,actions:te,getters:ne,mutations:re};var ie=oe;const se={authUserModule:z,oAuthModule:C,sportsModule:B,statsModule:$,usersModule:J,workoutsModule:ie},le={state:M,actions:v,getters:f,mutations:k,modules:se};var ce=le;const ue=(0,r.MT)(ce);var me=ue},52:function(e,t,n){"use strict";var r,a,o;n.d(t,{CW:function(){return o},JP:function(){return a},tW:function(){return r}}),function(e){e["ADD_WORKOUT"]="ADD_WORKOUT",e["ADD_WORKOUT_WITHOUT_GPX"]="ADD_WORKOUT_WITHOUT_GPX",e["DELETE_WORKOUT"]="DELETE_WORKOUT",e["EDIT_WORKOUT"]="EDIT_WORKOUT",e["GET_CALENDAR_WORKOUTS"]="GET_CALENDAR_WORKOUTS",e["GET_USER_WORKOUTS"]="GET_USER_WORKOUTS",e["GET_TIMELINE_WORKOUTS"]="GET_TIMELINE_WORKOUTS",e["GET_MORE_TIMELINE_WORKOUTS"]="GET_MORE_TIMELINE_WORKOUTS",e["GET_WORKOUT_DATA"]="GET_WORKOUT_DATA"}(r||(r={})),function(e){e["CALENDAR_WORKOUTS"]="CALENDAR_WORKOUTS",e["TIMELINE_WORKOUTS"]="TIMELINE_WORKOUTS",e["USER_WORKOUTS"]="USER_WORKOUTS",e["WORKOUT_DATA"]="WORKOUT_DATA",e["WORKOUTS_PAGINATION"]="WORKOUTS_PAGINATION"}(a||(a={})),function(e){e["ADD_TIMELINE_WORKOUTS"]="ADD_TIMELINE_WORKOUTS",e["EMPTY_WORKOUTS"]="EMPTY_WORKOUTS",e["EMPTY_CALENDAR_WORKOUTS"]="EMPTY_CALENDAR_WORKOUTS",e["EMPTY_WORKOUT"]="EMPTY_WORKOUT",e["SET_CALENDAR_WORKOUTS"]="SET_CALENDAR_WORKOUTS",e["SET_TIMELINE_WORKOUTS"]="SET_TIMELINE_WORKOUTS",e["SET_USER_WORKOUTS"]="SET_USER_WORKOUTS",e["SET_WORKOUT"]="SET_WORKOUT",e["SET_WORKOUT_GPX"]="SET_WORKOUT_GPX",e["SET_WORKOUT_CHART_DATA"]="SET_WORKOUT_CHART_DATA",e["SET_WORKOUT_LOADING"]="SET_WORKOUT_LOADING",e["SET_WORKOUTS_PAGINATION"]="SET_WORKOUTS_PAGINATION"}(o||(o={}))},9917:function(e,t,n){"use strict";n.d(t,{o:function(){return a}});var r=n(3907);function a(){return(0,r.oR)()}},2766:function(e,t,n){"use strict";n.d(t,{Hf:function(){return a},Ne:function(){return c},fS:function(){return r},lM:function(){return m},pm:function(){return l},z_:function(){return i}});const r=["asc","desc"],a=1,o=10,i=(e,t)=>e&&"string"===typeof e&&+e>0?+e:t,s=(e,t,n)=>e&&"string"===typeof e&&t.includes(e)?e:n,l=(e,t,n,l)=>{const c=l||{},u=c.defaultSort||"asc",m={};return m.page=i(e.page,a),m.per_page=i(e.per_page,o),m.order=s(e.order,r,u),m.order_by=s(e.order_by,t,n),"string"===typeof e.q?m.q=e.q:delete m.q,m},c=["from","to","ave_speed_from","ave_speed_to","max_speed_from","max_speed_to","distance_from","distance_to","duration_from","duration_to","sport_id"],u=(e,t=1)=>Array.from({length:e-t+1},((e,n)=>t+n)),m=(e,t)=>{if(e<0)return[];if(e<9)return u(e);let n=[1,2];return t<4?n=n.concat([3,4,5]):t<6?n=n.concat(u(t+2,3)):(n=n.concat(["..."]),t=e-2&&n[n.length-1]{switch(e){case"week":return(0,r.Z)(t,{weekStartsOn:n?1:0});case"year":return(0,a.Z)(t);case"month":return(0,o.Z)(t);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},p=(e,t)=>{switch(e){case"week":return(0,i.Z)(t,7);case"year":return(0,s.Z)(t,1);case"month":return(0,l.Z)(t,1);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},A=(e,t)=>(0,d.utcToZonedTime)(new Date(e),t),O=(e,t)=>{const n=(0,o.Z)(e),a=(0,c.Z)(e),i=t?1:0;return{start:(0,r.Z)(n,{weekStartsOn:i}),end:(0,u.Z)(a,{weekStartsOn:i})}},z=(e,t=null,n=null)=>(t||(t="yyyy/MM/dd"),t=g(t,_.value),n||(n="HH:mm"),{workout_date:(0,m.Z)(e,t,{locale:S.v1[_.value]}),workout_time:(0,m.Z)(e,n)}),I=["MM/dd/yyyy","dd/MM/yyyy","yyyy-MM-dd","date_string"],R={de:"do MMM yyyy",en:"MMM. do, yyyy",fr:"d MMM yyyy",it:"d MMM yyyy",nl:"d MMM yyyy"},g=(e,t)=>"date_string"===e?R[t]:e,N=(e,t,n,r=!0,a=null)=>(a||(a=_.value),(0,m.Z)(A(e,t),`${g(n,a)}${r?" HH:mm":""}`,{locale:S.v1[a]})),U=(e,t,n=null)=>{const r=n||_.value,a=[];return I.map((n=>{const o=g(n,r);a.push({label:`${o} - ${N(e,t,o,!1,r)}`,value:n})})),a}},8966:function(e,t,n){"use strict";n.d(t,{Z:function(){return a},j:function(){return o}});const r=["bytes","KB","MB","GB","TB"],a=(e,t=!0)=>{const n=Math.floor(Math.log(e)/Math.log(1024));if(!e)return t?"0 bytes":{size:"0",suffix:"bytes"};const a=(e/Math.pow(1024,n)).toFixed(1),o=r[n];return t?`${a}${o}`:{size:a,suffix:o}},o=e=>{const t=e/1048576;return+t.toFixed(2)}},2024:function(e,t,n){"use strict";n.d(t,{S:function(){return o},k:function(){return a}});var r=n(5801);const a=()=>"/api/",o=(e,t,n="UNKNOWN")=>{if(t&&"canceled"===t.message)return;const a=t?.response&&t.response.data?t.response.data:null;if(401===t?.response?.status&&"invalid_token"===a?.error)return localStorage.removeItem("authToken"),void e.dispatch(r.YN.ACTIONS.CHECK_AUTH_USER);const o=t?t.response?413===t.response.status?"file size is greater than the allowed size":a?.message?a.message:n:t.message?t.message:n:n;e.commit(r.SY.MUTATIONS.SET_ERROR_MESSAGES,o.includes("\n")?o.split("\n").filter((e=>""!==e)).map((e=>`api.ERROR.${e}`)):`api.ERROR.${o}`)}},6287:function(e,t,n){"use strict";n.d(t,{mT:function(){return d},v1:function(){return c},zK:function(){return u}});var r=n(879),a=n(5826),o=n(5830),i=n(8160),s=n(4638),l=n(2540);const c={de:r.Z,en:a.Z,fr:o.Z,it:i.Z,nl:s.Z},u={de:"Deutsch",en:"English",fr:"Français",it:"Italiano",nl:"Nederlands"},{availableLocales:m}=l.Z.global,d=m.map((e=>({label:u[e],value:e})))},631:function(e,t,n){"use strict";n.d(t,{CM:function(){return l},PA:function(){return s},Yx:function(){return a},Zo:function(){return r},xH:function(){return i}});const r={"Cycling (Sport)":"#4c9792","Cycling (Transport)":"#88af98","Cycling (Virtual)":"#64a360",Hiking:"#bb757c","Mountain Biking":"#d4b371","Mountain Biking (Electric)":"#fc9d6f",Mountaineering:"#48b3b7",Rowing:"#fcce72",Running:"#835b83","Skiing (Alpine)":"#67a4bd","Skiing (Cross Country)":"#9498d0",Snowshoes:"#5780a8",Trail:"#09a98a",Walking:"#838383"},a=e=>{const t={};return e.map((e=>t[e.id]=e.color?e.color:r[e.label])),t},o=(e,t)=>{const n=e.translatedLabel.toLowerCase(),r=t.translatedLabel.toLowerCase();return n>r?1:ne.filter((e=>"all"===n||(r.includes(e.id)||e[n]))).map((e=>({...e,translatedLabel:t(`sports.${e.label}.LABEL`)}))).sort(o),s=(e,t)=>t.filter((t=>t.id===e.sport_id)).map((e=>e.label))[0],l=(e,t)=>t.filter((t=>t.id===e.sport_id)).map((e=>e.color))[0]},9318:function(e,t,n){"use strict";n.d(t,{FN:function(){return v},aZ:function(){return D},v1:function(){return w}});n(7658);var r=n(6761),a=n(8148),o=n(9319),i=n(584),s=n(4559),l=n(3703),c=n(876),u=n(7090),m=n(4135),d=n(1593),E=n(7982),S=n(3500),_=n(1640),T=n(2540),p=n(6558),A=n(6287),O=n(631),z=n(3649);const{locale:I}=T.Z.global,R={week:{api:"yyyy-MM-dd",chart:"MM/dd/yyyy"},month:{api:"yyyy-MM",chart:"MM/yyyy"},year:{api:"yyyy",chart:"yyyy"}},g=["average_speed","nb_workouts","total_duration","total_distance","total_ascent","total_descent"],N=(e,t)=>{const n=[];for(let r=(0,p.Nh)(e.duration,e.start,t);r<=e.end;r=(0,p.xA)(e.duration,r))n.push(r);return n},U=(e,t,n=!1)=>{const r={label:e,backgroundColor:[t],data:[]};return n&&(r.type="line",r.borderColor=[t],r.spanGaps=!0),r},h=e=>{const t={average_speed:[],nb_workouts:[],total_distance:[],total_duration:[],total_ascent:[],total_descent:[]};return e.map((e=>{const n=e.color?e.color:O.Zo[e.label];t.average_speed.push(U(e.label,n,!0)),t.nb_workouts.push(U(e.label,n)),t.total_distance.push(U(e.label,n)),t.total_duration.push(U(e.label,n)),t.total_ascent.push(U(e.label,n)),t.total_descent.push(U(e.label,n))})),t},C=(e,t,n)=>{switch(e){case"average_speed":case"total_distance":case"total_ascent":case"total_descent":return(0,z.f3)(["average_speed","total_distance"].includes(e)?"km":"m",t,n);default:case"nb_workouts":case"total_duration":return t}},w=(e,t,n,a,o,i,s)=>{const l=N(e,t),c=R[e.duration],u=n.filter((e=>a.includes(e.id))),m=[],d=h(u),E={};return u.map((e=>E[e.label]=e.id)),l.map((t=>{const n=(0,r.Z)(t,c.api),a=(0,r.Z)(t,"week"===e.duration?(0,p.mh)(s,I.value):c.chart,{locale:A.v1[I.value]});m.push(a),g.map((e=>{d[e].map((t=>{t.data.push(n in o&&E[t.label]in o[n]?C(e,o[n][E[t.label]][e],i):"average_speed"===e?null:0)}))}))})),{labels:m,datasets:d}},D=(e,t,n)=>{const r=n?1:0,d="year"===t?(0,a.Z)((0,o.Z)(e,9)):"week"===t?(0,i.Z)((0,s.Z)(e,2),{weekStartsOn:r}):(0,l.Z)((0,s.Z)(e,11)),E="year"===t?(0,c.Z)(e):"week"===t?(0,u.Z)(e,{weekStartsOn:r}):(0,m.Z)(e);return{duration:t,end:E,start:d}},v=(e,t,n)=>{const{duration:r,start:T,end:p}=e,A=n?1:0;return{duration:r,end:"year"===r?(0,c.Z)(t?(0,o.Z)(p,1):(0,d.Z)(p,1)):"week"===r?(0,u.Z)(t?(0,E.Z)(p,1):(0,S.Z)(p,1),{weekStartsOn:A}):(0,m.Z)(t?(0,s.Z)(p,1):(0,_.Z)(p,1)),start:"year"===r?(0,a.Z)(t?(0,o.Z)(T,1):(0,d.Z)(T,1)):"week"===r?(0,i.Z)(t?(0,E.Z)(T,1):(0,S.Z)(T,1),{weekStartsOn:A}):(0,l.Z)(t?(0,s.Z)(T,1):(0,_.Z)(T,1))}}},3649:function(e,t,n){"use strict";n.d(t,{Dl:function(){return r},Y2:function(){return l},f3:function(){return i},sC:function(){return o},x$:function(){return s}});const r={ft:{unit:"ft",system:"imperial",multiplier:1,defaultTarget:"m"},mi:{unit:"mi",system:"imperial",multiplier:5280,defaultTarget:"km"},m:{unit:"m",system:"metric",multiplier:1,defaultTarget:"ft"},km:{unit:"m",system:"metric",multiplier:1e3,defaultTarget:"mi"}},a={metric:{imperial:3.280839895,metric:1},imperial:{metric:1/3.280839895,imperial:1}},o=(e,t,n,o=3)=>{const i=r[t],s=r[n],l=e*i.multiplier*a[i.system][s.system]/s.multiplier;return null!==o?parseFloat(l.toFixed(o)):l},i=(e,t,n)=>{const a=n?r[e].defaultTarget:e;return n?o(t,e,a,2):t},s=(e,t)=>{const n=t?1.8*e+32:e,r=t?" °F":"°C";return`${0===n?0:Number(n).toFixed(1)}${r}`},l=(e,t)=>{const n=t?2.2369363*e:e,r=t?" mph":"m/s";return`${0===n?0:Number(n).toFixed(1)}${r}`}},3768:function(e,t,n){"use strict";n.d(t,{BN:function(){return o},EX:function(){return a},eR:function(){return i}});n(7658);var r=n(3649);const a=(e,t,n)=>{const a={speed:{label:t("workouts.SPEED"),backgroundColor:["#FFFFFF"],borderColor:["#8884d8"],borderWidth:2,data:[],yAxisID:"ySpeed"},elevation:{label:t("workouts.ELEVATION"),backgroundColor:["#e5e5e5"],borderColor:["#cccccc"],borderWidth:1,fill:!0,data:[],yAxisID:"yElevation"}},o=[],i=[],s=[];return e.map((e=>{o.push(e.distance),i.push(e.duration),a.speed.data.push((0,r.f3)("km",e.speed,n)),a.elevation.data.push((0,r.f3)("m",e.elevation,n)),s.push({latitude:e.latitude,longitude:e.longitude})})),{distance_labels:o,duration_labels:i,datasets:a,coordinates:s}},o=e=>{const t=e.length;if(0===t)return{};const n={};return e.map((e=>{n[e.sport_id]||(n[e.sport_id]={count:0,percentage:0}),n[e.sport_id].count+=1,n[e.sport_id].percentage=n[e.sport_id].count/t})),n},i={order:"desc",order_by:"workout_date"}},2531:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var r=n(6252);const a={class:"card"},o={class:"card-title"},i={class:"card-content"};function s(e,t){return(0,r.wg)(),(0,r.iD)("div",a,[(0,r._)("div",o,[(0,r.WI)(e.$slots,"title")]),(0,r._)("div",i,[(0,r.WI)(e.$slots,"content")])])}var l=n(3744);const c={},u=(0,l.Z)(c,[["render",s]]);var m=u},8626:function(e,t,n){"use strict";n.d(t,{Z:function(){return T}});var r=n(6252),a=n(3577),o=n(2262);const i={class:"table-selects"},s=["value"],l=["value"],c=["value"],u=["value"],m=["value"],d=["value"];var E=(0,r.aZ)({__name:"FilterSelects",props:{order_by:null,query:null,sort:null,message:null},emits:["updateSelect"],setup(e,{emit:t}){const n=e,{order_by:E,query:S,sort:_,message:T}=(0,o.BK)(n),p=[10,25,50,100];function A(e){t("updateSelect",e.target.id,e.target.value)}return(e,t)=>((0,r.wg)(),(0,r.iD)("div",i,[(0,r._)("label",null,[(0,r.Uk)((0,a.zw)(e.$t("common.SELECTS.ORDER_BY.LABEL"))+": ",1),(0,r._)("select",{name:"order_by",id:"order_by",value:(0,o.SU)(S).order_by,onChange:A},[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,o.SU)(E),(t=>((0,r.wg)(),(0,r.iD)("option",{value:t,key:t},(0,a.zw)(e.$t(`${(0,o.SU)(T)}.${t.toUpperCase()}`)),9,l)))),128))],40,s)]),(0,r._)("label",null,[(0,r.Uk)((0,a.zw)(e.$t("common.SELECTS.ORDER.LABEL"))+": ",1),(0,r._)("select",{name:"order",id:"order",value:(0,o.SU)(S).order,onChange:A},[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,o.SU)(_),(t=>((0,r.wg)(),(0,r.iD)("option",{value:t,key:t},(0,a.zw)(e.$t(`common.SELECTS.ORDER.${t.toUpperCase()}`)),9,u)))),128))],40,c)]),(0,r._)("label",null,[(0,r.Uk)((0,a.zw)(e.$t("common.SELECTS.PER_PAGE.LABEL"))+": ",1),(0,r._)("select",{name:"per_page",id:"per_page",value:(0,o.SU)(S).per_page,onChange:A},[((0,r.wg)(),(0,r.iD)(r.HY,null,(0,r.Ko)(p,(e=>(0,r._)("option",{value:e,key:e},(0,a.zw)(e),9,d))),64))],40,m)])]))}}),S=n(3744);const _=(0,S.Z)(E,[["__scopeId","data-v-72463173"]]);var T=_},7167:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var r=n(6252);const a={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -51 512 512"},o=(0,r.uE)('',1),i=[o];function s(e,t,n,o,s,l){return(0,r.wg)(),(0,r.iD)("svg",a,i)}var l={name:"ErrorImg"},c=n(3744);const u=(0,c.Z)(l,[["render",s]]);var m=u},8273:function(e,t,n){"use strict";n.d(t,{Z:function(){return S}});var r=n(6252),a=n(2262),o=(n(7658),n(3577));const i={id:"error"},s={class:"error-content"};var l=(0,r.aZ)({__name:"Error",props:{title:null,message:null,buttonText:null,path:{default:"/"}},setup(e){const t=e,{buttonText:n,title:l,message:c,path:u}=(0,a.BK)(t);return(e,t)=>((0,r.wg)(),(0,r.iD)("div",i,[(0,r._)("div",s,[(0,r._)("h1",null,(0,o.zw)((0,a.SU)(l)),1),(0,r._)("p",null,(0,o.zw)((0,a.SU)(c)),1),(0,a.SU)(n)?((0,r.wg)(),(0,r.iD)("button",{key:0,onClick:t[0]||(t[0]=t=>e.$router.push((0,a.SU)(u))),class:"upper"},(0,o.zw)((0,a.SU)(n)),1)):(0,r.kq)("",!0)])]))}}),c=n(3744);const u=(0,c.Z)(l,[["__scopeId","data-v-b60bfa80"]]);var m=u,d=(0,r.aZ)({__name:"NotFound",props:{target:{default:"PAGE"}},setup(e){const t=e,{target:n}=(0,a.BK)(t),o=(0,a.iH)(),i=(0,a.iH)(!1);function s(){o.value=setTimeout((()=>{i.value=!0}),500)}return(0,r.bv)((()=>s())),(0,r.Ah)((()=>{o.value&&clearTimeout(o.value)})),(e,t)=>i.value?((0,r.wg)(),(0,r.j4)(m,{key:0,title:"404",message:e.$t(`error.NOT_FOUND.${(0,a.SU)(n)}`),"button-text":e.$t("common.HOME")},null,8,["message","button-text"])):(0,r.kq)("",!0)}});const E=d;var S=E},5020:function(e,t,n){"use strict";n.d(t,{Z:function(){return T}});var r=n(6252),a=n(3577),o=n(2262),i=n(2766);const s=e=>((0,r.dD)("data-v-3a9a4a65"),e=e(),(0,r.Cn)(),e),l={class:"pagination-center","aria-label":"navigation"},c={class:"pagination"},u=s((()=>(0,r._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1))),m={key:0},d=s((()=>(0,r._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)));var E=(0,r.aZ)({__name:"Pagination",props:{pagination:null,path:null,query:null},setup(e){const t=e,{pagination:n,path:s,query:E}=(0,o.BK)(t);function S(e,t){const n=Object.assign({},E.value);return n.page=t?e+t:e,n}return(e,t)=>{const E=(0,r.up)("router-link");return(0,r.wg)(),(0,r.iD)("nav",l,[(0,r._)("ul",c,[(0,r._)("li",{class:(0,a.C_)(["page-prev",{disabled:!(0,o.SU)(n).has_prev}])},[(0,r.Wm)(E,{class:"page-link",to:{path:(0,o.SU)(s),query:S((0,o.SU)(n).page,-1)},disabled:!(0,o.SU)(n).has_prev},{default:(0,r.w5)((({navigate:t})=>[(0,r.WI)(e.$slots,"default",{onClick:e=>(0,o.SU)(n).has_next?t:null},(()=>[(0,r.Uk)((0,a.zw)(e.$t("api.PAGINATION.PREVIOUS"))+" ",1),u]))])),_:3},8,["to","disabled"])],2),((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,o.SU)(i.lM)((0,o.SU)(n).pages,(0,o.SU)(n).page),(e=>((0,r.wg)(),(0,r.iD)("li",{key:e,class:(0,a.C_)(["page",{active:e===(0,o.SU)(n).page}])},["..."===e?((0,r.wg)(),(0,r.iD)("span",m," ... ")):((0,r.wg)(),(0,r.j4)(E,{key:1,class:"page-link",to:{path:(0,o.SU)(s),query:S(+e)}},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e),1)])),_:2},1032,["to"]))],2)))),128)),(0,r._)("li",{class:(0,a.C_)(["page-next",{disabled:!(0,o.SU)(n).has_next}])},[(0,r.Wm)(E,{class:"page-link",to:{path:(0,o.SU)(s),query:S((0,o.SU)(n).page,1)},disabled:!(0,o.SU)(n).has_next},{default:(0,r.w5)((({navigate:t})=>[(0,r.WI)(e.$slots,"default",{onClick:e=>(0,o.SU)(n).has_next?t:null},(()=>[(0,r.Uk)((0,a.zw)(e.$t("api.PAGINATION.NEXT"))+" ",1),d]))])),_:3},8,["to","disabled"])],2)])])}}}),S=n(3744);const _=(0,S.Z)(E,[["__scopeId","data-v-3a9a4a65"]]);var T=_},8403:function(e,t,n){"use strict";n.d(t,{Z:function(){return v}});var r=n(6252),a=n(2262),o=n(9963),i=n(3577),s=n(4366),l=n(5801),c=n(9917);const u=async e=>{switch(e){case"fr":return await n.e(222).then(n.bind(n,6947));case"de":return await n.e(940).then(n.bind(n,8056));case"it":return await n.e(802).then(n.bind(n,3140));default:return await n.e(261).then(n.bind(n,8288))}},m=async e=>{const t=await n.e(881).then(n.bind(n,410)),r=await u(e),a={graphs:t.default.adjacencyGraphs,dictionary:{...t.default.dictionary,...r.default.dictionary}};s.Mu.setOptions(a)},d=e=>{switch(e){case 2:return"AVERAGE";case 3:return"GOOD";case 4:return"STRONG";default:return"WEAK"}},E={class:"password-strength"},S=["value"],_={key:0,class:"password-strength-details"},T={class:"password-strength-value"},p={key:0,class:"info-box"},A={class:"password-feedback"};var O=(0,r.aZ)({__name:"PasswordStength",props:{password:null},setup(e){const t=e,{password:n}=(0,a.BK)(t),o=(0,c.o)(),u=(0,r.Fl)((()=>o.getters[l.SY.GETTERS.LANGUAGE])),O=(0,r.Fl)((()=>o.getters[l.YN.GETTERS.IS_SUCCESS])),z=(0,a.iH)(0),I=(0,a.iH)(""),R=(0,a.iH)([]),g=(0,a.iH)("0% 100%");function N(e){const t=(0,s.tu)(e);z.value=t.score,I.value=d(z.value),R.value=t.feedback.suggestions,g.value=100*z.value/4+"% 100%"}return(0,r.wF)((async()=>await m(u.value))),(0,r.YP)((()=>u.value),(async e=>{await m(e)})),(0,r.YP)((()=>n.value),(async e=>{O.value?I.value="":N(e)})),(e,t)=>((0,r.wg)(),(0,r.iD)("div",E,[(0,r._)("input",{class:(0,i.C_)(["password-slider",`strength-${z.value}`]),style:(0,i.j5)({backgroundSize:g.value}),type:"range",value:z.value,min:"0",max:"4",step:"1"},null,14,S),I.value?((0,r.wg)(),(0,r.iD)("div",_,[(0,r._)("span",T,(0,i.zw)(e.$t("user.PASSWORD_STRENGTH.LABEL"))+": "+(0,i.zw)(e.$t(`user.PASSWORD_STRENGTH.${I.value}`)),1),R.value.length>0?((0,r.wg)(),(0,r.iD)("div",p,[(0,r._)("ul",A,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(R.value,(t=>((0,r.wg)(),(0,r.iD)("li",{key:t},(0,i.zw)(e.$t(`user.PASSWORD_STRENGTH.SUGGESTIONS.${t}`)),1)))),128))])])):(0,r.kq)("",!0)])):(0,r.kq)("",!0)]))}}),z=n(3744);const I=(0,z.Z)(O,[["__scopeId","data-v-74e71df5"]]);var R=I;const g=e=>((0,r.dD)("data-v-5a126514"),e=e(),(0,r.Cn)(),e),N={class:"password-input"},U=["id","disabled","placeholder","required","type"],h={key:0,class:"form-info"},C=g((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)));var w=(0,r.aZ)({__name:"PasswordInput",props:{checkStrength:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},id:{default:"password"},password:{default:""},placeholder:null,required:{type:Boolean,default:!1}},emits:["updatePassword","passwordError"],setup(e,{emit:t}){const n=e,{checkStrength:s,disabled:l,id:c,password:u,placeholder:m,required:d}=(0,a.BK)(n),E=(0,a.iH)(!1),S=(0,a.iH)("");function _(){E.value=!E.value}function T(e){t("updatePassword",e.target.value)}function p(){t("passwordError")}return(0,r.YP)((()=>u.value),(e=>{""===e&&(S.value="")})),(e,t)=>((0,r.wg)(),(0,r.iD)("div",N,[(0,r.wy)((0,r._)("input",{id:(0,a.SU)(c),disabled:(0,a.SU)(l),placeholder:(0,a.SU)(m),required:(0,a.SU)(d),type:E.value?"text":"password","onUpdate:modelValue":t[0]||(t[0]=e=>S.value=e),minlength:"8",onInput:T,onInvalid:p},null,40,U),[[o.YZ,S.value]]),(0,r._)("div",{class:"show-password",onClick:_},[(0,r.Uk)((0,i.zw)(e.$t(`user.${E.value?"HIDE":"SHOW"}_PASSWORD`))+" ",1),(0,r._)("i",{class:(0,i.C_)(["fa","fa-eye"+(E.value?"-slash":"")]),"aria-hidden":"true"},null,2)]),(0,a.SU)(s)?((0,r.wg)(),(0,r.iD)("div",h,[C,(0,r.Uk)(" "+(0,i.zw)(e.$t("user.PASSWORD_INFO")),1)])):(0,r.kq)("",!0),(0,a.SU)(s)?((0,r.wg)(),(0,r.j4)(R,{key:1,password:S.value},null,8,["password"])):(0,r.kq)("",!0)]))}});const D=(0,z.Z)(w,[["__scopeId","data-v-5a126514"]]);var v=D},2056:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(6252),a=n(3577),o=n(2262),i=n(2024);const s=(0,r._)("div",{class:"map-attribution"},[(0,r._)("span",{class:"map-attribution-text"},"©"),(0,r._)("a",{class:"map-attribution-text",href:"https://www.openstreetmap.org/copyright",target:"_blank",rel:"noopener noreferrer"}," OpenStreetMap ")],-1);var l=(0,r.aZ)({__name:"StaticMap",props:{workout:null,displayHover:{type:Boolean,default:!1}},setup(e){const t=e,{displayHover:n}=(0,o.BK)(t),l=`${(0,i.k)()}workouts/map/${t.workout.map}`;return(e,t)=>((0,r.wg)(),(0,r.iD)("div",{class:(0,a.C_)(["static-map",{"display-hover":(0,o.SU)(n)}])},[(0,o.SU)(n)?((0,r.wg)(),(0,r.iD)("img",{key:0,src:l,alt:""})):((0,r.wg)(),(0,r.iD)("div",{key:1,class:"bg-map-image",style:(0,a.j5)({backgroundImage:`url(${l})`})},null,4)),s],2))}});const c=l;var u=c},436:function(e,t,n){"use strict";n.d(t,{Z:function(){return y}});var r=n(6252),a=n(3577);const o={class:"start-chart"},i={key:0},s={key:1},l={class:"chart-radio"},c=["checked"],u=["checked"],m=["checked"],d={key:0},E=["checked"],S={key:1},_=["checked"],T={key:2},p=["checked"];function A(e,t,n,A,O,z){const I=(0,r.up)("Chart");return(0,r.wg)(),(0,r.iD)("div",o,[e.hideChartIfNoData&&e.emptyStats?((0,r.wg)(),(0,r.iD)("div",i,(0,a.zw)(e.$t("workouts.NO_WORKOUTS")),1)):((0,r.wg)(),(0,r.iD)("div",s,[(0,r._)("div",l,[(0,r._)("label",null,[(0,r._)("input",{type:"radio",name:"total_distance",checked:"total_distance"===e.displayedData,onClick:t[0]||(t[0]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,c),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.DISTANCE")),1)]),(0,r._)("label",null,[(0,r._)("input",{type:"radio",name:"total_duration",checked:"total_duration"===e.displayedData,onClick:t[1]||(t[1]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,u),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.DURATION")),1)]),(0,r._)("label",null,[(0,r._)("input",{type:"radio",name:"nb_workouts",checked:"nb_workouts"===e.displayedData,onClick:t[2]||(t[2]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,m),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.WORKOUT",2)),1)]),e.fullStats?((0,r.wg)(),(0,r.iD)("label",d,[(0,r._)("input",{type:"radio",name:"average_speed",checked:"average_speed"===e.displayedData,onClick:t[3]||(t[3]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,E),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.AVERAGE_SPEED")),1)])):(0,r.kq)("",!0),e.fullStats?((0,r.wg)(),(0,r.iD)("label",S,[(0,r._)("input",{type:"radio",name:"total_ascent",checked:"total_ascent"===e.displayedData,onClick:t[4]||(t[4]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,_),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.ASCENT")),1)])):(0,r.kq)("",!0),e.fullStats?((0,r.wg)(),(0,r.iD)("label",T,[(0,r._)("input",{type:"radio",name:"total_descent",checked:"total_descent"===e.displayedData,onClick:t[5]||(t[5]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,p),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.DESCENT")),1)])):(0,r.kq)("",!0)]),e.labels.length>0?((0,r.wg)(),(0,r.j4)(I,{key:0,datasets:e.datasets,labels:e.labels,displayedData:e.displayedData,displayedSportIds:e.displayedSportIds,fullStats:e.fullStats,useImperialUnits:e.user.imperial_units},null,8,["datasets","labels","displayedData","displayedSportIds","fullStats","useImperialUnits"])):(0,r.kq)("",!0)]))])}var O=n(6761),z=n(2262);const I={class:"chart"};function R(e,t,n,a,o,i){const s=(0,r.up)("BarChart");return(0,r.wg)(),(0,r.iD)("div",I,[(0,r.Wm)(s,(0,r.dG)(e.barChartProps,{class:"bar-chart"}),null,16)])}var g=n(6518),N=n(9150);const U=(e,t=!1)=>{let n="0";t&&(n=String(Math.floor(e/86400)),e%=86400);const r=String(Math.floor(e/3600)).padStart(2,"0");e%=3600;const a=String(Math.floor(e/60)).padStart(2,"0"),o=String(e%60).padStart(2,"0");return t?`${"0"===n?"":`${n}d `}${"00"===r?"":`${r}h `}${a}m ${o}s`:`${"00"===r?"":`${r}:`}${a}:${o}`};var h=n(3649);const C=(e,t,n,r=!0,a="km")=>{const o=n?h.Dl[a].defaultTarget:a;switch(e){case"average_speed":return`${t.toFixed(2)} ${o}/h`;case"total_duration":return U(t,r);case"total_distance":case"total_ascent":case"total_descent":return`${t.toFixed(2)} ${o}`;default:return t.toString()}};var w=(0,r.aZ)({name:"Chart",components:{BarChart:g.vz},props:{datasets:{type:Object,required:!0},labels:{type:Object,required:!0},displayedData:{type:String,required:!0},displayedSportIds:{type:Array,required:!0},fullStats:{type:Boolean,required:!0},useImperialUnits:{type:Boolean,required:!0}},setup(e){const{t:t}=(0,N.QT)();function n(e){return isNaN(e)?0:+e}function a(e,t){return n(e)+n(t)}function o(e){return["total_ascent","total_descent"].includes(e)?"m":"km"}const i=(0,r.Fl)((()=>({labels:e.labels,datasets:JSON.parse(JSON.stringify(e.datasets))}))),s=(0,r.Fl)((()=>({responsive:!0,maintainAspectRatio:!0,animation:!1,layout:{padding:{top:e.fullStats?40:22}},scales:{x:{stacked:!0,grid:{drawOnChartArea:!1}},y:{stacked:"average_speed"!==e.displayedData,grid:{drawOnChartArea:!1},ticks:{maxTicksLimit:6,callback:function(t){return C(e.displayedData,+t,e.useImperialUnits,!1,o(e.displayedData))}},afterFit:function(t){t.width=e.fullStats?90:60}}},plugins:{datalabels:{anchor:"end",align:"end",color:function(t){return"average_speed"===e.displayedData&&t.dataset.backgroundColor?t.dataset.backgroundColor[0]:"#666666"},rotation:function(t){return e.fullStats&&t.chart.chartArea.width<580?310:0},display:function(t){return!(e.fullStats&&t.chart.chartArea.width<300)&&("average_speed"!==e.displayedData||1==e.displayedSportIds.length&&"auto")},formatter:function(t,n){if("average_speed"===e.displayedData)return C(e.displayedData,t,e.useImperialUnits,!1);{const t=n.chart.data.datasets.map((e=>e.data[n.dataIndex])).reduce(((e,t)=>a(e,t)),0);return n.datasetIndex===e.displayedSportIds.length-1&&t>0?C(e.displayedData,t,e.useImperialUnits,!1,o(e.displayedData)):null}}},legend:{display:!1},tooltip:{interaction:{intersect:!0,mode:"index",position:"average_speed"===e.displayedData?"nearest":"average"},filter:function(e){return"0"!==e.formattedValue},callbacks:{label:function(n){let r=t(`sports.${n.dataset.label}.LABEL`)||"";return r&&(r+=": "),null!==n.parsed.y&&(r+=C(e.displayedData,n.parsed.y,e.useImperialUnits,!0,o(e.displayedData))),r},footer:function(n){if("average_speed"===e.displayedData)return"";let r=0;return n.map((e=>{r+=e.parsed.y})),`${t("common.TOTAL")}: `+C(e.displayedData,r,e.useImperialUnits,!0,o(e.displayedData))}}}}}))),{barChartProps:l}=(0,g.xZ)({chartData:i,options:s});return{barChartProps:l}}}),D=n(3744);const v=(0,D.Z)(w,[["render",R]]);var f=v,P=n(5801),k=n(9917),L=n(9318),M=(0,r.aZ)({name:"UserMonthStats",components:{Chart:f},props:{sports:{type:Object,required:!0},user:{type:Object,required:!0},chartParams:{type:Object,required:!0},displayedSportIds:{type:Array,default:()=>[]},fullStats:{type:Boolean,default:!1},hideChartIfNoData:{type:Boolean,default:!1}},setup(e){const t=(0,k.o)(),n=(0,z.iH)("total_distance"),a=(0,r.Fl)((()=>t.getters[P.gu.GETTERS.USER_STATS])),o=(0,r.Fl)((()=>(0,L.v1)(e.chartParams,e.user.weekm,e.sports,e.displayedSportIds,a.value,e.user.imperial_units,e.user.date_format)));function i(n){t.dispatch(P.gu.ACTIONS.GET_USER_STATS,{username:e.user.username,filterType:"by_time",params:n})}function s(e){n.value=e.target.name}function l(e,t){return{from:(0,O.Z)(e.start,"yyyy-MM-dd"),to:(0,O.Z)(e.end,"yyyy-MM-dd"),time:"week"===e.duration?"week"+(t.weekm?"m":""):e.duration}}return(0,r.wF)((()=>i(l(e.chartParams,e.user)))),(0,r.YP)((()=>e.chartParams),(async t=>{i(l(t,e.user))})),{datasets:(0,r.Fl)((()=>o.value.datasets[n.value])),labels:(0,r.Fl)((()=>o.value.labels)),emptyStats:(0,r.Fl)((()=>0===Object.keys(a.value).length)),displayedData:n,updateDisplayData:s}}});const b=(0,D.Z)(M,[["render",A],["__scopeId","data-v-d5e9b348"]]);var y=b},2179:function(e,t,n){"use strict";n.d(t,{Z:function(){return N}});var r=n(6252),a=n(2262),o=n(3577),i=n(6595),s=n(5801),l=n(9917);const c={class:"box user-header"},u={class:"user-details"},m={class:"user-name"},d={class:"user-stats"},E={class:"user-stat"},S={class:"stat-number"},_={class:"stat-label"},T={class:"user-stat"},p={class:"stat-label"},A={class:"user-stat hide-small"},O={class:"stat-number"},z={class:"stat-label"};var I=(0,r.aZ)({__name:"UserHeader",props:{user:null},setup(e){const t=e,{user:n}=(0,a.BK)(t),I=(0,l.o)(),R=(0,r.Fl)((()=>I.getters[s.YN.GETTERS.AUTH_USER_PROFILE]));return(e,t)=>{const s=(0,r.up)("Distance");return(0,r.wg)(),(0,r.iD)("div",c,[(0,r.Wm)(i.Z,{user:(0,a.SU)(n)},null,8,["user"]),(0,r._)("div",u,[(0,r._)("div",m,(0,o.zw)((0,a.SU)(n).username),1),(0,r._)("div",d,[(0,r._)("div",E,[(0,r._)("span",S,(0,o.zw)((0,a.SU)(n).nb_workouts),1),(0,r._)("span",_,(0,o.zw)(e.$t("workouts.WORKOUT",(0,a.SU)(n).nb_workouts)),1)]),(0,r._)("div",T,[(0,r.Wm)(s,{distance:(0,a.SU)(n).total_distance,unitFrom:"km",digits:0,displayUnit:!1,useImperialUnits:(0,a.SU)(R).imperial_units},null,8,["distance","useImperialUnits"]),(0,r._)("span",p,(0,o.zw)((0,a.SU)(R).imperial_units?"miles":"km"),1)]),(0,r._)("div",A,[(0,r._)("span",O,(0,o.zw)((0,a.SU)(n).nb_sports),1),(0,r._)("span",z,(0,o.zw)(e.$t("workouts.SPORT",(0,a.SU)(n).nb_sports)),1)])])])])}}}),R=n(3744);const g=(0,R.Z)(I,[["__scopeId","data-v-20291951"]]);var N=g},1585:function(e,t,n){"use strict";n.d(t,{Z:function(){return w}});n(7658);var r=n(6252),a=n(2262),o=n(3577),i=n(9963),s=n(6761),l=n(5801),c=n(9917),u=n(6558),m=n(6287);const d={id:"user-infos",class:"description-list"},E={key:1,class:"info-box success-message"},S={key:4,class:"email-form form-box"},_={class:"form-items",for:"email"},T={class:"form-items",for:"email"},p={class:"form-buttons"},A={class:"confirm",type:"submit"},O=["onClick"],z={key:5},I={class:"user-bio"},R={key:0,class:"profile-buttons"},g=["onClick"],N={key:1,class:"profile-buttons"};var U=(0,r.aZ)({__name:"UserInfos",props:{user:null,fromAdmin:{type:Boolean,default:!1}},setup(e){const t=e,n=(0,c.o)(),{user:U,fromAdmin:h}=(0,a.BK)(t),C=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.LANGUAGE])),w=(0,r.Fl)((()=>n.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),D=(0,r.Fl)((()=>t.user.created_at?(0,u.p6)(t.user.created_at,w.value.timezone,w.value.date_format):"")),v=(0,r.Fl)((()=>t.user.birth_date?(0,s.Z)(new Date(t.user.birth_date),`${(0,u.mh)(w.value.date_format,C.value)}`,{locale:m.v1[C.value]}):"")),f=(0,r.Fl)((()=>n.getters[l.RT.GETTERS.USERS_IS_SUCCESS])),P=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),k=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.APP_CONFIG])),L=(0,a.iH)(""),M=(0,a.iH)(!1),b=(0,a.iH)(!1),y=(0,a.iH)(""),G=(0,a.iH)("");function F(e){L.value=e,""!==e&&n.commit(l.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1)}function W(e){n.dispatch(l.RT.ACTIONS.DELETE_USER_ACCOUNT,{username:e})}function B(e){G.value="password-reset",n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,resetPassword:!0})}function K(e){n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,activate:!0})}function Y(){Z(),y.value=U.value.email_to_confirm?U.value.email_to_confirm:"",b.value=!0,G.value="email-update"}function x(){y.value="",b.value=!1}function H(e){n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,new_email:y.value})}function Z(){n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(l.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1),G.value=""}return(0,r.Ah)((()=>Z())),(0,r.YP)((()=>f.value),(e=>{e&&(F(""),x())})),(e,t)=>{const n=(0,r.up)("Modal"),s=(0,r.up)("AlertMessage"),l=(0,r.up)("ErrorMessage");return(0,r.wg)(),(0,r.iD)("div",d,[L.value?((0,r.wg)(),(0,r.j4)(n,{key:0,title:e.$t("common.CONFIRMATION"),message:"delete"===L.value?"admin.CONFIRM_USER_ACCOUNT_DELETION":"admin.CONFIRM_USER_PASSWORD_RESET",strongMessage:(0,a.SU)(U).username,onConfirmAction:t[0]||(t[0]=e=>"delete"===L.value?W((0,a.SU)(U).username):B((0,a.SU)(U).username)),onCancelAction:t[1]||(t[1]=e=>F(""))},null,8,["title","message","strongMessage"])):(0,r.kq)("",!0),(0,a.SU)(f)?((0,r.wg)(),(0,r.iD)("div",E,(0,o.zw)(e.$t(`admin.${"password-reset"===G.value?"PASSWORD_RESET":"USER_EMAIL_UPDATE"}_SUCCESSFUL`)),1)):(0,r.kq)("",!0),(0,a.SU)(U).is_active?(0,r.kq)("",!0):((0,r.wg)(),(0,r.j4)(s,{key:2,message:"user.THIS_USER_ACCOUNT_IS_INACTIVE"})),(0,a.SU)(P)?((0,r.wg)(),(0,r.j4)(l,{key:3,message:(0,a.SU)(P)},null,8,["message"])):(0,r.kq)("",!0),b.value?((0,r.wg)(),(0,r.iD)("div",S,[(0,r._)("form",{class:(0,o.C_)({errors:M.value}),onSubmit:t[4]||(t[4]=(0,i.iM)((e=>H((0,a.SU)(U).username)),["prevent"]))},[(0,r._)("label",_,[(0,r.Uk)((0,o.zw)(e.$t("admin.CURRENT_EMAIL"))+" ",1),(0,r.wy)((0,r._)("input",{id:"email",type:"email","onUpdate:modelValue":t[2]||(t[2]=e=>(0,a.SU)(U).email=e),disabled:""},null,512),[[i.nr,(0,a.SU)(U).email]])]),(0,r._)("label",T,[(0,r.Uk)((0,o.zw)(e.$t("admin.NEW_EMAIL"))+"* ",1),(0,r.wy)((0,r._)("input",{id:"new-email",type:"email",required:"","onUpdate:modelValue":t[3]||(t[3]=e=>y.value=e)},null,512),[[i.nr,y.value]])]),(0,r._)("div",p,[(0,r._)("button",A,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,r._)("button",{class:"cancel",onClick:(0,i.iM)(x,["prevent"])},(0,o.zw)(e.$t("buttons.CANCEL")),9,O)])],34)])):((0,r.wg)(),(0,r.iD)("div",z,[(0,r._)("dl",null,[(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(D)),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.FIRST_NAME"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(U).first_name),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.LAST_NAME"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(U).last_name),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.BIRTH_DATE"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(v)),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.LOCATION"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(U).location),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.BIO"))+":",1),(0,r._)("dd",I,(0,o.zw)((0,a.SU)(U).bio),1)]),(0,a.SU)(h)?((0,r.wg)(),(0,r.iD)("div",R,[(0,a.SU)(w).username!==(0,a.SU)(U).username?((0,r.wg)(),(0,r.iD)("button",{key:0,class:"danger",onClick:t[5]||(t[5]=(0,i.iM)((e=>F("delete")),["prevent"]))},(0,o.zw)(e.$t("admin.DELETE_USER")),1)):(0,r.kq)("",!0),(0,a.SU)(U).is_active?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("button",{key:1,onClick:t[6]||(t[6]=(0,i.iM)((e=>K((0,a.SU)(U).username)),["prevent"]))},(0,o.zw)(e.$t("admin.ACTIVATE_USER_ACCOUNT")),1)),(0,a.SU)(w).username!==(0,a.SU)(U).username?((0,r.wg)(),(0,r.iD)("button",{key:2,onClick:(0,i.iM)(Y,["prevent"])},(0,o.zw)(e.$t("admin.UPDATE_USER_EMAIL")),9,g)):(0,r.kq)("",!0),(0,a.SU)(w).username!==(0,a.SU)(U).username&&(0,a.SU)(k).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("button",{key:3,onClick:t[7]||(t[7]=(0,i.iM)((e=>F("reset")),["prevent"]))},(0,o.zw)(e.$t("admin.RESET_USER_PASSWORD")),1)):(0,r.kq)("",!0),(0,r._)("button",{onClick:t[8]||(t[8]=t=>e.$router.go(-1))},(0,o.zw)(e.$t("buttons.BACK")),1)])):((0,r.wg)(),(0,r.iD)("div",N,[(0,r._)("button",{onClick:t[9]||(t[9]=t=>e.$router.push("/profile/edit"))},(0,o.zw)(e.$t("user.PROFILE.EDIT")),1),(0,r._)("button",{onClick:t[10]||(t[10]=t=>e.$router.push("/"))},(0,o.zw)(e.$t("common.HOME")),1)]))]))])}}}),h=n(3744);const C=(0,h.Z)(U,[["__scopeId","data-v-217519af"]]);var w=C},2411:function(e,t,n){"use strict";n.d(t,{Z:function(){return v}});var r=n(6252),a=n(3577),o=n(2262),i=n(9963),s=n(2201),l=n(8403),c=n(5801),u=n(9917);const m=e=>((0,r.dD)("data-v-b3c885de"),e=e(),(0,r.Cn)(),e),d={id:"user-form"},E={key:2,class:"info-box success-message"},S={class:"form-items"},_=["disabled","placeholder"],T={key:1,class:"form-info"},p=m((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),A=["disabled","placeholder"],O={key:3,class:"form-info"},z=m((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),I=["disabled"],R={key:3},g={key:0},N={key:4},U={class:"account"},h={key:5};var C=(0,r.aZ)({__name:"UserAuthForm",props:{action:null,token:{default:""}},setup(e){const t=e,n=(0,s.yj)(),m=(0,u.o)(),{action:C}=(0,o.BK)(t),w=(0,o.qj)({username:"",email:"",password:""}),D=(0,r.Fl)((()=>G(t.action))),v=(0,r.Fl)((()=>m.getters[c.SY.GETTERS.ERROR_MESSAGES])),f=(0,r.Fl)((()=>m.getters[c.YN.GETTERS.IS_REGISTRATION_SUCCESS])),P=(0,r.Fl)((()=>m.getters[c.YN.GETTERS.IS_SUCCESS])),k=(0,r.Fl)((()=>m.getters[c.SY.GETTERS.APP_CONFIG])),L=(0,r.Fl)((()=>m.getters[c.SY.GETTERS.LANGUAGE])),M=(0,r.Fl)((()=>"register"===t.action&&!k.value.is_registration_enabled)),b=(0,r.Fl)((()=>["reset-request","account-confirmation-resend"].includes(t.action)&&!k.value.is_email_sending_enabled)),y=(0,o.iH)(!1);function G(e){switch(e){case"reset-request":case"reset":return"buttons.SUBMIT";default:return`buttons.${t.action.toUpperCase()}`}}function F(){y.value=!0}function W(e){w.password=e}function B(e){switch(e){case"reset":return t.token?m.dispatch(c.YN.ACTIONS.RESET_USER_PASSWORD,{password:w.password,token:t.token}):m.commit(c.SY.MUTATIONS.SET_ERROR_MESSAGES,"user.INVALID_TOKEN");case"reset-request":return m.dispatch(c.YN.ACTIONS.SEND_PASSWORD_RESET_REQUEST,{email:w.email});case"account-confirmation-resend":return m.dispatch(c.YN.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL,{email:w.email});default:w["language"]=L.value,m.dispatch(c.YN.ACTIONS.LOGIN_OR_REGISTER,{actionType:e,formData:w,redirectUrl:n.query.from})}}function K(){w.username="",w.email="",w.password=""}return(0,r.Ah)((()=>m.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(0,r.YP)((()=>n.path),(async()=>{m.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),m.commit(c.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),m.commit(c.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),y.value=!1,K()})),(e,t)=>{const n=(0,r.up)("AlertMessage"),s=(0,r.up)("router-link"),c=(0,r.up)("ErrorMessage");return(0,r.wg)(),(0,r.iD)("div",{id:"user-auth-form",class:(0,a.C_)(`${["reset","reset-request"].includes((0,o.SU)(C))?(0,o.SU)(C):"user-form"}`)},[(0,r._)("div",d,[(0,r._)("div",{class:(0,a.C_)(["form-box",{disabled:(0,o.SU)(M)}])},[(0,o.SU)(M)?((0,r.wg)(),(0,r.j4)(n,{key:0,message:"user.REGISTER_DISABLED"})):(0,r.kq)("",!0),(0,o.SU)(b)?((0,r.wg)(),(0,r.j4)(n,{key:1,message:"admin.EMAIL_SENDING_DISABLED"})):(0,r.kq)("",!0),(0,o.SU)(P)||(0,o.SU)(f)?((0,r.wg)(),(0,r.iD)("div",E,(0,a.zw)(e.$t("user.PROFILE.SUCCESSFUL_"+((0,o.SU)(f)?"REGISTRATION"+((0,o.SU)(k).is_email_sending_enabled?"_WITH_EMAIL":""):"UPDATE"))),1)):(0,r.kq)("",!0),(0,r._)("form",{class:(0,a.C_)({errors:y.value}),onSubmit:t[2]||(t[2]=(0,i.iM)((e=>B((0,o.SU)(C))),["prevent"]))},[(0,r._)("div",S,["register"===(0,o.SU)(C)?(0,r.wy)(((0,r.wg)(),(0,r.iD)("input",{key:0,id:"username",disabled:(0,o.SU)(M),required:"",pattern:"[a-zA-Z0-9_]+",minlength:"3",maxlength:"30",onInvalid:F,"onUpdate:modelValue":t[0]||(t[0]=e=>w.username=e),placeholder:e.$t("user.USERNAME")},null,40,_)),[[i.nr,w.username]]):(0,r.kq)("",!0),"register"===(0,o.SU)(C)?((0,r.wg)(),(0,r.iD)("div",T,[p,(0,r.Uk)(" "+(0,a.zw)(e.$t("user.USERNAME_INFO")),1)])):(0,r.kq)("",!0),"reset"!==(0,o.SU)(C)?(0,r.wy)(((0,r.wg)(),(0,r.iD)("input",{key:2,id:"email",disabled:(0,o.SU)(M)||(0,o.SU)(b),required:"",onInvalid:F,type:"email","onUpdate:modelValue":t[1]||(t[1]=e=>w.email=e),placeholder:e.$t("user.EMAIL")},null,40,A)),[[i.nr,w.email]]):(0,r.kq)("",!0),["reset-request","register","account-confirmation-resend"].includes((0,o.SU)(C))?((0,r.wg)(),(0,r.iD)("div",O,[z,(0,r.Uk)(" "+(0,a.zw)(e.$t("user.EMAIL_INFO")),1)])):(0,r.kq)("",!0),["account-confirmation-resend","reset-request"].includes((0,o.SU)(C))?(0,r.kq)("",!0):((0,r.wg)(),(0,r.j4)(l.Z,{key:4,disabled:(0,o.SU)(M),required:!0,placeholder:"reset"===(0,o.SU)(C)?e.$t("user.ENTER_PASSWORD"):e.$t("user.PASSWORD"),password:w.password,checkStrength:["reset","register"].includes((0,o.SU)(C)),onUpdatePassword:W,onPasswordError:F},null,8,["disabled","placeholder","password","checkStrength"]))]),(0,r._)("button",{type:"submit",disabled:(0,o.SU)(M)||(0,o.SU)(b)},(0,a.zw)(e.$t((0,o.SU)(D))),9,I)],34),"login"===(0,o.SU)(C)?((0,r.wg)(),(0,r.iD)("div",R,[(0,r.Wm)(s,{class:"links",to:"/register"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("user.REGISTER")),1)])),_:1}),(0,o.SU)(k).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("span",g,"-")):(0,r.kq)("",!0),(0,o.SU)(k).is_email_sending_enabled?((0,r.wg)(),(0,r.j4)(s,{key:1,class:"links",to:"/password-reset/request"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("user.PASSWORD_FORGOTTEN")),1)])),_:1})):(0,r.kq)("",!0)])):(0,r.kq)("",!0),"register"===(0,o.SU)(C)?((0,r.wg)(),(0,r.iD)("div",N,[(0,r._)("span",U,(0,a.zw)(e.$t("user.ALREADY_HAVE_ACCOUNT")),1),(0,r.Wm)(s,{class:"links",to:"/login"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("user.LOGIN")),1)])),_:1})])):(0,r.kq)("",!0),["login","register"].includes((0,o.SU)(C))&&(0,o.SU)(k).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("div",h,[(0,r.Wm)(s,{class:"links",to:"/account-confirmation/resend"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("user.ACCOUNT_CONFIRMATION_NOT_RECEIVED")),1)])),_:1})])):(0,r.kq)("",!0),(0,o.SU)(v)?((0,r.wg)(),(0,r.j4)(c,{key:6,message:(0,o.SU)(v)},null,8,["message"])):(0,r.kq)("",!0)],2)])],2)}}}),w=n(3744);const D=(0,w.Z)(C,[["__scopeId","data-v-b3c885de"]]);var v=D},6595:function(e,t,n){"use strict";n.d(t,{Z:function(){return E}});var r=n(6252),a=n(2262),o=n(2024);const i={class:"user-picture"},s=["alt","src"],l={key:1,class:"no-picture"},c=(0,r._)("i",{class:"fa fa-user-circle-o","aria-hidden":"true"},null,-1),u=[c];var m=(0,r.aZ)({__name:"UserPicture",props:{user:null},setup(e){const t=e,n=(0,r.Fl)((()=>t.user.picture?`${(0,o.k)()}users/${t.user.username}/picture?${Date.now()}`:""));return(e,t)=>((0,r.wg)(),(0,r.iD)("div",i,[""!==(0,a.SU)(n)?((0,r.wg)(),(0,r.iD)("img",{key:0,class:"profile-user-img",alt:e.$t("user.USER_PICTURE"),src:(0,a.SU)(n)},null,8,s)):((0,r.wg)(),(0,r.iD)("div",l,u))]))}});const d=m;var E=d},5630:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(6252),a=n(3577);const o={class:"no-workouts box"};function i(e,t){const n=(0,r.up)("router-link");return(0,r.wg)(),(0,r.iD)("div",o,[(0,r._)("div",null,[(0,r.Uk)((0,a.zw)(e.$t("workouts.NO_WORKOUTS"))+" ",1),(0,r.Wm)(n,{to:"/workouts/add"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("workouts.UPLOAD_FIRST_WORKOUT")),1)])),_:1})])])}var s=n(3744);const l={},c=(0,s.Z)(l,[["render",i],["__scopeId","data-v-4b4d15fb"]]);var u=c},4612:function(e,t,n){var r={"./de/de.ts":9923,"./en/en.ts":8757,"./fr/fr.ts":6625,"./it/it.ts":4334,"./nb/nb.ts":8891,"./nl/nl.ts":701};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=4612}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var o=t[r]={exports:{}};return e[r].call(o.exports,o,o.exports,n),o.exports}n.m=e,function(){var e=[];n.O=function(t,r,a,o){if(!r){var i=1/0;for(u=0;u=o)&&Object.keys(n.O).every((function(e){return n.O[e](r[l])}))?r.splice(l--,1):(s=!1,o0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[r,a,o]}}(),function(){n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,{a:t}),t}}(),function(){var e,t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};n.t=function(r,a){if(1&a&&(r=this(r)),8&a)return r;if("object"===typeof r&&r){if(4&a&&r.__esModule)return r;if(16&a&&"function"===typeof r.then)return r}var o=Object.create(null);n.r(o);var i={};e=e||[null,t({}),t([]),t(t)];for(var s=2&a&&r;"object"==typeof s&&!~e.indexOf(s);s=t(s))Object.getOwnPropertyNames(s).forEach((function(e){i[e]=function(){return r[e]}}));return i["default"]=function(){return r},n.d(o,i),o}}(),function(){n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}}(),function(){n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce((function(t,r){return n.f[r](e,t),t}),[]))}}(),function(){n.u=function(e){return"static/js/"+({24:"reset",193:"statistics",222:"password.fr",261:"password.en",328:"admin",401:"workouts",802:"password.it",845:"profile",881:"password",940:"password.de"}[e]||e)+"."+{24:"a4de7412",93:"7582eaa7",193:"99fc9524",222:"7161a5de",243:"e034bc01",261:"6a36a15a",328:"443044dd",401:"e312ce33",431:"6f0a9946",633:"3c9401e6",802:"eac74305",845:"d9355913",858:"5db37332",881:"f10cfc3b",940:"c02a3162"}[e]+".js"}}(),function(){n.miniCssF=function(e){return"static/css/"+{24:"reset",193:"statistics",328:"admin",401:"workouts",845:"profile"}[e]+"."+{24:"e2527ec6",193:"40e24e75",328:"73df498d",401:"b4a2d0f0",845:"9f83730d"}[e]+".css"}}(),function(){n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="fittrackee_client:";n.l=function(r,a,o,i){if(e[r])e[r].push(a);else{var s,l;if(void 0!==o)for(var c=document.getElementsByTagName("script"),u=0;u{const t=new AbortController;e.signal=t.signal;const n=(0,a.a)(e);a.j.set(n,t);const r=o.Z.getters[i.YN.GETTERS.AUTH_TOKEN];if(r){const t=`Bearer ${r}`;e.headers&&e.headers.Authorization!==t&&(e.headers.Authorization=`Bearer ${r}`)}return e}),(e=>Promise.reject(e))),l.interceptors.response.use((e=>((0,a.a)(e.config),e)),(e=>("canceled"!==e.message&&(0,a.a)(e.response.config),Promise.reject(e)))),t["Z"]=l},8566:function(e,t,n){"use strict";n.d(t,{a:function(){return o},j:function(){return r}});const r=new Map,a=e=>{const{method:t,url:n,params:r={},data:a={}}=e;return[t,n,JSON.stringify(r),JSON.stringify(a)].join("")},o=e=>{const t=a(e);if(r.has(t)){const e=r.get(t)||{};e?.abort(),r.delete(t)}return t}},2540:function(e,t,n){"use strict";var r=n(9150);const a=["nb"];function o(){const e=n(4612),t={};return e.keys().forEach((n=>{const r=n.match(/([A-Za-z0-9-_]+)\./i);if(r&&r.length>1&&!a.includes(r[1])){const a=r[1];t[a]=e(n).default}})),t}t["Z"]=(0,r.o)({legacy:!1,locale:"en",fallbackLocale:"en",globalInjection:!0,messages:o()})},9923:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return _}});var r={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Kontaktiere den Administrator"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee ist ein selbst-gehosteter Outdoor-Aktivitäts-Tracker."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["unter ",n(r(0))," Lizenz "])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Quellcode"])}},a={ACTION:e=>{const{normalize:t}=e;return t(["Aktion"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Aktiviere Konto"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Aktiv"])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Hinzufügen/Entfernen von Administratorrechten, Lösche Nutzerkonto."])},APPLICATION:e=>{const{normalize:t}=e;return t(["Anwendung"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Kontakt-E-Mail des Administrators"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. Dateianzahl im zip Archiv"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Wenn 0, gibt es keine Registrierungslimitierung.."])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. Anzahl aktiver Nutzer"])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["keine Kontakt-E-Mail"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. Größe der hochgeladenen Dateien (in Mb)"])},TITLE:e=>{const{normalize:t}=e;return t(["Anwendungskonfiguration"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. Größe des zip Archives (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Zurück zu Admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Möchtest du wirklich das ",n(r(0))," Konto löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Möchtest du wirklich das ",n(r(0))," Passwort zurücksetzen?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Aktuelle E-Mail"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Lösche Nutzer"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["E-Mail-Versand ist deaktiviert."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Aktivieren/Deaktivieren von Sportarten."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["Neue E-Mail"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Das wasswort wurde zurückgesetzt."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Registrierung ist derzeit deaktiviert."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Registrierung ist derzeit aktiviert."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort zurücksetzen"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Aktiv"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["Trainings existieren"])},IMAGE:e=>{const{normalize:t}=e;return t(["Bild"])},LABEL:e=>{const{normalize:t}=e;return t(["Titel"])}},TITLE:e=>{const{normalize:t}=e;return t(["Sportarten Administration"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Aktualisiere Anwemdungskonfiguration (maximale Anzahl an registrierten Nutzern, maximale Dateigröße)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Aktualisiere E-Mail"])},USER:e=>{const{normalize:t}=e;return t(["Nutzer"])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["Adminstatus"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["Registrierungsdatum"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["Accountstatus"])},USERNAME:e=>{const{normalize:t}=e;return t(["Nutzername"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["Trainingsanzahl"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Administratorrechte hinzufügen"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Administratorrechte entfernen"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Die E-Mail Adresse wurde aktualisiert."])}},o={ERROR:{"Network Error":e=>{const{normalize:t}=e;return t(["Netzwerkfehler."])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:t}=e;return t(["Mindestens eine Datei im ZIP-Archiv überschreitet das Größenlimit, bitte überprüfe das Archiv."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["E-Mail: Eine gültige E-Mail muss angegeben werden."])},"error during gpx file parsing":e=>{const{normalize:t}=e;return t(["Fehler beim Einlesen der GPX-Datei"])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Fehler bei der GPX-Verarbeitung."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Fehler beim Abrufen der Konfiguration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Fehler beim Aktualisieren der Konfiguration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Fehler. Die Registrierung ist deaktiviert."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["Dateierweiterung ist nicht erlaubt."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["Die Datei ist größer als erlaubt."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Ungültige Anmeldedaten."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Die bereitgestellten Daten sind ungültig."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Ungültiges Token, bitte erneut anmelden."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Ungültiges Token, bitte erneut anmelden."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["Die neue E-Mail muss sich von der aktuellen E-Mail unterscheiden"])},"no file part":e=>{const{normalize:t}=e;return t(["Keine Datei angegeben."])},"no selected file":e=>{const{normalize:t}=e;return t(["Keine Datei ausgewählt."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Passwort: Passwort und Passwortbestätigung stimmen nicht überein."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Gebe ein gültiges Authentifizierungstoken an."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Die Signatur ist abgelaufen. Bitte melde dich erneut an."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Es tut mir leid, der Benutzername ist schon vergeben."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Sportart existiert nicht."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Registrierung erfolgreich."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:t}=e;return t(["Die Anzahl der Dateien im Archiv überschreitet die Begrenzung."])},"user does not exist":e=>{const{normalize:t}=e;return t(["Der Nutzer existiert nicht."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["Um den Administrator zu kontaktieren, muss eine gültige E-Mail-Adresse angegeben werden"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["Du kannst Dein Konto nicht löschen, da kein anderer Nutzer hat Administratorrechte besitzt."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["Du hast keine Berechtigung."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["Vorhergehende"])},NEXT:e=>{const{normalize:t}=e;return t(["Nächste"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Bestätigungs-E-Mail erneut senden"])},AUTHORIZE:e=>{const{normalize:t}=e;return t(["Autorisieren"])},BACK:e=>{const{normalize:t}=e;return t(["Zurück"])},CANCEL:e=>{const{normalize:t}=e;return t(["Abbrechen"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Filter löschen"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Mein Konto löschen"])},DISABLE:e=>{const{normalize:t}=e;return t(["Deaktivieren"])},EDIT:e=>{const{normalize:t}=e;return t(["Bearbeiten"])},ENABLE:e=>{const{normalize:t}=e;return t(["Aktivieren"])},FILTER:e=>{const{normalize:t}=e;return t(["Filter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Anmelden"])},NO:e=>{const{normalize:t}=e;return t(["Nein"])},REGISTER:e=>{const{normalize:t}=e;return t(["Registrieren"])},RESET:e=>{const{normalize:t}=e;return t(["Zurücksetzen"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Speichern"])},YES:e=>{const{normalize:t}=e;return t(["Ja"])}},s={ABOUT:e=>{const{normalize:t}=e;return t(["Über"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bestätigung"])},CONTACT:e=>{const{normalize:t}=e;return t(["Kontakt"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["Tag"]),t(["Tage"])])},DISPLAYED:e=>{const{normalize:t}=e;return t(["Angezeigt"])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["Dokumentation (en)"])},HERE:e=>{const{normalize:t}=e;return t(["hier"])},HIDDEN:e=>{const{normalize:t}=e;return t(["Versteckt"])},HOME:e=>{const{normalize:t}=e;return t(["Startseite"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:t}=e;return t(["aufsteigend"])},DESC:e=>{const{normalize:t}=e;return t(["absteigend"])},LABEL:e=>{const{normalize:t}=e;return t(["sortieren"])}},ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["sortiert nach"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["pro Seite"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Insgesamt"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Dashboard"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["Dieser Monat"])}},c={APP_ERROR:e=>{const{normalize:t}=e;return t(["Bei der Anwendung scheinen einige Probleme aufgetreten zu sein.
                                                                                Bitte versuche es später noch einmal oder kontaktiere den Administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Seite nicht gefunden"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Training nicht gefunden"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Etwas lief schief"])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])}},u={ADD_A_NEW_APP:e=>{const{normalize:t}=e;return t(["Eine neue OAuth2-Anwendung hinzufügen"])},APP:{CLIENT_ID:e=>{const{normalize:t}=e;return t(["ID"])},CLIENT_SECRET:e=>{const{normalize:t}=e;return t(["Geheimnis"])},DESCRIPTION:e=>{const{normalize:t}=e;return t(["Anwendungsbeschreibung"])},ISSUE_AT:e=>{const{normalize:t}=e;return t(["Erstellt am"])},NAME:e=>{const{normalize:t}=e;return t(["Anwendungsname"])},REDIRECT_URL:e=>{const{normalize:t}=e;return t(["Weiterleitungs-URL"])},SCOPE:{LABEL:e=>{const{normalize:t}=e;return t(["Geltungsbereich"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf die Anwendungskonfiguration"])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Lesezugriff auf auth-Endpunkte"])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf auth-Endpunkte"])},"users:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Lesezugriff auf users-Endpunkte"])},"users:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf users-Endpunkte"])},"workouts:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Lesezugriff auf workouts-Endpunkte"])},"workouts:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf workouts-Endpunkte"])}},URL:e=>{const{normalize:t}=e;return t(["Anwendungs-URL"])}},APPS_LIST:e=>{const{normalize:t}=e;return t(["OAuth2-Anwendungen"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:t}=e;return t(["Anwendung erfolgreich erstellt. Stelle sicher, dass du das Geheimnis kopierst, du kannst es nicht erneut anzeigen."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bist sicher, dass du diese App löschen willst?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Die Anwendung ",n(r(0))," fragt an:"])},AUTHORIZE_APP:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0))," den Zugriff auf deinen Account erlauben?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:t}=e;return t(["in Zwischenablage kopieren"])},DELETE_APP:e=>{const{normalize:t}=e;return t(["Anwendung löschen"])},NEW_APP:e=>{const{normalize:t}=e;return t(["Anwendung hinzufügen"])},NO_APP:e=>{const{normalize:t}=e;return t(["Anwendung wurde nicht gefunden!"])},NO_APPS:e=>{const{normalize:t}=e;return t(["keine Anwendungen"])},NO_DESCRIPTION:e=>{const{normalize:t}=e;return t(["keine Beschreibung"])},REVOKE_ALL_TOKENS:e=>{const{normalize:t}=e;return t(["Alle Tokens zurückrufen"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bist du sicher, dass du alle Tokens zurückrufen möchtest?"])},TOKENS_REVOKED:e=>{const{normalize:t}=e;return t(["Alle vorhandenen und vergebenen Tokens wurde zurückgerufen."])}},m={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Radfahren (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Radfahren (Pendeln)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:t}=e;return t(["Radfahren (Virtuell)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Wandern"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["Mountainbiken"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["Mountainbiken (elektrisch)"])}},Mountaineering:{LABEL:e=>{const{normalize:t}=e;return t(["Bergsteigen"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Rudern"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Laufen"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Skifahren (Alpin)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Skifahren (Langlauf)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Schneeschuhe"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Gehen"])}}},d={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistik"])},TIME_FRAMES:{month:e=>{const{normalize:t}=e;return t(["Monat"])},week:e=>{const{normalize:t}=e;return t(["Woche"])},year:e=>{const{normalize:t}=e;return t(["Jahr"])}}},E={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Hast du keine Anweisungen erhalten?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Prüfe deine E-Mail. Eine neue Bestätigungs-E-Mail wurde an die angegebene Adresse geschickt."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Hast du bereits ein Konto?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Möchtest du dein Konto wirklich löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden"])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Aktuelles Passwort"])},EMAIL:e=>{const{normalize:t}=e;return t(["E-Mail"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Gebe eine gültige E-Mail-Adresse an."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Gebe ein Passwort ein"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Nach Benutzernamen filtern"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort verbergen"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Ungültiges Token, bitte fordere ein neues Passworts an."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Sprache"])},LOGIN:e=>{const{normalize:t}=e;return t(["Anmeldung"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Abmelden"])},LOG_IN:e=>{const{normalize:t}=e;return t(["Anmelden"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["Neues Passwort"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["Keine Nutzer gefunden."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort"])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Passwort vergessen?"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["Mindestens 8 Zeichen sind erforderlich."])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Passwort zurücksetzen"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Prüfe Deine E-Mail. Wenn Deine Adresse in der Datenbank enthalten ist, wirst du eine E-Mail mit einem Link erhalten um Dein Passwort zurückzusetzen."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:t}=e;return t(["mittel"])},GOOD:e=>{const{normalize:t}=e;return t(["gut"])},LABEL:e=>{const{normalize:t}=e;return t(["Passwortstärke"])},STRONG:e=>{const{normalize:t}=e;return t(["start"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:t}=e;return t(["Schreibe einige, aber nicht alle Buchstaben groß."])},anotherWord:e=>{const{normalize:t}=e;return t(["Füge weitere weniger gebräuchliche Wörter hinzu."])},associatedYears:e=>{const{normalize:t}=e;return t(["Vermeide Jahreszahlen, die mit Dir in Verbindung gebracht werden."])},capitalization:e=>{const{normalize:t}=e;return t(["Schreibe mehr als nur den ersten Buchstaben groß."])},dates:e=>{const{normalize:t}=e;return t(["Vermeide Daten und Jahreszahlen, die mit Dir in Verbindung gebracht werden."])},l33t:e=>{const{normalize:t}=e;return t(["Vermeide vorhersehbare Buchstabenersetzungen wie ","@"," für a."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Verwende längere Tastaturmuster und ändere mehrmals die Schreibrichtung."])},noNeed:e=>{const{normalize:t}=e;return t(["Du kannst sichere Passwörter erstellen, ohne Symbole, Zahlen oder Großbuchstaben zu verwenden."])},pwned:e=>{const{normalize:t}=e;return t(["Wenn Sie dieses Passwort auch anderweitig verwenden, sollten Sie es ändern."])},recentYears:e=>{const{normalize:t}=e;return t(["Vermeide Angabe von letzten Jahreszahlen."])},repeated:e=>{const{normalize:t}=e;return t(["Vermeide wiederholungen von Wörtern und Zeichen."])},reverseWords:e=>{const{normalize:t}=e;return t(["Vermeide umgekehrte Schreibweisen gebräuchlicher Wörter."])},sequences:e=>{const{normalize:t}=e;return t(["Vermeide gebräuchliche Zeichenfolgen."])},useWords:e=>{const{normalize:t}=e;return t(["Verwenden Sie mehrere Wörter, aber vermeide gebräuchliche Ausdrücke."])}},WEAK:e=>{const{normalize:t}=e;return t(["schwach"])}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Dein Passwort wurde aktualisiert. Klicke ",n(r(0))," um dich anzumelden."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Kontoausgabe"])},ASCENT_DATA:e=>{const{normalize:t}=e;return t(["Anstiegs-bezogene Daten (Aufnahmen, gesamt)"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Zurück zum Profil"])},BIO:e=>{const{normalize:t}=e;return t(["Biographie"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Geburtsdatum"])},DATE_FORMAT:e=>{const{normalize:t}=e;return t(["Datumsanzeigeformat"])},EDIT:e=>{const{normalize:t}=e;return t(["Profil bearbeiten"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Einstellungen ändern"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Einstellungen für Sportarten ändern"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Bitte ",n(r(0))," um Deine E-Mail Adresse nochmals zu ändern oder kontaktiere den Administrator"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["Erster Tag der Woche"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["Vorname"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Sprache"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Nachname"])},LOCATION:e=>{const{normalize:t}=e;return t(["Ort"])},MONDAY:e=>{const{normalize:t}=e;return t(["Montag"])},PICTURE:e=>{const{normalize:t}=e;return t(["Bild"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Bildausgabe"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Bild entfernen"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Bild aktualisieren"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Einstellungsausgabe"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Profil-Ausgabe"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Registrierungsdatum"])},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["Aktion"])},COLOR:e=>{const{normalize:t}=e;return t(["Farbe"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["vom Admin deaktiviert"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["aktiv"])},LABEL:e=>{const{normalize:t}=e;return t(["Titel"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["Geschwindigkeitsschwellenwert für Stopp"])}},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Sportarten-Einstellungsausgabe"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Dein Konto wurde erfolgreich aktualisiert. Bitte prüfe Deine E-Mail um die neue E-Mail Adresse zu bestätigen."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Dein Konto wurde erfolgreich erstellt."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["Ein Aktivierungslink für Dein Konto wurde an die angegebene E-Mail Adresse geschickt."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Dein Konto wurde erfolgreich aktualisiert."])},SUNDAY:e=>{const{normalize:t}=e;return t(["Sontag"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["Konto"])},APPS:e=>{const{normalize:t}=e;return t(["Anwendungen"])},PICTURE:e=>{const{normalize:t}=e;return t(["Bild"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["Einstellungen"])},PROFILE:e=>{const{normalize:t}=e;return t(["Profil"])},SPORTS:e=>{const{normalize:t}=e;return t(["Sportarten"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Zeitzone"])},UNITS:{IMPERIAL:e=>{const{normalize:t}=e;return t(["Imperiales System (ft, mi, mph, °F)"])},LABEL:e=>{const{normalize:t}=e;return t(["Einheiten für die Distanz"])},METRIC:e=>{const{normalize:t}=e;return t(["Metrisches System (m, km, m/s, °C)"])}}},REGISTER:e=>{const{normalize:t}=e;return t(["Registrieren"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Entschuldigung, die Registrierung ist deaktiviert."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["E-Mail zur Kontobestätigung erneut senden"])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort zurücksetzen"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort anzeigen"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["Dieser Account ist inaktiv."])},USERNAME:e=>{const{normalize:t}=e;return t(["Nutzername"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(["3 bis 30 Zeichen sind erforderlich, nur alphanumerische Zeichen und der Unterstrich _ sind erlaubt."])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["Benutzerbild"])}},S={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Training hinzufügen"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["Analyse"])},ASCENT:e=>{const{normalize:t}=e;return t(["Aufstieg"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["Durchschnittsgeschwindigkeit"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["Durchschn. Geschwindigkeit"])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["zurück zum Training"])},DATE:e=>{const{normalize:t}=e;return t(["Datum"])},DESCENT:e=>{const{normalize:t}=e;return t(["Abstieg"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["zeige Filter"])},DISTANCE:e=>{const{normalize:t}=e;return t(["Entfernung"])},DURATION:e=>{const{normalize:t}=e;return t(["Dauer"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Training bearbeiten"])},ELEVATION:e=>{const{normalize:t}=e;return t(["Höhe"])},END:e=>{const{normalize:t}=e;return t(["Ende"])},FROM:e=>{const{normalize:t}=e;return t(["Von"])},GPX_FILE:e=>{const{normalize:t}=e;return t([".gpx Datei"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["verberge Filter"])},INVALID_ASCENT_OR_DESCENT:e=>{const{normalize:t}=e;return t(["Beide Höhenwerte müssen angegeben werden und größer oder gleich 0 sein."])},INVALID_DISTANCE:e=>{const{normalize:t}=e;return t(["Die Distanz muss größer als 0 sein"])},INVALID_DURATION:e=>{const{normalize:t}=e;return t(["Die Dauer muss größer als 0 Sekunden sein"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Letzte Trainings"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Lade mehr Trainings"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["maximale Höhe"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["Maximale Dateianzahl"])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["Maximalgröße"])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["Max. Geschwindigkeit"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["minimale Höhe"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Nächstes Segment"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Nächstes Training"])},NOTES:e=>{const{normalize:t}=e;return t(["Anmerkungen"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["Daten aus gpx, ohne Bereinigung"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["Keine Datei angegeben"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["enthält keinen Ordner"])},NO_MAP:e=>{const{normalize:t}=e;return t(["Keine Karte"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Kein nächstes Segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Kein nächstes Training"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["Keine Anmerkungen"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Kein vorheriges Segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Kein vorheriges Training"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["Keine Aufzeichnungen."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["Keine Trainings."])},PAUSES:e=>{const{normalize:t}=e;return t(["Pausen"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Vorheriges Segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Vorheriges Training"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["Aufzeichnung"]),t(["Aufzeichnungen"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Durchschn. Geschwindigkeit"])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Weiteste Entfernung"])},RECORD_HA:e=>{const{normalize:t}=e;return t(["Höchster Anstieg"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Längste Dauer"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Max. Geschwindigkeit"])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["verbleibende Zeichen"])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["Segment"]),t(["Segmente"])])},SPEED:e=>{const{normalize:t}=e;return t(["Geschwindigkeit"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["Sportart"]),t(["Sportarten"])])},START:e=>{const{normalize:t}=e;return t(["Start"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Start und Ziel"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["Höhenachse bei Null starten"])},TITLE:e=>{const{normalize:t}=e;return t(["Titel"])},TO:e=>{const{normalize:t}=e;return t(["bis"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["Gesamtdauer"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Füge erstes Training hinzu!"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["klarer Tag"])},"clear-night":e=>{const{normalize:t}=e;return t(["klare Nacht"])},cloudy:e=>{const{normalize:t}=e;return t(["wolkig"])},fog:e=>{const{normalize:t}=e;return t(["Nebel"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["teilweise bewölkter Tag"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["teilweise bewölkte Nacht"])},rain:e=>{const{normalize:t}=e;return t(["Regen"])},sleet:e=>{const{normalize:t}=e;return t(["Schneeregen"])},snow:e=>{const{normalize:t}=e;return t(["Schnee"])},wind:e=>{const{normalize:t}=e;return t(["Wind"])}},HUMIDITY:e=>{const{normalize:t}=e;return t(["Luftfeuchtigkeit"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["Temperatur"])},WIND:e=>{const{normalize:t}=e;return t(["Wind"])},WIND_DIRECTIONS:{E:e=>{const{normalize:t}=e;return t(["O"])},ENE:e=>{const{normalize:t}=e;return t(["ONO"])},ESE:e=>{const{normalize:t}=e;return t(["OSO"])},N:e=>{const{normalize:t}=e;return t(["N"])},NE:e=>{const{normalize:t}=e;return t(["NO"])},NNE:e=>{const{normalize:t}=e;return t(["NNO"])},NNW:e=>{const{normalize:t}=e;return t(["NNW"])},NW:e=>{const{normalize:t}=e;return t(["NW"])},S:e=>{const{normalize:t}=e;return t(["S"])},SE:e=>{const{normalize:t}=e;return t(["SO"])},SSE:e=>{const{normalize:t}=e;return t(["SSO"])},SSW:e=>{const{normalize:t}=e;return t(["SSW"])},SW:e=>{const{normalize:t}=e;return t(["SW"])},W:e=>{const{normalize:t}=e;return t(["W"])},WNW:e=>{const{normalize:t}=e;return t(["WNW"])},WSW:e=>{const{normalize:t}=e;return t(["WSW"])}}},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["ohne .gpx Datei"])},WITH_GPX:e=>{const{normalize:t}=e;return t(["mit .gpx Datei"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["Training"]),t(["Trainings"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["Trainingsdatum"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bist du sicher, dass du dieses Training löschen möchtest?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t([".zip Datei"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["oder .zip Datei mit .gpx Dateien"])}},_={about:r,admin:a,api:o,buttons:i,common:s,dashboard:l,error:c,oauth2:u,sports:m,statistics:d,user:E,workouts:S}},8757:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return _}});var r={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Contact the administrator"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee is a self-hosted outdoor activity tracker."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["under ",n(r(0))," license "])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Source code"])},WEATHER_DATA_FROM:e=>{const{normalize:t}=e;return t(["Weather data from:"])}},a={ACTION:e=>{const{normalize:t}=e;return t(["Action"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Activate account"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Active"])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Add/remove admin rights, delete user account."])},APPLICATION:e=>{const{normalize:t}=e;return t(["Application"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Administrator email for contact"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. files of zip archive"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["If 0, no limitation on registration."])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. number of active users"])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["no contact email"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. size of uploaded files (in Mb)"])},TITLE:e=>{const{normalize:t}=e;return t(["Application configuration"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. size of zip archive (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Back to admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Are you sure you want to delete ",n(r(0))," account? All data will be deleted, this cannot be undone."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Are you sure you want to reset ",n(r(0))," password?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Current email"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Delete user"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["Email sending is disabled."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Enable/disable sports."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["New email"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["The password has been reset."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Registration is currently disabled."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Registration is currently enabled."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset password"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Active"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["workouts exist"])},IMAGE:e=>{const{normalize:t}=e;return t(["Image"])},LABEL:e=>{const{normalize:t}=e;return t(["Label"])}},TITLE:e=>{const{normalize:t}=e;return t(["Sports administration"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Update application configuration (maximum number of registered users, maximum files size)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Update email"])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["user"]),t(["users"])])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["admin status"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["registration date"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["account status"])},USERNAME:e=>{const{normalize:t}=e;return t(["username"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["workout count"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Add admin rights"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Remove admin rights"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["The email address has been updated."])}},o={ERROR:{"Network Error":e=>{const{normalize:t}=e;return t(["Network Error."])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:t}=e;return t(["At least one file in zip archive exceeds size limit, please check the archive."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Email: valid email must be provided."])},"error during gpx file parsing":e=>{const{normalize:t}=e;return t(["Error during gpx file parsing."])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Error during gpx processing."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Error on getting configuration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Error when updating configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Error, please try again or contact the administrator."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Error, registration is disabled."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["File extension not allowed."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["File size is greater than the allowed size."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Invalid credentials."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Provided data are invalid."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Invalid token, please log in again."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Invalid token, please log in again."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["The new email must be different than curent email"])},"no file part":e=>{const{normalize:t}=e;return t(["No file provided."])},"no selected file":e=>{const{normalize:t}=e;return t(["No selected file."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Password: password and password confirmation don't match."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Provide a valid auth token."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expired. Please log in again."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Sorry, that username is already taken."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Sport does not exist."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Successfully registered."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:t}=e;return t(["The number of files in the archive exceeds the limit."])},"user does not exist":e=>{const{normalize:t}=e;return t(["User does not exist."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["A valid email must be provided for administrator contact"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["You can not delete your account, no other user has admin rights."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["You do not have permissions."])}},PAGINATION:{NEXT:e=>{const{normalize:t}=e;return t(["next"])},PREVIOUS:e=>{const{normalize:t}=e;return t(["previous"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Resend confirmation email"])},AUTHORIZE:e=>{const{normalize:t}=e;return t(["Authorize"])},BACK:e=>{const{normalize:t}=e;return t(["Back"])},CANCEL:e=>{const{normalize:t}=e;return t(["Cancel"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Clear filters"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Delete my account"])},DISABLE:e=>{const{normalize:t}=e;return t(["Disable"])},EDIT:e=>{const{normalize:t}=e;return t(["Edit"])},ENABLE:e=>{const{normalize:t}=e;return t(["Enable"])},FILTER:e=>{const{normalize:t}=e;return t(["Filter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Log in"])},NO:e=>{const{normalize:t}=e;return t(["No"])},REGISTER:e=>{const{normalize:t}=e;return t(["Register"])},RESET:e=>{const{normalize:t}=e;return t(["Reset"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Submit"])},YES:e=>{const{normalize:t}=e;return t(["Yes"])}},s={ABOUT:e=>{const{normalize:t}=e;return t(["about"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation"])},CONTACT:e=>{const{normalize:t}=e;return t(["contact"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["day"]),t(["days"])])},DISPLAYED:e=>{const{normalize:t}=e;return t(["Displayed"])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentation"])},HERE:e=>{const{normalize:t}=e;return t(["here"])},HIDDEN:e=>{const{normalize:t}=e;return t(["Hidden"])},HOME:e=>{const{normalize:t}=e;return t(["Home"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:t}=e;return t(["ascending"])},DESC:e=>{const{normalize:t}=e;return t(["descending"])},LABEL:e=>{const{normalize:t}=e;return t(["sort"])}},ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["order by"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["par page"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Total"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Dashboard"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["This month"])}},c={APP_ERROR:e=>{const{normalize:t}=e;return t(["The application seems to have encountered some issues.
                                                                                Please try again later or contact the administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Page not found"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Workout not found"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Something went wrong"])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])}},u={ADD_A_NEW_APP:e=>{const{normalize:t}=e;return t(["Add a new OAuth2 application"])},APP:{CLIENT_ID:e=>{const{normalize:t}=e;return t(["Id"])},CLIENT_SECRET:e=>{const{normalize:t}=e;return t(["Secret"])},DESCRIPTION:e=>{const{normalize:t}=e;return t(["Application description"])},ISSUE_AT:e=>{const{normalize:t}=e;return t(["Issue at"])},NAME:e=>{const{normalize:t}=e;return t(["Application name"])},REDIRECT_URL:e=>{const{normalize:t}=e;return t(["Redirect URL"])},SCOPE:{LABEL:e=>{const{normalize:t}=e;return t(["Scope"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants write access to application configuration."])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants read access to auth endpoints."])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants write access to auth endpoints."])},"users:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants read access to users endpoints."])},"users:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants write access to users endpoints."])},"workouts:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants read access to workouts endpoints."])},"workouts:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants write access to workouts endpoints."])}},URL:e=>{const{normalize:t}=e;return t(["Application URL"])}},APPS_LIST:e=>{const{normalize:t}=e;return t(["OAuth2 applications"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:t}=e;return t(["Application created successfully. Make sure to copy the secret now, it won't show up again."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete this app?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["The application ",n(r(0))," is requesting:"])},AUTHORIZE_APP:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Authorize ",n(r(0))," to use your account?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:t}=e;return t(["copy to the clipboard"])},DELETE_APP:e=>{const{normalize:t}=e;return t(["Delete application"])},NEW_APP:e=>{const{normalize:t}=e;return t(["Add an application"])},NO_APP:e=>{const{normalize:t}=e;return t(["Application not found!"])},NO_APPS:e=>{const{normalize:t}=e;return t(["no applications"])},NO_DESCRIPTION:e=>{const{normalize:t}=e;return t(["no description"])},REVOKE_ALL_TOKENS:e=>{const{normalize:t}=e;return t(["Revoke all tokens"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Are you sure you want to revoke all tokens?"])},TOKENS_REVOKED:e=>{const{normalize:t}=e;return t(["All existing associated tokens have been revoked."])}},m={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Transport)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Virtual)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Hiking"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking (Electric)"])}},Mountaineering:{LABEL:e=>{const{normalize:t}=e;return t(["Mountaineering"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Rowing"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Running"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiing (Alpine)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiing (Cross Country)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Snowshoes"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Walking"])}}},d={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistics"])},TIME_FRAMES:{month:e=>{const{normalize:t}=e;return t(["month"])},week:e=>{const{normalize:t}=e;return t(["week"])},year:e=>{const{normalize:t}=e;return t(["year"])}}},E={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Didn't received instructions?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Check your email. A new confirmation email has been sent to the address provided."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Already have an account?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete your account? All data will be deleted, this cannot be undone"])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Current password"])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Enter a valid email address."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Enter a password"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Filter on username"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["hide password"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Invalid token, please request a new password reset."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Language"])},LOGIN:e=>{const{normalize:t}=e;return t(["Login"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Logout"])},LOG_IN:e=>{const{normalize:t}=e;return t(["log in"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["New password"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["No users found."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Password"])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Forgot password?"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["At least 8 characters required."])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Password reset"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Check your email. If your address is in our database, you'll received an email with a link to reset your password."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:t}=e;return t(["average"])},GOOD:e=>{const{normalize:t}=e;return t(["good"])},LABEL:e=>{const{normalize:t}=e;return t(["password strength"])},STRONG:e=>{const{normalize:t}=e;return t(["strong"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:t}=e;return t(["Capitalize some, but not all letters."])},anotherWord:e=>{const{normalize:t}=e;return t(["Add more words that are less common."])},associatedYears:e=>{const{normalize:t}=e;return t(["Avoid years that are associated with you."])},capitalization:e=>{const{normalize:t}=e;return t(["Capitalize more than the first letter."])},dates:e=>{const{normalize:t}=e;return t(["Avoid dates and years that are associated with you."])},l33t:e=>{const{normalize:t}=e;return t(["Avoid predictable letter substitutions like ","@"," for a."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Use longer keyboard patterns and change typing direction multiple times."])},noNeed:e=>{const{normalize:t}=e;return t(["You can create strong passwords without using symbols, numbers, or uppercase letters."])},pwned:e=>{const{normalize:t}=e;return t(["If you use this password elsewhere, you should change it."])},recentYears:e=>{const{normalize:t}=e;return t(["Avoid recent years."])},repeated:e=>{const{normalize:t}=e;return t(["Avoid repeated words and characters."])},reverseWords:e=>{const{normalize:t}=e;return t(["Avoid reversed spellings of common words."])},sequences:e=>{const{normalize:t}=e;return t(["Avoid common character sequences."])},useWords:e=>{const{normalize:t}=e;return t(["Use multiple words, but avoid common phrases."])}},WEAK:e=>{const{normalize:t}=e;return t(["weak"])}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Your password have been updated. Click ",n(r(0))," to log in."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Account edition"])},ASCENT_DATA:e=>{const{normalize:t}=e;return t(["Ascent-related data (records, total)"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Back to profile"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Birth date"])},DATE_FORMAT:e=>{const{normalize:t}=e;return t(["Date display format"])},EDIT:e=>{const{normalize:t}=e;return t(["Edit profile"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Edit preferences"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Edit sports preferences"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Please ",n(r(0))," to change your email address again or contact the administrator"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["First day of week"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["First name"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Language"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Last name"])},LOCATION:e=>{const{normalize:t}=e;return t(["Location"])},MONDAY:e=>{const{normalize:t}=e;return t(["Monday"])},PICTURE:e=>{const{normalize:t}=e;return t(["Picture"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Picture edition"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Remove picture"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Update picture"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Preferences edition"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Profile edition"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Registration date"])},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["action"])},COLOR:e=>{const{normalize:t}=e;return t(["color"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["disabled by admin"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["active"])},LABEL:e=>{const{normalize:t}=e;return t(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["stopped speed threshold"])}},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Sports preferences edition"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Your account has been updated successfully. Please check your email to confirm your new email address."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Your account has been created successfully."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["A link to activate your account has been emailed to the address provided."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Your account has been updated successfully."])},SUNDAY:e=>{const{normalize:t}=e;return t(["Sunday"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["account"])},APPS:e=>{const{normalize:t}=e;return t(["apps"])},PICTURE:e=>{const{normalize:t}=e;return t(["picture"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["preferences"])},PROFILE:e=>{const{normalize:t}=e;return t(["profile"])},SPORTS:e=>{const{normalize:t}=e;return t(["sports"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Timezone"])},UNITS:{IMPERIAL:e=>{const{normalize:t}=e;return t(["Imperial system (ft, mi, mph, °F)"])},LABEL:e=>{const{normalize:t}=e;return t(["Units for distance"])},METRIC:e=>{const{normalize:t}=e;return t(["Metric system (m, km, m/s, °C)"])}}},REGISTER:e=>{const{normalize:t}=e;return t(["Register"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Sorry, registration is disabled."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Resend account confirmation email"])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset your password"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["show password"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["This user account is inactive."])},USERNAME:e=>{const{normalize:t}=e;return t(["Username"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(['3 to 30 characters required, only alphanumeric characters and the underscore character "_" allowed.'])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["user picture"])}},S={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Add a workout"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["analysis"])},ASCENT:e=>{const{normalize:t}=e;return t(["ascent"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["average speed"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["ave. speed"])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["back to workout"])},DATE:e=>{const{normalize:t}=e;return t(["date"])},DESCENT:e=>{const{normalize:t}=e;return t(["descent"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["display filters"])},DISTANCE:e=>{const{normalize:t}=e;return t(["distance"])},DURATION:e=>{const{normalize:t}=e;return t(["duration"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Edit the workout"])},ELEVATION:e=>{const{normalize:t}=e;return t(["elevation"])},END:e=>{const{normalize:t}=e;return t(["end"])},FROM:e=>{const{normalize:t}=e;return t(["from"])},GPX_FILE:e=>{const{normalize:t}=e;return t([".gpx file"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["hide filters"])},INVALID_ASCENT_OR_DESCENT:e=>{const{normalize:t}=e;return t(["Both elevation values must be provided and be greater than or equal to 0."])},INVALID_DISTANCE:e=>{const{normalize:t}=e;return t(["The distance must be greater than 0"])},INVALID_DURATION:e=>{const{normalize:t}=e;return t(["The duration must be greater than 0 seconds"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Latest workouts"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Load more workouts"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["max. altitude"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["max files"])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["max size"])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["max. speed"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["min. altitude"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["No next segment"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Next workout"])},NOTES:e=>{const{normalize:t}=e;return t(["notes"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["data from gpx, without any cleaning"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["No file provided"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["no folder inside"])},NO_MAP:e=>{const{normalize:t}=e;return t(["No map"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["No next segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["No next workout"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["No notes"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["No previous segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["No previous workout"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["No records."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["No workouts."])},PAUSES:e=>{const{normalize:t}=e;return t(["pauses"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Previous segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Previous workout"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Ave. speed"])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Farthest distance"])},RECORD_HA:e=>{const{normalize:t}=e;return t(["Highest ascent"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Longest duration"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Max. speed"])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["remaining characters"])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["segment"]),t(["segments"])])},SPEED:e=>{const{normalize:t}=e;return t(["speed"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["sport"]),t(["sports"])])},START:e=>{const{normalize:t}=e;return t(["start"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Start and finish"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["start elevation axis at zero"])},TITLE:e=>{const{normalize:t}=e;return t(["title"])},TO:e=>{const{normalize:t}=e;return t(["to"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["total duration"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Upload one!"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["clear day"])},"clear-night":e=>{const{normalize:t}=e;return t(["clear night"])},cloudy:e=>{const{normalize:t}=e;return t(["cloudy"])},fog:e=>{const{normalize:t}=e;return t(["fog"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["partly cloudy day"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["partly cloudy night"])},rain:e=>{const{normalize:t}=e;return t(["rain"])},sleet:e=>{const{normalize:t}=e;return t(["sleet"])},snow:e=>{const{normalize:t}=e;return t(["snow"])},wind:e=>{const{normalize:t}=e;return t(["wind"])}},HUMIDITY:e=>{const{normalize:t}=e;return t(["humidity"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["temperature"])},WIND:e=>{const{normalize:t}=e;return t(["wind"])},WIND_DIRECTIONS:{E:e=>{const{normalize:t}=e;return t(["E"])},ENE:e=>{const{normalize:t}=e;return t(["ENE"])},ESE:e=>{const{normalize:t}=e;return t(["ESE"])},N:e=>{const{normalize:t}=e;return t(["N"])},NE:e=>{const{normalize:t}=e;return t(["NE"])},NNE:e=>{const{normalize:t}=e;return t(["NNE"])},NNW:e=>{const{normalize:t}=e;return t(["NNW"])},NW:e=>{const{normalize:t}=e;return t(["NW"])},S:e=>{const{normalize:t}=e;return t(["S"])},SE:e=>{const{normalize:t}=e;return t(["SE"])},SSE:e=>{const{normalize:t}=e;return t(["SSE"])},SSW:e=>{const{normalize:t}=e;return t(["SSW"])},SW:e=>{const{normalize:t}=e;return t(["SW"])},W:e=>{const{normalize:t}=e;return t(["W"])},WNW:e=>{const{normalize:t}=e;return t(["WNW"])},WSW:e=>{const{normalize:t}=e;return t(["WSW"])}}},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["without .gpx file"])},WITH_GPX:e=>{const{normalize:t}=e;return t(["with .gpx file"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["workout"]),t(["workouts"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["workout date"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete this workout?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t([".zip file"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["or .zip file containing .gpx files"])}},_={about:r,admin:a,api:o,buttons:i,common:s,dashboard:l,error:c,oauth2:u,sports:m,statistics:d,user:E,workouts:S}},6625:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return _}});var r={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Contacter l'administrateur"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee est un tracker d'activités sportives (en extérieur)."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["sous licence ",n(r(0))," (en) "])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Code source (en)"])},WEATHER_DATA_FROM:e=>{const{normalize:t}=e;return t(["Source des données météo :"])}},a={ACTION:e=>{const{normalize:t}=e;return t(["Action"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Activer le compte"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Actif"])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs."])},APPLICATION:e=>{const{normalize:t}=e;return t(["Application"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Email de l'administrateur pour contact "])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Nombre max. de fichiers dans une archive zip "])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Si égal à 0, pas limite d'inscription"])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Nombre maximum d'utilisateurs actifs "])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["non renseigné"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Taille max. des fichiers (en Mo) "])},TITLE:e=>{const{normalize:t}=e;return t(["Configuration de l'application"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Taille max. des archives zip (en Mo) "])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Revenir à l'admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Êtes-vous sûr de vouloir supprimer le compte de l'utilisateur ",n(r(0))," ? Toutes les données seront définitivement."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Êtes-vous sûr de vouloir réinitialiser le mot de passe de l'utilisateur ",n(r(0))," ?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Adresse email actuelle"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Supprimer l'utilisateur"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["L'envoi d'emails est désactivé."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Activer/désactiver des sports."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["Nouvelle adresse email"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Le mot de passe a été réinitialisé."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Les inscriptions sont actuellement désactivées."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Les inscriptions sont actuellement activées."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Réinit. le mot de passe"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Actif"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["des séances existent"])},IMAGE:e=>{const{normalize:t}=e;return t(["Image"])},LABEL:e=>{const{normalize:t}=e;return t(["Label"])}},TITLE:e=>{const{normalize:t}=e;return t(["Administration - Sports"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Configurer l'application (nombre maximum d'utilisateurs inscrits, taille maximale des fichers)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Changer l'email"])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["utilisateur"]),t(["utilisateurs"])])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["status administrateur"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["date d'inscription"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["statut du compte"])},USERNAME:e=>{const{normalize:t}=e;return t(["nom d'utilisateur"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["nombre de séances"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Ajouter les droits d'admin"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Retirer les droits d'admin"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["L'adresse email a été mise à jour."])}},o={ERROR:{"Network Error":e=>{const{normalize:t}=e;return t(["Erreur réseau."])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:t}=e;return t(["Au moins un fichier de l'archive zip dépasse la taille maximale, veuillez vérifier l'archive."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Courriel : une adresse électronique valide doit être fournie."])},"error during gpx file parsing":e=>{const{normalize:t}=e;return t(["Erreur lors de l'analyse du fichier."])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Erreur lors du traitement du fichier gpx."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Erreur lors de la récupération de la configuration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Erreur lors de la mise à jour de la configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Erreur, veuillez réessayer ou contacter l'administrateur."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Erreur, les inscriptions sont désactivées."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["Extension de fichier non autorisée."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["La taille du fichier est supérieure à la limite autorisée."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Identifiants invalides."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Données fournies incorrectes."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Jeton de connexion invalide, merci de vous reconnecter."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Jeton de connexion, merci de vous reconnecter."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["La nouvelle addresse électronique doit être differente de l'adresse actuelle"])},"no file part":e=>{const{normalize:t}=e;return t(["Pas de fichier fourni."])},"no selected file":e=>{const{normalize:t}=e;return t(["Pas de fichier sélectionné."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Mot de passe : les mots de passe saisis sont différents."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Merci de fournir un jeton de connexion valide."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expirée. Merci de vous reconnecter."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Désolé, ce nom d'utilisateur est déjà utilisé."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Ce sport n'existe pas."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Inscription validée."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:t}=e;return t(["Le nombre de fichiers de l'archive dépasse la limite."])},"user does not exist":e=>{const{normalize:t}=e;return t(["L'utilisateur n'existe pas."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["Une adresse électronique doit être fournie pour le contact de l'administrateur"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["Vous n'avez pas les permissions nécessaires."])}},PAGINATION:{NEXT:e=>{const{normalize:t}=e;return t(["suivant"])},PREVIOUS:e=>{const{normalize:t}=e;return t(["précédent"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Renvoyer le message de confirmation"])},AUTHORIZE:e=>{const{normalize:t}=e;return t(["Autoriser"])},BACK:e=>{const{normalize:t}=e;return t(["Retour"])},CANCEL:e=>{const{normalize:t}=e;return t(["Annuler"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Réinitialiser"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Supprimer mon compte"])},DISABLE:e=>{const{normalize:t}=e;return t(["Désactiver"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifier"])},ENABLE:e=>{const{normalize:t}=e;return t(["Activer"])},FILTER:e=>{const{normalize:t}=e;return t(["Filtrer"])},LOGIN:e=>{const{normalize:t}=e;return t(["Se connecter"])},NO:e=>{const{normalize:t}=e;return t(["Non"])},REGISTER:e=>{const{normalize:t}=e;return t(["S'inscrire"])},RESET:e=>{const{normalize:t}=e;return t(["Réinit."])},SUBMIT:e=>{const{normalize:t}=e;return t(["Valider"])},YES:e=>{const{normalize:t}=e;return t(["Oui"])}},s={ABOUT:e=>{const{normalize:t}=e;return t(["à propos"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation"])},CONTACT:e=>{const{normalize:t}=e;return t(["contact"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["jour"]),t(["jours"])])},DISPLAYED:e=>{const{normalize:t}=e;return t(["Affiché"])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentation (en)"])},HERE:e=>{const{normalize:t}=e;return t(["ici"])},HIDDEN:e=>{const{normalize:t}=e;return t(["Masqué"])},HOME:e=>{const{normalize:t}=e;return t(["Accueil"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:t}=e;return t(["ascendant"])},DESC:e=>{const{normalize:t}=e;return t(["descendant"])},LABEL:e=>{const{normalize:t}=e;return t(["tri"])}},ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["trier par "])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["par page"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Total"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Tableau de bord"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["Ce mois-ci"])}},c={APP_ERROR:e=>{const{normalize:t}=e;return t(["L'application semble rencontrer quelques problèmes.
                                                                                Veuillez réessayer plus tard ou contacter l'administrateur."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Page introuvable"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Séance introuvable"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Une erreur s'est produite"])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])}},u={ADD_A_NEW_APP:e=>{const{normalize:t}=e;return t(["Ajouter une nouvelle application OAuth2"])},APP:{CLIENT_ID:e=>{const{normalize:t}=e;return t(["Identifiant"])},CLIENT_SECRET:e=>{const{normalize:t}=e;return t(["Secret"])},DESCRIPTION:e=>{const{normalize:t}=e;return t(["Description de l'application"])},ISSUE_AT:e=>{const{normalize:t}=e;return t(["Créée le"])},NAME:e=>{const{normalize:t}=e;return t(["Nom de l'application"])},REDIRECT_URL:e=>{const{normalize:t}=e;return t(["URL de redirection"])},SCOPE:{LABEL:e=>{const{normalize:t}=e;return t(["Scope"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en écriture à la configuration de l'application."])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en lecture aux routes auth."])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en écriture aux routes auth."])},"users:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en lecture aux routes users."])},"users:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en écriture aux routes users."])},"workouts:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en lecture aux routes workouts."])},"workouts:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en écriture aux routes workouts."])}},URL:e=>{const{normalize:t}=e;return t(["URL de l'application"])}},APPS_LIST:e=>{const{normalize:t}=e;return t(["Applications OAuth2"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:t}=e;return t(["Application créée avec succès. Assurez-vous de copier le secret maintenant, il ne s'affichera plus."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Êtes-vous sûr de vouloir supprimer cette application ?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["L'application ",n(r(0))," demande les accès suivants :"])},AUTHORIZE_APP:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Autoriser ",n(r(0))," à utiliser votre compte ?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:t}=e;return t(["copier dans le presse papier"])},DELETE_APP:e=>{const{normalize:t}=e;return t(["Supprimer l'application"])},NEW_APP:e=>{const{normalize:t}=e;return t(["Ajouter une application"])},NO_APP:e=>{const{normalize:t}=e;return t(["Application introuvable !"])},NO_APPS:e=>{const{normalize:t}=e;return t(["pas de applications"])},NO_DESCRIPTION:e=>{const{normalize:t}=e;return t(["pas de description"])},REVOKE_ALL_TOKENS:e=>{const{normalize:t}=e;return t(["Révoquer tous les jetons"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Êtes-vous sûr de vouloir révoquer tous les jetons ?"])},TOKENS_REVOKED:e=>{const{normalize:t}=e;return t(["Tous les jetons associés existants ont été révoqués."])}},m={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Transport)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Virtuel)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Randonnée"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["VTT"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["VTT (Électrique)"])}},Mountaineering:{LABEL:e=>{const{normalize:t}=e;return t(["Alpinisme"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Aviron"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Course"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Ski (Alpin)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Ski (Randonnée)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Raquettes"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Marche"])}}},d={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistiques"])},TIME_FRAMES:{month:e=>{const{normalize:t}=e;return t(["mois"])},week:e=>{const{normalize:t}=e;return t(["semaine"])},year:e=>{const{normalize:t}=e;return t(["année"])}}},E={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Vous n'avez pas reçu les instructions ?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Vérifiez vos courriels. Un nouveau courriel de confirmation a été envoyé à l'adresse électronique fournie."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Vous avez déjà un compte ?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Êtes-vous sûr·e de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés"])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Mot de passe actuel"])},EMAIL:e=>{const{normalize:t}=e;return t(["Courriel"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Saisissez une adresse électronique valide."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Saisissez un mot de passe"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Filtrer sur le nom d'utilisateur"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["masquer le mot de passe"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Jeton invalide, veuillez demander une nouvelle réinitialisation de mot de passe."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Langue"])},LOGIN:e=>{const{normalize:t}=e;return t(["Se connecter"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Se déconnecter"])},LOG_IN:e=>{const{normalize:t}=e;return t(["connecter"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["Nouveau mot de passe"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["Aucun utilisateur trouvé."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Mot de passe"])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Mot de passe oublié ?"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["8 caractères minimum."])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Réinitialisation du mot de passe"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Vérifiez vos courriels. Si vote adresse est dans notre base de données, vous recevrez un courriel avec un lien pour réinitialiser votre mot de passe."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:t}=e;return t(["moyenne"])},GOOD:e=>{const{normalize:t}=e;return t(["bonne"])},LABEL:e=>{const{normalize:t}=e;return t(["robustesse du mot de passe"])},STRONG:e=>{const{normalize:t}=e;return t(["forte"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:t}=e;return t(["Mettez quelques lettres en majuscules, mais pas toutes."])},anotherWord:e=>{const{normalize:t}=e;return t(["Ajoutez des mots moins courants."])},associatedYears:e=>{const{normalize:t}=e;return t(["Évitez les années qui vous sont associées. (ex : date de naissance)."])},capitalization:e=>{const{normalize:t}=e;return t(["Capitalisez mais pas seulement la première lettre."])},dates:e=>{const{normalize:t}=e;return t(["Évitez les dates et les années qui vous sont associées. (ex : date ou année de naissance)."])},l33t:e=>{const{normalize:t}=e;return t(["Évitez les substitutions de lettres prévisibles comme ","@"," pour a."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Utilisez des motifs de clavier plus longs et changez de sens de frappe plusieurs fois."])},noNeed:e=>{const{normalize:t}=e;return t(["Vous pouvez créer des mots de passe forts sans utiliser de symboles, de chiffres ou de lettres majuscules."])},pwned:e=>{const{normalize:t}=e;return t(["Si vous utilisez ce mot de passe ailleurs, vous devriez le modifier."])},recentYears:e=>{const{normalize:t}=e;return t(["Évitez les dernières années."])},repeated:e=>{const{normalize:t}=e;return t(["Évitez les mots et les caractères répétés."])},reverseWords:e=>{const{normalize:t}=e;return t(["Évitez les orthographes inversées des mots courants."])},sequences:e=>{const{normalize:t}=e;return t(["Évitez les séquences de caractères courantes."])},useWords:e=>{const{normalize:t}=e;return t(["Utilisez plusieurs mots, mais évitez les phrases courantes."])}},WEAK:e=>{const{normalize:t}=e;return t(["faible"])}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Votre mot de passe a été mis à jour. Cliquez ",n(r(0))," pour vous connecter."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour du compte"])},ASCENT_DATA:e=>{const{normalize:t}=e;return t(["Données relatives au dénivelé positif (records, total)"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Revenir au profil"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Date de naissance"])},DATE_FORMAT:e=>{const{normalize:t}=e;return t(["Format d'affichage de la date"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifier le profil"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Modifier les préférences"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Modifier les préférences des sports"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Veuillez vous ",n(r(0))," pour changer de nouveau votre adresse électronique ou contacter l'administrateur"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["Premier jour de la semaine"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["Prénom"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Langue"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Nom"])},LOCATION:e=>{const{normalize:t}=e;return t(["Lieu"])},MONDAY:e=>{const{normalize:t}=e;return t(["Lundi"])},PICTURE:e=>{const{normalize:t}=e;return t(["Image de profil"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour de l'image de profil"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Supprimer"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Mettre à jour l'image"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour des préférences"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour du profil"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Date d'inscription"])},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["action"])},COLOR:e=>{const{normalize:t}=e;return t(["couleur"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["désactivé par l'administrateur"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["actif"])},LABEL:e=>{const{normalize:t}=e;return t(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["seuil de vitesse arrêtée"])}},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour des préférences des sports"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Votre compte a été modifié avec succès. Veuillez vérifier votre boîte de réception pour valider votre nouvelle adresse électronique."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Votre compte a été créé avec succès."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["Un lien pour activer votre compte a été envoyé à l'adresse électronique fournie."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Votre compte a été modifié avec succès."])},SUNDAY:e=>{const{normalize:t}=e;return t(["Dimanche"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["compte"])},APPS:e=>{const{normalize:t}=e;return t(["apps"])},PICTURE:e=>{const{normalize:t}=e;return t(["image"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["préférences"])},PROFILE:e=>{const{normalize:t}=e;return t(["profil"])},SPORTS:e=>{const{normalize:t}=e;return t(["sports"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Fuseau horaire"])},UNITS:{IMPERIAL:e=>{const{normalize:t}=e;return t(["Système impérial (ft, mi, mph, °F)"])},LABEL:e=>{const{normalize:t}=e;return t(["Unités pour les distances"])},METRIC:e=>{const{normalize:t}=e;return t(["Système métrique (m, km, m/s, °C)"])}}},REGISTER:e=>{const{normalize:t}=e;return t(["S'inscrire"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Désolé, les inscriptions sont désactivées."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Envoyer à nouveau le courriel de confirmation de compte"])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Réinitialiser votre mot de passe"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["afficher le mot de passe"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["Le compte de cet utilisateur est inactif."])},USERNAME:e=>{const{normalize:t}=e;return t(["Nom d'utilisateur"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(["3 à 30 caractères requis, seuls les caractères alphanumériques et le caractère _ sont autorisés."])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["photo de l'utilisateur"])}},S={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Ajouter une séance"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["analyse"])},ASCENT:e=>{const{normalize:t}=e;return t(["dénivelé positif"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["vitesse moyenne"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["vitesse moy."])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["revenir à la séance"])},DATE:e=>{const{normalize:t}=e;return t(["date"])},DESCENT:e=>{const{normalize:t}=e;return t(["dénivelé négatif"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["afficher les filtres"])},DISTANCE:e=>{const{normalize:t}=e;return t(["distance"])},DURATION:e=>{const{normalize:t}=e;return t(["durée"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Modifier la séance"])},ELEVATION:e=>{const{normalize:t}=e;return t(["altitude"])},END:e=>{const{normalize:t}=e;return t(["fin"])},FROM:e=>{const{normalize:t}=e;return t(["à partir de"])},GPX_FILE:e=>{const{normalize:t}=e;return t(["fichier .gpx"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["masquer les filtres"])},INVALID_ASCENT_OR_DESCENT:e=>{const{normalize:t}=e;return t(["Les 2 valeurs pour l'élévation doivent être renseignées et être supérieures ou égales à 0."])},INVALID_DISTANCE:e=>{const{normalize:t}=e;return t(["La distance doit être supérieure à 0"])},INVALID_DURATION:e=>{const{normalize:t}=e;return t(["La durée doit être supérieure à 0 secondes"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Séances récentes"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Charger les séances suivantes"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitude max"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["fichiers max. "])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["taille max. "])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["vitesse max"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitude min"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Segment suivant"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Séance suivante"])},NOTES:e=>{const{normalize:t}=e;return t(["notes"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["données issues du fichier gpx, sans correction"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["Pas de fichier fourni"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["pas de répertoire"])},NO_MAP:e=>{const{normalize:t}=e;return t(["Pas de carte"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Pas de segment suivant"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Pas de séance suivante"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["Pas de notes"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Pas de segment précédent"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Pas de séance précédente"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["Pas de records."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["Pas de séances."])},PAUSES:e=>{const{normalize:t}=e;return t(["pauses"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Segment précédent"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Séance précédente"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Vitesse moy."])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Distance la + longue"])},RECORD_HA:e=>{const{normalize:t}=e;return t(["Dénivelé positif le + élevé"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Durée la + longue"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Vitesse max."])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["nombre de caractères restants "])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["segment"]),t(["segments"])])},SPEED:e=>{const{normalize:t}=e;return t(["vitesse"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["sport"]),t(["sports"])])},START:e=>{const{normalize:t}=e;return t(["début"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Départ et arrivée"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["démarrer l'axe de l'altitude à 0"])},TITLE:e=>{const{normalize:t}=e;return t(["titre"])},TO:e=>{const{normalize:t}=e;return t(["jusqu'au"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["durée totale"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Ajoutez votre première séance !"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["ensoleillé"])},"clear-night":e=>{const{normalize:t}=e;return t(["nuit claire"])},cloudy:e=>{const{normalize:t}=e;return t(["nuageux"])},fog:e=>{const{normalize:t}=e;return t(["brouillard"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["partiellement nuageux"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["nuit partiellement nuageuse"])},rain:e=>{const{normalize:t}=e;return t(["pluie"])},sleet:e=>{const{normalize:t}=e;return t(["neige fondue"])},snow:e=>{const{normalize:t}=e;return t(["neige"])},wind:e=>{const{normalize:t}=e;return t(["venteux"])}},HUMIDITY:e=>{const{normalize:t}=e;return t(["humidité"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["température"])},WIND:e=>{const{normalize:t}=e;return t(["vent"])},WIND_DIRECTIONS:{E:e=>{const{normalize:t}=e;return t(["E"])},ENE:e=>{const{normalize:t}=e;return t(["ENE"])},ESE:e=>{const{normalize:t}=e;return t(["ESE"])},N:e=>{const{normalize:t}=e;return t(["N"])},NE:e=>{const{normalize:t}=e;return t(["NE"])},NNE:e=>{const{normalize:t}=e;return t(["NNE"])},NNW:e=>{const{normalize:t}=e;return t(["NNO"])},NW:e=>{const{normalize:t}=e;return t(["NO"])},S:e=>{const{normalize:t}=e;return t(["S"])},SE:e=>{const{normalize:t}=e;return t(["SE"])},SSE:e=>{const{normalize:t}=e;return t(["SSE"])},SSW:e=>{const{normalize:t}=e;return t(["SSO"])},SW:e=>{const{normalize:t}=e;return t(["SO"])},W:e=>{const{normalize:t}=e;return t(["O"])},WNW:e=>{const{normalize:t}=e;return t(["ONO"])},WSW:e=>{const{normalize:t}=e;return t(["OSO"])}}},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["sans fichier .gpx"])},WITH_GPX:e=>{const{normalize:t}=e;return t(["avec un fichier .gpx"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["séance"]),t(["séances"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["date de la séance"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Etes-vous sûr de vouloir supprimer cette séance ?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t(["archive .zip"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["ou une archive .zip contenant des fichiers .gpx"])}},_={about:r,admin:a,api:o,buttons:i,common:s,dashboard:l,error:c,oauth2:u,sports:m,statistics:d,user:E,workouts:S}},4334:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return _}});var r={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Contatta l'amministratore"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee è un tracker self-hosted per attività outdoor."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Sotto licenza ",n(r(0))," "])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Codice sorgente"])}},a={ACTION:e=>{const{normalize:t}=e;return t(["Azione"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Attiva account"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Attivo"])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Amministrazione"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Aggiungi/rimuovi permessi, elimina account utente."])},APPLICATION:e=>{const{normalize:t}=e;return t(["Applicazione"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Email di contatto dell'amministratore"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Numero massimo di files zip"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Se settato a 0, non ci sono limiti per le registrazioni."])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Numero massimo di utenti attivi"])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["nessuna mail di contatto"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Dimensione massima dei file caricabili (in Mb)"])},TITLE:e=>{const{normalize:t}=e;return t(["Configurazione applicazione"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Dimensione massima dell'archivio zip (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Ritorna ad amministrazione"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Sei sicuro di voler eliminare ",n(r(0))," account? Tutti i dati verranno persi, quest'azione non può essere annullata."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Sei sicuro di voler resettare ",n(r(0))," password?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Email corrente"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Elimina utente"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["L'invio di email è disabilitato."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Attiva/Disattiva sports."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["Nuova email"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["La password è stata reimpostata."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["La registrazione è al momento disabilitata."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["La registrazione è al momento abilitata."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset password"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Attivo"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["workout esistono"])},IMAGE:e=>{const{normalize:t}=e;return t(["Immagine"])},LABEL:e=>{const{normalize:t}=e;return t(["Etichetta"])}},TITLE:e=>{const{normalize:t}=e;return t(["Amministrazione sport"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Aggiorna configurazione applicazione (numero massimo di utenti registrati, dimensione massima dei files)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Aggiorna email"])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["utente"]),t(["utenti"])])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["stato admin"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["data di registrazione"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["stato account"])},USERNAME:e=>{const{normalize:t}=e;return t(["nome utente"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["numero di workout"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Aggiungi permessi di amministratore"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Rimuovi permessi di amministratore"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["L'indirizzo email è stato aggiornato."])}},o={ERROR:{"Network Error":e=>{const{normalize:t}=e;return t(["Errore di rete."])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Errore. Per favore riprova o contatta l'amminstratore."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:t}=e;return t(["Almeno un file nell'archivio zip supera il limite di dimensione, per favore controlla."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Email: dev'essere inserita un'email valida."])},"error during gpx file parsing":e=>{const{normalize:t}=e;return t(["Errore nella lettura del file gpx."])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Errore nell'elaborazione del file gpx."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Errore nella lettura della configurazione."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Errore nell'aggiornamento della configurazione"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Errore, per favore riprova o contatta l'amministratore."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Errore, la registrazione è disabilitata."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["File con estensione non permessa."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["La dimensione del file è maggiore di quella massima permessa."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Credenziali errate."])},"invalid payload":e=>{const{normalize:t}=e;return t(["I dati inseriti non sono validi."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Token scaduto, per favore ripeti il log in."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Token scaduto, per favore ripeti il log in."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["La nuova email dev'essere diversa dalla vecchia mail"])},"no file part":e=>{const{normalize:t}=e;return t(["Nessun file scelto."])},"no selected file":e=>{const{normalize:t}=e;return t(["Nessun file scelto."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Password: la password inserita e la conferma non combaciano."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Insersci un token di autenticazione valido."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Token scaduto. Per favore ripeti il log in."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Mi dispiace, quell'username è già esistente."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Questo sport non esiste."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Registrato con successo."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:t}=e;return t(["Il numero di files nell'archivio supera il limite massimo permesso."])},"user does not exist":e=>{const{normalize:t}=e;return t(["L'utente non esiste."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["Dev'essere inserita un'email valida"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["Non puoi eliminare questo account, nessun'altro account ha permessi di amministratore."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["Non hai i permessi necessari."])}},PAGINATION:{NEXT:e=>{const{normalize:t}=e;return t(["avanti"])},PREVIOUS:e=>{const{normalize:t}=e;return t(["precedente"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Re-invia email di conferma"])},AUTHORIZE:e=>{const{normalize:t}=e;return t(["Autorizza"])},BACK:e=>{const{normalize:t}=e;return t(["Indietro"])},CANCEL:e=>{const{normalize:t}=e;return t(["Annulla"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Resetta filtri"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Elimina il mio account"])},DISABLE:e=>{const{normalize:t}=e;return t(["Disattiva"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifica"])},ENABLE:e=>{const{normalize:t}=e;return t(["Attiva"])},FILTER:e=>{const{normalize:t}=e;return t(["Filtra"])},LOGIN:e=>{const{normalize:t}=e;return t(["Log in"])},NO:e=>{const{normalize:t}=e;return t(["No"])},REGISTER:e=>{const{normalize:t}=e;return t(["Registra"])},RESET:e=>{const{normalize:t}=e;return t(["Reset"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Invia"])},YES:e=>{const{normalize:t}=e;return t(["Si"])}},s={ABOUT:e=>{const{normalize:t}=e;return t(["about"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Conferma"])},CONTACT:e=>{const{normalize:t}=e;return t(["contatto"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["giorno"]),t(["giorni"])])},DISPLAYED:e=>{const{normalize:t}=e;return t(["Mostrato"])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentazione"])},HERE:e=>{const{normalize:t}=e;return t(["qui"])},HIDDEN:e=>{const{normalize:t}=e;return t(["Nascosto"])},HOME:e=>{const{normalize:t}=e;return t(["Home"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:t}=e;return t(["Dal più basso al più alto"])},DESC:e=>{const{normalize:t}=e;return t(["Dal più alto al più basso"])},LABEL:e=>{const{normalize:t}=e;return t(["ordina"])}},ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["ordina per"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["per pagina"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Totale"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Dashboard"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["Questo mese"])}},c={APP_ERROR:e=>{const{normalize:t}=e;return t(["L'applicazione ha riscontrato dei problemi.
                                                                                Per favore riprova più tardi o contatta l'amministratore."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Pagina non trovata"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Workout non trovato"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Qualcosa è andato storto"])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Errore. Per favore riprova o contatta l'amministratore."])}},u={ADD_A_NEW_APP:e=>{const{normalize:t}=e;return t(["Aggiungi una nuova applicazione OAuth2"])},APP:{CLIENT_ID:e=>{const{normalize:t}=e;return t(["Id"])},CLIENT_SECRET:e=>{const{normalize:t}=e;return t(["Secret"])},DESCRIPTION:e=>{const{normalize:t}=e;return t(["Descrizione applicazione"])},ISSUE_AT:e=>{const{normalize:t}=e;return t(["Issue at"])},NAME:e=>{const{normalize:t}=e;return t(["Nome applicazione"])},REDIRECT_URL:e=>{const{normalize:t}=e;return t(["URL redirect"])},SCOPE:{LABEL:e=>{const{normalize:t}=e;return t(["Scope"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["da permessi di scrittura alla configurazioen dell'applicazione."])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["da permessi di lettura a auth endpoints."])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["da permessi di scrittura a auth endpoints."])},"users:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["da permessi di lettura a users endpoints."])},"users:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["da permessi di scrittura a usersendpoints."])},"workouts:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["da permessi di lettura a workouts endpoints."])},"workouts:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["da permessi di scrittura a workouts endpoints."])}},URL:e=>{const{normalize:t}=e;return t(["URL applicazione"])}},APPS_LIST:e=>{const{normalize:t}=e;return t(["Applicazioni OAuth2"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:t}=e;return t(["Applicazione creata. Sii certo di copiare il secret ora, non lo rivedrai più."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Sei sicuro di voler eliminare quest'app?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["L'applicazione ",n(r(0))," sta chiedendo:"])},AUTHORIZE_APP:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Autorizzi ",n(r(0))," ad utilizzare il tuo account?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:t}=e;return t(["copia nella clipboard"])},DELETE_APP:e=>{const{normalize:t}=e;return t(["Elimina applicazione"])},NEW_APP:e=>{const{normalize:t}=e;return t(["Aggiungi applicazione"])},NO_APP:e=>{const{normalize:t}=e;return t(["Applicazione non trovata!"])},NO_APPS:e=>{const{normalize:t}=e;return t(["nessuna applicazione"])},NO_DESCRIPTION:e=>{const{normalize:t}=e;return t(["nessuna descrizione"])},REVOKE_ALL_TOKENS:e=>{const{normalize:t}=e;return t(["Rimuovi tutti i tokens"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Sei sicuro di voler rimuovere tutti i token?"])},TOKENS_REVOKED:e=>{const{normalize:t}=e;return t(["Tutti i token esistenti associati sono stati rimossi."])}},m={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Ciclismo (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Ciclismo (Trasporto)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:t}=e;return t(["Cicliscmo (Virtuale)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Escursioni"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking (Elettrica)"])}},Mountaineering:{LABEL:e=>{const{normalize:t}=e;return t(["Alpinismo"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Canottaggio"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Corsa"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Sci (Alpino)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Sci (Cross Country)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Racchette da neve"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Sentieri"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Camminata"])}}},d={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistiche"])},TIME_FRAMES:{month:e=>{const{normalize:t}=e;return t(["mese"])},week:e=>{const{normalize:t}=e;return t(["settimana"])},year:e=>{const{normalize:t}=e;return t(["anno"])}}},E={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Non hai ricevuto istruzioni?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Controlla la tua email. Una nuova email di conferma è stata inviata all'indirizzo specificato."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Hai già un account?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Sei sicuro di voler eliminare il tuo account? Tutti i dati saranno eliminati, quest'azione non può essere annullata"])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Password corrente"])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Inserisci un indirizzo email valido."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Inserisci una password"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Filtra per username"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["nascondi password"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Token invalido, per favore richiedi un nuovo reset della password."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Lingua"])},LOGIN:e=>{const{normalize:t}=e;return t(["Login"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Logout"])},LOG_IN:e=>{const{normalize:t}=e;return t(["log in"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["Nuova password"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["Nessun utente trovato."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Password"])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Password dimenticata?"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["Inserisci almeno 8 caratteri."])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Reset password"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Controlla la tua email. Se l'indirizzo inserito è nel nostro database, riceverai un'email con un link per resettare la tua password."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:t}=e;return t(["media"])},GOOD:e=>{const{normalize:t}=e;return t(["buona"])},LABEL:e=>{const{normalize:t}=e;return t(["sicurezza password"])},STRONG:e=>{const{normalize:t}=e;return t(["forte"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:t}=e;return t(["Inserisci qualche maiuscola."])},anotherWord:e=>{const{normalize:t}=e;return t(["Aggiungi più parole che sono meno comuni."])},associatedYears:e=>{const{normalize:t}=e;return t(["Evita date che possono essere associate a te."])},capitalization:e=>{const{normalize:t}=e;return t(["Inserisci maiuscole oltre alla prima lettera."])},dates:e=>{const{normalize:t}=e;return t(["Evita date che possono essere associate a te."])},l33t:e=>{const{normalize:t}=e;return t(["Evita sostituzioni prevedibili, per esempio, ","@"," per la a."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Usa patterns più lunghi e cambia direzione di scrittura più volte."])},noNeed:e=>{const{normalize:t}=e;return t(["Puoi creare password sicure senza utilizzare simboli, numeri, o maiuscole."])},pwned:e=>{const{normalize:t}=e;return t(["È consigliabile cambiare questa password se è utilizzata per altro."])},recentYears:e=>{const{normalize:t}=e;return t(["Evita date recenti."])},repeated:e=>{const{normalize:t}=e;return t(["Evita di ripetere lettere e parole."])},reverseWords:e=>{const{normalize:t}=e;return t(["Evita di scrivere parole al contrario."])},sequences:e=>{const{normalize:t}=e;return t(["Evita sequenze di caratteri comuni."])},useWords:e=>{const{normalize:t}=e;return t(["Usa più parole, ma evita frasi comuni."])}},WEAK:e=>{const{normalize:t}=e;return t(["bassa"])}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["La tua password è stata aggiornata. Clicca ",n(r(0))," per effettuare il login."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Tipo di account"])},ASCENT_DATA:e=>{const{normalize:t}=e;return t(["Dati relativi alle salite (singoli, totale)"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Ritorna al profilo"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Data di nascita"])},DATE_FORMAT:e=>{const{normalize:t}=e;return t(["Formato data"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifica profilo"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Modifica preferenze"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Modifica preferenze sport"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Per favore ",n(r(0))," per cambiare di nuovo la tua mail o contatta l'amministratore"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["Primo giorno della settimana"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["Nome"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Lingua"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Cognome"])},LOCATION:e=>{const{normalize:t}=e;return t(["Posizione"])},MONDAY:e=>{const{normalize:t}=e;return t(["Lunedì"])},PICTURE:e=>{const{normalize:t}=e;return t(["Foto"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Foto"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Rimuovi foto"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Aggiorna foto"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Preferenze"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Profilo"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Data di registrazione"])},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["azione"])},COLOR:e=>{const{normalize:t}=e;return t(["colore"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["disattivato dall'amministratore"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["attivo"])},LABEL:e=>{const{normalize:t}=e;return t(["etichetta"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["Limite minimo di velocità"])}},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Preferenze sport"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Il tuo account è stato aggiornato con successo. Per favore controlla la tua email per confermare il tuo indirizzo email."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Il tuo account è stato creato con successo."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["Un link per attivare il tuo account è stato inviato all'indirizzo specificato."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Il tuo account è stato aggiornato con successo."])},SUNDAY:e=>{const{normalize:t}=e;return t(["Domenica"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["account"])},APPS:e=>{const{normalize:t}=e;return t(["apps"])},PICTURE:e=>{const{normalize:t}=e;return t(["foto"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["preferenze"])},PROFILE:e=>{const{normalize:t}=e;return t(["profilo"])},SPORTS:e=>{const{normalize:t}=e;return t(["sports"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Timezone"])},UNITS:{IMPERIAL:e=>{const{normalize:t}=e;return t(["Sistema imperiale (ft, mi, mph, °F)"])},LABEL:e=>{const{normalize:t}=e;return t(["Unità per la distanza"])},METRIC:e=>{const{normalize:t}=e;return t(["Sistema metrico (m, km, m/s, °C)"])}}},REGISTER:e=>{const{normalize:t}=e;return t(["Registra"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Mi dispiace, la registrazione è disabilitata."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Re-invia email di conferma dell'account"])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Resetta password"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["mostra password"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["Questo account è inattivo."])},USERNAME:e=>{const{normalize:t}=e;return t(["Username"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(['Sono richiesti da 3 a 30 caratteri, è permesso utilizzare solo caratteri alfanumerici ed il simbolo "_".'])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["foto profilo"])}},S={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Aggiungi un workout"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["analisi"])},ASCENT:e=>{const{normalize:t}=e;return t(["salita"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["velocità media"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["vel. media"])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["ritorna al workout"])},DATE:e=>{const{normalize:t}=e;return t(["data"])},DESCENT:e=>{const{normalize:t}=e;return t(["discesa"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["mostra filtri"])},DISTANCE:e=>{const{normalize:t}=e;return t(["distanza"])},DURATION:e=>{const{normalize:t}=e;return t(["durata"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Modifica il workout"])},ELEVATION:e=>{const{normalize:t}=e;return t(["elevazione"])},END:e=>{const{normalize:t}=e;return t(["fine"])},FROM:e=>{const{normalize:t}=e;return t(["da"])},GPX_FILE:e=>{const{normalize:t}=e;return t(["file .gpx"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["nascondi filtri"])},INVALID_DISTANCE:e=>{const{normalize:t}=e;return t(["La distanza dev'essere maggiore di 0"])},INVALID_DURATION:e=>{const{normalize:t}=e;return t(["La durata dev'essere maggiore di 0"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Ultimi workout"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Carica più workout"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitudine massima"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["file massimi"])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["dimensione massima"])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["velocità massima"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitudine minima"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Nessun segmento successivo"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Prossimo workout"])},NOTES:e=>{const{normalize:t}=e;return t(["note"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(['data dal file gpx, senza "pulizia"'])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["Nessun file scelto"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["nessuna cartella all'interno"])},NO_MAP:e=>{const{normalize:t}=e;return t(["Nessuna mappa"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Nessun segmento successivo"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Nessun workout successivo"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["Nessuna nota"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Nessun segmento precedente"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Nessun workout precedente"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["Nessun record."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["Nessun workout."])},PAUSES:e=>{const{normalize:t}=e;return t(["pause"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Segmento precedente"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Workout precedente"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Vel. media"])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Distanza più lunga"])},RECORD_HA:e=>{const{normalize:t}=e;return t(["Salita più alta"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Durata più lunga"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Vel. massima"])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["caratteri rimanenti"])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["segmento"]),t(["segmenti"])])},SPEED:e=>{const{normalize:t}=e;return t(["velocità"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["sport"]),t(["sports"])])},START:e=>{const{normalize:t}=e;return t(["inizio"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Inizio e fine"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["partenza asse elevazione a 0"])},TITLE:e=>{const{normalize:t}=e;return t(["titolo"])},TO:e=>{const{normalize:t}=e;return t(["a"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["durata totale"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Carica file!"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["cielo chiaro"])},"clear-night":e=>{const{normalize:t}=e;return t(["notte chiara"])},cloudy:e=>{const{normalize:t}=e;return t(["nuvoloso"])},fog:e=>{const{normalize:t}=e;return t(["nebbia"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["parzialmente nuvoloso"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["notte parzialmente nuvolosa"])},rain:e=>{const{normalize:t}=e;return t(["pioggia"])},sleet:e=>{const{normalize:t}=e;return t(["nevischio"])},snow:e=>{const{normalize:t}=e;return t(["neve"])},wind:e=>{const{normalize:t}=e;return t(["vento"])}},HUMIDITY:e=>{const{normalize:t}=e;return t(["umidità"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["temperatura"])},WIND:e=>{const{normalize:t}=e;return t(["vento"])},WIND_DIRECTIONS:{E:e=>{const{normalize:t}=e;return t(["E"])},ENE:e=>{const{normalize:t}=e;return t(["ENE"])},ESE:e=>{const{normalize:t}=e;return t(["ESE"])},N:e=>{const{normalize:t}=e;return t(["N"])},NE:e=>{const{normalize:t}=e;return t(["NE"])},NNE:e=>{const{normalize:t}=e;return t(["NNE"])},NNW:e=>{const{normalize:t}=e;return t(["NNW"])},NW:e=>{const{normalize:t}=e;return t(["NW"])},S:e=>{const{normalize:t}=e;return t(["S"])},SE:e=>{const{normalize:t}=e;return t(["SE"])},SSE:e=>{const{normalize:t}=e;return t(["SSE"])},SSW:e=>{const{normalize:t}=e;return t(["SSW"])},SW:e=>{const{normalize:t}=e;return t(["SW"])},W:e=>{const{normalize:t}=e;return t(["W"])},WNW:e=>{const{normalize:t}=e;return t(["WNW"])},WSW:e=>{const{normalize:t}=e;return t(["WSW"])}}},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["senza file .gpx"])},WITH_GPX:e=>{const{normalize:t}=e;return t(["con file .gpx"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["workout"]),t(["workouts"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["data workout"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Sei sicuro di voler eliminare questo workout?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t(["file .zip"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["o file .zip contenente files .gpx"])}},_={about:r,admin:a,api:o,buttons:i,common:s,dashboard:l,error:c,oauth2:u,sports:m,statistics:d,user:E,workouts:S}},8891:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return _}});var r={},a={},o={},i={},s={},l={},c={},u={},m={},d={},E={},S={},_={about:r,admin:a,api:o,buttons:i,common:s,dashboard:l,error:c,oauth2:u,sports:m,statistics:d,user:E,workouts:S}},701:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return _}});var r={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Contacteer uw administrator"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee is zelf-gehoste buitenshuis activiteiten tracker."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Onder ",n(r(0))," licentie "])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Broncode"])}},a={ACTION:e=>{const{normalize:t}=e;return t(["Actie"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Activeer account"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Ingeschakeld"])},ADMIN:e=>{const{normalize:t}=e;return t(["Beheer"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Instellingen"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Toevoegen/verwijderen van administrator rechten, verwijder gebruikersaccount."])},APPLICATION:e=>{const{normalize:t}=e;return t(["Applicatie"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Administrator email voor contact"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. aantal bestanden in zip archief"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Bij 0, geen limiet op registratie."])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. aantal actieve gebruikers"])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["geen contact email"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. grootte van bestanden voor upload (in Mb)"])},TITLE:e=>{const{normalize:t}=e;return t(["Applicatie configureren"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. grootte van zip archief (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Terug naar beheer"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Weet u zeker dat u de account ",n(r(0))," wilt wissen? Alle gegevens worden verwijderd, dit kan niet ongedaan gemaakt worden."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Weet u zeker dat u het wachtwoord voor ",n(r(0))," wilt resetten?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Huidige email"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Verwijder gebruiker"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["Emails verzenden is uitgeschakeld."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Aan- of uitzetten van sporten."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["Nieuwe email"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Het wachtwoord werd gereset."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Registratie is momenteel uitgeschakeld."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Registratie is momenteel ingeschakeld."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset wachtwoord"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Ingeschakeld"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["Trainingen aanwezig"])},IMAGE:e=>{const{normalize:t}=e;return t(["Afbeelding"])},LABEL:e=>{const{normalize:t}=e;return t(["Label"])}},TITLE:e=>{const{normalize:t}=e;return t(["Beheer sporten"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["De applicatie configureren (maximum aantal geregistreerde gebruikers, maximum bestandsgrootte)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Update email"])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["gebruiker"]),t(["gebruikers"])])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["admin status"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["Registratie datum"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["Account status"])},USERNAME:e=>{const{normalize:t}=e;return t(["gebruikersnaam"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["aantal trainingen"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Admin rechten toevoegen"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Verwijder admin rechten"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Het emailadres werd bijgewerkt."])}},o={ERROR:{"Network Error":e=>{const{normalize:t}=e;return t(["Netwerk fout."])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Fout. Probeer opnieuw of contacteer de administrator."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:t}=e;return t(["Ten minste 1 bestand in het zip archief is groter dan toegelaten, gelieve de bestanden te controleren."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Email: een geldige email is vereist."])},"error during gpx file parsing":e=>{const{normalize:t}=e;return t(["Fout bij het verwerken van het gpx bestand."])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Fout bij verwerken van gpx."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Fout bij ophalen van configuratie."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Fout bij het updaten van de configuratie"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Fout, probeer opnieuw of contacteer de administrator."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Fout, registratie is uitgeschakeld."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["Bestandsformaat niet toegelaten."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["Bestandsgrootte is groter dan toegestaan."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Ongeldige inloggegevens."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Ingegeven data is ongeldig."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Ongeldige token, log opnieuw in."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Ongeldige token, log opnieuw in."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["Het nieuwe email adres dient te verschillen van het oude"])},"no file part":e=>{const{normalize:t}=e;return t(["Geen bestand opgegeven."])},"no selected file":e=>{const{normalize:t}=e;return t(["Geen bestand geselecteerd."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Wachtwoord: het wachtwoord en de bevestiging komen niet overeen."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Geef een geldig auth token."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signatuur verlopen. Log opnieuw in."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Sorry, deze gebruikersnaam is al in gebruik."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Deze sport bestaat niet."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Succesvol geregistreerd."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:t}=e;return t(["Het aantal bestanden in het zip archief overschrijdt de limiet."])},"user does not exist":e=>{const{normalize:t}=e;return t(["Gebruiker bestaat niet."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["Een geldige email is vereist voor admin contact informatie"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["U kunt uw account niet verwijderen, geen andere gebruiker heeft admin rechten."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["U hebt geen machtigingen."])}},PAGINATION:{NEXT:e=>{const{normalize:t}=e;return t(["volgende"])},PREVIOUS:e=>{const{normalize:t}=e;return t(["vorige"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Herzend bevestigings email"])},AUTHORIZE:e=>{const{normalize:t}=e;return t(["Toekennen"])},BACK:e=>{const{normalize:t}=e;return t(["Terug"])},CANCEL:e=>{const{normalize:t}=e;return t(["Annuleren"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Verwijder filters"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Verwijder mijn account"])},DISABLE:e=>{const{normalize:t}=e;return t(["Uitzetten"])},EDIT:e=>{const{normalize:t}=e;return t(["Bewerken"])},ENABLE:e=>{const{normalize:t}=e;return t(["Aanzetten"])},FILTER:e=>{const{normalize:t}=e;return t(["Filter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Inloggen"])},NO:e=>{const{normalize:t}=e;return t(["Nee"])},REGISTER:e=>{const{normalize:t}=e;return t(["Registreer"])},RESET:e=>{const{normalize:t}=e;return t(["Reset"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Uploaden"])},YES:e=>{const{normalize:t}=e;return t(["Ja"])}},s={ABOUT:e=>{const{normalize:t}=e;return t(["over"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bevestiging"])},CONTACT:e=>{const{normalize:t}=e;return t(["contacteer"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["dag"]),t(["dagen"])])},DISPLAYED:e=>{const{normalize:t}=e;return t(["Weergegeven"])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentatie"])},HERE:e=>{const{normalize:t}=e;return t(["hier"])},HIDDEN:e=>{const{normalize:t}=e;return t(["Verborgen"])},HOME:e=>{const{normalize:t}=e;return t(["Startscherm"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:t}=e;return t(["oplopend"])},DESC:e=>{const{normalize:t}=e;return t(["aflopend"])},LABEL:e=>{const{normalize:t}=e;return t(["sorteer"])}},ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["sorteer op"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["per pagina"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Totaal"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Dashboard"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["Deze maand"])}},c={APP_ERROR:e=>{const{normalize:t}=e;return t(["Er heeft zich een onbekende fout voorgedaan.
                                                                                Probeer aub later opnieuw of contacteer de administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Pagina niet gevonden"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Training niet gevonden"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Er ging iets mis"])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Fout. Probeer opnieuw of contacteer de administrator."])}},u={ADD_A_NEW_APP:e=>{const{normalize:t}=e;return t(["Nieuwe OAuth2 app toevoegen"])},APP:{CLIENT_ID:e=>{const{normalize:t}=e;return t(["Id"])},CLIENT_SECRET:e=>{const{normalize:t}=e;return t(["Geheim"])},DESCRIPTION:e=>{const{normalize:t}=e;return t(["App omschrijving"])},ISSUE_AT:e=>{const{normalize:t}=e;return t(["Probleem bij"])},NAME:e=>{const{normalize:t}=e;return t(["Naam van de app"])},REDIRECT_URL:e=>{const{normalize:t}=e;return t(["Doorverwijs URL"])},SCOPE:{LABEL:e=>{const{normalize:t}=e;return t(["Omvang"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["geeft toestemming tot aanpassen van de applicatie instellingen."])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["staat leestoegang toe aan auth endpoints."])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["staat schrijftoegang toe aan auth endpoints."])},"users:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["staat leestoegang toe aan users endpoints."])},"users:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["staat schrijftoegang toe aan users endpoints."])},"workouts:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["staat leestoegang toe aan workouts endpoints."])},"workouts:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["staat schrijftoegang toe aan workouts endpoints."])}},URL:e=>{const{normalize:t}=e;return t(["App URL"])}},APPS_LIST:e=>{const{normalize:t}=e;return t(["OAuth2 apps"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:t}=e;return t(["App succesvol aangemaakt. Kopieer zeker de geheime sleutel, deze zal later niet meer verschijnen."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Weet u zeker dat u deze app wilt verwijderen?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["De app ",n(r(0))," vraagt:"])},AUTHORIZE_APP:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Toegang geven aan ",n(r(0))," tot uw gebruikersaccount?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:t}=e;return t(["kopieer naar klembord"])},DELETE_APP:e=>{const{normalize:t}=e;return t(["Verwijder app"])},NEW_APP:e=>{const{normalize:t}=e;return t(["Voeg een app toe"])},NO_APP:e=>{const{normalize:t}=e;return t(["App niet gevonden!"])},NO_APPS:e=>{const{normalize:t}=e;return t(["geen apps"])},NO_DESCRIPTION:e=>{const{normalize:t}=e;return t(["geen beschrijving"])},REVOKE_ALL_TOKENS:e=>{const{normalize:t}=e;return t(["Verwijder alle tokens"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Weet u zeker dat u alle tokens wilt intrekken?"])},TOKENS_REVOKED:e=>{const{normalize:t}=e;return t(["Alle bestaande tokens werden ingetrokken."])}},m={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Fietsen (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Fietsen (Transport)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:t}=e;return t(["Fietsen (Virtueel)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Trektocht"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["Mountainbiken"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["Mountainbiken (Elektrisch)"])}},Mountaineering:{LABEL:e=>{const{normalize:t}=e;return t(["Bergbeklimmen"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Roeien"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Lopen"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiën (Alpine)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiën (Cross Country)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Sneeuwschoenen"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Wandelen"])}}},d={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistieken"])},TIME_FRAMES:{month:e=>{const{normalize:t}=e;return t(["maand"])},week:e=>{const{normalize:t}=e;return t(["week"])},year:e=>{const{normalize:t}=e;return t(["jaar"])}}},E={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Geen instructies ontvangen?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Controleer uw email. Een nieuwe bevestigingsmail werd verzonden naar het opgegeven adres."])},ADMIN:e=>{const{normalize:t}=e;return t(["Beheer"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Al een account aangemaakt?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Weet u zeker dat u uw account wilt verwijderen? Alle data wordt verwijderd, dit kan niet ongedaan worden"])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Huidig wachtwoord"])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Geef een geldig email adres op."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Geef een paswoord in"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Filter op gebruikersnaam"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["verberg wachtwoord"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Ongeldig token, vraag een nieuwe wachtwoord reset aan."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Taal"])},LOGIN:e=>{const{normalize:t}=e;return t(["Inloggen"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Uitloggen"])},LOG_IN:e=>{const{normalize:t}=e;return t(["inloggen"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["Nieuw wachtwoord"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["Geen gebruikers gevonden."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Wachtwoord"])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Wachtwoord vergeten?"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["Tenminste 8 karakters vereist."])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Wachtwoord reset"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Controleer uw inbox. Als uw email adres in onze database zit, hebt u een email ontvangen om uw wachtwoord te resetten."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:t}=e;return t(["gemiddeld"])},GOOD:e=>{const{normalize:t}=e;return t(["goed"])},LABEL:e=>{const{normalize:t}=e;return t(["wachtwoord sterkte"])},STRONG:e=>{const{normalize:t}=e;return t(["sterk"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:t}=e;return t(["Gebruik enkele hoofdletters."])},anotherWord:e=>{const{normalize:t}=e;return t(["Voeg meer niet gangbare woorden toe."])},associatedYears:e=>{const{normalize:t}=e;return t(["Vermijd jaartallen met een persoonlijke betekenis."])},capitalization:e=>{const{normalize:t}=e;return t(["Gebruik niet enkel voor de eerste letter een hoofdletter."])},dates:e=>{const{normalize:t}=e;return t(["Vermijd persoonlijke gegevens en jaartallen."])},l33t:e=>{const{normalize:t}=e;return t(["Vermijd voorspelbare vervangingen, zoals ","@"," voor de letter a."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Gebruik langere patronen en verander de richting van typen meerdere malen."])},noNeed:e=>{const{normalize:t}=e;return t(["U kan sterke wachtwoorden maken zonder gebruik van symbolen, nummers, of hoofdletters."])},pwned:e=>{const{normalize:t}=e;return t(["Als u dit wachtwoord ergens anders gebruikt zou u het beter veranderen."])},recentYears:e=>{const{normalize:t}=e;return t(["Vermijd recente jaartallen."])},repeated:e=>{const{normalize:t}=e;return t(["Vermijd opeenvolgende woorden en karakters."])},reverseWords:e=>{const{normalize:t}=e;return t(["Vermijd gangbare woorden die achterstevoren geschreven zijn."])},sequences:e=>{const{normalize:t}=e;return t(["Vermijd voorspelbare opeenvolgingen."])},useWords:e=>{const{normalize:t}=e;return t(["Gebruik verschillende woorden, maar vermijd vaak gebruikte zinnen."])}},WEAK:e=>{const{normalize:t}=e;return t(["zwak"])}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Uw wachtwoord werd aangepast. Klik ",n(r(0))," om in te loggen."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Account aanpassen"])},ASCENT_DATA:e=>{const{normalize:t}=e;return t(["Hoogte gerelateerde data (opnames, totaal)"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Terug naar profiel"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Geboortedatum"])},DATE_FORMAT:e=>{const{normalize:t}=e;return t(["Weergaveformaat datum"])},EDIT:e=>{const{normalize:t}=e;return t(["Profiel aanpassen"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Voorkeuren wijzigen"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Sport voorkeuren wijzigen"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Gelieve ",n(r(0))," om uw email adres opnieuw te wijzigen of contacteer uw administrator"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["Eerste dag van de week"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["Voornaam"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Taal"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Achternaam"])},LOCATION:e=>{const{normalize:t}=e;return t(["Locatie"])},MONDAY:e=>{const{normalize:t}=e;return t(["Maandag"])},PICTURE:e=>{const{normalize:t}=e;return t(["Afbeelding"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Afbeelding aanpassen"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Afbeelding verwijderen"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Afbeelding veranderen"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Voorkeuren aanpassen"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Profiel aanpassen"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Datum registratie"])},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["actie"])},COLOR:e=>{const{normalize:t}=e;return t(["kleur"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["uitgeschakeld door admin"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["actief"])},LABEL:e=>{const{normalize:t}=e;return t(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["snelheidsgrens voor stilstand"])}},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Sport voorkeuren aanpassen"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Uw account werd succesvol bijgewerkt. Controleer uw inbox om uw nieuw email adres te bevestigen."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Uw account werd succesvol aangemaakt."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["Een link om uw account te activeren werd doorgestuurd naar opgegeven email adres."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Uw account werd succesvol bijgewerkt."])},SUNDAY:e=>{const{normalize:t}=e;return t(["Zondag"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["account"])},APPS:e=>{const{normalize:t}=e;return t(["apps"])},PICTURE:e=>{const{normalize:t}=e;return t(["afbeelding"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["voorkeuren"])},PROFILE:e=>{const{normalize:t}=e;return t(["profiel"])},SPORTS:e=>{const{normalize:t}=e;return t(["sporten"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Tijdzone"])},UNITS:{IMPERIAL:e=>{const{normalize:t}=e;return t(["Imperialistisch systeem (ft, mi, mph, °F)"])},LABEL:e=>{const{normalize:t}=e;return t(["Eenheid voor afstand"])},METRIC:e=>{const{normalize:t}=e;return t(["Metrisch systeem (m, km, m/s, °C)"])}}},REGISTER:e=>{const{normalize:t}=e;return t(["Registreren"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Sorry, registreren is uitgeschakeld."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Opnieuw zenden van account bevestigingsmail"])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset uw wachtwoord"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["toon wachtwoord"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["Deze account is niet actief."])},USERNAME:e=>{const{normalize:t}=e;return t(["Gebruikersnaam"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(['3 tot 30 karakters vereist, enkel alfanumerieke karakters en het underscore karakter "_" zijn toegestaan.'])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["gebruikersafbeelding"])}},S={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Training toevoegen"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["analyse"])},ASCENT:e=>{const{normalize:t}=e;return t(["geklommen"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["gemiddelde snelheid"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["gem. snelheid"])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["Terug naar training"])},DATE:e=>{const{normalize:t}=e;return t(["datum"])},DESCENT:e=>{const{normalize:t}=e;return t(["gedaald"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["toon filters"])},DISTANCE:e=>{const{normalize:t}=e;return t(["afstand"])},DURATION:e=>{const{normalize:t}=e;return t(["duur"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Training aanpassen"])},ELEVATION:e=>{const{normalize:t}=e;return t(["hoogte"])},END:e=>{const{normalize:t}=e;return t(["einde"])},FROM:e=>{const{normalize:t}=e;return t(["van"])},GPX_FILE:e=>{const{normalize:t}=e;return t([".gpx bestand"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["verberg filters"])},INVALID_ASCENT_OR_DESCENT:e=>{const{normalize:t}=e;return t(["Beide waarden moeten opgegeven worden en dienen groter dan of gelijk aan 0 te zijn."])},INVALID_DISTANCE:e=>{const{normalize:t}=e;return t(["De afstand moet groter zijn dan 0"])},INVALID_DURATION:e=>{const{normalize:t}=e;return t(["De duur moet langer zijn dan 0 seconden"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Laatste trainingen"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Toon meer trainingen"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["max. hoogte"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["max. aantal bestanden"])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["max. grootte"])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["max. snelheid"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["min. hoogte"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Geen volgend segment"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Volgende training"])},NOTES:e=>{const{normalize:t}=e;return t(["notities"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["data vanuit gpx, zonder op te schonen"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["Geen bestand opgegeven"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["geen map aanwezig"])},NO_MAP:e=>{const{normalize:t}=e;return t(["Geen kaart"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Geen volgend segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Geen volgende training"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["Geen notities"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Geen vorig segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Geen vorige training"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["Geen records."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["Geen trainingen."])},PAUSES:e=>{const{normalize:t}=e;return t(["pauzes"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Vorig segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Vorige training"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Gem. snelheid"])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Langste afstand"])},RECORD_HA:e=>{const{normalize:t}=e;return t(["Hoogst geklommen"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Langste duur"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Max. snelheid"])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["resterende karakters"])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["segment"]),t(["segmenten"])])},SPEED:e=>{const{normalize:t}=e;return t(["snelheid"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["sport"]),t(["sporten"])])},START:e=>{const{normalize:t}=e;return t(["start"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Start en aankomst"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["Zet hoogte-as vast op 0"])},TITLE:e=>{const{normalize:t}=e;return t(["titel"])},TO:e=>{const{normalize:t}=e;return t(["aan"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["totale duur"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Eén uploaden!"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["heldere dag"])},"clear-night":e=>{const{normalize:t}=e;return t(["heldere nacht"])},cloudy:e=>{const{normalize:t}=e;return t(["bewolkt"])},fog:e=>{const{normalize:t}=e;return t(["mist"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["gedeeltelijk bewolkte dag"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["gedeeltelijk bewolkte nacht"])},rain:e=>{const{normalize:t}=e;return t(["regen"])},sleet:e=>{const{normalize:t}=e;return t(["natte sneeuw"])},snow:e=>{const{normalize:t}=e;return t(["sneeuw"])},wind:e=>{const{normalize:t}=e;return t(["wind"])}},HUMIDITY:e=>{const{normalize:t}=e;return t(["vochtigheid"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["temperatuur"])},WIND:e=>{const{normalize:t}=e;return t(["wind"])},WIND_DIRECTIONS:{E:e=>{const{normalize:t}=e;return t(["O"])},ENE:e=>{const{normalize:t}=e;return t(["ONO"])},ESE:e=>{const{normalize:t}=e;return t(["OZO"])},N:e=>{const{normalize:t}=e;return t(["N"])},NE:e=>{const{normalize:t}=e;return t(["NO"])},NNE:e=>{const{normalize:t}=e;return t(["NNO"])},NNW:e=>{const{normalize:t}=e;return t(["NNW"])},NW:e=>{const{normalize:t}=e;return t(["NW"])},S:e=>{const{normalize:t}=e;return t(["Z"])},SE:e=>{const{normalize:t}=e;return t(["ZO"])},SSE:e=>{const{normalize:t}=e;return t(["ZZO"])},SSW:e=>{const{normalize:t}=e;return t(["ZZW"])},SW:e=>{const{normalize:t}=e;return t(["ZW"])},W:e=>{const{normalize:t}=e;return t(["W"])},WNW:e=>{const{normalize:t}=e;return t(["WNW"])},WSW:e=>{const{normalize:t}=e;return t(["WZW"])}}},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["zonder .gpx bestand"])},WITH_GPX:e=>{const{normalize:t}=e;return t(["met .gpx bestand"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["training"]),t(["trainingen"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["datum training"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Weet u zeker dat u deze training wilt verwijderen?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t([".zip bestand"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["of .zip archief met .gpx bestanden"])}},_={about:r,admin:a,api:o,buttons:i,common:s,dashboard:l,error:c,oauth2:u,sports:m,statistics:d,user:E,workouts:S}},5326:function(e,t,n){"use strict";var r=n(3148),a=n(7028),o=n(9963),i=n(2343),s=n(5205);(0,s.z)("/service-worker.js",{ready(){console.log("App is being served from cache by a service worker.\nFor more details, visit https://goo.gl/AFskqB")},registered(){console.log("Service worker has been registered.")},cached(){console.log("Content has been cached for offline use.")},updatefound(){console.log("New content is downloading.")},updated(){console.log("New content is available; please refresh.")},offline(){console.log("No internet connection found. App is running in offline mode.")},error(e){console.error("Error during service worker registration:",e)}});var l=n(6252),c=n(2262),u=n(3577);const m=e=>((0,l.dD)("data-v-2c73279e"),e=e(),(0,l.Cn)(),e),d={id:"footer"},E={class:"footer-items"},S={class:"footer-item"},_=m((()=>(0,l._)("strong",null,"FitTrackee",-1))),T=m((()=>(0,l._)("div",{class:"footer-item bullet"},"•",-1))),p={class:"footer-item"},A={key:0,class:"footer-item bullet"},O={key:1,class:"footer-item"},z=["href"],I=m((()=>(0,l._)("div",{class:"footer-item bullet"},"•",-1))),R={class:"footer-item"},g={href:"https://samr1.github.io/FitTrackee/",target:"_blank",rel:"noopener noreferrer"};var N=(0,l.aZ)({__name:"Footer",props:{version:null,adminContact:null},setup(e){const t=e,{adminContact:n,version:r}=(0,c.BK)(t);return(e,t)=>{const a=(0,l.up)("router-link");return(0,l.wg)(),(0,l.iD)("div",d,[(0,l._)("div",E,[(0,l._)("div",S,[_,(0,l.Uk)(" v"+(0,u.zw)((0,c.SU)(r)),1)]),T,(0,l._)("div",p,[(0,l.Wm)(a,{to:"/about"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("common.ABOUT")),1)])),_:1})]),(0,c.SU)(n)?((0,l.wg)(),(0,l.iD)("div",A,"•")):(0,l.kq)("",!0),(0,c.SU)(n)?((0,l.wg)(),(0,l.iD)("div",O,[(0,l._)("a",{href:`mailto:${(0,c.SU)(n)}`},(0,u.zw)(e.$t("common.CONTACT")),9,z)])):(0,l.kq)("",!0),I,(0,l._)("div",R,[(0,l._)("a",g,(0,u.zw)(e.$t("common.DOCUMENTATION")),1)])])])}}}),U=n(3744);const h=(0,U.Z)(N,[["__scopeId","data-v-2c73279e"]]);var C=h,w=(n(7658),n(6595)),D=n(5801),v=n(9917),f=n(6287);const P=e=>((0,l.dD)("data-v-ab6e62ae"),e=e(),(0,l.Cn)(),e),k={id:"nav"},L={class:"nav-container"},M={class:"nav-app-name"},b={class:"nav-items-close"},y=P((()=>(0,l._)("div",{class:"app-name"},"FitTrackee",-1))),G={key:0,class:"nav-items-group"},F=P((()=>(0,l._)("div",{class:"nav-item nav-separator"},null,-1))),W={class:"nav-items-user-menu"},B={key:0,class:"nav-items-group"},K={class:"nav-item nav-profile-img"},Y={key:1,class:"nav-items-group"},x=P((()=>(0,l._)("i",{class:"fa fa-language"},null,-1)));var H=(0,l.aZ)({__name:"NavBar",emits:["menuInteraction"],setup(e,{emit:t}){const n=(0,v.o)(),r=(0,l.Fl)((()=>n.getters[D.YN.GETTERS.AUTH_USER_PROFILE])),a=(0,l.Fl)((()=>n.getters[D.YN.GETTERS.IS_AUTHENTICATED])),o=(0,l.Fl)((()=>n.getters[D.SY.GETTERS.LANGUAGE])),i=(0,c.iH)(!1);function s(){i.value=!0,t("menuInteraction",!0)}function m(){i.value=!1,t("menuInteraction",!1)}function d(e){n.dispatch(D.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,e.value.toString())}function E(){n.dispatch(D.YN.ACTIONS.LOGOUT)}return(e,t)=>{const n=(0,l.up)("router-link"),S=(0,l.up)("Dropdown");return(0,l.wg)(),(0,l.iD)("div",k,[(0,l._)("div",L,[(0,l._)("div",M,[(0,l._)("div",{class:"nav-item app-name",onClick:t[0]||(t[0]=t=>e.$router.push("/"))}," FitTrackee ")]),(0,l._)("div",{class:(0,u.C_)(["nav-icon-open",{"menu-open":i.value}])},[(0,l._)("i",{class:"fa fa-bars hamburger-icon",onClick:t[1]||(t[1]=e=>s())})],2),(0,l._)("div",{class:(0,u.C_)(["nav-items",{"menu-open":i.value}])},[(0,l._)("div",b,[y,(0,l._)("i",{class:(0,u.C_)(["fa fa-close close-icon nav-item",{"menu-closed":!i.value}]),onClick:t[2]||(t[2]=e=>m())},null,2)]),(0,l._)("div",{class:"nav-items-app-menu",onClick:t[3]||(t[3]=e=>m())},[(0,c.SU)(a)?((0,l.wg)(),(0,l.iD)("div",G,[(0,l.Wm)(n,{class:"nav-item",to:"/"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("dashboard.DASHBOARD")),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/workouts"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,u.kC)(e.$t("workouts.WORKOUT",2))),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/statistics"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("statistics.STATISTICS")),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/workouts/add"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("workouts.ADD_WORKOUT")),1)])),_:1}),(0,c.SU)(a)&&(0,c.SU)(r).admin?((0,l.wg)(),(0,l.j4)(n,{key:0,class:"nav-item",to:"/admin"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("admin.ADMIN")),1)])),_:1})):(0,l.kq)("",!0),F])):(0,l.kq)("",!0)]),(0,l._)("div",W,[(0,c.SU)(a)?((0,l.wg)(),(0,l.iD)("div",B,[(0,l._)("div",K,[(0,l.Wm)(w.Z,{user:(0,c.SU)(r)},null,8,["user"])]),(0,l.Wm)(n,{class:"nav-item",to:"/profile",onClick:m},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,c.SU)(r).username),1)])),_:1}),(0,l._)("div",{class:"nav-item nav-link",onClick:E},(0,u.zw)(e.$t("user.LOGOUT")),1)])):((0,l.wg)(),(0,l.iD)("div",Y,[(0,l.Wm)(n,{class:"nav-item",to:"/login",onClick:m},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("user.LOGIN")),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/register",onClick:m},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("user.REGISTER")),1)])),_:1})])),(0,c.SU)(f.mT)&&(0,c.SU)(o)?((0,l.wg)(),(0,l.j4)(S,{key:2,class:"nav-item",options:(0,c.SU)(f.mT),selected:(0,c.SU)(o),onSelected:d},{default:(0,l.w5)((()=>[x])),_:1},8,["options","selected"])):(0,l.kq)("",!0)])],2)])])}}});const Z=(0,U.Z)(H,[["__scopeId","data-v-ab6e62ae"]]);var $=Z,V=n(7167);const q={id:"no-config"},j={class:"error-page"},X={class:"error-img"},J=["innerHTML"];var Q=(0,l.aZ)({__name:"NoConfig",setup(e){return(e,t)=>((0,l.wg)(),(0,l.iD)("div",q,[(0,l._)("div",j,[(0,l._)("div",X,[(0,l.Wm)(V.Z)]),(0,l._)("p",{class:"error-message",innerHTML:e.$t("error.APP_ERROR")},null,8,J)])]))}});const ee=(0,U.Z)(Q,[["__scopeId","data-v-47759238"]]);var te=ee;const ne=(0,l._)("div",{id:"top"},null,-1),re={key:0,class:"app-container"},ae={class:"app-loading"},oe={class:"container scroll"},ie=(0,l._)("i",{class:"fa fa-chevron-up","aria-hidden":"true"},null,-1),se=[ie];var le=(0,l.aZ)({__name:"App",setup(e){const t=(0,v.o)(),n=(0,l.Fl)((()=>t.getters[D.SY.GETTERS.APP_CONFIG])),r=(0,l.Fl)((()=>t.getters[D.SY.GETTERS.APP_LOADING])),a=(0,c.iH)(!1),o=(0,c.iH)(!1);function i(e){a.value=e}function s(e){return e.getBoundingClientRect().top=0}function m(){window.onscroll=()=>{const e=document.querySelector("#bottom");o.value=null!==e&&s(e)}}function d(){window.scrollTo({top:0,behavior:"smooth"}),setTimeout((()=>{o.value=!1}),300)}function E(){let e="en";try{const t=navigator.language.split("-")[0];t in f.v1&&(e=t)}catch(n){e="en"}t.dispatch(D.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,e)}return(0,l.wF)((()=>{E(),t.dispatch(D.SY.ACTIONS.GET_APPLICATION_CONFIG)})),(0,l.bv)((()=>m())),(e,t)=>{const s=(0,l.up)("Loader"),m=(0,l.up)("router-view");return(0,l.wg)(),(0,l.iD)(l.HY,null,[ne,(0,l.Wm)($,{onMenuInteraction:i}),(0,c.SU)(r)?((0,l.wg)(),(0,l.iD)("div",re,[(0,l._)("div",ae,[(0,l.Wm)(s)])])):((0,l.wg)(),(0,l.iD)("div",{key:1,class:(0,u.C_)(["app-container",{"hide-scroll":a.value}])},[(0,c.SU)(n)?((0,l.wg)(),(0,l.j4)(m,{key:0})):((0,l.wg)(),(0,l.j4)(te,{key:1}))],2)),(0,l._)("div",oe,[(0,l._)("div",{class:(0,u.C_)(["scroll-button",{"display-button":o.value}]),onClick:d},se,2)]),(0,c.SU)(n)?((0,l.wg)(),(0,l.j4)(C,{key:2,version:(0,c.SU)(n)?(0,c.SU)(n).version:"",adminContact:(0,c.SU)(n).admin_contact},null,8,["version","adminContact"])):(0,l.kq)("",!0)],64)}}});const ce=le;var ue=ce,me=n(2540),de=n(3654),Ee=n(2894);const Se={class:"alert-message"},_e=["innerHTML"];var Te=(0,l.aZ)({__name:"AlertMessage",props:{message:null},setup(e){const t=e,{message:n}=(0,c.BK)(t);return(e,t)=>((0,l.wg)(),(0,l.iD)("div",Se,[(0,l._)("div",{innerHTML:e.$t((0,c.SU)(n))},null,8,_e)]))}});const pe=(0,U.Z)(Te,[["__scopeId","data-v-69d7e4ff"]]);var Ae=pe,Oe=n(2531);const ze={class:"custom-textarea"},Ie=["id","name","maxLenght","disabled"],Re={class:"remaining-chars"};var ge=(0,l.aZ)({__name:"CustomTextArea",props:{name:null,charLimit:{default:500},disabled:{type:Boolean,default:!1},input:{default:""}},emits:["updateValue"],setup(e,{emit:t}){const n=e,r=(0,c.iH)("");function a(e){t("updateValue",e.target.value)}return(0,l.YP)((()=>n.input),(e=>{r.value=null===e?"":e})),(t,n)=>((0,l.wg)(),(0,l.iD)("div",ze,[(0,l.wy)((0,l._)("textarea",{id:e.name,name:e.name,maxLenght:e.charLimit,disabled:e.disabled,"onUpdate:modelValue":n[0]||(n[0]=e=>r.value=e),onInput:a},null,40,Ie),[[o.nr,r.value]]),(0,l._)("div",Re,(0,u.zw)(t.$t("workouts.REMAINING_CHARS"))+": "+(0,u.zw)(r.value.length)+"/"+(0,u.zw)(e.charLimit),1)]))}});const Ne=(0,U.Z)(ge,[["__scopeId","data-v-8cf5cc64"]]);var Ue=Ne,he=n(3649),Ce=(0,l.aZ)({__name:"Distance",props:{distance:null,unitFrom:null,useImperialUnits:{type:Boolean},digits:{default:2},displayUnit:{type:Boolean,default:!0},speed:{type:Boolean,default:!1},strong:{type:Boolean,default:!1}},setup(e){const t=e,{digits:n,displayUnit:r,distance:a,speed:o,strong:i,unitFrom:s,useImperialUnits:m}=(0,c.BK)(t),d=(0,l.Fl)((()=>m.value?he.Dl[s.value].defaultTarget:s.value)),E=(0,l.Fl)((()=>m.value?(0,he.sC)(a.value,s.value,d.value,n.value):parseFloat(a.value.toFixed(n.value))));return(e,t)=>((0,l.wg)(),(0,l.iD)(l.HY,null,[(0,l._)("span",{class:(0,u.C_)(["distance",{strong:(0,c.SU)(i)}])},(0,u.zw)((0,c.SU)(E)),3),(0,l.Uk)(" "+(0,u.zw)(" ")+" "),(0,c.SU)(r)?((0,l.wg)(),(0,l.iD)("span",{key:0,class:(0,u.C_)(["unit",{strong:(0,c.SU)(i)}])},(0,u.zw)((0,c.SU)(d))+(0,u.zw)((0,c.SU)(o)?"/h":""),3)):(0,l.kq)("",!0)],64))}});const we=(0,U.Z)(Ce,[["__scopeId","data-v-f46ff1d6"]]);var De=we,ve=n(2201);const fe={class:"dropdown-wrapper"},Pe={key:0,class:"dropdown-list"},ke=["onClick"];var Le=(0,l.aZ)({__name:"Dropdown",props:{options:null,selected:null},emits:{selected:e=>e},setup(e,{emit:t}){const n=e,r=(0,ve.yj)(),a=(0,c.iH)(!1),o=n.options.map((e=>e));function i(){a.value=!a.value}function s(e){t("selected",e),a.value=!1}return(0,l.YP)((()=>r.path),(()=>a.value=!1)),(t,n)=>((0,l.wg)(),(0,l.iD)("div",fe,[(0,l._)("div",{class:"dropdown-selected",onClick:i},[(0,l.WI)(t.$slots,"default")]),a.value?((0,l.wg)(),(0,l.iD)("ul",Pe,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)((0,c.SU)(o),((t,n)=>((0,l.wg)(),(0,l.iD)("li",{class:(0,u.C_)(["dropdown-item",{selected:t.value===e.selected}]),key:n,onClick:e=>s(t)},(0,u.zw)(t.label),11,ke)))),128))])):(0,l.kq)("",!0)]))}});const Me=(0,U.Z)(Le,[["__scopeId","data-v-9590c0e6"]]);var be=Me;const ye={class:"error-message"},Ge={key:0},Fe={key:1};var We=(0,l.aZ)({__name:"ErrorMessage",props:{message:null},setup(e){const t=e,{message:n}=(0,c.BK)(t);return(e,t)=>((0,l.wg)(),(0,l.iD)("div",ye,[Array.isArray((0,c.SU)(n))?((0,l.wg)(),(0,l.iD)("ul",Ge,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)((0,c.SU)(n),((t,n)=>((0,l.wg)(),(0,l.iD)("li",{key:n},(0,u.zw)(e.$t(t)),1)))),128))])):((0,l.wg)(),(0,l.iD)("div",Fe,(0,u.zw)(e.$t((0,c.SU)(n))),1))]))}});const Be=(0,U.Z)(We,[["__scopeId","data-v-2659a79a"]]);var Ke=Be;const Ye={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 491.737 491.737",style:{"enable-background":"new 0 0 491.737 491.737"},"xml:space":"preserve"},xe=(0,l._)("desc",{id:"cyclingSportDescription"}," silhouette of a person riding a bicycle ",-1),He=(0,l._)("g",null,[(0,l._)("path",{d:"M321.097,112.359c20.973,12.338,47.985,5.315,60.293-15.652c12.34-20.973,5.35-47.974-15.623-60.304\n\t\tc-21.009-12.332-47.99-5.317-60.314,15.65C293.129,73.036,300.103,100.027,321.097,112.359z"}),(0,l._)("path",{d:"M393.081,264.102c-2.414,0-4.8,0.194-7.169,0.362l-14.431-71.605l4.702-1.757c10.666-3.987,16.093-15.868,12.098-26.54\n\t\tc-3.994-10.681-15.946-16.084-26.531-12.09l-51.823,19.38l-2.321-18.864c6.3-13.193,5.541-29.78-4.767-41.482\n\t\tc-21.224-24.092-47.12-12.508-55.191-5.976l-106.884,86.555l0.016,0.024c-3.319,2.893-6.089,6.485-7.86,10.842\n\t\tc-2.191,5.396-2.596,11.067-1.564,16.384c-8.503,0.669-15.255,7.571-15.255,16.246c0,9.085,7.346,16.44,16.432,16.48l-6.797,15.906\n\t\tc-8.62-2.465-17.674-3.866-27.066-3.866C44.27,264.102,0,308.354,0,362.754c0,54.403,44.27,98.663,98.668,98.663\n\t\tc54.403,0,98.652-44.26,98.652-98.663c0-36.228-19.683-67.867-48.858-85.024l10.957-25.652h17.767l60.281,24.462l-32.201,52.773\n\t\tc-8.297,13.612-3.994,31.382,9.615,39.685c4.691,2.86,9.878,4.229,15,4.229c9.729,0,19.234-4.929,24.677-13.838l29.339-48.095\n\t\tl19.072,11.511c-5.447,12.227-8.54,25.726-8.54,39.95c0,54.403,44.254,98.663,98.652,98.663c54.402,0,98.656-44.26,98.656-98.663\n\t\tC491.737,308.354,447.483,264.102,393.081,264.102z M98.668,436.671c-40.756,0-73.923-33.161-73.923-73.917\n\t\tc0-40.756,33.167-73.909,73.923-73.909c5.944,0,11.649,0.896,17.188,2.224l-20.476,47.893\n\t\tc-11.758,1.619-20.843,11.598-20.843,23.792c0,13.323,10.808,24.132,24.13,24.132c8.767,0,16.367-4.745,20.589-11.76h52.065\n\t\tC165.395,409.988,135.188,436.671,98.668,436.671z M171.322,350.383h-52.065c-0.355-0.588-0.708-1.176-1.112-1.732l20.476-47.901\n\t\tC155.679,311.776,167.793,329.595,171.322,350.383z M296.781,290.175l7.666-12.564c4.416-7.233,5.431-16.038,2.774-24.084\n\t\tc-2.661-8.046-8.718-14.515-16.562-17.704l-52.725-21.395l32.443-26.281l1.804,14.691c0.756,6.267,4.366,11.841,9.761,15.12\n\t\tc3.271,1.981,6.979,2.988,10.698,2.988c2.435,0,4.88-0.435,7.218-1.306l48.15-18.001l13.627,67.691\n\t\tc-18.268,6.162-34.117,17.51-45.848,32.314L296.781,290.175z M375.396,337.633l-38.003-22.94\n\t\tc7.877-9.118,17.787-16.319,29.205-20.734L375.396,337.633z M393.081,436.671c-40.757,0-73.907-33.161-73.907-73.917\n\t\tc0-9.544,1.965-18.597,5.268-26.983l44.541,26.888c0,0.032-0.016,0.064-0.016,0.095c0,13.323,10.808,24.132,24.114,24.132\n\t\tc13.322,0,24.118-10.81,24.118-24.132c0-10.478-6.721-19.307-16.06-22.64l-10.277-51.043c0.756-0.024,1.463-0.226,2.22-0.226\n\t\tc40.757,0,73.911,33.153,73.911,73.909C466.992,403.51,433.838,436.671,393.081,436.671z"})],-1),Ze=[xe,He];function $e(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Ye,Ze)}var Ve={name:"CyclingSport"};const qe=(0,U.Z)(Ve,[["render",$e]]);var je=qe;const Xe={version:"1.1",id:"Capa_1",x:"0px",y:"0px",viewBox:"0 0 491.737 491.737",style:{"enable-background":"new 0 0 491.737 491.737"},"xml:space":"preserve",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},Je=(0,l._)("desc",{id:"cyclingTransportDescription"}," silhouette of a person riding a bicycle (for transportation) ",-1),Qe=(0,l._)("g",{id:"g147"},[(0,l._)("path",{d:"m 189.097,82.359 c 20.97701,12.331184 47.97442,5.308784 60.293,-15.652 12.32942,-20.979222 5.35418,-47.981117 -15.623,-60.304 -21.00482,-12.3391184 -47.99,-5.317 -60.314,15.65 -12.324,20.983 -5.34599,47.967183 15.644,60.306 z",id:"path143"}),(0,l._)("path",{d:"m 393.081,264.102 c -2.414,0 -4.8,0.194 -7.169,0.362 l -14.431,-71.605 4.702,-1.757 c 10.666,-3.987 16.093,-15.868 12.098,-26.54 -3.994,-10.681 -15.946,-16.084 -26.531,-12.09 l -63.05508,-1.53717 C 284.04753,137.09803 248.90259,106.55858 243.33317,101.62481 217.77732,75.090916 186.1698,85.012419 178.0988,91.544419 L 140.764,192.085 l 0.016,0.024 c -3.319,2.893 -6.089,6.485 -7.86,10.842 -2.191,5.396 -2.596,11.067 -1.564,16.384 -8.503,0.669 -15.255,7.571 -15.255,16.246 0,9.085 7.346,16.44 16.432,16.48 l -6.797,15.906 c -8.62,-2.465 -17.674,-3.866 -27.066,-3.866 C 44.27,264.102 0,308.354 0,362.754 c 0,54.403 44.27,98.663 98.668,98.663 54.403,0 98.652,-44.26 98.652,-98.663 0,-36.228 -19.683,-67.867 -48.858,-85.024 l 10.957,-25.652 h 17.767 l 60.281,24.462 -32.201,52.773 c -8.297,13.612 -3.994,31.382 9.615,39.685 4.691,2.86 9.878,4.229 15,4.229 9.729,0 19.234,-4.929 24.677,-13.838 l 29.339,-48.095 19.072,11.511 c -5.447,12.227 -8.54,25.726 -8.54,39.95 0,54.403 44.254,98.663 98.652,98.663 54.402,0 98.656,-44.26 98.656,-98.663 0,-54.401 -44.254,-98.653 -98.656,-98.653 z M 98.668,436.671 c -40.756,0 -73.923,-33.161 -73.923,-73.917 0,-40.756 33.167,-73.909 73.923,-73.909 5.944,0 11.649,0.896 17.188,2.224 L 95.38,338.962 c -11.758,1.619 -20.843,11.598 -20.843,23.792 0,13.323 10.808,24.132 24.13,24.132 8.767,0 16.367,-4.745 20.589,-11.76 h 52.065 c -5.926,34.862 -36.133,61.545 -72.653,61.545 z m 72.654,-86.288 h -52.065 c -0.355,-0.588 -0.708,-1.176 -1.112,-1.732 l 20.476,-47.901 c 17.058,11.026 29.172,28.845 32.701,49.633 z m 125.459,-60.208 7.666,-12.564 c 4.416,-7.233 5.431,-16.038 2.774,-24.084 -2.661,-8.046 -8.718,-14.515 -16.562,-17.704 l -73.83357,-31.7176 16.7558,-45.21274 c 10.36934,4.13303 41.82171,27.90767 45.77423,28.08592 3.271,1.981 8.57725,1.46711 12.29625,1.46711 2.435,0 18.50584,0.70472 20.84384,-0.16628 L 343.32113,188.03378 361.635,269.33 c -18.268,6.162 -34.117,17.51 -45.848,32.314 z m 78.615,47.458 -38.003,-22.94 c 7.877,-9.118 17.787,-16.319 29.205,-20.734 z m 17.685,99.038 c -40.757,0 -73.907,-33.161 -73.907,-73.917 0,-9.544 1.965,-18.597 5.268,-26.983 l 44.541,26.888 c 0,0.032 -0.016,0.064 -0.016,0.095 0,13.323 10.808,24.132 24.114,24.132 13.322,0 24.118,-10.81 24.118,-24.132 0,-10.478 -6.721,-19.307 -16.06,-22.64 l -10.277,-51.043 c 0.756,-0.024 1.463,-0.226 2.22,-0.226 40.757,0 73.911,33.153 73.911,73.909 -10e-4,40.756 -33.155,73.917 -73.912,73.917 z",id:"path145"})],-1),et=[Je,Qe];function tt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Xe,et)}var nt={name:"CyclingTransport"};const rt=(0,U.Z)(nt,[["render",tt]]);var at=rt;const ot={version:"1.1",id:"Capa_1",x:"0px",y:"0px",viewBox:"0 0 491.737 491.737",style:{"enable-background":"new 0 0 491.737 491.737"},"xml:space":"preserve",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},it=(0,l.uE)(' silhouette of a person riding a bicycle with virtual indicator ',4),st=[it];function lt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",ot,st)}var ct={name:"CyclingVirtual"};const ut=(0,U.Z)(ct,[["render",lt]]);var mt=ut;const dt={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 463.507 463.507",style:{"enable-background":"new 0 0 463.507 463.507"},"xml:space":"preserve"},Et=(0,l._)("desc",{id:"hikingDescription"},"silhouette of a person hiking",-1),St=(0,l._)("g",null,[(0,l._)("path",{d:"M246.413,78.492c21.688,0,39.255-17.573,39.255-39.251c0-21.67-17.567-39.24-39.255-39.24\n\t\tc-21.652,0-39.242,17.57-39.242,39.24C207.171,60.919,224.761,78.492,246.413,78.492z"}),(0,l._)("path",{d:"M386.604,202.858c0-11.185-9.066-20.251-20.253-20.251h-68.479l-38.62-54.832l0.127-0.933\n\t\tc1.378-10.474-1.474-21.067-7.911-29.444c-6.441-8.378-15.932-13.852-26.408-15.23c-11.596-1.511-22.592,2.224-30.852,9.225V45.779\n\t\tc0-7.847-6.362-14.217-14.225-14.217H140.59c-7.867,0-14.225,6.37-14.225,14.217v168.953c0,20.68,15.821,37.476,35.979,39.446\n\t\tl-3.043,7.073l-23.859,90.136l-53.73,72.188c-8.006,10.768-5.794,25.987,4.984,34.001c4.348,3.245,9.443,4.811,14.491,4.811\n\t\tc7.422,0,14.729-3.385,19.511-9.795l56.529-75.945c1.851-2.484,3.213-5.299,4.003-8.289l16.266-61.414l44.521,40.877l-6.076,88.603\n\t\tc-0.917,13.393,9.177,24.99,22.58,25.908c0.552,0.04,1.124,0.056,1.691,0.056c12.66,0,23.339-9.819,24.208-22.642l6.882-100.264\n\t\tc0.508-7.364-2.371-14.572-7.815-19.564l-45.994-42.219l13.992-90.613l19.331,27.435c3.801,5.387,9.972,8.592,16.552,8.592h70.882\n\t\tl1.339,232.294c0,4.478,3.626,8.101,8.101,8.101c4.479,0,8.101-3.624,8.101-8.101l-1.339-234.036\n\t\tC381.588,218.245,386.604,211.15,386.604,202.858z"})],-1),_t=[Et,St];function Tt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",dt,_t)}var pt={name:"Hiking"};const At=(0,U.Z)(pt,[["render",Tt]]);var Ot=At;const zt={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 503.162 503.162",style:{"enable-background":"new 0 0 503.162 503.162"},"xml:space":"preserve"},It=(0,l._)("desc",{id:"mountainBikingDescription"}," silhouette of a person riding a mountain bike ",-1),Rt=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M149.951,67.997c15.711-7.143,22.739-25.675,15.596-41.416c-7.124-15.701-25.723-22.682-41.453-15.539\n\t\t\tc-15.721,7.134-22.702,25.752-15.578,41.444C115.679,68.216,134.23,75.14,149.951,67.997z"}),(0,l._)("path",{d:"M87.517,89.072l-32.828,87.755c-1.979,5.967-1.683,12.594,1.1,18.733c4.055,8.922,12.604,14.525,21.755,15.271\n\t\t\tl76.873,6.244l29.137,64.184c4.122,9.046,14.832,13.148,23.906,9.017c9.075-4.131,13.072-14.859,8.951-23.944l-36.424-80.201\n\t\t\tc0,0-3.605-13.76-21.343-14.133l-43.873-2.572l21.009-55.166l31.671,20.588c5.584,3.663,10.997,3.682,15.1,1.722l55.051-24.997\n\t\t\tc17.069-7.755,6.952-30.036-10.108-22.29l-47.506,21.707l-53.55-34.846c0,0-11.638-8.013-24.241-2.285\n\t\t\tC102.205,73.858,91.112,77.243,87.517,89.072z"}),(0,l._)("path",{d:"M423.687,182.488l-2.61,15.042c-2.123,12.154-13.35,25.092-25.092,28.888l-3.711,1.195\n\t\t\tc3.041-16.543,1.282-34.148-6.215-50.633c-19.498-42.974-70.094-61.87-112.943-42.419\n\t\t\tc-42.878,19.479-61.936,70.017-42.438,112.981c17.069,37.562,57.881,56.744,96.534,47.966l-0.784,1.415\n\t\t\tc-5.968,10.796-20.817,19.221-33.144,18.8l-17.892-0.622c-12.336-0.411-30.514,5.002-40.603,12.116l-22.376,15.759\n\t\t\tc-10.107,7.104-28.276,12.632-40.612,12.354l-12.001-0.277c12.718-22.845,14.889-51.159,3.242-76.806\n\t\t\tc-19.517-42.955-70.074-61.879-113.019-42.381c-42.792,19.44-61.87,70.007-42.372,112.933\n\t\t\tc16.667,36.711,56.084,55.788,93.914,48.444l-1.32,2.056c-6.675,10.385-22.08,18.398-34.406,17.92l-32.79-1.291\n\t\t\tc-12.326-0.497-24.021,8.97-26.096,21.143l-2.62,15.339c-0.564,3.271-0.354,6.11,0.401,8.501c-0.43,1.778-0.736,3.548-0.736,5.326\n\t\t\tv9.562c0,10.557,8.568,19.125,19.125,19.125h460.932c10.557,0,19.115-8.568,19.106-19.125l-0.125-167.507\n\t\t\tc0-2.782-0.593-5.221-1.616-7.286c1.396-3.806,2.057-7.841,1.598-11.839l-4.677-40.497c-1.415-12.249-9.763-29.146-18.637-37.724\n\t\t\tl-36.127-34.951C434.712,167.418,425.79,170.325,423.687,182.488z"})])],-1),gt=[It,Rt];function Nt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",zt,gt)}var Ut={name:"MountainBiking"};const ht=(0,U.Z)(Ut,[["render",Nt]]);var Ct=ht;const wt={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg",x:"0px",y:"0px",viewBox:"0 0 503.162 503.162",style:{"enable-background":"new 0 0 503.162 503.162"},"xml:space":"preserve"},Dt=(0,l.uE)(' silhouette of a person riding an electric mountain bike ',18),vt=[Dt];function ft(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",wt,vt)}var Pt={name:"MountainBikingElectric"};const kt=(0,U.Z)(Pt,[["render",ft]]);var Lt=kt;const Mt={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 495.017 495.017",style:{"enable-background":"new 0 0 495.017 495.017"},"xml:space":"preserve"},bt=(0,l.uE)(' silhouette of a person doing mountaineering ',2),yt=[bt];function Gt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Mt,yt)}var Ft={name:"Mountaineering"};const Wt=(0,U.Z)(Ft,[["render",Gt]]);var Bt=Wt;const Kt={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 534.51 534.51",style:{"enable-background":"new 0 0 534.51 534.51"},"xml:space":"preserve"},Yt=(0,l._)("desc",{id:"rowingDescription"},"silhouette of a person rowing",-1),xt=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M70.517,393.857h132.622l-67.205,68.631c-3.28,3.385-3.204,8.797,0.172,12.076c1.597,1.568,3.72,2.43,5.958,2.43\n\t\t\tc2.305,0,4.533-0.947,6.12-2.572l78.881-80.555h221.315c12.45,0,30.676-6.006,40.296-13.914\n\t\t\tc8.788-7.229,19.049-16.217,26.345-24.299c10.375-9.811,22.214-23.639-4.255-22.834c-6.98,0.248-206.789,0.02-223.926,0\n\t\t\tl47.144-48.139l22.176-22.032l28.209,9.17c10.414,3.385,22.472-0.803,26.919-9.362c4.446-8.558,0.268-18.407-9.343-21.993\n\t\t\tl-17.404-6.512l54.698-54.774c12.507,6.617,28.362,4.867,38.899-5.671l46.541-46.607c13.11-13.015,13.11-33.957,0-46.923\n\t\t\tc-12.909-13.034-34.042-13.034-46.942,0l-46.512,46.598c-10.892,10.815-12.508,27.139-5.26,39.742l-57.853,59.077L253.744,183.09\n\t\t\tc-1.482-0.851-14.153-5.786-26.833-10.643c-14.898-5.719-30.371,0.583-34.53,13.971l-7.525,24.241l-35.324,118.451\n\t\t\tc-0.468,1.34-0.603,2.562-0.746,3.711H14.136c-12.45,0-17.662,8.836-11.618,19.727l23.237,21.592\n\t\t\tC39.123,385.068,58.066,393.857,70.517,393.857z M272.63,248.727c1.797-5.967,8.099-9.39,14.075-7.64l51.37,14.975l-33.038,33.737\n\t\t\tl-43.453,43.012h-14.2L272.63,248.727z"}),(0,l._)("circle",{cx:"248.953",cy:"109.842",r:"52.326"})])],-1),Ht=[Yt,xt];function Zt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Kt,Ht)}var $t={name:"Rowing"};const Vt=(0,U.Z)($t,[["render",Zt]]);var qt=Vt;const jt={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 494.49 494.49",style:{"enable-background":"new 0 0 494.49 494.49"},"xml:space":"preserve"},Xt=(0,l._)("desc",{id:"runningDescription"},"silhouette of a running person",-1),Jt=(0,l._)("g",null,[(0,l._)("path",{d:"M282.74,80.771c22.318,0,40.401-18.08,40.401-40.389C323.141,18.084,305.058,0,282.74,0\n\t\tc-22.281,0-40.378,18.084-40.378,40.383C242.362,62.691,260.458,80.771,282.74,80.771z"}),(0,l._)("path",{d:"M400.207,188.547H331.47l-38.766-55.03l0.123-0.944c1.384-10.514-1.475-21.146-7.94-29.556\n\t\tc-6.461-8.409-16.007-13.903-26.52-15.287c-10.926-1.429-22.619,3.12-31.206,8.646c-1.441,0.928-84.97,54.921-84.97,54.921\n\t\tc-5.175,3.358-8.542,8.877-9.165,15.016c-0.634,6.13,1.574,12.222,5.976,16.541l58.982,58l-6.417,48.954l-18.707,65.584l-67.8-19.4\n\t\tc-12.911-3.676-26.44,3.796-30.159,16.747c-3.699,12.951,3.799,26.459,16.758,30.168l91.271,26.109\n\t\tc2.192,0.627,4.444,0.936,6.7,0.936c4.113,0,8.195-1.04,11.848-3.073c5.655-3.146,9.833-8.409,11.611-14.635l21.963-77.057\n\t\tl26.365,36.639l6.684,119.628c0.73,12.991,11.501,23.036,24.349,23.036c0.441,0,0.92-0.016,1.379-0.039\n\t\tc13.453-0.748,23.745-12.262,23-25.713l-7.083-126.736c-0.271-4.643-1.846-9.116-4.56-12.887l-32.24-44.811l11.959-91.279\n\t\tl19.409,27.555c3.794,5.407,10.005,8.624,16.613,8.624h79.28c11.226,0,20.326-9.101,20.326-20.329\n\t\tC420.533,197.647,411.432,188.547,400.207,188.547z M204.606,190.357l-19.026-18.717l23.476-15.206L204.606,190.357z"})],-1),Qt=[Xt,Jt];function en(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",jt,Qt)}var tn={name:"Running"};const nn=(0,U.Z)(tn,[["render",en]]);var rn=nn;const an={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 522.362 522.362",style:{"enable-background":"new 0 0 522.362 522.362"},"xml:space":"preserve"},on=(0,l._)("desc",{id:"alpineSkiingDescription"},"silhouette of a person skiing",-1),sn=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M14.314,351.859L408.088,461.78c4.484,1.311,9.104,1.97,13.731,1.97l0,0c17.471,0,33.746-9.429,42.467-24.604\n\t\t\tc2.716-4.724,3.137-10.27,1.157-15.214c-1.912-4.762-5.767-8.31-10.576-9.744c-7.373-2.237-15.481,1.109-22.146,9.229\n\t\t\tc-3.548,4.303-9.496,6.244-15.07,4.714l-136.467-38.078c1.396-0.555,2.812-1.195,4.236-2.065l103.266-63.15\n\t\t\tc15.443-9.362,18.493-33.957,7.812-43.883l-64.758-60.233l39.972-21.688l69.682,9.744c5.23,0.736,9.744-2.037,10.079-6.187\n\t\t\tc0.344-4.141-3.624-8.1-8.855-8.826l-48.605-6.828l22.472-12.192c39.895-23.275,5.823-85.192-35.334-63.112l-87.554,61.19\n\t\t\tl-117.503-16.515l2.543-12.087c0.545-2.582-1.109-5.116-3.691-5.661c-2.572-0.593-5.116,1.1-5.661,3.701l-2.678,12.709\n\t\t\tl-18.331-2.582c-5.231-0.727-9.467,2.123-9.467,6.369s4.236,8.281,9.467,9.017l15.176,2.123l-2.544,12.087\n\t\t\tc-0.545,2.582,1.109,5.125,3.691,5.671c0.334,0.076,0.66,0.105,0.994,0.105c2.209,0,4.198-1.54,4.676-3.787l2.678-12.737\n\t\t\tl102.414,14.315l-5.308,3.72c-4.332,3.022-10.155,9.151-11.723,14.201c-3.844,12.45-1.473,26.717,10.452,37.705l68.802,62.175\n\t\t\tc0,0-50.978,31.776-74.998,46.397c-14.219,8.606-13.674,23.858-6.129,33.393L23.705,318.199\n\t\t\tc-10.012-2.792-20.569,2.554-23.113,11.695C-2,339.169,4.159,349.029,14.314,351.859z"}),(0,l._)("path",{d:"M450.842,72.003c-15.291,16.715-14.201,42.667,2.639,58.121c16.706,15.31,42.716,14.086,58.073-2.668\n\t\t\tc15.386-16.677,14.172-42.734-2.544-58.016C492.305,54.064,466.17,55.192,450.842,72.003z"})])],-1),ln=[on,sn];function cn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",an,ln)}var un={name:"SkiingAlpine"};const mn=(0,U.Z)(un,[["render",cn]]);var dn=mn;const En={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 296 296",style:{"enable-background":"new 0 0 296 296"},"xml:space":"preserve"},Sn=(0,l._)("desc",{id:"crossCountrySkiingDescription"}," silhouette of a person skiing (cross country) ",-1),_n=(0,l._)("g",null,[(0,l._)("path",{d:"M241.313,246.906h-39.564l0.456-1.273c5.62-18.374,3.479-37.58-6.027-54.278c-5.653-9.929-13.443-18.018-22.745-23.959\n\t\tl12.886-51.126c3.035-12.05-4.272-24.266-16.322-27.301c-2.634-0.664-5.278-0.826-7.833-0.559\n\t\tc-0.151-0.011-0.299-0.032-0.452-0.038c-26.03-1.077-51.443,8.485-70.33,25.993L41.586,82.855\n\t\tc-4.332-2.741-10.065-1.451-12.806,2.881s-1.451,10.065,2.88,12.806l47.625,30.136c-2.557,6.013-0.962,13.224,4.375,17.531\n\t\tc2.774,2.24,6.104,3.33,9.413,3.33c4.377-0.001,8.717-1.907,11.68-5.579l0.478-0.591c8.686-10.766,20.465-18.479,33.484-22.317\n\t\tl-11.095,44.046c-1.061,4.214-0.854,8.448,0.374,12.305c-12.908,17.917-28.398,33.68-46.198,46.979l-14.649,10.727\n\t\tc-3.938,2.943-6.001,7.798-6.005,11.798H8.25c-4.556,0-8.083,4.131-8.083,8.688v2.063c0,4.556,3.527,8.25,8.083,8.25h55.188\n\t\th161.375H280c9.113,0,16.167-7.387,16.167-16.5v-2.5H241.313z M153.974,192.398c0.741-0.153,1.471-0.231,2.188-0.457\n\t\tc5.742,3.406,10.53,8.313,13.945,14.311c5.378,9.447,6.59,20.402,3.41,30.797l-1.799,5.674c-0.447,1.461-0.656,3.184-0.657,4.184\n\t\th-69.909C121.581,231.906,139.297,213.274,153.974,192.398z M167,57.938c0-15.378,12.466-27.844,27.844-27.844\n\t\ts27.844,12.466,27.844,27.844s-12.466,27.844-27.844,27.844S167,73.315,167,57.938z"})],-1),Tn=[Sn,_n];function pn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",En,Tn)}var An={name:"SkiingCrossCountry"};const On=(0,U.Z)(An,[["render",pn]]);var zn=On;const In={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"},Rn=(0,l.uE)('silhouette of a person with snowshoes',6),gn=[Rn];function Nn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",In,gn)}var Un={name:"Snowshoes"};const hn=(0,U.Z)(Un,[["render",Nn]]);var Cn=hn;const wn={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 535.876 535.876",style:{"enable-background":"new 0 0 535.876 535.876"},"xml:space":"preserve"},Dn=(0,l._)("desc",{id:"trailDescription"},"silhouette of a person running (trail)",-1),vn=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M505.204,326.949c-5.805-10.892-15.176-10.862-20.923,0.067l-7.114,13.512c-5.757,10.92-20.416,19.775-32.752,19.775\n\t\t\th-16.753c-12.346,0-29.645,6.847-38.643,15.29l-32.35,30.342l-1.233-105.388c0.822-18.446-10.596-24.634-10.596-24.634\n\t\t\tl-56.543-25.972l33.67-67.645l38.527,22.912c0,0,15.472,9.715,26.727-9.324l37.026-63.093c1.625-3.519,2.094-7.564,1.052-11.609\n\t\t\tc-2.381-9.256-11.81-14.86-21.095-12.479c-4.083,1.042-7.459,3.49-9.754,6.713l-30.772,51.962l-62.777-37.102\n\t\t\tc-4.733-2.716-10.519-3.691-16.257-2.209l-78.345,20.12c-5.03,1.291-8.96,4.762-11.017,9.142l-38.097,76.165\n\t\t\tc-2.591,3.854-3.624,8.73-2.371,13.607c2.285,8.941,11.456,14.363,20.435,12.059c5.04-1.291,8.951-4.743,10.997-9.161\n\t\t\tl35.314-70.858l28.936-7.296l-76.203,149.921l-65.981,16.734c-1.759,0.393-3.48,1.023-5.163,1.836\n\t\t\tc-10.596,5.412-14.679,18.179-9.267,28.803c4.733,9.266,15.252,13.636,24.901,10.978l78.067-20.187\n\t\t\tc18.6-4.093,23.313-14.449,23.313-14.449l30.581-58.79l62.28,35.678l0.593,86.216c0.01,1.08,0.259,2.161,0.421,3.241l-11.6-4.188\n\t\t\tc-11.608-4.188-30.57-4.608-42.361-0.956l-26.135,8.128c-11.79,3.663-30.791,3.338-42.447-0.717l-19.221-6.694\n\t\t\tc-11.657-4.054-28.831-0.984-38.374,6.838L109.9,433.954c-9.544,7.822-26.67,10.72-38.25,6.483L40.84,429.135\n\t\t\tc-11.58-4.256-25.608,1.157-31.336,12.097l-7.21,13.789c-5.728,10.93-0.354,19.794,11.982,19.794H500.27\n\t\t\tc12.336,0,24.309-9.802,26.728-21.907l8.004-39.981c2.409-12.097-0.325-30.733-6.14-41.616L505.204,326.949z"}),(0,l._)("path",{d:"M326.395,126.625c17.806-4.562,28.563-22.721,23.983-40.526c-4.581-17.844-22.74-28.554-40.555-23.983\n\t\t\tc-17.796,4.581-28.535,22.711-23.964,40.535C290.439,120.476,308.599,131.205,326.395,126.625z"})])],-1),fn=[Dn,vn];function Pn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",wn,fn)}var kn={name:"Trail"};const Ln=(0,U.Z)(kn,[["render",Pn]]);var Mn=Ln;const bn={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"},yn=(0,l.uE)('silhouette of a walking person',3),Gn=[yn];function Fn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",bn,Gn)}var Wn={name:"Walking"};const Bn=(0,U.Z)(Wn,[["render",Fn]]);var Kn=Bn;const Yn=["title"];var xn=(0,l.aZ)({__name:"index",props:{sportLabel:null,color:null,title:{default:""}},setup(e){const t=e,{color:n,sportLabel:r,title:a}=(0,c.BK)(t),o=(0,l.f3)("sportColors");return(e,t)=>((0,l.wg)(),(0,l.iD)("div",{class:"sport-img",style:(0,u.j5)({fill:(0,c.SU)(n)?(0,c.SU)(n):(0,c.SU)(o)[(0,c.SU)(r)]}),title:(0,c.SU)(a)?(0,c.SU)(a):e.$t(`sports.${(0,c.SU)(r)}.LABEL`)},["Cycling (Sport)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(je,{key:0})):(0,l.kq)("",!0),"Cycling (Transport)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(at,{key:1})):(0,l.kq)("",!0),"Cycling (Virtual)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(mt,{key:2})):(0,l.kq)("",!0),"Hiking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Ot,{key:3})):(0,l.kq)("",!0),"Mountain Biking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Ct,{key:4})):(0,l.kq)("",!0),"Mountain Biking (Electric)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Lt,{key:5})):(0,l.kq)("",!0),"Mountaineering"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Bt,{key:6})):(0,l.kq)("",!0),"Rowing"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(qt,{key:7})):(0,l.kq)("",!0),"Running"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(rn,{key:8})):(0,l.kq)("",!0),"Skiing (Alpine)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(dn,{key:9})):(0,l.kq)("",!0),"Skiing (Cross Country)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(zn,{key:10})):(0,l.kq)("",!0),"Snowshoes"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Cn,{key:11})):(0,l.kq)("",!0),"Trail"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Mn,{key:12})):(0,l.kq)("",!0),"Walking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Kn,{key:13})):(0,l.kq)("",!0)],12,Yn))}});const Hn=xn;var Zn=Hn;const $n={class:"loader"};function Vn(e,t){return(0,l.wg)(),(0,l.iD)("div",$n)}const qn={},jn=(0,U.Z)(qn,[["render",Vn],["__scopeId","data-v-4c9921ee"]]);var Xn=jn;const Jn={id:"modal"},Qn={class:"custom-modal"},er={key:0,class:"modal-message"},tr={key:1,class:"modal-message"},nr={class:"modal-buttons"};var rr=(0,l.aZ)({__name:"Modal",props:{title:null,message:null,strongMessage:{default:()=>null}},emits:["cancelAction","confirmAction"],setup(e,{emit:t}){const n=e,r=(0,v.o)(),{title:a,message:o,strongMessage:i}=(0,c.BK)(n),s=(0,l.Fl)((()=>r.getters[D.SY.GETTERS.ERROR_MESSAGES]));return(0,l.Ah)((()=>r.commit(D.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(e,n)=>{const r=(0,l.up)("i18n-t"),m=(0,l.up)("ErrorMessage"),d=(0,l.up)("Card");return(0,l.wg)(),(0,l.iD)("div",Jn,[(0,l._)("div",Qn,[(0,l.Wm)(d,null,{title:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,c.SU)(a)),1)])),content:(0,l.w5)((()=>[(0,c.SU)(i)?((0,l.wg)(),(0,l.iD)("div",er,[(0,l.Wm)(r,{keypath:(0,c.SU)(o)},{default:(0,l.w5)((()=>[(0,l._)("span",null,(0,u.zw)((0,c.SU)(i)),1)])),_:1},8,["keypath"])])):((0,l.wg)(),(0,l.iD)("div",tr,(0,u.zw)((0,c.SU)(o)),1)),(0,c.SU)(s)?((0,l.wg)(),(0,l.j4)(m,{key:2,message:(0,c.SU)(s)},null,8,["message"])):(0,l.kq)("",!0),(0,l._)("div",nr,[(0,c.SU)(s)?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("button",{key:0,class:"confirm",onClick:n[0]||(n[0]=e=>t("confirmAction"))},(0,u.zw)(e.$t("buttons.YES")),1)),(0,l._)("button",{class:"cancel",onClick:n[1]||(n[1]=e=>t("cancelAction"))},(0,u.zw)(e.$t("buttons."+((0,c.SU)(s)?"CANCEL":"NO"))),1)])])),_:1})])])}}});const ar=(0,U.Z)(rr,[["__scopeId","data-v-e8fcfaba"]]);var or=ar;const ir=[{target:Ae,name:"AlertMessage"},{target:Oe.Z,name:"Card"},{target:Ue,name:"CustomTextArea"},{target:De,name:"Distance"},{target:be,name:"Dropdown"},{target:Ke,name:"ErrorMessage"},{target:Xn,name:"Loader"},{target:or,name:"Modal"},{target:Zn,name:"SportImage"}],sr={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 lr=n(631);r.kL.register(r.ZL,r.jn,r.od,r.De,r.Dx,r.u,r.Gu,r.vn,r.uw,r.ST,r.f$,a.Z);const cr=(0,o.ri)(ue).provide("sportColors",lr.Zo).use(me.Z).use(Ee.Z).use(de.Z).use(i.ZP,{name:"VFullscreen"}).directive("click-outside",sr);ir.forEach((e=>{cr.component(e.name,e.target)})),cr.mount("#app")},3654:function(e,t,n){"use strict";n.d(t,{Z:function(){return Dl}});var r=n(2201),a=(n(7658),n(6252)),o=n(3577),i=n(9963),s=n(2262),l=n(5801),c=n(9917),u=n(8966);const m=e=>((0,a.dD)("data-v-24ec93e2"),e=e(),(0,a.Cn)(),e),d={id:"admin-app",class:"admin-card"},E=["onSubmit"],S={for:"admin_contact"},_=["value"],T=["disabled"],p={for:"max_users"},A=["disabled"],O={class:"user-limit-help"},z={class:"info-box"},I=m((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),R={for:"max_single_file_size"},g=["disabled"],N={for:"max_zip_file_size"},U=["disabled"],h={for:"gpx_limit_import"},C=["disabled"],w={key:1,class:"form-buttons"},D={class:"confirm",type:"submit"},v=["onClick"],f={key:2,class:"form-buttons"};var P=(0,a.aZ)({__name:"AdminApplication",props:{appConfig:null,edition:{type:Boolean,default:!1}},setup(e){const t=e,{edition:n}=(0,s.BK)(t),m=(0,c.o)(),P=(0,r.tv)(),k=(0,s.qj)({admin_contact:"",max_users:0,max_single_file_size:0,max_zip_file_size:0,gpx_limit_import:0}),L=(0,a.Fl)((()=>m.getters[l.SY.GETTERS.ERROR_MESSAGES]));function M(e){Object.keys(k).map((t=>{["max_single_file_size","max_zip_file_size"].includes(t)?k[t]=(0,u.j)(e[t]):k[t]=e[t]}))}function b(){M(t.appConfig),m.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),P.push("/admin/application")}function y(){const e=Object.assign({},k);e.max_single_file_size*=1048576,e.max_zip_file_size*=1048576,m.dispatch(l.SY.ACTIONS.UPDATE_APPLICATION_CONFIG,e)}return(0,a.wF)((()=>{t.appConfig&&M(t.appConfig)})),(e,t)=>{const r=(0,a.up)("ErrorMessage"),l=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",d,[(0,a.Wm)(l,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.TITLE")),1)])),content:(0,a.w5)((()=>[(0,a._)("form",{class:"admin-form",onSubmit:(0,i.iM)(y,["prevent"])},[(0,a._)("label",S,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.ADMIN_CONTACT"))+": ",1),(0,s.SU)(n)||k.admin_contact?(0,a.wy)(((0,a.wg)(),(0,a.iD)("input",{key:1,id:"admin_contact",name:"admin_contact",type:"email","onUpdate:modelValue":t[0]||(t[0]=e=>k.admin_contact=e),disabled:!(0,s.SU)(n)},null,8,T)),[[i.nr,k.admin_contact]]):((0,a.wg)(),(0,a.iD)("input",{key:0,class:"no-contact",value:e.$t("admin.APP_CONFIG.NO_CONTACT_EMAIL"),disabled:""},null,8,_))]),(0,a._)("label",p,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.MAX_USERS_LABEL"))+": ",1),(0,a.wy)((0,a._)("input",{id:"max_users",name:"max_users",type:"number",min:"0","onUpdate:modelValue":t[1]||(t[1]=e=>k.max_users=e),disabled:!(0,s.SU)(n)},null,8,A),[[i.nr,k.max_users]])]),(0,a._)("div",O,[(0,a._)("span",z,[I,(0,a.Uk)(" "+(0,o.zw)(e.$t("admin.APP_CONFIG.MAX_USERS_HELP")),1)])]),(0,a._)("label",R,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL"))+": ",1),(0,a.wy)((0,a._)("input",{id:"max_single_file_size",name:"max_single_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":t[2]||(t[2]=e=>k.max_single_file_size=e),disabled:!(0,s.SU)(n)},null,8,g),[[i.nr,k.max_single_file_size]])]),(0,a._)("label",N,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL"))+": ",1),(0,a.wy)((0,a._)("input",{id:"max_zip_file_size",name:"max_zip_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":t[3]||(t[3]=e=>k.max_zip_file_size=e),disabled:!(0,s.SU)(n)},null,8,U),[[i.nr,k.max_zip_file_size]])]),(0,a._)("label",h,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL"))+": ",1),(0,a.wy)((0,a._)("input",{id:"gpx_limit_import",name:"gpx_limit_import",type:"number",min:"0","onUpdate:modelValue":t[4]||(t[4]=e=>k.gpx_limit_import=e),disabled:!(0,s.SU)(n)},null,8,C),[[i.nr,k.gpx_limit_import]])]),(0,s.SU)(L)?((0,a.wg)(),(0,a.j4)(r,{key:0,message:(0,s.SU)(L)},null,8,["message"])):(0,a.kq)("",!0),(0,s.SU)(n)?((0,a.wg)(),(0,a.iD)("div",w,[(0,a._)("button",D,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:(0,i.iM)(b,["prevent"])},(0,o.zw)(e.$t("buttons.CANCEL")),9,v)])):((0,a.wg)(),(0,a.iD)("div",f,[(0,a._)("button",{class:"confirm",onClick:t[5]||(t[5]=(0,i.iM)((t=>e.$router.push("/admin/application/edit")),["prevent"]))},(0,o.zw)(e.$t("buttons.EDIT")),1),(0,a._)("button",{class:"cancel",onClick:t[6]||(t[6]=(0,i.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1)]))],40,E)])),_:1})])}}}),k=n(3744);const L=(0,k.Z)(P,[["__scopeId","data-v-24ec93e2"]]);var M=L;const b={class:"stat-card"},y={class:"stat-content box"},G={class:"stat-icon"},F={class:"stat-details"},W={class:"stat-huge"},B={class:"stat"};var K=(0,a.aZ)({__name:"StatCard",props:{icon:null,text:null,value:null},setup(e){const t=e,{icon:n,text:r,value:i}=(0,s.BK)(t);return(e,t)=>((0,a.wg)(),(0,a.iD)("div",b,[(0,a._)("div",y,[(0,a._)("div",G,[(0,a._)("i",{class:(0,o.C_)(["fa",`fa-${(0,s.SU)(n)}`])},null,2)]),(0,a._)("div",F,[(0,a._)("div",W,(0,o.zw)((0,s.SU)(i)),1),(0,a._)("div",B,(0,o.zw)((0,s.SU)(r)),1)])])]))}});const Y=K;var x=Y;const H={id:"user-stats"};var Z=(0,a.aZ)({__name:"AppStatsCards",props:{appStatistics:null},setup(e){const t=e,{appStatistics:n}=(0,s.BK)(t),r=(0,a.Fl)((()=>(0,u.Z)(n.value.uploads_dir_size,!1)));return(e,t)=>((0,a.wg)(),(0,a.iD)("div",H,[(0,a.Wm)(x,{icon:"users",value:(0,s.SU)(n).users,text:e.$t("admin.USER",(0,s.SU)(n).users)},null,8,["value","text"]),(0,a.Wm)(x,{icon:"tags",value:(0,s.SU)(n).sports,text:e.$t("workouts.SPORT",(0,s.SU)(n).sports)},null,8,["value","text"]),(0,a.Wm)(x,{icon:"calendar",value:(0,s.SU)(n).workouts,text:e.$t("workouts.WORKOUT",(0,s.SU)(n).workouts)},null,8,["value","text"]),(0,a.Wm)(x,{icon:"folder-open",value:(0,s.SU)(r).size,text:(0,s.SU)(r).suffix},null,8,["value","text"])]))}});const $=Z;var V=$,q=n(2531);const j=e=>((0,a.dD)("data-v-0dd66f89"),e=e(),(0,a.Cn)(),e),X={id:"admin-menu",class:"center-card"},J={class:"admin-menu description-list"},Q={class:"application-config-details"},ee=j((()=>(0,a._)("br",null,null,-1))),te={class:"registration-status"},ne={key:0,class:"email-sending-status"},re=j((()=>(0,a._)("i",{class:"fa fa-exclamation-triangle","aria-hidden":"true"},null,-1)));var ae=(0,a.aZ)({__name:"AdminMenu",props:{appConfig:null,appStatistics:{default:()=>({})}},setup(e){const t=e,{appConfig:n,appStatistics:r}=(0,s.BK)(t);return(e,t)=>{const i=(0,a.up)("router-link");return(0,a.wg)(),(0,a.iD)("div",X,[(0,a.Wm)(q.Z,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.ADMINISTRATION")),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(V,{appStatistics:(0,s.SU)(r)},null,8,["appStatistics"]),(0,a._)("div",J,[(0,a._)("dl",null,[(0,a._)("dt",null,[(0,a.Wm)(i,{to:"/admin/application"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.APPLICATION")),1)])),_:1})]),(0,a._)("dd",Q,[(0,a.Uk)((0,o.zw)(e.$t("admin.UPDATE_APPLICATION_DESCRIPTION")),1),ee,(0,a._)("span",te,(0,o.zw)(e.$t("admin.REGISTRATION_"+((0,s.SU)(n).is_registration_enabled?"ENABLED":"DISABLED"))),1),(0,s.SU)(n).is_email_sending_enabled?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("span",ne,[re,(0,a.Uk)(" "+(0,o.zw)(e.$t("admin.EMAIL_SENDING_DISABLED")),1)]))]),(0,a._)("dt",null,[(0,a.Wm)(i,{to:"/admin/sports"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,o.kC)(e.$t("workouts.SPORT",0))),1)])),_:1})]),(0,a._)("dd",null,(0,o.zw)(e.$t("admin.ENABLE_DISABLE_SPORTS")),1),(0,a._)("dt",null,[(0,a.Wm)(i,{to:"/admin/users"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,o.kC)(e.$t("admin.USER",0))),1)])),_:1})]),(0,a._)("dd",null,(0,o.zw)(e.$t("admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT")),1)])])])),_:1})])}}});const oe=(0,k.Z)(ae,[["__scopeId","data-v-0dd66f89"]]);var ie=oe,se=n(9150),le=n(631);const ce=e=>((0,a.dD)("data-v-6d62af67"),e=e(),(0,a.Cn)(),e),ue={id:"admin-sports",class:"admin-card"},me={class:"responsive-table"},de=ce((()=>(0,a._)("th",null,"#",-1))),Ee={class:"text-left"},Se={class:"text-left sport-action"},_e=ce((()=>(0,a._)("th",null,null,-1))),Te={class:"text-center"},pe=ce((()=>(0,a._)("span",{class:"cell-heading"},"id",-1))),Ae={class:"cell-heading"},Oe={class:"sport-label"},ze={class:"cell-heading"},Ie={class:"text-center"},Re={class:"cell-heading"},ge={class:"sport-action"},Ne={class:"cell-heading"},Ue={class:"action-button"},he=["onClick"],Ce={key:0,class:"has-workouts"},we=ce((()=>(0,a._)("i",{class:"fa fa-warning","aria-hidden":"true"},null,-1)));var De=(0,a.aZ)({__name:"AdminSports",setup(e){const{t:t}=(0,se.QT)(),n=(0,c.o)(),r=(0,a.Fl)((()=>(0,le.xH)(n.getters[l.O8.GETTERS.SPORTS],t))),u=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function m(e,t){n.dispatch(l.O8.ACTIONS.UPDATE_SPORTS,{id:e,isActive:t})}return(e,t)=>{const n=(0,a.up)("SportImage"),l=(0,a.up)("ErrorMessage"),c=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",ue,[(0,a.Wm)(c,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.SPORTS.TITLE")),1)])),content:(0,a.w5)((()=>[(0,a._)("button",{class:"top-button",onClick:t[0]||(t[0]=(0,i.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1),(0,a._)("div",me,[(0,a._)("table",null,[(0,a._)("thead",null,[(0,a._)("tr",null,[de,(0,a._)("th",null,(0,o.zw)(e.$t("admin.SPORTS.TABLE.IMAGE")),1),(0,a._)("th",Ee,(0,o.zw)(e.$t("admin.SPORTS.TABLE.LABEL")),1),(0,a._)("th",null,(0,o.zw)(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),(0,a._)("th",Se,(0,o.zw)(e.$t("admin.ACTION")),1),_e])]),(0,a._)("tbody",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(r),(t=>((0,a.wg)(),(0,a.iD)("tr",{key:t.id},[(0,a._)("td",Te,[pe,(0,a.Uk)(" "+(0,o.zw)(t.id),1)]),(0,a._)("td",null,[(0,a._)("span",Ae,(0,o.zw)(e.$t("admin.SPORTS.TABLE.IMAGE")),1),(0,a.Wm)(n,{title:t.translatedLabel,"sport-label":t.label,color:t.color},null,8,["title","sport-label","color"])]),(0,a._)("td",Oe,[(0,a._)("span",ze,(0,o.zw)(e.$t("admin.SPORTS.TABLE.LABEL")),1),(0,a.Uk)(" "+(0,o.zw)(t.translatedLabel),1)]),(0,a._)("td",Ie,[(0,a._)("span",Re,(0,o.zw)(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),(0,a._)("i",{class:(0,o.C_)("fa fa"+(t.is_active?"-check":"")),"aria-hidden":"true"},null,2)]),(0,a._)("td",ge,[(0,a._)("span",Ne,(0,o.zw)(e.$t("admin.ACTION")),1),(0,a._)("div",Ue,[(0,a._)("button",{class:(0,o.C_)({danger:t.is_active}),onClick:e=>m(t.id,!t.is_active)},(0,o.zw)(e.$t(`buttons.${t.is_active?"DIS":"EN"}ABLE`)),11,he),t.has_workouts?((0,a.wg)(),(0,a.iD)("span",Ce,[we,(0,a.Uk)(" "+(0,o.zw)(e.$t("admin.SPORTS.TABLE.HAS_WORKOUTS")),1)])):(0,a.kq)("",!0)])])])))),128))])]),(0,s.SU)(u)?((0,a.wg)(),(0,a.j4)(l,{key:0,message:(0,s.SU)(u)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("button",{onClick:t[1]||(t[1]=(0,i.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1)])])),_:1})])}}});const ve=(0,k.Z)(De,[["__scopeId","data-v-6d62af67"]]);var fe=ve,Pe=n(8626),ke=n(5020),Le=n(6595);const Me={class:"users-filters"},be={class:"search-username"},ye=["onKeyup","placeholder"];var Ge=(0,a.aZ)({__name:"UsersNameFilter",emits:["filterOnUsername"],setup(e,{emit:t}){const n=(0,r.yj)(),l=(0,s.iH)(n.query.q?n.query.q:"");function c(){""!==l.value&&t("filterOnUsername",l)}function u(){l.value="",t("filterOnUsername",l.value)}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Me,[(0,a._)("div",be,[(0,a.wy)((0,a._)("input",{id:"username",name:"username","onUpdate:modelValue":t[0]||(t[0]=e=>l.value=e),onKeyup:(0,i.D2)(c,["enter"]),placeholder:e.$t("user.FILTER_ON_USERNAME")},null,40,ye),[[i.nr,l.value,void 0,{trim:!0}]]),""!==l.value?((0,a.wg)(),(0,a.iD)("i",{key:0,class:"fa fa-times","aria-hidden":"true",onClick:u})):(0,a.kq)("",!0)]),(0,a._)("i",{class:(0,o.C_)(["fa fa-search",{"fa-disabled":""===l.value}]),"aria-hidden":"true",onClick:c},null,2)]))}});const Fe=(0,k.Z)(Ge,[["__scopeId","data-v-627a8e91"]]);var We=Fe,Be=n(2766),Ke=n(6558);const Ye=e=>((0,a.dD)("data-v-dc12ff78"),e=e(),(0,a.Cn)(),e),xe={id:"admin-users",class:"admin-card"},He={key:0,class:"no-users"},Ze={key:1,class:"responsive-table"},$e=Ye((()=>(0,a._)("th",null,"#",-1))),Ve={class:"left-text"},qe={class:"left-text"},je={class:"left-text"},Xe={class:"cell-heading"},Je={class:"cell-heading"},Qe={class:"cell-heading"},et={class:"cell-heading"},tt={class:"text-center"},nt={class:"cell-heading"},rt={class:"text-center"},at={class:"cell-heading"},ot={class:"text-center"},it={class:"cell-heading"},st={class:"text-center"},lt={class:"cell-heading"},ct=["disabled","onClick"];var ut=(0,a.aZ)({__name:"AdminUsers",setup(e){const t=(0,c.o)(),n=(0,r.yj)(),u=(0,r.tv)(),m=["is_active","admin","created_at","username","workouts_count"],d="created_at";let E=(0,s.qj)((0,Be.pm)(n.query,m,d));const S=(0,a.Fl)((()=>t.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),_=(0,a.Fl)((()=>t.getters[l.RT.GETTERS.USERS])),T=(0,a.Fl)((()=>t.getters[l.RT.GETTERS.USERS_PAGINATION])),p=(0,a.Fl)((()=>t.getters[l.SY.GETTERS.ERROR_MESSAGES]));function A(e){t.dispatch(l.RT.ACTIONS.GET_USERS,e)}function O(e){I("q",e.value)}function z(e,n){t.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,admin:n})}function I(e,t){E[e]=t,"per_page"===e&&(E.page=1),u.push({path:"/admin/users",query:E})}return(0,a.wF)((()=>A(E))),(0,a.Ah)((()=>{t.dispatch(l.RT.ACTIONS.EMPTY_USERS)})),(0,a.YP)((()=>n.query),(e=>{E=(0,Be.pm)(e,m,d,{query:E}),A(E)})),(e,t)=>{const n=(0,a.up)("router-link"),r=(0,a.up)("ErrorMessage"),l=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",xe,[(0,a.Wm)(l,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,o.kC)(e.$t("admin.USER",0))),1)])),content:(0,a.w5)((()=>[(0,a._)("button",{class:"top-button",onClick:t[0]||(t[0]=(0,i.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1),(0,a.Wm)(We,{onFilterOnUsername:O}),(0,a.Wm)(Pe.Z,{sort:(0,s.SU)(Be.fS),order_by:m,query:(0,s.SU)(E),message:"admin.USERS.SELECTS.ORDER_BY",onUpdateSelect:I},null,8,["sort","query"]),0===(0,s.SU)(_).length?((0,a.wg)(),(0,a.iD)("div",He,(0,o.zw)(e.$t("user.NO_USERS_FOUND")),1)):((0,a.wg)(),(0,a.iD)("div",Ze,[(0,a._)("table",null,[(0,a._)("thead",null,[(0,a._)("tr",null,[$e,(0,a._)("th",Ve,(0,o.zw)(e.$t("user.USERNAME")),1),(0,a._)("th",qe,(0,o.zw)(e.$t("user.EMAIL")),1),(0,a._)("th",je,(0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE")),1),(0,a._)("th",null,(0,o.zw)((0,o.kC)(e.$t("workouts.WORKOUT",0))),1),(0,a._)("th",null,(0,o.zw)(e.$t("admin.ACTIVE")),1),(0,a._)("th",null,(0,o.zw)(e.$t("user.ADMIN")),1),(0,a._)("th",null,(0,o.zw)(e.$t("admin.ACTION")),1)])]),(0,a._)("tbody",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(_),(t=>((0,a.wg)(),(0,a.iD)("tr",{key:t.username},[(0,a._)("td",null,[(0,a._)("span",Xe,(0,o.zw)(e.$t("user.PROFILE.PICTURE")),1),(0,a.Wm)(Le.Z,{user:t},null,8,["user"])]),(0,a._)("td",null,[(0,a._)("span",Je,(0,o.zw)(e.$t("user.USERNAME")),1),(0,a.Wm)(n,{to:`/admin/users/${t.username}`},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(t.username),1)])),_:2},1032,["to"])]),(0,a._)("td",null,[(0,a._)("span",Qe,(0,o.zw)(e.$t("user.EMAIL")),1),(0,a.Uk)(" "+(0,o.zw)(t.email),1)]),(0,a._)("td",null,[(0,a._)("span",et,(0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE")),1),(0,a.Uk)(" "+(0,o.zw)((0,s.SU)(Ke.p6)(t.created_at,(0,s.SU)(S).timezone,(0,s.SU)(S).date_format)),1)]),(0,a._)("td",tt,[(0,a._)("span",nt,(0,o.zw)((0,o.kC)(e.$t("workouts.WORKOUT",0))),1),(0,a.Uk)(" "+(0,o.zw)(t.nb_workouts),1)]),(0,a._)("td",rt,[(0,a._)("span",at,(0,o.zw)(e.$t("admin.ACTIVE")),1),(0,a._)("i",{class:(0,o.C_)(`fa fa${t.is_active?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),(0,a._)("td",ot,[(0,a._)("span",it,(0,o.zw)(e.$t("user.ADMIN")),1),(0,a._)("i",{class:(0,o.C_)(`fa fa${t.admin?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),(0,a._)("td",st,[(0,a._)("span",lt,(0,o.zw)(e.$t("admin.ACTION")),1),(0,a._)("button",{class:(0,o.C_)({danger:t.admin}),disabled:t.username===(0,s.SU)(S).username,onClick:e=>z(t.username,!t.admin)},(0,o.zw)(e.$t(`admin.USERS.TABLE.${t.admin?"REMOVE":"ADD"}_ADMIN_RIGHTS`)),11,ct)])])))),128))])]),(0,s.SU)(T).page?((0,a.wg)(),(0,a.j4)(ke.Z,{key:0,path:"/admin/users",pagination:(0,s.SU)(T),query:(0,s.SU)(E)},null,8,["pagination","query"])):(0,a.kq)("",!0),(0,s.SU)(p)?((0,a.wg)(),(0,a.j4)(r,{key:1,message:(0,s.SU)(p)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("button",{onClick:t[1]||(t[1]=(0,i.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1)]))])),_:1})])}}});const mt=(0,k.Z)(ut,[["__scopeId","data-v-dc12ff78"]]);var dt=mt,Et=n(2179);const St={class:"profile-tabs custom-checkboxes-group"},_t={class:"profile-tabs-checkboxes custom-checkboxes"},Tt=["id","name","checked","disabled","onInput"];var pt=(0,a.aZ)({__name:"UserProfileTabs",props:{tabs:null,selectedTab:null,edition:{type:Boolean},disabled:{type:Boolean,default:!1}},setup(e){const t=e,{tabs:n,selectedTab:r,disabled:i}=(0,s.BK)(t);function l(e){switch(e){case"ACCOUNT":case"PICTURE":return`/profile/edit/${e.toLocaleLowerCase()}`;case"APPS":case"PREFERENCES":case"SPORTS":return`/profile${t.edition?"/edit":""}/${e.toLocaleLowerCase()}`;default:case"PROFILE":return"/profile"+(t.edition?"/edit":"")}}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",St,[(0,a._)("div",_t,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(n),(t=>((0,a.wg)(),(0,a.iD)("div",{class:"profile-tab custom-checkbox",key:t},[(0,a._)("label",null,[(0,a._)("input",{type:"radio",id:t,name:t,checked:(0,s.SU)(r).split("/")[0]===t,disabled:(0,s.SU)(i),onInput:n=>e.$router.push(l(t))},null,40,Tt),(0,a._)("span",null,(0,o.zw)(e.$t(`user.PROFILE.TABS.${t}`)),1)])])))),128))])]))}});const At=pt;var Ot=At;const zt={id:"user-profile"},It={class:"box"};var Rt=(0,a.aZ)({__name:"index",props:{user:null,tab:null},setup(e){const t=e,{user:n,tab:r}=(0,s.BK)(t),o=["PROFILE","PREFERENCES","SPORTS","APPS"];return(e,t)=>{const i=(0,a.up)("router-view");return(0,a.wg)(),(0,a.iD)("div",zt,[(0,a.Wm)(Et.Z,{user:(0,s.SU)(n)},null,8,["user"]),(0,a._)("div",It,[(0,a.Wm)(Ot,{tabs:o,selectedTab:(0,s.SU)(r),edition:!1},null,8,["selectedTab"]),(0,a.Wm)(i,{user:(0,s.SU)(n)},null,8,["user"])])])}}});const gt=(0,k.Z)(Rt,[["__scopeId","data-v-9729cba4"]]);var Nt=gt,Ut=n(1585),ht=n(6287);const Ct={id:"user-preferences",class:"description-list"},wt={class:"profile-buttons"};var Dt=(0,a.aZ)({__name:"UserPreferences",props:{user:null},setup(e){const t=e,n=(0,c.o)(),r=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.LANGUAGE])),i=(0,a.Fl)((()=>t.user.language?ht.zK[t.user.language]:ht.zK.en)),u=(0,a.Fl)((()=>t.user.weekm?"MONDAY":"SUNDAY")),m=(0,a.Fl)((()=>t.user.timezone?t.user.timezone:"Europe/Paris")),d=(0,a.Fl)((()=>t.user.date_format?t.user.date_format:"MM/dd/yyyy")),E=(0,a.Fl)((()=>t.user.display_ascent?"DISPLAYED":"HIDDEN"));return(t,n)=>((0,a.wg)(),(0,a.iD)("div",Ct,[(0,a._)("dl",null,[(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.LANGUAGE"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,s.SU)(i)),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.TIMEZONE"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,s.SU)(m)),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.DATE_FORMAT"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,s.SU)(Ke.mh)((0,s.SU)(d),(0,s.SU)(r))),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+":",1),(0,a._)("dd",null,(0,o.zw)(t.$t(`user.PROFILE.${(0,s.SU)(u)}`)),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.UNITS.LABEL"))+":",1),(0,a._)("dd",null,(0,o.zw)(t.$t("user.PROFILE.UNITS."+(e.user.imperial_units?"IMPERIAL":"METRIC"))),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.ASCENT_DATA"))+":",1),(0,a._)("dd",null,(0,o.zw)(t.$t(`common.${(0,s.SU)(E)}`)),1)]),(0,a._)("div",wt,[(0,a._)("button",{onClick:n[0]||(n[0]=e=>t.$router.push("/profile/edit/preferences"))},(0,o.zw)(t.$t("user.PROFILE.EDIT_PREFERENCES")),1),(0,a._)("button",{onClick:n[1]||(n[1]=e=>t.$router.push("/"))},(0,o.zw)(t.$t("common.HOME")),1)])]))}});const vt=Dt;var ft=vt;const Pt={id:"user-profile-edition",class:"center-card"};var kt=(0,a.aZ)({__name:"index",props:{user:null,tab:null},setup(e){const t=e,n=(0,c.o)(),{user:r,tab:i}=(0,s.BK)(t),u=["PROFILE","ACCOUNT","PICTURE","PREFERENCES","SPORTS"],m=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING]));return(e,t)=>{const n=(0,a.up)("router-view"),l=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",Pt,[(0,a.Wm)(l,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t(`user.PROFILE.${(0,s.SU)(i)}_EDITION`)),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(Ot,{tabs:u,selectedTab:(0,s.SU)(i),edition:!0,disabled:(0,s.SU)(m)},null,8,["selectedTab","disabled"]),(0,a.Wm)(n,{user:(0,s.SU)(r)},null,8,["user"])])),_:1})])}}});const Lt=kt;var Mt=Lt,bt=n(8403);const yt={id:"user-infos-edition"},Gt={class:"profile-form form-box"},Ft={key:1,class:"info-box success-message"},Wt=["onSubmit"],Bt={class:"form-items",for:"email"},Kt=["disabled"],Yt={class:"form-items",for:"password-field"},xt={class:"form-items",for:"new-password-field"},Ht={class:"form-buttons"},Zt={class:"confirm",type:"submit"};var $t=(0,a.aZ)({__name:"UserAccountEdition",props:{user:null},setup(e){const t=e,{user:n}=(0,s.BK)(t),r=(0,c.o)(),u=(0,s.qj)({email:"",password:"",new_password:""}),m=(0,a.Fl)((()=>r.getters[l.YN.GETTERS.USER_LOADING])),d=(0,a.Fl)((()=>r.getters[l.SY.GETTERS.APP_CONFIG])),E=(0,a.Fl)((()=>r.getters[l.YN.GETTERS.IS_SUCCESS])),S=(0,s.iH)(!1),_=(0,a.Fl)((()=>r.getters[l.SY.GETTERS.ERROR_MESSAGES])),T=(0,s.iH)(!1),p=(0,s.iH)(!1);function A(){T.value=!0}function O(e){u.email=e.email}function z(e){u.password=e}function I(e){u.new_password=e}function R(){const e={email:u.email,password:u.password};u.new_password&&(e.new_password=u.new_password),S.value=u.email!==n.value.email,r.dispatch(l.YN.ACTIONS.UPDATE_USER_ACCOUNT,e)}function g(e){p.value=e}function N(e){r.dispatch(l.YN.ACTIONS.DELETE_ACCOUNT,{username:e})}return(0,a.bv)((()=>{t.user&&O(t.user)})),(0,a.Ah)((()=>{r.commit(l.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),r.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(0,a.YP)((()=>E.value),(async e=>{e&&(z(""),I(""),O(n.value),T.value=!1)})),(0,a.YP)((()=>n.value.email),(async()=>{O(n.value)})),(e,t)=>{const r=(0,a.up)("Modal"),l=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",yt,[p.value?((0,a.wg)(),(0,a.j4)(r,{key:0,title:e.$t("common.CONFIRMATION"),message:e.$t("user.CONFIRM_ACCOUNT_DELETION"),onConfirmAction:t[0]||(t[0]=e=>N((0,s.SU)(n).username)),onCancelAction:t[1]||(t[1]=e=>g(!1))},null,8,["title","message"])):(0,a.kq)("",!0),(0,a._)("div",Gt,[(0,s.SU)(_)?((0,a.wg)(),(0,a.j4)(l,{key:0,message:(0,s.SU)(_)},null,8,["message"])):(0,a.kq)("",!0),(0,s.SU)(E)?((0,a.wg)(),(0,a.iD)("div",Ft,(0,o.zw)(e.$t(`user.PROFILE.SUCCESSFUL_${S.value&&(0,s.SU)(d).is_email_sending_enabled?"EMAIL_":""}UPDATE`)),1)):(0,a.kq)("",!0),(0,a._)("form",{class:(0,o.C_)({errors:T.value}),onSubmit:(0,i.iM)(R,["prevent"])},[(0,a._)("label",Bt,[(0,a.Uk)((0,o.zw)(e.$t("user.EMAIL"))+"* ",1),(0,a.wy)((0,a._)("input",{id:"email","onUpdate:modelValue":t[2]||(t[2]=e=>u.email=e),disabled:(0,s.SU)(m),required:!0,onInvalid:A},null,40,Kt),[[i.nr,u.email]])]),(0,a._)("label",Yt,[(0,a.Uk)((0,o.zw)(e.$t("user.CURRENT_PASSWORD"))+"* ",1),(0,a.Wm)(bt.Z,{id:"password-field",disabled:(0,s.SU)(m),password:u.password,required:!0,onUpdatePassword:z,onPasswordError:A},null,8,["disabled","password"])]),(0,a._)("label",xt,[(0,a.Uk)((0,o.zw)(e.$t("user.NEW_PASSWORD"))+" ",1),(0,a.Wm)(bt.Z,{id:"new-password-field",disabled:(0,s.SU)(m),checkStrength:!0,password:u.new_password,isSuccess:!1,onUpdatePassword:I,onPasswordError:A},null,8,["disabled","password"])]),(0,a._)("div",Ht,[(0,a._)("button",Zt,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:t[3]||(t[3]=(0,i.iM)((t=>e.$router.push("/profile")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1),(0,a._)("button",{class:"danger",onClick:t[4]||(t[4]=(0,i.iM)((e=>g(!0)),["prevent"]))},(0,o.zw)(e.$t("buttons.DELETE_MY_ACCOUNT")),1)])],42,Wt)])])}}});const Vt=(0,k.Z)($t,[["__scopeId","data-v-37b8c4c8"]]);var qt=Vt,jt=n(6761);const Xt={id:"user-infos-edition"},Jt={class:"profile-form form-box"},Qt=["onSubmit"],en={class:"form-items",for:"registrationDate"},tn=["value"],nn={class:"form-items",for:"first_name"},rn=["disabled"],an={class:"form-items",for:"last_name"},on={class:"form-items",for:"birth_date"},sn=["disabled"],ln={class:"form-items",for:"location"},cn=["disabled"],un={class:"form-items"},mn={class:"form-buttons"},dn={class:"confirm",type:"submit"};var En=(0,a.aZ)({__name:"UserInfosEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),r=(0,s.qj)({first_name:"",last_name:"",birth_date:"",location:"",bio:""}),u=(0,a.Fl)((()=>t.user.created_at?(0,Ke.p6)(t.user.created_at,t.user.timezone,t.user.date_format):"")),m=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),d=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function E(e){r.first_name=e.first_name?e.first_name:"",r.last_name=e.last_name?e.last_name:"",r.birth_date=e.birth_date?(0,jt.Z)(new Date(e.birth_date),"yyyy-MM-dd"):"",r.location=e.location?e.location:"",r.bio=e.bio?e.bio:""}function S(e){r.bio=e}function _(){n.dispatch(l.YN.ACTIONS.UPDATE_USER_PROFILE,r)}return(0,a.bv)((()=>{t.user&&E(t.user)})),(0,a.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,t)=>{const n=(0,a.up)("ErrorMessage"),l=(0,a.up)("CustomTextArea");return(0,a.wg)(),(0,a.iD)("div",Xt,[(0,a._)("div",Jt,[(0,s.SU)(d)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,s.SU)(d)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("form",{onSubmit:(0,i.iM)(_,["prevent"])},[(0,a._)("label",en,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE"))+" ",1),(0,a._)("input",{id:"registrationDate",value:(0,s.SU)(u),disabled:""},null,8,tn)]),(0,a._)("label",nn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.FIRST_NAME"))+" ",1),(0,a.wy)((0,a._)("input",{id:"first_name","onUpdate:modelValue":t[0]||(t[0]=e=>r.first_name=e),disabled:(0,s.SU)(m)},null,8,rn),[[i.nr,r.first_name]])]),(0,a._)("label",an,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.LAST_NAME"))+" ",1),(0,a.wy)((0,a._)("input",{id:"last_name","onUpdate:modelValue":t[1]||(t[1]=e=>r.last_name=e)},null,512),[[i.nr,r.last_name]])]),(0,a._)("label",on,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.BIRTH_DATE"))+" ",1),(0,a.wy)((0,a._)("input",{id:"birth_date",type:"date",class:"birth-date","onUpdate:modelValue":t[2]||(t[2]=e=>r.birth_date=e),disabled:(0,s.SU)(m)},null,8,sn),[[i.nr,r.birth_date]])]),(0,a._)("label",ln,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.LOCATION"))+" ",1),(0,a.wy)((0,a._)("input",{id:"location","onUpdate:modelValue":t[3]||(t[3]=e=>r.location=e),disabled:(0,s.SU)(m)},null,8,cn),[[i.nr,r.location]])]),(0,a._)("label",un,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.BIO"))+" ",1),(0,a.Wm)(l,{name:"bio",charLimit:200,input:r.bio,disabled:(0,s.SU)(m),onUpdateValue:S},null,8,["input","disabled"])]),(0,a._)("div",mn,[(0,a._)("button",dn,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:t[4]||(t[4]=(0,i.iM)((t=>e.$router.push("/profile")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])],40,Qt)])])}}});const Sn=(0,k.Z)(En,[["__scopeId","data-v-5e5a4552"]]);var _n=Sn;const Tn=e=>((0,a.dD)("data-v-687e9604"),e=e(),(0,a.Cn)(),e),pn={id:"user-picture-edition"},An={class:"user-picture-form"},On=["onSubmit"],zn={class:"picture-help"},In={class:"info-box"},Rn=Tn((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),gn={class:"picture-buttons"},Nn=["disabled"];var Un=(0,a.aZ)({__name:"UserPictureEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),{user:r}=(0,s.BK)(t),m=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),d=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.APP_CONFIG])),E=d.value.max_single_file_size?(0,u.Z)(d.value.max_single_file_size):"",S=(0,s.iH)(null);function _(){n.dispatch(l.YN.ACTIONS.DELETE_PICTURE)}function T(e){e.target.files&&(S.value=e.target.files[0])}function p(){S.value&&n.dispatch(l.YN.ACTIONS.UPDATE_USER_PICTURE,{picture:S.value})}return(0,a.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,t)=>{const n=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",pn,[(0,a._)("div",An,[(0,s.SU)(m)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,s.SU)(m)},null,8,["message"])):(0,a.kq)("",!0),(0,a.Wm)(Le.Z,{user:(0,s.SU)(r)},null,8,["user"]),(0,a._)("form",{onSubmit:(0,i.iM)(p,["prevent"])},[(0,a._)("input",{type:"file",name:"picture",accept:".png,.jpg,.gif",onInput:T},null,32),(0,a._)("div",zn,[(0,a._)("span",In,[Rn,(0,a.Uk)(" "+(0,o.zw)(e.$t("workouts.MAX_SIZE"))+": "+(0,o.zw)((0,s.SU)(E)),1)])]),(0,a._)("div",gn,[(0,a._)("button",{type:"submit",disabled:!S.value},(0,o.zw)(e.$t("user.PROFILE.PICTURE_UPDATE")),9,Nn),(0,s.SU)(r).picture?((0,a.wg)(),(0,a.iD)("button",{key:0,class:"danger",onClick:_},(0,o.zw)(e.$t("user.PROFILE.PICTURE_REMOVE")),1)):(0,a.kq)("",!0),(0,a._)("button",{class:"cancel",onClick:t[0]||(t[0]=t=>e.$router.push("/profile"))},(0,o.zw)(e.$t("user.PROFILE.BACK_TO_PROFILE")),1)])],40,On)])])}}});const hn=(0,k.Z)(Un,[["__scopeId","data-v-687e9604"]]);var Cn=hn;const wn=["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"],Dn={id:"tz-dropdown"},vn=["value","disabled","onKeydown"],fn=["onClick","onMouseover","autofocus"];var Pn=(0,a.aZ)({__name:"TimezoneDropdown",props:{input:null,disabled:{type:Boolean,default:!1}},emits:["updateTimezone"],setup(e,{emit:t}){const n=e,{input:r,disabled:l}=(0,s.BK)(n),c=(0,s.iH)(n.input),u=(0,s.iH)(!1),m=(0,s.iH)(null),d=(0,s.iH)(0);function E(e){return e.toLowerCase().match(c.value.toLowerCase())}function S(e){d.value=e}function _(e){c.value=e,u.value=!1,t("updateTimezone",e)}function T(e){e.preventDefault(),m.value?.firstElementChild?.innerHTML&&_(m.value?.firstElementChild?.innerHTML)}function p(e){e.preventDefault(),u.value=!0,c.value=e.target.value.trim()}return(0,a.YP)((()=>n.input),(e=>{c.value=e})),(e,t)=>((0,a.wg)(),(0,a.iD)("div",Dn,[(0,a._)("input",{class:"tz-dropdown-input",id:"timezone",name:"timezone",value:c.value,disabled:(0,s.SU)(l),required:"",onKeydown:[t[0]||(t[0]=(0,i.D2)((e=>_((0,s.SU)(r))),["esc"])),(0,i.D2)(T,["enter"])],onInput:p},null,40,vn),u.value?((0,a.wg)(),(0,a.iD)("ul",{key:0,class:"tz-dropdown-list",ref_key:"tzList",ref:m},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(wn).filter((e=>E(e))),((e,t)=>((0,a.wg)(),(0,a.iD)("li",{key:e,class:(0,o.C_)(["tz-dropdown-item",{focus:t===d.value}]),onClick:t=>_(e),onMouseover:e=>S(t),autofocus:t===d.value},(0,o.zw)(e),43,fn)))),128))],512)):(0,a.kq)("",!0)]))}});const kn=(0,k.Z)(Pn,[["__scopeId","data-v-47ea2903"]]);var Ln=kn;const Mn={id:"user-preferences-edition"},bn={class:"profile-form form-box"},yn=["onSubmit"],Gn={class:"form-items"},Fn=["disabled"],Wn=["value"],Bn={class:"form-items"},Kn={class:"form-items"},Yn=["disabled"],xn=["value"],Hn={class:"form-items form-checkboxes"},Zn={class:"checkboxes-label"},$n={class:"checkboxes"},Vn=["id","name","checked","disabled","onInput"],qn={class:"checkbox-label"},jn={class:"form-items form-checkboxes"},Xn={class:"checkboxes-label"},Jn={class:"checkboxes"},Qn=["id","name","checked","disabled","onInput"],er={class:"checkbox-label"},tr={class:"form-items form-checkboxes"},nr={class:"checkboxes-label"},rr={class:"checkboxes"},ar=["id","name","checked","disabled","onInput"],or={class:"checkbox-label"},ir={class:"form-buttons"},sr={class:"confirm",type:"submit"};var lr=(0,a.aZ)({__name:"UserPreferencesEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),r=(0,s.qj)({display_ascent:!0,imperial_units:!1,language:"",timezone:"Europe/Paris",date_format:"dd/MM/yyyy",weekm:!1}),u=[{label:"SUNDAY",value:!1},{label:"MONDAY",value:!0}],m=[{label:"METRIC",value:!1},{label:"IMPERIAL",value:!0}],d=[{label:"DISPLAYED",value:!0},{label:"HIDDEN",value:!1}],E=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),S=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),_=(0,a.Fl)((()=>(0,Ke.d2)((new Date).toUTCString(),t.user.timezone,r.language)));function T(e){r.display_ascent=e.display_ascent,r.imperial_units=!!e.imperial_units&&e.imperial_units,r.language=e.language?e.language:"en",r.timezone=e.timezone?e.timezone:"Europe/Paris",r.date_format=e.date_format?e.date_format:"dd/MM/yyyy",r.weekm=!!e.weekm&&e.weekm}function p(){n.dispatch(l.YN.ACTIONS.UPDATE_USER_PREFERENCES,r)}function A(e){r.timezone=e}function O(e){r.display_ascent=e}function z(e){r.imperial_units=e}function I(e){r.weekm=e}return(0,a.bv)((()=>{t.user&&T(t.user)})),(0,a.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,t)=>{const n=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",Mn,[(0,a._)("div",bn,[(0,s.SU)(S)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,s.SU)(S)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("form",{onSubmit:(0,i.iM)(p,["prevent"])},[(0,a._)("label",Gn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.LANGUAGE"))+" ",1),(0,a.wy)((0,a._)("select",{id:"language","onUpdate:modelValue":t[0]||(t[0]=e=>r.language=e),disabled:(0,s.SU)(E)},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(ht.mT),(e=>((0,a.wg)(),(0,a.iD)("option",{value:e.value,key:e.value},(0,o.zw)(e.label),9,Wn)))),128))],8,Fn),[[i.bM,r.language]])]),(0,a._)("label",Bn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.TIMEZONE"))+" ",1),(0,a.Wm)(Ln,{input:r.timezone,disabled:(0,s.SU)(E),onUpdateTimezone:A},null,8,["input","disabled"])]),(0,a._)("label",Kn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.DATE_FORMAT"))+" ",1),(0,a.wy)((0,a._)("select",{id:"date_format","onUpdate:modelValue":t[1]||(t[1]=e=>r.date_format=e),disabled:(0,s.SU)(E)},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(_),(e=>((0,a.wg)(),(0,a.iD)("option",{value:e.value,key:e.value},(0,o.zw)(e.label),9,xn)))),128))],8,Yn),[[i.bM,r.date_format]])]),(0,a._)("div",Hn,[(0,a._)("span",Zn,(0,o.zw)(e.$t("user.PROFILE.FIRST_DAY_OF_WEEK")),1),(0,a._)("div",$n,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(u,(t=>(0,a._)("label",{key:t.label},[(0,a._)("input",{type:"radio",id:t.label,name:t.label,checked:t.value===r.weekm,disabled:(0,s.SU)(E),onInput:e=>I(t.value)},null,40,Vn),(0,a._)("span",qn,(0,o.zw)(e.$t(`user.PROFILE.${t.label}`)),1)]))),64))])]),(0,a._)("div",jn,[(0,a._)("span",Xn,(0,o.zw)(e.$t("user.PROFILE.UNITS.LABEL")),1),(0,a._)("div",Jn,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(m,(t=>(0,a._)("label",{key:t.label},[(0,a._)("input",{type:"radio",id:t.label,name:t.label,checked:t.value===r.imperial_units,disabled:(0,s.SU)(E),onInput:e=>z(t.value)},null,40,Qn),(0,a._)("span",er,(0,o.zw)(e.$t(`user.PROFILE.UNITS.${t.label}`)),1)]))),64))])]),(0,a._)("div",tr,[(0,a._)("span",nr,(0,o.zw)(e.$t("user.PROFILE.ASCENT_DATA")),1),(0,a._)("div",rr,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(d,(t=>(0,a._)("label",{key:t.label},[(0,a._)("input",{type:"radio",id:t.label,name:t.label,checked:t.value===r.display_ascent,disabled:(0,s.SU)(E),onInput:e=>O(t.value)},null,40,ar),(0,a._)("span",or,(0,o.zw)(e.$t(`common.${t.label}`)),1)]))),64))])]),(0,a._)("div",ir,[(0,a._)("button",sr,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:t[2]||(t[2]=(0,i.iM)((t=>e.$router.push("/profile/preferences")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])],40,yn)])])}}});const cr=(0,k.Z)(lr,[["__scopeId","data-v-3b8a9a12"]]);var ur=cr;const mr=["profile:read","profile:write","users:read","users:write","workouts:read","workouts:write"],dr=["application:write"],Er={id:"new-oauth2-app"},Sr={id:"new-oauth2-title"},_r={id:"apps-form"},Tr=["onSubmit"],pr={class:"form-items"},Ar={class:"form-item"},Or={for:"app-name"},zr={class:"form-item"},Ir={for:"app-description"},Rr={class:"form-item"},gr={for:"app-url"},Nr={class:"form-item"},Ur={for:"app-redirect-uri"},hr={class:"form-item-scope"},Cr={class:"form-item-scope-label"},wr={class:"scope-label"},Dr=["name","checked","onChange"],vr=["innerHTML"],fr={class:"form-buttons"},Pr=["disabled"];var kr=(0,a.aZ)({__name:"AddUserApp",props:{authUser:null},setup(e){const t=e,n=(0,c.o)(),r=(0,s.qj)({client_name:"",client_uri:"",client_description:"",redirect_uri:""}),u=(0,s.qj)([]),m=(0,a.Fl)((()=>_(t.authUser,dr,mr)));function d(){const e={client_name:r.client_name,client_description:r.client_description,client_uri:r.client_uri,redirect_uris:[r.redirect_uri],scope:u.sort().join(" ")};n.dispatch(l.Km.ACTIONS.CREATE_CLIENT,e)}function E(e){r.client_description=e}function S(e){const t=u.indexOf(e);t>-1?u.splice(t,1):u.push(e)}function _(e,t,n){const r=[...n];return e.admin&&r.push(...t),r.sort()}return(e,t)=>{const n=(0,a.up)("CustomTextArea");return(0,a.wg)(),(0,a.iD)("div",Er,[(0,a._)("h1",Sr,(0,o.zw)(e.$t("oauth2.ADD_A_NEW_APP")),1),(0,a._)("div",_r,[(0,a._)("form",{onSubmit:(0,i.iM)(d,["prevent"])},[(0,a._)("div",pr,[(0,a._)("div",Ar,[(0,a._)("label",Or,(0,o.zw)(e.$t("oauth2.APP.NAME"))+"*",1),(0,a.wy)((0,a._)("input",{id:"app-name",type:"text",required:"","onUpdate:modelValue":t[0]||(t[0]=e=>r.client_name=e)},null,512),[[i.nr,r.client_name]])]),(0,a._)("div",zr,[(0,a._)("label",Ir,(0,o.zw)(e.$t("oauth2.APP.DESCRIPTION")),1),(0,a.Wm)(n,{name:"app-description",charLimit:200,input:r.description,onUpdateValue:E},null,8,["input"])]),(0,a._)("div",Rr,[(0,a._)("label",gr,(0,o.zw)(e.$t("oauth2.APP.URL"))+"*",1),(0,a.wy)((0,a._)("input",{id:"app-url",type:"text",required:"","onUpdate:modelValue":t[1]||(t[1]=e=>r.client_uri=e)},null,512),[[i.nr,r.client_uri]])]),(0,a._)("div",Nr,[(0,a._)("label",Ur,(0,o.zw)(e.$t("oauth2.APP.REDIRECT_URL"))+"* ",1),(0,a.wy)((0,a._)("input",{id:"app-redirect-uri",type:"text",required:"","onUpdate:modelValue":t[2]||(t[2]=e=>r.redirect_uri=e)},null,512),[[i.nr,r.redirect_uri]])]),(0,a._)("div",hr,[(0,a._)("div",Cr,(0,o.zw)(e.$t("oauth2.APP.SCOPE.LABEL"))+"* ",1),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(m),(t=>((0,a.wg)(),(0,a.iD)("div",{class:"form-item-scope-checkboxes",key:t},[(0,a._)("label",wr,[(0,a._)("input",{type:"checkbox",name:t,checked:u.includes(t),onChange:e=>S(t)},null,40,Dr),(0,a._)("code",null,(0,o.zw)(t),1)]),(0,a._)("p",{class:"scope-description",innerHTML:e.$t(`oauth2.APP.SCOPE.${t}_DESCRIPTION`)},null,8,vr)])))),128))])]),(0,a._)("div",fr,[(0,a._)("button",{class:"confirm",type:"submit",disabled:0===u.length},(0,o.zw)(e.$t("buttons.SUBMIT")),9,Pr),(0,a._)("button",{class:"cancel",onClick:t[3]||(t[3]=(0,i.iM)((()=>e.$router.push("/profile/apps")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])],40,Tr)])])}}});const Lr=(0,k.Z)(kr,[["__scopeId","data-v-0657ee77"]]);var Mr=Lr;const br={id:"authorize-oauth2-app"},yr={key:0},Gr={id:"authorize-oauth2-title"},Fr={class:"oauth2-access description-list"},Wr={class:"client-scope"},Br=["innerHTML"],Kr={class:"authorize-oauth2-buttons"},Yr={key:1},xr={class:"no-app"};var Hr=(0,a.aZ)({__name:"AuthorizeUserApp",setup(e){const t=(0,r.yj)(),n=(0,c.o)(),i=(0,a.Fl)((()=>n.getters[l.Km.GETTERS.CLIENT])),u=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function m(){t.query.client_id&&"string"===typeof t.query.client_id&&n.dispatch(l.Km.ACTIONS.GET_CLIENT_BY_CLIENT_ID,t.query.client_id)}function d(){n.dispatch(l.Km.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(0,a.wF)((()=>m())),(e,t)=>{const n=(0,a.up)("router-link"),r=(0,a.up)("i18n-t"),l=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",br,[(0,s.SU)(i).client_id?((0,a.wg)(),(0,a.iD)("div",yr,[(0,a._)("h1",Gr,[(0,a.Wm)(r,{keypath:"oauth2.AUTHORIZE_APP"},{default:(0,a.w5)((()=>[(0,a.Wm)(n,{to:{name:"UserApp",params:{id:(0,s.SU)(i).id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,s.SU)(i).name),1)])),_:1},8,["to"])])),_:1})]),(0,s.SU)(u)?((0,a.wg)(),(0,a.j4)(l,{key:0,message:(0,s.SU)(u)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("div",Fr,[(0,a._)("p",null,(0,o.zw)(e.$t("oauth2.APP_REQUESTING_ACCESS")),1),(0,a._)("dl",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(i).scope.split(" "),(t=>((0,a.wg)(),(0,a.iD)(a.HY,{key:t},[(0,a._)("dt",Wr,[(0,a._)("code",null,(0,o.zw)(t),1)]),(0,a._)("dd",{innerHTML:e.$t(`oauth2.APP.SCOPE.${t}_DESCRIPTION`)},null,8,Br)],64)))),128))]),(0,a._)("div",Kr,[(0,a._)("button",{class:"danger",onClick:d},(0,o.zw)(e.$t("buttons.AUTHORIZE")),1),(0,a._)("button",{class:"cancel",onClick:t[0]||(t[0]=t=>e.$router.push("/profile/apps"))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])])])):((0,a.wg)(),(0,a.iD)("div",Yr,[(0,a._)("p",xr,(0,o.zw)(e.$t("oauth2.NO_APP")),1),(0,a._)("button",{onClick:t[1]||(t[1]=t=>e.$router.push("/profile/apps"))},(0,o.zw)(e.$t("buttons.BACK")),1)]))])}}});const Zr=(0,k.Z)(Hr,[["__scopeId","data-v-3b2fe9ed"]]);var $r=Zr;const Vr={id:"oauth2-apps"};var qr=(0,a.aZ)({__name:"index",props:{user:null},setup(e){const t=e,n=(0,c.o)(),{user:r}=(0,s.BK)(t);return(0,a.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(l.Km.MUTATIONS.SET_CLIENTS,[])})),(e,t)=>{const n=(0,a.up)("router-view");return(0,a.wg)(),(0,a.iD)("div",Vr,[(0,a.Wm)(n,{authUser:(0,s.SU)(r)},null,8,["authUser"])])}}});const jr=qr;var Xr=jr;const Jr={id:"oauth2-app",class:"description-list"},Qr={key:1},ea={key:0,class:"info-box success-message"},ta=["title"],na={key:0},ra={key:1,class:"app-secret"},aa=["title"],oa={class:"client-scopes"},ia={class:"app-buttons"},sa={key:2},la={class:"no-app"};var ca=(0,a.aZ)({__name:"UserApp",props:{authUser:null,afterCreation:{type:Boolean,default:!1}},setup(e){const t=e,n=(0,r.yj)(),i=(0,c.o)(),{afterCreation:u,authUser:m}=(0,s.BK)(t),d=(0,a.Fl)((()=>i.getters[l.Km.GETTERS.CLIENT])),E=(0,a.Fl)((()=>i.getters[l.Km.GETTERS.REVOCATION_SUCCESSFUL])),S=(0,s.iH)(!1),_=(0,s.iH)(null),T=(0,s.iH)(!1),p=(0,s.iH)(!1),A=(0,s.iH)(!1);function O(){!u.value&&n.params.id&&"string"===typeof n.params.id&&i.dispatch(l.Km.ACTIONS.GET_CLIENT_BY_ID,+n.params.id)}function z(e){_.value=e?"oauth2.APP_DELETION_CONFIRMATION":"oauth2.TOKENS_REVOCATION_CONFIRMATION",I(!0)}function I(e){S.value=e,e||(_.value=null)}function R(e){"oauth2.APP_DELETION_CONFIRMATION"===_.value?i.dispatch(l.Km.ACTIONS.DELETE_CLIENT,e):i.dispatch(l.Km.ACTIONS.REVOKE_ALL_TOKENS,e)}function g(){navigator.clipboard.writeText(d.value.client_id),T.value=!0,p.value=!1,setTimeout((()=>{T.value=!1}),3e3)}function N(){d.value.client_secret&&(navigator.clipboard.writeText(d.value.client_secret),p.value=!0,T.value=!1,setTimeout((()=>{p.value=!1}),3e3))}return(0,a.wF)((()=>{O(),navigator.clipboard&&(A.value=!0)})),(0,a.Ah)((()=>{i.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),i.commit(l.Km.MUTATIONS.EMPTY_CLIENT),i.commit(l.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1)})),(0,a.YP)((()=>E.value),(e=>{e&&I(!1)})),(e,t)=>{const n=(0,a.up)("Modal");return(0,a.wg)(),(0,a.iD)("div",Jr,[S.value?((0,a.wg)(),(0,a.j4)(n,{key:0,title:e.$t("common.CONFIRMATION"),message:e.$t(_.value),onConfirmAction:t[0]||(t[0]=e=>R((0,s.SU)(d).id)),onCancelAction:t[1]||(t[1]=e=>I(!1))},null,8,["title","message"])):(0,a.kq)("",!0),(0,s.SU)(d)&&(0,s.SU)(d).client_id?((0,a.wg)(),(0,a.iD)("div",Qr,[(0,s.SU)(u)||(0,s.SU)(E)?((0,a.wg)(),(0,a.iD)("div",ea,(0,o.zw)(e.$t((0,s.SU)(u)?"oauth2.APP_CREATED_SUCCESSFULLY":"oauth2.TOKENS_REVOKED")),1)):(0,a.kq)("",!0),(0,a._)("dl",null,[(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.CLIENT_ID"))+":",1),(0,a._)("dd",null,[(0,a.Uk)((0,o.zw)((0,s.SU)(d).client_id)+" ",1),(0,s.SU)(u)&&A.value?((0,a.wg)(),(0,a.iD)("i",{key:0,class:(0,o.C_)("fa fa-"+(T.value?"check":"copy")),"aria-hidden":"true",title:e.$t("oauth2.COPY_TO_CLIPBOARD"),onClick:g},null,10,ta)):(0,a.kq)("",!0)]),(0,s.SU)(u)&&(0,s.SU)(d).client_secret?((0,a.wg)(),(0,a.iD)("dt",na,(0,o.zw)(e.$t("oauth2.APP.CLIENT_SECRET"))+": ",1)):(0,a.kq)("",!0),(0,s.SU)(u)&&(0,s.SU)(d).client_secret?((0,a.wg)(),(0,a.iD)("dd",ra,[(0,a.Uk)((0,o.zw)((0,s.SU)(d).client_secret)+" ",1),A.value?((0,a.wg)(),(0,a.iD)("i",{key:0,class:(0,o.C_)("fa fa-"+(p.value?"check":"copy")),"aria-hidden":"true",title:e.$t("oauth2.COPY_TO_CLIPBOARD"),onClick:N},null,10,aa)):(0,a.kq)("",!0)])):(0,a.kq)("",!0),(0,a._)("dt",null,(0,o.zw)((0,o.kC)(e.$t("oauth2.APP.ISSUE_AT")))+":",1),(0,a._)("dd",null,(0,o.zw)((0,s.SU)(Ke.p6)((0,s.SU)(d).issued_at,(0,s.SU)(m).timezone,(0,s.SU)(m).date_format)),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.NAME"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,s.SU)(d).name),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.DESCRIPTION"))+":",1),(0,a._)("dd",{class:(0,o.C_)({"no-description":!(0,s.SU)(d).client_description})},(0,o.zw)((0,s.SU)(d).client_description?(0,s.SU)(d).client_description:e.$t("oauth2.NO_DESCRIPTION")),3),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.URL"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,s.SU)(d).website),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.REDIRECT_URL"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,s.SU)(d).redirect_uris.length>0?(0,s.SU)(d).redirect_uris[0]:""),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.SCOPE.LABEL"))+":",1),(0,a._)("dd",oa,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(d).scope.split(" "),(e=>((0,a.wg)(),(0,a.iD)("span",{class:"client-scope",key:e},[(0,a._)("code",null,(0,o.zw)(e),1)])))),128))])]),(0,a._)("div",ia,[(0,a._)("button",{class:"danger",onClick:t[2]||(t[2]=e=>z(!1))},(0,o.zw)(e.$t("oauth2.REVOKE_ALL_TOKENS")),1),(0,a._)("button",{class:"danger",onClick:t[3]||(t[3]=e=>z(!0))},(0,o.zw)(e.$t("oauth2.DELETE_APP")),1),(0,a._)("button",{onClick:t[4]||(t[4]=t=>e.$router.push("/profile/apps"))},(0,o.zw)(e.$t("buttons.BACK")),1)])])):((0,a.wg)(),(0,a.iD)("div",sa,[(0,a._)("p",la,(0,o.zw)(e.$t("oauth2.NO_APP")),1),(0,a._)("button",{onClick:t[5]||(t[5]=t=>e.$router.push("/profile/apps"))},(0,o.zw)(e.$t("buttons.BACK")),1)]))])}}});const ua=(0,k.Z)(ca,[["__scopeId","data-v-3a844fa2"]]);var ma=ua;const da={id:"oauth2-apps-list"},Ea={class:"apps-list"},Sa={key:0},_a={class:"app-issued-at"},Ta={key:1,class:"no-apps"},pa={class:"app-list-buttons"};var Aa=(0,a.aZ)({__name:"UserAppsList",props:{authUser:null},setup(e){const t=e,n=(0,c.o)(),i=(0,r.yj)(),{authUser:u}=(0,s.BK)(t),m=(0,a.Fl)((()=>n.getters[l.Km.GETTERS.CLIENTS])),d=(0,a.Fl)((()=>n.getters[l.Km.GETTERS.CLIENTS_PAGINATION]));let E=S(i.query);function S(e){const t={};return e.page&&(t.page=(0,Be.z_)(e.page,Be.Hf)),t}function _(e){n.dispatch(l.Km.ACTIONS.GET_CLIENTS,e)}return(0,a.wF)((()=>{_(E)})),(0,a.YP)((()=>i.query),(async e=>{E=S(e),_(E)})),(e,t)=>{const n=(0,a.up)("router-link");return(0,a.wg)(),(0,a.iD)("div",da,[(0,a._)("p",Ea,(0,o.zw)(e.$t("oauth2.APPS_LIST")),1),(0,s.SU)(m).length>0?((0,a.wg)(),(0,a.iD)("ul",Sa,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(m),(t=>((0,a.wg)(),(0,a.iD)("li",{key:t.client_id},[(0,a.Wm)(n,{to:{name:"UserApp",params:{id:t.id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(t.name),1)])),_:2},1032,["to"]),(0,a._)("span",_a,(0,o.zw)(e.$t("oauth2.APP.ISSUE_AT"))+" "+(0,o.zw)((0,s.SU)(Ke.p6)(t.issued_at,(0,s.SU)(u).timezone,(0,s.SU)(u).date_format)),1)])))),128))])):((0,a.wg)(),(0,a.iD)("div",Ta,(0,o.zw)(e.$t("oauth2.NO_APPS")),1)),(0,s.SU)(m).length>0?((0,a.wg)(),(0,a.j4)(ke.Z,{key:2,pagination:(0,s.SU)(d),path:"/profile/apps",query:(0,s.SU)(E)},null,8,["pagination","query"])):(0,a.kq)("",!0),(0,a._)("div",pa,[(0,a._)("button",{onClick:t[0]||(t[0]=t=>e.$router.push("/profile/apps/new"))},(0,o.zw)(e.$t("oauth2.NEW_APP")),1),(0,a._)("button",{onClick:t[1]||(t[1]=t=>e.$router.push("/"))},(0,o.zw)(e.$t("common.HOME")),1)])])}}});const Oa=(0,k.Z)(Aa,[["__scopeId","data-v-efa45ea0"]]);var za=Oa;const Ia={id:"user-sport-preferences"},Ra={key:0,class:"responsive-table"},ga={class:"mobile-display"},Na={key:0,class:"profile-buttons mobile-display"},Ua={key:1,class:"profile-buttons"},ha={class:"text-left"},Ca={key:0},wa={class:"cell-heading"},Da=["value"],va={class:"cell-heading"},fa={key:0,class:"disabled-message"},Pa={key:1,class:"fa fa-refresh fa-spin fa-fw"},ka={class:"cell-heading"},La={class:"cell-heading"},Ma=["checked"],ba={class:"cell-heading"},ya=["value"],Ga={key:1},Fa={key:0,class:"action-buttons"},Wa={class:"cell-heading"},Ba=["onClick"],Ka={key:1,class:"edition-buttons"},Ya=["disabled"],xa=["disabled","onClick"],Ha=["disabled"],Za={key:0,class:"profile-buttons"},$a={key:1,class:"profile-buttons"};var Va=(0,a.aZ)({__name:"UserSportPreferences",props:{user:null,isEdition:{type:Boolean}},setup(e){const t=e,n=(0,c.o)(),{t:r}=(0,se.QT)(),{isEdition:u,user:m}=(0,s.BK)(t),d="#838383",E=(0,a.f3)("sportColors"),S=(0,a.Fl)((()=>n.getters[l.O8.GETTERS.SPORTS])),_=(0,a.Fl)((()=>(0,le.xH)(S.value,r,"is_active",m.value.sports_list))),T=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),p=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),A=(0,s.qj)({sport_id:0,color:null,is_active:!0,stopped_speed_threshold:1});function O(e){null!==e?(A.sport_id=e.id,A.color=e.color?e.color:E?E[e.label]:d,A.is_active=e.is_active_for_user,A.stopped_speed_threshold=e.stopped_speed_threshold):N()}function z(e){return A.sport_id===e}function I(e){A.color=e.target.value}function R(e){A.stopped_speed_threshold=parseFloat(e.target.value)}function g(e){A.is_active=e.target.checked}function N(){A.sport_id=0,A.color=null,A.is_active=!0,A.stopped_speed_threshold=1,n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)}function U(e){e.preventDefault(),n.dispatch(l.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,A)}function h(e,t){e.preventDefault(),n.dispatch(l.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES,t)}return(0,a.YP)((()=>T.value),(e=>{e||p.value||N()})),(e,t)=>{const n=(0,a.up)("SportImage"),r=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",Ia,[(0,s.SU)(S).length>0?((0,a.wg)(),(0,a.iD)("div",Ra,[(0,a._)("div",ga,[(0,s.SU)(u)?((0,a.wg)(),(0,a.iD)("div",Na,[(0,a._)("button",{class:"cancel",onClick:t[0]||(t[0]=(0,i.iM)((t=>e.$router.push("/profile/sports")),["prevent"]))},(0,o.zw)(e.$t("buttons.BACK")),1)])):((0,a.wg)(),(0,a.iD)("div",Ua,[(0,a._)("button",{onClick:t[1]||(t[1]=t=>e.$router.push("/profile/edit/sports"))},(0,o.zw)(e.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),(0,a._)("button",{onClick:t[2]||(t[2]=t=>e.$router.push("/"))},(0,o.zw)(e.$t("common.HOME")),1)]))]),(0,a._)("table",null,[(0,a._)("thead",null,[(0,a._)("tr",null,[(0,a._)("th",null,(0,o.zw)(e.$t("user.PROFILE.SPORT.COLOR")),1),(0,a._)("th",ha,(0,o.zw)(e.$t("workouts.SPORT",0)),1),(0,a._)("th",null,(0,o.zw)(e.$t("workouts.WORKOUT",0)),1),(0,a._)("th",null,(0,o.zw)(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),(0,a._)("th",null,(0,o.zw)(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),(0,s.SU)(u)?((0,a.wg)(),(0,a.iD)("th",Ca,(0,o.zw)(e.$t("user.PROFILE.SPORT.ACTION")),1)):(0,a.kq)("",!0)])]),(0,a._)("tbody",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(_),(i=>((0,a.wg)(),(0,a.iD)("tr",{key:i.id},[(0,a._)("td",null,[(0,a._)("span",wa,(0,o.zw)(e.$t("user.PROFILE.SPORT.COLOR")),1),z(i.id)?((0,a.wg)(),(0,a.iD)("input",{key:0,class:"sport-color",type:"color",value:A.color,onInput:I},null,40,Da)):((0,a.wg)(),(0,a.j4)(n,{key:1,title:i.translatedLabel,"sport-label":i.label,color:i.color?i.color:(0,s.SU)(E)[i.label]},null,8,["title","sport-label","color"]))]),(0,a._)("td",{class:(0,o.C_)(["sport-label",{"disabled-sport":!i.is_active}])},[(0,a._)("span",va,(0,o.zw)(e.$t("user.PROFILE.SPORT.LABEL")),1),(0,a.Uk)(" "+(0,o.zw)(i.translatedLabel)+" ",1),i.is_active?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("span",fa," ("+(0,o.zw)(e.$t("user.PROFILE.SPORT.DISABLED_BY_ADMIN"))+") ",1)),(0,s.SU)(T)&&z(i.id)?((0,a.wg)(),(0,a.iD)("i",Pa)):(0,a.kq)("",!0),(0,s.SU)(p)&&A.sport_id===i.id?((0,a.wg)(),(0,a.j4)(r,{key:2,message:(0,s.SU)(p)},null,8,["message"])):(0,a.kq)("",!0)],2),(0,a._)("td",{class:(0,o.C_)(["text-center",{"disabled-sport":!i.is_active}])},[(0,a._)("span",ka,(0,o.zw)(e.$t("workouts.WORKOUT",0)),1),(0,a._)("i",{class:(0,o.C_)("fa fa"+((0,s.SU)(m).sports_list.includes(i.id)?"-check":"")),"aria-hidden":"true"},null,2)],2),(0,a._)("td",{class:(0,o.C_)(["text-center",{"disabled-sport":!i.is_active}])},[(0,a._)("span",La,(0,o.zw)(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),z(i.id)&&i.is_active?((0,a.wg)(),(0,a.iD)("input",{key:0,type:"checkbox",checked:i.is_active_for_user,onChange:g},null,40,Ma)):((0,a.wg)(),(0,a.iD)("i",{key:1,class:(0,o.C_)("fa fa"+(i.is_active_for_user?"-check":"")),"aria-hidden":"true"},null,2))],2),(0,a._)("td",{class:(0,o.C_)(["text-center",{"disabled-sport":!i.is_active}])},[(0,a._)("span",ba,(0,o.zw)(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),z(i.id)&&i.is_active?((0,a.wg)(),(0,a.iD)("input",{key:0,class:"threshold-input",type:"number",min:"0",step:"0.1",value:A.stopped_speed_threshold,onInput:R},null,40,ya)):((0,a.wg)(),(0,a.iD)("span",Ga,(0,o.zw)(i.stopped_speed_threshold),1))],2),(0,s.SU)(u)?((0,a.wg)(),(0,a.iD)("td",Fa,[(0,a._)("span",Wa,(0,o.zw)(e.$t("user.PROFILE.SPORT.ACTION")),1),0===A.sport_id?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e=>O(i)},(0,o.zw)(e.$t("buttons.EDIT")),9,Ba)):(0,a.kq)("",!0),z(i.id)?((0,a.wg)(),(0,a.iD)("div",Ka,[(0,a._)("button",{disabled:(0,s.SU)(T),onClick:U},(0,o.zw)(e.$t("buttons.SUBMIT")),9,Ya),(0,a._)("button",{disabled:(0,s.SU)(T),onClick:e=>h(e,i.id)},(0,o.zw)(e.$t("buttons.RESET")),9,xa),(0,a._)("button",{disabled:(0,s.SU)(T),onClick:t[3]||(t[3]=e=>O(null))},(0,o.zw)(e.$t("buttons.CANCEL")),9,Ha)])):(0,a.kq)("",!0)])):(0,a.kq)("",!0)])))),128))])]),(0,s.SU)(u)?((0,a.wg)(),(0,a.iD)("div",Za,[(0,a._)("button",{class:"cancel",onClick:t[4]||(t[4]=(0,i.iM)((t=>e.$router.push("/profile/sports")),["prevent"]))},(0,o.zw)(e.$t("buttons.BACK")),1)])):((0,a.wg)(),(0,a.iD)("div",$a,[(0,a._)("button",{onClick:t[5]||(t[5]=t=>e.$router.push("/profile/edit/sports"))},(0,o.zw)(e.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),(0,a._)("button",{onClick:t[6]||(t[6]=t=>e.$router.push("/"))},(0,o.zw)(e.$t("common.HOME")),1)]))])):(0,a.kq)("",!0)])}}});const qa=(0,k.Z)(Va,[["__scopeId","data-v-74e52489"]]);var ja=qa,Xa=n(2894);const Ja=e=>((0,a.dD)("data-v-2b7b6dd6"),e=e(),(0,a.Cn)(),e),Qa={class:"about-text"},eo=["innerHTML"],to=Ja((()=>(0,a._)("i",{class:"fa fa-book fa-padding","aria-hidden":"true"},null,-1))),no={href:"https://samr1.github.io/FitTrackee/",target:"_blank",rel:"noopener noreferrer"},ro=Ja((()=>(0,a._)("i",{class:"fa fa-github fa-padding","aria-hidden":"true"},null,-1))),ao={href:"https://github.com/SamR1/FitTrackee",target:"_blank",rel:"noopener noreferrer"},oo=Ja((()=>(0,a._)("i",{class:"fa fa-balance-scale fa-padding","aria-hidden":"true"},null,-1))),io=Ja((()=>(0,a._)("a",{href:"https://choosealicense.com/licenses/agpl-3.0/",target:"_blank",rel:"noopener noreferrer"}," AGPLv3 ",-1))),so={key:0},lo=Ja((()=>(0,a._)("i",{class:"fa fa-envelope-o fa-padding","aria-hidden":"true"},null,-1))),co=["href"],uo={key:1},mo=["href"];var Eo=(0,a.aZ)({__name:"About",setup(e){const t=(0,c.o)(),n=(0,a.Fl)((()=>t.getters[l.SY.GETTERS.APP_CONFIG])),r=(0,a.Fl)((()=>i()));function i(){const e={};return"darksky"===n.value.weather_provider&&(e["name"]="Dark Sky",e["url"]="https://darksky.net"),"visualcrossing"===n.value.weather_provider&&(e["name"]="Visual Crossing",e["url"]="https://www.visualcrossing.com"),e}return(e,t)=>{const i=(0,a.up)("i18n-t");return(0,a.wg)(),(0,a.iD)("div",Qa,[(0,a._)("div",null,[(0,a._)("p",{class:"error-message",innerHTML:e.$t("about.FITTRACKEE_DESCRIPTION")},null,8,eo),(0,a._)("p",null,[to,(0,a._)("a",no,(0,o.zw)((0,o.kC)(e.$t("common.DOCUMENTATION"))),1)]),(0,a._)("p",null,[ro,(0,a._)("a",ao,(0,o.zw)(e.$t("about.SOURCE_CODE")),1)]),(0,a._)("p",null,[oo,(0,a.Wm)(i,{keypath:"about.FITTRACKEE_LICENSE"},{default:(0,a.w5)((()=>[io])),_:1})]),(0,s.SU)(n).admin_contact?((0,a.wg)(),(0,a.iD)("div",so,[lo,(0,a._)("a",{href:`mailto:${(0,s.SU)(n).admin_contact}`},(0,o.zw)(e.$t("about.CONTACT_ADMIN")),9,co)])):(0,a.kq)("",!0),(0,s.SU)(r)&&(0,s.SU)(r).name?((0,a.wg)(),(0,a.iD)("div",uo,[(0,a.Uk)((0,o.zw)(e.$t("about.WEATHER_DATA_FROM"))+" ",1),(0,a._)("a",{href:(0,s.SU)(r).url,target:"_blank",rel:"nofollow noopener"},(0,o.zw)((0,s.SU)(r).name),9,mo)])):(0,a.kq)("",!0)])])}}});const So=(0,k.Z)(Eo,[["__scopeId","data-v-2b7b6dd6"]]);var _o=So;const To={id:"bike"},po=["src"];function Ao(e,t){return(0,a.wg)(),(0,a.iD)("div",To,[(0,a._)("img",{class:"bike-img",src:"/img/bike.svg",alt:"mountain bike"},null,8,po)])}const Oo={},zo=(0,k.Z)(Oo,[["render",Ao],["__scopeId","data-v-795f7f5f"]]);var Io=zo;const Ro={id:"about",class:"view"},go={class:"container"},No={class:"container-sub"},Uo={class:"container-sub about-details"};var ho=(0,a.aZ)({__name:"AboutView",setup(e){return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Ro,[(0,a._)("div",go,[(0,a._)("div",No,[(0,a.Wm)(Io)]),(0,a._)("div",Uo,[(0,a.Wm)(_o)])])]))}});const Co=(0,k.Z)(ho,[["__scopeId","data-v-bffb50d0"]]);var wo=Co,Do=n(1818),vo=n(2056);const fo=e=>((0,a.dD)("data-v-645a9e33"),e=e(),(0,a.Cn)(),e),Po={class:"timeline-workout"},ko={class:"box"},Lo={class:"workout-user-date"},Mo={class:"workout-user"},bo=["title"],yo={key:0},Go={key:1,class:"no-map"},Fo={class:"img"},Wo={class:"data"},Bo=fo((()=>(0,a._)("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1))),Ko={key:0},Yo={class:"data"},xo=fo((()=>(0,a._)("i",{class:"fa fa-road","aria-hidden":"true"},null,-1))),Ho={key:0,class:"data elevation"},Zo=["alt"],$o={class:"data-values"},Vo={key:1,class:"data altitude"},qo=fo((()=>(0,a._)("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1))),jo={class:"data-values"};var Xo=(0,a.aZ)({__name:"WorkoutCard",props:{user:null,useImperialUnits:{type:Boolean},workout:{default:()=>({})},sport:{default:()=>({})}},setup(e){const t=e,n=(0,c.o)(),{user:r,workout:i,sport:u,useImperialUnits:m}=(0,s.BK)(t),d=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.LOCALE]));function E(e){return e&&null!==e.ascent&&null!==e.descent}return(e,t)=>{const n=(0,a.up)("router-link"),l=(0,a.up)("SportImage"),c=(0,a.up)("Distance");return(0,a.wg)(),(0,a.iD)("div",Po,[(0,a._)("div",ko,[(0,a._)("div",Lo,[(0,a._)("div",Mo,[(0,a.Wm)(Le.Z,{user:(0,s.SU)(r)},null,8,["user"]),(0,s.SU)(r).username?((0,a.wg)(),(0,a.j4)(n,{key:0,class:"workout-user-name",to:{name:"User",params:{username:(0,s.SU)(r).username}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,s.SU)(r).username),1)])),_:1},8,["to"])):(0,a.kq)("",!0)]),(0,s.SU)(i).id?((0,a.wg)(),(0,a.j4)(n,{key:0,class:"workout-title",to:{name:"Workout",params:{workoutId:(0,s.SU)(i).id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,s.SU)(i).title),1)])),_:1},8,["to"])):(0,a.kq)("",!0),(0,s.SU)(i).workout_date&&(0,s.SU)(r)?((0,a.wg)(),(0,a.iD)("div",{key:1,class:"workout-date",title:(0,s.SU)(Ke.p6)((0,s.SU)(i).workout_date,(0,s.SU)(r).timezone,(0,s.SU)(r).date_format)},(0,o.zw)((0,s.SU)(Do.Z)(new Date((0,s.SU)(i).workout_date),new Date,{addSuffix:!0,locale:(0,s.SU)(d)})),9,bo)):(0,a.kq)("",!0)]),(0,a._)("div",{class:(0,o.C_)(["workout-map",{"no-cursor":!(0,s.SU)(i)}]),onClick:t[0]||(t[0]=t=>(0,s.SU)(i).id?e.$router.push({name:"Workout",params:{workoutId:(0,s.SU)(i).id}}):null)},[(0,s.SU)(i)?((0,a.wg)(),(0,a.iD)("div",yo,[(0,s.SU)(i).with_gpx?((0,a.wg)(),(0,a.j4)(vo.Z,{key:0,workout:(0,s.SU)(i)},null,8,["workout"])):((0,a.wg)(),(0,a.iD)("div",Go,(0,o.zw)(e.$t("workouts.NO_MAP")),1))])):(0,a.kq)("",!0)],2),(0,a._)("div",{class:(0,o.C_)(["workout-data",{"without-gpx":(0,s.SU)(i)&&!(0,s.SU)(i).with_gpx}]),onClick:t[1]||(t[1]=t=>(0,s.SU)(i).id?e.$router.push({name:"Workout",params:{workoutId:(0,s.SU)(i).id}}):null)},[(0,a._)("div",Fo,[(0,s.SU)(u).label?((0,a.wg)(),(0,a.j4)(l,{key:0,"sport-label":(0,s.SU)(u).label,color:(0,s.SU)(u).color},null,8,["sport-label","color"])):(0,a.kq)("",!0)]),(0,a._)("div",Wo,[Bo,(0,s.SU)(i)?((0,a.wg)(),(0,a.iD)("span",Ko,(0,o.zw)((0,s.SU)(i).moving),1)):(0,a.kq)("",!0)]),(0,a._)("div",Yo,[xo,(0,s.SU)(i).id?((0,a.wg)(),(0,a.j4)(c,{key:0,distance:(0,s.SU)(i).distance,digits:3,unitFrom:"km",useImperialUnits:(0,s.SU)(m)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)]),(0,s.SU)(i)&&(0,s.SU)(i).with_gpx?((0,a.wg)(),(0,a.iD)("div",Ho,[(0,a._)("img",{class:"mountains",src:"/img/workouts/mountains.svg",alt:e.$t("workouts.ELEVATION")},null,8,Zo),(0,a._)("div",$o,[(0,s.SU)(i).id?((0,a.wg)(),(0,a.j4)(c,{key:0,distance:(0,s.SU)(i).min_alt,unitFrom:"m",displayUnit:!1,useImperialUnits:(0,s.SU)(m)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0),(0,a.Uk)("/ "),(0,s.SU)(i).id?((0,a.wg)(),(0,a.j4)(c,{key:1,distance:(0,s.SU)(i).max_alt,unitFrom:"m",useImperialUnits:(0,s.SU)(m)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)])])):(0,a.kq)("",!0),E((0,s.SU)(i))?((0,a.wg)(),(0,a.iD)("div",Vo,[qo,(0,a._)("div",jo,[(0,a.Uk)(" +"),(0,s.SU)(i).id?((0,a.wg)(),(0,a.j4)(c,{key:0,distance:(0,s.SU)(i).ascent,unitFrom:"m",displayUnit:!1,useImperialUnits:(0,s.SU)(m)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0),(0,a.Uk)("/- "),(0,s.SU)(i).id?((0,a.wg)(),(0,a.j4)(c,{key:1,distance:(0,s.SU)(i).descent,unitFrom:"m",useImperialUnits:(0,s.SU)(m)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)])])):(0,a.kq)("",!0)],2)])])}}});const Jo=(0,k.Z)(Xo,[["__scopeId","data-v-645a9e33"]]);var Qo=Jo,ei=n(5630),ti=n(3768);const ni={id:"timeline"},ri={class:"section-title"},ai={key:0},oi={key:1},ii={key:1,class:"more-workouts"};var si=(0,a.aZ)({__name:"Timeline",props:{sports:null,user:null},setup(e){const t=e,n=(0,c.o)(),{sports:r,user:i}=(0,s.BK)(t),u=(0,s.iH)(1),m=5,d=t.user.nb_workouts>=m?m:t.user.nb_workouts;(0,a.wF)((()=>_()));const E=(0,a.Fl)((()=>n.getters[l.aX.GETTERS.TIMELINE_WORKOUTS])),S=(0,a.Fl)((()=>E.value.length>0&&null!==E.value[E.value.length-1].previous_workout));function _(){n.dispatch(l.aX.ACTIONS.GET_TIMELINE_WORKOUTS,{page:u.value,per_page:m,...ti.eR})}function T(){u.value+=1,n.dispatch(l.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS,{page:u.value,per_page:m,...ti.eR})}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",ni,[(0,a._)("div",ri,(0,o.zw)(e.$t("workouts.LATEST_WORKOUTS")),1),(0,s.SU)(i).nb_workouts>0&&0===(0,s.SU)(E).length?((0,a.wg)(),(0,a.iD)("div",ai,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)([...Array((0,s.SU)(d)).keys()],(e=>((0,a.wg)(),(0,a.j4)(Qo,{user:(0,s.SU)(i),useImperialUnits:(0,s.SU)(i).imperial_units,key:e},null,8,["user","useImperialUnits"])))),128))])):((0,a.wg)(),(0,a.iD)("div",oi,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(E),(e=>((0,a.wg)(),(0,a.j4)(Qo,{workout:e,sport:(0,s.SU)(E).length>0?(0,s.SU)(r).filter((t=>t.id===e.sport_id))[0]:null,user:(0,s.SU)(i),useImperialUnits:(0,s.SU)(i).imperial_units,key:e.id},null,8,["workout","sport","user","useImperialUnits"])))),128)),0===(0,s.SU)(E).length?((0,a.wg)(),(0,a.j4)(ei.Z,{key:0})):(0,a.kq)("",!0),(0,s.SU)(S)?((0,a.wg)(),(0,a.iD)("div",ii,[(0,a._)("button",{onClick:T},(0,o.zw)(e.$t("workouts.LOAD_MORE_WORKOUT")),1)])):(0,a.kq)("",!0)]))]))}});const li=(0,k.Z)(si,[["__scopeId","data-v-35567bf2"]]);var ci=li,ui=n(1640),mi=n(4559),di=n(7349),Ei=n(1743),Si=n(9160),_i=n(1085);const Ti=["title"];var pi=(0,a.aZ)({__name:"CalendarWorkout",props:{displayHARecord:{type:Boolean},workout:null,sportLabel:null,sportColor:null},setup(e){const t=e,{displayHARecord:n,workout:r,sportLabel:o,sportColor:i}=(0,s.BK)(t);return(e,t)=>{const l=(0,a.up)("SportImage");return(0,a.wg)(),(0,a.iD)("div",{class:"calendar-workout",onClick:t[0]||(t[0]=t=>e.$router.push({name:"Workout",params:{workoutId:(0,s.SU)(r).id}}))},[(0,a.Wm)(l,{"sport-label":(0,s.SU)(o),title:(0,s.SU)(r).title,color:(0,s.SU)(i)},null,8,["sport-label","title","color"]),(0,a._)("sup",null,[(0,s.SU)(r).records.length>0?((0,a.wg)(),(0,a.iD)("i",{key:0,class:"fa fa-trophy custom-fa-small","aria-hidden":"true",title:(0,s.SU)(r).records.filter((e=>!!(0,s.SU)(n)||"HA"!==e.record_type)).map((t=>` ${e.$t(`workouts.RECORD_${t.record_type}`)}`))},null,8,Ti)):(0,a.kq)("",!0)])])}}});const Ai=pi;var Oi=Ai;const zi={class:"donut-chart"},Ii={height:"34",width:"34",viewBox:"0 0 34 34"},Ri=["stroke","stroke-dashoffset","transform"];var gi=(0,a.aZ)({__name:"DonutChart",props:{colors:null,datasets:null},setup(e){const t=e,{colors:n,datasets:r}=(0,s.BK)(t);let o=-90;const i=16,l=16,c=14,u=2*Math.PI*c;function m(e,t){return t-e*t}function d(e,t){const n=`rotate(${o}, ${i}, ${l})`;return o=360*t+o,n}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",zi,[((0,a.wg)(),(0,a.iD)("svg",Ii,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(Object.entries((0,s.SU)(r)),((e,t)=>((0,a.wg)(),(0,a.iD)("g",{key:t},[(0,a._)("circle",{cx:i,cy:l,r:c,fill:"transparent",stroke:(0,s.SU)(n)[+e[0]],"stroke-dashoffset":m(e[1].percentage,u),"stroke-dasharray":u,"stroke-width":"3","stroke-opacity":"0.8",transform:d(t,e[1].percentage)},null,8,Ri)])))),128))]))]))}});const Ni=gi;var Ui=Ni;const hi={class:"calendar-workouts-chart"},Ci={class:"workouts-count"},wi={key:0,class:"workouts-pane"},Di={class:"more-workouts"};var vi=(0,a.aZ)({__name:"CalendarWorkoutsChart",props:{colors:null,datasets:null,sports:null,workouts:null},setup(e){const t=e,{colors:n,datasets:r,sports:i,workouts:l}=(0,s.BK)(t),c=(0,s.iH)(!0);function u(e){e.stopPropagation(),c.value=!c.value}return(e,t)=>{const m=(0,a.Q2)("click-outside");return(0,a.wg)(),(0,a.iD)("div",hi,[(0,a._)("div",{class:"workouts-chart",onClick:u},[(0,a._)("div",Ci,(0,o.zw)((0,s.SU)(l).length),1),(0,a.Wm)(Ui,{datasets:(0,s.SU)(r),colors:(0,s.SU)(n)},null,8,["datasets","colors"])]),c.value?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("div",wi,[(0,a.wy)(((0,a.wg)(),(0,a.iD)("div",Di,[(0,a._)("i",{class:"fa fa-times calendar-more","aria-hidden":"true",onClick:u}),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(l),((e,t)=>((0,a.wg)(),(0,a.j4)(Oi,{key:t,workout:e,sportLabel:(0,s.SU)(le.PA)(e,(0,s.SU)(i)),sportColor:(0,s.SU)(le.CM)(e,(0,s.SU)(i))},null,8,["workout","sportLabel","sportColor"])))),128))])),[[m,u]])]))])}}});const fi=(0,k.Z)(vi,[["__scopeId","data-v-52d4310a"]]);var Pi=fi;const ki={class:"calendar-workouts"},Li={class:"desktop-display"},Mi={key:0,class:"workouts-display"},bi={key:1,class:"donut-display"},yi={class:"mobile-display"},Gi={key:0,class:"donut-display"};var Fi=(0,a.aZ)({__name:"CalendarWorkouts",props:{displayHARecord:{type:Boolean},workouts:null,sports:null},setup(e){const t=e,{displayHARecord:n,workouts:r,sports:o}=(0,s.BK)(t),i=(0,a.Fl)((()=>(0,ti.BN)(t.workouts))),l=(0,a.Fl)((()=>(0,le.Yx)(t.sports))),c=6;return(e,t)=>((0,a.wg)(),(0,a.iD)("div",ki,[(0,a._)("div",Li,[(0,s.SU)(r).length<=c?((0,a.wg)(),(0,a.iD)("div",Mi,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(r).slice(0,c),((e,t)=>((0,a.wg)(),(0,a.j4)(Oi,{key:t,displayHARecord:(0,s.SU)(n),workout:e,sportLabel:(0,s.SU)(le.PA)(e,(0,s.SU)(o)),sportColor:(0,s.SU)(le.CM)(e,(0,s.SU)(o))},null,8,["displayHARecord","workout","sportLabel","sportColor"])))),128))])):((0,a.wg)(),(0,a.iD)("div",bi,[(0,a.Wm)(Pi,{workouts:(0,s.SU)(r),sports:(0,s.SU)(o),datasets:(0,s.SU)(i),colors:(0,s.SU)(l)},null,8,["workouts","sports","datasets","colors"])]))]),(0,a._)("div",yi,[(0,s.SU)(r).length>0?((0,a.wg)(),(0,a.iD)("div",Gi,[(0,a.Wm)(Pi,{workouts:(0,s.SU)(r),sports:(0,s.SU)(o),datasets:(0,s.SU)(i),colors:(0,s.SU)(l)},null,8,["workouts","sports","datasets","colors"])])):(0,a.kq)("",!0)])]))}});const Wi=Fi;var Bi=Wi;const Ki={class:"calendar-cells"},Yi={class:"calendar-cell-day"};var xi=(0,a.aZ)({__name:"CalendarCells",props:{currentDay:null,displayHARecord:{type:Boolean},endDate:null,sports:null,startDate:null,timezone:null,weekStartingMonday:{type:Boolean},workouts:null},setup(e){const t=e,{currentDay:n,displayHARecord:r,endDate:i,sports:l,startDate:c,timezone:u,weekStartingMonday:m,workouts:d}=(0,s.BK)(t),E=(0,s.iH)([]);function S(){E.value=[];let e=c.value;while(e<=i.value){const t=[];for(let n=0;n<7;n++)t.push(e),e=(0,di.Z)(e,1);E.value.push(t)}}function _(e){return m.value?[5,6].includes(e):[0,6].includes(e)}function T(e,t){return t?t.filter((t=>(0,Ei.Z)((0,Ke.eB)(t.workout_date,u.value),e))).reverse():[]}return(0,a.bv)((()=>S())),(0,a.YP)((()=>t.currentDay),(()=>S())),(e,t)=>((0,a.wg)(),(0,a.iD)("div",Ki,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(E.value,((e,t)=>((0,a.wg)(),(0,a.iD)("div",{class:"calendar-row",key:t},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(e,((e,t)=>((0,a.wg)(),(0,a.iD)("div",{class:(0,o.C_)(["calendar-cell",{"disabled-cell":!(0,s.SU)(Si.Z)(e,(0,s.SU)(n)),"week-end":_(t),today:(0,s.SU)(_i.Z)(e)}]),key:t},[(0,a.Wm)(Bi,{workouts:T(e,(0,s.SU)(d)),sports:(0,s.SU)(l),displayHARecord:(0,s.SU)(r)},null,8,["workouts","sports","displayHARecord"]),(0,a._)("div",Yi,(0,o.zw)((0,s.SU)(jt.Z)(e,"d")),1)],2)))),128))])))),128))]))}});const Hi=xi;var Zi=Hi;const $i={class:"calendar-days"};var Vi=(0,a.aZ)({__name:"CalendarDays",props:{startDate:null,localeOptions:null},setup(e){const t=e,n=[];for(let r=0;r<7;r++)n.push((0,di.Z)(t.startDate,r));return(t,r)=>((0,a.wg)(),(0,a.iD)("div",$i,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(n,((t,n)=>(0,a._)("div",{class:"calendar-day",key:n},(0,o.zw)((0,s.SU)(jt.Z)(t,"EEE",{locale:e.localeOptions})),1))),64))]))}});const qi=Vi;var ji=qi;const Xi={class:"calendar-header"},Ji=(0,a._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1),Qi=[Ji],es={class:"calendar-month"},ts=(0,a._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1),ns=[ts];var rs=(0,a.aZ)({__name:"CalendarHeader",props:{day:null,localeOptions:null},emits:["displayNextMonth","displayPreviousMonth"],setup(e,{emit:t}){const n=e,{day:r,localeOptions:i}=(0,s.BK)(n);return(e,n)=>((0,a.wg)(),(0,a.iD)("div",Xi,[(0,a._)("div",{class:"calendar-arrow calendar-arrow-left",onClick:n[0]||(n[0]=e=>t("displayPreviousMonth"))},Qi),(0,a._)("div",es,[(0,a._)("span",null,(0,o.zw)((0,s.SU)(jt.Z)((0,s.SU)(r),"MMM yyyy",{locale:(0,s.SU)(i)})),1)]),(0,a._)("div",{class:"calendar-arrow calendar-arrow-right",onClick:n[1]||(n[1]=e=>t("displayNextMonth"))},ns)]))}});const as=rs;var os=as;const is={id:"user-calendar"},ss={class:"calendar-card box"};var ls=(0,a.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const t=e,n=(0,c.o)(),{sports:r,user:o}=(0,s.BK)(t),i="yyyy-MM-dd",u=(0,s.iH)(new Date),m=(0,s.iH)((0,Ke.yx)(u.value,t.user.weekm)),d=(0,a.Fl)((()=>n.getters[l.aX.GETTERS.CALENDAR_WORKOUTS])),E=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.LOCALE]));function S(){m.value=(0,Ke.yx)(u.value,t.user.weekm);const e={from:(0,jt.Z)(m.value.start,i),to:(0,jt.Z)(m.value.end,i),page:1,per_page:100,...ti.eR};n.dispatch(l.aX.ACTIONS.GET_CALENDAR_WORKOUTS,e)}function _(){u.value=(0,ui.Z)(u.value,1),S()}function T(){u.value=(0,mi.Z)(u.value,1),S()}return(0,a.wF)((()=>S())),(e,t)=>((0,a.wg)(),(0,a.iD)("div",is,[(0,a._)("div",ss,[(0,a.Wm)(os,{day:u.value,"locale-options":(0,s.SU)(E),onDisplayNextMonth:_,onDisplayPreviousMonth:T},null,8,["day","locale-options"]),(0,a.Wm)(ji,{"start-date":m.value.start,"locale-options":(0,s.SU)(E)},null,8,["start-date","locale-options"]),(0,a.Wm)(Zi,{currentDay:u.value,displayHARecord:(0,s.SU)(o).display_ascent,"end-date":m.value.end,sports:(0,s.SU)(r),"start-date":m.value.start,timezone:(0,s.SU)(o).timezone,workouts:(0,s.SU)(d),weekStartingMonday:(0,s.SU)(o).weekm},null,8,["currentDay","displayHARecord","end-date","sports","start-date","timezone","workouts","weekStartingMonday"])])]))}});const cs=ls;var us=cs,ms=n(3703),ds=n(4135),Es=n(436);const Ss={class:"user-month-stats"};var _s=(0,a.aZ)({__name:"UserMonthStats",props:{sports:null,user:null},setup(e){const t=e,{sports:n,user:r}=(0,s.BK)(t),i=new Date,l={duration:"week",start:(0,ms.Z)(i),end:(0,ds.Z)(i)},c=t.sports.map((e=>e.id));return(e,t)=>{const i=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",Ss,[(0,a.Wm)(i,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("dashboard.THIS_MONTH")),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(Es.Z,{sports:(0,s.SU)(n),user:(0,s.SU)(r),"chart-params":l,"displayed-sport-ids":(0,s.SU)(c),"hide-chart-if-no-data":!0},null,8,["sports","user","displayed-sport-ids"])])),_:1})])}}});const Ts=(0,k.Z)(_s,[["__scopeId","data-v-1bcddc12"]]);var ps=Ts,As=n(2540),Os=n(3649);const{locale:zs}=As.Z.global,Is=(e,t,n,r)=>{const a="km",o=n?Os.Dl[a].defaultTarget:a,i="m",s=n?Os.Dl[i].defaultTarget:i;let l;switch(e.record_type){case"AS":case"MS":l=`${(0,Os.sC)(+e.value,a,o,2)} ${o}/h`;break;case"FD":l=`${(0,Os.sC)(+e.value,a,o,3)} ${o}`;break;case"HA":l=`${(0,Os.sC)(+e.value,i,s,2)} ${s}`;break;case"LD":l=e.value;break;default:throw new Error(`Invalid record type, expected: "AS", "FD", "HA", "LD", "MD", got: "${e.record_type}"`)}return{workout_date:(0,Ke.p6)(e.workout_date,t,r,!1),workout_id:e.workout_id,id:e.id,record_type:e.record_type,value:l}},Rs=(e,t)=>{const n=e.label.toLowerCase(),r=t.label.toLowerCase();return n>r?1:n(o=(0,Ke.mh)(o,zs.value),e.filter((e=>!!a||"HA"!==e.record_type)).reduce(((e,a)=>{const i=t.find((e=>e.id===a.sport_id));return i&&i.label&&(void 0===e[i.translatedLabel]&&(e[i.translatedLabel]={label:i.label,color:i.color,records:[]}),e[i.translatedLabel].records.push(Is(a,n,r,o))),e}),{})),Ns={class:"records-card"},Us={class:"record-type"},hs={class:"record-value"},Cs={class:"record-date"};var ws=(0,a.aZ)({__name:"RecordsCard",props:{records:null,sportTranslatedLabel:null},setup(e){const t=e,{records:n,sportTranslatedLabel:r}=(0,s.BK)(t),{t:i}=(0,se.QT)();function l(e){const t=[];return e.map((e=>{t.push({...e,label:i(`workouts.RECORD_${e.record_type}`)})})),t.sort(Rs)}return(e,t)=>{const i=(0,a.up)("SportImage"),c=(0,a.up)("router-link"),u=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",Ns,[(0,a.Wm)(u,null,{title:(0,a.w5)((()=>[(0,a.Wm)(i,{"sport-label":(0,s.SU)(n).label,color:(0,s.SU)(n).color},null,8,["sport-label","color"]),(0,a.Uk)(" "+(0,o.zw)((0,s.SU)(r)),1)])),content:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(l((0,s.SU)(n).records),(e=>((0,a.wg)(),(0,a.iD)("div",{class:"record",key:e.id},[(0,a._)("span",Us,(0,o.zw)(e.label),1),(0,a._)("span",hs,(0,o.zw)(e.value),1),(0,a._)("span",Cs,[(0,a.Wm)(c,{to:{name:"Workout",params:{workoutId:e.workout_id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.workout_date),1)])),_:2},1032,["to"])])])))),128))])),_:1})])}}});const Ds=(0,k.Z)(ws,[["__scopeId","data-v-8d17c606"]]);var vs=Ds;const fs=e=>((0,a.dD)("data-v-f0c85cb8"),e=e(),(0,a.Cn)(),e),Ps={class:"user-records-section"},ks={class:"section-title"},Ls=fs((()=>(0,a._)("i",{class:"fa fa-trophy custom-fa-small","aria-hidden":"true"},null,-1))),Ms={class:"user-records"},bs={key:0,class:"no-records"};var ys=(0,a.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const t=e,{t:n}=(0,se.QT)(),r=(0,a.Fl)((()=>gs(t.user.records,(0,le.xH)(t.sports,n),t.user.timezone,t.user.imperial_units,t.user.display_ascent,t.user.date_format)));return(t,n)=>((0,a.wg)(),(0,a.iD)("div",Ps,[(0,a._)("div",ks,[Ls,(0,a.Uk)(" "+(0,o.zw)(t.$t("workouts.RECORD",2)),1)]),(0,a._)("div",Ms,[0===Object.keys((0,s.SU)(r)).length?((0,a.wg)(),(0,a.iD)("div",bs,(0,o.zw)(t.$t("workouts.NO_RECORDS")),1)):(0,a.kq)("",!0),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(Object.keys((0,s.SU)(r)).sort(),(t=>((0,a.wg)(),(0,a.j4)(vs,{sportTranslatedLabel:t,records:(0,s.SU)(r)[t],key:t,useImperialUnits:e.user.imperial_units},null,8,["sportTranslatedLabel","records","useImperialUnits"])))),128))])]))}});const Gs=(0,k.Z)(ys,[["__scopeId","data-v-f0c85cb8"]]);var Fs=Gs;const Ws={id:"user-stats"};var Bs=(0,a.aZ)({__name:"index",props:{user:null},setup(e){const t=e,{t:n}=(0,se.QT)(),{user:r}=(0,s.BK)(t),o=(0,a.Fl)((()=>t.user.total_duration)),i=(0,a.Fl)((()=>S(o))),l="km",c=r.value.imperial_units?Os.Dl[l].defaultTarget:l,u=(0,a.Fl)((()=>r.value.imperial_units?(0,Os.sC)(r.value.total_distance,l,c,2):parseFloat(r.value.total_distance.toFixed(2)))),m="m",d=r.value.imperial_units?Os.Dl[m].defaultTarget:m,E=(0,a.Fl)((()=>r.value.imperial_units?(0,Os.sC)(r.value.total_ascent,m,d,2):parseFloat(r.value.total_ascent.toFixed(2))));function S(e){const t=e.value.match(/day/g)?e.value.split(", ")[1]:e.value;return{days:e.value.match(/day/g)?`${e.value.split(" ")[0]} ${e.value.match(/days/g)?n("common.DAY",2):n("common.DAY",1)}`:`0 ${n("common.DAY",2)},`,duration:`${t.split(":")[0]}h ${t.split(":")[1]}min`}}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Ws,[(0,a.Wm)(x,{icon:"calendar",value:(0,s.SU)(r).nb_workouts,text:e.$t("workouts.WORKOUT",(0,s.SU)(r).nb_workouts)},null,8,["value","text"]),(0,a.Wm)(x,{icon:"road",value:(0,s.SU)(u),text:"mi"===(0,s.SU)(c)?"miles":(0,s.SU)(c)},null,8,["value","text"]),(0,s.SU)(r).display_ascent?((0,a.wg)(),(0,a.j4)(x,{key:0,icon:"location-arrow",value:(0,s.SU)(E),text:"ft"===(0,s.SU)(d)?"feet":(0,s.SU)(d)},null,8,["value","text"])):(0,a.kq)("",!0),(0,a.Wm)(x,{icon:"clock-o",value:(0,s.SU)(i).days,text:(0,s.SU)(i).duration},null,8,["value","text"]),(0,s.SU)(r).display_ascent?(0,a.kq)("",!0):((0,a.wg)(),(0,a.j4)(x,{key:1,icon:"tags",value:(0,s.SU)(r).nb_sports,text:e.$t("workouts.SPORT",(0,s.SU)(r).nb_sports)},null,8,["value","text"]))]))}});const Ks=Bs;var Ys=Ks;const xs=e=>((0,a.dD)("data-v-4c0893c1"),e=e(),(0,a.Cn)(),e),Hs={key:0,id:"dashboard",class:"view"},Zs={class:"container mobile-menu"},$s={class:"box"},Vs=xs((()=>(0,a._)("i",{class:"fa fa-calendar","aria-hidden":"true"},null,-1))),qs=[Vs],js=xs((()=>(0,a._)("i",{class:"fa fa-bar-chart","aria-hidden":"true"},null,-1))),Xs=[js],Js=xs((()=>(0,a._)("i",{class:"fa fa-map-o","aria-hidden":"true"},null,-1))),Qs=[Js],el=xs((()=>(0,a._)("i",{class:"fa fa-trophy","aria-hidden":"true"},null,-1))),tl=[el],nl={class:"container"},rl={class:"container dashboard-container"},al={class:"left-container dashboard-sub-container"},ol={class:"right-container dashboard-sub-container"},il=xs((()=>(0,a._)("div",{id:"bottom"},null,-1))),sl={key:1,class:"app-loading"};var ll=(0,a.aZ)({__name:"Dashboard",setup(e){const t=(0,c.o)(),n=(0,a.Fl)((()=>t.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),r=(0,a.Fl)((()=>t.getters[l.O8.GETTERS.SPORTS])),i=(0,s.iH)("calendar");function u(e){i.value=e}return(0,a.wF)((()=>t.dispatch(l.YN.ACTIONS.GET_USER_PROFILE))),(e,t)=>{const l=(0,a.up)("Loader");return(0,s.SU)(n).username&&(0,s.SU)(r).length>0?((0,a.wg)(),(0,a.iD)("div",Hs,[(0,a._)("div",Zs,[(0,a._)("div",$s,[(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"calendar"===i.value}]),onClick:t[0]||(t[0]=e=>u("calendar"))},qs,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"chart"===i.value}]),onClick:t[1]||(t[1]=e=>u("chart"))},Xs,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"timeline"===i.value}]),onClick:t[2]||(t[2]=e=>u("timeline"))},Qs,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"records"===i.value}]),onClick:t[3]||(t[3]=e=>u("records"))},tl,2)])]),(0,a._)("div",nl,[(0,a.Wm)(Ys,{user:(0,s.SU)(n)},null,8,["user"])]),(0,a._)("div",rl,[(0,a._)("div",al,[(0,a.Wm)(ps,{sports:(0,s.SU)(r),user:(0,s.SU)(n),class:(0,o.C_)({"is-hidden":!("chart"===i.value)})},null,8,["sports","user","class"]),(0,a.Wm)(Fs,{sports:(0,s.SU)(r),user:(0,s.SU)(n),class:(0,o.C_)({"is-hidden":!("records"===i.value)})},null,8,["sports","user","class"])]),(0,a._)("div",ol,[(0,a.Wm)(us,{sports:(0,s.SU)(r),user:(0,s.SU)(n),class:(0,o.C_)({"is-hidden":!("calendar"===i.value)})},null,8,["sports","user","class"]),(0,a.Wm)(ci,{sports:(0,s.SU)(r),user:(0,s.SU)(n),class:(0,o.C_)({"is-hidden":!("timeline"===i.value)})},null,8,["sports","user","class"])])]),il])):((0,a.wg)(),(0,a.iD)("div",sl,[(0,a.Wm)(l)]))}}});const cl=(0,k.Z)(ll,[["__scopeId","data-v-4c0893c1"]]);var ul=cl,ml=n(8273);const dl={class:"not-found view"};var El=(0,a.aZ)({__name:"NotFoundView",setup(e){return(e,t)=>((0,a.wg)(),(0,a.iD)("div",dl,[(0,a.Wm)(ml.Z)]))}});const Sl=El;var _l=Sl,Tl=n(2411);const pl={id:"loginOrRegister",class:"view"},Al={class:"container"},Ol={class:"container-sub"},zl={class:"container-sub"};var Il=(0,a.aZ)({__name:"LoginOrRegister",props:{action:null},setup(e){const t=e,{action:n}=(0,s.BK)(t);return(e,t)=>((0,a.wg)(),(0,a.iD)("div",pl,[(0,a._)("div",Al,[(0,a._)("div",Ol,[(0,a.Wm)(Io)]),(0,a._)("div",zl,[(0,a.Wm)(Tl.Z,{action:(0,s.SU)(n)},null,8,["action"])])])]))}});const Rl=(0,k.Z)(Il,[["__scopeId","data-v-58043acb"]]);var gl=Rl;const Nl=e=>{const t=/(\/profile)(\/edit)*(\/*)/,n=e.replace(t,"").toUpperCase();return""===n?"PROFILE":n.toUpperCase()},Ul=[{path:"/",name:"Dashboard",component:ul},{path:"/login",name:"Login",component:gl,props:{action:"login"}},{path:"/register",name:"Register",component:gl,props:{action:"register"}},{path:"/account-confirmation",name:"AccountConfirmation",component:()=>n.e(845).then(n.bind(n,4264))},{path:"/account-confirmation/resend",name:"AccountConfirmationResend",component:()=>n.e(24).then(n.bind(n,5639)),props:{action:"account-confirmation-resend"}},{path:"/account-confirmation/email-sent",name:"AccountConfirmationEmailSend",component:()=>n.e(24).then(n.bind(n,5639)),props:{action:"email-sent"}},{path:"/password-reset/sent",name:"PasswordEmailSent",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"request-sent"}},{path:"/password-reset/request",name:"PasswordResetRequest",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"reset-request"}},{path:"/password-reset/password-updated",name:"PasswordUpdated",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"password-updated"}},{path:"/password-reset",name:"PasswordReset",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"reset"}},{path:"/email-update",name:"EmailUpdate",component:()=>n.e(845).then(n.bind(n,8793))},{path:"/profile",name:"Profile",component:()=>n.e(845).then(n.bind(n,1133)),children:[{path:"",name:"UserProfile",component:Nt,props:e=>({tab:Nl(e.path)}),children:[{path:"",name:"UserInfos",component:Ut.Z},{path:"preferences",name:"UserPreferences",component:ft},{path:"sports",name:"UserSportPreferences",component:ja,props:{isEdition:!1}},{path:"apps",name:"UserApps",component:Xr,children:[{path:"",name:"UserAppsList",component:za},{path:":id",name:"UserApp",component:ma},{path:":id/created",name:"CreatedUserApp",component:ma,props:{afterCreation:!0}},{path:"new",name:"AddUserApp",component:Mr},{path:"authorize",name:"AuthorizeUserApp",component:$r}]}]},{path:"edit",name:"UserProfileEdition",component:Mt,props:e=>({tab:Nl(e.path)}),children:[{path:"",name:"UserInfosEdition",component:_n},{path:"account",name:"UserAccountEdition",component:qt},{path:"picture",name:"UserPictureEdition",component:Cn},{path:"preferences",name:"UserPreferencesEdition",component:ur},{path:"sports",name:"UserSportPreferencesEdition",component:ja,props:{isEdition:!0}}]}]},{path:"/statistics",name:"Statistics",component:()=>n.e(193).then(n.bind(n,7885))},{path:"/users/:username",name:"User",component:()=>n.e(845).then(n.bind(n,9453))},{path:"/workouts",name:"Workouts",component:()=>n.e(401).then(n.bind(n,9628))},{path:"/workouts/:workoutId",name:"Workout",component:()=>n.e(401).then(n.bind(n,8691)),props:{displaySegment:!1}},{path:"/workouts/:workoutId/edit",name:"EditWorkout",component:()=>n.e(401).then(n.bind(n,8237))},{path:"/workouts/:workoutId/segment/:segmentId",name:"WorkoutSegment",component:()=>n.e(401).then(n.bind(n,8691)),props:{displaySegment:!0}},{path:"/workouts/add",name:"AddWorkout",component:()=>n.e(401).then(n.bind(n,4189))},{path:"/admin",name:"Administration",component:()=>n.e(328).then(n.bind(n,6e3)),children:[{path:"",name:"AdministrationMenu",component:ie},{path:"application",name:"ApplicationAdministration",component:M},{path:"application/edit",name:"ApplicationAdministrationEdition",component:M,props:{edition:!0}},{path:"sports",name:"SportsAdministration",component:fe},{path:"users/:username",name:"UserFromAdmin",component:()=>n.e(845).then(n.bind(n,9453)),props:{fromAdmin:!0}},{path:"users",name:"UsersAdministration",component:dt}]},{path:"/about",name:"About",component:wo},{path:"/:pathMatch(.*)*",name:"not-found",component:_l}],hl=(0,r.p7)({history:(0,r.PO)("/"),routes:Ul}),Cl=["/login","/password-reset","/password-reset/password-updated","/password-reset/request","/password-reset/sent","/register","/account-confirmation","/account-confirmation/resend","/account-confirmation/email-sent"],wl=["/email-update","/about"];hl.beforeEach(((e,t,n)=>{Xa.Z.dispatch(l.YN.ACTIONS.CHECK_AUTH_USER).then((()=>{if(wl.includes(e.path))return n();if(Xa.Z.getters[l.YN.GETTERS.IS_AUTHENTICATED]&&Cl.includes(e.path))return n("/");if(Xa.Z.getters[l.YN.GETTERS.IS_AUTHENTICATED]||Cl.includes(e.path))n();else{const t="/"===e.path?{path:"/login"}:{path:"/login",query:{from:e.fullPath}};n(t)}})).catch((e=>{console.error(e),n()}))}));var Dl=hl},5801:function(e,t,n){"use strict";var r,a,o,i,s,l,c,u,m,d,E,S,_,T,p,A,O,z;n.d(t,{YN:function(){return U},Km:function(){return h},SY:function(){return R},O8:function(){return g},gu:function(){return N},RT:function(){return C},aX:function(){return w}}),function(e){e["CHECK_AUTH_USER"]="CHECK_AUTH_USER",e["CONFIRM_ACCOUNT"]="CONFIRM_ACCOUNT",e["CONFIRM_EMAIL"]="CONFIRM_EMAIL",e["DELETE_ACCOUNT"]="DELETE_ACCOUNT",e["DELETE_PICTURE"]="DELETE_PICTURE",e["GET_USER_PROFILE"]="GET_USER_PROFILE",e["LOGIN_OR_REGISTER"]="LOGIN_OR_REGISTER",e["LOGOUT"]="LOGOUT",e["SEND_PASSWORD_RESET_REQUEST"]="SEND_PASSWORD_RESET_REQUEST",e["RESEND_ACCOUNT_CONFIRMATION_EMAIL"]="RESEND_ACCOUNT_CONFIRMATION_EMAIL",e["RESET_USER_PASSWORD"]="RESET_USER_PASSWORD",e["RESET_USER_SPORT_PREFERENCES"]="RESET_USER_SPORT_PREFERENCES",e["UPDATE_USER_ACCOUNT"]="UPDATE_USER_ACCOUNT",e["UPDATE_USER_PICTURE"]="UPDATE_USER_PICTURE",e["UPDATE_USER_PROFILE"]="UPDATE_USER_PROFILE",e["UPDATE_USER_PREFERENCES"]="UPDATE_USER_PREFERENCES",e["UPDATE_USER_SPORT_PREFERENCES"]="UPDATE_USER_SPORT_PREFERENCES"}(r||(r={})),function(e){e["AUTH_TOKEN"]="AUTH_TOKEN",e["AUTH_USER_PROFILE"]="AUTH_USER_PROFILE",e["IS_ADMIN"]="IS_ADMIN",e["IS_AUTHENTICATED"]="IS_AUTHENTICATED",e["IS_SUCCESS"]="IS_SUCCESS",e["IS_REGISTRATION_SUCCESS"]="IS_REGISTRATION_SUCCESS",e["USER_LOADING"]="USER_LOADING"}(a||(a={})),function(e){e["CLEAR_AUTH_USER_TOKEN"]="CLEAR_AUTH_USER_TOKEN",e["UPDATE_AUTH_TOKEN"]="UPDATE_AUTH_TOKEN",e["UPDATE_AUTH_USER_PROFILE"]="UPDATE_AUTH_USER_PROFILE",e["UPDATE_IS_SUCCESS"]="UPDATE_USER_IS_SUCCESS",e["UPDATE_IS_REGISTRATION_SUCCESS"]="UPDATE_IS_REGISTRATION_SUCCESS",e["UPDATE_USER_LOADING"]="UPDATE_USER_LOADING"}(o||(o={})),function(e){e["AUTHORIZE_CLIENT"]="AUTHORIZE_CLIENT",e["CREATE_CLIENT"]="CREATE_CLIENT",e["DELETE_CLIENT"]="DELETE_CLIENT",e["GET_CLIENTS"]="GET_CLIENTS",e["GET_CLIENT_BY_CLIENT_ID"]="GET_CLIENT_BY_CLIENT_ID",e["GET_CLIENT_BY_ID"]="GET_CLIENT_BY_ID",e["REVOKE_ALL_TOKENS"]="REVOKE_ALL_TOKENS"}(i||(i={})),function(e){e["CLIENT"]="CLIENT",e["CLIENTS"]="CLIENTS",e["CLIENTS_PAGINATION"]="CLIENTS_PAGINATION",e["REVOCATION_SUCCESSFUL"]="REVOCATION_SUCCESSFUL"}(s||(s={})),function(e){e["EMPTY_CLIENT"]="EMPTY_CLIENT",e["SET_CLIENT"]="SET_CLIENT",e["SET_CLIENTS"]="SET_CLIENTS",e["SET_CLIENTS_PAGINATION"]="SET_CLIENTS_PAGINATION",e["SET_REVOCATION_SUCCESSFUL"]="SET_REVOCATION_SUCCESSFUL"}(l||(l={})),function(e){e["GET_APPLICATION_CONFIG"]="GET_APPLICATION_CONFIG",e["GET_APPLICATION_STATS"]="GET_APPLICATION_STATS",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG",e["UPDATE_APPLICATION_LANGUAGE"]="UPDATE_APPLICATION_LANGUAGE"}(c||(c={})),function(e){e["APP_CONFIG"]="APP_CONFIG",e["APP_LOADING"]="APP_LOADING",e["APP_STATS"]="APP_STATS",e["ERROR_MESSAGES"]="ERROR_MESSAGES",e["LANGUAGE"]="LANGUAGE",e["LOCALE"]="LOCALE"}(u||(u={})),function(e){e["EMPTY_ERROR_MESSAGES"]="EMPTY_ERROR_MESSAGES",e["SET_ERROR_MESSAGES"]="SET_ERROR_MESSAGES",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG",e["UPDATE_APPLICATION_LOADING"]="UPDATE_APPLICATION_LOADING",e["UPDATE_APPLICATION_STATS"]="UPDATE_APPLICATION_STATS",e["UPDATE_LANG"]="UPDATE_LANG"}(m||(m={})),function(e){e["GET_SPORTS"]="GET_SPORTS",e["UPDATE_SPORTS"]="UPDATE_SPORTS"}(d||(d={})),function(e){e["SPORTS"]="SPORTS"}(E||(E={})),function(e){e["SET_SPORTS"]="SET_SPORTS"}(S||(S={})),function(e){e["GET_USER_STATS"]="GET_USER_STATS"}(_||(_={})),function(e){e["USER_STATS"]="USER_STATS"}(T||(T={})),function(e){e["EMPTY_USER_STATS"]="EMPTY_USER_STATS",e["UPDATE_USER_STATS"]="UPDATE_USER_STATS"}(p||(p={})),function(e){e["EMPTY_USER"]="EMPTY_USER",e["EMPTY_USERS"]="EMPTY_USERS",e["GET_USER"]="GET_USER",e["GET_USERS"]="GET_USERS",e["UPDATE_USER"]="UPDATE_USER",e["DELETE_USER_ACCOUNT"]="DELETE_USER_ACCOUNT"}(A||(A={})),function(e){e["USER"]="USER",e["USERS"]="USERS",e["USERS_IS_SUCCESS"]="USERS_IS_SUCCESS",e["USERS_LOADING"]="USERS_LOADING",e["USERS_PAGINATION"]="USERS_PAGINATION"}(O||(O={})),function(e){e["UPDATE_USER"]="UPDATE_USER",e["UPDATE_USER_IN_USERS"]="UPDATE_USER_IN_USERS",e["UPDATE_USERS"]="UPDATE_USERS",e["UPDATE_USERS_LOADING"]="UPDATE_USERS_LOADING",e["UPDATE_USERS_PAGINATION"]="UPDATE_USERS_PAGINATION",e["UPDATE_IS_SUCCESS"]="UPDATE_IS_SUCCESS"}(z||(z={}));var I=n(52);const R={ACTIONS:c,GETTERS:u,MUTATIONS:m},g={ACTIONS:d,GETTERS:E,MUTATIONS:S},N={ACTIONS:_,GETTERS:T,MUTATIONS:p},U={ACTIONS:r,GETTERS:a,MUTATIONS:o},h={ACTIONS:i,GETTERS:s,MUTATIONS:l},C={ACTIONS:A,GETTERS:O,MUTATIONS:z},w={ACTIONS:I.tW,GETTERS:I.JP,MUTATIONS:I.CW}},2894:function(e,t,n){"use strict";n.d(t,{Z:function(){return me}});var r=n(3907),a=(n(7658),n(5167)),o=n(594),i=n(8566),s=n(2024);const l=o.Z.create({baseURL:(0,s.k)()});l.interceptors.request.use((e=>{const t=new AbortController;e.signal=t.signal;const n=(0,i.a)(e);return i.j.set(n,t),e}),(e=>Promise.reject(e))),l.interceptors.response.use((e=>((0,i.a)(e.config),e)),(e=>("canceled"!==e.message&&(0,i.a)(e.response.config),Promise.reject(e))));var c=l,u=n(3654),m=n(5801);const d=(e,t)=>{e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z["delete"](`users/${t.username}`).then((n=>{204===n.status?t.fromAdmin?u.Z.push("/admin/users"):e.dispatch(m.YN.ACTIONS.LOGOUT).then((()=>u.Z.push("/"))):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},E={[m.RT.ACTIONS.EMPTY_USER](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USER,{})},[m.RT.ACTIONS.EMPTY_USERS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(m.RT.MUTATIONS.UPDATE_USERS_PAGINATION,{})},[m.RT.ACTIONS.GET_USER](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),a.Z.get(`users/${t}`).then((t=>{"success"===t.data.status?e.commit(m.RT.MUTATIONS.UPDATE_USER,t.data.data.users[0]):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.GET_USERS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),a.Z.get("users",{params:t}).then((t=>{"success"===t.data.status?(e.commit(m.RT.MUTATIONS.UPDATE_USERS,t.data.data.users),e.commit(m.RT.MUTATIONS.UPDATE_USERS_PAGINATION,t.data.pagination)):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.UPDATE_USER](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1);const n={};void 0!==t.admin&&(n.admin=t.admin),t.resetPassword&&(n.reset_password=t.resetPassword),t.activate&&(n.activate=t.activate),void 0!==t.new_email&&(n.new_email=t.new_email),a.Z.patch(`users/${t.username}`,n).then((n=>{"success"===n.data.status?(e.commit(m.RT.MUTATIONS.UPDATE_USER_IN_USERS,n.data.data.users[0]),(t.resetPassword||t.new_email)&&e.commit(m.RT.MUTATIONS.UPDATE_IS_SUCCESS,!0),(t.activate||t.new_email)&&e.commit(m.RT.MUTATIONS.UPDATE_USER,n.data.data.users[0])):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.DELETE_USER_ACCOUNT](e,t){d(e,{username:t.username,fromAdmin:!0})}},S=e=>{localStorage.removeItem("authToken"),e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.gu.MUTATIONS.EMPTY_USER_STATS),e.commit(m.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN),e.commit(m.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(m.aX.MUTATIONS.EMPTY_WORKOUTS),e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),u.Z.push("/login")},_={[m.YN.ACTIONS.CHECK_AUTH_USER](e){window.localStorage.authToken&&!e.getters[m.YN.GETTERS.IS_AUTHENTICATED]&&(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,window.localStorage.authToken),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE)),!window.localStorage.authToken&&e.getters[m.YN.GETTERS.IS_AUTHENTICATED]&&S(e)},[m.YN.ACTIONS.CONFIRM_ACCOUNT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/account/confirm",{token:t.token}).then((t=>{if("success"===t.data.status){const n=t.data.auth_token;window.localStorage.setItem("authToken",n),e.commit(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,n),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/")))}else(0,s.S)(e,null)})).catch((t=>{(0,s.S)(e,t)}))},[m.YN.ACTIONS.CONFIRM_EMAIL](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),c.post("/auth/email/update",{token:t.token}).then((n=>{"success"===n.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0),t.refreshUser&&e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile/edit/account"))),u.Z.push("/profile/edit/account")):(0,s.S)(e,null)})).catch((t=>{(0,s.S)(e,t)}))},[m.YN.ACTIONS.GET_USER_PROFILE](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("auth/profile").then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),t.data.data.language&&e.dispatch(m.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,t.data.data.language),e.dispatch(m.O8.ACTIONS.GET_SPORTS)):((0,s.S)(e,null),S(e))})).catch((t=>{"canceled"!==t.message&&((0,s.S)(e,t),S(e))}))},[m.YN.ACTIONS.LOGIN_OR_REGISTER](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),c.post(`/auth/${t.actionType}`,t.formData).then((n=>{if("success"===n.data.status)if("login"===t.actionType){const r=n.data.auth_token;window.localStorage.setItem("authToken",r),e.commit(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,r),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("string"===typeof t.redirectUrl?t.redirectUrl:"/")))}else u.Z.push("/login").then((()=>e.commit(m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!0)));else(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.YN.ACTIONS.LOGOUT](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.post("auth/logout").then((t=>{"success"===t.data.status?S(e):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.YN.ACTIONS.UPDATE_USER_PROFILE](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit",t).then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),u.Z.push("/profile")):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.UPDATE_USER_ACCOUNT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),a.Z.patch("auth/profile/edit/account",t).then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0)):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.UPDATE_USER_PREFERENCES](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit/preferences",t).then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.dispatch(m.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,t.data.data.language).then((()=>u.Z.push("/profile/preferences")))):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z["delete"](`auth/profile/reset/sports/${t}`).then((t=>{204===t.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,s.S)(e,null)})).catch((t=>{(0,s.S)(e,t),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[m.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit/sports",t).then((t=>{"success"===t.data.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,s.S)(e,null)})).catch((t=>{(0,s.S)(e,t),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[m.YN.ACTIONS.UPDATE_USER_PICTURE](e,t){if(e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),!t.picture)throw new Error("No file part");const n=new FormData;n.append("file",t.picture),a.Z.post("auth/picture",n,{headers:{"content-type":"multipart/form-data"}}).then((t=>{"success"===t.data.status?e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile"))):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.DELETE_ACCOUNT](e,t){d(e,t)},[m.YN.ACTIONS.DELETE_PICTURE](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z["delete"]("auth/picture").then((t=>{204===t.status?e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile"))):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.SEND_PASSWORD_RESET_REQUEST](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/password/reset-request",t).then((t=>{"success"===t.data.status?u.Z.push("/password-reset/sent"):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.YN.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/account/resend-confirmation",t).then((t=>{"success"===t.data.status?u.Z.push("/account-confirmation/email-sent"):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.YN.ACTIONS.RESET_USER_PASSWORD](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/password/update",t).then((t=>{"success"===t.data.status?u.Z.push("/password-reset/password-updated"):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))}},T={[m.YN.GETTERS.AUTH_TOKEN]:e=>e.authToken,[m.YN.GETTERS.AUTH_USER_PROFILE]:e=>e.authUserProfile,[m.YN.GETTERS.IS_AUTHENTICATED]:e=>null!==e.authToken,[m.YN.GETTERS.IS_ADMIN]:e=>e.authUserProfile&&e.authUserProfile.admin,[m.YN.GETTERS.IS_REGISTRATION_SUCCESS]:e=>e.isRegistrationSuccess,[m.YN.GETTERS.IS_SUCCESS]:e=>e.isSuccess,[m.YN.GETTERS.USER_LOADING]:e=>e.loading},p={[m.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN](e){e.authToken=null,e.authUserProfile={}},[m.YN.MUTATIONS.UPDATE_AUTH_TOKEN](e,t){e.authToken=t},[m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE](e,t){e.authUserProfile=t},[m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS](e,t){e.isRegistrationSuccess=t},[m.YN.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t},[m.YN.MUTATIONS.UPDATE_USER_LOADING](e,t){e.loading=t}},A={authToken:null,authUserProfile:{},isSuccess:!1,isRegistrationSuccess:!1,loading:!1},O={state:A,actions:_,getters:T,mutations:p};var z=O;const I=(e,t)=>{e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get(t).then((t=>{"success"===t.data.status?e.commit(m.Km.MUTATIONS.SET_CLIENT,t.data.data.client):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},R={[m.Km.ACTIONS.AUTHORIZE_CLIENT](e,t){e.commit(m.SY.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),a.Z.post("oauth/authorize",n,{headers:{"Content-Type":"multipart/form-data"}}).then((t=>{200==t.status&&t.data.redirect_url?window.location.href=t.data.redirect_url:(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.Km.ACTIONS.CREATE_CLIENT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.post("oauth/apps",t).then((t=>{"created"===t.data.status?(e.commit(m.Km.MUTATIONS.SET_CLIENT,t.data.data.client),u.Z.push(`/profile/apps/${t.data.data.client.id}/created`)):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.Km.ACTIONS.DELETE_CLIENT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z["delete"](`oauth/apps/${t}`).then((t=>{204===t.status?e.dispatch(m.Km.ACTIONS.GET_CLIENTS).then((()=>u.Z.push("/profile/apps"))):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.Km.ACTIONS.GET_CLIENT_BY_CLIENT_ID](e,t){I(e,`oauth/apps/${t}`)},[m.Km.ACTIONS.GET_CLIENT_BY_ID](e,t){I(e,`oauth/apps/${t}/by_id`)},[m.Km.ACTIONS.GET_CLIENTS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("oauth/apps",{params:t}).then((t=>{"success"===t.data.status?(e.commit(m.Km.MUTATIONS.SET_CLIENTS,t.data.data.clients),e.commit(m.Km.MUTATIONS.SET_CLIENTS_PAGINATION,t.data.pagination)):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.Km.ACTIONS.REVOKE_ALL_TOKENS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1),a.Z.post(`oauth/apps/${t}/revoke`).then((t=>{"success"===t.data.status?e.commit(m.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!0):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))}},g={[m.Km.GETTERS.CLIENT]:e=>e.client,[m.Km.GETTERS.CLIENTS]:e=>e.clients,[m.Km.GETTERS.CLIENTS_PAGINATION]:e=>e.pagination,[m.Km.GETTERS.REVOCATION_SUCCESSFUL]:e=>e.revocationSuccessful},N={[m.Km.MUTATIONS.SET_CLIENT](e,t){e.client=t},[m.Km.MUTATIONS.EMPTY_CLIENT](e){e.client={}},[m.Km.MUTATIONS.SET_CLIENTS](e,t){e.clients=t},[m.Km.MUTATIONS.SET_CLIENTS_PAGINATION](e,t){e.pagination=t},[m.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL](e,t){e.revocationSuccessful=t}},U={client:{},clients:[],pagination:{},revocationSuccessful:!1},h={state:U,actions:R,getters:g,mutations:N};var C=h,w=n(2540);const{locale:D}=w.Z.global,v={[m.SY.ACTIONS.GET_APPLICATION_CONFIG](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!0),a.Z.get("config").then((t=>{"success"===t.data.status?e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!1)))},[m.SY.ACTIONS.GET_APPLICATION_STATS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("stats/all").then((t=>{"success"===t.data.status?e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_STATS,t.data.data):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.SY.ACTIONS.UPDATE_APPLICATION_CONFIG](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.patch("config",t).then((t=>{"success"===t.data.status?(e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data),u.Z.push("/admin/application")):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE](e,t){document.querySelector("html")?.setAttribute("lang",t),e.commit(m.SY.MUTATIONS.UPDATE_LANG,t),D.value=t}},f={[m.SY.GETTERS.APP_CONFIG]:e=>e.application.config,[m.SY.GETTERS.APP_LOADING]:e=>e.appLoading,[m.SY.GETTERS.APP_STATS]:e=>e.application.statistics,[m.SY.GETTERS.ERROR_MESSAGES]:e=>e.errorMessages,[m.SY.GETTERS.LANGUAGE]:e=>e.language,[m.SY.GETTERS.LOCALE]:e=>e.locale};var P=n(6287);const k={[m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES](e){e.errorMessages=null},[m.SY.MUTATIONS.SET_ERROR_MESSAGES](e,t){e.errorMessages=t},[m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG](e,t){e.application.config=t},[m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING](e,t){e.appLoading=t},[m.SY.MUTATIONS.UPDATE_APPLICATION_STATS](e,t){e.application.statistics=t},[m.SY.MUTATIONS.UPDATE_LANG](e,t){e.language=t,e.locale=P.v1[t]}};var L=n(5826);const M={root:!0,language:"en",locale:L.Z,errorMessages:null,application:{statistics:{sports:0,uploads_dir_size:0,users:0,workouts:0}},appLoading:!1},b={[m.O8.ACTIONS.GET_SPORTS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("sports").then((t=>{"success"===t.data.status?(e.commit(m.O8.MUTATIONS.SET_SPORTS,t.data.data.sports),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.O8.ACTIONS.UPDATE_SPORTS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.patch(`sports/${t.id}`,{is_active:t.isActive}).then((t=>{"success"===t.data.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))}},y={[m.O8.GETTERS.SPORTS]:e=>e.sports},G={[m.O8.MUTATIONS.SET_SPORTS](e,t){e.sports=t}},F={sports:[]},W={state:F,actions:b,getters:y,mutations:G};var B=W;const K={[m.gu.ACTIONS.GET_USER_STATS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get(`stats/${t.username}/${t.filterType}`,{params:t.params}).then((t=>{"success"===t.data.status?e.commit(m.gu.MUTATIONS.UPDATE_USER_STATS,t.data.data.statistics):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))}},Y={[m.gu.GETTERS.USER_STATS]:e=>e.statistics},x={[m.gu.MUTATIONS.UPDATE_USER_STATS](e,t){e.statistics=t},[m.gu.MUTATIONS.EMPTY_USER_STATS](e){e.statistics={}}},H={statistics:{}},Z={state:H,actions:K,getters:Y,mutations:x};var $=Z;const V={[m.RT.GETTERS.USER]:e=>e.user,[m.RT.GETTERS.USERS]:e=>e.users,[m.RT.GETTERS.USERS_IS_SUCCESS]:e=>e.isSuccess,[m.RT.GETTERS.USERS_LOADING]:e=>e.loading,[m.RT.GETTERS.USERS_PAGINATION]:e=>e.pagination},q={[m.RT.MUTATIONS.UPDATE_USER](e,t){e.user=t},[m.RT.MUTATIONS.UPDATE_USER_IN_USERS](e,t){e.users=e.users.map((e=>e.username===t.username?t:e))},[m.RT.MUTATIONS.UPDATE_USERS](e,t){e.users=t},[m.RT.MUTATIONS.UPDATE_USERS_LOADING](e,t){e.loading=t},[m.RT.MUTATIONS.UPDATE_USERS_PAGINATION](e,t){e.pagination=t},[m.RT.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t}},j={user:{},users:[],loading:!1,isSuccess:!1,pagination:{}},X={state:j,actions:E,getters:V,mutations:q};var J=X,Q=n(52);const ee=(e,t,n)=>{e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("workouts",{params:t}).then((t=>{"success"===t.data.status?(e.commit(m.aX.MUTATIONS[n],t.data.data.workouts),n===Q.CW.SET_USER_WORKOUTS&&e.commit(m.aX.MUTATIONS.SET_WORKOUTS_PAGINATION,t.data.pagination)):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},te={[m.aX.ACTIONS.GET_CALENDAR_WORKOUTS](e,t){e.commit(m.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS),ee(e,t,Q.CW.SET_CALENDAR_WORKOUTS)},[m.aX.ACTIONS.GET_USER_WORKOUTS](e,t){ee(e,t,Q.CW.SET_USER_WORKOUTS)},[m.aX.ACTIONS.GET_TIMELINE_WORKOUTS](e,t){ee(e,t,Q.CW.SET_TIMELINE_WORKOUTS)},[m.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](e,t){ee(e,t,Q.CW.ADD_TIMELINE_WORKOUTS)},[m.aX.ACTIONS.GET_WORKOUT_DATA](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0);const n=t.segmentId?`/segment/${t.segmentId}`:"";a.Z.get(`workouts/${t.workoutId}`).then((r=>{const o=r.data.data.workouts[0];if("success"===r.data.status){if(t.segmentId&&(0===o.segments.length||!o.segments[+t.segmentId-1]))throw new Error("WORKOUT_NOT_FOUND");e.commit(m.aX.MUTATIONS.SET_WORKOUT,r.data.data.workouts[0]),r.data.data.workouts[0].with_gpx&&(a.Z.get(`workouts/${t.workoutId}/chart_data${n}`).then((t=>{"success"===t.data.status&&e.commit(m.aX.MUTATIONS.SET_WORKOUT_CHART_DATA,t.data.data.chart_data)})),a.Z.get(`workouts/${t.workoutId}/gpx${n}`).then((t=>{"success"===t.data.status&&e.commit(m.aX.MUTATIONS.SET_WORKOUT_GPX,t.data.data.gpx)})))}else e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),(0,s.S)(e,null)})).catch((t=>{e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),(0,s.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.DELETE_WORKOUT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z["delete"](`workouts/${t.workoutId}`).then((()=>{e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE),u.Z.push("/")})).catch((t=>{(0,s.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.EDIT_WORKOUT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z.patch(`workouts/${t.workoutId}`,t.data).then((()=>{e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE),e.dispatch(m.aX.ACTIONS.GET_WORKOUT_DATA,{workoutId:t.workoutId}).then((()=>{u.Z.push({name:"Workout",params:{workoutId:t.workoutId}})}))})).catch((t=>{(0,s.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.ADD_WORKOUT](e,t){if(e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),!t.file)throw new Error("No file part");const n=t.notes.replace(/"/g,'\\"'),r=new FormData;r.append("file",t.file),r.append("data",`{"sport_id": ${t.sport_id}, "notes": "${n}"}`),a.Z.post("workouts",r,{headers:{"content-type":"multipart/form-data"}}).then((t=>{if("created"===t.data.status){e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE);const n=t.data.data.workouts[0];u.Z.push(1===t.data.data.workouts.length?`/workouts/${n.id}`:"/")}})).catch((t=>{(0,s.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z.post("workouts/no_gpx",t).then((t=>{if("created"===t.data.status){e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE);const n=t.data.data.workouts[0];u.Z.push(`/workouts/${n.id}`)}})).catch((t=>{(0,s.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))}},ne={[m.aX.GETTERS.CALENDAR_WORKOUTS]:e=>e.calendar_workouts,[m.aX.GETTERS.TIMELINE_WORKOUTS]:e=>e.timeline_workouts,[m.aX.GETTERS.USER_WORKOUTS]:e=>e.user_workouts,[m.aX.GETTERS.WORKOUT_DATA]:e=>e.workoutData,[m.aX.GETTERS.WORKOUTS_PAGINATION]:e=>e.pagination},re={[m.aX.MUTATIONS.ADD_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=e.timeline_workouts.concat(t)},[m.aX.MUTATIONS.SET_CALENDAR_WORKOUTS](e,t){e.calendar_workouts=t},[m.aX.MUTATIONS.SET_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=t},[m.aX.MUTATIONS.SET_USER_WORKOUTS](e,t){e.user_workouts=t},[m.aX.MUTATIONS.SET_WORKOUTS_PAGINATION](e,t){e.pagination=t},[m.aX.MUTATIONS.SET_WORKOUT](e,t){e.workoutData.workout=t},[m.aX.MUTATIONS.SET_WORKOUT_CHART_DATA](e,t){e.workoutData.chartData=t},[m.aX.MUTATIONS.SET_WORKOUT_GPX](e,t){e.workoutData.gpx=t},[m.aX.MUTATIONS.SET_WORKOUT_LOADING](e,t){e.workoutData.loading=t},[m.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](e){e.calendar_workouts=[]},[m.aX.MUTATIONS.EMPTY_WORKOUTS](e){e.calendar_workouts=[],e.user_workouts=[],e.timeline_workouts=[]},[m.aX.MUTATIONS.EMPTY_WORKOUT](e){e.workoutData={gpx:"",loading:!1,workout:{},chartData:[]}}},ae={calendar_workouts:[],timeline_workouts:[],pagination:{},user_workouts:[],workoutData:{gpx:"",loading:!1,workout:{},chartData:[]}},oe={state:ae,actions:te,getters:ne,mutations:re};var ie=oe;const se={authUserModule:z,oAuthModule:C,sportsModule:B,statsModule:$,usersModule:J,workoutsModule:ie},le={state:M,actions:v,getters:f,mutations:k,modules:se};var ce=le;const ue=(0,r.MT)(ce);var me=ue},52:function(e,t,n){"use strict";var r,a,o;n.d(t,{CW:function(){return o},JP:function(){return a},tW:function(){return r}}),function(e){e["ADD_WORKOUT"]="ADD_WORKOUT",e["ADD_WORKOUT_WITHOUT_GPX"]="ADD_WORKOUT_WITHOUT_GPX",e["DELETE_WORKOUT"]="DELETE_WORKOUT",e["EDIT_WORKOUT"]="EDIT_WORKOUT",e["GET_CALENDAR_WORKOUTS"]="GET_CALENDAR_WORKOUTS",e["GET_USER_WORKOUTS"]="GET_USER_WORKOUTS",e["GET_TIMELINE_WORKOUTS"]="GET_TIMELINE_WORKOUTS",e["GET_MORE_TIMELINE_WORKOUTS"]="GET_MORE_TIMELINE_WORKOUTS",e["GET_WORKOUT_DATA"]="GET_WORKOUT_DATA"}(r||(r={})),function(e){e["CALENDAR_WORKOUTS"]="CALENDAR_WORKOUTS",e["TIMELINE_WORKOUTS"]="TIMELINE_WORKOUTS",e["USER_WORKOUTS"]="USER_WORKOUTS",e["WORKOUT_DATA"]="WORKOUT_DATA",e["WORKOUTS_PAGINATION"]="WORKOUTS_PAGINATION"}(a||(a={})),function(e){e["ADD_TIMELINE_WORKOUTS"]="ADD_TIMELINE_WORKOUTS",e["EMPTY_WORKOUTS"]="EMPTY_WORKOUTS",e["EMPTY_CALENDAR_WORKOUTS"]="EMPTY_CALENDAR_WORKOUTS",e["EMPTY_WORKOUT"]="EMPTY_WORKOUT",e["SET_CALENDAR_WORKOUTS"]="SET_CALENDAR_WORKOUTS",e["SET_TIMELINE_WORKOUTS"]="SET_TIMELINE_WORKOUTS",e["SET_USER_WORKOUTS"]="SET_USER_WORKOUTS",e["SET_WORKOUT"]="SET_WORKOUT",e["SET_WORKOUT_GPX"]="SET_WORKOUT_GPX",e["SET_WORKOUT_CHART_DATA"]="SET_WORKOUT_CHART_DATA",e["SET_WORKOUT_LOADING"]="SET_WORKOUT_LOADING",e["SET_WORKOUTS_PAGINATION"]="SET_WORKOUTS_PAGINATION"}(o||(o={}))},9917:function(e,t,n){"use strict";n.d(t,{o:function(){return a}});var r=n(3907);function a(){return(0,r.oR)()}},2766:function(e,t,n){"use strict";n.d(t,{Hf:function(){return a},Ne:function(){return c},fS:function(){return r},lM:function(){return m},pm:function(){return l},z_:function(){return i}});const r=["asc","desc"],a=1,o=10,i=(e,t)=>e&&"string"===typeof e&&+e>0?+e:t,s=(e,t,n)=>e&&"string"===typeof e&&t.includes(e)?e:n,l=(e,t,n,l)=>{const c=l||{},u=c.defaultSort||"asc",m={};return m.page=i(e.page,a),m.per_page=i(e.per_page,o),m.order=s(e.order,r,u),m.order_by=s(e.order_by,t,n),"string"===typeof e.q?m.q=e.q:delete m.q,m},c=["from","to","ave_speed_from","ave_speed_to","max_speed_from","max_speed_to","distance_from","distance_to","duration_from","duration_to","sport_id"],u=(e,t=1)=>Array.from({length:e-t+1},((e,n)=>t+n)),m=(e,t)=>{if(e<0)return[];if(e<9)return u(e);let n=[1,2];return t<4?n=n.concat([3,4,5]):t<6?n=n.concat(u(t+2,3)):(n=n.concat(["..."]),t=e-2&&n[n.length-1]{switch(e){case"week":return(0,r.Z)(t,{weekStartsOn:n?1:0});case"year":return(0,a.Z)(t);case"month":return(0,o.Z)(t);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},p=(e,t)=>{switch(e){case"week":return(0,i.Z)(t,7);case"year":return(0,s.Z)(t,1);case"month":return(0,l.Z)(t,1);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},A=(e,t)=>(0,d.utcToZonedTime)(new Date(e),t),O=(e,t)=>{const n=(0,o.Z)(e),a=(0,c.Z)(e),i=t?1:0;return{start:(0,r.Z)(n,{weekStartsOn:i}),end:(0,u.Z)(a,{weekStartsOn:i})}},z=(e,t=null,n=null)=>(t||(t="yyyy/MM/dd"),t=g(t,_.value),n||(n="HH:mm"),{workout_date:(0,m.Z)(e,t,{locale:S.v1[_.value]}),workout_time:(0,m.Z)(e,n)}),I=["MM/dd/yyyy","dd/MM/yyyy","yyyy-MM-dd","date_string"],R={de:"do MMM yyyy",en:"MMM. do, yyyy",fr:"d MMM yyyy",it:"d MMM yyyy",nl:"d MMM yyyy"},g=(e,t)=>"date_string"===e?R[t]:e,N=(e,t,n,r=!0,a=null)=>(a||(a=_.value),(0,m.Z)(A(e,t),`${g(n,a)}${r?" HH:mm":""}`,{locale:S.v1[a]})),U=(e,t,n=null)=>{const r=n||_.value,a=[];return I.map((n=>{const o=g(n,r);a.push({label:`${o} - ${N(e,t,o,!1,r)}`,value:n})})),a}},8966:function(e,t,n){"use strict";n.d(t,{Z:function(){return a},j:function(){return o}});const r=["bytes","KB","MB","GB","TB"],a=(e,t=!0)=>{const n=Math.floor(Math.log(e)/Math.log(1024));if(!e)return t?"0 bytes":{size:"0",suffix:"bytes"};const a=(e/Math.pow(1024,n)).toFixed(1),o=r[n];return t?`${a}${o}`:{size:a,suffix:o}},o=e=>{const t=e/1048576;return+t.toFixed(2)}},2024:function(e,t,n){"use strict";n.d(t,{S:function(){return o},k:function(){return a}});var r=n(5801);const a=()=>"/api/",o=(e,t,n="UNKNOWN")=>{if(t&&"canceled"===t.message)return;const a=t?.response&&t.response.data?t.response.data:null;if(401===t?.response?.status&&"invalid_token"===a?.error)return localStorage.removeItem("authToken"),void e.dispatch(r.YN.ACTIONS.CHECK_AUTH_USER);const o=t?t.response?413===t.response.status?"file size is greater than the allowed size":a?.message?a.message:n:t.message?t.message:n:n;e.commit(r.SY.MUTATIONS.SET_ERROR_MESSAGES,o.includes("\n")?o.split("\n").filter((e=>""!==e)).map((e=>`api.ERROR.${e}`)):`api.ERROR.${o}`)}},6287:function(e,t,n){"use strict";n.d(t,{mT:function(){return d},v1:function(){return c},zK:function(){return u}});var r=n(879),a=n(5826),o=n(5830),i=n(8160),s=n(4638),l=n(2540);const c={de:r.Z,en:a.Z,fr:o.Z,it:i.Z,nl:s.Z},u={de:"Deutsch",en:"English",fr:"Français",it:"Italiano",nl:"Nederlands"},{availableLocales:m}=l.Z.global,d=m.map((e=>({label:u[e],value:e})))},631:function(e,t,n){"use strict";n.d(t,{CM:function(){return l},PA:function(){return s},Yx:function(){return a},Zo:function(){return r},xH:function(){return i}});const r={"Cycling (Sport)":"#4c9792","Cycling (Transport)":"#88af98","Cycling (Virtual)":"#64a360",Hiking:"#bb757c","Mountain Biking":"#d4b371","Mountain Biking (Electric)":"#fc9d6f",Mountaineering:"#48b3b7",Rowing:"#fcce72",Running:"#835b83","Skiing (Alpine)":"#67a4bd","Skiing (Cross Country)":"#9498d0",Snowshoes:"#5780a8",Trail:"#09a98a",Walking:"#838383"},a=e=>{const t={};return e.map((e=>t[e.id]=e.color?e.color:r[e.label])),t},o=(e,t)=>{const n=e.translatedLabel.toLowerCase(),r=t.translatedLabel.toLowerCase();return n>r?1:ne.filter((e=>"all"===n||(r.includes(e.id)||e[n]))).map((e=>({...e,translatedLabel:t(`sports.${e.label}.LABEL`)}))).sort(o),s=(e,t)=>t.filter((t=>t.id===e.sport_id)).map((e=>e.label))[0],l=(e,t)=>t.filter((t=>t.id===e.sport_id)).map((e=>e.color))[0]},9318:function(e,t,n){"use strict";n.d(t,{FN:function(){return v},aZ:function(){return D},v1:function(){return w}});n(7658);var r=n(6761),a=n(8148),o=n(9319),i=n(584),s=n(4559),l=n(3703),c=n(876),u=n(7090),m=n(4135),d=n(1593),E=n(7982),S=n(3500),_=n(1640),T=n(2540),p=n(6558),A=n(6287),O=n(631),z=n(3649);const{locale:I}=T.Z.global,R={week:{api:"yyyy-MM-dd",chart:"MM/dd/yyyy"},month:{api:"yyyy-MM",chart:"MM/yyyy"},year:{api:"yyyy",chart:"yyyy"}},g=["average_speed","nb_workouts","total_duration","total_distance","total_ascent","total_descent"],N=(e,t)=>{const n=[];for(let r=(0,p.Nh)(e.duration,e.start,t);r<=e.end;r=(0,p.xA)(e.duration,r))n.push(r);return n},U=(e,t,n=!1)=>{const r={label:e,backgroundColor:[t],data:[]};return n&&(r.type="line",r.borderColor=[t],r.spanGaps=!0),r},h=e=>{const t={average_speed:[],nb_workouts:[],total_distance:[],total_duration:[],total_ascent:[],total_descent:[]};return e.map((e=>{const n=e.color?e.color:O.Zo[e.label];t.average_speed.push(U(e.label,n,!0)),t.nb_workouts.push(U(e.label,n)),t.total_distance.push(U(e.label,n)),t.total_duration.push(U(e.label,n)),t.total_ascent.push(U(e.label,n)),t.total_descent.push(U(e.label,n))})),t},C=(e,t,n)=>{switch(e){case"average_speed":case"total_distance":case"total_ascent":case"total_descent":return(0,z.f3)(["average_speed","total_distance"].includes(e)?"km":"m",t,n);default:case"nb_workouts":case"total_duration":return t}},w=(e,t,n,a,o,i,s)=>{const l=N(e,t),c=R[e.duration],u=n.filter((e=>a.includes(e.id))),m=[],d=h(u),E={};return u.map((e=>E[e.label]=e.id)),l.map((t=>{const n=(0,r.Z)(t,c.api),a=(0,r.Z)(t,"week"===e.duration?(0,p.mh)(s,I.value):c.chart,{locale:A.v1[I.value]});m.push(a),g.map((e=>{d[e].map((t=>{t.data.push(n in o&&E[t.label]in o[n]?C(e,o[n][E[t.label]][e],i):"average_speed"===e?null:0)}))}))})),{labels:m,datasets:d}},D=(e,t,n)=>{const r=n?1:0,d="year"===t?(0,a.Z)((0,o.Z)(e,9)):"week"===t?(0,i.Z)((0,s.Z)(e,2),{weekStartsOn:r}):(0,l.Z)((0,s.Z)(e,11)),E="year"===t?(0,c.Z)(e):"week"===t?(0,u.Z)(e,{weekStartsOn:r}):(0,m.Z)(e);return{duration:t,end:E,start:d}},v=(e,t,n)=>{const{duration:r,start:T,end:p}=e,A=n?1:0;return{duration:r,end:"year"===r?(0,c.Z)(t?(0,o.Z)(p,1):(0,d.Z)(p,1)):"week"===r?(0,u.Z)(t?(0,E.Z)(p,1):(0,S.Z)(p,1),{weekStartsOn:A}):(0,m.Z)(t?(0,s.Z)(p,1):(0,_.Z)(p,1)),start:"year"===r?(0,a.Z)(t?(0,o.Z)(T,1):(0,d.Z)(T,1)):"week"===r?(0,i.Z)(t?(0,E.Z)(T,1):(0,S.Z)(T,1),{weekStartsOn:A}):(0,l.Z)(t?(0,s.Z)(T,1):(0,_.Z)(T,1))}}},3649:function(e,t,n){"use strict";n.d(t,{Dl:function(){return r},Y2:function(){return l},f3:function(){return i},sC:function(){return o},x$:function(){return s}});const r={ft:{unit:"ft",system:"imperial",multiplier:1,defaultTarget:"m"},mi:{unit:"mi",system:"imperial",multiplier:5280,defaultTarget:"km"},m:{unit:"m",system:"metric",multiplier:1,defaultTarget:"ft"},km:{unit:"m",system:"metric",multiplier:1e3,defaultTarget:"mi"}},a={metric:{imperial:3.280839895,metric:1},imperial:{metric:1/3.280839895,imperial:1}},o=(e,t,n,o=3)=>{const i=r[t],s=r[n],l=e*i.multiplier*a[i.system][s.system]/s.multiplier;return null!==o?parseFloat(l.toFixed(o)):l},i=(e,t,n)=>{const a=n?r[e].defaultTarget:e;return n?o(t,e,a,2):t},s=(e,t)=>{const n=t?1.8*e+32:e,r=t?" °F":"°C";return`${0===n?0:Number(n).toFixed(1)}${r}`},l=(e,t)=>{const n=t?2.2369363*e:e,r=t?" mph":"m/s";return`${0===n?0:Number(n).toFixed(1)}${r}`}},3768:function(e,t,n){"use strict";n.d(t,{BN:function(){return o},EX:function(){return a},eR:function(){return i}});n(7658);var r=n(3649);const a=(e,t,n)=>{const a={speed:{label:t("workouts.SPEED"),backgroundColor:["#FFFFFF"],borderColor:["#8884d8"],borderWidth:2,data:[],yAxisID:"ySpeed"},elevation:{label:t("workouts.ELEVATION"),backgroundColor:["#e5e5e5"],borderColor:["#cccccc"],borderWidth:1,fill:!0,data:[],yAxisID:"yElevation"}},o=[],i=[],s=[];return e.map((e=>{o.push(e.distance),i.push(e.duration),a.speed.data.push((0,r.f3)("km",e.speed,n)),a.elevation.data.push((0,r.f3)("m",e.elevation,n)),s.push({latitude:e.latitude,longitude:e.longitude})})),{distance_labels:o,duration_labels:i,datasets:a,coordinates:s}},o=e=>{const t=e.length;if(0===t)return{};const n={};return e.map((e=>{n[e.sport_id]||(n[e.sport_id]={count:0,percentage:0}),n[e.sport_id].count+=1,n[e.sport_id].percentage=n[e.sport_id].count/t})),n},i={order:"desc",order_by:"workout_date"}},2531:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var r=n(6252);const a={class:"card"},o={class:"card-title"},i={class:"card-content"};function s(e,t){return(0,r.wg)(),(0,r.iD)("div",a,[(0,r._)("div",o,[(0,r.WI)(e.$slots,"title")]),(0,r._)("div",i,[(0,r.WI)(e.$slots,"content")])])}var l=n(3744);const c={},u=(0,l.Z)(c,[["render",s]]);var m=u},8626:function(e,t,n){"use strict";n.d(t,{Z:function(){return T}});var r=n(6252),a=n(3577),o=n(2262);const i={class:"table-selects"},s=["value"],l=["value"],c=["value"],u=["value"],m=["value"],d=["value"];var E=(0,r.aZ)({__name:"FilterSelects",props:{order_by:null,query:null,sort:null,message:null},emits:["updateSelect"],setup(e,{emit:t}){const n=e,{order_by:E,query:S,sort:_,message:T}=(0,o.BK)(n),p=[10,25,50,100];function A(e){t("updateSelect",e.target.id,e.target.value)}return(e,t)=>((0,r.wg)(),(0,r.iD)("div",i,[(0,r._)("label",null,[(0,r.Uk)((0,a.zw)(e.$t("common.SELECTS.ORDER_BY.LABEL"))+": ",1),(0,r._)("select",{name:"order_by",id:"order_by",value:(0,o.SU)(S).order_by,onChange:A},[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,o.SU)(E),(t=>((0,r.wg)(),(0,r.iD)("option",{value:t,key:t},(0,a.zw)(e.$t(`${(0,o.SU)(T)}.${t.toUpperCase()}`)),9,l)))),128))],40,s)]),(0,r._)("label",null,[(0,r.Uk)((0,a.zw)(e.$t("common.SELECTS.ORDER.LABEL"))+": ",1),(0,r._)("select",{name:"order",id:"order",value:(0,o.SU)(S).order,onChange:A},[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,o.SU)(_),(t=>((0,r.wg)(),(0,r.iD)("option",{value:t,key:t},(0,a.zw)(e.$t(`common.SELECTS.ORDER.${t.toUpperCase()}`)),9,u)))),128))],40,c)]),(0,r._)("label",null,[(0,r.Uk)((0,a.zw)(e.$t("common.SELECTS.PER_PAGE.LABEL"))+": ",1),(0,r._)("select",{name:"per_page",id:"per_page",value:(0,o.SU)(S).per_page,onChange:A},[((0,r.wg)(),(0,r.iD)(r.HY,null,(0,r.Ko)(p,(e=>(0,r._)("option",{value:e,key:e},(0,a.zw)(e),9,d))),64))],40,m)])]))}}),S=n(3744);const _=(0,S.Z)(E,[["__scopeId","data-v-72463173"]]);var T=_},7167:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var r=n(6252);const a={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -51 512 512"},o=(0,r.uE)('',1),i=[o];function s(e,t,n,o,s,l){return(0,r.wg)(),(0,r.iD)("svg",a,i)}var l={name:"ErrorImg"},c=n(3744);const u=(0,c.Z)(l,[["render",s]]);var m=u},8273:function(e,t,n){"use strict";n.d(t,{Z:function(){return S}});var r=n(6252),a=n(2262),o=(n(7658),n(3577));const i={id:"error"},s={class:"error-content"};var l=(0,r.aZ)({__name:"Error",props:{title:null,message:null,buttonText:null,path:{default:"/"}},setup(e){const t=e,{buttonText:n,title:l,message:c,path:u}=(0,a.BK)(t);return(e,t)=>((0,r.wg)(),(0,r.iD)("div",i,[(0,r._)("div",s,[(0,r._)("h1",null,(0,o.zw)((0,a.SU)(l)),1),(0,r._)("p",null,(0,o.zw)((0,a.SU)(c)),1),(0,a.SU)(n)?((0,r.wg)(),(0,r.iD)("button",{key:0,onClick:t[0]||(t[0]=t=>e.$router.push((0,a.SU)(u))),class:"upper"},(0,o.zw)((0,a.SU)(n)),1)):(0,r.kq)("",!0)])]))}}),c=n(3744);const u=(0,c.Z)(l,[["__scopeId","data-v-b60bfa80"]]);var m=u,d=(0,r.aZ)({__name:"NotFound",props:{target:{default:"PAGE"}},setup(e){const t=e,{target:n}=(0,a.BK)(t),o=(0,a.iH)(),i=(0,a.iH)(!1);function s(){o.value=setTimeout((()=>{i.value=!0}),500)}return(0,r.bv)((()=>s())),(0,r.Ah)((()=>{o.value&&clearTimeout(o.value)})),(e,t)=>i.value?((0,r.wg)(),(0,r.j4)(m,{key:0,title:"404",message:e.$t(`error.NOT_FOUND.${(0,a.SU)(n)}`),"button-text":e.$t("common.HOME")},null,8,["message","button-text"])):(0,r.kq)("",!0)}});const E=d;var S=E},5020:function(e,t,n){"use strict";n.d(t,{Z:function(){return T}});var r=n(6252),a=n(3577),o=n(2262),i=n(2766);const s=e=>((0,r.dD)("data-v-3a9a4a65"),e=e(),(0,r.Cn)(),e),l={class:"pagination-center","aria-label":"navigation"},c={class:"pagination"},u=s((()=>(0,r._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1))),m={key:0},d=s((()=>(0,r._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)));var E=(0,r.aZ)({__name:"Pagination",props:{pagination:null,path:null,query:null},setup(e){const t=e,{pagination:n,path:s,query:E}=(0,o.BK)(t);function S(e,t){const n=Object.assign({},E.value);return n.page=t?e+t:e,n}return(e,t)=>{const E=(0,r.up)("router-link");return(0,r.wg)(),(0,r.iD)("nav",l,[(0,r._)("ul",c,[(0,r._)("li",{class:(0,a.C_)(["page-prev",{disabled:!(0,o.SU)(n).has_prev}])},[(0,r.Wm)(E,{class:"page-link",to:{path:(0,o.SU)(s),query:S((0,o.SU)(n).page,-1)},disabled:!(0,o.SU)(n).has_prev},{default:(0,r.w5)((({navigate:t})=>[(0,r.WI)(e.$slots,"default",{onClick:e=>(0,o.SU)(n).has_next?t:null},(()=>[(0,r.Uk)((0,a.zw)(e.$t("api.PAGINATION.PREVIOUS"))+" ",1),u]))])),_:3},8,["to","disabled"])],2),((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,o.SU)(i.lM)((0,o.SU)(n).pages,(0,o.SU)(n).page),(e=>((0,r.wg)(),(0,r.iD)("li",{key:e,class:(0,a.C_)(["page",{active:e===(0,o.SU)(n).page}])},["..."===e?((0,r.wg)(),(0,r.iD)("span",m," ... ")):((0,r.wg)(),(0,r.j4)(E,{key:1,class:"page-link",to:{path:(0,o.SU)(s),query:S(+e)}},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e),1)])),_:2},1032,["to"]))],2)))),128)),(0,r._)("li",{class:(0,a.C_)(["page-next",{disabled:!(0,o.SU)(n).has_next}])},[(0,r.Wm)(E,{class:"page-link",to:{path:(0,o.SU)(s),query:S((0,o.SU)(n).page,1)},disabled:!(0,o.SU)(n).has_next},{default:(0,r.w5)((({navigate:t})=>[(0,r.WI)(e.$slots,"default",{onClick:e=>(0,o.SU)(n).has_next?t:null},(()=>[(0,r.Uk)((0,a.zw)(e.$t("api.PAGINATION.NEXT"))+" ",1),d]))])),_:3},8,["to","disabled"])],2)])])}}}),S=n(3744);const _=(0,S.Z)(E,[["__scopeId","data-v-3a9a4a65"]]);var T=_},8403:function(e,t,n){"use strict";n.d(t,{Z:function(){return v}});var r=n(6252),a=n(2262),o=n(9963),i=n(3577),s=n(4366),l=n(5801),c=n(9917);const u=async e=>{switch(e){case"fr":return await n.e(222).then(n.bind(n,6947));case"de":return await n.e(940).then(n.bind(n,8056));case"it":return await n.e(802).then(n.bind(n,3140));default:return await n.e(261).then(n.bind(n,8288))}},m=async e=>{const t=await n.e(881).then(n.bind(n,410)),r=await u(e),a={graphs:t.default.adjacencyGraphs,dictionary:{...t.default.dictionary,...r.default.dictionary}};s.Mu.setOptions(a)},d=e=>{switch(e){case 2:return"AVERAGE";case 3:return"GOOD";case 4:return"STRONG";default:return"WEAK"}},E={class:"password-strength"},S=["value"],_={key:0,class:"password-strength-details"},T={class:"password-strength-value"},p={key:0,class:"info-box"},A={class:"password-feedback"};var O=(0,r.aZ)({__name:"PasswordStength",props:{password:null},setup(e){const t=e,{password:n}=(0,a.BK)(t),o=(0,c.o)(),u=(0,r.Fl)((()=>o.getters[l.SY.GETTERS.LANGUAGE])),O=(0,r.Fl)((()=>o.getters[l.YN.GETTERS.IS_SUCCESS])),z=(0,a.iH)(0),I=(0,a.iH)(""),R=(0,a.iH)([]),g=(0,a.iH)("0% 100%");function N(e){const t=(0,s.tu)(e);z.value=t.score,I.value=d(z.value),R.value=t.feedback.suggestions,g.value=100*z.value/4+"% 100%"}return(0,r.wF)((async()=>await m(u.value))),(0,r.YP)((()=>u.value),(async e=>{await m(e)})),(0,r.YP)((()=>n.value),(async e=>{O.value?I.value="":N(e)})),(e,t)=>((0,r.wg)(),(0,r.iD)("div",E,[(0,r._)("input",{class:(0,i.C_)(["password-slider",`strength-${z.value}`]),style:(0,i.j5)({backgroundSize:g.value}),type:"range",value:z.value,min:"0",max:"4",step:"1"},null,14,S),I.value?((0,r.wg)(),(0,r.iD)("div",_,[(0,r._)("span",T,(0,i.zw)(e.$t("user.PASSWORD_STRENGTH.LABEL"))+": "+(0,i.zw)(e.$t(`user.PASSWORD_STRENGTH.${I.value}`)),1),R.value.length>0?((0,r.wg)(),(0,r.iD)("div",p,[(0,r._)("ul",A,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(R.value,(t=>((0,r.wg)(),(0,r.iD)("li",{key:t},(0,i.zw)(e.$t(`user.PASSWORD_STRENGTH.SUGGESTIONS.${t}`)),1)))),128))])])):(0,r.kq)("",!0)])):(0,r.kq)("",!0)]))}}),z=n(3744);const I=(0,z.Z)(O,[["__scopeId","data-v-74e71df5"]]);var R=I;const g=e=>((0,r.dD)("data-v-5a126514"),e=e(),(0,r.Cn)(),e),N={class:"password-input"},U=["id","disabled","placeholder","required","type"],h={key:0,class:"form-info"},C=g((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)));var w=(0,r.aZ)({__name:"PasswordInput",props:{checkStrength:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},id:{default:"password"},password:{default:""},placeholder:null,required:{type:Boolean,default:!1}},emits:["updatePassword","passwordError"],setup(e,{emit:t}){const n=e,{checkStrength:s,disabled:l,id:c,password:u,placeholder:m,required:d}=(0,a.BK)(n),E=(0,a.iH)(!1),S=(0,a.iH)("");function _(){E.value=!E.value}function T(e){t("updatePassword",e.target.value)}function p(){t("passwordError")}return(0,r.YP)((()=>u.value),(e=>{""===e&&(S.value="")})),(e,t)=>((0,r.wg)(),(0,r.iD)("div",N,[(0,r.wy)((0,r._)("input",{id:(0,a.SU)(c),disabled:(0,a.SU)(l),placeholder:(0,a.SU)(m),required:(0,a.SU)(d),type:E.value?"text":"password","onUpdate:modelValue":t[0]||(t[0]=e=>S.value=e),minlength:"8",onInput:T,onInvalid:p},null,40,U),[[o.YZ,S.value]]),(0,r._)("div",{class:"show-password",onClick:_},[(0,r.Uk)((0,i.zw)(e.$t(`user.${E.value?"HIDE":"SHOW"}_PASSWORD`))+" ",1),(0,r._)("i",{class:(0,i.C_)(["fa","fa-eye"+(E.value?"-slash":"")]),"aria-hidden":"true"},null,2)]),(0,a.SU)(s)?((0,r.wg)(),(0,r.iD)("div",h,[C,(0,r.Uk)(" "+(0,i.zw)(e.$t("user.PASSWORD_INFO")),1)])):(0,r.kq)("",!0),(0,a.SU)(s)?((0,r.wg)(),(0,r.j4)(R,{key:1,password:S.value},null,8,["password"])):(0,r.kq)("",!0)]))}});const D=(0,z.Z)(w,[["__scopeId","data-v-5a126514"]]);var v=D},2056:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(6252),a=n(3577),o=n(2262),i=n(2024);const s=(0,r._)("div",{class:"map-attribution"},[(0,r._)("span",{class:"map-attribution-text"},"©"),(0,r._)("a",{class:"map-attribution-text",href:"https://www.openstreetmap.org/copyright",target:"_blank",rel:"noopener noreferrer"}," OpenStreetMap ")],-1);var l=(0,r.aZ)({__name:"StaticMap",props:{workout:null,displayHover:{type:Boolean,default:!1}},setup(e){const t=e,{displayHover:n}=(0,o.BK)(t),l=`${(0,i.k)()}workouts/map/${t.workout.map}`;return(e,t)=>((0,r.wg)(),(0,r.iD)("div",{class:(0,a.C_)(["static-map",{"display-hover":(0,o.SU)(n)}])},[(0,o.SU)(n)?((0,r.wg)(),(0,r.iD)("img",{key:0,src:l,alt:""})):((0,r.wg)(),(0,r.iD)("div",{key:1,class:"bg-map-image",style:(0,a.j5)({backgroundImage:`url(${l})`})},null,4)),s],2))}});const c=l;var u=c},436:function(e,t,n){"use strict";n.d(t,{Z:function(){return y}});var r=n(6252),a=n(3577);const o={class:"start-chart"},i={key:0},s={key:1},l={class:"chart-radio"},c=["checked"],u=["checked"],m=["checked"],d={key:0},E=["checked"],S={key:1},_=["checked"],T={key:2},p=["checked"];function A(e,t,n,A,O,z){const I=(0,r.up)("Chart");return(0,r.wg)(),(0,r.iD)("div",o,[e.hideChartIfNoData&&e.emptyStats?((0,r.wg)(),(0,r.iD)("div",i,(0,a.zw)(e.$t("workouts.NO_WORKOUTS")),1)):((0,r.wg)(),(0,r.iD)("div",s,[(0,r._)("div",l,[(0,r._)("label",null,[(0,r._)("input",{type:"radio",name:"total_distance",checked:"total_distance"===e.displayedData,onClick:t[0]||(t[0]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,c),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.DISTANCE")),1)]),(0,r._)("label",null,[(0,r._)("input",{type:"radio",name:"total_duration",checked:"total_duration"===e.displayedData,onClick:t[1]||(t[1]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,u),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.DURATION")),1)]),(0,r._)("label",null,[(0,r._)("input",{type:"radio",name:"nb_workouts",checked:"nb_workouts"===e.displayedData,onClick:t[2]||(t[2]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,m),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.WORKOUT",2)),1)]),e.fullStats?((0,r.wg)(),(0,r.iD)("label",d,[(0,r._)("input",{type:"radio",name:"average_speed",checked:"average_speed"===e.displayedData,onClick:t[3]||(t[3]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,E),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.AVERAGE_SPEED")),1)])):(0,r.kq)("",!0),e.fullStats?((0,r.wg)(),(0,r.iD)("label",S,[(0,r._)("input",{type:"radio",name:"total_ascent",checked:"total_ascent"===e.displayedData,onClick:t[4]||(t[4]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,_),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.ASCENT")),1)])):(0,r.kq)("",!0),e.fullStats?((0,r.wg)(),(0,r.iD)("label",T,[(0,r._)("input",{type:"radio",name:"total_descent",checked:"total_descent"===e.displayedData,onClick:t[5]||(t[5]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,p),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.DESCENT")),1)])):(0,r.kq)("",!0)]),e.labels.length>0?((0,r.wg)(),(0,r.j4)(I,{key:0,datasets:e.datasets,labels:e.labels,displayedData:e.displayedData,displayedSportIds:e.displayedSportIds,fullStats:e.fullStats,useImperialUnits:e.user.imperial_units},null,8,["datasets","labels","displayedData","displayedSportIds","fullStats","useImperialUnits"])):(0,r.kq)("",!0)]))])}var O=n(6761),z=n(2262);const I={class:"chart"};function R(e,t,n,a,o,i){const s=(0,r.up)("BarChart");return(0,r.wg)(),(0,r.iD)("div",I,[(0,r.Wm)(s,(0,r.dG)(e.barChartProps,{class:"bar-chart"}),null,16)])}var g=n(6518),N=n(9150);const U=(e,t=!1)=>{let n="0";t&&(n=String(Math.floor(e/86400)),e%=86400);const r=String(Math.floor(e/3600)).padStart(2,"0");e%=3600;const a=String(Math.floor(e/60)).padStart(2,"0"),o=String(e%60).padStart(2,"0");return t?`${"0"===n?"":`${n}d `}${"00"===r?"":`${r}h `}${a}m ${o}s`:`${"00"===r?"":`${r}:`}${a}:${o}`};var h=n(3649);const C=(e,t,n,r=!0,a="km")=>{const o=n?h.Dl[a].defaultTarget:a;switch(e){case"average_speed":return`${t.toFixed(2)} ${o}/h`;case"total_duration":return U(t,r);case"total_distance":case"total_ascent":case"total_descent":return`${t.toFixed(2)} ${o}`;default:return t.toString()}};var w=(0,r.aZ)({name:"Chart",components:{BarChart:g.vz},props:{datasets:{type:Object,required:!0},labels:{type:Object,required:!0},displayedData:{type:String,required:!0},displayedSportIds:{type:Array,required:!0},fullStats:{type:Boolean,required:!0},useImperialUnits:{type:Boolean,required:!0}},setup(e){const{t:t}=(0,N.QT)();function n(e){return isNaN(e)?0:+e}function a(e,t){return n(e)+n(t)}function o(e){return["total_ascent","total_descent"].includes(e)?"m":"km"}const i=(0,r.Fl)((()=>({labels:e.labels,datasets:JSON.parse(JSON.stringify(e.datasets))}))),s=(0,r.Fl)((()=>({responsive:!0,maintainAspectRatio:!0,animation:!1,layout:{padding:{top:e.fullStats?40:22}},scales:{x:{stacked:!0,grid:{drawOnChartArea:!1}},y:{stacked:"average_speed"!==e.displayedData,grid:{drawOnChartArea:!1},ticks:{maxTicksLimit:6,callback:function(t){return C(e.displayedData,+t,e.useImperialUnits,!1,o(e.displayedData))}},afterFit:function(t){t.width=e.fullStats?90:60}}},plugins:{datalabels:{anchor:"end",align:"end",color:function(t){return"average_speed"===e.displayedData&&t.dataset.backgroundColor?t.dataset.backgroundColor[0]:"#666666"},rotation:function(t){return e.fullStats&&t.chart.chartArea.width<580?310:0},display:function(t){return!(e.fullStats&&t.chart.chartArea.width<300)&&("average_speed"!==e.displayedData||1==e.displayedSportIds.length&&"auto")},formatter:function(t,n){if("average_speed"===e.displayedData)return C(e.displayedData,t,e.useImperialUnits,!1);{const t=n.chart.data.datasets.map((e=>e.data[n.dataIndex])).reduce(((e,t)=>a(e,t)),0);return n.datasetIndex===e.displayedSportIds.length-1&&t>0?C(e.displayedData,t,e.useImperialUnits,!1,o(e.displayedData)):null}}},legend:{display:!1},tooltip:{interaction:{intersect:!0,mode:"index",position:"average_speed"===e.displayedData?"nearest":"average"},filter:function(e){return"0"!==e.formattedValue},callbacks:{label:function(n){let r=t(`sports.${n.dataset.label}.LABEL`)||"";return r&&(r+=": "),null!==n.parsed.y&&(r+=C(e.displayedData,n.parsed.y,e.useImperialUnits,!0,o(e.displayedData))),r},footer:function(n){if("average_speed"===e.displayedData)return"";let r=0;return n.map((e=>{r+=e.parsed.y})),`${t("common.TOTAL")}: `+C(e.displayedData,r,e.useImperialUnits,!0,o(e.displayedData))}}}}}))),{barChartProps:l}=(0,g.xZ)({chartData:i,options:s});return{barChartProps:l}}}),D=n(3744);const v=(0,D.Z)(w,[["render",R]]);var f=v,P=n(5801),k=n(9917),L=n(9318),M=(0,r.aZ)({name:"UserMonthStats",components:{Chart:f},props:{sports:{type:Object,required:!0},user:{type:Object,required:!0},chartParams:{type:Object,required:!0},displayedSportIds:{type:Array,default:()=>[]},fullStats:{type:Boolean,default:!1},hideChartIfNoData:{type:Boolean,default:!1}},setup(e){const t=(0,k.o)(),n=(0,z.iH)("total_distance"),a=(0,r.Fl)((()=>t.getters[P.gu.GETTERS.USER_STATS])),o=(0,r.Fl)((()=>(0,L.v1)(e.chartParams,e.user.weekm,e.sports,e.displayedSportIds,a.value,e.user.imperial_units,e.user.date_format)));function i(n){t.dispatch(P.gu.ACTIONS.GET_USER_STATS,{username:e.user.username,filterType:"by_time",params:n})}function s(e){n.value=e.target.name}function l(e,t){return{from:(0,O.Z)(e.start,"yyyy-MM-dd"),to:(0,O.Z)(e.end,"yyyy-MM-dd"),time:"week"===e.duration?"week"+(t.weekm?"m":""):e.duration}}return(0,r.wF)((()=>i(l(e.chartParams,e.user)))),(0,r.YP)((()=>e.chartParams),(async t=>{i(l(t,e.user))})),{datasets:(0,r.Fl)((()=>o.value.datasets[n.value])),labels:(0,r.Fl)((()=>o.value.labels)),emptyStats:(0,r.Fl)((()=>0===Object.keys(a.value).length)),displayedData:n,updateDisplayData:s}}});const b=(0,D.Z)(M,[["render",A],["__scopeId","data-v-d5e9b348"]]);var y=b},2179:function(e,t,n){"use strict";n.d(t,{Z:function(){return N}});var r=n(6252),a=n(2262),o=n(3577),i=n(6595),s=n(5801),l=n(9917);const c={class:"box user-header"},u={class:"user-details"},m={class:"user-name"},d={class:"user-stats"},E={class:"user-stat"},S={class:"stat-number"},_={class:"stat-label"},T={class:"user-stat"},p={class:"stat-label"},A={class:"user-stat hide-small"},O={class:"stat-number"},z={class:"stat-label"};var I=(0,r.aZ)({__name:"UserHeader",props:{user:null},setup(e){const t=e,{user:n}=(0,a.BK)(t),I=(0,l.o)(),R=(0,r.Fl)((()=>I.getters[s.YN.GETTERS.AUTH_USER_PROFILE]));return(e,t)=>{const s=(0,r.up)("Distance");return(0,r.wg)(),(0,r.iD)("div",c,[(0,r.Wm)(i.Z,{user:(0,a.SU)(n)},null,8,["user"]),(0,r._)("div",u,[(0,r._)("div",m,(0,o.zw)((0,a.SU)(n).username),1),(0,r._)("div",d,[(0,r._)("div",E,[(0,r._)("span",S,(0,o.zw)((0,a.SU)(n).nb_workouts),1),(0,r._)("span",_,(0,o.zw)(e.$t("workouts.WORKOUT",(0,a.SU)(n).nb_workouts)),1)]),(0,r._)("div",T,[(0,r.Wm)(s,{distance:(0,a.SU)(n).total_distance,unitFrom:"km",digits:0,displayUnit:!1,useImperialUnits:(0,a.SU)(R).imperial_units},null,8,["distance","useImperialUnits"]),(0,r._)("span",p,(0,o.zw)((0,a.SU)(R).imperial_units?"miles":"km"),1)]),(0,r._)("div",A,[(0,r._)("span",O,(0,o.zw)((0,a.SU)(n).nb_sports),1),(0,r._)("span",z,(0,o.zw)(e.$t("workouts.SPORT",(0,a.SU)(n).nb_sports)),1)])])])])}}}),R=n(3744);const g=(0,R.Z)(I,[["__scopeId","data-v-20291951"]]);var N=g},1585:function(e,t,n){"use strict";n.d(t,{Z:function(){return w}});n(7658);var r=n(6252),a=n(2262),o=n(3577),i=n(9963),s=n(6761),l=n(5801),c=n(9917),u=n(6558),m=n(6287);const d={id:"user-infos",class:"description-list"},E={key:1,class:"info-box success-message"},S={key:4,class:"email-form form-box"},_={class:"form-items",for:"email"},T={class:"form-items",for:"email"},p={class:"form-buttons"},A={class:"confirm",type:"submit"},O=["onClick"],z={key:5},I={class:"user-bio"},R={key:0,class:"profile-buttons"},g=["onClick"],N={key:1,class:"profile-buttons"};var U=(0,r.aZ)({__name:"UserInfos",props:{user:null,fromAdmin:{type:Boolean,default:!1}},setup(e){const t=e,n=(0,c.o)(),{user:U,fromAdmin:h}=(0,a.BK)(t),C=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.LANGUAGE])),w=(0,r.Fl)((()=>n.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),D=(0,r.Fl)((()=>t.user.created_at?(0,u.p6)(t.user.created_at,w.value.timezone,w.value.date_format):"")),v=(0,r.Fl)((()=>t.user.birth_date?(0,s.Z)(new Date(t.user.birth_date),`${(0,u.mh)(w.value.date_format,C.value)}`,{locale:m.v1[C.value]}):"")),f=(0,r.Fl)((()=>n.getters[l.RT.GETTERS.USERS_IS_SUCCESS])),P=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),k=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.APP_CONFIG])),L=(0,a.iH)(""),M=(0,a.iH)(!1),b=(0,a.iH)(!1),y=(0,a.iH)(""),G=(0,a.iH)("");function F(e){L.value=e,""!==e&&n.commit(l.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1)}function W(e){n.dispatch(l.RT.ACTIONS.DELETE_USER_ACCOUNT,{username:e})}function B(e){G.value="password-reset",n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,resetPassword:!0})}function K(e){n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,activate:!0})}function Y(){Z(),y.value=U.value.email_to_confirm?U.value.email_to_confirm:"",b.value=!0,G.value="email-update"}function x(){y.value="",b.value=!1}function H(e){n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,new_email:y.value})}function Z(){n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(l.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1),G.value=""}return(0,r.Ah)((()=>Z())),(0,r.YP)((()=>f.value),(e=>{e&&(F(""),x())})),(e,t)=>{const n=(0,r.up)("Modal"),s=(0,r.up)("AlertMessage"),l=(0,r.up)("ErrorMessage");return(0,r.wg)(),(0,r.iD)("div",d,[L.value?((0,r.wg)(),(0,r.j4)(n,{key:0,title:e.$t("common.CONFIRMATION"),message:"delete"===L.value?"admin.CONFIRM_USER_ACCOUNT_DELETION":"admin.CONFIRM_USER_PASSWORD_RESET",strongMessage:(0,a.SU)(U).username,onConfirmAction:t[0]||(t[0]=e=>"delete"===L.value?W((0,a.SU)(U).username):B((0,a.SU)(U).username)),onCancelAction:t[1]||(t[1]=e=>F(""))},null,8,["title","message","strongMessage"])):(0,r.kq)("",!0),(0,a.SU)(f)?((0,r.wg)(),(0,r.iD)("div",E,(0,o.zw)(e.$t(`admin.${"password-reset"===G.value?"PASSWORD_RESET":"USER_EMAIL_UPDATE"}_SUCCESSFUL`)),1)):(0,r.kq)("",!0),(0,a.SU)(U).is_active?(0,r.kq)("",!0):((0,r.wg)(),(0,r.j4)(s,{key:2,message:"user.THIS_USER_ACCOUNT_IS_INACTIVE"})),(0,a.SU)(P)?((0,r.wg)(),(0,r.j4)(l,{key:3,message:(0,a.SU)(P)},null,8,["message"])):(0,r.kq)("",!0),b.value?((0,r.wg)(),(0,r.iD)("div",S,[(0,r._)("form",{class:(0,o.C_)({errors:M.value}),onSubmit:t[4]||(t[4]=(0,i.iM)((e=>H((0,a.SU)(U).username)),["prevent"]))},[(0,r._)("label",_,[(0,r.Uk)((0,o.zw)(e.$t("admin.CURRENT_EMAIL"))+" ",1),(0,r.wy)((0,r._)("input",{id:"email",type:"email","onUpdate:modelValue":t[2]||(t[2]=e=>(0,a.SU)(U).email=e),disabled:""},null,512),[[i.nr,(0,a.SU)(U).email]])]),(0,r._)("label",T,[(0,r.Uk)((0,o.zw)(e.$t("admin.NEW_EMAIL"))+"* ",1),(0,r.wy)((0,r._)("input",{id:"new-email",type:"email",required:"","onUpdate:modelValue":t[3]||(t[3]=e=>y.value=e)},null,512),[[i.nr,y.value]])]),(0,r._)("div",p,[(0,r._)("button",A,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,r._)("button",{class:"cancel",onClick:(0,i.iM)(x,["prevent"])},(0,o.zw)(e.$t("buttons.CANCEL")),9,O)])],34)])):((0,r.wg)(),(0,r.iD)("div",z,[(0,r._)("dl",null,[(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(D)),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.FIRST_NAME"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(U).first_name),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.LAST_NAME"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(U).last_name),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.BIRTH_DATE"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(v)),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.LOCATION"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(U).location),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.BIO"))+":",1),(0,r._)("dd",I,(0,o.zw)((0,a.SU)(U).bio),1)]),(0,a.SU)(h)?((0,r.wg)(),(0,r.iD)("div",R,[(0,a.SU)(w).username!==(0,a.SU)(U).username?((0,r.wg)(),(0,r.iD)("button",{key:0,class:"danger",onClick:t[5]||(t[5]=(0,i.iM)((e=>F("delete")),["prevent"]))},(0,o.zw)(e.$t("admin.DELETE_USER")),1)):(0,r.kq)("",!0),(0,a.SU)(U).is_active?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("button",{key:1,onClick:t[6]||(t[6]=(0,i.iM)((e=>K((0,a.SU)(U).username)),["prevent"]))},(0,o.zw)(e.$t("admin.ACTIVATE_USER_ACCOUNT")),1)),(0,a.SU)(w).username!==(0,a.SU)(U).username?((0,r.wg)(),(0,r.iD)("button",{key:2,onClick:(0,i.iM)(Y,["prevent"])},(0,o.zw)(e.$t("admin.UPDATE_USER_EMAIL")),9,g)):(0,r.kq)("",!0),(0,a.SU)(w).username!==(0,a.SU)(U).username&&(0,a.SU)(k).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("button",{key:3,onClick:t[7]||(t[7]=(0,i.iM)((e=>F("reset")),["prevent"]))},(0,o.zw)(e.$t("admin.RESET_USER_PASSWORD")),1)):(0,r.kq)("",!0),(0,r._)("button",{onClick:t[8]||(t[8]=t=>e.$router.go(-1))},(0,o.zw)(e.$t("buttons.BACK")),1)])):((0,r.wg)(),(0,r.iD)("div",N,[(0,r._)("button",{onClick:t[9]||(t[9]=t=>e.$router.push("/profile/edit"))},(0,o.zw)(e.$t("user.PROFILE.EDIT")),1),(0,r._)("button",{onClick:t[10]||(t[10]=t=>e.$router.push("/"))},(0,o.zw)(e.$t("common.HOME")),1)]))]))])}}}),h=n(3744);const C=(0,h.Z)(U,[["__scopeId","data-v-217519af"]]);var w=C},2411:function(e,t,n){"use strict";n.d(t,{Z:function(){return v}});var r=n(6252),a=n(3577),o=n(2262),i=n(9963),s=n(2201),l=n(8403),c=n(5801),u=n(9917);const m=e=>((0,r.dD)("data-v-b3c885de"),e=e(),(0,r.Cn)(),e),d={id:"user-form"},E={key:2,class:"info-box success-message"},S={class:"form-items"},_=["disabled","placeholder"],T={key:1,class:"form-info"},p=m((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),A=["disabled","placeholder"],O={key:3,class:"form-info"},z=m((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),I=["disabled"],R={key:3},g={key:0},N={key:4},U={class:"account"},h={key:5};var C=(0,r.aZ)({__name:"UserAuthForm",props:{action:null,token:{default:""}},setup(e){const t=e,n=(0,s.yj)(),m=(0,u.o)(),{action:C}=(0,o.BK)(t),w=(0,o.qj)({username:"",email:"",password:""}),D=(0,r.Fl)((()=>G(t.action))),v=(0,r.Fl)((()=>m.getters[c.SY.GETTERS.ERROR_MESSAGES])),f=(0,r.Fl)((()=>m.getters[c.YN.GETTERS.IS_REGISTRATION_SUCCESS])),P=(0,r.Fl)((()=>m.getters[c.YN.GETTERS.IS_SUCCESS])),k=(0,r.Fl)((()=>m.getters[c.SY.GETTERS.APP_CONFIG])),L=(0,r.Fl)((()=>m.getters[c.SY.GETTERS.LANGUAGE])),M=(0,r.Fl)((()=>"register"===t.action&&!k.value.is_registration_enabled)),b=(0,r.Fl)((()=>["reset-request","account-confirmation-resend"].includes(t.action)&&!k.value.is_email_sending_enabled)),y=(0,o.iH)(!1);function G(e){switch(e){case"reset-request":case"reset":return"buttons.SUBMIT";default:return`buttons.${t.action.toUpperCase()}`}}function F(){y.value=!0}function W(e){w.password=e}function B(e){switch(e){case"reset":return t.token?m.dispatch(c.YN.ACTIONS.RESET_USER_PASSWORD,{password:w.password,token:t.token}):m.commit(c.SY.MUTATIONS.SET_ERROR_MESSAGES,"user.INVALID_TOKEN");case"reset-request":return m.dispatch(c.YN.ACTIONS.SEND_PASSWORD_RESET_REQUEST,{email:w.email});case"account-confirmation-resend":return m.dispatch(c.YN.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL,{email:w.email});default:w["language"]=L.value,m.dispatch(c.YN.ACTIONS.LOGIN_OR_REGISTER,{actionType:e,formData:w,redirectUrl:n.query.from})}}function K(){w.username="",w.email="",w.password=""}return(0,r.Ah)((()=>m.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(0,r.YP)((()=>n.path),(async()=>{m.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),m.commit(c.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),m.commit(c.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),y.value=!1,K()})),(e,t)=>{const n=(0,r.up)("AlertMessage"),s=(0,r.up)("router-link"),c=(0,r.up)("ErrorMessage");return(0,r.wg)(),(0,r.iD)("div",{id:"user-auth-form",class:(0,a.C_)(`${["reset","reset-request"].includes((0,o.SU)(C))?(0,o.SU)(C):"user-form"}`)},[(0,r._)("div",d,[(0,r._)("div",{class:(0,a.C_)(["form-box",{disabled:(0,o.SU)(M)}])},[(0,o.SU)(M)?((0,r.wg)(),(0,r.j4)(n,{key:0,message:"user.REGISTER_DISABLED"})):(0,r.kq)("",!0),(0,o.SU)(b)?((0,r.wg)(),(0,r.j4)(n,{key:1,message:"admin.EMAIL_SENDING_DISABLED"})):(0,r.kq)("",!0),(0,o.SU)(P)||(0,o.SU)(f)?((0,r.wg)(),(0,r.iD)("div",E,(0,a.zw)(e.$t("user.PROFILE.SUCCESSFUL_"+((0,o.SU)(f)?"REGISTRATION"+((0,o.SU)(k).is_email_sending_enabled?"_WITH_EMAIL":""):"UPDATE"))),1)):(0,r.kq)("",!0),(0,r._)("form",{class:(0,a.C_)({errors:y.value}),onSubmit:t[2]||(t[2]=(0,i.iM)((e=>B((0,o.SU)(C))),["prevent"]))},[(0,r._)("div",S,["register"===(0,o.SU)(C)?(0,r.wy)(((0,r.wg)(),(0,r.iD)("input",{key:0,id:"username",disabled:(0,o.SU)(M),required:"",pattern:"[a-zA-Z0-9_]+",minlength:"3",maxlength:"30",onInvalid:F,"onUpdate:modelValue":t[0]||(t[0]=e=>w.username=e),placeholder:e.$t("user.USERNAME")},null,40,_)),[[i.nr,w.username]]):(0,r.kq)("",!0),"register"===(0,o.SU)(C)?((0,r.wg)(),(0,r.iD)("div",T,[p,(0,r.Uk)(" "+(0,a.zw)(e.$t("user.USERNAME_INFO")),1)])):(0,r.kq)("",!0),"reset"!==(0,o.SU)(C)?(0,r.wy)(((0,r.wg)(),(0,r.iD)("input",{key:2,id:"email",disabled:(0,o.SU)(M)||(0,o.SU)(b),required:"",onInvalid:F,type:"email","onUpdate:modelValue":t[1]||(t[1]=e=>w.email=e),placeholder:e.$t("user.EMAIL")},null,40,A)),[[i.nr,w.email]]):(0,r.kq)("",!0),["reset-request","register","account-confirmation-resend"].includes((0,o.SU)(C))?((0,r.wg)(),(0,r.iD)("div",O,[z,(0,r.Uk)(" "+(0,a.zw)(e.$t("user.EMAIL_INFO")),1)])):(0,r.kq)("",!0),["account-confirmation-resend","reset-request"].includes((0,o.SU)(C))?(0,r.kq)("",!0):((0,r.wg)(),(0,r.j4)(l.Z,{key:4,disabled:(0,o.SU)(M),required:!0,placeholder:"reset"===(0,o.SU)(C)?e.$t("user.ENTER_PASSWORD"):e.$t("user.PASSWORD"),password:w.password,checkStrength:["reset","register"].includes((0,o.SU)(C)),onUpdatePassword:W,onPasswordError:F},null,8,["disabled","placeholder","password","checkStrength"]))]),(0,r._)("button",{type:"submit",disabled:(0,o.SU)(M)||(0,o.SU)(b)},(0,a.zw)(e.$t((0,o.SU)(D))),9,I)],34),"login"===(0,o.SU)(C)?((0,r.wg)(),(0,r.iD)("div",R,[(0,r.Wm)(s,{class:"links",to:"/register"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("user.REGISTER")),1)])),_:1}),(0,o.SU)(k).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("span",g,"-")):(0,r.kq)("",!0),(0,o.SU)(k).is_email_sending_enabled?((0,r.wg)(),(0,r.j4)(s,{key:1,class:"links",to:"/password-reset/request"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("user.PASSWORD_FORGOTTEN")),1)])),_:1})):(0,r.kq)("",!0)])):(0,r.kq)("",!0),"register"===(0,o.SU)(C)?((0,r.wg)(),(0,r.iD)("div",N,[(0,r._)("span",U,(0,a.zw)(e.$t("user.ALREADY_HAVE_ACCOUNT")),1),(0,r.Wm)(s,{class:"links",to:"/login"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("user.LOGIN")),1)])),_:1})])):(0,r.kq)("",!0),["login","register"].includes((0,o.SU)(C))&&(0,o.SU)(k).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("div",h,[(0,r.Wm)(s,{class:"links",to:"/account-confirmation/resend"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("user.ACCOUNT_CONFIRMATION_NOT_RECEIVED")),1)])),_:1})])):(0,r.kq)("",!0),(0,o.SU)(v)?((0,r.wg)(),(0,r.j4)(c,{key:6,message:(0,o.SU)(v)},null,8,["message"])):(0,r.kq)("",!0)],2)])],2)}}}),w=n(3744);const D=(0,w.Z)(C,[["__scopeId","data-v-b3c885de"]]);var v=D},6595:function(e,t,n){"use strict";n.d(t,{Z:function(){return E}});var r=n(6252),a=n(2262),o=n(2024);const i={class:"user-picture"},s=["alt","src"],l={key:1,class:"no-picture"},c=(0,r._)("i",{class:"fa fa-user-circle-o","aria-hidden":"true"},null,-1),u=[c];var m=(0,r.aZ)({__name:"UserPicture",props:{user:null},setup(e){const t=e,n=(0,r.Fl)((()=>t.user.picture?`${(0,o.k)()}users/${t.user.username}/picture?${Date.now()}`:""));return(e,t)=>((0,r.wg)(),(0,r.iD)("div",i,[""!==(0,a.SU)(n)?((0,r.wg)(),(0,r.iD)("img",{key:0,class:"profile-user-img",alt:e.$t("user.USER_PICTURE"),src:(0,a.SU)(n)},null,8,s)):((0,r.wg)(),(0,r.iD)("div",l,u))]))}});const d=m;var E=d},5630:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(6252),a=n(3577);const o={class:"no-workouts box"};function i(e,t){const n=(0,r.up)("router-link");return(0,r.wg)(),(0,r.iD)("div",o,[(0,r._)("div",null,[(0,r.Uk)((0,a.zw)(e.$t("workouts.NO_WORKOUTS"))+" ",1),(0,r.Wm)(n,{to:"/workouts/add"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("workouts.UPLOAD_FIRST_WORKOUT")),1)])),_:1})])])}var s=n(3744);const l={},c=(0,s.Z)(l,[["render",i],["__scopeId","data-v-4b4d15fb"]]);var u=c},4612:function(e,t,n){var r={"./de/de.ts":9923,"./en/en.ts":8757,"./fr/fr.ts":6625,"./it/it.ts":4334,"./nb/nb.ts":8891,"./nl/nl.ts":701};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=4612}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var o=t[r]={exports:{}};return e[r].call(o.exports,o,o.exports,n),o.exports}n.m=e,function(){var e=[];n.O=function(t,r,a,o){if(!r){var i=1/0;for(u=0;u=o)&&Object.keys(n.O).every((function(e){return n.O[e](r[l])}))?r.splice(l--,1):(s=!1,o0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[r,a,o]}}(),function(){n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,{a:t}),t}}(),function(){var e,t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};n.t=function(r,a){if(1&a&&(r=this(r)),8&a)return r;if("object"===typeof r&&r){if(4&a&&r.__esModule)return r;if(16&a&&"function"===typeof r.then)return r}var o=Object.create(null);n.r(o);var i={};e=e||[null,t({}),t([]),t(t)];for(var s=2&a&&r;"object"==typeof s&&!~e.indexOf(s);s=t(s))Object.getOwnPropertyNames(s).forEach((function(e){i[e]=function(){return r[e]}}));return i["default"]=function(){return r},n.d(o,i),o}}(),function(){n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}}(),function(){n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce((function(t,r){return n.f[r](e,t),t}),[]))}}(),function(){n.u=function(e){return"static/js/"+({24:"reset",193:"statistics",222:"password.fr",261:"password.en",328:"admin",401:"workouts",802:"password.it",845:"profile",881:"password",940:"password.de"}[e]||e)+"."+{24:"a4de7412",93:"7582eaa7",193:"99fc9524",222:"7161a5de",243:"e034bc01",261:"6a36a15a",328:"443044dd",401:"143c4328",431:"6f0a9946",633:"3c9401e6",802:"eac74305",845:"d9355913",858:"5db37332",881:"f10cfc3b",940:"c02a3162"}[e]+".js"}}(),function(){n.miniCssF=function(e){return"static/css/"+{24:"reset",193:"statistics",328:"admin",401:"workouts",845:"profile"}[e]+"."+{24:"e2527ec6",193:"40e24e75",328:"73df498d",401:"b4a2d0f0",845:"9f83730d"}[e]+".css"}}(),function(){n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="fittrackee_client:";n.l=function(r,a,o,i){if(e[r])e[r].push(a);else{var s,l;if(void 0!==o)for(var c=document.getElementsByTagName("script"),u=0;u {\n const controller = new AbortController()\n config.signal = controller.signal\n const requestKey = removeRequestIfPending(config)\n pendingRequests.set(requestKey, controller)\n\n const authToken = store.getters[AUTH_USER_STORE.GETTERS.AUTH_TOKEN]\n if (authToken) {\n const auth = `Bearer ${authToken}`\n if (config.headers && config.headers.Authorization !== auth) {\n config.headers.Authorization = `Bearer ${authToken}`\n }\n }\n return config\n },\n (error) => Promise.reject(error)\n)\n\nauthApi.interceptors.response.use(\n (response) => {\n removeRequestIfPending(response.config)\n return response\n },\n (error) => {\n if (error.message !== 'canceled') {\n removeRequestIfPending(error.response.config)\n }\n return Promise.reject(error)\n }\n)\n\nexport default authApi\n","import { AxiosRequestConfig } from 'axios'\n\nexport const pendingRequests = new Map()\n\nconst generateRequestKey = (config: AxiosRequestConfig): string => {\n const { method, url, params = {}, data = {} } = config\n return [method, url, JSON.stringify(params), JSON.stringify(data)].join('')\n}\n\nexport const removeRequestIfPending = (config: AxiosRequestConfig): string => {\n const requestKey = generateRequestKey(config)\n if (pendingRequests.has(requestKey)) {\n const controller = pendingRequests.get(requestKey) || {}\n controller?.abort()\n pendingRequests.delete(requestKey)\n }\n return requestKey\n}\n","import { createI18n, LocaleMessages, VueMessageType } from 'vue-i18n'\n\n/**\n * Load locale messages\n *\n * The loaded `JSON` locale messages is pre-compiled by `@intlify/vue-i18n-loader`, which is integrated into `vue-cli-plugin-i18n`.\n * See: https://github.com/intlify/vue-i18n-loader#rocket-i18n-resource-pre-compilation\n */\nconst disabledLanguages = ['nb'] // to update after translations release\n\nfunction loadLocaleMessages(): Record> {\n const locales = require.context('./locales', true, /[A-Za-z0-9-_,\\s]+\\.ts$/i)\n const messages: Record> = {}\n locales.keys().forEach((key) => {\n const matched = key.match(/([A-Za-z0-9-_]+)\\./i)\n if (\n matched &&\n matched.length > 1 &&\n !disabledLanguages.includes(matched[1])\n ) {\n const locale = matched[1]\n messages[locale] = locales(key).default\n }\n })\n return messages\n}\n\nexport default createI18n({\n legacy: false,\n locale: 'en',\n fallbackLocale: 'en',\n globalInjection: true,\n messages: loadLocaleMessages(),\n})\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontaktiere den Administrator\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee ist ein selbst-gehosteter Outdoor-Aktivitäts-Tracker.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"unter \", _interpolate(_list(0)), \" Lizenz \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quellcode\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktion\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktiviere Konto\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktiv\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hinzufügen/Entfernen von Administratorrechten, Lösche Nutzerkonto.\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontakt-E-Mail des Administrators\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Dateianzahl im zip Archiv\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wenn 0, gibt es keine Registrierungslimitierung..\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Anzahl aktiver Nutzer\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"keine Kontakt-E-Mail\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Größe der hochgeladenen Dateien (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungskonfiguration\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Größe des zip Archives (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurück zu Admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Möchtest du wirklich das \", _interpolate(_list(0)), \" Konto löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Möchtest du wirklich das \", _interpolate(_list(0)), \" Passwort zurücksetzen?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktuelle E-Mail\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lösche Nutzer\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail-Versand ist deaktiviert.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktivieren/Deaktivieren von Sportarten.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neue E-Mail\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Das wasswort wurde zurückgesetzt.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierung ist derzeit deaktiviert.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierung ist derzeit aktiviert.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort zurücksetzen\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktiv\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trainings existieren\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Titel\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportarten Administration\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktualisiere Anwemdungskonfiguration (maximale Anzahl an registrierten Nutzern, maximale Dateigröße).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktualisiere E-Mail\"])},\n \"USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nutzer\"])},\n \"USERS\": {\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Adminstatus\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierungsdatum\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accountstatus\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nutzername\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trainingsanzahl\"])}\n }\n },\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administratorrechte hinzufügen\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administratorrechte entfernen\"])}\n }\n },\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die E-Mail Adresse wurde aktualisiert.\"])}\n}","export default {\n \"ERROR\": {\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Netzwerkfehler.\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mindestens eine Datei im ZIP-Archiv überschreitet das Größenlimit, bitte überprüfe das Archiv.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail: Eine gültige E-Mail muss angegeben werden.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler beim Einlesen der GPX-Datei\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler bei der GPX-Verarbeitung.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler beim Abrufen der Konfiguration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler beim Aktualisieren der Konfiguration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Die Registrierung ist deaktiviert.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dateierweiterung ist nicht erlaubt.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Datei ist größer als erlaubt.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültige Anmeldedaten.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die bereitgestellten Daten sind ungültig.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültiges Token, bitte erneut anmelden.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültiges Token, bitte erneut anmelden.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die neue E-Mail muss sich von der aktuellen E-Mail unterscheiden\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Datei angegeben.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Datei ausgewählt.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort: Passwort und Passwortbestätigung stimmen nicht überein.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebe ein gültiges Authentifizierungstoken an.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Signatur ist abgelaufen. Bitte melde dich erneut an.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Es tut mir leid, der Benutzername ist schon vergeben.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportart existiert nicht.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierung erfolgreich.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Anzahl der Dateien im Archiv überschreitet die Begrenzung.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Der Nutzer existiert nicht.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Um den Administrator zu kontaktieren, muss eine gültige E-Mail-Adresse angegeben werden\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Du kannst Dein Konto nicht löschen, da kein anderer Nutzer hat Administratorrechte besitzt.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Du hast keine Berechtigung.\"])}\n },\n \"PAGINATION\": {\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorhergehende\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nächste\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestätigungs-E-Mail erneut senden\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Autorisieren\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurück\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abbrechen\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter löschen\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mein Konto löschen\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deaktivieren\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bearbeiten\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktivieren\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmelden\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nein\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrieren\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurücksetzen\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Speichern\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ja\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Über\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestätigung\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontakt\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Tag\"]), _normalize([\"Tage\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Angezeigt\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dokumentation (en)\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hier\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Versteckt\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Startseite\"])},\n \"SELECTS\": {\n \"ORDER\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aufsteigend\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"absteigend\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sortieren\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sortiert nach\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pro Seite\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Insgesamt\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dieser Monat\"])}\n}","export default {\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bei der Anwendung scheinen einige Probleme aufgetreten zu sein.
                                                                                Bitte versuche es später noch einmal oder kontaktiere den Administrator.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Seite nicht gefunden\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training nicht gefunden\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etwas lief schief\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.\"])}\n}","export default {\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eine neue OAuth2-Anwendung hinzufügen\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ID\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geheimnis\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungsbeschreibung\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erstellt am\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungsname\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weiterleitungs-URL\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geltungsbereich\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf die Anwendungskonfiguration\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Lesezugriff auf auth-Endpunkte\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf auth-Endpunkte\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Lesezugriff auf users-Endpunkte\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf users-Endpunkte\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Lesezugriff auf workouts-Endpunkte\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf workouts-Endpunkte\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungs-URL\"])}\n },\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth2-Anwendungen\"])},\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung erfolgreich erstellt. Stelle sicher, dass du das Geheimnis kopierst, du kannst es nicht erneut anzeigen.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bist sicher, dass du diese App löschen willst?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Die Anwendung \", _interpolate(_list(0)), \" fragt an:\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" den Zugriff auf deinen Account erlauben?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"in Zwischenablage kopieren\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung löschen\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung hinzufügen\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung wurde nicht gefunden!\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"keine Anwendungen\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"keine Beschreibung\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alle Tokens zurückrufen\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bist du sicher, dass du alle Tokens zurückrufen möchtest?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alle vorhandenen und vergebenen Tokens wurde zurückgerufen.\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Radfahren (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Radfahren (Pendeln)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Radfahren (Virtuell)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wandern\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountainbiken\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountainbiken (elektrisch)\"])}\n },\n \"Mountaineering\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bergsteigen\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rudern\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Laufen\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skifahren (Alpin)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skifahren (Langlauf)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schneeschuhe\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gehen\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistik\"])},\n \"TIME_FRAMES\": {\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monat\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Woche\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jahr\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hast du keine Anweisungen erhalten?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prüfe deine E-Mail. Eine neue Bestätigungs-E-Mail wurde an die angegebene Adresse geschickt.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hast du bereits ein Konto?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Möchtest du dein Konto wirklich löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktuelles Passwort\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebe eine gültige E-Mail-Adresse an.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebe ein Passwort ein\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nach Benutzernamen filtern\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort verbergen\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültiges Token, bitte fordere ein neues Passworts an.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sprache\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmeldung\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abmelden\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmelden\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neues Passwort\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Nutzer gefunden.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort vergessen?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mindestens 8 Zeichen sind erforderlich.\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort zurücksetzen\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prüfe Deine E-Mail. Wenn Deine Adresse in der Datenbank enthalten ist, wirst du eine E-Mail mit einem Link erhalten um Dein Passwort zurückzusetzen.\"])},\n \"PASSWORD_STRENGTH\": {\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mittel\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gut\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwortstärke\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"SUGGESTIONS\": {\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schreibe einige, aber nicht alle Buchstaben groß.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Füge weitere weniger gebräuchliche Wörter hinzu.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide Jahreszahlen, die mit Dir in Verbindung gebracht werden.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schreibe mehr als nur den ersten Buchstaben groß.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide Daten und Jahreszahlen, die mit Dir in Verbindung gebracht werden.\"])},\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide vorhersehbare Buchstabenersetzungen wie \", \"@\", \" für a.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwende längere Tastaturmuster und ändere mehrmals die Schreibrichtung.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Du kannst sichere Passwörter erstellen, ohne Symbole, Zahlen oder Großbuchstaben zu verwenden.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wenn Sie dieses Passwort auch anderweitig verwenden, sollten Sie es ändern.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide Angabe von letzten Jahreszahlen.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide wiederholungen von Wörtern und Zeichen.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide umgekehrte Schreibweisen gebräuchlicher Wörter.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide gebräuchliche Zeichenfolgen.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwenden Sie mehrere Wörter, aber vermeide gebräuchliche Ausdrücke.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"schwach\"])}\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Dein Passwort wurde aktualisiert. Klicke \", _interpolate(_list(0)), \" um dich anzumelden.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontoausgabe\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anstiegs-bezogene Daten (Aufnahmen, gesamt)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurück zum Profil\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Biographie\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geburtsdatum\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datumsanzeigeformat\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profil bearbeiten\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen ändern\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen für Sportarten ändern\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Bitte \", _interpolate(_list(0)), \" um Deine E-Mail Adresse nochmals zu ändern oder kontaktiere den Administrator\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erster Tag der Woche\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorname\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sprache\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nachname\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ort\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montag\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bildausgabe\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild entfernen\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild aktualisieren\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungsausgabe\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profil-Ausgabe\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierungsdatum\"])},\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktion\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Farbe\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vom Admin deaktiviert\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aktiv\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Titel\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geschwindigkeitsschwellenwert für Stopp\"])}\n },\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportarten-Einstellungsausgabe\"])},\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dein Konto wurde erfolgreich aktualisiert. Bitte prüfe Deine E-Mail um die neue E-Mail Adresse zu bestätigen.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dein Konto wurde erfolgreich erstellt.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ein Aktivierungslink für Dein Konto wurde an die angegebene E-Mail Adresse geschickt.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dein Konto wurde erfolgreich aktualisiert.\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sontag\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konto\"])},\n \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungen\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profil\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportarten\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zeitzone\"])},\n \"UNITS\": {\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperiales System (ft, mi, mph, °F)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einheiten für die Distanz\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metrisches System (m, km, m/s, °C)\"])}\n }\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrieren\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Entschuldigung, die Registrierung ist deaktiviert.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail zur Kontobestätigung erneut senden\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort zurücksetzen\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort anzeigen\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dieser Account ist inaktiv.\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nutzername\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"3 bis 30 Zeichen sind erforderlich, nur alphanumerische Zeichen und der Unterstrich _ sind erlaubt.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Benutzerbild\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training hinzufügen\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Analyse\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aufstieg\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durchschnittsgeschwindigkeit\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durchschn. Geschwindigkeit\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zurück zum Training\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datum\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abstieg\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zeige Filter\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Entfernung\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dauer\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training bearbeiten\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Höhe\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ende\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Von\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".gpx Datei\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"verberge Filter\"])},\n \"INVALID_ASCENT_OR_DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Beide Höhenwerte müssen angegeben werden und größer oder gleich 0 sein.\"])},\n \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Distanz muss größer als 0 sein\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Dauer muss größer als 0 Sekunden sein\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Letzte Trainings\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lade mehr Trainings\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"maximale Höhe\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maximale Dateianzahl\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maximalgröße\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Geschwindigkeit\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"minimale Höhe\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nächstes Segment\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nächstes Training\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmerkungen\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Daten aus gpx, ohne Bereinigung\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Datei angegeben\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"enthält keinen Ordner\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Karte\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kein nächstes Segment\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kein nächstes Training\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Anmerkungen\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kein vorheriges Segment\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kein vorheriges Training\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Aufzeichnungen.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Trainings.\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pausen\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorheriges Segment\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorheriges Training\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Aufzeichnung\"]), _normalize([\"Aufzeichnungen\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durchschn. Geschwindigkeit\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weiteste Entfernung\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Höchster Anstieg\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Längste Dauer\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Geschwindigkeit\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"verbleibende Zeichen\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Segment\"]), _normalize([\"Segmente\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geschwindigkeit\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Sportart\"]), _normalize([\"Sportarten\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start und Ziel\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Höhenachse bei Null starten\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Titel\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bis\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gesamtdauer\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Füge erstes Training hinzu!\"])},\n \"WEATHER\": {\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"klarer Tag\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"klare Nacht\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wolkig\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nebel\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"teilweise bewölkter Tag\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"teilweise bewölkte Nacht\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Regen\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schneeregen\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schnee\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wind\"])}\n },\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Luftfeuchtigkeit\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Temperatur\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wind\"])},\n \"WIND_DIRECTIONS\": {\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OSO\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SO\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSO\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WSW\"])}\n }\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ohne .gpx Datei\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mit .gpx Datei\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Training\"]), _normalize([\"Trainings\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trainingsdatum\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bist du sicher, dass du dieses Training löschen möchtest?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".zip Datei\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"oder .zip Datei mit .gpx Dateien\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contact the administrator\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee is a self-hosted outdoor activity tracker.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"under \", _interpolate(_list(0)), \" license \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Source code\"])},\n \"WEATHER_DATA_FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weather data from:\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activate account\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Active\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add/remove admin rights, delete user account.\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administrator email for contact\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. files of zip archive\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If 0, no limitation on registration.\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. number of active users\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no contact email\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. size of uploaded files (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application configuration\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. size of zip archive (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Are you sure you want to delete \", _interpolate(_list(0)), \" account? All data will be deleted, this cannot be undone.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Are you sure you want to reset \", _interpolate(_list(0)), \" password?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Current email\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete user\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email sending is disabled.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable/disable sports.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New email\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The password has been reset.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration is currently disabled.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration is currently enabled.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset password\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Active\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workouts exist\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sports administration\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update application configuration (maximum number of registered users, maximum files size).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"user\"]), _normalize([\"users\"])])},\n \"USERS\": {\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"admin status\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"registration date\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"account status\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"username\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout count\"])}\n }\n },\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add admin rights\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove admin rights\"])}\n }\n },\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The email address has been updated.\"])}\n}","export default {\n \"ERROR\": {\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Network Error.\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"At least one file in zip archive exceeds size limit, please check the archive.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email: valid email must be provided.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error during gpx file parsing.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error during gpx processing.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error on getting configuration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error when updating configuration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, please try again or contact the administrator.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, registration is disabled.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File extension not allowed.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File size is greater than the allowed size.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid credentials.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Provided data are invalid.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The new email must be different than curent email\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No file provided.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No selected file.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password: password and password confirmation don't match.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Provide a valid auth token.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expired. Please log in again.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, that username is already taken.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sport does not exist.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Successfully registered.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The number of files in the archive exceeds the limit.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User does not exist.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A valid email must be provided for administrator contact\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You can not delete your account, no other user has admin rights.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You do not have permissions.\"])}\n },\n \"PAGINATION\": {\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"next\"])},\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"previous\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resend confirmation email\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Authorize\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clear filters\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete my account\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disable\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Yes\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"about\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contact\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"day\"]), _normalize([\"days\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Displayed\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentation\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"here\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hidden\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home\"])},\n \"SELECTS\": {\n \"ORDER\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascending\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descending\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sort\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"order by\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This month\"])}\n}","export default {\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The application seems to have encountered some issues.
                                                                                Please try again later or contact the administrator.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Page not found\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Workout not found\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Something went wrong\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])}\n}","export default {\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add a new OAuth2 application\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Id\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Secret\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application description\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Issue at\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application name\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Redirect URL\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scope\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to application configuration.\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants read access to auth endpoints.\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to auth endpoints.\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants read access to users endpoints.\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to users endpoints.\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants read access to workouts endpoints.\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to workouts endpoints.\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application URL\"])}\n },\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth2 applications\"])},\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application created successfully. Make sure to copy the secret now, it won't show up again.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete this app?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"The application \", _interpolate(_list(0)), \" is requesting:\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Authorize \", _interpolate(_list(0)), \" to use your account?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"copy to the clipboard\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete application\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add an application\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application not found!\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no applications\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no description\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revoke all tokens\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to revoke all tokens?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"All existing associated tokens have been revoked.\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Transport)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Virtual)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hiking\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking (Electric)\"])}\n },\n \"Mountaineering\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountaineering\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rowing\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Running\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Alpine)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Cross Country)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Snowshoes\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Walking\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistics\"])},\n \"TIME_FRAMES\": {\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"month\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"week\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"year\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Didn't received instructions?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email. A new confirmation email has been sent to the address provided.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Already have an account?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete your account? All data will be deleted, this cannot be undone\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Current password\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a valid email address.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a password\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter on username\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hide password\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please request a new password reset.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Login\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logout\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"log in\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New password\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No users found.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forgot password?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"At least 8 characters required.\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password reset\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email. If your address is in our database, you'll received an email with a link to reset your password.\"])},\n \"PASSWORD_STRENGTH\": {\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"good\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"password strength\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"strong\"])},\n \"SUGGESTIONS\": {\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Capitalize some, but not all letters.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add more words that are less common.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid years that are associated with you.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Capitalize more than the first letter.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid dates and years that are associated with you.\"])},\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid predictable letter substitutions like \", \"@\", \" for a.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use longer keyboard patterns and change typing direction multiple times.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You can create strong passwords without using symbols, numbers, or uppercase letters.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If you use this password elsewhere, you should change it.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid recent years.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid repeated words and characters.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid reversed spellings of common words.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid common character sequences.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use multiple words, but avoid common phrases.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"weak\"])}\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Your password have been updated. Click \", _interpolate(_list(0)), \" to log in.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account edition\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ascent-related data (records, total)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to profile\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Birth date\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date display format\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit profile\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit preferences\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit sports preferences\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Please \", _interpolate(_list(0)), \" to change your email address again or contact the administrator\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First day of week\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First name\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Last name\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Location\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monday\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture edition\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove picture\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update picture\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preferences edition\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile edition\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration date\"])},\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"action\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"color\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"disabled by admin\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"active\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"stopped speed threshold\"])}\n },\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sports preferences edition\"])},\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your account has been updated successfully. Please check your email to confirm your new email address.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your account has been created successfully.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A link to activate your account has been emailed to the address provided.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your account has been updated successfully.\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sunday\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"account\"])},\n \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"apps\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"picture\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"preferences\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profile\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timezone\"])},\n \"UNITS\": {\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperial system (ft, mi, mph, °F)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Units for distance\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metric system (m, km, m/s, °C)\"])}\n }\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, registration is disabled.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resend account confirmation email\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset your password\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"show password\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This user account is inactive.\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Username\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"3 to 30 characters required, only alphanumeric characters and the underscore character \\\"_\\\" allowed.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"user picture\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add a workout\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analysis\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascent\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average speed\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ave. speed\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"back to workout\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descent\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"display filters\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distance\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"duration\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit the workout\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"elevation\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"end\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"from\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".gpx file\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hide filters\"])},\n \"INVALID_ASCENT_OR_DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Both elevation values must be provided and be greater than or equal to 0.\"])},\n \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The distance must be greater than 0\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The duration must be greater than 0 seconds\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Latest workouts\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load more workouts\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. altitude\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max files\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max size\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. speed\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"min. altitude\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Next workout\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data from gpx, without any cleaning\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No file provided\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no folder inside\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No map\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next workout\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous segment\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous workout\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No workouts.\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous segment\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous workout\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ave. speed\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Farthest distance\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Highest ascent\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Longest duration\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. speed\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"remaining characters\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"speed\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start and finish\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start elevation axis at zero\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"title\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"to\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"total duration\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload one!\"])},\n \"WEATHER\": {\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear day\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear night\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cloudy\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fog\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy day\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy night\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"rain\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sleet\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"snow\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])}\n },\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"humidity\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"temperature\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])},\n \"WIND_DIRECTIONS\": {\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WSW\"])}\n }\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"without .gpx file\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"with .gpx file\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"workout\"]), _normalize([\"workouts\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout date\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete this workout?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".zip file\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"or .zip file containing .gpx files\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contacter l'administrateur\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee est un tracker d'activités sportives (en extérieur).\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"sous licence \", _interpolate(_list(0)), \" (en) \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Code source (en)\"])},\n \"WEATHER_DATA_FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Source des données météo :\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer le compte\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actif\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs.\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email de l'administrateur pour contact \"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre max. de fichiers dans une archive zip \"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si égal à 0, pas limite d'inscription\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre maximum d'utilisateurs actifs \"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"non renseigné\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille max. des fichiers (en Mo) \"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configuration de l'application\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille max. des archives zip (en Mo) \"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir à l'admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Êtes-vous sûr de vouloir supprimer le compte de l'utilisateur \", _interpolate(_list(0)), \" ? Toutes les données seront définitivement.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Êtes-vous sûr de vouloir réinitialiser le mot de passe de l'utilisateur \", _interpolate(_list(0)), \" ?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Adresse email actuelle\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer l'utilisateur\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'envoi d'emails est désactivé.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer/désactiver des sports.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nouvelle adresse email\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le mot de passe a été réinitialisé.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les inscriptions sont actuellement désactivées.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les inscriptions sont actuellement activées.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinit. le mot de passe\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actif\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"des séances existent\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration - Sports\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configurer l'application (nombre maximum d'utilisateurs inscrits, taille maximale des fichers).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Changer l'email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"utilisateur\"]), _normalize([\"utilisateurs\"])])},\n \"USERS\": {\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"status administrateur\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date d'inscription\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"statut du compte\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nom d'utilisateur\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nombre de séances\"])}\n }\n },\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter les droits d'admin\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retirer les droits d'admin\"])}\n }\n },\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'adresse email a été mise à jour.\"])}\n}","export default {\n \"ERROR\": {\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur réseau.\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Au moins un fichier de l'archive zip dépasse la taille maximale, veuillez vérifier l'archive.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Courriel : une adresse électronique valide doit être fournie.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de l'analyse du fichier.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors du traitement du fichier gpx.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la récupération de la configuration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la mise à jour de la configuration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur, veuillez réessayer ou contacter l'administrateur.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur, les inscriptions sont désactivées.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Extension de fichier non autorisée.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La taille du fichier est supérieure à la limite autorisée.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Identifiants invalides.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Données fournies incorrectes.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion invalide, merci de vous reconnecter.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion, merci de vous reconnecter.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La nouvelle addresse électronique doit être differente de l'adresse actuelle\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier sélectionné.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe : les mots de passe saisis sont différents.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Merci de fournir un jeton de connexion valide.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expirée. Merci de vous reconnecter.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, ce nom d'utilisateur est déjà utilisé.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce sport n'existe pas.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inscription validée.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le nombre de fichiers de l'archive dépasse la limite.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'utilisateur n'existe pas.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une adresse électronique doit être fournie pour le contact de l'administrateur\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous n'avez pas les permissions nécessaires.\"])}\n },\n \"PAGINATION\": {\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"suivant\"])},\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"précédent\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Renvoyer le message de confirmation\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Autoriser\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retour\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Annuler\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer mon compte\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désactiver\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrer\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinit.\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Valider\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Oui\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"à propos\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contact\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"jour\"]), _normalize([\"jours\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Affiché\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentation (en)\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ici\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Masqué\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accueil\"])},\n \"SELECTS\": {\n \"ORDER\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascendant\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descendant\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tri\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"trier par \"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tableau de bord\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce mois-ci\"])}\n}","export default {\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'application semble rencontrer quelques problèmes.
                                                                                Veuillez réessayer plus tard ou contacter l'administrateur.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Page introuvable\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance introuvable\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une erreur s'est produite\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])}\n}","export default {\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter une nouvelle application OAuth2\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Identifiant\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Secret\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Description de l'application\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Créée le\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom de l'application\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL de redirection\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scope\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture à la configuration de l'application.\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en lecture aux routes auth.\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture aux routes auth.\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en lecture aux routes users.\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture aux routes users.\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en lecture aux routes workouts.\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture aux routes workouts.\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL de l'application\"])}\n },\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applications OAuth2\"])},\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application créée avec succès. Assurez-vous de copier le secret maintenant, il ne s'affichera plus.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Êtes-vous sûr de vouloir supprimer cette application ?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"L'application \", _interpolate(_list(0)), \" demande les accès suivants :\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Autoriser \", _interpolate(_list(0)), \" à utiliser votre compte ?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"copier dans le presse papier\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer l'application\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter une application\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application introuvable !\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de applications\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de description\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Révoquer tous les jetons\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Êtes-vous sûr de vouloir révoquer tous les jetons ?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tous les jetons associés existants ont été révoqués.\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Transport)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Virtuel)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Randonnée\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT (Électrique)\"])}\n },\n \"Mountaineering\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alpinisme\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aviron\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Course\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Alpin)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Randonnée)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Raquettes\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Marche\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistiques\"])},\n \"TIME_FRAMES\": {\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mois\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"semaine\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"année\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous n'avez pas reçu les instructions ?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vérifiez vos courriels. Un nouveau courriel de confirmation a été envoyé à l'adresse électronique fournie.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous avez déjà un compte ?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Êtes-vous sûr·e de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe actuel\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Courriel\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisissez une adresse électronique valide.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisissez un mot de passe\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrer sur le nom d'utilisateur\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"masquer le mot de passe\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton invalide, veuillez demander une nouvelle réinitialisation de mot de passe.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langue\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se déconnecter\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"connecter\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nouveau mot de passe\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aucun utilisateur trouvé.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe oublié ?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"8 caractères minimum.\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialisation du mot de passe\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vérifiez vos courriels. Si vote adresse est dans notre base de données, vous recevrez un courriel avec un lien pour réinitialiser votre mot de passe.\"])},\n \"PASSWORD_STRENGTH\": {\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"moyenne\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bonne\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"robustesse du mot de passe\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"forte\"])},\n \"SUGGESTIONS\": {\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettez quelques lettres en majuscules, mais pas toutes.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajoutez des mots moins courants.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les années qui vous sont associées. (ex : date de naissance).\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Capitalisez mais pas seulement la première lettre.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les dates et les années qui vous sont associées. (ex : date ou année de naissance).\"])},\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les substitutions de lettres prévisibles comme \", \"@\", \" pour a.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utilisez des motifs de clavier plus longs et changez de sens de frappe plusieurs fois.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous pouvez créer des mots de passe forts sans utiliser de symboles, de chiffres ou de lettres majuscules.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si vous utilisez ce mot de passe ailleurs, vous devriez le modifier.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les dernières années.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les mots et les caractères répétés.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les orthographes inversées des mots courants.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les séquences de caractères courantes.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utilisez plusieurs mots, mais évitez les phrases courantes.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"faible\"])}\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Votre mot de passe a été mis à jour. Cliquez \", _interpolate(_list(0)), \" pour vous connecter.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour du compte\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Données relatives au dénivelé positif (records, total)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir au profil\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date de naissance\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Format d'affichage de la date\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier le profil\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier les préférences\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier les préférences des sports\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Veuillez vous \", _interpolate(_list(0)), \" pour changer de nouveau votre adresse électronique ou contacter l'administrateur\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Premier jour de la semaine\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prénom\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langue\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lieu\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lundi\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image de profil\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour de l'image de profil\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettre à jour l'image\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour du profil\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date d'inscription\"])},\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"action\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"couleur\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"désactivé par l'administrateur\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"actif\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"seuil de vitesse arrêtée\"])}\n },\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences des sports\"])},\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été modifié avec succès. Veuillez vérifier votre boîte de réception pour valider votre nouvelle adresse électronique.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été créé avec succès.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Un lien pour activer votre compte a été envoyé à l'adresse électronique fournie.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été modifié avec succès.\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dimanche\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"compte\"])},\n \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"apps\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"image\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"préférences\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profil\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fuseau horaire\"])},\n \"UNITS\": {\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système impérial (ft, mi, mph, °F)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unités pour les distances\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système métrique (m, km, m/s, °C)\"])}\n }\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, les inscriptions sont désactivées.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Envoyer à nouveau le courriel de confirmation de compte\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser votre mot de passe\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afficher le mot de passe\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le compte de cet utilisateur est inactif.\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom d'utilisateur\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"3 à 30 caractères requis, seuls les caractères alphanumériques et le caractère _ sont autorisés.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"photo de l'utilisateur\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter une séance\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analyse\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dénivelé positif\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse moyenne\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse moy.\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"revenir à la séance\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dénivelé négatif\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afficher les filtres\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distance\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durée\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier la séance\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fin\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"à partir de\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichier .gpx\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"masquer les filtres\"])},\n \"INVALID_ASCENT_OR_DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les 2 valeurs pour l'élévation doivent être renseignées et être supérieures ou égales à 0.\"])},\n \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La distance doit être supérieure à 0\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La durée doit être supérieure à 0 secondes\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séances récentes\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Charger les séances suivantes\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude max\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichiers max. \"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"taille max. \"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse max\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude min\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment suivant\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance suivante\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"données issues du fichier gpx, sans correction\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de répertoire\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de carte\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment suivant\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance suivante\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment précédent\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance précédente\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séances.\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment précédent\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance précédente\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse moy.\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Distance la + longue\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dénivelé positif le + élevé\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durée la + longue\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse max.\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nombre de caractères restants \"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"début\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Départ et arrivée\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"démarrer l'axe de l'altitude à 0\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"titre\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"jusqu'au\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durée totale\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajoutez votre première séance !\"])},\n \"WEATHER\": {\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ensoleillé\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit claire\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuageux\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"brouillard\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partiellement nuageux\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit partiellement nuageuse\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pluie\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige fondue\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"venteux\"])}\n },\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"humidité\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"température\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vent\"])},\n \"WIND_DIRECTIONS\": {\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSO\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SO\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OSO\"])}\n }\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sans fichier .gpx\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"avec un fichier .gpx\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"séance\"]), _normalize([\"séances\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date de la séance\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etes-vous sûr de vouloir supprimer cette séance ?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"archive .zip\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ou une archive .zip contenant des fichiers .gpx\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contatta l'amministratore\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee è un tracker self-hosted per attività outdoor.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Sotto licenza \", _interpolate(_list(0)), \" \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Codice sorgente\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Azione\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attiva account\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attivo\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Amministrazione\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiungi/rimuovi permessi, elimina account utente.\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicazione\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email di contatto dell'amministratore\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Numero massimo di files zip\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se settato a 0, non ci sono limiti per le registrazioni.\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Numero massimo di utenti attivi\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nessuna mail di contatto\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dimensione massima dei file caricabili (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configurazione applicazione\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dimensione massima dell'archivio zip (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ritorna ad amministrazione\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Sei sicuro di voler eliminare \", _interpolate(_list(0)), \" account? Tutti i dati verranno persi, quest'azione non può essere annullata.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Sei sicuro di voler resettare \", _interpolate(_list(0)), \" password?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email corrente\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elimina utente\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'invio di email è disabilitato.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attiva/Disattiva sports.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nuova email\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La password è stata reimpostata.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La registrazione è al momento disabilitata.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La registrazione è al momento abilitata.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset password\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attivo\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout esistono\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Immagine\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etichetta\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Amministrazione sport\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiorna configurazione applicazione (numero massimo di utenti registrati, dimensione massima dei files).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiorna email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"utente\"]), _normalize([\"utenti\"])])},\n \"USERS\": {\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"stato admin\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data di registrazione\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"stato account\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nome utente\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"numero di workout\"])}\n }\n },\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiungi permessi di amministratore\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rimuovi permessi di amministratore\"])}\n }\n },\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'indirizzo email è stato aggiornato.\"])}\n}","export default {\n \"ERROR\": {\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore di rete.\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore. Per favore riprova o contatta l'amminstratore.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Almeno un file nell'archivio zip supera il limite di dimensione, per favore controlla.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email: dev'essere inserita un'email valida.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore nella lettura del file gpx.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore nell'elaborazione del file gpx.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore nella lettura della configurazione.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore nell'aggiornamento della configurazione\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore, per favore riprova o contatta l'amministratore.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore, la registrazione è disabilitata.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File con estensione non permessa.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La dimensione del file è maggiore di quella massima permessa.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Credenziali errate.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"I dati inseriti non sono validi.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Token scaduto, per favore ripeti il log in.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Token scaduto, per favore ripeti il log in.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La nuova email dev'essere diversa dalla vecchia mail\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun file scelto.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun file scelto.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password: la password inserita e la conferma non combaciano.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Insersci un token di autenticazione valido.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Token scaduto. Per favore ripeti il log in.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mi dispiace, quell'username è già esistente.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Questo sport non esiste.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrato con successo.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Il numero di files nell'archivio supera il limite massimo permesso.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'utente non esiste.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dev'essere inserita un'email valida\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non puoi eliminare questo account, nessun'altro account ha permessi di amministratore.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non hai i permessi necessari.\"])}\n },\n \"PAGINATION\": {\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"avanti\"])},\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"precedente\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Re-invia email di conferma\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Autorizza\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Indietro\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Annulla\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resetta filtri\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elimina il mio account\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disattiva\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifica\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attiva\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtra\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registra\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invia\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"about\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Conferma\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contatto\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"giorno\"]), _normalize([\"giorni\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mostrato\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentazione\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"qui\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nascosto\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home\"])},\n \"SELECTS\": {\n \"ORDER\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dal più basso al più alto\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dal più alto al più basso\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ordina\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ordina per\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"per pagina\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Totale\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Questo mese\"])}\n}","export default {\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'applicazione ha riscontrato dei problemi.
                                                                                Per favore riprova più tardi o contatta l'amministratore.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pagina non trovata\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Workout non trovato\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Qualcosa è andato storto\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore. Per favore riprova o contatta l'amministratore.\"])}\n}","export default {\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiungi una nuova applicazione OAuth2\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Id\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Secret\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Descrizione applicazione\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Issue at\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nome applicazione\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL redirect\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scope\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di scrittura alla configurazioen dell'applicazione.\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di lettura a auth endpoints.\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di scrittura a auth endpoints.\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di lettura a users endpoints.\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di scrittura a usersendpoints.\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di lettura a workouts endpoints.\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di scrittura a workouts endpoints.\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL applicazione\"])}\n },\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicazioni OAuth2\"])},\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicazione creata. Sii certo di copiare il secret ora, non lo rivedrai più.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sei sicuro di voler eliminare quest'app?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"L'applicazione \", _interpolate(_list(0)), \" sta chiedendo:\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Autorizzi \", _interpolate(_list(0)), \" ad utilizzare il tuo account?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"copia nella clipboard\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elimina applicazione\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiungi applicazione\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicazione non trovata!\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nessuna applicazione\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nessuna descrizione\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rimuovi tutti i tokens\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sei sicuro di voler rimuovere tutti i token?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tutti i token esistenti associati sono stati rimossi.\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ciclismo (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ciclismo (Trasporto)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cicliscmo (Virtuale)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Escursioni\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking (Elettrica)\"])}\n },\n \"Mountaineering\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alpinismo\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Canottaggio\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Corsa\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sci (Alpino)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sci (Cross Country)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Racchette da neve\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sentieri\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Camminata\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistiche\"])},\n \"TIME_FRAMES\": {\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mese\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"settimana\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"anno\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non hai ricevuto istruzioni?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Controlla la tua email. Una nuova email di conferma è stata inviata all'indirizzo specificato.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hai già un account?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sei sicuro di voler eliminare il tuo account? Tutti i dati saranno eliminati, quest'azione non può essere annullata\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password corrente\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inserisci un indirizzo email valido.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inserisci una password\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtra per username\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nascondi password\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Token invalido, per favore richiedi un nuovo reset della password.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lingua\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Login\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logout\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"log in\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nuova password\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun utente trovato.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password dimenticata?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inserisci almeno 8 caratteri.\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset password\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Controlla la tua email. Se l'indirizzo inserito è nel nostro database, riceverai un'email con un link per resettare la tua password.\"])},\n \"PASSWORD_STRENGTH\": {\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"media\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"buona\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sicurezza password\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"forte\"])},\n \"SUGGESTIONS\": {\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inserisci qualche maiuscola.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiungi più parole che sono meno comuni.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita date che possono essere associate a te.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inserisci maiuscole oltre alla prima lettera.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita date che possono essere associate a te.\"])},\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita sostituzioni prevedibili, per esempio, \", \"@\", \" per la a.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Usa patterns più lunghi e cambia direzione di scrittura più volte.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Puoi creare password sicure senza utilizzare simboli, numeri, o maiuscole.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"È consigliabile cambiare questa password se è utilizzata per altro.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita date recenti.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita di ripetere lettere e parole.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita di scrivere parole al contrario.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita sequenze di caratteri comuni.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Usa più parole, ma evita frasi comuni.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bassa\"])}\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"La tua password è stata aggiornata. Clicca \", _interpolate(_list(0)), \" per effettuare il login.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tipo di account\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dati relativi alle salite (singoli, totale)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ritorna al profilo\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Data di nascita\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Formato data\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifica profilo\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifica preferenze\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifica preferenze sport\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Per favore \", _interpolate(_list(0)), \" per cambiare di nuovo la tua mail o contatta l'amministratore\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Primo giorno della settimana\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nome\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lingua\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cognome\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Posizione\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lunedì\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Foto\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Foto\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rimuovi foto\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiorna foto\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preferenze\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profilo\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Data di registrazione\"])},\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"azione\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"colore\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"disattivato dall'amministratore\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"attivo\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"etichetta\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limite minimo di velocità\"])}\n },\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preferenze sport\"])},\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Il tuo account è stato aggiornato con successo. Per favore controlla la tua email per confermare il tuo indirizzo email.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Il tuo account è stato creato con successo.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Un link per attivare il tuo account è stato inviato all'indirizzo specificato.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Il tuo account è stato aggiornato con successo.\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Domenica\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"account\"])},\n \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"apps\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"foto\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"preferenze\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profilo\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timezone\"])},\n \"UNITS\": {\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sistema imperiale (ft, mi, mph, °F)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unità per la distanza\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sistema metrico (m, km, m/s, °C)\"])}\n }\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registra\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mi dispiace, la registrazione è disabilitata.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Re-invia email di conferma dell'account\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resetta password\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mostra password\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Questo account è inattivo.\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Username\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sono richiesti da 3 a 30 caratteri, è permesso utilizzare solo caratteri alfanumerici ed il simbolo \\\"_\\\".\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"foto profilo\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiungi un workout\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analisi\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"salita\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"velocità media\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vel. media\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ritorna al workout\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"discesa\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mostra filtri\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distanza\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durata\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifica il workout\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"elevazione\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fine\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"file .gpx\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nascondi filtri\"])},\n \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La distanza dev'essere maggiore di 0\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La durata dev'essere maggiore di 0\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ultimi workout\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Carica più workout\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitudine massima\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"file massimi\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dimensione massima\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"velocità massima\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitudine minima\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun segmento successivo\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prossimo workout\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"note\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data dal file gpx, senza \\\"pulizia\\\"\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun file scelto\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nessuna cartella all'interno\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessuna mappa\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun segmento successivo\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun workout successivo\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessuna nota\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun segmento precedente\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun workout precedente\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun record.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun workout.\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pause\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segmento precedente\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Workout precedente\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vel. media\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Distanza più lunga\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Salita più alta\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durata più lunga\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vel. massima\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"caratteri rimanenti\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segmento\"]), _normalize([\"segmenti\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"velocità\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"inizio\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inizio e fine\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partenza asse elevazione a 0\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"titolo\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"a\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durata totale\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Carica file!\"])},\n \"WEATHER\": {\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cielo chiaro\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notte chiara\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuvoloso\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nebbia\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"parzialmente nuvoloso\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notte parzialmente nuvolosa\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pioggia\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nevischio\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neve\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vento\"])}\n },\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"umidità\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"temperatura\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vento\"])},\n \"WIND_DIRECTIONS\": {\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WSW\"])}\n }\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"senza file .gpx\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"con file .gpx\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"workout\"]), _normalize([\"workouts\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data workout\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sei sicuro di voler eliminare questo workout?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"file .zip\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"o file .zip contenente files .gpx\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contacteer uw administrator\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee is zelf-gehoste buitenshuis activiteiten tracker.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Onder \", _interpolate(_list(0)), \" licentie \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Broncode\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actie\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activeer account\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ingeschakeld\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Beheer\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Instellingen\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toevoegen/verwijderen van administrator rechten, verwijder gebruikersaccount.\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicatie\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administrator email voor contact\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. aantal bestanden in zip archief\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bij 0, geen limiet op registratie.\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. aantal actieve gebruikers\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geen contact email\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. grootte van bestanden voor upload (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicatie configureren\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. grootte van zip archief (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Terug naar beheer\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Weet u zeker dat u de account \", _interpolate(_list(0)), \" wilt wissen? Alle gegevens worden verwijderd, dit kan niet ongedaan gemaakt worden.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Weet u zeker dat u het wachtwoord voor \", _interpolate(_list(0)), \" wilt resetten?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Huidige email\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder gebruiker\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Emails verzenden is uitgeschakeld.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aan- of uitzetten van sporten.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nieuwe email\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Het wachtwoord werd gereset.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registratie is momenteel uitgeschakeld.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registratie is momenteel ingeschakeld.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset wachtwoord\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ingeschakeld\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trainingen aanwezig\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afbeelding\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Beheer sporten\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"De applicatie configureren (maximum aantal geregistreerde gebruikers, maximum bestandsgrootte).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"gebruiker\"]), _normalize([\"gebruikers\"])])},\n \"USERS\": {\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"admin status\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registratie datum\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account status\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gebruikersnaam\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aantal trainingen\"])}\n }\n },\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin rechten toevoegen\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder admin rechten\"])}\n }\n },\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Het emailadres werd bijgewerkt.\"])}\n}","export default {\n \"ERROR\": {\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Netwerk fout.\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout. Probeer opnieuw of contacteer de administrator.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ten minste 1 bestand in het zip archief is groter dan toegelaten, gelieve de bestanden te controleren.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email: een geldige email is vereist.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout bij het verwerken van het gpx bestand.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout bij verwerken van gpx.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout bij ophalen van configuratie.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout bij het updaten van de configuratie\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout, probeer opnieuw of contacteer de administrator.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout, registratie is uitgeschakeld.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestandsformaat niet toegelaten.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestandsgrootte is groter dan toegestaan.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ongeldige inloggegevens.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ingegeven data is ongeldig.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ongeldige token, log opnieuw in.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ongeldige token, log opnieuw in.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Het nieuwe email adres dient te verschillen van het oude\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen bestand opgegeven.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen bestand geselecteerd.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wachtwoord: het wachtwoord en de bevestiging komen niet overeen.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geef een geldig auth token.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signatuur verlopen. Log opnieuw in.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, deze gebruikersnaam is al in gebruik.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deze sport bestaat niet.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Succesvol geregistreerd.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Het aantal bestanden in het zip archief overschrijdt de limiet.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruiker bestaat niet.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Een geldige email is vereist voor admin contact informatie\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"U kunt uw account niet verwijderen, geen andere gebruiker heeft admin rechten.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"U hebt geen machtigingen.\"])}\n },\n \"PAGINATION\": {\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"volgende\"])},\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vorige\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Herzend bevestigings email\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toekennen\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Terug\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Annuleren\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder filters\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder mijn account\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uitzetten\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bewerken\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aanzetten\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inloggen\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nee\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registreer\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uploaden\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ja\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"over\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bevestiging\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contacteer\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"dag\"]), _normalize([\"dagen\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weergegeven\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentatie\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hier\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verborgen\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Startscherm\"])},\n \"SELECTS\": {\n \"ORDER\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"oplopend\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aflopend\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sorteer\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sorteer op\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"per pagina\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Totaal\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deze maand\"])}\n}","export default {\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Er heeft zich een onbekende fout voorgedaan.
                                                                                Probeer aub later opnieuw of contacteer de administrator.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pagina niet gevonden\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training niet gevonden\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Er ging iets mis\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout. Probeer opnieuw of contacteer de administrator.\"])}\n}","export default {\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nieuwe OAuth2 app toevoegen\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Id\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geheim\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App omschrijving\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Probleem bij\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Naam van de app\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Doorverwijs URL\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Omvang\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geeft toestemming tot aanpassen van de applicatie instellingen.\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat leestoegang toe aan auth endpoints.\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat schrijftoegang toe aan auth endpoints.\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat leestoegang toe aan users endpoints.\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat schrijftoegang toe aan users endpoints.\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat leestoegang toe aan workouts endpoints.\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat schrijftoegang toe aan workouts endpoints.\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App URL\"])}\n },\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth2 apps\"])},\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App succesvol aangemaakt. Kopieer zeker de geheime sleutel, deze zal later niet meer verschijnen.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weet u zeker dat u deze app wilt verwijderen?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"De app \", _interpolate(_list(0)), \" vraagt:\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Toegang geven aan \", _interpolate(_list(0)), \" tot uw gebruikersaccount?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"kopieer naar klembord\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder app\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voeg een app toe\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App niet gevonden!\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geen apps\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geen beschrijving\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder alle tokens\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weet u zeker dat u alle tokens wilt intrekken?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alle bestaande tokens werden ingetrokken.\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fietsen (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fietsen (Transport)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fietsen (Virtueel)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trektocht\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountainbiken\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountainbiken (Elektrisch)\"])}\n },\n \"Mountaineering\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bergbeklimmen\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Roeien\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lopen\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiën (Alpine)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiën (Cross Country)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sneeuwschoenen\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wandelen\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistieken\"])},\n \"TIME_FRAMES\": {\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"maand\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"week\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"jaar\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen instructies ontvangen?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Controleer uw email. Een nieuwe bevestigingsmail werd verzonden naar het opgegeven adres.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Beheer\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Al een account aangemaakt?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weet u zeker dat u uw account wilt verwijderen? Alle data wordt verwijderd, dit kan niet ongedaan worden\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Huidig wachtwoord\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geef een geldig email adres op.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geef een paswoord in\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter op gebruikersnaam\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"verberg wachtwoord\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ongeldig token, vraag een nieuwe wachtwoord reset aan.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taal\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inloggen\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uitloggen\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"inloggen\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nieuw wachtwoord\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen gebruikers gevonden.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wachtwoord\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wachtwoord vergeten?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tenminste 8 karakters vereist.\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wachtwoord reset\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Controleer uw inbox. Als uw email adres in onze database zit, hebt u een email ontvangen om uw wachtwoord te resetten.\"])},\n \"PASSWORD_STRENGTH\": {\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gemiddeld\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"goed\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wachtwoord sterkte\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sterk\"])},\n \"SUGGESTIONS\": {\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruik enkele hoofdletters.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voeg meer niet gangbare woorden toe.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd jaartallen met een persoonlijke betekenis.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruik niet enkel voor de eerste letter een hoofdletter.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd persoonlijke gegevens en jaartallen.\"])},\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd voorspelbare vervangingen, zoals \", \"@\", \" voor de letter a.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruik langere patronen en verander de richting van typen meerdere malen.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"U kan sterke wachtwoorden maken zonder gebruik van symbolen, nummers, of hoofdletters.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Als u dit wachtwoord ergens anders gebruikt zou u het beter veranderen.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd recente jaartallen.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd opeenvolgende woorden en karakters.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd gangbare woorden die achterstevoren geschreven zijn.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd voorspelbare opeenvolgingen.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruik verschillende woorden, maar vermijd vaak gebruikte zinnen.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zwak\"])}\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Uw wachtwoord werd aangepast. Klik \", _interpolate(_list(0)), \" om in te loggen.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account aanpassen\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hoogte gerelateerde data (opnames, totaal)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Terug naar profiel\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geboortedatum\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weergaveformaat datum\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profiel aanpassen\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voorkeuren wijzigen\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sport voorkeuren wijzigen\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Gelieve \", _interpolate(_list(0)), \" om uw email adres opnieuw te wijzigen of contacteer uw administrator\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eerste dag van de week\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voornaam\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taal\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Achternaam\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Locatie\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maandag\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afbeelding\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afbeelding aanpassen\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afbeelding verwijderen\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afbeelding veranderen\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voorkeuren aanpassen\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profiel aanpassen\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datum registratie\"])},\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"actie\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"kleur\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"uitgeschakeld door admin\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"actief\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"snelheidsgrens voor stilstand\"])}\n },\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sport voorkeuren aanpassen\"])},\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uw account werd succesvol bijgewerkt. Controleer uw inbox om uw nieuw email adres te bevestigen.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uw account werd succesvol aangemaakt.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Een link om uw account te activeren werd doorgestuurd naar opgegeven email adres.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uw account werd succesvol bijgewerkt.\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zondag\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"account\"])},\n \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"apps\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afbeelding\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"voorkeuren\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profiel\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sporten\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tijdzone\"])},\n \"UNITS\": {\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperialistisch systeem (ft, mi, mph, °F)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eenheid voor afstand\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metrisch systeem (m, km, m/s, °C)\"])}\n }\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registreren\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, registreren is uitgeschakeld.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Opnieuw zenden van account bevestigingsmail\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset uw wachtwoord\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"toon wachtwoord\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deze account is niet actief.\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruikersnaam\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"3 tot 30 karakters vereist, enkel alfanumerieke karakters en het underscore karakter \\\"_\\\" zijn toegestaan.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gebruikersafbeelding\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training toevoegen\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analyse\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geklommen\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gemiddelde snelheid\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gem. snelheid\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Terug naar training\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"datum\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gedaald\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"toon filters\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afstand\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"duur\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training aanpassen\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hoogte\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"einde\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"van\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".gpx bestand\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"verberg filters\"])},\n \"INVALID_ASCENT_OR_DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Beide waarden moeten opgegeven worden en dienen groter dan of gelijk aan 0 te zijn.\"])},\n \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"De afstand moet groter zijn dan 0\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"De duur moet langer zijn dan 0 seconden\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Laatste trainingen\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toon meer trainingen\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. hoogte\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. aantal bestanden\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. grootte\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. snelheid\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"min. hoogte\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen volgend segment\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Volgende training\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notities\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data vanuit gpx, zonder op te schonen\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen bestand opgegeven\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geen map aanwezig\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen kaart\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen volgend segment\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen volgende training\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen notities\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen vorig segment\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen vorige training\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen trainingen.\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauzes\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorig segment\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorige training\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gem. snelheid\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langste afstand\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hoogst geklommen\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langste duur\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. snelheid\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"resterende karakters\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segmenten\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"snelheid\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sporten\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start en aankomst\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zet hoogte-as vast op 0\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"titel\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aan\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"totale duur\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eén uploaden!\"])},\n \"WEATHER\": {\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"heldere dag\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"heldere nacht\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bewolkt\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mist\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gedeeltelijk bewolkte dag\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gedeeltelijk bewolkte nacht\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"regen\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"natte sneeuw\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sneeuw\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])}\n },\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vochtigheid\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"temperatuur\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])},\n \"WIND_DIRECTIONS\": {\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OZO\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Z\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ZO\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ZZO\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ZZW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ZW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WZW\"])}\n }\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zonder .gpx bestand\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"met .gpx bestand\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"training\"]), _normalize([\"trainingen\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"datum training\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weet u zeker dat u deze training wilt verwijderen?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".zip bestand\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"of .zip archief met .gpx bestanden\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","/* eslint-disable no-console */\n\nimport { register } from 'register-service-worker'\n\nif (process.env.NODE_ENV === 'production') {\n register(`${process.env.BASE_URL}service-worker.js`, {\n ready() {\n console.log(\n 'App is being served from cache by a service worker.\\n' +\n 'For more details, visit https://goo.gl/AFskqB'\n )\n },\n registered() {\n console.log('Service worker has been registered.')\n },\n cached() {\n console.log('Content has been cached for offline use.')\n },\n updatefound() {\n console.log('New content is downloading.')\n },\n updated() {\n console.log('New content is available; please refresh.')\n },\n offline() {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n )\n },\n error(error) {\n console.error('Error during service worker registration:', error)\n },\n })\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2c73279e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"footer\" }\nconst _hoisted_2 = { class: \"footer-items\" }\nconst _hoisted_3 = { class: \"footer-item\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"strong\", null, \"FitTrackee\", -1))\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"footer-item bullet\" }, \"•\", -1))\nconst _hoisted_6 = { class: \"footer-item\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"footer-item bullet\"\n}\nconst _hoisted_8 = {\n key: 1,\n class: \"footer-item\"\n}\nconst _hoisted_9 = [\"href\"]\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"footer-item bullet\" }, \"•\", -1))\nconst _hoisted_11 = { class: \"footer-item\" }\nconst _hoisted_12 = {\n href: \"https://samr1.github.io/FitTrackee/\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}\n\nimport { toRefs } from 'vue'\n\n interface Props {\n version: string\n adminContact?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Footer',\n props: {\n version: null,\n adminContact: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n version: string\n adminContact?: string\n };\n\n \n\n const { adminContact, version } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _createTextVNode(\" v\" + _toDisplayString(_unref(version)), 1)\n ]),\n _hoisted_5,\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_router_link, { to: \"/about\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('common.ABOUT')), 1)\n ]),\n _: 1\n })\n ]),\n (_unref(adminContact))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, \"•\"))\n : _createCommentVNode(\"\", true),\n (_unref(adminContact))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"a\", {\n href: `mailto:${_unref(adminContact)}`\n }, _toDisplayString(_ctx.$t('common.CONTACT')), 9, _hoisted_9)\n ]))\n : _createCommentVNode(\"\", true),\n _hoisted_10,\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"a\", _hoisted_12, _toDisplayString(_ctx.$t('common.DOCUMENTATION')), 1)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./Footer.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Footer.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Footer.vue?vue&type=style&index=0&id=2c73279e&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2c73279e\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-ab6e62ae\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"nav\" }\nconst _hoisted_2 = { class: \"nav-container\" }\nconst _hoisted_3 = { class: \"nav-app-name\" }\nconst _hoisted_4 = { class: \"nav-items-close\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-name\" }, \"FitTrackee\", -1))\nconst _hoisted_6 = {\n key: 0,\n class: \"nav-items-group\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"nav-item nav-separator\" }, null, -1))\nconst _hoisted_8 = { class: \"nav-items-user-menu\" }\nconst _hoisted_9 = {\n key: 0,\n class: \"nav-items-group\"\n}\nconst _hoisted_10 = { class: \"nav-item nav-profile-img\" }\nconst _hoisted_11 = {\n key: 1,\n class: \"nav-items-group\"\n}\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa fa-language\" }, null, -1))\n\nimport { ComputedRef, computed, ref, capitalize } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IDropdownOption } from '@/types/forms'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { availableLanguages } from '@/utils/locales'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'NavBar',\n emits: ['menuInteraction'],\n setup(__props, { emit }) {\n\n \n\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const isAuthenticated: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]\n )\n const language: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const isMenuOpen = ref(false)\n\n function openMenu() {\n isMenuOpen.value = true\n emit('menuInteraction', true)\n }\n function closeMenu() {\n isMenuOpen.value = false\n emit('menuInteraction', false)\n }\n function updateLanguage(option: IDropdownOption) {\n store.dispatch(\n ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE,\n option.value.toString()\n )\n }\n function logout() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.LOGOUT)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Dropdown = _resolveComponent(\"Dropdown\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", {\n class: \"nav-item app-name\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/')))\n }, \" FitTrackee \")\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"nav-icon-open\", { 'menu-open': isMenuOpen.value }])\n }, [\n _createElementVNode(\"i\", {\n class: \"fa fa-bars hamburger-icon\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (openMenu()))\n })\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"nav-items\", { 'menu-open': isMenuOpen.value }])\n }, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa fa-close close-icon nav-item\", { 'menu-closed': !isMenuOpen.value }]),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (closeMenu()))\n }, null, 2)\n ]),\n _createElementVNode(\"div\", {\n class: \"nav-items-app-menu\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (closeMenu()))\n }, [\n (_unref(isAuthenticated))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('dashboard.DASHBOARD')), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/workouts\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 2))), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/statistics\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('statistics.STATISTICS')), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/workouts/add\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.ADD_WORKOUT')), 1)\n ]),\n _: 1\n }),\n (_unref(isAuthenticated) && _unref(authUser).admin)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n class: \"nav-item\",\n to: \"/admin\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.ADMIN')), 1)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n _hoisted_7\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n (_unref(isAuthenticated))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createVNode(UserPicture, { user: _unref(authUser) }, null, 8, [\"user\"])\n ]),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/profile\",\n onClick: closeMenu\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(authUser).username), 1)\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", {\n class: \"nav-item nav-link\",\n onClick: logout\n }, _toDisplayString(_ctx.$t('user.LOGOUT')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/login\",\n onClick: closeMenu\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.LOGIN')), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/register\",\n onClick: closeMenu\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.REGISTER')), 1)\n ]),\n _: 1\n })\n ])),\n (_unref(availableLanguages) && _unref(language))\n ? (_openBlock(), _createBlock(_component_Dropdown, {\n key: 2,\n class: \"nav-item\",\n options: _unref(availableLanguages),\n selected: _unref(language),\n onSelected: updateLanguage\n }, {\n default: _withCtx(() => [\n _hoisted_12\n ]),\n _: 1\n }, 8, [\"options\", \"selected\"]))\n : _createCommentVNode(\"\", true)\n ])\n ], 2)\n ])\n ]))\n}\n}\n\n})","import script from \"./NavBar.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NavBar.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./NavBar.vue?vue&type=style&index=0&id=ab6e62ae&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-ab6e62ae\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-47759238\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"no-config\" }\nconst _hoisted_2 = { class: \"error-page\" }\nconst _hoisted_3 = { class: \"error-img\" }\nconst _hoisted_4 = [\"innerHTML\"]\n\nimport ErrorImg from '@/components/Common/Images/ErrorImg.vue'\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'NoConfig',\n setup(__props) {\n\n \nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(ErrorImg)\n ]),\n _createElementVNode(\"p\", {\n class: \"error-message\",\n innerHTML: _ctx.$t('error.APP_ERROR')\n }, null, 8, _hoisted_4)\n ])\n ]))\n}\n}\n\n})","import script from \"./NoConfig.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./NoConfig.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./NoConfig.vue?vue&type=style&index=0&id=47759238&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-47759238\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, createVNode as _createVNode, unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, normalizeClass as _normalizeClass, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"div\", { id: \"top\" }, null, -1)\nconst _hoisted_2 = {\n key: 0,\n class: \"app-container\"\n}\nconst _hoisted_3 = { class: \"app-loading\" }\nconst _hoisted_4 = { class: \"container scroll\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-up\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_6 = [\n _hoisted_5\n]\n\nimport { ComputedRef, computed, ref, onBeforeMount, onMounted } from 'vue'\n\n import Footer from '@/components/Footer.vue'\n import NavBar from '@/components/NavBar.vue'\n import NoConfig from '@/components/NoConfig.vue'\n import { ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { useStore } from '@/use/useStore'\n import { localeFromLanguage } from '@/utils/locales'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'App',\n setup(__props) {\n\n const store = useStore()\n\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const appLoading: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_LOADING]\n )\n const hideScrollBar = ref(false)\n const displayScrollButton = ref(false)\n\n onBeforeMount(() => {\n initLanguage()\n store.dispatch(ROOT_STORE.ACTIONS.GET_APPLICATION_CONFIG)\n })\n onMounted(() => scroll())\n\n function updateHideScrollBar(isMenuOpen: boolean) {\n hideScrollBar.value = isMenuOpen\n }\n function isScrolledToBottom(element: Element): boolean {\n return (\n element.getBoundingClientRect().top < window.innerHeight &&\n element.getBoundingClientRect().bottom >= 0\n )\n }\n function scroll() {\n window.onscroll = () => {\n const bottom = document.querySelector('#bottom')\n displayScrollButton.value = bottom !== null && isScrolledToBottom(bottom)\n }\n }\n function scrollToTop() {\n window.scrollTo({\n top: 0,\n behavior: 'smooth',\n })\n setTimeout(() => {\n displayScrollButton.value = false\n }, 300)\n }\n function initLanguage() {\n let language = 'en'\n try {\n const navigatorLanguage = navigator.language.split('-')[0]\n if (navigatorLanguage in localeFromLanguage) {\n language = navigatorLanguage\n }\n } catch (e) {\n language = 'en'\n }\n store.dispatch(ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE, language)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Loader = _resolveComponent(\"Loader\")!\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _hoisted_1,\n _createVNode(NavBar, { onMenuInteraction: updateHideScrollBar }),\n (_unref(appLoading))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_Loader)\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: _normalizeClass([\"app-container\", { 'hide-scroll': hideScrollBar.value }])\n }, [\n (_unref(appConfig))\n ? (_openBlock(), _createBlock(_component_router_view, { key: 0 }))\n : (_openBlock(), _createBlock(NoConfig, { key: 1 }))\n ], 2)),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"scroll-button\", { 'display-button': displayScrollButton.value }]),\n onClick: scrollToTop\n }, _hoisted_6, 2)\n ]),\n (_unref(appConfig))\n ? (_openBlock(), _createBlock(Footer, {\n key: 2,\n version: _unref(appConfig) ? _unref(appConfig).version : '',\n adminContact: _unref(appConfig).admin_contact\n }, null, 8, [\"version\", \"adminContact\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","import script from \"./App.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./App.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=2930d5e0&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-69d7e4ff\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"alert-message\" }\nconst _hoisted_2 = [\"innerHTML\"]\n\nimport { toRefs } from 'vue'\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AlertMessage',\n props: {\n message: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n message: string\n };\n\n \n const { message } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n innerHTML: _ctx.$t(_unref(message))\n }, null, 8, _hoisted_2)\n ]))\n}\n}\n\n})","import script from \"./AlertMessage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AlertMessage.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AlertMessage.vue?vue&type=style&index=0&id=69d7e4ff&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-69d7e4ff\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { vModelText as _vModelText, createElementVNode as _createElementVNode, withDirectives as _withDirectives, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-8cf5cc64\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"custom-textarea\" }\nconst _hoisted_2 = [\"id\", \"name\", \"maxLenght\", \"disabled\"]\nconst _hoisted_3 = { class: \"remaining-chars\" }\n\nimport { ref, watch, withDefaults } from 'vue'\n\n interface Props {\n name: string\n charLimit?: number\n disabled?: boolean\n input?: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CustomTextArea',\n props: {\n name: null,\n charLimit: { default: 500 },\n disabled: { type: Boolean, default: false },\n input: { default: '' }\n },\n emits: ['updateValue'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { name: string, charLimit: number, disabled: boolean, input: string | null };\n\n \n\n \n\n const text = ref('')\n\n function updateText(event: Event & { target: HTMLInputElement }) {\n emit('updateValue', event.target.value)\n }\n\n watch(\n () => props.input,\n (value) => {\n text.value = value === null ? '' : value\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _withDirectives(_createElementVNode(\"textarea\", {\n id: __props.name,\n name: __props.name,\n maxLenght: __props.charLimit,\n disabled: __props.disabled,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((text).value = $event)),\n onInput: updateText\n }, null, 40, _hoisted_2), [\n [_vModelText, text.value]\n ]),\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_ctx.$t('workouts.REMAINING_CHARS')) + \": \" + _toDisplayString(text.value.length) + \"/\" + _toDisplayString(__props.charLimit), 1)\n ]))\n}\n}\n\n})","import script from \"./CustomTextArea.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CustomTextArea.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CustomTextArea.vue?vue&type=style&index=0&id=8cf5cc64&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-8cf5cc64\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, Fragment as _Fragment } from \"vue\"\n\nimport { ComputedRef, computed, toRefs, withDefaults } from 'vue'\n\n import { TUnit } from '@/types/units'\n import { units, convertDistance } from '@/utils/units'\n\n interface Props {\n distance: number\n unitFrom: TUnit\n useImperialUnits: boolean\n digits?: number\n displayUnit?: boolean\n speed?: boolean\n strong?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Distance',\n props: {\n distance: null,\n unitFrom: null,\n useImperialUnits: { type: Boolean },\n digits: { default: 2 },\n displayUnit: { type: Boolean, default: true },\n speed: { type: Boolean, default: false },\n strong: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { distance: number, unitFrom: TUnit, useImperialUnits: boolean, digits: number, displayUnit: boolean, speed: boolean, strong: boolean };\n\n \n\n const {\n digits,\n displayUnit,\n distance,\n speed,\n strong,\n unitFrom,\n useImperialUnits,\n } = toRefs(props)\n const unitTo: ComputedRef = computed(() =>\n useImperialUnits.value\n ? units[unitFrom.value].defaultTarget\n : unitFrom.value\n )\n const convertedDistance = computed(() =>\n useImperialUnits.value\n ? convertDistance(\n distance.value,\n unitFrom.value,\n unitTo.value,\n digits.value\n )\n : parseFloat(distance.value.toFixed(digits.value))\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"distance\", { strong: _unref(strong) }])\n }, _toDisplayString(_unref(convertedDistance)), 3),\n _createTextVNode(\" \" + _toDisplayString(' ') + \" \"),\n (_unref(displayUnit))\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: _normalizeClass([\"unit\", { strong: _unref(strong) }])\n }, _toDisplayString(_unref(unitTo)) + _toDisplayString(_unref(speed) ? '/h' : ''), 3))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","import script from \"./Distance.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Distance.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Distance.vue?vue&type=style&index=0&id=f46ff1d6&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f46ff1d6\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-9590c0e6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"dropdown-wrapper\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"dropdown-list\"\n}\nconst _hoisted_3 = [\"onClick\"]\n\nimport { ref, watch } from 'vue'\n import { useRoute } from 'vue-router'\n\n import { IDropdownOption, TDropdownOptions } from '@/types/forms'\n interface Props {\n options: TDropdownOptions\n selected: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Dropdown',\n props: {\n options: null,\n selected: null\n },\n emits: {\n selected: (option: IDropdownOption) => option,\n },\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n options: TDropdownOptions\n selected: string\n };\n\n \n\n \n\n const route = useRoute()\n const isOpen = ref(false)\n const dropdownOptions = props.options.map((option) => option)\n\n function toggleDropdown() {\n isOpen.value = !isOpen.value\n }\n function updateSelected(option: IDropdownOption) {\n emit('selected', option)\n isOpen.value = false\n }\n\n watch(\n () => route.path,\n () => (isOpen.value = false)\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"dropdown-selected\",\n onClick: toggleDropdown\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ]),\n (isOpen.value)\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(dropdownOptions), (option, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n class: _normalizeClass([\"dropdown-item\", { selected: option.value === __props.selected }]),\n key: index,\n onClick: ($event: any) => (updateSelected(option))\n }, _toDisplayString(option.label), 11, _hoisted_3))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./Dropdown.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Dropdown.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Dropdown.vue?vue&type=style&index=0&id=9590c0e6&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-9590c0e6\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2659a79a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"error-message\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { key: 1 }\n\nimport { toRefs } from 'vue'\n\n interface Props {\n message: string | string[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'ErrorMessage',\n props: {\n message: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n message: string | string[]\n };\n\n \n const { message } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (Array.isArray(_unref(message)))\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(message), (subMessage, index) => {\n return (_openBlock(), _createElementBlock(\"li\", { key: index }, _toDisplayString(_ctx.$t(subMessage)), 1))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.$t(_unref(message))), 1))\n ]))\n}\n}\n\n})","import script from \"./ErrorMessage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ErrorMessage.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ErrorMessage.vue?vue&type=style&index=0&id=2659a79a&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2659a79a\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./CyclingSport.vue?vue&type=template&id=be8023a2\"\nimport script from \"./CyclingSport.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingSport.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./CyclingTransport.vue?vue&type=template&id=97af5148\"\nimport script from \"./CyclingTransport.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingTransport.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./CyclingVirtual.vue?vue&type=template&id=ec8f7bb6\"\nimport script from \"./CyclingVirtual.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingVirtual.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Hiking.vue?vue&type=template&id=40903dc4\"\nimport script from \"./Hiking.vue?vue&type=script&lang=js\"\nexport * from \"./Hiking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./MountainBiking.vue?vue&type=template&id=5bdbc6e8\"\nimport script from \"./MountainBiking.vue?vue&type=script&lang=js\"\nexport * from \"./MountainBiking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./MountainBikingElectric.vue?vue&type=template&id=21e72aec\"\nimport script from \"./MountainBikingElectric.vue?vue&type=script&lang=js\"\nexport * from \"./MountainBikingElectric.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Mountaineering.vue?vue&type=template&id=15731a2a\"\nimport script from \"./Mountaineering.vue?vue&type=script&lang=js\"\nexport * from \"./Mountaineering.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Rowing.vue?vue&type=template&id=31ae2dd5\"\nimport script from \"./Rowing.vue?vue&type=script&lang=js\"\nexport * from \"./Rowing.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Running.vue?vue&type=template&id=4d47a4fe\"\nimport script from \"./Running.vue?vue&type=script&lang=js\"\nexport * from \"./Running.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./SkiingAlpine.vue?vue&type=template&id=3ebf3bca\"\nimport script from \"./SkiingAlpine.vue?vue&type=script&lang=js\"\nexport * from \"./SkiingAlpine.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./SkiingCrossCountry.vue?vue&type=template&id=1561bbe6\"\nimport script from \"./SkiingCrossCountry.vue?vue&type=script&lang=js\"\nexport * from \"./SkiingCrossCountry.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Snowshoes.vue?vue&type=template&id=67df2761\"\nimport script from \"./Snowshoes.vue?vue&type=script&lang=js\"\nexport * from \"./Snowshoes.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Trail.vue?vue&type=template&id=32a14156\"\nimport script from \"./Trail.vue?vue&type=script&lang=js\"\nexport * from \"./Trail.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Walking.vue?vue&type=template&id=2ed4f5f4\"\nimport script from \"./Walking.vue?vue&type=script&lang=js\"\nexport * from \"./Walking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"title\"]\n\nimport { inject, toRefs, withDefaults } from 'vue'\n\n import CyclingSport from '@/components/Common/Images/SportImage/CyclingSport.vue'\n import CyclingTransport from '@/components/Common/Images/SportImage/CyclingTransport.vue'\n import CyclingVirtual from '@/components/Common/Images/SportImage/CyclingVirtual.vue'\n import Hiking from '@/components/Common/Images/SportImage/Hiking.vue'\n import MountainBiking from '@/components/Common/Images/SportImage/MountainBiking.vue'\n import MountainBikingElectric from '@/components/Common/Images/SportImage/MountainBikingElectric.vue'\n import Mountaineering from '@/components/Common/Images/SportImage/Mountaineering.vue'\n import Rowing from '@/components/Common/Images/SportImage/Rowing.vue'\n import Running from '@/components/Common/Images/SportImage/Running.vue'\n import SkiingAlpine from '@/components/Common/Images/SportImage/SkiingAlpine.vue'\n import SkiingCrossCountry from '@/components/Common/Images/SportImage/SkiingCrossCountry.vue'\n import Snowshoes from '@/components/Common/Images/SportImage/Snowshoes.vue'\n import Trail from '@/components/Common/Images/SportImage/Trail.vue'\n import Walking from '@/components/Common/Images/SportImage/Walking.vue'\n\n interface Props {\n sportLabel: string\n color: string | null\n title?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n sportLabel: null,\n color: null,\n title: { default: '' }\n },\n setup(__props: any) {\n\nconst props = __props as { sportLabel: string, color: string | null, title: string };\n\n \n\n const { color, sportLabel, title } = toRefs(props)\n const sportColors = inject('sportColors')\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"sport-img\",\n style: _normalizeStyle({ fill: _unref(color) ? _unref(color) : _unref(sportColors)[_unref(sportLabel)] }),\n title: _unref(title) ? _unref(title) : _ctx.$t(`sports.${_unref(sportLabel)}.LABEL`)\n }, [\n (_unref(sportLabel) === 'Cycling (Sport)')\n ? (_openBlock(), _createBlock(CyclingSport, { key: 0 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Cycling (Transport)')\n ? (_openBlock(), _createBlock(CyclingTransport, { key: 1 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Cycling (Virtual)')\n ? (_openBlock(), _createBlock(CyclingVirtual, { key: 2 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Hiking')\n ? (_openBlock(), _createBlock(Hiking, { key: 3 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountain Biking')\n ? (_openBlock(), _createBlock(MountainBiking, { key: 4 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountain Biking (Electric)')\n ? (_openBlock(), _createBlock(MountainBikingElectric, { key: 5 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountaineering')\n ? (_openBlock(), _createBlock(Mountaineering, { key: 6 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Rowing')\n ? (_openBlock(), _createBlock(Rowing, { key: 7 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Running')\n ? (_openBlock(), _createBlock(Running, { key: 8 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Alpine)')\n ? (_openBlock(), _createBlock(SkiingAlpine, { key: 9 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Cross Country)')\n ? (_openBlock(), _createBlock(SkiingCrossCountry, { key: 10 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Snowshoes')\n ? (_openBlock(), _createBlock(Snowshoes, { key: 11 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Trail')\n ? (_openBlock(), _createBlock(Trail, { key: 12 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Walking')\n ? (_openBlock(), _createBlock(Walking, { key: 13 }))\n : _createCommentVNode(\"\", true)\n ], 12, _hoisted_1))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n","import { render } from \"./Loader.vue?vue&type=template&id=4c9921ee&scoped=true\"\nconst script = {}\n\nimport \"./Loader.vue?vue&type=style&index=0&id=4c9921ee&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4c9921ee\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-e8fcfaba\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"modal\" }\nconst _hoisted_2 = { class: \"custom-modal\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"modal-message\"\n}\nconst _hoisted_4 = {\n key: 1,\n class: \"modal-message\"\n}\nconst _hoisted_5 = { class: \"modal-buttons\" }\n\nimport { ComputedRef, computed, toRefs, withDefaults, onUnmounted } from 'vue'\n\n import { ROOT_STORE } from '@/store/constants'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n title: string\n message: string\n strongMessage?: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Modal',\n props: {\n title: null,\n message: null,\n strongMessage: { default: () => null }\n },\n emits: ['cancelAction', 'confirmAction'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { title: string, message: string, strongMessage: string | null };\n\n \n\n \n\n const store = useStore()\n\n const { title, message, strongMessage } = toRefs(props)\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n onUnmounted(() => store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES))\n\nreturn (_ctx: any,_cache: any) => {\n const _component_i18n_t = _resolveComponent(\"i18n-t\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(title)), 1)\n ]),\n content: _withCtx(() => [\n (_unref(strongMessage))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createVNode(_component_i18n_t, { keypath: _unref(message) }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString(_unref(strongMessage)), 1)\n ]),\n _: 1\n }, 8, [\"keypath\"])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, _toDisplayString(_unref(message)), 1)),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 2,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_5, [\n (!_unref(errorMessages))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"confirm\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (emit('confirmAction')))\n }, _toDisplayString(_ctx.$t('buttons.YES')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (emit('cancelAction')))\n }, _toDisplayString(_ctx.$t(`buttons.${_unref(errorMessages) ? 'CANCEL' : 'NO'}`)), 1)\n ])\n ]),\n _: 1\n })\n ])\n ]))\n}\n}\n\n})","import script from \"./Modal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Modal.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Modal.vue?vue&type=style&index=0&id=e8fcfaba&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-e8fcfaba\"]])\n\nexport default __exports__","import AlertMessage from '@/components/Common/AlertMessage.vue'\nimport Card from '@/components/Common/Card.vue'\nimport CustomTextArea from '@/components/Common/CustomTextArea.vue'\nimport Distance from '@/components/Common/Distance.vue'\nimport Dropdown from '@/components/Common/Dropdown.vue'\nimport ErrorMessage from '@/components/Common/ErrorMessage.vue'\nimport SportImage from '@/components/Common/Images/SportImage/index.vue'\nimport Loader from '@/components/Common/Loader.vue'\nimport Modal from '@/components/Common/Modal.vue'\n\nexport const customComponents = [\n { target: AlertMessage, name: 'AlertMessage' },\n { target: Card, name: 'Card' },\n { target: CustomTextArea, name: 'CustomTextArea' },\n { target: Distance, name: 'Distance' },\n { target: Dropdown, name: 'Dropdown' },\n { target: ErrorMessage, name: 'ErrorMessage' },\n { target: Loader, name: 'Loader' },\n { target: Modal, name: 'Modal' },\n { target: SportImage, name: 'SportImage' },\n]\n","import { Directive, DirectiveBinding } from 'vue'\n\ninterface ClickOutsideHTMLElement extends HTMLElement {\n clickOutsideEvent?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport const clickOutsideDirective: Directive = {\n mounted: (\n element: ClickOutsideHTMLElement,\n binding: DirectiveBinding\n ): void => {\n element.clickOutsideEvent = function (event) {\n if (!(element === event.target || element.contains(event.target))) {\n binding.value(event)\n }\n }\n document.body.addEventListener('click', element.clickOutsideEvent)\n document.body.addEventListener('touchstart', element.clickOutsideEvent)\n },\n unmounted: function (element: ClickOutsideHTMLElement): void {\n if (element.clickOutsideEvent) {\n document.body.removeEventListener('click', element.clickOutsideEvent)\n document.body.removeEventListener('touchstart', element.clickOutsideEvent)\n element.clickOutsideEvent = undefined\n }\n },\n}\n","import {\n Chart,\n BarElement,\n LineElement,\n PointElement,\n Legend,\n Title,\n Tooltip,\n Filler,\n BarController,\n CategoryScale,\n LineController,\n LinearScale,\n} from 'chart.js'\nimport ChartDataLabels from 'chartjs-plugin-datalabels'\nimport { createApp } from 'vue'\nimport VueFullscreen from 'vue-fullscreen'\n\nimport './registerServiceWorker'\nimport App from './App.vue'\nimport i18n from './i18n'\nimport router from './router'\nimport store from './store'\n\nimport { customComponents } from '@/custom-components'\nimport { clickOutsideDirective } from '@/directives'\nimport { sportColors } from '@/utils/sports'\n\nChart.register(\n BarElement,\n LineElement,\n PointElement,\n Legend,\n Title,\n Tooltip,\n Filler,\n BarController,\n CategoryScale,\n LineController,\n LinearScale,\n ChartDataLabels\n)\n\nconst app = createApp(App)\n .provide('sportColors', sportColors)\n .use(i18n)\n .use(store)\n .use(router)\n .use(VueFullscreen, { name: 'VFullscreen' })\n .directive('click-outside', clickOutsideDirective)\n\ncustomComponents.forEach((component) => {\n app.component(component.name, component.target)\n})\n\napp.mount('#app')\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, vModelText as _vModelText, withDirectives as _withDirectives, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, withModifiers as _withModifiers, withCtx as _withCtx, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-24ec93e2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-app\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = [\"onSubmit\"]\nconst _hoisted_3 = { for: \"admin_contact\" }\nconst _hoisted_4 = [\"value\"]\nconst _hoisted_5 = [\"disabled\"]\nconst _hoisted_6 = { for: \"max_users\" }\nconst _hoisted_7 = [\"disabled\"]\nconst _hoisted_8 = { class: \"user-limit-help\" }\nconst _hoisted_9 = { class: \"info-box\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = { for: \"max_single_file_size\" }\nconst _hoisted_12 = [\"disabled\"]\nconst _hoisted_13 = { for: \"max_zip_file_size\" }\nconst _hoisted_14 = [\"disabled\"]\nconst _hoisted_15 = { for: \"gpx_limit_import\" }\nconst _hoisted_16 = [\"disabled\"]\nconst _hoisted_17 = {\n key: 1,\n class: \"form-buttons\"\n}\nconst _hoisted_18 = {\n class: \"confirm\",\n type: \"submit\"\n}\nconst _hoisted_19 = [\"onClick\"]\nconst _hoisted_20 = {\n key: 2,\n class: \"form-buttons\"\n}\n\nimport {\n ComputedRef,\n computed,\n reactive,\n withDefaults,\n onBeforeMount,\n toRefs,\n } from 'vue'\n import { useRouter } from 'vue-router'\n\n import { ROOT_STORE } from '@/store/constants'\n import { TAppConfig, TAppConfigForm } from '@/types/application'\n import { useStore } from '@/use/useStore'\n import { getFileSizeInMB } from '@/utils/files'\n\n interface Props {\n appConfig: TAppConfig\n edition?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminApplication',\n props: {\n appConfig: null,\n edition: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { appConfig: TAppConfig, edition: boolean };\n\n \n const { edition } = toRefs(props)\n\n const store = useStore()\n const router = useRouter()\n\n const appData: TAppConfigForm = reactive({\n admin_contact: '',\n max_users: 0,\n max_single_file_size: 0,\n max_zip_file_size: 0,\n gpx_limit_import: 0,\n })\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onBeforeMount(() => {\n if (props.appConfig) {\n updateForm(props.appConfig)\n }\n })\n\n function updateForm(appConfig: TAppConfig) {\n Object.keys(appData).map((key) => {\n ['max_single_file_size', 'max_zip_file_size'].includes(key)\n ? // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n (appData[key] = getFileSizeInMB(appConfig[key]))\n : // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n (appData[key] = appConfig[key])\n })\n }\n function onCancel() {\n updateForm(props.appConfig)\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n router.push('/admin/application')\n }\n function onSubmit() {\n const formData: TAppConfigForm = Object.assign({}, appData)\n formData.max_single_file_size *= 1048576\n formData.max_zip_file_size *= 1048576\n store.dispatch(ROOT_STORE.ACTIONS.UPDATE_APPLICATION_CONFIG, formData)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.TITLE')), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"form\", {\n class: \"admin-form\",\n onSubmit: _withModifiers(onSubmit, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_3, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.ADMIN_CONTACT')) + \": \", 1),\n (!_unref(edition) && !appData.admin_contact)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n class: \"no-contact\",\n value: _ctx.$t('admin.APP_CONFIG.NO_CONTACT_EMAIL'),\n disabled: \"\"\n }, null, 8, _hoisted_4))\n : _withDirectives((_openBlock(), _createElementBlock(\"input\", {\n key: 1,\n id: \"admin_contact\",\n name: \"admin_contact\",\n type: \"email\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((appData.admin_contact) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_5)), [\n [_vModelText, appData.admin_contact]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_USERS_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"max_users\",\n name: \"max_users\",\n type: \"number\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((appData.max_users) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_7), [\n [_vModelText, appData.max_users]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"span\", _hoisted_9, [\n _hoisted_10,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_USERS_HELP')), 1)\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_11, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"max_single_file_size\",\n name: \"max_single_file_size\",\n type: \"number\",\n step: \"0.1\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((appData.max_single_file_size) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_12), [\n [_vModelText, appData.max_single_file_size]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_13, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"max_zip_file_size\",\n name: \"max_zip_file_size\",\n type: \"number\",\n step: \"0.1\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((appData.max_zip_file_size) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_14), [\n [_vModelText, appData.max_zip_file_size]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_15, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"gpx_limit_import\",\n name: \"gpx_limit_import\",\n type: \"number\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((appData.gpx_limit_import) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_16), [\n [_vModelText, appData.gpx_limit_import]\n ])\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(edition))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _createElementVNode(\"button\", _hoisted_18, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _withModifiers(onCancel, [\"prevent\"])\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 9, _hoisted_19)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_20, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n onClick: _cache[5] || (_cache[5] = _withModifiers(($event: any) => (_ctx.$router.push('/admin/application/edit')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.EDIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[6] || (_cache[6] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1)\n ]))\n ], 40, _hoisted_2)\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminApplication.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminApplication.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminApplication.vue?vue&type=style&index=0&id=24ec93e2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-24ec93e2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"stat-card\" }\nconst _hoisted_2 = { class: \"stat-content box\" }\nconst _hoisted_3 = { class: \"stat-icon\" }\nconst _hoisted_4 = { class: \"stat-details\" }\nconst _hoisted_5 = { class: \"stat-huge\" }\nconst _hoisted_6 = { class: \"stat\" }\n\nimport { toRefs } from 'vue'\n\n interface Props {\n icon: string\n text: string\n value: string | number\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'StatCard',\n props: {\n icon: null,\n text: null,\n value: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n icon: string\n text: string\n value: string | number\n };\n\n \n const { icon, text, value } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa\", `fa-${_unref(icon)}`])\n }, null, 2)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, _toDisplayString(_unref(value)), 1),\n _createElementVNode(\"div\", _hoisted_6, _toDisplayString(_unref(text)), 1)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./StatCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./StatCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./StatCard.vue?vue&type=style&index=0&id=6cbb3351&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-stats\" }\n\nimport { computed, toRefs } from 'vue'\n\n import StatCard from '@/components/Common/StatCard.vue'\n import { IAppStatistics } from '@/types/application'\n import { getReadableFileSize } from '@/utils/files'\n\n interface Props {\n appStatistics: IAppStatistics\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AppStatsCards',\n props: {\n appStatistics: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n appStatistics: IAppStatistics\n };\n\n \n\n const { appStatistics } = toRefs(props)\n const uploadDirSize = computed(() =>\n getReadableFileSize(appStatistics.value.uploads_dir_size, false)\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(StatCard, {\n icon: \"users\",\n value: _unref(appStatistics).users,\n text: _ctx.$t('admin.USER', _unref(appStatistics).users)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"tags\",\n value: _unref(appStatistics).sports,\n text: _ctx.$t('workouts.SPORT', _unref(appStatistics).sports)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"calendar\",\n value: _unref(appStatistics).workouts,\n text: _ctx.$t('workouts.WORKOUT', _unref(appStatistics).workouts)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"folder-open\",\n value: _unref(uploadDirSize).size,\n text: _unref(uploadDirSize).suffix\n }, null, 8, [\"value\", \"text\"])\n ]))\n}\n}\n\n})","import script from \"./AppStatsCards.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppStatsCards.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AppStatsCards.vue?vue&type=style&index=0&id=61c5053e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0dd66f89\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-menu\",\n class: \"center-card\"\n}\nconst _hoisted_2 = { class: \"admin-menu description-list\" }\nconst _hoisted_3 = { class: \"application-config-details\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_5 = { class: \"registration-status\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"email-sending-status\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-exclamation-triangle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { capitalize, toRefs, withDefaults } from 'vue'\n\n import AppStatsCards from '@/components/Administration/AppStatsCards.vue'\n import Card from '@/components/Common/Card.vue'\n import { IAppStatistics, TAppConfig } from '@/types/application'\n\n interface Props {\n appConfig: TAppConfig\n appStatistics?: IAppStatistics\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminMenu',\n props: {\n appConfig: null,\n appStatistics: { default: () => ({} as IAppStatistics) }\n },\n setup(__props: any) {\n\nconst props = __props as { appConfig: TAppConfig, appStatistics: IAppStatistics };\n\n \n\n const { appConfig, appStatistics } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.ADMINISTRATION')), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(AppStatsCards, { appStatistics: _unref(appStatistics) }, null, 8, [\"appStatistics\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, [\n _createVNode(_component_router_link, { to: \"/admin/application\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APPLICATION')), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"dd\", _hoisted_3, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.UPDATE_APPLICATION_DESCRIPTION')), 1),\n _hoisted_4,\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(_ctx.$t(\n `admin.REGISTRATION_${\n _unref(appConfig).is_registration_enabled ? 'ENABLED' : 'DISABLED'\n }`\n )), 1),\n (!_unref(appConfig).is_email_sending_enabled)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_6, [\n _hoisted_7,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('admin.EMAIL_SENDING_DISABLED')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"dt\", null, [\n _createVNode(_component_router_link, { to: \"/admin/sports\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('workouts.SPORT', 0))), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t('admin.ENABLE_DISABLE_SPORTS')), 1),\n _createElementVNode(\"dt\", null, [\n _createVNode(_component_router_link, { to: \"/admin/users\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('admin.USER', 0))), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t('admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT')), 1)\n ])\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminMenu.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminMenu.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminMenu.vue?vue&type=style&index=0&id=0dd66f89&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-0dd66f89\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withModifiers as _withModifiers, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, createBlock as _createBlock, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6d62af67\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-sports\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = { class: \"responsive-table\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, \"#\", -1))\nconst _hoisted_4 = { class: \"text-left\" }\nconst _hoisted_5 = { class: \"text-left sport-action\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, null, -1))\nconst _hoisted_7 = { class: \"text-center\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"cell-heading\" }, \"id\", -1))\nconst _hoisted_9 = { class: \"cell-heading\" }\nconst _hoisted_10 = { class: \"sport-label\" }\nconst _hoisted_11 = { class: \"cell-heading\" }\nconst _hoisted_12 = { class: \"text-center\" }\nconst _hoisted_13 = { class: \"cell-heading\" }\nconst _hoisted_14 = { class: \"sport-action\" }\nconst _hoisted_15 = { class: \"cell-heading\" }\nconst _hoisted_16 = { class: \"action-button\" }\nconst _hoisted_17 = [\"onClick\"]\nconst _hoisted_18 = {\n key: 0,\n class: \"has-workouts\"\n}\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-warning\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { ComputedRef, computed } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { ROOT_STORE, SPORTS_STORE } from '@/store/constants'\n import { ITranslatedSport } from '@/types/sports'\n import { useStore } from '@/use/useStore'\n import { translateSports } from '@/utils/sports'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminSports',\n setup(__props) {\n\n const { t } = useI18n()\n const store = useStore()\n\n const translatedSports: ComputedRef = computed(() =>\n translateSports(store.getters[SPORTS_STORE.GETTERS.SPORTS], t)\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n function updateSportStatus(id: number, isActive: boolean) {\n store.dispatch(SPORTS_STORE.ACTIONS.UPDATE_SPORTS, {\n id,\n isActive,\n })\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.SPORTS.TITLE')), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"button\", {\n class: \"top-button\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_3,\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.IMAGE')), 1),\n _createElementVNode(\"th\", _hoisted_4, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.LABEL')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.ACTIVE')), 1),\n _createElementVNode(\"th\", _hoisted_5, _toDisplayString(_ctx.$t('admin.ACTION')), 1),\n _hoisted_6\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports), (sport) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: sport.id\n }, [\n _createElementVNode(\"td\", _hoisted_7, [\n _hoisted_8,\n _createTextVNode(\" \" + _toDisplayString(sport.id), 1)\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.IMAGE')), 1),\n _createVNode(_component_SportImage, {\n title: sport.translatedLabel,\n \"sport-label\": sport.label,\n color: sport.color\n }, null, 8, [\"title\", \"sport-label\", \"color\"])\n ]),\n _createElementVNode(\"td\", _hoisted_10, [\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.LABEL')), 1),\n _createTextVNode(\" \" + _toDisplayString(sport.translatedLabel), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_12, [\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.ACTIVE')), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${sport.is_active ? '-check' : ''}`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _createElementVNode(\"td\", _hoisted_14, [\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(_ctx.$t('admin.ACTION')), 1),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"button\", {\n class: _normalizeClass({ danger: sport.is_active }),\n onClick: ($event: any) => (updateSportStatus(sport.id, !sport.is_active))\n }, _toDisplayString(_ctx.$t(`buttons.${sport.is_active ? 'DIS' : 'EN'}ABLE`)), 11, _hoisted_17),\n (sport.has_workouts)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_18, [\n _hoisted_19,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.HAS_WORKOUTS')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]))\n }), 128))\n ])\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1)\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminSports.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminSports.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminSports.vue?vue&type=style&index=0&id=6d62af67&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6d62af67\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { vModelText as _vModelText, withKeys as _withKeys, createElementVNode as _createElementVNode, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-627a8e91\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"users-filters\" }\nconst _hoisted_2 = { class: \"search-username\" }\nconst _hoisted_3 = [\"onKeyup\", \"placeholder\"]\n\nimport { ref } from 'vue'\n import { useRoute } from 'vue-router'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UsersNameFilter',\n emits: ['filterOnUsername'],\n setup(__props, { emit }) {\n\n const route = useRoute()\n const username = ref(route.query.q ? route.query.q : '')\n\n \n function searchUsers() {\n if (username.value !== '') {\n emit('filterOnUsername', username)\n }\n }\n function resetFilter() {\n username.value = ''\n emit('filterOnUsername', username.value)\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _withDirectives(_createElementVNode(\"input\", {\n id: \"username\",\n name: \"username\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((username).value = $event)),\n onKeyup: _withKeys(searchUsers, [\"enter\"]),\n placeholder: _ctx.$t('user.FILTER_ON_USERNAME')\n }, null, 40, _hoisted_3), [\n [\n _vModelText,\n username.value,\n void 0,\n { trim: true }\n ]\n ]),\n (username.value !== '')\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"fa fa-times\",\n \"aria-hidden\": \"true\",\n onClick: resetFilter\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa fa-search\", { 'fa-disabled': username.value === '' }]),\n \"aria-hidden\": \"true\",\n onClick: searchUsers\n }, null, 2)\n ]))\n}\n}\n\n})","import script from \"./UsersNameFilter.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./UsersNameFilter.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./UsersNameFilter.vue?vue&type=style&index=0&id=627a8e91&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-627a8e91\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withModifiers as _withModifiers, createElementVNode as _createElementVNode, createVNode as _createVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, withCtx as _withCtx, normalizeClass as _normalizeClass, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-dc12ff78\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-users\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"no-users\"\n}\nconst _hoisted_3 = {\n key: 1,\n class: \"responsive-table\"\n}\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, \"#\", -1))\nconst _hoisted_5 = { class: \"left-text\" }\nconst _hoisted_6 = { class: \"left-text\" }\nconst _hoisted_7 = { class: \"left-text\" }\nconst _hoisted_8 = { class: \"cell-heading\" }\nconst _hoisted_9 = { class: \"cell-heading\" }\nconst _hoisted_10 = { class: \"cell-heading\" }\nconst _hoisted_11 = { class: \"cell-heading\" }\nconst _hoisted_12 = { class: \"text-center\" }\nconst _hoisted_13 = { class: \"cell-heading\" }\nconst _hoisted_14 = { class: \"text-center\" }\nconst _hoisted_15 = { class: \"cell-heading\" }\nconst _hoisted_16 = { class: \"text-center\" }\nconst _hoisted_17 = { class: \"cell-heading\" }\nconst _hoisted_18 = { class: \"text-center\" }\nconst _hoisted_19 = { class: \"cell-heading\" }\nconst _hoisted_20 = [\"disabled\", \"onClick\"]\n\nimport {\n ComputedRef,\n Ref,\n computed,\n reactive,\n watch,\n capitalize,\n onBeforeMount,\n onUnmounted,\n } from 'vue'\n import { LocationQuery, useRoute, useRouter } from 'vue-router'\n\n import FilterSelects from '@/components/Common/FilterSelects.vue'\n import Pagination from '@/components/Common/Pagination.vue'\n import UserPicture from '@/components/User/UserPicture.vue'\n import UsersNameFilter from '@/components/Users/UsersNameFilter.vue'\n import { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\n import { IPagination, TPaginationPayload } from '@/types/api'\n import { IAuthUserProfile, IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getQuery, sortList } from '@/utils/api'\n import { formatDate } from '@/utils/dates'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminUsers',\n setup(__props) {\n\n const store = useStore()\n const route = useRoute()\n const router = useRouter()\n\n const orderByList: string[] = [\n 'is_active',\n 'admin',\n 'created_at',\n 'username',\n 'workouts_count',\n ]\n const defaultOrderBy = 'created_at'\n let query: TPaginationPayload = reactive(\n getQuery(route.query, orderByList, defaultOrderBy)\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const users: ComputedRef = computed(\n () => store.getters[USERS_STORE.GETTERS.USERS]\n )\n const pagination: ComputedRef = computed(\n () => store.getters[USERS_STORE.GETTERS.USERS_PAGINATION]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onBeforeMount(() => loadUsers(query))\n\n function loadUsers(queryParams: TPaginationPayload) {\n store.dispatch(USERS_STORE.ACTIONS.GET_USERS, queryParams)\n }\n function searchUsers(username: Ref) {\n reloadUsers('q', username.value)\n }\n\n function updateUser(username: string, admin: boolean) {\n store.dispatch(USERS_STORE.ACTIONS.UPDATE_USER, {\n username,\n admin,\n })\n }\n function reloadUsers(queryParam: string, queryValue: string) {\n query[queryParam] = queryValue\n if (queryParam === 'per_page') {\n query.page = 1\n }\n router.push({ path: '/admin/users', query })\n }\n\n onUnmounted(() => {\n store.dispatch(USERS_STORE.ACTIONS.EMPTY_USERS)\n })\n\n watch(\n () => route.query,\n (newQuery: LocationQuery) => {\n query = getQuery(newQuery, orderByList, defaultOrderBy, { query })\n loadUsers(query)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('admin.USER', 0))), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"button\", {\n class: \"top-button\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1),\n _createVNode(UsersNameFilter, { onFilterOnUsername: searchUsers }),\n _createVNode(FilterSelects, {\n sort: _unref(sortList),\n order_by: orderByList,\n query: _unref(query),\n message: \"admin.USERS.SELECTS.ORDER_BY\",\n onUpdateSelect: reloadUsers\n }, null, 8, [\"sort\", \"query\"]),\n (_unref(users).length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t('user.NO_USERS_FOUND')), 1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_4,\n _createElementVNode(\"th\", _hoisted_5, _toDisplayString(_ctx.$t('user.USERNAME')), 1),\n _createElementVNode(\"th\", _hoisted_6, _toDisplayString(_ctx.$t('user.EMAIL')), 1),\n _createElementVNode(\"th\", _hoisted_7, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 0))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.ACTIVE')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.ADMIN')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.ACTION')), 1)\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(users), (user) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: user.username\n }, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE')), 1),\n _createVNode(UserPicture, { user: user }, null, 8, [\"user\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t('user.USERNAME')), 1),\n _createVNode(_component_router_link, {\n to: `/admin/users/${user.username}`\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(user.username), 1)\n ]),\n _: 2\n }, 1032, [\"to\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(_ctx.$t('user.EMAIL')), 1),\n _createTextVNode(\" \" + _toDisplayString(user.email), 1)\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')), 1),\n _createTextVNode(\" \" + _toDisplayString(_unref(formatDate)(\n user.created_at,\n _unref(authUser).timezone,\n _unref(authUser).date_format\n )), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_12, [\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 0))), 1),\n _createTextVNode(\" \" + _toDisplayString(user.nb_workouts), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_14, [\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(_ctx.$t('admin.ACTIVE')), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${user.is_active ? '-check' : ''}-square-o`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _createElementVNode(\"td\", _hoisted_16, [\n _createElementVNode(\"span\", _hoisted_17, _toDisplayString(_ctx.$t('user.ADMIN')), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${user.admin ? '-check' : ''}-square-o`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _createElementVNode(\"td\", _hoisted_18, [\n _createElementVNode(\"span\", _hoisted_19, _toDisplayString(_ctx.$t('admin.ACTION')), 1),\n _createElementVNode(\"button\", {\n class: _normalizeClass({ danger: user.admin }),\n disabled: user.username === _unref(authUser).username,\n onClick: ($event: any) => (updateUser(user.username, !user.admin))\n }, _toDisplayString(_ctx.$t(\n `admin.USERS.TABLE.${\n user.admin ? 'REMOVE' : 'ADD'\n }_ADMIN_RIGHTS`\n )), 11, _hoisted_20)\n ])\n ]))\n }), 128))\n ])\n ]),\n (_unref(pagination).page)\n ? (_openBlock(), _createBlock(Pagination, {\n key: 0,\n path: \"/admin/users\",\n pagination: _unref(pagination),\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"]))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 1,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1)\n ]))\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminUsers.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminUsers.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminUsers.vue?vue&type=style&index=0&id=dc12ff78&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-dc12ff78\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString } from \"vue\"\n\nconst _hoisted_1 = { class: \"profile-tabs custom-checkboxes-group\" }\nconst _hoisted_2 = { class: \"profile-tabs-checkboxes custom-checkboxes\" }\nconst _hoisted_3 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\n\nimport { toRefs, withDefaults } from 'vue'\n\n interface Props {\n tabs: string[]\n selectedTab: string\n edition: boolean\n disabled?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserProfileTabs',\n props: {\n tabs: null,\n selectedTab: null,\n edition: { type: Boolean },\n disabled: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { tabs: string[], selectedTab: string, edition: boolean, disabled: boolean };\n\n \n\n const { tabs, selectedTab, disabled } = toRefs(props)\n\n function getPath(tab: string) {\n switch (tab) {\n case 'ACCOUNT':\n case 'PICTURE':\n return `/profile/edit/${tab.toLocaleLowerCase()}`\n case 'APPS':\n case 'PREFERENCES':\n case 'SPORTS':\n return `/profile${\n props.edition ? '/edit' : ''\n }/${tab.toLocaleLowerCase()}`\n default:\n case 'PROFILE':\n return `/profile${props.edition ? '/edit' : ''}`\n }\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(tabs), (tab) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"profile-tab custom-checkbox\",\n key: tab\n }, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: tab,\n name: tab,\n checked: _unref(selectedTab).split('/')[0] === tab,\n disabled: _unref(disabled),\n onInput: ($event: any) => (_ctx.$router.push(getPath(tab)))\n }, null, 40, _hoisted_3),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t(`user.PROFILE.TABS.${tab}`)), 1)\n ])\n ]))\n }), 128))\n ])\n ]))\n}\n}\n\n})","import script from \"./UserProfileTabs.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserProfileTabs.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserProfileTabs.vue?vue&type=style&index=0&id=01b05f01&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-9729cba4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-profile\" }\nconst _hoisted_2 = { class: \"box\" }\n\nimport { toRefs } from 'vue'\n\n import UserHeader from '@/components/User/ProfileDisplay/UserHeader.vue'\n import UserProfileTabs from '@/components/User/UserProfileTabs.vue'\n import { IUserProfile } from '@/types/user'\n\n interface Props {\n user: IUserProfile\n tab: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null,\n tab: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n tab: string\n };\n\n \n\n const { user, tab } = toRefs(props)\n const tabs = ['PROFILE', 'PREFERENCES', 'SPORTS', 'APPS']\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(UserHeader, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(UserProfileTabs, {\n tabs: tabs,\n selectedTab: _unref(tab),\n edition: false\n }, null, 8, [\"selectedTab\"]),\n _createVNode(_component_router_view, { user: _unref(user) }, null, 8, [\"user\"])\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=9729cba4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-9729cba4\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"user-preferences\",\n class: \"description-list\"\n}\nconst _hoisted_2 = { class: \"profile-buttons\" }\n\nimport { computed, ComputedRef } from 'vue'\n\n import { ROOT_STORE } from '@/store/constants'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getDateFormat } from '@/utils/dates'\n import { languageLabels } from '@/utils/locales'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPreferences',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const appLanguage: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const userLanguage = computed(() =>\n props.user.language\n ? languageLabels[props.user.language]\n : languageLabels['en']\n )\n const fistDayOfWeek = computed(() => (props.user.weekm ? 'MONDAY' : 'SUNDAY'))\n const timezone = computed(() =>\n props.user.timezone ? props.user.timezone : 'Europe/Paris'\n )\n const date_format = computed(() =>\n props.user.date_format ? props.user.date_format : 'MM/dd/yyyy'\n )\n const display_ascent = computed(() =>\n props.user.display_ascent ? 'DISPLAYED' : 'HIDDEN'\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.LANGUAGE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(userLanguage)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.TIMEZONE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(timezone)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.DATE_FORMAT')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(getDateFormat)(_unref(date_format), _unref(appLanguage))), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.FIRST_DAY_OF_WEEK')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(`user.PROFILE.${_unref(fistDayOfWeek)}`)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.UNITS.LABEL')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(\n `user.PROFILE.UNITS.${__props.user.imperial_units ? 'IMPERIAL' : 'METRIC'}`\n )), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.ASCENT_DATA')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(`common.${_unref(display_ascent)}`)), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile/edit/preferences')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT_PREFERENCES')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPreferences.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPreferences.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"user-profile-edition\",\n class: \"center-card\"\n}\n\nimport { computed, toRefs } from 'vue'\n\n import UserProfileTabs from '@/components/User/UserProfileTabs.vue'\n import { AUTH_USER_STORE } from '@/store/constants'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n tab: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null,\n tab: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n tab: string\n };\n\n \n\n const store = useStore()\n\n const { user, tab } = toRefs(props)\n const tabs = ['PROFILE', 'ACCOUNT', 'PICTURE', 'PREFERENCES', 'SPORTS']\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(`user.PROFILE.${_unref(tab)}_EDITION`)), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(UserProfileTabs, {\n tabs: tabs,\n selectedTab: _unref(tab),\n edition: true,\n disabled: _unref(loading)\n }, null, 8, [\"selectedTab\", \"disabled\"]),\n _createVNode(_component_router_view, { user: _unref(user) }, null, 8, [\"user\"])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, vModelText as _vModelText, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createTextVNode as _createTextVNode, createVNode as _createVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-37b8c4c8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-infos-edition\" }\nconst _hoisted_2 = { class: \"profile-form form-box\" }\nconst _hoisted_3 = {\n key: 1,\n class: \"info-box success-message\"\n}\nconst _hoisted_4 = [\"onSubmit\"]\nconst _hoisted_5 = {\n class: \"form-items\",\n for: \"email\"\n}\nconst _hoisted_6 = [\"disabled\"]\nconst _hoisted_7 = {\n class: \"form-items\",\n for: \"password-field\"\n}\nconst _hoisted_8 = {\n class: \"form-items\",\n for: \"new-password-field\"\n}\nconst _hoisted_9 = { class: \"form-buttons\" }\nconst _hoisted_10 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport {\n ComputedRef,\n Ref,\n computed,\n reactive,\n ref,\n toRefs,\n onMounted,\n watch,\n onUnmounted,\n } from 'vue'\n\n import PasswordInput from '@/components/Common/PasswordInput.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { IUserProfile, IUserAccountPayload } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserAccountEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n };\n\n \n const { user } = toRefs(props)\n\n const store = useStore()\n const userForm: IUserAccountPayload = reactive({\n email: '',\n password: '',\n new_password: '',\n })\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const isSuccess: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_SUCCESS]\n )\n const emailUpdate = ref(false)\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const formErrors = ref(false)\n const displayModal: Ref = ref(false)\n\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function invalidateForm() {\n formErrors.value = true\n }\n function updateUserForm(user: IUserProfile) {\n userForm.email = user.email\n }\n function updatePassword(password: string) {\n userForm.password = password\n }\n function updateNewPassword(new_password: string) {\n userForm.new_password = new_password\n }\n function updateProfile() {\n const payload: IUserAccountPayload = {\n email: userForm.email,\n password: userForm.password,\n }\n if (userForm.new_password) {\n payload.new_password = userForm.new_password\n }\n emailUpdate.value = userForm.email !== user.value.email\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_ACCOUNT, payload)\n }\n function updateDisplayModal(value: boolean) {\n displayModal.value = value\n }\n function deleteAccount(username: string) {\n store.dispatch(AUTH_USER_STORE.ACTIONS.DELETE_ACCOUNT, { username })\n }\n\n onUnmounted(() => {\n store.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\n watch(\n () => isSuccess.value,\n async (isSuccessValue) => {\n if (isSuccessValue) {\n updatePassword('')\n updateNewPassword('')\n updateUserForm(user.value)\n formErrors.value = false\n }\n }\n )\n watch(\n () => user.value.email,\n async () => {\n updateUserForm(user.value)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (displayModal.value)\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: _ctx.$t('user.CONFIRM_ACCOUNT_DELETION'),\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (deleteAccount(_unref(user).username))),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal(false)))\n }, null, 8, [\"title\", \"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(isSuccess))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.$t(\n `user.PROFILE.SUCCESSFUL_${\n emailUpdate.value && _unref(appConfig).is_email_sending_enabled ? 'EMAIL_' : ''\n }UPDATE`\n )), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n class: _normalizeClass({ errors: formErrors.value }),\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_5, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.EMAIL')) + \"* \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"email\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((userForm.email) = $event)),\n disabled: _unref(loading),\n required: true,\n onInvalid: invalidateForm\n }, null, 40, _hoisted_6), [\n [_vModelText, userForm.email]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_7, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.CURRENT_PASSWORD')) + \"* \", 1),\n _createVNode(PasswordInput, {\n id: \"password-field\",\n disabled: _unref(loading),\n password: userForm.password,\n required: true,\n onUpdatePassword: updatePassword,\n onPasswordError: invalidateForm\n }, null, 8, [\"disabled\", \"password\"])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.NEW_PASSWORD')) + \" \", 1),\n _createVNode(PasswordInput, {\n id: \"new-password-field\",\n disabled: _unref(loading),\n checkStrength: true,\n password: userForm.new_password,\n isSuccess: false,\n onUpdatePassword: updateNewPassword,\n onPasswordError: invalidateForm\n }, null, 8, [\"disabled\", \"password\"])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"button\", _hoisted_10, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[3] || (_cache[3] = _withModifiers(($event: any) => (_ctx.$router.push('/profile')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1),\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (updateDisplayModal(true)), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.DELETE_MY_ACCOUNT')), 1)\n ])\n ], 42, _hoisted_4)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserAccountEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserAccountEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserAccountEdition.vue?vue&type=style&index=0&id=37b8c4c8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-37b8c4c8\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, vModelText as _vModelText, withDirectives as _withDirectives, createVNode as _createVNode, withModifiers as _withModifiers, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5e5a4552\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-infos-edition\" }\nconst _hoisted_2 = { class: \"profile-form form-box\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = {\n class: \"form-items\",\n for: \"registrationDate\"\n}\nconst _hoisted_5 = [\"value\"]\nconst _hoisted_6 = {\n class: \"form-items\",\n for: \"first_name\"\n}\nconst _hoisted_7 = [\"disabled\"]\nconst _hoisted_8 = {\n class: \"form-items\",\n for: \"last_name\"\n}\nconst _hoisted_9 = {\n class: \"form-items\",\n for: \"birth_date\"\n}\nconst _hoisted_10 = [\"disabled\"]\nconst _hoisted_11 = {\n class: \"form-items\",\n for: \"location\"\n}\nconst _hoisted_12 = [\"disabled\"]\nconst _hoisted_13 = { class: \"form-items\" }\nconst _hoisted_14 = { class: \"form-buttons\" }\nconst _hoisted_15 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport { format } from 'date-fns'\n import { ComputedRef, computed, reactive, onMounted, onUnmounted } from 'vue'\n\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IUserProfile, IUserPayload, IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserInfosEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const userForm: IUserPayload = reactive({\n first_name: '',\n last_name: '',\n birth_date: '',\n location: '',\n bio: '',\n })\n const registrationDate = computed(() =>\n props.user.created_at\n ? formatDate(\n props.user.created_at,\n props.user.timezone,\n props.user.date_format\n )\n : ''\n )\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function updateUserForm(user: IUserProfile) {\n userForm.first_name = user.first_name ? user.first_name : ''\n userForm.last_name = user.last_name ? user.last_name : ''\n userForm.birth_date = user.birth_date\n ? format(new Date(user.birth_date), 'yyyy-MM-dd')\n : ''\n userForm.location = user.location ? user.location : ''\n userForm.bio = user.bio ? user.bio : ''\n }\n function updateBio(value: string) {\n userForm.bio = value\n }\n function updateProfile() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PROFILE, userForm)\n }\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_CustomTextArea = _resolveComponent(\"CustomTextArea\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')) + \" \", 1),\n _createElementVNode(\"input\", {\n id: \"registrationDate\",\n value: _unref(registrationDate),\n disabled: \"\"\n }, null, 8, _hoisted_5)\n ]),\n _createElementVNode(\"label\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.FIRST_NAME')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"first_name\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((userForm.first_name) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_7), [\n [_vModelText, userForm.first_name]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LAST_NAME')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"last_name\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((userForm.last_name) = $event))\n }, null, 512), [\n [_vModelText, userForm.last_name]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_9, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.BIRTH_DATE')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"birth_date\",\n type: \"date\",\n class: \"birth-date\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((userForm.birth_date) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_10), [\n [_vModelText, userForm.birth_date]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_11, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LOCATION')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"location\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((userForm.location) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_12), [\n [_vModelText, userForm.location]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_13, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.BIO')) + \" \", 1),\n _createVNode(_component_CustomTextArea, {\n name: \"bio\",\n charLimit: 200,\n input: userForm.bio,\n disabled: _unref(loading),\n onUpdateValue: updateBio\n }, null, 8, [\"input\", \"disabled\"])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"button\", _hoisted_15, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (_ctx.$router.push('/profile')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserInfosEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserInfosEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserInfosEdition.vue?vue&type=style&index=0&id=5e5a4552&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5e5a4552\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementBlock as _createElementBlock, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-687e9604\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-picture-edition\" }\nconst _hoisted_2 = { class: \"user-picture-form\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = { class: \"picture-help\" }\nconst _hoisted_5 = { class: \"info-box\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_7 = { class: \"picture-buttons\" }\nconst _hoisted_8 = [\"disabled\"]\n\nimport { ComputedRef, Ref, computed, ref, toRefs, onUnmounted } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getReadableFileSize } from '@/utils/files'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPictureEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n };\n\n \n\n const store = useStore()\n\n const { user } = toRefs(props)\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const fileSizeLimit = appConfig.value.max_single_file_size\n ? getReadableFileSize(appConfig.value.max_single_file_size)\n : ''\n const pictureFile: Ref = ref(null)\n\n function deleteUserPicture() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.DELETE_PICTURE)\n }\n function updatePictureFile(event: Event & { target: HTMLInputElement }) {\n if (event.target.files) {\n pictureFile.value = event.target.files[0]\n }\n }\n function updateUserPicture() {\n if (pictureFile.value) {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PICTURE, {\n picture: pictureFile.value,\n })\n }\n }\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(UserPicture, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateUserPicture, [\"prevent\"])\n }, [\n _createElementVNode(\"input\", {\n type: \"file\",\n name: \"picture\",\n accept: \".png,.jpg,.gif\",\n onInput: updatePictureFile\n }, null, 32),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"span\", _hoisted_5, [\n _hoisted_6,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.MAX_SIZE')) + \": \" + _toDisplayString(_unref(fileSizeLimit)), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"button\", {\n type: \"submit\",\n disabled: !pictureFile.value\n }, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE_UPDATE')), 9, _hoisted_8),\n (_unref(user).picture)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"danger\",\n onClick: deleteUserPicture\n }, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE_REMOVE')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.BACK_TO_PROFILE')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPictureEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPictureEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPictureEdition.vue?vue&type=style&index=0&id=687e9604&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-687e9604\"]])\n\nexport default __exports__","export const timeZones = [\n 'Africa/Abidjan',\n 'Africa/Accra',\n 'Africa/Algiers',\n 'Africa/Bissau',\n 'Africa/Cairo',\n 'Africa/Casablanca',\n 'Africa/Ceuta',\n 'Africa/El_Aaiun',\n 'Africa/Johannesburg',\n 'Africa/Juba',\n 'Africa/Khartoum',\n 'Africa/Lagos',\n 'Africa/Maputo',\n 'Africa/Monrovia',\n 'Africa/Nairobi',\n 'Africa/Ndjamena',\n 'Africa/Sao_Tome',\n 'Africa/Tripoli',\n 'Africa/Tunis',\n 'Africa/Windhoek',\n 'America/Adak',\n 'America/Anchorage',\n 'America/Araguaina',\n 'America/Argentina/Buenos_Aires',\n 'America/Argentina/Catamarca',\n 'America/Argentina/Cordoba',\n 'America/Argentina/Jujuy',\n 'America/Argentina/La_Rioja',\n 'America/Argentina/Mendoza',\n 'America/Argentina/Rio_Gallegos',\n 'America/Argentina/Salta',\n 'America/Argentina/San_Juan',\n 'America/Argentina/San_Luis',\n 'America/Argentina/Tucuman',\n 'America/Argentina/Ushuaia',\n 'America/Asuncion',\n 'America/Atikokan',\n 'America/Bahia',\n 'America/Bahia_Banderas',\n 'America/Barbados',\n 'America/Belem',\n 'America/Belize',\n 'America/Blanc-Sablon',\n 'America/Boa_Vista',\n 'America/Bogota',\n 'America/Boise',\n 'America/Cambridge_Bay',\n 'America/Campo_Grande',\n 'America/Cancun',\n 'America/Caracas',\n 'America/Cayenne',\n 'America/Chicago',\n 'America/Chihuahua',\n 'America/Costa_Rica',\n 'America/Creston',\n 'America/Cuiaba',\n 'America/Curacao',\n 'America/Danmarkshavn',\n 'America/Dawson',\n 'America/Dawson_Creek',\n 'America/Denver',\n 'America/Detroit',\n 'America/Edmonton',\n 'America/Eirunepe',\n 'America/El_Salvador',\n 'America/Fortaleza',\n 'America/Fort_Nelson',\n 'America/Glace_Bay',\n 'America/Godthab',\n 'America/Goose_Bay',\n 'America/Grand_Turk',\n 'America/Guatemala',\n 'America/Guayaquil',\n 'America/Guyana',\n 'America/Halifax',\n 'America/Havana',\n 'America/Hermosillo',\n 'America/Indiana/Indianapolis',\n 'America/Indiana/Knox',\n 'America/Indiana/Marengo',\n 'America/Indiana/Petersburg',\n 'America/Indiana/Tell_City',\n 'America/Indiana/Vevay',\n 'America/Indiana/Vincennes',\n 'America/Indiana/Winamac',\n 'America/Inuvik',\n 'America/Iqaluit',\n 'America/Jamaica',\n 'America/Juneau',\n 'America/Kentucky/Louisville',\n 'America/Kentucky/Monticello',\n 'America/La_Paz',\n 'America/Lima',\n 'America/Los_Angeles',\n 'America/Maceio',\n 'America/Managua',\n 'America/Manaus',\n 'America/Martinique',\n 'America/Matamoros',\n 'America/Mazatlan',\n 'America/Menominee',\n 'America/Merida',\n 'America/Metlakatla',\n 'America/Mexico_City',\n 'America/Miquelon',\n 'America/Moncton',\n 'America/Monterrey',\n 'America/Montevideo',\n 'America/Nassau',\n 'America/New_York',\n 'America/Nipigon',\n 'America/Nome',\n 'America/Noronha',\n 'America/North_Dakota/Beulah',\n 'America/North_Dakota/Center',\n 'America/North_Dakota/New_Salem',\n 'America/Ojinaga',\n 'America/Panama',\n 'America/Pangnirtung',\n 'America/Paramaribo',\n 'America/Phoenix',\n 'America/Port-au-Prince',\n 'America/Port_of_Spain',\n 'America/Porto_Velho',\n 'America/Puerto_Rico',\n 'America/Punta_Arenas',\n 'America/Rainy_River',\n 'America/Rankin_Inlet',\n 'America/Recife',\n 'America/Regina',\n 'America/Resolute',\n 'America/Rio_Branco',\n 'America/Santarem',\n 'America/Santiago',\n 'America/Santo_Domingo',\n 'America/Sao_Paulo',\n 'America/Scoresbysund',\n 'America/Sitka',\n 'America/St_Johns',\n 'America/Swift_Current',\n 'America/Tegucigalpa',\n 'America/Thule',\n 'America/Thunder_Bay',\n 'America/Tijuana',\n 'America/Toronto',\n 'America/Vancouver',\n 'America/Whitehorse',\n 'America/Winnipeg',\n 'America/Yakutat',\n 'America/Yellowknife',\n 'Antarctica/Casey',\n 'Antarctica/Davis',\n 'Antarctica/DumontDUrville',\n 'Antarctica/Macquarie',\n 'Antarctica/Mawson',\n 'Antarctica/Palmer',\n 'Antarctica/Rothera',\n 'Antarctica/Syowa',\n 'Antarctica/Troll',\n 'Antarctica/Vostok',\n 'Asia/Almaty',\n 'Asia/Amman',\n 'Asia/Anadyr',\n 'Asia/Aqtau',\n 'Asia/Aqtobe',\n 'Asia/Ashgabat',\n 'Asia/Atyrau',\n 'Asia/Baghdad',\n 'Asia/Baku',\n 'Asia/Bangkok',\n 'Asia/Barnaul',\n 'Asia/Beirut',\n 'Asia/Bishkek',\n 'Asia/Brunei',\n 'Asia/Chita',\n 'Asia/Choibalsan',\n 'Asia/Colombo',\n 'Asia/Damascus',\n 'Asia/Dhaka',\n 'Asia/Dili',\n 'Asia/Dubai',\n 'Asia/Dushanbe',\n 'Asia/Famagusta',\n 'Asia/Gaza',\n 'Asia/Hebron',\n 'Asia/Ho_Chi_Minh',\n 'Asia/Hong_Kong',\n 'Asia/Hovd',\n 'Asia/Irkutsk',\n 'Asia/Jakarta',\n 'Asia/Jayapura',\n 'Asia/Jerusalem',\n 'Asia/Kabul',\n 'Asia/Kamchatka',\n 'Asia/Karachi',\n 'Asia/Kathmandu',\n 'Asia/Khandyga',\n 'Asia/Kolkata',\n 'Asia/Krasnoyarsk',\n 'Asia/Kuala_Lumpur',\n 'Asia/Kuching',\n 'Asia/Macau',\n 'Asia/Magadan',\n 'Asia/Makassar',\n 'Asia/Manila',\n 'Asia/Nicosia',\n 'Asia/Novokuznetsk',\n 'Asia/Novosibirsk',\n 'Asia/Omsk',\n 'Asia/Oral',\n 'Asia/Pontianak',\n 'Asia/Pyongyang',\n 'Asia/Qatar',\n 'Asia/Qostanay',\n 'Asia/Qyzylorda',\n 'Asia/Riyadh',\n 'Asia/Sakhalin',\n 'Asia/Samarkand',\n 'Asia/Seoul',\n 'Asia/Shanghai',\n 'Asia/Singapore',\n 'Asia/Srednekolymsk',\n 'Asia/Taipei',\n 'Asia/Tashkent',\n 'Asia/Tbilisi',\n 'Asia/Tehran',\n 'Asia/Thimphu',\n 'Asia/Tokyo',\n 'Asia/Tomsk',\n 'Asia/Ulaanbaatar',\n 'Asia/Urumqi',\n 'Asia/Ust-Nera',\n 'Asia/Vladivostok',\n 'Asia/Yakutsk',\n 'Asia/Yangon',\n 'Asia/Yekaterinburg',\n 'Asia/Yerevan',\n 'Atlantic/Azores',\n 'Atlantic/Bermuda',\n 'Atlantic/Canary',\n 'Atlantic/Cape_Verde',\n 'Atlantic/Faroe',\n 'Atlantic/Madeira',\n 'Atlantic/Reykjavik',\n 'Atlantic/South_Georgia',\n 'Atlantic/Stanley',\n 'Australia/Adelaide',\n 'Australia/Brisbane',\n 'Australia/Broken_Hill',\n 'Australia/Currie',\n 'Australia/Darwin',\n 'Australia/Eucla',\n 'Australia/Hobart',\n 'Australia/Lindeman',\n 'Australia/Lord_Howe',\n 'Australia/Melbourne',\n 'Australia/Perth',\n 'Australia/Sydney',\n 'Europe/Amsterdam',\n 'Europe/Andorra',\n 'Europe/Astrakhan',\n 'Europe/Athens',\n 'Europe/Belgrade',\n 'Europe/Berlin',\n 'Europe/Brussels',\n 'Europe/Bucharest',\n 'Europe/Budapest',\n 'Europe/Chisinau',\n 'Europe/Copenhagen',\n 'Europe/Dublin',\n 'Europe/Gibraltar',\n 'Europe/Helsinki',\n 'Europe/Istanbul',\n 'Europe/Kaliningrad',\n 'Europe/Kiev',\n 'Europe/Kirov',\n 'Europe/Lisbon',\n 'Europe/London',\n 'Europe/Luxembourg',\n 'Europe/Madrid',\n 'Europe/Malta',\n 'Europe/Minsk',\n 'Europe/Monaco',\n 'Europe/Moscow',\n 'Europe/Oslo',\n 'Europe/Paris',\n 'Europe/Prague',\n 'Europe/Riga',\n 'Europe/Rome',\n 'Europe/Samara',\n 'Europe/Saratov',\n 'Europe/Simferopol',\n 'Europe/Sofia',\n 'Europe/Stockholm',\n 'Europe/Tallinn',\n 'Europe/Tirane',\n 'Europe/Ulyanovsk',\n 'Europe/Uzhgorod',\n 'Europe/Vienna',\n 'Europe/Vilnius',\n 'Europe/Volgograd',\n 'Europe/Warsaw',\n 'Europe/Zaporozhye',\n 'Europe/Zurich',\n 'Indian/Chagos',\n 'Indian/Christmas',\n 'Indian/Cocos',\n 'Indian/Kerguelen',\n 'Indian/Mahe',\n 'Indian/Maldives',\n 'Indian/Mauritius',\n 'Indian/Reunion',\n 'Pacific/Apia',\n 'Pacific/Auckland',\n 'Pacific/Bougainville',\n 'Pacific/Chatham',\n 'Pacific/Chuuk',\n 'Pacific/Easter',\n 'Pacific/Efate',\n 'Pacific/Enderbury',\n 'Pacific/Fakaofo',\n 'Pacific/Fiji',\n 'Pacific/Funafuti',\n 'Pacific/Galapagos',\n 'Pacific/Gambier',\n 'Pacific/Guadalcanal',\n 'Pacific/Guam',\n 'Pacific/Honolulu',\n 'Pacific/Kiritimati',\n 'Pacific/Kosrae',\n 'Pacific/Kwajalein',\n 'Pacific/Majuro',\n 'Pacific/Marquesas',\n 'Pacific/Nauru',\n 'Pacific/Niue',\n 'Pacific/Norfolk',\n 'Pacific/Noumea',\n 'Pacific/Pago_Pago',\n 'Pacific/Palau',\n 'Pacific/Pitcairn',\n 'Pacific/Pohnpei',\n 'Pacific/Port_Moresby',\n 'Pacific/Rarotonga',\n 'Pacific/Tahiti',\n 'Pacific/Tarawa',\n 'Pacific/Tongatapu',\n 'Pacific/Wake',\n 'Pacific/Wallis',\n]\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, withKeys as _withKeys, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-47ea2903\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"tz-dropdown\" }\nconst _hoisted_2 = [\"value\", \"disabled\", \"onKeydown\"]\nconst _hoisted_3 = [\"onClick\", \"onMouseover\", \"autofocus\"]\n\nimport { Ref, ref, toRefs, watch, withDefaults } from 'vue'\n\n import { timeZones } from '@/utils/timezone'\n\n interface Props {\n input: string\n disabled?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'TimezoneDropdown',\n props: {\n input: null,\n disabled: { type: Boolean, default: false }\n },\n emits: ['updateTimezone'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { input: string, disabled: boolean };\n\n \n\n \n\n const { input, disabled } = toRefs(props)\n const timezone: Ref = ref(props.input)\n const isOpen: Ref = ref(false)\n const tzList: Ref = ref(null)\n const focusItemIndex: Ref = ref(0)\n\n function matchTimezone(t: string): RegExpMatchArray | null {\n return t.toLowerCase().match(timezone.value.toLowerCase())\n }\n function onMouseOver(index: number) {\n focusItemIndex.value = index\n }\n function onUpdateTimezone(value: string) {\n timezone.value = value\n isOpen.value = false\n emit('updateTimezone', value)\n }\n function onEnter(event: Event & { target: HTMLInputElement }) {\n event.preventDefault()\n if (tzList.value?.firstElementChild?.innerHTML) {\n onUpdateTimezone(tzList.value?.firstElementChild?.innerHTML)\n }\n }\n function openDropdown(event: Event & { target: HTMLInputElement }) {\n event.preventDefault()\n isOpen.value = true\n timezone.value = event.target.value.trim()\n }\n\n watch(\n () => props.input,\n (value) => {\n timezone.value = value\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"input\", {\n class: \"tz-dropdown-input\",\n id: \"timezone\",\n name: \"timezone\",\n value: timezone.value,\n disabled: _unref(disabled),\n required: \"\",\n onKeydown: [\n _cache[0] || (_cache[0] = _withKeys(($event: any) => (onUpdateTimezone(_unref(input))), [\"esc\"])),\n _withKeys(onEnter, [\"enter\"])\n ],\n onInput: openDropdown\n }, null, 40, _hoisted_2),\n (isOpen.value)\n ? (_openBlock(), _createElementBlock(\"ul\", {\n key: 0,\n class: \"tz-dropdown-list\",\n ref_key: \"tzList\",\n ref: tzList\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(timeZones).filter((t) => matchTimezone(t)), (tz, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: tz,\n class: _normalizeClass([\"tz-dropdown-item\", { focus: index === focusItemIndex.value }]),\n onClick: ($event: any) => (onUpdateTimezone(tz)),\n onMouseover: ($event: any) => (onMouseOver(index)),\n autofocus: index === focusItemIndex.value\n }, _toDisplayString(tz), 43, _hoisted_3))\n }), 128))\n ], 512))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./TimezoneDropdown.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./TimezoneDropdown.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./TimezoneDropdown.vue?vue&type=style&index=0&id=47ea2903&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-47ea2903\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, vModelSelect as _vModelSelect, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createTextVNode as _createTextVNode, createVNode as _createVNode, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3b8a9a12\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-preferences-edition\" }\nconst _hoisted_2 = { class: \"profile-form form-box\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = { class: \"form-items\" }\nconst _hoisted_5 = [\"disabled\"]\nconst _hoisted_6 = [\"value\"]\nconst _hoisted_7 = { class: \"form-items\" }\nconst _hoisted_8 = { class: \"form-items\" }\nconst _hoisted_9 = [\"disabled\"]\nconst _hoisted_10 = [\"value\"]\nconst _hoisted_11 = { class: \"form-items form-checkboxes\" }\nconst _hoisted_12 = { class: \"checkboxes-label\" }\nconst _hoisted_13 = { class: \"checkboxes\" }\nconst _hoisted_14 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\nconst _hoisted_15 = { class: \"checkbox-label\" }\nconst _hoisted_16 = { class: \"form-items form-checkboxes\" }\nconst _hoisted_17 = { class: \"checkboxes-label\" }\nconst _hoisted_18 = { class: \"checkboxes\" }\nconst _hoisted_19 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\nconst _hoisted_20 = { class: \"checkbox-label\" }\nconst _hoisted_21 = { class: \"form-items form-checkboxes\" }\nconst _hoisted_22 = { class: \"checkboxes-label\" }\nconst _hoisted_23 = { class: \"checkboxes\" }\nconst _hoisted_24 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\nconst _hoisted_25 = { class: \"checkbox-label\" }\nconst _hoisted_26 = { class: \"form-buttons\" }\nconst _hoisted_27 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport { ComputedRef, computed, reactive, onMounted, onUnmounted } from 'vue'\n\n import TimezoneDropdown from '@/components/User/ProfileEdition/TimezoneDropdown.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IUserPreferencesPayload, IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { availableDateFormatOptions } from '@/utils/dates'\n import { availableLanguages } from '@/utils/locales'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPreferencesEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const userForm: IUserPreferencesPayload = reactive({\n display_ascent: true,\n imperial_units: false,\n language: '',\n timezone: 'Europe/Paris',\n date_format: 'dd/MM/yyyy',\n weekm: false,\n })\n const weekStart = [\n {\n label: 'SUNDAY',\n value: false,\n },\n {\n label: 'MONDAY',\n value: true,\n },\n ]\n const imperialUnits = [\n {\n label: 'METRIC',\n value: false,\n },\n {\n label: 'IMPERIAL',\n value: true,\n },\n ]\n const ascentData = [\n {\n label: 'DISPLAYED',\n value: true,\n },\n {\n label: 'HIDDEN',\n value: false,\n },\n ]\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const dateFormatOptions = computed(() =>\n availableDateFormatOptions(\n new Date().toUTCString(),\n props.user.timezone,\n userForm.language\n )\n )\n\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function updateUserForm(user: IAuthUserProfile) {\n userForm.display_ascent = user.display_ascent\n userForm.imperial_units = user.imperial_units ? user.imperial_units : false\n userForm.language = user.language ? user.language : 'en'\n userForm.timezone = user.timezone ? user.timezone : 'Europe/Paris'\n userForm.date_format = user.date_format ? user.date_format : 'dd/MM/yyyy'\n userForm.weekm = user.weekm ? user.weekm : false\n }\n function updateProfile() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PREFERENCES, userForm)\n }\n function updateTZ(value: string) {\n userForm.timezone = value\n }\n function updateAscentDisplay(value: boolean) {\n userForm.display_ascent = value\n }\n function updateImperialUnit(value: boolean) {\n userForm.imperial_units = value\n }\n function updateWeekM(value: boolean) {\n userForm.weekm = value\n }\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LANGUAGE')) + \" \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"language\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((userForm.language) = $event)),\n disabled: _unref(loading)\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(availableLanguages), (lang) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: lang.value,\n key: lang.value\n }, _toDisplayString(lang.label), 9, _hoisted_6))\n }), 128))\n ], 8, _hoisted_5), [\n [_vModelSelect, userForm.language]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_7, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.TIMEZONE')) + \" \", 1),\n _createVNode(TimezoneDropdown, {\n input: userForm.timezone,\n disabled: _unref(loading),\n onUpdateTimezone: updateTZ\n }, null, 8, [\"input\", \"disabled\"])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.DATE_FORMAT')) + \" \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"date_format\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((userForm.date_format) = $event)),\n disabled: _unref(loading)\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(dateFormatOptions), (dateFormat) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: dateFormat.value,\n key: dateFormat.value\n }, _toDisplayString(dateFormat.label), 9, _hoisted_10))\n }), 128))\n ], 8, _hoisted_9), [\n [_vModelSelect, userForm.date_format]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(_ctx.$t('user.PROFILE.FIRST_DAY_OF_WEEK')), 1),\n _createElementVNode(\"div\", _hoisted_13, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(weekStart, (start) => {\n return _createElementVNode(\"label\", {\n key: start.label\n }, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: start.label,\n name: start.label,\n checked: start.value === userForm.weekm,\n disabled: _unref(loading),\n onInput: ($event: any) => (updateWeekM(start.value))\n }, null, 40, _hoisted_14),\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(_ctx.$t(`user.PROFILE.${start.label}`)), 1)\n ])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"span\", _hoisted_17, _toDisplayString(_ctx.$t('user.PROFILE.UNITS.LABEL')), 1),\n _createElementVNode(\"div\", _hoisted_18, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(imperialUnits, (unit) => {\n return _createElementVNode(\"label\", {\n key: unit.label\n }, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: unit.label,\n name: unit.label,\n checked: unit.value === userForm.imperial_units,\n disabled: _unref(loading),\n onInput: ($event: any) => (updateImperialUnit(unit.value))\n }, null, 40, _hoisted_19),\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t(`user.PROFILE.UNITS.${unit.label}`)), 1)\n ])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"span\", _hoisted_22, _toDisplayString(_ctx.$t('user.PROFILE.ASCENT_DATA')), 1),\n _createElementVNode(\"div\", _hoisted_23, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(ascentData, (status) => {\n return _createElementVNode(\"label\", {\n key: status.label\n }, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: status.label,\n name: status.label,\n checked: status.value === userForm.display_ascent,\n disabled: _unref(loading),\n onInput: ($event: any) => (updateAscentDisplay(status.value))\n }, null, 40, _hoisted_24),\n _createElementVNode(\"span\", _hoisted_25, _toDisplayString(_ctx.$t(`common.${status.label}`)), 1)\n ])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_26, [\n _createElementVNode(\"button\", _hoisted_27, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (_ctx.$router.push('/profile/preferences')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPreferencesEdition.vue?vue&type=style&index=0&id=3b8a9a12&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3b8a9a12\"]])\n\nexport default __exports__","export const oauth2_scopes = [\n 'profile:read',\n 'profile:write',\n 'users:read',\n 'users:write',\n 'workouts:read',\n 'workouts:write',\n]\n\nexport const admin_oauth2_scopes = ['application:write']\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, vModelText as _vModelText, withDirectives as _withDirectives, resolveComponent as _resolveComponent, createVNode as _createVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0657ee77\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"new-oauth2-app\" }\nconst _hoisted_2 = { id: \"new-oauth2-title\" }\nconst _hoisted_3 = { id: \"apps-form\" }\nconst _hoisted_4 = [\"onSubmit\"]\nconst _hoisted_5 = { class: \"form-items\" }\nconst _hoisted_6 = { class: \"form-item\" }\nconst _hoisted_7 = { for: \"app-name\" }\nconst _hoisted_8 = { class: \"form-item\" }\nconst _hoisted_9 = { for: \"app-description\" }\nconst _hoisted_10 = { class: \"form-item\" }\nconst _hoisted_11 = { for: \"app-url\" }\nconst _hoisted_12 = { class: \"form-item\" }\nconst _hoisted_13 = { for: \"app-redirect-uri\" }\nconst _hoisted_14 = { class: \"form-item-scope\" }\nconst _hoisted_15 = { class: \"form-item-scope-label\" }\nconst _hoisted_16 = { class: \"scope-label\" }\nconst _hoisted_17 = [\"name\", \"checked\", \"onChange\"]\nconst _hoisted_18 = [\"innerHTML\"]\nconst _hoisted_19 = { class: \"form-buttons\" }\nconst _hoisted_20 = [\"disabled\"]\n\nimport { computed, reactive } from 'vue'\n\n import { OAUTH2_STORE } from '@/store/constants'\n import { IOAuth2ClientPayload } from '@/types/oauth'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { admin_oauth2_scopes, oauth2_scopes } from '@/utils/oauth'\n\n interface Props {\n authUser: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AddUserApp',\n props: {\n authUser: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n authUser: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n const appForm = reactive({\n client_name: '',\n client_uri: '',\n client_description: '',\n redirect_uri: '',\n })\n const scopes: string[] = reactive([])\n const filtered_scopes = computed(() =>\n getScopes(props.authUser, admin_oauth2_scopes, oauth2_scopes)\n )\n\n function createApp() {\n const payload: IOAuth2ClientPayload = {\n client_name: appForm.client_name,\n client_description: appForm.client_description,\n client_uri: appForm.client_uri,\n redirect_uris: [appForm.redirect_uri],\n scope: scopes.sort().join(' '),\n }\n store.dispatch(OAUTH2_STORE.ACTIONS.CREATE_CLIENT, payload)\n }\n function updateDescription(value: string) {\n appForm.client_description = value\n }\n function updateScopes(scope: string) {\n const index = scopes.indexOf(scope)\n if (index > -1) {\n scopes.splice(index, 1)\n } else {\n scopes.push(scope)\n }\n }\n function getScopes(\n authUser: IAuthUserProfile,\n admin_scopes: string[],\n scopes: string[]\n ) {\n const filtered_scopes = [...scopes]\n if (authUser.admin) {\n filtered_scopes.push(...admin_scopes)\n }\n return filtered_scopes.sort()\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_CustomTextArea = _resolveComponent(\"CustomTextArea\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"h1\", _hoisted_2, _toDisplayString(_ctx.$t('oauth2.ADD_A_NEW_APP')), 1),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(createApp, [\"prevent\"])\n }, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"label\", _hoisted_7, _toDisplayString(_ctx.$t('oauth2.APP.NAME')) + \"*\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"app-name\",\n type: \"text\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((appForm.client_name) = $event))\n }, null, 512), [\n [_vModelText, appForm.client_name]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"label\", _hoisted_9, _toDisplayString(_ctx.$t('oauth2.APP.DESCRIPTION')), 1),\n _createVNode(_component_CustomTextArea, {\n name: \"app-description\",\n charLimit: 200,\n input: appForm.description,\n onUpdateValue: updateDescription\n }, null, 8, [\"input\"])\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"label\", _hoisted_11, _toDisplayString(_ctx.$t('oauth2.APP.URL')) + \"*\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"app-url\",\n type: \"text\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((appForm.client_uri) = $event))\n }, null, 512), [\n [_vModelText, appForm.client_uri]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"label\", _hoisted_13, _toDisplayString(_ctx.$t('oauth2.APP.REDIRECT_URL')) + \"* \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"app-redirect-uri\",\n type: \"text\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((appForm.redirect_uri) = $event))\n }, null, 512), [\n [_vModelText, appForm.redirect_uri]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"div\", _hoisted_15, _toDisplayString(_ctx.$t('oauth2.APP.SCOPE.LABEL')) + \"* \", 1),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(filtered_scopes), (scope) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"form-item-scope-checkboxes\",\n key: scope\n }, [\n _createElementVNode(\"label\", _hoisted_16, [\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n name: scope,\n checked: scopes.includes(scope),\n onChange: ($event: any) => (updateScopes(scope))\n }, null, 40, _hoisted_17),\n _createElementVNode(\"code\", null, _toDisplayString(scope), 1)\n ]),\n _createElementVNode(\"p\", {\n class: \"scope-description\",\n innerHTML: _ctx.$t(`oauth2.APP.SCOPE.${scope}_DESCRIPTION`)\n }, null, 8, _hoisted_18)\n ]))\n }), 128))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n type: \"submit\",\n disabled: scopes.length === 0\n }, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 9, _hoisted_20),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[3] || (_cache[3] = _withModifiers(() => _ctx.$router.push('/profile/apps'), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ], 40, _hoisted_4)\n ])\n ]))\n}\n}\n\n})","import script from \"./AddUserApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AddUserApp.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AddUserApp.vue?vue&type=style&index=0&id=0657ee77&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-0657ee77\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3b2fe9ed\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"authorize-oauth2-app\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { id: \"authorize-oauth2-title\" }\nconst _hoisted_4 = { class: \"oauth2-access description-list\" }\nconst _hoisted_5 = { class: \"client-scope\" }\nconst _hoisted_6 = [\"innerHTML\"]\nconst _hoisted_7 = { class: \"authorize-oauth2-buttons\" }\nconst _hoisted_8 = { key: 1 }\nconst _hoisted_9 = { class: \"no-app\" }\n\nimport { computed, ComputedRef, onBeforeMount } from 'vue'\n import { useRoute } from 'vue-router'\n\n import { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\n import { IOAuth2Client } from '@/types/oauth'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AuthorizeUserApp',\n setup(__props) {\n\n const route = useRoute()\n const store = useStore()\n\n const client: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENT]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onBeforeMount(() => loadApp())\n\n function loadApp() {\n if (route.query.client_id && typeof route.query.client_id === 'string') {\n store.dispatch(\n OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_CLIENT_ID,\n route.query.client_id\n )\n }\n }\n\n function authorizeApp() {\n store.dispatch(OAUTH2_STORE.ACTIONS.AUTHORIZE_CLIENT, {\n client_id: `${route.query.client_id}`,\n redirect_uri: `${route.query.redirect_uri}`,\n response_type: `${route.query.response_type}`,\n scope: `${route.query.scope}`,\n state: `${route.query.state ? route.query.state : ''}`,\n code_challenge: `${\n route.query.code_challenge ? route.query.code_challenge : ''\n }`,\n code_challenge_method: `${\n route.query.code_challenge_method\n ? route.query.code_challenge_method\n : ''\n }`,\n })\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_i18n_t = _resolveComponent(\"i18n-t\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(client).client_id)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"h1\", _hoisted_3, [\n _createVNode(_component_i18n_t, { keypath: \"oauth2.AUTHORIZE_APP\" }, {\n default: _withCtx(() => [\n _createVNode(_component_router_link, {\n to: { name: 'UserApp', params: { id: _unref(client).id } }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(client).name), 1)\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _: 1\n })\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"p\", null, _toDisplayString(_ctx.$t('oauth2.APP_REQUESTING_ACCESS')), 1),\n _createElementVNode(\"dl\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(client).scope.split(' '), (scope) => {\n return (_openBlock(), _createElementBlock(_Fragment, { key: scope }, [\n _createElementVNode(\"dt\", _hoisted_5, [\n _createElementVNode(\"code\", null, _toDisplayString(scope), 1)\n ]),\n _createElementVNode(\"dd\", {\n innerHTML: _ctx.$t(`oauth2.APP.SCOPE.${scope}_DESCRIPTION`)\n }, null, 8, _hoisted_6)\n ], 64))\n }), 128))\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: authorizeApp\n }, _toDisplayString(_ctx.$t('buttons.AUTHORIZE')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"p\", _hoisted_9, _toDisplayString(_ctx.$t('oauth2.NO_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n ]))\n}\n}\n\n})","import script from \"./AuthorizeUserApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AuthorizeUserApp.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AuthorizeUserApp.vue?vue&type=style&index=0&id=3b2fe9ed&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3b2fe9ed\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"oauth2-apps\" }\n\nimport { onUnmounted, toRefs } from 'vue'\n\n import { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const { user } = toRefs(props)\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n store.commit(OAUTH2_STORE.MUTATIONS.SET_CLIENTS, [])\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_router_view, { authUser: _unref(user) }, null, 8, [\"authUser\"])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3a844fa2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"oauth2-app\",\n class: \"description-list\"\n}\nconst _hoisted_2 = { key: 1 }\nconst _hoisted_3 = {\n key: 0,\n class: \"info-box success-message\"\n}\nconst _hoisted_4 = [\"title\"]\nconst _hoisted_5 = { key: 0 }\nconst _hoisted_6 = {\n key: 1,\n class: \"app-secret\"\n}\nconst _hoisted_7 = [\"title\"]\nconst _hoisted_8 = { class: \"client-scopes\" }\nconst _hoisted_9 = { class: \"app-buttons\" }\nconst _hoisted_10 = { key: 2 }\nconst _hoisted_11 = { class: \"no-app\" }\n\nimport {\n ComputedRef,\n Ref,\n capitalize,\n computed,\n onBeforeMount,\n toRefs,\n ref,\n onUnmounted,\n withDefaults,\n watch,\n } from 'vue'\n import { useRoute } from 'vue-router'\n\n import { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\n import { IOAuth2Client } from '@/types/oauth'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n authUser: IAuthUserProfile\n afterCreation?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserApp',\n props: {\n authUser: null,\n afterCreation: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { authUser: IAuthUserProfile, afterCreation: boolean };\n\n \n const route = useRoute()\n const store = useStore()\n\n const { afterCreation, authUser } = toRefs(props)\n const client: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENT]\n )\n const revocationSuccessful: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.REVOCATION_SUCCESSFUL]\n )\n const displayModal: Ref = ref(false)\n const messageToDisplay: Ref = ref(null)\n const idCopied: Ref = ref(false)\n const secretCopied: Ref = ref(false)\n const clipboardSupport: Ref = ref(false)\n\n onBeforeMount(() => {\n loadClient()\n if (navigator.clipboard) {\n clipboardSupport.value = true\n }\n })\n\n function loadClient() {\n // after creation, client is already in store\n if (\n !afterCreation.value &&\n route.params.id &&\n typeof route.params.id === 'string'\n ) {\n store.dispatch(OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_ID, +route.params.id)\n }\n }\n function updateMessageToDisplay(forDelete: boolean) {\n messageToDisplay.value = forDelete\n ? 'oauth2.APP_DELETION_CONFIRMATION'\n : 'oauth2.TOKENS_REVOCATION_CONFIRMATION'\n updateDisplayModal(true)\n }\n function updateDisplayModal(value: boolean) {\n displayModal.value = value\n if (!value) {\n messageToDisplay.value = null\n }\n }\n function confirmAction(clientId: number) {\n if (messageToDisplay.value === 'oauth2.APP_DELETION_CONFIRMATION') {\n store.dispatch(OAUTH2_STORE.ACTIONS.DELETE_CLIENT, clientId)\n } else {\n store.dispatch(OAUTH2_STORE.ACTIONS.REVOKE_ALL_TOKENS, clientId)\n }\n }\n function copyIdToClipboard() {\n navigator.clipboard.writeText(client.value.client_id)\n idCopied.value = true\n secretCopied.value = false\n setTimeout(() => {\n idCopied.value = false\n }, 3000)\n }\n function copySecretToClipboard() {\n if (client.value.client_secret) {\n navigator.clipboard.writeText(client.value.client_secret)\n secretCopied.value = true\n idCopied.value = false\n setTimeout(() => {\n secretCopied.value = false\n }, 3000)\n }\n }\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n store.commit(OAUTH2_STORE.MUTATIONS.EMPTY_CLIENT)\n store.commit(OAUTH2_STORE.MUTATIONS.SET_REVOCATION_SUCCESSFUL, false)\n })\n\n watch(\n () => revocationSuccessful.value,\n (newValue) => {\n if (newValue) {\n updateDisplayModal(false)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (displayModal.value)\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: _ctx.$t(messageToDisplay.value),\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (confirmAction(_unref(client).id))),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal(false)))\n }, null, 8, [\"title\", \"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(client) && _unref(client).client_id)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_unref(afterCreation) || _unref(revocationSuccessful))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.$t(\n _unref(afterCreation)\n ? 'oauth2.APP_CREATED_SUCCESSFULLY'\n : 'oauth2.TOKENS_REVOKED'\n )), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.CLIENT_ID')) + \":\", 1),\n _createElementVNode(\"dd\", null, [\n _createTextVNode(_toDisplayString(_unref(client).client_id) + \" \", 1),\n (_unref(afterCreation) && clipboardSupport.value)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: _normalizeClass(`fa fa-${idCopied.value ? 'check' : 'copy'}`),\n \"aria-hidden\": \"true\",\n title: _ctx.$t('oauth2.COPY_TO_CLIPBOARD'),\n onClick: copyIdToClipboard\n }, null, 10, _hoisted_4))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(afterCreation) && _unref(client).client_secret)\n ? (_openBlock(), _createElementBlock(\"dt\", _hoisted_5, _toDisplayString(_ctx.$t('oauth2.APP.CLIENT_SECRET')) + \": \", 1))\n : _createCommentVNode(\"\", true),\n (_unref(afterCreation) && _unref(client).client_secret)\n ? (_openBlock(), _createElementBlock(\"dd\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_unref(client).client_secret) + \" \", 1),\n (clipboardSupport.value)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: _normalizeClass(`fa fa-${secretCopied.value ? 'check' : 'copy'}`),\n \"aria-hidden\": \"true\",\n title: _ctx.$t('oauth2.COPY_TO_CLIPBOARD'),\n onClick: copySecretToClipboard\n }, null, 10, _hoisted_7))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"dt\", null, _toDisplayString(capitalize(_ctx.$t('oauth2.APP.ISSUE_AT'))) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(formatDate)(\n _unref(client).issued_at,\n _unref(authUser).timezone,\n _unref(authUser).date_format\n )), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.NAME')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(client).name), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.DESCRIPTION')) + \":\", 1),\n _createElementVNode(\"dd\", {\n class: _normalizeClass({ 'no-description': !_unref(client).client_description })\n }, _toDisplayString(_unref(client).client_description\n ? _unref(client).client_description\n : _ctx.$t('oauth2.NO_DESCRIPTION')), 3),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.URL')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(client).website), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.REDIRECT_URL')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(client).redirect_uris.length > 0 ? _unref(client).redirect_uris[0] : ''), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.SCOPE.LABEL')) + \":\", 1),\n _createElementVNode(\"dd\", _hoisted_8, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(client).scope.split(' '), (scope) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n class: \"client-scope\",\n key: scope\n }, [\n _createElementVNode(\"code\", null, _toDisplayString(scope), 1)\n ]))\n }), 128))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (updateMessageToDisplay(false)))\n }, _toDisplayString(_ctx.$t('oauth2.REVOKE_ALL_TOKENS')), 1),\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (updateMessageToDisplay(true)))\n }, _toDisplayString(_ctx.$t('oauth2.DELETE_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [\n _createElementVNode(\"p\", _hoisted_11, _toDisplayString(_ctx.$t('oauth2.NO_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n ]))\n}\n}\n\n})","import script from \"./UserApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserApp.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserApp.vue?vue&type=style&index=0&id=3a844fa2&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3a844fa2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-efa45ea0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"oauth2-apps-list\" }\nconst _hoisted_2 = { class: \"apps-list\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { class: \"app-issued-at\" }\nconst _hoisted_5 = {\n key: 1,\n class: \"no-apps\"\n}\nconst _hoisted_6 = { class: \"app-list-buttons\" }\n\nimport { ComputedRef, computed, onBeforeMount, toRefs, watch } from 'vue'\n import { LocationQuery, useRoute } from 'vue-router'\n\n import Pagination from '@/components/Common/Pagination.vue'\n import { OAUTH2_STORE } from '@/store/constants'\n import { IPagination } from '@/types/api'\n import { IOAuth2Client, IOauth2ClientsPayload } from '@/types/oauth'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { defaultPage, getNumberQueryValue } from '@/utils/api'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n authUser: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserAppsList',\n props: {\n authUser: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n authUser: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n const route = useRoute()\n\n const { authUser } = toRefs(props)\n const clients: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENTS]\n )\n\n const pagination: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENTS_PAGINATION]\n )\n let query: IOauth2ClientsPayload = getClientsQuery(route.query)\n\n onBeforeMount(() => {\n loadClients(query)\n })\n\n function getClientsQuery(newQuery: LocationQuery): IOauth2ClientsPayload {\n const clientsQuery: IOauth2ClientsPayload = {}\n if (newQuery.page) {\n clientsQuery.page = getNumberQueryValue(newQuery.page, defaultPage)\n }\n return clientsQuery\n }\n function loadClients(payload: IOauth2ClientsPayload) {\n store.dispatch(OAUTH2_STORE.ACTIONS.GET_CLIENTS, payload)\n }\n\n watch(\n () => route.query,\n async (newQuery) => {\n query = getClientsQuery(newQuery)\n loadClients(query)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"p\", _hoisted_2, _toDisplayString(_ctx.$t('oauth2.APPS_LIST')), 1),\n (_unref(clients).length > 0)\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(clients), (client) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: client.client_id\n }, [\n _createVNode(_component_router_link, {\n to: { name: 'UserApp', params: { id: client.id } }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(client.name), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]),\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.$t('oauth2.APP.ISSUE_AT')) + \" \" + _toDisplayString(_unref(formatDate)(\n client.issued_at,\n _unref(authUser).timezone,\n _unref(authUser).date_format\n )), 1)\n ]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _toDisplayString(_ctx.$t('oauth2.NO_APPS')), 1)),\n (_unref(clients).length > 0)\n ? (_openBlock(), _createBlock(Pagination, {\n key: 2,\n pagination: _unref(pagination),\n path: \"/profile/apps\",\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile/apps/new')))\n }, _toDisplayString(_ctx.$t('oauth2.NEW_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserAppsList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserAppsList.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserAppsList.vue?vue&type=style&index=0&id=efa45ea0&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-efa45ea0\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, withModifiers as _withModifiers, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, createBlock as _createBlock, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-74e52489\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-sport-preferences\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"responsive-table\"\n}\nconst _hoisted_3 = { class: \"mobile-display\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"profile-buttons mobile-display\"\n}\nconst _hoisted_5 = {\n key: 1,\n class: \"profile-buttons\"\n}\nconst _hoisted_6 = { class: \"text-left\" }\nconst _hoisted_7 = { key: 0 }\nconst _hoisted_8 = { class: \"cell-heading\" }\nconst _hoisted_9 = [\"value\"]\nconst _hoisted_10 = { class: \"cell-heading\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"disabled-message\"\n}\nconst _hoisted_12 = {\n key: 1,\n class: \"fa fa-refresh fa-spin fa-fw\"\n}\nconst _hoisted_13 = { class: \"cell-heading\" }\nconst _hoisted_14 = { class: \"cell-heading\" }\nconst _hoisted_15 = [\"checked\"]\nconst _hoisted_16 = { class: \"cell-heading\" }\nconst _hoisted_17 = [\"value\"]\nconst _hoisted_18 = { key: 1 }\nconst _hoisted_19 = {\n key: 0,\n class: \"action-buttons\"\n}\nconst _hoisted_20 = { class: \"cell-heading\" }\nconst _hoisted_21 = [\"onClick\"]\nconst _hoisted_22 = {\n key: 1,\n class: \"edition-buttons\"\n}\nconst _hoisted_23 = [\"disabled\"]\nconst _hoisted_24 = [\"disabled\", \"onClick\"]\nconst _hoisted_25 = [\"disabled\"]\nconst _hoisted_26 = {\n key: 0,\n class: \"profile-buttons\"\n}\nconst _hoisted_27 = {\n key: 1,\n class: \"profile-buttons\"\n}\n\nimport { ComputedRef, computed, inject, reactive, toRefs, watch } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { AUTH_USER_STORE, ROOT_STORE, SPORTS_STORE } from '@/store/constants'\n import { ISport, ITranslatedSport } from '@/types/sports'\n import { IUserProfile, IUserSportPreferencesPayload } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { translateSports } from '@/utils/sports'\n\n interface Props {\n user: IUserProfile\n isEdition: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserSportPreferences',\n props: {\n user: null,\n isEdition: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n isEdition: boolean\n };\n\n \n\n const store = useStore()\n const { t } = useI18n()\n\n const { isEdition, user } = toRefs(props)\n const defaultColor = '#838383'\n const sportColors: Record | undefined = inject('sportColors')\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const translatedSports: ComputedRef = computed(() =>\n translateSports(sports.value, t, 'is_active', user.value.sports_list)\n )\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const sportPayload: IUserSportPreferencesPayload = reactive({\n sport_id: 0,\n color: null,\n is_active: true,\n stopped_speed_threshold: 1,\n })\n\n function updateSportInEdition(sport: ISport | null) {\n if (sport !== null) {\n sportPayload.sport_id = sport.id\n sportPayload.color = sport.color\n ? sport.color\n : sportColors\n ? sportColors[sport.label]\n : defaultColor\n sportPayload.is_active = sport.is_active_for_user\n sportPayload.stopped_speed_threshold = sport.stopped_speed_threshold\n } else {\n resetSportPayload()\n }\n }\n function isSportInEdition(sportId: number) {\n return sportPayload.sport_id === sportId\n }\n function updateColor(event: Event & { target: HTMLInputElement }) {\n sportPayload.color = event.target.value\n }\n function updateThreshold(event: Event & { target: HTMLInputElement }) {\n sportPayload.stopped_speed_threshold = parseFloat(event.target.value)\n }\n function updateIsActive(event: Event & { target: HTMLInputElement }) {\n sportPayload.is_active = event.target.checked\n }\n function resetSportPayload() {\n sportPayload.sport_id = 0\n sportPayload.color = null\n sportPayload.is_active = true\n sportPayload.stopped_speed_threshold = 1\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n }\n function updateSport(event: Event) {\n event.preventDefault()\n store.dispatch(\n AUTH_USER_STORE.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,\n sportPayload\n )\n }\n function resetSport(event: Event, sportId: number) {\n event.preventDefault()\n store.dispatch(\n AUTH_USER_STORE.ACTIONS.RESET_USER_SPORT_PREFERENCES,\n sportId\n )\n }\n\n watch(\n () => loading.value,\n (newIsLoading) => {\n if (!newIsLoading && !errorMessages.value) {\n resetSportPayload()\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(sports).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$router.push('/profile/sports')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/profile/edit/sports')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT_SPORTS_PREFERENCES')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ]))\n ]),\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.COLOR')), 1),\n _createElementVNode(\"th\", _hoisted_6, _toDisplayString(_ctx.$t('workouts.SPORT', 0)), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('workouts.WORKOUT', 0)), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.IS_ACTIVE')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD')), 1),\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"th\", _hoisted_7, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.ACTION')), 1))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports), (sport) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: sport.id\n }, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.COLOR')), 1),\n (isSportInEdition(sport.id))\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n class: \"sport-color\",\n type: \"color\",\n value: sportPayload.color,\n onInput: updateColor\n }, null, 40, _hoisted_9))\n : (_openBlock(), _createBlock(_component_SportImage, {\n key: 1,\n title: sport.translatedLabel,\n \"sport-label\": sport.label,\n color: sport.color ? sport.color : _unref(sportColors)[sport.label]\n }, null, 8, [\"title\", \"sport-label\", \"color\"]))\n ]),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"sport-label\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.LABEL')), 1),\n _createTextVNode(\" \" + _toDisplayString(sport.translatedLabel) + \" \", 1),\n (!sport.is_active)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_11, \" (\" + _toDisplayString(_ctx.$t('user.PROFILE.SPORT.DISABLED_BY_ADMIN')) + \") \", 1))\n : _createCommentVNode(\"\", true),\n (_unref(loading) && isSportInEdition(sport.id))\n ? (_openBlock(), _createElementBlock(\"i\", _hoisted_12))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages) && sportPayload.sport_id === sport.id)\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 2,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"text-center\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(_ctx.$t('workouts.WORKOUT', 0)), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${\n _unref(user).sports_list.includes(sport.id) ? '-check' : ''\n }`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ], 2),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"text-center\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.IS_ACTIVE')), 1),\n (isSportInEdition(sport.id) && sport.is_active)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n type: \"checkbox\",\n checked: sport.is_active_for_user,\n onChange: updateIsActive\n }, null, 40, _hoisted_15))\n : (_openBlock(), _createElementBlock(\"i\", {\n key: 1,\n class: _normalizeClass(`fa fa${sport.is_active_for_user ? '-check' : ''}`),\n \"aria-hidden\": \"true\"\n }, null, 2))\n ], 2),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"text-center\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_16, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD')), 1),\n (isSportInEdition(sport.id) && sport.is_active)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n class: \"threshold-input\",\n type: \"number\",\n min: \"0\",\n step: \"0.1\",\n value: sportPayload.stopped_speed_threshold,\n onInput: updateThreshold\n }, null, 40, _hoisted_17))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_18, _toDisplayString(sport.stopped_speed_threshold), 1))\n ], 2),\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"td\", _hoisted_19, [\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.ACTION')), 1),\n (sportPayload.sport_id === 0)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: ($event: any) => (updateSportInEdition(sport))\n }, _toDisplayString(_ctx.$t('buttons.EDIT')), 9, _hoisted_21))\n : _createCommentVNode(\"\", true),\n (isSportInEdition(sport.id))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_22, [\n _createElementVNode(\"button\", {\n disabled: _unref(loading),\n onClick: updateSport\n }, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 9, _hoisted_23),\n _createElementVNode(\"button\", {\n disabled: _unref(loading),\n onClick: (e) => resetSport(e, sport.id)\n }, _toDisplayString(_ctx.$t('buttons.RESET')), 9, _hoisted_24),\n _createElementVNode(\"button\", {\n disabled: _unref(loading),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (updateSportInEdition(null)))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 9, _hoisted_25)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n }), 128))\n ])\n ]),\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_26, [\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (_ctx.$router.push('/profile/sports')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_27, [\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$router.push('/profile/edit/sports')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT_SPORTS_PREFERENCES')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[6] || (_cache[6] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ]))\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./UserSportPreferences.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserSportPreferences.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserSportPreferences.vue?vue&type=style&index=0&id=74e52489&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-74e52489\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2b7b6dd6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"about-text\" }\nconst _hoisted_2 = [\"innerHTML\"]\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-book fa-padding\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = {\n href: \"https://samr1.github.io/FitTrackee/\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-github fa-padding\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_6 = {\n href: \"https://github.com/SamR1/FitTrackee\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-balance-scale fa-padding\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://choosealicense.com/licenses/agpl-3.0/\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}, \" AGPLv3 \", -1))\nconst _hoisted_9 = { key: 0 }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-envelope-o fa-padding\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = [\"href\"]\nconst _hoisted_12 = { key: 1 }\nconst _hoisted_13 = [\"href\"]\n\nimport { ComputedRef, computed, capitalize } from 'vue'\n\n import { ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'About',\n setup(__props) {\n\n const store = useStore()\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const weather_provider: ComputedRef> = computed(() =>\n get_weather_provider()\n )\n\n function get_weather_provider() {\n const weather_provider: Record = {}\n if (appConfig.value.weather_provider === 'darksky') {\n weather_provider['name'] = 'Dark Sky'\n weather_provider['url'] = 'https://darksky.net'\n }\n if (appConfig.value.weather_provider === 'visualcrossing') {\n weather_provider['name'] = 'Visual Crossing'\n weather_provider['url'] = 'https://www.visualcrossing.com'\n }\n return weather_provider\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_i18n_t = _resolveComponent(\"i18n-t\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"p\", {\n class: \"error-message\",\n innerHTML: _ctx.$t('about.FITTRACKEE_DESCRIPTION')\n }, null, 8, _hoisted_2),\n _createElementVNode(\"p\", null, [\n _hoisted_3,\n _createElementVNode(\"a\", _hoisted_4, _toDisplayString(capitalize(_ctx.$t('common.DOCUMENTATION'))), 1)\n ]),\n _createElementVNode(\"p\", null, [\n _hoisted_5,\n _createElementVNode(\"a\", _hoisted_6, _toDisplayString(_ctx.$t('about.SOURCE_CODE')), 1)\n ]),\n _createElementVNode(\"p\", null, [\n _hoisted_7,\n _createVNode(_component_i18n_t, { keypath: \"about.FITTRACKEE_LICENSE\" }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n })\n ]),\n (_unref(appConfig).admin_contact)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _hoisted_10,\n _createElementVNode(\"a\", {\n href: `mailto:${_unref(appConfig).admin_contact}`\n }, _toDisplayString(_ctx.$t('about.CONTACT_ADMIN')), 9, _hoisted_11)\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(weather_provider) && _unref(weather_provider).name)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_12, [\n _createTextVNode(_toDisplayString(_ctx.$t('about.WEATHER_DATA_FROM')) + \" \", 1),\n _createElementVNode(\"a\", {\n href: _unref(weather_provider).url,\n target: \"_blank\",\n rel: \"nofollow noopener\"\n }, _toDisplayString(_unref(weather_provider).name), 9, _hoisted_13)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./About.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./About.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./About.vue?vue&type=style&index=0&id=2b7b6dd6&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2b7b6dd6\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./BikePic.vue?vue&type=template&id=795f7f5f&scoped=true\"\nconst script = {}\n\nimport \"./BikePic.vue?vue&type=style&index=0&id=795f7f5f&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-795f7f5f\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-bffb50d0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"about\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\nconst _hoisted_3 = { class: \"container-sub\" }\nconst _hoisted_4 = { class: \"container-sub about-details\" }\n\nimport About from '@/components/About.vue'\n import BikePic from '@/components/BikePic.vue'\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'AboutView',\n setup(__props) {\n\n \nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(BikePic)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(About)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./AboutView.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./AboutView.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./AboutView.vue?vue&type=style&index=0&id=bffb50d0&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-bffb50d0\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-645a9e33\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"timeline-workout\" }\nconst _hoisted_2 = { class: \"box\" }\nconst _hoisted_3 = { class: \"workout-user-date\" }\nconst _hoisted_4 = { class: \"workout-user\" }\nconst _hoisted_5 = [\"title\"]\nconst _hoisted_6 = { key: 0 }\nconst _hoisted_7 = {\n key: 1,\n class: \"no-map\"\n}\nconst _hoisted_8 = { class: \"img\" }\nconst _hoisted_9 = { class: \"data\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-clock-o\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = { key: 0 }\nconst _hoisted_12 = { class: \"data\" }\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-road\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_14 = {\n key: 0,\n class: \"data elevation\"\n}\nconst _hoisted_15 = [\"alt\"]\nconst _hoisted_16 = { class: \"data-values\" }\nconst _hoisted_17 = {\n key: 1,\n class: \"data altitude\"\n}\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-location-arrow\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_19 = { class: \"data-values\" }\n\nimport { Locale, formatDistance } from 'date-fns'\n import { ComputedRef, computed, toRefs, withDefaults } from 'vue'\n\n import StaticMap from '@/components/Common/StaticMap.vue'\n import UserPicture from '@/components/User/UserPicture.vue'\n import { ROOT_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { IWorkout } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n user: IUserProfile\n useImperialUnits: boolean\n workout?: IWorkout\n sport?: ISport\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutCard',\n props: {\n user: null,\n useImperialUnits: { type: Boolean },\n workout: { default: () => ({} as IWorkout) },\n sport: { default: () => ({} as ISport) }\n },\n setup(__props: any) {\n\nconst props = __props as { user: IUserProfile, useImperialUnits: boolean, workout: IWorkout, sport: ISport };\n\n \n\n const store = useStore()\n\n const { user, workout, sport, useImperialUnits } = toRefs(props)\n const locale: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LOCALE]\n )\n\n function hasElevation(workout: IWorkout): boolean {\n return workout && workout.ascent !== null && workout.descent !== null\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_Distance = _resolveComponent(\"Distance\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(UserPicture, { user: _unref(user) }, null, 8, [\"user\"]),\n (_unref(user).username)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n class: \"workout-user-name\",\n to: {\n name: 'User',\n params: { username: _unref(user).username },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(user).username), 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n class: \"workout-title\",\n to: {\n name: 'Workout',\n params: { workoutId: _unref(workout).id },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(workout).title), 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true),\n (_unref(workout).workout_date && _unref(user))\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"workout-date\",\n title: \n _unref(formatDate)(_unref(workout).workout_date, _unref(user).timezone, _unref(user).date_format)\n \n }, _toDisplayString(_unref(formatDistance)(new Date(_unref(workout).workout_date), new Date(), {\n addSuffix: true,\n locale: _unref(locale),\n })), 9, _hoisted_5))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"workout-map\", { 'no-cursor': !_unref(workout) }]),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (\n _unref(workout).id\n ? _ctx.$router.push({\n name: 'Workout',\n params: { workoutId: _unref(workout).id },\n })\n : null\n ))\n }, [\n (_unref(workout))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n (_unref(workout).with_gpx)\n ? (_openBlock(), _createBlock(StaticMap, {\n key: 0,\n workout: _unref(workout)\n }, null, 8, [\"workout\"]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_7, _toDisplayString(_ctx.$t('workouts.NO_MAP')), 1))\n ]))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"workout-data\", { 'without-gpx': _unref(workout) && !_unref(workout).with_gpx }]),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (\n _unref(workout).id\n ? _ctx.$router.push({\n name: 'Workout',\n params: { workoutId: _unref(workout).id },\n })\n : null\n ))\n }, [\n _createElementVNode(\"div\", _hoisted_8, [\n (_unref(sport).label)\n ? (_openBlock(), _createBlock(_component_SportImage, {\n key: 0,\n \"sport-label\": _unref(sport).label,\n color: _unref(sport).color\n }, null, 8, [\"sport-label\", \"color\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _hoisted_10,\n (_unref(workout))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_11, _toDisplayString(_unref(workout).moving), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _hoisted_13,\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: _unref(workout).distance,\n digits: 3,\n unitFrom: \"km\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(workout) && _unref(workout).with_gpx)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n _createElementVNode(\"img\", {\n class: \"mountains\",\n src: \"/img/workouts/mountains.svg\",\n alt: _ctx.$t('workouts.ELEVATION')\n }, null, 8, _hoisted_15),\n _createElementVNode(\"div\", _hoisted_16, [\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: _unref(workout).min_alt,\n unitFrom: \"m\",\n displayUnit: false,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\"/ \"),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 1,\n distance: _unref(workout).max_alt,\n unitFrom: \"m\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (hasElevation(_unref(workout)))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _hoisted_18,\n _createElementVNode(\"div\", _hoisted_19, [\n _createTextVNode(\" +\"),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: _unref(workout).ascent,\n unitFrom: \"m\",\n displayUnit: false,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\"/- \"),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 1,\n distance: _unref(workout).descent,\n unitFrom: \"m\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 2)\n ])\n ]))\n}\n}\n\n})","import script from \"./WorkoutCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutCard.vue?vue&type=style&index=0&id=645a9e33&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-645a9e33\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-35567bf2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"timeline\" }\nconst _hoisted_2 = { class: \"section-title\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { key: 1 }\nconst _hoisted_5 = {\n key: 1,\n class: \"more-workouts\"\n}\n\nimport { ComputedRef, computed, ref, onBeforeMount, toRefs } from 'vue'\n\n import WorkoutCard from '@/components/Workout/WorkoutCard.vue'\n import NoWorkouts from '@/components/Workouts/NoWorkouts.vue'\n import { WORKOUTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { IWorkout } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { defaultOrder } from '@/utils/workouts'\n\n interface Props {\n sports: ISport[]\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Timeline',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IUserProfile\n };\n\n \n\n const store = useStore()\n\n const { sports, user } = toRefs(props)\n const page = ref(1)\n const per_page = 5\n const initWorkoutsCount =\n props.user.nb_workouts >= per_page ? per_page : props.user.nb_workouts\n onBeforeMount(() => loadWorkouts())\n const workouts: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.TIMELINE_WORKOUTS]\n )\n const moreWorkoutsExist: ComputedRef = computed(() =>\n workouts.value.length > 0\n ? workouts.value[workouts.value.length - 1].previous_workout !== null\n : false\n )\n\n function loadWorkouts() {\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_TIMELINE_WORKOUTS, {\n page: page.value,\n per_page,\n ...defaultOrder,\n })\n }\n function loadMoreWorkouts() {\n page.value += 1\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_MORE_TIMELINE_WORKOUTS, {\n page: page.value,\n per_page,\n ...defaultOrder,\n })\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_ctx.$t('workouts.LATEST_WORKOUTS')), 1),\n (_unref(user).nb_workouts > 0 && _unref(workouts).length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList([...Array(_unref(initWorkoutsCount)).keys()], (index) => {\n return (_openBlock(), _createBlock(WorkoutCard, {\n user: _unref(user),\n useImperialUnits: _unref(user).imperial_units,\n key: index\n }, null, 8, [\"user\", \"useImperialUnits\"]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts), (workout) => {\n return (_openBlock(), _createBlock(WorkoutCard, {\n workout: workout,\n sport: \n _unref(workouts).length > 0\n ? _unref(sports).filter((s) => s.id === workout.sport_id)[0]\n : null\n ,\n user: _unref(user),\n useImperialUnits: _unref(user).imperial_units,\n key: workout.id\n }, null, 8, [\"workout\", \"sport\", \"user\", \"useImperialUnits\"]))\n }), 128)),\n (_unref(workouts).length === 0)\n ? (_openBlock(), _createBlock(NoWorkouts, { key: 0 }))\n : _createCommentVNode(\"\", true),\n (_unref(moreWorkoutsExist))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"button\", { onClick: loadMoreWorkouts }, _toDisplayString(_ctx.$t('workouts.LOAD_MORE_WORKOUT')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n ]))\n}\n}\n\n})","import script from \"./Timeline.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Timeline.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Timeline.vue?vue&type=style&index=0&id=35567bf2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-35567bf2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = [\"title\"]\n\nimport { toRefs } from 'vue'\n\n import { IWorkout } from '@/types/workouts'\n interface Props {\n displayHARecord: boolean\n workout: IWorkout\n sportLabel: string\n sportColor: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarWorkout',\n props: {\n displayHARecord: { type: Boolean },\n workout: null,\n sportLabel: null,\n sportColor: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n displayHARecord: boolean\n workout: IWorkout\n sportLabel: string\n sportColor: string | null\n };\n\n \n\n const { displayHARecord, workout, sportLabel, sportColor } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"calendar-workout\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (\n _ctx.$router.push({ name: 'Workout', params: { workoutId: _unref(workout).id } })\n ))\n }, [\n _createVNode(_component_SportImage, {\n \"sport-label\": _unref(sportLabel),\n title: _unref(workout).title,\n color: _unref(sportColor)\n }, null, 8, [\"sport-label\", \"title\", \"color\"]),\n _createElementVNode(\"sup\", null, [\n (_unref(workout).records.length > 0)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"fa fa-trophy custom-fa-small\",\n \"aria-hidden\": \"true\",\n title: \n _unref(workout).records\n .filter((record) =>\n _unref(displayHARecord) ? true : record.record_type !== 'HA'\n )\n .map((record) => ` ${_ctx.$t(`workouts.RECORD_${record.record_type}`)}`)\n \n }, null, 8, _hoisted_1))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./CalendarWorkout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkout.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkout.vue?vue&type=style&index=0&id=331e1c8b&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"donut-chart\" }\nconst _hoisted_2 = {\n height: \"34\",\n width: \"34\",\n viewBox: \"0 0 34 34\"\n}\nconst _hoisted_3 = [\"stroke\", \"stroke-dashoffset\", \"transform\"]\n\nimport { toRefs } from 'vue'\n\n interface Props {\n colors: Record\n datasets: Record>\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'DonutChart',\n props: {\n colors: null,\n datasets: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n colors: Record\n datasets: Record>\n };\n\n \n\n const { colors, datasets } = toRefs(props)\n let angleOffset = -90\n const cx = 16\n const cy = 16\n const radius = 14\n const circumference = 2 * Math.PI * radius\n\n function calculateStrokeDashOffset(\n percentage: number,\n circumference: number\n ): number {\n return circumference - percentage * circumference\n }\n function returnCircleTransformValue(\n index: number,\n percentage: number\n ): string {\n const rotation = `rotate(${angleOffset}, ${cx}, ${cy})`\n angleOffset = percentage * 360 + angleOffset\n return rotation\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(), _createElementBlock(\"svg\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(Object.entries(_unref(datasets)), (data, index) => {\n return (_openBlock(), _createElementBlock(\"g\", { key: index }, [\n _createElementVNode(\"circle\", {\n cx: cx,\n cy: cy,\n r: radius,\n fill: \"transparent\",\n stroke: _unref(colors)[+data[0]],\n \"stroke-dashoffset\": \n calculateStrokeDashOffset(data[1].percentage, circumference)\n ,\n \"stroke-dasharray\": circumference,\n \"stroke-width\": \"3\",\n \"stroke-opacity\": \"0.8\",\n transform: returnCircleTransformValue(index, data[1].percentage)\n }, null, 8, _hoisted_3)\n ]))\n }), 128))\n ]))\n ]))\n}\n}\n\n})","import script from \"./DonutChart.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DonutChart.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, resolveDirective as _resolveDirective, withDirectives as _withDirectives, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-52d4310a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"calendar-workouts-chart\" }\nconst _hoisted_2 = { class: \"workouts-count\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"workouts-pane\"\n}\nconst _hoisted_4 = { class: \"more-workouts\" }\n\nimport { ref, toRefs } from 'vue'\n\n import CalendarWorkout from '@/components/Dashboard/UserCalendar/CalendarWorkout.vue'\n import DonutChart from '@/components/Dashboard/UserCalendar/DonutChart.vue'\n import { ISport } from '@/types/sports'\n import { IWorkout } from '@/types/workouts'\n import { getSportColor, getSportLabel } from '@/utils/sports'\n\n interface Props {\n colors: Record\n datasets: Record>\n sports: ISport[]\n workouts: IWorkout[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarWorkoutsChart',\n props: {\n colors: null,\n datasets: null,\n sports: null,\n workouts: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n colors: Record\n datasets: Record>\n sports: ISport[]\n workouts: IWorkout[]\n };\n\n \n\n const { colors, datasets, sports, workouts } = toRefs(props)\n const isHidden = ref(true)\n\n function togglePane(event: Event & { target: HTMLElement }) {\n event.stopPropagation()\n isHidden.value = !isHidden.value\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _directive_click_outside = _resolveDirective(\"click-outside\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"workouts-chart\",\n onClick: togglePane\n }, [\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_unref(workouts).length), 1),\n _createVNode(DonutChart, {\n datasets: _unref(datasets),\n colors: _unref(colors)\n }, null, 8, [\"datasets\", \"colors\"])\n ]),\n (!isHidden.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"i\", {\n class: \"fa fa-times calendar-more\",\n \"aria-hidden\": \"true\",\n onClick: togglePane\n }),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts), (workout, index) => {\n return (_openBlock(), _createBlock(CalendarWorkout, {\n key: index,\n workout: workout,\n sportLabel: _unref(getSportLabel)(workout, _unref(sports)),\n sportColor: _unref(getSportColor)(workout, _unref(sports))\n }, null, 8, [\"workout\", \"sportLabel\", \"sportColor\"]))\n }), 128))\n ])), [\n [_directive_click_outside, togglePane]\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./CalendarWorkoutsChart.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkoutsChart.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkoutsChart.vue?vue&type=style&index=0&id=52d4310a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-52d4310a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-workouts\" }\nconst _hoisted_2 = { class: \"desktop-display\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"workouts-display\"\n}\nconst _hoisted_4 = {\n key: 1,\n class: \"donut-display\"\n}\nconst _hoisted_5 = { class: \"mobile-display\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"donut-display\"\n}\n\nimport { computed, toRefs } from 'vue'\n\n import CalendarWorkout from '@/components/Dashboard/UserCalendar/CalendarWorkout.vue'\n import CalendarWorkoutsChart from '@/components/Dashboard/UserCalendar/CalendarWorkoutsChart.vue'\n import { ISport } from '@/types/sports'\n import { IWorkout } from '@/types/workouts'\n import { getSportColor, getSportLabel, sportIdColors } from '@/utils/sports'\n import { getDonutDatasets } from '@/utils/workouts'\n\n interface Props {\n displayHARecord: boolean\n workouts: IWorkout[]\n sports: ISport[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarWorkouts',\n props: {\n displayHARecord: { type: Boolean },\n workouts: null,\n sports: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n displayHARecord: boolean\n workouts: IWorkout[]\n sports: ISport[]\n };\n\n \n\n const { displayHARecord, workouts, sports } = toRefs(props)\n const chartDatasets = computed(() => getDonutDatasets(props.workouts))\n const colors = computed(() => sportIdColors(props.sports))\n const displayedWorkoutCount = 6\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(workouts).length <= displayedWorkoutCount)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts).slice(0, displayedWorkoutCount), (workout, index) => {\n return (_openBlock(), _createBlock(CalendarWorkout, {\n key: index,\n displayHARecord: _unref(displayHARecord),\n workout: workout,\n sportLabel: _unref(getSportLabel)(workout, _unref(sports)),\n sportColor: _unref(getSportColor)(workout, _unref(sports))\n }, null, 8, [\"displayHARecord\", \"workout\", \"sportLabel\", \"sportColor\"]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createVNode(CalendarWorkoutsChart, {\n workouts: _unref(workouts),\n sports: _unref(sports),\n datasets: _unref(chartDatasets),\n colors: _unref(colors)\n }, null, 8, [\"workouts\", \"sports\", \"datasets\", \"colors\"])\n ]))\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n (_unref(workouts).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createVNode(CalendarWorkoutsChart, {\n workouts: _unref(workouts),\n sports: _unref(sports),\n datasets: _unref(chartDatasets),\n colors: _unref(colors)\n }, null, 8, [\"workouts\", \"sports\", \"datasets\", \"colors\"])\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./CalendarWorkouts.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkouts.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkouts.vue?vue&type=style&index=0&id=5aab7455&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-cells\" }\nconst _hoisted_2 = { class: \"calendar-cell-day\" }\n\nimport { addDays, format, isSameDay, isSameMonth, isToday } from 'date-fns'\n import { Ref, ref, toRefs, watch, onMounted } from 'vue'\n\n import CalendarWorkouts from '@/components/Dashboard/UserCalendar/CalendarWorkouts.vue'\n import { ISport } from '@/types/sports'\n import { IWorkout } from '@/types/workouts'\n import { getDateWithTZ } from '@/utils/dates'\n\n interface Props {\n currentDay: Date\n displayHARecord: boolean\n endDate: Date\n sports: ISport[]\n startDate: Date\n timezone: string\n weekStartingMonday: boolean\n workouts: IWorkout[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarCells',\n props: {\n currentDay: null,\n displayHARecord: { type: Boolean },\n endDate: null,\n sports: null,\n startDate: null,\n timezone: null,\n weekStartingMonday: { type: Boolean },\n workouts: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n currentDay: Date\n displayHARecord: boolean\n endDate: Date\n sports: ISport[]\n startDate: Date\n timezone: string\n weekStartingMonday: boolean\n workouts: IWorkout[]\n };\n\n \n\n const {\n currentDay,\n displayHARecord,\n endDate,\n sports,\n startDate,\n timezone,\n weekStartingMonday,\n workouts,\n } = toRefs(props)\n const rows: Ref = ref([])\n\n onMounted(() => getDays())\n\n function getDays() {\n rows.value = []\n let day = startDate.value\n while (day <= endDate.value) {\n const days: Date[] = []\n for (let i = 0; i < 7; i++) {\n days.push(day)\n day = addDays(day, 1)\n }\n rows.value.push(days)\n }\n }\n function isWeekEnd(day: number): boolean {\n return weekStartingMonday.value\n ? [5, 6].includes(day)\n : [0, 6].includes(day)\n }\n function filterWorkouts(day: Date, workouts: IWorkout[]) {\n if (workouts) {\n return workouts\n .filter((workout) =>\n isSameDay(getDateWithTZ(workout.workout_date, timezone.value), day)\n )\n .reverse()\n }\n return []\n }\n\n watch(\n () => props.currentDay,\n () => getDays()\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(rows.value, (row, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"calendar-row\",\n key: index\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(row, (day, i) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"calendar-cell\", {\n 'disabled-cell': !_unref(isSameMonth)(day, _unref(currentDay)),\n 'week-end': isWeekEnd(i),\n today: _unref(isToday)(day),\n }]),\n key: i\n }, [\n _createVNode(CalendarWorkouts, {\n workouts: filterWorkouts(day, _unref(workouts)),\n sports: _unref(sports),\n displayHARecord: _unref(displayHARecord)\n }, null, 8, [\"workouts\", \"sports\", \"displayHARecord\"]),\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_unref(format)(day, 'd')), 1)\n ], 2))\n }), 128))\n ]))\n }), 128))\n ]))\n}\n}\n\n})","import script from \"./CalendarCells.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarCells.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarCells.vue?vue&type=style&index=0&id=34b99f0e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-days\" }\n\nimport { Locale, format, addDays } from 'date-fns'\n\n interface Props {\n startDate: Date\n localeOptions: Locale\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarDays',\n props: {\n startDate: null,\n localeOptions: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n startDate: Date\n localeOptions: Locale\n };\n\n \n\n const days = []\n for (let i = 0; i < 7; i++) {\n days.push(addDays(props.startDate, i))\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(days, (day, index) => {\n return _createElementVNode(\"div\", {\n class: \"calendar-day\",\n key: index\n }, _toDisplayString(_unref(format)(day, 'EEE', { locale: __props.localeOptions })), 1)\n }), 64))\n ]))\n}\n}\n\n})","import script from \"./CalendarDays.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarDays.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarDays.vue?vue&type=style&index=0&id=4f3dc99e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-header\" }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-left\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\nconst _hoisted_4 = { class: \"calendar-month\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-right\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_6 = [\n _hoisted_5\n]\n\nimport { Locale, format } from 'date-fns'\n import { toRefs } from 'vue'\n\n interface Props {\n day: Date\n localeOptions: Locale\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarHeader',\n props: {\n day: null,\n localeOptions: null\n },\n emits: ['displayNextMonth', 'displayPreviousMonth'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n day: Date\n localeOptions: Locale\n };\n\n \n\n \n\n const { day, localeOptions } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"calendar-arrow calendar-arrow-left\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (emit('displayPreviousMonth')))\n }, _hoisted_3),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"span\", null, _toDisplayString(_unref(format)(_unref(day), 'MMM yyyy', { locale: _unref(localeOptions) })), 1)\n ]),\n _createElementVNode(\"div\", {\n class: \"calendar-arrow calendar-arrow-right\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (emit('displayNextMonth')))\n }, _hoisted_6)\n ]))\n}\n}\n\n})","import script from \"./CalendarHeader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarHeader.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarHeader.vue?vue&type=style&index=0&id=79a65a70&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-calendar\" }\nconst _hoisted_2 = { class: \"calendar-card box\" }\n\nimport { Locale, addMonths, format, subMonths } from 'date-fns'\n import { ComputedRef, computed, ref, toRefs, onBeforeMount } from 'vue'\n\n import CalendarCells from '@/components/Dashboard/UserCalendar/CalendarCells.vue'\n import CalendarDays from '@/components/Dashboard/UserCalendar/CalendarDays.vue'\n import CalendarHeader from '@/components/Dashboard/UserCalendar/CalendarHeader.vue'\n import { ROOT_STORE, WORKOUTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { IWorkout, TWorkoutsPayload } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { getCalendarStartAndEnd } from '@/utils/dates'\n import { defaultOrder } from '@/utils/workouts'\n\n interface Props {\n sports: ISport[]\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const { sports, user } = toRefs(props)\n const dateFormat = 'yyyy-MM-dd'\n const day = ref(new Date())\n const calendarDates = ref(getCalendarStartAndEnd(day.value, props.user.weekm))\n const calendarWorkouts: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.CALENDAR_WORKOUTS]\n )\n const localeOptions: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LOCALE]\n )\n\n onBeforeMount(() => getCalendarWorkouts())\n\n function getCalendarWorkouts() {\n calendarDates.value = getCalendarStartAndEnd(day.value, props.user.weekm)\n const apiParams: TWorkoutsPayload = {\n from: format(calendarDates.value.start, dateFormat),\n to: format(calendarDates.value.end, dateFormat),\n page: 1,\n per_page: 100,\n ...defaultOrder,\n }\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_CALENDAR_WORKOUTS, apiParams)\n }\n function displayNextMonth() {\n day.value = addMonths(day.value, 1)\n getCalendarWorkouts()\n }\n function displayPreviousMonth() {\n day.value = subMonths(day.value, 1)\n getCalendarWorkouts()\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(CalendarHeader, {\n day: day.value,\n \"locale-options\": _unref(localeOptions),\n onDisplayNextMonth: displayNextMonth,\n onDisplayPreviousMonth: displayPreviousMonth\n }, null, 8, [\"day\", \"locale-options\"]),\n _createVNode(CalendarDays, {\n \"start-date\": calendarDates.value.start,\n \"locale-options\": _unref(localeOptions)\n }, null, 8, [\"start-date\", \"locale-options\"]),\n _createVNode(CalendarCells, {\n currentDay: day.value,\n displayHARecord: _unref(user).display_ascent,\n \"end-date\": calendarDates.value.end,\n sports: _unref(sports),\n \"start-date\": calendarDates.value.start,\n timezone: _unref(user).timezone,\n workouts: _unref(calendarWorkouts),\n weekStartingMonday: _unref(user).weekm\n }, null, 8, [\"currentDay\", \"displayHARecord\", \"end-date\", \"sports\", \"start-date\", \"timezone\", \"workouts\", \"weekStartingMonday\"])\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=3e7444d9&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1bcddc12\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"user-month-stats\" }\n\nimport { endOfMonth, startOfMonth } from 'date-fns'\n import { toRefs } from 'vue'\n\n import StatChart from '@/components/Common/StatsChart/index.vue'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n\n interface Props {\n sports: ISport[]\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserMonthStats',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IUserProfile\n };\n\n \n\n const { sports, user } = toRefs(props)\n const date = new Date()\n const chartParams = {\n duration: 'week',\n start: startOfMonth(date),\n end: endOfMonth(date),\n }\n const selectedSportIds = props.sports.map((sport) => sport.id)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('dashboard.THIS_MONTH')), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(StatChart, {\n sports: _unref(sports),\n user: _unref(user),\n \"chart-params\": chartParams,\n \"displayed-sport-ids\": _unref(selectedSportIds),\n \"hide-chart-if-no-data\": true\n }, null, 8, [\"sports\", \"user\", \"displayed-sport-ids\"])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./UserMonthStats.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserMonthStats.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserMonthStats.vue?vue&type=style&index=0&id=1bcddc12&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1bcddc12\"]])\n\nexport default __exports__","import createI18n from '@/i18n'\nimport { ITranslatedSport } from '@/types/sports'\nimport { TUnit } from '@/types/units'\nimport { ICardRecord, IRecord, IRecordsBySports } from '@/types/workouts'\nimport { formatDate, getDateFormat } from '@/utils/dates'\nimport { convertDistance, units } from '@/utils/units'\n\nconst { locale } = createI18n.global\n\nexport const formatRecord = (\n record: IRecord,\n tz: string,\n useImperialUnits: boolean,\n date_format: string\n): Record => {\n const distanceUnitFrom: TUnit = 'km'\n const distanceUnitTo: TUnit = useImperialUnits\n ? units[distanceUnitFrom].defaultTarget\n : distanceUnitFrom\n const ascentUnitFrom: TUnit = 'm'\n const ascentUnitTo: TUnit = useImperialUnits\n ? units[ascentUnitFrom].defaultTarget\n : ascentUnitFrom\n let value\n switch (record.record_type) {\n case 'AS':\n case 'MS':\n value = `${convertDistance(\n +record.value,\n distanceUnitFrom,\n distanceUnitTo,\n 2\n )} ${distanceUnitTo}/h`\n break\n case 'FD':\n value = `${convertDistance(\n +record.value,\n distanceUnitFrom,\n distanceUnitTo,\n 3\n )} ${distanceUnitTo}`\n break\n case 'HA':\n value = `${convertDistance(\n +record.value,\n ascentUnitFrom,\n ascentUnitTo,\n 2\n )} ${ascentUnitTo}`\n break\n case 'LD':\n value = record.value\n break\n default:\n throw new Error(\n `Invalid record type, expected: \"AS\", \"FD\", \"HA\", \"LD\", \"MD\", got: \"${record.record_type}\"`\n )\n }\n return {\n workout_date: formatDate(record.workout_date, tz, date_format, false),\n workout_id: record.workout_id,\n id: record.id,\n record_type: record.record_type,\n value: value,\n }\n}\n\nexport const sortRecords = (a: ICardRecord, b: ICardRecord): number => {\n const recordALabel = a.label.toLowerCase()\n const recordBLabel = b.label.toLowerCase()\n return recordALabel > recordBLabel ? 1 : recordALabel < recordBLabel ? -1 : 0\n}\n\nexport const getRecordsBySports = (\n records: IRecord[],\n translatedSports: ITranslatedSport[],\n tz: string,\n useImperialUnits: boolean,\n display_ascent: boolean,\n date_format: string\n): IRecordsBySports => {\n date_format = getDateFormat(date_format, locale.value)\n return records\n .filter((r) => (display_ascent ? true : r.record_type !== 'HA'))\n .reduce((sportList: IRecordsBySports, record) => {\n const sport = translatedSports.find((s) => s.id === record.sport_id)\n if (sport && sport.label) {\n if (sportList[sport.translatedLabel] === void 0) {\n sportList[sport.translatedLabel] = {\n label: sport.label,\n color: sport.color,\n records: [],\n }\n }\n sportList[sport.translatedLabel].records.push(\n formatRecord(record, tz, useImperialUnits, date_format)\n )\n }\n return sportList\n }, {})\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-8d17c606\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"records-card\" }\nconst _hoisted_2 = { class: \"record-type\" }\nconst _hoisted_3 = { class: \"record-value\" }\nconst _hoisted_4 = { class: \"record-date\" }\n\nimport { toRefs } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { ICardRecord, IRecord, IRecordsBySports } from '@/types/workouts'\n import { sortRecords } from '@/utils/records'\n\n interface Props {\n records: IRecordsBySports\n sportTranslatedLabel: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'RecordsCard',\n props: {\n records: null,\n sportTranslatedLabel: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n records: IRecordsBySports\n sportTranslatedLabel: string\n };\n\n \n\n const { records, sportTranslatedLabel } = toRefs(props)\n\n const { t } = useI18n()\n\n function getTranslatedRecords(records: IRecord[]): ICardRecord[] {\n const translatedRecords: ICardRecord[] = []\n records.map((record) => {\n translatedRecords.push({\n ...record,\n label: t(`workouts.RECORD_${record.record_type}`),\n })\n })\n return translatedRecords.sort(sortRecords)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createVNode(_component_SportImage, {\n \"sport-label\": _unref(records).label,\n color: _unref(records).color\n }, null, 8, [\"sport-label\", \"color\"]),\n _createTextVNode(\" \" + _toDisplayString(_unref(sportTranslatedLabel)), 1)\n ]),\n content: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(getTranslatedRecords(_unref(records).records), (record) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"record\",\n key: record.id\n }, [\n _createElementVNode(\"span\", _hoisted_2, _toDisplayString(record.label), 1),\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(record.value), 1),\n _createElementVNode(\"span\", _hoisted_4, [\n _createVNode(_component_router_link, {\n to: {\n name: 'Workout',\n params: { workoutId: record.workout_id },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(record.workout_date), 1)\n ]),\n _: 2\n }, 1032, [\"to\"])\n ])\n ]))\n }), 128))\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./RecordsCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./RecordsCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./RecordsCard.vue?vue&type=style&index=0&id=8d17c606&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-8d17c606\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f0c85cb8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"user-records-section\" }\nconst _hoisted_2 = { class: \"section-title\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-trophy custom-fa-small\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = { class: \"user-records\" }\nconst _hoisted_5 = {\n key: 0,\n class: \"no-records\"\n}\n\nimport { computed } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import RecordsCard from '@/components/Dashboard/UserRecords/RecordsCard.vue'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { getRecordsBySports } from '@/utils/records'\n import { translateSports } from '@/utils/sports'\n\n interface Props {\n sports: ISport[]\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IAuthUserProfile\n };\n\n \n\n const { t } = useI18n()\n\n const recordsBySport = computed(() =>\n getRecordsBySports(\n props.user.records,\n translateSports(props.sports, t),\n props.user.timezone,\n props.user.imperial_units,\n props.user.display_ascent,\n props.user.date_format\n )\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.RECORD', 2)), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n (Object.keys(_unref(recordsBySport)).length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _toDisplayString(_ctx.$t('workouts.NO_RECORDS')), 1))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(Object.keys(_unref(recordsBySport)).sort(), (sportTranslatedLabel) => {\n return (_openBlock(), _createBlock(RecordsCard, {\n sportTranslatedLabel: sportTranslatedLabel,\n records: _unref(recordsBySport)[sportTranslatedLabel],\n key: sportTranslatedLabel,\n useImperialUnits: __props.user.imperial_units\n }, null, 8, [\"sportTranslatedLabel\", \"records\", \"useImperialUnits\"]))\n }), 128))\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=f0c85cb8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f0c85cb8\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-stats\" }\n\nimport { ComputedRef, computed, toRefs } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import StatCard from '@/components/Common/StatCard.vue'\n import { TUnit } from '@/types/units'\n import { IAuthUserProfile } from '@/types/user'\n import { convertDistance, units } from '@/utils/units'\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const { t } = useI18n()\n\n const { user } = toRefs(props)\n const userTotalDuration: ComputedRef = computed(\n () => props.user.total_duration\n )\n const totalDuration = computed(() => get_duration(userTotalDuration))\n const distanceUnitFrom: TUnit = 'km'\n const distanceUnitTo: TUnit = user.value.imperial_units\n ? units[distanceUnitFrom].defaultTarget\n : distanceUnitFrom\n const totalDistance: ComputedRef = computed(() =>\n user.value.imperial_units\n ? convertDistance(user.value.total_distance, distanceUnitFrom, distanceUnitTo, 2)\n : parseFloat(user.value.total_distance.toFixed(2)))\n const ascentUnitFrom: TUnit = 'm'\n const ascentUnitTo: TUnit = user.value.imperial_units\n ? units[ascentUnitFrom].defaultTarget\n : ascentUnitFrom\n const totalAscent: ComputedRef = computed(() =>\n user.value.imperial_units\n ? convertDistance(user.value.total_ascent, ascentUnitFrom, ascentUnitTo, 2)\n : parseFloat(user.value.total_ascent.toFixed(2)))\n\n\n function get_duration(total_duration: ComputedRef) {\n const duration = total_duration.value.match(/day/g)\n ? total_duration.value.split(', ')[1]\n : total_duration.value\n return {\n days: total_duration.value.match(/day/g)\n ? `${total_duration.value.split(' ')[0]} ${\n total_duration.value.match(/days/g)\n ? t('common.DAY', 2)\n : t('common.DAY', 1)\n }`\n : `0 ${t('common.DAY', 2)},`,\n duration: `${duration.split(':')[0]}h ${duration.split(':')[1]}min`,\n }\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(StatCard, {\n icon: \"calendar\",\n value: _unref(user).nb_workouts,\n text: _ctx.$t('workouts.WORKOUT', _unref(user).nb_workouts)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"road\",\n value: _unref(totalDistance),\n text: _unref(distanceUnitTo) === 'mi' ? 'miles' : _unref(distanceUnitTo)\n }, null, 8, [\"value\", \"text\"]),\n (_unref(user).display_ascent)\n ? (_openBlock(), _createBlock(StatCard, {\n key: 0,\n icon: \"location-arrow\",\n value: _unref(totalAscent),\n text: _unref(ascentUnitTo) === 'ft' ? 'feet' : _unref(ascentUnitTo)\n }, null, 8, [\"value\", \"text\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(StatCard, {\n icon: \"clock-o\",\n value: _unref(totalDuration).days,\n text: _unref(totalDuration).duration\n }, null, 8, [\"value\", \"text\"]),\n (!_unref(user).display_ascent)\n ? (_openBlock(), _createBlock(StatCard, {\n key: 1,\n icon: \"tags\",\n value: _unref(user).nb_sports,\n text: _ctx.$t('workouts.SPORT', _unref(user).nb_sports)\n }, null, 8, [\"value\", \"text\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=22dcb990&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4c0893c1\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n id: \"dashboard\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container mobile-menu\" }\nconst _hoisted_3 = { class: \"box\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-calendar\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_5 = [\n _hoisted_4\n]\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-bar-chart\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_7 = [\n _hoisted_6\n]\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-map-o\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_9 = [\n _hoisted_8\n]\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-trophy\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = [\n _hoisted_10\n]\nconst _hoisted_12 = { class: \"container\" }\nconst _hoisted_13 = { class: \"container dashboard-container\" }\nconst _hoisted_14 = { class: \"left-container dashboard-sub-container\" }\nconst _hoisted_15 = { class: \"right-container dashboard-sub-container\" }\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\nconst _hoisted_17 = {\n key: 1,\n class: \"app-loading\"\n}\n\nimport { ComputedRef, Ref, computed, onBeforeMount, ref } from 'vue'\n\n import Timeline from '@/components/Dashboard/Timeline.vue'\n import UserCalendar from '@/components/Dashboard/UserCalendar/index.vue'\n import UserMonthStats from '@/components/Dashboard/UserMonthStats.vue'\n import UserRecords from '@/components/Dashboard/UserRecords/index.vue'\n import UserStatsCards from '@/components/Dashboard/UserStatsCards/index.vue'\n import { AUTH_USER_STORE, SPORTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Dashboard',\n setup(__props) {\n\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const isSelected: Ref = ref('calendar')\n\n onBeforeMount(() => store.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE))\n\n function updateDisplayColumn(target: string) {\n isSelected.value = target\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Loader = _resolveComponent(\"Loader\")!\n\n return (_unref(authUser).username && _unref(sports).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'calendar' }]),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (updateDisplayColumn('calendar')))\n }, _hoisted_5, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'chart' }]),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayColumn('chart')))\n }, _hoisted_7, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'timeline' }]),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (updateDisplayColumn('timeline')))\n }, _hoisted_9, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'records' }]),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (updateDisplayColumn('records')))\n }, _hoisted_11, 2)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createVNode(UserStatsCards, { user: _unref(authUser) }, null, 8, [\"user\"])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"div\", _hoisted_14, [\n _createVNode(UserMonthStats, {\n sports: _unref(sports),\n user: _unref(authUser),\n class: _normalizeClass({ 'is-hidden': !(isSelected.value === 'chart') })\n }, null, 8, [\"sports\", \"user\", \"class\"]),\n _createVNode(UserRecords, {\n sports: _unref(sports),\n user: _unref(authUser),\n class: _normalizeClass({ 'is-hidden': !(isSelected.value === 'records') })\n }, null, 8, [\"sports\", \"user\", \"class\"])\n ]),\n _createElementVNode(\"div\", _hoisted_15, [\n _createVNode(UserCalendar, {\n sports: _unref(sports),\n user: _unref(authUser),\n class: _normalizeClass({ 'is-hidden': !(isSelected.value === 'calendar') })\n }, null, 8, [\"sports\", \"user\", \"class\"]),\n _createVNode(Timeline, {\n sports: _unref(sports),\n user: _unref(authUser),\n class: _normalizeClass({ 'is-hidden': !(isSelected.value === 'timeline') })\n }, null, 8, [\"sports\", \"user\", \"class\"])\n ])\n ]),\n _hoisted_16\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _createVNode(_component_Loader)\n ]))\n}\n}\n\n})","import script from \"./Dashboard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Dashboard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Dashboard.vue?vue&type=style&index=0&id=4c0893c1&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4c0893c1\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"not-found view\" }\n\nimport NotFound from '@/components/Common/NotFound.vue'\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'NotFoundView',\n setup(__props) {\n\n \nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(NotFound)\n ]))\n}\n}\n\n})","import script from \"./NotFoundView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NotFoundView.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createElementVNode as _createElementVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-58043acb\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"loginOrRegister\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\nconst _hoisted_3 = { class: \"container-sub\" }\nconst _hoisted_4 = { class: \"container-sub\" }\n\nimport { toRefs } from 'vue'\n\n import BikePic from '@/components/BikePic.vue'\n import LoginOrRegisterForm from '@/components/User/UserAuthForm.vue'\n\n interface Props {\n action: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'LoginOrRegister',\n props: {\n action: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n action: string\n };\n\n \n\n const { action } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(BikePic)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(LoginOrRegisterForm, { action: _unref(action) }, null, 8, [\"action\"])\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./LoginOrRegister.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./LoginOrRegister.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./LoginOrRegister.vue?vue&type=style&index=0&id=58043acb&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-58043acb\"]])\n\nexport default __exports__","import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'\n\nimport AdminApplication from '@/components/Administration/AdminApplication.vue'\nimport AdminMenu from '@/components/Administration/AdminMenu.vue'\nimport AdminSports from '@/components/Administration/AdminSports.vue'\nimport AdminUsers from '@/components/Administration/AdminUsers.vue'\nimport Profile from '@/components/User/ProfileDisplay/index.vue'\nimport UserInfos from '@/components/User/ProfileDisplay/UserInfos.vue'\nimport UserPreferences from '@/components/User/ProfileDisplay/UserPreferences.vue'\nimport ProfileEdition from '@/components/User/ProfileEdition/index.vue'\nimport UserAccountEdition from '@/components/User/ProfileEdition/UserAccountEdition.vue'\nimport UserInfosEdition from '@/components/User/ProfileEdition/UserInfosEdition.vue'\nimport UserPictureEdition from '@/components/User/ProfileEdition/UserPictureEdition.vue'\nimport UserPreferencesEdition from '@/components/User/ProfileEdition/UserPreferencesEdition.vue'\nimport AddUserApp from '@/components/User/UserApps/AddUserApp.vue'\nimport AuthorizeUserApp from '@/components/User/UserApps/AuthorizeUserApp.vue'\nimport UserApps from '@/components/User/UserApps/index.vue'\nimport UserApp from '@/components/User/UserApps/UserApp.vue'\nimport UserAppsList from '@/components/User/UserApps/UserAppsList.vue'\nimport UserSportPreferences from '@/components/User/UserSportPreferences.vue'\nimport store from '@/store'\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport AboutView from '@/views/AboutView.vue'\nimport Dashboard from '@/views/Dashboard.vue'\nimport NotFoundView from '@/views/NotFoundView.vue'\nimport LoginOrRegister from '@/views/user/LoginOrRegister.vue'\n\nconst getTabFromPath = (path: string): string => {\n const regex = /(\\/profile)(\\/edit)*(\\/*)/\n const tag = path.replace(regex, '').toUpperCase()\n return tag === '' ? 'PROFILE' : tag.toUpperCase()\n}\n\nconst routes: Array = [\n {\n path: '/',\n name: 'Dashboard',\n component: Dashboard,\n },\n {\n path: '/login',\n name: 'Login',\n component: LoginOrRegister,\n props: { action: 'login' },\n },\n {\n path: '/register',\n name: 'Register',\n component: LoginOrRegister,\n props: { action: 'register' },\n },\n {\n path: '/account-confirmation',\n name: 'AccountConfirmation',\n component: () =>\n import(\n /* webpackChunkName: 'profile' */ '@/views/user/AccountConfirmationView.vue'\n ),\n },\n {\n path: '/account-confirmation/resend',\n name: 'AccountConfirmationResend',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/AccountConfirmationResendView.vue'\n ),\n props: { action: 'account-confirmation-resend' },\n },\n {\n path: '/account-confirmation/email-sent',\n name: 'AccountConfirmationEmailSend',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/AccountConfirmationResendView.vue'\n ),\n props: { action: 'email-sent' },\n },\n {\n path: '/password-reset/sent',\n name: 'PasswordEmailSent',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'request-sent' },\n },\n {\n path: '/password-reset/request',\n name: 'PasswordResetRequest',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'reset-request' },\n },\n {\n path: '/password-reset/password-updated',\n name: 'PasswordUpdated',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'password-updated' },\n },\n {\n path: '/password-reset',\n name: 'PasswordReset',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'reset' },\n },\n {\n path: '/email-update',\n name: 'EmailUpdate',\n component: () =>\n import(\n /* webpackChunkName: 'profile' */ '@/views/user/EmailUpdateView.vue'\n ),\n },\n {\n path: '/profile',\n name: 'Profile',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/ProfileView.vue'),\n children: [\n {\n path: '',\n name: 'UserProfile',\n component: Profile,\n props: (route) => ({\n tab: getTabFromPath(route.path),\n }),\n children: [\n {\n path: '',\n name: 'UserInfos',\n component: UserInfos,\n },\n {\n path: 'preferences',\n name: 'UserPreferences',\n component: UserPreferences,\n },\n {\n path: 'sports',\n name: 'UserSportPreferences',\n component: UserSportPreferences,\n props: { isEdition: false },\n },\n {\n path: 'apps',\n name: 'UserApps',\n component: UserApps,\n children: [\n {\n path: '',\n name: 'UserAppsList',\n component: UserAppsList,\n },\n {\n path: ':id',\n name: 'UserApp',\n component: UserApp,\n },\n {\n path: ':id/created',\n name: 'CreatedUserApp',\n component: UserApp,\n props: { afterCreation: true },\n },\n {\n path: 'new',\n name: 'AddUserApp',\n component: AddUserApp,\n },\n {\n path: 'authorize',\n name: 'AuthorizeUserApp',\n component: AuthorizeUserApp,\n },\n ],\n },\n ],\n },\n {\n path: 'edit',\n name: 'UserProfileEdition',\n component: ProfileEdition,\n props: (route) => ({\n tab: getTabFromPath(route.path),\n }),\n children: [\n {\n path: '',\n name: 'UserInfosEdition',\n component: UserInfosEdition,\n },\n {\n path: 'account',\n name: 'UserAccountEdition',\n component: UserAccountEdition,\n },\n {\n path: 'picture',\n name: 'UserPictureEdition',\n component: UserPictureEdition,\n },\n {\n path: 'preferences',\n name: 'UserPreferencesEdition',\n component: UserPreferencesEdition,\n },\n {\n path: 'sports',\n name: 'UserSportPreferencesEdition',\n component: UserSportPreferences,\n props: { isEdition: true },\n },\n ],\n },\n ],\n },\n {\n path: '/statistics',\n name: 'Statistics',\n component: () =>\n import(/* webpackChunkName: 'statistics' */ '@/views/StatisticsView.vue'),\n },\n {\n path: '/users/:username',\n name: 'User',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/UserView.vue'),\n },\n {\n path: '/workouts',\n name: 'Workouts',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/WorkoutsView.vue'\n ),\n },\n {\n path: '/workouts/:workoutId',\n name: 'Workout',\n component: () =>\n import(/* webpackChunkName: 'workouts' */ '@/views/workouts/Workout.vue'),\n props: { displaySegment: false },\n },\n {\n path: '/workouts/:workoutId/edit',\n name: 'EditWorkout',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/EditWorkout.vue'\n ),\n },\n {\n path: '/workouts/:workoutId/segment/:segmentId',\n name: 'WorkoutSegment',\n component: () =>\n import(/* webpackChunkName: 'workouts' */ '@/views/workouts/Workout.vue'),\n props: { displaySegment: true },\n },\n {\n path: '/workouts/add',\n name: 'AddWorkout',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/AddWorkout.vue'\n ),\n },\n {\n path: '/admin',\n name: 'Administration',\n component: () =>\n import(/* webpackChunkName: 'admin' */ '@/views/AdminView.vue'),\n children: [\n {\n path: '',\n name: 'AdministrationMenu',\n component: AdminMenu,\n },\n {\n path: 'application',\n name: 'ApplicationAdministration',\n component: AdminApplication,\n },\n {\n path: 'application/edit',\n name: 'ApplicationAdministrationEdition',\n component: AdminApplication,\n props: { edition: true },\n },\n {\n path: 'sports',\n name: 'SportsAdministration',\n component: AdminSports,\n },\n {\n path: 'users/:username',\n name: 'UserFromAdmin',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/UserView.vue'),\n props: { fromAdmin: true },\n },\n {\n path: 'users',\n name: 'UsersAdministration',\n component: AdminUsers,\n },\n ],\n },\n {\n path: '/about',\n name: 'About',\n component: AboutView,\n },\n {\n path: '/:pathMatch(.*)*',\n name: 'not-found',\n component: NotFoundView,\n },\n]\n\nconst router = createRouter({\n history: createWebHistory(process.env.BASE_URL),\n routes,\n})\n\nconst pathsWithoutAuthentication = [\n '/login',\n '/password-reset',\n '/password-reset/password-updated',\n '/password-reset/request',\n '/password-reset/sent',\n '/register',\n '/account-confirmation',\n '/account-confirmation/resend',\n '/account-confirmation/email-sent',\n]\n\nconst pathsWithoutChecks = ['/email-update', '/about']\n\nrouter.beforeEach((to, from, next) => {\n store\n .dispatch(AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER)\n .then(() => {\n if (pathsWithoutChecks.includes(to.path)) {\n return next()\n }\n if (\n store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n pathsWithoutAuthentication.includes(to.path)\n ) {\n return next('/')\n }\n if (\n !store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n !pathsWithoutAuthentication.includes(to.path)\n ) {\n const path =\n to.path === '/'\n ? { path: '/login' }\n : { path: '/login', query: { from: to.fullPath } }\n next(path)\n } else {\n next()\n }\n })\n .catch((error) => {\n console.error(error)\n next()\n })\n})\n\nexport default router\n","export enum AuthUserActions {\n CHECK_AUTH_USER = 'CHECK_AUTH_USER',\n CONFIRM_ACCOUNT = 'CONFIRM_ACCOUNT',\n CONFIRM_EMAIL = 'CONFIRM_EMAIL',\n DELETE_ACCOUNT = 'DELETE_ACCOUNT',\n DELETE_PICTURE = 'DELETE_PICTURE',\n GET_USER_PROFILE = 'GET_USER_PROFILE',\n LOGIN_OR_REGISTER = 'LOGIN_OR_REGISTER',\n LOGOUT = 'LOGOUT',\n SEND_PASSWORD_RESET_REQUEST = 'SEND_PASSWORD_RESET_REQUEST',\n RESEND_ACCOUNT_CONFIRMATION_EMAIL = 'RESEND_ACCOUNT_CONFIRMATION_EMAIL',\n RESET_USER_PASSWORD = 'RESET_USER_PASSWORD',\n RESET_USER_SPORT_PREFERENCES = 'RESET_USER_SPORT_PREFERENCES',\n UPDATE_USER_ACCOUNT = 'UPDATE_USER_ACCOUNT',\n UPDATE_USER_PICTURE = 'UPDATE_USER_PICTURE',\n UPDATE_USER_PROFILE = 'UPDATE_USER_PROFILE',\n UPDATE_USER_PREFERENCES = 'UPDATE_USER_PREFERENCES',\n UPDATE_USER_SPORT_PREFERENCES = 'UPDATE_USER_SPORT_PREFERENCES',\n}\n\nexport enum AuthUserGetters {\n AUTH_TOKEN = 'AUTH_TOKEN',\n AUTH_USER_PROFILE = 'AUTH_USER_PROFILE',\n IS_ADMIN = 'IS_ADMIN',\n IS_AUTHENTICATED = 'IS_AUTHENTICATED',\n IS_SUCCESS = 'IS_SUCCESS',\n IS_REGISTRATION_SUCCESS = 'IS_REGISTRATION_SUCCESS',\n USER_LOADING = 'USER_LOADING',\n}\n\nexport enum AuthUserMutations {\n CLEAR_AUTH_USER_TOKEN = 'CLEAR_AUTH_USER_TOKEN',\n UPDATE_AUTH_TOKEN = 'UPDATE_AUTH_TOKEN',\n UPDATE_AUTH_USER_PROFILE = 'UPDATE_AUTH_USER_PROFILE',\n UPDATE_IS_SUCCESS = 'UPDATE_USER_IS_SUCCESS',\n UPDATE_IS_REGISTRATION_SUCCESS = 'UPDATE_IS_REGISTRATION_SUCCESS',\n UPDATE_USER_LOADING = 'UPDATE_USER_LOADING',\n}\n","export enum OAuth2Actions {\n AUTHORIZE_CLIENT = 'AUTHORIZE_CLIENT',\n CREATE_CLIENT = 'CREATE_CLIENT',\n DELETE_CLIENT = 'DELETE_CLIENT',\n GET_CLIENTS = 'GET_CLIENTS',\n GET_CLIENT_BY_CLIENT_ID = 'GET_CLIENT_BY_CLIENT_ID',\n GET_CLIENT_BY_ID = 'GET_CLIENT_BY_ID',\n REVOKE_ALL_TOKENS = 'REVOKE_ALL_TOKENS',\n}\n\nexport enum OAuth2Getters {\n CLIENT = 'CLIENT',\n CLIENTS = 'CLIENTS',\n CLIENTS_PAGINATION = 'CLIENTS_PAGINATION',\n REVOCATION_SUCCESSFUL = 'REVOCATION_SUCCESSFUL',\n}\n\nexport enum OAuth2Mutations {\n EMPTY_CLIENT = 'EMPTY_CLIENT',\n SET_CLIENT = 'SET_CLIENT',\n SET_CLIENTS = 'SET_CLIENTS',\n SET_CLIENTS_PAGINATION = 'SET_CLIENTS_PAGINATION',\n SET_REVOCATION_SUCCESSFUL = 'SET_REVOCATION_SUCCESSFUL',\n}\n","export enum RootActions {\n GET_APPLICATION_CONFIG = 'GET_APPLICATION_CONFIG',\n GET_APPLICATION_STATS = 'GET_APPLICATION_STATS',\n UPDATE_APPLICATION_CONFIG = 'UPDATE_APPLICATION_CONFIG',\n UPDATE_APPLICATION_LANGUAGE = 'UPDATE_APPLICATION_LANGUAGE',\n}\n\nexport enum RootGetters {\n APP_CONFIG = 'APP_CONFIG',\n APP_LOADING = 'APP_LOADING',\n APP_STATS = 'APP_STATS',\n ERROR_MESSAGES = 'ERROR_MESSAGES',\n LANGUAGE = 'LANGUAGE',\n LOCALE = 'LOCALE', // date-fns\n}\n\nexport enum RootMutations {\n EMPTY_ERROR_MESSAGES = 'EMPTY_ERROR_MESSAGES',\n SET_ERROR_MESSAGES = 'SET_ERROR_MESSAGES',\n UPDATE_APPLICATION_CONFIG = 'UPDATE_APPLICATION_CONFIG',\n UPDATE_APPLICATION_LOADING = 'UPDATE_APPLICATION_LOADING',\n UPDATE_APPLICATION_STATS = 'UPDATE_APPLICATION_STATS',\n UPDATE_LANG = 'UPDATE_LANG',\n}\n","export enum SportsActions {\n GET_SPORTS = 'GET_SPORTS',\n UPDATE_SPORTS = 'UPDATE_SPORTS',\n}\n\nexport enum SportsGetters {\n SPORTS = 'SPORTS',\n}\n\nexport enum SportsMutation {\n SET_SPORTS = 'SET_SPORTS',\n}\n","export enum StatisticsActions {\n GET_USER_STATS = 'GET_USER_STATS',\n}\n\nexport enum StatisticsGetters {\n USER_STATS = 'USER_STATS',\n}\n\nexport enum StatisticsMutations {\n EMPTY_USER_STATS = 'EMPTY_USER_STATS',\n UPDATE_USER_STATS = 'UPDATE_USER_STATS',\n}\n","export enum UsersActions {\n EMPTY_USER = 'EMPTY_USER',\n EMPTY_USERS = 'EMPTY_USERS',\n GET_USER = 'GET_USER',\n GET_USERS = 'GET_USERS',\n UPDATE_USER = 'UPDATE_USER',\n DELETE_USER_ACCOUNT = 'DELETE_USER_ACCOUNT',\n}\n\nexport enum UsersGetters {\n USER = 'USER',\n USERS = 'USERS',\n USERS_IS_SUCCESS = 'USERS_IS_SUCCESS',\n USERS_LOADING = 'USERS_LOADING',\n USERS_PAGINATION = 'USERS_PAGINATION',\n}\n\nexport enum UsersMutations {\n UPDATE_USER = 'UPDATE_USER',\n UPDATE_USER_IN_USERS = 'UPDATE_USER_IN_USERS',\n UPDATE_USERS = 'UPDATE_USERS',\n UPDATE_USERS_LOADING = 'UPDATE_USERS_LOADING',\n UPDATE_USERS_PAGINATION = 'UPDATE_USERS_PAGINATION',\n UPDATE_IS_SUCCESS = 'UPDATE_IS_SUCCESS',\n}\n","import {\n AuthUserActions,\n AuthUserGetters,\n AuthUserMutations,\n} from '@/store/modules/authUser/enums'\nimport {\n OAuth2Actions,\n OAuth2Getters,\n OAuth2Mutations,\n} from '@/store/modules/oauth2/enums'\nimport {\n RootActions,\n RootGetters,\n RootMutations,\n} from '@/store/modules/root/enums'\nimport {\n SportsActions,\n SportsGetters,\n SportsMutation,\n} from '@/store/modules/sports/enums'\nimport {\n StatisticsActions,\n StatisticsGetters,\n StatisticsMutations,\n} from '@/store/modules/statistics/enums'\nimport {\n UsersActions,\n UsersGetters,\n UsersMutations,\n} from '@/store/modules/users/enums'\nimport {\n WorkoutsActions,\n WorkoutsGetters,\n WorkoutsMutations,\n} from '@/store/modules/workouts/enums'\n\nexport const ROOT_STORE = {\n ACTIONS: RootActions,\n GETTERS: RootGetters,\n MUTATIONS: RootMutations,\n}\n\nexport const SPORTS_STORE = {\n ACTIONS: SportsActions,\n GETTERS: SportsGetters,\n MUTATIONS: SportsMutation,\n}\n\nexport const STATS_STORE = {\n ACTIONS: StatisticsActions,\n GETTERS: StatisticsGetters,\n MUTATIONS: StatisticsMutations,\n}\n\nexport const AUTH_USER_STORE = {\n ACTIONS: AuthUserActions,\n GETTERS: AuthUserGetters,\n MUTATIONS: AuthUserMutations,\n}\nexport const OAUTH2_STORE = {\n ACTIONS: OAuth2Actions,\n GETTERS: OAuth2Getters,\n MUTATIONS: OAuth2Mutations,\n}\n\nexport const USERS_STORE = {\n ACTIONS: UsersActions,\n GETTERS: UsersGetters,\n MUTATIONS: UsersMutations,\n}\n\nexport const WORKOUTS_STORE = {\n ACTIONS: WorkoutsActions,\n GETTERS: WorkoutsGetters,\n MUTATIONS: WorkoutsMutations,\n}\n","import axios from 'axios'\n\nimport { pendingRequests, removeRequestIfPending } from '@/api/pending'\nimport { getApiUrl } from '@/utils'\n\nconst api = axios.create({\n baseURL: getApiUrl(),\n})\n\napi.interceptors.request.use(\n (config) => {\n const controller = new AbortController()\n config.signal = controller.signal\n const requestKey = removeRequestIfPending(config)\n pendingRequests.set(requestKey, controller)\n return config\n },\n (error) => Promise.reject(error)\n)\n\napi.interceptors.response.use(\n (response) => {\n removeRequestIfPending(response.config)\n return response\n },\n (error) => {\n if (error.message !== 'canceled') {\n removeRequestIfPending(error.response.config)\n }\n return Promise.reject(error)\n }\n)\n\nexport default api\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { IUsersActions, IUsersState } from '@/store/modules/users/types'\nimport { TPaginationPayload } from '@/types/api'\nimport { IAdminUserPayload, IUserDeletionPayload } from '@/types/user'\nimport { handleError } from '@/utils'\n\nexport const deleteUserAccount = (\n context:\n | ActionContext\n | ActionContext,\n payload: IUserDeletionPayload\n): void => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .delete(`users/${payload.username}`)\n .then((res) => {\n if (res.status === 204) {\n if (payload.fromAdmin) {\n router.push('/admin/users')\n } else {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.LOGOUT)\n .then(() => router.push('/'))\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree & IUsersActions = {\n [USERS_STORE.ACTIONS.EMPTY_USER](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USER, {})\n },\n [USERS_STORE.ACTIONS.EMPTY_USERS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS, [])\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION, {})\n },\n [USERS_STORE.ACTIONS.GET_USER](\n context: ActionContext,\n username: string\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, true)\n authApi\n .get(`users/${username}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER,\n res.data.data.users[0]\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.GET_USERS](\n context: ActionContext,\n payload: TPaginationPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, true)\n authApi\n .get('users', { params: payload })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USERS,\n res.data.data.users\n )\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION,\n res.data.pagination\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.UPDATE_USER](\n context: ActionContext,\n payload: IAdminUserPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n const data: Record = {}\n if (payload.admin !== undefined) {\n data.admin = payload.admin\n }\n if (payload.resetPassword) {\n data.reset_password = payload.resetPassword\n }\n if (payload.activate) {\n data.activate = payload.activate\n }\n if (payload.new_email !== undefined) {\n data.new_email = payload.new_email\n }\n authApi\n .patch(`users/${payload.username}`, data)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER_IN_USERS,\n res.data.data.users[0]\n )\n if (payload.resetPassword || payload.new_email) {\n context.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, true)\n }\n if (payload.activate || payload.new_email) {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER,\n res.data.data.users[0]\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.DELETE_USER_ACCOUNT](\n context: ActionContext,\n payload: IUserDeletionPayload\n ): void {\n deleteUserAccount(context, {\n username: payload.username,\n fromAdmin: true,\n })\n },\n}\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport api from '@/api/defaultApi'\nimport router from '@/router'\nimport {\n AUTH_USER_STORE,\n ROOT_STORE,\n SPORTS_STORE,\n STATS_STORE,\n USERS_STORE,\n WORKOUTS_STORE,\n} from '@/store/constants'\nimport {\n IAuthUserActions,\n IAuthUserState,\n} from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { deleteUserAccount } from '@/store/modules/users/actions'\nimport {\n ILoginOrRegisterData,\n IUserAccountPayload,\n IUserDeletionPayload,\n IUserAccountUpdatePayload,\n IUserEmailPayload,\n IUserPasswordResetPayload,\n IUserPayload,\n IUserPicturePayload,\n IUserPreferencesPayload,\n IUserSportPreferencesPayload,\n} from '@/types/user'\nimport { handleError } from '@/utils'\n\nconst removeAuthUserData = (\n context: ActionContext\n) => {\n localStorage.removeItem('authToken')\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(STATS_STORE.MUTATIONS.EMPTY_USER_STATS)\n context.commit(AUTH_USER_STORE.MUTATIONS.CLEAR_AUTH_USER_TOKEN)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS, [])\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUTS)\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n router.push('/login')\n}\n\nexport const actions: ActionTree &\n IAuthUserActions = {\n [AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER](\n context: ActionContext\n ): void {\n if (\n window.localStorage.authToken &&\n !context.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]\n ) {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN,\n window.localStorage.authToken\n )\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n }\n // after logout in another tab\n if (\n !window.localStorage.authToken &&\n context.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]\n ) {\n removeAuthUserData(context)\n }\n },\n [AUTH_USER_STORE.ACTIONS.CONFIRM_ACCOUNT](\n context: ActionContext,\n payload: IUserAccountUpdatePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/account/confirm', { token: payload.token })\n .then((res) => {\n if (res.data.status === 'success') {\n const token = res.data.auth_token\n window.localStorage.setItem('authToken', token)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN, token)\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n },\n [AUTH_USER_STORE.ACTIONS.CONFIRM_EMAIL](\n context: ActionContext,\n payload: IUserAccountUpdatePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n api\n .post('/auth/email/update', { token: payload.token })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, true)\n if (payload.refreshUser) {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => {\n return router.push('/profile/edit/account')\n })\n }\n router.push('/profile/edit/account')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n },\n [AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('auth/profile')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n if (res.data.data.language) {\n context.dispatch(\n ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE,\n res.data.data.language\n )\n }\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n removeAuthUserData(context)\n }\n })\n .catch((error) => {\n if (error.message !== 'canceled') {\n handleError(context, error)\n removeAuthUserData(context)\n }\n })\n },\n [AUTH_USER_STORE.ACTIONS.LOGIN_OR_REGISTER](\n context: ActionContext,\n data: ILoginOrRegisterData\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,\n false\n )\n api\n .post(`/auth/${data.actionType}`, data.formData)\n .then((res) => {\n if (res.data.status === 'success') {\n if (data.actionType === 'login') {\n const token = res.data.auth_token\n window.localStorage.setItem('authToken', token)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN, token)\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() =>\n router.push(\n typeof data.redirectUrl === 'string' ? data.redirectUrl : '/'\n )\n )\n } else {\n router\n .push('/login')\n .then(() =>\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,\n true\n )\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.LOGOUT](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .post('auth/logout')\n .then((res) => {\n if (res.data.status === 'success') {\n removeAuthUserData(context)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PROFILE](\n context: ActionContext,\n payload: IUserPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n router.push('/profile')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_ACCOUNT](\n context: ActionContext,\n payload: IUserAccountPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n authApi\n .patch('auth/profile/edit/account', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, true)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PREFERENCES](\n context: ActionContext,\n payload: IUserPreferencesPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit/preferences', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n context\n .dispatch(\n ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE,\n res.data.data.language\n )\n .then(() => router.push('/profile/preferences'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.RESET_USER_SPORT_PREFERENCES](\n context: ActionContext,\n sportId: number\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .delete(`auth/profile/reset/sports/${sportId}`)\n .then((res) => {\n if (res.status === 204) {\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n })\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_SPORT_PREFERENCES](\n context: ActionContext,\n payload: IUserSportPreferencesPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit/sports', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n })\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PICTURE](\n context: ActionContext,\n payload: IUserPicturePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n if (!payload.picture) {\n throw new Error('No file part')\n }\n const form = new FormData()\n form.append('file', payload.picture)\n authApi\n .post('auth/picture', form, {\n headers: {\n 'content-type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/profile'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.DELETE_ACCOUNT](\n context: ActionContext,\n payload: IUserDeletionPayload\n ): void {\n deleteUserAccount(context, payload)\n },\n [AUTH_USER_STORE.ACTIONS.DELETE_PICTURE](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .delete(`auth/picture`)\n .then((res) => {\n if (res.status === 204) {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/profile'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.SEND_PASSWORD_RESET_REQUEST](\n context: ActionContext,\n payload: IUserEmailPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/password/reset-request', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/password-reset/sent')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL](\n context: ActionContext,\n payload: IUserEmailPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/account/resend-confirmation', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/account-confirmation/email-sent')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.RESET_USER_PASSWORD](\n context: ActionContext,\n payload: IUserPasswordResetPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/password/update', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/password-reset/password-updated')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport {\n IAuthUserGetters,\n IAuthUserState,\n} from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree &\n IAuthUserGetters = {\n [AUTH_USER_STORE.GETTERS.AUTH_TOKEN]: (state: IAuthUserState) => {\n return state.authToken\n },\n [AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]: (state: IAuthUserState) => {\n return state.authUserProfile\n },\n [AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]: (state: IAuthUserState) => {\n return state.authToken !== null\n },\n [AUTH_USER_STORE.GETTERS.IS_ADMIN]: (state: IAuthUserState) => {\n return state.authUserProfile && state.authUserProfile.admin\n },\n [AUTH_USER_STORE.GETTERS.IS_REGISTRATION_SUCCESS]: (\n state: IAuthUserState\n ) => {\n return state.isRegistrationSuccess\n },\n [AUTH_USER_STORE.GETTERS.IS_SUCCESS]: (state: IAuthUserState) => {\n return state.isSuccess\n },\n [AUTH_USER_STORE.GETTERS.USER_LOADING]: (state: IAuthUserState) => {\n return state.loading\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport {\n IAuthUserState,\n TAuthUserMutations,\n} from '@/store/modules/authUser/types'\nimport { IAuthUserProfile } from '@/types/user'\n\nexport const mutations: MutationTree & TAuthUserMutations = {\n [AUTH_USER_STORE.MUTATIONS.CLEAR_AUTH_USER_TOKEN](state: IAuthUserState) {\n state.authToken = null\n state.authUserProfile = {}\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN](\n state: IAuthUserState,\n authToken: string\n ) {\n state.authToken = authToken\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE](\n state: IAuthUserState,\n authUserProfile: IAuthUserProfile\n ) {\n state.authUserProfile = authUserProfile\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS](\n state: IAuthUserState,\n isRegistrationSuccess: boolean\n ) {\n state.isRegistrationSuccess = isRegistrationSuccess\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS](\n state: IAuthUserState,\n isSuccess: boolean\n ) {\n state.isSuccess = isSuccess\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING](\n state: IAuthUserState,\n loading: boolean\n ) {\n state.loading = loading\n },\n}\n","import { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IAuthUserProfile } from '@/types/user'\n\nexport const authUserState: IAuthUserState = {\n authToken: null,\n authUserProfile: {},\n isSuccess: false,\n isRegistrationSuccess: false,\n loading: false,\n}\n","import { Module } from 'vuex'\n\nimport { actions } from '@/store/modules/authUser/actions'\nimport { getters } from '@/store/modules/authUser/getters'\nimport { mutations } from '@/store/modules/authUser/mutations'\nimport { authUserState } from '@/store/modules/authUser/state'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst authUser: Module = {\n state: authUserState,\n actions,\n getters,\n mutations,\n}\n\nexport default authUser\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\nimport { IOAuth2Actions, IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IOauth2ClientsPayload,\n IOAuth2ClientPayload,\n IOAuth2ClientAuthorizePayload,\n} from '@/types/oauth'\nimport { handleError } from '@/utils'\n\nconst get_client = (\n context: ActionContext,\n url: string\n) => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get(url)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(OAUTH2_STORE.MUTATIONS.SET_CLIENT, res.data.data.client)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree & IOAuth2Actions = {\n [OAUTH2_STORE.ACTIONS.AUTHORIZE_CLIENT](\n context: ActionContext,\n payload: IOAuth2ClientAuthorizePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n const form = new FormData()\n form.set('client_id', payload.client_id)\n form.set('response_type', payload.response_type)\n form.set('scope', payload.scope)\n form.set('confirm', 'true')\n if (payload.state) {\n form.set('state', payload.state)\n }\n if (payload.code_challenge) {\n form.set('code_challenge', payload.code_challenge)\n }\n if (payload.code_challenge_method) {\n form.set('code_challenge_method', payload.code_challenge_method)\n }\n\n authApi\n .post('oauth/authorize', form, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.status == 200 && res.data.redirect_url) {\n window.location.href = res.data.redirect_url\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [OAUTH2_STORE.ACTIONS.CREATE_CLIENT](\n context: ActionContext,\n payload: IOAuth2ClientPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .post('oauth/apps', payload)\n .then((res) => {\n if (res.data.status === 'created') {\n context.commit(\n OAUTH2_STORE.MUTATIONS.SET_CLIENT,\n res.data.data.client\n )\n router.push(`/profile/apps/${res.data.data.client.id}/created`)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [OAUTH2_STORE.ACTIONS.DELETE_CLIENT](\n context: ActionContext,\n id: number\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .delete(`oauth/apps/${id}`)\n .then((res) => {\n if (res.status === 204) {\n context\n .dispatch(OAUTH2_STORE.ACTIONS.GET_CLIENTS)\n .then(() => router.push('/profile/apps'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_CLIENT_ID](\n context: ActionContext,\n client_id: string\n ): void {\n get_client(context, `oauth/apps/${client_id}`)\n },\n [OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_ID](\n context: ActionContext,\n id: number\n ): void {\n get_client(context, `oauth/apps/${id}/by_id`)\n },\n [OAUTH2_STORE.ACTIONS.GET_CLIENTS](\n context: ActionContext,\n payload: IOauth2ClientsPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('oauth/apps', {\n params: payload,\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n OAUTH2_STORE.MUTATIONS.SET_CLIENTS,\n res.data.data.clients\n )\n context.commit(\n OAUTH2_STORE.MUTATIONS.SET_CLIENTS_PAGINATION,\n res.data.pagination\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [OAUTH2_STORE.ACTIONS.REVOKE_ALL_TOKENS](\n context: ActionContext,\n id: number\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(OAUTH2_STORE.MUTATIONS.SET_REVOCATION_SUCCESSFUL, false)\n authApi\n .post(`oauth/apps/${id}/revoke`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(OAUTH2_STORE.MUTATIONS.SET_REVOCATION_SUCCESSFUL, true)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { OAUTH2_STORE } from '@/store/constants'\nimport { IOAuth2Getters, IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree & IOAuth2Getters = {\n [OAUTH2_STORE.GETTERS.CLIENT]: (state: IOAuth2State) => state.client,\n [OAUTH2_STORE.GETTERS.CLIENTS]: (state: IOAuth2State) => state.clients,\n [OAUTH2_STORE.GETTERS.CLIENTS_PAGINATION]: (state: IOAuth2State) =>\n state.pagination,\n [OAUTH2_STORE.GETTERS.REVOCATION_SUCCESSFUL]: (state: IOAuth2State) =>\n state.revocationSuccessful,\n}\n","import { MutationTree } from 'vuex'\n\nimport { OAUTH2_STORE } from '@/store/constants'\nimport { IOAuth2State, TOAuth2Mutations } from '@/store/modules/oauth2/types'\nimport { IPagination } from '@/types/api'\nimport { IOAuth2Client } from '@/types/oauth'\n\nexport const mutations: MutationTree & TOAuth2Mutations = {\n [OAUTH2_STORE.MUTATIONS.SET_CLIENT](\n state: IOAuth2State,\n client: IOAuth2Client\n ) {\n state.client = client\n },\n [OAUTH2_STORE.MUTATIONS.EMPTY_CLIENT](state: IOAuth2State) {\n state.client = {}\n },\n [OAUTH2_STORE.MUTATIONS.SET_CLIENTS](\n state: IOAuth2State,\n clients: IOAuth2Client[]\n ) {\n state.clients = clients\n },\n [OAUTH2_STORE.MUTATIONS.SET_CLIENTS_PAGINATION](\n state: IOAuth2State,\n pagination: IPagination\n ) {\n state.pagination = pagination\n },\n [OAUTH2_STORE.MUTATIONS.SET_REVOCATION_SUCCESSFUL](\n state: IOAuth2State,\n revocationSuccessful: boolean\n ) {\n state.revocationSuccessful = revocationSuccessful\n },\n}\n","import { IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IPagination } from '@/types/api'\nimport { IOAuth2Client } from '@/types/oauth'\n\nexport const oAuth2State: IOAuth2State = {\n client: {},\n clients: [],\n pagination: {},\n revocationSuccessful: false,\n}\n","import { Module } from 'vuex'\n\nimport { actions } from '@/store/modules/oauth2/actions'\nimport { getters } from '@/store/modules/oauth2/getters'\nimport { mutations } from '@/store/modules/oauth2/mutations'\nimport { oAuth2State } from '@/store/modules/oauth2/state'\nimport { IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst oauth2: Module = {\n state: oAuth2State,\n actions,\n getters,\n mutations,\n}\n\nexport default oauth2\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport createI18n from '@/i18n'\nimport router from '@/router'\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootActions, IRootState } from '@/store/modules/root/types'\nimport { TAppConfigForm } from '@/types/application'\nimport { handleError } from '@/utils'\n\nconst { locale } = createI18n.global\n\nexport const actions: ActionTree & IRootActions = {\n [ROOT_STORE.ACTIONS.GET_APPLICATION_CONFIG](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING, true)\n authApi\n .get('config')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG,\n res.data.data\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING, false)\n )\n },\n [ROOT_STORE.ACTIONS.GET_APPLICATION_STATS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('stats/all')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_STATS,\n res.data.data\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [ROOT_STORE.ACTIONS.UPDATE_APPLICATION_CONFIG](\n context: ActionContext,\n payload: TAppConfigForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .patch('config', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG,\n res.data.data\n )\n router.push('/admin/application')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE](\n context: ActionContext,\n language: string\n ): void {\n document.querySelector('html')?.setAttribute('lang', language)\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_LANG, language)\n locale.value = language\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootGetters, IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree & IRootGetters = {\n [ROOT_STORE.GETTERS.APP_CONFIG]: (state: IRootState) => {\n return state.application.config\n },\n [ROOT_STORE.GETTERS.APP_LOADING]: (state: IRootState) => {\n return state.appLoading\n },\n [ROOT_STORE.GETTERS.APP_STATS]: (state: IRootState) => {\n return state.application.statistics\n },\n [ROOT_STORE.GETTERS.ERROR_MESSAGES]: (state: IRootState) => {\n return state.errorMessages\n },\n [ROOT_STORE.GETTERS.LANGUAGE]: (state: IRootState) => {\n return state.language\n },\n [ROOT_STORE.GETTERS.LOCALE]: (state: IRootState) => {\n return state.locale\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootState, TRootMutations } from '@/store/modules/root/types'\nimport { TAppConfig, IAppStatistics } from '@/types/application'\nimport { localeFromLanguage } from '@/utils/locales'\n\nexport const mutations: MutationTree & TRootMutations = {\n [ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES](state: IRootState) {\n state.errorMessages = null\n },\n [ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES](\n state: IRootState,\n errorMessages: string | string[]\n ) {\n state.errorMessages = errorMessages\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG](\n state: IRootState,\n config: TAppConfig\n ) {\n state.application.config = config\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING](\n state: IRootState,\n loading: boolean\n ) {\n state.appLoading = loading\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_STATS](\n state: IRootState,\n statistics: IAppStatistics\n ) {\n state.application.statistics = statistics\n },\n [ROOT_STORE.MUTATIONS.UPDATE_LANG](state: IRootState, language: string) {\n state.language = language\n state.locale = localeFromLanguage[language]\n },\n}\n","import { enUS } from 'date-fns/locale'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { IApplication } from '@/types/application'\n\nexport const state: IRootState = {\n root: true,\n language: 'en',\n locale: enUS,\n errorMessages: null,\n application: {\n statistics: {\n sports: 0,\n uploads_dir_size: 0,\n users: 0,\n workouts: 0,\n },\n },\n appLoading: false,\n}\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport { AUTH_USER_STORE, ROOT_STORE, SPORTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsActions, ISportsState } from '@/store/modules/sports/types'\nimport { ISportPayload } from '@/types/sports'\nimport { handleError } from '@/utils'\n\nexport const actions: ActionTree & ISportsActions = {\n [SPORTS_STORE.ACTIONS.GET_SPORTS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('sports')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n SPORTS_STORE.MUTATIONS.SET_SPORTS,\n res.data.data.sports\n )\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [SPORTS_STORE.ACTIONS.UPDATE_SPORTS](\n context: ActionContext,\n payload: ISportPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .patch(`sports/${payload.id}`, { is_active: payload.isActive })\n .then((res) => {\n if (res.data.status === 'success') {\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { SPORTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsGetters, ISportsState } from '@/store/modules/sports/types'\n\nexport const getters: GetterTree & ISportsGetters = {\n [SPORTS_STORE.GETTERS.SPORTS]: (state: ISportsState) => state.sports,\n}\n","import { MutationTree } from 'vuex'\n\nimport { SPORTS_STORE } from '@/store/constants'\nimport { ISportsState, TSportsMutations } from '@/store/modules/sports/types'\nimport { ISport } from '@/types/sports'\n\nexport const mutations: MutationTree & TSportsMutations = {\n [SPORTS_STORE.MUTATIONS.SET_SPORTS](state: ISportsState, sports: ISport[]) {\n state.sports = sports\n },\n}\n","import { ISportsState } from '@/store/modules/sports/types'\n\nexport const sportsState: ISportsState = {\n sports: [],\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/sports/actions'\nimport { getters } from '@/store/modules/sports/getters'\nimport { mutations } from '@/store/modules/sports/mutations'\nimport { sportsState } from '@/store/modules/sports/state'\nimport { ISportsState } from '@/store/modules/sports/types'\n\nconst sports: Module = {\n state: sportsState,\n actions,\n getters,\n mutations,\n}\n\nexport default sports\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport { STATS_STORE, ROOT_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IStatisticsActions,\n IStatisticsState,\n} from '@/store/modules/statistics/types'\nimport { IUserStatisticsPayload } from '@/types/statistics'\nimport { handleError } from '@/utils'\n\nexport const actions: ActionTree &\n IStatisticsActions = {\n [STATS_STORE.ACTIONS.GET_USER_STATS](\n context: ActionContext,\n payload: IUserStatisticsPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get(`stats/${payload.username}/${payload.filterType}`, {\n params: payload.params,\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n STATS_STORE.MUTATIONS.UPDATE_USER_STATS,\n res.data.data.statistics\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { STATS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IStatisticsGetters,\n IStatisticsState,\n} from '@/store/modules/statistics/types'\n\nexport const getters: GetterTree &\n IStatisticsGetters = {\n [STATS_STORE.GETTERS.USER_STATS]: (state: IStatisticsState) => {\n return state.statistics\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { STATS_STORE } from '@/store/constants'\nimport {\n IStatisticsState,\n TStatisticsMutations,\n} from '@/store/modules/statistics/types'\nimport { TStatisticsFromApi } from '@/types/statistics'\n\nexport const mutations: MutationTree & TStatisticsMutations =\n {\n [STATS_STORE.MUTATIONS.UPDATE_USER_STATS](\n state: IStatisticsState,\n statistics: TStatisticsFromApi\n ) {\n state.statistics = statistics\n },\n [STATS_STORE.MUTATIONS.EMPTY_USER_STATS](state: IStatisticsState) {\n state.statistics = {}\n },\n }\n","import { IStatisticsState } from '@/store/modules/statistics/types'\nimport { TStatisticsFromApi } from '@/types/statistics'\n\nexport const statisticsState: IStatisticsState = {\n statistics: {},\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/statistics/actions'\nimport { getters } from '@/store/modules/statistics/getters'\nimport { mutations } from '@/store/modules/statistics/mutations'\nimport { statisticsState } from '@/store/modules/statistics/state'\nimport { IStatisticsState } from '@/store/modules/statistics/types'\n\nconst statistics: Module = {\n state: statisticsState,\n actions,\n getters,\n mutations,\n}\n\nexport default statistics\n","import { GetterTree } from 'vuex'\n\nimport { USERS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { IUsersGetters, IUsersState } from '@/store/modules/users/types'\n\nexport const getters: GetterTree & IUsersGetters = {\n [USERS_STORE.GETTERS.USER]: (state: IUsersState) => {\n return state.user\n },\n [USERS_STORE.GETTERS.USERS]: (state: IUsersState) => {\n return state.users\n },\n [USERS_STORE.GETTERS.USERS_IS_SUCCESS]: (state: IUsersState) => {\n return state.isSuccess\n },\n [USERS_STORE.GETTERS.USERS_LOADING]: (state: IUsersState) => {\n return state.loading\n },\n [USERS_STORE.GETTERS.USERS_PAGINATION]: (state: IUsersState) => {\n return state.pagination\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { USERS_STORE } from '@/store/constants'\nimport { IUsersState, TUsersMutations } from '@/store/modules/users/types'\nimport { IPagination } from '@/types/api'\nimport { IUserProfile } from '@/types/user'\n\nexport const mutations: MutationTree & TUsersMutations = {\n [USERS_STORE.MUTATIONS.UPDATE_USER](state: IUsersState, user: IUserProfile) {\n state.user = user\n },\n [USERS_STORE.MUTATIONS.UPDATE_USER_IN_USERS](\n state: IUsersState,\n updatedUser: IUserProfile\n ) {\n state.users = state.users.map((user) => {\n if (user.username === updatedUser.username) {\n return updatedUser\n }\n return user\n })\n },\n [USERS_STORE.MUTATIONS.UPDATE_USERS](\n state: IUsersState,\n users: IUserProfile[]\n ) {\n state.users = users\n },\n [USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING](\n state: IUsersState,\n loading: boolean\n ) {\n state.loading = loading\n },\n [USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION](\n state: IUsersState,\n pagination: IPagination\n ) {\n state.pagination = pagination\n },\n [USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS](\n state: IUsersState,\n isSuccess: boolean\n ) {\n state.isSuccess = isSuccess\n },\n}\n","import { IUsersState } from '@/store/modules/users/types'\nimport { IPagination } from '@/types/api'\nimport { IUserProfile } from '@/types/user'\n\nexport const usersState: IUsersState = {\n user: {},\n users: [],\n loading: false,\n isSuccess: false,\n pagination: {},\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/users/actions'\nimport { getters } from '@/store/modules/users/getters'\nimport { mutations } from '@/store/modules/users/mutations'\nimport { usersState } from '@/store/modules/users/state'\nimport { IUsersState } from '@/store/modules/users/types'\n\nconst users: Module = {\n state: usersState,\n actions,\n getters,\n mutations,\n}\n\nexport default users\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { ROOT_STORE, AUTH_USER_STORE, WORKOUTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { WorkoutsMutations } from '@/store/modules/workouts/enums'\nimport {\n IWorkoutsActions,\n IWorkoutsState,\n} from '@/store/modules/workouts/types'\nimport {\n IWorkout,\n IWorkoutForm,\n IWorkoutPayload,\n TWorkoutsPayload,\n} from '@/types/workouts'\nimport { handleError } from '@/utils'\n\nconst getWorkouts = (\n context: ActionContext,\n payload: TWorkoutsPayload,\n target: WorkoutsMutations\n): void => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('workouts', {\n params: payload,\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(WORKOUTS_STORE.MUTATIONS[target], res.data.data.workouts)\n if (target === WorkoutsMutations['SET_USER_WORKOUTS']) {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUTS_PAGINATION,\n res.data.pagination\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree &\n IWorkoutsActions = {\n [WORKOUTS_STORE.ACTIONS.GET_CALENDAR_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_CALENDAR_WORKOUTS)\n getWorkouts(context, payload, WorkoutsMutations['SET_CALENDAR_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_USER_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['SET_USER_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_TIMELINE_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['SET_TIMELINE_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['ADD_TIMELINE_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n const segmentUrl = payload.segmentId ? `/segment/${payload.segmentId}` : ''\n authApi\n .get(`workouts/${payload.workoutId}`)\n .then((res) => {\n const workout: IWorkout = res.data.data.workouts[0]\n if (res.data.status === 'success') {\n if (\n payload.segmentId &&\n (workout.segments.length === 0 ||\n !workout.segments[+payload.segmentId - 1])\n ) {\n throw new Error('WORKOUT_NOT_FOUND')\n }\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT,\n res.data.data.workouts[0]\n )\n if (res.data.data.workouts[0].with_gpx) {\n authApi\n .get(`workouts/${payload.workoutId}/chart_data${segmentUrl}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_CHART_DATA,\n res.data.data.chart_data\n )\n }\n })\n authApi\n .get(`workouts/${payload.workoutId}/gpx${segmentUrl}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_GPX,\n res.data.data.gpx\n )\n }\n })\n }\n } else {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n handleError(context, null)\n }\n })\n .catch((error) => {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.DELETE_WORKOUT](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .delete(`workouts/${payload.workoutId}`)\n .then(() => {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n router.push('/')\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.EDIT_WORKOUT](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .patch(`workouts/${payload.workoutId}`, payload.data)\n .then(() => {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n context\n .dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, {\n workoutId: payload.workoutId,\n })\n .then(() => {\n router.push({\n name: 'Workout',\n params: { workoutId: payload.workoutId },\n })\n })\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.ADD_WORKOUT](\n context: ActionContext,\n payload: IWorkoutForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n if (!payload.file) {\n throw new Error('No file part')\n }\n const notes = payload.notes.replace(/\"/g, '\\\\\"')\n const form = new FormData()\n form.append('file', payload.file)\n form.append(\n 'data',\n `{\"sport_id\": ${payload.sport_id}, \"notes\": \"${notes}\"}`\n )\n authApi\n .post('workouts', form, {\n headers: {\n 'content-type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.data.status === 'created') {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n const workout: IWorkout = res.data.data.workouts[0]\n router.push(\n res.data.data.workouts.length === 1\n ? `/workouts/${workout.id}`\n : '/'\n )\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](\n context: ActionContext,\n payload: IWorkoutForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .post('workouts/no_gpx', payload)\n .then((res) => {\n if (res.data.status === 'created') {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n const workout: IWorkout = res.data.data.workouts[0]\n router.push(`/workouts/${workout.id}`)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { WORKOUTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IWorkoutsGetters,\n IWorkoutsState,\n} from '@/store/modules/workouts/types'\n\nexport const getters: GetterTree &\n IWorkoutsGetters = {\n [WORKOUTS_STORE.GETTERS.CALENDAR_WORKOUTS]: (state: IWorkoutsState) => {\n return state.calendar_workouts\n },\n [WORKOUTS_STORE.GETTERS.TIMELINE_WORKOUTS]: (state: IWorkoutsState) => {\n return state.timeline_workouts\n },\n [WORKOUTS_STORE.GETTERS.USER_WORKOUTS]: (state: IWorkoutsState) => {\n return state.user_workouts\n },\n [WORKOUTS_STORE.GETTERS.WORKOUT_DATA]: (state: IWorkoutsState) => {\n return state.workoutData\n },\n [WORKOUTS_STORE.GETTERS.WORKOUTS_PAGINATION]: (state: IWorkoutsState) => {\n return state.pagination\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { WORKOUTS_STORE } from '@/store/constants'\nimport {\n IWorkoutsState,\n TWorkoutsMutations,\n} from '@/store/modules/workouts/types'\nimport { IPagination } from '@/types/api'\nimport { IWorkout, IWorkoutApiChartData } from '@/types/workouts'\n\nexport const mutations: MutationTree & TWorkoutsMutations = {\n [WORKOUTS_STORE.MUTATIONS.ADD_TIMELINE_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.timeline_workouts = state.timeline_workouts.concat(workouts)\n },\n [WORKOUTS_STORE.MUTATIONS.SET_CALENDAR_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.calendar_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_TIMELINE_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.timeline_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_USER_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.user_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUTS_PAGINATION](\n state: IWorkoutsState,\n pagination: IPagination\n ) {\n state.pagination = pagination\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT](\n state: IWorkoutsState,\n workout: IWorkout\n ) {\n state.workoutData.workout = workout\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_CHART_DATA](\n state: IWorkoutsState,\n chartData: IWorkoutApiChartData[]\n ) {\n state.workoutData.chartData = chartData\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_GPX](\n state: IWorkoutsState,\n gpx: string\n ) {\n state.workoutData.gpx = gpx\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING](\n state: IWorkoutsState,\n loading: boolean\n ) {\n state.workoutData.loading = loading\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](state: IWorkoutsState) {\n state.calendar_workouts = []\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUTS](state: IWorkoutsState) {\n state.calendar_workouts = []\n state.user_workouts = []\n state.timeline_workouts = []\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT](state: IWorkoutsState) {\n state.workoutData = {\n gpx: '',\n loading: false,\n workout: {},\n chartData: [],\n }\n },\n}\n","import { IWorkoutsState } from '@/store/modules/workouts/types'\nimport { IPagination } from '@/types/api'\nimport { IWorkout } from '@/types/workouts'\n\nexport const workoutsState: IWorkoutsState = {\n calendar_workouts: [],\n timeline_workouts: [],\n pagination: {},\n user_workouts: [],\n workoutData: {\n gpx: '',\n loading: false,\n workout: {},\n chartData: [],\n },\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/workouts/actions'\nimport { getters } from '@/store/modules/workouts/getters'\nimport { mutations } from '@/store/modules/workouts/mutations'\nimport { workoutsState } from '@/store/modules/workouts/state'\nimport { IWorkoutsState } from '@/store/modules/workouts/types'\n\nconst workouts: Module = {\n state: workoutsState,\n actions,\n getters,\n mutations,\n}\n\nexport default workouts\n","import { Module, ModuleTree } from 'vuex'\n\nimport authUserModule from '@/store/modules/authUser'\nimport oAuthModule from '@/store/modules/oauth2'\nimport { actions } from '@/store/modules/root/actions'\nimport { getters } from '@/store/modules/root/getters'\nimport { mutations } from '@/store/modules/root/mutations'\nimport { state } from '@/store/modules/root/state'\nimport { IRootState } from '@/store/modules/root/types'\nimport sportsModule from '@/store/modules/sports'\nimport statsModule from '@/store/modules/statistics'\nimport usersModule from '@/store/modules/users'\nimport workoutsModule from '@/store/modules/workouts'\n\nconst modules: ModuleTree = {\n authUserModule,\n oAuthModule,\n sportsModule,\n statsModule,\n usersModule,\n workoutsModule,\n}\n\nconst root: Module = {\n state,\n actions,\n getters,\n mutations,\n modules,\n}\n\nexport default root\n","import { createStore } from 'vuex'\n\nimport root from '@/store/modules/root'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst store = createStore(root)\n\nexport default store\n","export enum WorkoutsActions {\n ADD_WORKOUT = 'ADD_WORKOUT',\n ADD_WORKOUT_WITHOUT_GPX = 'ADD_WORKOUT_WITHOUT_GPX',\n DELETE_WORKOUT = 'DELETE_WORKOUT',\n EDIT_WORKOUT = 'EDIT_WORKOUT',\n GET_CALENDAR_WORKOUTS = 'GET_CALENDAR_WORKOUTS',\n GET_USER_WORKOUTS = 'GET_USER_WORKOUTS',\n GET_TIMELINE_WORKOUTS = 'GET_TIMELINE_WORKOUTS',\n GET_MORE_TIMELINE_WORKOUTS = 'GET_MORE_TIMELINE_WORKOUTS',\n GET_WORKOUT_DATA = 'GET_WORKOUT_DATA',\n}\n\nexport enum WorkoutsGetters {\n CALENDAR_WORKOUTS = 'CALENDAR_WORKOUTS',\n TIMELINE_WORKOUTS = 'TIMELINE_WORKOUTS',\n USER_WORKOUTS = 'USER_WORKOUTS',\n WORKOUT_DATA = 'WORKOUT_DATA',\n WORKOUTS_PAGINATION = 'WORKOUTS_PAGINATION',\n}\n\nexport enum WorkoutsMutations {\n ADD_TIMELINE_WORKOUTS = 'ADD_TIMELINE_WORKOUTS',\n EMPTY_WORKOUTS = 'EMPTY_WORKOUTS',\n EMPTY_CALENDAR_WORKOUTS = 'EMPTY_CALENDAR_WORKOUTS',\n EMPTY_WORKOUT = 'EMPTY_WORKOUT',\n SET_CALENDAR_WORKOUTS = 'SET_CALENDAR_WORKOUTS',\n SET_TIMELINE_WORKOUTS = 'SET_TIMELINE_WORKOUTS',\n SET_USER_WORKOUTS = 'SET_USER_WORKOUTS',\n SET_WORKOUT = 'SET_WORKOUT',\n SET_WORKOUT_GPX = 'SET_WORKOUT_GPX',\n SET_WORKOUT_CHART_DATA = 'SET_WORKOUT_CHART_DATA',\n SET_WORKOUT_LOADING = 'SET_WORKOUT_LOADING',\n SET_WORKOUTS_PAGINATION = 'SET_WORKOUTS_PAGINATION',\n}\n","import { useStore as VuexStore } from 'vuex'\n\nimport { Store } from '@/store/types'\n\nexport function useStore(): Store {\n return VuexStore() as Store\n}\n","import { LocationQuery } from 'vue-router'\n\nimport { IQueryOptions, TPaginationPayload } from '@/types/api'\n\nexport const sortList: string[] = ['asc', 'desc']\nexport const defaultPage = 1\nexport const defaultPerPage = 10\n\nexport const getNumberQueryValue = (\n queryValue: string | (string | null)[] | null,\n defaultValue: number\n): number => {\n return queryValue && typeof queryValue === 'string' && +queryValue > 0\n ? +queryValue\n : defaultValue\n}\n\nexport const getStringQueryValue = (\n queryValue: string | (string | null)[] | null,\n availableValues: string[],\n defaultValue: string\n): string => {\n return queryValue &&\n typeof queryValue === 'string' &&\n availableValues.includes(queryValue)\n ? queryValue\n : defaultValue\n}\n\nexport const getQuery = (\n locationQuery: LocationQuery,\n orderByList: string[],\n defaultOrderBy: string,\n options?: IQueryOptions\n): TPaginationPayload => {\n const queryOptions = options || {}\n const defaultSort = queryOptions.defaultSort || 'asc'\n const query = {}\n\n query.page = getNumberQueryValue(locationQuery.page, defaultPage)\n query.per_page = getNumberQueryValue(locationQuery.per_page, defaultPerPage)\n query.order = getStringQueryValue(locationQuery.order, sortList, defaultSort)\n query.order_by = getStringQueryValue(\n locationQuery.order_by,\n orderByList,\n defaultOrderBy\n )\n if (typeof locationQuery.q === 'string') {\n query.q = locationQuery.q\n } else {\n delete query.q\n }\n\n return query\n}\n\nexport const workoutsPayloadKeys = [\n 'from',\n 'to',\n 'ave_speed_from',\n 'ave_speed_to',\n 'max_speed_from',\n 'max_speed_to',\n 'distance_from',\n 'distance_to',\n 'duration_from',\n 'duration_to',\n 'sport_id',\n]\n\nconst getRange = (stop: number, start = 1): number[] => {\n return Array.from({ length: stop - start + 1 }, (_, i) => start + i)\n}\n\nexport const rangePagination = (\n pages: number,\n currentPage: number\n): (string | number)[] => {\n if (pages < 0) {\n return []\n }\n\n if (pages < 9) {\n return getRange(pages)\n }\n\n let pagination: (string | number)[] = [1, 2]\n if (currentPage < 4) {\n pagination = pagination.concat([3, 4, 5])\n } else if (currentPage < 6) {\n pagination = pagination.concat(getRange(currentPage + 2, 3))\n } else {\n pagination = pagination.concat(['...'])\n if (currentPage < pages - 2) {\n pagination = pagination.concat(getRange(currentPage + 2, currentPage - 2))\n }\n }\n if (currentPage + 2 <= pages - 2) {\n pagination = pagination.concat(['...'])\n pagination = pagination.concat(getRange(pages, pages - 1))\n } else {\n if (\n pagination[pagination.length - 1] !== '...' &&\n pagination[pagination.length - 1] >= pages - 2 &&\n pagination[pagination.length - 1] < pages\n ) {\n pagination = pagination.concat(\n getRange(pages, +pagination[pagination.length - 1] + 1)\n )\n } else {\n pagination = pagination.concat(\n getRange(\n pages,\n currentPage < pages - 3 ? currentPage + 3 : currentPage - 5\n )\n )\n }\n }\n\n return pagination\n}\n","import {\n addDays,\n addMonths,\n addYears,\n endOfMonth,\n endOfWeek,\n format,\n startOfMonth,\n startOfWeek,\n startOfYear,\n} from 'date-fns'\nimport { utcToZonedTime } from 'date-fns-tz'\n\nimport createI18n from '@/i18n'\nimport { localeFromLanguage } from '@/utils/locales'\n\nconst { locale } = createI18n.global\n\nexport const getStartDate = (\n duration: string,\n day: Date,\n weekStartingMonday: boolean\n): Date => {\n switch (duration) {\n case 'week':\n return startOfWeek(day, { weekStartsOn: weekStartingMonday ? 1 : 0 })\n case 'year':\n return startOfYear(day)\n case 'month':\n return startOfMonth(day)\n default:\n throw new Error(\n `Invalid duration, expected: \"week\", \"month\", \"year\", got: \"${duration}\"`\n )\n }\n}\n\nexport const incrementDate = (duration: string, day: Date): Date => {\n switch (duration) {\n case 'week':\n return addDays(day, 7)\n case 'year':\n return addYears(day, 1)\n case 'month':\n return addMonths(day, 1)\n default:\n throw new Error(\n `Invalid duration, expected: \"week\", \"month\", \"year\", got: \"${duration}\"`\n )\n }\n}\n\nexport const getDateWithTZ = (dateInUTC: string, tz: string): Date => {\n return utcToZonedTime(new Date(dateInUTC), tz)\n}\n\nexport const getCalendarStartAndEnd = (\n date: Date,\n weekStartingMonday: boolean\n): Record => {\n const monthStart = startOfMonth(date)\n const monthEnd = endOfMonth(date)\n const weekStartsOn = weekStartingMonday ? 1 : 0\n return {\n start: startOfWeek(monthStart, { weekStartsOn }),\n end: endOfWeek(monthEnd, { weekStartsOn }),\n }\n}\n\nexport const formatWorkoutDate = (\n dateTime: Date,\n dateFormat: string | null = null,\n timeFormat: string | null = null\n): Record => {\n if (!dateFormat) {\n dateFormat = 'yyyy/MM/dd'\n }\n dateFormat = getDateFormat(dateFormat, locale.value)\n if (!timeFormat) {\n timeFormat = 'HH:mm'\n }\n return {\n workout_date: format(dateTime, dateFormat, {\n locale: localeFromLanguage[locale.value],\n }),\n workout_time: format(dateTime, timeFormat),\n }\n}\n\nconst availableDateFormats = [\n 'MM/dd/yyyy',\n 'dd/MM/yyyy',\n 'yyyy-MM-dd',\n 'date_string',\n]\nconst dateStringFormats: Record = {\n de: 'do MMM yyyy',\n en: 'MMM. do, yyyy',\n fr: 'd MMM yyyy',\n it: 'd MMM yyyy',\n // nb: 'do MMM yyyy',\n nl: 'd MMM yyyy',\n}\n\nexport const getDateFormat = (dateFormat: string, language: string): string => {\n return dateFormat === 'date_string' ? dateStringFormats[language] : dateFormat\n}\n\nexport const formatDate = (\n dateString: string,\n timezone: string,\n dateFormat: string,\n withTime = true,\n language: string | null = null\n): string => {\n if (!language) {\n language = locale.value\n }\n return format(\n getDateWithTZ(dateString, timezone),\n `${getDateFormat(dateFormat, language)}${withTime ? ' HH:mm' : ''}`,\n { locale: localeFromLanguage[language] }\n )\n}\n\nexport const availableDateFormatOptions = (\n inputDate: string,\n timezone: string,\n language: string | null = null\n) => {\n const l: string = language ? language : locale.value\n const options: Record[] = []\n availableDateFormats.map((df) => {\n const dateFormat = getDateFormat(df, l)\n options.push({\n label: `${dateFormat} - ${formatDate(\n inputDate,\n timezone,\n dateFormat,\n false,\n l\n )}`,\n value: df,\n })\n })\n return options\n}\n","const suffixes = ['bytes', 'KB', 'MB', 'GB', 'TB']\n\nexport const getReadableFileSize = (\n fileSize: number,\n asText = true\n): string | Record => {\n const i = Math.floor(Math.log(fileSize) / Math.log(1024))\n if (!fileSize) {\n return asText ? '0 bytes' : { size: '0', suffix: 'bytes' }\n }\n const size = (fileSize / Math.pow(1024, i)).toFixed(1)\n const suffix = suffixes[i]\n return asText ? `${size}${suffix}` : { size, suffix }\n}\n\nexport const getFileSizeInMB = (fileSize: number): number => {\n const value = fileSize / 1048576\n return (!fileSize && 0) || +value.toFixed(2)\n}\n","import { AxiosError } from 'axios'\nimport { ActionContext } from 'vuex'\n\nimport { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsState } from '@/store/modules/sports/types'\nimport { IStatisticsState } from '@/store/modules/statistics/types'\nimport { IUsersState } from '@/store/modules/users/types'\nimport { IWorkoutsState } from '@/store/modules/workouts/types'\nimport { IApiErrorMessage } from '@/types/api'\n\nexport const getApiUrl = (): string => {\n return process.env.NODE_ENV === 'production'\n ? '/api/'\n : `${process.env.VUE_APP_API_URL}/api/`\n}\n\nexport const handleError = (\n context:\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext,\n error: AxiosError | null,\n msg = 'UNKNOWN'\n): void => {\n // if request is cancelled, no error to display\n if (error && error.message === 'canceled') {\n return\n }\n\n const errorInfo: IApiErrorMessage | null =\n error?.response && error.response.data ? error.response.data : null\n\n // if stored token is blacklisted, disconnect user\n if (error?.response?.status === 401 && errorInfo?.error === 'invalid_token') {\n localStorage.removeItem('authToken')\n context.dispatch(AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER)\n return\n }\n\n const errorMessages = !error\n ? msg\n : error.response\n ? error.response.status === 413\n ? 'file size is greater than the allowed size'\n : errorInfo?.message\n ? errorInfo.message\n : msg\n : error.message\n ? error.message\n : msg\n context.commit(\n ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES,\n errorMessages.includes('\\n')\n ? errorMessages\n .split('\\n')\n .filter((m: string) => m !== '')\n .map((m: string) => `api.ERROR.${m}`)\n : `api.ERROR.${errorMessages}`\n )\n}\n","/* eslint-disable import/no-duplicates */\nimport { Locale } from 'date-fns'\nimport { de, enUS, fr, it, nl } from 'date-fns/locale'\n\nimport createI18n from '@/i18n'\n\nexport const localeFromLanguage: Record = {\n de: de,\n en: enUS,\n fr: fr,\n it: it,\n // nb: nb, // disabled for now\n nl: nl,\n}\n\nexport const languageLabels: Record = {\n de: 'Deutsch',\n en: 'English',\n fr: 'Français',\n it: 'Italiano',\n // nb: 'Norsk bokmål', // disabled for now\n nl: 'Nederlands',\n}\n\nconst { availableLocales } = createI18n.global\nexport const availableLanguages = availableLocales.map((l) => {\n return { label: languageLabels[l], value: l }\n})\n","import { ISport, ITranslatedSport, TActiveStatus } from '@/types/sports'\nimport { IWorkout } from '@/types/workouts'\n\nexport const sportColors: Record = {\n 'Cycling (Sport)': '#4c9792',\n 'Cycling (Transport)': '#88af98',\n 'Cycling (Virtual)': '#64a360',\n Hiking: '#bb757c',\n 'Mountain Biking': '#d4b371',\n 'Mountain Biking (Electric)': '#fc9d6f',\n Mountaineering: '#48b3b7',\n Rowing: '#fcce72',\n Running: '#835b83',\n 'Skiing (Alpine)': '#67a4bd',\n 'Skiing (Cross Country)': '#9498d0',\n Snowshoes: '#5780a8',\n Trail: '#09a98a',\n Walking: '#838383',\n}\n\nexport const sportIdColors = (sports: ISport[]): Record => {\n const colors: Record = {}\n sports.map(\n (sport) =>\n (colors[sport.id] = sport.color ? sport.color : sportColors[sport.label])\n )\n return colors\n}\n\nconst sortSports = (a: ITranslatedSport, b: ITranslatedSport): number => {\n const sportATranslatedLabel = a.translatedLabel.toLowerCase()\n const sportBTranslatedLabel = b.translatedLabel.toLowerCase()\n return sportATranslatedLabel > sportBTranslatedLabel\n ? 1\n : sportATranslatedLabel < sportBTranslatedLabel\n ? -1\n : 0\n}\n\nexport const translateSports = (\n sports: ISport[],\n t: CallableFunction,\n activeStatus: TActiveStatus = 'all',\n sportsToInclude: number[] = []\n): ITranslatedSport[] =>\n sports\n .filter((sport) =>\n activeStatus === 'all'\n ? true\n : sportsToInclude.includes(sport.id) || sport[activeStatus]\n )\n .map((sport) => ({\n ...sport,\n translatedLabel: t(`sports.${sport.label}.LABEL`),\n }))\n .sort(sortSports)\n\nexport const getSportLabel = (workout: IWorkout, sports: ISport[]): string => {\n return sports\n .filter((sport) => sport.id === workout.sport_id)\n .map((sport) => sport.label)[0]\n}\n\nexport const getSportColor = (\n workout: IWorkout,\n sports: ISport[]\n): string | null => {\n return sports\n .filter((sport) => sport.id === workout.sport_id)\n .map((sport) => sport.color)[0]\n}\n","import {\n addMonths,\n addWeeks,\n addYears,\n endOfMonth,\n endOfWeek,\n endOfYear,\n format,\n startOfMonth,\n startOfWeek,\n startOfYear,\n subMonths,\n subWeeks,\n subYears,\n} from 'date-fns'\n\nimport createI18n from '@/i18n'\nimport { IChartDataset } from '@/types/chart'\nimport { ISport } from '@/types/sports'\nimport {\n IStatisticsChartData,\n IStatisticsDateParams,\n TStatisticsDatasetKeys,\n TStatisticsDatasets,\n TStatisticsFromApi,\n} from '@/types/statistics'\nimport { incrementDate, getStartDate, getDateFormat } from '@/utils/dates'\nimport { localeFromLanguage } from '@/utils/locales'\nimport { sportColors } from '@/utils/sports'\nimport { convertStatsDistance } from '@/utils/units'\n\nconst { locale } = createI18n.global\n\nconst dateFormats: Record> = {\n week: {\n api: 'yyyy-MM-dd',\n chart: 'MM/dd/yyyy',\n },\n month: {\n api: 'yyyy-MM',\n chart: 'MM/yyyy',\n },\n year: {\n api: 'yyyy',\n chart: 'yyyy',\n },\n}\n\nexport const datasetKeys: TStatisticsDatasetKeys[] = [\n 'average_speed',\n 'nb_workouts',\n 'total_duration',\n 'total_distance',\n 'total_ascent',\n 'total_descent',\n]\n\nexport const getDateKeys = (\n params: IStatisticsDateParams,\n weekStartingMonday: boolean\n): Date[] => {\n const days = []\n for (\n let day = getStartDate(params.duration, params.start, weekStartingMonday);\n day <= params.end;\n day = incrementDate(params.duration, day)\n ) {\n days.push(day)\n }\n return days\n}\n\nconst getStatisticsChartDataset = (\n sportLabel: string,\n color: string,\n isLineChart = false\n): IChartDataset => {\n const dataset: IChartDataset = {\n label: sportLabel,\n backgroundColor: [color],\n data: [],\n }\n if (isLineChart) {\n dataset.type = 'line'\n dataset.borderColor = [color]\n dataset.spanGaps = true\n }\n return dataset\n}\n\nexport const getDatasets = (displayedSports: ISport[]): TStatisticsDatasets => {\n const datasets: TStatisticsDatasets = {\n average_speed: [],\n nb_workouts: [],\n total_distance: [],\n total_duration: [],\n total_ascent: [],\n total_descent: [],\n }\n displayedSports.map((sport) => {\n const color = sport.color ? sport.color : sportColors[sport.label]\n datasets.average_speed.push(\n getStatisticsChartDataset(sport.label, color, true)\n )\n datasets.nb_workouts.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_distance.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_duration.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_ascent.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_descent.push(getStatisticsChartDataset(sport.label, color))\n })\n return datasets\n}\n\nexport const convertStatsValue = (\n datasetKey: TStatisticsDatasetKeys,\n value: number,\n useImperialUnits: boolean\n): number => {\n switch (datasetKey) {\n case 'average_speed':\n case 'total_distance':\n case 'total_ascent':\n case 'total_descent':\n return convertStatsDistance(\n ['average_speed', 'total_distance'].includes(datasetKey) ? 'km' : 'm',\n value,\n useImperialUnits\n )\n default:\n case 'nb_workouts':\n case 'total_duration':\n return value\n }\n}\n\nexport const formatStats = (\n params: IStatisticsDateParams,\n weekStartingMonday: boolean,\n sports: ISport[],\n displayedSportsId: number[],\n apiStats: TStatisticsFromApi,\n useImperialUnits: boolean,\n userDateFormat: string\n): IStatisticsChartData => {\n const dayKeys = getDateKeys(params, weekStartingMonday)\n const dateFormat = dateFormats[params.duration]\n const displayedSports = sports.filter((sport) =>\n displayedSportsId.includes(sport.id)\n )\n const labels: string[] = []\n const datasets = getDatasets(displayedSports)\n const sportsId: Record = {}\n displayedSports.map(\n (displayedSport) => (sportsId[displayedSport.label] = displayedSport.id)\n )\n\n dayKeys.map((key) => {\n const date: string = format(key, dateFormat.api)\n const label: string = format(\n key,\n params.duration === 'week'\n ? getDateFormat(userDateFormat, locale.value)\n : dateFormat.chart,\n { locale: localeFromLanguage[locale.value] }\n )\n labels.push(label)\n datasetKeys.map((datasetKey) => {\n datasets[datasetKey].map((dataset) => {\n dataset.data.push(\n date in apiStats && sportsId[dataset.label] in apiStats[date]\n ? convertStatsValue(\n datasetKey,\n apiStats[date][sportsId[dataset.label]][datasetKey],\n useImperialUnits\n )\n : datasetKey === 'average_speed'\n ? null\n : 0\n )\n })\n })\n })\n return {\n labels,\n datasets,\n }\n}\n\nexport const getStatsDateParams = (\n date: Date,\n timeFrame: string,\n weekStartingMonday: boolean\n): IStatisticsDateParams => {\n const weekStartsOn = weekStartingMonday ? 1 : 0\n const start =\n timeFrame === 'year'\n ? startOfYear(subYears(date, 9))\n : timeFrame === 'week'\n ? startOfWeek(subMonths(date, 2), { weekStartsOn })\n : startOfMonth(subMonths(date, 11)) // month\n const end =\n timeFrame === 'year'\n ? endOfYear(date)\n : timeFrame === 'week'\n ? endOfWeek(date, { weekStartsOn })\n : endOfMonth(date) // month\n return {\n duration: timeFrame,\n end,\n start,\n }\n}\n\nexport const updateChartParams = (\n chartParams: IStatisticsDateParams,\n backward: boolean,\n weekStartingMonday: boolean\n): IStatisticsDateParams => {\n const { duration, start, end } = chartParams\n const weekStartsOn = weekStartingMonday ? 1 : 0\n return {\n duration,\n end:\n duration === 'year'\n ? endOfYear(backward ? subYears(end, 1) : addYears(end, 1))\n : duration === 'week'\n ? endOfWeek(backward ? subWeeks(end, 1) : addWeeks(end, 1), {\n weekStartsOn,\n })\n : endOfMonth(backward ? subMonths(end, 1) : addMonths(end, 1)),\n start:\n duration === 'year'\n ? startOfYear(backward ? subYears(start, 1) : addYears(start, 1))\n : duration === 'week'\n ? startOfWeek(backward ? subWeeks(start, 1) : addWeeks(start, 1), {\n weekStartsOn,\n })\n : startOfMonth(backward ? subMonths(start, 1) : addMonths(start, 1)),\n }\n}\n","import { IUnit, TFactor, TUnit } from '@/types/units'\n\nexport const units: Record = {\n ft: {\n unit: 'ft',\n system: 'imperial',\n multiplier: 1,\n defaultTarget: 'm',\n },\n mi: {\n unit: 'mi',\n system: 'imperial',\n multiplier: 5280,\n defaultTarget: 'km',\n },\n m: {\n unit: 'm',\n system: 'metric',\n multiplier: 1,\n defaultTarget: 'ft',\n },\n km: {\n unit: 'm',\n system: 'metric',\n multiplier: 1000,\n defaultTarget: 'mi',\n },\n}\n\nconst factors: TFactor = {\n metric: {\n imperial: 3.280839895,\n metric: 1,\n },\n imperial: {\n metric: 1 / 3.280839895,\n imperial: 1,\n },\n}\n\nexport const convertDistance = (\n distance: number,\n from: TUnit,\n to: TUnit,\n digits: number | null = 3\n): number => {\n const unitFrom = units[from]\n const unitTo = units[to]\n const convertedDistance =\n (distance * unitFrom.multiplier * factors[unitFrom.system][unitTo.system]) /\n unitTo.multiplier\n if (digits !== null) {\n return parseFloat(convertedDistance.toFixed(digits))\n }\n return convertedDistance\n}\n\nexport const convertStatsDistance = (\n unitFrom: TUnit,\n value: number,\n useImperialUnits: boolean\n): number => {\n const unitTo = useImperialUnits ? units[unitFrom].defaultTarget : unitFrom\n return useImperialUnits ? convertDistance(value, unitFrom, unitTo, 2) : value\n}\n\nexport const getTemperature = (\n temperatureInCelsius: number,\n useImperialUnits: boolean\n): string => {\n const temperature = useImperialUnits\n ? temperatureInCelsius * 1.8 + 32\n : temperatureInCelsius\n const unit = useImperialUnits ? ' °F' : '°C'\n return `${temperature === 0 ? 0 : Number(temperature).toFixed(1)}${unit}`\n}\n\nexport const getWindSpeed = (\n windSpeedInMS: number,\n useImperialUnits: boolean\n): string => {\n const windSpeed = useImperialUnits ? windSpeedInMS * 2.2369363 : windSpeedInMS\n const unit = useImperialUnits ? ' mph' : 'm/s'\n return `${windSpeed === 0 ? 0 : Number(windSpeed).toFixed(1)}${unit}`\n}\n","import {\n IWorkout,\n IWorkoutApiChartData,\n IWorkoutChartData,\n TCoordinates,\n TWorkoutDatasets,\n} from '@/types/workouts'\nimport { convertStatsDistance } from '@/utils/units'\n\nexport const getDatasets = (\n chartData: IWorkoutApiChartData[],\n t: CallableFunction,\n useImperialUnits: boolean\n): IWorkoutChartData => {\n const datasets: TWorkoutDatasets = {\n speed: {\n label: t('workouts.SPEED'),\n backgroundColor: ['#FFFFFF'],\n borderColor: ['#8884d8'],\n borderWidth: 2,\n data: [],\n yAxisID: 'ySpeed',\n },\n elevation: {\n label: t('workouts.ELEVATION'),\n backgroundColor: ['#e5e5e5'],\n borderColor: ['#cccccc'],\n borderWidth: 1,\n fill: true,\n data: [],\n yAxisID: 'yElevation',\n },\n }\n const distance_labels: unknown[] = []\n const duration_labels: unknown[] = []\n const coordinates: TCoordinates[] = []\n\n chartData.map((data) => {\n distance_labels.push(data.distance)\n duration_labels.push(data.duration)\n datasets.speed.data.push(\n convertStatsDistance('km', data.speed, useImperialUnits)\n )\n datasets.elevation.data.push(\n convertStatsDistance('m', data.elevation, useImperialUnits)\n )\n coordinates.push({ latitude: data.latitude, longitude: data.longitude })\n })\n\n return { distance_labels, duration_labels, datasets, coordinates }\n}\n\nexport const getDonutDatasets = (\n workouts: IWorkout[]\n): Record> => {\n const total = workouts.length\n if (total === 0) {\n return {}\n }\n\n const datasets: Record> = {}\n workouts.map((workout) => {\n if (!datasets[workout.sport_id]) {\n datasets[workout.sport_id] = {\n count: 0,\n percentage: 0,\n }\n }\n datasets[workout.sport_id].count += 1\n datasets[workout.sport_id].percentage =\n datasets[workout.sport_id].count / total\n })\n\n return datasets\n}\n\nexport const defaultOrder = {\n order: 'desc',\n order_by: 'workout_date',\n}\n","\n\n\n","import { render } from \"./Card.vue?vue&type=template&id=ad374c24\"\nconst script = {}\n\nimport \"./Card.vue?vue&type=style&index=0&id=ad374c24&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-72463173\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"table-selects\" }\nconst _hoisted_2 = [\"value\"]\nconst _hoisted_3 = [\"value\"]\nconst _hoisted_4 = [\"value\"]\nconst _hoisted_5 = [\"value\"]\nconst _hoisted_6 = [\"value\"]\nconst _hoisted_7 = [\"value\"]\n\nimport { toRefs } from 'vue'\n\n import { TPaginationPayload } from '@/types/api'\n\n interface Props {\n order_by: string[]\n query: TPaginationPayload\n sort: string[]\n message: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'FilterSelects',\n props: {\n order_by: null,\n query: null,\n sort: null,\n message: null\n },\n emits: ['updateSelect'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n order_by: string[]\n query: TPaginationPayload\n sort: string[]\n message: string\n };\n\n \n\n \n\n const { order_by, query, sort, message } = toRefs(props)\n const perPage = [10, 25, 50, 100]\n\n function onSelectUpdate(event: Event & { target: HTMLInputElement }) {\n emit('updateSelect', event.target.id, event.target.value)\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"label\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('common.SELECTS.ORDER_BY.LABEL')) + \": \", 1),\n _createElementVNode(\"select\", {\n name: \"order_by\",\n id: \"order_by\",\n value: _unref(query).order_by,\n onChange: onSelectUpdate\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(order_by), (order) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: order,\n key: order\n }, _toDisplayString(_ctx.$t(`${_unref(message)}.${order.toUpperCase()}`)), 9, _hoisted_3))\n }), 128))\n ], 40, _hoisted_2)\n ]),\n _createElementVNode(\"label\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('common.SELECTS.ORDER.LABEL')) + \": \", 1),\n _createElementVNode(\"select\", {\n name: \"order\",\n id: \"order\",\n value: _unref(query).order,\n onChange: onSelectUpdate\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(sort), (order) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: order,\n key: order\n }, _toDisplayString(_ctx.$t(`common.SELECTS.ORDER.${order.toUpperCase()}`)), 9, _hoisted_5))\n }), 128))\n ], 40, _hoisted_4)\n ]),\n _createElementVNode(\"label\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('common.SELECTS.PER_PAGE.LABEL')) + \": \", 1),\n _createElementVNode(\"select\", {\n name: \"per_page\",\n id: \"per_page\",\n value: _unref(query).per_page,\n onChange: onSelectUpdate\n }, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(perPage, (nb) => {\n return _createElementVNode(\"option\", {\n value: nb,\n key: nb\n }, _toDisplayString(nb), 9, _hoisted_7)\n }), 64))\n ], 40, _hoisted_6)\n ])\n ]))\n}\n}\n\n})","import script from \"./FilterSelects.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilterSelects.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./FilterSelects.vue?vue&type=style&index=0&id=72463173&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-72463173\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./ErrorImg.vue?vue&type=template&id=e620aed4\"\nimport script from \"./ErrorImg.vue?vue&type=script&lang=js\"\nexport * from \"./ErrorImg.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-b60bfa80\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"error\" }\nconst _hoisted_2 = { class: \"error-content\" }\n\nimport { toRefs, withDefaults } from 'vue'\n\n interface Props {\n title: string\n message: string\n buttonText: string\n path?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Error',\n props: {\n title: null,\n message: null,\n buttonText: null,\n path: { default: '/' }\n },\n setup(__props: any) {\n\nconst props = __props as { title: string, message: string, buttonText: string, path: string };\n\n \n const { buttonText, title, message, path } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"h1\", null, _toDisplayString(_unref(title)), 1),\n _createElementVNode(\"p\", null, _toDisplayString(_unref(message)), 1),\n (_unref(buttonText))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push(_unref(path)))),\n class: \"upper\"\n }, _toDisplayString(_unref(buttonText)), 1))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./Error.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Error.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Error.vue?vue&type=style&index=0&id=b60bfa80&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-b60bfa80\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nimport { Ref, onMounted, ref, toRefs, withDefaults, onUnmounted } from 'vue'\n\n import Error from '@/components/Common/Error.vue'\n interface Props {\n target?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'NotFound',\n props: {\n target: { default: 'PAGE' }\n },\n setup(__props: any) {\n\nconst props = __props as { target: string };\n\n \n const { target } = toRefs(props)\n const timer = ref()\n const errorDisplayed: Ref = ref(false)\n\n onMounted(() => displayError())\n\n function displayError() {\n timer.value = setTimeout(() => {\n errorDisplayed.value = true\n }, 500)\n }\n\n onUnmounted(() => {\n if (timer.value) {\n clearTimeout(timer.value)\n }\n })\n\nreturn (_ctx: any,_cache: any) => {\n return (errorDisplayed.value)\n ? (_openBlock(), _createBlock(Error, {\n key: 0,\n title: \"404\",\n message: _ctx.$t(`error.NOT_FOUND.${_unref(target)}`),\n \"button-text\": _ctx.$t('common.HOME')\n }, null, 8, [\"message\", \"button-text\"]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./NotFound.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NotFound.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderSlot as _renderSlot, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, normalizeClass as _normalizeClass, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3a9a4a65\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"pagination-center\",\n \"aria-label\": \"navigation\"\n}\nconst _hoisted_2 = { class: \"pagination\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-left\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-right\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { toRefs } from 'vue'\n\n import { IPagination, TPaginationPayload } from '@/types/api'\n import { IOauth2ClientsPayload } from '@/types/oauth'\n import { TWorkoutsPayload } from '@/types/workouts'\n import { rangePagination } from '@/utils/api'\n\n interface Props {\n pagination: IPagination\n path: string\n query: TWorkoutsPayload | TPaginationPayload | IOauth2ClientsPayload\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Pagination',\n props: {\n pagination: null,\n path: null,\n query: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n pagination: IPagination\n path: string\n query: TWorkoutsPayload | TPaginationPayload | IOauth2ClientsPayload\n };\n\n \n\n const { pagination, path, query } = toRefs(props)\n\n function getQuery(\n page: number,\n cursor?: number\n ): TPaginationPayload | IOauth2ClientsPayload {\n const newQuery = Object.assign({}, query.value)\n newQuery.page = cursor ? page + cursor : page\n return newQuery\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"nav\", _hoisted_1, [\n _createElementVNode(\"ul\", _hoisted_2, [\n _createElementVNode(\"li\", {\n class: _normalizeClass([\"page-prev\", { disabled: !_unref(pagination).has_prev }])\n }, [\n _createVNode(_component_router_link, {\n class: \"page-link\",\n to: { path: _unref(path), query: getQuery(_unref(pagination).page, -1) },\n disabled: !_unref(pagination).has_prev\n }, {\n default: _withCtx(({ navigate }) => [\n _renderSlot(_ctx.$slots, \"default\", {\n onClick: ($event: any) => (_unref(pagination).has_next ? navigate : null)\n }, () => [\n _createTextVNode(_toDisplayString(_ctx.$t('api.PAGINATION.PREVIOUS')) + \" \", 1),\n _hoisted_3\n ])\n ]),\n _: 3\n }, 8, [\"to\", \"disabled\"])\n ], 2),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(rangePagination)(_unref(pagination).pages, _unref(pagination).page), (page) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: page,\n class: _normalizeClass([\"page\", { active: page === _unref(pagination).page }])\n }, [\n (page === '...')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, \" ... \"))\n : (_openBlock(), _createBlock(_component_router_link, {\n key: 1,\n class: \"page-link\",\n to: { path: _unref(path), query: getQuery(+page) }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(page), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]))\n ], 2))\n }), 128)),\n _createElementVNode(\"li\", {\n class: _normalizeClass([\"page-next\", { disabled: !_unref(pagination).has_next }])\n }, [\n _createVNode(_component_router_link, {\n class: \"page-link\",\n to: { path: _unref(path), query: getQuery(_unref(pagination).page, 1) },\n disabled: !_unref(pagination).has_next\n }, {\n default: _withCtx(({ navigate }) => [\n _renderSlot(_ctx.$slots, \"default\", {\n onClick: ($event: any) => (_unref(pagination).has_next ? navigate : null)\n }, () => [\n _createTextVNode(_toDisplayString(_ctx.$t('api.PAGINATION.NEXT')) + \" \", 1),\n _hoisted_5\n ])\n ]),\n _: 3\n }, 8, [\"to\", \"disabled\"])\n ], 2)\n ])\n ]))\n}\n}\n\n})","import script from \"./Pagination.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Pagination.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Pagination.vue?vue&type=style&index=0&id=3a9a4a65&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3a9a4a65\"]])\n\nexport default __exports__","import { zxcvbnOptions } from '@zxcvbn-ts/core'\n\nexport const loadLanguagePackage = async (language: string) => {\n // no package available for norwegian bokmal and dutch (Nederlands)\n // fallback to english\n switch (language) {\n case 'fr':\n return await import(\n /* webpackChunkName: \"password.fr\" */ '@zxcvbn-ts/language-fr'\n )\n case 'de':\n return await import(\n /* webpackChunkName: \"password.de\" */ '@zxcvbn-ts/language-de'\n )\n case 'it':\n return await import(\n /* webpackChunkName: \"password.it\" */ '@zxcvbn-ts/language-it'\n )\n default:\n return await import(\n /* webpackChunkName: \"password.en\" */ '@zxcvbn-ts/language-en'\n )\n }\n}\n\nexport const setZxcvbnOptions = async (language: string) => {\n const zxcvbnCommonPackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-common'\n )\n const zxcvbnLanguagePackage = await loadLanguagePackage(language)\n const options = {\n graphs: zxcvbnCommonPackage.default.adjacencyGraphs,\n dictionary: {\n ...zxcvbnCommonPackage.default.dictionary,\n ...zxcvbnLanguagePackage.default.dictionary,\n },\n }\n zxcvbnOptions.setOptions(options)\n}\n\nexport const getPasswordStrength = (strength: number): string => {\n switch (strength) {\n case 2:\n return 'AVERAGE'\n case 3:\n return 'GOOD'\n case 4:\n return 'STRONG'\n default:\n return 'WEAK'\n }\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-74e71df5\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"password-strength\" }\nconst _hoisted_2 = [\"value\"]\nconst _hoisted_3 = {\n key: 0,\n class: \"password-strength-details\"\n}\nconst _hoisted_4 = { class: \"password-strength-value\" }\nconst _hoisted_5 = {\n key: 0,\n class: \"info-box\"\n}\nconst _hoisted_6 = { class: \"password-feedback\" }\n\nimport { zxcvbn } from '@zxcvbn-ts/core'\n import {\n ComputedRef,\n Ref,\n computed,\n ref,\n onBeforeMount,\n toRefs,\n watch,\n } from 'vue'\n\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { useStore } from '@/use/useStore'\n import { getPasswordStrength, setZxcvbnOptions } from '@/utils/password'\n\n interface Props {\n password: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'PasswordStength',\n props: {\n password: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n password: string\n };\n\n \n const { password } = toRefs(props)\n\n const store = useStore()\n const language: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const isSuccess: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_SUCCESS]\n )\n const passwordScore: Ref = ref(0)\n const passwordStrength: Ref = ref('')\n const passwordSuggestions: Ref = ref([])\n const backgroundSize = ref('0% 100%')\n\n onBeforeMount(async () => await setZxcvbnOptions(language.value))\n\n function calculatePasswordStrength(password: string) {\n const zxcvbnResult = zxcvbn(password)\n passwordScore.value = zxcvbnResult.score\n passwordStrength.value = getPasswordStrength(passwordScore.value)\n passwordSuggestions.value = zxcvbnResult.feedback.suggestions\n backgroundSize.value = (passwordScore.value * 100) / 4 + '% 100%'\n }\n\n watch(\n () => language.value,\n async (newLanguageValue) => {\n await setZxcvbnOptions(newLanguageValue)\n }\n )\n watch(\n () => password.value,\n async (newPassword) => {\n if (isSuccess.value) {\n passwordStrength.value = ''\n } else {\n calculatePasswordStrength(newPassword)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"input\", {\n class: _normalizeClass([\"password-slider\", `strength-${passwordScore.value}`]),\n style: _normalizeStyle({ backgroundSize: backgroundSize.value }),\n type: \"range\",\n value: passwordScore.value,\n min: \"0\",\n max: \"4\",\n step: \"1\"\n }, null, 14, _hoisted_2),\n (passwordStrength.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.$t('user.PASSWORD_STRENGTH.LABEL')) + \": \" + _toDisplayString(_ctx.$t(`user.PASSWORD_STRENGTH.${passwordStrength.value}`)), 1),\n (passwordSuggestions.value.length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"ul\", _hoisted_6, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(passwordSuggestions.value, (suggestion) => {\n return (_openBlock(), _createElementBlock(\"li\", { key: suggestion }, _toDisplayString(_ctx.$t(`user.PASSWORD_STRENGTH.SUGGESTIONS.${suggestion}`)), 1))\n }), 128))\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./PasswordStength.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PasswordStength.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PasswordStength.vue?vue&type=style&index=0&id=74e71df5&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-74e71df5\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, vModelDynamic as _vModelDynamic, createElementVNode as _createElementVNode, withDirectives as _withDirectives, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5a126514\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"password-input\" }\nconst _hoisted_2 = [\"id\", \"disabled\", \"placeholder\", \"required\", \"type\"]\nconst _hoisted_3 = {\n key: 0,\n class: \"form-info\"\n}\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { Ref, ref, toRefs, watch, withDefaults } from 'vue'\n\n import PasswordStrength from '@/components/Common/PasswordStength.vue'\n\n interface Props {\n checkStrength?: boolean\n disabled?: boolean\n id?: string\n password?: string\n placeholder?: string\n required?: boolean\n }\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'PasswordInput',\n props: {\n checkStrength: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n id: { default: 'password' },\n password: { default: '' },\n placeholder: null,\n required: { type: Boolean, default: false }\n },\n emits: ['updatePassword', 'passwordError'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { checkStrength: boolean, disabled: boolean, id: string, password: string, placeholder?: string, required: boolean };\n\n \n const { checkStrength, disabled, id, password, placeholder, required } =\n toRefs(props)\n\n const showPassword: Ref = ref(false)\n const passwordValue: Ref = ref('')\n\n \n\n function togglePassword() {\n showPassword.value = !showPassword.value\n }\n function updatePassword(event: Event & { target: HTMLInputElement }) {\n emit('updatePassword', event.target.value)\n }\n function invalidPassword() {\n emit('passwordError')\n }\n\n watch(\n () => password.value,\n (newPassword) => {\n if (newPassword === '') {\n passwordValue.value = ''\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _withDirectives(_createElementVNode(\"input\", {\n id: _unref(id),\n disabled: _unref(disabled),\n placeholder: _unref(placeholder),\n required: _unref(required),\n type: showPassword.value ? 'text' : 'password',\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((passwordValue).value = $event)),\n minlength: \"8\",\n onInput: updatePassword,\n onInvalid: invalidPassword\n }, null, 40, _hoisted_2), [\n [_vModelDynamic, passwordValue.value]\n ]),\n _createElementVNode(\"div\", {\n class: \"show-password\",\n onClick: togglePassword\n }, [\n _createTextVNode(_toDisplayString(_ctx.$t(`user.${showPassword.value ? 'HIDE' : 'SHOW'}_PASSWORD`)) + \" \", 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa\", `fa-eye${showPassword.value ? '-slash' : ''}`]),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n (_unref(checkStrength))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _hoisted_4,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('user.PASSWORD_INFO')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(checkStrength))\n ? (_openBlock(), _createBlock(PasswordStrength, {\n key: 1,\n password: passwordValue.value\n }, null, 8, [\"password\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./PasswordInput.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PasswordInput.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PasswordInput.vue?vue&type=style&index=0&id=5a126514&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5a126514\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"map-attribution\" }, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"map-attribution-text\" }, \"©\"),\n /*#__PURE__*/_createElementVNode(\"a\", {\n class: \"map-attribution-text\",\n href: \"https://www.openstreetmap.org/copyright\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, \" OpenStreetMap \")\n], -1)\n\nimport { toRefs, withDefaults } from 'vue'\n\n import { IWorkout } from '@/types/workouts'\n import { getApiUrl } from '@/utils'\n\n interface Props {\n workout: IWorkout\n displayHover?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'StaticMap',\n props: {\n workout: null,\n displayHover: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { workout: IWorkout, displayHover: boolean };\n\n \n const { displayHover } = toRefs(props)\n const imageUrl = `${getApiUrl()}workouts/map/${props.workout.map}`\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"static-map\", { 'display-hover': _unref(displayHover) }])\n }, [\n (_unref(displayHover))\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: imageUrl,\n alt: \"\"\n }))\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"bg-map-image\",\n style: _normalizeStyle({\n backgroundImage: `url(${imageUrl})`,\n })\n }, null, 4)),\n _hoisted_1\n ], 2))\n}\n}\n\n})","import script from \"./StaticMap.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./StaticMap.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./StaticMap.vue?vue&type=style&index=0&id=6b7e4baf&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-d5e9b348\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"start-chart\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { key: 1 }\nconst _hoisted_4 = { class: \"chart-radio\" }\nconst _hoisted_5 = [\"checked\"]\nconst _hoisted_6 = [\"checked\"]\nconst _hoisted_7 = [\"checked\"]\nconst _hoisted_8 = { key: 0 }\nconst _hoisted_9 = [\"checked\"]\nconst _hoisted_10 = { key: 1 }\nconst _hoisted_11 = [\"checked\"]\nconst _hoisted_12 = { key: 2 }\nconst _hoisted_13 = [\"checked\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Chart = _resolveComponent(\"Chart\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.hideChartIfNoData && _ctx.emptyStats)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t('workouts.NO_WORKOUTS')), 1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_distance\",\n checked: _ctx.displayedData === 'total_distance',\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_5),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DISTANCE')), 1)\n ]),\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_duration\",\n checked: _ctx.displayedData === 'total_duration',\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_6),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DURATION')), 1)\n ]),\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"nb_workouts\",\n checked: _ctx.displayedData === 'nb_workouts',\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_7),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.WORKOUT', 2)), 1)\n ]),\n (_ctx.fullStats)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_8, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"average_speed\",\n checked: _ctx.displayedData === 'average_speed',\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_9),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.AVERAGE_SPEED')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.fullStats)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_10, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_ascent\",\n checked: _ctx.displayedData === 'total_ascent',\n onClick: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_11),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.ASCENT')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.fullStats)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_12, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_descent\",\n checked: _ctx.displayedData === 'total_descent',\n onClick: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_13),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DESCENT')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (_ctx.labels.length > 0)\n ? (_openBlock(), _createBlock(_component_Chart, {\n key: 0,\n datasets: _ctx.datasets,\n labels: _ctx.labels,\n displayedData: _ctx.displayedData,\n displayedSportIds: _ctx.displayedSportIds,\n fullStats: _ctx.fullStats,\n useImperialUnits: _ctx.user.imperial_units\n }, null, 8, [\"datasets\", \"labels\", \"displayedData\", \"displayedSportIds\", \"fullStats\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ]))\n ]))\n}","import { resolveComponent as _resolveComponent, mergeProps as _mergeProps, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"chart\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_BarChart = _resolveComponent(\"BarChart\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_BarChart, _mergeProps(_ctx.barChartProps, { class: \"bar-chart\" }), null, 16)\n ]))\n}","export const formatDuration = (\n totalSeconds: number,\n formatWithUnits = false\n): string => {\n let days = '0'\n if (formatWithUnits) {\n days = String(Math.floor(totalSeconds / 86400))\n totalSeconds %= 86400\n }\n const hours = String(Math.floor(totalSeconds / 3600)).padStart(2, '0')\n totalSeconds %= 3600\n const minutes = String(Math.floor(totalSeconds / 60)).padStart(2, '0')\n const seconds = String(totalSeconds % 60).padStart(2, '0')\n if (formatWithUnits) {\n return `${days === '0' ? '' : `${days}d `}${\n hours === '00' ? '' : `${hours}h `\n }${minutes}m ${seconds}s`\n }\n return `${hours === '00' ? '' : `${hours}:`}${minutes}:${seconds}`\n}\n","import { TStatisticsDatasetKeys } from '@/types/statistics'\nimport { formatDuration } from '@/utils/duration'\nimport { units } from '@/utils/units'\n\nexport const formatTooltipValue = (\n displayedData: TStatisticsDatasetKeys,\n value: number,\n useImperialUnits: boolean,\n formatWithUnits = true,\n unitFrom = 'km'\n): string => {\n const unitTo = useImperialUnits ? units[unitFrom].defaultTarget : unitFrom\n switch (displayedData) {\n case 'average_speed':\n return `${value.toFixed(2)} ${unitTo}/h`\n case 'total_duration':\n return formatDuration(value, formatWithUnits)\n case 'total_distance':\n case 'total_ascent':\n case 'total_descent':\n return `${value.toFixed(2)} ${unitTo}`\n default:\n return value.toString()\n }\n}\n","\n import { ChartOptions, LayoutItem } from 'chart.js'\n import { PropType, computed, defineComponent } from 'vue'\n import { BarChart, useBarChart } from 'vue-chart-3'\n import { useI18n } from 'vue-i18n'\n\n import { IChartDataset } from '@/types/chart'\n import { TStatisticsDatasetKeys } from '@/types/statistics'\n import { formatTooltipValue } from '@/utils/tooltip'\n\n export default defineComponent({\n name: 'Chart',\n components: {\n BarChart,\n },\n props: {\n datasets: {\n type: Object as PropType,\n required: true,\n },\n labels: {\n type: Object as PropType,\n required: true,\n },\n displayedData: {\n type: String as PropType,\n required: true,\n },\n displayedSportIds: {\n type: Array as PropType,\n required: true,\n },\n fullStats: {\n type: Boolean,\n required: true,\n },\n useImperialUnits: {\n type: Boolean,\n required: true,\n },\n },\n setup(props) {\n const { t } = useI18n()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function getNumber(value: any): number {\n return isNaN(value) ? 0 : +value\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function getSum(total: any, value: any): number {\n return getNumber(total) + getNumber(value)\n }\n function getUnit(displayedData: string) {\n return ['total_ascent', 'total_descent'].includes(displayedData)\n ? 'm'\n : 'km'\n }\n const chartData = computed(() => ({\n labels: props.labels,\n // workaround to avoid dataset modification\n datasets: JSON.parse(JSON.stringify(props.datasets)),\n }))\n const options = computed>(() => ({\n responsive: true,\n maintainAspectRatio: true,\n animation: false,\n layout: {\n padding: {\n top: props.fullStats ? 40 : 22,\n },\n },\n scales: {\n x: {\n stacked: true,\n grid: {\n drawOnChartArea: false,\n },\n },\n y: {\n stacked: props.displayedData !== 'average_speed',\n grid: {\n drawOnChartArea: false,\n },\n ticks: {\n maxTicksLimit: 6,\n callback: function (value) {\n return formatTooltipValue(\n props.displayedData,\n +value,\n props.useImperialUnits,\n false,\n getUnit(props.displayedData)\n )\n },\n },\n afterFit: function (scale: LayoutItem) {\n scale.width = props.fullStats ? 90 : 60\n },\n },\n },\n plugins: {\n datalabels: {\n anchor: 'end',\n align: 'end',\n color: function (context) {\n return props.displayedData === 'average_speed' &&\n context.dataset.backgroundColor\n ? // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n context.dataset.backgroundColor[0]\n : '#666666'\n },\n rotation: function (context) {\n return props.fullStats && context.chart.chartArea.width < 580\n ? 310\n : 0\n },\n display: function (context) {\n return props.fullStats && context.chart.chartArea.width < 300\n ? false\n : props.displayedData === 'average_speed'\n ? props.displayedSportIds.length == 1\n ? 'auto'\n : false\n : true\n },\n formatter: function (value, context) {\n if (props.displayedData === 'average_speed') {\n return formatTooltipValue(\n props.displayedData,\n value,\n props.useImperialUnits,\n false\n )\n } else {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const total: number = context.chart.data.datasets\n .map((d) => d.data[context.dataIndex])\n .reduce((total, value) => getSum(total, value), 0)\n return context.datasetIndex ===\n props.displayedSportIds.length - 1 && total > 0\n ? formatTooltipValue(\n props.displayedData,\n total,\n props.useImperialUnits,\n false,\n getUnit(props.displayedData)\n )\n : null\n }\n },\n },\n legend: {\n display: false,\n },\n tooltip: {\n interaction: {\n intersect: true,\n mode: 'index',\n position:\n props.displayedData === 'average_speed' ? 'nearest' : 'average',\n },\n filter: function (tooltipItem) {\n return tooltipItem.formattedValue !== '0'\n },\n callbacks: {\n label: function (context) {\n let label = t(`sports.${context.dataset.label}.LABEL`) || ''\n if (label) {\n label += ': '\n }\n if (context.parsed.y !== null) {\n label += formatTooltipValue(\n props.displayedData,\n context.parsed.y,\n props.useImperialUnits,\n true,\n getUnit(props.displayedData)\n )\n }\n return label\n },\n footer: function (tooltipItems) {\n if (props.displayedData === 'average_speed') {\n return ''\n }\n let sum = 0\n tooltipItems.map((tooltipItem) => {\n sum += tooltipItem.parsed.y\n })\n return (\n `${t('common.TOTAL')}: ` +\n formatTooltipValue(\n props.displayedData,\n sum,\n props.useImperialUnits,\n true,\n getUnit(props.displayedData)\n )\n )\n },\n },\n },\n },\n }))\n const { barChartProps } = useBarChart({\n chartData,\n options,\n })\n return { barChartProps }\n },\n })\n","import { render } from \"./Chart.vue?vue&type=template&id=1d43a4a8&ts=true\"\nimport script from \"./Chart.vue?vue&type=script&lang=ts\"\nexport * from \"./Chart.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n import { format } from 'date-fns'\n import {\n ComputedRef,\n PropType,\n Ref,\n computed,\n defineComponent,\n ref,\n watch,\n onBeforeMount,\n } from 'vue'\n\n import Chart from '@/components/Common/StatsChart/Chart.vue'\n import { STATS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import {\n IStatisticsChartData,\n TStatisticsDatasetKeys,\n IStatisticsDateParams,\n TStatisticsFromApi,\n IStatisticsParams,\n } from '@/types/statistics'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { formatStats } from '@/utils/statistics'\n\n export default defineComponent({\n name: 'UserMonthStats',\n components: {\n Chart,\n },\n props: {\n sports: {\n type: Object as PropType,\n required: true,\n },\n user: {\n type: Object as PropType,\n required: true,\n },\n chartParams: {\n type: Object as PropType,\n required: true,\n },\n displayedSportIds: {\n type: Array as PropType,\n default: () => [],\n },\n fullStats: {\n type: Boolean,\n default: false,\n },\n hideChartIfNoData: {\n type: Boolean,\n default: false,\n },\n },\n setup(props) {\n const store = useStore()\n\n const displayedData: Ref = ref('total_distance')\n const statistics: ComputedRef = computed(\n () => store.getters[STATS_STORE.GETTERS.USER_STATS]\n )\n const formattedStats: ComputedRef = computed(() =>\n formatStats(\n props.chartParams,\n props.user.weekm,\n props.sports,\n props.displayedSportIds,\n statistics.value,\n props.user.imperial_units,\n props.user.date_format\n )\n )\n\n onBeforeMount(() =>\n getStatistics(getApiParams(props.chartParams, props.user))\n )\n\n function getStatistics(apiParams: IStatisticsParams) {\n store.dispatch(STATS_STORE.ACTIONS.GET_USER_STATS, {\n username: props.user.username,\n filterType: 'by_time',\n params: apiParams,\n })\n }\n function updateDisplayData(\n event: Event & {\n target: HTMLInputElement & { name: TStatisticsDatasetKeys }\n }\n ) {\n displayedData.value = event.target.name\n }\n function getApiParams(\n chartParams: IStatisticsDateParams,\n user: IAuthUserProfile\n ): IStatisticsParams {\n return {\n from: format(chartParams.start, 'yyyy-MM-dd'),\n to: format(chartParams.end, 'yyyy-MM-dd'),\n time:\n chartParams.duration === 'week'\n ? `week${user.weekm ? 'm' : ''}`\n : chartParams.duration,\n }\n }\n\n watch(\n () => props.chartParams,\n async (newParams) => {\n getStatistics(getApiParams(newParams, props.user))\n }\n )\n\n return {\n datasets: computed(\n () => formattedStats.value.datasets[displayedData.value]\n ),\n labels: computed(() => formattedStats.value.labels),\n emptyStats: computed(() => Object.keys(statistics.value).length === 0),\n displayedData,\n updateDisplayData,\n }\n },\n })\n","import { render } from \"./index.vue?vue&type=template&id=d5e9b348&scoped=true&ts=true\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=d5e9b348&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-d5e9b348\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-20291951\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"box user-header\" }\nconst _hoisted_2 = { class: \"user-details\" }\nconst _hoisted_3 = { class: \"user-name\" }\nconst _hoisted_4 = { class: \"user-stats\" }\nconst _hoisted_5 = { class: \"user-stat\" }\nconst _hoisted_6 = { class: \"stat-number\" }\nconst _hoisted_7 = { class: \"stat-label\" }\nconst _hoisted_8 = { class: \"user-stat\" }\nconst _hoisted_9 = { class: \"stat-label\" }\nconst _hoisted_10 = { class: \"user-stat hide-small\" }\nconst _hoisted_11 = { class: \"stat-number\" }\nconst _hoisted_12 = { class: \"stat-label\" }\n\nimport { computed, ComputedRef, toRefs } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { AUTH_USER_STORE } from '@/store/constants'\n import { IAuthUserProfile, IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserHeader',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n };\n\n \n\n const { user } = toRefs(props)\n\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Distance = _resolveComponent(\"Distance\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(UserPicture, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_unref(user).username), 1),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"span\", _hoisted_6, _toDisplayString(_unref(user).nb_workouts), 1),\n _createElementVNode(\"span\", _hoisted_7, _toDisplayString(_ctx.$t('workouts.WORKOUT', _unref(user).nb_workouts)), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createVNode(_component_Distance, {\n distance: _unref(user).total_distance,\n unitFrom: \"km\",\n digits: 0,\n displayUnit: false,\n useImperialUnits: _unref(authUser).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"]),\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_unref(authUser).imperial_units ? 'miles' : 'km'), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_unref(user).nb_sports), 1),\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(_ctx.$t('workouts.SPORT', _unref(user).nb_sports)), 1)\n ])\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./UserHeader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserHeader.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserHeader.vue?vue&type=style&index=0&id=20291951&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-20291951\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, vModelText as _vModelText, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createTextVNode as _createTextVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-217519af\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"user-infos\",\n class: \"description-list\"\n}\nconst _hoisted_2 = {\n key: 1,\n class: \"info-box success-message\"\n}\nconst _hoisted_3 = {\n key: 4,\n class: \"email-form form-box\"\n}\nconst _hoisted_4 = {\n class: \"form-items\",\n for: \"email\"\n}\nconst _hoisted_5 = {\n class: \"form-items\",\n for: \"email\"\n}\nconst _hoisted_6 = { class: \"form-buttons\" }\nconst _hoisted_7 = {\n class: \"confirm\",\n type: \"submit\"\n}\nconst _hoisted_8 = [\"onClick\"]\nconst _hoisted_9 = { key: 5 }\nconst _hoisted_10 = { class: \"user-bio\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"profile-buttons\"\n}\nconst _hoisted_12 = [\"onClick\"]\nconst _hoisted_13 = {\n key: 1,\n class: \"profile-buttons\"\n}\n\nimport { format } from 'date-fns'\n import {\n ComputedRef,\n Ref,\n computed,\n ref,\n toRefs,\n withDefaults,\n watch,\n onUnmounted,\n } from 'vue'\n\n import { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { IAuthUserProfile, IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { formatDate, getDateFormat } from '@/utils/dates'\n import { localeFromLanguage } from '@/utils/locales'\n\n interface Props {\n user: IUserProfile\n fromAdmin?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserInfos',\n props: {\n user: null,\n fromAdmin: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { user: IUserProfile, fromAdmin: boolean };\n\n \n\n const store = useStore()\n\n const { user, fromAdmin } = toRefs(props)\n const language: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const registrationDate = computed(() =>\n props.user.created_at\n ? formatDate(\n props.user.created_at,\n authUser.value.timezone,\n authUser.value.date_format\n )\n : ''\n )\n const birthDate = computed(() =>\n props.user.birth_date\n ? format(\n new Date(props.user.birth_date),\n `${getDateFormat(authUser.value.date_format, language.value)}`,\n { locale: localeFromLanguage[language.value] }\n )\n : ''\n )\n const isSuccess = computed(\n () => store.getters[USERS_STORE.GETTERS.USERS_IS_SUCCESS]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const displayModal: Ref = ref('')\n const formErrors = ref(false)\n const displayUserEmailForm: Ref = ref(false)\n const newUserEmail: Ref = ref('')\n const currentAction: Ref = ref('')\n\n function updateDisplayModal(value: string) {\n displayModal.value = value\n if (value !== '') {\n store.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n }\n }\n function deleteUserAccount(username: string) {\n store.dispatch(USERS_STORE.ACTIONS.DELETE_USER_ACCOUNT, { username })\n }\n function resetUserPassword(username: string) {\n currentAction.value = 'password-reset'\n store.dispatch(USERS_STORE.ACTIONS.UPDATE_USER, {\n username,\n resetPassword: true,\n })\n }\n function confirmUserAccount(username: string) {\n store.dispatch(USERS_STORE.ACTIONS.UPDATE_USER, {\n username,\n activate: true,\n })\n }\n function displayEmailForm() {\n resetErrorsAndSuccess()\n newUserEmail.value = user.value.email_to_confirm\n ? user.value.email_to_confirm\n : ''\n displayUserEmailForm.value = true\n currentAction.value = 'email-update'\n }\n function hideEmailForm() {\n newUserEmail.value = ''\n displayUserEmailForm.value = false\n }\n function updateUserEmail(username: string) {\n store.dispatch(USERS_STORE.ACTIONS.UPDATE_USER, {\n username,\n new_email: newUserEmail.value,\n })\n }\n function resetErrorsAndSuccess() {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n store.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n currentAction.value = ''\n }\n\n onUnmounted(() => resetErrorsAndSuccess())\n\n watch(\n () => isSuccess.value,\n (newIsSuccess) => {\n if (newIsSuccess) {\n updateDisplayModal('')\n hideEmailForm()\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n const _component_AlertMessage = _resolveComponent(\"AlertMessage\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (displayModal.value)\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: \n displayModal.value === 'delete'\n ? 'admin.CONFIRM_USER_ACCOUNT_DELETION'\n : 'admin.CONFIRM_USER_PASSWORD_RESET'\n ,\n strongMessage: _unref(user).username,\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (\n displayModal.value === 'delete'\n ? deleteUserAccount(_unref(user).username)\n : resetUserPassword(_unref(user).username)\n )),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal('')))\n }, null, 8, [\"title\", \"message\", \"strongMessage\"]))\n : _createCommentVNode(\"\", true),\n (_unref(isSuccess))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t(\n `admin.${\n currentAction.value === 'password-reset'\n ? 'PASSWORD_RESET'\n : 'USER_EMAIL_UPDATE'\n }_SUCCESSFUL`\n )), 1))\n : _createCommentVNode(\"\", true),\n (!_unref(user).is_active)\n ? (_openBlock(), _createBlock(_component_AlertMessage, {\n key: 2,\n message: \"user.THIS_USER_ACCOUNT_IS_INACTIVE\"\n }))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 3,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (displayUserEmailForm.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"form\", {\n class: _normalizeClass({ errors: formErrors.value }),\n onSubmit: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (updateUserEmail(_unref(user).username)), [\"prevent\"]))\n }, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.CURRENT_EMAIL')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"email\",\n type: \"email\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_unref(user).email) = $event)),\n disabled: \"\"\n }, null, 512), [\n [_vModelText, _unref(user).email]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_5, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.NEW_EMAIL')) + \"* \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"new-email\",\n type: \"email\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((newUserEmail).value = $event))\n }, null, 512), [\n [_vModelText, newUserEmail.value]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"button\", _hoisted_7, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _withModifiers(hideEmailForm, [\"prevent\"])\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 9, _hoisted_8)\n ])\n ], 34)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(registrationDate)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.FIRST_NAME')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(user).first_name), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.LAST_NAME')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(user).last_name), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.BIRTH_DATE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(birthDate)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.LOCATION')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(user).location), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.BIO')) + \":\", 1),\n _createElementVNode(\"dd\", _hoisted_10, _toDisplayString(_unref(user).bio), 1)\n ]),\n (_unref(fromAdmin))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n (_unref(authUser).username !== _unref(user).username)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"danger\",\n onClick: _cache[5] || (_cache[5] = _withModifiers(($event: any) => (updateDisplayModal('delete')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.DELETE_USER')), 1))\n : _createCommentVNode(\"\", true),\n (!_unref(user).is_active)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n onClick: _cache[6] || (_cache[6] = _withModifiers(($event: any) => (confirmUserAccount(_unref(user).username)), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.ACTIVATE_USER_ACCOUNT')), 1))\n : _createCommentVNode(\"\", true),\n (_unref(authUser).username !== _unref(user).username)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 2,\n onClick: _withModifiers(displayEmailForm, [\"prevent\"])\n }, _toDisplayString(_ctx.$t('admin.UPDATE_USER_EMAIL')), 9, _hoisted_12))\n : _createCommentVNode(\"\", true),\n (\n _unref(authUser).username !== _unref(user).username &&\n _unref(appConfig).is_email_sending_enabled\n )\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 3,\n onClick: _cache[7] || (_cache[7] = _withModifiers(($event: any) => (updateDisplayModal('reset')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.RESET_USER_PASSWORD')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[8] || (_cache[8] = ($event: any) => (_ctx.$router.go(-1)))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n _createElementVNode(\"button\", {\n onClick: _cache[9] || (_cache[9] = ($event: any) => (_ctx.$router.push('/profile/edit')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[10] || (_cache[10] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ]))\n ]))\n ]))\n}\n}\n\n})","import script from \"./UserInfos.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserInfos.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserInfos.vue?vue&type=style&index=0&id=217519af&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-217519af\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, vModelText as _vModelText, withDirectives as _withDirectives, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass, withCtx as _withCtx, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-b3c885de\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-form\" }\nconst _hoisted_2 = {\n key: 2,\n class: \"info-box success-message\"\n}\nconst _hoisted_3 = { class: \"form-items\" }\nconst _hoisted_4 = [\"disabled\", \"placeholder\"]\nconst _hoisted_5 = {\n key: 1,\n class: \"form-info\"\n}\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_7 = [\"disabled\", \"placeholder\"]\nconst _hoisted_8 = {\n key: 3,\n class: \"form-info\"\n}\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_10 = [\"disabled\"]\nconst _hoisted_11 = { key: 3 }\nconst _hoisted_12 = { key: 0 }\nconst _hoisted_13 = { key: 4 }\nconst _hoisted_14 = { class: \"account\" }\nconst _hoisted_15 = { key: 5 }\n\nimport {\n ComputedRef,\n computed,\n onUnmounted,\n reactive,\n ref,\n toRefs,\n watch,\n withDefaults,\n } from 'vue'\n import { useRoute } from 'vue-router'\n\n import PasswordInput from '@/components/Common/PasswordInput.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { ILoginRegisterFormData } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n action: string\n token?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserAuthForm',\n props: {\n action: null,\n token: { default: '' }\n },\n setup(__props: any) {\n\nconst props = __props as { action: string, token: string };\n\n \n\n const route = useRoute()\n const store = useStore()\n\n const { action } = toRefs(props)\n const formData: ILoginRegisterFormData = reactive({\n username: '',\n email: '',\n password: '',\n })\n const buttonText: ComputedRef = computed(() =>\n getButtonText(props.action)\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const isRegistrationSuccess: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_REGISTRATION_SUCCESS]\n )\n const isSuccess: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_SUCCESS]\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const language: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const registration_disabled: ComputedRef = computed(\n () =>\n props.action === 'register' && !appConfig.value.is_registration_enabled\n )\n const sendingEmailDisabled: ComputedRef = computed(\n () =>\n ['reset-request', 'account-confirmation-resend'].includes(props.action) &&\n !appConfig.value.is_email_sending_enabled\n )\n const formErrors = ref(false)\n\n function getButtonText(action: string): string {\n switch (action) {\n case 'reset-request':\n case 'reset':\n return 'buttons.SUBMIT'\n default:\n return `buttons.${props.action.toUpperCase()}`\n }\n }\n function invalidateForm() {\n formErrors.value = true\n }\n function updatePassword(password: string) {\n formData.password = password\n }\n function onSubmit(actionType: string) {\n switch (actionType) {\n case 'reset':\n if (!props.token) {\n return store.commit(\n ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES,\n 'user.INVALID_TOKEN'\n )\n }\n return store.dispatch(AUTH_USER_STORE.ACTIONS.RESET_USER_PASSWORD, {\n password: formData.password,\n token: props.token,\n })\n case 'reset-request':\n return store.dispatch(\n AUTH_USER_STORE.ACTIONS.SEND_PASSWORD_RESET_REQUEST,\n {\n email: formData.email,\n }\n )\n case 'account-confirmation-resend':\n return store.dispatch(\n AUTH_USER_STORE.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL,\n {\n email: formData.email,\n }\n )\n default:\n formData['language'] = language.value\n store.dispatch(AUTH_USER_STORE.ACTIONS.LOGIN_OR_REGISTER, {\n actionType,\n formData,\n redirectUrl: route.query.from,\n })\n }\n }\n function resetFormData() {\n formData.username = ''\n formData.email = ''\n formData.password = ''\n }\n\n onUnmounted(() => store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES))\n\n watch(\n () => route.path,\n async () => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n store.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n store.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,\n false\n )\n formErrors.value = false\n resetFormData()\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_AlertMessage = _resolveComponent(\"AlertMessage\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n id: \"user-auth-form\",\n class: _normalizeClass(`${\n ['reset', 'reset-request'].includes(_unref(action)) ? _unref(action) : 'user-form'\n }`)\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"form-box\", {\n disabled: _unref(registration_disabled),\n }])\n }, [\n (_unref(registration_disabled))\n ? (_openBlock(), _createBlock(_component_AlertMessage, {\n key: 0,\n message: \"user.REGISTER_DISABLED\"\n }))\n : _createCommentVNode(\"\", true),\n (_unref(sendingEmailDisabled))\n ? (_openBlock(), _createBlock(_component_AlertMessage, {\n key: 1,\n message: \"admin.EMAIL_SENDING_DISABLED\"\n }))\n : _createCommentVNode(\"\", true),\n (_unref(isSuccess) || _unref(isRegistrationSuccess))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t(\n `user.PROFILE.SUCCESSFUL_${\n _unref(isRegistrationSuccess)\n ? `REGISTRATION${\n _unref(appConfig).is_email_sending_enabled ? '_WITH_EMAIL' : ''\n }`\n : 'UPDATE'\n }`\n )), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n class: _normalizeClass({ errors: formErrors.value }),\n onSubmit: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (onSubmit(_unref(action))), [\"prevent\"]))\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_unref(action) === 'register')\n ? _withDirectives((_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n id: \"username\",\n disabled: _unref(registration_disabled),\n required: \"\",\n pattern: \"[a-zA-Z0-9_]+\",\n minlength: \"3\",\n maxlength: \"30\",\n onInvalid: invalidateForm,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((formData.username) = $event)),\n placeholder: _ctx.$t('user.USERNAME')\n }, null, 40, _hoisted_4)), [\n [_vModelText, formData.username]\n ])\n : _createCommentVNode(\"\", true),\n (_unref(action) === 'register')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _hoisted_6,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('user.USERNAME_INFO')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(action) !== 'reset')\n ? _withDirectives((_openBlock(), _createElementBlock(\"input\", {\n key: 2,\n id: \"email\",\n disabled: _unref(registration_disabled) || _unref(sendingEmailDisabled),\n required: \"\",\n onInvalid: invalidateForm,\n type: \"email\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((formData.email) = $event)),\n placeholder: _ctx.$t('user.EMAIL')\n }, null, 40, _hoisted_7)), [\n [_vModelText, formData.email]\n ])\n : _createCommentVNode(\"\", true),\n (\n [\n 'reset-request',\n 'register',\n 'account-confirmation-resend',\n ].includes(_unref(action))\n )\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _hoisted_9,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('user.EMAIL_INFO')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (\n !['account-confirmation-resend', 'reset-request'].includes(\n _unref(action)\n )\n )\n ? (_openBlock(), _createBlock(PasswordInput, {\n key: 4,\n disabled: _unref(registration_disabled),\n required: true,\n placeholder: \n _unref(action) === 'reset'\n ? _ctx.$t('user.ENTER_PASSWORD')\n : _ctx.$t('user.PASSWORD')\n ,\n password: formData.password,\n checkStrength: ['reset', 'register'].includes(_unref(action)),\n onUpdatePassword: updatePassword,\n onPasswordError: invalidateForm\n }, null, 8, [\"disabled\", \"placeholder\", \"password\", \"checkStrength\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"button\", {\n type: \"submit\",\n disabled: _unref(registration_disabled) || _unref(sendingEmailDisabled)\n }, _toDisplayString(_ctx.$t(_unref(buttonText))), 9, _hoisted_10)\n ], 34),\n (_unref(action) === 'login')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n _createVNode(_component_router_link, {\n class: \"links\",\n to: \"/register\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.REGISTER')), 1)\n ]),\n _: 1\n }),\n (_unref(appConfig).is_email_sending_enabled)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_12, \"-\"))\n : _createCommentVNode(\"\", true),\n (_unref(appConfig).is_email_sending_enabled)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 1,\n class: \"links\",\n to: \"/password-reset/request\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PASSWORD_FORGOTTEN')), 1)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(action) === 'register')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.$t('user.ALREADY_HAVE_ACCOUNT')), 1),\n _createVNode(_component_router_link, {\n class: \"links\",\n to: \"/login\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.LOGIN')), 1)\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true),\n (\n ['login', 'register'].includes(_unref(action)) &&\n _unref(appConfig).is_email_sending_enabled\n )\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_15, [\n _createVNode(_component_router_link, {\n class: \"links\",\n to: \"/account-confirmation/resend\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.ACCOUNT_CONFIRMATION_NOT_RECEIVED')), 1)\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 6,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true)\n ], 2)\n ])\n ], 2))\n}\n}\n\n})","import script from \"./UserAuthForm.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserAuthForm.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserAuthForm.vue?vue&type=style&index=0&id=b3c885de&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-b3c885de\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"user-picture\" }\nconst _hoisted_2 = [\"alt\", \"src\"]\nconst _hoisted_3 = {\n key: 1,\n class: \"no-picture\"\n}\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-user-circle-o\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_5 = [\n _hoisted_4\n]\n\nimport { computed } from 'vue'\n\n import { IUserProfile } from '@/types/user'\n import { getApiUrl } from '@/utils'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPicture',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n };\n\n \n\n const authUserPictureUrl = computed(() =>\n props.user.picture\n ? `${getApiUrl()}users/${props.user.username}/picture?${Date.now()}`\n : ''\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(authUserPictureUrl) !== '')\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"profile-user-img\",\n alt: _ctx.$t('user.USER_PICTURE'),\n src: _unref(authUserPictureUrl)\n }, null, 8, _hoisted_2))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _hoisted_5))\n ]))\n}\n}\n\n})","import script from \"./UserPicture.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPicture.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPicture.vue?vue&type=style&index=0&id=26bea286&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n","import { render } from \"./NoWorkouts.vue?vue&type=template&id=4b4d15fb&scoped=true\"\nconst script = {}\n\nimport \"./NoWorkouts.vue?vue&type=style&index=0&id=4b4d15fb&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4b4d15fb\"]])\n\nexport default __exports__","var map = {\n\t\"./de/de.ts\": 9923,\n\t\"./en/en.ts\": 8757,\n\t\"./fr/fr.ts\": 6625,\n\t\"./it/it.ts\": 4334,\n\t\"./nb/nb.ts\": 8891,\n\t\"./nl/nl.ts\": 701\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 4612;","// 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// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(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__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + ({\"24\":\"reset\",\"193\":\"statistics\",\"222\":\"password.fr\",\"261\":\"password.en\",\"328\":\"admin\",\"401\":\"workouts\",\"802\":\"password.it\",\"845\":\"profile\",\"881\":\"password\",\"940\":\"password.de\"}[chunkId] || chunkId) + \".\" + {\"24\":\"a4de7412\",\"93\":\"7582eaa7\",\"193\":\"99fc9524\",\"222\":\"7161a5de\",\"243\":\"e034bc01\",\"261\":\"6a36a15a\",\"328\":\"443044dd\",\"401\":\"e312ce33\",\"431\":\"6f0a9946\",\"633\":\"3c9401e6\",\"802\":\"eac74305\",\"845\":\"d9355913\",\"858\":\"5db37332\",\"881\":\"f10cfc3b\",\"940\":\"c02a3162\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/css/\" + {\"24\":\"reset\",\"193\":\"statistics\",\"328\":\"admin\",\"401\":\"workouts\",\"845\":\"profile\"}[chunkId] + \".\" + {\"24\":\"e2527ec6\",\"193\":\"40e24e75\",\"328\":\"73df498d\",\"401\":\"b4a2d0f0\",\"845\":\"9f83730d\"}[chunkId] + \".css\";\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 = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"fittrackee_client:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"24\":1,\"193\":1,\"328\":1,\"401\":1,\"845\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkfittrackee_client\"] = self[\"webpackChunkfittrackee_client\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(5326); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["authApi","axios","baseURL","getApiUrl","interceptors","request","use","config","controller","AbortController","signal","requestKey","removeRequestIfPending","pendingRequests","authToken","store","AUTH_USER_STORE","auth","headers","Authorization","error","Promise","reject","response","message","Map","generateRequestKey","method","url","params","data","JSON","stringify","join","has","get","abort","delete","disabledLanguages","loadLocaleMessages","locales","require","messages","keys","forEach","key","matched","match","length","includes","locale","default","createI18n","legacy","fallbackLocale","globalInjection","ctx","normalize","_normalize","interpolate","_interpolate","list","_list","plural","_plural","about","AboutTranslations","admin","AdministrationTranslations","api","ApiTranslations","buttons","ButtonsTranslations","common","CommonTranslations","dashboard","DashboardTranslations","ErrorTranslations","oauth2","OAuth2Translations","sports","SportsTranslations","statistics","StatisticsTranslations","user","UserTranslations","workouts","WorkoutsTranslations","register","ready","console","log","registered","cached","updatefound","updated","offline","_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_1","id","_hoisted_2","class","_hoisted_3","_hoisted_4","_createElementVNode","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","href","target","rel","_defineComponent","__name","props","version","adminContact","setup","__props","toRefs","_ctx","_cache","_component_router_link","_resolveComponent","_openBlock","_createElementBlock","_createTextVNode","_toDisplayString","_unref","_createVNode","to","_withCtx","$t","_","_createCommentVNode","__exports__","emits","emit","useStore","authUser","computed","getters","isAuthenticated","language","ROOT_STORE","isMenuOpen","ref","openMenu","value","closeMenu","updateLanguage","option","dispatch","toString","logout","_component_Dropdown","onClick","$event","$router","push","_normalizeClass","capitalize","_createBlock","UserPicture","username","availableLanguages","options","selected","onSelected","ErrorImg","innerHTML","appConfig","appLoading","hideScrollBar","displayScrollButton","updateHideScrollBar","isScrolledToBottom","element","getBoundingClientRect","top","window","innerHeight","bottom","scroll","onscroll","document","querySelector","scrollToTop","scrollTo","behavior","setTimeout","initLanguage","navigatorLanguage","navigator","split","localeFromLanguage","e","onBeforeMount","onMounted","_component_Loader","_component_router_view","_Fragment","NavBar","onMenuInteraction","NoConfig","Footer","admin_contact","name","charLimit","disabled","type","Boolean","input","text","updateText","event","watch","_withDirectives","maxLenght","onInput","_vModelText","distance","unitFrom","useImperialUnits","digits","displayUnit","speed","strong","unitTo","units","defaultTarget","convertedDistance","convertDistance","parseFloat","toFixed","route","useRoute","isOpen","dropdownOptions","map","toggleDropdown","updateSelected","path","_renderSlot","$slots","_renderList","index","label","Array","isArray","subMessage","xmlns","x","y","viewBox","style","d","render","cx","cy","r","sportLabel","color","title","sportColors","inject","_normalizeStyle","fill","CyclingSport","CyclingTransport","CyclingVirtual","Hiking","MountainBiking","MountainBikingElectric","Mountaineering","Rowing","Running","SkiingAlpine","SkiingCrossCountry","Snowshoes","Trail","Walking","script","strongMessage","errorMessages","onUnmounted","commit","_component_i18n_t","_component_ErrorMessage","_component_Card","content","keypath","customComponents","AlertMessage","Card","CustomTextArea","Distance","Dropdown","ErrorMessage","Loader","Modal","SportImage","clickOutsideDirective","mounted","binding","clickOutsideEvent","contains","body","addEventListener","unmounted","removeEventListener","undefined","Chart","BarElement","LineElement","PointElement","Legend","Title","Tooltip","Filler","BarController","CategoryScale","LineController","LinearScale","ChartDataLabels","app","createApp","App","provide","i18n","router","VueFullscreen","directive","component","mount","for","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","edition","useRouter","appData","reactive","max_users","max_single_file_size","max_zip_file_size","gpx_limit_import","updateForm","Object","getFileSizeInMB","onCancel","onSubmit","formData","assign","_withModifiers","min","step","icon","appStatistics","uploadDirSize","getReadableFileSize","uploads_dir_size","StatCard","users","size","suffix","AppStatsCards","is_registration_enabled","is_email_sending_enabled","t","useI18n","translatedSports","translateSports","SPORTS_STORE","updateSportStatus","isActive","_component_SportImage","sport","translatedLabel","is_active","danger","has_workouts","query","q","searchUsers","resetFilter","onKeyup","_withKeys","placeholder","trim","orderByList","defaultOrderBy","getQuery","USERS_STORE","pagination","loadUsers","queryParams","reloadUsers","updateUser","queryParam","queryValue","page","newQuery","UsersNameFilter","onFilterOnUsername","FilterSelects","sort","sortList","order_by","onUpdateSelect","email","formatDate","created_at","timezone","date_format","nb_workouts","Pagination","tabs","selectedTab","getPath","tab","toLocaleLowerCase","checked","UserHeader","UserProfileTabs","appLanguage","userLanguage","languageLabels","fistDayOfWeek","weekm","display_ascent","getDateFormat","imperial_units","loading","userForm","password","new_password","isSuccess","emailUpdate","formErrors","displayModal","invalidateForm","updateUserForm","updatePassword","updateNewPassword","updateProfile","payload","updateDisplayModal","deleteAccount","async","isSuccessValue","_component_Modal","onConfirmAction","onCancelAction","errors","required","onInvalid","PasswordInput","onUpdatePassword","onPasswordError","checkStrength","first_name","last_name","birth_date","location","bio","registrationDate","format","Date","updateBio","_component_CustomTextArea","onUpdateValue","fileSizeLimit","pictureFile","deleteUserPicture","updatePictureFile","files","updateUserPicture","picture","accept","timeZones","tzList","focusItemIndex","matchTimezone","toLowerCase","onMouseOver","onUpdateTimezone","onEnter","preventDefault","firstElementChild","openDropdown","onKeydown","ref_key","filter","tz","focus","onMouseover","autofocus","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","weekStart","imperialUnits","ascentData","dateFormatOptions","availableDateFormatOptions","toUTCString","updateTZ","updateAscentDisplay","updateImperialUnit","updateWeekM","lang","_vModelSelect","TimezoneDropdown","dateFormat","start","unit","status","oauth2_scopes","admin_oauth2_scopes","appForm","client_name","client_uri","client_description","redirect_uri","scopes","filtered_scopes","getScopes","redirect_uris","scope","OAUTH2_STORE","updateDescription","updateScopes","indexOf","splice","admin_scopes","description","onChange","client","loadApp","client_id","authorizeApp","response_type","state","code_challenge","code_challenge_method","afterCreation","revocationSuccessful","messageToDisplay","idCopied","secretCopied","clipboardSupport","loadClient","updateMessageToDisplay","forDelete","confirmAction","clientId","copyIdToClipboard","clipboard","writeText","copySecretToClipboard","client_secret","newValue","issued_at","website","clients","getClientsQuery","clientsQuery","getNumberQueryValue","defaultPage","loadClients","isEdition","defaultColor","sports_list","sportPayload","sport_id","stopped_speed_threshold","updateSportInEdition","is_active_for_user","resetSportPayload","isSportInEdition","sportId","updateColor","updateThreshold","updateIsActive","updateSport","resetSport","newIsLoading","weather_provider","get_weather_provider","src","alt","BikePic","About","workout","hasElevation","ascent","descent","_component_Distance","workoutId","workout_date","formatDistance","addSuffix","with_gpx","StaticMap","moving","min_alt","max_alt","per_page","initWorkoutsCount","loadWorkouts","WORKOUTS_STORE","moreWorkoutsExist","previous_workout","defaultOrder","loadMoreWorkouts","WorkoutCard","s","NoWorkouts","displayHARecord","sportColor","records","record","record_type","height","width","colors","datasets","angleOffset","radius","circumference","Math","PI","calculateStrokeDashOffset","percentage","returnCircleTransformValue","rotation","entries","stroke","transform","isHidden","togglePane","stopPropagation","_directive_click_outside","_resolveDirective","DonutChart","CalendarWorkout","getSportLabel","getSportColor","chartDatasets","getDonutDatasets","sportIdColors","displayedWorkoutCount","slice","CalendarWorkoutsChart","currentDay","endDate","startDate","weekStartingMonday","rows","getDays","day","days","i","addDays","isWeekEnd","filterWorkouts","isSameDay","getDateWithTZ","reverse","row","isSameMonth","today","isToday","CalendarWorkouts","localeOptions","calendarDates","getCalendarStartAndEnd","calendarWorkouts","getCalendarWorkouts","apiParams","from","end","displayNextMonth","addMonths","displayPreviousMonth","subMonths","CalendarHeader","onDisplayNextMonth","onDisplayPreviousMonth","CalendarDays","CalendarCells","date","chartParams","duration","startOfMonth","endOfMonth","selectedSportIds","StatChart","formatRecord","distanceUnitFrom","distanceUnitTo","ascentUnitFrom","ascentUnitTo","Error","workout_id","sortRecords","a","b","recordALabel","recordBLabel","getRecordsBySports","reduce","sportList","find","sportTranslatedLabel","getTranslatedRecords","translatedRecords","recordsBySport","RecordsCard","userTotalDuration","total_duration","totalDuration","get_duration","totalDistance","total_distance","totalAscent","total_ascent","nb_sports","isSelected","updateDisplayColumn","UserStatsCards","UserMonthStats","UserRecords","UserCalendar","Timeline","NotFound","action","LoginOrRegisterForm","getTabFromPath","regex","tag","replace","toUpperCase","routes","Dashboard","LoginOrRegister","children","Profile","UserInfos","UserPreferences","UserSportPreferences","UserApps","UserAppsList","UserApp","AddUserApp","AuthorizeUserApp","ProfileEdition","UserInfosEdition","UserAccountEdition","UserPictureEdition","UserPreferencesEdition","displaySegment","AdminMenu","AdminApplication","AdminSports","fromAdmin","AdminUsers","AboutView","NotFoundView","createRouter","history","createWebHistory","process","pathsWithoutAuthentication","pathsWithoutChecks","beforeEach","next","then","fullPath","catch","AuthUserActions","AuthUserGetters","AuthUserMutations","OAuth2Actions","OAuth2Getters","OAuth2Mutations","RootActions","RootGetters","RootMutations","SportsActions","SportsGetters","SportsMutation","StatisticsActions","StatisticsGetters","StatisticsMutations","UsersActions","UsersGetters","UsersMutations","ACTIONS","GETTERS","MUTATIONS","STATS_STORE","WorkoutsActions","WorkoutsGetters","WorkoutsMutations","deleteUserAccount","context","res","handleError","actions","finally","resetPassword","reset_password","activate","new_email","removeAuthUserData","localStorage","removeItem","token","auth_token","setItem","refreshUser","actionType","redirectUrl","form","FormData","append","authUserProfile","isRegistrationSuccess","mutations","authUserState","get_client","set","redirect_url","oAuth2State","setAttribute","application","root","enUS","sportsState","filterType","statisticsState","updatedUser","usersState","getWorkouts","segmentUrl","segmentId","segments","chart_data","gpx","file","notes","calendar_workouts","timeline_workouts","user_workouts","workoutData","concat","chartData","workoutsState","modules","authUserModule","oAuthModule","sportsModule","statsModule","usersModule","workoutsModule","createStore","VuexStore","defaultPerPage","defaultValue","getStringQueryValue","availableValues","locationQuery","queryOptions","defaultSort","order","workoutsPayloadKeys","getRange","stop","rangePagination","pages","currentPage","getStartDate","startOfWeek","weekStartsOn","startOfYear","incrementDate","addYears","dateInUTC","utcToZonedTime","monthStart","monthEnd","endOfWeek","formatWorkoutDate","dateTime","timeFormat","workout_time","availableDateFormats","dateStringFormats","de","en","fr","it","nl","dateString","withTime","inputDate","l","df","suffixes","fileSize","asText","floor","pow","msg","errorInfo","m","availableLocales","sortSports","sportATranslatedLabel","sportBTranslatedLabel","activeStatus","sportsToInclude","dateFormats","week","chart","month","year","datasetKeys","getDateKeys","getStatisticsChartDataset","isLineChart","dataset","backgroundColor","borderColor","spanGaps","getDatasets","displayedSports","average_speed","total_descent","convertStatsValue","datasetKey","convertStatsDistance","formatStats","displayedSportsId","apiStats","userDateFormat","dayKeys","labels","sportsId","displayedSport","getStatsDateParams","timeFrame","subYears","endOfYear","updateChartParams","backward","subWeeks","addWeeks","ft","system","multiplier","mi","km","factors","metric","imperial","getTemperature","temperatureInCelsius","temperature","Number","getWindSpeed","windSpeedInMS","windSpeed","borderWidth","yAxisID","elevation","distance_labels","duration_labels","coordinates","latitude","longitude","total","count","perPage","onSelectUpdate","nb","buttonText","timer","errorDisplayed","displayError","clearTimeout","cursor","has_prev","navigate","has_next","active","loadLanguagePackage","setZxcvbnOptions","zxcvbnCommonPackage","zxcvbnLanguagePackage","graphs","adjacencyGraphs","dictionary","zxcvbnOptions","getPasswordStrength","strength","passwordScore","passwordStrength","passwordSuggestions","backgroundSize","calculatePasswordStrength","zxcvbnResult","zxcvbn","score","feedback","suggestions","newLanguageValue","newPassword","max","suggestion","showPassword","passwordValue","togglePassword","invalidPassword","minlength","_vModelDynamic","PasswordStrength","displayHover","imageUrl","backgroundImage","$props","$setup","$data","$options","_component_Chart","hideChartIfNoData","emptyStats","displayedData","args","updateDisplayData","fullStats","displayedSportIds","_component_BarChart","_mergeProps","barChartProps","formatDuration","totalSeconds","formatWithUnits","String","hours","padStart","minutes","seconds","formatTooltipValue","defineComponent","components","BarChart","getNumber","isNaN","getSum","getUnit","parse","responsive","maintainAspectRatio","animation","layout","padding","scales","stacked","grid","drawOnChartArea","ticks","maxTicksLimit","callback","afterFit","scale","plugins","datalabels","anchor","align","chartArea","display","formatter","dataIndex","datasetIndex","legend","tooltip","interaction","intersect","mode","position","tooltipItem","formattedValue","callbacks","parsed","footer","tooltipItems","sum","useBarChart","formattedStats","getStatistics","getApiParams","time","newParams","birthDate","displayUserEmailForm","newUserEmail","currentAction","resetUserPassword","confirmUserAccount","displayEmailForm","resetErrorsAndSuccess","email_to_confirm","hideEmailForm","updateUserEmail","newIsSuccess","_component_AlertMessage","go","getButtonText","registration_disabled","sendingEmailDisabled","resetFormData","pattern","maxlength","authUserPictureUrl","now","webpackContext","req","webpackContextResolve","__webpack_require__","o","code","resolve","module","exports","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","call","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","every","getter","__esModule","leafPrototypes","getProto","getPrototypeOf","obj","__proto__","this","ns","create","def","current","getOwnPropertyNames","definition","defineProperty","enumerable","f","chunkId","all","promises","u","miniCssF","g","globalThis","Function","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","done","needAttach","scripts","getElementsByTagName","getAttribute","createElement","charset","timeout","nc","onScriptComplete","prev","onerror","onload","doneFns","parentNode","removeChild","bind","head","appendChild","Symbol","toStringTag","p","createStylesheet","fullhref","oldTag","linkTag","onLinkComplete","errorType","realHref","err","insertBefore","nextSibling","findStylesheet","existingLinkTags","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/app.02c11a8c.js","mappings":"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AA,EAAAA,IAAiBP,EAAKY,GAAG,gCAAiC,EAAG5B,KAC/DwB,EAAAA,EAAAA,IAAOnD,GAAMsZ,UACTvW,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,SAAU,CAC3CvF,IAAK,EACL2D,MAAO,SACP2D,QAASmU,IACRhW,EAAAA,EAAAA,IAAiBP,EAAKY,GAAG,gCAAiC,KAC7DE,EAAAA,EAAAA,IAAoB,IAAI,IAC5BlC,EAAAA,EAAAA,GAAoB,SAAU,CAC5BH,MAAO,SACP2D,QAASnC,EAAO,KAAOA,EAAO,GAAMoC,GAAiBrC,EAAKsC,QAAQC,KAAK,eACtEhC,EAAAA,EAAAA,IAAiBP,EAAKY,GAAG,iCAAkC,MAE/D,GAAIlC,OAET,CAEJ,ICtHA,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,YAAY,qBAEvE,UCRO,MAAMmY,GAAY,CACvB,iBACA,eACA,iBACA,gBACA,eACA,oBACA,eACA,kBACA,sBACA,cACA,kBACA,eACA,gBACA,kBACA,iBACA,kBACA,kBACA,iBACA,eACA,kBACA,eACA,oBACA,oBACA,iCACA,8BACA,4BACA,0BACA,6BACA,4BACA,iCACA,0BACA,6BACA,6BACA,4BACA,4BACA,mBACA,mBACA,gBACA,yBACA,mBACA,gBACA,iBACA,uBACA,oBACA,iBACA,gBACA,wBACA,uBACA,iBACA,kBACA,kBACA,kBACA,oBACA,qBACA,kBACA,iBACA,kBACA,uBACA,iBACA,uBACA,iBACA,kBACA,mBACA,mBACA,sBACA,oBACA,sBACA,oBACA,kBACA,oBACA,qBACA,oBACA,oBACA,iBACA,kBACA,iBACA,qBACA,+BACA,uBACA,0BACA,6BACA,4BACA,wBACA,4BACA,0BACA,iBACA,kBACA,kBACA,iBACA,8BACA,8BACA,iBACA,eACA,sBACA,iBACA,kBACA,iBACA,qBACA,oBACA,mBACA,oBACA,iBACA,qBACA,sBACA,mBACA,kBACA,oBACA,qBACA,iBACA,mBACA,kBACA,eACA,kBACA,8BACA,8BACA,iCACA,kBACA,iBACA,sBACA,qBACA,kBACA,yBACA,wBACA,sBACA,sBACA,uBACA,sBACA,uBACA,iBACA,iBACA,mBACA,qBACA,mBACA,mBACA,wBACA,oBACA,uBACA,gBACA,mBACA,wBACA,sBACA,gBACA,sBACA,kBACA,kBACA,oBACA,qBACA,mBACA,kBACA,sBACA,mBACA,mBACA,4BACA,uBACA,oBACA,oBACA,qBACA,mBACA,mBACA,oBACA,cACA,aACA,cACA,aACA,cACA,gBACA,cACA,eACA,YACA,eACA,eACA,cACA,eACA,cACA,aACA,kBACA,eACA,gBACA,aACA,YACA,aACA,gBACA,iBACA,YACA,cACA,mBACA,iBACA,YACA,eACA,eACA,gBACA,iBACA,aACA,iBACA,eACA,iBACA,gBACA,eACA,mBACA,oBACA,eACA,aACA,eACA,gBACA,cACA,eACA,oBACA,mBACA,YACA,YACA,iBACA,iBACA,aACA,gBACA,iBACA,cACA,gBACA,iBACA,aACA,gBACA,iBACA,qBACA,cACA,gBACA,eACA,cACA,eACA,aACA,aACA,mBACA,cACA,gBACA,mBACA,eACA,cACA,qBACA,eACA,kBACA,mBACA,kBACA,sBACA,iBACA,mBACA,qBACA,yBACA,mBACA,qBACA,qBACA,wBACA,mBACA,mBACA,kBACA,mBACA,qBACA,sBACA,sBACA,kBACA,mBACA,mBACA,iBACA,mBACA,gBACA,kBACA,gBACA,kBACA,mBACA,kBACA,kBACA,oBACA,gBACA,mBACA,kBACA,kBACA,qBACA,cACA,eACA,gBACA,gBACA,oBACA,gBACA,eACA,eACA,gBACA,gBACA,cACA,eACA,gBACA,cACA,cACA,gBACA,iBACA,oBACA,eACA,mBACA,iBACA,gBACA,mBACA,kBACA,gBACA,iBACA,mBACA,gBACA,oBACA,gBACA,gBACA,mBACA,eACA,mBACA,cACA,kBACA,mBACA,iBACA,eACA,mBACA,uBACA,kBACA,gBACA,iBACA,gBACA,oBACA,kBACA,eACA,mBACA,oBACA,kBACA,sBACA,eACA,mBACA,qBACA,iBACA,oBACA,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","sources":["webpack://fittrackee_client/./src/api/authApi.ts","webpack://fittrackee_client/./src/api/pending.ts","webpack://fittrackee_client/./src/i18n.ts","webpack://fittrackee_client/./src/locales/de/about.json","webpack://fittrackee_client/./src/locales/de/administration.json","webpack://fittrackee_client/./src/locales/de/api.json","webpack://fittrackee_client/./src/locales/de/buttons.json","webpack://fittrackee_client/./src/locales/de/common.json","webpack://fittrackee_client/./src/locales/de/dashboard.json","webpack://fittrackee_client/./src/locales/de/error.json","webpack://fittrackee_client/./src/locales/de/oauth2.json","webpack://fittrackee_client/./src/locales/de/sports.json","webpack://fittrackee_client/./src/locales/de/statistics.json","webpack://fittrackee_client/./src/locales/de/user.json","webpack://fittrackee_client/./src/locales/de/workouts.json","webpack://fittrackee_client/./src/locales/de/de.ts","webpack://fittrackee_client/./src/locales/en/about.json","webpack://fittrackee_client/./src/locales/en/administration.json","webpack://fittrackee_client/./src/locales/en/api.json","webpack://fittrackee_client/./src/locales/en/buttons.json","webpack://fittrackee_client/./src/locales/en/common.json","webpack://fittrackee_client/./src/locales/en/dashboard.json","webpack://fittrackee_client/./src/locales/en/error.json","webpack://fittrackee_client/./src/locales/en/oauth2.json","webpack://fittrackee_client/./src/locales/en/sports.json","webpack://fittrackee_client/./src/locales/en/statistics.json","webpack://fittrackee_client/./src/locales/en/user.json","webpack://fittrackee_client/./src/locales/en/workouts.json","webpack://fittrackee_client/./src/locales/en/en.ts","webpack://fittrackee_client/./src/locales/fr/about.json","webpack://fittrackee_client/./src/locales/fr/administration.json","webpack://fittrackee_client/./src/locales/fr/api.json","webpack://fittrackee_client/./src/locales/fr/buttons.json","webpack://fittrackee_client/./src/locales/fr/common.json","webpack://fittrackee_client/./src/locales/fr/dashboard.json","webpack://fittrackee_client/./src/locales/fr/error.json","webpack://fittrackee_client/./src/locales/fr/oauth2.json","webpack://fittrackee_client/./src/locales/fr/sports.json","webpack://fittrackee_client/./src/locales/fr/statistics.json","webpack://fittrackee_client/./src/locales/fr/user.json","webpack://fittrackee_client/./src/locales/fr/workouts.json","webpack://fittrackee_client/./src/locales/fr/fr.ts","webpack://fittrackee_client/./src/locales/it/about.json","webpack://fittrackee_client/./src/locales/it/administration.json","webpack://fittrackee_client/./src/locales/it/api.json","webpack://fittrackee_client/./src/locales/it/buttons.json","webpack://fittrackee_client/./src/locales/it/common.json","webpack://fittrackee_client/./src/locales/it/dashboard.json","webpack://fittrackee_client/./src/locales/it/error.json","webpack://fittrackee_client/./src/locales/it/oauth2.json","webpack://fittrackee_client/./src/locales/it/sports.json","webpack://fittrackee_client/./src/locales/it/statistics.json","webpack://fittrackee_client/./src/locales/it/user.json","webpack://fittrackee_client/./src/locales/it/workouts.json","webpack://fittrackee_client/./src/locales/it/it.ts","webpack://fittrackee_client/./src/locales/nb/about.json","webpack://fittrackee_client/./src/locales/nb/administration.json","webpack://fittrackee_client/./src/locales/nb/api.json","webpack://fittrackee_client/./src/locales/nb/buttons.json","webpack://fittrackee_client/./src/locales/nb/common.json","webpack://fittrackee_client/./src/locales/nb/dashboard.json","webpack://fittrackee_client/./src/locales/nb/error.json","webpack://fittrackee_client/./src/locales/nb/oauth2.json","webpack://fittrackee_client/./src/locales/nb/sports.json","webpack://fittrackee_client/./src/locales/nb/statistics.json","webpack://fittrackee_client/./src/locales/nb/user.json","webpack://fittrackee_client/./src/locales/nb/workouts.json","webpack://fittrackee_client/./src/locales/nb/nb.ts","webpack://fittrackee_client/./src/locales/nl/about.json","webpack://fittrackee_client/./src/locales/nl/administration.json","webpack://fittrackee_client/./src/locales/nl/api.json","webpack://fittrackee_client/./src/locales/nl/buttons.json","webpack://fittrackee_client/./src/locales/nl/common.json","webpack://fittrackee_client/./src/locales/nl/dashboard.json","webpack://fittrackee_client/./src/locales/nl/error.json","webpack://fittrackee_client/./src/locales/nl/oauth2.json","webpack://fittrackee_client/./src/locales/nl/sports.json","webpack://fittrackee_client/./src/locales/nl/statistics.json","webpack://fittrackee_client/./src/locales/nl/user.json","webpack://fittrackee_client/./src/locales/nl/workouts.json","webpack://fittrackee_client/./src/locales/nl/nl.ts","webpack://fittrackee_client/./src/registerServiceWorker.ts","webpack://fittrackee_client/./src/components/Footer.vue?771f","webpack://fittrackee_client/./src/components/Footer.vue","webpack://fittrackee_client/./src/components/NavBar.vue?9bec","webpack://fittrackee_client/./src/components/NavBar.vue","webpack://fittrackee_client/./src/components/NoConfig.vue?541b","webpack://fittrackee_client/./src/components/NoConfig.vue","webpack://fittrackee_client/./src/App.vue?2a5e","webpack://fittrackee_client/./src/App.vue","webpack://fittrackee_client/./src/components/Common/AlertMessage.vue?3150","webpack://fittrackee_client/./src/components/Common/AlertMessage.vue","webpack://fittrackee_client/./src/components/Common/CustomTextArea.vue?8efa","webpack://fittrackee_client/./src/components/Common/CustomTextArea.vue","webpack://fittrackee_client/./src/components/Common/Distance.vue?edec","webpack://fittrackee_client/./src/components/Common/Distance.vue","webpack://fittrackee_client/./src/components/Common/Dropdown.vue?f7d5","webpack://fittrackee_client/./src/components/Common/Dropdown.vue","webpack://fittrackee_client/./src/components/Common/ErrorMessage.vue?c328","webpack://fittrackee_client/./src/components/Common/ErrorMessage.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/CyclingSport.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/CyclingSport.vue?4f4b","webpack://fittrackee_client/./src/components/Common/Images/SportImage/CyclingTransport.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/CyclingTransport.vue?a81c","webpack://fittrackee_client/./src/components/Common/Images/SportImage/CyclingVirtual.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/CyclingVirtual.vue?1bd1","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Hiking.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Hiking.vue?cf60","webpack://fittrackee_client/./src/components/Common/Images/SportImage/MountainBiking.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/MountainBiking.vue?8a30","webpack://fittrackee_client/./src/components/Common/Images/SportImage/MountainBikingElectric.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/MountainBikingElectric.vue?f7ee","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Mountaineering.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Mountaineering.vue?a480","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Rowing.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Rowing.vue?c24b","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Running.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Running.vue?2cd2","webpack://fittrackee_client/./src/components/Common/Images/SportImage/SkiingAlpine.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/SkiingAlpine.vue?f1ff","webpack://fittrackee_client/./src/components/Common/Images/SportImage/SkiingCrossCountry.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/SkiingCrossCountry.vue?f0db","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Snowshoes.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Snowshoes.vue?cfb7","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Trail.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Trail.vue?5564","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Walking.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Walking.vue?f92f","webpack://fittrackee_client/./src/components/Common/Images/SportImage/index.vue?1cdd","webpack://fittrackee_client/./src/components/Common/Images/SportImage/index.vue","webpack://fittrackee_client/./src/components/Common/Loader.vue","webpack://fittrackee_client/./src/components/Common/Loader.vue?0b74","webpack://fittrackee_client/./src/components/Common/Modal.vue?0d9d","webpack://fittrackee_client/./src/components/Common/Modal.vue","webpack://fittrackee_client/./src/custom-components.ts","webpack://fittrackee_client/./src/directives.ts","webpack://fittrackee_client/./src/main.ts","webpack://fittrackee_client/./src/components/Administration/AdminApplication.vue?dc32","webpack://fittrackee_client/./src/components/Administration/AdminApplication.vue","webpack://fittrackee_client/./src/components/Common/StatCard.vue?3301","webpack://fittrackee_client/./src/components/Common/StatCard.vue","webpack://fittrackee_client/./src/components/Administration/AppStatsCards.vue?60fb","webpack://fittrackee_client/./src/components/Administration/AppStatsCards.vue","webpack://fittrackee_client/./src/components/Administration/AdminMenu.vue?0597","webpack://fittrackee_client/./src/components/Administration/AdminMenu.vue","webpack://fittrackee_client/./src/components/Administration/AdminSports.vue?05cc","webpack://fittrackee_client/./src/components/Administration/AdminSports.vue","webpack://fittrackee_client/./src/components/Users/UsersNameFilter.vue?0a55","webpack://fittrackee_client/./src/components/Users/UsersNameFilter.vue","webpack://fittrackee_client/./src/components/Administration/AdminUsers.vue?5a76","webpack://fittrackee_client/./src/components/Administration/AdminUsers.vue","webpack://fittrackee_client/./src/components/User/UserProfileTabs.vue?63ef","webpack://fittrackee_client/./src/components/User/UserProfileTabs.vue","webpack://fittrackee_client/./src/components/User/ProfileDisplay/index.vue?c76d","webpack://fittrackee_client/./src/components/User/ProfileDisplay/index.vue","webpack://fittrackee_client/./src/components/User/ProfileDisplay/UserPreferences.vue?a91b","webpack://fittrackee_client/./src/components/User/ProfileDisplay/UserPreferences.vue","webpack://fittrackee_client/./src/components/User/ProfileEdition/index.vue?8616","webpack://fittrackee_client/./src/components/User/ProfileEdition/index.vue","webpack://fittrackee_client/./src/components/User/ProfileEdition/UserAccountEdition.vue?a978","webpack://fittrackee_client/./src/components/User/ProfileEdition/UserAccountEdition.vue","webpack://fittrackee_client/./src/components/User/ProfileEdition/UserInfosEdition.vue?38a2","webpack://fittrackee_client/./src/components/User/ProfileEdition/UserInfosEdition.vue","webpack://fittrackee_client/./src/components/User/ProfileEdition/UserPictureEdition.vue?05c1","webpack://fittrackee_client/./src/components/User/ProfileEdition/UserPictureEdition.vue","webpack://fittrackee_client/./src/utils/timezone.ts","webpack://fittrackee_client/./src/components/User/ProfileEdition/TimezoneDropdown.vue?5519","webpack://fittrackee_client/./src/components/User/ProfileEdition/TimezoneDropdown.vue","webpack://fittrackee_client/./src/components/User/ProfileEdition/UserPreferencesEdition.vue?76a6","webpack://fittrackee_client/./src/components/User/ProfileEdition/UserPreferencesEdition.vue","webpack://fittrackee_client/./src/utils/oauth.ts","webpack://fittrackee_client/./src/components/User/UserApps/AddUserApp.vue?64f1","webpack://fittrackee_client/./src/components/User/UserApps/AddUserApp.vue","webpack://fittrackee_client/./src/components/User/UserApps/AuthorizeUserApp.vue?3371","webpack://fittrackee_client/./src/components/User/UserApps/AuthorizeUserApp.vue","webpack://fittrackee_client/./src/components/User/UserApps/index.vue?889c","webpack://fittrackee_client/./src/components/User/UserApps/index.vue","webpack://fittrackee_client/./src/components/User/UserApps/UserApp.vue?df25","webpack://fittrackee_client/./src/components/User/UserApps/UserApp.vue","webpack://fittrackee_client/./src/components/User/UserApps/UserAppsList.vue?6c20","webpack://fittrackee_client/./src/components/User/UserApps/UserAppsList.vue","webpack://fittrackee_client/./src/components/User/UserSportPreferences.vue?5e40","webpack://fittrackee_client/./src/components/User/UserSportPreferences.vue","webpack://fittrackee_client/./src/components/About.vue?b879","webpack://fittrackee_client/./src/components/About.vue","webpack://fittrackee_client/./src/components/BikePic.vue","webpack://fittrackee_client/./src/components/BikePic.vue?a9e2","webpack://fittrackee_client/./src/views/AboutView.vue?9f41","webpack://fittrackee_client/./src/views/AboutView.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutCard.vue?56e2","webpack://fittrackee_client/./src/components/Workout/WorkoutCard.vue","webpack://fittrackee_client/./src/components/Dashboard/Timeline.vue?046b","webpack://fittrackee_client/./src/components/Dashboard/Timeline.vue","webpack://fittrackee_client/./src/components/Dashboard/UserCalendar/CalendarWorkout.vue?609b","webpack://fittrackee_client/./src/components/Dashboard/UserCalendar/CalendarWorkout.vue","webpack://fittrackee_client/./src/components/Dashboard/UserCalendar/DonutChart.vue?08e2","webpack://fittrackee_client/./src/components/Dashboard/UserCalendar/DonutChart.vue","webpack://fittrackee_client/./src/components/Dashboard/UserCalendar/CalendarWorkoutsChart.vue?1aa0","webpack://fittrackee_client/./src/components/Dashboard/UserCalendar/CalendarWorkoutsChart.vue","webpack://fittrackee_client/./src/components/Dashboard/UserCalendar/CalendarWorkouts.vue?7291","webpack://fittrackee_client/./src/components/Dashboard/UserCalendar/CalendarWorkouts.vue","webpack://fittrackee_client/./src/components/Dashboard/UserCalendar/CalendarCells.vue?b7e6","webpack://fittrackee_client/./src/components/Dashboard/UserCalendar/CalendarCells.vue","webpack://fittrackee_client/./src/components/Dashboard/UserCalendar/CalendarDays.vue?4138","webpack://fittrackee_client/./src/components/Dashboard/UserCalendar/CalendarDays.vue","webpack://fittrackee_client/./src/components/Dashboard/UserCalendar/CalendarHeader.vue?7e24","webpack://fittrackee_client/./src/components/Dashboard/UserCalendar/CalendarHeader.vue","webpack://fittrackee_client/./src/components/Dashboard/UserCalendar/index.vue?c598","webpack://fittrackee_client/./src/components/Dashboard/UserCalendar/index.vue","webpack://fittrackee_client/./src/components/Dashboard/UserMonthStats.vue?9128","webpack://fittrackee_client/./src/components/Dashboard/UserMonthStats.vue","webpack://fittrackee_client/./src/utils/records.ts","webpack://fittrackee_client/./src/components/Dashboard/UserRecords/RecordsCard.vue?9439","webpack://fittrackee_client/./src/components/Dashboard/UserRecords/RecordsCard.vue","webpack://fittrackee_client/./src/components/Dashboard/UserRecords/index.vue?7d56","webpack://fittrackee_client/./src/components/Dashboard/UserRecords/index.vue","webpack://fittrackee_client/./src/components/Dashboard/UserStatsCards/index.vue?c362","webpack://fittrackee_client/./src/components/Dashboard/UserStatsCards/index.vue","webpack://fittrackee_client/./src/views/Dashboard.vue?95bb","webpack://fittrackee_client/./src/views/Dashboard.vue","webpack://fittrackee_client/./src/views/NotFoundView.vue?8c2c","webpack://fittrackee_client/./src/views/NotFoundView.vue","webpack://fittrackee_client/./src/views/user/LoginOrRegister.vue?46fb","webpack://fittrackee_client/./src/views/user/LoginOrRegister.vue","webpack://fittrackee_client/./src/router/index.ts","webpack://fittrackee_client/./src/store/modules/authUser/enums.ts","webpack://fittrackee_client/./src/store/modules/oauth2/enums.ts","webpack://fittrackee_client/./src/store/modules/root/enums.ts","webpack://fittrackee_client/./src/store/modules/sports/enums.ts","webpack://fittrackee_client/./src/store/modules/statistics/enums.ts","webpack://fittrackee_client/./src/store/modules/users/enums.ts","webpack://fittrackee_client/./src/store/constants.ts","webpack://fittrackee_client/./src/api/defaultApi.ts","webpack://fittrackee_client/./src/store/modules/users/actions.ts","webpack://fittrackee_client/./src/store/modules/authUser/actions.ts","webpack://fittrackee_client/./src/store/modules/authUser/getters.ts","webpack://fittrackee_client/./src/store/modules/authUser/mutations.ts","webpack://fittrackee_client/./src/store/modules/authUser/state.ts","webpack://fittrackee_client/./src/store/modules/authUser/index.ts","webpack://fittrackee_client/./src/store/modules/oauth2/actions.ts","webpack://fittrackee_client/./src/store/modules/oauth2/getters.ts","webpack://fittrackee_client/./src/store/modules/oauth2/mutations.ts","webpack://fittrackee_client/./src/store/modules/oauth2/state.ts","webpack://fittrackee_client/./src/store/modules/oauth2/index.ts","webpack://fittrackee_client/./src/store/modules/root/actions.ts","webpack://fittrackee_client/./src/store/modules/root/getters.ts","webpack://fittrackee_client/./src/store/modules/root/mutations.ts","webpack://fittrackee_client/./src/store/modules/root/state.ts","webpack://fittrackee_client/./src/store/modules/sports/actions.ts","webpack://fittrackee_client/./src/store/modules/sports/getters.ts","webpack://fittrackee_client/./src/store/modules/sports/mutations.ts","webpack://fittrackee_client/./src/store/modules/sports/state.ts","webpack://fittrackee_client/./src/store/modules/sports/index.ts","webpack://fittrackee_client/./src/store/modules/statistics/actions.ts","webpack://fittrackee_client/./src/store/modules/statistics/getters.ts","webpack://fittrackee_client/./src/store/modules/statistics/mutations.ts","webpack://fittrackee_client/./src/store/modules/statistics/state.ts","webpack://fittrackee_client/./src/store/modules/statistics/index.ts","webpack://fittrackee_client/./src/store/modules/users/getters.ts","webpack://fittrackee_client/./src/store/modules/users/mutations.ts","webpack://fittrackee_client/./src/store/modules/users/state.ts","webpack://fittrackee_client/./src/store/modules/users/index.ts","webpack://fittrackee_client/./src/store/modules/workouts/actions.ts","webpack://fittrackee_client/./src/store/modules/workouts/getters.ts","webpack://fittrackee_client/./src/store/modules/workouts/mutations.ts","webpack://fittrackee_client/./src/store/modules/workouts/state.ts","webpack://fittrackee_client/./src/store/modules/workouts/index.ts","webpack://fittrackee_client/./src/store/modules/root/index.ts","webpack://fittrackee_client/./src/store/index.ts","webpack://fittrackee_client/./src/store/modules/workouts/enums.ts","webpack://fittrackee_client/./src/use/useStore.ts","webpack://fittrackee_client/./src/utils/api.ts","webpack://fittrackee_client/./src/utils/dates.ts","webpack://fittrackee_client/./src/utils/files.ts","webpack://fittrackee_client/./src/utils/index.ts","webpack://fittrackee_client/./src/utils/locales.ts","webpack://fittrackee_client/./src/utils/sports.ts","webpack://fittrackee_client/./src/utils/statistics.ts","webpack://fittrackee_client/./src/utils/units.ts","webpack://fittrackee_client/./src/utils/workouts.ts","webpack://fittrackee_client/./src/components/Common/Card.vue","webpack://fittrackee_client/./src/components/Common/Card.vue?88f1","webpack://fittrackee_client/./src/components/Common/FilterSelects.vue?7823","webpack://fittrackee_client/./src/components/Common/FilterSelects.vue","webpack://fittrackee_client/./src/components/Common/Images/ErrorImg.vue","webpack://fittrackee_client/./src/components/Common/Images/ErrorImg.vue?6a2a","webpack://fittrackee_client/./src/components/Common/Error.vue?5a3e","webpack://fittrackee_client/./src/components/Common/Error.vue","webpack://fittrackee_client/./src/components/Common/NotFound.vue?45eb","webpack://fittrackee_client/./src/components/Common/NotFound.vue","webpack://fittrackee_client/./src/components/Common/Pagination.vue?e0b0","webpack://fittrackee_client/./src/components/Common/Pagination.vue","webpack://fittrackee_client/./src/utils/password.ts","webpack://fittrackee_client/./src/components/Common/PasswordStength.vue?1d44","webpack://fittrackee_client/./src/components/Common/PasswordStength.vue","webpack://fittrackee_client/./src/components/Common/PasswordInput.vue?e9ce","webpack://fittrackee_client/./src/components/Common/PasswordInput.vue","webpack://fittrackee_client/./src/components/Common/StaticMap.vue?d223","webpack://fittrackee_client/./src/components/Common/StaticMap.vue","webpack://fittrackee_client/./src/components/Common/StatsChart/index.vue?f4b9","webpack://fittrackee_client/./src/components/Common/StatsChart/Chart.vue?51c0","webpack://fittrackee_client/./src/utils/duration.ts","webpack://fittrackee_client/./src/utils/tooltip.ts","webpack://fittrackee_client/./src/components/Common/StatsChart/Chart.vue?960e","webpack://fittrackee_client/./src/components/Common/StatsChart/Chart.vue","webpack://fittrackee_client/./src/components/Common/StatsChart/index.vue?279d","webpack://fittrackee_client/./src/components/Common/StatsChart/index.vue","webpack://fittrackee_client/./src/components/User/ProfileDisplay/UserHeader.vue?bf09","webpack://fittrackee_client/./src/components/User/ProfileDisplay/UserHeader.vue","webpack://fittrackee_client/./src/components/User/ProfileDisplay/UserInfos.vue?77c4","webpack://fittrackee_client/./src/components/User/ProfileDisplay/UserInfos.vue","webpack://fittrackee_client/./src/components/User/UserAuthForm.vue?09b2","webpack://fittrackee_client/./src/components/User/UserAuthForm.vue","webpack://fittrackee_client/./src/components/User/UserPicture.vue?4869","webpack://fittrackee_client/./src/components/User/UserPicture.vue","webpack://fittrackee_client/./src/components/Workouts/NoWorkouts.vue","webpack://fittrackee_client/./src/components/Workouts/NoWorkouts.vue?e10e","webpack://fittrackee_client/./src/locales/ sync [A-Za-z0-9-_,\\s]+\\.ts$/","webpack://fittrackee_client/webpack/bootstrap","webpack://fittrackee_client/webpack/runtime/chunk loaded","webpack://fittrackee_client/webpack/runtime/compat get default export","webpack://fittrackee_client/webpack/runtime/create fake namespace object","webpack://fittrackee_client/webpack/runtime/define property getters","webpack://fittrackee_client/webpack/runtime/ensure chunk","webpack://fittrackee_client/webpack/runtime/get javascript chunk filename","webpack://fittrackee_client/webpack/runtime/get mini-css chunk filename","webpack://fittrackee_client/webpack/runtime/global","webpack://fittrackee_client/webpack/runtime/hasOwnProperty shorthand","webpack://fittrackee_client/webpack/runtime/load script","webpack://fittrackee_client/webpack/runtime/make namespace object","webpack://fittrackee_client/webpack/runtime/publicPath","webpack://fittrackee_client/webpack/runtime/css loading","webpack://fittrackee_client/webpack/runtime/jsonp chunk loading","webpack://fittrackee_client/webpack/startup"],"sourcesContent":["import axios from 'axios'\n\nimport { pendingRequests, removeRequestIfPending } from '@/api/pending'\nimport store from '@/store'\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport { getApiUrl } from '@/utils'\n\nconst authApi = axios.create({\n baseURL: getApiUrl(),\n})\n\nauthApi.interceptors.request.use(\n (config) => {\n const controller = new AbortController()\n config.signal = controller.signal\n const requestKey = removeRequestIfPending(config)\n pendingRequests.set(requestKey, controller)\n\n const authToken = store.getters[AUTH_USER_STORE.GETTERS.AUTH_TOKEN]\n if (authToken) {\n const auth = `Bearer ${authToken}`\n if (config.headers && config.headers.Authorization !== auth) {\n config.headers.Authorization = `Bearer ${authToken}`\n }\n }\n return config\n },\n (error) => Promise.reject(error)\n)\n\nauthApi.interceptors.response.use(\n (response) => {\n removeRequestIfPending(response.config)\n return response\n },\n (error) => {\n if (error.message !== 'canceled') {\n removeRequestIfPending(error.response.config)\n }\n return Promise.reject(error)\n }\n)\n\nexport default authApi\n","import { AxiosRequestConfig } from 'axios'\n\nexport const pendingRequests = new Map()\n\nconst generateRequestKey = (config: AxiosRequestConfig): string => {\n const { method, url, params = {}, data = {} } = config\n return [method, url, JSON.stringify(params), JSON.stringify(data)].join('')\n}\n\nexport const removeRequestIfPending = (config: AxiosRequestConfig): string => {\n const requestKey = generateRequestKey(config)\n if (pendingRequests.has(requestKey)) {\n const controller = pendingRequests.get(requestKey) || {}\n controller?.abort()\n pendingRequests.delete(requestKey)\n }\n return requestKey\n}\n","import { createI18n, LocaleMessages, VueMessageType } from 'vue-i18n'\n\n/**\n * Load locale messages\n *\n * The loaded `JSON` locale messages is pre-compiled by `@intlify/vue-i18n-loader`, which is integrated into `vue-cli-plugin-i18n`.\n * See: https://github.com/intlify/vue-i18n-loader#rocket-i18n-resource-pre-compilation\n */\nconst disabledLanguages = ['nb'] // to update after translations release\n\nfunction loadLocaleMessages(): Record> {\n const locales = require.context('./locales', true, /[A-Za-z0-9-_,\\s]+\\.ts$/i)\n const messages: Record> = {}\n locales.keys().forEach((key) => {\n const matched = key.match(/([A-Za-z0-9-_]+)\\./i)\n if (\n matched &&\n matched.length > 1 &&\n !disabledLanguages.includes(matched[1])\n ) {\n const locale = matched[1]\n messages[locale] = locales(key).default\n }\n })\n return messages\n}\n\nexport default createI18n({\n legacy: false,\n locale: 'en',\n fallbackLocale: 'en',\n globalInjection: true,\n messages: loadLocaleMessages(),\n})\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontaktiere den Administrator\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee ist ein selbst-gehosteter Outdoor-Aktivitäts-Tracker.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"unter \", _interpolate(_list(0)), \" Lizenz \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quellcode\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktion\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktiviere Konto\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktiv\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hinzufügen/Entfernen von Administratorrechten, Lösche Nutzerkonto.\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontakt-E-Mail des Administrators\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Dateianzahl im zip Archiv\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wenn 0, gibt es keine Registrierungslimitierung..\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Anzahl aktiver Nutzer\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"keine Kontakt-E-Mail\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Größe der hochgeladenen Dateien (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungskonfiguration\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Größe des zip Archives (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurück zu Admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Möchtest du wirklich das \", _interpolate(_list(0)), \" Konto löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Möchtest du wirklich das \", _interpolate(_list(0)), \" Passwort zurücksetzen?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktuelle E-Mail\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lösche Nutzer\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail-Versand ist deaktiviert.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktivieren/Deaktivieren von Sportarten.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neue E-Mail\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Das wasswort wurde zurückgesetzt.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierung ist derzeit deaktiviert.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierung ist derzeit aktiviert.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort zurücksetzen\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktiv\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trainings existieren\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Titel\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportarten Administration\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktualisiere Anwemdungskonfiguration (maximale Anzahl an registrierten Nutzern, maximale Dateigröße).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktualisiere E-Mail\"])},\n \"USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nutzer\"])},\n \"USERS\": {\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Adminstatus\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierungsdatum\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accountstatus\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nutzername\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trainingsanzahl\"])}\n }\n },\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administratorrechte hinzufügen\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administratorrechte entfernen\"])}\n }\n },\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die E-Mail Adresse wurde aktualisiert.\"])}\n}","export default {\n \"ERROR\": {\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Netzwerkfehler.\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mindestens eine Datei im ZIP-Archiv überschreitet das Größenlimit, bitte überprüfe das Archiv.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail: Eine gültige E-Mail muss angegeben werden.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler beim Einlesen der GPX-Datei\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler bei der GPX-Verarbeitung.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler beim Abrufen der Konfiguration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler beim Aktualisieren der Konfiguration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Die Registrierung ist deaktiviert.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dateierweiterung ist nicht erlaubt.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Datei ist größer als erlaubt.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültige Anmeldedaten.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die bereitgestellten Daten sind ungültig.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültiges Token, bitte erneut anmelden.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültiges Token, bitte erneut anmelden.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die neue E-Mail muss sich von der aktuellen E-Mail unterscheiden\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Datei angegeben.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Datei ausgewählt.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort: Passwort und Passwortbestätigung stimmen nicht überein.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebe ein gültiges Authentifizierungstoken an.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Signatur ist abgelaufen. Bitte melde dich erneut an.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Es tut mir leid, der Benutzername ist schon vergeben.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportart existiert nicht.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierung erfolgreich.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Anzahl der Dateien im Archiv überschreitet die Begrenzung.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Der Nutzer existiert nicht.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Um den Administrator zu kontaktieren, muss eine gültige E-Mail-Adresse angegeben werden\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Du kannst Dein Konto nicht löschen, da kein anderer Nutzer hat Administratorrechte besitzt.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Du hast keine Berechtigung.\"])}\n },\n \"PAGINATION\": {\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorhergehende\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nächste\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestätigungs-E-Mail erneut senden\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Autorisieren\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurück\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abbrechen\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter löschen\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mein Konto löschen\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deaktivieren\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bearbeiten\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktivieren\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmelden\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nein\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrieren\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurücksetzen\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Speichern\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ja\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Über\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestätigung\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontakt\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Tag\"]), _normalize([\"Tage\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Angezeigt\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dokumentation (en)\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hier\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Versteckt\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Startseite\"])},\n \"SELECTS\": {\n \"ORDER\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aufsteigend\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"absteigend\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sortieren\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sortiert nach\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pro Seite\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Insgesamt\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dieser Monat\"])}\n}","export default {\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bei der Anwendung scheinen einige Probleme aufgetreten zu sein.
                                                                                Bitte versuche es später noch einmal oder kontaktiere den Administrator.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Seite nicht gefunden\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training nicht gefunden\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etwas lief schief\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.\"])}\n}","export default {\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eine neue OAuth2-Anwendung hinzufügen\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ID\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geheimnis\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungsbeschreibung\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erstellt am\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungsname\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weiterleitungs-URL\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geltungsbereich\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf die Anwendungskonfiguration\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Lesezugriff auf auth-Endpunkte\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf auth-Endpunkte\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Lesezugriff auf users-Endpunkte\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf users-Endpunkte\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Lesezugriff auf workouts-Endpunkte\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf workouts-Endpunkte\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungs-URL\"])}\n },\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth2-Anwendungen\"])},\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung erfolgreich erstellt. Stelle sicher, dass du das Geheimnis kopierst, du kannst es nicht erneut anzeigen.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bist sicher, dass du diese App löschen willst?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Die Anwendung \", _interpolate(_list(0)), \" fragt an:\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" den Zugriff auf deinen Account erlauben?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"in Zwischenablage kopieren\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung löschen\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung hinzufügen\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung wurde nicht gefunden!\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"keine Anwendungen\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"keine Beschreibung\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alle Tokens zurückrufen\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bist du sicher, dass du alle Tokens zurückrufen möchtest?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alle vorhandenen und vergebenen Tokens wurde zurückgerufen.\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Radfahren (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Radfahren (Pendeln)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Radfahren (Virtuell)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wandern\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountainbiken\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountainbiken (elektrisch)\"])}\n },\n \"Mountaineering\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bergsteigen\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rudern\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Laufen\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skifahren (Alpin)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skifahren (Langlauf)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schneeschuhe\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gehen\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistik\"])},\n \"TIME_FRAMES\": {\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monat\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Woche\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jahr\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hast du keine Anweisungen erhalten?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prüfe deine E-Mail. Eine neue Bestätigungs-E-Mail wurde an die angegebene Adresse geschickt.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hast du bereits ein Konto?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Möchtest du dein Konto wirklich löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktuelles Passwort\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebe eine gültige E-Mail-Adresse an.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebe ein Passwort ein\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nach Benutzernamen filtern\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort verbergen\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültiges Token, bitte fordere ein neues Passworts an.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sprache\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmeldung\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abmelden\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmelden\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neues Passwort\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Nutzer gefunden.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort vergessen?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mindestens 8 Zeichen sind erforderlich.\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort zurücksetzen\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prüfe Deine E-Mail. Wenn Deine Adresse in der Datenbank enthalten ist, wirst du eine E-Mail mit einem Link erhalten um Dein Passwort zurückzusetzen.\"])},\n \"PASSWORD_STRENGTH\": {\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mittel\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gut\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwortstärke\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"SUGGESTIONS\": {\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schreibe einige, aber nicht alle Buchstaben groß.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Füge weitere weniger gebräuchliche Wörter hinzu.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide Jahreszahlen, die mit Dir in Verbindung gebracht werden.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schreibe mehr als nur den ersten Buchstaben groß.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide Daten und Jahreszahlen, die mit Dir in Verbindung gebracht werden.\"])},\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide vorhersehbare Buchstabenersetzungen wie \", \"@\", \" für a.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwende längere Tastaturmuster und ändere mehrmals die Schreibrichtung.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Du kannst sichere Passwörter erstellen, ohne Symbole, Zahlen oder Großbuchstaben zu verwenden.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wenn Sie dieses Passwort auch anderweitig verwenden, sollten Sie es ändern.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide Angabe von letzten Jahreszahlen.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide wiederholungen von Wörtern und Zeichen.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide umgekehrte Schreibweisen gebräuchlicher Wörter.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide gebräuchliche Zeichenfolgen.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwenden Sie mehrere Wörter, aber vermeide gebräuchliche Ausdrücke.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"schwach\"])}\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Dein Passwort wurde aktualisiert. Klicke \", _interpolate(_list(0)), \" um dich anzumelden.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontoausgabe\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anstiegs-bezogene Daten (Aufnahmen, gesamt)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurück zum Profil\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Biographie\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geburtsdatum\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datumsanzeigeformat\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profil bearbeiten\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen ändern\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen für Sportarten ändern\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Bitte \", _interpolate(_list(0)), \" um Deine E-Mail Adresse nochmals zu ändern oder kontaktiere den Administrator\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erster Tag der Woche\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorname\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sprache\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nachname\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ort\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montag\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bildausgabe\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild entfernen\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild aktualisieren\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungsausgabe\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profil-Ausgabe\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierungsdatum\"])},\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktion\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Farbe\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vom Admin deaktiviert\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aktiv\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Titel\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geschwindigkeitsschwellenwert für Stopp\"])}\n },\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportarten-Einstellungsausgabe\"])},\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dein Konto wurde erfolgreich aktualisiert. Bitte prüfe Deine E-Mail um die neue E-Mail Adresse zu bestätigen.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dein Konto wurde erfolgreich erstellt.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ein Aktivierungslink für Dein Konto wurde an die angegebene E-Mail Adresse geschickt.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dein Konto wurde erfolgreich aktualisiert.\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sontag\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konto\"])},\n \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungen\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profil\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportarten\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zeitzone\"])},\n \"UNITS\": {\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperiales System (ft, mi, mph, °F)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einheiten für die Distanz\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metrisches System (m, km, m/s, °C)\"])}\n }\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrieren\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Entschuldigung, die Registrierung ist deaktiviert.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail zur Kontobestätigung erneut senden\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort zurücksetzen\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort anzeigen\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dieser Account ist inaktiv.\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nutzername\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"3 bis 30 Zeichen sind erforderlich, nur alphanumerische Zeichen und der Unterstrich _ sind erlaubt.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Benutzerbild\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training hinzufügen\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Analyse\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aufstieg\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durchschnittsgeschwindigkeit\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durchschn. Geschwindigkeit\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zurück zum Training\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datum\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abstieg\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zeige Filter\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Entfernung\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dauer\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training bearbeiten\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Höhe\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ende\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Von\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".gpx Datei\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"verberge Filter\"])},\n \"INVALID_ASCENT_OR_DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Beide Höhenwerte müssen angegeben werden und größer oder gleich 0 sein.\"])},\n \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Distanz muss größer als 0 sein\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Dauer muss größer als 0 Sekunden sein\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Letzte Trainings\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lade mehr Trainings\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"maximale Höhe\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maximale Dateianzahl\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maximalgröße\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Geschwindigkeit\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"minimale Höhe\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nächstes Segment\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nächstes Training\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmerkungen\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Daten aus gpx, ohne Bereinigung\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Datei angegeben\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"enthält keinen Ordner\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Karte\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kein nächstes Segment\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kein nächstes Training\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Anmerkungen\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kein vorheriges Segment\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kein vorheriges Training\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Aufzeichnungen.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Trainings.\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pausen\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorheriges Segment\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorheriges Training\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Aufzeichnung\"]), _normalize([\"Aufzeichnungen\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durchschn. Geschwindigkeit\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weiteste Entfernung\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Höchster Anstieg\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Längste Dauer\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Geschwindigkeit\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"verbleibende Zeichen\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Segment\"]), _normalize([\"Segmente\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geschwindigkeit\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Sportart\"]), _normalize([\"Sportarten\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start und Ziel\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Höhenachse bei Null starten\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Titel\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bis\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gesamtdauer\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Füge erstes Training hinzu!\"])},\n \"WEATHER\": {\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"klarer Tag\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"klare Nacht\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wolkig\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nebel\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"teilweise bewölkter Tag\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"teilweise bewölkte Nacht\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Regen\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schneeregen\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schnee\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wind\"])}\n },\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Luftfeuchtigkeit\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Temperatur\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wind\"])},\n \"WIND_DIRECTIONS\": {\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OSO\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SO\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSO\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WSW\"])}\n }\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ohne .gpx Datei\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mit .gpx Datei\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Training\"]), _normalize([\"Trainings\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trainingsdatum\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bist du sicher, dass du dieses Training löschen möchtest?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".zip Datei\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"oder .zip Datei mit .gpx Dateien\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contact the administrator\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee is a self-hosted outdoor activity tracker.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"under \", _interpolate(_list(0)), \" license \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Source code\"])},\n \"WEATHER_DATA_FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weather data from:\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activate account\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Active\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add/remove admin rights, delete user account.\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administrator email for contact\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. files of zip archive\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If 0, no limitation on registration.\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. number of active users\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no contact email\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. size of uploaded files (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application configuration\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. size of zip archive (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Are you sure you want to delete \", _interpolate(_list(0)), \" account? All data will be deleted, this cannot be undone.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Are you sure you want to reset \", _interpolate(_list(0)), \" password?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Current email\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete user\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email sending is disabled.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable/disable sports.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New email\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The password has been reset.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration is currently disabled.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration is currently enabled.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset password\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Active\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workouts exist\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sports administration\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update application configuration (maximum number of registered users, maximum files size).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"user\"]), _normalize([\"users\"])])},\n \"USERS\": {\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"admin status\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"registration date\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"account status\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"username\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout count\"])}\n }\n },\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add admin rights\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove admin rights\"])}\n }\n },\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The email address has been updated.\"])}\n}","export default {\n \"ERROR\": {\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Network Error.\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"At least one file in zip archive exceeds size limit, please check the archive.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email: valid email must be provided.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error during gpx file parsing.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error during gpx processing.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error on getting configuration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error when updating configuration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, please try again or contact the administrator.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, registration is disabled.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File extension not allowed.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File size is greater than the allowed size.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid credentials.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Provided data are invalid.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The new email must be different than curent email\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No file provided.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No selected file.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password: password and password confirmation don't match.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Provide a valid auth token.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expired. Please log in again.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, that username is already taken.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sport does not exist.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Successfully registered.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The number of files in the archive exceeds the limit.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User does not exist.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A valid email must be provided for administrator contact\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You can not delete your account, no other user has admin rights.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You do not have permissions.\"])}\n },\n \"PAGINATION\": {\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"next\"])},\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"previous\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resend confirmation email\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Authorize\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clear filters\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete my account\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disable\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Yes\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"about\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contact\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"day\"]), _normalize([\"days\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Displayed\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentation\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"here\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hidden\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home\"])},\n \"SELECTS\": {\n \"ORDER\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascending\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descending\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sort\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"order by\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This month\"])}\n}","export default {\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The application seems to have encountered some issues.
                                                                                Please try again later or contact the administrator.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Page not found\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Workout not found\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Something went wrong\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])}\n}","export default {\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add a new OAuth2 application\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Id\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Secret\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application description\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Issue at\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application name\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Redirect URL\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scope\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to application configuration.\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants read access to auth endpoints.\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to auth endpoints.\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants read access to users endpoints.\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to users endpoints.\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants read access to workouts endpoints.\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to workouts endpoints.\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application URL\"])}\n },\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth2 applications\"])},\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application created successfully. Make sure to copy the secret now, it won't show up again.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete this app?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"The application \", _interpolate(_list(0)), \" is requesting:\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Authorize \", _interpolate(_list(0)), \" to use your account?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"copy to the clipboard\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete application\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add an application\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application not found!\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no applications\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no description\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revoke all tokens\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to revoke all tokens?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"All existing associated tokens have been revoked.\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Transport)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Virtual)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hiking\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking (Electric)\"])}\n },\n \"Mountaineering\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountaineering\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rowing\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Running\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Alpine)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Cross Country)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Snowshoes\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Walking\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistics\"])},\n \"TIME_FRAMES\": {\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"month\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"week\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"year\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Didn't received instructions?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email. A new confirmation email has been sent to the address provided.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Already have an account?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete your account? All data will be deleted, this cannot be undone\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Current password\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a valid email address.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a password\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter on username\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hide password\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please request a new password reset.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Login\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logout\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"log in\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New password\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No users found.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forgot password?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"At least 8 characters required.\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password reset\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email. If your address is in our database, you'll received an email with a link to reset your password.\"])},\n \"PASSWORD_STRENGTH\": {\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"good\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"password strength\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"strong\"])},\n \"SUGGESTIONS\": {\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Capitalize some, but not all letters.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add more words that are less common.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid years that are associated with you.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Capitalize more than the first letter.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid dates and years that are associated with you.\"])},\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid predictable letter substitutions like \", \"@\", \" for a.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use longer keyboard patterns and change typing direction multiple times.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You can create strong passwords without using symbols, numbers, or uppercase letters.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If you use this password elsewhere, you should change it.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid recent years.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid repeated words and characters.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid reversed spellings of common words.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid common character sequences.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use multiple words, but avoid common phrases.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"weak\"])}\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Your password have been updated. Click \", _interpolate(_list(0)), \" to log in.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account edition\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ascent-related data (records, total)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to profile\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Birth date\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date display format\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit profile\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit preferences\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit sports preferences\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Please \", _interpolate(_list(0)), \" to change your email address again or contact the administrator\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First day of week\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First name\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Last name\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Location\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monday\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture edition\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove picture\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update picture\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preferences edition\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile edition\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration date\"])},\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"action\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"color\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"disabled by admin\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"active\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"stopped speed threshold\"])}\n },\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sports preferences edition\"])},\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your account has been updated successfully. Please check your email to confirm your new email address.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your account has been created successfully.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A link to activate your account has been emailed to the address provided.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your account has been updated successfully.\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sunday\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"account\"])},\n \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"apps\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"picture\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"preferences\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profile\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timezone\"])},\n \"UNITS\": {\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperial system (ft, mi, mph, °F)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Units for distance\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metric system (m, km, m/s, °C)\"])}\n }\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, registration is disabled.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resend account confirmation email\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset your password\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"show password\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This user account is inactive.\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Username\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"3 to 30 characters required, only alphanumeric characters and the underscore character \\\"_\\\" allowed.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"user picture\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add a workout\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analysis\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascent\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average speed\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ave. speed\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"back to workout\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descent\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"display filters\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distance\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"duration\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit the workout\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"elevation\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"end\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"from\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".gpx file\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hide filters\"])},\n \"INVALID_ASCENT_OR_DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Both elevation values must be provided and be greater than or equal to 0.\"])},\n \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The distance must be greater than 0\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The duration must be greater than 0 seconds\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Latest workouts\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load more workouts\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. altitude\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max files\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max size\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. speed\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"min. altitude\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Next workout\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data from gpx, without any cleaning\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No file provided\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no folder inside\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No map\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next workout\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous segment\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous workout\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No workouts.\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous segment\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous workout\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ave. speed\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Farthest distance\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Highest ascent\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Longest duration\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. speed\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"remaining characters\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"speed\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start and finish\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start elevation axis at zero\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"title\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"to\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"total duration\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload one!\"])},\n \"WEATHER\": {\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear day\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear night\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cloudy\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fog\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy day\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy night\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"rain\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sleet\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"snow\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])}\n },\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"humidity\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"temperature\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])},\n \"WIND_DIRECTIONS\": {\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WSW\"])}\n }\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"without .gpx file\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"with .gpx file\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"workout\"]), _normalize([\"workouts\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout date\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete this workout?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".zip file\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"or .zip file containing .gpx files\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contacter l'administrateur\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee est un tracker d'activités sportives (en extérieur).\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"sous licence \", _interpolate(_list(0)), \" (en) \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Code source (en)\"])},\n \"WEATHER_DATA_FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Source des données météo :\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer le compte\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actif\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs.\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email de l'administrateur pour contact \"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre max. de fichiers dans une archive zip \"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si égal à 0, pas limite d'inscription\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre maximum d'utilisateurs actifs \"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"non renseigné\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille max. des fichiers (en Mo) \"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configuration de l'application\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille max. des archives zip (en Mo) \"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir à l'admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Êtes-vous sûr de vouloir supprimer le compte de l'utilisateur \", _interpolate(_list(0)), \" ? Toutes les données seront définitivement.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Êtes-vous sûr de vouloir réinitialiser le mot de passe de l'utilisateur \", _interpolate(_list(0)), \" ?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Adresse email actuelle\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer l'utilisateur\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'envoi d'emails est désactivé.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer/désactiver des sports.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nouvelle adresse email\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le mot de passe a été réinitialisé.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les inscriptions sont actuellement désactivées.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les inscriptions sont actuellement activées.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinit. le mot de passe\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actif\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"des séances existent\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration - Sports\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configurer l'application (nombre maximum d'utilisateurs inscrits, taille maximale des fichers).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Changer l'email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"utilisateur\"]), _normalize([\"utilisateurs\"])])},\n \"USERS\": {\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"status administrateur\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date d'inscription\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"statut du compte\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nom d'utilisateur\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nombre de séances\"])}\n }\n },\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter les droits d'admin\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retirer les droits d'admin\"])}\n }\n },\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'adresse email a été mise à jour.\"])}\n}","export default {\n \"ERROR\": {\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur réseau.\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Au moins un fichier de l'archive zip dépasse la taille maximale, veuillez vérifier l'archive.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Courriel : une adresse électronique valide doit être fournie.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de l'analyse du fichier.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors du traitement du fichier gpx.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la récupération de la configuration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la mise à jour de la configuration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur, veuillez réessayer ou contacter l'administrateur.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur, les inscriptions sont désactivées.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Extension de fichier non autorisée.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La taille du fichier est supérieure à la limite autorisée.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Identifiants invalides.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Données fournies incorrectes.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion invalide, merci de vous reconnecter.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion, merci de vous reconnecter.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La nouvelle addresse électronique doit être differente de l'adresse actuelle\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier sélectionné.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe : les mots de passe saisis sont différents.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Merci de fournir un jeton de connexion valide.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expirée. Merci de vous reconnecter.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, ce nom d'utilisateur est déjà utilisé.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce sport n'existe pas.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inscription validée.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le nombre de fichiers de l'archive dépasse la limite.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'utilisateur n'existe pas.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une adresse électronique doit être fournie pour le contact de l'administrateur\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous n'avez pas les permissions nécessaires.\"])}\n },\n \"PAGINATION\": {\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"suivant\"])},\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"précédent\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Renvoyer le message de confirmation\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Autoriser\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retour\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Annuler\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer mon compte\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désactiver\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrer\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinit.\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Valider\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Oui\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"à propos\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contact\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"jour\"]), _normalize([\"jours\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Affiché\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentation (en)\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ici\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Masqué\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accueil\"])},\n \"SELECTS\": {\n \"ORDER\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascendant\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descendant\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tri\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"trier par \"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tableau de bord\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce mois-ci\"])}\n}","export default {\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'application semble rencontrer quelques problèmes.
                                                                                Veuillez réessayer plus tard ou contacter l'administrateur.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Page introuvable\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance introuvable\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une erreur s'est produite\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])}\n}","export default {\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter une nouvelle application OAuth2\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Identifiant\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Secret\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Description de l'application\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Créée le\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom de l'application\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL de redirection\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scope\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture à la configuration de l'application.\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en lecture aux routes auth.\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture aux routes auth.\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en lecture aux routes users.\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture aux routes users.\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en lecture aux routes workouts.\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture aux routes workouts.\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL de l'application\"])}\n },\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applications OAuth2\"])},\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application créée avec succès. Assurez-vous de copier le secret maintenant, il ne s'affichera plus.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Êtes-vous sûr de vouloir supprimer cette application ?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"L'application \", _interpolate(_list(0)), \" demande les accès suivants :\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Autoriser \", _interpolate(_list(0)), \" à utiliser votre compte ?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"copier dans le presse papier\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer l'application\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter une application\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application introuvable !\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de applications\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de description\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Révoquer tous les jetons\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Êtes-vous sûr de vouloir révoquer tous les jetons ?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tous les jetons associés existants ont été révoqués.\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Transport)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Virtuel)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Randonnée\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT (Électrique)\"])}\n },\n \"Mountaineering\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alpinisme\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aviron\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Course\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Alpin)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Randonnée)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Raquettes\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Marche\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistiques\"])},\n \"TIME_FRAMES\": {\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mois\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"semaine\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"année\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous n'avez pas reçu les instructions ?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vérifiez vos courriels. Un nouveau courriel de confirmation a été envoyé à l'adresse électronique fournie.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous avez déjà un compte ?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Êtes-vous sûr·e de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe actuel\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Courriel\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisissez une adresse électronique valide.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisissez un mot de passe\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrer sur le nom d'utilisateur\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"masquer le mot de passe\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton invalide, veuillez demander une nouvelle réinitialisation de mot de passe.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langue\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se déconnecter\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"connecter\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nouveau mot de passe\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aucun utilisateur trouvé.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe oublié ?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"8 caractères minimum.\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialisation du mot de passe\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vérifiez vos courriels. Si vote adresse est dans notre base de données, vous recevrez un courriel avec un lien pour réinitialiser votre mot de passe.\"])},\n \"PASSWORD_STRENGTH\": {\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"moyenne\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bonne\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"robustesse du mot de passe\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"forte\"])},\n \"SUGGESTIONS\": {\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettez quelques lettres en majuscules, mais pas toutes.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajoutez des mots moins courants.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les années qui vous sont associées. (ex : date de naissance).\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Capitalisez mais pas seulement la première lettre.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les dates et les années qui vous sont associées. (ex : date ou année de naissance).\"])},\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les substitutions de lettres prévisibles comme \", \"@\", \" pour a.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utilisez des motifs de clavier plus longs et changez de sens de frappe plusieurs fois.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous pouvez créer des mots de passe forts sans utiliser de symboles, de chiffres ou de lettres majuscules.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si vous utilisez ce mot de passe ailleurs, vous devriez le modifier.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les dernières années.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les mots et les caractères répétés.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les orthographes inversées des mots courants.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les séquences de caractères courantes.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utilisez plusieurs mots, mais évitez les phrases courantes.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"faible\"])}\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Votre mot de passe a été mis à jour. Cliquez \", _interpolate(_list(0)), \" pour vous connecter.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour du compte\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Données relatives au dénivelé positif (records, total)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir au profil\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date de naissance\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Format d'affichage de la date\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier le profil\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier les préférences\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier les préférences des sports\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Veuillez vous \", _interpolate(_list(0)), \" pour changer de nouveau votre adresse électronique ou contacter l'administrateur\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Premier jour de la semaine\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prénom\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langue\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lieu\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lundi\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image de profil\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour de l'image de profil\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettre à jour l'image\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour du profil\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date d'inscription\"])},\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"action\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"couleur\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"désactivé par l'administrateur\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"actif\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"seuil de vitesse arrêtée\"])}\n },\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences des sports\"])},\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été modifié avec succès. Veuillez vérifier votre boîte de réception pour valider votre nouvelle adresse électronique.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été créé avec succès.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Un lien pour activer votre compte a été envoyé à l'adresse électronique fournie.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été modifié avec succès.\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dimanche\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"compte\"])},\n \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"apps\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"image\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"préférences\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profil\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fuseau horaire\"])},\n \"UNITS\": {\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système impérial (ft, mi, mph, °F)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unités pour les distances\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système métrique (m, km, m/s, °C)\"])}\n }\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, les inscriptions sont désactivées.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Envoyer à nouveau le courriel de confirmation de compte\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser votre mot de passe\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afficher le mot de passe\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le compte de cet utilisateur est inactif.\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom d'utilisateur\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"3 à 30 caractères requis, seuls les caractères alphanumériques et le caractère _ sont autorisés.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"photo de l'utilisateur\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter une séance\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analyse\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dénivelé positif\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse moyenne\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse moy.\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"revenir à la séance\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dénivelé négatif\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afficher les filtres\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distance\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durée\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier la séance\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fin\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"à partir de\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichier .gpx\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"masquer les filtres\"])},\n \"INVALID_ASCENT_OR_DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les 2 valeurs pour l'élévation doivent être renseignées et être supérieures ou égales à 0.\"])},\n \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La distance doit être supérieure à 0\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La durée doit être supérieure à 0 secondes\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séances récentes\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Charger les séances suivantes\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude max\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichiers max. \"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"taille max. \"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse max\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude min\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment suivant\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance suivante\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"données issues du fichier gpx, sans correction\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de répertoire\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de carte\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment suivant\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance suivante\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment précédent\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance précédente\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séances.\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment précédent\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance précédente\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse moy.\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Distance la + longue\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dénivelé positif le + élevé\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durée la + longue\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse max.\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nombre de caractères restants \"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"début\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Départ et arrivée\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"démarrer l'axe de l'altitude à 0\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"titre\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"jusqu'au\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durée totale\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajoutez votre première séance !\"])},\n \"WEATHER\": {\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ensoleillé\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit claire\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuageux\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"brouillard\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partiellement nuageux\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit partiellement nuageuse\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pluie\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige fondue\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"venteux\"])}\n },\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"humidité\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"température\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vent\"])},\n \"WIND_DIRECTIONS\": {\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSO\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SO\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OSO\"])}\n }\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sans fichier .gpx\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"avec un fichier .gpx\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"séance\"]), _normalize([\"séances\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date de la séance\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etes-vous sûr de vouloir supprimer cette séance ?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"archive .zip\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ou une archive .zip contenant des fichiers .gpx\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contatta l'amministratore\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee è un tracker self-hosted per attività outdoor.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Sotto licenza \", _interpolate(_list(0)), \" \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Codice sorgente\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Azione\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attiva account\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attivo\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Amministrazione\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiungi/rimuovi permessi, elimina account utente.\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicazione\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email di contatto dell'amministratore\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Numero massimo di files zip\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se settato a 0, non ci sono limiti per le registrazioni.\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Numero massimo di utenti attivi\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nessuna mail di contatto\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dimensione massima dei file caricabili (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configurazione applicazione\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dimensione massima dell'archivio zip (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ritorna ad amministrazione\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Sei sicuro di voler eliminare \", _interpolate(_list(0)), \" account? Tutti i dati verranno persi, quest'azione non può essere annullata.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Sei sicuro di voler resettare \", _interpolate(_list(0)), \" password?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email corrente\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elimina utente\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'invio di email è disabilitato.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attiva/Disattiva sports.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nuova email\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La password è stata reimpostata.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La registrazione è al momento disabilitata.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La registrazione è al momento abilitata.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset password\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attivo\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout esistono\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Immagine\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etichetta\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Amministrazione sport\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiorna configurazione applicazione (numero massimo di utenti registrati, dimensione massima dei files).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiorna email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"utente\"]), _normalize([\"utenti\"])])},\n \"USERS\": {\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"stato admin\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data di registrazione\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"stato account\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nome utente\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"numero di workout\"])}\n }\n },\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiungi permessi di amministratore\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rimuovi permessi di amministratore\"])}\n }\n },\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'indirizzo email è stato aggiornato.\"])}\n}","export default {\n \"ERROR\": {\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore di rete.\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore. Per favore riprova o contatta l'amminstratore.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Almeno un file nell'archivio zip supera il limite di dimensione, per favore controlla.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email: dev'essere inserita un'email valida.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore nella lettura del file gpx.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore nell'elaborazione del file gpx.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore nella lettura della configurazione.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore nell'aggiornamento della configurazione\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore, per favore riprova o contatta l'amministratore.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore, la registrazione è disabilitata.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File con estensione non permessa.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La dimensione del file è maggiore di quella massima permessa.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Credenziali errate.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"I dati inseriti non sono validi.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Token scaduto, per favore ripeti il log in.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Token scaduto, per favore ripeti il log in.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La nuova email dev'essere diversa dalla vecchia mail\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun file scelto.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun file scelto.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password: la password inserita e la conferma non combaciano.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Insersci un token di autenticazione valido.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Token scaduto. Per favore ripeti il log in.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mi dispiace, quell'username è già esistente.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Questo sport non esiste.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrato con successo.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Il numero di files nell'archivio supera il limite massimo permesso.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'utente non esiste.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dev'essere inserita un'email valida\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non puoi eliminare questo account, nessun'altro account ha permessi di amministratore.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non hai i permessi necessari.\"])}\n },\n \"PAGINATION\": {\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"avanti\"])},\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"precedente\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Re-invia email di conferma\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Autorizza\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Indietro\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Annulla\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resetta filtri\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elimina il mio account\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disattiva\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifica\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attiva\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtra\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registra\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invia\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"about\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Conferma\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contatto\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"giorno\"]), _normalize([\"giorni\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mostrato\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentazione\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"qui\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nascosto\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home\"])},\n \"SELECTS\": {\n \"ORDER\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dal più basso al più alto\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dal più alto al più basso\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ordina\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ordina per\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"per pagina\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Totale\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Questo mese\"])}\n}","export default {\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'applicazione ha riscontrato dei problemi.
                                                                                Per favore riprova più tardi o contatta l'amministratore.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pagina non trovata\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Workout non trovato\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Qualcosa è andato storto\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore. Per favore riprova o contatta l'amministratore.\"])}\n}","export default {\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiungi una nuova applicazione OAuth2\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Id\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Secret\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Descrizione applicazione\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Issue at\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nome applicazione\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL redirect\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scope\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di scrittura alla configurazioen dell'applicazione.\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di lettura a auth endpoints.\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di scrittura a auth endpoints.\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di lettura a users endpoints.\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di scrittura a usersendpoints.\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di lettura a workouts endpoints.\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di scrittura a workouts endpoints.\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL applicazione\"])}\n },\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicazioni OAuth2\"])},\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicazione creata. Sii certo di copiare il secret ora, non lo rivedrai più.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sei sicuro di voler eliminare quest'app?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"L'applicazione \", _interpolate(_list(0)), \" sta chiedendo:\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Autorizzi \", _interpolate(_list(0)), \" ad utilizzare il tuo account?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"copia nella clipboard\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elimina applicazione\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiungi applicazione\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicazione non trovata!\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nessuna applicazione\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nessuna descrizione\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rimuovi tutti i tokens\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sei sicuro di voler rimuovere tutti i token?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tutti i token esistenti associati sono stati rimossi.\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ciclismo (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ciclismo (Trasporto)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cicliscmo (Virtuale)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Escursioni\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking (Elettrica)\"])}\n },\n \"Mountaineering\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alpinismo\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Canottaggio\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Corsa\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sci (Alpino)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sci (Cross Country)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Racchette da neve\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sentieri\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Camminata\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistiche\"])},\n \"TIME_FRAMES\": {\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mese\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"settimana\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"anno\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non hai ricevuto istruzioni?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Controlla la tua email. Una nuova email di conferma è stata inviata all'indirizzo specificato.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hai già un account?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sei sicuro di voler eliminare il tuo account? Tutti i dati saranno eliminati, quest'azione non può essere annullata\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password corrente\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inserisci un indirizzo email valido.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inserisci una password\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtra per username\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nascondi password\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Token invalido, per favore richiedi un nuovo reset della password.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lingua\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Login\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logout\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"log in\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nuova password\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun utente trovato.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password dimenticata?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inserisci almeno 8 caratteri.\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset password\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Controlla la tua email. Se l'indirizzo inserito è nel nostro database, riceverai un'email con un link per resettare la tua password.\"])},\n \"PASSWORD_STRENGTH\": {\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"media\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"buona\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sicurezza password\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"forte\"])},\n \"SUGGESTIONS\": {\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inserisci qualche maiuscola.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiungi più parole che sono meno comuni.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita date che possono essere associate a te.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inserisci maiuscole oltre alla prima lettera.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita date che possono essere associate a te.\"])},\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita sostituzioni prevedibili, per esempio, \", \"@\", \" per la a.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Usa patterns più lunghi e cambia direzione di scrittura più volte.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Puoi creare password sicure senza utilizzare simboli, numeri, o maiuscole.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"È consigliabile cambiare questa password se è utilizzata per altro.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita date recenti.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita di ripetere lettere e parole.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita di scrivere parole al contrario.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita sequenze di caratteri comuni.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Usa più parole, ma evita frasi comuni.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bassa\"])}\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"La tua password è stata aggiornata. Clicca \", _interpolate(_list(0)), \" per effettuare il login.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tipo di account\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dati relativi alle salite (singoli, totale)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ritorna al profilo\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Data di nascita\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Formato data\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifica profilo\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifica preferenze\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifica preferenze sport\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Per favore \", _interpolate(_list(0)), \" per cambiare di nuovo la tua mail o contatta l'amministratore\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Primo giorno della settimana\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nome\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lingua\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cognome\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Posizione\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lunedì\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Foto\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Foto\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rimuovi foto\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiorna foto\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preferenze\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profilo\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Data di registrazione\"])},\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"azione\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"colore\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"disattivato dall'amministratore\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"attivo\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"etichetta\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limite minimo di velocità\"])}\n },\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preferenze sport\"])},\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Il tuo account è stato aggiornato con successo. Per favore controlla la tua email per confermare il tuo indirizzo email.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Il tuo account è stato creato con successo.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Un link per attivare il tuo account è stato inviato all'indirizzo specificato.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Il tuo account è stato aggiornato con successo.\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Domenica\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"account\"])},\n \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"apps\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"foto\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"preferenze\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profilo\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timezone\"])},\n \"UNITS\": {\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sistema imperiale (ft, mi, mph, °F)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unità per la distanza\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sistema metrico (m, km, m/s, °C)\"])}\n }\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registra\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mi dispiace, la registrazione è disabilitata.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Re-invia email di conferma dell'account\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resetta password\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mostra password\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Questo account è inattivo.\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Username\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sono richiesti da 3 a 30 caratteri, è permesso utilizzare solo caratteri alfanumerici ed il simbolo \\\"_\\\".\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"foto profilo\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiungi un workout\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analisi\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"salita\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"velocità media\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vel. media\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ritorna al workout\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"discesa\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mostra filtri\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distanza\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durata\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifica il workout\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"elevazione\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fine\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"file .gpx\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nascondi filtri\"])},\n \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La distanza dev'essere maggiore di 0\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La durata dev'essere maggiore di 0\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ultimi workout\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Carica più workout\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitudine massima\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"file massimi\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dimensione massima\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"velocità massima\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitudine minima\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun segmento successivo\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prossimo workout\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"note\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data dal file gpx, senza \\\"pulizia\\\"\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun file scelto\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nessuna cartella all'interno\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessuna mappa\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun segmento successivo\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun workout successivo\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessuna nota\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun segmento precedente\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun workout precedente\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun record.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun workout.\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pause\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segmento precedente\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Workout precedente\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vel. media\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Distanza più lunga\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Salita più alta\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durata più lunga\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vel. massima\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"caratteri rimanenti\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segmento\"]), _normalize([\"segmenti\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"velocità\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"inizio\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inizio e fine\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partenza asse elevazione a 0\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"titolo\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"a\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durata totale\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Carica file!\"])},\n \"WEATHER\": {\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cielo chiaro\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notte chiara\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuvoloso\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nebbia\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"parzialmente nuvoloso\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notte parzialmente nuvolosa\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pioggia\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nevischio\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neve\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vento\"])}\n },\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"umidità\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"temperatura\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vento\"])},\n \"WIND_DIRECTIONS\": {\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WSW\"])}\n }\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"senza file .gpx\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"con file .gpx\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"workout\"]), _normalize([\"workouts\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data workout\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sei sicuro di voler eliminare questo workout?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"file .zip\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"o file .zip contenente files .gpx\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contacteer uw administrator\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee is zelf-gehoste buitenshuis activiteiten tracker.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Onder \", _interpolate(_list(0)), \" licentie \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Broncode\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actie\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activeer account\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ingeschakeld\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Beheer\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Instellingen\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toevoegen/verwijderen van administrator rechten, verwijder gebruikersaccount.\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicatie\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administrator email voor contact\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. aantal bestanden in zip archief\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bij 0, geen limiet op registratie.\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. aantal actieve gebruikers\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geen contact email\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. grootte van bestanden voor upload (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicatie configureren\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. grootte van zip archief (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Terug naar beheer\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Weet u zeker dat u de account \", _interpolate(_list(0)), \" wilt wissen? Alle gegevens worden verwijderd, dit kan niet ongedaan gemaakt worden.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Weet u zeker dat u het wachtwoord voor \", _interpolate(_list(0)), \" wilt resetten?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Huidige email\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder gebruiker\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Emails verzenden is uitgeschakeld.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aan- of uitzetten van sporten.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nieuwe email\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Het wachtwoord werd gereset.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registratie is momenteel uitgeschakeld.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registratie is momenteel ingeschakeld.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset wachtwoord\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ingeschakeld\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trainingen aanwezig\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afbeelding\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Beheer sporten\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"De applicatie configureren (maximum aantal geregistreerde gebruikers, maximum bestandsgrootte).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"gebruiker\"]), _normalize([\"gebruikers\"])])},\n \"USERS\": {\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"admin status\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registratie datum\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account status\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gebruikersnaam\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aantal trainingen\"])}\n }\n },\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin rechten toevoegen\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder admin rechten\"])}\n }\n },\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Het emailadres werd bijgewerkt.\"])}\n}","export default {\n \"ERROR\": {\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Netwerk fout.\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout. Probeer opnieuw of contacteer de administrator.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ten minste 1 bestand in het zip archief is groter dan toegelaten, gelieve de bestanden te controleren.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email: een geldige email is vereist.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout bij het verwerken van het gpx bestand.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout bij verwerken van gpx.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout bij ophalen van configuratie.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout bij het updaten van de configuratie\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout, probeer opnieuw of contacteer de administrator.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout, registratie is uitgeschakeld.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestandsformaat niet toegelaten.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestandsgrootte is groter dan toegestaan.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ongeldige inloggegevens.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ingegeven data is ongeldig.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ongeldige token, log opnieuw in.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ongeldige token, log opnieuw in.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Het nieuwe email adres dient te verschillen van het oude\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen bestand opgegeven.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen bestand geselecteerd.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wachtwoord: het wachtwoord en de bevestiging komen niet overeen.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geef een geldig auth token.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signatuur verlopen. Log opnieuw in.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, deze gebruikersnaam is al in gebruik.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deze sport bestaat niet.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Succesvol geregistreerd.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Het aantal bestanden in het zip archief overschrijdt de limiet.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruiker bestaat niet.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Een geldige email is vereist voor admin contact informatie\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"U kunt uw account niet verwijderen, geen andere gebruiker heeft admin rechten.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"U hebt geen machtigingen.\"])}\n },\n \"PAGINATION\": {\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"volgende\"])},\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vorige\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Herzend bevestigings email\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toekennen\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Terug\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Annuleren\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder filters\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder mijn account\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uitzetten\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bewerken\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aanzetten\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inloggen\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nee\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registreer\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uploaden\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ja\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"over\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bevestiging\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contacteer\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"dag\"]), _normalize([\"dagen\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weergegeven\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentatie\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hier\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verborgen\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Startscherm\"])},\n \"SELECTS\": {\n \"ORDER\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"oplopend\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aflopend\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sorteer\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sorteer op\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"per pagina\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Totaal\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deze maand\"])}\n}","export default {\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Er heeft zich een onbekende fout voorgedaan.
                                                                                Probeer aub later opnieuw of contacteer de administrator.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pagina niet gevonden\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training niet gevonden\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Er ging iets mis\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout. Probeer opnieuw of contacteer de administrator.\"])}\n}","export default {\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nieuwe OAuth2 app toevoegen\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Id\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geheim\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App omschrijving\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Probleem bij\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Naam van de app\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Doorverwijs URL\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Omvang\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geeft toestemming tot aanpassen van de applicatie instellingen.\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat leestoegang toe aan auth endpoints.\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat schrijftoegang toe aan auth endpoints.\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat leestoegang toe aan users endpoints.\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat schrijftoegang toe aan users endpoints.\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat leestoegang toe aan workouts endpoints.\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat schrijftoegang toe aan workouts endpoints.\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App URL\"])}\n },\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth2 apps\"])},\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App succesvol aangemaakt. Kopieer zeker de geheime sleutel, deze zal later niet meer verschijnen.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weet u zeker dat u deze app wilt verwijderen?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"De app \", _interpolate(_list(0)), \" vraagt:\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Toegang geven aan \", _interpolate(_list(0)), \" tot uw gebruikersaccount?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"kopieer naar klembord\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder app\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voeg een app toe\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App niet gevonden!\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geen apps\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geen beschrijving\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder alle tokens\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weet u zeker dat u alle tokens wilt intrekken?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alle bestaande tokens werden ingetrokken.\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fietsen (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fietsen (Transport)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fietsen (Virtueel)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trektocht\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountainbiken\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountainbiken (Elektrisch)\"])}\n },\n \"Mountaineering\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bergbeklimmen\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Roeien\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lopen\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiën (Alpine)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiën (Cross Country)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sneeuwschoenen\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wandelen\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistieken\"])},\n \"TIME_FRAMES\": {\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"maand\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"week\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"jaar\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen instructies ontvangen?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Controleer uw email. Een nieuwe bevestigingsmail werd verzonden naar het opgegeven adres.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Beheer\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Al een account aangemaakt?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weet u zeker dat u uw account wilt verwijderen? Alle data wordt verwijderd, dit kan niet ongedaan worden\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Huidig wachtwoord\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geef een geldig email adres op.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geef een paswoord in\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter op gebruikersnaam\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"verberg wachtwoord\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ongeldig token, vraag een nieuwe wachtwoord reset aan.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taal\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inloggen\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uitloggen\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"inloggen\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nieuw wachtwoord\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen gebruikers gevonden.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wachtwoord\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wachtwoord vergeten?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tenminste 8 karakters vereist.\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wachtwoord reset\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Controleer uw inbox. Als uw email adres in onze database zit, hebt u een email ontvangen om uw wachtwoord te resetten.\"])},\n \"PASSWORD_STRENGTH\": {\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gemiddeld\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"goed\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wachtwoord sterkte\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sterk\"])},\n \"SUGGESTIONS\": {\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruik enkele hoofdletters.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voeg meer niet gangbare woorden toe.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd jaartallen met een persoonlijke betekenis.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruik niet enkel voor de eerste letter een hoofdletter.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd persoonlijke gegevens en jaartallen.\"])},\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd voorspelbare vervangingen, zoals \", \"@\", \" voor de letter a.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruik langere patronen en verander de richting van typen meerdere malen.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"U kan sterke wachtwoorden maken zonder gebruik van symbolen, nummers, of hoofdletters.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Als u dit wachtwoord ergens anders gebruikt zou u het beter veranderen.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd recente jaartallen.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd opeenvolgende woorden en karakters.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd gangbare woorden die achterstevoren geschreven zijn.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd voorspelbare opeenvolgingen.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruik verschillende woorden, maar vermijd vaak gebruikte zinnen.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zwak\"])}\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Uw wachtwoord werd aangepast. Klik \", _interpolate(_list(0)), \" om in te loggen.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account aanpassen\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hoogte gerelateerde data (opnames, totaal)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Terug naar profiel\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geboortedatum\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weergaveformaat datum\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profiel aanpassen\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voorkeuren wijzigen\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sport voorkeuren wijzigen\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Gelieve \", _interpolate(_list(0)), \" om uw email adres opnieuw te wijzigen of contacteer uw administrator\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eerste dag van de week\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voornaam\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taal\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Achternaam\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Locatie\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maandag\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afbeelding\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afbeelding aanpassen\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afbeelding verwijderen\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afbeelding veranderen\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voorkeuren aanpassen\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profiel aanpassen\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datum registratie\"])},\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"actie\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"kleur\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"uitgeschakeld door admin\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"actief\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"snelheidsgrens voor stilstand\"])}\n },\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sport voorkeuren aanpassen\"])},\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uw account werd succesvol bijgewerkt. Controleer uw inbox om uw nieuw email adres te bevestigen.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uw account werd succesvol aangemaakt.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Een link om uw account te activeren werd doorgestuurd naar opgegeven email adres.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uw account werd succesvol bijgewerkt.\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zondag\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"account\"])},\n \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"apps\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afbeelding\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"voorkeuren\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profiel\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sporten\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tijdzone\"])},\n \"UNITS\": {\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperialistisch systeem (ft, mi, mph, °F)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eenheid voor afstand\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metrisch systeem (m, km, m/s, °C)\"])}\n }\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registreren\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, registreren is uitgeschakeld.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Opnieuw zenden van account bevestigingsmail\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset uw wachtwoord\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"toon wachtwoord\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deze account is niet actief.\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruikersnaam\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"3 tot 30 karakters vereist, enkel alfanumerieke karakters en het underscore karakter \\\"_\\\" zijn toegestaan.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gebruikersafbeelding\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training toevoegen\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analyse\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geklommen\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gemiddelde snelheid\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gem. snelheid\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Terug naar training\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"datum\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gedaald\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"toon filters\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afstand\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"duur\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training aanpassen\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hoogte\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"einde\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"van\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".gpx bestand\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"verberg filters\"])},\n \"INVALID_ASCENT_OR_DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Beide waarden moeten opgegeven worden en dienen groter dan of gelijk aan 0 te zijn.\"])},\n \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"De afstand moet groter zijn dan 0\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"De duur moet langer zijn dan 0 seconden\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Laatste trainingen\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toon meer trainingen\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. hoogte\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. aantal bestanden\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. grootte\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. snelheid\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"min. hoogte\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen volgend segment\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Volgende training\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notities\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data vanuit gpx, zonder op te schonen\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen bestand opgegeven\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geen map aanwezig\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen kaart\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen volgend segment\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen volgende training\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen notities\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen vorig segment\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen vorige training\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen trainingen.\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauzes\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorig segment\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorige training\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gem. snelheid\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langste afstand\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hoogst geklommen\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langste duur\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. snelheid\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"resterende karakters\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segmenten\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"snelheid\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sporten\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start en aankomst\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zet hoogte-as vast op 0\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"titel\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aan\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"totale duur\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eén uploaden!\"])},\n \"WEATHER\": {\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"heldere dag\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"heldere nacht\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bewolkt\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mist\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gedeeltelijk bewolkte dag\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gedeeltelijk bewolkte nacht\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"regen\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"natte sneeuw\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sneeuw\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])}\n },\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vochtigheid\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"temperatuur\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])},\n \"WIND_DIRECTIONS\": {\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OZO\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Z\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ZO\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ZZO\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ZZW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ZW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WZW\"])}\n }\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zonder .gpx bestand\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"met .gpx bestand\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"training\"]), _normalize([\"trainingen\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"datum training\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weet u zeker dat u deze training wilt verwijderen?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".zip bestand\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"of .zip archief met .gpx bestanden\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","/* eslint-disable no-console */\n\nimport { register } from 'register-service-worker'\n\nif (process.env.NODE_ENV === 'production') {\n register(`${process.env.BASE_URL}service-worker.js`, {\n ready() {\n console.log(\n 'App is being served from cache by a service worker.\\n' +\n 'For more details, visit https://goo.gl/AFskqB'\n )\n },\n registered() {\n console.log('Service worker has been registered.')\n },\n cached() {\n console.log('Content has been cached for offline use.')\n },\n updatefound() {\n console.log('New content is downloading.')\n },\n updated() {\n console.log('New content is available; please refresh.')\n },\n offline() {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n )\n },\n error(error) {\n console.error('Error during service worker registration:', error)\n },\n })\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2c73279e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"footer\" }\nconst _hoisted_2 = { class: \"footer-items\" }\nconst _hoisted_3 = { class: \"footer-item\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"strong\", null, \"FitTrackee\", -1))\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"footer-item bullet\" }, \"•\", -1))\nconst _hoisted_6 = { class: \"footer-item\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"footer-item bullet\"\n}\nconst _hoisted_8 = {\n key: 1,\n class: \"footer-item\"\n}\nconst _hoisted_9 = [\"href\"]\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"footer-item bullet\" }, \"•\", -1))\nconst _hoisted_11 = { class: \"footer-item\" }\nconst _hoisted_12 = {\n href: \"https://samr1.github.io/FitTrackee/\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}\n\nimport { toRefs } from 'vue'\n\n interface Props {\n version: string\n adminContact?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Footer',\n props: {\n version: null,\n adminContact: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n version: string\n adminContact?: string\n };\n\n \n\n const { adminContact, version } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _createTextVNode(\" v\" + _toDisplayString(_unref(version)), 1)\n ]),\n _hoisted_5,\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_router_link, { to: \"/about\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('common.ABOUT')), 1)\n ]),\n _: 1\n })\n ]),\n (_unref(adminContact))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, \"•\"))\n : _createCommentVNode(\"\", true),\n (_unref(adminContact))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"a\", {\n href: `mailto:${_unref(adminContact)}`\n }, _toDisplayString(_ctx.$t('common.CONTACT')), 9, _hoisted_9)\n ]))\n : _createCommentVNode(\"\", true),\n _hoisted_10,\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"a\", _hoisted_12, _toDisplayString(_ctx.$t('common.DOCUMENTATION')), 1)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./Footer.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Footer.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Footer.vue?vue&type=style&index=0&id=2c73279e&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2c73279e\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-ab6e62ae\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"nav\" }\nconst _hoisted_2 = { class: \"nav-container\" }\nconst _hoisted_3 = { class: \"nav-app-name\" }\nconst _hoisted_4 = { class: \"nav-items-close\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-name\" }, \"FitTrackee\", -1))\nconst _hoisted_6 = {\n key: 0,\n class: \"nav-items-group\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"nav-item nav-separator\" }, null, -1))\nconst _hoisted_8 = { class: \"nav-items-user-menu\" }\nconst _hoisted_9 = {\n key: 0,\n class: \"nav-items-group\"\n}\nconst _hoisted_10 = { class: \"nav-item nav-profile-img\" }\nconst _hoisted_11 = {\n key: 1,\n class: \"nav-items-group\"\n}\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa fa-language\" }, null, -1))\n\nimport { ComputedRef, computed, ref, capitalize } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IDropdownOption } from '@/types/forms'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { availableLanguages } from '@/utils/locales'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'NavBar',\n emits: ['menuInteraction'],\n setup(__props, { emit }) {\n\n \n\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const isAuthenticated: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]\n )\n const language: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const isMenuOpen = ref(false)\n\n function openMenu() {\n isMenuOpen.value = true\n emit('menuInteraction', true)\n }\n function closeMenu() {\n isMenuOpen.value = false\n emit('menuInteraction', false)\n }\n function updateLanguage(option: IDropdownOption) {\n store.dispatch(\n ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE,\n option.value.toString()\n )\n }\n function logout() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.LOGOUT)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Dropdown = _resolveComponent(\"Dropdown\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", {\n class: \"nav-item app-name\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/')))\n }, \" FitTrackee \")\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"nav-icon-open\", { 'menu-open': isMenuOpen.value }])\n }, [\n _createElementVNode(\"i\", {\n class: \"fa fa-bars hamburger-icon\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (openMenu()))\n })\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"nav-items\", { 'menu-open': isMenuOpen.value }])\n }, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa fa-close close-icon nav-item\", { 'menu-closed': !isMenuOpen.value }]),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (closeMenu()))\n }, null, 2)\n ]),\n _createElementVNode(\"div\", {\n class: \"nav-items-app-menu\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (closeMenu()))\n }, [\n (_unref(isAuthenticated))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('dashboard.DASHBOARD')), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/workouts\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 2))), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/statistics\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('statistics.STATISTICS')), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/workouts/add\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.ADD_WORKOUT')), 1)\n ]),\n _: 1\n }),\n (_unref(isAuthenticated) && _unref(authUser).admin)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n class: \"nav-item\",\n to: \"/admin\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.ADMIN')), 1)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n _hoisted_7\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n (_unref(isAuthenticated))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createVNode(UserPicture, { user: _unref(authUser) }, null, 8, [\"user\"])\n ]),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/profile\",\n onClick: closeMenu\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(authUser).username), 1)\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", {\n class: \"nav-item nav-link\",\n onClick: logout\n }, _toDisplayString(_ctx.$t('user.LOGOUT')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/login\",\n onClick: closeMenu\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.LOGIN')), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/register\",\n onClick: closeMenu\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.REGISTER')), 1)\n ]),\n _: 1\n })\n ])),\n (_unref(availableLanguages) && _unref(language))\n ? (_openBlock(), _createBlock(_component_Dropdown, {\n key: 2,\n class: \"nav-item\",\n options: _unref(availableLanguages),\n selected: _unref(language),\n onSelected: updateLanguage\n }, {\n default: _withCtx(() => [\n _hoisted_12\n ]),\n _: 1\n }, 8, [\"options\", \"selected\"]))\n : _createCommentVNode(\"\", true)\n ])\n ], 2)\n ])\n ]))\n}\n}\n\n})","import script from \"./NavBar.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NavBar.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./NavBar.vue?vue&type=style&index=0&id=ab6e62ae&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-ab6e62ae\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-47759238\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"no-config\" }\nconst _hoisted_2 = { class: \"error-page\" }\nconst _hoisted_3 = { class: \"error-img\" }\nconst _hoisted_4 = [\"innerHTML\"]\n\nimport ErrorImg from '@/components/Common/Images/ErrorImg.vue'\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'NoConfig',\n setup(__props) {\n\n \nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(ErrorImg)\n ]),\n _createElementVNode(\"p\", {\n class: \"error-message\",\n innerHTML: _ctx.$t('error.APP_ERROR')\n }, null, 8, _hoisted_4)\n ])\n ]))\n}\n}\n\n})","import script from \"./NoConfig.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./NoConfig.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./NoConfig.vue?vue&type=style&index=0&id=47759238&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-47759238\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, createVNode as _createVNode, unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, normalizeClass as _normalizeClass, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"div\", { id: \"top\" }, null, -1)\nconst _hoisted_2 = {\n key: 0,\n class: \"app-container\"\n}\nconst _hoisted_3 = { class: \"app-loading\" }\nconst _hoisted_4 = { class: \"container scroll\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-up\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_6 = [\n _hoisted_5\n]\n\nimport { ComputedRef, computed, ref, onBeforeMount, onMounted } from 'vue'\n\n import Footer from '@/components/Footer.vue'\n import NavBar from '@/components/NavBar.vue'\n import NoConfig from '@/components/NoConfig.vue'\n import { ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { useStore } from '@/use/useStore'\n import { localeFromLanguage } from '@/utils/locales'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'App',\n setup(__props) {\n\n const store = useStore()\n\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const appLoading: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_LOADING]\n )\n const hideScrollBar = ref(false)\n const displayScrollButton = ref(false)\n\n onBeforeMount(() => {\n initLanguage()\n store.dispatch(ROOT_STORE.ACTIONS.GET_APPLICATION_CONFIG)\n })\n onMounted(() => scroll())\n\n function updateHideScrollBar(isMenuOpen: boolean) {\n hideScrollBar.value = isMenuOpen\n }\n function isScrolledToBottom(element: Element): boolean {\n return (\n element.getBoundingClientRect().top < window.innerHeight &&\n element.getBoundingClientRect().bottom >= 0\n )\n }\n function scroll() {\n window.onscroll = () => {\n const bottom = document.querySelector('#bottom')\n displayScrollButton.value = bottom !== null && isScrolledToBottom(bottom)\n }\n }\n function scrollToTop() {\n window.scrollTo({\n top: 0,\n behavior: 'smooth',\n })\n setTimeout(() => {\n displayScrollButton.value = false\n }, 300)\n }\n function initLanguage() {\n let language = 'en'\n try {\n const navigatorLanguage = navigator.language.split('-')[0]\n if (navigatorLanguage in localeFromLanguage) {\n language = navigatorLanguage\n }\n } catch (e) {\n language = 'en'\n }\n store.dispatch(ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE, language)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Loader = _resolveComponent(\"Loader\")!\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _hoisted_1,\n _createVNode(NavBar, { onMenuInteraction: updateHideScrollBar }),\n (_unref(appLoading))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_Loader)\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: _normalizeClass([\"app-container\", { 'hide-scroll': hideScrollBar.value }])\n }, [\n (_unref(appConfig))\n ? (_openBlock(), _createBlock(_component_router_view, { key: 0 }))\n : (_openBlock(), _createBlock(NoConfig, { key: 1 }))\n ], 2)),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"scroll-button\", { 'display-button': displayScrollButton.value }]),\n onClick: scrollToTop\n }, _hoisted_6, 2)\n ]),\n (_unref(appConfig))\n ? (_openBlock(), _createBlock(Footer, {\n key: 2,\n version: _unref(appConfig) ? _unref(appConfig).version : '',\n adminContact: _unref(appConfig).admin_contact\n }, null, 8, [\"version\", \"adminContact\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","import script from \"./App.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./App.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=2930d5e0&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-69d7e4ff\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"alert-message\" }\nconst _hoisted_2 = [\"innerHTML\"]\n\nimport { toRefs } from 'vue'\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AlertMessage',\n props: {\n message: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n message: string\n };\n\n \n const { message } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n innerHTML: _ctx.$t(_unref(message))\n }, null, 8, _hoisted_2)\n ]))\n}\n}\n\n})","import script from \"./AlertMessage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AlertMessage.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AlertMessage.vue?vue&type=style&index=0&id=69d7e4ff&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-69d7e4ff\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { vModelText as _vModelText, createElementVNode as _createElementVNode, withDirectives as _withDirectives, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-8cf5cc64\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"custom-textarea\" }\nconst _hoisted_2 = [\"id\", \"name\", \"maxLenght\", \"disabled\"]\nconst _hoisted_3 = { class: \"remaining-chars\" }\n\nimport { ref, watch, withDefaults } from 'vue'\n\n interface Props {\n name: string\n charLimit?: number\n disabled?: boolean\n input?: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CustomTextArea',\n props: {\n name: null,\n charLimit: { default: 500 },\n disabled: { type: Boolean, default: false },\n input: { default: '' }\n },\n emits: ['updateValue'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { name: string, charLimit: number, disabled: boolean, input: string | null };\n\n \n\n \n\n const text = ref('')\n\n function updateText(event: Event & { target: HTMLInputElement }) {\n emit('updateValue', event.target.value)\n }\n\n watch(\n () => props.input,\n (value) => {\n text.value = value === null ? '' : value\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _withDirectives(_createElementVNode(\"textarea\", {\n id: __props.name,\n name: __props.name,\n maxLenght: __props.charLimit,\n disabled: __props.disabled,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((text).value = $event)),\n onInput: updateText\n }, null, 40, _hoisted_2), [\n [_vModelText, text.value]\n ]),\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_ctx.$t('workouts.REMAINING_CHARS')) + \": \" + _toDisplayString(text.value.length) + \"/\" + _toDisplayString(__props.charLimit), 1)\n ]))\n}\n}\n\n})","import script from \"./CustomTextArea.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CustomTextArea.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CustomTextArea.vue?vue&type=style&index=0&id=8cf5cc64&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-8cf5cc64\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, Fragment as _Fragment } from \"vue\"\n\nimport { ComputedRef, computed, toRefs, withDefaults } from 'vue'\n\n import { TUnit } from '@/types/units'\n import { units, convertDistance } from '@/utils/units'\n\n interface Props {\n distance: number\n unitFrom: TUnit\n useImperialUnits: boolean\n digits?: number\n displayUnit?: boolean\n speed?: boolean\n strong?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Distance',\n props: {\n distance: null,\n unitFrom: null,\n useImperialUnits: { type: Boolean },\n digits: { default: 2 },\n displayUnit: { type: Boolean, default: true },\n speed: { type: Boolean, default: false },\n strong: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { distance: number, unitFrom: TUnit, useImperialUnits: boolean, digits: number, displayUnit: boolean, speed: boolean, strong: boolean };\n\n \n\n const {\n digits,\n displayUnit,\n distance,\n speed,\n strong,\n unitFrom,\n useImperialUnits,\n } = toRefs(props)\n const unitTo: ComputedRef = computed(() =>\n useImperialUnits.value\n ? units[unitFrom.value].defaultTarget\n : unitFrom.value\n )\n const convertedDistance = computed(() =>\n useImperialUnits.value\n ? convertDistance(\n distance.value,\n unitFrom.value,\n unitTo.value,\n digits.value\n )\n : parseFloat(distance.value.toFixed(digits.value))\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"distance\", { strong: _unref(strong) }])\n }, _toDisplayString(_unref(convertedDistance)), 3),\n _createTextVNode(\" \" + _toDisplayString(' ') + \" \"),\n (_unref(displayUnit))\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: _normalizeClass([\"unit\", { strong: _unref(strong) }])\n }, _toDisplayString(_unref(unitTo)) + _toDisplayString(_unref(speed) ? '/h' : ''), 3))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","import script from \"./Distance.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Distance.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Distance.vue?vue&type=style&index=0&id=f46ff1d6&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f46ff1d6\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-9590c0e6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"dropdown-wrapper\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"dropdown-list\"\n}\nconst _hoisted_3 = [\"onClick\"]\n\nimport { ref, watch } from 'vue'\n import { useRoute } from 'vue-router'\n\n import { IDropdownOption, TDropdownOptions } from '@/types/forms'\n interface Props {\n options: TDropdownOptions\n selected: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Dropdown',\n props: {\n options: null,\n selected: null\n },\n emits: {\n selected: (option: IDropdownOption) => option,\n },\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n options: TDropdownOptions\n selected: string\n };\n\n \n\n \n\n const route = useRoute()\n const isOpen = ref(false)\n const dropdownOptions = props.options.map((option) => option)\n\n function toggleDropdown() {\n isOpen.value = !isOpen.value\n }\n function updateSelected(option: IDropdownOption) {\n emit('selected', option)\n isOpen.value = false\n }\n\n watch(\n () => route.path,\n () => (isOpen.value = false)\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"dropdown-selected\",\n onClick: toggleDropdown\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ]),\n (isOpen.value)\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(dropdownOptions), (option, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n class: _normalizeClass([\"dropdown-item\", { selected: option.value === __props.selected }]),\n key: index,\n onClick: ($event: any) => (updateSelected(option))\n }, _toDisplayString(option.label), 11, _hoisted_3))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./Dropdown.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Dropdown.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Dropdown.vue?vue&type=style&index=0&id=9590c0e6&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-9590c0e6\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2659a79a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"error-message\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { key: 1 }\n\nimport { toRefs } from 'vue'\n\n interface Props {\n message: string | string[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'ErrorMessage',\n props: {\n message: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n message: string | string[]\n };\n\n \n const { message } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (Array.isArray(_unref(message)))\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(message), (subMessage, index) => {\n return (_openBlock(), _createElementBlock(\"li\", { key: index }, _toDisplayString(_ctx.$t(subMessage)), 1))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.$t(_unref(message))), 1))\n ]))\n}\n}\n\n})","import script from \"./ErrorMessage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ErrorMessage.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ErrorMessage.vue?vue&type=style&index=0&id=2659a79a&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2659a79a\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./CyclingSport.vue?vue&type=template&id=be8023a2\"\nimport script from \"./CyclingSport.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingSport.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./CyclingTransport.vue?vue&type=template&id=97af5148\"\nimport script from \"./CyclingTransport.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingTransport.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./CyclingVirtual.vue?vue&type=template&id=ec8f7bb6\"\nimport script from \"./CyclingVirtual.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingVirtual.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Hiking.vue?vue&type=template&id=40903dc4\"\nimport script from \"./Hiking.vue?vue&type=script&lang=js\"\nexport * from \"./Hiking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./MountainBiking.vue?vue&type=template&id=5bdbc6e8\"\nimport script from \"./MountainBiking.vue?vue&type=script&lang=js\"\nexport * from \"./MountainBiking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./MountainBikingElectric.vue?vue&type=template&id=21e72aec\"\nimport script from \"./MountainBikingElectric.vue?vue&type=script&lang=js\"\nexport * from \"./MountainBikingElectric.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Mountaineering.vue?vue&type=template&id=15731a2a\"\nimport script from \"./Mountaineering.vue?vue&type=script&lang=js\"\nexport * from \"./Mountaineering.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Rowing.vue?vue&type=template&id=31ae2dd5\"\nimport script from \"./Rowing.vue?vue&type=script&lang=js\"\nexport * from \"./Rowing.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Running.vue?vue&type=template&id=4d47a4fe\"\nimport script from \"./Running.vue?vue&type=script&lang=js\"\nexport * from \"./Running.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./SkiingAlpine.vue?vue&type=template&id=3ebf3bca\"\nimport script from \"./SkiingAlpine.vue?vue&type=script&lang=js\"\nexport * from \"./SkiingAlpine.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./SkiingCrossCountry.vue?vue&type=template&id=1561bbe6\"\nimport script from \"./SkiingCrossCountry.vue?vue&type=script&lang=js\"\nexport * from \"./SkiingCrossCountry.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Snowshoes.vue?vue&type=template&id=67df2761\"\nimport script from \"./Snowshoes.vue?vue&type=script&lang=js\"\nexport * from \"./Snowshoes.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Trail.vue?vue&type=template&id=32a14156\"\nimport script from \"./Trail.vue?vue&type=script&lang=js\"\nexport * from \"./Trail.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Walking.vue?vue&type=template&id=2ed4f5f4\"\nimport script from \"./Walking.vue?vue&type=script&lang=js\"\nexport * from \"./Walking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"title\"]\n\nimport { inject, toRefs, withDefaults } from 'vue'\n\n import CyclingSport from '@/components/Common/Images/SportImage/CyclingSport.vue'\n import CyclingTransport from '@/components/Common/Images/SportImage/CyclingTransport.vue'\n import CyclingVirtual from '@/components/Common/Images/SportImage/CyclingVirtual.vue'\n import Hiking from '@/components/Common/Images/SportImage/Hiking.vue'\n import MountainBiking from '@/components/Common/Images/SportImage/MountainBiking.vue'\n import MountainBikingElectric from '@/components/Common/Images/SportImage/MountainBikingElectric.vue'\n import Mountaineering from '@/components/Common/Images/SportImage/Mountaineering.vue'\n import Rowing from '@/components/Common/Images/SportImage/Rowing.vue'\n import Running from '@/components/Common/Images/SportImage/Running.vue'\n import SkiingAlpine from '@/components/Common/Images/SportImage/SkiingAlpine.vue'\n import SkiingCrossCountry from '@/components/Common/Images/SportImage/SkiingCrossCountry.vue'\n import Snowshoes from '@/components/Common/Images/SportImage/Snowshoes.vue'\n import Trail from '@/components/Common/Images/SportImage/Trail.vue'\n import Walking from '@/components/Common/Images/SportImage/Walking.vue'\n\n interface Props {\n sportLabel: string\n color: string | null\n title?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n sportLabel: null,\n color: null,\n title: { default: '' }\n },\n setup(__props: any) {\n\nconst props = __props as { sportLabel: string, color: string | null, title: string };\n\n \n\n const { color, sportLabel, title } = toRefs(props)\n const sportColors = inject('sportColors')\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"sport-img\",\n style: _normalizeStyle({ fill: _unref(color) ? _unref(color) : _unref(sportColors)[_unref(sportLabel)] }),\n title: _unref(title) ? _unref(title) : _ctx.$t(`sports.${_unref(sportLabel)}.LABEL`)\n }, [\n (_unref(sportLabel) === 'Cycling (Sport)')\n ? (_openBlock(), _createBlock(CyclingSport, { key: 0 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Cycling (Transport)')\n ? (_openBlock(), _createBlock(CyclingTransport, { key: 1 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Cycling (Virtual)')\n ? (_openBlock(), _createBlock(CyclingVirtual, { key: 2 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Hiking')\n ? (_openBlock(), _createBlock(Hiking, { key: 3 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountain Biking')\n ? (_openBlock(), _createBlock(MountainBiking, { key: 4 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountain Biking (Electric)')\n ? (_openBlock(), _createBlock(MountainBikingElectric, { key: 5 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountaineering')\n ? (_openBlock(), _createBlock(Mountaineering, { key: 6 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Rowing')\n ? (_openBlock(), _createBlock(Rowing, { key: 7 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Running')\n ? (_openBlock(), _createBlock(Running, { key: 8 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Alpine)')\n ? (_openBlock(), _createBlock(SkiingAlpine, { key: 9 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Cross Country)')\n ? (_openBlock(), _createBlock(SkiingCrossCountry, { key: 10 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Snowshoes')\n ? (_openBlock(), _createBlock(Snowshoes, { key: 11 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Trail')\n ? (_openBlock(), _createBlock(Trail, { key: 12 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Walking')\n ? (_openBlock(), _createBlock(Walking, { key: 13 }))\n : _createCommentVNode(\"\", true)\n ], 12, _hoisted_1))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n","import { render } from \"./Loader.vue?vue&type=template&id=4c9921ee&scoped=true\"\nconst script = {}\n\nimport \"./Loader.vue?vue&type=style&index=0&id=4c9921ee&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4c9921ee\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-e8fcfaba\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"modal\" }\nconst _hoisted_2 = { class: \"custom-modal\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"modal-message\"\n}\nconst _hoisted_4 = {\n key: 1,\n class: \"modal-message\"\n}\nconst _hoisted_5 = { class: \"modal-buttons\" }\n\nimport { ComputedRef, computed, toRefs, withDefaults, onUnmounted } from 'vue'\n\n import { ROOT_STORE } from '@/store/constants'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n title: string\n message: string\n strongMessage?: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Modal',\n props: {\n title: null,\n message: null,\n strongMessage: { default: () => null }\n },\n emits: ['cancelAction', 'confirmAction'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { title: string, message: string, strongMessage: string | null };\n\n \n\n \n\n const store = useStore()\n\n const { title, message, strongMessage } = toRefs(props)\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n onUnmounted(() => store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES))\n\nreturn (_ctx: any,_cache: any) => {\n const _component_i18n_t = _resolveComponent(\"i18n-t\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(title)), 1)\n ]),\n content: _withCtx(() => [\n (_unref(strongMessage))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createVNode(_component_i18n_t, { keypath: _unref(message) }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString(_unref(strongMessage)), 1)\n ]),\n _: 1\n }, 8, [\"keypath\"])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, _toDisplayString(_unref(message)), 1)),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 2,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_5, [\n (!_unref(errorMessages))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"confirm\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (emit('confirmAction')))\n }, _toDisplayString(_ctx.$t('buttons.YES')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (emit('cancelAction')))\n }, _toDisplayString(_ctx.$t(`buttons.${_unref(errorMessages) ? 'CANCEL' : 'NO'}`)), 1)\n ])\n ]),\n _: 1\n })\n ])\n ]))\n}\n}\n\n})","import script from \"./Modal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Modal.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Modal.vue?vue&type=style&index=0&id=e8fcfaba&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-e8fcfaba\"]])\n\nexport default __exports__","import AlertMessage from '@/components/Common/AlertMessage.vue'\nimport Card from '@/components/Common/Card.vue'\nimport CustomTextArea from '@/components/Common/CustomTextArea.vue'\nimport Distance from '@/components/Common/Distance.vue'\nimport Dropdown from '@/components/Common/Dropdown.vue'\nimport ErrorMessage from '@/components/Common/ErrorMessage.vue'\nimport SportImage from '@/components/Common/Images/SportImage/index.vue'\nimport Loader from '@/components/Common/Loader.vue'\nimport Modal from '@/components/Common/Modal.vue'\n\nexport const customComponents = [\n { target: AlertMessage, name: 'AlertMessage' },\n { target: Card, name: 'Card' },\n { target: CustomTextArea, name: 'CustomTextArea' },\n { target: Distance, name: 'Distance' },\n { target: Dropdown, name: 'Dropdown' },\n { target: ErrorMessage, name: 'ErrorMessage' },\n { target: Loader, name: 'Loader' },\n { target: Modal, name: 'Modal' },\n { target: SportImage, name: 'SportImage' },\n]\n","import { Directive, DirectiveBinding } from 'vue'\n\ninterface ClickOutsideHTMLElement extends HTMLElement {\n clickOutsideEvent?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport const clickOutsideDirective: Directive = {\n mounted: (\n element: ClickOutsideHTMLElement,\n binding: DirectiveBinding\n ): void => {\n element.clickOutsideEvent = function (event) {\n if (!(element === event.target || element.contains(event.target))) {\n binding.value(event)\n }\n }\n document.body.addEventListener('click', element.clickOutsideEvent)\n document.body.addEventListener('touchstart', element.clickOutsideEvent)\n },\n unmounted: function (element: ClickOutsideHTMLElement): void {\n if (element.clickOutsideEvent) {\n document.body.removeEventListener('click', element.clickOutsideEvent)\n document.body.removeEventListener('touchstart', element.clickOutsideEvent)\n element.clickOutsideEvent = undefined\n }\n },\n}\n","import {\n Chart,\n BarElement,\n LineElement,\n PointElement,\n Legend,\n Title,\n Tooltip,\n Filler,\n BarController,\n CategoryScale,\n LineController,\n LinearScale,\n} from 'chart.js'\nimport ChartDataLabels from 'chartjs-plugin-datalabels'\nimport { createApp } from 'vue'\nimport VueFullscreen from 'vue-fullscreen'\n\nimport './registerServiceWorker'\nimport App from './App.vue'\nimport i18n from './i18n'\nimport router from './router'\nimport store from './store'\n\nimport { customComponents } from '@/custom-components'\nimport { clickOutsideDirective } from '@/directives'\nimport { sportColors } from '@/utils/sports'\n\nChart.register(\n BarElement,\n LineElement,\n PointElement,\n Legend,\n Title,\n Tooltip,\n Filler,\n BarController,\n CategoryScale,\n LineController,\n LinearScale,\n ChartDataLabels\n)\n\nconst app = createApp(App)\n .provide('sportColors', sportColors)\n .use(i18n)\n .use(store)\n .use(router)\n .use(VueFullscreen, { name: 'VFullscreen' })\n .directive('click-outside', clickOutsideDirective)\n\ncustomComponents.forEach((component) => {\n app.component(component.name, component.target)\n})\n\napp.mount('#app')\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, vModelText as _vModelText, withDirectives as _withDirectives, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, withModifiers as _withModifiers, withCtx as _withCtx, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-24ec93e2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-app\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = [\"onSubmit\"]\nconst _hoisted_3 = { for: \"admin_contact\" }\nconst _hoisted_4 = [\"value\"]\nconst _hoisted_5 = [\"disabled\"]\nconst _hoisted_6 = { for: \"max_users\" }\nconst _hoisted_7 = [\"disabled\"]\nconst _hoisted_8 = { class: \"user-limit-help\" }\nconst _hoisted_9 = { class: \"info-box\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = { for: \"max_single_file_size\" }\nconst _hoisted_12 = [\"disabled\"]\nconst _hoisted_13 = { for: \"max_zip_file_size\" }\nconst _hoisted_14 = [\"disabled\"]\nconst _hoisted_15 = { for: \"gpx_limit_import\" }\nconst _hoisted_16 = [\"disabled\"]\nconst _hoisted_17 = {\n key: 1,\n class: \"form-buttons\"\n}\nconst _hoisted_18 = {\n class: \"confirm\",\n type: \"submit\"\n}\nconst _hoisted_19 = [\"onClick\"]\nconst _hoisted_20 = {\n key: 2,\n class: \"form-buttons\"\n}\n\nimport {\n ComputedRef,\n computed,\n reactive,\n withDefaults,\n onBeforeMount,\n toRefs,\n } from 'vue'\n import { useRouter } from 'vue-router'\n\n import { ROOT_STORE } from '@/store/constants'\n import { TAppConfig, TAppConfigForm } from '@/types/application'\n import { useStore } from '@/use/useStore'\n import { getFileSizeInMB } from '@/utils/files'\n\n interface Props {\n appConfig: TAppConfig\n edition?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminApplication',\n props: {\n appConfig: null,\n edition: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { appConfig: TAppConfig, edition: boolean };\n\n \n const { edition } = toRefs(props)\n\n const store = useStore()\n const router = useRouter()\n\n const appData: TAppConfigForm = reactive({\n admin_contact: '',\n max_users: 0,\n max_single_file_size: 0,\n max_zip_file_size: 0,\n gpx_limit_import: 0,\n })\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onBeforeMount(() => {\n if (props.appConfig) {\n updateForm(props.appConfig)\n }\n })\n\n function updateForm(appConfig: TAppConfig) {\n Object.keys(appData).map((key) => {\n ['max_single_file_size', 'max_zip_file_size'].includes(key)\n ? // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n (appData[key] = getFileSizeInMB(appConfig[key]))\n : // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n (appData[key] = appConfig[key])\n })\n }\n function onCancel() {\n updateForm(props.appConfig)\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n router.push('/admin/application')\n }\n function onSubmit() {\n const formData: TAppConfigForm = Object.assign({}, appData)\n formData.max_single_file_size *= 1048576\n formData.max_zip_file_size *= 1048576\n store.dispatch(ROOT_STORE.ACTIONS.UPDATE_APPLICATION_CONFIG, formData)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.TITLE')), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"form\", {\n class: \"admin-form\",\n onSubmit: _withModifiers(onSubmit, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_3, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.ADMIN_CONTACT')) + \": \", 1),\n (!_unref(edition) && !appData.admin_contact)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n class: \"no-contact\",\n value: _ctx.$t('admin.APP_CONFIG.NO_CONTACT_EMAIL'),\n disabled: \"\"\n }, null, 8, _hoisted_4))\n : _withDirectives((_openBlock(), _createElementBlock(\"input\", {\n key: 1,\n id: \"admin_contact\",\n name: \"admin_contact\",\n type: \"email\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((appData.admin_contact) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_5)), [\n [_vModelText, appData.admin_contact]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_USERS_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"max_users\",\n name: \"max_users\",\n type: \"number\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((appData.max_users) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_7), [\n [_vModelText, appData.max_users]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"span\", _hoisted_9, [\n _hoisted_10,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_USERS_HELP')), 1)\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_11, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"max_single_file_size\",\n name: \"max_single_file_size\",\n type: \"number\",\n step: \"0.1\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((appData.max_single_file_size) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_12), [\n [_vModelText, appData.max_single_file_size]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_13, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"max_zip_file_size\",\n name: \"max_zip_file_size\",\n type: \"number\",\n step: \"0.1\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((appData.max_zip_file_size) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_14), [\n [_vModelText, appData.max_zip_file_size]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_15, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"gpx_limit_import\",\n name: \"gpx_limit_import\",\n type: \"number\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((appData.gpx_limit_import) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_16), [\n [_vModelText, appData.gpx_limit_import]\n ])\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(edition))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _createElementVNode(\"button\", _hoisted_18, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _withModifiers(onCancel, [\"prevent\"])\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 9, _hoisted_19)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_20, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n onClick: _cache[5] || (_cache[5] = _withModifiers(($event: any) => (_ctx.$router.push('/admin/application/edit')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.EDIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[6] || (_cache[6] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1)\n ]))\n ], 40, _hoisted_2)\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminApplication.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminApplication.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminApplication.vue?vue&type=style&index=0&id=24ec93e2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-24ec93e2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"stat-card\" }\nconst _hoisted_2 = { class: \"stat-content box\" }\nconst _hoisted_3 = { class: \"stat-icon\" }\nconst _hoisted_4 = { class: \"stat-details\" }\nconst _hoisted_5 = { class: \"stat-huge\" }\nconst _hoisted_6 = { class: \"stat\" }\n\nimport { toRefs } from 'vue'\n\n interface Props {\n icon: string\n text: string\n value: string | number\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'StatCard',\n props: {\n icon: null,\n text: null,\n value: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n icon: string\n text: string\n value: string | number\n };\n\n \n const { icon, text, value } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa\", `fa-${_unref(icon)}`])\n }, null, 2)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, _toDisplayString(_unref(value)), 1),\n _createElementVNode(\"div\", _hoisted_6, _toDisplayString(_unref(text)), 1)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./StatCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./StatCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./StatCard.vue?vue&type=style&index=0&id=6cbb3351&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-stats\" }\n\nimport { computed, toRefs } from 'vue'\n\n import StatCard from '@/components/Common/StatCard.vue'\n import { IAppStatistics } from '@/types/application'\n import { getReadableFileSize } from '@/utils/files'\n\n interface Props {\n appStatistics: IAppStatistics\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AppStatsCards',\n props: {\n appStatistics: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n appStatistics: IAppStatistics\n };\n\n \n\n const { appStatistics } = toRefs(props)\n const uploadDirSize = computed(() =>\n getReadableFileSize(appStatistics.value.uploads_dir_size, false)\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(StatCard, {\n icon: \"users\",\n value: _unref(appStatistics).users,\n text: _ctx.$t('admin.USER', _unref(appStatistics).users)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"tags\",\n value: _unref(appStatistics).sports,\n text: _ctx.$t('workouts.SPORT', _unref(appStatistics).sports)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"calendar\",\n value: _unref(appStatistics).workouts,\n text: _ctx.$t('workouts.WORKOUT', _unref(appStatistics).workouts)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"folder-open\",\n value: _unref(uploadDirSize).size,\n text: _unref(uploadDirSize).suffix\n }, null, 8, [\"value\", \"text\"])\n ]))\n}\n}\n\n})","import script from \"./AppStatsCards.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppStatsCards.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AppStatsCards.vue?vue&type=style&index=0&id=61c5053e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0dd66f89\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-menu\",\n class: \"center-card\"\n}\nconst _hoisted_2 = { class: \"admin-menu description-list\" }\nconst _hoisted_3 = { class: \"application-config-details\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_5 = { class: \"registration-status\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"email-sending-status\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-exclamation-triangle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { capitalize, toRefs, withDefaults } from 'vue'\n\n import AppStatsCards from '@/components/Administration/AppStatsCards.vue'\n import Card from '@/components/Common/Card.vue'\n import { IAppStatistics, TAppConfig } from '@/types/application'\n\n interface Props {\n appConfig: TAppConfig\n appStatistics?: IAppStatistics\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminMenu',\n props: {\n appConfig: null,\n appStatistics: { default: () => ({} as IAppStatistics) }\n },\n setup(__props: any) {\n\nconst props = __props as { appConfig: TAppConfig, appStatistics: IAppStatistics };\n\n \n\n const { appConfig, appStatistics } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.ADMINISTRATION')), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(AppStatsCards, { appStatistics: _unref(appStatistics) }, null, 8, [\"appStatistics\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, [\n _createVNode(_component_router_link, { to: \"/admin/application\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APPLICATION')), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"dd\", _hoisted_3, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.UPDATE_APPLICATION_DESCRIPTION')), 1),\n _hoisted_4,\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(_ctx.$t(\n `admin.REGISTRATION_${\n _unref(appConfig).is_registration_enabled ? 'ENABLED' : 'DISABLED'\n }`\n )), 1),\n (!_unref(appConfig).is_email_sending_enabled)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_6, [\n _hoisted_7,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('admin.EMAIL_SENDING_DISABLED')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"dt\", null, [\n _createVNode(_component_router_link, { to: \"/admin/sports\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('workouts.SPORT', 0))), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t('admin.ENABLE_DISABLE_SPORTS')), 1),\n _createElementVNode(\"dt\", null, [\n _createVNode(_component_router_link, { to: \"/admin/users\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('admin.USER', 0))), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t('admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT')), 1)\n ])\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminMenu.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminMenu.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminMenu.vue?vue&type=style&index=0&id=0dd66f89&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-0dd66f89\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withModifiers as _withModifiers, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, createBlock as _createBlock, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6d62af67\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-sports\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = { class: \"responsive-table\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, \"#\", -1))\nconst _hoisted_4 = { class: \"text-left\" }\nconst _hoisted_5 = { class: \"text-left sport-action\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, null, -1))\nconst _hoisted_7 = { class: \"text-center\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"cell-heading\" }, \"id\", -1))\nconst _hoisted_9 = { class: \"cell-heading\" }\nconst _hoisted_10 = { class: \"sport-label\" }\nconst _hoisted_11 = { class: \"cell-heading\" }\nconst _hoisted_12 = { class: \"text-center\" }\nconst _hoisted_13 = { class: \"cell-heading\" }\nconst _hoisted_14 = { class: \"sport-action\" }\nconst _hoisted_15 = { class: \"cell-heading\" }\nconst _hoisted_16 = { class: \"action-button\" }\nconst _hoisted_17 = [\"onClick\"]\nconst _hoisted_18 = {\n key: 0,\n class: \"has-workouts\"\n}\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-warning\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { ComputedRef, computed } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { ROOT_STORE, SPORTS_STORE } from '@/store/constants'\n import { ITranslatedSport } from '@/types/sports'\n import { useStore } from '@/use/useStore'\n import { translateSports } from '@/utils/sports'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminSports',\n setup(__props) {\n\n const { t } = useI18n()\n const store = useStore()\n\n const translatedSports: ComputedRef = computed(() =>\n translateSports(store.getters[SPORTS_STORE.GETTERS.SPORTS], t)\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n function updateSportStatus(id: number, isActive: boolean) {\n store.dispatch(SPORTS_STORE.ACTIONS.UPDATE_SPORTS, {\n id,\n isActive,\n })\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.SPORTS.TITLE')), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"button\", {\n class: \"top-button\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_3,\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.IMAGE')), 1),\n _createElementVNode(\"th\", _hoisted_4, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.LABEL')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.ACTIVE')), 1),\n _createElementVNode(\"th\", _hoisted_5, _toDisplayString(_ctx.$t('admin.ACTION')), 1),\n _hoisted_6\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports), (sport) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: sport.id\n }, [\n _createElementVNode(\"td\", _hoisted_7, [\n _hoisted_8,\n _createTextVNode(\" \" + _toDisplayString(sport.id), 1)\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.IMAGE')), 1),\n _createVNode(_component_SportImage, {\n title: sport.translatedLabel,\n \"sport-label\": sport.label,\n color: sport.color\n }, null, 8, [\"title\", \"sport-label\", \"color\"])\n ]),\n _createElementVNode(\"td\", _hoisted_10, [\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.LABEL')), 1),\n _createTextVNode(\" \" + _toDisplayString(sport.translatedLabel), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_12, [\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.ACTIVE')), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${sport.is_active ? '-check' : ''}`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _createElementVNode(\"td\", _hoisted_14, [\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(_ctx.$t('admin.ACTION')), 1),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"button\", {\n class: _normalizeClass({ danger: sport.is_active }),\n onClick: ($event: any) => (updateSportStatus(sport.id, !sport.is_active))\n }, _toDisplayString(_ctx.$t(`buttons.${sport.is_active ? 'DIS' : 'EN'}ABLE`)), 11, _hoisted_17),\n (sport.has_workouts)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_18, [\n _hoisted_19,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.HAS_WORKOUTS')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]))\n }), 128))\n ])\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1)\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminSports.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminSports.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminSports.vue?vue&type=style&index=0&id=6d62af67&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6d62af67\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { vModelText as _vModelText, withKeys as _withKeys, createElementVNode as _createElementVNode, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-627a8e91\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"users-filters\" }\nconst _hoisted_2 = { class: \"search-username\" }\nconst _hoisted_3 = [\"onKeyup\", \"placeholder\"]\n\nimport { ref } from 'vue'\n import { useRoute } from 'vue-router'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UsersNameFilter',\n emits: ['filterOnUsername'],\n setup(__props, { emit }) {\n\n const route = useRoute()\n const username = ref(route.query.q ? route.query.q : '')\n\n \n function searchUsers() {\n if (username.value !== '') {\n emit('filterOnUsername', username)\n }\n }\n function resetFilter() {\n username.value = ''\n emit('filterOnUsername', username.value)\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _withDirectives(_createElementVNode(\"input\", {\n id: \"username\",\n name: \"username\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((username).value = $event)),\n onKeyup: _withKeys(searchUsers, [\"enter\"]),\n placeholder: _ctx.$t('user.FILTER_ON_USERNAME')\n }, null, 40, _hoisted_3), [\n [\n _vModelText,\n username.value,\n void 0,\n { trim: true }\n ]\n ]),\n (username.value !== '')\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"fa fa-times\",\n \"aria-hidden\": \"true\",\n onClick: resetFilter\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa fa-search\", { 'fa-disabled': username.value === '' }]),\n \"aria-hidden\": \"true\",\n onClick: searchUsers\n }, null, 2)\n ]))\n}\n}\n\n})","import script from \"./UsersNameFilter.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./UsersNameFilter.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./UsersNameFilter.vue?vue&type=style&index=0&id=627a8e91&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-627a8e91\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withModifiers as _withModifiers, createElementVNode as _createElementVNode, createVNode as _createVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, withCtx as _withCtx, normalizeClass as _normalizeClass, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-dc12ff78\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-users\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"no-users\"\n}\nconst _hoisted_3 = {\n key: 1,\n class: \"responsive-table\"\n}\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, \"#\", -1))\nconst _hoisted_5 = { class: \"left-text\" }\nconst _hoisted_6 = { class: \"left-text\" }\nconst _hoisted_7 = { class: \"left-text\" }\nconst _hoisted_8 = { class: \"cell-heading\" }\nconst _hoisted_9 = { class: \"cell-heading\" }\nconst _hoisted_10 = { class: \"cell-heading\" }\nconst _hoisted_11 = { class: \"cell-heading\" }\nconst _hoisted_12 = { class: \"text-center\" }\nconst _hoisted_13 = { class: \"cell-heading\" }\nconst _hoisted_14 = { class: \"text-center\" }\nconst _hoisted_15 = { class: \"cell-heading\" }\nconst _hoisted_16 = { class: \"text-center\" }\nconst _hoisted_17 = { class: \"cell-heading\" }\nconst _hoisted_18 = { class: \"text-center\" }\nconst _hoisted_19 = { class: \"cell-heading\" }\nconst _hoisted_20 = [\"disabled\", \"onClick\"]\n\nimport {\n ComputedRef,\n Ref,\n computed,\n reactive,\n watch,\n capitalize,\n onBeforeMount,\n onUnmounted,\n } from 'vue'\n import { LocationQuery, useRoute, useRouter } from 'vue-router'\n\n import FilterSelects from '@/components/Common/FilterSelects.vue'\n import Pagination from '@/components/Common/Pagination.vue'\n import UserPicture from '@/components/User/UserPicture.vue'\n import UsersNameFilter from '@/components/Users/UsersNameFilter.vue'\n import { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\n import { IPagination, TPaginationPayload } from '@/types/api'\n import { IAuthUserProfile, IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getQuery, sortList } from '@/utils/api'\n import { formatDate } from '@/utils/dates'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminUsers',\n setup(__props) {\n\n const store = useStore()\n const route = useRoute()\n const router = useRouter()\n\n const orderByList: string[] = [\n 'is_active',\n 'admin',\n 'created_at',\n 'username',\n 'workouts_count',\n ]\n const defaultOrderBy = 'created_at'\n let query: TPaginationPayload = reactive(\n getQuery(route.query, orderByList, defaultOrderBy)\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const users: ComputedRef = computed(\n () => store.getters[USERS_STORE.GETTERS.USERS]\n )\n const pagination: ComputedRef = computed(\n () => store.getters[USERS_STORE.GETTERS.USERS_PAGINATION]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onBeforeMount(() => loadUsers(query))\n\n function loadUsers(queryParams: TPaginationPayload) {\n store.dispatch(USERS_STORE.ACTIONS.GET_USERS, queryParams)\n }\n function searchUsers(username: Ref) {\n reloadUsers('q', username.value)\n }\n\n function updateUser(username: string, admin: boolean) {\n store.dispatch(USERS_STORE.ACTIONS.UPDATE_USER, {\n username,\n admin,\n })\n }\n function reloadUsers(queryParam: string, queryValue: string) {\n query[queryParam] = queryValue\n if (queryParam === 'per_page') {\n query.page = 1\n }\n router.push({ path: '/admin/users', query })\n }\n\n onUnmounted(() => {\n store.dispatch(USERS_STORE.ACTIONS.EMPTY_USERS)\n })\n\n watch(\n () => route.query,\n (newQuery: LocationQuery) => {\n query = getQuery(newQuery, orderByList, defaultOrderBy, { query })\n loadUsers(query)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('admin.USER', 0))), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"button\", {\n class: \"top-button\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1),\n _createVNode(UsersNameFilter, { onFilterOnUsername: searchUsers }),\n _createVNode(FilterSelects, {\n sort: _unref(sortList),\n order_by: orderByList,\n query: _unref(query),\n message: \"admin.USERS.SELECTS.ORDER_BY\",\n onUpdateSelect: reloadUsers\n }, null, 8, [\"sort\", \"query\"]),\n (_unref(users).length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t('user.NO_USERS_FOUND')), 1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_4,\n _createElementVNode(\"th\", _hoisted_5, _toDisplayString(_ctx.$t('user.USERNAME')), 1),\n _createElementVNode(\"th\", _hoisted_6, _toDisplayString(_ctx.$t('user.EMAIL')), 1),\n _createElementVNode(\"th\", _hoisted_7, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 0))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.ACTIVE')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.ADMIN')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.ACTION')), 1)\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(users), (user) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: user.username\n }, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE')), 1),\n _createVNode(UserPicture, { user: user }, null, 8, [\"user\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t('user.USERNAME')), 1),\n _createVNode(_component_router_link, {\n to: `/admin/users/${user.username}`\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(user.username), 1)\n ]),\n _: 2\n }, 1032, [\"to\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(_ctx.$t('user.EMAIL')), 1),\n _createTextVNode(\" \" + _toDisplayString(user.email), 1)\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')), 1),\n _createTextVNode(\" \" + _toDisplayString(_unref(formatDate)(\n user.created_at,\n _unref(authUser).timezone,\n _unref(authUser).date_format\n )), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_12, [\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 0))), 1),\n _createTextVNode(\" \" + _toDisplayString(user.nb_workouts), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_14, [\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(_ctx.$t('admin.ACTIVE')), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${user.is_active ? '-check' : ''}-square-o`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _createElementVNode(\"td\", _hoisted_16, [\n _createElementVNode(\"span\", _hoisted_17, _toDisplayString(_ctx.$t('user.ADMIN')), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${user.admin ? '-check' : ''}-square-o`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _createElementVNode(\"td\", _hoisted_18, [\n _createElementVNode(\"span\", _hoisted_19, _toDisplayString(_ctx.$t('admin.ACTION')), 1),\n _createElementVNode(\"button\", {\n class: _normalizeClass({ danger: user.admin }),\n disabled: user.username === _unref(authUser).username,\n onClick: ($event: any) => (updateUser(user.username, !user.admin))\n }, _toDisplayString(_ctx.$t(\n `admin.USERS.TABLE.${\n user.admin ? 'REMOVE' : 'ADD'\n }_ADMIN_RIGHTS`\n )), 11, _hoisted_20)\n ])\n ]))\n }), 128))\n ])\n ]),\n (_unref(pagination).page)\n ? (_openBlock(), _createBlock(Pagination, {\n key: 0,\n path: \"/admin/users\",\n pagination: _unref(pagination),\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"]))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 1,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1)\n ]))\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminUsers.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminUsers.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminUsers.vue?vue&type=style&index=0&id=dc12ff78&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-dc12ff78\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString } from \"vue\"\n\nconst _hoisted_1 = { class: \"profile-tabs custom-checkboxes-group\" }\nconst _hoisted_2 = { class: \"profile-tabs-checkboxes custom-checkboxes\" }\nconst _hoisted_3 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\n\nimport { toRefs, withDefaults } from 'vue'\n\n interface Props {\n tabs: string[]\n selectedTab: string\n edition: boolean\n disabled?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserProfileTabs',\n props: {\n tabs: null,\n selectedTab: null,\n edition: { type: Boolean },\n disabled: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { tabs: string[], selectedTab: string, edition: boolean, disabled: boolean };\n\n \n\n const { tabs, selectedTab, disabled } = toRefs(props)\n\n function getPath(tab: string) {\n switch (tab) {\n case 'ACCOUNT':\n case 'PICTURE':\n return `/profile/edit/${tab.toLocaleLowerCase()}`\n case 'APPS':\n case 'PREFERENCES':\n case 'SPORTS':\n return `/profile${\n props.edition ? '/edit' : ''\n }/${tab.toLocaleLowerCase()}`\n default:\n case 'PROFILE':\n return `/profile${props.edition ? '/edit' : ''}`\n }\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(tabs), (tab) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"profile-tab custom-checkbox\",\n key: tab\n }, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: tab,\n name: tab,\n checked: _unref(selectedTab).split('/')[0] === tab,\n disabled: _unref(disabled),\n onInput: ($event: any) => (_ctx.$router.push(getPath(tab)))\n }, null, 40, _hoisted_3),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t(`user.PROFILE.TABS.${tab}`)), 1)\n ])\n ]))\n }), 128))\n ])\n ]))\n}\n}\n\n})","import script from \"./UserProfileTabs.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserProfileTabs.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserProfileTabs.vue?vue&type=style&index=0&id=01b05f01&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-9729cba4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-profile\" }\nconst _hoisted_2 = { class: \"box\" }\n\nimport { toRefs } from 'vue'\n\n import UserHeader from '@/components/User/ProfileDisplay/UserHeader.vue'\n import UserProfileTabs from '@/components/User/UserProfileTabs.vue'\n import { IUserProfile } from '@/types/user'\n\n interface Props {\n user: IUserProfile\n tab: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null,\n tab: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n tab: string\n };\n\n \n\n const { user, tab } = toRefs(props)\n const tabs = ['PROFILE', 'PREFERENCES', 'SPORTS', 'APPS']\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(UserHeader, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(UserProfileTabs, {\n tabs: tabs,\n selectedTab: _unref(tab),\n edition: false\n }, null, 8, [\"selectedTab\"]),\n _createVNode(_component_router_view, { user: _unref(user) }, null, 8, [\"user\"])\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=9729cba4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-9729cba4\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"user-preferences\",\n class: \"description-list\"\n}\nconst _hoisted_2 = { class: \"profile-buttons\" }\n\nimport { computed, ComputedRef } from 'vue'\n\n import { ROOT_STORE } from '@/store/constants'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getDateFormat } from '@/utils/dates'\n import { languageLabels } from '@/utils/locales'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPreferences',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const appLanguage: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const userLanguage = computed(() =>\n props.user.language\n ? languageLabels[props.user.language]\n : languageLabels['en']\n )\n const fistDayOfWeek = computed(() => (props.user.weekm ? 'MONDAY' : 'SUNDAY'))\n const timezone = computed(() =>\n props.user.timezone ? props.user.timezone : 'Europe/Paris'\n )\n const date_format = computed(() =>\n props.user.date_format ? props.user.date_format : 'MM/dd/yyyy'\n )\n const display_ascent = computed(() =>\n props.user.display_ascent ? 'DISPLAYED' : 'HIDDEN'\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.LANGUAGE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(userLanguage)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.TIMEZONE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(timezone)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.DATE_FORMAT')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(getDateFormat)(_unref(date_format), _unref(appLanguage))), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.FIRST_DAY_OF_WEEK')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(`user.PROFILE.${_unref(fistDayOfWeek)}`)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.UNITS.LABEL')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(\n `user.PROFILE.UNITS.${__props.user.imperial_units ? 'IMPERIAL' : 'METRIC'}`\n )), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.ASCENT_DATA')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(`common.${_unref(display_ascent)}`)), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile/edit/preferences')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT_PREFERENCES')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPreferences.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPreferences.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"user-profile-edition\",\n class: \"center-card\"\n}\n\nimport { computed, toRefs } from 'vue'\n\n import UserProfileTabs from '@/components/User/UserProfileTabs.vue'\n import { AUTH_USER_STORE } from '@/store/constants'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n tab: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null,\n tab: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n tab: string\n };\n\n \n\n const store = useStore()\n\n const { user, tab } = toRefs(props)\n const tabs = ['PROFILE', 'ACCOUNT', 'PICTURE', 'PREFERENCES', 'SPORTS']\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(`user.PROFILE.${_unref(tab)}_EDITION`)), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(UserProfileTabs, {\n tabs: tabs,\n selectedTab: _unref(tab),\n edition: true,\n disabled: _unref(loading)\n }, null, 8, [\"selectedTab\", \"disabled\"]),\n _createVNode(_component_router_view, { user: _unref(user) }, null, 8, [\"user\"])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, vModelText as _vModelText, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createTextVNode as _createTextVNode, createVNode as _createVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-37b8c4c8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-infos-edition\" }\nconst _hoisted_2 = { class: \"profile-form form-box\" }\nconst _hoisted_3 = {\n key: 1,\n class: \"info-box success-message\"\n}\nconst _hoisted_4 = [\"onSubmit\"]\nconst _hoisted_5 = {\n class: \"form-items\",\n for: \"email\"\n}\nconst _hoisted_6 = [\"disabled\"]\nconst _hoisted_7 = {\n class: \"form-items\",\n for: \"password-field\"\n}\nconst _hoisted_8 = {\n class: \"form-items\",\n for: \"new-password-field\"\n}\nconst _hoisted_9 = { class: \"form-buttons\" }\nconst _hoisted_10 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport {\n ComputedRef,\n Ref,\n computed,\n reactive,\n ref,\n toRefs,\n onMounted,\n watch,\n onUnmounted,\n } from 'vue'\n\n import PasswordInput from '@/components/Common/PasswordInput.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { IUserProfile, IUserAccountPayload } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserAccountEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n };\n\n \n const { user } = toRefs(props)\n\n const store = useStore()\n const userForm: IUserAccountPayload = reactive({\n email: '',\n password: '',\n new_password: '',\n })\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const isSuccess: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_SUCCESS]\n )\n const emailUpdate = ref(false)\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const formErrors = ref(false)\n const displayModal: Ref = ref(false)\n\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function invalidateForm() {\n formErrors.value = true\n }\n function updateUserForm(user: IUserProfile) {\n userForm.email = user.email\n }\n function updatePassword(password: string) {\n userForm.password = password\n }\n function updateNewPassword(new_password: string) {\n userForm.new_password = new_password\n }\n function updateProfile() {\n const payload: IUserAccountPayload = {\n email: userForm.email,\n password: userForm.password,\n }\n if (userForm.new_password) {\n payload.new_password = userForm.new_password\n }\n emailUpdate.value = userForm.email !== user.value.email\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_ACCOUNT, payload)\n }\n function updateDisplayModal(value: boolean) {\n displayModal.value = value\n }\n function deleteAccount(username: string) {\n store.dispatch(AUTH_USER_STORE.ACTIONS.DELETE_ACCOUNT, { username })\n }\n\n onUnmounted(() => {\n store.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\n watch(\n () => isSuccess.value,\n async (isSuccessValue) => {\n if (isSuccessValue) {\n updatePassword('')\n updateNewPassword('')\n updateUserForm(user.value)\n formErrors.value = false\n }\n }\n )\n watch(\n () => user.value.email,\n async () => {\n updateUserForm(user.value)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (displayModal.value)\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: _ctx.$t('user.CONFIRM_ACCOUNT_DELETION'),\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (deleteAccount(_unref(user).username))),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal(false)))\n }, null, 8, [\"title\", \"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(isSuccess))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.$t(\n `user.PROFILE.SUCCESSFUL_${\n emailUpdate.value && _unref(appConfig).is_email_sending_enabled ? 'EMAIL_' : ''\n }UPDATE`\n )), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n class: _normalizeClass({ errors: formErrors.value }),\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_5, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.EMAIL')) + \"* \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"email\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((userForm.email) = $event)),\n disabled: _unref(loading),\n required: true,\n onInvalid: invalidateForm\n }, null, 40, _hoisted_6), [\n [_vModelText, userForm.email]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_7, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.CURRENT_PASSWORD')) + \"* \", 1),\n _createVNode(PasswordInput, {\n id: \"password-field\",\n disabled: _unref(loading),\n password: userForm.password,\n required: true,\n onUpdatePassword: updatePassword,\n onPasswordError: invalidateForm\n }, null, 8, [\"disabled\", \"password\"])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.NEW_PASSWORD')) + \" \", 1),\n _createVNode(PasswordInput, {\n id: \"new-password-field\",\n disabled: _unref(loading),\n checkStrength: true,\n password: userForm.new_password,\n isSuccess: false,\n onUpdatePassword: updateNewPassword,\n onPasswordError: invalidateForm\n }, null, 8, [\"disabled\", \"password\"])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"button\", _hoisted_10, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[3] || (_cache[3] = _withModifiers(($event: any) => (_ctx.$router.push('/profile')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1),\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (updateDisplayModal(true)), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.DELETE_MY_ACCOUNT')), 1)\n ])\n ], 42, _hoisted_4)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserAccountEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserAccountEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserAccountEdition.vue?vue&type=style&index=0&id=37b8c4c8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-37b8c4c8\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, vModelText as _vModelText, withDirectives as _withDirectives, createVNode as _createVNode, withModifiers as _withModifiers, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5e5a4552\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-infos-edition\" }\nconst _hoisted_2 = { class: \"profile-form form-box\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = {\n class: \"form-items\",\n for: \"registrationDate\"\n}\nconst _hoisted_5 = [\"value\"]\nconst _hoisted_6 = {\n class: \"form-items\",\n for: \"first_name\"\n}\nconst _hoisted_7 = [\"disabled\"]\nconst _hoisted_8 = {\n class: \"form-items\",\n for: \"last_name\"\n}\nconst _hoisted_9 = {\n class: \"form-items\",\n for: \"birth_date\"\n}\nconst _hoisted_10 = [\"disabled\"]\nconst _hoisted_11 = {\n class: \"form-items\",\n for: \"location\"\n}\nconst _hoisted_12 = [\"disabled\"]\nconst _hoisted_13 = { class: \"form-items\" }\nconst _hoisted_14 = { class: \"form-buttons\" }\nconst _hoisted_15 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport { format } from 'date-fns'\n import { ComputedRef, computed, reactive, onMounted, onUnmounted } from 'vue'\n\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IUserProfile, IUserPayload, IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserInfosEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const userForm: IUserPayload = reactive({\n first_name: '',\n last_name: '',\n birth_date: '',\n location: '',\n bio: '',\n })\n const registrationDate = computed(() =>\n props.user.created_at\n ? formatDate(\n props.user.created_at,\n props.user.timezone,\n props.user.date_format\n )\n : ''\n )\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function updateUserForm(user: IUserProfile) {\n userForm.first_name = user.first_name ? user.first_name : ''\n userForm.last_name = user.last_name ? user.last_name : ''\n userForm.birth_date = user.birth_date\n ? format(new Date(user.birth_date), 'yyyy-MM-dd')\n : ''\n userForm.location = user.location ? user.location : ''\n userForm.bio = user.bio ? user.bio : ''\n }\n function updateBio(value: string) {\n userForm.bio = value\n }\n function updateProfile() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PROFILE, userForm)\n }\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_CustomTextArea = _resolveComponent(\"CustomTextArea\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')) + \" \", 1),\n _createElementVNode(\"input\", {\n id: \"registrationDate\",\n value: _unref(registrationDate),\n disabled: \"\"\n }, null, 8, _hoisted_5)\n ]),\n _createElementVNode(\"label\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.FIRST_NAME')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"first_name\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((userForm.first_name) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_7), [\n [_vModelText, userForm.first_name]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LAST_NAME')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"last_name\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((userForm.last_name) = $event))\n }, null, 512), [\n [_vModelText, userForm.last_name]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_9, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.BIRTH_DATE')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"birth_date\",\n type: \"date\",\n class: \"birth-date\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((userForm.birth_date) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_10), [\n [_vModelText, userForm.birth_date]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_11, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LOCATION')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"location\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((userForm.location) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_12), [\n [_vModelText, userForm.location]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_13, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.BIO')) + \" \", 1),\n _createVNode(_component_CustomTextArea, {\n name: \"bio\",\n charLimit: 200,\n input: userForm.bio,\n disabled: _unref(loading),\n onUpdateValue: updateBio\n }, null, 8, [\"input\", \"disabled\"])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"button\", _hoisted_15, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (_ctx.$router.push('/profile')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserInfosEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserInfosEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserInfosEdition.vue?vue&type=style&index=0&id=5e5a4552&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5e5a4552\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementBlock as _createElementBlock, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-687e9604\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-picture-edition\" }\nconst _hoisted_2 = { class: \"user-picture-form\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = { class: \"picture-help\" }\nconst _hoisted_5 = { class: \"info-box\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_7 = { class: \"picture-buttons\" }\nconst _hoisted_8 = [\"disabled\"]\n\nimport { ComputedRef, Ref, computed, ref, toRefs, onUnmounted } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getReadableFileSize } from '@/utils/files'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPictureEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n };\n\n \n\n const store = useStore()\n\n const { user } = toRefs(props)\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const fileSizeLimit = appConfig.value.max_single_file_size\n ? getReadableFileSize(appConfig.value.max_single_file_size)\n : ''\n const pictureFile: Ref = ref(null)\n\n function deleteUserPicture() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.DELETE_PICTURE)\n }\n function updatePictureFile(event: Event & { target: HTMLInputElement }) {\n if (event.target.files) {\n pictureFile.value = event.target.files[0]\n }\n }\n function updateUserPicture() {\n if (pictureFile.value) {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PICTURE, {\n picture: pictureFile.value,\n })\n }\n }\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(UserPicture, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateUserPicture, [\"prevent\"])\n }, [\n _createElementVNode(\"input\", {\n type: \"file\",\n name: \"picture\",\n accept: \".png,.jpg,.gif\",\n onInput: updatePictureFile\n }, null, 32),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"span\", _hoisted_5, [\n _hoisted_6,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.MAX_SIZE')) + \": \" + _toDisplayString(_unref(fileSizeLimit)), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"button\", {\n type: \"submit\",\n disabled: !pictureFile.value\n }, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE_UPDATE')), 9, _hoisted_8),\n (_unref(user).picture)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"danger\",\n onClick: deleteUserPicture\n }, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE_REMOVE')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.BACK_TO_PROFILE')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPictureEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPictureEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPictureEdition.vue?vue&type=style&index=0&id=687e9604&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-687e9604\"]])\n\nexport default __exports__","export const timeZones = [\n 'Africa/Abidjan',\n 'Africa/Accra',\n 'Africa/Algiers',\n 'Africa/Bissau',\n 'Africa/Cairo',\n 'Africa/Casablanca',\n 'Africa/Ceuta',\n 'Africa/El_Aaiun',\n 'Africa/Johannesburg',\n 'Africa/Juba',\n 'Africa/Khartoum',\n 'Africa/Lagos',\n 'Africa/Maputo',\n 'Africa/Monrovia',\n 'Africa/Nairobi',\n 'Africa/Ndjamena',\n 'Africa/Sao_Tome',\n 'Africa/Tripoli',\n 'Africa/Tunis',\n 'Africa/Windhoek',\n 'America/Adak',\n 'America/Anchorage',\n 'America/Araguaina',\n 'America/Argentina/Buenos_Aires',\n 'America/Argentina/Catamarca',\n 'America/Argentina/Cordoba',\n 'America/Argentina/Jujuy',\n 'America/Argentina/La_Rioja',\n 'America/Argentina/Mendoza',\n 'America/Argentina/Rio_Gallegos',\n 'America/Argentina/Salta',\n 'America/Argentina/San_Juan',\n 'America/Argentina/San_Luis',\n 'America/Argentina/Tucuman',\n 'America/Argentina/Ushuaia',\n 'America/Asuncion',\n 'America/Atikokan',\n 'America/Bahia',\n 'America/Bahia_Banderas',\n 'America/Barbados',\n 'America/Belem',\n 'America/Belize',\n 'America/Blanc-Sablon',\n 'America/Boa_Vista',\n 'America/Bogota',\n 'America/Boise',\n 'America/Cambridge_Bay',\n 'America/Campo_Grande',\n 'America/Cancun',\n 'America/Caracas',\n 'America/Cayenne',\n 'America/Chicago',\n 'America/Chihuahua',\n 'America/Costa_Rica',\n 'America/Creston',\n 'America/Cuiaba',\n 'America/Curacao',\n 'America/Danmarkshavn',\n 'America/Dawson',\n 'America/Dawson_Creek',\n 'America/Denver',\n 'America/Detroit',\n 'America/Edmonton',\n 'America/Eirunepe',\n 'America/El_Salvador',\n 'America/Fortaleza',\n 'America/Fort_Nelson',\n 'America/Glace_Bay',\n 'America/Godthab',\n 'America/Goose_Bay',\n 'America/Grand_Turk',\n 'America/Guatemala',\n 'America/Guayaquil',\n 'America/Guyana',\n 'America/Halifax',\n 'America/Havana',\n 'America/Hermosillo',\n 'America/Indiana/Indianapolis',\n 'America/Indiana/Knox',\n 'America/Indiana/Marengo',\n 'America/Indiana/Petersburg',\n 'America/Indiana/Tell_City',\n 'America/Indiana/Vevay',\n 'America/Indiana/Vincennes',\n 'America/Indiana/Winamac',\n 'America/Inuvik',\n 'America/Iqaluit',\n 'America/Jamaica',\n 'America/Juneau',\n 'America/Kentucky/Louisville',\n 'America/Kentucky/Monticello',\n 'America/La_Paz',\n 'America/Lima',\n 'America/Los_Angeles',\n 'America/Maceio',\n 'America/Managua',\n 'America/Manaus',\n 'America/Martinique',\n 'America/Matamoros',\n 'America/Mazatlan',\n 'America/Menominee',\n 'America/Merida',\n 'America/Metlakatla',\n 'America/Mexico_City',\n 'America/Miquelon',\n 'America/Moncton',\n 'America/Monterrey',\n 'America/Montevideo',\n 'America/Nassau',\n 'America/New_York',\n 'America/Nipigon',\n 'America/Nome',\n 'America/Noronha',\n 'America/North_Dakota/Beulah',\n 'America/North_Dakota/Center',\n 'America/North_Dakota/New_Salem',\n 'America/Ojinaga',\n 'America/Panama',\n 'America/Pangnirtung',\n 'America/Paramaribo',\n 'America/Phoenix',\n 'America/Port-au-Prince',\n 'America/Port_of_Spain',\n 'America/Porto_Velho',\n 'America/Puerto_Rico',\n 'America/Punta_Arenas',\n 'America/Rainy_River',\n 'America/Rankin_Inlet',\n 'America/Recife',\n 'America/Regina',\n 'America/Resolute',\n 'America/Rio_Branco',\n 'America/Santarem',\n 'America/Santiago',\n 'America/Santo_Domingo',\n 'America/Sao_Paulo',\n 'America/Scoresbysund',\n 'America/Sitka',\n 'America/St_Johns',\n 'America/Swift_Current',\n 'America/Tegucigalpa',\n 'America/Thule',\n 'America/Thunder_Bay',\n 'America/Tijuana',\n 'America/Toronto',\n 'America/Vancouver',\n 'America/Whitehorse',\n 'America/Winnipeg',\n 'America/Yakutat',\n 'America/Yellowknife',\n 'Antarctica/Casey',\n 'Antarctica/Davis',\n 'Antarctica/DumontDUrville',\n 'Antarctica/Macquarie',\n 'Antarctica/Mawson',\n 'Antarctica/Palmer',\n 'Antarctica/Rothera',\n 'Antarctica/Syowa',\n 'Antarctica/Troll',\n 'Antarctica/Vostok',\n 'Asia/Almaty',\n 'Asia/Amman',\n 'Asia/Anadyr',\n 'Asia/Aqtau',\n 'Asia/Aqtobe',\n 'Asia/Ashgabat',\n 'Asia/Atyrau',\n 'Asia/Baghdad',\n 'Asia/Baku',\n 'Asia/Bangkok',\n 'Asia/Barnaul',\n 'Asia/Beirut',\n 'Asia/Bishkek',\n 'Asia/Brunei',\n 'Asia/Chita',\n 'Asia/Choibalsan',\n 'Asia/Colombo',\n 'Asia/Damascus',\n 'Asia/Dhaka',\n 'Asia/Dili',\n 'Asia/Dubai',\n 'Asia/Dushanbe',\n 'Asia/Famagusta',\n 'Asia/Gaza',\n 'Asia/Hebron',\n 'Asia/Ho_Chi_Minh',\n 'Asia/Hong_Kong',\n 'Asia/Hovd',\n 'Asia/Irkutsk',\n 'Asia/Jakarta',\n 'Asia/Jayapura',\n 'Asia/Jerusalem',\n 'Asia/Kabul',\n 'Asia/Kamchatka',\n 'Asia/Karachi',\n 'Asia/Kathmandu',\n 'Asia/Khandyga',\n 'Asia/Kolkata',\n 'Asia/Krasnoyarsk',\n 'Asia/Kuala_Lumpur',\n 'Asia/Kuching',\n 'Asia/Macau',\n 'Asia/Magadan',\n 'Asia/Makassar',\n 'Asia/Manila',\n 'Asia/Nicosia',\n 'Asia/Novokuznetsk',\n 'Asia/Novosibirsk',\n 'Asia/Omsk',\n 'Asia/Oral',\n 'Asia/Pontianak',\n 'Asia/Pyongyang',\n 'Asia/Qatar',\n 'Asia/Qostanay',\n 'Asia/Qyzylorda',\n 'Asia/Riyadh',\n 'Asia/Sakhalin',\n 'Asia/Samarkand',\n 'Asia/Seoul',\n 'Asia/Shanghai',\n 'Asia/Singapore',\n 'Asia/Srednekolymsk',\n 'Asia/Taipei',\n 'Asia/Tashkent',\n 'Asia/Tbilisi',\n 'Asia/Tehran',\n 'Asia/Thimphu',\n 'Asia/Tokyo',\n 'Asia/Tomsk',\n 'Asia/Ulaanbaatar',\n 'Asia/Urumqi',\n 'Asia/Ust-Nera',\n 'Asia/Vladivostok',\n 'Asia/Yakutsk',\n 'Asia/Yangon',\n 'Asia/Yekaterinburg',\n 'Asia/Yerevan',\n 'Atlantic/Azores',\n 'Atlantic/Bermuda',\n 'Atlantic/Canary',\n 'Atlantic/Cape_Verde',\n 'Atlantic/Faroe',\n 'Atlantic/Madeira',\n 'Atlantic/Reykjavik',\n 'Atlantic/South_Georgia',\n 'Atlantic/Stanley',\n 'Australia/Adelaide',\n 'Australia/Brisbane',\n 'Australia/Broken_Hill',\n 'Australia/Currie',\n 'Australia/Darwin',\n 'Australia/Eucla',\n 'Australia/Hobart',\n 'Australia/Lindeman',\n 'Australia/Lord_Howe',\n 'Australia/Melbourne',\n 'Australia/Perth',\n 'Australia/Sydney',\n 'Europe/Amsterdam',\n 'Europe/Andorra',\n 'Europe/Astrakhan',\n 'Europe/Athens',\n 'Europe/Belgrade',\n 'Europe/Berlin',\n 'Europe/Brussels',\n 'Europe/Bucharest',\n 'Europe/Budapest',\n 'Europe/Chisinau',\n 'Europe/Copenhagen',\n 'Europe/Dublin',\n 'Europe/Gibraltar',\n 'Europe/Helsinki',\n 'Europe/Istanbul',\n 'Europe/Kaliningrad',\n 'Europe/Kiev',\n 'Europe/Kirov',\n 'Europe/Lisbon',\n 'Europe/London',\n 'Europe/Luxembourg',\n 'Europe/Madrid',\n 'Europe/Malta',\n 'Europe/Minsk',\n 'Europe/Monaco',\n 'Europe/Moscow',\n 'Europe/Oslo',\n 'Europe/Paris',\n 'Europe/Prague',\n 'Europe/Riga',\n 'Europe/Rome',\n 'Europe/Samara',\n 'Europe/Saratov',\n 'Europe/Simferopol',\n 'Europe/Sofia',\n 'Europe/Stockholm',\n 'Europe/Tallinn',\n 'Europe/Tirane',\n 'Europe/Ulyanovsk',\n 'Europe/Uzhgorod',\n 'Europe/Vienna',\n 'Europe/Vilnius',\n 'Europe/Volgograd',\n 'Europe/Warsaw',\n 'Europe/Zaporozhye',\n 'Europe/Zurich',\n 'Indian/Chagos',\n 'Indian/Christmas',\n 'Indian/Cocos',\n 'Indian/Kerguelen',\n 'Indian/Mahe',\n 'Indian/Maldives',\n 'Indian/Mauritius',\n 'Indian/Reunion',\n 'Pacific/Apia',\n 'Pacific/Auckland',\n 'Pacific/Bougainville',\n 'Pacific/Chatham',\n 'Pacific/Chuuk',\n 'Pacific/Easter',\n 'Pacific/Efate',\n 'Pacific/Enderbury',\n 'Pacific/Fakaofo',\n 'Pacific/Fiji',\n 'Pacific/Funafuti',\n 'Pacific/Galapagos',\n 'Pacific/Gambier',\n 'Pacific/Guadalcanal',\n 'Pacific/Guam',\n 'Pacific/Honolulu',\n 'Pacific/Kiritimati',\n 'Pacific/Kosrae',\n 'Pacific/Kwajalein',\n 'Pacific/Majuro',\n 'Pacific/Marquesas',\n 'Pacific/Nauru',\n 'Pacific/Niue',\n 'Pacific/Norfolk',\n 'Pacific/Noumea',\n 'Pacific/Pago_Pago',\n 'Pacific/Palau',\n 'Pacific/Pitcairn',\n 'Pacific/Pohnpei',\n 'Pacific/Port_Moresby',\n 'Pacific/Rarotonga',\n 'Pacific/Tahiti',\n 'Pacific/Tarawa',\n 'Pacific/Tongatapu',\n 'Pacific/Wake',\n 'Pacific/Wallis',\n]\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, withKeys as _withKeys, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-47ea2903\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"tz-dropdown\" }\nconst _hoisted_2 = [\"value\", \"disabled\", \"onKeydown\"]\nconst _hoisted_3 = [\"onClick\", \"onMouseover\", \"autofocus\"]\n\nimport { Ref, ref, toRefs, watch, withDefaults } from 'vue'\n\n import { timeZones } from '@/utils/timezone'\n\n interface Props {\n input: string\n disabled?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'TimezoneDropdown',\n props: {\n input: null,\n disabled: { type: Boolean, default: false }\n },\n emits: ['updateTimezone'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { input: string, disabled: boolean };\n\n \n\n \n\n const { input, disabled } = toRefs(props)\n const timezone: Ref = ref(props.input)\n const isOpen: Ref = ref(false)\n const tzList: Ref = ref(null)\n const focusItemIndex: Ref = ref(0)\n\n function matchTimezone(t: string): RegExpMatchArray | null {\n return t.toLowerCase().match(timezone.value.toLowerCase())\n }\n function onMouseOver(index: number) {\n focusItemIndex.value = index\n }\n function onUpdateTimezone(value: string) {\n timezone.value = value\n isOpen.value = false\n emit('updateTimezone', value)\n }\n function onEnter(event: Event & { target: HTMLInputElement }) {\n event.preventDefault()\n if (tzList.value?.firstElementChild?.innerHTML) {\n onUpdateTimezone(tzList.value?.firstElementChild?.innerHTML)\n }\n }\n function openDropdown(event: Event & { target: HTMLInputElement }) {\n event.preventDefault()\n isOpen.value = true\n timezone.value = event.target.value.trim()\n }\n\n watch(\n () => props.input,\n (value) => {\n timezone.value = value\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"input\", {\n class: \"tz-dropdown-input\",\n id: \"timezone\",\n name: \"timezone\",\n value: timezone.value,\n disabled: _unref(disabled),\n required: \"\",\n onKeydown: [\n _cache[0] || (_cache[0] = _withKeys(($event: any) => (onUpdateTimezone(_unref(input))), [\"esc\"])),\n _withKeys(onEnter, [\"enter\"])\n ],\n onInput: openDropdown\n }, null, 40, _hoisted_2),\n (isOpen.value)\n ? (_openBlock(), _createElementBlock(\"ul\", {\n key: 0,\n class: \"tz-dropdown-list\",\n ref_key: \"tzList\",\n ref: tzList\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(timeZones).filter((t) => matchTimezone(t)), (tz, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: tz,\n class: _normalizeClass([\"tz-dropdown-item\", { focus: index === focusItemIndex.value }]),\n onClick: ($event: any) => (onUpdateTimezone(tz)),\n onMouseover: ($event: any) => (onMouseOver(index)),\n autofocus: index === focusItemIndex.value\n }, _toDisplayString(tz), 43, _hoisted_3))\n }), 128))\n ], 512))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./TimezoneDropdown.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./TimezoneDropdown.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./TimezoneDropdown.vue?vue&type=style&index=0&id=47ea2903&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-47ea2903\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, vModelSelect as _vModelSelect, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createTextVNode as _createTextVNode, createVNode as _createVNode, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3b8a9a12\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-preferences-edition\" }\nconst _hoisted_2 = { class: \"profile-form form-box\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = { class: \"form-items\" }\nconst _hoisted_5 = [\"disabled\"]\nconst _hoisted_6 = [\"value\"]\nconst _hoisted_7 = { class: \"form-items\" }\nconst _hoisted_8 = { class: \"form-items\" }\nconst _hoisted_9 = [\"disabled\"]\nconst _hoisted_10 = [\"value\"]\nconst _hoisted_11 = { class: \"form-items form-checkboxes\" }\nconst _hoisted_12 = { class: \"checkboxes-label\" }\nconst _hoisted_13 = { class: \"checkboxes\" }\nconst _hoisted_14 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\nconst _hoisted_15 = { class: \"checkbox-label\" }\nconst _hoisted_16 = { class: \"form-items form-checkboxes\" }\nconst _hoisted_17 = { class: \"checkboxes-label\" }\nconst _hoisted_18 = { class: \"checkboxes\" }\nconst _hoisted_19 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\nconst _hoisted_20 = { class: \"checkbox-label\" }\nconst _hoisted_21 = { class: \"form-items form-checkboxes\" }\nconst _hoisted_22 = { class: \"checkboxes-label\" }\nconst _hoisted_23 = { class: \"checkboxes\" }\nconst _hoisted_24 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\nconst _hoisted_25 = { class: \"checkbox-label\" }\nconst _hoisted_26 = { class: \"form-buttons\" }\nconst _hoisted_27 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport { ComputedRef, computed, reactive, onMounted, onUnmounted } from 'vue'\n\n import TimezoneDropdown from '@/components/User/ProfileEdition/TimezoneDropdown.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IUserPreferencesPayload, IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { availableDateFormatOptions } from '@/utils/dates'\n import { availableLanguages } from '@/utils/locales'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPreferencesEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const userForm: IUserPreferencesPayload = reactive({\n display_ascent: true,\n imperial_units: false,\n language: '',\n timezone: 'Europe/Paris',\n date_format: 'dd/MM/yyyy',\n weekm: false,\n })\n const weekStart = [\n {\n label: 'SUNDAY',\n value: false,\n },\n {\n label: 'MONDAY',\n value: true,\n },\n ]\n const imperialUnits = [\n {\n label: 'METRIC',\n value: false,\n },\n {\n label: 'IMPERIAL',\n value: true,\n },\n ]\n const ascentData = [\n {\n label: 'DISPLAYED',\n value: true,\n },\n {\n label: 'HIDDEN',\n value: false,\n },\n ]\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const dateFormatOptions = computed(() =>\n availableDateFormatOptions(\n new Date().toUTCString(),\n props.user.timezone,\n userForm.language\n )\n )\n\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function updateUserForm(user: IAuthUserProfile) {\n userForm.display_ascent = user.display_ascent\n userForm.imperial_units = user.imperial_units ? user.imperial_units : false\n userForm.language = user.language ? user.language : 'en'\n userForm.timezone = user.timezone ? user.timezone : 'Europe/Paris'\n userForm.date_format = user.date_format ? user.date_format : 'dd/MM/yyyy'\n userForm.weekm = user.weekm ? user.weekm : false\n }\n function updateProfile() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PREFERENCES, userForm)\n }\n function updateTZ(value: string) {\n userForm.timezone = value\n }\n function updateAscentDisplay(value: boolean) {\n userForm.display_ascent = value\n }\n function updateImperialUnit(value: boolean) {\n userForm.imperial_units = value\n }\n function updateWeekM(value: boolean) {\n userForm.weekm = value\n }\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LANGUAGE')) + \" \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"language\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((userForm.language) = $event)),\n disabled: _unref(loading)\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(availableLanguages), (lang) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: lang.value,\n key: lang.value\n }, _toDisplayString(lang.label), 9, _hoisted_6))\n }), 128))\n ], 8, _hoisted_5), [\n [_vModelSelect, userForm.language]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_7, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.TIMEZONE')) + \" \", 1),\n _createVNode(TimezoneDropdown, {\n input: userForm.timezone,\n disabled: _unref(loading),\n onUpdateTimezone: updateTZ\n }, null, 8, [\"input\", \"disabled\"])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.DATE_FORMAT')) + \" \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"date_format\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((userForm.date_format) = $event)),\n disabled: _unref(loading)\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(dateFormatOptions), (dateFormat) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: dateFormat.value,\n key: dateFormat.value\n }, _toDisplayString(dateFormat.label), 9, _hoisted_10))\n }), 128))\n ], 8, _hoisted_9), [\n [_vModelSelect, userForm.date_format]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(_ctx.$t('user.PROFILE.FIRST_DAY_OF_WEEK')), 1),\n _createElementVNode(\"div\", _hoisted_13, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(weekStart, (start) => {\n return _createElementVNode(\"label\", {\n key: start.label\n }, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: start.label,\n name: start.label,\n checked: start.value === userForm.weekm,\n disabled: _unref(loading),\n onInput: ($event: any) => (updateWeekM(start.value))\n }, null, 40, _hoisted_14),\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(_ctx.$t(`user.PROFILE.${start.label}`)), 1)\n ])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"span\", _hoisted_17, _toDisplayString(_ctx.$t('user.PROFILE.UNITS.LABEL')), 1),\n _createElementVNode(\"div\", _hoisted_18, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(imperialUnits, (unit) => {\n return _createElementVNode(\"label\", {\n key: unit.label\n }, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: unit.label,\n name: unit.label,\n checked: unit.value === userForm.imperial_units,\n disabled: _unref(loading),\n onInput: ($event: any) => (updateImperialUnit(unit.value))\n }, null, 40, _hoisted_19),\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t(`user.PROFILE.UNITS.${unit.label}`)), 1)\n ])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"span\", _hoisted_22, _toDisplayString(_ctx.$t('user.PROFILE.ASCENT_DATA')), 1),\n _createElementVNode(\"div\", _hoisted_23, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(ascentData, (status) => {\n return _createElementVNode(\"label\", {\n key: status.label\n }, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: status.label,\n name: status.label,\n checked: status.value === userForm.display_ascent,\n disabled: _unref(loading),\n onInput: ($event: any) => (updateAscentDisplay(status.value))\n }, null, 40, _hoisted_24),\n _createElementVNode(\"span\", _hoisted_25, _toDisplayString(_ctx.$t(`common.${status.label}`)), 1)\n ])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_26, [\n _createElementVNode(\"button\", _hoisted_27, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (_ctx.$router.push('/profile/preferences')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPreferencesEdition.vue?vue&type=style&index=0&id=3b8a9a12&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3b8a9a12\"]])\n\nexport default __exports__","export const oauth2_scopes = [\n 'profile:read',\n 'profile:write',\n 'users:read',\n 'users:write',\n 'workouts:read',\n 'workouts:write',\n]\n\nexport const admin_oauth2_scopes = ['application:write']\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, vModelText as _vModelText, withDirectives as _withDirectives, resolveComponent as _resolveComponent, createVNode as _createVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0657ee77\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"new-oauth2-app\" }\nconst _hoisted_2 = { id: \"new-oauth2-title\" }\nconst _hoisted_3 = { id: \"apps-form\" }\nconst _hoisted_4 = [\"onSubmit\"]\nconst _hoisted_5 = { class: \"form-items\" }\nconst _hoisted_6 = { class: \"form-item\" }\nconst _hoisted_7 = { for: \"app-name\" }\nconst _hoisted_8 = { class: \"form-item\" }\nconst _hoisted_9 = { for: \"app-description\" }\nconst _hoisted_10 = { class: \"form-item\" }\nconst _hoisted_11 = { for: \"app-url\" }\nconst _hoisted_12 = { class: \"form-item\" }\nconst _hoisted_13 = { for: \"app-redirect-uri\" }\nconst _hoisted_14 = { class: \"form-item-scope\" }\nconst _hoisted_15 = { class: \"form-item-scope-label\" }\nconst _hoisted_16 = { class: \"scope-label\" }\nconst _hoisted_17 = [\"name\", \"checked\", \"onChange\"]\nconst _hoisted_18 = [\"innerHTML\"]\nconst _hoisted_19 = { class: \"form-buttons\" }\nconst _hoisted_20 = [\"disabled\"]\n\nimport { computed, reactive } from 'vue'\n\n import { OAUTH2_STORE } from '@/store/constants'\n import { IOAuth2ClientPayload } from '@/types/oauth'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { admin_oauth2_scopes, oauth2_scopes } from '@/utils/oauth'\n\n interface Props {\n authUser: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AddUserApp',\n props: {\n authUser: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n authUser: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n const appForm = reactive({\n client_name: '',\n client_uri: '',\n client_description: '',\n redirect_uri: '',\n })\n const scopes: string[] = reactive([])\n const filtered_scopes = computed(() =>\n getScopes(props.authUser, admin_oauth2_scopes, oauth2_scopes)\n )\n\n function createApp() {\n const payload: IOAuth2ClientPayload = {\n client_name: appForm.client_name,\n client_description: appForm.client_description,\n client_uri: appForm.client_uri,\n redirect_uris: [appForm.redirect_uri],\n scope: scopes.sort().join(' '),\n }\n store.dispatch(OAUTH2_STORE.ACTIONS.CREATE_CLIENT, payload)\n }\n function updateDescription(value: string) {\n appForm.client_description = value\n }\n function updateScopes(scope: string) {\n const index = scopes.indexOf(scope)\n if (index > -1) {\n scopes.splice(index, 1)\n } else {\n scopes.push(scope)\n }\n }\n function getScopes(\n authUser: IAuthUserProfile,\n admin_scopes: string[],\n scopes: string[]\n ) {\n const filtered_scopes = [...scopes]\n if (authUser.admin) {\n filtered_scopes.push(...admin_scopes)\n }\n return filtered_scopes.sort()\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_CustomTextArea = _resolveComponent(\"CustomTextArea\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"h1\", _hoisted_2, _toDisplayString(_ctx.$t('oauth2.ADD_A_NEW_APP')), 1),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(createApp, [\"prevent\"])\n }, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"label\", _hoisted_7, _toDisplayString(_ctx.$t('oauth2.APP.NAME')) + \"*\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"app-name\",\n type: \"text\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((appForm.client_name) = $event))\n }, null, 512), [\n [_vModelText, appForm.client_name]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"label\", _hoisted_9, _toDisplayString(_ctx.$t('oauth2.APP.DESCRIPTION')), 1),\n _createVNode(_component_CustomTextArea, {\n name: \"app-description\",\n charLimit: 200,\n input: appForm.description,\n onUpdateValue: updateDescription\n }, null, 8, [\"input\"])\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"label\", _hoisted_11, _toDisplayString(_ctx.$t('oauth2.APP.URL')) + \"*\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"app-url\",\n type: \"text\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((appForm.client_uri) = $event))\n }, null, 512), [\n [_vModelText, appForm.client_uri]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"label\", _hoisted_13, _toDisplayString(_ctx.$t('oauth2.APP.REDIRECT_URL')) + \"* \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"app-redirect-uri\",\n type: \"text\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((appForm.redirect_uri) = $event))\n }, null, 512), [\n [_vModelText, appForm.redirect_uri]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"div\", _hoisted_15, _toDisplayString(_ctx.$t('oauth2.APP.SCOPE.LABEL')) + \"* \", 1),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(filtered_scopes), (scope) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"form-item-scope-checkboxes\",\n key: scope\n }, [\n _createElementVNode(\"label\", _hoisted_16, [\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n name: scope,\n checked: scopes.includes(scope),\n onChange: ($event: any) => (updateScopes(scope))\n }, null, 40, _hoisted_17),\n _createElementVNode(\"code\", null, _toDisplayString(scope), 1)\n ]),\n _createElementVNode(\"p\", {\n class: \"scope-description\",\n innerHTML: _ctx.$t(`oauth2.APP.SCOPE.${scope}_DESCRIPTION`)\n }, null, 8, _hoisted_18)\n ]))\n }), 128))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n type: \"submit\",\n disabled: scopes.length === 0\n }, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 9, _hoisted_20),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[3] || (_cache[3] = _withModifiers(() => _ctx.$router.push('/profile/apps'), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ], 40, _hoisted_4)\n ])\n ]))\n}\n}\n\n})","import script from \"./AddUserApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AddUserApp.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AddUserApp.vue?vue&type=style&index=0&id=0657ee77&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-0657ee77\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3b2fe9ed\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"authorize-oauth2-app\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { id: \"authorize-oauth2-title\" }\nconst _hoisted_4 = { class: \"oauth2-access description-list\" }\nconst _hoisted_5 = { class: \"client-scope\" }\nconst _hoisted_6 = [\"innerHTML\"]\nconst _hoisted_7 = { class: \"authorize-oauth2-buttons\" }\nconst _hoisted_8 = { key: 1 }\nconst _hoisted_9 = { class: \"no-app\" }\n\nimport { computed, ComputedRef, onBeforeMount } from 'vue'\n import { useRoute } from 'vue-router'\n\n import { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\n import { IOAuth2Client } from '@/types/oauth'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AuthorizeUserApp',\n setup(__props) {\n\n const route = useRoute()\n const store = useStore()\n\n const client: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENT]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onBeforeMount(() => loadApp())\n\n function loadApp() {\n if (route.query.client_id && typeof route.query.client_id === 'string') {\n store.dispatch(\n OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_CLIENT_ID,\n route.query.client_id\n )\n }\n }\n\n function authorizeApp() {\n store.dispatch(OAUTH2_STORE.ACTIONS.AUTHORIZE_CLIENT, {\n client_id: `${route.query.client_id}`,\n redirect_uri: `${route.query.redirect_uri}`,\n response_type: `${route.query.response_type}`,\n scope: `${route.query.scope}`,\n state: `${route.query.state ? route.query.state : ''}`,\n code_challenge: `${\n route.query.code_challenge ? route.query.code_challenge : ''\n }`,\n code_challenge_method: `${\n route.query.code_challenge_method\n ? route.query.code_challenge_method\n : ''\n }`,\n })\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_i18n_t = _resolveComponent(\"i18n-t\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(client).client_id)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"h1\", _hoisted_3, [\n _createVNode(_component_i18n_t, { keypath: \"oauth2.AUTHORIZE_APP\" }, {\n default: _withCtx(() => [\n _createVNode(_component_router_link, {\n to: { name: 'UserApp', params: { id: _unref(client).id } }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(client).name), 1)\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _: 1\n })\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"p\", null, _toDisplayString(_ctx.$t('oauth2.APP_REQUESTING_ACCESS')), 1),\n _createElementVNode(\"dl\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(client).scope.split(' '), (scope) => {\n return (_openBlock(), _createElementBlock(_Fragment, { key: scope }, [\n _createElementVNode(\"dt\", _hoisted_5, [\n _createElementVNode(\"code\", null, _toDisplayString(scope), 1)\n ]),\n _createElementVNode(\"dd\", {\n innerHTML: _ctx.$t(`oauth2.APP.SCOPE.${scope}_DESCRIPTION`)\n }, null, 8, _hoisted_6)\n ], 64))\n }), 128))\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: authorizeApp\n }, _toDisplayString(_ctx.$t('buttons.AUTHORIZE')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"p\", _hoisted_9, _toDisplayString(_ctx.$t('oauth2.NO_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n ]))\n}\n}\n\n})","import script from \"./AuthorizeUserApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AuthorizeUserApp.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AuthorizeUserApp.vue?vue&type=style&index=0&id=3b2fe9ed&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3b2fe9ed\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"oauth2-apps\" }\n\nimport { onUnmounted, toRefs } from 'vue'\n\n import { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const { user } = toRefs(props)\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n store.commit(OAUTH2_STORE.MUTATIONS.SET_CLIENTS, [])\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_router_view, { authUser: _unref(user) }, null, 8, [\"authUser\"])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3a844fa2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"oauth2-app\",\n class: \"description-list\"\n}\nconst _hoisted_2 = { key: 1 }\nconst _hoisted_3 = {\n key: 0,\n class: \"info-box success-message\"\n}\nconst _hoisted_4 = [\"title\"]\nconst _hoisted_5 = { key: 0 }\nconst _hoisted_6 = {\n key: 1,\n class: \"app-secret\"\n}\nconst _hoisted_7 = [\"title\"]\nconst _hoisted_8 = { class: \"client-scopes\" }\nconst _hoisted_9 = { class: \"app-buttons\" }\nconst _hoisted_10 = { key: 2 }\nconst _hoisted_11 = { class: \"no-app\" }\n\nimport {\n ComputedRef,\n Ref,\n capitalize,\n computed,\n onBeforeMount,\n toRefs,\n ref,\n onUnmounted,\n withDefaults,\n watch,\n } from 'vue'\n import { useRoute } from 'vue-router'\n\n import { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\n import { IOAuth2Client } from '@/types/oauth'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n authUser: IAuthUserProfile\n afterCreation?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserApp',\n props: {\n authUser: null,\n afterCreation: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { authUser: IAuthUserProfile, afterCreation: boolean };\n\n \n const route = useRoute()\n const store = useStore()\n\n const { afterCreation, authUser } = toRefs(props)\n const client: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENT]\n )\n const revocationSuccessful: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.REVOCATION_SUCCESSFUL]\n )\n const displayModal: Ref = ref(false)\n const messageToDisplay: Ref = ref(null)\n const idCopied: Ref = ref(false)\n const secretCopied: Ref = ref(false)\n const clipboardSupport: Ref = ref(false)\n\n onBeforeMount(() => {\n loadClient()\n if (navigator.clipboard) {\n clipboardSupport.value = true\n }\n })\n\n function loadClient() {\n // after creation, client is already in store\n if (\n !afterCreation.value &&\n route.params.id &&\n typeof route.params.id === 'string'\n ) {\n store.dispatch(OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_ID, +route.params.id)\n }\n }\n function updateMessageToDisplay(forDelete: boolean) {\n messageToDisplay.value = forDelete\n ? 'oauth2.APP_DELETION_CONFIRMATION'\n : 'oauth2.TOKENS_REVOCATION_CONFIRMATION'\n updateDisplayModal(true)\n }\n function updateDisplayModal(value: boolean) {\n displayModal.value = value\n if (!value) {\n messageToDisplay.value = null\n }\n }\n function confirmAction(clientId: number) {\n if (messageToDisplay.value === 'oauth2.APP_DELETION_CONFIRMATION') {\n store.dispatch(OAUTH2_STORE.ACTIONS.DELETE_CLIENT, clientId)\n } else {\n store.dispatch(OAUTH2_STORE.ACTIONS.REVOKE_ALL_TOKENS, clientId)\n }\n }\n function copyIdToClipboard() {\n navigator.clipboard.writeText(client.value.client_id)\n idCopied.value = true\n secretCopied.value = false\n setTimeout(() => {\n idCopied.value = false\n }, 3000)\n }\n function copySecretToClipboard() {\n if (client.value.client_secret) {\n navigator.clipboard.writeText(client.value.client_secret)\n secretCopied.value = true\n idCopied.value = false\n setTimeout(() => {\n secretCopied.value = false\n }, 3000)\n }\n }\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n store.commit(OAUTH2_STORE.MUTATIONS.EMPTY_CLIENT)\n store.commit(OAUTH2_STORE.MUTATIONS.SET_REVOCATION_SUCCESSFUL, false)\n })\n\n watch(\n () => revocationSuccessful.value,\n (newValue) => {\n if (newValue) {\n updateDisplayModal(false)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (displayModal.value)\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: _ctx.$t(messageToDisplay.value),\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (confirmAction(_unref(client).id))),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal(false)))\n }, null, 8, [\"title\", \"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(client) && _unref(client).client_id)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_unref(afterCreation) || _unref(revocationSuccessful))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.$t(\n _unref(afterCreation)\n ? 'oauth2.APP_CREATED_SUCCESSFULLY'\n : 'oauth2.TOKENS_REVOKED'\n )), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.CLIENT_ID')) + \":\", 1),\n _createElementVNode(\"dd\", null, [\n _createTextVNode(_toDisplayString(_unref(client).client_id) + \" \", 1),\n (_unref(afterCreation) && clipboardSupport.value)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: _normalizeClass(`fa fa-${idCopied.value ? 'check' : 'copy'}`),\n \"aria-hidden\": \"true\",\n title: _ctx.$t('oauth2.COPY_TO_CLIPBOARD'),\n onClick: copyIdToClipboard\n }, null, 10, _hoisted_4))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(afterCreation) && _unref(client).client_secret)\n ? (_openBlock(), _createElementBlock(\"dt\", _hoisted_5, _toDisplayString(_ctx.$t('oauth2.APP.CLIENT_SECRET')) + \": \", 1))\n : _createCommentVNode(\"\", true),\n (_unref(afterCreation) && _unref(client).client_secret)\n ? (_openBlock(), _createElementBlock(\"dd\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_unref(client).client_secret) + \" \", 1),\n (clipboardSupport.value)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: _normalizeClass(`fa fa-${secretCopied.value ? 'check' : 'copy'}`),\n \"aria-hidden\": \"true\",\n title: _ctx.$t('oauth2.COPY_TO_CLIPBOARD'),\n onClick: copySecretToClipboard\n }, null, 10, _hoisted_7))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"dt\", null, _toDisplayString(capitalize(_ctx.$t('oauth2.APP.ISSUE_AT'))) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(formatDate)(\n _unref(client).issued_at,\n _unref(authUser).timezone,\n _unref(authUser).date_format\n )), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.NAME')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(client).name), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.DESCRIPTION')) + \":\", 1),\n _createElementVNode(\"dd\", {\n class: _normalizeClass({ 'no-description': !_unref(client).client_description })\n }, _toDisplayString(_unref(client).client_description\n ? _unref(client).client_description\n : _ctx.$t('oauth2.NO_DESCRIPTION')), 3),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.URL')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(client).website), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.REDIRECT_URL')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(client).redirect_uris.length > 0 ? _unref(client).redirect_uris[0] : ''), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.SCOPE.LABEL')) + \":\", 1),\n _createElementVNode(\"dd\", _hoisted_8, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(client).scope.split(' '), (scope) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n class: \"client-scope\",\n key: scope\n }, [\n _createElementVNode(\"code\", null, _toDisplayString(scope), 1)\n ]))\n }), 128))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (updateMessageToDisplay(false)))\n }, _toDisplayString(_ctx.$t('oauth2.REVOKE_ALL_TOKENS')), 1),\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (updateMessageToDisplay(true)))\n }, _toDisplayString(_ctx.$t('oauth2.DELETE_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [\n _createElementVNode(\"p\", _hoisted_11, _toDisplayString(_ctx.$t('oauth2.NO_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n ]))\n}\n}\n\n})","import script from \"./UserApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserApp.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserApp.vue?vue&type=style&index=0&id=3a844fa2&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3a844fa2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-efa45ea0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"oauth2-apps-list\" }\nconst _hoisted_2 = { class: \"apps-list\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { class: \"app-issued-at\" }\nconst _hoisted_5 = {\n key: 1,\n class: \"no-apps\"\n}\nconst _hoisted_6 = { class: \"app-list-buttons\" }\n\nimport { ComputedRef, computed, onBeforeMount, toRefs, watch } from 'vue'\n import { LocationQuery, useRoute } from 'vue-router'\n\n import Pagination from '@/components/Common/Pagination.vue'\n import { OAUTH2_STORE } from '@/store/constants'\n import { IPagination } from '@/types/api'\n import { IOAuth2Client, IOauth2ClientsPayload } from '@/types/oauth'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { defaultPage, getNumberQueryValue } from '@/utils/api'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n authUser: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserAppsList',\n props: {\n authUser: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n authUser: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n const route = useRoute()\n\n const { authUser } = toRefs(props)\n const clients: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENTS]\n )\n\n const pagination: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENTS_PAGINATION]\n )\n let query: IOauth2ClientsPayload = getClientsQuery(route.query)\n\n onBeforeMount(() => {\n loadClients(query)\n })\n\n function getClientsQuery(newQuery: LocationQuery): IOauth2ClientsPayload {\n const clientsQuery: IOauth2ClientsPayload = {}\n if (newQuery.page) {\n clientsQuery.page = getNumberQueryValue(newQuery.page, defaultPage)\n }\n return clientsQuery\n }\n function loadClients(payload: IOauth2ClientsPayload) {\n store.dispatch(OAUTH2_STORE.ACTIONS.GET_CLIENTS, payload)\n }\n\n watch(\n () => route.query,\n async (newQuery) => {\n query = getClientsQuery(newQuery)\n loadClients(query)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"p\", _hoisted_2, _toDisplayString(_ctx.$t('oauth2.APPS_LIST')), 1),\n (_unref(clients).length > 0)\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(clients), (client) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: client.client_id\n }, [\n _createVNode(_component_router_link, {\n to: { name: 'UserApp', params: { id: client.id } }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(client.name), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]),\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.$t('oauth2.APP.ISSUE_AT')) + \" \" + _toDisplayString(_unref(formatDate)(\n client.issued_at,\n _unref(authUser).timezone,\n _unref(authUser).date_format\n )), 1)\n ]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _toDisplayString(_ctx.$t('oauth2.NO_APPS')), 1)),\n (_unref(clients).length > 0)\n ? (_openBlock(), _createBlock(Pagination, {\n key: 2,\n pagination: _unref(pagination),\n path: \"/profile/apps\",\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile/apps/new')))\n }, _toDisplayString(_ctx.$t('oauth2.NEW_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserAppsList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserAppsList.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserAppsList.vue?vue&type=style&index=0&id=efa45ea0&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-efa45ea0\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, withModifiers as _withModifiers, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, createBlock as _createBlock, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-74e52489\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-sport-preferences\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"responsive-table\"\n}\nconst _hoisted_3 = { class: \"mobile-display\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"profile-buttons mobile-display\"\n}\nconst _hoisted_5 = {\n key: 1,\n class: \"profile-buttons\"\n}\nconst _hoisted_6 = { class: \"text-left\" }\nconst _hoisted_7 = { key: 0 }\nconst _hoisted_8 = { class: \"cell-heading\" }\nconst _hoisted_9 = [\"value\"]\nconst _hoisted_10 = { class: \"cell-heading\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"disabled-message\"\n}\nconst _hoisted_12 = {\n key: 1,\n class: \"fa fa-refresh fa-spin fa-fw\"\n}\nconst _hoisted_13 = { class: \"cell-heading\" }\nconst _hoisted_14 = { class: \"cell-heading\" }\nconst _hoisted_15 = [\"checked\"]\nconst _hoisted_16 = { class: \"cell-heading\" }\nconst _hoisted_17 = [\"value\"]\nconst _hoisted_18 = { key: 1 }\nconst _hoisted_19 = {\n key: 0,\n class: \"action-buttons\"\n}\nconst _hoisted_20 = { class: \"cell-heading\" }\nconst _hoisted_21 = [\"onClick\"]\nconst _hoisted_22 = {\n key: 1,\n class: \"edition-buttons\"\n}\nconst _hoisted_23 = [\"disabled\"]\nconst _hoisted_24 = [\"disabled\", \"onClick\"]\nconst _hoisted_25 = [\"disabled\"]\nconst _hoisted_26 = {\n key: 0,\n class: \"profile-buttons\"\n}\nconst _hoisted_27 = {\n key: 1,\n class: \"profile-buttons\"\n}\n\nimport { ComputedRef, computed, inject, reactive, toRefs, watch } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { AUTH_USER_STORE, ROOT_STORE, SPORTS_STORE } from '@/store/constants'\n import { ISport, ITranslatedSport } from '@/types/sports'\n import { IUserProfile, IUserSportPreferencesPayload } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { translateSports } from '@/utils/sports'\n\n interface Props {\n user: IUserProfile\n isEdition: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserSportPreferences',\n props: {\n user: null,\n isEdition: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n isEdition: boolean\n };\n\n \n\n const store = useStore()\n const { t } = useI18n()\n\n const { isEdition, user } = toRefs(props)\n const defaultColor = '#838383'\n const sportColors: Record | undefined = inject('sportColors')\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const translatedSports: ComputedRef = computed(() =>\n translateSports(sports.value, t, 'is_active', user.value.sports_list)\n )\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const sportPayload: IUserSportPreferencesPayload = reactive({\n sport_id: 0,\n color: null,\n is_active: true,\n stopped_speed_threshold: 1,\n })\n\n function updateSportInEdition(sport: ISport | null) {\n if (sport !== null) {\n sportPayload.sport_id = sport.id\n sportPayload.color = sport.color\n ? sport.color\n : sportColors\n ? sportColors[sport.label]\n : defaultColor\n sportPayload.is_active = sport.is_active_for_user\n sportPayload.stopped_speed_threshold = sport.stopped_speed_threshold\n } else {\n resetSportPayload()\n }\n }\n function isSportInEdition(sportId: number) {\n return sportPayload.sport_id === sportId\n }\n function updateColor(event: Event & { target: HTMLInputElement }) {\n sportPayload.color = event.target.value\n }\n function updateThreshold(event: Event & { target: HTMLInputElement }) {\n sportPayload.stopped_speed_threshold = parseFloat(event.target.value)\n }\n function updateIsActive(event: Event & { target: HTMLInputElement }) {\n sportPayload.is_active = event.target.checked\n }\n function resetSportPayload() {\n sportPayload.sport_id = 0\n sportPayload.color = null\n sportPayload.is_active = true\n sportPayload.stopped_speed_threshold = 1\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n }\n function updateSport(event: Event) {\n event.preventDefault()\n store.dispatch(\n AUTH_USER_STORE.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,\n sportPayload\n )\n }\n function resetSport(event: Event, sportId: number) {\n event.preventDefault()\n store.dispatch(\n AUTH_USER_STORE.ACTIONS.RESET_USER_SPORT_PREFERENCES,\n sportId\n )\n }\n\n watch(\n () => loading.value,\n (newIsLoading) => {\n if (!newIsLoading && !errorMessages.value) {\n resetSportPayload()\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(sports).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$router.push('/profile/sports')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/profile/edit/sports')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT_SPORTS_PREFERENCES')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ]))\n ]),\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.COLOR')), 1),\n _createElementVNode(\"th\", _hoisted_6, _toDisplayString(_ctx.$t('workouts.SPORT', 0)), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('workouts.WORKOUT', 0)), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.IS_ACTIVE')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD')), 1),\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"th\", _hoisted_7, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.ACTION')), 1))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports), (sport) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: sport.id\n }, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.COLOR')), 1),\n (isSportInEdition(sport.id))\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n class: \"sport-color\",\n type: \"color\",\n value: sportPayload.color,\n onInput: updateColor\n }, null, 40, _hoisted_9))\n : (_openBlock(), _createBlock(_component_SportImage, {\n key: 1,\n title: sport.translatedLabel,\n \"sport-label\": sport.label,\n color: sport.color ? sport.color : _unref(sportColors)[sport.label]\n }, null, 8, [\"title\", \"sport-label\", \"color\"]))\n ]),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"sport-label\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.LABEL')), 1),\n _createTextVNode(\" \" + _toDisplayString(sport.translatedLabel) + \" \", 1),\n (!sport.is_active)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_11, \" (\" + _toDisplayString(_ctx.$t('user.PROFILE.SPORT.DISABLED_BY_ADMIN')) + \") \", 1))\n : _createCommentVNode(\"\", true),\n (_unref(loading) && isSportInEdition(sport.id))\n ? (_openBlock(), _createElementBlock(\"i\", _hoisted_12))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages) && sportPayload.sport_id === sport.id)\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 2,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"text-center\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(_ctx.$t('workouts.WORKOUT', 0)), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${\n _unref(user).sports_list.includes(sport.id) ? '-check' : ''\n }`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ], 2),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"text-center\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.IS_ACTIVE')), 1),\n (isSportInEdition(sport.id) && sport.is_active)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n type: \"checkbox\",\n checked: sport.is_active_for_user,\n onChange: updateIsActive\n }, null, 40, _hoisted_15))\n : (_openBlock(), _createElementBlock(\"i\", {\n key: 1,\n class: _normalizeClass(`fa fa${sport.is_active_for_user ? '-check' : ''}`),\n \"aria-hidden\": \"true\"\n }, null, 2))\n ], 2),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"text-center\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_16, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD')), 1),\n (isSportInEdition(sport.id) && sport.is_active)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n class: \"threshold-input\",\n type: \"number\",\n min: \"0\",\n step: \"0.1\",\n value: sportPayload.stopped_speed_threshold,\n onInput: updateThreshold\n }, null, 40, _hoisted_17))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_18, _toDisplayString(sport.stopped_speed_threshold), 1))\n ], 2),\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"td\", _hoisted_19, [\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.ACTION')), 1),\n (sportPayload.sport_id === 0)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: ($event: any) => (updateSportInEdition(sport))\n }, _toDisplayString(_ctx.$t('buttons.EDIT')), 9, _hoisted_21))\n : _createCommentVNode(\"\", true),\n (isSportInEdition(sport.id))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_22, [\n _createElementVNode(\"button\", {\n disabled: _unref(loading),\n onClick: updateSport\n }, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 9, _hoisted_23),\n _createElementVNode(\"button\", {\n disabled: _unref(loading),\n onClick: (e) => resetSport(e, sport.id)\n }, _toDisplayString(_ctx.$t('buttons.RESET')), 9, _hoisted_24),\n _createElementVNode(\"button\", {\n disabled: _unref(loading),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (updateSportInEdition(null)))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 9, _hoisted_25)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n }), 128))\n ])\n ]),\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_26, [\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (_ctx.$router.push('/profile/sports')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_27, [\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$router.push('/profile/edit/sports')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT_SPORTS_PREFERENCES')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[6] || (_cache[6] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ]))\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./UserSportPreferences.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserSportPreferences.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserSportPreferences.vue?vue&type=style&index=0&id=74e52489&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-74e52489\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2b7b6dd6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"about-text\" }\nconst _hoisted_2 = [\"innerHTML\"]\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-book fa-padding\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = {\n href: \"https://samr1.github.io/FitTrackee/\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-github fa-padding\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_6 = {\n href: \"https://github.com/SamR1/FitTrackee\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-balance-scale fa-padding\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://choosealicense.com/licenses/agpl-3.0/\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}, \" AGPLv3 \", -1))\nconst _hoisted_9 = { key: 0 }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-envelope-o fa-padding\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = [\"href\"]\nconst _hoisted_12 = { key: 1 }\nconst _hoisted_13 = [\"href\"]\n\nimport { ComputedRef, computed, capitalize } from 'vue'\n\n import { ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'About',\n setup(__props) {\n\n const store = useStore()\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const weather_provider: ComputedRef> = computed(() =>\n get_weather_provider()\n )\n\n function get_weather_provider() {\n const weather_provider: Record = {}\n if (appConfig.value.weather_provider === 'darksky') {\n weather_provider['name'] = 'Dark Sky'\n weather_provider['url'] = 'https://darksky.net'\n }\n if (appConfig.value.weather_provider === 'visualcrossing') {\n weather_provider['name'] = 'Visual Crossing'\n weather_provider['url'] = 'https://www.visualcrossing.com'\n }\n return weather_provider\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_i18n_t = _resolveComponent(\"i18n-t\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"p\", {\n class: \"error-message\",\n innerHTML: _ctx.$t('about.FITTRACKEE_DESCRIPTION')\n }, null, 8, _hoisted_2),\n _createElementVNode(\"p\", null, [\n _hoisted_3,\n _createElementVNode(\"a\", _hoisted_4, _toDisplayString(capitalize(_ctx.$t('common.DOCUMENTATION'))), 1)\n ]),\n _createElementVNode(\"p\", null, [\n _hoisted_5,\n _createElementVNode(\"a\", _hoisted_6, _toDisplayString(_ctx.$t('about.SOURCE_CODE')), 1)\n ]),\n _createElementVNode(\"p\", null, [\n _hoisted_7,\n _createVNode(_component_i18n_t, { keypath: \"about.FITTRACKEE_LICENSE\" }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n })\n ]),\n (_unref(appConfig).admin_contact)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _hoisted_10,\n _createElementVNode(\"a\", {\n href: `mailto:${_unref(appConfig).admin_contact}`\n }, _toDisplayString(_ctx.$t('about.CONTACT_ADMIN')), 9, _hoisted_11)\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(weather_provider) && _unref(weather_provider).name)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_12, [\n _createTextVNode(_toDisplayString(_ctx.$t('about.WEATHER_DATA_FROM')) + \" \", 1),\n _createElementVNode(\"a\", {\n href: _unref(weather_provider).url,\n target: \"_blank\",\n rel: \"nofollow noopener\"\n }, _toDisplayString(_unref(weather_provider).name), 9, _hoisted_13)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./About.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./About.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./About.vue?vue&type=style&index=0&id=2b7b6dd6&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2b7b6dd6\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./BikePic.vue?vue&type=template&id=795f7f5f&scoped=true\"\nconst script = {}\n\nimport \"./BikePic.vue?vue&type=style&index=0&id=795f7f5f&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-795f7f5f\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-bffb50d0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"about\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\nconst _hoisted_3 = { class: \"container-sub\" }\nconst _hoisted_4 = { class: \"container-sub about-details\" }\n\nimport About from '@/components/About.vue'\n import BikePic from '@/components/BikePic.vue'\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'AboutView',\n setup(__props) {\n\n \nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(BikePic)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(About)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./AboutView.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./AboutView.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./AboutView.vue?vue&type=style&index=0&id=bffb50d0&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-bffb50d0\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-645a9e33\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"timeline-workout\" }\nconst _hoisted_2 = { class: \"box\" }\nconst _hoisted_3 = { class: \"workout-user-date\" }\nconst _hoisted_4 = { class: \"workout-user\" }\nconst _hoisted_5 = [\"title\"]\nconst _hoisted_6 = { key: 0 }\nconst _hoisted_7 = {\n key: 1,\n class: \"no-map\"\n}\nconst _hoisted_8 = { class: \"img\" }\nconst _hoisted_9 = { class: \"data\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-clock-o\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = { key: 0 }\nconst _hoisted_12 = { class: \"data\" }\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-road\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_14 = {\n key: 0,\n class: \"data elevation\"\n}\nconst _hoisted_15 = [\"alt\"]\nconst _hoisted_16 = { class: \"data-values\" }\nconst _hoisted_17 = {\n key: 1,\n class: \"data altitude\"\n}\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-location-arrow\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_19 = { class: \"data-values\" }\n\nimport { Locale, formatDistance } from 'date-fns'\n import { ComputedRef, computed, toRefs, withDefaults } from 'vue'\n\n import StaticMap from '@/components/Common/StaticMap.vue'\n import UserPicture from '@/components/User/UserPicture.vue'\n import { ROOT_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { IWorkout } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n user: IUserProfile\n useImperialUnits: boolean\n workout?: IWorkout\n sport?: ISport\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutCard',\n props: {\n user: null,\n useImperialUnits: { type: Boolean },\n workout: { default: () => ({} as IWorkout) },\n sport: { default: () => ({} as ISport) }\n },\n setup(__props: any) {\n\nconst props = __props as { user: IUserProfile, useImperialUnits: boolean, workout: IWorkout, sport: ISport };\n\n \n\n const store = useStore()\n\n const { user, workout, sport, useImperialUnits } = toRefs(props)\n const locale: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LOCALE]\n )\n\n function hasElevation(workout: IWorkout): boolean {\n return workout && workout.ascent !== null && workout.descent !== null\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_Distance = _resolveComponent(\"Distance\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(UserPicture, { user: _unref(user) }, null, 8, [\"user\"]),\n (_unref(user).username)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n class: \"workout-user-name\",\n to: {\n name: 'User',\n params: { username: _unref(user).username },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(user).username), 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n class: \"workout-title\",\n to: {\n name: 'Workout',\n params: { workoutId: _unref(workout).id },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(workout).title), 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true),\n (_unref(workout).workout_date && _unref(user))\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"workout-date\",\n title: \n _unref(formatDate)(_unref(workout).workout_date, _unref(user).timezone, _unref(user).date_format)\n \n }, _toDisplayString(_unref(formatDistance)(new Date(_unref(workout).workout_date), new Date(), {\n addSuffix: true,\n locale: _unref(locale),\n })), 9, _hoisted_5))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"workout-map\", { 'no-cursor': !_unref(workout) }]),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (\n _unref(workout).id\n ? _ctx.$router.push({\n name: 'Workout',\n params: { workoutId: _unref(workout).id },\n })\n : null\n ))\n }, [\n (_unref(workout))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n (_unref(workout).with_gpx)\n ? (_openBlock(), _createBlock(StaticMap, {\n key: 0,\n workout: _unref(workout)\n }, null, 8, [\"workout\"]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_7, _toDisplayString(_ctx.$t('workouts.NO_MAP')), 1))\n ]))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"workout-data\", { 'without-gpx': _unref(workout) && !_unref(workout).with_gpx }]),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (\n _unref(workout).id\n ? _ctx.$router.push({\n name: 'Workout',\n params: { workoutId: _unref(workout).id },\n })\n : null\n ))\n }, [\n _createElementVNode(\"div\", _hoisted_8, [\n (_unref(sport).label)\n ? (_openBlock(), _createBlock(_component_SportImage, {\n key: 0,\n \"sport-label\": _unref(sport).label,\n color: _unref(sport).color\n }, null, 8, [\"sport-label\", \"color\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _hoisted_10,\n (_unref(workout))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_11, _toDisplayString(_unref(workout).moving), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _hoisted_13,\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: _unref(workout).distance,\n digits: 3,\n unitFrom: \"km\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(workout) && _unref(workout).with_gpx)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n _createElementVNode(\"img\", {\n class: \"mountains\",\n src: \"/img/workouts/mountains.svg\",\n alt: _ctx.$t('workouts.ELEVATION')\n }, null, 8, _hoisted_15),\n _createElementVNode(\"div\", _hoisted_16, [\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: _unref(workout).min_alt,\n unitFrom: \"m\",\n displayUnit: false,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\"/ \"),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 1,\n distance: _unref(workout).max_alt,\n unitFrom: \"m\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (hasElevation(_unref(workout)))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _hoisted_18,\n _createElementVNode(\"div\", _hoisted_19, [\n _createTextVNode(\" +\"),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: _unref(workout).ascent,\n unitFrom: \"m\",\n displayUnit: false,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\"/- \"),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 1,\n distance: _unref(workout).descent,\n unitFrom: \"m\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 2)\n ])\n ]))\n}\n}\n\n})","import script from \"./WorkoutCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutCard.vue?vue&type=style&index=0&id=645a9e33&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-645a9e33\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-35567bf2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"timeline\" }\nconst _hoisted_2 = { class: \"section-title\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { key: 1 }\nconst _hoisted_5 = {\n key: 1,\n class: \"more-workouts\"\n}\n\nimport { ComputedRef, computed, ref, onBeforeMount, toRefs } from 'vue'\n\n import WorkoutCard from '@/components/Workout/WorkoutCard.vue'\n import NoWorkouts from '@/components/Workouts/NoWorkouts.vue'\n import { WORKOUTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { IWorkout } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { defaultOrder } from '@/utils/workouts'\n\n interface Props {\n sports: ISport[]\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Timeline',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IUserProfile\n };\n\n \n\n const store = useStore()\n\n const { sports, user } = toRefs(props)\n const page = ref(1)\n const per_page = 5\n const initWorkoutsCount =\n props.user.nb_workouts >= per_page ? per_page : props.user.nb_workouts\n onBeforeMount(() => loadWorkouts())\n const workouts: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.TIMELINE_WORKOUTS]\n )\n const moreWorkoutsExist: ComputedRef = computed(() =>\n workouts.value.length > 0\n ? workouts.value[workouts.value.length - 1].previous_workout !== null\n : false\n )\n\n function loadWorkouts() {\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_TIMELINE_WORKOUTS, {\n page: page.value,\n per_page,\n ...defaultOrder,\n })\n }\n function loadMoreWorkouts() {\n page.value += 1\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_MORE_TIMELINE_WORKOUTS, {\n page: page.value,\n per_page,\n ...defaultOrder,\n })\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_ctx.$t('workouts.LATEST_WORKOUTS')), 1),\n (_unref(user).nb_workouts > 0 && _unref(workouts).length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList([...Array(_unref(initWorkoutsCount)).keys()], (index) => {\n return (_openBlock(), _createBlock(WorkoutCard, {\n user: _unref(user),\n useImperialUnits: _unref(user).imperial_units,\n key: index\n }, null, 8, [\"user\", \"useImperialUnits\"]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts), (workout) => {\n return (_openBlock(), _createBlock(WorkoutCard, {\n workout: workout,\n sport: \n _unref(workouts).length > 0\n ? _unref(sports).filter((s) => s.id === workout.sport_id)[0]\n : null\n ,\n user: _unref(user),\n useImperialUnits: _unref(user).imperial_units,\n key: workout.id\n }, null, 8, [\"workout\", \"sport\", \"user\", \"useImperialUnits\"]))\n }), 128)),\n (_unref(workouts).length === 0)\n ? (_openBlock(), _createBlock(NoWorkouts, { key: 0 }))\n : _createCommentVNode(\"\", true),\n (_unref(moreWorkoutsExist))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"button\", { onClick: loadMoreWorkouts }, _toDisplayString(_ctx.$t('workouts.LOAD_MORE_WORKOUT')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n ]))\n}\n}\n\n})","import script from \"./Timeline.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Timeline.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Timeline.vue?vue&type=style&index=0&id=35567bf2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-35567bf2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = [\"title\"]\n\nimport { toRefs } from 'vue'\n\n import { IWorkout } from '@/types/workouts'\n interface Props {\n displayHARecord: boolean\n workout: IWorkout\n sportLabel: string\n sportColor: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarWorkout',\n props: {\n displayHARecord: { type: Boolean },\n workout: null,\n sportLabel: null,\n sportColor: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n displayHARecord: boolean\n workout: IWorkout\n sportLabel: string\n sportColor: string | null\n };\n\n \n\n const { displayHARecord, workout, sportLabel, sportColor } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"calendar-workout\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (\n _ctx.$router.push({ name: 'Workout', params: { workoutId: _unref(workout).id } })\n ))\n }, [\n _createVNode(_component_SportImage, {\n \"sport-label\": _unref(sportLabel),\n title: _unref(workout).title,\n color: _unref(sportColor)\n }, null, 8, [\"sport-label\", \"title\", \"color\"]),\n _createElementVNode(\"sup\", null, [\n (_unref(workout).records.length > 0)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"fa fa-trophy custom-fa-small\",\n \"aria-hidden\": \"true\",\n title: \n _unref(workout).records\n .filter((record) =>\n _unref(displayHARecord) ? true : record.record_type !== 'HA'\n )\n .map((record) => ` ${_ctx.$t(`workouts.RECORD_${record.record_type}`)}`)\n \n }, null, 8, _hoisted_1))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./CalendarWorkout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkout.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkout.vue?vue&type=style&index=0&id=331e1c8b&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"donut-chart\" }\nconst _hoisted_2 = {\n height: \"34\",\n width: \"34\",\n viewBox: \"0 0 34 34\"\n}\nconst _hoisted_3 = [\"stroke\", \"stroke-dashoffset\", \"transform\"]\n\nimport { toRefs } from 'vue'\n\n interface Props {\n colors: Record\n datasets: Record>\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'DonutChart',\n props: {\n colors: null,\n datasets: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n colors: Record\n datasets: Record>\n };\n\n \n\n const { colors, datasets } = toRefs(props)\n let angleOffset = -90\n const cx = 16\n const cy = 16\n const radius = 14\n const circumference = 2 * Math.PI * radius\n\n function calculateStrokeDashOffset(\n percentage: number,\n circumference: number\n ): number {\n return circumference - percentage * circumference\n }\n function returnCircleTransformValue(\n index: number,\n percentage: number\n ): string {\n const rotation = `rotate(${angleOffset}, ${cx}, ${cy})`\n angleOffset = percentage * 360 + angleOffset\n return rotation\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(), _createElementBlock(\"svg\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(Object.entries(_unref(datasets)), (data, index) => {\n return (_openBlock(), _createElementBlock(\"g\", { key: index }, [\n _createElementVNode(\"circle\", {\n cx: cx,\n cy: cy,\n r: radius,\n fill: \"transparent\",\n stroke: _unref(colors)[+data[0]],\n \"stroke-dashoffset\": \n calculateStrokeDashOffset(data[1].percentage, circumference)\n ,\n \"stroke-dasharray\": circumference,\n \"stroke-width\": \"3\",\n \"stroke-opacity\": \"0.8\",\n transform: returnCircleTransformValue(index, data[1].percentage)\n }, null, 8, _hoisted_3)\n ]))\n }), 128))\n ]))\n ]))\n}\n}\n\n})","import script from \"./DonutChart.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DonutChart.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, resolveDirective as _resolveDirective, withDirectives as _withDirectives, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-52d4310a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"calendar-workouts-chart\" }\nconst _hoisted_2 = { class: \"workouts-count\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"workouts-pane\"\n}\nconst _hoisted_4 = { class: \"more-workouts\" }\n\nimport { ref, toRefs } from 'vue'\n\n import CalendarWorkout from '@/components/Dashboard/UserCalendar/CalendarWorkout.vue'\n import DonutChart from '@/components/Dashboard/UserCalendar/DonutChart.vue'\n import { ISport } from '@/types/sports'\n import { IWorkout } from '@/types/workouts'\n import { getSportColor, getSportLabel } from '@/utils/sports'\n\n interface Props {\n colors: Record\n datasets: Record>\n sports: ISport[]\n workouts: IWorkout[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarWorkoutsChart',\n props: {\n colors: null,\n datasets: null,\n sports: null,\n workouts: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n colors: Record\n datasets: Record>\n sports: ISport[]\n workouts: IWorkout[]\n };\n\n \n\n const { colors, datasets, sports, workouts } = toRefs(props)\n const isHidden = ref(true)\n\n function togglePane(event: Event & { target: HTMLElement }) {\n event.stopPropagation()\n isHidden.value = !isHidden.value\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _directive_click_outside = _resolveDirective(\"click-outside\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"workouts-chart\",\n onClick: togglePane\n }, [\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_unref(workouts).length), 1),\n _createVNode(DonutChart, {\n datasets: _unref(datasets),\n colors: _unref(colors)\n }, null, 8, [\"datasets\", \"colors\"])\n ]),\n (!isHidden.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"i\", {\n class: \"fa fa-times calendar-more\",\n \"aria-hidden\": \"true\",\n onClick: togglePane\n }),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts), (workout, index) => {\n return (_openBlock(), _createBlock(CalendarWorkout, {\n key: index,\n workout: workout,\n sportLabel: _unref(getSportLabel)(workout, _unref(sports)),\n sportColor: _unref(getSportColor)(workout, _unref(sports))\n }, null, 8, [\"workout\", \"sportLabel\", \"sportColor\"]))\n }), 128))\n ])), [\n [_directive_click_outside, togglePane]\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./CalendarWorkoutsChart.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkoutsChart.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkoutsChart.vue?vue&type=style&index=0&id=52d4310a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-52d4310a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-workouts\" }\nconst _hoisted_2 = { class: \"desktop-display\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"workouts-display\"\n}\nconst _hoisted_4 = {\n key: 1,\n class: \"donut-display\"\n}\nconst _hoisted_5 = { class: \"mobile-display\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"donut-display\"\n}\n\nimport { computed, toRefs } from 'vue'\n\n import CalendarWorkout from '@/components/Dashboard/UserCalendar/CalendarWorkout.vue'\n import CalendarWorkoutsChart from '@/components/Dashboard/UserCalendar/CalendarWorkoutsChart.vue'\n import { ISport } from '@/types/sports'\n import { IWorkout } from '@/types/workouts'\n import { getSportColor, getSportLabel, sportIdColors } from '@/utils/sports'\n import { getDonutDatasets } from '@/utils/workouts'\n\n interface Props {\n displayHARecord: boolean\n workouts: IWorkout[]\n sports: ISport[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarWorkouts',\n props: {\n displayHARecord: { type: Boolean },\n workouts: null,\n sports: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n displayHARecord: boolean\n workouts: IWorkout[]\n sports: ISport[]\n };\n\n \n\n const { displayHARecord, workouts, sports } = toRefs(props)\n const chartDatasets = computed(() => getDonutDatasets(props.workouts))\n const colors = computed(() => sportIdColors(props.sports))\n const displayedWorkoutCount = 6\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(workouts).length <= displayedWorkoutCount)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts).slice(0, displayedWorkoutCount), (workout, index) => {\n return (_openBlock(), _createBlock(CalendarWorkout, {\n key: index,\n displayHARecord: _unref(displayHARecord),\n workout: workout,\n sportLabel: _unref(getSportLabel)(workout, _unref(sports)),\n sportColor: _unref(getSportColor)(workout, _unref(sports))\n }, null, 8, [\"displayHARecord\", \"workout\", \"sportLabel\", \"sportColor\"]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createVNode(CalendarWorkoutsChart, {\n workouts: _unref(workouts),\n sports: _unref(sports),\n datasets: _unref(chartDatasets),\n colors: _unref(colors)\n }, null, 8, [\"workouts\", \"sports\", \"datasets\", \"colors\"])\n ]))\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n (_unref(workouts).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createVNode(CalendarWorkoutsChart, {\n workouts: _unref(workouts),\n sports: _unref(sports),\n datasets: _unref(chartDatasets),\n colors: _unref(colors)\n }, null, 8, [\"workouts\", \"sports\", \"datasets\", \"colors\"])\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./CalendarWorkouts.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkouts.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkouts.vue?vue&type=style&index=0&id=5aab7455&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-cells\" }\nconst _hoisted_2 = { class: \"calendar-cell-day\" }\n\nimport { addDays, format, isSameDay, isSameMonth, isToday } from 'date-fns'\n import { Ref, ref, toRefs, watch, onMounted } from 'vue'\n\n import CalendarWorkouts from '@/components/Dashboard/UserCalendar/CalendarWorkouts.vue'\n import { ISport } from '@/types/sports'\n import { IWorkout } from '@/types/workouts'\n import { getDateWithTZ } from '@/utils/dates'\n\n interface Props {\n currentDay: Date\n displayHARecord: boolean\n endDate: Date\n sports: ISport[]\n startDate: Date\n timezone: string\n weekStartingMonday: boolean\n workouts: IWorkout[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarCells',\n props: {\n currentDay: null,\n displayHARecord: { type: Boolean },\n endDate: null,\n sports: null,\n startDate: null,\n timezone: null,\n weekStartingMonday: { type: Boolean },\n workouts: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n currentDay: Date\n displayHARecord: boolean\n endDate: Date\n sports: ISport[]\n startDate: Date\n timezone: string\n weekStartingMonday: boolean\n workouts: IWorkout[]\n };\n\n \n\n const {\n currentDay,\n displayHARecord,\n endDate,\n sports,\n startDate,\n timezone,\n weekStartingMonday,\n workouts,\n } = toRefs(props)\n const rows: Ref = ref([])\n\n onMounted(() => getDays())\n\n function getDays() {\n rows.value = []\n let day = startDate.value\n while (day <= endDate.value) {\n const days: Date[] = []\n for (let i = 0; i < 7; i++) {\n days.push(day)\n day = addDays(day, 1)\n }\n rows.value.push(days)\n }\n }\n function isWeekEnd(day: number): boolean {\n return weekStartingMonday.value\n ? [5, 6].includes(day)\n : [0, 6].includes(day)\n }\n function filterWorkouts(day: Date, workouts: IWorkout[]) {\n if (workouts) {\n return workouts\n .filter((workout) =>\n isSameDay(getDateWithTZ(workout.workout_date, timezone.value), day)\n )\n .reverse()\n }\n return []\n }\n\n watch(\n () => props.currentDay,\n () => getDays()\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(rows.value, (row, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"calendar-row\",\n key: index\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(row, (day, i) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"calendar-cell\", {\n 'disabled-cell': !_unref(isSameMonth)(day, _unref(currentDay)),\n 'week-end': isWeekEnd(i),\n today: _unref(isToday)(day),\n }]),\n key: i\n }, [\n _createVNode(CalendarWorkouts, {\n workouts: filterWorkouts(day, _unref(workouts)),\n sports: _unref(sports),\n displayHARecord: _unref(displayHARecord)\n }, null, 8, [\"workouts\", \"sports\", \"displayHARecord\"]),\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_unref(format)(day, 'd')), 1)\n ], 2))\n }), 128))\n ]))\n }), 128))\n ]))\n}\n}\n\n})","import script from \"./CalendarCells.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarCells.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarCells.vue?vue&type=style&index=0&id=34b99f0e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-days\" }\n\nimport { Locale, format, addDays } from 'date-fns'\n\n interface Props {\n startDate: Date\n localeOptions: Locale\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarDays',\n props: {\n startDate: null,\n localeOptions: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n startDate: Date\n localeOptions: Locale\n };\n\n \n\n const days = []\n for (let i = 0; i < 7; i++) {\n days.push(addDays(props.startDate, i))\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(days, (day, index) => {\n return _createElementVNode(\"div\", {\n class: \"calendar-day\",\n key: index\n }, _toDisplayString(_unref(format)(day, 'EEE', { locale: __props.localeOptions })), 1)\n }), 64))\n ]))\n}\n}\n\n})","import script from \"./CalendarDays.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarDays.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarDays.vue?vue&type=style&index=0&id=4f3dc99e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-header\" }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-left\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\nconst _hoisted_4 = { class: \"calendar-month\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-right\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_6 = [\n _hoisted_5\n]\n\nimport { Locale, format } from 'date-fns'\n import { toRefs } from 'vue'\n\n interface Props {\n day: Date\n localeOptions: Locale\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarHeader',\n props: {\n day: null,\n localeOptions: null\n },\n emits: ['displayNextMonth', 'displayPreviousMonth'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n day: Date\n localeOptions: Locale\n };\n\n \n\n \n\n const { day, localeOptions } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"calendar-arrow calendar-arrow-left\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (emit('displayPreviousMonth')))\n }, _hoisted_3),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"span\", null, _toDisplayString(_unref(format)(_unref(day), 'MMM yyyy', { locale: _unref(localeOptions) })), 1)\n ]),\n _createElementVNode(\"div\", {\n class: \"calendar-arrow calendar-arrow-right\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (emit('displayNextMonth')))\n }, _hoisted_6)\n ]))\n}\n}\n\n})","import script from \"./CalendarHeader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarHeader.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarHeader.vue?vue&type=style&index=0&id=79a65a70&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-calendar\" }\nconst _hoisted_2 = { class: \"calendar-card box\" }\n\nimport { Locale, addMonths, format, subMonths } from 'date-fns'\n import { ComputedRef, computed, ref, toRefs, onBeforeMount } from 'vue'\n\n import CalendarCells from '@/components/Dashboard/UserCalendar/CalendarCells.vue'\n import CalendarDays from '@/components/Dashboard/UserCalendar/CalendarDays.vue'\n import CalendarHeader from '@/components/Dashboard/UserCalendar/CalendarHeader.vue'\n import { ROOT_STORE, WORKOUTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { IWorkout, TWorkoutsPayload } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { getCalendarStartAndEnd } from '@/utils/dates'\n import { defaultOrder } from '@/utils/workouts'\n\n interface Props {\n sports: ISport[]\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const { sports, user } = toRefs(props)\n const dateFormat = 'yyyy-MM-dd'\n const day = ref(new Date())\n const calendarDates = ref(getCalendarStartAndEnd(day.value, props.user.weekm))\n const calendarWorkouts: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.CALENDAR_WORKOUTS]\n )\n const localeOptions: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LOCALE]\n )\n\n onBeforeMount(() => getCalendarWorkouts())\n\n function getCalendarWorkouts() {\n calendarDates.value = getCalendarStartAndEnd(day.value, props.user.weekm)\n const apiParams: TWorkoutsPayload = {\n from: format(calendarDates.value.start, dateFormat),\n to: format(calendarDates.value.end, dateFormat),\n page: 1,\n per_page: 100,\n ...defaultOrder,\n }\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_CALENDAR_WORKOUTS, apiParams)\n }\n function displayNextMonth() {\n day.value = addMonths(day.value, 1)\n getCalendarWorkouts()\n }\n function displayPreviousMonth() {\n day.value = subMonths(day.value, 1)\n getCalendarWorkouts()\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(CalendarHeader, {\n day: day.value,\n \"locale-options\": _unref(localeOptions),\n onDisplayNextMonth: displayNextMonth,\n onDisplayPreviousMonth: displayPreviousMonth\n }, null, 8, [\"day\", \"locale-options\"]),\n _createVNode(CalendarDays, {\n \"start-date\": calendarDates.value.start,\n \"locale-options\": _unref(localeOptions)\n }, null, 8, [\"start-date\", \"locale-options\"]),\n _createVNode(CalendarCells, {\n currentDay: day.value,\n displayHARecord: _unref(user).display_ascent,\n \"end-date\": calendarDates.value.end,\n sports: _unref(sports),\n \"start-date\": calendarDates.value.start,\n timezone: _unref(user).timezone,\n workouts: _unref(calendarWorkouts),\n weekStartingMonday: _unref(user).weekm\n }, null, 8, [\"currentDay\", \"displayHARecord\", \"end-date\", \"sports\", \"start-date\", \"timezone\", \"workouts\", \"weekStartingMonday\"])\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=3e7444d9&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1bcddc12\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"user-month-stats\" }\n\nimport { endOfMonth, startOfMonth } from 'date-fns'\n import { toRefs } from 'vue'\n\n import StatChart from '@/components/Common/StatsChart/index.vue'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n\n interface Props {\n sports: ISport[]\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserMonthStats',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IUserProfile\n };\n\n \n\n const { sports, user } = toRefs(props)\n const date = new Date()\n const chartParams = {\n duration: 'week',\n start: startOfMonth(date),\n end: endOfMonth(date),\n }\n const selectedSportIds = props.sports.map((sport) => sport.id)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('dashboard.THIS_MONTH')), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(StatChart, {\n sports: _unref(sports),\n user: _unref(user),\n \"chart-params\": chartParams,\n \"displayed-sport-ids\": _unref(selectedSportIds),\n \"hide-chart-if-no-data\": true\n }, null, 8, [\"sports\", \"user\", \"displayed-sport-ids\"])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./UserMonthStats.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserMonthStats.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserMonthStats.vue?vue&type=style&index=0&id=1bcddc12&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1bcddc12\"]])\n\nexport default __exports__","import createI18n from '@/i18n'\nimport { ITranslatedSport } from '@/types/sports'\nimport { TUnit } from '@/types/units'\nimport { ICardRecord, IRecord, IRecordsBySports } from '@/types/workouts'\nimport { formatDate, getDateFormat } from '@/utils/dates'\nimport { convertDistance, units } from '@/utils/units'\n\nconst { locale } = createI18n.global\n\nexport const formatRecord = (\n record: IRecord,\n tz: string,\n useImperialUnits: boolean,\n date_format: string\n): Record => {\n const distanceUnitFrom: TUnit = 'km'\n const distanceUnitTo: TUnit = useImperialUnits\n ? units[distanceUnitFrom].defaultTarget\n : distanceUnitFrom\n const ascentUnitFrom: TUnit = 'm'\n const ascentUnitTo: TUnit = useImperialUnits\n ? units[ascentUnitFrom].defaultTarget\n : ascentUnitFrom\n let value\n switch (record.record_type) {\n case 'AS':\n case 'MS':\n value = `${convertDistance(\n +record.value,\n distanceUnitFrom,\n distanceUnitTo,\n 2\n )} ${distanceUnitTo}/h`\n break\n case 'FD':\n value = `${convertDistance(\n +record.value,\n distanceUnitFrom,\n distanceUnitTo,\n 3\n )} ${distanceUnitTo}`\n break\n case 'HA':\n value = `${convertDistance(\n +record.value,\n ascentUnitFrom,\n ascentUnitTo,\n 2\n )} ${ascentUnitTo}`\n break\n case 'LD':\n value = record.value\n break\n default:\n throw new Error(\n `Invalid record type, expected: \"AS\", \"FD\", \"HA\", \"LD\", \"MD\", got: \"${record.record_type}\"`\n )\n }\n return {\n workout_date: formatDate(record.workout_date, tz, date_format, false),\n workout_id: record.workout_id,\n id: record.id,\n record_type: record.record_type,\n value: value,\n }\n}\n\nexport const sortRecords = (a: ICardRecord, b: ICardRecord): number => {\n const recordALabel = a.label.toLowerCase()\n const recordBLabel = b.label.toLowerCase()\n return recordALabel > recordBLabel ? 1 : recordALabel < recordBLabel ? -1 : 0\n}\n\nexport const getRecordsBySports = (\n records: IRecord[],\n translatedSports: ITranslatedSport[],\n tz: string,\n useImperialUnits: boolean,\n display_ascent: boolean,\n date_format: string\n): IRecordsBySports => {\n date_format = getDateFormat(date_format, locale.value)\n return records\n .filter((r) => (display_ascent ? true : r.record_type !== 'HA'))\n .reduce((sportList: IRecordsBySports, record) => {\n const sport = translatedSports.find((s) => s.id === record.sport_id)\n if (sport && sport.label) {\n if (sportList[sport.translatedLabel] === void 0) {\n sportList[sport.translatedLabel] = {\n label: sport.label,\n color: sport.color,\n records: [],\n }\n }\n sportList[sport.translatedLabel].records.push(\n formatRecord(record, tz, useImperialUnits, date_format)\n )\n }\n return sportList\n }, {})\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-8d17c606\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"records-card\" }\nconst _hoisted_2 = { class: \"record-type\" }\nconst _hoisted_3 = { class: \"record-value\" }\nconst _hoisted_4 = { class: \"record-date\" }\n\nimport { toRefs } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { ICardRecord, IRecord, IRecordsBySports } from '@/types/workouts'\n import { sortRecords } from '@/utils/records'\n\n interface Props {\n records: IRecordsBySports\n sportTranslatedLabel: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'RecordsCard',\n props: {\n records: null,\n sportTranslatedLabel: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n records: IRecordsBySports\n sportTranslatedLabel: string\n };\n\n \n\n const { records, sportTranslatedLabel } = toRefs(props)\n\n const { t } = useI18n()\n\n function getTranslatedRecords(records: IRecord[]): ICardRecord[] {\n const translatedRecords: ICardRecord[] = []\n records.map((record) => {\n translatedRecords.push({\n ...record,\n label: t(`workouts.RECORD_${record.record_type}`),\n })\n })\n return translatedRecords.sort(sortRecords)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createVNode(_component_SportImage, {\n \"sport-label\": _unref(records).label,\n color: _unref(records).color\n }, null, 8, [\"sport-label\", \"color\"]),\n _createTextVNode(\" \" + _toDisplayString(_unref(sportTranslatedLabel)), 1)\n ]),\n content: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(getTranslatedRecords(_unref(records).records), (record) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"record\",\n key: record.id\n }, [\n _createElementVNode(\"span\", _hoisted_2, _toDisplayString(record.label), 1),\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(record.value), 1),\n _createElementVNode(\"span\", _hoisted_4, [\n _createVNode(_component_router_link, {\n to: {\n name: 'Workout',\n params: { workoutId: record.workout_id },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(record.workout_date), 1)\n ]),\n _: 2\n }, 1032, [\"to\"])\n ])\n ]))\n }), 128))\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./RecordsCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./RecordsCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./RecordsCard.vue?vue&type=style&index=0&id=8d17c606&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-8d17c606\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f0c85cb8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"user-records-section\" }\nconst _hoisted_2 = { class: \"section-title\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-trophy custom-fa-small\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = { class: \"user-records\" }\nconst _hoisted_5 = {\n key: 0,\n class: \"no-records\"\n}\n\nimport { computed } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import RecordsCard from '@/components/Dashboard/UserRecords/RecordsCard.vue'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { getRecordsBySports } from '@/utils/records'\n import { translateSports } from '@/utils/sports'\n\n interface Props {\n sports: ISport[]\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IAuthUserProfile\n };\n\n \n\n const { t } = useI18n()\n\n const recordsBySport = computed(() =>\n getRecordsBySports(\n props.user.records,\n translateSports(props.sports, t),\n props.user.timezone,\n props.user.imperial_units,\n props.user.display_ascent,\n props.user.date_format\n )\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.RECORD', 2)), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n (Object.keys(_unref(recordsBySport)).length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _toDisplayString(_ctx.$t('workouts.NO_RECORDS')), 1))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(Object.keys(_unref(recordsBySport)).sort(), (sportTranslatedLabel) => {\n return (_openBlock(), _createBlock(RecordsCard, {\n sportTranslatedLabel: sportTranslatedLabel,\n records: _unref(recordsBySport)[sportTranslatedLabel],\n key: sportTranslatedLabel,\n useImperialUnits: __props.user.imperial_units\n }, null, 8, [\"sportTranslatedLabel\", \"records\", \"useImperialUnits\"]))\n }), 128))\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=f0c85cb8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f0c85cb8\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-stats\" }\n\nimport { ComputedRef, computed, toRefs } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import StatCard from '@/components/Common/StatCard.vue'\n import { TUnit } from '@/types/units'\n import { IAuthUserProfile } from '@/types/user'\n import { convertDistance, units } from '@/utils/units'\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const { t } = useI18n()\n\n const { user } = toRefs(props)\n const userTotalDuration: ComputedRef = computed(\n () => props.user.total_duration\n )\n const totalDuration = computed(() => get_duration(userTotalDuration))\n const distanceUnitFrom: TUnit = 'km'\n const distanceUnitTo: TUnit = user.value.imperial_units\n ? units[distanceUnitFrom].defaultTarget\n : distanceUnitFrom\n const totalDistance: ComputedRef = computed(() =>\n user.value.imperial_units\n ? convertDistance(user.value.total_distance, distanceUnitFrom, distanceUnitTo, 2)\n : parseFloat(user.value.total_distance.toFixed(2)))\n const ascentUnitFrom: TUnit = 'm'\n const ascentUnitTo: TUnit = user.value.imperial_units\n ? units[ascentUnitFrom].defaultTarget\n : ascentUnitFrom\n const totalAscent: ComputedRef = computed(() =>\n user.value.imperial_units\n ? convertDistance(user.value.total_ascent, ascentUnitFrom, ascentUnitTo, 2)\n : parseFloat(user.value.total_ascent.toFixed(2)))\n\n\n function get_duration(total_duration: ComputedRef) {\n const duration = total_duration.value.match(/day/g)\n ? total_duration.value.split(', ')[1]\n : total_duration.value\n return {\n days: total_duration.value.match(/day/g)\n ? `${total_duration.value.split(' ')[0]} ${\n total_duration.value.match(/days/g)\n ? t('common.DAY', 2)\n : t('common.DAY', 1)\n }`\n : `0 ${t('common.DAY', 2)},`,\n duration: `${duration.split(':')[0]}h ${duration.split(':')[1]}min`,\n }\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(StatCard, {\n icon: \"calendar\",\n value: _unref(user).nb_workouts,\n text: _ctx.$t('workouts.WORKOUT', _unref(user).nb_workouts)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"road\",\n value: _unref(totalDistance),\n text: _unref(distanceUnitTo) === 'mi' ? 'miles' : _unref(distanceUnitTo)\n }, null, 8, [\"value\", \"text\"]),\n (_unref(user).display_ascent)\n ? (_openBlock(), _createBlock(StatCard, {\n key: 0,\n icon: \"location-arrow\",\n value: _unref(totalAscent),\n text: _unref(ascentUnitTo) === 'ft' ? 'feet' : _unref(ascentUnitTo)\n }, null, 8, [\"value\", \"text\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(StatCard, {\n icon: \"clock-o\",\n value: _unref(totalDuration).days,\n text: _unref(totalDuration).duration\n }, null, 8, [\"value\", \"text\"]),\n (!_unref(user).display_ascent)\n ? (_openBlock(), _createBlock(StatCard, {\n key: 1,\n icon: \"tags\",\n value: _unref(user).nb_sports,\n text: _ctx.$t('workouts.SPORT', _unref(user).nb_sports)\n }, null, 8, [\"value\", \"text\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=22dcb990&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4c0893c1\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n id: \"dashboard\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container mobile-menu\" }\nconst _hoisted_3 = { class: \"box\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-calendar\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_5 = [\n _hoisted_4\n]\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-bar-chart\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_7 = [\n _hoisted_6\n]\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-map-o\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_9 = [\n _hoisted_8\n]\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-trophy\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = [\n _hoisted_10\n]\nconst _hoisted_12 = { class: \"container\" }\nconst _hoisted_13 = { class: \"container dashboard-container\" }\nconst _hoisted_14 = { class: \"left-container dashboard-sub-container\" }\nconst _hoisted_15 = { class: \"right-container dashboard-sub-container\" }\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\nconst _hoisted_17 = {\n key: 1,\n class: \"app-loading\"\n}\n\nimport { ComputedRef, Ref, computed, onBeforeMount, ref } from 'vue'\n\n import Timeline from '@/components/Dashboard/Timeline.vue'\n import UserCalendar from '@/components/Dashboard/UserCalendar/index.vue'\n import UserMonthStats from '@/components/Dashboard/UserMonthStats.vue'\n import UserRecords from '@/components/Dashboard/UserRecords/index.vue'\n import UserStatsCards from '@/components/Dashboard/UserStatsCards/index.vue'\n import { AUTH_USER_STORE, SPORTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Dashboard',\n setup(__props) {\n\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const isSelected: Ref = ref('calendar')\n\n onBeforeMount(() => store.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE))\n\n function updateDisplayColumn(target: string) {\n isSelected.value = target\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Loader = _resolveComponent(\"Loader\")!\n\n return (_unref(authUser).username && _unref(sports).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'calendar' }]),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (updateDisplayColumn('calendar')))\n }, _hoisted_5, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'chart' }]),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayColumn('chart')))\n }, _hoisted_7, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'timeline' }]),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (updateDisplayColumn('timeline')))\n }, _hoisted_9, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'records' }]),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (updateDisplayColumn('records')))\n }, _hoisted_11, 2)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createVNode(UserStatsCards, { user: _unref(authUser) }, null, 8, [\"user\"])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"div\", _hoisted_14, [\n _createVNode(UserMonthStats, {\n sports: _unref(sports),\n user: _unref(authUser),\n class: _normalizeClass({ 'is-hidden': !(isSelected.value === 'chart') })\n }, null, 8, [\"sports\", \"user\", \"class\"]),\n _createVNode(UserRecords, {\n sports: _unref(sports),\n user: _unref(authUser),\n class: _normalizeClass({ 'is-hidden': !(isSelected.value === 'records') })\n }, null, 8, [\"sports\", \"user\", \"class\"])\n ]),\n _createElementVNode(\"div\", _hoisted_15, [\n _createVNode(UserCalendar, {\n sports: _unref(sports),\n user: _unref(authUser),\n class: _normalizeClass({ 'is-hidden': !(isSelected.value === 'calendar') })\n }, null, 8, [\"sports\", \"user\", \"class\"]),\n _createVNode(Timeline, {\n sports: _unref(sports),\n user: _unref(authUser),\n class: _normalizeClass({ 'is-hidden': !(isSelected.value === 'timeline') })\n }, null, 8, [\"sports\", \"user\", \"class\"])\n ])\n ]),\n _hoisted_16\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _createVNode(_component_Loader)\n ]))\n}\n}\n\n})","import script from \"./Dashboard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Dashboard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Dashboard.vue?vue&type=style&index=0&id=4c0893c1&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4c0893c1\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"not-found view\" }\n\nimport NotFound from '@/components/Common/NotFound.vue'\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'NotFoundView',\n setup(__props) {\n\n \nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(NotFound)\n ]))\n}\n}\n\n})","import script from \"./NotFoundView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NotFoundView.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createElementVNode as _createElementVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-58043acb\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"loginOrRegister\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\nconst _hoisted_3 = { class: \"container-sub\" }\nconst _hoisted_4 = { class: \"container-sub\" }\n\nimport { toRefs } from 'vue'\n\n import BikePic from '@/components/BikePic.vue'\n import LoginOrRegisterForm from '@/components/User/UserAuthForm.vue'\n\n interface Props {\n action: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'LoginOrRegister',\n props: {\n action: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n action: string\n };\n\n \n\n const { action } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(BikePic)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(LoginOrRegisterForm, { action: _unref(action) }, null, 8, [\"action\"])\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./LoginOrRegister.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./LoginOrRegister.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./LoginOrRegister.vue?vue&type=style&index=0&id=58043acb&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-58043acb\"]])\n\nexport default __exports__","import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'\n\nimport AdminApplication from '@/components/Administration/AdminApplication.vue'\nimport AdminMenu from '@/components/Administration/AdminMenu.vue'\nimport AdminSports from '@/components/Administration/AdminSports.vue'\nimport AdminUsers from '@/components/Administration/AdminUsers.vue'\nimport Profile from '@/components/User/ProfileDisplay/index.vue'\nimport UserInfos from '@/components/User/ProfileDisplay/UserInfos.vue'\nimport UserPreferences from '@/components/User/ProfileDisplay/UserPreferences.vue'\nimport ProfileEdition from '@/components/User/ProfileEdition/index.vue'\nimport UserAccountEdition from '@/components/User/ProfileEdition/UserAccountEdition.vue'\nimport UserInfosEdition from '@/components/User/ProfileEdition/UserInfosEdition.vue'\nimport UserPictureEdition from '@/components/User/ProfileEdition/UserPictureEdition.vue'\nimport UserPreferencesEdition from '@/components/User/ProfileEdition/UserPreferencesEdition.vue'\nimport AddUserApp from '@/components/User/UserApps/AddUserApp.vue'\nimport AuthorizeUserApp from '@/components/User/UserApps/AuthorizeUserApp.vue'\nimport UserApps from '@/components/User/UserApps/index.vue'\nimport UserApp from '@/components/User/UserApps/UserApp.vue'\nimport UserAppsList from '@/components/User/UserApps/UserAppsList.vue'\nimport UserSportPreferences from '@/components/User/UserSportPreferences.vue'\nimport store from '@/store'\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport AboutView from '@/views/AboutView.vue'\nimport Dashboard from '@/views/Dashboard.vue'\nimport NotFoundView from '@/views/NotFoundView.vue'\nimport LoginOrRegister from '@/views/user/LoginOrRegister.vue'\n\nconst getTabFromPath = (path: string): string => {\n const regex = /(\\/profile)(\\/edit)*(\\/*)/\n const tag = path.replace(regex, '').toUpperCase()\n return tag === '' ? 'PROFILE' : tag.toUpperCase()\n}\n\nconst routes: Array = [\n {\n path: '/',\n name: 'Dashboard',\n component: Dashboard,\n },\n {\n path: '/login',\n name: 'Login',\n component: LoginOrRegister,\n props: { action: 'login' },\n },\n {\n path: '/register',\n name: 'Register',\n component: LoginOrRegister,\n props: { action: 'register' },\n },\n {\n path: '/account-confirmation',\n name: 'AccountConfirmation',\n component: () =>\n import(\n /* webpackChunkName: 'profile' */ '@/views/user/AccountConfirmationView.vue'\n ),\n },\n {\n path: '/account-confirmation/resend',\n name: 'AccountConfirmationResend',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/AccountConfirmationResendView.vue'\n ),\n props: { action: 'account-confirmation-resend' },\n },\n {\n path: '/account-confirmation/email-sent',\n name: 'AccountConfirmationEmailSend',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/AccountConfirmationResendView.vue'\n ),\n props: { action: 'email-sent' },\n },\n {\n path: '/password-reset/sent',\n name: 'PasswordEmailSent',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'request-sent' },\n },\n {\n path: '/password-reset/request',\n name: 'PasswordResetRequest',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'reset-request' },\n },\n {\n path: '/password-reset/password-updated',\n name: 'PasswordUpdated',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'password-updated' },\n },\n {\n path: '/password-reset',\n name: 'PasswordReset',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'reset' },\n },\n {\n path: '/email-update',\n name: 'EmailUpdate',\n component: () =>\n import(\n /* webpackChunkName: 'profile' */ '@/views/user/EmailUpdateView.vue'\n ),\n },\n {\n path: '/profile',\n name: 'Profile',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/ProfileView.vue'),\n children: [\n {\n path: '',\n name: 'UserProfile',\n component: Profile,\n props: (route) => ({\n tab: getTabFromPath(route.path),\n }),\n children: [\n {\n path: '',\n name: 'UserInfos',\n component: UserInfos,\n },\n {\n path: 'preferences',\n name: 'UserPreferences',\n component: UserPreferences,\n },\n {\n path: 'sports',\n name: 'UserSportPreferences',\n component: UserSportPreferences,\n props: { isEdition: false },\n },\n {\n path: 'apps',\n name: 'UserApps',\n component: UserApps,\n children: [\n {\n path: '',\n name: 'UserAppsList',\n component: UserAppsList,\n },\n {\n path: ':id',\n name: 'UserApp',\n component: UserApp,\n },\n {\n path: ':id/created',\n name: 'CreatedUserApp',\n component: UserApp,\n props: { afterCreation: true },\n },\n {\n path: 'new',\n name: 'AddUserApp',\n component: AddUserApp,\n },\n {\n path: 'authorize',\n name: 'AuthorizeUserApp',\n component: AuthorizeUserApp,\n },\n ],\n },\n ],\n },\n {\n path: 'edit',\n name: 'UserProfileEdition',\n component: ProfileEdition,\n props: (route) => ({\n tab: getTabFromPath(route.path),\n }),\n children: [\n {\n path: '',\n name: 'UserInfosEdition',\n component: UserInfosEdition,\n },\n {\n path: 'account',\n name: 'UserAccountEdition',\n component: UserAccountEdition,\n },\n {\n path: 'picture',\n name: 'UserPictureEdition',\n component: UserPictureEdition,\n },\n {\n path: 'preferences',\n name: 'UserPreferencesEdition',\n component: UserPreferencesEdition,\n },\n {\n path: 'sports',\n name: 'UserSportPreferencesEdition',\n component: UserSportPreferences,\n props: { isEdition: true },\n },\n ],\n },\n ],\n },\n {\n path: '/statistics',\n name: 'Statistics',\n component: () =>\n import(/* webpackChunkName: 'statistics' */ '@/views/StatisticsView.vue'),\n },\n {\n path: '/users/:username',\n name: 'User',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/UserView.vue'),\n },\n {\n path: '/workouts',\n name: 'Workouts',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/WorkoutsView.vue'\n ),\n },\n {\n path: '/workouts/:workoutId',\n name: 'Workout',\n component: () =>\n import(/* webpackChunkName: 'workouts' */ '@/views/workouts/Workout.vue'),\n props: { displaySegment: false },\n },\n {\n path: '/workouts/:workoutId/edit',\n name: 'EditWorkout',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/EditWorkout.vue'\n ),\n },\n {\n path: '/workouts/:workoutId/segment/:segmentId',\n name: 'WorkoutSegment',\n component: () =>\n import(/* webpackChunkName: 'workouts' */ '@/views/workouts/Workout.vue'),\n props: { displaySegment: true },\n },\n {\n path: '/workouts/add',\n name: 'AddWorkout',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/AddWorkout.vue'\n ),\n },\n {\n path: '/admin',\n name: 'Administration',\n component: () =>\n import(/* webpackChunkName: 'admin' */ '@/views/AdminView.vue'),\n children: [\n {\n path: '',\n name: 'AdministrationMenu',\n component: AdminMenu,\n },\n {\n path: 'application',\n name: 'ApplicationAdministration',\n component: AdminApplication,\n },\n {\n path: 'application/edit',\n name: 'ApplicationAdministrationEdition',\n component: AdminApplication,\n props: { edition: true },\n },\n {\n path: 'sports',\n name: 'SportsAdministration',\n component: AdminSports,\n },\n {\n path: 'users/:username',\n name: 'UserFromAdmin',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/UserView.vue'),\n props: { fromAdmin: true },\n },\n {\n path: 'users',\n name: 'UsersAdministration',\n component: AdminUsers,\n },\n ],\n },\n {\n path: '/about',\n name: 'About',\n component: AboutView,\n },\n {\n path: '/:pathMatch(.*)*',\n name: 'not-found',\n component: NotFoundView,\n },\n]\n\nconst router = createRouter({\n history: createWebHistory(process.env.BASE_URL),\n routes,\n})\n\nconst pathsWithoutAuthentication = [\n '/login',\n '/password-reset',\n '/password-reset/password-updated',\n '/password-reset/request',\n '/password-reset/sent',\n '/register',\n '/account-confirmation',\n '/account-confirmation/resend',\n '/account-confirmation/email-sent',\n]\n\nconst pathsWithoutChecks = ['/email-update', '/about']\n\nrouter.beforeEach((to, from, next) => {\n store\n .dispatch(AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER)\n .then(() => {\n if (pathsWithoutChecks.includes(to.path)) {\n return next()\n }\n if (\n store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n pathsWithoutAuthentication.includes(to.path)\n ) {\n return next('/')\n }\n if (\n !store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n !pathsWithoutAuthentication.includes(to.path)\n ) {\n const path =\n to.path === '/'\n ? { path: '/login' }\n : { path: '/login', query: { from: to.fullPath } }\n next(path)\n } else {\n next()\n }\n })\n .catch((error) => {\n console.error(error)\n next()\n })\n})\n\nexport default router\n","export enum AuthUserActions {\n CHECK_AUTH_USER = 'CHECK_AUTH_USER',\n CONFIRM_ACCOUNT = 'CONFIRM_ACCOUNT',\n CONFIRM_EMAIL = 'CONFIRM_EMAIL',\n DELETE_ACCOUNT = 'DELETE_ACCOUNT',\n DELETE_PICTURE = 'DELETE_PICTURE',\n GET_USER_PROFILE = 'GET_USER_PROFILE',\n LOGIN_OR_REGISTER = 'LOGIN_OR_REGISTER',\n LOGOUT = 'LOGOUT',\n SEND_PASSWORD_RESET_REQUEST = 'SEND_PASSWORD_RESET_REQUEST',\n RESEND_ACCOUNT_CONFIRMATION_EMAIL = 'RESEND_ACCOUNT_CONFIRMATION_EMAIL',\n RESET_USER_PASSWORD = 'RESET_USER_PASSWORD',\n RESET_USER_SPORT_PREFERENCES = 'RESET_USER_SPORT_PREFERENCES',\n UPDATE_USER_ACCOUNT = 'UPDATE_USER_ACCOUNT',\n UPDATE_USER_PICTURE = 'UPDATE_USER_PICTURE',\n UPDATE_USER_PROFILE = 'UPDATE_USER_PROFILE',\n UPDATE_USER_PREFERENCES = 'UPDATE_USER_PREFERENCES',\n UPDATE_USER_SPORT_PREFERENCES = 'UPDATE_USER_SPORT_PREFERENCES',\n}\n\nexport enum AuthUserGetters {\n AUTH_TOKEN = 'AUTH_TOKEN',\n AUTH_USER_PROFILE = 'AUTH_USER_PROFILE',\n IS_ADMIN = 'IS_ADMIN',\n IS_AUTHENTICATED = 'IS_AUTHENTICATED',\n IS_SUCCESS = 'IS_SUCCESS',\n IS_REGISTRATION_SUCCESS = 'IS_REGISTRATION_SUCCESS',\n USER_LOADING = 'USER_LOADING',\n}\n\nexport enum AuthUserMutations {\n CLEAR_AUTH_USER_TOKEN = 'CLEAR_AUTH_USER_TOKEN',\n UPDATE_AUTH_TOKEN = 'UPDATE_AUTH_TOKEN',\n UPDATE_AUTH_USER_PROFILE = 'UPDATE_AUTH_USER_PROFILE',\n UPDATE_IS_SUCCESS = 'UPDATE_USER_IS_SUCCESS',\n UPDATE_IS_REGISTRATION_SUCCESS = 'UPDATE_IS_REGISTRATION_SUCCESS',\n UPDATE_USER_LOADING = 'UPDATE_USER_LOADING',\n}\n","export enum OAuth2Actions {\n AUTHORIZE_CLIENT = 'AUTHORIZE_CLIENT',\n CREATE_CLIENT = 'CREATE_CLIENT',\n DELETE_CLIENT = 'DELETE_CLIENT',\n GET_CLIENTS = 'GET_CLIENTS',\n GET_CLIENT_BY_CLIENT_ID = 'GET_CLIENT_BY_CLIENT_ID',\n GET_CLIENT_BY_ID = 'GET_CLIENT_BY_ID',\n REVOKE_ALL_TOKENS = 'REVOKE_ALL_TOKENS',\n}\n\nexport enum OAuth2Getters {\n CLIENT = 'CLIENT',\n CLIENTS = 'CLIENTS',\n CLIENTS_PAGINATION = 'CLIENTS_PAGINATION',\n REVOCATION_SUCCESSFUL = 'REVOCATION_SUCCESSFUL',\n}\n\nexport enum OAuth2Mutations {\n EMPTY_CLIENT = 'EMPTY_CLIENT',\n SET_CLIENT = 'SET_CLIENT',\n SET_CLIENTS = 'SET_CLIENTS',\n SET_CLIENTS_PAGINATION = 'SET_CLIENTS_PAGINATION',\n SET_REVOCATION_SUCCESSFUL = 'SET_REVOCATION_SUCCESSFUL',\n}\n","export enum RootActions {\n GET_APPLICATION_CONFIG = 'GET_APPLICATION_CONFIG',\n GET_APPLICATION_STATS = 'GET_APPLICATION_STATS',\n UPDATE_APPLICATION_CONFIG = 'UPDATE_APPLICATION_CONFIG',\n UPDATE_APPLICATION_LANGUAGE = 'UPDATE_APPLICATION_LANGUAGE',\n}\n\nexport enum RootGetters {\n APP_CONFIG = 'APP_CONFIG',\n APP_LOADING = 'APP_LOADING',\n APP_STATS = 'APP_STATS',\n ERROR_MESSAGES = 'ERROR_MESSAGES',\n LANGUAGE = 'LANGUAGE',\n LOCALE = 'LOCALE', // date-fns\n}\n\nexport enum RootMutations {\n EMPTY_ERROR_MESSAGES = 'EMPTY_ERROR_MESSAGES',\n SET_ERROR_MESSAGES = 'SET_ERROR_MESSAGES',\n UPDATE_APPLICATION_CONFIG = 'UPDATE_APPLICATION_CONFIG',\n UPDATE_APPLICATION_LOADING = 'UPDATE_APPLICATION_LOADING',\n UPDATE_APPLICATION_STATS = 'UPDATE_APPLICATION_STATS',\n UPDATE_LANG = 'UPDATE_LANG',\n}\n","export enum SportsActions {\n GET_SPORTS = 'GET_SPORTS',\n UPDATE_SPORTS = 'UPDATE_SPORTS',\n}\n\nexport enum SportsGetters {\n SPORTS = 'SPORTS',\n}\n\nexport enum SportsMutation {\n SET_SPORTS = 'SET_SPORTS',\n}\n","export enum StatisticsActions {\n GET_USER_STATS = 'GET_USER_STATS',\n}\n\nexport enum StatisticsGetters {\n USER_STATS = 'USER_STATS',\n}\n\nexport enum StatisticsMutations {\n EMPTY_USER_STATS = 'EMPTY_USER_STATS',\n UPDATE_USER_STATS = 'UPDATE_USER_STATS',\n}\n","export enum UsersActions {\n EMPTY_USER = 'EMPTY_USER',\n EMPTY_USERS = 'EMPTY_USERS',\n GET_USER = 'GET_USER',\n GET_USERS = 'GET_USERS',\n UPDATE_USER = 'UPDATE_USER',\n DELETE_USER_ACCOUNT = 'DELETE_USER_ACCOUNT',\n}\n\nexport enum UsersGetters {\n USER = 'USER',\n USERS = 'USERS',\n USERS_IS_SUCCESS = 'USERS_IS_SUCCESS',\n USERS_LOADING = 'USERS_LOADING',\n USERS_PAGINATION = 'USERS_PAGINATION',\n}\n\nexport enum UsersMutations {\n UPDATE_USER = 'UPDATE_USER',\n UPDATE_USER_IN_USERS = 'UPDATE_USER_IN_USERS',\n UPDATE_USERS = 'UPDATE_USERS',\n UPDATE_USERS_LOADING = 'UPDATE_USERS_LOADING',\n UPDATE_USERS_PAGINATION = 'UPDATE_USERS_PAGINATION',\n UPDATE_IS_SUCCESS = 'UPDATE_IS_SUCCESS',\n}\n","import {\n AuthUserActions,\n AuthUserGetters,\n AuthUserMutations,\n} from '@/store/modules/authUser/enums'\nimport {\n OAuth2Actions,\n OAuth2Getters,\n OAuth2Mutations,\n} from '@/store/modules/oauth2/enums'\nimport {\n RootActions,\n RootGetters,\n RootMutations,\n} from '@/store/modules/root/enums'\nimport {\n SportsActions,\n SportsGetters,\n SportsMutation,\n} from '@/store/modules/sports/enums'\nimport {\n StatisticsActions,\n StatisticsGetters,\n StatisticsMutations,\n} from '@/store/modules/statistics/enums'\nimport {\n UsersActions,\n UsersGetters,\n UsersMutations,\n} from '@/store/modules/users/enums'\nimport {\n WorkoutsActions,\n WorkoutsGetters,\n WorkoutsMutations,\n} from '@/store/modules/workouts/enums'\n\nexport const ROOT_STORE = {\n ACTIONS: RootActions,\n GETTERS: RootGetters,\n MUTATIONS: RootMutations,\n}\n\nexport const SPORTS_STORE = {\n ACTIONS: SportsActions,\n GETTERS: SportsGetters,\n MUTATIONS: SportsMutation,\n}\n\nexport const STATS_STORE = {\n ACTIONS: StatisticsActions,\n GETTERS: StatisticsGetters,\n MUTATIONS: StatisticsMutations,\n}\n\nexport const AUTH_USER_STORE = {\n ACTIONS: AuthUserActions,\n GETTERS: AuthUserGetters,\n MUTATIONS: AuthUserMutations,\n}\nexport const OAUTH2_STORE = {\n ACTIONS: OAuth2Actions,\n GETTERS: OAuth2Getters,\n MUTATIONS: OAuth2Mutations,\n}\n\nexport const USERS_STORE = {\n ACTIONS: UsersActions,\n GETTERS: UsersGetters,\n MUTATIONS: UsersMutations,\n}\n\nexport const WORKOUTS_STORE = {\n ACTIONS: WorkoutsActions,\n GETTERS: WorkoutsGetters,\n MUTATIONS: WorkoutsMutations,\n}\n","import axios from 'axios'\n\nimport { pendingRequests, removeRequestIfPending } from '@/api/pending'\nimport { getApiUrl } from '@/utils'\n\nconst api = axios.create({\n baseURL: getApiUrl(),\n})\n\napi.interceptors.request.use(\n (config) => {\n const controller = new AbortController()\n config.signal = controller.signal\n const requestKey = removeRequestIfPending(config)\n pendingRequests.set(requestKey, controller)\n return config\n },\n (error) => Promise.reject(error)\n)\n\napi.interceptors.response.use(\n (response) => {\n removeRequestIfPending(response.config)\n return response\n },\n (error) => {\n if (error.message !== 'canceled') {\n removeRequestIfPending(error.response.config)\n }\n return Promise.reject(error)\n }\n)\n\nexport default api\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { IUsersActions, IUsersState } from '@/store/modules/users/types'\nimport { TPaginationPayload } from '@/types/api'\nimport { IAdminUserPayload, IUserDeletionPayload } from '@/types/user'\nimport { handleError } from '@/utils'\n\nexport const deleteUserAccount = (\n context:\n | ActionContext\n | ActionContext,\n payload: IUserDeletionPayload\n): void => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .delete(`users/${payload.username}`)\n .then((res) => {\n if (res.status === 204) {\n if (payload.fromAdmin) {\n router.push('/admin/users')\n } else {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.LOGOUT)\n .then(() => router.push('/'))\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree & IUsersActions = {\n [USERS_STORE.ACTIONS.EMPTY_USER](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USER, {})\n },\n [USERS_STORE.ACTIONS.EMPTY_USERS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS, [])\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION, {})\n },\n [USERS_STORE.ACTIONS.GET_USER](\n context: ActionContext,\n username: string\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, true)\n authApi\n .get(`users/${username}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER,\n res.data.data.users[0]\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.GET_USERS](\n context: ActionContext,\n payload: TPaginationPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, true)\n authApi\n .get('users', { params: payload })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USERS,\n res.data.data.users\n )\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION,\n res.data.pagination\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.UPDATE_USER](\n context: ActionContext,\n payload: IAdminUserPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n const data: Record = {}\n if (payload.admin !== undefined) {\n data.admin = payload.admin\n }\n if (payload.resetPassword) {\n data.reset_password = payload.resetPassword\n }\n if (payload.activate) {\n data.activate = payload.activate\n }\n if (payload.new_email !== undefined) {\n data.new_email = payload.new_email\n }\n authApi\n .patch(`users/${payload.username}`, data)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER_IN_USERS,\n res.data.data.users[0]\n )\n if (payload.resetPassword || payload.new_email) {\n context.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, true)\n }\n if (payload.activate || payload.new_email) {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER,\n res.data.data.users[0]\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.DELETE_USER_ACCOUNT](\n context: ActionContext,\n payload: IUserDeletionPayload\n ): void {\n deleteUserAccount(context, {\n username: payload.username,\n fromAdmin: true,\n })\n },\n}\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport api from '@/api/defaultApi'\nimport router from '@/router'\nimport {\n AUTH_USER_STORE,\n ROOT_STORE,\n SPORTS_STORE,\n STATS_STORE,\n USERS_STORE,\n WORKOUTS_STORE,\n} from '@/store/constants'\nimport {\n IAuthUserActions,\n IAuthUserState,\n} from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { deleteUserAccount } from '@/store/modules/users/actions'\nimport {\n ILoginOrRegisterData,\n IUserAccountPayload,\n IUserDeletionPayload,\n IUserAccountUpdatePayload,\n IUserEmailPayload,\n IUserPasswordResetPayload,\n IUserPayload,\n IUserPicturePayload,\n IUserPreferencesPayload,\n IUserSportPreferencesPayload,\n} from '@/types/user'\nimport { handleError } from '@/utils'\n\nconst removeAuthUserData = (\n context: ActionContext\n) => {\n localStorage.removeItem('authToken')\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(STATS_STORE.MUTATIONS.EMPTY_USER_STATS)\n context.commit(AUTH_USER_STORE.MUTATIONS.CLEAR_AUTH_USER_TOKEN)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS, [])\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUTS)\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n router.push('/login')\n}\n\nexport const actions: ActionTree &\n IAuthUserActions = {\n [AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER](\n context: ActionContext\n ): void {\n if (\n window.localStorage.authToken &&\n !context.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]\n ) {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN,\n window.localStorage.authToken\n )\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n }\n // after logout in another tab\n if (\n !window.localStorage.authToken &&\n context.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]\n ) {\n removeAuthUserData(context)\n }\n },\n [AUTH_USER_STORE.ACTIONS.CONFIRM_ACCOUNT](\n context: ActionContext,\n payload: IUserAccountUpdatePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/account/confirm', { token: payload.token })\n .then((res) => {\n if (res.data.status === 'success') {\n const token = res.data.auth_token\n window.localStorage.setItem('authToken', token)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN, token)\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n },\n [AUTH_USER_STORE.ACTIONS.CONFIRM_EMAIL](\n context: ActionContext,\n payload: IUserAccountUpdatePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n api\n .post('/auth/email/update', { token: payload.token })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, true)\n if (payload.refreshUser) {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => {\n return router.push('/profile/edit/account')\n })\n }\n router.push('/profile/edit/account')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n },\n [AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('auth/profile')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n if (res.data.data.language) {\n context.dispatch(\n ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE,\n res.data.data.language\n )\n }\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n removeAuthUserData(context)\n }\n })\n .catch((error) => {\n if (error.message !== 'canceled') {\n handleError(context, error)\n removeAuthUserData(context)\n }\n })\n },\n [AUTH_USER_STORE.ACTIONS.LOGIN_OR_REGISTER](\n context: ActionContext,\n data: ILoginOrRegisterData\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,\n false\n )\n api\n .post(`/auth/${data.actionType}`, data.formData)\n .then((res) => {\n if (res.data.status === 'success') {\n if (data.actionType === 'login') {\n const token = res.data.auth_token\n window.localStorage.setItem('authToken', token)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN, token)\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() =>\n router.push(\n typeof data.redirectUrl === 'string' ? data.redirectUrl : '/'\n )\n )\n } else {\n router\n .push('/login')\n .then(() =>\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,\n true\n )\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.LOGOUT](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .post('auth/logout')\n .then((res) => {\n if (res.data.status === 'success') {\n removeAuthUserData(context)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PROFILE](\n context: ActionContext,\n payload: IUserPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n router.push('/profile')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_ACCOUNT](\n context: ActionContext,\n payload: IUserAccountPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n authApi\n .patch('auth/profile/edit/account', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, true)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PREFERENCES](\n context: ActionContext,\n payload: IUserPreferencesPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit/preferences', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n context\n .dispatch(\n ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE,\n res.data.data.language\n )\n .then(() => router.push('/profile/preferences'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.RESET_USER_SPORT_PREFERENCES](\n context: ActionContext,\n sportId: number\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .delete(`auth/profile/reset/sports/${sportId}`)\n .then((res) => {\n if (res.status === 204) {\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n })\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_SPORT_PREFERENCES](\n context: ActionContext,\n payload: IUserSportPreferencesPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit/sports', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n })\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PICTURE](\n context: ActionContext,\n payload: IUserPicturePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n if (!payload.picture) {\n throw new Error('No file part')\n }\n const form = new FormData()\n form.append('file', payload.picture)\n authApi\n .post('auth/picture', form, {\n headers: {\n 'content-type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/profile'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.DELETE_ACCOUNT](\n context: ActionContext,\n payload: IUserDeletionPayload\n ): void {\n deleteUserAccount(context, payload)\n },\n [AUTH_USER_STORE.ACTIONS.DELETE_PICTURE](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .delete(`auth/picture`)\n .then((res) => {\n if (res.status === 204) {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/profile'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.SEND_PASSWORD_RESET_REQUEST](\n context: ActionContext,\n payload: IUserEmailPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/password/reset-request', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/password-reset/sent')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL](\n context: ActionContext,\n payload: IUserEmailPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/account/resend-confirmation', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/account-confirmation/email-sent')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.RESET_USER_PASSWORD](\n context: ActionContext,\n payload: IUserPasswordResetPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/password/update', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/password-reset/password-updated')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport {\n IAuthUserGetters,\n IAuthUserState,\n} from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree &\n IAuthUserGetters = {\n [AUTH_USER_STORE.GETTERS.AUTH_TOKEN]: (state: IAuthUserState) => {\n return state.authToken\n },\n [AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]: (state: IAuthUserState) => {\n return state.authUserProfile\n },\n [AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]: (state: IAuthUserState) => {\n return state.authToken !== null\n },\n [AUTH_USER_STORE.GETTERS.IS_ADMIN]: (state: IAuthUserState) => {\n return state.authUserProfile && state.authUserProfile.admin\n },\n [AUTH_USER_STORE.GETTERS.IS_REGISTRATION_SUCCESS]: (\n state: IAuthUserState\n ) => {\n return state.isRegistrationSuccess\n },\n [AUTH_USER_STORE.GETTERS.IS_SUCCESS]: (state: IAuthUserState) => {\n return state.isSuccess\n },\n [AUTH_USER_STORE.GETTERS.USER_LOADING]: (state: IAuthUserState) => {\n return state.loading\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport {\n IAuthUserState,\n TAuthUserMutations,\n} from '@/store/modules/authUser/types'\nimport { IAuthUserProfile } from '@/types/user'\n\nexport const mutations: MutationTree & TAuthUserMutations = {\n [AUTH_USER_STORE.MUTATIONS.CLEAR_AUTH_USER_TOKEN](state: IAuthUserState) {\n state.authToken = null\n state.authUserProfile = {}\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN](\n state: IAuthUserState,\n authToken: string\n ) {\n state.authToken = authToken\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE](\n state: IAuthUserState,\n authUserProfile: IAuthUserProfile\n ) {\n state.authUserProfile = authUserProfile\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS](\n state: IAuthUserState,\n isRegistrationSuccess: boolean\n ) {\n state.isRegistrationSuccess = isRegistrationSuccess\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS](\n state: IAuthUserState,\n isSuccess: boolean\n ) {\n state.isSuccess = isSuccess\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING](\n state: IAuthUserState,\n loading: boolean\n ) {\n state.loading = loading\n },\n}\n","import { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IAuthUserProfile } from '@/types/user'\n\nexport const authUserState: IAuthUserState = {\n authToken: null,\n authUserProfile: {},\n isSuccess: false,\n isRegistrationSuccess: false,\n loading: false,\n}\n","import { Module } from 'vuex'\n\nimport { actions } from '@/store/modules/authUser/actions'\nimport { getters } from '@/store/modules/authUser/getters'\nimport { mutations } from '@/store/modules/authUser/mutations'\nimport { authUserState } from '@/store/modules/authUser/state'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst authUser: Module = {\n state: authUserState,\n actions,\n getters,\n mutations,\n}\n\nexport default authUser\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\nimport { IOAuth2Actions, IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IOauth2ClientsPayload,\n IOAuth2ClientPayload,\n IOAuth2ClientAuthorizePayload,\n} from '@/types/oauth'\nimport { handleError } from '@/utils'\n\nconst get_client = (\n context: ActionContext,\n url: string\n) => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get(url)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(OAUTH2_STORE.MUTATIONS.SET_CLIENT, res.data.data.client)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree & IOAuth2Actions = {\n [OAUTH2_STORE.ACTIONS.AUTHORIZE_CLIENT](\n context: ActionContext,\n payload: IOAuth2ClientAuthorizePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n const form = new FormData()\n form.set('client_id', payload.client_id)\n form.set('response_type', payload.response_type)\n form.set('scope', payload.scope)\n form.set('confirm', 'true')\n if (payload.state) {\n form.set('state', payload.state)\n }\n if (payload.code_challenge) {\n form.set('code_challenge', payload.code_challenge)\n }\n if (payload.code_challenge_method) {\n form.set('code_challenge_method', payload.code_challenge_method)\n }\n\n authApi\n .post('oauth/authorize', form, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.status == 200 && res.data.redirect_url) {\n window.location.href = res.data.redirect_url\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [OAUTH2_STORE.ACTIONS.CREATE_CLIENT](\n context: ActionContext,\n payload: IOAuth2ClientPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .post('oauth/apps', payload)\n .then((res) => {\n if (res.data.status === 'created') {\n context.commit(\n OAUTH2_STORE.MUTATIONS.SET_CLIENT,\n res.data.data.client\n )\n router.push(`/profile/apps/${res.data.data.client.id}/created`)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [OAUTH2_STORE.ACTIONS.DELETE_CLIENT](\n context: ActionContext,\n id: number\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .delete(`oauth/apps/${id}`)\n .then((res) => {\n if (res.status === 204) {\n context\n .dispatch(OAUTH2_STORE.ACTIONS.GET_CLIENTS)\n .then(() => router.push('/profile/apps'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_CLIENT_ID](\n context: ActionContext,\n client_id: string\n ): void {\n get_client(context, `oauth/apps/${client_id}`)\n },\n [OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_ID](\n context: ActionContext,\n id: number\n ): void {\n get_client(context, `oauth/apps/${id}/by_id`)\n },\n [OAUTH2_STORE.ACTIONS.GET_CLIENTS](\n context: ActionContext,\n payload: IOauth2ClientsPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('oauth/apps', {\n params: payload,\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n OAUTH2_STORE.MUTATIONS.SET_CLIENTS,\n res.data.data.clients\n )\n context.commit(\n OAUTH2_STORE.MUTATIONS.SET_CLIENTS_PAGINATION,\n res.data.pagination\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [OAUTH2_STORE.ACTIONS.REVOKE_ALL_TOKENS](\n context: ActionContext,\n id: number\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(OAUTH2_STORE.MUTATIONS.SET_REVOCATION_SUCCESSFUL, false)\n authApi\n .post(`oauth/apps/${id}/revoke`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(OAUTH2_STORE.MUTATIONS.SET_REVOCATION_SUCCESSFUL, true)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { OAUTH2_STORE } from '@/store/constants'\nimport { IOAuth2Getters, IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree & IOAuth2Getters = {\n [OAUTH2_STORE.GETTERS.CLIENT]: (state: IOAuth2State) => state.client,\n [OAUTH2_STORE.GETTERS.CLIENTS]: (state: IOAuth2State) => state.clients,\n [OAUTH2_STORE.GETTERS.CLIENTS_PAGINATION]: (state: IOAuth2State) =>\n state.pagination,\n [OAUTH2_STORE.GETTERS.REVOCATION_SUCCESSFUL]: (state: IOAuth2State) =>\n state.revocationSuccessful,\n}\n","import { MutationTree } from 'vuex'\n\nimport { OAUTH2_STORE } from '@/store/constants'\nimport { IOAuth2State, TOAuth2Mutations } from '@/store/modules/oauth2/types'\nimport { IPagination } from '@/types/api'\nimport { IOAuth2Client } from '@/types/oauth'\n\nexport const mutations: MutationTree & TOAuth2Mutations = {\n [OAUTH2_STORE.MUTATIONS.SET_CLIENT](\n state: IOAuth2State,\n client: IOAuth2Client\n ) {\n state.client = client\n },\n [OAUTH2_STORE.MUTATIONS.EMPTY_CLIENT](state: IOAuth2State) {\n state.client = {}\n },\n [OAUTH2_STORE.MUTATIONS.SET_CLIENTS](\n state: IOAuth2State,\n clients: IOAuth2Client[]\n ) {\n state.clients = clients\n },\n [OAUTH2_STORE.MUTATIONS.SET_CLIENTS_PAGINATION](\n state: IOAuth2State,\n pagination: IPagination\n ) {\n state.pagination = pagination\n },\n [OAUTH2_STORE.MUTATIONS.SET_REVOCATION_SUCCESSFUL](\n state: IOAuth2State,\n revocationSuccessful: boolean\n ) {\n state.revocationSuccessful = revocationSuccessful\n },\n}\n","import { IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IPagination } from '@/types/api'\nimport { IOAuth2Client } from '@/types/oauth'\n\nexport const oAuth2State: IOAuth2State = {\n client: {},\n clients: [],\n pagination: {},\n revocationSuccessful: false,\n}\n","import { Module } from 'vuex'\n\nimport { actions } from '@/store/modules/oauth2/actions'\nimport { getters } from '@/store/modules/oauth2/getters'\nimport { mutations } from '@/store/modules/oauth2/mutations'\nimport { oAuth2State } from '@/store/modules/oauth2/state'\nimport { IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst oauth2: Module = {\n state: oAuth2State,\n actions,\n getters,\n mutations,\n}\n\nexport default oauth2\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport createI18n from '@/i18n'\nimport router from '@/router'\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootActions, IRootState } from '@/store/modules/root/types'\nimport { TAppConfigForm } from '@/types/application'\nimport { handleError } from '@/utils'\n\nconst { locale } = createI18n.global\n\nexport const actions: ActionTree & IRootActions = {\n [ROOT_STORE.ACTIONS.GET_APPLICATION_CONFIG](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING, true)\n authApi\n .get('config')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG,\n res.data.data\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING, false)\n )\n },\n [ROOT_STORE.ACTIONS.GET_APPLICATION_STATS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('stats/all')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_STATS,\n res.data.data\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [ROOT_STORE.ACTIONS.UPDATE_APPLICATION_CONFIG](\n context: ActionContext,\n payload: TAppConfigForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .patch('config', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG,\n res.data.data\n )\n router.push('/admin/application')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE](\n context: ActionContext,\n language: string\n ): void {\n document.querySelector('html')?.setAttribute('lang', language)\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_LANG, language)\n locale.value = language\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootGetters, IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree & IRootGetters = {\n [ROOT_STORE.GETTERS.APP_CONFIG]: (state: IRootState) => {\n return state.application.config\n },\n [ROOT_STORE.GETTERS.APP_LOADING]: (state: IRootState) => {\n return state.appLoading\n },\n [ROOT_STORE.GETTERS.APP_STATS]: (state: IRootState) => {\n return state.application.statistics\n },\n [ROOT_STORE.GETTERS.ERROR_MESSAGES]: (state: IRootState) => {\n return state.errorMessages\n },\n [ROOT_STORE.GETTERS.LANGUAGE]: (state: IRootState) => {\n return state.language\n },\n [ROOT_STORE.GETTERS.LOCALE]: (state: IRootState) => {\n return state.locale\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootState, TRootMutations } from '@/store/modules/root/types'\nimport { TAppConfig, IAppStatistics } from '@/types/application'\nimport { localeFromLanguage } from '@/utils/locales'\n\nexport const mutations: MutationTree & TRootMutations = {\n [ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES](state: IRootState) {\n state.errorMessages = null\n },\n [ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES](\n state: IRootState,\n errorMessages: string | string[]\n ) {\n state.errorMessages = errorMessages\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG](\n state: IRootState,\n config: TAppConfig\n ) {\n state.application.config = config\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING](\n state: IRootState,\n loading: boolean\n ) {\n state.appLoading = loading\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_STATS](\n state: IRootState,\n statistics: IAppStatistics\n ) {\n state.application.statistics = statistics\n },\n [ROOT_STORE.MUTATIONS.UPDATE_LANG](state: IRootState, language: string) {\n state.language = language\n state.locale = localeFromLanguage[language]\n },\n}\n","import { enUS } from 'date-fns/locale'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { IApplication } from '@/types/application'\n\nexport const state: IRootState = {\n root: true,\n language: 'en',\n locale: enUS,\n errorMessages: null,\n application: {\n statistics: {\n sports: 0,\n uploads_dir_size: 0,\n users: 0,\n workouts: 0,\n },\n },\n appLoading: false,\n}\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport { AUTH_USER_STORE, ROOT_STORE, SPORTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsActions, ISportsState } from '@/store/modules/sports/types'\nimport { ISportPayload } from '@/types/sports'\nimport { handleError } from '@/utils'\n\nexport const actions: ActionTree & ISportsActions = {\n [SPORTS_STORE.ACTIONS.GET_SPORTS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('sports')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n SPORTS_STORE.MUTATIONS.SET_SPORTS,\n res.data.data.sports\n )\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [SPORTS_STORE.ACTIONS.UPDATE_SPORTS](\n context: ActionContext,\n payload: ISportPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .patch(`sports/${payload.id}`, { is_active: payload.isActive })\n .then((res) => {\n if (res.data.status === 'success') {\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { SPORTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsGetters, ISportsState } from '@/store/modules/sports/types'\n\nexport const getters: GetterTree & ISportsGetters = {\n [SPORTS_STORE.GETTERS.SPORTS]: (state: ISportsState) => state.sports,\n}\n","import { MutationTree } from 'vuex'\n\nimport { SPORTS_STORE } from '@/store/constants'\nimport { ISportsState, TSportsMutations } from '@/store/modules/sports/types'\nimport { ISport } from '@/types/sports'\n\nexport const mutations: MutationTree & TSportsMutations = {\n [SPORTS_STORE.MUTATIONS.SET_SPORTS](state: ISportsState, sports: ISport[]) {\n state.sports = sports\n },\n}\n","import { ISportsState } from '@/store/modules/sports/types'\n\nexport const sportsState: ISportsState = {\n sports: [],\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/sports/actions'\nimport { getters } from '@/store/modules/sports/getters'\nimport { mutations } from '@/store/modules/sports/mutations'\nimport { sportsState } from '@/store/modules/sports/state'\nimport { ISportsState } from '@/store/modules/sports/types'\n\nconst sports: Module = {\n state: sportsState,\n actions,\n getters,\n mutations,\n}\n\nexport default sports\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport { STATS_STORE, ROOT_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IStatisticsActions,\n IStatisticsState,\n} from '@/store/modules/statistics/types'\nimport { IUserStatisticsPayload } from '@/types/statistics'\nimport { handleError } from '@/utils'\n\nexport const actions: ActionTree &\n IStatisticsActions = {\n [STATS_STORE.ACTIONS.GET_USER_STATS](\n context: ActionContext,\n payload: IUserStatisticsPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get(`stats/${payload.username}/${payload.filterType}`, {\n params: payload.params,\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n STATS_STORE.MUTATIONS.UPDATE_USER_STATS,\n res.data.data.statistics\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { STATS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IStatisticsGetters,\n IStatisticsState,\n} from '@/store/modules/statistics/types'\n\nexport const getters: GetterTree &\n IStatisticsGetters = {\n [STATS_STORE.GETTERS.USER_STATS]: (state: IStatisticsState) => {\n return state.statistics\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { STATS_STORE } from '@/store/constants'\nimport {\n IStatisticsState,\n TStatisticsMutations,\n} from '@/store/modules/statistics/types'\nimport { TStatisticsFromApi } from '@/types/statistics'\n\nexport const mutations: MutationTree & TStatisticsMutations =\n {\n [STATS_STORE.MUTATIONS.UPDATE_USER_STATS](\n state: IStatisticsState,\n statistics: TStatisticsFromApi\n ) {\n state.statistics = statistics\n },\n [STATS_STORE.MUTATIONS.EMPTY_USER_STATS](state: IStatisticsState) {\n state.statistics = {}\n },\n }\n","import { IStatisticsState } from '@/store/modules/statistics/types'\nimport { TStatisticsFromApi } from '@/types/statistics'\n\nexport const statisticsState: IStatisticsState = {\n statistics: {},\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/statistics/actions'\nimport { getters } from '@/store/modules/statistics/getters'\nimport { mutations } from '@/store/modules/statistics/mutations'\nimport { statisticsState } from '@/store/modules/statistics/state'\nimport { IStatisticsState } from '@/store/modules/statistics/types'\n\nconst statistics: Module = {\n state: statisticsState,\n actions,\n getters,\n mutations,\n}\n\nexport default statistics\n","import { GetterTree } from 'vuex'\n\nimport { USERS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { IUsersGetters, IUsersState } from '@/store/modules/users/types'\n\nexport const getters: GetterTree & IUsersGetters = {\n [USERS_STORE.GETTERS.USER]: (state: IUsersState) => {\n return state.user\n },\n [USERS_STORE.GETTERS.USERS]: (state: IUsersState) => {\n return state.users\n },\n [USERS_STORE.GETTERS.USERS_IS_SUCCESS]: (state: IUsersState) => {\n return state.isSuccess\n },\n [USERS_STORE.GETTERS.USERS_LOADING]: (state: IUsersState) => {\n return state.loading\n },\n [USERS_STORE.GETTERS.USERS_PAGINATION]: (state: IUsersState) => {\n return state.pagination\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { USERS_STORE } from '@/store/constants'\nimport { IUsersState, TUsersMutations } from '@/store/modules/users/types'\nimport { IPagination } from '@/types/api'\nimport { IUserProfile } from '@/types/user'\n\nexport const mutations: MutationTree & TUsersMutations = {\n [USERS_STORE.MUTATIONS.UPDATE_USER](state: IUsersState, user: IUserProfile) {\n state.user = user\n },\n [USERS_STORE.MUTATIONS.UPDATE_USER_IN_USERS](\n state: IUsersState,\n updatedUser: IUserProfile\n ) {\n state.users = state.users.map((user) => {\n if (user.username === updatedUser.username) {\n return updatedUser\n }\n return user\n })\n },\n [USERS_STORE.MUTATIONS.UPDATE_USERS](\n state: IUsersState,\n users: IUserProfile[]\n ) {\n state.users = users\n },\n [USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING](\n state: IUsersState,\n loading: boolean\n ) {\n state.loading = loading\n },\n [USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION](\n state: IUsersState,\n pagination: IPagination\n ) {\n state.pagination = pagination\n },\n [USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS](\n state: IUsersState,\n isSuccess: boolean\n ) {\n state.isSuccess = isSuccess\n },\n}\n","import { IUsersState } from '@/store/modules/users/types'\nimport { IPagination } from '@/types/api'\nimport { IUserProfile } from '@/types/user'\n\nexport const usersState: IUsersState = {\n user: {},\n users: [],\n loading: false,\n isSuccess: false,\n pagination: {},\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/users/actions'\nimport { getters } from '@/store/modules/users/getters'\nimport { mutations } from '@/store/modules/users/mutations'\nimport { usersState } from '@/store/modules/users/state'\nimport { IUsersState } from '@/store/modules/users/types'\n\nconst users: Module = {\n state: usersState,\n actions,\n getters,\n mutations,\n}\n\nexport default users\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { ROOT_STORE, AUTH_USER_STORE, WORKOUTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { WorkoutsMutations } from '@/store/modules/workouts/enums'\nimport {\n IWorkoutsActions,\n IWorkoutsState,\n} from '@/store/modules/workouts/types'\nimport {\n IWorkout,\n IWorkoutForm,\n IWorkoutPayload,\n TWorkoutsPayload,\n} from '@/types/workouts'\nimport { handleError } from '@/utils'\n\nconst getWorkouts = (\n context: ActionContext,\n payload: TWorkoutsPayload,\n target: WorkoutsMutations\n): void => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('workouts', {\n params: payload,\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(WORKOUTS_STORE.MUTATIONS[target], res.data.data.workouts)\n if (target === WorkoutsMutations['SET_USER_WORKOUTS']) {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUTS_PAGINATION,\n res.data.pagination\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree &\n IWorkoutsActions = {\n [WORKOUTS_STORE.ACTIONS.GET_CALENDAR_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_CALENDAR_WORKOUTS)\n getWorkouts(context, payload, WorkoutsMutations['SET_CALENDAR_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_USER_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['SET_USER_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_TIMELINE_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['SET_TIMELINE_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['ADD_TIMELINE_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n const segmentUrl = payload.segmentId ? `/segment/${payload.segmentId}` : ''\n authApi\n .get(`workouts/${payload.workoutId}`)\n .then((res) => {\n const workout: IWorkout = res.data.data.workouts[0]\n if (res.data.status === 'success') {\n if (\n payload.segmentId &&\n (workout.segments.length === 0 ||\n !workout.segments[+payload.segmentId - 1])\n ) {\n throw new Error('WORKOUT_NOT_FOUND')\n }\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT,\n res.data.data.workouts[0]\n )\n if (res.data.data.workouts[0].with_gpx) {\n authApi\n .get(`workouts/${payload.workoutId}/chart_data${segmentUrl}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_CHART_DATA,\n res.data.data.chart_data\n )\n }\n })\n authApi\n .get(`workouts/${payload.workoutId}/gpx${segmentUrl}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_GPX,\n res.data.data.gpx\n )\n }\n })\n }\n } else {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n handleError(context, null)\n }\n })\n .catch((error) => {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.DELETE_WORKOUT](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .delete(`workouts/${payload.workoutId}`)\n .then(() => {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n router.push('/')\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.EDIT_WORKOUT](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .patch(`workouts/${payload.workoutId}`, payload.data)\n .then(() => {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n context\n .dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, {\n workoutId: payload.workoutId,\n })\n .then(() => {\n router.push({\n name: 'Workout',\n params: { workoutId: payload.workoutId },\n })\n })\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.ADD_WORKOUT](\n context: ActionContext,\n payload: IWorkoutForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n if (!payload.file) {\n throw new Error('No file part')\n }\n const notes = payload.notes.replace(/\"/g, '\\\\\"')\n const form = new FormData()\n form.append('file', payload.file)\n form.append(\n 'data',\n `{\"sport_id\": ${payload.sport_id}, \"notes\": \"${notes}\"}`\n )\n authApi\n .post('workouts', form, {\n headers: {\n 'content-type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.data.status === 'created') {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n const workout: IWorkout = res.data.data.workouts[0]\n router.push(\n res.data.data.workouts.length === 1\n ? `/workouts/${workout.id}`\n : '/'\n )\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](\n context: ActionContext,\n payload: IWorkoutForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .post('workouts/no_gpx', payload)\n .then((res) => {\n if (res.data.status === 'created') {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n const workout: IWorkout = res.data.data.workouts[0]\n router.push(`/workouts/${workout.id}`)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { WORKOUTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IWorkoutsGetters,\n IWorkoutsState,\n} from '@/store/modules/workouts/types'\n\nexport const getters: GetterTree &\n IWorkoutsGetters = {\n [WORKOUTS_STORE.GETTERS.CALENDAR_WORKOUTS]: (state: IWorkoutsState) => {\n return state.calendar_workouts\n },\n [WORKOUTS_STORE.GETTERS.TIMELINE_WORKOUTS]: (state: IWorkoutsState) => {\n return state.timeline_workouts\n },\n [WORKOUTS_STORE.GETTERS.USER_WORKOUTS]: (state: IWorkoutsState) => {\n return state.user_workouts\n },\n [WORKOUTS_STORE.GETTERS.WORKOUT_DATA]: (state: IWorkoutsState) => {\n return state.workoutData\n },\n [WORKOUTS_STORE.GETTERS.WORKOUTS_PAGINATION]: (state: IWorkoutsState) => {\n return state.pagination\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { WORKOUTS_STORE } from '@/store/constants'\nimport {\n IWorkoutsState,\n TWorkoutsMutations,\n} from '@/store/modules/workouts/types'\nimport { IPagination } from '@/types/api'\nimport { IWorkout, IWorkoutApiChartData } from '@/types/workouts'\n\nexport const mutations: MutationTree & TWorkoutsMutations = {\n [WORKOUTS_STORE.MUTATIONS.ADD_TIMELINE_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.timeline_workouts = state.timeline_workouts.concat(workouts)\n },\n [WORKOUTS_STORE.MUTATIONS.SET_CALENDAR_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.calendar_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_TIMELINE_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.timeline_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_USER_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.user_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUTS_PAGINATION](\n state: IWorkoutsState,\n pagination: IPagination\n ) {\n state.pagination = pagination\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT](\n state: IWorkoutsState,\n workout: IWorkout\n ) {\n state.workoutData.workout = workout\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_CHART_DATA](\n state: IWorkoutsState,\n chartData: IWorkoutApiChartData[]\n ) {\n state.workoutData.chartData = chartData\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_GPX](\n state: IWorkoutsState,\n gpx: string\n ) {\n state.workoutData.gpx = gpx\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING](\n state: IWorkoutsState,\n loading: boolean\n ) {\n state.workoutData.loading = loading\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](state: IWorkoutsState) {\n state.calendar_workouts = []\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUTS](state: IWorkoutsState) {\n state.calendar_workouts = []\n state.user_workouts = []\n state.timeline_workouts = []\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT](state: IWorkoutsState) {\n state.workoutData = {\n gpx: '',\n loading: false,\n workout: {},\n chartData: [],\n }\n },\n}\n","import { IWorkoutsState } from '@/store/modules/workouts/types'\nimport { IPagination } from '@/types/api'\nimport { IWorkout } from '@/types/workouts'\n\nexport const workoutsState: IWorkoutsState = {\n calendar_workouts: [],\n timeline_workouts: [],\n pagination: {},\n user_workouts: [],\n workoutData: {\n gpx: '',\n loading: false,\n workout: {},\n chartData: [],\n },\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/workouts/actions'\nimport { getters } from '@/store/modules/workouts/getters'\nimport { mutations } from '@/store/modules/workouts/mutations'\nimport { workoutsState } from '@/store/modules/workouts/state'\nimport { IWorkoutsState } from '@/store/modules/workouts/types'\n\nconst workouts: Module = {\n state: workoutsState,\n actions,\n getters,\n mutations,\n}\n\nexport default workouts\n","import { Module, ModuleTree } from 'vuex'\n\nimport authUserModule from '@/store/modules/authUser'\nimport oAuthModule from '@/store/modules/oauth2'\nimport { actions } from '@/store/modules/root/actions'\nimport { getters } from '@/store/modules/root/getters'\nimport { mutations } from '@/store/modules/root/mutations'\nimport { state } from '@/store/modules/root/state'\nimport { IRootState } from '@/store/modules/root/types'\nimport sportsModule from '@/store/modules/sports'\nimport statsModule from '@/store/modules/statistics'\nimport usersModule from '@/store/modules/users'\nimport workoutsModule from '@/store/modules/workouts'\n\nconst modules: ModuleTree = {\n authUserModule,\n oAuthModule,\n sportsModule,\n statsModule,\n usersModule,\n workoutsModule,\n}\n\nconst root: Module = {\n state,\n actions,\n getters,\n mutations,\n modules,\n}\n\nexport default root\n","import { createStore } from 'vuex'\n\nimport root from '@/store/modules/root'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst store = createStore(root)\n\nexport default store\n","export enum WorkoutsActions {\n ADD_WORKOUT = 'ADD_WORKOUT',\n ADD_WORKOUT_WITHOUT_GPX = 'ADD_WORKOUT_WITHOUT_GPX',\n DELETE_WORKOUT = 'DELETE_WORKOUT',\n EDIT_WORKOUT = 'EDIT_WORKOUT',\n GET_CALENDAR_WORKOUTS = 'GET_CALENDAR_WORKOUTS',\n GET_USER_WORKOUTS = 'GET_USER_WORKOUTS',\n GET_TIMELINE_WORKOUTS = 'GET_TIMELINE_WORKOUTS',\n GET_MORE_TIMELINE_WORKOUTS = 'GET_MORE_TIMELINE_WORKOUTS',\n GET_WORKOUT_DATA = 'GET_WORKOUT_DATA',\n}\n\nexport enum WorkoutsGetters {\n CALENDAR_WORKOUTS = 'CALENDAR_WORKOUTS',\n TIMELINE_WORKOUTS = 'TIMELINE_WORKOUTS',\n USER_WORKOUTS = 'USER_WORKOUTS',\n WORKOUT_DATA = 'WORKOUT_DATA',\n WORKOUTS_PAGINATION = 'WORKOUTS_PAGINATION',\n}\n\nexport enum WorkoutsMutations {\n ADD_TIMELINE_WORKOUTS = 'ADD_TIMELINE_WORKOUTS',\n EMPTY_WORKOUTS = 'EMPTY_WORKOUTS',\n EMPTY_CALENDAR_WORKOUTS = 'EMPTY_CALENDAR_WORKOUTS',\n EMPTY_WORKOUT = 'EMPTY_WORKOUT',\n SET_CALENDAR_WORKOUTS = 'SET_CALENDAR_WORKOUTS',\n SET_TIMELINE_WORKOUTS = 'SET_TIMELINE_WORKOUTS',\n SET_USER_WORKOUTS = 'SET_USER_WORKOUTS',\n SET_WORKOUT = 'SET_WORKOUT',\n SET_WORKOUT_GPX = 'SET_WORKOUT_GPX',\n SET_WORKOUT_CHART_DATA = 'SET_WORKOUT_CHART_DATA',\n SET_WORKOUT_LOADING = 'SET_WORKOUT_LOADING',\n SET_WORKOUTS_PAGINATION = 'SET_WORKOUTS_PAGINATION',\n}\n","import { useStore as VuexStore } from 'vuex'\n\nimport { Store } from '@/store/types'\n\nexport function useStore(): Store {\n return VuexStore() as Store\n}\n","import { LocationQuery } from 'vue-router'\n\nimport { IQueryOptions, TPaginationPayload } from '@/types/api'\n\nexport const sortList: string[] = ['asc', 'desc']\nexport const defaultPage = 1\nexport const defaultPerPage = 10\n\nexport const getNumberQueryValue = (\n queryValue: string | (string | null)[] | null,\n defaultValue: number\n): number => {\n return queryValue && typeof queryValue === 'string' && +queryValue > 0\n ? +queryValue\n : defaultValue\n}\n\nexport const getStringQueryValue = (\n queryValue: string | (string | null)[] | null,\n availableValues: string[],\n defaultValue: string\n): string => {\n return queryValue &&\n typeof queryValue === 'string' &&\n availableValues.includes(queryValue)\n ? queryValue\n : defaultValue\n}\n\nexport const getQuery = (\n locationQuery: LocationQuery,\n orderByList: string[],\n defaultOrderBy: string,\n options?: IQueryOptions\n): TPaginationPayload => {\n const queryOptions = options || {}\n const defaultSort = queryOptions.defaultSort || 'asc'\n const query = {}\n\n query.page = getNumberQueryValue(locationQuery.page, defaultPage)\n query.per_page = getNumberQueryValue(locationQuery.per_page, defaultPerPage)\n query.order = getStringQueryValue(locationQuery.order, sortList, defaultSort)\n query.order_by = getStringQueryValue(\n locationQuery.order_by,\n orderByList,\n defaultOrderBy\n )\n if (typeof locationQuery.q === 'string') {\n query.q = locationQuery.q\n } else {\n delete query.q\n }\n\n return query\n}\n\nexport const workoutsPayloadKeys = [\n 'from',\n 'to',\n 'ave_speed_from',\n 'ave_speed_to',\n 'max_speed_from',\n 'max_speed_to',\n 'distance_from',\n 'distance_to',\n 'duration_from',\n 'duration_to',\n 'sport_id',\n]\n\nconst getRange = (stop: number, start = 1): number[] => {\n return Array.from({ length: stop - start + 1 }, (_, i) => start + i)\n}\n\nexport const rangePagination = (\n pages: number,\n currentPage: number\n): (string | number)[] => {\n if (pages < 0) {\n return []\n }\n\n if (pages < 9) {\n return getRange(pages)\n }\n\n let pagination: (string | number)[] = [1, 2]\n if (currentPage < 4) {\n pagination = pagination.concat([3, 4, 5])\n } else if (currentPage < 6) {\n pagination = pagination.concat(getRange(currentPage + 2, 3))\n } else {\n pagination = pagination.concat(['...'])\n if (currentPage < pages - 2) {\n pagination = pagination.concat(getRange(currentPage + 2, currentPage - 2))\n }\n }\n if (currentPage + 2 <= pages - 2) {\n pagination = pagination.concat(['...'])\n pagination = pagination.concat(getRange(pages, pages - 1))\n } else {\n if (\n pagination[pagination.length - 1] !== '...' &&\n pagination[pagination.length - 1] >= pages - 2 &&\n pagination[pagination.length - 1] < pages\n ) {\n pagination = pagination.concat(\n getRange(pages, +pagination[pagination.length - 1] + 1)\n )\n } else {\n pagination = pagination.concat(\n getRange(\n pages,\n currentPage < pages - 3 ? currentPage + 3 : currentPage - 5\n )\n )\n }\n }\n\n return pagination\n}\n","import {\n addDays,\n addMonths,\n addYears,\n endOfMonth,\n endOfWeek,\n format,\n startOfMonth,\n startOfWeek,\n startOfYear,\n} from 'date-fns'\nimport { utcToZonedTime } from 'date-fns-tz'\n\nimport createI18n from '@/i18n'\nimport { localeFromLanguage } from '@/utils/locales'\n\nconst { locale } = createI18n.global\n\nexport const getStartDate = (\n duration: string,\n day: Date,\n weekStartingMonday: boolean\n): Date => {\n switch (duration) {\n case 'week':\n return startOfWeek(day, { weekStartsOn: weekStartingMonday ? 1 : 0 })\n case 'year':\n return startOfYear(day)\n case 'month':\n return startOfMonth(day)\n default:\n throw new Error(\n `Invalid duration, expected: \"week\", \"month\", \"year\", got: \"${duration}\"`\n )\n }\n}\n\nexport const incrementDate = (duration: string, day: Date): Date => {\n switch (duration) {\n case 'week':\n return addDays(day, 7)\n case 'year':\n return addYears(day, 1)\n case 'month':\n return addMonths(day, 1)\n default:\n throw new Error(\n `Invalid duration, expected: \"week\", \"month\", \"year\", got: \"${duration}\"`\n )\n }\n}\n\nexport const getDateWithTZ = (dateInUTC: string, tz: string): Date => {\n return utcToZonedTime(new Date(dateInUTC), tz)\n}\n\nexport const getCalendarStartAndEnd = (\n date: Date,\n weekStartingMonday: boolean\n): Record => {\n const monthStart = startOfMonth(date)\n const monthEnd = endOfMonth(date)\n const weekStartsOn = weekStartingMonday ? 1 : 0\n return {\n start: startOfWeek(monthStart, { weekStartsOn }),\n end: endOfWeek(monthEnd, { weekStartsOn }),\n }\n}\n\nexport const formatWorkoutDate = (\n dateTime: Date,\n dateFormat: string | null = null,\n timeFormat: string | null = null\n): Record => {\n if (!dateFormat) {\n dateFormat = 'yyyy/MM/dd'\n }\n dateFormat = getDateFormat(dateFormat, locale.value)\n if (!timeFormat) {\n timeFormat = 'HH:mm'\n }\n return {\n workout_date: format(dateTime, dateFormat, {\n locale: localeFromLanguage[locale.value],\n }),\n workout_time: format(dateTime, timeFormat),\n }\n}\n\nconst availableDateFormats = [\n 'MM/dd/yyyy',\n 'dd/MM/yyyy',\n 'yyyy-MM-dd',\n 'date_string',\n]\nconst dateStringFormats: Record = {\n de: 'do MMM yyyy',\n en: 'MMM. do, yyyy',\n fr: 'd MMM yyyy',\n it: 'd MMM yyyy',\n // nb: 'do MMM yyyy',\n nl: 'd MMM yyyy',\n}\n\nexport const getDateFormat = (dateFormat: string, language: string): string => {\n return dateFormat === 'date_string' ? dateStringFormats[language] : dateFormat\n}\n\nexport const formatDate = (\n dateString: string,\n timezone: string,\n dateFormat: string,\n withTime = true,\n language: string | null = null\n): string => {\n if (!language) {\n language = locale.value\n }\n return format(\n getDateWithTZ(dateString, timezone),\n `${getDateFormat(dateFormat, language)}${withTime ? ' HH:mm' : ''}`,\n { locale: localeFromLanguage[language] }\n )\n}\n\nexport const availableDateFormatOptions = (\n inputDate: string,\n timezone: string,\n language: string | null = null\n) => {\n const l: string = language ? language : locale.value\n const options: Record[] = []\n availableDateFormats.map((df) => {\n const dateFormat = getDateFormat(df, l)\n options.push({\n label: `${dateFormat} - ${formatDate(\n inputDate,\n timezone,\n dateFormat,\n false,\n l\n )}`,\n value: df,\n })\n })\n return options\n}\n","const suffixes = ['bytes', 'KB', 'MB', 'GB', 'TB']\n\nexport const getReadableFileSize = (\n fileSize: number,\n asText = true\n): string | Record => {\n const i = Math.floor(Math.log(fileSize) / Math.log(1024))\n if (!fileSize) {\n return asText ? '0 bytes' : { size: '0', suffix: 'bytes' }\n }\n const size = (fileSize / Math.pow(1024, i)).toFixed(1)\n const suffix = suffixes[i]\n return asText ? `${size}${suffix}` : { size, suffix }\n}\n\nexport const getFileSizeInMB = (fileSize: number): number => {\n const value = fileSize / 1048576\n return (!fileSize && 0) || +value.toFixed(2)\n}\n","import { AxiosError } from 'axios'\nimport { ActionContext } from 'vuex'\n\nimport { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsState } from '@/store/modules/sports/types'\nimport { IStatisticsState } from '@/store/modules/statistics/types'\nimport { IUsersState } from '@/store/modules/users/types'\nimport { IWorkoutsState } from '@/store/modules/workouts/types'\nimport { IApiErrorMessage } from '@/types/api'\n\nexport const getApiUrl = (): string => {\n return process.env.NODE_ENV === 'production'\n ? '/api/'\n : `${process.env.VUE_APP_API_URL}/api/`\n}\n\nexport const handleError = (\n context:\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext,\n error: AxiosError | null,\n msg = 'UNKNOWN'\n): void => {\n // if request is cancelled, no error to display\n if (error && error.message === 'canceled') {\n return\n }\n\n const errorInfo: IApiErrorMessage | null =\n error?.response && error.response.data ? error.response.data : null\n\n // if stored token is blacklisted, disconnect user\n if (error?.response?.status === 401 && errorInfo?.error === 'invalid_token') {\n localStorage.removeItem('authToken')\n context.dispatch(AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER)\n return\n }\n\n const errorMessages = !error\n ? msg\n : error.response\n ? error.response.status === 413\n ? 'file size is greater than the allowed size'\n : errorInfo?.message\n ? errorInfo.message\n : msg\n : error.message\n ? error.message\n : msg\n context.commit(\n ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES,\n errorMessages.includes('\\n')\n ? errorMessages\n .split('\\n')\n .filter((m: string) => m !== '')\n .map((m: string) => `api.ERROR.${m}`)\n : `api.ERROR.${errorMessages}`\n )\n}\n","/* eslint-disable import/no-duplicates */\nimport { Locale } from 'date-fns'\nimport { de, enUS, fr, it, nl } from 'date-fns/locale'\n\nimport createI18n from '@/i18n'\n\nexport const localeFromLanguage: Record = {\n de: de,\n en: enUS,\n fr: fr,\n it: it,\n // nb: nb, // disabled for now\n nl: nl,\n}\n\nexport const languageLabels: Record = {\n de: 'Deutsch',\n en: 'English',\n fr: 'Français',\n it: 'Italiano',\n // nb: 'Norsk bokmål', // disabled for now\n nl: 'Nederlands',\n}\n\nconst { availableLocales } = createI18n.global\nexport const availableLanguages = availableLocales.map((l) => {\n return { label: languageLabels[l], value: l }\n})\n","import { ISport, ITranslatedSport, TActiveStatus } from '@/types/sports'\nimport { IWorkout } from '@/types/workouts'\n\nexport const sportColors: Record = {\n 'Cycling (Sport)': '#4c9792',\n 'Cycling (Transport)': '#88af98',\n 'Cycling (Virtual)': '#64a360',\n Hiking: '#bb757c',\n 'Mountain Biking': '#d4b371',\n 'Mountain Biking (Electric)': '#fc9d6f',\n Mountaineering: '#48b3b7',\n Rowing: '#fcce72',\n Running: '#835b83',\n 'Skiing (Alpine)': '#67a4bd',\n 'Skiing (Cross Country)': '#9498d0',\n Snowshoes: '#5780a8',\n Trail: '#09a98a',\n Walking: '#838383',\n}\n\nexport const sportIdColors = (sports: ISport[]): Record => {\n const colors: Record = {}\n sports.map(\n (sport) =>\n (colors[sport.id] = sport.color ? sport.color : sportColors[sport.label])\n )\n return colors\n}\n\nconst sortSports = (a: ITranslatedSport, b: ITranslatedSport): number => {\n const sportATranslatedLabel = a.translatedLabel.toLowerCase()\n const sportBTranslatedLabel = b.translatedLabel.toLowerCase()\n return sportATranslatedLabel > sportBTranslatedLabel\n ? 1\n : sportATranslatedLabel < sportBTranslatedLabel\n ? -1\n : 0\n}\n\nexport const translateSports = (\n sports: ISport[],\n t: CallableFunction,\n activeStatus: TActiveStatus = 'all',\n sportsToInclude: number[] = []\n): ITranslatedSport[] =>\n sports\n .filter((sport) =>\n activeStatus === 'all'\n ? true\n : sportsToInclude.includes(sport.id) || sport[activeStatus]\n )\n .map((sport) => ({\n ...sport,\n translatedLabel: t(`sports.${sport.label}.LABEL`),\n }))\n .sort(sortSports)\n\nexport const getSportLabel = (workout: IWorkout, sports: ISport[]): string => {\n return sports\n .filter((sport) => sport.id === workout.sport_id)\n .map((sport) => sport.label)[0]\n}\n\nexport const getSportColor = (\n workout: IWorkout,\n sports: ISport[]\n): string | null => {\n return sports\n .filter((sport) => sport.id === workout.sport_id)\n .map((sport) => sport.color)[0]\n}\n","import {\n addMonths,\n addWeeks,\n addYears,\n endOfMonth,\n endOfWeek,\n endOfYear,\n format,\n startOfMonth,\n startOfWeek,\n startOfYear,\n subMonths,\n subWeeks,\n subYears,\n} from 'date-fns'\n\nimport createI18n from '@/i18n'\nimport { IChartDataset } from '@/types/chart'\nimport { ISport } from '@/types/sports'\nimport {\n IStatisticsChartData,\n IStatisticsDateParams,\n TStatisticsDatasetKeys,\n TStatisticsDatasets,\n TStatisticsFromApi,\n} from '@/types/statistics'\nimport { incrementDate, getStartDate, getDateFormat } from '@/utils/dates'\nimport { localeFromLanguage } from '@/utils/locales'\nimport { sportColors } from '@/utils/sports'\nimport { convertStatsDistance } from '@/utils/units'\n\nconst { locale } = createI18n.global\n\nconst dateFormats: Record> = {\n week: {\n api: 'yyyy-MM-dd',\n chart: 'MM/dd/yyyy',\n },\n month: {\n api: 'yyyy-MM',\n chart: 'MM/yyyy',\n },\n year: {\n api: 'yyyy',\n chart: 'yyyy',\n },\n}\n\nexport const datasetKeys: TStatisticsDatasetKeys[] = [\n 'average_speed',\n 'nb_workouts',\n 'total_duration',\n 'total_distance',\n 'total_ascent',\n 'total_descent',\n]\n\nexport const getDateKeys = (\n params: IStatisticsDateParams,\n weekStartingMonday: boolean\n): Date[] => {\n const days = []\n for (\n let day = getStartDate(params.duration, params.start, weekStartingMonday);\n day <= params.end;\n day = incrementDate(params.duration, day)\n ) {\n days.push(day)\n }\n return days\n}\n\nconst getStatisticsChartDataset = (\n sportLabel: string,\n color: string,\n isLineChart = false\n): IChartDataset => {\n const dataset: IChartDataset = {\n label: sportLabel,\n backgroundColor: [color],\n data: [],\n }\n if (isLineChart) {\n dataset.type = 'line'\n dataset.borderColor = [color]\n dataset.spanGaps = true\n }\n return dataset\n}\n\nexport const getDatasets = (displayedSports: ISport[]): TStatisticsDatasets => {\n const datasets: TStatisticsDatasets = {\n average_speed: [],\n nb_workouts: [],\n total_distance: [],\n total_duration: [],\n total_ascent: [],\n total_descent: [],\n }\n displayedSports.map((sport) => {\n const color = sport.color ? sport.color : sportColors[sport.label]\n datasets.average_speed.push(\n getStatisticsChartDataset(sport.label, color, true)\n )\n datasets.nb_workouts.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_distance.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_duration.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_ascent.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_descent.push(getStatisticsChartDataset(sport.label, color))\n })\n return datasets\n}\n\nexport const convertStatsValue = (\n datasetKey: TStatisticsDatasetKeys,\n value: number,\n useImperialUnits: boolean\n): number => {\n switch (datasetKey) {\n case 'average_speed':\n case 'total_distance':\n case 'total_ascent':\n case 'total_descent':\n return convertStatsDistance(\n ['average_speed', 'total_distance'].includes(datasetKey) ? 'km' : 'm',\n value,\n useImperialUnits\n )\n default:\n case 'nb_workouts':\n case 'total_duration':\n return value\n }\n}\n\nexport const formatStats = (\n params: IStatisticsDateParams,\n weekStartingMonday: boolean,\n sports: ISport[],\n displayedSportsId: number[],\n apiStats: TStatisticsFromApi,\n useImperialUnits: boolean,\n userDateFormat: string\n): IStatisticsChartData => {\n const dayKeys = getDateKeys(params, weekStartingMonday)\n const dateFormat = dateFormats[params.duration]\n const displayedSports = sports.filter((sport) =>\n displayedSportsId.includes(sport.id)\n )\n const labels: string[] = []\n const datasets = getDatasets(displayedSports)\n const sportsId: Record = {}\n displayedSports.map(\n (displayedSport) => (sportsId[displayedSport.label] = displayedSport.id)\n )\n\n dayKeys.map((key) => {\n const date: string = format(key, dateFormat.api)\n const label: string = format(\n key,\n params.duration === 'week'\n ? getDateFormat(userDateFormat, locale.value)\n : dateFormat.chart,\n { locale: localeFromLanguage[locale.value] }\n )\n labels.push(label)\n datasetKeys.map((datasetKey) => {\n datasets[datasetKey].map((dataset) => {\n dataset.data.push(\n date in apiStats && sportsId[dataset.label] in apiStats[date]\n ? convertStatsValue(\n datasetKey,\n apiStats[date][sportsId[dataset.label]][datasetKey],\n useImperialUnits\n )\n : datasetKey === 'average_speed'\n ? null\n : 0\n )\n })\n })\n })\n return {\n labels,\n datasets,\n }\n}\n\nexport const getStatsDateParams = (\n date: Date,\n timeFrame: string,\n weekStartingMonday: boolean\n): IStatisticsDateParams => {\n const weekStartsOn = weekStartingMonday ? 1 : 0\n const start =\n timeFrame === 'year'\n ? startOfYear(subYears(date, 9))\n : timeFrame === 'week'\n ? startOfWeek(subMonths(date, 2), { weekStartsOn })\n : startOfMonth(subMonths(date, 11)) // month\n const end =\n timeFrame === 'year'\n ? endOfYear(date)\n : timeFrame === 'week'\n ? endOfWeek(date, { weekStartsOn })\n : endOfMonth(date) // month\n return {\n duration: timeFrame,\n end,\n start,\n }\n}\n\nexport const updateChartParams = (\n chartParams: IStatisticsDateParams,\n backward: boolean,\n weekStartingMonday: boolean\n): IStatisticsDateParams => {\n const { duration, start, end } = chartParams\n const weekStartsOn = weekStartingMonday ? 1 : 0\n return {\n duration,\n end:\n duration === 'year'\n ? endOfYear(backward ? subYears(end, 1) : addYears(end, 1))\n : duration === 'week'\n ? endOfWeek(backward ? subWeeks(end, 1) : addWeeks(end, 1), {\n weekStartsOn,\n })\n : endOfMonth(backward ? subMonths(end, 1) : addMonths(end, 1)),\n start:\n duration === 'year'\n ? startOfYear(backward ? subYears(start, 1) : addYears(start, 1))\n : duration === 'week'\n ? startOfWeek(backward ? subWeeks(start, 1) : addWeeks(start, 1), {\n weekStartsOn,\n })\n : startOfMonth(backward ? subMonths(start, 1) : addMonths(start, 1)),\n }\n}\n","import { IUnit, TFactor, TUnit } from '@/types/units'\n\nexport const units: Record = {\n ft: {\n unit: 'ft',\n system: 'imperial',\n multiplier: 1,\n defaultTarget: 'm',\n },\n mi: {\n unit: 'mi',\n system: 'imperial',\n multiplier: 5280,\n defaultTarget: 'km',\n },\n m: {\n unit: 'm',\n system: 'metric',\n multiplier: 1,\n defaultTarget: 'ft',\n },\n km: {\n unit: 'm',\n system: 'metric',\n multiplier: 1000,\n defaultTarget: 'mi',\n },\n}\n\nconst factors: TFactor = {\n metric: {\n imperial: 3.280839895,\n metric: 1,\n },\n imperial: {\n metric: 1 / 3.280839895,\n imperial: 1,\n },\n}\n\nexport const convertDistance = (\n distance: number,\n from: TUnit,\n to: TUnit,\n digits: number | null = 3\n): number => {\n const unitFrom = units[from]\n const unitTo = units[to]\n const convertedDistance =\n (distance * unitFrom.multiplier * factors[unitFrom.system][unitTo.system]) /\n unitTo.multiplier\n if (digits !== null) {\n return parseFloat(convertedDistance.toFixed(digits))\n }\n return convertedDistance\n}\n\nexport const convertStatsDistance = (\n unitFrom: TUnit,\n value: number,\n useImperialUnits: boolean\n): number => {\n const unitTo = useImperialUnits ? units[unitFrom].defaultTarget : unitFrom\n return useImperialUnits ? convertDistance(value, unitFrom, unitTo, 2) : value\n}\n\nexport const getTemperature = (\n temperatureInCelsius: number,\n useImperialUnits: boolean\n): string => {\n const temperature = useImperialUnits\n ? temperatureInCelsius * 1.8 + 32\n : temperatureInCelsius\n const unit = useImperialUnits ? ' °F' : '°C'\n return `${temperature === 0 ? 0 : Number(temperature).toFixed(1)}${unit}`\n}\n\nexport const getWindSpeed = (\n windSpeedInMS: number,\n useImperialUnits: boolean\n): string => {\n const windSpeed = useImperialUnits ? windSpeedInMS * 2.2369363 : windSpeedInMS\n const unit = useImperialUnits ? ' mph' : 'm/s'\n return `${windSpeed === 0 ? 0 : Number(windSpeed).toFixed(1)}${unit}`\n}\n","import {\n IWorkout,\n IWorkoutApiChartData,\n IWorkoutChartData,\n TCoordinates,\n TWorkoutDatasets,\n} from '@/types/workouts'\nimport { convertStatsDistance } from '@/utils/units'\n\nexport const getDatasets = (\n chartData: IWorkoutApiChartData[],\n t: CallableFunction,\n useImperialUnits: boolean\n): IWorkoutChartData => {\n const datasets: TWorkoutDatasets = {\n speed: {\n label: t('workouts.SPEED'),\n backgroundColor: ['#FFFFFF'],\n borderColor: ['#8884d8'],\n borderWidth: 2,\n data: [],\n yAxisID: 'ySpeed',\n },\n elevation: {\n label: t('workouts.ELEVATION'),\n backgroundColor: ['#e5e5e5'],\n borderColor: ['#cccccc'],\n borderWidth: 1,\n fill: true,\n data: [],\n yAxisID: 'yElevation',\n },\n }\n const distance_labels: unknown[] = []\n const duration_labels: unknown[] = []\n const coordinates: TCoordinates[] = []\n\n chartData.map((data) => {\n distance_labels.push(data.distance)\n duration_labels.push(data.duration)\n datasets.speed.data.push(\n convertStatsDistance('km', data.speed, useImperialUnits)\n )\n datasets.elevation.data.push(\n convertStatsDistance('m', data.elevation, useImperialUnits)\n )\n coordinates.push({ latitude: data.latitude, longitude: data.longitude })\n })\n\n return { distance_labels, duration_labels, datasets, coordinates }\n}\n\nexport const getDonutDatasets = (\n workouts: IWorkout[]\n): Record> => {\n const total = workouts.length\n if (total === 0) {\n return {}\n }\n\n const datasets: Record> = {}\n workouts.map((workout) => {\n if (!datasets[workout.sport_id]) {\n datasets[workout.sport_id] = {\n count: 0,\n percentage: 0,\n }\n }\n datasets[workout.sport_id].count += 1\n datasets[workout.sport_id].percentage =\n datasets[workout.sport_id].count / total\n })\n\n return datasets\n}\n\nexport const defaultOrder = {\n order: 'desc',\n order_by: 'workout_date',\n}\n","\n\n\n","import { render } from \"./Card.vue?vue&type=template&id=ad374c24\"\nconst script = {}\n\nimport \"./Card.vue?vue&type=style&index=0&id=ad374c24&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-72463173\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"table-selects\" }\nconst _hoisted_2 = [\"value\"]\nconst _hoisted_3 = [\"value\"]\nconst _hoisted_4 = [\"value\"]\nconst _hoisted_5 = [\"value\"]\nconst _hoisted_6 = [\"value\"]\nconst _hoisted_7 = [\"value\"]\n\nimport { toRefs } from 'vue'\n\n import { TPaginationPayload } from '@/types/api'\n\n interface Props {\n order_by: string[]\n query: TPaginationPayload\n sort: string[]\n message: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'FilterSelects',\n props: {\n order_by: null,\n query: null,\n sort: null,\n message: null\n },\n emits: ['updateSelect'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n order_by: string[]\n query: TPaginationPayload\n sort: string[]\n message: string\n };\n\n \n\n \n\n const { order_by, query, sort, message } = toRefs(props)\n const perPage = [10, 25, 50, 100]\n\n function onSelectUpdate(event: Event & { target: HTMLInputElement }) {\n emit('updateSelect', event.target.id, event.target.value)\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"label\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('common.SELECTS.ORDER_BY.LABEL')) + \": \", 1),\n _createElementVNode(\"select\", {\n name: \"order_by\",\n id: \"order_by\",\n value: _unref(query).order_by,\n onChange: onSelectUpdate\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(order_by), (order) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: order,\n key: order\n }, _toDisplayString(_ctx.$t(`${_unref(message)}.${order.toUpperCase()}`)), 9, _hoisted_3))\n }), 128))\n ], 40, _hoisted_2)\n ]),\n _createElementVNode(\"label\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('common.SELECTS.ORDER.LABEL')) + \": \", 1),\n _createElementVNode(\"select\", {\n name: \"order\",\n id: \"order\",\n value: _unref(query).order,\n onChange: onSelectUpdate\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(sort), (order) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: order,\n key: order\n }, _toDisplayString(_ctx.$t(`common.SELECTS.ORDER.${order.toUpperCase()}`)), 9, _hoisted_5))\n }), 128))\n ], 40, _hoisted_4)\n ]),\n _createElementVNode(\"label\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('common.SELECTS.PER_PAGE.LABEL')) + \": \", 1),\n _createElementVNode(\"select\", {\n name: \"per_page\",\n id: \"per_page\",\n value: _unref(query).per_page,\n onChange: onSelectUpdate\n }, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(perPage, (nb) => {\n return _createElementVNode(\"option\", {\n value: nb,\n key: nb\n }, _toDisplayString(nb), 9, _hoisted_7)\n }), 64))\n ], 40, _hoisted_6)\n ])\n ]))\n}\n}\n\n})","import script from \"./FilterSelects.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilterSelects.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./FilterSelects.vue?vue&type=style&index=0&id=72463173&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-72463173\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./ErrorImg.vue?vue&type=template&id=e620aed4\"\nimport script from \"./ErrorImg.vue?vue&type=script&lang=js\"\nexport * from \"./ErrorImg.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-b60bfa80\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"error\" }\nconst _hoisted_2 = { class: \"error-content\" }\n\nimport { toRefs, withDefaults } from 'vue'\n\n interface Props {\n title: string\n message: string\n buttonText: string\n path?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Error',\n props: {\n title: null,\n message: null,\n buttonText: null,\n path: { default: '/' }\n },\n setup(__props: any) {\n\nconst props = __props as { title: string, message: string, buttonText: string, path: string };\n\n \n const { buttonText, title, message, path } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"h1\", null, _toDisplayString(_unref(title)), 1),\n _createElementVNode(\"p\", null, _toDisplayString(_unref(message)), 1),\n (_unref(buttonText))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push(_unref(path)))),\n class: \"upper\"\n }, _toDisplayString(_unref(buttonText)), 1))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./Error.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Error.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Error.vue?vue&type=style&index=0&id=b60bfa80&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-b60bfa80\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nimport { Ref, onMounted, ref, toRefs, withDefaults, onUnmounted } from 'vue'\n\n import Error from '@/components/Common/Error.vue'\n interface Props {\n target?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'NotFound',\n props: {\n target: { default: 'PAGE' }\n },\n setup(__props: any) {\n\nconst props = __props as { target: string };\n\n \n const { target } = toRefs(props)\n const timer = ref()\n const errorDisplayed: Ref = ref(false)\n\n onMounted(() => displayError())\n\n function displayError() {\n timer.value = setTimeout(() => {\n errorDisplayed.value = true\n }, 500)\n }\n\n onUnmounted(() => {\n if (timer.value) {\n clearTimeout(timer.value)\n }\n })\n\nreturn (_ctx: any,_cache: any) => {\n return (errorDisplayed.value)\n ? (_openBlock(), _createBlock(Error, {\n key: 0,\n title: \"404\",\n message: _ctx.$t(`error.NOT_FOUND.${_unref(target)}`),\n \"button-text\": _ctx.$t('common.HOME')\n }, null, 8, [\"message\", \"button-text\"]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./NotFound.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NotFound.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderSlot as _renderSlot, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, normalizeClass as _normalizeClass, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3a9a4a65\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"pagination-center\",\n \"aria-label\": \"navigation\"\n}\nconst _hoisted_2 = { class: \"pagination\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-left\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-right\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { toRefs } from 'vue'\n\n import { IPagination, TPaginationPayload } from '@/types/api'\n import { IOauth2ClientsPayload } from '@/types/oauth'\n import { TWorkoutsPayload } from '@/types/workouts'\n import { rangePagination } from '@/utils/api'\n\n interface Props {\n pagination: IPagination\n path: string\n query: TWorkoutsPayload | TPaginationPayload | IOauth2ClientsPayload\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Pagination',\n props: {\n pagination: null,\n path: null,\n query: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n pagination: IPagination\n path: string\n query: TWorkoutsPayload | TPaginationPayload | IOauth2ClientsPayload\n };\n\n \n\n const { pagination, path, query } = toRefs(props)\n\n function getQuery(\n page: number,\n cursor?: number\n ): TPaginationPayload | IOauth2ClientsPayload {\n const newQuery = Object.assign({}, query.value)\n newQuery.page = cursor ? page + cursor : page\n return newQuery\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"nav\", _hoisted_1, [\n _createElementVNode(\"ul\", _hoisted_2, [\n _createElementVNode(\"li\", {\n class: _normalizeClass([\"page-prev\", { disabled: !_unref(pagination).has_prev }])\n }, [\n _createVNode(_component_router_link, {\n class: \"page-link\",\n to: { path: _unref(path), query: getQuery(_unref(pagination).page, -1) },\n disabled: !_unref(pagination).has_prev\n }, {\n default: _withCtx(({ navigate }) => [\n _renderSlot(_ctx.$slots, \"default\", {\n onClick: ($event: any) => (_unref(pagination).has_next ? navigate : null)\n }, () => [\n _createTextVNode(_toDisplayString(_ctx.$t('api.PAGINATION.PREVIOUS')) + \" \", 1),\n _hoisted_3\n ])\n ]),\n _: 3\n }, 8, [\"to\", \"disabled\"])\n ], 2),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(rangePagination)(_unref(pagination).pages, _unref(pagination).page), (page) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: page,\n class: _normalizeClass([\"page\", { active: page === _unref(pagination).page }])\n }, [\n (page === '...')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, \" ... \"))\n : (_openBlock(), _createBlock(_component_router_link, {\n key: 1,\n class: \"page-link\",\n to: { path: _unref(path), query: getQuery(+page) }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(page), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]))\n ], 2))\n }), 128)),\n _createElementVNode(\"li\", {\n class: _normalizeClass([\"page-next\", { disabled: !_unref(pagination).has_next }])\n }, [\n _createVNode(_component_router_link, {\n class: \"page-link\",\n to: { path: _unref(path), query: getQuery(_unref(pagination).page, 1) },\n disabled: !_unref(pagination).has_next\n }, {\n default: _withCtx(({ navigate }) => [\n _renderSlot(_ctx.$slots, \"default\", {\n onClick: ($event: any) => (_unref(pagination).has_next ? navigate : null)\n }, () => [\n _createTextVNode(_toDisplayString(_ctx.$t('api.PAGINATION.NEXT')) + \" \", 1),\n _hoisted_5\n ])\n ]),\n _: 3\n }, 8, [\"to\", \"disabled\"])\n ], 2)\n ])\n ]))\n}\n}\n\n})","import script from \"./Pagination.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Pagination.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Pagination.vue?vue&type=style&index=0&id=3a9a4a65&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3a9a4a65\"]])\n\nexport default __exports__","import { zxcvbnOptions } from '@zxcvbn-ts/core'\n\nexport const loadLanguagePackage = async (language: string) => {\n // no package available for norwegian bokmal and dutch (Nederlands)\n // fallback to english\n switch (language) {\n case 'fr':\n return await import(\n /* webpackChunkName: \"password.fr\" */ '@zxcvbn-ts/language-fr'\n )\n case 'de':\n return await import(\n /* webpackChunkName: \"password.de\" */ '@zxcvbn-ts/language-de'\n )\n case 'it':\n return await import(\n /* webpackChunkName: \"password.it\" */ '@zxcvbn-ts/language-it'\n )\n default:\n return await import(\n /* webpackChunkName: \"password.en\" */ '@zxcvbn-ts/language-en'\n )\n }\n}\n\nexport const setZxcvbnOptions = async (language: string) => {\n const zxcvbnCommonPackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-common'\n )\n const zxcvbnLanguagePackage = await loadLanguagePackage(language)\n const options = {\n graphs: zxcvbnCommonPackage.default.adjacencyGraphs,\n dictionary: {\n ...zxcvbnCommonPackage.default.dictionary,\n ...zxcvbnLanguagePackage.default.dictionary,\n },\n }\n zxcvbnOptions.setOptions(options)\n}\n\nexport const getPasswordStrength = (strength: number): string => {\n switch (strength) {\n case 2:\n return 'AVERAGE'\n case 3:\n return 'GOOD'\n case 4:\n return 'STRONG'\n default:\n return 'WEAK'\n }\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-74e71df5\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"password-strength\" }\nconst _hoisted_2 = [\"value\"]\nconst _hoisted_3 = {\n key: 0,\n class: \"password-strength-details\"\n}\nconst _hoisted_4 = { class: \"password-strength-value\" }\nconst _hoisted_5 = {\n key: 0,\n class: \"info-box\"\n}\nconst _hoisted_6 = { class: \"password-feedback\" }\n\nimport { zxcvbn } from '@zxcvbn-ts/core'\n import {\n ComputedRef,\n Ref,\n computed,\n ref,\n onBeforeMount,\n toRefs,\n watch,\n } from 'vue'\n\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { useStore } from '@/use/useStore'\n import { getPasswordStrength, setZxcvbnOptions } from '@/utils/password'\n\n interface Props {\n password: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'PasswordStength',\n props: {\n password: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n password: string\n };\n\n \n const { password } = toRefs(props)\n\n const store = useStore()\n const language: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const isSuccess: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_SUCCESS]\n )\n const passwordScore: Ref = ref(0)\n const passwordStrength: Ref = ref('')\n const passwordSuggestions: Ref = ref([])\n const backgroundSize = ref('0% 100%')\n\n onBeforeMount(async () => await setZxcvbnOptions(language.value))\n\n function calculatePasswordStrength(password: string) {\n const zxcvbnResult = zxcvbn(password)\n passwordScore.value = zxcvbnResult.score\n passwordStrength.value = getPasswordStrength(passwordScore.value)\n passwordSuggestions.value = zxcvbnResult.feedback.suggestions\n backgroundSize.value = (passwordScore.value * 100) / 4 + '% 100%'\n }\n\n watch(\n () => language.value,\n async (newLanguageValue) => {\n await setZxcvbnOptions(newLanguageValue)\n }\n )\n watch(\n () => password.value,\n async (newPassword) => {\n if (isSuccess.value) {\n passwordStrength.value = ''\n } else {\n calculatePasswordStrength(newPassword)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"input\", {\n class: _normalizeClass([\"password-slider\", `strength-${passwordScore.value}`]),\n style: _normalizeStyle({ backgroundSize: backgroundSize.value }),\n type: \"range\",\n value: passwordScore.value,\n min: \"0\",\n max: \"4\",\n step: \"1\"\n }, null, 14, _hoisted_2),\n (passwordStrength.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.$t('user.PASSWORD_STRENGTH.LABEL')) + \": \" + _toDisplayString(_ctx.$t(`user.PASSWORD_STRENGTH.${passwordStrength.value}`)), 1),\n (passwordSuggestions.value.length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"ul\", _hoisted_6, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(passwordSuggestions.value, (suggestion) => {\n return (_openBlock(), _createElementBlock(\"li\", { key: suggestion }, _toDisplayString(_ctx.$t(`user.PASSWORD_STRENGTH.SUGGESTIONS.${suggestion}`)), 1))\n }), 128))\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./PasswordStength.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PasswordStength.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PasswordStength.vue?vue&type=style&index=0&id=74e71df5&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-74e71df5\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, vModelDynamic as _vModelDynamic, createElementVNode as _createElementVNode, withDirectives as _withDirectives, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5a126514\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"password-input\" }\nconst _hoisted_2 = [\"id\", \"disabled\", \"placeholder\", \"required\", \"type\"]\nconst _hoisted_3 = {\n key: 0,\n class: \"form-info\"\n}\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { Ref, ref, toRefs, watch, withDefaults } from 'vue'\n\n import PasswordStrength from '@/components/Common/PasswordStength.vue'\n\n interface Props {\n checkStrength?: boolean\n disabled?: boolean\n id?: string\n password?: string\n placeholder?: string\n required?: boolean\n }\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'PasswordInput',\n props: {\n checkStrength: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n id: { default: 'password' },\n password: { default: '' },\n placeholder: null,\n required: { type: Boolean, default: false }\n },\n emits: ['updatePassword', 'passwordError'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { checkStrength: boolean, disabled: boolean, id: string, password: string, placeholder?: string, required: boolean };\n\n \n const { checkStrength, disabled, id, password, placeholder, required } =\n toRefs(props)\n\n const showPassword: Ref = ref(false)\n const passwordValue: Ref = ref('')\n\n \n\n function togglePassword() {\n showPassword.value = !showPassword.value\n }\n function updatePassword(event: Event & { target: HTMLInputElement }) {\n emit('updatePassword', event.target.value)\n }\n function invalidPassword() {\n emit('passwordError')\n }\n\n watch(\n () => password.value,\n (newPassword) => {\n if (newPassword === '') {\n passwordValue.value = ''\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _withDirectives(_createElementVNode(\"input\", {\n id: _unref(id),\n disabled: _unref(disabled),\n placeholder: _unref(placeholder),\n required: _unref(required),\n type: showPassword.value ? 'text' : 'password',\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((passwordValue).value = $event)),\n minlength: \"8\",\n onInput: updatePassword,\n onInvalid: invalidPassword\n }, null, 40, _hoisted_2), [\n [_vModelDynamic, passwordValue.value]\n ]),\n _createElementVNode(\"div\", {\n class: \"show-password\",\n onClick: togglePassword\n }, [\n _createTextVNode(_toDisplayString(_ctx.$t(`user.${showPassword.value ? 'HIDE' : 'SHOW'}_PASSWORD`)) + \" \", 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa\", `fa-eye${showPassword.value ? '-slash' : ''}`]),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n (_unref(checkStrength))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _hoisted_4,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('user.PASSWORD_INFO')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(checkStrength))\n ? (_openBlock(), _createBlock(PasswordStrength, {\n key: 1,\n password: passwordValue.value\n }, null, 8, [\"password\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./PasswordInput.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PasswordInput.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PasswordInput.vue?vue&type=style&index=0&id=5a126514&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5a126514\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"map-attribution\" }, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"map-attribution-text\" }, \"©\"),\n /*#__PURE__*/_createElementVNode(\"a\", {\n class: \"map-attribution-text\",\n href: \"https://www.openstreetmap.org/copyright\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, \" OpenStreetMap \")\n], -1)\n\nimport { toRefs, withDefaults } from 'vue'\n\n import { IWorkout } from '@/types/workouts'\n import { getApiUrl } from '@/utils'\n\n interface Props {\n workout: IWorkout\n displayHover?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'StaticMap',\n props: {\n workout: null,\n displayHover: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { workout: IWorkout, displayHover: boolean };\n\n \n const { displayHover } = toRefs(props)\n const imageUrl = `${getApiUrl()}workouts/map/${props.workout.map}`\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"static-map\", { 'display-hover': _unref(displayHover) }])\n }, [\n (_unref(displayHover))\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: imageUrl,\n alt: \"\"\n }))\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"bg-map-image\",\n style: _normalizeStyle({\n backgroundImage: `url(${imageUrl})`,\n })\n }, null, 4)),\n _hoisted_1\n ], 2))\n}\n}\n\n})","import script from \"./StaticMap.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./StaticMap.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./StaticMap.vue?vue&type=style&index=0&id=6b7e4baf&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-d5e9b348\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"start-chart\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { key: 1 }\nconst _hoisted_4 = { class: \"chart-radio\" }\nconst _hoisted_5 = [\"checked\"]\nconst _hoisted_6 = [\"checked\"]\nconst _hoisted_7 = [\"checked\"]\nconst _hoisted_8 = { key: 0 }\nconst _hoisted_9 = [\"checked\"]\nconst _hoisted_10 = { key: 1 }\nconst _hoisted_11 = [\"checked\"]\nconst _hoisted_12 = { key: 2 }\nconst _hoisted_13 = [\"checked\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Chart = _resolveComponent(\"Chart\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.hideChartIfNoData && _ctx.emptyStats)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t('workouts.NO_WORKOUTS')), 1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_distance\",\n checked: _ctx.displayedData === 'total_distance',\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_5),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DISTANCE')), 1)\n ]),\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_duration\",\n checked: _ctx.displayedData === 'total_duration',\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_6),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DURATION')), 1)\n ]),\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"nb_workouts\",\n checked: _ctx.displayedData === 'nb_workouts',\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_7),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.WORKOUT', 2)), 1)\n ]),\n (_ctx.fullStats)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_8, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"average_speed\",\n checked: _ctx.displayedData === 'average_speed',\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_9),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.AVERAGE_SPEED')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.fullStats)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_10, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_ascent\",\n checked: _ctx.displayedData === 'total_ascent',\n onClick: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_11),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.ASCENT')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.fullStats)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_12, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_descent\",\n checked: _ctx.displayedData === 'total_descent',\n onClick: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_13),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DESCENT')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (_ctx.labels.length > 0)\n ? (_openBlock(), _createBlock(_component_Chart, {\n key: 0,\n datasets: _ctx.datasets,\n labels: _ctx.labels,\n displayedData: _ctx.displayedData,\n displayedSportIds: _ctx.displayedSportIds,\n fullStats: _ctx.fullStats,\n useImperialUnits: _ctx.user.imperial_units\n }, null, 8, [\"datasets\", \"labels\", \"displayedData\", \"displayedSportIds\", \"fullStats\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ]))\n ]))\n}","import { resolveComponent as _resolveComponent, mergeProps as _mergeProps, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"chart\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_BarChart = _resolveComponent(\"BarChart\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_BarChart, _mergeProps(_ctx.barChartProps, { class: \"bar-chart\" }), null, 16)\n ]))\n}","export const formatDuration = (\n totalSeconds: number,\n formatWithUnits = false\n): string => {\n let days = '0'\n if (formatWithUnits) {\n days = String(Math.floor(totalSeconds / 86400))\n totalSeconds %= 86400\n }\n const hours = String(Math.floor(totalSeconds / 3600)).padStart(2, '0')\n totalSeconds %= 3600\n const minutes = String(Math.floor(totalSeconds / 60)).padStart(2, '0')\n const seconds = String(totalSeconds % 60).padStart(2, '0')\n if (formatWithUnits) {\n return `${days === '0' ? '' : `${days}d `}${\n hours === '00' ? '' : `${hours}h `\n }${minutes}m ${seconds}s`\n }\n return `${hours === '00' ? '' : `${hours}:`}${minutes}:${seconds}`\n}\n","import { TStatisticsDatasetKeys } from '@/types/statistics'\nimport { formatDuration } from '@/utils/duration'\nimport { units } from '@/utils/units'\n\nexport const formatTooltipValue = (\n displayedData: TStatisticsDatasetKeys,\n value: number,\n useImperialUnits: boolean,\n formatWithUnits = true,\n unitFrom = 'km'\n): string => {\n const unitTo = useImperialUnits ? units[unitFrom].defaultTarget : unitFrom\n switch (displayedData) {\n case 'average_speed':\n return `${value.toFixed(2)} ${unitTo}/h`\n case 'total_duration':\n return formatDuration(value, formatWithUnits)\n case 'total_distance':\n case 'total_ascent':\n case 'total_descent':\n return `${value.toFixed(2)} ${unitTo}`\n default:\n return value.toString()\n }\n}\n","\n import { ChartOptions, LayoutItem } from 'chart.js'\n import { PropType, computed, defineComponent } from 'vue'\n import { BarChart, useBarChart } from 'vue-chart-3'\n import { useI18n } from 'vue-i18n'\n\n import { IChartDataset } from '@/types/chart'\n import { TStatisticsDatasetKeys } from '@/types/statistics'\n import { formatTooltipValue } from '@/utils/tooltip'\n\n export default defineComponent({\n name: 'Chart',\n components: {\n BarChart,\n },\n props: {\n datasets: {\n type: Object as PropType,\n required: true,\n },\n labels: {\n type: Object as PropType,\n required: true,\n },\n displayedData: {\n type: String as PropType,\n required: true,\n },\n displayedSportIds: {\n type: Array as PropType,\n required: true,\n },\n fullStats: {\n type: Boolean,\n required: true,\n },\n useImperialUnits: {\n type: Boolean,\n required: true,\n },\n },\n setup(props) {\n const { t } = useI18n()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function getNumber(value: any): number {\n return isNaN(value) ? 0 : +value\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function getSum(total: any, value: any): number {\n return getNumber(total) + getNumber(value)\n }\n function getUnit(displayedData: string) {\n return ['total_ascent', 'total_descent'].includes(displayedData)\n ? 'm'\n : 'km'\n }\n const chartData = computed(() => ({\n labels: props.labels,\n // workaround to avoid dataset modification\n datasets: JSON.parse(JSON.stringify(props.datasets)),\n }))\n const options = computed>(() => ({\n responsive: true,\n maintainAspectRatio: true,\n animation: false,\n layout: {\n padding: {\n top: props.fullStats ? 40 : 22,\n },\n },\n scales: {\n x: {\n stacked: true,\n grid: {\n drawOnChartArea: false,\n },\n },\n y: {\n stacked: props.displayedData !== 'average_speed',\n grid: {\n drawOnChartArea: false,\n },\n ticks: {\n maxTicksLimit: 6,\n callback: function (value) {\n return formatTooltipValue(\n props.displayedData,\n +value,\n props.useImperialUnits,\n false,\n getUnit(props.displayedData)\n )\n },\n },\n afterFit: function (scale: LayoutItem) {\n scale.width = props.fullStats ? 90 : 60\n },\n },\n },\n plugins: {\n datalabels: {\n anchor: 'end',\n align: 'end',\n color: function (context) {\n return props.displayedData === 'average_speed' &&\n context.dataset.backgroundColor\n ? // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n context.dataset.backgroundColor[0]\n : '#666666'\n },\n rotation: function (context) {\n return props.fullStats && context.chart.chartArea.width < 580\n ? 310\n : 0\n },\n display: function (context) {\n return props.fullStats && context.chart.chartArea.width < 300\n ? false\n : props.displayedData === 'average_speed'\n ? props.displayedSportIds.length == 1\n ? 'auto'\n : false\n : true\n },\n formatter: function (value, context) {\n if (props.displayedData === 'average_speed') {\n return formatTooltipValue(\n props.displayedData,\n value,\n props.useImperialUnits,\n false\n )\n } else {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const total: number = context.chart.data.datasets\n .map((d) => d.data[context.dataIndex])\n .reduce((total, value) => getSum(total, value), 0)\n return context.datasetIndex ===\n props.displayedSportIds.length - 1 && total > 0\n ? formatTooltipValue(\n props.displayedData,\n total,\n props.useImperialUnits,\n false,\n getUnit(props.displayedData)\n )\n : null\n }\n },\n },\n legend: {\n display: false,\n },\n tooltip: {\n interaction: {\n intersect: true,\n mode: 'index',\n position:\n props.displayedData === 'average_speed' ? 'nearest' : 'average',\n },\n filter: function (tooltipItem) {\n return tooltipItem.formattedValue !== '0'\n },\n callbacks: {\n label: function (context) {\n let label = t(`sports.${context.dataset.label}.LABEL`) || ''\n if (label) {\n label += ': '\n }\n if (context.parsed.y !== null) {\n label += formatTooltipValue(\n props.displayedData,\n context.parsed.y,\n props.useImperialUnits,\n true,\n getUnit(props.displayedData)\n )\n }\n return label\n },\n footer: function (tooltipItems) {\n if (props.displayedData === 'average_speed') {\n return ''\n }\n let sum = 0\n tooltipItems.map((tooltipItem) => {\n sum += tooltipItem.parsed.y\n })\n return (\n `${t('common.TOTAL')}: ` +\n formatTooltipValue(\n props.displayedData,\n sum,\n props.useImperialUnits,\n true,\n getUnit(props.displayedData)\n )\n )\n },\n },\n },\n },\n }))\n const { barChartProps } = useBarChart({\n chartData,\n options,\n })\n return { barChartProps }\n },\n })\n","import { render } from \"./Chart.vue?vue&type=template&id=1d43a4a8&ts=true\"\nimport script from \"./Chart.vue?vue&type=script&lang=ts\"\nexport * from \"./Chart.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n import { format } from 'date-fns'\n import {\n ComputedRef,\n PropType,\n Ref,\n computed,\n defineComponent,\n ref,\n watch,\n onBeforeMount,\n } from 'vue'\n\n import Chart from '@/components/Common/StatsChart/Chart.vue'\n import { STATS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import {\n IStatisticsChartData,\n TStatisticsDatasetKeys,\n IStatisticsDateParams,\n TStatisticsFromApi,\n IStatisticsParams,\n } from '@/types/statistics'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { formatStats } from '@/utils/statistics'\n\n export default defineComponent({\n name: 'UserMonthStats',\n components: {\n Chart,\n },\n props: {\n sports: {\n type: Object as PropType,\n required: true,\n },\n user: {\n type: Object as PropType,\n required: true,\n },\n chartParams: {\n type: Object as PropType,\n required: true,\n },\n displayedSportIds: {\n type: Array as PropType,\n default: () => [],\n },\n fullStats: {\n type: Boolean,\n default: false,\n },\n hideChartIfNoData: {\n type: Boolean,\n default: false,\n },\n },\n setup(props) {\n const store = useStore()\n\n const displayedData: Ref = ref('total_distance')\n const statistics: ComputedRef = computed(\n () => store.getters[STATS_STORE.GETTERS.USER_STATS]\n )\n const formattedStats: ComputedRef = computed(() =>\n formatStats(\n props.chartParams,\n props.user.weekm,\n props.sports,\n props.displayedSportIds,\n statistics.value,\n props.user.imperial_units,\n props.user.date_format\n )\n )\n\n onBeforeMount(() =>\n getStatistics(getApiParams(props.chartParams, props.user))\n )\n\n function getStatistics(apiParams: IStatisticsParams) {\n store.dispatch(STATS_STORE.ACTIONS.GET_USER_STATS, {\n username: props.user.username,\n filterType: 'by_time',\n params: apiParams,\n })\n }\n function updateDisplayData(\n event: Event & {\n target: HTMLInputElement & { name: TStatisticsDatasetKeys }\n }\n ) {\n displayedData.value = event.target.name\n }\n function getApiParams(\n chartParams: IStatisticsDateParams,\n user: IAuthUserProfile\n ): IStatisticsParams {\n return {\n from: format(chartParams.start, 'yyyy-MM-dd'),\n to: format(chartParams.end, 'yyyy-MM-dd'),\n time:\n chartParams.duration === 'week'\n ? `week${user.weekm ? 'm' : ''}`\n : chartParams.duration,\n }\n }\n\n watch(\n () => props.chartParams,\n async (newParams) => {\n getStatistics(getApiParams(newParams, props.user))\n }\n )\n\n return {\n datasets: computed(\n () => formattedStats.value.datasets[displayedData.value]\n ),\n labels: computed(() => formattedStats.value.labels),\n emptyStats: computed(() => Object.keys(statistics.value).length === 0),\n displayedData,\n updateDisplayData,\n }\n },\n })\n","import { render } from \"./index.vue?vue&type=template&id=d5e9b348&scoped=true&ts=true\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=d5e9b348&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-d5e9b348\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-20291951\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"box user-header\" }\nconst _hoisted_2 = { class: \"user-details\" }\nconst _hoisted_3 = { class: \"user-name\" }\nconst _hoisted_4 = { class: \"user-stats\" }\nconst _hoisted_5 = { class: \"user-stat\" }\nconst _hoisted_6 = { class: \"stat-number\" }\nconst _hoisted_7 = { class: \"stat-label\" }\nconst _hoisted_8 = { class: \"user-stat\" }\nconst _hoisted_9 = { class: \"stat-label\" }\nconst _hoisted_10 = { class: \"user-stat hide-small\" }\nconst _hoisted_11 = { class: \"stat-number\" }\nconst _hoisted_12 = { class: \"stat-label\" }\n\nimport { computed, ComputedRef, toRefs } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { AUTH_USER_STORE } from '@/store/constants'\n import { IAuthUserProfile, IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserHeader',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n };\n\n \n\n const { user } = toRefs(props)\n\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Distance = _resolveComponent(\"Distance\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(UserPicture, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_unref(user).username), 1),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"span\", _hoisted_6, _toDisplayString(_unref(user).nb_workouts), 1),\n _createElementVNode(\"span\", _hoisted_7, _toDisplayString(_ctx.$t('workouts.WORKOUT', _unref(user).nb_workouts)), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createVNode(_component_Distance, {\n distance: _unref(user).total_distance,\n unitFrom: \"km\",\n digits: 0,\n displayUnit: false,\n useImperialUnits: _unref(authUser).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"]),\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_unref(authUser).imperial_units ? 'miles' : 'km'), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_unref(user).nb_sports), 1),\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(_ctx.$t('workouts.SPORT', _unref(user).nb_sports)), 1)\n ])\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./UserHeader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserHeader.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserHeader.vue?vue&type=style&index=0&id=20291951&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-20291951\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, vModelText as _vModelText, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createTextVNode as _createTextVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-217519af\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"user-infos\",\n class: \"description-list\"\n}\nconst _hoisted_2 = {\n key: 1,\n class: \"info-box success-message\"\n}\nconst _hoisted_3 = {\n key: 4,\n class: \"email-form form-box\"\n}\nconst _hoisted_4 = {\n class: \"form-items\",\n for: \"email\"\n}\nconst _hoisted_5 = {\n class: \"form-items\",\n for: \"email\"\n}\nconst _hoisted_6 = { class: \"form-buttons\" }\nconst _hoisted_7 = {\n class: \"confirm\",\n type: \"submit\"\n}\nconst _hoisted_8 = [\"onClick\"]\nconst _hoisted_9 = { key: 5 }\nconst _hoisted_10 = { class: \"user-bio\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"profile-buttons\"\n}\nconst _hoisted_12 = [\"onClick\"]\nconst _hoisted_13 = {\n key: 1,\n class: \"profile-buttons\"\n}\n\nimport { format } from 'date-fns'\n import {\n ComputedRef,\n Ref,\n computed,\n ref,\n toRefs,\n withDefaults,\n watch,\n onUnmounted,\n } from 'vue'\n\n import { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { IAuthUserProfile, IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { formatDate, getDateFormat } from '@/utils/dates'\n import { localeFromLanguage } from '@/utils/locales'\n\n interface Props {\n user: IUserProfile\n fromAdmin?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserInfos',\n props: {\n user: null,\n fromAdmin: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { user: IUserProfile, fromAdmin: boolean };\n\n \n\n const store = useStore()\n\n const { user, fromAdmin } = toRefs(props)\n const language: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const registrationDate = computed(() =>\n props.user.created_at\n ? formatDate(\n props.user.created_at,\n authUser.value.timezone,\n authUser.value.date_format\n )\n : ''\n )\n const birthDate = computed(() =>\n props.user.birth_date\n ? format(\n new Date(props.user.birth_date),\n `${getDateFormat(authUser.value.date_format, language.value)}`,\n { locale: localeFromLanguage[language.value] }\n )\n : ''\n )\n const isSuccess = computed(\n () => store.getters[USERS_STORE.GETTERS.USERS_IS_SUCCESS]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const displayModal: Ref = ref('')\n const formErrors = ref(false)\n const displayUserEmailForm: Ref = ref(false)\n const newUserEmail: Ref = ref('')\n const currentAction: Ref = ref('')\n\n function updateDisplayModal(value: string) {\n displayModal.value = value\n if (value !== '') {\n store.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n }\n }\n function deleteUserAccount(username: string) {\n store.dispatch(USERS_STORE.ACTIONS.DELETE_USER_ACCOUNT, { username })\n }\n function resetUserPassword(username: string) {\n currentAction.value = 'password-reset'\n store.dispatch(USERS_STORE.ACTIONS.UPDATE_USER, {\n username,\n resetPassword: true,\n })\n }\n function confirmUserAccount(username: string) {\n store.dispatch(USERS_STORE.ACTIONS.UPDATE_USER, {\n username,\n activate: true,\n })\n }\n function displayEmailForm() {\n resetErrorsAndSuccess()\n newUserEmail.value = user.value.email_to_confirm\n ? user.value.email_to_confirm\n : ''\n displayUserEmailForm.value = true\n currentAction.value = 'email-update'\n }\n function hideEmailForm() {\n newUserEmail.value = ''\n displayUserEmailForm.value = false\n }\n function updateUserEmail(username: string) {\n store.dispatch(USERS_STORE.ACTIONS.UPDATE_USER, {\n username,\n new_email: newUserEmail.value,\n })\n }\n function resetErrorsAndSuccess() {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n store.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n currentAction.value = ''\n }\n\n onUnmounted(() => resetErrorsAndSuccess())\n\n watch(\n () => isSuccess.value,\n (newIsSuccess) => {\n if (newIsSuccess) {\n updateDisplayModal('')\n hideEmailForm()\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n const _component_AlertMessage = _resolveComponent(\"AlertMessage\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (displayModal.value)\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: \n displayModal.value === 'delete'\n ? 'admin.CONFIRM_USER_ACCOUNT_DELETION'\n : 'admin.CONFIRM_USER_PASSWORD_RESET'\n ,\n strongMessage: _unref(user).username,\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (\n displayModal.value === 'delete'\n ? deleteUserAccount(_unref(user).username)\n : resetUserPassword(_unref(user).username)\n )),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal('')))\n }, null, 8, [\"title\", \"message\", \"strongMessage\"]))\n : _createCommentVNode(\"\", true),\n (_unref(isSuccess))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t(\n `admin.${\n currentAction.value === 'password-reset'\n ? 'PASSWORD_RESET'\n : 'USER_EMAIL_UPDATE'\n }_SUCCESSFUL`\n )), 1))\n : _createCommentVNode(\"\", true),\n (!_unref(user).is_active)\n ? (_openBlock(), _createBlock(_component_AlertMessage, {\n key: 2,\n message: \"user.THIS_USER_ACCOUNT_IS_INACTIVE\"\n }))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 3,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (displayUserEmailForm.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"form\", {\n class: _normalizeClass({ errors: formErrors.value }),\n onSubmit: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (updateUserEmail(_unref(user).username)), [\"prevent\"]))\n }, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.CURRENT_EMAIL')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"email\",\n type: \"email\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_unref(user).email) = $event)),\n disabled: \"\"\n }, null, 512), [\n [_vModelText, _unref(user).email]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_5, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.NEW_EMAIL')) + \"* \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"new-email\",\n type: \"email\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((newUserEmail).value = $event))\n }, null, 512), [\n [_vModelText, newUserEmail.value]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"button\", _hoisted_7, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _withModifiers(hideEmailForm, [\"prevent\"])\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 9, _hoisted_8)\n ])\n ], 34)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(registrationDate)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.FIRST_NAME')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(user).first_name), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.LAST_NAME')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(user).last_name), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.BIRTH_DATE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(birthDate)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.LOCATION')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(user).location), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.BIO')) + \":\", 1),\n _createElementVNode(\"dd\", _hoisted_10, _toDisplayString(_unref(user).bio), 1)\n ]),\n (_unref(fromAdmin))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n (_unref(authUser).username !== _unref(user).username)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"danger\",\n onClick: _cache[5] || (_cache[5] = _withModifiers(($event: any) => (updateDisplayModal('delete')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.DELETE_USER')), 1))\n : _createCommentVNode(\"\", true),\n (!_unref(user).is_active)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n onClick: _cache[6] || (_cache[6] = _withModifiers(($event: any) => (confirmUserAccount(_unref(user).username)), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.ACTIVATE_USER_ACCOUNT')), 1))\n : _createCommentVNode(\"\", true),\n (_unref(authUser).username !== _unref(user).username)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 2,\n onClick: _withModifiers(displayEmailForm, [\"prevent\"])\n }, _toDisplayString(_ctx.$t('admin.UPDATE_USER_EMAIL')), 9, _hoisted_12))\n : _createCommentVNode(\"\", true),\n (\n _unref(authUser).username !== _unref(user).username &&\n _unref(appConfig).is_email_sending_enabled\n )\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 3,\n onClick: _cache[7] || (_cache[7] = _withModifiers(($event: any) => (updateDisplayModal('reset')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.RESET_USER_PASSWORD')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[8] || (_cache[8] = ($event: any) => (_ctx.$router.go(-1)))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n _createElementVNode(\"button\", {\n onClick: _cache[9] || (_cache[9] = ($event: any) => (_ctx.$router.push('/profile/edit')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[10] || (_cache[10] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ]))\n ]))\n ]))\n}\n}\n\n})","import script from \"./UserInfos.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserInfos.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserInfos.vue?vue&type=style&index=0&id=217519af&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-217519af\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, vModelText as _vModelText, withDirectives as _withDirectives, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass, withCtx as _withCtx, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-b3c885de\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-form\" }\nconst _hoisted_2 = {\n key: 2,\n class: \"info-box success-message\"\n}\nconst _hoisted_3 = { class: \"form-items\" }\nconst _hoisted_4 = [\"disabled\", \"placeholder\"]\nconst _hoisted_5 = {\n key: 1,\n class: \"form-info\"\n}\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_7 = [\"disabled\", \"placeholder\"]\nconst _hoisted_8 = {\n key: 3,\n class: \"form-info\"\n}\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_10 = [\"disabled\"]\nconst _hoisted_11 = { key: 3 }\nconst _hoisted_12 = { key: 0 }\nconst _hoisted_13 = { key: 4 }\nconst _hoisted_14 = { class: \"account\" }\nconst _hoisted_15 = { key: 5 }\n\nimport {\n ComputedRef,\n computed,\n onUnmounted,\n reactive,\n ref,\n toRefs,\n watch,\n withDefaults,\n } from 'vue'\n import { useRoute } from 'vue-router'\n\n import PasswordInput from '@/components/Common/PasswordInput.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { ILoginRegisterFormData } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n action: string\n token?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserAuthForm',\n props: {\n action: null,\n token: { default: '' }\n },\n setup(__props: any) {\n\nconst props = __props as { action: string, token: string };\n\n \n\n const route = useRoute()\n const store = useStore()\n\n const { action } = toRefs(props)\n const formData: ILoginRegisterFormData = reactive({\n username: '',\n email: '',\n password: '',\n })\n const buttonText: ComputedRef = computed(() =>\n getButtonText(props.action)\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const isRegistrationSuccess: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_REGISTRATION_SUCCESS]\n )\n const isSuccess: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_SUCCESS]\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const language: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const registration_disabled: ComputedRef = computed(\n () =>\n props.action === 'register' && !appConfig.value.is_registration_enabled\n )\n const sendingEmailDisabled: ComputedRef = computed(\n () =>\n ['reset-request', 'account-confirmation-resend'].includes(props.action) &&\n !appConfig.value.is_email_sending_enabled\n )\n const formErrors = ref(false)\n\n function getButtonText(action: string): string {\n switch (action) {\n case 'reset-request':\n case 'reset':\n return 'buttons.SUBMIT'\n default:\n return `buttons.${props.action.toUpperCase()}`\n }\n }\n function invalidateForm() {\n formErrors.value = true\n }\n function updatePassword(password: string) {\n formData.password = password\n }\n function onSubmit(actionType: string) {\n switch (actionType) {\n case 'reset':\n if (!props.token) {\n return store.commit(\n ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES,\n 'user.INVALID_TOKEN'\n )\n }\n return store.dispatch(AUTH_USER_STORE.ACTIONS.RESET_USER_PASSWORD, {\n password: formData.password,\n token: props.token,\n })\n case 'reset-request':\n return store.dispatch(\n AUTH_USER_STORE.ACTIONS.SEND_PASSWORD_RESET_REQUEST,\n {\n email: formData.email,\n }\n )\n case 'account-confirmation-resend':\n return store.dispatch(\n AUTH_USER_STORE.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL,\n {\n email: formData.email,\n }\n )\n default:\n formData['language'] = language.value\n store.dispatch(AUTH_USER_STORE.ACTIONS.LOGIN_OR_REGISTER, {\n actionType,\n formData,\n redirectUrl: route.query.from,\n })\n }\n }\n function resetFormData() {\n formData.username = ''\n formData.email = ''\n formData.password = ''\n }\n\n onUnmounted(() => store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES))\n\n watch(\n () => route.path,\n async () => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n store.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n store.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,\n false\n )\n formErrors.value = false\n resetFormData()\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_AlertMessage = _resolveComponent(\"AlertMessage\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n id: \"user-auth-form\",\n class: _normalizeClass(`${\n ['reset', 'reset-request'].includes(_unref(action)) ? _unref(action) : 'user-form'\n }`)\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"form-box\", {\n disabled: _unref(registration_disabled),\n }])\n }, [\n (_unref(registration_disabled))\n ? (_openBlock(), _createBlock(_component_AlertMessage, {\n key: 0,\n message: \"user.REGISTER_DISABLED\"\n }))\n : _createCommentVNode(\"\", true),\n (_unref(sendingEmailDisabled))\n ? (_openBlock(), _createBlock(_component_AlertMessage, {\n key: 1,\n message: \"admin.EMAIL_SENDING_DISABLED\"\n }))\n : _createCommentVNode(\"\", true),\n (_unref(isSuccess) || _unref(isRegistrationSuccess))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t(\n `user.PROFILE.SUCCESSFUL_${\n _unref(isRegistrationSuccess)\n ? `REGISTRATION${\n _unref(appConfig).is_email_sending_enabled ? '_WITH_EMAIL' : ''\n }`\n : 'UPDATE'\n }`\n )), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n class: _normalizeClass({ errors: formErrors.value }),\n onSubmit: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (onSubmit(_unref(action))), [\"prevent\"]))\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_unref(action) === 'register')\n ? _withDirectives((_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n id: \"username\",\n disabled: _unref(registration_disabled),\n required: \"\",\n pattern: \"[a-zA-Z0-9_]+\",\n minlength: \"3\",\n maxlength: \"30\",\n onInvalid: invalidateForm,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((formData.username) = $event)),\n placeholder: _ctx.$t('user.USERNAME')\n }, null, 40, _hoisted_4)), [\n [_vModelText, formData.username]\n ])\n : _createCommentVNode(\"\", true),\n (_unref(action) === 'register')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _hoisted_6,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('user.USERNAME_INFO')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(action) !== 'reset')\n ? _withDirectives((_openBlock(), _createElementBlock(\"input\", {\n key: 2,\n id: \"email\",\n disabled: _unref(registration_disabled) || _unref(sendingEmailDisabled),\n required: \"\",\n onInvalid: invalidateForm,\n type: \"email\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((formData.email) = $event)),\n placeholder: _ctx.$t('user.EMAIL')\n }, null, 40, _hoisted_7)), [\n [_vModelText, formData.email]\n ])\n : _createCommentVNode(\"\", true),\n (\n [\n 'reset-request',\n 'register',\n 'account-confirmation-resend',\n ].includes(_unref(action))\n )\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _hoisted_9,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('user.EMAIL_INFO')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (\n !['account-confirmation-resend', 'reset-request'].includes(\n _unref(action)\n )\n )\n ? (_openBlock(), _createBlock(PasswordInput, {\n key: 4,\n disabled: _unref(registration_disabled),\n required: true,\n placeholder: \n _unref(action) === 'reset'\n ? _ctx.$t('user.ENTER_PASSWORD')\n : _ctx.$t('user.PASSWORD')\n ,\n password: formData.password,\n checkStrength: ['reset', 'register'].includes(_unref(action)),\n onUpdatePassword: updatePassword,\n onPasswordError: invalidateForm\n }, null, 8, [\"disabled\", \"placeholder\", \"password\", \"checkStrength\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"button\", {\n type: \"submit\",\n disabled: _unref(registration_disabled) || _unref(sendingEmailDisabled)\n }, _toDisplayString(_ctx.$t(_unref(buttonText))), 9, _hoisted_10)\n ], 34),\n (_unref(action) === 'login')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n _createVNode(_component_router_link, {\n class: \"links\",\n to: \"/register\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.REGISTER')), 1)\n ]),\n _: 1\n }),\n (_unref(appConfig).is_email_sending_enabled)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_12, \"-\"))\n : _createCommentVNode(\"\", true),\n (_unref(appConfig).is_email_sending_enabled)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 1,\n class: \"links\",\n to: \"/password-reset/request\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PASSWORD_FORGOTTEN')), 1)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(action) === 'register')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.$t('user.ALREADY_HAVE_ACCOUNT')), 1),\n _createVNode(_component_router_link, {\n class: \"links\",\n to: \"/login\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.LOGIN')), 1)\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true),\n (\n ['login', 'register'].includes(_unref(action)) &&\n _unref(appConfig).is_email_sending_enabled\n )\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_15, [\n _createVNode(_component_router_link, {\n class: \"links\",\n to: \"/account-confirmation/resend\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.ACCOUNT_CONFIRMATION_NOT_RECEIVED')), 1)\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 6,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true)\n ], 2)\n ])\n ], 2))\n}\n}\n\n})","import script from \"./UserAuthForm.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserAuthForm.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserAuthForm.vue?vue&type=style&index=0&id=b3c885de&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-b3c885de\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"user-picture\" }\nconst _hoisted_2 = [\"alt\", \"src\"]\nconst _hoisted_3 = {\n key: 1,\n class: \"no-picture\"\n}\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-user-circle-o\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_5 = [\n _hoisted_4\n]\n\nimport { computed } from 'vue'\n\n import { IUserProfile } from '@/types/user'\n import { getApiUrl } from '@/utils'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPicture',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n };\n\n \n\n const authUserPictureUrl = computed(() =>\n props.user.picture\n ? `${getApiUrl()}users/${props.user.username}/picture?${Date.now()}`\n : ''\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(authUserPictureUrl) !== '')\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"profile-user-img\",\n alt: _ctx.$t('user.USER_PICTURE'),\n src: _unref(authUserPictureUrl)\n }, null, 8, _hoisted_2))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _hoisted_5))\n ]))\n}\n}\n\n})","import script from \"./UserPicture.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPicture.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPicture.vue?vue&type=style&index=0&id=26bea286&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n","import { render } from \"./NoWorkouts.vue?vue&type=template&id=4b4d15fb&scoped=true\"\nconst script = {}\n\nimport \"./NoWorkouts.vue?vue&type=style&index=0&id=4b4d15fb&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4b4d15fb\"]])\n\nexport default __exports__","var map = {\n\t\"./de/de.ts\": 9923,\n\t\"./en/en.ts\": 8757,\n\t\"./fr/fr.ts\": 6625,\n\t\"./it/it.ts\": 4334,\n\t\"./nb/nb.ts\": 8891,\n\t\"./nl/nl.ts\": 701\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 4612;","// 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// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(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__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + ({\"24\":\"reset\",\"193\":\"statistics\",\"222\":\"password.fr\",\"261\":\"password.en\",\"328\":\"admin\",\"401\":\"workouts\",\"802\":\"password.it\",\"845\":\"profile\",\"881\":\"password\",\"940\":\"password.de\"}[chunkId] || chunkId) + \".\" + {\"24\":\"a4de7412\",\"93\":\"7582eaa7\",\"193\":\"99fc9524\",\"222\":\"7161a5de\",\"243\":\"e034bc01\",\"261\":\"6a36a15a\",\"328\":\"443044dd\",\"401\":\"143c4328\",\"431\":\"6f0a9946\",\"633\":\"3c9401e6\",\"802\":\"eac74305\",\"845\":\"d9355913\",\"858\":\"5db37332\",\"881\":\"f10cfc3b\",\"940\":\"c02a3162\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/css/\" + {\"24\":\"reset\",\"193\":\"statistics\",\"328\":\"admin\",\"401\":\"workouts\",\"845\":\"profile\"}[chunkId] + \".\" + {\"24\":\"e2527ec6\",\"193\":\"40e24e75\",\"328\":\"73df498d\",\"401\":\"b4a2d0f0\",\"845\":\"9f83730d\"}[chunkId] + \".css\";\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 = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"fittrackee_client:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"24\":1,\"193\":1,\"328\":1,\"401\":1,\"845\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkfittrackee_client\"] = self[\"webpackChunkfittrackee_client\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(5326); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["authApi","axios","baseURL","getApiUrl","interceptors","request","use","config","controller","AbortController","signal","requestKey","removeRequestIfPending","pendingRequests","authToken","store","AUTH_USER_STORE","auth","headers","Authorization","error","Promise","reject","response","message","Map","generateRequestKey","method","url","params","data","JSON","stringify","join","has","get","abort","delete","disabledLanguages","loadLocaleMessages","locales","require","messages","keys","forEach","key","matched","match","length","includes","locale","default","createI18n","legacy","fallbackLocale","globalInjection","ctx","normalize","_normalize","interpolate","_interpolate","list","_list","plural","_plural","about","AboutTranslations","admin","AdministrationTranslations","api","ApiTranslations","buttons","ButtonsTranslations","common","CommonTranslations","dashboard","DashboardTranslations","ErrorTranslations","oauth2","OAuth2Translations","sports","SportsTranslations","statistics","StatisticsTranslations","user","UserTranslations","workouts","WorkoutsTranslations","register","ready","console","log","registered","cached","updatefound","updated","offline","_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_1","id","_hoisted_2","class","_hoisted_3","_hoisted_4","_createElementVNode","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","href","target","rel","_defineComponent","__name","props","version","adminContact","setup","__props","toRefs","_ctx","_cache","_component_router_link","_resolveComponent","_openBlock","_createElementBlock","_createTextVNode","_toDisplayString","_unref","_createVNode","to","_withCtx","$t","_","_createCommentVNode","__exports__","emits","emit","useStore","authUser","computed","getters","isAuthenticated","language","ROOT_STORE","isMenuOpen","ref","openMenu","value","closeMenu","updateLanguage","option","dispatch","toString","logout","_component_Dropdown","onClick","$event","$router","push","_normalizeClass","capitalize","_createBlock","UserPicture","username","availableLanguages","options","selected","onSelected","ErrorImg","innerHTML","appConfig","appLoading","hideScrollBar","displayScrollButton","updateHideScrollBar","isScrolledToBottom","element","getBoundingClientRect","top","window","innerHeight","bottom","scroll","onscroll","document","querySelector","scrollToTop","scrollTo","behavior","setTimeout","initLanguage","navigatorLanguage","navigator","split","localeFromLanguage","e","onBeforeMount","onMounted","_component_Loader","_component_router_view","_Fragment","NavBar","onMenuInteraction","NoConfig","Footer","admin_contact","name","charLimit","disabled","type","Boolean","input","text","updateText","event","watch","_withDirectives","maxLenght","onInput","_vModelText","distance","unitFrom","useImperialUnits","digits","displayUnit","speed","strong","unitTo","units","defaultTarget","convertedDistance","convertDistance","parseFloat","toFixed","route","useRoute","isOpen","dropdownOptions","map","toggleDropdown","updateSelected","path","_renderSlot","$slots","_renderList","index","label","Array","isArray","subMessage","xmlns","x","y","viewBox","style","d","render","cx","cy","r","sportLabel","color","title","sportColors","inject","_normalizeStyle","fill","CyclingSport","CyclingTransport","CyclingVirtual","Hiking","MountainBiking","MountainBikingElectric","Mountaineering","Rowing","Running","SkiingAlpine","SkiingCrossCountry","Snowshoes","Trail","Walking","script","strongMessage","errorMessages","onUnmounted","commit","_component_i18n_t","_component_ErrorMessage","_component_Card","content","keypath","customComponents","AlertMessage","Card","CustomTextArea","Distance","Dropdown","ErrorMessage","Loader","Modal","SportImage","clickOutsideDirective","mounted","binding","clickOutsideEvent","contains","body","addEventListener","unmounted","removeEventListener","undefined","Chart","BarElement","LineElement","PointElement","Legend","Title","Tooltip","Filler","BarController","CategoryScale","LineController","LinearScale","ChartDataLabels","app","createApp","App","provide","i18n","router","VueFullscreen","directive","component","mount","for","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","edition","useRouter","appData","reactive","max_users","max_single_file_size","max_zip_file_size","gpx_limit_import","updateForm","Object","getFileSizeInMB","onCancel","onSubmit","formData","assign","_withModifiers","min","step","icon","appStatistics","uploadDirSize","getReadableFileSize","uploads_dir_size","StatCard","users","size","suffix","AppStatsCards","is_registration_enabled","is_email_sending_enabled","t","useI18n","translatedSports","translateSports","SPORTS_STORE","updateSportStatus","isActive","_component_SportImage","sport","translatedLabel","is_active","danger","has_workouts","query","q","searchUsers","resetFilter","onKeyup","_withKeys","placeholder","trim","orderByList","defaultOrderBy","getQuery","USERS_STORE","pagination","loadUsers","queryParams","reloadUsers","updateUser","queryParam","queryValue","page","newQuery","UsersNameFilter","onFilterOnUsername","FilterSelects","sort","sortList","order_by","onUpdateSelect","email","formatDate","created_at","timezone","date_format","nb_workouts","Pagination","tabs","selectedTab","getPath","tab","toLocaleLowerCase","checked","UserHeader","UserProfileTabs","appLanguage","userLanguage","languageLabels","fistDayOfWeek","weekm","display_ascent","getDateFormat","imperial_units","loading","userForm","password","new_password","isSuccess","emailUpdate","formErrors","displayModal","invalidateForm","updateUserForm","updatePassword","updateNewPassword","updateProfile","payload","updateDisplayModal","deleteAccount","async","isSuccessValue","_component_Modal","onConfirmAction","onCancelAction","errors","required","onInvalid","PasswordInput","onUpdatePassword","onPasswordError","checkStrength","first_name","last_name","birth_date","location","bio","registrationDate","format","Date","updateBio","_component_CustomTextArea","onUpdateValue","fileSizeLimit","pictureFile","deleteUserPicture","updatePictureFile","files","updateUserPicture","picture","accept","timeZones","tzList","focusItemIndex","matchTimezone","toLowerCase","onMouseOver","onUpdateTimezone","onEnter","preventDefault","firstElementChild","openDropdown","onKeydown","ref_key","filter","tz","focus","onMouseover","autofocus","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","weekStart","imperialUnits","ascentData","dateFormatOptions","availableDateFormatOptions","toUTCString","updateTZ","updateAscentDisplay","updateImperialUnit","updateWeekM","lang","_vModelSelect","TimezoneDropdown","dateFormat","start","unit","status","oauth2_scopes","admin_oauth2_scopes","appForm","client_name","client_uri","client_description","redirect_uri","scopes","filtered_scopes","getScopes","redirect_uris","scope","OAUTH2_STORE","updateDescription","updateScopes","indexOf","splice","admin_scopes","description","onChange","client","loadApp","client_id","authorizeApp","response_type","state","code_challenge","code_challenge_method","afterCreation","revocationSuccessful","messageToDisplay","idCopied","secretCopied","clipboardSupport","loadClient","updateMessageToDisplay","forDelete","confirmAction","clientId","copyIdToClipboard","clipboard","writeText","copySecretToClipboard","client_secret","newValue","issued_at","website","clients","getClientsQuery","clientsQuery","getNumberQueryValue","defaultPage","loadClients","isEdition","defaultColor","sports_list","sportPayload","sport_id","stopped_speed_threshold","updateSportInEdition","is_active_for_user","resetSportPayload","isSportInEdition","sportId","updateColor","updateThreshold","updateIsActive","updateSport","resetSport","newIsLoading","weather_provider","get_weather_provider","src","alt","BikePic","About","workout","hasElevation","ascent","descent","_component_Distance","workoutId","workout_date","formatDistance","addSuffix","with_gpx","StaticMap","moving","min_alt","max_alt","per_page","initWorkoutsCount","loadWorkouts","WORKOUTS_STORE","moreWorkoutsExist","previous_workout","defaultOrder","loadMoreWorkouts","WorkoutCard","s","NoWorkouts","displayHARecord","sportColor","records","record","record_type","height","width","colors","datasets","angleOffset","radius","circumference","Math","PI","calculateStrokeDashOffset","percentage","returnCircleTransformValue","rotation","entries","stroke","transform","isHidden","togglePane","stopPropagation","_directive_click_outside","_resolveDirective","DonutChart","CalendarWorkout","getSportLabel","getSportColor","chartDatasets","getDonutDatasets","sportIdColors","displayedWorkoutCount","slice","CalendarWorkoutsChart","currentDay","endDate","startDate","weekStartingMonday","rows","getDays","day","days","i","addDays","isWeekEnd","filterWorkouts","isSameDay","getDateWithTZ","reverse","row","isSameMonth","today","isToday","CalendarWorkouts","localeOptions","calendarDates","getCalendarStartAndEnd","calendarWorkouts","getCalendarWorkouts","apiParams","from","end","displayNextMonth","addMonths","displayPreviousMonth","subMonths","CalendarHeader","onDisplayNextMonth","onDisplayPreviousMonth","CalendarDays","CalendarCells","date","chartParams","duration","startOfMonth","endOfMonth","selectedSportIds","StatChart","formatRecord","distanceUnitFrom","distanceUnitTo","ascentUnitFrom","ascentUnitTo","Error","workout_id","sortRecords","a","b","recordALabel","recordBLabel","getRecordsBySports","reduce","sportList","find","sportTranslatedLabel","getTranslatedRecords","translatedRecords","recordsBySport","RecordsCard","userTotalDuration","total_duration","totalDuration","get_duration","totalDistance","total_distance","totalAscent","total_ascent","nb_sports","isSelected","updateDisplayColumn","UserStatsCards","UserMonthStats","UserRecords","UserCalendar","Timeline","NotFound","action","LoginOrRegisterForm","getTabFromPath","regex","tag","replace","toUpperCase","routes","Dashboard","LoginOrRegister","children","Profile","UserInfos","UserPreferences","UserSportPreferences","UserApps","UserAppsList","UserApp","AddUserApp","AuthorizeUserApp","ProfileEdition","UserInfosEdition","UserAccountEdition","UserPictureEdition","UserPreferencesEdition","displaySegment","AdminMenu","AdminApplication","AdminSports","fromAdmin","AdminUsers","AboutView","NotFoundView","createRouter","history","createWebHistory","process","pathsWithoutAuthentication","pathsWithoutChecks","beforeEach","next","then","fullPath","catch","AuthUserActions","AuthUserGetters","AuthUserMutations","OAuth2Actions","OAuth2Getters","OAuth2Mutations","RootActions","RootGetters","RootMutations","SportsActions","SportsGetters","SportsMutation","StatisticsActions","StatisticsGetters","StatisticsMutations","UsersActions","UsersGetters","UsersMutations","ACTIONS","GETTERS","MUTATIONS","STATS_STORE","WorkoutsActions","WorkoutsGetters","WorkoutsMutations","deleteUserAccount","context","res","handleError","actions","finally","resetPassword","reset_password","activate","new_email","removeAuthUserData","localStorage","removeItem","token","auth_token","setItem","refreshUser","actionType","redirectUrl","form","FormData","append","authUserProfile","isRegistrationSuccess","mutations","authUserState","get_client","set","redirect_url","oAuth2State","setAttribute","application","root","enUS","sportsState","filterType","statisticsState","updatedUser","usersState","getWorkouts","segmentUrl","segmentId","segments","chart_data","gpx","file","notes","calendar_workouts","timeline_workouts","user_workouts","workoutData","concat","chartData","workoutsState","modules","authUserModule","oAuthModule","sportsModule","statsModule","usersModule","workoutsModule","createStore","VuexStore","defaultPerPage","defaultValue","getStringQueryValue","availableValues","locationQuery","queryOptions","defaultSort","order","workoutsPayloadKeys","getRange","stop","rangePagination","pages","currentPage","getStartDate","startOfWeek","weekStartsOn","startOfYear","incrementDate","addYears","dateInUTC","utcToZonedTime","monthStart","monthEnd","endOfWeek","formatWorkoutDate","dateTime","timeFormat","workout_time","availableDateFormats","dateStringFormats","de","en","fr","it","nl","dateString","withTime","inputDate","l","df","suffixes","fileSize","asText","floor","pow","msg","errorInfo","m","availableLocales","sortSports","sportATranslatedLabel","sportBTranslatedLabel","activeStatus","sportsToInclude","dateFormats","week","chart","month","year","datasetKeys","getDateKeys","getStatisticsChartDataset","isLineChart","dataset","backgroundColor","borderColor","spanGaps","getDatasets","displayedSports","average_speed","total_descent","convertStatsValue","datasetKey","convertStatsDistance","formatStats","displayedSportsId","apiStats","userDateFormat","dayKeys","labels","sportsId","displayedSport","getStatsDateParams","timeFrame","subYears","endOfYear","updateChartParams","backward","subWeeks","addWeeks","ft","system","multiplier","mi","km","factors","metric","imperial","getTemperature","temperatureInCelsius","temperature","Number","getWindSpeed","windSpeedInMS","windSpeed","borderWidth","yAxisID","elevation","distance_labels","duration_labels","coordinates","latitude","longitude","total","count","perPage","onSelectUpdate","nb","buttonText","timer","errorDisplayed","displayError","clearTimeout","cursor","has_prev","navigate","has_next","active","loadLanguagePackage","setZxcvbnOptions","zxcvbnCommonPackage","zxcvbnLanguagePackage","graphs","adjacencyGraphs","dictionary","zxcvbnOptions","getPasswordStrength","strength","passwordScore","passwordStrength","passwordSuggestions","backgroundSize","calculatePasswordStrength","zxcvbnResult","zxcvbn","score","feedback","suggestions","newLanguageValue","newPassword","max","suggestion","showPassword","passwordValue","togglePassword","invalidPassword","minlength","_vModelDynamic","PasswordStrength","displayHover","imageUrl","backgroundImage","$props","$setup","$data","$options","_component_Chart","hideChartIfNoData","emptyStats","displayedData","args","updateDisplayData","fullStats","displayedSportIds","_component_BarChart","_mergeProps","barChartProps","formatDuration","totalSeconds","formatWithUnits","String","hours","padStart","minutes","seconds","formatTooltipValue","defineComponent","components","BarChart","getNumber","isNaN","getSum","getUnit","parse","responsive","maintainAspectRatio","animation","layout","padding","scales","stacked","grid","drawOnChartArea","ticks","maxTicksLimit","callback","afterFit","scale","plugins","datalabels","anchor","align","chartArea","display","formatter","dataIndex","datasetIndex","legend","tooltip","interaction","intersect","mode","position","tooltipItem","formattedValue","callbacks","parsed","footer","tooltipItems","sum","useBarChart","formattedStats","getStatistics","getApiParams","time","newParams","birthDate","displayUserEmailForm","newUserEmail","currentAction","resetUserPassword","confirmUserAccount","displayEmailForm","resetErrorsAndSuccess","email_to_confirm","hideEmailForm","updateUserEmail","newIsSuccess","_component_AlertMessage","go","getButtonText","registration_disabled","sendingEmailDisabled","resetFormData","pattern","maxlength","authUserPictureUrl","now","webpackContext","req","webpackContextResolve","__webpack_require__","o","code","resolve","module","exports","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","call","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","every","getter","__esModule","leafPrototypes","getProto","getPrototypeOf","obj","__proto__","this","ns","create","def","current","getOwnPropertyNames","definition","defineProperty","enumerable","f","chunkId","all","promises","u","miniCssF","g","globalThis","Function","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","done","needAttach","scripts","getElementsByTagName","getAttribute","createElement","charset","timeout","nc","onScriptComplete","prev","onerror","onload","doneFns","parentNode","removeChild","bind","head","appendChild","Symbol","toStringTag","p","createStylesheet","fullhref","oldTag","linkTag","onLinkComplete","errorType","realHref","err","insertBefore","nextSibling","findStylesheet","existingLinkTags","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/fittrackee/dist/static/js/workouts.e312ce33.js b/fittrackee/dist/static/js/workouts.143c4328.js similarity index 99% rename from fittrackee/dist/static/js/workouts.e312ce33.js rename to fittrackee/dist/static/js/workouts.143c4328.js index e98ef970..bbf33061 100644 --- a/fittrackee/dist/static/js/workouts.e312ce33.js +++ b/fittrackee/dist/static/js/workouts.143c4328.js @@ -6,4 +6,4 @@ * Released under the MIT License. */ function r(t){return"[object Object]"===Object.prototype.toString.call(t)}function n(t){var e,n;return!1!==r(t)&&(e=t.constructor,void 0===e||(n=e.prototype,!1!==r(n)&&!1!==n.hasOwnProperty("isPrototypeOf")))}Object.defineProperty(e,"__esModule",{value:!0}),e.isPlainObject=n},9430:function(t,e){var r,n,i;(function(o,s){n=[],r=s,i="function"===typeof r?r.apply(e,n):r,void 0===i||(t.exports=i)})(0,(function(){return function(t){function e(t){return" "===t||"\t"===t||"\n"===t||"\f"===t||"\r"===t}function r(e){var r,n=e.exec(t.substring(m));if(n)return r=n[0],m+=r.length,r}var n,i,o,s,a,u=t.length,l=/^[ \t\n\r\u000c]+/,c=/^[, \t\n\r\u000c]+/,d=/^[^ \t\n\r\u000c]+/,p=/[,]+$/,h=/^\d+$/,f=/^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,m=0,g=[];while(1){if(r(c),m>=u)return g;n=r(d),i=[],","===n.slice(-1)?(n=n.replace(p,""),b()):y()}function y(){r(l),o="",s="in descriptor";while(1){if(a=t.charAt(m),"in descriptor"===s)if(e(a))o&&(i.push(o),o="",s="after descriptor");else{if(","===a)return m+=1,o&&i.push(o),void b();if("("===a)o+=a,s="in parens";else{if(""===a)return o&&i.push(o),void b();o+=a}}else if("in parens"===s)if(")"===a)o+=a,s="in descriptor";else{if(""===a)return i.push(o),void b();o+=a}else if("after descriptor"===s)if(e(a));else{if(""===a)return void b();s="in descriptor",m-=1}m+=1}}function b(){var e,r,o,s,a,u,l,c,d,p=!1,m={};for(s=0;s(t.nodes&&(t.nodes=p(t.nodes)),delete t.source,t)))}function h(t){if(t[a]=!1,t.proxyOf.nodes)for(let e of t.proxyOf.nodes)h(e)}class f extends d{push(t){return t.parent=this,this.proxyOf.nodes.push(t),this}each(t){if(!this.proxyOf.nodes)return;let e,r,n=this.getIterator();while(this.indexes[n]{let n;try{n=t(e,r)}catch(i){throw e.addToError(i)}return!1!==n&&e.walk&&(n=e.walk(t)),n}))}walkDecls(t,e){return e?t instanceof RegExp?this.walk(((r,n)=>{if("decl"===r.type&&t.test(r.prop))return e(r,n)})):this.walk(((r,n)=>{if("decl"===r.type&&r.prop===t)return e(r,n)})):(e=t,this.walk(((t,r)=>{if("decl"===t.type)return e(t,r)})))}walkRules(t,e){return e?t instanceof RegExp?this.walk(((r,n)=>{if("rule"===r.type&&t.test(r.selector))return e(r,n)})):this.walk(((r,n)=>{if("rule"===r.type&&r.selector===t)return e(r,n)})):(e=t,this.walk(((t,r)=>{if("rule"===t.type)return e(t,r)})))}walkAtRules(t,e){return e?t instanceof RegExp?this.walk(((r,n)=>{if("atrule"===r.type&&t.test(r.name))return e(r,n)})):this.walk(((r,n)=>{if("atrule"===r.type&&r.name===t)return e(r,n)})):(e=t,this.walk(((t,r)=>{if("atrule"===t.type)return e(t,r)})))}walkComments(t){return this.walk(((e,r)=>{if("comment"===e.type)return t(e,r)}))}append(...t){for(let e of t){let t=this.normalize(e,this.last);for(let e of t)this.proxyOf.nodes.push(e)}return this.markDirty(),this}prepend(...t){t=t.reverse();for(let e of t){let t=this.normalize(e,this.first,"prepend").reverse();for(let e of t)this.proxyOf.nodes.unshift(e);for(let e in this.indexes)this.indexes[e]=this.indexes[e]+t.length}return this.markDirty(),this}cleanRaws(t){if(super.cleanRaws(t),this.nodes)for(let e of this.nodes)e.cleanRaws(t)}insertBefore(t,e){let r,n=this.index(t),i=0===n&&"prepend",o=this.normalize(e,this.proxyOf.nodes[n],i).reverse();n=this.index(t);for(let s of o)this.proxyOf.nodes.splice(n,0,s);for(let s in this.indexes)r=this.indexes[s],n<=r&&(this.indexes[s]=r+o.length);return this.markDirty(),this}insertAfter(t,e){let r,n=this.index(t),i=this.normalize(e,this.proxyOf.nodes[n]).reverse();n=this.index(t);for(let o of i)this.proxyOf.nodes.splice(n+1,0,o);for(let o in this.indexes)r=this.indexes[o],n=t&&(this.indexes[r]=e-1);return this.markDirty(),this}removeAll(){for(let t of this.proxyOf.nodes)t.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}replaceValues(t,e,r){return r||(r=e,e={}),this.walkDecls((n=>{e.props&&!e.props.includes(n.prop)||e.fast&&!n.value.includes(e.fast)||(n.value=n.value.replace(t,r))})),this.markDirty(),this}every(t){return this.nodes.every(t)}some(t){return this.nodes.some(t)}index(t){return"number"===typeof t?t:(t.proxyOf&&(t=t.proxyOf),this.proxyOf.nodes.indexOf(t))}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]}normalize(t,e){if("string"===typeof t)t=p(n(t).nodes);else if(Array.isArray(t)){t=t.slice(0);for(let e of t)e.parent&&e.parent.removeChild(e,"ignore")}else if("root"===t.type&&"document"!==this.type){t=t.nodes.slice(0);for(let e of t)e.parent&&e.parent.removeChild(e,"ignore")}else if(t.type)t=[t];else if(t.prop){if("undefined"===typeof t.value)throw new Error("Value field is missed in node creation");"string"!==typeof t.value&&(t.value=String(t.value)),t=[new l(t)]}else if(t.selector)t=[new i(t)];else if(t.name)t=[new o(t)];else{if(!t.text)throw new Error("Unknown node type in node creation");t=[new c(t)]}let r=t.map((t=>(t[u]||f.rebuild(t),t=t.proxyOf,t.parent&&t.parent.removeChild(t),t[a]&&h(t),"undefined"===typeof t.raws.before&&e&&"undefined"!==typeof e.raws.before&&(t.raws.before=e.raws.before.replace(/\S/g,"")),t.parent=this.proxyOf,t)));return r}getProxyProcessor(){return{set(t,e,r){return t[e]===r||(t[e]=r,"name"!==e&&"params"!==e&&"selector"!==e||t.markDirty()),!0},get(t,e){return"proxyOf"===e?t:t[e]?"each"===e||"string"===typeof e&&e.startsWith("walk")?(...r)=>t[e](...r.map((t=>"function"===typeof t?(e,r)=>t(e.toProxy(),r):t))):"every"===e||"some"===e?r=>t[e](((t,...e)=>r(t.toProxy(),...e))):"root"===e?()=>t.root().toProxy():"nodes"===e?t.nodes.map((t=>t.toProxy())):"first"===e||"last"===e?t[e].toProxy():t[e]:t[e]}}}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let t=this.lastEach;return this.indexes[t]=0,t}}f.registerParse=t=>{n=t},f.registerRule=t=>{i=t},f.registerAtRule=t=>{o=t},f.registerRoot=t=>{s=t},t.exports=f,f.default=f,f.rebuild=t=>{"atrule"===t.type?Object.setPrototypeOf(t,o.prototype):"rule"===t.type?Object.setPrototypeOf(t,i.prototype):"decl"===t.type?Object.setPrototypeOf(t,l.prototype):"comment"===t.type?Object.setPrototypeOf(t,c.prototype):"root"===t.type&&Object.setPrototypeOf(t,s.prototype),t[u]=!0,t.nodes&&t.nodes.forEach((t=>{f.rebuild(t)}))}},2671:function(t,e,r){"use strict";let n=r(4241),i=r(2868);class o extends Error{constructor(t,e,r,n,i,s){super(t),this.name="CssSyntaxError",this.reason=t,i&&(this.file=i),n&&(this.source=n),s&&(this.plugin=s),"undefined"!==typeof e&&"undefined"!==typeof r&&("number"===typeof e?(this.line=e,this.column=r):(this.line=e.line,this.column=e.column,this.endLine=r.line,this.endColumn=r.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,o)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"","undefined"!==typeof this.line&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(t){if(!this.source)return"";let e=this.source;null==t&&(t=n.isColorSupported),i&&t&&(e=i(e));let r,o,s=e.split(/\r?\n/),a=Math.max(this.line-3,0),u=Math.min(this.line+2,s.length),l=String(u).length;if(t){let{bold:t,red:e,gray:i}=n.createColors(!0);r=r=>t(e(r)),o=t=>i(t)}else r=o=t=>t;return s.slice(a,u).map(((t,e)=>{let n=a+1+e,i=" "+(" "+n).slice(-l)+" | ";if(n===this.line){let e=o(i.replace(/\d/g," "))+t.slice(0,this.column-1).replace(/[^\t]/g," ");return r(">")+o(i)+t+"\n "+e+r("^")}return" "+o(i)+t})).join("\n")}toString(){let t=this.showSourceCode();return t&&(t="\n\n"+t+"\n"),this.name+": "+this.message+t}}t.exports=o,o.default=o},4258:function(t,e,r){"use strict";let n=r(5631);class i extends n{constructor(t){t&&"undefined"!==typeof t.value&&"string"!==typeof t.value&&(t={...t,value:String(t.value)}),super(t),this.type="decl"}get variable(){return this.prop.startsWith("--")||"$"===this.prop[0]}}t.exports=i,i.default=i},6461:function(t,e,r){"use strict";let n,i,o=r(1019);class s extends o{constructor(t){super({type:"document",...t}),this.nodes||(this.nodes=[])}toResult(t={}){let e=new n(new i,this,t);return e.stringify()}}s.registerLazyResult=t=>{n=t},s.registerProcessor=t=>{i=t},t.exports=s,s.default=s},250:function(t,e,r){"use strict";let n=r(4258),i=r(7981),o=r(9932),s=r(1353),a=r(5995),u=r(1025),l=r(1675);function c(t,e){if(Array.isArray(t))return t.map((t=>c(t)));let{inputs:r,...d}=t;if(r){e=[];for(let t of r){let r={...t,__proto__:a.prototype};r.map&&(r.map={...r.map,__proto__:i.prototype}),e.push(r)}}if(d.nodes&&(d.nodes=t.nodes.map((t=>c(t,e)))),d.source){let{inputId:t,...r}=d.source;d.source=r,null!=t&&(d.source.input=e[t])}if("root"===d.type)return new u(d);if("decl"===d.type)return new n(d);if("rule"===d.type)return new l(d);if("comment"===d.type)return new o(d);if("atrule"===d.type)return new s(d);throw new Error("Unknown node type: "+t.type)}t.exports=c,c.default=c},5995:function(t,e,r){"use strict";let{SourceMapConsumer:n,SourceMapGenerator:i}=r(209),{fileURLToPath:o,pathToFileURL:s}=r(7414),{resolve:a,isAbsolute:u}=r(9830),{nanoid:l}=r(2961),c=r(2868),d=r(2671),p=r(7981),h=Symbol("fromOffsetCache"),f=Boolean(n&&i),m=Boolean(a&&u);class g{constructor(t,e={}){if(null===t||"undefined"===typeof t||"object"===typeof t&&!t.toString)throw new Error(`PostCSS received ${t} instead of CSS string`);if(this.css=t.toString(),"\ufeff"===this.css[0]||"￾"===this.css[0]?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,e.from&&(!m||/^\w+:\/\//.test(e.from)||u(e.from)?this.file=e.from:this.file=a(e.from)),m&&f){let t=new p(this.css,e);if(t.text){this.map=t;let e=t.consumer().file;!this.file&&e&&(this.file=this.mapResolve(e))}}this.file||(this.id=""),this.map&&(this.map.file=this.from)}fromOffset(t){let e,r;if(this[h])r=this[h];else{let t=this.css.split("\n");r=new Array(t.length);let e=0;for(let n=0,i=t.length;n=e)n=r.length-1;else{let e,i=r.length-2;while(n>1),t=r[e+1])){n=e;break}n=e+1}}return{line:n+1,col:t-r[n]+1}}error(t,e,r,n={}){let i,o,a;if(e&&"object"===typeof e){let t=e,n=r;if("number"===typeof e.offset){let n=this.fromOffset(t.offset);e=n.line,r=n.col}else e=t.line,r=t.column;if("number"===typeof n.offset){let t=this.fromOffset(n.offset);o=t.line,a=t.col}else o=n.line,a=n.column}else if(!r){let t=this.fromOffset(e);e=t.line,r=t.col}let u=this.origin(e,r,o,a);return i=u?new d(t,void 0===u.endLine?u.line:{line:u.line,column:u.column},void 0===u.endLine?u.column:{line:u.endLine,column:u.endColumn},u.source,u.file,n.plugin):new d(t,void 0===o?e:{line:e,column:r},void 0===o?r:{line:o,column:a},this.css,this.file,n.plugin),i.input={line:e,column:r,endLine:o,endColumn:a,source:this.css},this.file&&(s&&(i.input.url=s(this.file).toString()),i.input.file=this.file),i}origin(t,e,r,n){if(!this.map)return!1;let i,a,l=this.map.consumer(),c=l.originalPositionFor({line:t,column:e});if(!c.source)return!1;"number"===typeof r&&(i=l.originalPositionFor({line:r,column:n})),a=u(c.source)?s(c.source):new URL(c.source,this.map.consumer().sourceRoot||s(this.map.mapFile));let d={url:a.toString(),line:c.line,column:c.column,endLine:i&&i.line,endColumn:i&&i.column};if("file:"===a.protocol){if(!o)throw new Error("file: protocol is not available in this PostCSS build");d.file=o(a)}let p=l.sourceContentFor(c.source);return p&&(d.source=p),d}mapResolve(t){return/^\w+:\/\//.test(t)?t:a(this.map.consumer().sourceRoot||this.map.root||".",t)}get from(){return this.file||this.id}toJSON(){let t={};for(let e of["hasBOM","css","file","id"])null!=this[e]&&(t[e]=this[e]);return this.map&&(t.map={...this.map},t.map.consumerCache&&(t.map.consumerCache=void 0)),t}}t.exports=g,g.default=g,c&&c.registerInput&&c.registerInput(g)},1939:function(t,e,r){"use strict";let{isClean:n,my:i}=r(5513),o=r(8505),s=r(7088),a=r(1019),u=r(6461),l=(r(2448),r(3632)),c=r(6939),d=r(1025);const p={document:"Document",root:"Root",atrule:"AtRule",rule:"Rule",decl:"Declaration",comment:"Comment"},h={postcssPlugin:!0,prepare:!0,Once:!0,Document:!0,Root:!0,Declaration:!0,Rule:!0,AtRule:!0,Comment:!0,DeclarationExit:!0,RuleExit:!0,AtRuleExit:!0,CommentExit:!0,RootExit:!0,DocumentExit:!0,OnceExit:!0},f={postcssPlugin:!0,prepare:!0,Once:!0},m=0;function g(t){return"object"===typeof t&&"function"===typeof t.then}function y(t){let e=!1,r=p[t.type];return"decl"===t.type?e=t.prop.toLowerCase():"atrule"===t.type&&(e=t.name.toLowerCase()),e&&t.append?[r,r+"-"+e,m,r+"Exit",r+"Exit-"+e]:e?[r,r+"-"+e,r+"Exit",r+"Exit-"+e]:t.append?[r,m,r+"Exit"]:[r,r+"Exit"]}function b(t){let e;return e="document"===t.type?["Document",m,"DocumentExit"]:"root"===t.type?["Root",m,"RootExit"]:y(t),{node:t,events:e,eventIndex:0,visitors:[],visitorIndex:0,iterator:0}}function D(t){return t[n]=!1,t.nodes&&t.nodes.forEach((t=>D(t))),t}let w={};class v{constructor(t,e,r){let n;if(this.stringified=!1,this.processed=!1,"object"!==typeof e||null===e||"root"!==e.type&&"document"!==e.type)if(e instanceof v||e instanceof l)n=D(e.root),e.map&&("undefined"===typeof r.map&&(r.map={}),r.map.inline||(r.map.inline=!1),r.map.prev=e.map);else{let t=c;r.syntax&&(t=r.syntax.parse),r.parser&&(t=r.parser),t.parse&&(t=t.parse);try{n=t(e,r)}catch(o){this.processed=!0,this.error=o}n&&!n[i]&&a.rebuild(n)}else n=D(e);this.result=new l(t,n,r),this.helpers={...w,result:this.result,postcss:w},this.plugins=this.processor.plugins.map((t=>"object"===typeof t&&t.prepare?{...t,...t.prepare(this.result)}:t))}get[Symbol.toStringTag](){return"LazyResult"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.stringify().css}get content(){return this.stringify().content}get map(){return this.stringify().map}get root(){return this.sync().root}get messages(){return this.sync().messages}warnings(){return this.sync().warnings()}toString(){return this.css}then(t,e){return this.async().then(t,e)}catch(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}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 e=this.runOnRoot(t);if(g(e))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;while(!t[n])t[n]=!0,this.walkSync(t);if(this.listeners.OnceExit)if("document"===t.type)for(let e of t.nodes)this.visitSync(this.listeners.OnceExit,e);else this.visitSync(this.listeners.OnceExit,t)}return this.result}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let t=this.result.opts,e=s;t.syntax&&(e=t.syntax.stringify),t.stringifier&&(e=t.stringifier),e.stringify&&(e=e.stringify);let r=new o(e,this.result.root,this.result.opts),n=r.generate();return this.result.css=n[0],this.result.map=n[1],this.result}walkSync(t){t[n]=!0;let e=y(t);for(let r of e)if(r===m)t.nodes&&t.each((t=>{t[n]||this.walkSync(t)}));else{let e=this.listeners[r];if(e&&this.visitSync(e,t.toProxy()))return}}visitSync(t,e){for(let[n,i]of t){let t;this.result.lastPlugin=n;try{t=i(e,this.helpers)}catch(r){throw this.handleError(r,e.proxyOf)}if("root"!==e.type&&"document"!==e.type&&!e.parent)return!0;if(g(t))throw this.getAsyncError()}}runOnRoot(t){this.result.lastPlugin=t;try{if("object"===typeof t&&t.Once){if("document"===this.result.root.type){let e=this.result.root.nodes.map((e=>t.Once(e,this.helpers)));return g(e[0])?Promise.all(e):e}return t.Once(this.result.root,this.helpers)}if("function"===typeof t)return t(this.result.root,this.result)}catch(e){throw this.handleError(e)}}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(t,e){let r=this.result.lastPlugin;try{e&&e.addToError(t),this.error=t,"CssSyntaxError"!==t.name||t.plugin?r.postcssVersion:(t.plugin=r.postcssPlugin,t.setMessage())}catch(n){console&&console.error&&console.error(n)}return t}async runAsync(){this.plugin=0;for(let r=0;r0){let t=this.visitTick(r);if(g(t))try{await t}catch(e){let t=r[r.length-1].node;throw this.handleError(e,t)}}}if(this.listeners.OnceExit)for(let[r,n]of this.listeners.OnceExit){this.result.lastPlugin=r;try{if("document"===t.type){let e=t.nodes.map((t=>n(t,this.helpers)));await Promise.all(e)}else await n(t,this.helpers)}catch(e){throw this.handleError(e)}}}return this.processed=!0,this.stringify()}prepareVisitors(){this.listeners={};let t=(t,e,r)=>{this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].push([t,r])};for(let e of this.plugins)if("object"===typeof e)for(let r in e){if(!h[r]&&/^[A-Z]/.test(r))throw new Error(`Unknown event ${r} in ${e.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!f[r])if("object"===typeof e[r])for(let n in e[r])t(e,"*"===n?r:r+"-"+n.toLowerCase(),e[r][n]);else"function"===typeof e[r]&&t(e,r,e[r])}this.hasListener=Object.keys(this.listeners).length>0}visitTick(t){let e=t[t.length-1],{node:r,visitors:i}=e;if("root"!==r.type&&"document"!==r.type&&!r.parent)return void t.pop();if(i.length>0&&e.visitorIndex{w=t},t.exports=v,v.default=v,d.registerLazyResult(v),u.registerLazyResult(v)},4715:function(t){"use strict";let e={split(t,e,r){let n=[],i="",o=!1,s=0,a=!1,u="",l=!1;for(let c of t)l?l=!1:"\\"===c?l=!0:a?c===u&&(a=!1):'"'===c||"'"===c?(a=!0,u=c):"("===c?s+=1:")"===c?s>0&&(s-=1):0===s&&e.includes(c)&&(o=!0),o?(""!==i&&n.push(i.trim()),i="",o=!1):i+=c;return(r||""!==i)&&n.push(i.trim()),n},space(t){let r=[" ","\n","\t"];return e.split(t,r)},comma(t){return e.split(t,[","],!0)}};t.exports=e,e.default=e},8505:function(t,e,r){"use strict";let{SourceMapConsumer:n,SourceMapGenerator:i}=r(209),{dirname:o,resolve:s,relative:a,sep:u}=r(9830),{pathToFileURL:l}=r(7414),c=r(5995),d=Boolean(n&&i),p=Boolean(o&&s&&a&&u);class h{constructor(t,e,r,n){this.stringify=t,this.mapOpts=r.map||{},this.root=e,this.opts=r,this.css=n,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute}isMap(){return"undefined"!==typeof this.opts.map?!!this.opts.map:this.previous().length>0}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk((t=>{if(t.source&&t.source.input.map){let e=t.source.input.map;this.previousMaps.includes(e)||this.previousMaps.push(e)}}));else{let t=new c(this.css,this.opts);t.map&&this.previousMaps.push(t.map)}return this.previousMaps}isInline(){if("undefined"!==typeof this.mapOpts.inline)return this.mapOpts.inline;let t=this.mapOpts.annotation;return("undefined"===typeof t||!0===t)&&(!this.previous().length||this.previous().some((t=>t.inline)))}isSourcesContent(){return"undefined"!==typeof this.mapOpts.sourcesContent?this.mapOpts.sourcesContent:!this.previous().length||this.previous().some((t=>t.withContent()))}clearAnnotation(){if(!1!==this.mapOpts.annotation)if(this.root){let t;for(let e=this.root.nodes.length-1;e>=0;e--)t=this.root.nodes[e],"comment"===t.type&&0===t.text.indexOf("# sourceMappingURL=")&&this.root.removeChild(e)}else this.css&&(this.css=this.css.replace(/(\n)?\/\*#[\S\s]*?\*\/$/gm,""))}setSourcesContent(){let t={};if(this.root)this.root.walk((e=>{if(e.source){let r=e.source.input.from;if(r&&!t[r]){t[r]=!0;let n=this.usesFileUrls?this.toFileUrl(r):this.toUrl(this.path(r));this.map.setSourceContent(n,e.source.input.css)}}}));else if(this.css){let t=this.opts.from?this.toUrl(this.path(this.opts.from)):"";this.map.setSourceContent(t,this.css)}}applyPrevMaps(){for(let t of this.previous()){let e,r=this.toUrl(this.path(t.file)),i=t.root||o(t.file);!1===this.mapOpts.sourcesContent?(e=new n(t.text),e.sourcesContent&&(e.sourcesContent=e.sourcesContent.map((()=>null)))):e=t.consumer(),this.map.applySourceMap(e,r,this.toUrl(this.path(i)))}}isAnnotation(){return!!this.isInline()||("undefined"!==typeof this.mapOpts.annotation?this.mapOpts.annotation:!this.previous().length||this.previous().some((t=>t.annotation)))}toBase64(t){return Buffer?Buffer.from(t).toString("base64"):window.btoa(unescape(encodeURIComponent(t)))}addAnnotation(){let t;t=this.isInline()?"data:application/json;base64,"+this.toBase64(this.map.toString()):"string"===typeof this.mapOpts.annotation?this.mapOpts.annotation:"function"===typeof this.mapOpts.annotation?this.mapOpts.annotation(this.opts.to,this.root):this.outputFile()+".map";let e="\n";this.css.includes("\r\n")&&(e="\r\n"),this.css+=e+"/*# sourceMappingURL="+t+" */"}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}generateMap(){if(this.root)this.generateString();else if(1===this.previous().length){let t=this.previous()[0].consumer();t.file=this.outputFile(),this.map=i.fromSourceMap(t)}else this.map=new i({file:this.outputFile()}),this.map.addMapping({source:this.opts.from?this.toUrl(this.path(this.opts.from)):"",generated:{line:1,column:0},original:{line:1,column:0}});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]}path(t){if(0===t.indexOf("<"))return t;if(/^\w+:\/\//.test(t))return t;if(this.mapOpts.absolute)return t;let e=this.opts.to?o(this.opts.to):".";return"string"===typeof this.mapOpts.annotation&&(e=o(s(e,this.mapOpts.annotation))),t=a(e,t),t}toUrl(t){return"\\"===u&&(t=t.replace(/\\/g,"/")),encodeURI(t).replace(/[#?]/g,encodeURIComponent)}toFileUrl(t){if(l)return l(t).toString();throw new Error("`map.absolute` option is not available in this PostCSS build")}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))}generateString(){this.css="",this.map=new i({file:this.outputFile()});let t,e,r=1,n=1,o="",s={source:"",generated:{line:0,column:0},original:{line:0,column:0}};this.stringify(this.root,((i,a,u)=>{if(this.css+=i,a&&"end"!==u&&(s.generated.line=r,s.generated.column=n-1,a.source&&a.source.start?(s.source=this.sourcePath(a),s.original.line=a.source.start.line,s.original.column=a.source.start.column-1,this.map.addMapping(s)):(s.source=o,s.original.line=1,s.original.column=0,this.map.addMapping(s))),t=i.match(/\n/g),t?(r+=t.length,e=i.lastIndexOf("\n"),n=i.length-e):n+=i.length,a&&"start"!==u){let t=a.parent||{raws:{}},e="decl"===a.type||"atrule"===a.type&&!a.nodes;e&&a===t.last&&!t.raws.semicolon||(a.source&&a.source.end?(s.source=this.sourcePath(a),s.original.line=a.source.end.line,s.original.column=a.source.end.column-1,s.generated.line=r,s.generated.column=n-2,this.map.addMapping(s)):(s.source=o,s.original.line=1,s.original.column=0,s.generated.line=r,s.generated.column=n-1,this.map.addMapping(s)))}}))}generate(){if(this.clearAnnotation(),p&&d&&this.isMap())return this.generateMap();{let t="";return this.stringify(this.root,(e=>{t+=e})),[t]}}}t.exports=h},7647:function(t,e,r){"use strict";let n=r(8505),i=r(7088),o=(r(2448),r(6939));const s=r(3632);class a{constructor(t,e,r){let o;e=e.toString(),this.stringified=!1,this._processor=t,this._css=e,this._opts=r,this._map=void 0;let a=i;this.result=new s(this._processor,o,this._opts),this.result.css=e;let u=this;Object.defineProperty(this.result,"root",{get(){return u.root}});let l=new n(a,o,this._opts,e);if(l.isMap()){let[t,e]=l.generate();t&&(this.result.css=t),e&&(this.result.map=e)}}get[Symbol.toStringTag](){return"NoWorkResult"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.result.css}get content(){return this.result.css}get map(){return this.result.map}get root(){if(this._root)return this._root;let t,e=o;try{t=e(this._css,this._opts)}catch(r){this.error=r}if(this.error)throw this.error;return this._root=t,t}get messages(){return[]}warnings(){return[]}toString(){return this._css}then(t,e){return this.async().then(t,e)}catch(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}sync(){if(this.error)throw this.error;return this.result}}t.exports=a,a.default=a},5631:function(t,e,r){"use strict";let{isClean:n,my:i}=r(5513),o=r(2671),s=r(1062),a=r(7088);function u(t,e){let r=new t.constructor;for(let n in t){if(!Object.prototype.hasOwnProperty.call(t,n))continue;if("proxyCache"===n)continue;let i=t[n],o=typeof i;"parent"===n&&"object"===o?e&&(r[n]=e):"source"===n?r[n]=i:Array.isArray(i)?r[n]=i.map((t=>u(t,r))):("object"===o&&null!==i&&(i=u(i)),r[n]=i)}return r}class l{constructor(t={}){this.raws={},this[n]=!1,this[i]=!0;for(let e in t)if("nodes"===e){this.nodes=[];for(let r of t[e])"function"===typeof r.clone?this.append(r.clone()):this.append(r)}else this[e]=t[e]}error(t,e={}){if(this.source){let{start:r,end:n}=this.rangeBy(e);return this.source.input.error(t,{line:r.line,column:r.column},{line:n.line,column:n.column},e)}return new o(t)}warn(t,e,r){let n={node:this};for(let i in r)n[i]=r[i];return t.warn(e,n)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}toString(t=a){t.stringify&&(t=t.stringify);let e="";return t(this,(t=>{e+=t})),e}assign(t={}){for(let e in t)this[e]=t[e];return this}clone(t={}){let e=u(this);for(let r in t)e[r]=t[r];return e}cloneBefore(t={}){let e=this.clone(t);return this.parent.insertBefore(this,e),e}cloneAfter(t={}){let e=this.clone(t);return this.parent.insertAfter(this,e),e}replaceWith(...t){if(this.parent){let e=this,r=!1;for(let n of t)n===this?r=!0:r?(this.parent.insertAfter(e,n),e=n):this.parent.insertBefore(e,n);r||this.remove()}return this}next(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t+1]}prev(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t-1]}before(t){return this.parent.insertBefore(this,t),this}after(t){return this.parent.insertAfter(this,t),this}root(){let t=this;while(t.parent&&"document"!==t.parent.type)t=t.parent;return t}raw(t,e){let r=new s;return r.raw(this,t,e)}cleanRaws(t){delete this.raws.before,delete this.raws.after,t||delete this.raws.between}toJSON(t,e){let r={},n=null==e;e=e||new Map;let i=0;for(let o in this){if(!Object.prototype.hasOwnProperty.call(this,o))continue;if("parent"===o||"proxyCache"===o)continue;let t=this[o];if(Array.isArray(t))r[o]=t.map((t=>"object"===typeof t&&t.toJSON?t.toJSON(null,e):t));else if("object"===typeof t&&t.toJSON)r[o]=t.toJSON(null,e);else if("source"===o){let n=e.get(t.input);null==n&&(n=i,e.set(t.input,i),i++),r[o]={inputId:n,start:t.start,end:t.end}}else r[o]=t}return n&&(r.inputs=[...e.keys()].map((t=>t.toJSON()))),r}positionInside(t){let e=this.toString(),r=this.source.start.column,n=this.source.start.line;for(let i=0;it.root().toProxy():t[e]}}}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}addToError(t){if(t.postcssNode=this,t.stack&&this.source&&/\n\s{4}at /.test(t.stack)){let e=this.source;t.stack=t.stack.replace(/\n\s{4}at /,`$&${e.input.from}:${e.start.line}:${e.start.column}$&`)}return t}markDirty(){if(this[n]){this[n]=!1;let t=this;while(t=t.parent)t[n]=!1}}get proxyOf(){return this}}t.exports=l,l.default=l},6939:function(t,e,r){"use strict";let n=r(1019),i=r(8867),o=r(5995);function s(t,e){let r=new o(t,e),n=new i(r);try{n.parse()}catch(s){throw s}return n.root}t.exports=s,s.default=s,n.registerParse(s)},8867:function(t,e,r){"use strict";let n=r(4258),i=r(3852),o=r(9932),s=r(1353),a=r(1025),u=r(1675);const l={empty:!0,space:!0};function c(t){for(let e=t.length-1;e>=0;e--){let r=t[e],n=r[3]||r[2];if(n)return n}}class d{constructor(t){this.input=t,this.root=new a,this.current=this.root,this.spaces="",this.semicolon=!1,this.customProperty=!1,this.createTokenizer(),this.root.source={input:t,start:{offset:0,line:1,column:1}}}createTokenizer(){this.tokenizer=i(this.input)}parse(){let t;while(!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()}comment(t){let e=new o;this.init(e,t[2]),e.source.end=this.getPosition(t[3]||t[2]);let r=t[1].slice(2,-2);if(/^\s*$/.test(r))e.text="",e.raws.left=r,e.raws.right="";else{let t=r.match(/^(\s*)([^]*\S)(\s*)$/);e.text=t[2],e.raws.left=t[1],e.raws.right=t[3]}}emptyRule(t){let e=new u;this.init(e,t[2]),e.selector="",e.raws.between="",this.current=e}other(t){let e=!1,r=null,n=!1,i=null,o=[],s=t[1].startsWith("--"),a=[],u=t;while(u){if(r=u[0],a.push(u),"("===r||"["===r)i||(i=u),o.push("("===r?")":"]");else if(s&&n&&"{"===r)i||(i=u),o.push("}");else if(0===o.length){if(";"===r){if(n)return void this.decl(a,s);break}if("{"===r)return void this.rule(a);if("}"===r){this.tokenizer.back(a.pop()),e=!0;break}":"===r&&(n=!0)}else r===o[o.length-1]&&(o.pop(),0===o.length&&(i=null));u=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(e=!0),o.length>0&&this.unclosedBracket(i),e&&n){if(!s)while(a.length){if(u=a[a.length-1][0],"space"!==u&&"comment"!==u)break;this.tokenizer.back(a.pop())}this.decl(a,s)}else this.unknownWord(a)}rule(t){t.pop();let e=new u;this.init(e,t[0][2]),e.raws.between=this.spacesAndCommentsFromEnd(t),this.raw(e,"selector",t),this.current=e}decl(t,e){let r=new n;this.init(r,t[0][2]);let i,o=t[t.length-1];";"===o[0]&&(this.semicolon=!0,t.pop()),r.source.end=this.getPosition(o[3]||o[2]||c(t));while("word"!==t[0][0])1===t.length&&this.unknownWord(t),r.raws.before+=t.shift()[1];r.source.start=this.getPosition(t[0][2]),r.prop="";while(t.length){let e=t[0][0];if(":"===e||"space"===e||"comment"===e)break;r.prop+=t.shift()[1]}r.raws.between="";while(t.length){if(i=t.shift(),":"===i[0]){r.raws.between+=i[1];break}"word"===i[0]&&/\w/.test(i[1])&&this.unknownWord([i]),r.raws.between+=i[1]}"_"!==r.prop[0]&&"*"!==r.prop[0]||(r.raws.before+=r.prop[0],r.prop=r.prop.slice(1));let s,a=[];while(t.length){if(s=t[0][0],"space"!==s&&"comment"!==s)break;a.push(t.shift())}this.precheckMissedSemicolon(t);for(let n=t.length-1;n>=0;n--){if(i=t[n],"!important"===i[1].toLowerCase()){r.important=!0;let e=this.stringFrom(t,n);e=this.spacesFromEnd(t)+e," !important"!==e&&(r.raws.important=e);break}if("important"===i[1].toLowerCase()){let e=t.slice(0),i="";for(let t=n;t>0;t--){let r=e[t][0];if(0===i.trim().indexOf("!")&&"space"!==r)break;i=e.pop()[1]+i}0===i.trim().indexOf("!")&&(r.important=!0,r.raws.important=i,t=e)}if("space"!==i[0]&&"comment"!==i[0])break}let u=t.some((t=>"space"!==t[0]&&"comment"!==t[0]));u&&(r.raws.between+=a.map((t=>t[1])).join(""),a=[]),this.raw(r,"value",a.concat(t),e),r.value.includes(":")&&!e&&this.checkMissedSemicolon(t)}atrule(t){let e,r,n,i=new s;i.name=t[1].slice(1),""===i.name&&this.unnamedAtrule(i,t),this.init(i,t[2]);let o=!1,a=!1,u=[],l=[];while(!this.tokenizer.endOfFile()){if(t=this.tokenizer.nextToken(),e=t[0],"("===e||"["===e?l.push("("===e?")":"]"):"{"===e&&l.length>0?l.push("}"):e===l[l.length-1]&&l.pop(),0===l.length){if(";"===e){i.source.end=this.getPosition(t[2]),this.semicolon=!0;break}if("{"===e){a=!0;break}if("}"===e){if(u.length>0){n=u.length-1,r=u[n];while(r&&"space"===r[0])r=u[--n];r&&(i.source.end=this.getPosition(r[3]||r[2]))}this.end(t);break}u.push(t)}else u.push(t);if(this.tokenizer.endOfFile()){o=!0;break}}i.raws.between=this.spacesAndCommentsFromEnd(u),u.length?(i.raws.afterName=this.spacesAndCommentsFromStart(u),this.raw(i,"params",u),o&&(t=u[u.length-1],i.source.end=this.getPosition(t[3]||t[2]),this.spaces=i.raws.between,i.raws.between="")):(i.raws.afterName="",i.params=""),a&&(i.nodes=[],this.current=i)}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=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}freeSemicolon(t){if(this.spaces+=t[1],this.current.nodes){let t=this.current.nodes[this.current.nodes.length-1];t&&"rule"===t.type&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(t){let e=this.input.fromOffset(t);return{offset:t,line:e.line,column:e.col}}init(t,e){this.current.push(t),t.source={start:this.getPosition(e),input:this.input},t.raws.before=this.spaces,this.spaces="","comment"!==t.type&&(this.semicolon=!1)}raw(t,e,r,n){let i,o,s,a,u=r.length,c="",d=!0;for(let p=0;pt+e[1]),"");t.raws[e]={value:c,raw:n}}t[e]=c}spacesAndCommentsFromEnd(t){let e,r="";while(t.length){if(e=t[t.length-1][0],"space"!==e&&"comment"!==e)break;r=t.pop()[1]+r}return r}spacesAndCommentsFromStart(t){let e,r="";while(t.length){if(e=t[0][0],"space"!==e&&"comment"!==e)break;r+=t.shift()[1]}return r}spacesFromEnd(t){let e,r="";while(t.length){if(e=t[t.length-1][0],"space"!==e)break;r=t.pop()[1]+r}return r}stringFrom(t,e){let r="";for(let n=e;n=0;i--)if(r=t[i],"space"!==r[0]&&(n+=1,2===n))break;throw this.input.error("Missed semicolon","word"===r[0]?r[3]+1:r[2])}}t.exports=d},20:function(t,e,r){"use strict";let n=r(2671),i=r(4258),o=r(1939),s=r(1019),a=r(1723),u=r(7088),l=r(250),c=r(6461),d=r(1728),p=r(9932),h=r(1353),f=r(3632),m=r(5995),g=r(6939),y=r(4715),b=r(1675),D=r(1025),w=r(5631);function v(...t){return 1===t.length&&Array.isArray(t[0])&&(t=t[0]),new a(t)}v.plugin=function(t,e){let r,n=!1;function i(...r){console&&console.warn&&!n&&(n=!0,console.warn(t+": postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration"),{VUE_APP_API_URL:"http://localhost:5000",NODE_ENV:"production",BASE_URL:"/"}.LANG&&{VUE_APP_API_URL:"http://localhost:5000",NODE_ENV:"production",BASE_URL:"/"}.LANG.startsWith("cn")&&console.warn(t+": 里面 postcss.plugin 被弃用. 迁移指南:\nhttps://www.w3ctech.com/topic/2226"));let i=e(...r);return i.postcssPlugin=t,i.postcssVersion=(new a).version,i}return Object.defineProperty(i,"postcss",{get(){return r||(r=i()),r}}),i.process=function(t,e,r){return v([i(r)]).process(t,e)},i},v.stringify=u,v.parse=g,v.fromJSON=l,v.list=y,v.comment=t=>new p(t),v.atRule=t=>new h(t),v.decl=t=>new i(t),v.rule=t=>new b(t),v.root=t=>new D(t),v.document=t=>new c(t),v.CssSyntaxError=n,v.Declaration=i,v.Container=s,v.Processor=a,v.Document=c,v.Comment=p,v.Warning=d,v.AtRule=h,v.Result=f,v.Input=m,v.Rule=b,v.Root=D,v.Node=w,o.registerPostcss(v),t.exports=v,v.default=v},7981:function(t,e,r){"use strict";let{SourceMapConsumer:n,SourceMapGenerator:i}=r(209),{existsSync:o,readFileSync:s}=r(4777),{dirname:a,join:u}=r(9830);function l(t){return Buffer?Buffer.from(t,"base64").toString():window.atob(t)}class c{constructor(t,e){if(!1===e.map)return;this.loadAnnotation(t),this.inline=this.startWith(this.annotation,"data:");let r=e.map?e.map.prev:void 0,n=this.loadMap(e.from,r);!this.mapFile&&e.from&&(this.mapFile=e.from),this.mapFile&&(this.root=a(this.mapFile)),n&&(this.text=n)}consumer(){return this.consumerCache||(this.consumerCache=new n(this.text)),this.consumerCache}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}startWith(t,e){return!!t&&t.substr(0,e.length)===e}getAnnotationURL(t){return t.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}loadAnnotation(t){let e=t.match(/\/\*\s*# sourceMappingURL=/gm);if(!e)return;let r=t.lastIndexOf(e.pop()),n=t.indexOf("*/",r);r>-1&&n>-1&&(this.annotation=this.getAnnotationURL(t.substring(r,n)))}decodeInline(t){let e=/^data:application\/json;charset=utf-?8;base64,/,r=/^data:application\/json;base64,/,n=/^data:application\/json;charset=utf-?8,/,i=/^data:application\/json,/;if(n.test(t)||i.test(t))return decodeURIComponent(t.substr(RegExp.lastMatch.length));if(e.test(t)||r.test(t))return l(t.substr(RegExp.lastMatch.length));let o=t.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+o)}loadFile(t){if(this.root=a(t),o(t))return this.mapFile=t,s(t,"utf-8").toString().trim()}loadMap(t,e){if(!1===e)return!1;if(e){if("string"===typeof e)return e;if("function"!==typeof e){if(e instanceof n)return i.fromSourceMap(e).toString();if(e instanceof i)return e.toString();if(this.isMap(e))return JSON.stringify(e);throw new Error("Unsupported previous source map format: "+e.toString())}{let r=e(t);if(r){let t=this.loadFile(r);if(!t)throw new Error("Unable to load previous source map: "+r.toString());return t}}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let e=this.annotation;return t&&(e=u(a(t),e)),this.loadFile(e)}}}isMap(t){return"object"===typeof t&&("string"===typeof t.mappings||"string"===typeof t._mappings||Array.isArray(t.sections))}}t.exports=c,c.default=c},1723:function(t,e,r){"use strict";let n=r(7647),i=r(1939),o=r(6461),s=r(1025);class a{constructor(t=[]){this.version="8.4.20",this.plugins=this.normalize(t)}use(t){return this.plugins=this.plugins.concat(this.normalize([t])),this}process(t,e={}){return 0===this.plugins.length&&"undefined"===typeof e.parser&&"undefined"===typeof e.stringifier&&"undefined"===typeof e.syntax?new n(this,t,e):new i(this,t,e)}normalize(t){let e=[];for(let r of t)if(!0===r.postcss?r=r():r.postcss&&(r=r.postcss),"object"===typeof r&&Array.isArray(r.plugins))e=e.concat(r.plugins);else if("object"===typeof r&&r.postcssPlugin)e.push(r);else if("function"===typeof r)e.push(r);else{if("object"!==typeof r||!r.parse&&!r.stringify)throw new Error(r+" is not a PostCSS plugin")}return e}}t.exports=a,a.default=a,s.registerProcessor(a),o.registerProcessor(a)},3632:function(t,e,r){"use strict";let n=r(1728);class i{constructor(t,e,r){this.processor=t,this.messages=[],this.root=e,this.opts=r,this.css=void 0,this.map=void 0}toString(){return this.css}warn(t,e={}){e.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(e.plugin=this.lastPlugin.postcssPlugin);let r=new n(t,e);return this.messages.push(r),r}warnings(){return this.messages.filter((t=>"warning"===t.type))}get content(){return this.css}}t.exports=i,i.default=i},1025:function(t,e,r){"use strict";let n,i,o=r(1019);class s extends o{constructor(t){super(t),this.type="root",this.nodes||(this.nodes=[])}removeChild(t,e){let r=this.index(t);return!e&&0===r&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[r].raws.before),super.removeChild(t)}normalize(t,e,r){let n=super.normalize(t);if(e)if("prepend"===r)this.nodes.length>1?e.raws.before=this.nodes[1].raws.before:delete e.raws.before;else if(this.first!==e)for(let i of n)i.raws.before=e.raws.before;return n}toResult(t={}){let e=new n(new i,this,t);return e.stringify()}}s.registerLazyResult=t=>{n=t},s.registerProcessor=t=>{i=t},t.exports=s,s.default=s,o.registerRoot(s)},1675:function(t,e,r){"use strict";let n=r(1019),i=r(4715);class o extends n{constructor(t){super(t),this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return i.comma(this.selector)}set selectors(t){let e=this.selector?this.selector.match(/,\s*/):null,r=e?e[0]:","+this.raw("between","beforeOpen");this.selector=t.join(r)}}t.exports=o,o.default=o,n.registerRule(o)},1062:function(t){"use strict";const e={colon:": ",indent:" ",beforeDecl:"\n",beforeRule:"\n",beforeOpen:" ",beforeClose:"\n",beforeComment:"\n",after:"\n",emptyBody:"",commentLeft:" ",commentRight:" ",semicolon:!1};function r(t){return t[0].toUpperCase()+t.slice(1)}class n{constructor(t){this.builder=t}stringify(t,e){if(!this[t.type])throw new Error("Unknown AST node type "+t.type+". Maybe you need to change PostCSS stringifier.");this[t.type](t,e)}document(t){this.body(t)}root(t){this.body(t),t.raws.after&&this.builder(t.raws.after)}comment(t){let e=this.raw(t,"left","commentLeft"),r=this.raw(t,"right","commentRight");this.builder("/*"+e+t.text+r+"*/",t)}decl(t,e){let r=this.raw(t,"between","colon"),n=t.prop+r+this.rawValue(t,"value");t.important&&(n+=t.raws.important||" !important"),e&&(n+=";"),this.builder(n,t)}rule(t){this.block(t,this.rawValue(t,"selector")),t.raws.ownSemicolon&&this.builder(t.raws.ownSemicolon,t,"end")}atrule(t,e){let r="@"+t.name,n=t.params?this.rawValue(t,"params"):"";if("undefined"!==typeof t.raws.afterName?r+=t.raws.afterName:n&&(r+=" "),t.nodes)this.block(t,r+n);else{let i=(t.raws.between||"")+(e?";":"");this.builder(r+n+i,t)}}body(t){let e=t.nodes.length-1;while(e>0){if("comment"!==t.nodes[e].type)break;e-=1}let r=this.raw(t,"semicolon");for(let n=0;n{if(o=t.raws[n],"undefined"!==typeof o)return!1}))}return"undefined"===typeof o&&(o=e[i]),a.rawCache[i]=o,o}rawSemicolon(t){let e;return t.walk((t=>{if(t.nodes&&t.nodes.length&&"decl"===t.last.type&&(e=t.raws.semicolon,"undefined"!==typeof e))return!1})),e}rawEmptyBody(t){let e;return t.walk((t=>{if(t.nodes&&0===t.nodes.length&&(e=t.raws.after,"undefined"!==typeof e))return!1})),e}rawIndent(t){if(t.raws.indent)return t.raws.indent;let e;return t.walk((r=>{let n=r.parent;if(n&&n!==t&&n.parent&&n.parent===t&&"undefined"!==typeof r.raws.before){let t=r.raws.before.split("\n");return e=t[t.length-1],e=e.replace(/\S/g,""),!1}})),e}rawBeforeComment(t,e){let r;return t.walkComments((t=>{if("undefined"!==typeof t.raws.before)return r=t.raws.before,r.includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1})),"undefined"===typeof r?r=this.raw(e,null,"beforeDecl"):r&&(r=r.replace(/\S/g,"")),r}rawBeforeDecl(t,e){let r;return t.walkDecls((t=>{if("undefined"!==typeof t.raws.before)return r=t.raws.before,r.includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1})),"undefined"===typeof r?r=this.raw(e,null,"beforeRule"):r&&(r=r.replace(/\S/g,"")),r}rawBeforeRule(t){let e;return t.walk((r=>{if(r.nodes&&(r.parent!==t||t.first!==r)&&"undefined"!==typeof r.raws.before)return e=r.raws.before,e.includes("\n")&&(e=e.replace(/[^\n]+$/,"")),!1})),e&&(e=e.replace(/\S/g,"")),e}rawBeforeClose(t){let e;return t.walk((t=>{if(t.nodes&&t.nodes.length>0&&"undefined"!==typeof t.raws.after)return e=t.raws.after,e.includes("\n")&&(e=e.replace(/[^\n]+$/,"")),!1})),e&&(e=e.replace(/\S/g,"")),e}rawBeforeOpen(t){let e;return t.walk((t=>{if("decl"!==t.type&&(e=t.raws.between,"undefined"!==typeof e))return!1})),e}rawColon(t){let e;return t.walkDecls((t=>{if("undefined"!==typeof t.raws.between)return e=t.raws.between.replace(/[^\s:]/g,""),!1})),e}beforeAfter(t,e){let r;r="decl"===t.type?this.raw(t,null,"beforeDecl"):"comment"===t.type?this.raw(t,null,"beforeComment"):"before"===e?this.raw(t,null,"beforeRule"):this.raw(t,null,"beforeClose");let n=t.parent,i=0;while(n&&"root"!==n.type)i+=1,n=n.parent;if(r.includes("\n")){let e=this.raw(t,null,"indent");if(e.length)for(let t=0;t=P}function V(t){if(q.length)return q.pop();if(R>=P)return;let k=!!t&&t.ignoreUnclosed;switch(S=B.charCodeAt(R),S){case o:case s:case u:case l:case a:C=R;do{C+=1,S=B.charCodeAt(C)}while(S===s||S===o||S===u||S===l||S===a);N=["space",B.slice(R,C)],R=C-1;break;case c:case d:case f:case m:case b:case g:case h:{let t=String.fromCharCode(S);N=[t,t,R];break}case p:if(F=j.length?j.pop()[1]:"",U=B.charCodeAt(R+1),"url"===F&&U!==e&&U!==r&&U!==s&&U!==o&&U!==u&&U!==a&&U!==l){C=R;do{if(O=!1,C=B.indexOf(")",C+1),-1===C){if(L||k){C=R;break}z("bracket")}I=C;while(B.charCodeAt(I-1)===n)I-=1,O=!O}while(O);N=["brackets",B.slice(R,C+1),R,C],R=C}else C=B.indexOf(")",R+1),x=B.slice(R,C+1),-1===C||A.test(x)?N=["(","(",R]:(N=["brackets",x,R,C],R=C);break;case e:case r:T=S===e?"'":'"',C=R;do{if(O=!1,C=B.indexOf(T,C+1),-1===C){if(L||k){C=R+1;break}z("string")}I=C;while(B.charCodeAt(I-1)===n)I-=1,O=!O}while(O);N=["string",B.slice(R,C+1),R,C],R=C;break;case D:w.lastIndex=R+1,w.test(B),C=0===w.lastIndex?B.length-1:w.lastIndex-2,N=["at-word",B.slice(R,C+1),R,C],R=C;break;case n:C=R,_=!0;while(B.charCodeAt(C+1)===n)C+=1,_=!_;if(S=B.charCodeAt(C+1),_&&S!==i&&S!==s&&S!==o&&S!==u&&S!==l&&S!==a&&(C+=1,E.test(B.charAt(C)))){while(E.test(B.charAt(C+1)))C+=1;B.charCodeAt(C+1)===s&&(C+=1)}N=["word",B.slice(R,C+1),R,C],R=C;break;default:S===i&&B.charCodeAt(R+1)===y?(C=B.indexOf("*/",R+2)+1,0===C&&(L||k?C=B.length:z("comment")),N=["comment",B.slice(R,C+1),R,C],R=C):(v.lastIndex=R+1,v.test(B),C=0===v.lastIndex?B.length-1:v.lastIndex-2,N=["word",B.slice(R,C+1),R,C],j.push(N),R=C);break}return R++,N}function $(t){q.push(t)}return{back:$,nextToken:V,endOfFile:H,position:M}}},2448:function(t){"use strict";let e={};t.exports=function(t){e[t]||(e[t]=!0,"undefined"!==typeof console&&console.warn&&console.warn(t))}},1728:function(t){"use strict";class e{constructor(t,e={}){if(this.type="warning",this.text=t,e.node&&e.node.source){let t=e.node.rangeBy(e);this.line=t.start.line,this.column=t.start.column,this.endLine=t.end.line,this.endColumn=t.end.column}for(let r in e)this[r]=e[r]}toString(){return this.node?this.node.error(this.text,{plugin:this.plugin,index:this.index,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}}t.exports=e,e.default=e},1036:function(t,e,r){const n=r(3719),i=r(3150),{isPlainObject:o}=r(6057),s=r(9996),a=r(9430),{parse:u}=r(20),l=["img","audio","video","picture","svg","object","map","iframe","embed"],c=["script","style"];function d(t,e){t&&Object.keys(t).forEach((function(r){e(t[r],r)}))}function p(t,e){return{}.hasOwnProperty.call(t,e)}function h(t,e){const r=[];return d(t,(function(t){e(t)&&r.push(t)})),r}function f(t){for(const e in t)if(p(t,e))return!1;return!0}function m(t){return t.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(", ")}t.exports=y;const g=/^[^\0\t\n\f\r /<=>]+$/;function y(t,e,r){if(null==t)return"";"number"===typeof t&&(t=t.toString());let D="",w="";function v(t,e){const r=this;this.tag=t,this.attribs=e||{},this.tagPosition=D.length,this.text="",this.mediaChildren=[],this.updateParentNodeText=function(){if(I.length){const t=I[I.length-1];t.text+=r.text}},this.updateParentNodeMediaChildren=function(){if(I.length&&l.includes(this.tag)){const t=I[I.length-1];t.mediaChildren.push(this.tag)}}}e=Object.assign({},y.defaults,e),e.parser=Object.assign({},b,e.parser),c.forEach((function(t){!1!==e.allowedTags&&(e.allowedTags||[]).indexOf(t)>-1&&!e.allowVulnerableTags&&console.warn(`\n\n⚠️ Your \`allowedTags\` option includes, \`${t}\`, which is inherently\nvulnerable to XSS attacks. Please remove it from \`allowedTags\`.\nOr, to disable this warning, add the \`allowVulnerableTags\` option\nand ensure you are accounting for this risk.\n\n`)}));const A=e.nonTextTags||["script","style","textarea","option"];let E,k;e.allowedAttributes&&(E={},k={},d(e.allowedAttributes,(function(t,e){E[e]=[];const r=[];t.forEach((function(t){"string"===typeof t&&t.indexOf("*")>=0?r.push(i(t).replace(/\\\*/g,".*")):E[e].push(t)})),r.length&&(k[e]=new RegExp("^("+r.join("|")+")$"))})));const S={},C={},T={};d(e.allowedClasses,(function(t,e){E&&(p(E,e)||(E[e]=[]),E[e].push("class")),S[e]=[],T[e]=[];const r=[];t.forEach((function(t){"string"===typeof t&&t.indexOf("*")>=0?r.push(i(t).replace(/\\\*/g,".*")):t instanceof RegExp?T[e].push(t):S[e].push(t)})),r.length&&(C[e]=new RegExp("^("+r.join("|")+")$"))}));const x={};let _,O,I,F,U,N,B;d(e.transformTags,(function(t,e){let r;"function"===typeof t?r=t:"string"===typeof t&&(r=y.simpleTransform(t)),"*"===e?_=r:x[e]=r}));let L=!1;R();const P=new n.Parser({onopentag:function(t,r){if(e.enforceHtmlBoundary&&"html"===t&&R(),N)return void B++;const n=new v(t,r);I.push(n);let i=!1;const l=!!n.text;let c;if(p(x,t)&&(c=x[t](t,r),n.attribs=r=c.attribs,void 0!==c.text&&(n.innerText=c.text),t!==c.tagName&&(n.name=t=c.tagName,U[O]=c.tagName)),_&&(c=_(t,r),n.attribs=r=c.attribs,t!==c.tagName&&(n.name=t=c.tagName,U[O]=c.tagName)),(!1!==e.allowedTags&&-1===(e.allowedTags||[]).indexOf(t)||"recursiveEscape"===e.disallowedTagsMode&&!f(F)||null!=e.nestingLimit&&O>=e.nestingLimit)&&(i=!0,F[O]=!0,"discard"===e.disallowedTagsMode&&-1!==A.indexOf(t)&&(N=!0,B=1),F[O]=!0),O++,i){if("discard"===e.disallowedTagsMode)return;w=D,D=""}D+="<"+t,"script"===t&&(e.allowedScriptHostnames||e.allowedScriptDomains)&&(n.innerText=""),(!E||p(E,t)||E["*"])&&d(r,(function(r,i){if(!g.test(i))return void delete n.attribs[i];let l=!1;if(!E||p(E,t)&&-1!==E[t].indexOf(i)||E["*"]&&-1!==E["*"].indexOf(i)||p(k,t)&&k[t].test(i)||k["*"]&&k["*"].test(i))l=!0;else if(E&&E[t])for(const e of E[t])if(o(e)&&e.name&&e.name===i){l=!0;let t="";if(!0===e.multiple){const n=r.split(" ");for(const r of n)-1!==e.values.indexOf(r)&&(""===t?t=r:t+=" "+r)}else e.values.indexOf(r)>=0&&(t=r);r=t}if(l){if(-1!==e.allowedSchemesAppliedToAttributes.indexOf(i)&&q(t,r))return void delete n.attribs[i];if("script"===t&&"src"===i){let t=!0;try{const n=M(r);if(e.allowedScriptHostnames||e.allowedScriptDomains){const r=(e.allowedScriptHostnames||[]).find((function(t){return t===n.url.hostname})),i=(e.allowedScriptDomains||[]).find((function(t){return n.url.hostname===t||n.url.hostname.endsWith(`.${t}`)}));t=r||i}}catch(c){t=!1}if(!t)return void delete n.attribs[i]}if("iframe"===t&&"src"===i){let t=!0;try{const n=M(r);if(n.isRelativeUrl)t=p(e,"allowIframeRelativeUrls")?e.allowIframeRelativeUrls:!e.allowedIframeHostnames&&!e.allowedIframeDomains;else if(e.allowedIframeHostnames||e.allowedIframeDomains){const r=(e.allowedIframeHostnames||[]).find((function(t){return t===n.url.hostname})),i=(e.allowedIframeDomains||[]).find((function(t){return n.url.hostname===t||n.url.hostname.endsWith(`.${t}`)}));t=r||i}}catch(c){t=!1}if(!t)return void delete n.attribs[i]}if("srcset"===i)try{let t=a(r);if(t.forEach((function(t){q("srcset",t.url)&&(t.evil=!0)})),t=h(t,(function(t){return!t.evil})),!t.length)return void delete n.attribs[i];r=m(h(t,(function(t){return!t.evil}))),n.attribs[i]=r}catch(c){return void delete n.attribs[i]}if("class"===i){const e=S[t],o=S["*"],a=C[t],u=T[t],l=C["*"],c=[a,l].concat(u).filter((function(t){return t}));if(r=$(r,e&&o?s(e,o):e||o,c),!r.length)return void delete n.attribs[i]}if("style"===i)try{const o=u(t+" {"+r+"}"),s=z(o,e.allowedStyles);if(r=H(s),0===r.length)return void delete n.attribs[i]}catch(c){return void delete n.attribs[i]}D+=" "+i,r&&r.length&&(D+='="'+j(r,!0)+'"')}else delete n.attribs[i]})),-1!==e.selfClosing.indexOf(t)?D+=" />":(D+=">",!n.innerText||l||e.textFilter||(D+=j(n.innerText),L=!0)),i&&(D=w+j(D),w="")},ontext:function(t){if(N)return;const r=I[I.length-1];let n;if(r&&(n=r.tag,t=void 0!==r.innerText?r.innerText:t),"discard"!==e.disallowedTagsMode||"script"!==n&&"style"!==n){const r=j(t,!1);e.textFilter&&!L?D+=e.textFilter(r,n):L||(D+=r)}else D+=t;if(I.length){const e=I[I.length-1];e.text+=t}},onclosetag:function(t){if(N){if(B--,B)return;N=!1}const r=I.pop();if(!r)return;if(r.tag!==t)return void I.push(r);N=!!e.enforceHtmlBoundary&&"html"===t,O--;const n=F[O];if(n){if(delete F[O],"discard"===e.disallowedTagsMode)return void r.updateParentNodeText();w=D,D=""}U[O]&&(t=U[O],delete U[O]),e.exclusiveFilter&&e.exclusiveFilter(r)?D=D.substr(0,r.tagPosition):(r.updateParentNodeMediaChildren(),r.updateParentNodeText(),-1===e.selfClosing.indexOf(t)?(D+="",n&&(D=w+j(D),w=""),L=!1):n&&(D=w,w=""))}},e.parser);return P.write(t),P.end(),D;function R(){D="",O=0,I=[],F={},U={},N=!1,B=0}function j(t,r){return"string"!==typeof t&&(t+=""),e.parser.decodeEntities&&(t=t.replace(/&/g,"&").replace(//g,">"),r&&(t=t.replace(/"/g,"""))),t=t.replace(/&(?![a-zA-Z0-9#]{1,20};)/g,"&").replace(//g,">"),r&&(t=t.replace(/"/g,""")),t}function q(t,r){r=r.replace(/[\x00-\x20]+/g,"");while(1){const t=r.indexOf("\x3c!--");if(-1===t)break;const e=r.indexOf("--\x3e",t+4);if(-1===e)break;r=r.substring(0,t)+r.substring(e+3)}const n=r.match(/^([a-zA-Z][a-zA-Z0-9.\-+]*):/);if(!n)return!!r.match(/^[/\\]{2}/)&&!e.allowProtocolRelative;const i=n[1].toLowerCase();return p(e.allowedSchemesByTag,t)?-1===e.allowedSchemesByTag[t].indexOf(i):!e.allowedSchemes||-1===e.allowedSchemes.indexOf(i)}function M(t){if(t=t.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/,"$1//"),t.startsWith("relative:"))throw new Error("relative: exploit attempt");let e="relative://relative-site";for(let i=0;i<100;i++)e+=`/${i}`;const r=new URL(t,e),n=r&&"relative-site"===r.hostname&&"relative:"===r.protocol;return{isRelativeUrl:n,url:r}}function z(t,e){if(!e)return t;const r=t.nodes[0];let n;return n=e[r.selector]&&e["*"]?s(e[r.selector],e["*"]):e[r.selector]||e["*"],n&&(t.nodes[0].nodes=r.nodes.reduce(V(n),[])),t}function H(t){return t.nodes[0].nodes.reduce((function(t,e){return t.push(`${e.prop}:${e.value}${e.important?" !important":""}`),t}),[]).join(";")}function V(t){return function(e,r){if(p(t,r.prop)){const n=t[r.prop].some((function(t){return t.test(r.value)}));n&&e.push(r)}return e}}function $(t,e,r){return e?(t=t.split(/\s+/),t.filter((function(t){return-1!==e.indexOf(t)||r.some((function(e){return e.test(t)}))})).join(" ")):t}}const b={decodeEntities:!0};y.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"],disallowedTagsMode:"discard",allowedAttributes:{a:["href","name","target"],img:["src","srcset","alt","title","width","height","loading"]},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},y.simpleTransform=function(t,e,r){return r=void 0===r||r,e=e||{},function(n,i){let o;if(r)for(o in e)i[o]=e[o];else i=e;return{tagName:t,attribs:i}}}},2238:function(t,e,r){"use strict";r.d(e,{Z:function(){return it}});r(7658);var n=r(6252),i=r(3577),o=r(2262),s=r(9963),a=r(9150),u=r(2201),l=r(5801),c=r(9917),d=r(6558),p=r(8966),h=r(631),f=r(3649);const m={id:"workout-form"},g=["onSubmit"],y={class:"form-items"},b={key:0,class:"form-item-radio"},D=["checked","disabled"],w={for:"withGpx"},v=["checked","disabled"],A={for:"withoutGpx"},E={class:"form-item"},k=["disabled"],S=["value"],C={key:1,class:"form-item"},T={for:"gpxFile"},x=["disabled"],_={class:"files-help info-box"},O={key:2,class:"form-item"},I={for:"title"},F=["required","disabled"],U={key:3},N={class:"workout-date-duration"},B={class:"form-item"},L={class:"workout-date-time"},P=["disabled"],R=["disabled"],j={class:"form-item"},q=["disabled"],M=["disabled"],z=["disabled"],H={class:"workout-data"},V={class:"form-item"},$=["disabled"],W={class:"form-item"},G=["disabled"],Z={class:"form-item"},K=["disabled"],Y={class:"form-item"},X={key:1},J={key:2,class:"form-buttons"},Q=["disabled"],tt=["onClick"];var et=(0,n.aZ)({__name:"WorkoutEdition",props:{authUser:null,sports:null,isCreation:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},workout:{default:()=>({})}},setup(t){const e=t,{t:r}=(0,a.QT)(),et=(0,c.o)(),rt=(0,u.tv)(),{authUser:nt,workout:it,isCreation:ot,loading:st}=(0,o.BK)(e),at=(0,n.Fl)((()=>(0,h.xH)(e.sports,r,"is_active_for_user",it.value.id?[it.value.sport_id]:[]))),ut=(0,n.Fl)((()=>et.getters[l.SY.GETTERS.APP_CONFIG])),lt=ut.value.max_single_file_size?(0,p.Z)(ut.value.max_single_file_size):"",ct=ut.value.gpx_limit_import,dt=ut.value.max_zip_file_size?(0,p.Z)(ut.value.max_zip_file_size):"",pt=(0,n.Fl)((()=>et.getters[l.SY.GETTERS.ERROR_MESSAGES])),ht=(0,o.qj)({sport_id:"",title:"",notes:"",workoutDate:"",workoutTime:"",workoutDurationHour:"",workoutDurationMinutes:"",workoutDurationSeconds:"",workoutDistance:"",workoutAscent:"",workoutDescent:""}),ft=(0,o.iH)(e.workout.id?e.workout.with_gpx:e.isCreation);let mt=null;const gt=(0,o.iH)(!1),yt=(0,o.iH)([]);function bt(t){ht.notes=t}function Dt(){ft.value=!ft.value,gt.value=!1}function wt(t){t.target.files&&(mt=t.target.files[0])}function vt(t){if(ht.sport_id=`${t.sport_id}`,ht.title=t.title,ht.notes=t.notes,!t.with_gpx){const r=(0,d.Jo)((0,d.eB)(t.workout_date,e.authUser.timezone),"yyyy-MM-dd"),n=t.duration.split(":");ht.workoutDistance=`${nt.value.imperial_units?(0,f.sC)(t.distance,"km","mi",3):parseFloat(t.distance.toFixed(3))}`,ht.workoutDate=r.workout_date,ht.workoutTime=r.workout_time,ht.workoutDurationHour=n[0],ht.workoutDurationMinutes=n[1],ht.workoutDurationSeconds=n[2],ht.workoutAscent=null===t.ascent?"":`${nt.value.imperial_units?(0,f.sC)(t.ascent,"m","ft",2):parseFloat(t.ascent.toFixed(2))}`,ht.workoutDescent=null===t.descent?"":`${nt.value.imperial_units?(0,f.sC)(t.descent,"m","ft",2):parseFloat(t.descent.toFixed(2))}`}}function At(){return yt.value.includes("workouts.INVALID_DISTANCE")}function Et(){return yt.value.includes("workouts.INVALID_DURATION")}function kt(){return yt.value.includes("workouts.INVALID_ASCENT_OR_DESCENT")}function St(t){yt.value=[],t.title=ht.title,t.duration=3600*+ht.workoutDurationHour+60*+ht.workoutDurationMinutes+ +ht.workoutDurationSeconds,t.duration<=0&&yt.value.push("workouts.INVALID_DURATION"),t.distance=nt.value.imperial_units?(0,f.sC)(+ht.workoutDistance,"mi","km",3):+ht.workoutDistance,t.distance<=0&&yt.value.push("workouts.INVALID_DISTANCE"),t.workout_date=`${ht.workoutDate} ${ht.workoutTime}`,t.ascent=""===ht.workoutAscent?null:nt.value.imperial_units?(0,f.sC)(+ht.workoutAscent,"ft","m",3):+ht.workoutAscent,t.descent=""===ht.workoutDescent?null:nt.value.imperial_units?(0,f.sC)(+ht.workoutDescent,"ft","m",3):+ht.workoutDescent,(null!==t.ascent&&null===t.descent||null===t.ascent&&null!==t.descent)&&yt.value.push("workouts.INVALID_ASCENT_OR_DESCENT")}function Ct(){const t={sport_id:+ht.sport_id,notes:ht.notes};if(e.workout.id)e.workout.with_gpx?t.title=ht.title:St(t),yt.value.length>0?et.commit(l.SY.MUTATIONS.SET_ERROR_MESSAGES,yt.value):et.dispatch(l.aX.ACTIONS.EDIT_WORKOUT,{workoutId:e.workout.id,data:t});else if(ft.value){if(!mt){const t="workouts.NO_FILE_PROVIDED";return void et.commit(l.SY.MUTATIONS.SET_ERROR_MESSAGES,t)}t.file=mt,et.dispatch(l.aX.ACTIONS.ADD_WORKOUT,t)}else St(t),yt.value.length>0?et.commit(l.SY.MUTATIONS.SET_ERROR_MESSAGES,yt.value):et.dispatch(l.aX.ACTIONS.ADD_WORKOUT_WITHOUT_GPX,t)}function Tt(){e.workout.id?rt.push({name:"Workout",params:{workoutId:e.workout.id}}):rt.go(-1)}function xt(){gt.value=!0}return(0,n.bv)((()=>{e.workout.id&&vt(e.workout)})),(0,n.Ah)((()=>et.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(0,n.YP)((()=>e.workout),(async(t,e)=>{t!==e&&t&&t.id&&vt(t)})),(t,e)=>{const r=(0,n.up)("CustomTextArea"),a=(0,n.up)("ErrorMessage"),u=(0,n.up)("Loader"),l=(0,n.up)("Card");return(0,n.wg)(),(0,n.iD)("div",{id:"workout-edition",class:(0,i.C_)(["center-card with-margin",{"center-form":(0,o.SU)(it)&&(0,o.SU)(it).with_gpx}])},[(0,n.Wm)(l,null,{title:(0,n.w5)((()=>[(0,n.Uk)((0,i.zw)(t.$t(`workouts.${(0,o.SU)(ot)?"ADD":"EDIT"}_WORKOUT`)),1)])),content:(0,n.w5)((()=>[(0,n._)("div",m,[(0,n._)("form",{class:(0,i.C_)({errors:gt.value}),onSubmit:(0,s.iM)(Ct,["prevent"])},[(0,n._)("div",y,[(0,o.SU)(ot)?((0,n.wg)(),(0,n.iD)("div",b,[(0,n._)("div",null,[(0,n._)("input",{id:"withGpx",type:"radio",checked:ft.value,disabled:(0,o.SU)(st),onClick:Dt},null,8,D),(0,n._)("label",w,(0,i.zw)(t.$t("workouts.WITH_GPX")),1)]),(0,n._)("div",null,[(0,n._)("input",{id:"withoutGpx",type:"radio",checked:!ft.value,disabled:(0,o.SU)(st),onClick:Dt},null,8,v),(0,n._)("label",A,(0,i.zw)(t.$t("workouts.WITHOUT_GPX")),1)])])):(0,n.kq)("",!0),(0,n._)("div",E,[(0,n._)("label",null,(0,i.zw)(t.$t("workouts.SPORT",1))+"*: ",1),(0,n.wy)((0,n._)("select",{id:"sport",required:"",onInvalid:xt,disabled:(0,o.SU)(st),"onUpdate:modelValue":e[0]||(e[0]=t=>ht.sport_id=t)},[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)((0,o.SU)(at),(t=>((0,n.wg)(),(0,n.iD)("option",{value:t.id,key:t.id},(0,i.zw)(t.translatedLabel),9,S)))),128))],40,k),[[s.bM,ht.sport_id]])]),(0,o.SU)(ot)&&ft.value?((0,n.wg)(),(0,n.iD)("div",C,[(0,n._)("label",T,(0,i.zw)(t.$t("workouts.GPX_FILE"))+" "+(0,i.zw)(t.$t("workouts.ZIP_ARCHIVE_DESCRIPTION"))+"*: ",1),(0,n._)("input",{id:"gpxFile",name:"gpxFile",type:"file",accept:".gpx, .zip",disabled:(0,o.SU)(st),required:"",onInvalid:xt,onInput:wt},null,40,x),(0,n._)("div",_,[(0,n._)("div",null,[(0,n._)("strong",null,(0,i.zw)(t.$t("workouts.GPX_FILE"))+":",1),(0,n._)("ul",null,[(0,n._)("li",null,(0,i.zw)(t.$t("workouts.MAX_SIZE"))+": "+(0,i.zw)((0,o.SU)(lt)),1)])]),(0,n._)("div",null,[(0,n._)("strong",null,(0,i.zw)(t.$t("workouts.ZIP_ARCHIVE"))+":",1),(0,n._)("ul",null,[(0,n._)("li",null,(0,i.zw)(t.$t("workouts.NO_FOLDER")),1),(0,n._)("li",null,(0,i.zw)(t.$t("workouts.MAX_FILES"))+": "+(0,i.zw)((0,o.SU)(ct)),1),(0,n._)("li",null,(0,i.zw)(t.$t("workouts.MAX_SIZE"))+": "+(0,i.zw)((0,o.SU)(dt)),1)])])])])):((0,n.wg)(),(0,n.iD)("div",O,[(0,n._)("label",I,(0,i.zw)(t.$t("workouts.TITLE"))+": ",1),(0,n.wy)((0,n._)("input",{id:"title",name:"title",type:"text",required:!(0,o.SU)(ot),onInvalid:xt,disabled:(0,o.SU)(st),"onUpdate:modelValue":e[1]||(e[1]=t=>ht.title=t)},null,40,F),[[s.nr,ht.title]])])),ft.value?(0,n.kq)("",!0):((0,n.wg)(),(0,n.iD)("div",U,[(0,n._)("div",N,[(0,n._)("div",B,[(0,n._)("label",null,(0,i.zw)(t.$t("workouts.WORKOUT_DATE"))+"*:",1),(0,n._)("div",L,[(0,n.wy)((0,n._)("input",{id:"workout-date",name:"workout-date",type:"date",required:"",onInvalid:xt,disabled:(0,o.SU)(st),"onUpdate:modelValue":e[2]||(e[2]=t=>ht.workoutDate=t)},null,40,P),[[s.nr,ht.workoutDate]]),(0,n.wy)((0,n._)("input",{id:"workout-time",name:"workout-time",class:"workout-time",type:"time",required:"",onInvalid:xt,disabled:(0,o.SU)(st),"onUpdate:modelValue":e[3]||(e[3]=t=>ht.workoutTime=t)},null,40,R),[[s.nr,ht.workoutTime]])])]),(0,n._)("div",j,[(0,n._)("label",null,(0,i.zw)(t.$t("workouts.DURATION"))+"*:",1),(0,n._)("div",null,[(0,n.wy)((0,n._)("input",{id:"workout-duration-hour",name:"workout-duration-hour",class:(0,i.C_)(["workout-duration",{errored:Et()}]),type:"text",placeholder:"HH",minlength:"1",maxlength:"2",pattern:"^([0-1]?[0-9]|2[0-3])$",required:"",onInvalid:xt,disabled:(0,o.SU)(st),"onUpdate:modelValue":e[4]||(e[4]=t=>ht.workoutDurationHour=t)},null,42,q),[[s.nr,ht.workoutDurationHour]]),(0,n.Uk)(" : "),(0,n.wy)((0,n._)("input",{id:"workout-duration-minutes",name:"workout-duration-minutes",class:(0,i.C_)(["workout-duration",{errored:Et()}]),type:"text",pattern:"^([0-5][0-9])$",minlength:"2",maxlength:"2",placeholder:"MM",required:"",onInvalid:xt,disabled:(0,o.SU)(st),"onUpdate:modelValue":e[5]||(e[5]=t=>ht.workoutDurationMinutes=t)},null,42,M),[[s.nr,ht.workoutDurationMinutes]]),(0,n.Uk)(" : "),(0,n.wy)((0,n._)("input",{id:"workout-duration-seconds",name:"workout-duration-seconds",class:(0,i.C_)(["workout-duration",{errored:Et()}]),type:"text",pattern:"^([0-5][0-9])$",minlength:"2",maxlength:"2",placeholder:"SS",required:"",onInvalid:xt,disabled:(0,o.SU)(st),"onUpdate:modelValue":e[6]||(e[6]=t=>ht.workoutDurationSeconds=t)},null,42,z),[[s.nr,ht.workoutDurationSeconds]])])])]),(0,n._)("div",H,[(0,n._)("div",V,[(0,n._)("label",null,(0,i.zw)(t.$t("workouts.DISTANCE"))+" ("+(0,i.zw)((0,o.SU)(nt).imperial_units?"mi":"km")+")*: ",1),(0,n.wy)((0,n._)("input",{class:(0,i.C_)({errored:At()}),name:"workout-distance",type:"number",min:"0",step:"0.001",required:"",onInvalid:xt,disabled:(0,o.SU)(st),"onUpdate:modelValue":e[7]||(e[7]=t=>ht.workoutDistance=t)},null,42,$),[[s.nr,ht.workoutDistance]])]),(0,n._)("div",W,[(0,n._)("label",null,(0,i.zw)(t.$t("workouts.ASCENT"))+" ("+(0,i.zw)((0,o.SU)(nt).imperial_units?"ft":"m")+"): ",1),(0,n.wy)((0,n._)("input",{class:(0,i.C_)({errored:kt()}),name:"workout-ascent",type:"number",min:"0",step:"0.01",onInvalid:xt,disabled:(0,o.SU)(st),"onUpdate:modelValue":e[8]||(e[8]=t=>ht.workoutAscent=t)},null,42,G),[[s.nr,ht.workoutAscent]])]),(0,n._)("div",Z,[(0,n._)("label",null,(0,i.zw)(t.$t("workouts.DESCENT"))+" ("+(0,i.zw)((0,o.SU)(nt).imperial_units?"ft":"m")+"): ",1),(0,n.wy)((0,n._)("input",{class:(0,i.C_)({errored:kt()}),name:"workout-descent",type:"number",min:"0",step:"0.01",onInvalid:xt,disabled:(0,o.SU)(st),"onUpdate:modelValue":e[9]||(e[9]=t=>ht.workoutDescent=t)},null,42,K),[[s.nr,ht.workoutDescent]])])])])),(0,n._)("div",Y,[(0,n._)("label",null,(0,i.zw)(t.$t("workouts.NOTES"))+": ",1),(0,n.Wm)(r,{name:"notes",input:ht.notes,disabled:(0,o.SU)(st),onUpdateValue:bt},null,8,["input","disabled"])])]),(0,o.SU)(pt)?((0,n.wg)(),(0,n.j4)(a,{key:0,message:(0,o.SU)(pt)},null,8,["message"])):(0,n.kq)("",!0),(0,o.SU)(st)?((0,n.wg)(),(0,n.iD)("div",X,[(0,n.Wm)(u)])):((0,n.wg)(),(0,n.iD)("div",J,[(0,n._)("button",{class:"confirm",type:"submit",disabled:(0,o.SU)(st)},(0,i.zw)(t.$t("buttons.SUBMIT")),9,Q),(0,n._)("button",{class:"cancel",onClick:(0,s.iM)(Tt,["prevent"])},(0,i.zw)(t.$t("buttons.CANCEL")),9,tt)]))],42,g)])])),_:1})],2)}}}),rt=r(3744);const nt=(0,rt.Z)(et,[["__scopeId","data-v-45d3bf87"]]);var it=nt},4189:function(t,e,r){"use strict";r.r(e),r.d(e,{default:function(){return p}});var n=r(6252),i=r(2262),o=r(2238),s=r(5801),a=r(9917);const u={id:"add-workout",class:"view"},l={class:"container"};var c=(0,n.aZ)({__name:"AddWorkout",setup(t){const e=(0,a.o)(),r=(0,n.Fl)((()=>e.getters[s.O8.GETTERS.SPORTS])),c=(0,n.Fl)((()=>e.getters[s.YN.GETTERS.AUTH_USER_PROFILE])),d=(0,n.Fl)((()=>e.getters[s.aX.GETTERS.WORKOUT_DATA]));return(t,e)=>((0,n.wg)(),(0,n.iD)("div",u,[(0,n._)("div",l,[(0,n.Wm)(o.Z,{authUser:(0,i.SU)(c),sports:(0,i.SU)(r),isCreation:!0,loading:(0,i.SU)(d).loading},null,8,["authUser","sports","loading"])])]))}});const d=c;var p=d},8237:function(t,e,r){"use strict";r.r(e),r.d(e,{default:function(){return h}});var n=r(6252),i=r(2262),o=r(2201),s=r(2238),a=r(5801),u=r(9917);const l={id:"edit-workout",class:"view"},c={class:"container"};var d=(0,n.aZ)({__name:"EditWorkout",setup(t){const e=(0,o.yj)(),r=(0,u.o)(),d=(0,n.Fl)((()=>r.getters[a.YN.GETTERS.AUTH_USER_PROFILE])),p=(0,n.Fl)((()=>r.getters[a.O8.GETTERS.SPORTS])),h=(0,n.Fl)((()=>r.getters[a.aX.GETTERS.WORKOUT_DATA]));return(0,n.wF)((()=>{r.dispatch(a.aX.ACTIONS.GET_WORKOUT_DATA,{workoutId:e.params.workoutId})})),(0,n.YP)((()=>e.params.workoutId),(async t=>{t||r.commit(a.aX.MUTATIONS.EMPTY_WORKOUT)})),(t,e)=>((0,n.wg)(),(0,n.iD)("div",l,[(0,n._)("div",c,[(0,i.SU)(h).workout.id?((0,n.wg)(),(0,n.j4)(s.Z,{key:0,authUser:(0,i.SU)(d),sports:(0,i.SU)(p),workout:(0,i.SU)(h).workout,loading:(0,i.SU)(h).loading},null,8,["authUser","sports","workout","loading"])):(0,n.kq)("",!0)])]))}});const p=d;var h=p},8691:function(t,e,r){"use strict";r.r(e),r.d(e,{default:function(){return yo}});var n=r(6252),i=r(2262),o=r(2201),s=r(8273),a=(r(7658),r(3577)),u=r(9963),l=r(5167);const c=t=>((0,n.dD)("data-v-4d9f9a8a"),t=t(),(0,n.Cn)(),t),d={id:"workout-card-title"},p=["title"],h=c((()=>(0,n._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1))),f=[h],m={class:"workout-card-title"},g={class:"workout-title-date"},y={key:0,class:"workout-title"},b={key:1,class:"workout-title"},D={class:"workout-segment"},w=c((()=>(0,n._)("i",{class:"fa fa-map-marker","aria-hidden":"true"},null,-1))),v={class:"workout-date"},A={class:"workout-link"},E=["title"],k=c((()=>(0,n._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1))),S=[k];var C=(0,n.aZ)({__name:"WorkoutCardTitle",props:{sport:null,workoutObject:null},emits:["displayModal"],setup(t,{emit:e}){const r=t,{sport:o,workoutObject:s}=(0,i.BK)(r);async function c(t){await l.Z.get(`workouts/${t}/gpx/download`,{responseType:"blob"}).then((e=>{const r=window.URL.createObjectURL(new Blob([e.data],{type:"application/gpx+xml"})),n=document.createElement("a");n.href=r,n.setAttribute("download",`${t}.gpx`),document.body.appendChild(n),n.click()}))}return(t,r)=>{const l=(0,n.up)("SportImage"),h=(0,n.up)("router-link");return(0,n.wg)(),(0,n.iD)("div",d,[(0,n._)("div",{class:(0,a.C_)(["workout-previous workout-arrow",{inactive:!(0,i.SU)(s).previousUrl}]),title:(0,i.SU)(s).previousUrl?t.$t(`workouts.PREVIOUS_${(0,i.SU)(s).type}`):t.$t(`workouts.NO_PREVIOUS_${(0,i.SU)(s).type}`),onClick:r[0]||(r[0]=e=>(0,i.SU)(s).previousUrl?t.$router.push((0,i.SU)(s).previousUrl):null)},f,10,p),(0,n._)("div",m,[(0,n.Wm)(l,{"sport-label":(0,i.SU)(o).label,color:(0,i.SU)(o).color},null,8,["sport-label","color"]),(0,n._)("div",g,["WORKOUT"===(0,i.SU)(s).type?((0,n.wg)(),(0,n.iD)("div",y,[(0,n._)("span",null,(0,a.zw)((0,i.SU)(s).title),1),(0,n._)("i",{class:"fa fa-edit","aria-hidden":"true",onClick:r[1]||(r[1]=e=>t.$router.push({name:"EditWorkout",params:{workoutId:(0,i.SU)(s).workoutId}}))}),(0,i.SU)(s).with_gpx?((0,n.wg)(),(0,n.iD)("i",{key:0,class:"fa fa-download","aria-hidden":"true",onClick:r[2]||(r[2]=(0,u.iM)((t=>c((0,i.SU)(s).workoutId)),["prevent"]))})):(0,n.kq)("",!0),(0,n._)("i",{class:"fa fa-trash","aria-hidden":"true",onClick:r[3]||(r[3]=t=>e("displayModal",!0))})])):((0,n.wg)(),(0,n.iD)("div",b,[(0,n.Uk)((0,a.zw)((0,i.SU)(s).title)+" ",1),(0,n._)("span",D,[(0,n.Uk)(" — "),w,(0,n.Uk)(" "+(0,a.zw)(t.$t("workouts.SEGMENT"))+" "+(0,a.zw)((0,i.SU)(s).segmentId+1),1)])])),(0,n._)("div",v,[(0,n.Uk)((0,a.zw)((0,i.SU)(s).workoutDate)+" - "+(0,a.zw)((0,i.SU)(s).workoutTime)+" ",1),(0,n._)("span",A,["SEGMENT"===(0,i.SU)(s).type?((0,n.wg)(),(0,n.j4)(h,{key:0,to:{name:"Workout",params:{workoutId:(0,i.SU)(s).workoutId}}},{default:(0,n.w5)((()=>[(0,n.Uk)(" > "+(0,a.zw)(t.$t("workouts.BACK_TO_WORKOUT")),1)])),_:1},8,["to"])):(0,n.kq)("",!0)])])])]),(0,n._)("div",{class:(0,a.C_)(["workout-next workout-arrow",{inactive:!(0,i.SU)(s).nextUrl}]),title:(0,i.SU)(s).nextUrl?t.$t(`workouts.NEXT_${(0,i.SU)(s).type}`):t.$t(`workouts.NO_NEXT_${(0,i.SU)(s).type}`),onClick:r[4]||(r[4]=e=>(0,i.SU)(s).nextUrl?t.$router.push((0,i.SU)(s).nextUrl):null)},S,10,E)])}}}),T=r(3744);const x=(0,T.Z)(C,[["__scopeId","data-v-4d9f9a8a"]]);var _=x;const O=t=>((0,n.dD)("data-v-1a5282f6"),t=t(),(0,n.Cn)(),t),I={key:0,class:"workout-record"},F=O((()=>(0,n._)("sup",null,[(0,n._)("i",{class:"fa fa-trophy","aria-hidden":"true"})],-1))),U=[F];var N=(0,n.aZ)({__name:"WorkoutRecord",props:{recordType:null,workoutObject:null},setup(t){const e=t,{recordType:r,workoutObject:o}=(0,i.BK)(e);return(t,e)=>(0,i.SU)(o).records&&(0,i.SU)(o).records.find((t=>t.record_type===(0,i.SU)(r)))?((0,n.wg)(),(0,n.iD)("span",I,U)):(0,n.kq)("",!0)}});const B=(0,T.Z)(N,[["__scopeId","data-v-1a5282f6"]]);var L=B,P=r(9150),R=r(3649);const j=["N","NNE","NE","ENE","E","ESE","SE","SSE","S","SSW","SW","WSW","W","WNW","NW","NNW"],q=t=>{const e=Math.floor(t/22.5+.5);return j[e%16]},M={class:"wind"},z={class:"wind-bearing"},H=["title"];var V=(0,n.aZ)({__name:"WeatherWind",props:{weather:null,useImperialUnits:{type:Boolean}},setup(t){const e=t,{useImperialUnits:r,weather:o}=(0,i.BK)(e),{t:s}=(0,P.QT)();function u(t){return s(`workouts.WEATHER.WIND_DIRECTIONS.${q(t)}`)}return(t,e)=>((0,n.wg)(),(0,n.iD)("div",M,[(0,n.Uk)((0,a.zw)((0,i.SU)(R.Y2)((0,i.SU)(o).wind,(0,i.SU)(r)))+" ",1),(0,n._)("div",z,[(0,i.SU)(o).windBearing?((0,n.wg)(),(0,n.iD)("i",{key:0,class:"fa fa-long-arrow-down",style:(0,a.j5)({transform:`rotate(${(0,i.SU)(o).windBearing}deg)`}),"aria-hidden":"true",title:u((0,i.SU)(o).windBearing)},null,12,H)):(0,n.kq)("",!0)])]))}});const $=(0,T.Z)(V,[["__scopeId","data-v-40697ed1"]]);var W=$;const G=t=>((0,n.dD)("data-v-807b431a"),t=t(),(0,n.Cn)(),t),Z={key:0,id:"workout-weather"},K={class:"weather-table"},Y=G((()=>(0,n._)("th",null,null,-1))),X={class:"weather-th"},J=["src","alt","title"],Q={class:"weather-th"},tt=["src","alt","title"],et=["alt","title"],rt=["alt","title"],nt=["alt","title"];var it=(0,n.aZ)({__name:"WorkoutWeather",props:{workoutObject:null,useImperialUnits:{type:Boolean}},setup(t){const e=t,{useImperialUnits:r,workoutObject:o}=(0,i.BK)(e);return(t,e)=>(0,i.SU)(o).weatherStart&&(0,i.SU)(o).weatherEnd?((0,n.wg)(),(0,n.iD)("div",Z,[(0,n._)("table",K,[(0,n._)("thead",null,[(0,n._)("tr",null,[Y,(0,n._)("th",null,[(0,n._)("div",X,[(0,n.Uk)((0,a.zw)(t.$t("workouts.START"))+" ",1),(0,n._)("img",{class:"weather-img",src:`/img/weather/${(0,i.SU)(o).weatherStart.icon}.svg`,alt:t.$t(`workouts.WEATHER.DARK_SKY.${(0,i.SU)(o).weatherStart.icon}`),title:t.$t(`workouts.WEATHER.DARK_SKY.${(0,i.SU)(o).weatherStart.icon}`)},null,8,J)])]),(0,n._)("th",null,[(0,n._)("div",Q,[(0,n.Uk)((0,a.zw)(t.$t("workouts.END"))+" ",1),(0,n._)("img",{class:"weather-img",src:`/img/weather/${(0,i.SU)(o).weatherEnd.icon}.svg`,alt:t.$t(`workouts.WEATHER.DARK_SKY.${(0,i.SU)(o).weatherEnd.icon}`),title:t.$t(`workouts.WEATHER.DARK_SKY.${(0,i.SU)(o).weatherEnd.icon}`)},null,8,tt)])])])]),(0,n._)("tbody",null,[(0,n._)("tr",null,[(0,n._)("td",null,[(0,n._)("img",{class:"weather-img weather-img-small",src:"/img/weather/temperature.svg",alt:t.$t("workouts.WEATHER.TEMPERATURE"),title:t.$t("workouts.WEATHER.TEMPERATURE")},null,8,et)]),(0,n._)("td",null,(0,a.zw)((0,i.SU)(R.x$)((0,i.SU)(o).weatherStart.temperature,(0,i.SU)(r))),1),(0,n._)("td",null,(0,a.zw)((0,i.SU)(R.x$)((0,i.SU)(o).weatherEnd.temperature,(0,i.SU)(r))),1)]),(0,n._)("tr",null,[(0,n._)("td",null,[(0,n._)("img",{class:"weather-img weather-img-small",src:"/img/weather/pour-rain.svg",alt:t.$t("workouts.WEATHER.HUMIDITY"),title:t.$t("workouts.WEATHER.HUMIDITY")},null,8,rt)]),(0,n._)("td",null,(0,a.zw)(Number(100*(0,i.SU)(o).weatherStart.humidity).toFixed(1))+"% ",1),(0,n._)("td",null,(0,a.zw)(Number(100*(0,i.SU)(o).weatherEnd.humidity).toFixed(1))+"% ",1)]),(0,n._)("tr",null,[(0,n._)("td",null,[(0,n._)("img",{class:"weather-img weather-img-small",src:"/img/weather/breeze.svg",alt:t.$t("workouts.WEATHER.WIND"),title:t.$t("workouts.WEATHER.WIND")},null,8,nt)]),(0,n._)("td",null,[(0,n.Wm)(W,{weather:(0,i.SU)(o).weatherStart,useImperialUnits:(0,i.SU)(r)},null,8,["weather","useImperialUnits"])]),(0,n._)("td",null,[(0,n.Wm)(W,{weather:(0,i.SU)(o).weatherEnd,useImperialUnits:(0,i.SU)(r)},null,8,["weather","useImperialUnits"])])])])])])):(0,n.kq)("",!0)}});const ot=(0,T.Z)(it,[["__scopeId","data-v-807b431a"]]);var st=ot;const at=t=>((0,n.dD)("data-v-74c5993b"),t=t(),(0,n.Cn)(),t),ut={id:"workout-info"},lt={class:"workout-data"},ct=at((()=>(0,n._)("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1))),dt={class:"label"},pt={class:"value"},ht={key:0},ft={class:"value"},mt={class:"value"},gt={class:"workout-data"},yt=at((()=>(0,n._)("i",{class:"fa fa-road","aria-hidden":"true"},null,-1))),bt={class:"label"},Dt={class:"workout-data"},wt=at((()=>(0,n._)("i",{class:"fa fa-tachometer","aria-hidden":"true"},null,-1))),vt={class:"label"},At=at((()=>(0,n._)("br",null,null,-1))),Et={class:"label"},kt={key:0,class:"workout-data"},St=["alt"],Ct={class:"label"},Tt=at((()=>(0,n._)("br",null,null,-1))),xt={class:"label"},_t={key:1,class:"workout-data"},Ot=at((()=>(0,n._)("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1))),It={class:"label"},Ft=at((()=>(0,n._)("br",null,null,-1))),Ut={class:"label"};var Nt=(0,n.aZ)({__name:"WorkoutData",props:{workoutObject:null,useImperialUnits:{type:Boolean},displayHARecord:{type:Boolean}},setup(t){const e=t,{displayHARecord:r,workoutObject:o,useImperialUnits:s}=(0,i.BK)(e),u=(0,n.Fl)((()=>"0:00:00"!==e.workoutObject.pauses&&null!==e.workoutObject.pauses));return(t,e)=>{const l=(0,n.up)("Distance");return(0,n.wg)(),(0,n.iD)("div",ut,[(0,n._)("div",lt,[ct,(0,n._)("span",dt,(0,a.zw)(t.$t("workouts.DURATION")),1),(0,n.Uk)(": "),(0,n._)("span",pt,(0,a.zw)((0,i.SU)(o).moving),1),(0,n.Wm)(L,{workoutObject:(0,i.SU)(o),recordType:"LD"},null,8,["workoutObject"]),(0,i.SU)(u)?((0,n.wg)(),(0,n.iD)("div",ht,[(0,n.Uk)(" ("+(0,a.zw)(t.$t("workouts.PAUSES"))+": ",1),(0,n._)("span",ft,(0,a.zw)((0,i.SU)(o).pauses),1),(0,n.Uk)(" - "+(0,a.zw)(t.$t("workouts.TOTAL_DURATION"))+": ",1),(0,n._)("span",mt,(0,a.zw)((0,i.SU)(o).duration)+")",1)])):(0,n.kq)("",!0)]),(0,n._)("div",gt,[yt,(0,n._)("span",bt,(0,a.zw)(t.$t("workouts.DISTANCE")),1),(0,n.Uk)(": "),(0,n.Wm)(l,{distance:(0,i.SU)(o).distance,digits:3,unitFrom:"km",strong:!0,useImperialUnits:(0,i.SU)(s)},null,8,["distance","useImperialUnits"]),(0,n.Wm)(L,{workoutObject:(0,i.SU)(o),recordType:"FD"},null,8,["workoutObject"])]),(0,n._)("div",Dt,[wt,(0,n._)("span",vt,(0,a.zw)(t.$t("workouts.AVERAGE_SPEED")),1),(0,n.Uk)(": "),(0,n.Wm)(l,{distance:(0,i.SU)(o).aveSpeed,unitFrom:"km",speed:!0,strong:!0,useImperialUnits:(0,i.SU)(s)},null,8,["distance","useImperialUnits"]),(0,n.Wm)(L,{workoutObject:(0,i.SU)(o),recordType:"AS"},null,8,["workoutObject"]),At,(0,n._)("span",Et,(0,a.zw)(t.$t("workouts.MAX_SPEED")),1),(0,n.Uk)(": "),(0,n.Wm)(l,{distance:(0,i.SU)(o).maxSpeed,unitFrom:"km",speed:!0,strong:!0,useImperialUnits:(0,i.SU)(s)},null,8,["distance","useImperialUnits"]),(0,n.Wm)(L,{workoutObject:(0,i.SU)(o),recordType:"MS"},null,8,["workoutObject"])]),null!==(0,i.SU)(o).maxAlt&&null!==(0,i.SU)(o).minAlt?((0,n.wg)(),(0,n.iD)("div",kt,[(0,n._)("img",{class:"mountains",src:"/img/workouts/mountains.svg",alt:t.$t("workouts.ELEVATION")},null,8,St),(0,n._)("span",Ct,(0,a.zw)(t.$t("workouts.MIN_ALTITUDE")),1),(0,n.Uk)(": "),(0,n.Wm)(l,{distance:(0,i.SU)(o).minAlt,unitFrom:"m",strong:!0,useImperialUnits:(0,i.SU)(s)},null,8,["distance","useImperialUnits"]),Tt,(0,n._)("span",xt,(0,a.zw)(t.$t("workouts.MAX_ALTITUDE")),1),(0,n.Uk)(": "),(0,n.Wm)(l,{distance:(0,i.SU)(o).maxAlt,unitFrom:"m",strong:!0,useImperialUnits:(0,i.SU)(s)},null,8,["distance","useImperialUnits"])])):(0,n.kq)("",!0),null!==(0,i.SU)(o).ascent&&null!==(0,i.SU)(o).descent?((0,n.wg)(),(0,n.iD)("div",_t,[Ot,(0,n._)("span",It,(0,a.zw)(t.$t("workouts.ASCENT")),1),(0,n.Uk)(": "),(0,n.Wm)(l,{distance:(0,i.SU)(o).ascent,unitFrom:"m",strong:!0,useImperialUnits:(0,i.SU)(s)},null,8,["distance","useImperialUnits"]),(0,i.SU)(r)?((0,n.wg)(),(0,n.j4)(L,{key:0,workoutObject:(0,i.SU)(o),recordType:"HA"},null,8,["workoutObject"])):(0,n.kq)("",!0),Ft,(0,n._)("span",Ut,(0,a.zw)(t.$t("workouts.DESCENT")),1),(0,n.Uk)(": "),(0,n.Wm)(l,{distance:(0,i.SU)(o).descent,unitFrom:"m",strong:!0,useImperialUnits:(0,i.SU)(s)},null,8,["distance","useImperialUnits"])])):(0,n.kq)("",!0),(0,n.Wm)(st,{workoutObject:(0,i.SU)(o),useImperialUnits:(0,i.SU)(s)},null,8,["workoutObject","useImperialUnits"])])}}});const Bt=(0,T.Z)(Nt,[["__scopeId","data-v-74c5993b"]]);var Lt=Bt;function Pt(t,e){return Array.from(t.getElementsByTagName(e))}function Rt(t){return t?.normalize(),t&&t.textContent||""}function jt(t,e,r){const n=t.getElementsByTagName(e),i=n.length?n[0]:null;return i&&r&&r(i),i}function qt(t,e,r){const n={};if(!t)return n;const i=t.getElementsByTagName(e),o=i.length?i[0]:null;return o&&r?r(o,n):n}function Mt(t,e,r){const n=Rt(jt(t,e));return n&&r&&r(n)||{}}function zt(t,e,r){const n=parseFloat(Rt(jt(t,e)));if(!isNaN(n))return n&&r&&r(n)||{}}function Ht(t,e,r){const n=parseFloat(Rt(jt(t,e)));if(!isNaN(n))return n&&r&&r(n),n}function Vt(t,e){const r={};for(const n of e)Mt(t,n,(t=>{r[n]=t}));return r}function $t(t){return 1===t?.nodeType}function Wt(t){return qt(t,"line",(t=>{const e=Object.assign({},Mt(t,"color",(t=>({stroke:`#${t}`}))),zt(t,"opacity",(t=>({"stroke-opacity":t}))),zt(t,"width",(t=>({"stroke-width":96*t/25.4}))));return e}))}function Gt(t){let e=[];if(null===t)return e;for(const r of Array.from(t.childNodes)){if(!$t(r))continue;const t=Zt(r.nodeName);if("gpxtpx:TrackPointExtension"===t)e=e.concat(Gt(r));else{const n=Rt(r);e.push([t,Kt(n)])}}return e}function Zt(t){return["heart","gpxtpx:hr","hr"].includes(t)?"heart":t}function Kt(t){const e=parseFloat(t);return isNaN(e)?t:e}function Yt(t){const e=[parseFloat(t.getAttribute("lon")||""),parseFloat(t.getAttribute("lat")||"")];if(isNaN(e[0])||isNaN(e[1]))return null;Ht(t,"ele",(t=>{e.push(t)}));const r=jt(t,"time");return{coordinates:e,time:r?Rt(r):null,extendedValues:Gt(jt(t,"extensions"))}}function Xt(t){const e=Vt(t,["name","cmt","desc","type","time","keywords"]),r=Array.from(t.getElementsByTagNameNS("http://www.garmin.com/xmlschemas/GpxExtensions/v3","*"));for(const i of r)i.parentNode?.parentNode===t&&(e[i.tagName.replace(":","_")]=Rt(i));const n=Pt(t,"link");return n.length&&(e.links=n.map((t=>Object.assign({href:t.getAttribute("href")},Vt(t,["text","type"]))))),e}function Jt(t,e){const r=Pt(t,e),n=[],i=[],o={};for(let s=0;s1,s=Object.assign({_gpxType:"trk"},Xt(t),Wt(jt(t,"extensions")),n.length?{coordinateProperties:{times:o?n:n[0]}}:{});for(const a of i){r.push(a.line),s.coordinateProperties||(s.coordinateProperties={});const t=s.coordinateProperties,e=Object.entries(a.extendedValues);for(let r=0;rnew Array(t.line.length).fill(null)))),t[n][r]=s):t[n]=s}}return{type:"Feature",properties:s,geometry:o?{type:"MultiLineString",coordinates:r}:{type:"LineString",coordinates:r[0]}}}function ee(t){const e=Object.assign(Xt(t),Vt(t,["sym"])),r=Yt(t);return r?{type:"Feature",properties:e,geometry:{type:"Point",coordinates:r.coordinates}}:null}function*re(t){for(const e of Pt(t,"trk")){const t=te(e);t&&(yield t)}for(const e of Pt(t,"rte")){const t=Qt(e);t&&(yield t)}for(const e of Pt(t,"wpt")){const t=ee(e);t&&(yield t)}}function ne(t){return{type:"FeatureCollection",features:Array.from(re(t))}}Math.PI;const ie=(t,e)=>{let r;return function(...n){const i=this;r&&clearTimeout(r),r=setTimeout((()=>{t.apply(i,n),r=null}),e)}},oe=t=>t&&"function"===typeof t.charAt?t.charAt(0).toUpperCase()+t.slice(1):t,se=t=>"function"===typeof t,ae=(t,e,r)=>{for(const i in r){const o="set"+oe(i);t[o]?(0,n.YP)((()=>r[i]),((e,r)=>{t[o](e,r)})):e[o]&&(0,n.YP)((()=>r[i]),(t=>{e[o](t)}))}},ue=t=>{const e={};for(const r in t)if(r.startsWith("on")&&!r.startsWith("onUpdate")&&"onReady"!==r){const n=r.slice(2).toLocaleLowerCase();e[n]=t[r]}return e},le=async t=>{const e=await Promise.all([r.e(431).then(r.t.bind(r,6431,17)),r.e(93).then(r.t.bind(r,7093,17)),r.e(858).then(r.t.bind(r,8858,17))]);delete t.Default.prototype._getIconUrl,t.Default.mergeOptions({iconRetinaUrl:e[0].default,iconUrl:e[1].default,shadowUrl:e[2].default})},ce=t=>{const e=(0,i.iH)((()=>console.warn(`Method ${t} has been invoked without being replaced`))),r=(...t)=>e.value(...t);return r.wrapped=e,(0,n.JJ)(t,r),r},de=(t,e)=>t.wrapped.value=e,pe="object"===typeof self&&self.self===self&&self||"object"===typeof r.g&&r.g.global===r.g&&r.g||void 0,he="useGlobalLeaflet",fe={options:{type:Object,default:()=>({})}},me=t=>({options:t.options,methods:{}}),ge={...fe,pane:{type:String,default:"overlayPane"},attribution:{type:String,default:null},name:{type:String,custom:!0,default:void 0},layerType:{type:String,custom:!0,default:void 0},visible:{type:Boolean,custom:!0,default:!0}},ye=(t,e,r)=>{const i=(0,n.f3)("addLayer"),o=(0,n.f3)("removeLayer"),{options:s,methods:a}=me(t),u={...s,attribution:t.attribution,pane:t.pane},l=()=>i({leafletObject:e.value}),c=()=>o({leafletObject:e.value}),d={...a,setAttribution(t,e){const r=this.$parent.leafletObject.attributionControl;r.removeAttribution(e).addAttribution(t)},setName(){c(),t.visible&&l()},setLayerType(){c(),t.visible&&l()},setVisible(t){e.value&&(t?l():c())},bindPopup({leafletObject:t}){e.value&&se(e.value.bindPopup)?e.value.bindPopup(t):console.warn("Attempt to bind popup before bindPopup method available on layer.")},bindTooltip({leafletObject:t}){e.value&&se(e.value.bindTooltip)?e.value.bindTooltip(t):console.warn("Attempt to bind tooltip before bindTooltip method available on layer.")},unbindTooltip(){const t=e.value&&se(e.value.getTooltip)?e.value.getTooltip():null;t&&se(t.unbindTooltip)&&t.unbindTooltip()},unbindPopup(){const t=e.value&&se(e.value.getPopup)?e.value.getPopup():null;t&&se(t.unbindPopup)&&t.unbindPopup()},updateVisibleProp(t){r.emit("update:visible",t)}};return(0,n.JJ)("bindPopup",d.bindPopup),(0,n.JJ)("bindTooltip",d.bindTooltip),(0,n.JJ)("unbindTooltip",d.unbindTooltip),(0,n.JJ)("unbindPopup",d.unbindPopup),(0,n.Ah)((()=>{d.unbindPopup(),d.unbindTooltip(),c()})),{options:u,methods:d}},be=(t,e)=>{if(t&&e.default)return(0,n.h)("div",{style:{display:"none"}},e.default())},De={...fe,interactive:{type:Boolean,default:!0},bubblingMouseEvents:{type:Boolean,default:!0}},we={...ge,...De,stroke:{type:Boolean,custom:!0,default:!0},color:{type:String,custom:!0,default:"#3388ff"},weight:{type:Number,custom:!0,default:3},opacity:{type:Number,custom:!0,default:1},lineCap:{type:String,custom:!0,default:"round"},lineJoin:{type:String,custom:!0,default:"round"},dashArray:{type:String,custom:!0,default:null},dashOffset:{type:String,custom:!0,default:null},fill:{type:Boolean,custom:!0,default:!1},fillColor:{type:String,custom:!0,default:"#3388ff"},fillOpacity:{type:Number,custom:!0,default:.2},fillRule:{type:String,custom:!0,default:"evenodd"},className:{type:String,custom:!0,default:null}},ve={...we,latLng:{type:[Object,Array],custom:!0,default:null},radius:{type:Number,default:null}};const Ae={...fe,position:{type:String,default:"topright"}},Ee=(t,e)=>{const{options:r,methods:i}=me(t),o={...r,position:t.position},s={...i,setPosition(t){e.value&&e.value.setPosition(t)}};return(0,n.Ah)((()=>{e.value&&e.value.remove()})),{options:o,methods:s}},ke=t=>t.default?(0,n.h)("div",{ref:"root"},t.default()):null;var Se={name:"LControl",props:{...Ae,disableClickPropagation:{type:Boolean,custom:!0,default:!0},disableScrollPropagation:{type:Boolean,custom:!0,default:!1}},setup(t,e){const o=(0,i.iH)({}),s=(0,i.iH)(null),a=(0,n.f3)(he),u=(0,n.f3)("registerControl"),{options:l,methods:c}=Ee(t,o);return(0,n.bv)((async()=>{const{Control:i,DomEvent:d}=a?pe.L:await r.e(633).then(r.bind(r,6633)),p=i.extend({onAdd(){return s.value}});o.value=new p(l),ae(c,o.value,t),u({leafletObject:o.value}),t.disableClickPropagation&&d.disableClickPropagation(s.value),t.disableScrollPropagation&&d.disableScrollPropagation(s.value),(0,n.Y3)((()=>e.emit("ready",o.value)))})),{root:s,leafletObject:o}},render(){return ke(this.$slots)},__file:"src/components/LControl.vue"};const Ce={...Ae,collapsed:{type:Boolean,default:!0},autoZIndex:{type:Boolean,default:!0},hideSingleBase:{type:Boolean,default:!1},sortLayers:{type:Boolean,default:!1},sortFunction:{type:Function,default:void 0}},Te=(t,e)=>{const{options:r}=Ee(t,e),n={...r,collapsed:t.collapsed,autoZIndex:t.autoZIndex,hideSingleBase:t.hideSingleBase,sortLayers:t.sortLayers,sortFunction:t.sortFunction},i={addLayer(t){"base"===t.layerType?e.value.addBaseLayer(t.leafletObject,t.name):"overlay"===t.layerType&&e.value.addOverlay(t.leafletObject,t.name)},removeLayer(t){e.value.removeLayer(t.leafletObject)}};return{options:n,methods:i}};var xe={name:"LControlLayers",props:Ce,setup(t,e){const o=(0,i.iH)({}),s=(0,n.f3)(he),a=(0,n.f3)("registerLayerControl"),{options:u,methods:l}=Te(t,o);return(0,n.bv)((async()=>{const{control:i}=s?pe.L:await r.e(633).then(r.bind(r,6633));o.value=i.layers(null,null,u),ae(l,o.value,t),a({...t,...l,leafletObject:o.value}),(0,n.Y3)((()=>e.emit("ready",o.value)))})),{leafletObject:o.value}},render(){return null},__file:"src/components/LControlLayers.vue"};Boolean,Boolean,Boolean;const _e={...ge},Oe=(t,e,r)=>{const{options:i,methods:o}=ye(t,e,r),s={...i},a={...o,addLayer(t){e.value.addLayer(t.leafletObject)},removeLayer(t){e.value.removeLayer(t.leafletObject)}};return(0,n.JJ)("addLayer",a.addLayer),(0,n.JJ)("removeLayer",a.removeLayer),{options:s,methods:a}};const Ie={..._e,geojson:{type:[Object,Array],default:()=>({})}},Fe=(t,e,r)=>{const{options:n,methods:i}=Oe(t,e,r),o={...n,...t},s={...i,setGeojson(t){e.value.clearLayers(),e.value.addData(t)},getGeoJSONData(){return e.value.toGeoJSON()},getBounds(){return e.value.getBounds()}};return{options:o,methods:s}};var Ue={props:Ie,setup(t,e){const o=(0,i.iH)({}),s=(0,i.iH)(!1),a=(0,n.f3)(he),u=(0,n.f3)("addLayer"),{methods:l,options:c}=Fe(t,o,e);return(0,n.bv)((async()=>{const{geoJSON:i,DomEvent:d}=a?pe.L:await r.e(633).then(r.bind(r,6633));o.value=i(t.geojson,c);const p=ue(e.attrs);d.on(o.value,p),ae(l,o.value,t),u({...t,...l,leafletObject:o.value}),s.value=!0,(0,n.Y3)((()=>e.emit("ready",o.value)))})),{ready:s,leafletObject:o}},render(){return be(this.ready,this.$slots)},__file:"src/components/LGeoJson.vue"};const Ne={...ge,pane:{type:String,default:"tilePane"},opacity:{type:Number,custom:!1,default:1},zIndex:{type:Number,default:1},tileSize:{type:Number,default:256},noWrap:{type:Boolean,default:!1},minZoom:{type:Number,default:0},maxZoom:{type:Number,default:void 0}},Be=(t,e,r)=>{const{options:n,methods:i}=ye(t,e,r),o={...n,pane:t.pane,opacity:t.opacity,zIndex:t.zIndex,tileSize:t.tileSize,noWrap:t.noWrap,minZoom:t.minZoom,maxZoom:t.maxZoom};return{options:o,methods:{...i}}};const Le={iconUrl:{type:String,custom:!0,default:null},iconRetinaUrl:{type:String,custom:!0,default:null},iconSize:{type:[Object,Array],custom:!0,default:null},iconAnchor:{type:[Object,Array],custom:!0,default:null},popupAnchor:{type:[Object,Array],custom:!0,default:()=>[0,0]},tooltipAnchor:{type:[Object,Array],custom:!0,default:()=>[0,0]},shadowUrl:{type:String,custom:!0,default:null},shadowRetinaUrl:{type:String,custom:!0,default:null},shadowSize:{type:[Object,Array],custom:!0,default:null},shadowAnchor:{type:[Object,Array],custom:!0,default:null},bgPos:{type:[Object,Array],custom:!0,default:()=>[0,0]},className:{type:String,custom:!0,default:""},options:{type:Object,custom:!0,default:()=>({})}};var Pe={name:"LIcon",props:{...Le,...fe},setup(t,e){const o=(0,i.iH)(null),s=(0,n.f3)(he),a=(0,n.f3)("canSetParentHtml"),u=(0,n.f3)("setParentHtml"),l=(0,n.f3)("setIcon");let c,d,p,h,f;const m=(r,n,i)=>{const o=r&&r.innerHTML;if(!n)return void(i&&f&&a()&&u(o));const s=ue(e.attrs);f&&d(f,s);const{options:m}=me(t),g={...m,iconUrl:t.iconUrl,iconRetinaUrl:t.iconRetinaUrl,iconSize:t.iconSize,iconAnchor:t.iconAnchor,popupAnchor:t.popupAnchor,tooltipAnchor:t.tooltipAnchor,shadowUrl:t.shadowUrl,shadowRetinaUrl:t.shadowRetinaUrl,shadowSize:t.shadowSize,shadowAnchor:t.shadowAnchor,bgPos:t.bgPos,className:t.className,html:o||t.html};f=g.html?p(g):h(g),c(f,s),l(f)},g=()=>{(0,n.Y3)((()=>m(o.value,!0,!1)))},y=()=>{(0,n.Y3)((()=>m(o.value,!1,!0)))},b={setIconUrl:g,setIconRetinaUrl:g,setIconSize:g,setIconAnchor:g,setPopupAnchor:g,setTooltipAnchor:g,setShadowUrl:g,setShadowRetinaUrl:g,setShadowAnchor:g,setBgPos:g,setClassName:g,setHtml:g};return(0,n.bv)((async()=>{const{DomEvent:e,divIcon:n,icon:i}=s?pe.L:await r.e(633).then(r.bind(r,6633));c=e.on,d=e.off,p=n,h=i,ae(b,{},t);const a=new MutationObserver(y);a.observe(o.value,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),g()})),{root:o}},render(){const t=this.$slots.default?this.$slots.default():void 0;return(0,n.h)("div",{ref:"root"},t)},__file:"src/components/LIcon.vue"};Boolean,Boolean;var Re={props:_e,setup(t,e){const o=(0,i.iH)({}),s=(0,i.iH)(!1),a=(0,n.f3)(he),u=(0,n.f3)("addLayer"),{methods:l}=Oe(t,o,e);return(0,n.bv)((async()=>{const{layerGroup:i,DomEvent:c}=a?pe.L:await r.e(633).then(r.bind(r,6633));o.value=i(t.options);const d=ue(e.attrs);c.on(o.value,d),ae(l,o.value,t),u({...t,...l,leafletObject:o.value}),s.value=!0,(0,n.Y3)((()=>e.emit("ready",o.value)))})),{ready:s,leafletObject:o}},render(){return be(this.ready,this.$slots)},__file:"src/components/LLayerGroup.vue"},je={emits:["ready","update:zoom","update:center","update:bounds"],props:{...fe,center:{type:[Object,Array],default:()=>[0,0]},bounds:{type:[Array,Object],default:void 0},maxBounds:{type:[Array,Object],default:void 0},zoom:{type:Number,default:0},minZoom:{type:Number,default:void 0},maxZoom:{type:Number,default:void 0},paddingBottomRight:{type:Array,default:void 0},paddingTopLeft:{type:Array,default:void 0},padding:{type:Array,default:void 0},worldCopyJump:{type:Boolean,default:!1},crs:{type:[String,Object],default:"EPSG3857"},maxBoundsViscosity:{type:Number,default:void 0},inertia:{type:Boolean,default:void 0},inertiaDeceleration:{type:Number,default:void 0},inertiaMaxSpeed:{type:Number,default:void 0},easeLinearity:{type:Number,default:void 0},zoomAnimation:{type:Boolean,default:void 0},zoomAnimationThreshold:{type:Number,default:void 0},fadeAnimation:{type:Boolean,default:void 0},markerZoomAnimation:{type:Boolean,default:void 0},noBlockingAnimations:{type:Boolean,default:!1},useGlobalLeaflet:{type:Boolean,default:!0}},setup(t,e){const o=(0,i.iH)(null),s=(0,i.qj)({ready:!1,leafletRef:{},layersToAdd:[],layersInControl:[]}),{options:a}=me(t),u={...a,minZoom:t.minZoom,maxZoom:t.maxZoom,maxBounds:t.maxBounds,maxBoundsViscosity:t.maxBoundsViscosity,worldCopyJump:t.worldCopyJump,crs:t.crs,center:t.center,zoom:t.zoom,inertia:t.inertia,inertiaDeceleration:t.inertiaDeceleration,inertiaMaxSpeed:t.inertiaMaxSpeed,easeLinearity:t.easeLinearity,zoomAnimation:t.zoomAnimation,zoomAnimationThreshold:t.zoomAnimationThreshold,fadeAnimation:t.fadeAnimation,markerZoomAnimation:t.markerZoomAnimation},l=ce("addLayer"),c=ce("removeLayer"),d=ce("registerControl"),p=ce("registerLayerControl");(0,n.JJ)(he,t.useGlobalLeaflet);const h={moveEndHandler(){e.emit("update:zoom",s.leafletRef.getZoom()),e.emit("update:center",s.leafletRef.getCenter()),e.emit("update:bounds",s.leafletRef.getBounds())},overlayAddHandler(t){const e=s.layersInControl.find((e=>e.name===t.name));e&&e.updateVisibleProp(!0)},overlayRemoveHandler(t){const e=s.layersInControl.find((e=>e.name===t.name));e&&e.updateVisibleProp(!1)}};(0,n.bv)((async()=>{t.useGlobalLeaflet&&(pe.L=pe.L||await r.e(243).then(r.t.bind(r,5243,23)));const{map:i,CRS:a,Icon:f,latLngBounds:m,latLng:g,DomEvent:y}=t.useGlobalLeaflet?pe.L:await r.e(633).then(r.bind(r,6633));try{u.beforeMapMount&&await u.beforeMapMount()}catch(v){console.error(`The following error occurred running the provided beforeMapMount hook ${v.message}`)}await le(f);const b="string"==typeof u.crs?a[u.crs]:u.crs;u.crs=b||a.EPSG3857;const D={addLayer(t){if(void 0!==t.layerType)if(void 0===s.layerControl)s.layersToAdd.push(t);else{const e=s.layersInControl.find((e=>e.leafletObject._leaflet_id===t.leafletObject._leaflet_id));e||(s.layerControl.addLayer(t),s.layersInControl.push(t))}!1!==t.visible&&s.leafletRef.addLayer(t.leafletObject)},removeLayer(t){void 0!==t.layerType&&(void 0===s.layerControl?s.layersToAdd=s.layersToAdd.filter((e=>e.name!==t.name)):(s.layerControl.removeLayer(t.leafletObject),s.layersInControl=s.layersInControl.filter((e=>e.leafletObject._leaflet_id!==t.leafletObject._leaflet_id)))),s.leafletRef.removeLayer(t.leafletObject)},registerLayerControl(t){s.layerControl=t,s.layersToAdd.forEach((t=>{s.layerControl.addLayer(t)})),s.layersToAdd=[],d(t)},registerControl(t){s.leafletRef.addControl(t.leafletObject)},setZoom(e){const r=s.leafletRef.getZoom();e!==r&&s.leafletRef.setZoom(e,{animate:!t.noBlockingAnimations&&null})},setPaddingBottomRight(t){s.paddingBottomRight=t},setPaddingTopLeft(t){s.paddingTopLeft=t},setPadding(t){s.padding=t},setCrs(t){const e=s.leafletRef.getBounds();s.leafletRef.options.crs=t,s.leafletRef.fitBounds(e,{animate:!1,padding:[0,0]})},fitBounds(t){s.leafletRef.fitBounds(t,{animate:!this.noBlockingAnimations&&null})},setBounds(t){if(!t)return;const e=m(t);if(!e.isValid())return;const r=s.lastSetBounds||s.leafletRef.getBounds(),n=!r.equals(e,0);n&&(s.lastSetBounds=e,s.leafletRef.fitBounds(e,this.fitBoundsOptions))},setCenter(t){if(null==t)return;const e=g(t),r=s.lastSetCenter||s.leafletRef.getCenter();r.lat===e.lat&&r.lng===e.lng||(s.lastSetCenter=e,s.leafletRef.panTo(e,{animate:!this.noBlockingAnimations&&null}))}};de(l,D.addLayer),de(c,D.removeLayer),de(d,D.registerControl),de(p,D.registerLayerControl),s.leafletRef=i(o.value,u),ae(D,s.leafletRef,t);const w=ue(e.attrs);s.leafletRef.on("moveend",ie(h.moveEndHandler,100)),s.leafletRef.on("overlayadd",h.overlayAddHandler),s.leafletRef.on("overlayremove",h.overlayRemoveHandler),y.on(s.leafletRef,w),s.ready=!0,(0,n.Y3)((()=>e.emit("ready",s.leafletRef)))})),(0,n.Jd)((()=>{s.leafletRef&&s.leafletRef.remove()}));const f=(0,n.Fl)((()=>s.leafletRef)),m=(0,n.Fl)((()=>s.ready));return{root:o,ready:m,leafletObject:f}},render(){return(0,n.h)("div",{style:{width:"100%",height:"100%"},ref:"root"},this.ready?this.$slots.default():{})},__file:"src/components/LMap.vue"};const qe={...ge,pane:{type:String,default:"markerPane"},draggable:{type:Boolean,custom:!0,default:!1},latLng:{type:[Object,Array],custom:!0,default:null},icon:{type:[Object],default:()=>{},custom:!1},zIndexOffset:{type:Number,custom:!1,default:null}},Me=(t,e,r)=>{const{options:n,methods:i}=ye(t,e,r),o={...n,...t},s={...i,setDraggable(t){e.value.dragging&&(t?e.value.dragging.enable():e.value.dragging.disable())},latLngSync(t){r.emit("update:latLng",t.latlng),r.emit("update:lat-lng",t.latlng)},setLatLng(t){if(null!=t&&e.value){const r=e.value.getLatLng();r&&r.equals(t)||e.value.setLatLng(t)}}};return{options:o,methods:s}};var ze={name:"LMarker",props:qe,setup(t,e){const o=(0,i.iH)({}),s=(0,i.iH)(!1),a=(0,n.f3)(he),u=(0,n.f3)("addLayer");(0,n.JJ)("canSetParentHtml",(()=>!!o.value.getElement())),(0,n.JJ)("setParentHtml",(t=>o.value.getElement().innerHTML=t)),(0,n.JJ)("setIcon",(t=>o.value.setIcon&&o.value.setIcon(t)));const{options:l,methods:c}=Me(t,o,e);return void 0===l.icon&&delete l.icon,(0,n.bv)((async()=>{const{marker:i,DomEvent:d}=a?pe.L:await r.e(633).then(r.bind(r,6633));o.value=i(t.latLng,l);const p=ue(e.attrs);d.on(o.value,p),o.value.on("move",ie(c.latLngSync,100)),ae(c,o.value,t),u({...t,...c,leafletObject:o.value}),s.value=!0,(0,n.Y3)((()=>e.emit("ready",o.value)))})),{ready:s,leafletObject:o}},render(){return be(this.ready,this.$slots)},__file:"src/components/LMarker.vue"};const He={...we,latLngs:{type:Array,default:()=>[]},smoothFactor:{type:Number,custom:!0,default:1},noClip:{type:Boolean,custom:!0,default:!1}},Ve={...He};const $e={...fe,content:{type:String,default:null}};const We={...Ne,tms:{type:Boolean,default:!1},subdomains:{type:String,default:"abc"},detectRetina:{type:Boolean,default:!1},url:{type:String,default:null}},Ge=(t,e,r)=>{const{options:n,methods:i}=Be(t,e,r),o={...n,tms:t.tms,subdomains:t.subdomains,detectRetina:t.detectRetina};return{options:o,methods:{...i}}};var Ze={props:We,setup(t,e){const o=(0,i.iH)({}),s=(0,n.f3)(he),a=(0,n.f3)("addLayer"),{options:u,methods:l}=Ge(t,o,e);return(0,n.bv)((async()=>{const{tileLayer:i,DomEvent:c}=s?pe.L:await r.e(633).then(r.bind(r,6633));o.value=i(t.url,u);const d=ue(e.attrs);c.on(o.value,d),ae(l,o.value,t),a({...t,...l,leafletObject:o.value}),(0,n.Y3)((()=>e.emit("ready",o.value)))})),{leafletObject:o}},render(){return null},__file:"src/components/LTileLayer.vue"};Boolean,Boolean;var Ke=(0,n.aZ)({__name:"CustomMarker",props:{markerCoordinates:null,isStart:{type:Boolean}},setup(t){const e=t,{isStart:r,markerCoordinates:o}=(0,i.BK)(e);return(t,e)=>(0,i.SU)(o).latitude?((0,n.wg)(),(0,n.j4)((0,i.SU)(ze),{key:0,"lat-lng":[(0,i.SU)(o).latitude,(0,i.SU)(o).longitude]},{default:(0,n.w5)((()=>[(0,n.Wm)((0,i.SU)(Pe),{"icon-url":`/img/workouts/${(0,i.SU)(r)?"start":"finish"}.svg`,iconSize:[15,15]},null,8,["icon-url"])])),_:1},8,["lat-lng"])):(0,n.kq)("",!0)}});const Ye=Ke;var Xe=Ye,Je=r(5801),Qe=r(9917),tr=r(2024);const er=t=>((0,n.dD)("data-v-6b490f5d"),t=t(),(0,n.Cn)(),t),rr={id:"workout-map"},nr={key:0,class:"leaflet-container"},ir={key:1},or=er((()=>(0,n._)("i",{class:"fa fa-refresh","aria-hidden":"true"},null,-1))),sr={key:1,class:"no-map"};var ar=(0,n.aZ)({__name:"index",props:{workoutData:null,markerCoordinates:{default:()=>({})}},setup(t){const e=t,r=(0,Qe.o)(),{workoutData:o,markerCoordinates:s}=(0,i.BK)(e),u=(0,i.iH)(null),l=(0,n.Fl)((()=>D())),c=(0,n.Fl)((()=>r.getters[Je.SY.GETTERS.APP_CONFIG])),d=(0,n.Fl)((()=>y(l))),p=(0,n.Fl)((()=>e.workoutData&&e.workoutData.gpx?g(e.workoutData.gpx):{})),h=(0,n.Fl)((()=>e.workoutData&&e.workoutData.chartData.length>0?{latitude:e.workoutData.chartData[0].latitude,longitude:e.workoutData.chartData[0].longitude}:{})),f=(0,n.Fl)((()=>e.workoutData&&e.workoutData.chartData.length>0?{latitude:e.workoutData.chartData[e.workoutData.chartData.length-1].latitude,longitude:e.workoutData.chartData[e.workoutData.chartData.length-1].longitude}:{})),m=(0,i.iH)(!1);function g(t){if(!t||""!==t)try{const e=ne((new DOMParser).parseFromString(t,"text/xml"));return{jsonData:e}}catch(e){return console.error("Invalid gpx content"),{}}return{}}function y(t){return[(t.value[0][0]+t.value[1][0])/2,(t.value[0][1]+t.value[1][1])/2]}function b(t){u.value?.leafletObject&&u.value?.leafletObject.fitBounds(t)}function D(){return e.workoutData?[[e.workoutData.workout.bounds[0],e.workoutData.workout.bounds[1]],[e.workoutData.workout.bounds[2],e.workoutData.workout.bounds[3]]]:[]}function w(){u.value?.leafletObject.fitBounds(D())}function v(){m.value=!m.value,m.value||setTimeout((()=>{w()}),100)}return(t,e)=>{const r=(0,n.up)("VFullscreen");return(0,n.wg)(),(0,n.iD)("div",rr,[(0,i.SU)(o).loading?((0,n.wg)(),(0,n.iD)("div",nr)):((0,n.wg)(),(0,n.iD)("div",ir,[(0,i.SU)(o).workout.with_gpx?((0,n.wg)(),(0,n.j4)(r,{key:0,modelValue:m.value,"onUpdate:modelValue":e[1]||(e[1]=t=>m.value=t)},{default:(0,n.w5)((()=>[(0,n._)("div",{class:(0,a.C_)(["leaflet-container",{"fullscreen-map":m.value}])},[(0,i.SU)(p).jsonData&&(0,i.SU)(d)&&2===(0,i.SU)(l).length?((0,n.wg)(),(0,n.j4)((0,i.SU)(je),{key:0,zoom:13,maxZoom:19,center:(0,i.SU)(d),bounds:(0,i.SU)(l),ref_key:"workoutMap",ref:u,onReady:e[0]||(e[0]=t=>b((0,i.SU)(l)))},{default:(0,n.w5)((()=>[(0,n.Wm)((0,i.SU)(xe)),(0,n.Wm)((0,i.SU)(Se),{position:"topleft",class:"map-control",onClick:w},{default:(0,n.w5)((()=>[or])),_:1}),(0,n.Wm)((0,i.SU)(Se),{position:"topleft",class:"map-control",onClick:v},{default:(0,n.w5)((()=>[(0,n._)("i",{class:(0,a.C_)("fa fa-"+(m.value?"compress":"arrows-alt")),"aria-hidden":"true"},null,2)])),_:1}),(0,n.Wm)((0,i.SU)(Ze),{url:`${(0,i.SU)(tr.k)()}workouts/map_tile/{s}/{z}/{x}/{y}.png`,attribution:(0,i.SU)(c).map_attribution,bounds:(0,i.SU)(l)},null,8,["url","attribution","bounds"]),(0,n.Wm)((0,i.SU)(Ue),{geojson:(0,i.SU)(p).jsonData},null,8,["geojson"]),(0,i.SU)(s).latitude?((0,n.wg)(),(0,n.j4)((0,i.SU)(ze),{key:0,"lat-lng":[(0,i.SU)(s).latitude,(0,i.SU)(s).longitude]},null,8,["lat-lng"])):(0,n.kq)("",!0),(0,n.Wm)((0,i.SU)(Re),{name:t.$t("workouts.START_AND_FINISH"),"layer-type":"overlay"},{default:(0,n.w5)((()=>[(0,i.SU)(h).latitude?((0,n.wg)(),(0,n.j4)(Xe,{key:0,markerCoordinates:(0,i.SU)(h),isStart:!0},null,8,["markerCoordinates"])):(0,n.kq)("",!0),(0,i.SU)(f).latitude?((0,n.wg)(),(0,n.j4)(Xe,{key:1,markerCoordinates:(0,i.SU)(f),isStart:!1},null,8,["markerCoordinates"])):(0,n.kq)("",!0)])),_:1},8,["name"])])),_:1},8,["center","bounds"])):(0,n.kq)("",!0)],2)])),_:1},8,["modelValue"])):((0,n.wg)(),(0,n.iD)("div",sr,(0,a.zw)(t.$t("workouts.NO_MAP")),1))]))])}}});const ur=(0,T.Z)(ar,[["__scopeId","data-v-6b490f5d"]]);var lr=ur,cr=r(6558);const dr={class:"workout-detail"};var pr=(0,n.aZ)({__name:"index",props:{authUser:null,displaySegment:{type:Boolean},sports:null,workoutData:null,markerCoordinates:{default:()=>({})}},setup(t){const e=t,r=(0,o.yj)(),s=(0,Qe.o)(),{authUser:a,markerCoordinates:u,workoutData:l}=(0,i.BK)(e),c=(0,n.Fl)((()=>e.workoutData.workout)),d=(0,i.iH)(r.params.workoutId?+r.params.segmentId:null),p=(0,n.Fl)((()=>c.value.segments.length>0&&d.value?c.value.segments[+d.value-1]:null)),h=(0,i.iH)(!1),f=(0,n.Fl)((()=>e.sports?e.sports.find((t=>t.id===e.workoutData.workout.sport_id)):{})),m=(0,n.Fl)((()=>y(c.value,p.value)));function g(t,e,r){const n=e&&r&&1!==r?`/workouts/${t.id}/segment/${r-1}`:!e&&t.previous_workout?`/workouts/${t.previous_workout}`:null,i=e&&r&&rr.params.segmentId),(async t=>{t&&(d.value=+t)})),(t,e)=>{const r=(0,n.up)("Modal"),o=(0,n.up)("Card");return(0,n.wg)(),(0,n.iD)("div",dr,[h.value?((0,n.wg)(),(0,n.j4)(r,{key:0,title:t.$t("common.CONFIRMATION"),message:t.$t("workouts.WORKOUT_DELETION_CONFIRMATION"),onConfirmAction:e[0]||(e[0]=t=>D((0,i.SU)(m).workoutId)),onCancelAction:e[1]||(e[1]=t=>b(!1))},null,8,["title","message"])):(0,n.kq)("",!0),(0,n.Wm)(o,null,{title:(0,n.w5)((()=>[(0,n.Wm)(_,{sport:(0,i.SU)(f),workoutObject:(0,i.SU)(m),onDisplayModal:e[2]||(e[2]=t=>b(!0))},null,8,["sport","workoutObject"])])),content:(0,n.w5)((()=>[(0,n.Wm)(lr,{workoutData:(0,i.SU)(l),markerCoordinates:(0,i.SU)(u)},null,8,["workoutData","markerCoordinates"]),(0,n.Wm)(Lt,{workoutObject:(0,i.SU)(m),useImperialUnits:(0,i.SU)(a).imperial_units,displayHARecord:(0,i.SU)(a).display_ascent},null,8,["workoutObject","useImperialUnits","displayHARecord"])])),_:1})])}}});const hr=(0,T.Z)(pr,[["__scopeId","data-v-9fc0bab8"]]);var fr=hr,mr=r(6518);const gr=t=>{const e=document.getElementById(t);if(e){let t=e.querySelector("ul");return t||(t=document.createElement("ul"),e.appendChild(t)),t}throw new Error("No legend container")},yr={id:"htmlLegend",afterUpdate(t,e,r){const n=gr(r.containerID);while(n.firstChild)n.firstChild.remove();const i=t.options.plugins?.legend?.labels?.generateLabels?t.options.plugins?.legend?.labels?.generateLabels(t):[];i.forEach((e=>{const r=document.createElement("li");r.onclick=()=>{void 0!==e.datasetIndex&&(t.setDatasetVisibility(e.datasetIndex,!t.isDatasetVisible(e.datasetIndex)),t.update())};const i=document.createElement("input");i&&(i.type="checkbox",i.id=e.text,i.checked=!e.hidden);const o=document.createTextNode(e.text),s=document.createElement("span");s&&(s.style.background=String(e.fillStyle),s.style.borderColor=String(e.strokeStyle)),r.appendChild(i),r.appendChild(o),r.appendChild(s),n.appendChild(r)}))}};var br=r(3768);const Dr=t=>((0,n.dD)("data-v-0b68c436"),t=t(),(0,n.Cn)(),t),wr={id:"workout-chart"},vr={class:"chart-radio"},Ar=["checked"],Er=["checked"],kr=Dr((()=>(0,n._)("div",{id:"chart-legend"},null,-1))),Sr={class:"chart-info"},Cr={class:"no-data-cleaning"},Tr={class:"elevation-start"},xr=["checked"];var _r=(0,n.aZ)({__name:"index",props:{authUser:null,workoutData:null},emits:["getCoordinates"],setup(t,{emit:e}){const r=t,{t:o}=(0,P.QT)(),s=(0,i.iH)(!0),u=(0,i.iH)(!0),l=(0,n.Fl)((()=>(0,br.EX)(r.workoutData.chartData,o,r.authUser.imperial_units))),c=w("km"),d=w("m"),p=(0,n.Fl)((()=>({labels:s.value?l.value.distance_labels:l.value.duration_labels,datasets:JSON.parse(JSON.stringify([l.value.datasets.speed,l.value.datasets.elevation]))}))),h=(0,n.Fl)((()=>l.value.coordinates)),f=(0,n.Fl)((()=>({responsive:!0,maintainAspectRatio:!0,animation:!1,layout:{padding:{top:22}},scales:{x:{grid:{drawOnChartArea:!1},ticks:{count:10,callback:function(t){return s.value?Number(t).toFixed(2):y(t)}},type:"linear",bounds:"data",title:{display:!0,text:s.value?o("workouts.DISTANCE")+` (${c})`:o("workouts.DURATION")}},ySpeed:{grid:{drawOnChartArea:!1},position:"left",title:{display:!0,text:o("workouts.SPEED")+` (${c}/h)`}},yElevation:{beginAtZero:u.value,grid:{drawOnChartArea:!1},position:"right",title:{display:!0,text:o("workouts.ELEVATION")+` (${d})`}}},elements:{point:{pointStyle:"circle",pointRadius:0}},plugins:{datalabels:{display:!1},tooltip:{interaction:{intersect:!1,mode:"index"},callbacks:{label:function(t){const e=` ${t.dataset.label}: ${t.formattedValue}`;return"yElevation"===t.dataset.yAxisID?e+` ${d}`:e+` ${c}/h`},title:function(t){return t.length>0&&b(h.value[t[0].dataIndex]),0===t.length?"":s.value?`${o("workouts.DISTANCE")}: ${t[0].label} ${c}`:`${o("workouts.DURATION")}: ${y(t[0].label.replace(",",""))}`}}},legend:{display:!1},htmlLegend:{containerID:"chart-legend"}}}))),{lineChartProps:m}=(0,mr.tn)({chartData:p,options:f,plugins:[yr]});function g(){s.value=!s.value}function y(t){return new Date(1e3*+t).toISOString().substr(11,8)}function b(t){e("getCoordinates",t)}function D(){b({latitude:null,longitude:null})}function w(t){return r.authUser.imperial_units?R.Dl[t].defaultTarget:t}return(t,e)=>{const r=(0,n.up)("Card");return(0,n.wg)(),(0,n.iD)("div",wr,[(0,n.Wm)(r,null,{title:(0,n.w5)((()=>[(0,n.Uk)((0,a.zw)(t.$t("workouts.ANALYSIS")),1)])),content:(0,n.w5)((()=>[(0,n._)("div",vr,[(0,n._)("label",null,[(0,n._)("input",{type:"radio",name:"distance",checked:s.value,onClick:g},null,8,Ar),(0,n.Uk)(" "+(0,a.zw)(t.$t("workouts.DISTANCE")),1)]),(0,n._)("label",null,[(0,n._)("input",{type:"radio",name:"duration",checked:!s.value,onClick:g},null,8,Er),(0,n.Uk)(" "+(0,a.zw)(t.$t("workouts.DURATION")),1)])]),kr,(0,n.Wm)((0,i.SU)(mr.wW),(0,n.dG)((0,i.SU)(m),{class:"line-chart",onMouseleave:D}),null,16),(0,n._)("div",Sr,[(0,n._)("div",Cr,(0,a.zw)(t.$t("workouts.NO_DATA_CLEANING")),1),(0,n._)("div",Tr,[(0,n._)("label",null,[(0,n._)("input",{type:"checkbox",checked:u.value,onClick:e[0]||(e[0]=t=>u.value=!u.value)},null,8,xr),(0,n.Uk)(" "+(0,a.zw)(t.$t("workouts.START_ELEVATION_AT_ZERO")),1)])])])])),_:1})])}}});const Or=(0,T.Z)(_r,[["__scopeId","data-v-0b68c436"]]);var Ir=Or,Fr="aaa aarp abarth abb abbott abbvie abc able abogado abudhabi ac academy accenture accountant accountants aco actor ad adac ads adult ae aeg aero aetna af afl africa ag agakhan agency ai aig airbus airforce airtel akdn al alfaromeo alibaba alipay allfinanz allstate ally alsace alstom am amazon americanexpress americanfamily amex amfam amica amsterdam analytics android anquan anz ao aol apartments app apple aq aquarelle ar arab aramco archi army arpa art arte as asda asia associates at athleta attorney au auction audi audible audio auspost author auto autos avianca aw aws ax axa az azure ba baby baidu banamex bananarepublic band bank bar barcelona barclaycard barclays barefoot bargains baseball basketball bauhaus bayern bb bbc bbt bbva bcg bcn bd be beats beauty beer bentley berlin best bestbuy bet bf bg bh bharti bi bible bid bike bing bingo bio biz bj black blackfriday blockbuster blog bloomberg blue bm bms bmw bn bnpparibas bo boats boehringer bofa bom bond boo book booking bosch bostik boston bot boutique box br bradesco bridgestone broadway broker brother brussels bs bt bugatti build builders business buy buzz bv bw by bz bzh ca cab cafe cal call calvinklein cam camera camp cancerresearch canon capetown capital capitalone car caravan cards care career careers cars casa case cash casino cat catering catholic cba cbn cbre cbs cc cd center ceo cern cf cfa cfd cg ch chanel channel charity chase chat cheap chintai christmas chrome church ci cipriani circle cisco citadel citi citic city cityeats ck cl claims cleaning click clinic clinique clothing cloud club clubmed cm cn co coach codes coffee college cologne com comcast commbank community company compare computer comsec condos construction consulting contact contractors cooking cookingchannel cool coop corsica country coupon coupons courses cpa cr credit creditcard creditunion cricket crown crs cruise cruises cu cuisinella cv cw cx cy cymru cyou cz dabur dad dance data date dating datsun day dclk dds de deal dealer deals degree delivery dell deloitte delta democrat dental dentist desi design dev dhl diamonds diet digital direct directory discount discover dish diy dj dk dm dnp do docs doctor dog domains dot download drive dtv dubai dunlop dupont durban dvag dvr dz earth eat ec eco edeka edu education ee eg email emerck energy engineer engineering enterprises epson equipment er ericsson erni es esq estate et etisalat eu eurovision eus events exchange expert exposed express extraspace fage fail fairwinds faith family fan fans farm farmers fashion fast fedex feedback ferrari ferrero fi fiat fidelity fido film final finance financial fire firestone firmdale fish fishing fit fitness fj fk flickr flights flir florist flowers fly fm fo foo food foodnetwork football ford forex forsale forum foundation fox fr free fresenius frl frogans frontdoor frontier ftr fujitsu fun fund furniture futbol fyi ga gal gallery gallo gallup game games gap garden gay gb gbiz gd gdn ge gea gent genting george gf gg ggee gh gi gift gifts gives giving gl glass gle global globo gm gmail gmbh gmo gmx gn godaddy gold goldpoint golf goo goodyear goog google gop got gov gp gq gr grainger graphics gratis green gripe grocery group gs gt gu guardian gucci guge guide guitars guru gw gy hair hamburg hangout haus hbo hdfc hdfcbank health healthcare help helsinki here hermes hgtv hiphop hisamitsu hitachi hiv hk hkt hm hn hockey holdings holiday homedepot homegoods homes homesense honda horse hospital host hosting hot hoteles hotels hotmail house how hr hsbc ht hu hughes hyatt hyundai ibm icbc ice icu id ie ieee ifm ikano il im imamat imdb immo immobilien in inc industries infiniti info ing ink institute insurance insure int international intuit investments io ipiranga iq ir irish is ismaili ist istanbul it itau itv jaguar java jcb je jeep jetzt jewelry jio jll jm jmp jnj jo jobs joburg jot joy jp jpmorgan jprs juegos juniper kaufen kddi ke kerryhotels kerrylogistics kerryproperties kfh kg kh ki kia kids kim kinder kindle kitchen kiwi km kn koeln komatsu kosher kp kpmg kpn kr krd kred kuokgroup kw ky kyoto kz la lacaixa lamborghini lamer lancaster lancia land landrover lanxess lasalle lat latino latrobe law lawyer lb lc lds lease leclerc lefrak legal lego lexus lgbt li lidl life lifeinsurance lifestyle lighting like lilly limited limo lincoln linde link lipsy live living lk llc llp loan loans locker locus loft lol london lotte lotto love lpl lplfinancial lr ls lt ltd ltda lu lundbeck luxe luxury lv ly ma macys madrid maif maison makeup man management mango map market marketing markets marriott marshalls maserati mattel mba mc mckinsey md me med media meet melbourne meme memorial men menu merckmsd mg mh miami microsoft mil mini mint mit mitsubishi mk ml mlb mls mm mma mn mo mobi mobile moda moe moi mom monash money monster mormon mortgage moscow moto motorcycles mov movie mp mq mr ms msd mt mtn mtr mu museum music mutual mv mw mx my mz na nab nagoya name natura navy nba nc ne nec net netbank netflix network neustar new news next nextdirect nexus nf nfl ng ngo nhk ni nico nike nikon ninja nissan nissay nl no nokia northwesternmutual norton now nowruz nowtv np nr nra nrw ntt nu nyc nz obi observer office okinawa olayan olayangroup oldnavy ollo om omega one ong onl online ooo open oracle orange org organic origins osaka otsuka ott ovh pa page panasonic paris pars partners parts party passagens pay pccw pe pet pf pfizer pg ph pharmacy phd philips phone photo photography photos physio pics pictet pictures pid pin ping pink pioneer pizza pk pl place play playstation plumbing plus pm pn pnc pohl poker politie porn post pr pramerica praxi press prime pro prod productions prof progressive promo properties property protection pru prudential ps pt pub pw pwc py qa qpon quebec quest racing radio re read realestate realtor realty recipes red redstone redumbrella rehab reise reisen reit reliance ren rent rentals repair report republican rest restaurant review reviews rexroth rich richardli ricoh ril rio rip ro rocher rocks rodeo rogers room rs rsvp ru rugby ruhr run rw rwe ryukyu sa saarland safe safety sakura sale salon samsclub samsung sandvik sandvikcoromant sanofi sap sarl sas save saxo sb sbi sbs sc sca scb schaeffler schmidt scholarships school schule schwarz science scot sd se search seat secure security seek select sener services ses seven sew sex sexy sfr sg sh shangrila sharp shaw shell shia shiksha shoes shop shopping shouji show showtime si silk sina singles site sj sk ski skin sky skype sl sling sm smart smile sn sncf so soccer social softbank software sohu solar solutions song sony soy spa space sport spot sr srl ss st stada staples star statebank statefarm stc stcgroup stockholm storage store stream studio study style su sucks supplies supply support surf surgery suzuki sv swatch swiss sx sy sydney systems sz tab taipei talk taobao target tatamotors tatar tattoo tax taxi tc tci td tdk team tech technology tel temasek tennis teva tf tg th thd theater theatre tiaa tickets tienda tiffany tips tires tirol tj tjmaxx tjx tk tkmaxx tl tm tmall tn to today tokyo tools top toray toshiba total tours town toyota toys tr trade trading training travel travelchannel travelers travelersinsurance trust trv tt tube tui tunes tushu tv tvs tw tz ua ubank ubs ug uk unicom university uno uol ups us uy uz va vacations vana vanguard vc ve vegas ventures verisign vermögensberater vermögensberatung versicherung vet vg vi viajes video vig viking villas vin vip virgin visa vision viva vivo vlaanderen vn vodka volkswagen volvo vote voting voto voyage vu vuelos wales walmart walter wang wanggou watch watches weather weatherchannel webcam weber website wed wedding weibo weir wf whoswho wien wiki williamhill win windows wine winners wme wolterskluwer woodside work works world wow ws wtc wtf xbox xerox xfinity xihuan xin xxx xyz yachts yahoo yamaxun yandex ye yodobashi yoga yokohama you youtube yt yun za zappos zara zero zip zm zone zuerich zw".split(" "),Ur="ελ ευ бг бел дети ею католик ком мкд мон москва онлайн орг рус рф сайт срб укр қаз հայ ישראל קום ابوظبي اتصالات ارامكو الاردن البحرين الجزائر السعودية العليان المغرب امارات ایران بارت بازار بيتك بھارت تونس سودان سورية شبكة عراق عرب عمان فلسطين قطر كاثوليك كوم مصر مليسيا موريتانيا موقع همراه پاکستان ڀارت कॉम नेट भारत भारतम् भारोत संगठन বাংলা ভারত ভাৰত ਭਾਰਤ ભારત ଭାରତ இந்தியா இலங்கை சிங்கப்பூர் భారత్ ಭಾರತ ഭാരതം ලංකා คอม ไทย ລາວ გე みんな アマゾン クラウド グーグル コム ストア セール ファッション ポイント 世界 中信 中国 中國 中文网 亚马逊 企业 佛山 信息 健康 八卦 公司 公益 台湾 台灣 商城 商店 商标 嘉里 嘉里大酒店 在线 大拿 天主教 娱乐 家電 广东 微博 慈善 我爱你 手机 招聘 政务 政府 新加坡 新闻 时尚 書籍 机构 淡马锡 游戏 澳門 点看 移动 组织机构 网址 网店 网站 网络 联通 诺基亚 谷歌 购物 通販 集团 電訊盈科 飞利浦 食品 餐厅 香格里拉 香港 닷넷 닷컴 삼성 한국".split(" "),Nr=function(t,e){for(var r in e)t[r]=e[r];return t},Br="numeric",Lr="ascii",Pr="alpha",Rr="asciinumeric",jr="alphanumeric",qr="domain",Mr="emoji",zr="scheme",Hr="slashscheme",Vr="whitespace";function $r(t,e){return t in e||(e[t]=[]),e[t]}function Wr(t,e,r){for(var n in e[Br]&&(e[Rr]=!0,e[jr]=!0),e[Lr]&&(e[Rr]=!0,e[Pr]=!0),e[Rr]&&(e[jr]=!0),e[Pr]&&(e[jr]=!0),e[jr]&&(e[qr]=!0),e[Mr]&&(e[qr]=!0),e){var i=$r(n,r);i.indexOf(t)<0&&i.push(t)}}function Gr(t,e){var r={};for(var n in e)e[n].indexOf(t)>=0&&(r[n]=!0);return r}function Zr(t){void 0===t&&(t=null),this.j={},this.jr=[],this.jd=null,this.t=t}Zr.groups={},Zr.prototype={accepts:function(){return!!this.t},go:function(t){var e=this,r=e.j[t];if(r)return r;for(var n=0;n",gn),Jr(u,")",yn),Jr(u,"&",bn),Jr(u,"*",wn),Jr(u,"@",vn),Jr(u,"`",En),Jr(u,"^",kn),Jr(u,":",Sn),Jr(u,",",Cn),Jr(u,"$",Tn),Jr(u,".",xn),Jr(u,"=",_n),Jr(u,"!",On),Jr(u,"-",In),Jr(u,"%",Fn),Jr(u,"|",Un),Jr(u,"+",Nn),Jr(u,"#",Bn),Jr(u,"?",Ln),Jr(u,'"',Pn),Jr(u,"/",jn),Jr(u,";",Rn),Jr(u,"~",qn),Jr(u,"_",Mn),Jr(u,"\\",An);var l=Yr(u,Zn,an,(e={},e[Br]=!0,e));Yr(l,Zn,l);var c=Yr(u,$n,Qr,(r={},r[Lr]=!0,r));Yr(c,$n,c);var d=Yr(u,Wn,tn,(n={},n[Pr]=!0,n));Yr(d,$n),Yr(d,Wn,d);var p=Yr(u,Kn,un,(i={},i[Vr]=!0,i));Jr(u,Yn,ln,(o={},o[Vr]=!0,o)),Jr(p,Yn),Yr(p,Kn,p);var h=Yr(u,Gn,zn,(s={},s[Mr]=!0,s));Yr(h,Gn,h),Jr(h,Xn,h);var f=Jr(h,Jn);Yr(f,Gn,h);for(var m=[[$n,c]],g=[[$n,null],[Wn,d]],y=0;ye[0]?1:-1}));for(var D=0;D=0?k[qr]=!0:$n.test(A)?Zn.test(A)?k[Rr]=!0:k[Lr]=!0:k[Br]=!0,Xr(u,A,A,k)}return Xr(u,"localhost",en,{ascii:!0}),u.jd=new Zr(Hn),{start:u,tokens:Nr({groups:a},Vn)}}function ti(t,e){var r=ei(e.replace(/[A-Z]/g,(function(t){return t.toLowerCase()}))),n=r.length,i=[],o=0,s=0;while(s=0&&(d+=r[s].length,p++),l+=r[s].length,o+=r[s].length,s++;o-=d,s-=p,l-=d,i.push({t:c.t,v:e.slice(o-l,o),s:o-l,e:o})}return i}function ei(t){var e=[],r=t.length,n=0;while(n56319||n+1===r||(o=t.charCodeAt(n+1))<56320||o>57343?t[n]:t.slice(n,n+2);e.push(s),n+=s.length}return e}function ri(t,e,r,n,i){for(var o,s=e.length,a=0;ar?n.substring(0,r)+"…":n},toFormattedHref:function(t){return t.get("formatHref",this.toHref(t.get("defaultProtocol")),this)},startIndex:function(){return this.tk[0].s},endIndex:function(){return this.tk[this.tk.length-1].e},toObject:function(t){return void 0===t&&(t=oi.defaultProtocol),{type:this.t,value:this.toString(),isLink:this.isLink,href:this.toHref(t),start:this.startIndex(),end:this.endIndex()}},toFormattedObject:function(t){return{type:this.t,value:this.toFormattedString(t),isLink:this.isLink,href:this.toFormattedHref(t),start:this.startIndex(),end:this.endIndex()}},validate:function(t){return t.get("validate",this.toString(),this)},render:function(t){var e=this,r=this.toFormattedHref(t),n=t.get("tagName",r,e),i=this.toFormattedString(t),o={},s=t.get("className",r,e),a=t.get("target",r,e),u=t.get("rel",r,e),l=t.getObj("attributes",r,e),c=t.getObj("events",r,e);return o.href=r,s&&(o.class=s),a&&(o.target=a),u&&(o.rel=u),l&&Nr(o,l),{tagName:n,attributes:o,content:i,eventListeners:c}}};var ci=li("email",{isLink:!0,toHref:function(){return"mailto:"+this.toString()}}),di=li("text"),pi=li("nl"),hi=li("url",{isLink:!0,toHref:function(t){return void 0===t&&(t=oi.defaultProtocol),this.hasProtocol()?this.v:t+"://"+this.v},hasProtocol:function(){var t=this.tk;return t.length>=2&&t[0].t!==en&&t[1].t===Sn}}),fi=function(t){return new Zr(t)};function mi(t){var e=t.groups,r=e.domain.concat([bn,wn,vn,An,En,kn,Tn,_n,In,an,Fn,Un,Nn,Bn,jn,Hn,qn,Mn]),n=[Dn,gn,fn,mn,yn,Sn,Cn,xn,On,pn,cn,dn,hn,Ln,Pn,Rn],i=[bn,Dn,wn,An,En,kn,fn,Tn,_n,In,an,cn,Fn,Un,Nn,Bn,Ln,jn,Hn,qn,Mn],o=fi(),s=Jr(o,qn);Kr(s,i,s),Kr(s,e.domain,s);var a=fi(),u=fi(),l=fi();Kr(o,e.domain,a),Kr(o,e.scheme,u),Kr(o,e.slashscheme,l),Kr(a,i,s),Kr(a,e.domain,a);var c=Jr(a,vn);Jr(s,vn,c);var d=Jr(s,xn);Kr(d,i,s),Kr(d,e.domain,s);var p=fi();Kr(c,e.domain,p),Kr(p,e.domain,p);var h=Jr(p,xn);Kr(h,e.domain,p);var f=fi(ci);Kr(h,e.tld,f),Kr(h,e.utld,f),Jr(c,en,f);var m=Jr(p,In);Kr(m,e.domain,p),Kr(f,e.domain,p),Jr(f,xn,h),Jr(f,In,m);var g=Jr(f,Sn);Kr(g,e.numeric,ci);var y=Jr(a,In),b=Jr(a,xn);Kr(y,e.domain,a),Kr(b,i,s),Kr(b,e.domain,a);var D=fi(hi);Kr(b,e.tld,D),Kr(b,e.utld,D),Kr(D,e.domain,a),Kr(D,i,s),Jr(D,xn,b),Jr(D,In,y),Jr(D,vn,c);var w=Jr(D,Sn),v=fi(hi);Kr(w,e.numeric,v);var A=fi(hi),E=fi();Kr(A,r,A),Kr(A,n,E),Kr(E,r,A),Kr(E,n,E),Jr(D,jn,A),Jr(v,jn,A);var k=Jr(u,Sn),S=Jr(l,Sn),C=Jr(S,jn);Jr(C,jn,k),Kr(u,e.domain,a),Jr(u,xn,b),Jr(u,In,y),Kr(l,e.domain,a),Jr(l,xn,b),Jr(l,In,y),Kr(k,e.domain,A),Jr(k,jn,A);var T=Jr(A,cn),x=Jr(A,dn),_=Jr(A,pn),O=Jr(A,hn);Jr(E,cn,T),Jr(E,dn,x),Jr(E,pn,_),Jr(E,hn,O),Jr(T,fn,A),Jr(x,mn,A),Jr(_,gn,A),Jr(O,yn,A),Jr(T,fn,A);var I=fi(hi),F=fi(hi),U=fi(hi),N=fi(hi);Kr(T,r,I),Kr(x,r,F),Kr(_,r,U),Kr(O,r,N);var B=fi(),L=fi(),P=fi(),R=fi();return Kr(T,n),Kr(x,n),Kr(_,n),Kr(O,n),Kr(I,r,I),Kr(F,r,F),Kr(U,r,U),Kr(N,r,N),Kr(I,n,I),Kr(F,n,F),Kr(U,n,U),Kr(N,n,N),Kr(B,r,B),Kr(L,r,F),Kr(P,r,U),Kr(R,r,N),Kr(B,n,B),Kr(L,n,L),Kr(P,n,P),Kr(R,n,R),Jr(F,mn,A),Jr(U,gn,A),Jr(N,yn,A),Jr(I,fn,A),Jr(L,mn,A),Jr(P,gn,A),Jr(R,yn,A),Jr(B,yn,A),Jr(o,en,D),Jr(o,ln,pi),{start:o,tokens:Vn}}function gi(t,e,r){var n=r.length,i=0,o=[],s=[];while(i=0&&p++,i++,c++;if(p<0)i-=c,i0&&(o.push(yi(di,e,s)),s=[]),i-=p,c-=p;var h=d.t,f=r.slice(i-c,i);o.push(yi(h,e,f))}}return s.length>0&&o.push(yi(di,e,s)),o}function yi(t,e,r){var n=r[0].s,i=r[r.length-1].e,o=e.slice(n,i);return new t(o,r)}"undefined"!==typeof console&&console&&console.warn;var bi={scanner:null,parser:null,tokenQueue:[],pluginQueue:[],customSchemes:[],initialized:!1};function Di(){bi.scanner=Qn(bi.customSchemes);for(var t=0;t",lt:"<",nbsp:" ",quot:'"'},Ai=/^#[xX]([A-Fa-f0-9]+)$/,Ei=/^#([0-9]+)$/,ki=/^([A-Za-z0-9]+)$/,Si=function(){function t(t){this.named=t}return t.prototype.parse=function(t){if(t){var e=t.match(Ai);return e?String.fromCharCode(parseInt(e[1],16)):(e=t.match(Ei),e?String.fromCharCode(parseInt(e[1],10)):(e=t.match(ki),e?this.named[e[1]]||"&"+e[1]+";":void 0))}},t}(),Ci=/[\t\n\f ]/,Ti=/[A-Za-z]/,xi=/\r\n?/g;function _i(t){return Ci.test(t)}function Oi(t){return Ti.test(t)}function Ii(t){return t.replace(xi,"\n")}var Fi=function(){function t(t,e,r){void 0===r&&(r="precompile"),this.delegate=t,this.entityParser=e,this.mode=r,this.state="beforeData",this.line=-1,this.column=-1,this.input="",this.index=-1,this.tagNameBuffer="",this.states={beforeData:function(){var t=this.peek();if("<"!==t||this.isIgnoredEndTag()){if("precompile"===this.mode&&"\n"===t){var e=this.tagNameBuffer.toLowerCase();"pre"!==e&&"textarea"!==e||this.consume()}this.transitionTo("data"),this.delegate.beginData()}else this.transitionTo("tagOpen"),this.markTagStart(),this.consume()},data:function(){var t=this.peek(),e=this.tagNameBuffer;"<"!==t||this.isIgnoredEndTag()?"&"===t&&"script"!==e&&"style"!==e?(this.consume(),this.delegate.appendToData(this.consumeCharRef()||"&")):(this.consume(),this.delegate.appendToData(t)):(this.delegate.finishData(),this.transitionTo("tagOpen"),this.markTagStart(),this.consume())},tagOpen:function(){var t=this.consume();"!"===t?this.transitionTo("markupDeclarationOpen"):"/"===t?this.transitionTo("endTagOpen"):("@"===t||":"===t||Oi(t))&&(this.transitionTo("tagName"),this.tagNameBuffer="",this.delegate.beginStartTag(),this.appendToTagName(t))},markupDeclarationOpen:function(){var t=this.consume();if("-"===t&&"-"===this.peek())this.consume(),this.transitionTo("commentStart"),this.delegate.beginComment();else{var e=t.toUpperCase()+this.input.substring(this.index,this.index+6).toUpperCase();"DOCTYPE"===e&&(this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.transitionTo("doctype"),this.delegate.beginDoctype&&this.delegate.beginDoctype())}},doctype:function(){var t=this.consume();_i(t)&&this.transitionTo("beforeDoctypeName")},beforeDoctypeName:function(){var t=this.consume();_i(t)||(this.transitionTo("doctypeName"),this.delegate.appendToDoctypeName&&this.delegate.appendToDoctypeName(t.toLowerCase()))},doctypeName:function(){var t=this.consume();_i(t)?this.transitionTo("afterDoctypeName"):">"===t?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypeName&&this.delegate.appendToDoctypeName(t.toLowerCase())},afterDoctypeName:function(){var t=this.consume();if(!_i(t))if(">"===t)this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData");else{var e=t.toUpperCase()+this.input.substring(this.index,this.index+5).toUpperCase(),r="PUBLIC"===e.toUpperCase(),n="SYSTEM"===e.toUpperCase();(r||n)&&(this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.consume()),r?this.transitionTo("afterDoctypePublicKeyword"):n&&this.transitionTo("afterDoctypeSystemKeyword")}},afterDoctypePublicKeyword:function(){var t=this.peek();_i(t)?(this.transitionTo("beforeDoctypePublicIdentifier"),this.consume()):'"'===t?(this.transitionTo("doctypePublicIdentifierDoubleQuoted"),this.consume()):"'"===t?(this.transitionTo("doctypePublicIdentifierSingleQuoted"),this.consume()):">"===t&&(this.consume(),this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData"))},doctypePublicIdentifierDoubleQuoted:function(){var t=this.consume();'"'===t?this.transitionTo("afterDoctypePublicIdentifier"):">"===t?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypePublicIdentifier&&this.delegate.appendToDoctypePublicIdentifier(t)},doctypePublicIdentifierSingleQuoted:function(){var t=this.consume();"'"===t?this.transitionTo("afterDoctypePublicIdentifier"):">"===t?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypePublicIdentifier&&this.delegate.appendToDoctypePublicIdentifier(t)},afterDoctypePublicIdentifier:function(){var t=this.consume();_i(t)?this.transitionTo("betweenDoctypePublicAndSystemIdentifiers"):">"===t?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):'"'===t?this.transitionTo("doctypeSystemIdentifierDoubleQuoted"):"'"===t&&this.transitionTo("doctypeSystemIdentifierSingleQuoted")},betweenDoctypePublicAndSystemIdentifiers:function(){var t=this.consume();_i(t)||(">"===t?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):'"'===t?this.transitionTo("doctypeSystemIdentifierDoubleQuoted"):"'"===t&&this.transitionTo("doctypeSystemIdentifierSingleQuoted"))},doctypeSystemIdentifierDoubleQuoted:function(){var t=this.consume();'"'===t?this.transitionTo("afterDoctypeSystemIdentifier"):">"===t?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypeSystemIdentifier&&this.delegate.appendToDoctypeSystemIdentifier(t)},doctypeSystemIdentifierSingleQuoted:function(){var t=this.consume();"'"===t?this.transitionTo("afterDoctypeSystemIdentifier"):">"===t?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypeSystemIdentifier&&this.delegate.appendToDoctypeSystemIdentifier(t)},afterDoctypeSystemIdentifier:function(){var t=this.consume();_i(t)||">"===t&&(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData"))},commentStart:function(){var t=this.consume();"-"===t?this.transitionTo("commentStartDash"):">"===t?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData(t),this.transitionTo("comment"))},commentStartDash:function(){var t=this.consume();"-"===t?this.transitionTo("commentEnd"):">"===t?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData("-"),this.transitionTo("comment"))},comment:function(){var t=this.consume();"-"===t?this.transitionTo("commentEndDash"):this.delegate.appendToCommentData(t)},commentEndDash:function(){var t=this.consume();"-"===t?this.transitionTo("commentEnd"):(this.delegate.appendToCommentData("-"+t),this.transitionTo("comment"))},commentEnd:function(){var t=this.consume();">"===t?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData("--"+t),this.transitionTo("comment"))},tagName:function(){var t=this.consume();_i(t)?this.transitionTo("beforeAttributeName"):"/"===t?this.transitionTo("selfClosingStartTag"):">"===t?(this.delegate.finishTag(),this.transitionTo("beforeData")):this.appendToTagName(t)},endTagName:function(){var t=this.consume();_i(t)?(this.transitionTo("beforeAttributeName"),this.tagNameBuffer=""):"/"===t?(this.transitionTo("selfClosingStartTag"),this.tagNameBuffer=""):">"===t?(this.delegate.finishTag(),this.transitionTo("beforeData"),this.tagNameBuffer=""):this.appendToTagName(t)},beforeAttributeName:function(){var t=this.peek();_i(t)?this.consume():"/"===t?(this.transitionTo("selfClosingStartTag"),this.consume()):">"===t?(this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):"="===t?(this.delegate.reportSyntaxError("attribute name cannot start with equals sign"),this.transitionTo("attributeName"),this.delegate.beginAttribute(),this.consume(),this.delegate.appendToAttributeName(t)):(this.transitionTo("attributeName"),this.delegate.beginAttribute())},attributeName:function(){var t=this.peek();_i(t)?(this.transitionTo("afterAttributeName"),this.consume()):"/"===t?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):"="===t?(this.transitionTo("beforeAttributeValue"),this.consume()):">"===t?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):'"'===t||"'"===t||"<"===t?(this.delegate.reportSyntaxError(t+" is not a valid character within attribute names"),this.consume(),this.delegate.appendToAttributeName(t)):(this.consume(),this.delegate.appendToAttributeName(t))},afterAttributeName:function(){var t=this.peek();_i(t)?this.consume():"/"===t?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):"="===t?(this.consume(),this.transitionTo("beforeAttributeValue")):">"===t?(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(t))},beforeAttributeValue:function(){var t=this.peek();_i(t)?this.consume():'"'===t?(this.transitionTo("attributeValueDoubleQuoted"),this.delegate.beginAttributeValue(!0),this.consume()):"'"===t?(this.transitionTo("attributeValueSingleQuoted"),this.delegate.beginAttributeValue(!0),this.consume()):">"===t?(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(t))},attributeValueDoubleQuoted:function(){var t=this.consume();'"'===t?(this.delegate.finishAttributeValue(),this.transitionTo("afterAttributeValueQuoted")):"&"===t?this.delegate.appendToAttributeValue(this.consumeCharRef()||"&"):this.delegate.appendToAttributeValue(t)},attributeValueSingleQuoted:function(){var t=this.consume();"'"===t?(this.delegate.finishAttributeValue(),this.transitionTo("afterAttributeValueQuoted")):"&"===t?this.delegate.appendToAttributeValue(this.consumeCharRef()||"&"):this.delegate.appendToAttributeValue(t)},attributeValueUnquoted:function(){var t=this.peek();_i(t)?(this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("beforeAttributeName")):"/"===t?(this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):"&"===t?(this.consume(),this.delegate.appendToAttributeValue(this.consumeCharRef()||"&")):">"===t?(this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):(this.consume(),this.delegate.appendToAttributeValue(t))},afterAttributeValueQuoted:function(){var t=this.peek();_i(t)?(this.consume(),this.transitionTo("beforeAttributeName")):"/"===t?(this.consume(),this.transitionTo("selfClosingStartTag")):">"===t?(this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):this.transitionTo("beforeAttributeName")},selfClosingStartTag:function(){var t=this.peek();">"===t?(this.consume(),this.delegate.markTagAsSelfClosing(),this.delegate.finishTag(),this.transitionTo("beforeData")):this.transitionTo("beforeAttributeName")},endTagOpen:function(){var t=this.consume();("@"===t||":"===t||Oi(t))&&(this.transitionTo("endTagName"),this.tagNameBuffer="",this.delegate.beginEndTag(),this.appendToTagName(t))}},this.reset()}return t.prototype.reset=function(){this.transitionTo("beforeData"),this.input="",this.tagNameBuffer="",this.index=0,this.line=1,this.column=0,this.delegate.reset()},t.prototype.transitionTo=function(t){this.state=t},t.prototype.tokenize=function(t){this.reset(),this.tokenizePart(t),this.tokenizeEOF()},t.prototype.tokenizePart=function(t){this.input+=Ii(t);while(this.index"!==this.input.substring(this.index,this.index+8)||"style"===t&&""!==this.input.substring(this.index,this.index+8)||"script"===t&&"<\/script>"!==this.input.substring(this.index,this.index+9)},t}(),Ui=function(){function t(t,e){void 0===e&&(e={}),this.options=e,this.token=null,this.startLine=1,this.startColumn=0,this.tokens=[],this.tokenizer=new Fi(this,t,e.mode),this._currentAttribute=void 0}return t.prototype.tokenize=function(t){return this.tokens=[],this.tokenizer.tokenize(t),this.tokens},t.prototype.tokenizePart=function(t){return this.tokens=[],this.tokenizer.tokenizePart(t),this.tokens},t.prototype.tokenizeEOF=function(){return this.tokens=[],this.tokenizer.tokenizeEOF(),this.tokens[0]},t.prototype.reset=function(){this.token=null,this.startLine=1,this.startColumn=0},t.prototype.current=function(){var t=this.token;if(null===t)throw new Error("token was unexpectedly null");if(0===arguments.length)return t;for(var e=0;e=0;if(!l)continue;var c=n.length;Hi(u,r,++s,n),s+=n.length-c-1}else if(a.type!==Ri)n.push(a);else{var d=zi(a.chars,o);n.push.apply(n,d)}}for(var p=0;p0&&(f+=" "+Zi(h.attributes).join(" ")),h.selfClosing&&(f+=" /"),f+=">",i.push(f);break;case Pi:i.push("");break;case Ri:i.push($i(h.chars));break;case ji:i.push("\x3c!--"+$i(h.chars)+"--\x3e");break;case qi:var m="",i.push(m);break}}return i.join("")}function zi(t,e){for(var r=wi(t),n=[],i=0;i0){var o=e[r];o.type===Li&&o.tagName.toUpperCase()===t?i++:o.type===Pi&&o.tagName.toUpperCase()===t&&i--,n.push(o),r++}return n}function Vi(t){var e=t.tagName,r=t.attributes,n=t.content;return"<"+e+" "+Gi(r)+">"+$i(n)+""}function $i(t){return t.replace(/&/g,"&").replace(//g,">")}function Wi(t){return t.replace(/"/g,""")}function Gi(t){var e=[];for(var r in t){var n=t[r]+"";e.push(r+'="'+Wi(n)+'"')}return e.join(" ")}function Zi(t){for(var e=[],r=0;rYi()(Mi(t,{target:"_blank"}),{allowedTags:["a"],disallowedTagsMode:"escape"}),Ji={id:"workout-note"},Qi=["innerHTML"];var to=(0,n.aZ)({__name:"WorkoutNotes",props:{notes:{default:()=>null}},setup(t){const e=t,{notes:r}=(0,i.BK)(e);return(t,e)=>{const o=(0,n.up)("Card");return(0,n.wg)(),(0,n.iD)("div",Ji,[(0,n.Wm)(o,null,{title:(0,n.w5)((()=>[(0,n.Uk)((0,a.zw)(t.$t("workouts.NOTES")),1)])),content:(0,n.w5)((()=>[(0,n._)("span",{innerHTML:(0,i.SU)(r)&&""!==(0,i.SU)(r)?(0,i.SU)(Xi)((0,i.SU)(r)):t.$t("workouts.NO_NOTES")},null,8,Qi)])),_:1})])}}});const eo=(0,T.Z)(to,[["__scopeId","data-v-f6b59442"]]);var ro=eo;const no={id:"workout-segments"};var io=(0,n.aZ)({__name:"WorkoutSegments",props:{segments:null,useImperialUnits:{type:Boolean}},setup(t){const e=t,{segments:r,useImperialUnits:o}=(0,i.BK)(e);return(t,e)=>{const s=(0,n.up)("router-link"),u=(0,n.up)("Distance"),l=(0,n.up)("Card");return(0,n.wg)(),(0,n.iD)("div",no,[(0,n.Wm)(l,null,{title:(0,n.w5)((()=>[(0,n.Uk)((0,a.zw)(t.$t("workouts.SEGMENT",2)),1)])),content:(0,n.w5)((()=>[(0,n._)("ul",null,[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)((0,i.SU)(r),((e,r)=>((0,n.wg)(),(0,n.iD)("li",{key:e.segment_id},[(0,n.Wm)(s,{to:{name:"WorkoutSegment",params:{workoutId:e.workout_id,segmentId:r+1}}},{default:(0,n.w5)((()=>[(0,n.Uk)((0,a.zw)(t.$t("workouts.SEGMENT",1))+" "+(0,a.zw)(r+1),1)])),_:2},1032,["to"]),(0,n.Uk)(" ("+(0,a.zw)(t.$t("workouts.DISTANCE"))+": ",1),(0,n.Wm)(u,{distance:e.distance,unitFrom:"km",useImperialUnits:(0,i.SU)(o)},null,8,["distance","useImperialUnits"]),(0,n.Uk)(", "+(0,a.zw)(t.$t("workouts.DURATION"))+": "+(0,a.zw)(e.duration)+") ",1)])))),128))])])),_:1})])}}});const oo=(0,T.Z)(io,[["__scopeId","data-v-6b8a27cd"]]);var so=oo;const ao=t=>((0,n.dD)("data-v-53c4e53a"),t=t(),(0,n.Cn)(),t),uo={id:"workout",class:"view"},lo={class:"container"},co={key:0,class:"workout-container"},po={key:0},ho=ao((()=>(0,n._)("div",{id:"bottom"},null,-1))),fo={key:1};var mo=(0,n.aZ)({__name:"Workout",props:{displaySegment:{type:Boolean}},setup(t){const e=t,r=(0,o.yj)(),a=(0,Qe.o)(),{displaySegment:u}=(0,i.BK)(e),l=(0,n.Fl)((()=>a.getters[Je.aX.GETTERS.WORKOUT_DATA])),c=(0,n.Fl)((()=>a.getters[Je.YN.GETTERS.AUTH_USER_PROFILE])),d=(0,n.Fl)((()=>a.getters[Je.O8.GETTERS.SPORTS])),p=(0,i.iH)({latitude:null,longitude:null});function h(t){p.value={latitude:t.latitude,longitude:t.longitude}}return(0,n.wF)((()=>{const t={workoutId:r.params.workoutId};e.displaySegment&&(t.segmentId=r.params.segmentId),a.dispatch(Je.aX.ACTIONS.GET_WORKOUT_DATA,t)})),(0,n.Ah)((()=>{a.commit(Je.aX.MUTATIONS.EMPTY_WORKOUT)})),(0,n.YP)((()=>r.params.workoutId),(async t=>{t&&a.dispatch(Je.aX.ACTIONS.GET_WORKOUT_DATA,{workoutId:t})})),(0,n.YP)((()=>r.params.segmentId),(async t=>{if(r.params.workoutId){const e={workoutId:r.params.workoutId};t&&(e.segmentId=t),a.dispatch(Je.aX.ACTIONS.GET_WORKOUT_DATA,e)}})),(t,e)=>((0,n.wg)(),(0,n.iD)("div",uo,[(0,n._)("div",lo,[(0,i.SU)(d).length>0?((0,n.wg)(),(0,n.iD)("div",co,[(0,i.SU)(l).workout.id?((0,n.wg)(),(0,n.iD)("div",po,[(0,n.Wm)(fr,{workoutData:(0,i.SU)(l),sports:(0,i.SU)(d),authUser:(0,i.SU)(c),markerCoordinates:p.value,displaySegment:(0,i.SU)(u)},null,8,["workoutData","sports","authUser","markerCoordinates","displaySegment"]),(0,i.SU)(l).workout.with_gpx&&(0,i.SU)(l).chartData.length>0?((0,n.wg)(),(0,n.j4)(Ir,{key:0,workoutData:(0,i.SU)(l),authUser:(0,i.SU)(c),displaySegment:(0,i.SU)(u),onGetCoordinates:h},null,8,["workoutData","authUser","displaySegment"])):(0,n.kq)("",!0),!(0,i.SU)(u)&&(0,i.SU)(l).workout.segments.length>1?((0,n.wg)(),(0,n.j4)(so,{key:1,segments:(0,i.SU)(l).workout.segments,useImperialUnits:(0,i.SU)(c).imperial_units},null,8,["segments","useImperialUnits"])):(0,n.kq)("",!0),(0,i.SU)(u)?(0,n.kq)("",!0):((0,n.wg)(),(0,n.j4)(ro,{key:2,notes:(0,i.SU)(l).workout.notes},null,8,["notes"])),ho])):((0,n.wg)(),(0,n.iD)("div",fo,[(0,i.SU)(l).loading?(0,n.kq)("",!0):((0,n.wg)(),(0,n.j4)(s.Z,{key:0,target:"WORKOUT"}))]))])):(0,n.kq)("",!0)])]))}});const go=(0,T.Z)(mo,[["__scopeId","data-v-53c4e53a"]]);var yo=go},9628:function(t,e,r){"use strict";r.r(e),r.d(e,{default:function(){return Mt}});var n=r(6252),i=r(2262),o=r(3577),s=r(9150),a=(r(7658),r(2201)),u=r(631),l=r(3649);const c=t=>((0,n.dD)("data-v-6c38593a"),t=t(),(0,n.Cn)(),t),d={class:"workouts-filters"},p={class:"box"},h={class:"form"},f={class:"form-items-group"},m={class:"form-item"},g=["value"],y={class:"form-item"},b=["value"],D={class:"form-items-group"},w={class:"form-item"},v=["value"],A=c((()=>(0,n._)("option",{value:""},null,-1))),E=["value"],k={class:"form-items-group"},S={class:"form-item"},C={class:"form-inputs-group"},T=["value"],x=["value"],_={class:"form-items-group"},O={class:"form-item"},I={class:"form-inputs-group"},F=["value"],U=["value"],N={class:"form-items-group"},B={class:"form-item"},L={class:"form-inputs-group"},P=["value"],R=["value"],j={class:"form-items-group"},q={class:"form-item"},M={class:"form-inputs-group"},z=["value"],H=["value"],V={class:"form-button"};var $=(0,n.aZ)({__name:"WorkoutsFilters",props:{authUser:null,sports:null},emits:["filter"],setup(t,{emit:e}){const r=t,{t:c}=(0,s.QT)(),$=(0,a.yj)(),W=(0,a.tv)(),{authUser:G}=(0,i.BK)(r),Z=G.value.imperial_units?l.Dl.km.defaultTarget:"km",K=(0,n.Fl)((()=>(0,u.xH)(r.sports,c)));let Y=Object.assign({},$.query);function X(t){""===t.target.value?delete Y[t.target.name]:Y[t.target.name]=t.target.value}function J(){e("filter"),"page"in Y&&(Y["page"]="1"),W.push({path:"/workouts",query:Y})}function Q(){e("filter"),W.push({path:"/workouts",query:{}})}return(0,n.YP)((()=>$.query),(t=>{Y=Object.assign({},t)})),(t,e)=>((0,n.wg)(),(0,n.iD)("div",d,[(0,n._)("div",p,[(0,n._)("div",h,[(0,n._)("div",f,[(0,n._)("div",m,[(0,n._)("label",null,(0,o.zw)(t.$t("workouts.FROM"))+": ",1),(0,n._)("input",{name:"from",type:"date",value:t.$route.query.from,onChange:X},null,40,g)]),(0,n._)("div",y,[(0,n._)("label",null,(0,o.zw)(t.$t("workouts.TO"))+": ",1),(0,n._)("input",{name:"to",type:"date",value:t.$route.query.to,onChange:X},null,40,b)])]),(0,n._)("div",D,[(0,n._)("div",w,[(0,n._)("label",null,(0,o.zw)(t.$t("workouts.SPORT",1))+":",1),(0,n._)("select",{name:"sport_id",value:t.$route.query.sport_id,onChange:X},[A,((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)((0,i.SU)(K).filter((t=>(0,i.SU)(G).sports_list.includes(t.id))),(t=>((0,n.wg)(),(0,n.iD)("option",{value:t.id,key:t.id},(0,o.zw)(t.translatedLabel),9,E)))),128))],40,v)])]),(0,n._)("div",k,[(0,n._)("div",S,[(0,n._)("label",null,(0,o.zw)(t.$t("workouts.DISTANCE"))+" ("+(0,o.zw)((0,i.SU)(Z))+"): ",1),(0,n._)("div",C,[(0,n._)("input",{name:"distance_from",type:"number",min:"0",step:"0.1",value:t.$route.query.distance_from,onChange:X},null,40,T),(0,n._)("span",null,(0,o.zw)(t.$t("workouts.TO")),1),(0,n._)("input",{name:"distance_to",type:"number",min:"0",step:"0.1",value:t.$route.query.distance_to,onChange:X},null,40,x)])])]),(0,n._)("div",_,[(0,n._)("div",O,[(0,n._)("label",null,(0,o.zw)(t.$t("workouts.DURATION"))+": ",1),(0,n._)("div",I,[(0,n._)("input",{name:"duration_from",value:t.$route.query.duration_from,onChange:X,pattern:"^([0-9]*[0-9]):([0-5][0-9])$",placeholder:"hh:mm",type:"text"},null,40,F),(0,n._)("span",null,(0,o.zw)(t.$t("workouts.TO")),1),(0,n._)("input",{name:"duration_to",value:t.$route.query.duration_to,onChange:X,pattern:"^([0-9]*[0-9]):([0-5][0-9])$",placeholder:"hh:mm",type:"text"},null,40,U)])])]),(0,n._)("div",N,[(0,n._)("div",B,[(0,n._)("label",null,(0,o.zw)(t.$t("workouts.AVE_SPEED"))+" ("+(0,o.zw)((0,i.SU)(Z))+"/h): ",1),(0,n._)("div",L,[(0,n._)("input",{min:"0",name:"ave_speed_from",value:t.$route.query.ave_speed_from,onChange:X,step:"0.1",type:"number"},null,40,P),(0,n._)("span",null,(0,o.zw)(t.$t("workouts.TO")),1),(0,n._)("input",{min:"0",name:"ave_speed_to",value:t.$route.query.ave_speed_to,onChange:X,step:"0.1",type:"number"},null,40,R)])])]),(0,n._)("div",j,[(0,n._)("div",q,[(0,n._)("label",null,(0,o.zw)(t.$t("workouts.MAX_SPEED"))+" ("+(0,o.zw)((0,i.SU)(Z))+"/h): ",1),(0,n._)("div",M,[(0,n._)("input",{min:"0",name:"max_speed_from",value:t.$route.query.max_speed_from,onChange:X,step:"0.1",type:"number"},null,40,z),(0,n._)("span",null,(0,o.zw)(t.$t("workouts.TO")),1),(0,n._)("input",{min:"0",name:"max_speed_to",value:t.$route.query.max_speed_to,onChange:X,step:"0.1",type:"number"},null,40,H)])])])]),(0,n._)("div",V,[(0,n._)("button",{class:"confirm",onClick:J},(0,o.zw)(t.$t("buttons.FILTER")),1),(0,n._)("button",{class:"confirm",onClick:Q},(0,o.zw)(t.$t("buttons.CLEAR_FILTER")),1)])])]))}}),W=r(3744);const G=(0,W.Z)($,[["__scopeId","data-v-6c38593a"]]);var Z=G,K=r(8626),Y=r(5020),X=r(2056),J=r(5630),Q=r(5801),tt=r(9917),et=r(2766),rt=r(6558),nt=r(3768);const it=t=>((0,n.dD)("data-v-19504874"),t=t(),(0,n.Cn)(),t),ot={class:"workouts-list"},st={class:"total"},at={class:"total-label"},ut={key:0},lt={key:0,class:"workouts-table responsive-table"},ct=it((()=>(0,n._)("th",{class:"sport-col"},null,-1))),dt={class:"sport-col"},pt={class:"cell-heading"},ht=["onMouseover"],ft={class:"cell-heading"},mt={key:0,class:"fa fa-map-o","aria-hidden":"true"},gt={class:"title"},yt={class:"workout-date"},bt={class:"cell-heading"},Dt={class:"text-right"},wt={class:"cell-heading"},vt={class:"text-right"},At={class:"cell-heading"},Et={class:"text-right"},kt={class:"cell-heading"},St={class:"text-right"},Ct={class:"cell-heading"},Tt={class:"text-right"},xt={class:"cell-heading"},_t={class:"text-right"},Ot={class:"cell-heading"},It=it((()=>(0,n._)("div",{id:"bottom"},null,-1)));var Ft=(0,n.aZ)({__name:"WorkoutsList",props:{user:null,sports:null},setup(t){const e=t,r=(0,tt.o)(),s=(0,a.yj)(),c=(0,a.tv)(),{user:d,sports:p}=(0,i.BK)(e),h=["ave_speed","distance","duration","workout_date"],f=(0,n.Fl)((()=>r.getters[Q.aX.GETTERS.USER_WORKOUTS])),m=(0,n.Fl)((()=>r.getters[Q.aX.GETTERS.WORKOUTS_PAGINATION])),g=(0,n.Fl)((()=>r.getters[Q.SY.GETTERS.LANGUAGE]));let y=v(s.query);const b=(0,i.iH)(null);function D(t){r.dispatch(Q.aX.ACTIONS.GET_USER_WORKOUTS,d.value.imperial_units?A(t):t)}function w(t,e){const r=Object.assign({},s.query);r[t]=e,"per_page"===t&&(r["page"]="1"),y=v(r),c.push({path:"/workouts",query:y})}function v(t){const e=(0,et.pm)(t,h,nt.eR.order_by,{defaultSort:nt.eR.order});return Object.keys(t).filter((t=>et.Ne.includes(t))).map((r=>{"string"===typeof t[r]&&(e[r]=t[r])})),e}function A(t){const e={...t};return Object.entries(e).map((t=>{t[0].match("speed|distance")&&t[1]&&(e[t[0]]=(0,l.sC)(+t[1],"mi","km"))})),e}function E(t){b.value=t}return(0,n.wF)((()=>{D(y)})),(0,n.YP)((()=>s.query),(async t=>{y=v(t),D(y)})),(t,e)=>{const r=(0,n.up)("SportImage"),s=(0,n.up)("router-link"),a=(0,n.up)("Distance");return(0,n.wg)(),(0,n.iD)("div",ot,[(0,n._)("div",{class:(0,o.C_)(["box",{"empty-table":0===(0,i.SU)(f).length}])},[(0,n._)("div",st,[(0,n._)("span",at,(0,o.zw)(t.$t("common.TOTAL").toLowerCase())+": ",1),null!==(0,i.SU)(m).total?((0,n.wg)(),(0,n.iD)("span",ut,(0,o.zw)((0,i.SU)(m).total)+" "+(0,o.zw)(t.$t("workouts.WORKOUT",(0,i.SU)(m).total)),1)):(0,n.kq)("",!0)]),(0,n.Wm)(K.Z,{sort:(0,i.SU)(et.fS),order_by:h,query:(0,i.SU)(y),message:"workouts",onUpdateSelect:w},null,8,["sort","query"]),(0,i.SU)(f).length>0?((0,n.wg)(),(0,n.iD)("div",lt,[(0,n.Wm)(Y.Z,{class:"top-pagination",pagination:(0,i.SU)(m),path:"/workouts",query:(0,i.SU)(y)},null,8,["pagination","query"]),(0,n._)("table",null,[(0,n._)("thead",{class:(0,o.C_)({smaller:"de"===(0,i.SU)(g)})},[(0,n._)("tr",null,[ct,(0,n._)("th",null,(0,o.zw)((0,o.kC)(t.$t("workouts.WORKOUT",1))),1),(0,n._)("th",null,(0,o.zw)((0,o.kC)(t.$t("workouts.DATE"))),1),(0,n._)("th",null,(0,o.zw)((0,o.kC)(t.$t("workouts.DISTANCE"))),1),(0,n._)("th",null,(0,o.zw)((0,o.kC)(t.$t("workouts.DURATION"))),1),(0,n._)("th",null,(0,o.zw)((0,o.kC)(t.$t("workouts.AVE_SPEED"))),1),(0,n._)("th",null,(0,o.zw)((0,o.kC)(t.$t("workouts.MAX_SPEED"))),1),(0,n._)("th",null,(0,o.zw)((0,o.kC)(t.$t("workouts.ASCENT"))),1),(0,n._)("th",null,(0,o.zw)((0,o.kC)(t.$t("workouts.DESCENT"))),1)])],2),(0,n._)("tbody",null,[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)((0,i.SU)(f),(l=>((0,n.wg)(),(0,n.iD)("tr",{key:l.id},[(0,n._)("td",dt,[(0,n._)("span",pt,(0,o.zw)(t.$t("workouts.SPORT",1)),1),(0,i.SU)(p).length>0?((0,n.wg)(),(0,n.j4)(r,{key:0,title:(0,i.SU)(p).find((t=>t.id===l.sport_id)).translatedLabel,"sport-label":(0,i.SU)(u.PA)(l,(0,i.SU)(p)),color:(0,i.SU)(u.CM)(l,(0,i.SU)(p))},null,8,["title","sport-label","color"])):(0,n.kq)("",!0)]),(0,n._)("td",{class:"workout-title",onMouseover:t=>E(l.id),onMouseleave:e[0]||(e[0]=t=>E(null))},[(0,n._)("span",ft,(0,o.zw)((0,o.kC)(t.$t("workouts.WORKOUT",1))),1),(0,n.Wm)(s,{class:"nav-item",to:{name:"Workout",params:{workoutId:l.id}}},{default:(0,n.w5)((()=>[l.with_gpx?((0,n.wg)(),(0,n.iD)("i",mt)):(0,n.kq)("",!0),(0,n._)("span",gt,(0,o.zw)(l.title),1)])),_:2},1032,["to"]),l.with_gpx&&b.value===l.id?((0,n.wg)(),(0,n.j4)(X.Z,{key:0,workout:l,"display-hover":!0},null,8,["workout"])):(0,n.kq)("",!0)],40,ht),(0,n._)("td",yt,[(0,n._)("span",bt,(0,o.zw)(t.$t("workouts.DATE")),1),(0,n.Uk)(" "+(0,o.zw)((0,i.SU)(rt.p6)(l.workout_date,(0,i.SU)(d).timezone,(0,i.SU)(d).date_format)),1)]),(0,n._)("td",Dt,[(0,n._)("span",wt,(0,o.zw)(t.$t("workouts.DISTANCE")),1),(0,n.Wm)(a,{distance:l.distance,unitFrom:"km",useImperialUnits:(0,i.SU)(d).imperial_units},null,8,["distance","useImperialUnits"])]),(0,n._)("td",vt,[(0,n._)("span",At,(0,o.zw)(t.$t("workouts.DURATION")),1),(0,n.Uk)(" "+(0,o.zw)(l.moving),1)]),(0,n._)("td",Et,[(0,n._)("span",kt,(0,o.zw)(t.$t("workouts.AVE_SPEED")),1),(0,n.Wm)(a,{distance:l.ave_speed,unitFrom:"km",speed:!0,useImperialUnits:(0,i.SU)(d).imperial_units},null,8,["distance","useImperialUnits"])]),(0,n._)("td",St,[(0,n._)("span",Ct,(0,o.zw)(t.$t("workouts.MAX_SPEED")),1),(0,n.Wm)(a,{distance:l.max_speed,unitFrom:"km",speed:!0,useImperialUnits:(0,i.SU)(d).imperial_units},null,8,["distance","useImperialUnits"])]),(0,n._)("td",Tt,[(0,n._)("span",xt,(0,o.zw)(t.$t("workouts.ASCENT")),1),null!==l.ascent?((0,n.wg)(),(0,n.j4)(a,{key:0,distance:l.ascent,unitFrom:"m",useImperialUnits:(0,i.SU)(d).imperial_units},null,8,["distance","useImperialUnits"])):(0,n.kq)("",!0)]),(0,n._)("td",_t,[(0,n._)("span",Ot,(0,o.zw)(t.$t("workouts.DESCENT")),1),null!==l.descent?((0,n.wg)(),(0,n.j4)(a,{key:0,distance:l.descent,unitFrom:"m",useImperialUnits:(0,i.SU)(d).imperial_units},null,8,["distance","useImperialUnits"])):(0,n.kq)("",!0)])])))),128))])]),(0,n.Wm)(Y.Z,{pagination:(0,i.SU)(m),path:"/workouts",query:(0,i.SU)(y)},null,8,["pagination","query"])])):(0,n.kq)("",!0)],2),0===(0,i.SU)(f).length?((0,n.wg)(),(0,n.j4)(J.Z,{key:0})):(0,n.kq)("",!0),It])}}});const Ut=(0,W.Z)(Ft,[["__scopeId","data-v-19504874"]]);var Nt=Ut;const Bt={key:0,id:"workouts",class:"view"},Lt={class:"container workouts-container"},Pt={class:"display-filters"},Rt={class:"list-container"};var jt=(0,n.aZ)({__name:"WorkoutsView",setup(t){const{t:e}=(0,s.QT)(),r=(0,tt.o)(),a=(0,n.Fl)((()=>r.getters[Q.YN.GETTERS.AUTH_USER_PROFILE])),l=(0,n.Fl)((()=>r.getters[Q.O8.GETTERS.SPORTS])),c=(0,n.Fl)((()=>(0,u.xH)(l.value,e))),d=(0,i.iH)(!0);function p(){d.value=!d.value}return(t,e)=>(0,i.SU)(a).username?((0,n.wg)(),(0,n.iD)("div",Bt,[(0,n._)("div",Lt,[(0,n._)("div",{class:(0,o.C_)(["filters-container",{hidden:d.value}])},[(0,n.Wm)(Z,{sports:(0,i.SU)(c),authUser:(0,i.SU)(a),onFilter:p},null,8,["sports","authUser"])],2),(0,n._)("div",Pt,[(0,n._)("div",{onClick:p},[(0,n._)("i",{class:(0,o.C_)("fa fa-caret-"+(d.value?"down":"up")),"aria-hidden":"true"},null,2),(0,n._)("span",null,(0,o.zw)(t.$t(`workouts.${d.value?"DISPLAY":"HIDE"}_FILTERS`)),1)])]),(0,n._)("div",Rt,[(0,n.Wm)(Nt,{user:(0,i.SU)(a),sports:(0,i.SU)(c)},null,8,["user","sports"])])])])):(0,n.kq)("",!0)}});const qt=(0,W.Z)(jt,[["__scopeId","data-v-57ec0168"]]);var Mt=qt},2868:function(){},4777:function(){},9830:function(){},209:function(){},7414:function(){},2961:function(t){let e="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",r=(t,e=21)=>(r=e)=>{let n="",i=r;while(i--)n+=t[Math.random()*t.length|0];return n},n=(t=21)=>{let r="",n=t;while(n--)r+=e[64*Math.random()|0];return r};t.exports={nanoid:n,customAlphabet:r}}}]); -//# sourceMappingURL=workouts.e312ce33.js.map \ No newline at end of file +//# sourceMappingURL=workouts.143c4328.js.map \ No newline at end of file diff --git a/fittrackee/dist/static/js/workouts.e312ce33.js.map b/fittrackee/dist/static/js/workouts.143c4328.js.map similarity index 99% rename from fittrackee/dist/static/js/workouts.e312ce33.js.map rename to fittrackee/dist/static/js/workouts.143c4328.js.map index e0681ec9..495c473d 100644 --- a/fittrackee/dist/static/js/workouts.e312ce33.js.map +++ b/fittrackee/dist/static/js/workouts.143c4328.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/workouts.e312ce33.js","mappings":"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AAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,E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,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,KAAM,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,eAAgB,CAAC,EAAG,YAAa,CAAC,EAAG,yBAA0B,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,qBAAsB,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,2BAA4B,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,aAAc,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,eAAgB,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,GAAI,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,CAAEa,EAAG,gBAAiBuS,EAAG,KAAMpT,EAAG,iBAAmB,CAAC,EAAG,aAAc,CAAC,EAAG,QAAS,CAAC,EAAG,oBAAqB,CAAC,EAAG,QAAS,CAAC,GAAI,UAAW,CAAC,GAAI,UAAW,CAAC,EAAG,YAAa,CAAC,GAAI,eAAgB,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,aAAc,CAAC,EAAG,UAAW,CAAC,EAAG,cAAe,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,cAAe,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,aAAc,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,QAAS,CAAC,EAAG,WAAY,CAAC,EAAG,cAAe,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,aAAc,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,gBAAiB,CAAC,EAAG,eAAgB,CAAC,EAAG,WAAY,CAAC,EAAG,aAAc,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,GAAI,0BAA2B,CAAC,EAAG,QAAS,CAAC,EAAG,QAAS,CAAC,EAAG,QAAS,CAAC,GAAI,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,GAAI,UAAW,CAAC,EAAG,kBAAmB,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,iBAAkB,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,qBAAsB,CAAC,EAAG,oBAAqB,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,CAAEa,EAAG,UAAWuS,EAAG,IAAKpT,EAAG,aAAe,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,kBAAmB,CAAC,EAAG,cAAe,CAAC,EAAG,SAAU,CAAC,EAAG,kBAAmB,CAAC,EAAG,mBAAoB,CAAC,EAAG,oBAAqB,CAAC,EAAG,YAAa,CAAC,EAAG,oBAAqB,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,qBAAsB,CAAC,EAAG,sBAAuB,CAAC,EAAG,mBAAoB,CAAC,EAAG,oBAAqB,CAAC,EAAG,mBAAoB,CAAC,EAAG,kBAAmB,CAAC,EAAG,WAAY,CAAC,EAAG,qBAAsB,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,yBAA0B,CAAC,EAAG,WAAY,CAAC,EAAG,yBAA0B,CAAC,EAAG,oBAAqB,CAAC,EAAG,gBAAiB,CAAC,EAAG,sBAAuB,CAAC,EAAG,WAAY,CAAC,EAAG,uBAAwB,CAAC,EAAG,iBAAkB,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,qBAAsB,CAAC,EAAG,mBAAoB,CAAC,EAAG,sBAAuB,CAAC,EAAG,UAAW,CAAC,EAAG,0BAA2B,CAAC,EAAG,uBAAwB,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,aAAc,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,GAAI,sBAAuB,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,CAAEa,EAAG,SAAUuS,EAAG,IAAKpT,EAAG,YAAc,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,SAAU,CAAC,EAAG,aAAc,CAAC,EAAG,gBAAiB,CAAC,EAAG,QAAS,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,WAAY,CAAC,EAAG,eAAgB,CAAC,EAAG,aAAc,CAAC,EAAG,eAAgB,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,CAAEa,EAAG,QAASuS,EAAG,KAAMpT,EAAG,WAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,uBAAwB,CAAC,EAAG,0BAA2B,CAAC,EAAG,SAAU,CAAC,EAAG,QAAS,CAAC,EAAG,CAAEa,EAAG,QAASuS,EAAG,MAAOpT,EAAG,WAAa,CAAC,EAAG,CAAEa,EAAG,QAASuS,EAAG,MAAOpT,EAAG,WAAa,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,aAAc,CAAC,EAAG,WAAY,CAAC,EAAG,8BAA+B,CAAC,EAAG,cAAe,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,cAAe,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,CAAEa,EAAG,QAASuS,EAAG,KAAMpT,EAAG,YAAc,CAAC,EAAG,CAAEa,EAAG,YAAauS,EAAG,IAAKpT,EAAG,WAAa,CAAC,EAAG,CAAEa,EAAG,OAAQuS,EAAG,IAAKpT,EAAG,UAAY,CAAC,EAAG,SAAU,CAAC,EAAG,mBAAoB,CAAC,EAAG,cAAe,CAAC,EAAG,CAAEa,EAAG,UAAWuS,EAAG,IAAKpT,EAAG,YAAc,CAAC,EAAG,UAAW,CAAC,EAAG,mBAAoB,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,QAAS,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,CAAEa,EAAG,SAAUuS,EAAG,IAAKpT,EAAG,YAAc,CAAC,EAAG,cAAe,CAAC,EAAG,CAAEa,EAAG,YAAauS,EAAG,KAAMpT,EAAG,WAAa,CAAC,EAAG,CAAEa,EAAG,SAAUuS,EAAG,IAAKpT,EAAG,YAAc,CAAC,EAAG,CAAEa,EAAG,UAAWuS,EAAG,IAAKpT,EAAG,aAAe,CAAC,EAAG,CAAEa,EAAG,UAAWuS,EAAG,IAAKpT,EAAG,YAAc,CAAC,EAAG,cAAe,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,eAAgB,CAAC,EAAG,YAAa,CAAC,EAAG,QAAS,CAAC,EAAG,CAAEa,EAAG,cAAeuS,EAAG,KAAMpT,EAAG,cAAgB,CAAC,EAAG,YAAa,CAAC,EAAG,CAAEa,EAAG,OAAQuS,EAAG,KAAMpT,EAAG,WAAa,CAAC,EAAG,CAAEa,EAAG,OAAQuS,EAAG,KAAMpT,EAAG,WAAa,CAAC,EAAG,CAAEa,EAAG,OAAQuS,EAAG,IAAKpT,EAAG,UAAY,CAAC,EAAG,CAAEa,EAAG,OAAQuS,EAAG,IAAKpT,EAAG,UAAY,CAAC,EAAG,CAAEa,EAAG,QAASuS,EAAG,MAAOpT,EAAG,gBAAkB,CAAC,EAAG,CAAEa,EAAG,QAASuS,EAAG,MAAOpT,EAAG,gBAAkB,CAAC,EAAG,CAAEa,EAAG,OAAQuS,EAAG,IAAIzR,IAAoBoiB,EAAY,CAAC,CAAC,IAAK,UAAW,CAAC,KAAM,cAAgB,CAAC,EAAG,CAAEljB,EAAG,OAAQuS,EAAG,IAAIzR,IAAoBoiB,EAAY,CAAC,CAAC,IAAK,UAAW,CAAC,KAAM,cAAgB,CAAC,EAAG,aAAc,CAAC,EAAG,eAAgB,CAAC,EAAG,WAAY,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,aAAc,CAAC,EAAG,kBAAmB,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,iBAAkB,CAAC,EAAG,QAAS,CAAC,EAAG,oBAAqB,CAAC,EAAG,oBAAqB,CAAC,EAAG,QAAS,CAAC,EAAG,QAAS,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,mBAAoB,CAAC,EAAG,CAAEljB,EAAG,UAAWuS,EAAG,IAAKpT,EAAG,uBAAyB,CAAC,EAAG,iBAAkB,CAAC,EAAG,iBAAkB,CAAC,EAAG,CAAEa,EAAG,QAASuS,EAAG,KAAMpT,EAAG,gBAAkB,CAAC,EAAG,CAAEa,EAAG,QAASuS,EAAG,KAAMpT,EAAG,kBAAoB,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,oBAAqB,CAAC,EAAG,sBAAuB,CAAC,EAAG,CAAEa,EAAG,UAAWuS,EAAG,MAAOpT,EAAG,mBAAqB,CAAC,EAAG,CAAEa,EAAG,UAAWuS,EAAG,MAAOpT,EAAG,mBAAqB,CAAC,EAAG,YAAa,CAAC,EAAG,eAAgB,CAAC,EAAG,CAAEa,EAAG,UAAWuS,EAAG,IAAKpT,EAAG,sBAAwB,CAAC,EAAG,CAAEa,EAAG,UAAWuS,EAAG,IAAKpT,EAAG,wBAA0B,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,CAAEa,EAAG,UAAWuS,EAAG,MAAOpT,EAAG,aAAe,CAAC,EAAG,CAAEa,EAAG,UAAWuS,EAAG,MAAOpT,EAAG,aAAe,CAAC,EAAG,gBAAiB,CAAC,EAAG,iBAAkB,CAAC,EAAG,iBAAkB,CAAC,EAAG,UAAW,CAAC,EAAG,eAAgB,CAAC,EAAG,iBAAkB,CAAC,EAAG,gBAAiB,CAAC,EAAG,iBAAkB,CAAC,EAAG,aAAc,CAAC,EAAG,cAAe,CAAC,EAAG,cAAe,CAAC,EAAG,eAAgB,CAAC,EAAG,cAAe,CAAC,EAAG,WAAY,CAAC,EAAG,aAAc,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,oBAAqB,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,kBAAmB,CAAC,EAAG,mBAAoB,CAAC,EAAG,CAAEa,EAAG,sBAAuBuS,EAAG,KAAMpT,EAAG,cAAgB,CAAC,EAAG,CAAEa,EAAG,uBAAwBuS,EAAG,KAAMpT,EAAG,cAAgB,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,cAAe,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,aAAc,CAAC,EAAG,WAAY,CAAC,EAAG,cAAe,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,mBAAoB,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,oBAAqB,CAAC,EAAG,qBAAsB,CAAC,EAAG,eAAgB,CAAC,EAAG,cAAe,CAAC,EAAG,gBAAiB,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,aAAc,CAAC,EAAG,WAAY,CAAC,EAAG,CAAEa,EAAG,OAAQuS,EAAG,IAAKpT,EAAG,UAAY,CAAC,EAAG,CAAEa,EAAG,OAAQuS,EAAG,IAAKpT,EAAG,UAAY,CAAC,EAAG,CAAEa,EAAG,QAASuS,EAAG,MAAOpT,EAAG,WAAa,CAAC,EAAG,CAAEa,EAAG,QAASuS,EAAG,MAAOpT,EAAG,WAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,2BAA4B,CAAC,EAAG,2BAA4B,CAAC,EAAG,0BAA2B,CAAC,EAAG,4BAA6B,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,cAAe,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,sBAAuB,CAAC,EAAG,YAAa,CAAC,EAAG,2BAA4B,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,CAAEa,EAAG,YAAauS,EAAG,IAAKpT,EAAG,eAAiB,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,CAAEa,EAAG,UAAWuS,EAAG,IAAKpT,EAAG,aAAe,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,eAAgB,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,cAAe,CAAC,EAAG,cAAe,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,cAAe,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,GAAI,aAAc,CAAC,GAAI,gBAAiB,CAAC,EAAG,gBAAiB,CAAC,EAAG,iBAAkB,CAAC,EAAG,UAAW,CAAC,EAAG,cAAe,CAAC,GAAI,qBAAsB,CAAC,EAAG,sBAAuB,CAAC,EAAG,eAAgB,CAAC,EAAG,gBAAiB,CAAC,EAAG,cAAe,CAAC,EAAG,cAAe,CAAC,GAAI,WAAY,CAAC,IAAK,cAAe,CAAC,GAAI,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,GAAI,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,GAAI,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,GAAI,YAAa,CAAC,EAAG,iBAAkB,CAAC,EAAG,0BAA2B,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,mBAAoB,CAAC,EAAG,mBAAoB,CAAC,EAAG,cAAe,CAAC,EAAG,wBAAyB,CAAC,EAAG,UAAW,CAAC,EAAG,qBAAsB,CAAC,EAAG,uBAAwB,CAAC,EAAG,UAAW,CAAC,EAAG,uBAAwB,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,GAAI,YAAa,CAAC,EAAG,aAAc,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,sBAAuB,CAAC,EAAG,uBAAwB,CAAC,EAAG,aAAc,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,GAAI,YAAa,CAAC,EAAG,UAAW,CAAC,GAAI,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,iBAAkB,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,aAAc,CAAC,EAAG,WAAY,CAAC,IAAK,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,GAAI,UAAW,CAAC,GAAI,uBAAwB,CAAC,GAAI,WAAY,CAAC,EAAG,WAAY,CAAC,GAAI,cAAe,CAAC,EAAG,aAAc,CAAC,GAAI,uBAAwB,CAAC,EAAG,wBAAyB,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,mBAAoB,CAAC,EAAG,oBAAqB,CAAC,EAAG,wBAAyB,CAAC,EAAG,yBAA0B,CAAC,EAAG,0BAA2B,CAAC,EAAG,8BAA+B,CAAC,EAAG,gBAAiB,CAAC,EAAG,cAAe,CAAC,IAAK,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,aAAc,CAAC,EAAG,cAAe,CAAC,EAAG,cAAe,CAAC,EAAG,gBAAiB,CAAC,EAAG,kBAAmB,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,cAAe,CAAC,EAAG,cAAe,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,CAAEa,EAAG,UAAWuS,EAAG,IAAKpT,EAAG,aAAe,CAAC,EAAG,aAAc,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,aAAc,CAAC,EAAG,YAAa,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,YAAa,CAAC,EAAG,aAAc,CAAC,EAAG,cAAe,CAAC,EAAG,cAAe,CAAC,EAAG,cAAe,CAAC,EAAG,qBAAsB,CAAC,EAAG,uBAAwB,CAAC,EAAG,yBAA0B,CAAC,EAAG,sBAAuB,CAAC,EAAG,mBAAoB,CAAC,EAAG,oBAAqB,CAAC,EAAG,sBAAuB,CAAC,EAAG,wBAAyB,CAAC,EAAG,uBAAwB,CAAC,EAAG,wBAAyB,CAAC,EAAG,qBAAsB,CAAC,EAAG,uBAAwB,CAAC,EAAG,mBAAoB,CAAC,EAAG,oBAAqB,CAAC,EAAG,sBAAuB,CAAC,EAAG,wBAAyB,CAAC,EAAG,uBAAwB,CAAC,EAAG,wBAAyB,CAAC,EAAG,qBAAsB,CAAC,EAAG,uBAAwB,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,kBAAmB,CAAC,EAAG,WAAY,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,aAAc,CAAC,EAAG,YAAa,CAAC,EAAG,cAAe,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,cAAe,CAAC,EAAG,cAAe,CAAC,EAAG,cAAe,CAAC,EAAG,cAAe,CAAC,EAAG,cAAe,CAAC,EAAG,cAAe,CAAC,EAAG,cAAe,CAAC,EAAG,cAAe,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,cAAe,CAAC,EAAG,cAAe,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,aAAc,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,aAAc,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,cAAe,CAAC,EAAG,CAAEa,EAAG,oBAAqBuS,EAAG,IAAKpT,EAAG,yBAA2B,CAAC,EAAG,CAAEa,EAAG,qBAAsBuS,EAAG,IAAKpT,EAAG,0BAA4B,CAAC,GAAI,YAAa,CAAC,EAAG,cAAe,CAAC,EAAG,aAAc,CAAC,EAAG,YAAa,CAAC,EAAG,cAAe,CAAC,EAAG,cAAe,CAAC,EAAG,kBAAmB,CAAC,EAAG,iBAAkB,CAAC,EAAG,UAAW,CAAC,EAAG,aAAc,CAAC,EAAG,cAAe,CAAC,EAAG,eAAgB,CAAC,EAAG,cAAe,CAAC,EAAG,cAAe,CAAC,EAAG,YAAa,CAAC,EAAG,cAAe,CAAC,EAAG,cAAe,CAAC,EAAG,WAAY,CAAC,EAAG,cAAe,CAAC,EAAG,cAAe,CAAC,EAAG,aAAc,CAAC,EAAG,cAAe,CAAC,EAAG,aAAc,CAAC,EAAG,cAAe,CAAC,GAAI,aAAc,CAAC,EAAG,cAAe,CAAC,EAAG,aAAc,CAAC,EAAG,YAAa,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,YAAa,CAAC,EAAG,aAAc,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,cAAe,CAAC,EAAG,YAAa,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,cAAe,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,aAAc,CAAC,EAAG,cAAe,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,cAAe,CAAC,EAAG,cAAe,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,aAAc,CAAC,EAAG,SAAU,CAAC,EAAG,QAAS,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,aAAc,CAAC,EAAG,cAAe,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,CAAEa,EAAG,YAAauS,EAAG,IAAKpT,EAAG,eAAiB,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,CAAEa,EAAG,QAASuS,EAAG,IAAKpT,EAAG,WAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,CAAEa,EAAG,aAAcuS,EAAG,IAAKpT,EAAG,gBAAkB,CAAC,EAAG,CAAEa,EAAG,aAAcuS,EAAG,IAAKpT,EAAG,gBAAkB,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,cAAe,CAAC,EAAG,cAAe,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,QAAS,CAAC,EAAG,QAAS,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,CAAEa,EAAG,aAAcuS,EAAG,IAAKpT,EAAG,wBAA0B,CAAC,EAAG,CAAEa,EAAG,mBAAoBuS,EAAG,IAAKpT,EAAG,8BAAgC,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,CAAEa,EAAG,SAAUuS,EAAG,MAAOpT,EAAG,YAAc,CAAC,EAAG,CAAEa,EAAG,SAAUuS,EAAG,MAAOpT,EAAG,YAAc,CAAC,EAAG,WAAY,CAAC,EAAG,CAAEa,EAAG,kBAAmBuS,EAAG,IAAKpT,EAAG,uBAAyB,CAAC,EAAG,CAAEa,EAAG,QAASuS,EAAG,IAAKpT,EAAG,uBAAyB,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,cAAe,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,iBAAkB,CAAC,EAAG,WAAY,CAAC,EAAG,QAAS,CAAC,EAAG,QAAS,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,CAAEa,EAAG,SAAUuS,EAAG,IAAKpT,EAAG,YAAc,CAAC,EAAG,CAAEa,EAAG,SAAUuS,EAAG,IAAKpT,EAAG,YAAc,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,CAAEa,EAAG,UAAWuS,EAAG,MAAOpT,EAAG,oBAAsB,CAAC,EAAG,CAAEa,EAAG,UAAWuS,EAAG,MAAOpT,EAAG,oBAAsB,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,aAAc,CAAC,EAAG,aAAc,CAAC,EAAG,WAAY,CAAC,EAAG,aAAc,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,CAAEa,EAAG,UAAWuS,EAAG,KAAMpT,EAAG,aAAe,CAAC,MAAO,CAAEoT,EAAG,IAAIzR,IAAoBoiB,EAAY,CAAC,CAAC,MAAO,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,GAAI,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,eAAiB,CAAC,KAAM,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,c,oCCTlq0B3oB,OAAO+D,eAAeR,EAAS,aAAc,CAAE3D,OAAO,IACtD2D,EAAQqlB,gBAAkBrlB,EAAQslB,kBAAoBtlB,EAAQulB,kBAAoBvlB,EAAQwlB,YAAcxlB,EAAQylB,YAAczlB,EAAQqhB,iBAAmBrhB,EAAQshB,WAAathB,EAAQohB,UAAYphB,EAAQ0lB,YAAc1lB,EAAQ2lB,YAAc3lB,EAAQ+jB,mBAAqB/jB,EAAQgkB,WAAahkB,EAAQ0W,WAAa1W,EAAQwV,gBAAkBxV,EAAQ4kB,WAAa5kB,EAAQ6kB,OAAS7kB,EAAQuV,UAAYvV,EAAQqV,OAASrV,EAAQ4lB,aAAe5lB,EAAQ6lB,OAAS7lB,EAAQ8lB,aAAe9lB,EAAQ+lB,aAAe/lB,EAAQgmB,iBAAc,EACtgB,IAIIA,EAQAD,EAOAD,EAnBAtjB,EAAc,EAAQ,MACtByjB,EAAc,EAAQ,MACtB/B,EAAc,EAAQ,MAoD1B,SAAS2B,EAAO3gB,EAAM1H,QACF,IAAZA,IAAsBA,EAAUwoB,EAAYE,KAChD,IAAI9Q,EAA0B,kBAAZ5X,EAAuB,CAAE2oB,MAAO3oB,GAAYA,EAC9D,OAAI4X,EAAK+Q,QAAUH,EAAYI,KACvBhR,EAAKiR,OAASN,EAAaO,QACpB,EAAI9jB,EAAY6e,kBAAkBnc,IAEtC,EAAI1C,EAAY8e,YAAYpc,IAEhC,EAAI1C,EAAY4e,WAAWlc,EACtC,CASA,SAAS0gB,EAAa1gB,EAAM1H,QACR,IAAZA,IAAsBA,EAAUwoB,EAAYE,KAChD,IAAI9Q,EAA0B,kBAAZ5X,EAAuB,CAAE2oB,MAAO3oB,GAAYA,EAC9D,OAAI4X,EAAK+Q,QAAUH,EAAYI,KACvBhR,EAAKiR,OAASN,EAAaQ,QACpB,EAAI/jB,EAAY8e,YAAYpc,IAEhC,EAAI1C,EAAY6e,kBAAkBnc,IAEtC,EAAI1C,EAAY4e,WAAWlc,EACtC,CAQA,SAASmQ,EAAOnQ,EAAM1H,QACF,IAAZA,IAAsBA,EAAUwoB,EAAYE,KAChD,IAAI9Q,EAA0B,kBAAZ5X,EAAuB,CAAE2oB,MAAO3oB,GAAYA,EAE9D,OAAI4X,EAAKiR,OAASP,EAAaU,MACpB,EAAItC,EAAYU,YAAY1f,GACnCkQ,EAAKiR,OAASP,EAAaW,WACpB,EAAIvC,EAAY1O,iBAAiBtQ,GACxCkQ,EAAKiR,OAASP,EAAajlB,MACpB,EAAIqjB,EAAYxN,YAAYxR,GACnCkQ,EAAK+Q,QAAUH,EAAYI,KACvBhR,EAAKiR,OAASP,EAAaY,OACpB,EAAIT,EAAYlC,oBAAoB7e,IAExC,EAAI+gB,EAAYjC,YAAY9e,IAGhC,EAAIgf,EAAY3O,WAAWrQ,EACtC,EAxGA,SAAW8gB,GAEPA,EAAYA,EAAY,OAAS,GAAK,MAEtCA,EAAYA,EAAY,QAAU,GAAK,MAC1C,EALD,CAKGA,EAAchmB,EAAQgmB,cAAgBhmB,EAAQgmB,YAAc,CAAC,IAGhE,SAAWD,GAEPA,EAAaA,EAAa,UAAY,GAAK,SAE3CA,EAAaA,EAAa,UAAY,GAAK,QAC9C,CALD,CAKGA,EAAe/lB,EAAQ+lB,eAAiB/lB,EAAQ+lB,aAAe,CAAC,IAEnE,SAAWD,GAKPA,EAAaA,EAAa,QAAU,GAAK,OAMzCA,EAAaA,EAAa,SAAW,GAAK,QAK1CA,EAAaA,EAAa,aAAe,GAAK,YAK9CA,EAAaA,EAAa,aAAe,GAAK,YAK9CA,EAAaA,EAAa,QAAU,GAAK,MAC5C,CA3BD,CA2BGA,EAAe9lB,EAAQ8lB,eAAiB9lB,EAAQ8lB,aAAe,CAAC,IAkBnE9lB,EAAQ6lB,OAASA,EAmBjB7lB,EAAQ4lB,aAAeA,EA0BvB5lB,EAAQqV,OAASA,EACjB,IAAIsR,EAAc,EAAQ,MAC1BlqB,OAAO+D,eAAeR,EAAS,YAAa,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO2kB,EAAYpR,SAAW,IACjH9Y,OAAO+D,eAAeR,EAAS,SAAU,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO2kB,EAAY9B,MAAQ,IAC3GpoB,OAAO+D,eAAeR,EAAS,aAAc,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO2kB,EAAY/B,UAAY,IACnHnoB,OAAO+D,eAAeR,EAAS,kBAAmB,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO2kB,EAAYnR,eAAiB,IAC7H/Y,OAAO+D,eAAeR,EAAS,aAAc,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO2kB,EAAYjQ,UAAY,IACnH,IAAIkQ,EAAc,EAAQ,MAC1BnqB,OAAO+D,eAAeR,EAAS,aAAc,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO4kB,EAAY5C,UAAY,IACnHvnB,OAAO+D,eAAeR,EAAS,qBAAsB,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO4kB,EAAY7C,kBAAoB,IAEnItnB,OAAO+D,eAAeR,EAAS,cAAe,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO4kB,EAAY5C,UAAY,IACpHvnB,OAAO+D,eAAeR,EAAS,cAAe,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO4kB,EAAY5C,UAAY,IACpH,IAAI6C,EAAc,EAAQ,MAC1BpqB,OAAO+D,eAAeR,EAAS,YAAa,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO6kB,EAAYzF,SAAW,IACjH3kB,OAAO+D,eAAeR,EAAS,aAAc,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO6kB,EAAYvF,UAAY,IACnH7kB,OAAO+D,eAAeR,EAAS,mBAAoB,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO6kB,EAAYxF,gBAAkB,IAE/H5kB,OAAO+D,eAAeR,EAAS,cAAe,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO6kB,EAAYvF,UAAY,IACpH7kB,OAAO+D,eAAeR,EAAS,cAAe,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO6kB,EAAYvF,UAAY,IACpH7kB,OAAO+D,eAAeR,EAAS,oBAAqB,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO6kB,EAAYxF,gBAAkB,IAChI5kB,OAAO+D,eAAeR,EAAS,oBAAqB,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO6kB,EAAYxF,gBAAkB,IAChI5kB,OAAO+D,eAAeR,EAAS,kBAAmB,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO6kB,EAAYzF,SAAW,G;;;;;;;AC5HvH,SAAS0F,EAASzlB,GAChB,MAA6C,oBAAtC5E,OAAOC,UAAUC,SAASC,KAAKyE,EACxC,CAEA,SAAS0lB,EAAc1lB,GACrB,IAAI2lB,EAAKC,EAET,OAAoB,IAAhBH,EAASzlB,KAGb2lB,EAAO3lB,EAAEkX,iBACI9W,IAATulB,IAGJC,EAAOD,EAAKtqB,WACW,IAAnBoqB,EAASG,KAGgC,IAAzCA,EAAKjoB,eAAe,kBAM1B,CAjCAvC,OAAO+D,eAAeR,EAAS,aAA/B,CAA+C3D,OAAO,IAmCtD2D,EAAQ+mB,cAAgBA,C,qBCrCxB,WAgBC,SAAUlT,EAAMqT,GAGf,EAAO,GAAI,EAAF,EAAS,gEAUpB,EAbA,CAaE/lB,GAAM,WAGP,OAAO,SAAUgmB,GAOhB,SAASC,EAAQpd,GAChB,MAAc,MAANA,GACF,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,CACD,CAEA,SAASqd,EAAkBC,GAC1B,IAAIC,EACHhD,EAAQ+C,EAAM9C,KAAK2C,EAAMpE,UAAUrc,IACpC,GAAI6d,EAGH,OAFAgD,EAAQhD,EAAO,GACf7d,GAAO6gB,EAAMvhB,OACNuhB,CAET,CAEA,IAgBCC,EACAC,EACAC,EACA7b,EACA7B,EApBG2d,EAAcR,EAAMnhB,OAGvB4hB,EAAqB,oBACrBC,EAA6B,qBAC7BC,EAAwB,qBACxBC,EAAsB,QACtBC,EAA0B,QAO1BC,EAAqB,oDAUrBvhB,EAAM,EAGNwhB,EAAa,GAKd,MAAO,EAAM,CAIZ,GAHAb,EAAkBQ,GAGdnhB,GAAOihB,EACV,OAAOO,EAKRV,EAAMH,EAAkBS,GAGxBL,EAAc,GAKQ,MAAlBD,EAAIre,OAAO,IACdqe,EAAMA,EAAIvmB,QAAQ8mB,EAAqB,IAEvCI,KAIAC,GAIF,CAMA,SAASA,IAGRf,EAAkBO,GAGlBF,EAAoB,GAGpB7b,EAAQ,gBAER,MAAO,EAAM,CAUZ,GAPA7B,EAAImd,EAAMkB,OAAO3hB,GAOH,kBAAVmF,EAOH,GAAIub,EAAQpd,GACP0d,IACHD,EAAYrhB,KAAKshB,GACjBA,EAAoB,GACpB7b,EAAQ,wBAOH,IAAU,MAAN7B,EAMV,OALAtD,GAAO,EACHghB,GACHD,EAAYrhB,KAAKshB,QAElBS,IAKM,GAAU,MAANne,EACV0d,GAAwC1d,EACxC6B,EAAQ,gBAKF,IAAU,KAAN7B,EAKV,OAJI0d,GACHD,EAAYrhB,KAAKshB,QAElBS,IAMAT,GAAwC1d,CACzC,OAIM,GAAc,cAAV6B,EAIV,GAAU,MAAN7B,EACH0d,GAAwC1d,EACxC6B,EAAQ,oBAKF,IAAU,KAAN7B,EAGV,OAFAyd,EAAYrhB,KAAKshB,QACjBS,IAMAT,GAAwC1d,CACzC,MAGM,GAAc,qBAAV6B,EAIV,GAAIub,EAAQpd,QAGL,IAAU,KAANA,EAEV,YADAme,IAMAtc,EAAQ,gBACRnF,GAAO,CAER,CAIDA,GAAO,CAGR,CACD,CAOA,SAASyhB,IAGR,IAKCG,EAAGrQ,EAAGsQ,EAAG3f,EAETlH,EAAM8mB,EAAUnsB,EAAOosB,EAAQC,EAP5BC,GAAS,EAMZC,EAAY,CAAC,EAKd,IAAKhgB,EAAI,EAAIA,EAAI6e,EAAYzhB,OAAQ4C,IACpClH,EAAO+lB,EAAa7e,GAEpB4f,EAAW9mB,EAAMA,EAAKsE,OAAS,GAC/B3J,EAAQqF,EAAKqhB,UAAU,EAAGrhB,EAAKsE,OAAS,GACxCyiB,EAASzM,SAAS3f,EAAO,IACzBqsB,EAAWG,WAAWxsB,GAIlB2rB,EAAwB7I,KAAK9iB,IAAwB,MAAbmsB,IAGvCF,GAAKrQ,KAAI0Q,GAAS,GAKP,IAAXF,EAAeE,GAAS,EAAaL,EAAIG,GAInCR,EAAmB9I,KAAK9iB,IAAwB,MAAbmsB,IAIzCF,GAAKrQ,GAAKsQ,KAAII,GAAS,GAKvBD,EAAW,EAAIC,GAAS,EAAa1Q,EAAIyQ,GAInCV,EAAwB7I,KAAK9iB,IAAwB,MAAbmsB,IAG9CD,GAAKtQ,KAAI0Q,GAAS,GAKP,IAAXF,EAAeE,GAAS,EAAaJ,EAAIE,GAGtCE,GAAS,EAMbA,EAMMG,SAAWA,QAAQC,KAC7BD,QAAQC,IAAI,uCACX5B,EAAQ,SAAWzlB,EAAO,OAP3BknB,EAAUpB,IAAMA,EACZc,IAAKM,EAAUN,EAAIA,GACnBrQ,IAAK2Q,EAAU3Q,EAAIA,GACnBsQ,IAAKK,EAAUL,EAAIA,GACvBL,EAAW9hB,KAAKwiB,GAKlB,CAED,CACD,G,mBCzUA,IAAII,EAAE3Q,OACFjX,EAAO,WAAY,MAAO,CAAC6nB,kBAAiB,EAAMpgB,MAAMmgB,EAAEE,KAAKF,EAAEG,IAAIH,EAAEI,OAAOJ,EAAEK,UAAUL,EAAEM,QAAQN,EAAEO,OAAOP,EAAEQ,cAAcR,EAAES,MAAMT,EAAEU,IAAIV,EAAEW,MAAMX,EAAEY,OAAOZ,EAAEa,KAAKb,EAAEc,QAAQd,EAAEe,KAAKf,EAAEgB,MAAMhB,EAAEiB,KAAKjB,EAAEkB,QAAQlB,EAAEmB,MAAMnB,EAAEoB,QAAQpB,EAAEqB,SAASrB,EAAEsB,OAAOtB,EAAEuB,UAAUvB,EAAEwB,OAAOxB,EAAEyB,QAAQzB,EAAE,EACxRjpB,EAAOC,QAAQoB,IACfrB,EAAOC,QAAQ0qB,aAAetpB,C,oCCD9B,IAAIupB,EAAY,EAAQ,MAExB,MAAMC,UAAeD,EACnBpS,YAAYsS,GACVC,MAAMD,GACN1pB,KAAKf,KAAO,QACd,CAEAwf,UAAU9L,GAER,OADK3S,KAAK4pB,QAAQlV,QAAO1U,KAAK0U,MAAQ,IAC/BiV,MAAMlL,UAAU9L,EACzB,CAEAiM,WAAWjM,GAET,OADK3S,KAAK4pB,QAAQlV,QAAO1U,KAAK0U,MAAQ,IAC/BiV,MAAM/K,WAAWjM,EAC1B,EAGF/T,EAAOC,QAAU4qB,EACjBA,EAAO9lB,QAAU8lB,EAEjBD,EAAUK,eAAeJ,E,oCCtBzB,IAAI3R,EAAO,EAAQ,MAEnB,MAAMtY,UAAgBsY,EACpBV,YAAYsS,GACVC,MAAMD,GACN1pB,KAAKf,KAAO,SACd,EAGFL,EAAOC,QAAUW,EACjBA,EAAQmE,QAAUnE,C,oCCVlB,IAKIgM,EAAOse,EAAML,EAAQ9pB,GALrB,QAAEoqB,EAAO,GAAEC,GAAO,EAAQ,MAC1BC,EAAc,EAAQ,MACtBzqB,EAAU,EAAQ,MAClBsY,EAAO,EAAQ,MAInB,SAASoS,EAAYxV,GACnB,OAAOA,EAAM9X,KAAI6K,IACXA,EAAEiN,QAAOjN,EAAEiN,MAAQwV,EAAYziB,EAAEiN,eAC9BjN,EAAE/K,OACF+K,IAEX,CAEA,SAAS0iB,EAAY1V,GAEnB,GADAA,EAAKsV,IAAW,EACZtV,EAAKmV,QAAQlV,MACf,IAAK,IAAIjN,KAAKgN,EAAKmV,QAAQlV,MACzByV,EAAY1iB,EAGlB,CAEA,MAAM+hB,UAAkB1R,EACtB7S,KAAKsT,GAGH,OAFAA,EAAMnD,OAASpV,KACfA,KAAK4pB,QAAQlV,MAAMzP,KAAKsT,GACjBvY,IACT,CAEAoqB,KAAKtU,GACH,IAAK9V,KAAK4pB,QAAQlV,MAAO,OACzB,IAEI7J,EAAO3J,EAFPmpB,EAAWrqB,KAAKsqB,cAGpB,MAAOtqB,KAAKuqB,QAAQF,GAAYrqB,KAAK4pB,QAAQlV,MAAM7P,OAAQ,CAGzD,GAFAgG,EAAQ7K,KAAKuqB,QAAQF,GACrBnpB,EAAS4U,EAAS9V,KAAK4pB,QAAQlV,MAAM7J,GAAQA,IAC9B,IAAX3J,EAAkB,MAEtBlB,KAAKuqB,QAAQF,IAAa,CAC5B,CAGA,cADOrqB,KAAKuqB,QAAQF,GACbnpB,CACT,CAEAspB,KAAK1U,GACH,OAAO9V,KAAKoqB,MAAK,CAAC7R,EAAO9Q,KACvB,IAAIvG,EACJ,IACEA,EAAS4U,EAASyC,EAAO9Q,EAG3B,CAFE,MAAOgjB,GACP,MAAMlS,EAAMmS,WAAWD,EACzB,CAKA,OAJe,IAAXvpB,GAAoBqX,EAAMiS,OAC5BtpB,EAASqX,EAAMiS,KAAK1U,IAGf5U,IAEX,CAEAypB,UAAUvP,EAAMtF,GACd,OAAKA,EAQDsF,aAAgBwP,OACX5qB,KAAKwqB,MAAK,CAACjS,EAAO9Q,KACvB,GAAmB,SAAf8Q,EAAMtZ,MAAmBmc,EAAK4C,KAAKzF,EAAM6C,MAC3C,OAAOtF,EAASyC,EAAO9Q,EACzB,IAGGzH,KAAKwqB,MAAK,CAACjS,EAAO9Q,KACvB,GAAmB,SAAf8Q,EAAMtZ,MAAmBsZ,EAAM6C,OAASA,EAC1C,OAAOtF,EAASyC,EAAO9Q,EACzB,KAjBAqO,EAAWsF,EACJpb,KAAKwqB,MAAK,CAACjS,EAAO9Q,KACvB,GAAmB,SAAf8Q,EAAMtZ,KACR,OAAO6W,EAASyC,EAAO9Q,EACzB,IAeN,CAEAojB,UAAUC,EAAUhV,GAClB,OAAKA,EASDgV,aAAoBF,OACf5qB,KAAKwqB,MAAK,CAACjS,EAAO9Q,KACvB,GAAmB,SAAf8Q,EAAMtZ,MAAmB6rB,EAAS9M,KAAKzF,EAAMuS,UAC/C,OAAOhV,EAASyC,EAAO9Q,EACzB,IAGGzH,KAAKwqB,MAAK,CAACjS,EAAO9Q,KACvB,GAAmB,SAAf8Q,EAAMtZ,MAAmBsZ,EAAMuS,WAAaA,EAC9C,OAAOhV,EAASyC,EAAO9Q,EACzB,KAlBAqO,EAAWgV,EAEJ9qB,KAAKwqB,MAAK,CAACjS,EAAO9Q,KACvB,GAAmB,SAAf8Q,EAAMtZ,KACR,OAAO6W,EAASyC,EAAO9Q,EACzB,IAeN,CAEAsjB,YAAYxmB,EAAMuR,GAChB,OAAKA,EAQDvR,aAAgBqmB,OACX5qB,KAAKwqB,MAAK,CAACjS,EAAO9Q,KACvB,GAAmB,WAAf8Q,EAAMtZ,MAAqBsF,EAAKyZ,KAAKzF,EAAMhU,MAC7C,OAAOuR,EAASyC,EAAO9Q,EACzB,IAGGzH,KAAKwqB,MAAK,CAACjS,EAAO9Q,KACvB,GAAmB,WAAf8Q,EAAMtZ,MAAqBsZ,EAAMhU,OAASA,EAC5C,OAAOuR,EAASyC,EAAO9Q,EACzB,KAjBAqO,EAAWvR,EACJvE,KAAKwqB,MAAK,CAACjS,EAAO9Q,KACvB,GAAmB,WAAf8Q,EAAMtZ,KACR,OAAO6W,EAASyC,EAAO9Q,EACzB,IAeN,CAEAujB,aAAalV,GACX,OAAO9V,KAAKwqB,MAAK,CAACjS,EAAO9Q,KACvB,GAAmB,YAAf8Q,EAAMtZ,KACR,OAAO6W,EAASyC,EAAO9Q,EACzB,GAEJ,CAEAgX,UAAU9L,GACR,IAAK,IAAI4F,KAAS5F,EAAU,CAC1B,IAAI+B,EAAQ1U,KAAKirB,UAAU1S,EAAOvY,KAAKkrB,MACvC,IAAK,IAAIzW,KAAQC,EAAO1U,KAAK4pB,QAAQlV,MAAMzP,KAAKwP,EAClD,CAIA,OAFAzU,KAAKmrB,YAEEnrB,IACT,CAEA4e,WAAWjM,GACTA,EAAWA,EAASyY,UACpB,IAAK,IAAI7S,KAAS5F,EAAU,CAC1B,IAAI+B,EAAQ1U,KAAKirB,UAAU1S,EAAOvY,KAAKqrB,MAAO,WAAWD,UACzD,IAAK,IAAI3W,KAAQC,EAAO1U,KAAK4pB,QAAQlV,MAAMuH,QAAQxH,GACnD,IAAK,IAAI0F,KAAMna,KAAKuqB,QAClBvqB,KAAKuqB,QAAQpQ,GAAMna,KAAKuqB,QAAQpQ,GAAMzF,EAAM7P,MAEhD,CAIA,OAFA7E,KAAKmrB,YAEEnrB,IACT,CAEAsrB,UAAUC,GAER,GADA5B,MAAM2B,UAAUC,GACZvrB,KAAK0U,MACP,IAAK,IAAID,KAAQzU,KAAK0U,MAAOD,EAAK6W,UAAUC,EAEhD,CAEAC,aAAaC,EAAOC,GAClB,IAMI7gB,EANA8gB,EAAa3rB,KAAK6K,MAAM4gB,GACxBxsB,EAAsB,IAAf0sB,GAAmB,UAC1BjX,EAAQ1U,KAAKirB,UAAUS,EAAK1rB,KAAK4pB,QAAQlV,MAAMiX,GAAa1sB,GAAMmsB,UACtEO,EAAa3rB,KAAK6K,MAAM4gB,GACxB,IAAK,IAAIhX,KAAQC,EAAO1U,KAAK4pB,QAAQlV,MAAM+G,OAAOkQ,EAAY,EAAGlX,GAGjE,IAAK,IAAI0F,KAAMna,KAAKuqB,QAClB1f,EAAQ7K,KAAKuqB,QAAQpQ,GACjBwR,GAAc9gB,IAChB7K,KAAKuqB,QAAQpQ,GAAMtP,EAAQ6J,EAAM7P,QAMrC,OAFA7E,KAAKmrB,YAEEnrB,IACT,CAEA4rB,YAAYH,EAAOC,GACjB,IAKI7gB,EALA8gB,EAAa3rB,KAAK6K,MAAM4gB,GACxB/W,EAAQ1U,KAAKirB,UAAUS,EAAK1rB,KAAK4pB,QAAQlV,MAAMiX,IAAaP,UAChEO,EAAa3rB,KAAK6K,MAAM4gB,GACxB,IAAK,IAAIhX,KAAQC,EAAO1U,KAAK4pB,QAAQlV,MAAM+G,OAAOkQ,EAAa,EAAG,EAAGlX,GAGrE,IAAK,IAAI0F,KAAMna,KAAKuqB,QAClB1f,EAAQ7K,KAAKuqB,QAAQpQ,GACjBwR,EAAa9gB,IACf7K,KAAKuqB,QAAQpQ,GAAMtP,EAAQ6J,EAAM7P,QAMrC,OAFA7E,KAAKmrB,YAEEnrB,IACT,CAEA6rB,YAAYtT,GAKV,IAAI1N,EAJJ0N,EAAQvY,KAAK6K,MAAM0N,GACnBvY,KAAK4pB,QAAQlV,MAAM6D,GAAOnD,YAAS9U,EACnCN,KAAK4pB,QAAQlV,MAAM+G,OAAOlD,EAAO,GAGjC,IAAK,IAAI4B,KAAMna,KAAKuqB,QAClB1f,EAAQ7K,KAAKuqB,QAAQpQ,GACjBtP,GAAS0N,IACXvY,KAAKuqB,QAAQpQ,GAAMtP,EAAQ,GAM/B,OAFA7K,KAAKmrB,YAEEnrB,IACT,CAEA8rB,YACE,IAAK,IAAIrX,KAAQzU,KAAK4pB,QAAQlV,MAAOD,EAAKW,YAAS9U,EAKnD,OAJAN,KAAK4pB,QAAQlV,MAAQ,GAErB1U,KAAKmrB,YAEEnrB,IACT,CAEA+rB,cAAcC,EAAS/X,EAAM6B,GAe3B,OAdKA,IACHA,EAAW7B,EACXA,EAAO,CAAC,GAGVjU,KAAK2qB,WAAUsB,IACThY,EAAKiY,QAAUjY,EAAKiY,MAAMvQ,SAASsQ,EAAK7Q,OACxCnH,EAAKkY,OAASF,EAAK/wB,MAAMygB,SAAS1H,EAAKkY,QAE3CF,EAAK/wB,MAAQ+wB,EAAK/wB,MAAM4E,QAAQksB,EAASlW,GAAQ,IAGnD9V,KAAKmrB,YAEEnrB,IACT,CAEAosB,MAAMC,GACJ,OAAOrsB,KAAK0U,MAAM0X,MAAMC,EAC1B,CAEAlN,KAAKkN,GACH,OAAOrsB,KAAK0U,MAAMyK,KAAKkN,EACzB,CAEAxhB,MAAM0N,GACJ,MAAqB,kBAAVA,EAA2BA,GAClCA,EAAMqR,UAASrR,EAAQA,EAAMqR,SAC1B5pB,KAAK4pB,QAAQlV,MAAMgI,QAAQnE,GACpC,CAEI8S,YACF,GAAKrrB,KAAK4pB,QAAQlV,MAClB,OAAO1U,KAAK4pB,QAAQlV,MAAM,EAC5B,CAEIwW,WACF,GAAKlrB,KAAK4pB,QAAQlV,MAClB,OAAO1U,KAAK4pB,QAAQlV,MAAM1U,KAAK4pB,QAAQlV,MAAM7P,OAAS,EACxD,CAEAomB,UAAUvW,EAAO4X,GACf,GAAqB,kBAAV5X,EACTA,EAAQwV,EAAY1e,EAAMkJ,GAAOA,YAC5B,GAAIxY,MAAMC,QAAQuY,GAAQ,CAC/BA,EAAQA,EAAM1M,MAAM,GACpB,IAAK,IAAIP,KAAKiN,EACRjN,EAAE2N,QAAQ3N,EAAE2N,OAAOyW,YAAYpkB,EAAG,SAE1C,MAAO,GAAmB,SAAfiN,EAAMzV,MAAiC,aAAde,KAAKf,KAAqB,CAC5DyV,EAAQA,EAAMA,MAAM1M,MAAM,GAC1B,IAAK,IAAIP,KAAKiN,EACRjN,EAAE2N,QAAQ3N,EAAE2N,OAAOyW,YAAYpkB,EAAG,SAE1C,MAAO,GAAIiN,EAAMzV,KACfyV,EAAQ,CAACA,QACJ,GAAIA,EAAM0G,KAAM,CACrB,GAA2B,qBAAhB1G,EAAMxZ,MACf,MAAM,IAAIqD,MAAM,0CACgB,kBAAhBmW,EAAMxZ,QACtBwZ,EAAMxZ,MAAQgc,OAAOxC,EAAMxZ,QAE7BwZ,EAAQ,CAAC,IAAIuV,EAAYvV,GAC3B,MAAO,GAAIA,EAAMoW,SACfpW,EAAQ,CAAC,IAAIoV,EAAKpV,SACb,GAAIA,EAAMnQ,KACfmQ,EAAQ,CAAC,IAAI+U,EAAO/U,QACf,KAAIA,EAAM+B,KAGf,MAAM,IAAIlY,MAAM,sCAFhBmW,EAAQ,CAAC,IAAIlV,EAAQkV,GAGvB,CAEA,IAAI6X,EAAY7X,EAAM9X,KAAI6K,IAEnBA,EAAEuiB,IAAKR,EAAUgD,QAAQ/kB,GAC9BA,EAAIA,EAAEmiB,QACFniB,EAAE2N,QAAQ3N,EAAE2N,OAAOyW,YAAYpkB,GAC/BA,EAAEsiB,IAAUI,EAAY1iB,GACC,qBAAlBA,EAAEglB,KAAKC,QACZJ,GAAwC,qBAAvBA,EAAOG,KAAKC,SAC/BjlB,EAAEglB,KAAKC,OAASJ,EAAOG,KAAKC,OAAO5sB,QAAQ,MAAO,KAGtD2H,EAAE2N,OAASpV,KAAK4pB,QACTniB,KAGT,OAAO8kB,CACT,CAEAI,oBACE,MAAO,CACL5U,IAAItD,EAAM2G,EAAMlgB,GACd,OAAIuZ,EAAK2G,KAAUlgB,IACnBuZ,EAAK2G,GAAQlgB,EACA,SAATkgB,GAA4B,WAATA,GAA8B,aAATA,GAC1C3G,EAAK0W,cAH0B,CAMnC,EAEAtqB,IAAI4T,EAAM2G,GACR,MAAa,YAATA,EACK3G,EACGA,EAAK2G,GAGN,SAATA,GACiB,kBAATA,GAAqBA,EAAKwR,WAAW,QAEtC,IAAIC,IACFpY,EAAK2G,MACPyR,EAAKjwB,KAAI6K,GACO,oBAANA,EACF,CAAC8Q,EAAO1N,IAAUpD,EAAE8Q,EAAMuU,UAAWjiB,GAErCpD,KAKG,UAAT2T,GAA6B,SAATA,EACtBxI,GACE6B,EAAK2G,IAAM,CAAC7C,KAAUwU,IAC3Bna,EAAG2F,EAAMuU,aAAcC,KAGT,SAAT3R,EACF,IAAM3G,EAAK/B,OAAOoa,UACP,UAAT1R,EACF3G,EAAKC,MAAM9X,KAAI6K,GAAKA,EAAEqlB,YACX,UAAT1R,GAA6B,SAATA,EACtB3G,EAAK2G,GAAM0R,UAEXrY,EAAK2G,GA7BL3G,EAAK2G,EA+BhB,EAEJ,CAEAkP,cACOtqB,KAAKgtB,WAAUhtB,KAAKgtB,SAAW,GAC/BhtB,KAAKuqB,UAASvqB,KAAKuqB,QAAU,CAAC,GAEnCvqB,KAAKgtB,UAAY,EACjB,IAAI3C,EAAWrqB,KAAKgtB,SAGpB,OAFAhtB,KAAKuqB,QAAQF,GAAY,EAElBA,CACT,EAGFb,EAAUyD,cAAgBC,IACxB1hB,EAAQ0hB,GAGV1D,EAAU2D,aAAeD,IACvBpD,EAAOoD,GAGT1D,EAAUK,eAAiBqD,IACzBzD,EAASyD,GAGX1D,EAAU4D,aAAeF,IACvBvtB,EAAOutB,GAGTtuB,EAAOC,QAAU2qB,EACjBA,EAAU7lB,QAAU6lB,EAGpBA,EAAUgD,QAAU/X,IACA,WAAdA,EAAKxV,KACP3D,OAAO0b,eAAevC,EAAMgV,EAAOluB,WACZ,SAAdkZ,EAAKxV,KACd3D,OAAO0b,eAAevC,EAAMqV,EAAKvuB,WACV,SAAdkZ,EAAKxV,KACd3D,OAAO0b,eAAevC,EAAMwV,EAAY1uB,WACjB,YAAdkZ,EAAKxV,KACd3D,OAAO0b,eAAevC,EAAMjV,EAAQjE,WACb,SAAdkZ,EAAKxV,MACd3D,OAAO0b,eAAevC,EAAM9U,EAAKpE,WAGnCkZ,EAAKuV,IAAM,EAEPvV,EAAKC,OACPD,EAAKC,MAAM1W,SAAQua,IACjBiR,EAAUgD,QAAQjU,EAAK,GAE3B,C,oCClbF,IAAI8U,EAAO,EAAQ,MAEfC,EAAoB,EAAQ,MAEhC,MAAMC,UAAuBhvB,MAC3B6Y,YAAYoW,EAASC,EAAMC,EAAQhxB,EAAQixB,EAAMC,GAC/CjE,MAAM6D,GACNxtB,KAAKuE,KAAO,iBACZvE,KAAK6tB,OAASL,EAEVG,IACF3tB,KAAK2tB,KAAOA,GAEVjxB,IACFsD,KAAKtD,OAASA,GAEZkxB,IACF5tB,KAAK4tB,OAASA,GAEI,qBAATH,GAA0C,qBAAXC,IACpB,kBAATD,GACTztB,KAAKytB,KAAOA,EACZztB,KAAK0tB,OAASA,IAEd1tB,KAAKytB,KAAOA,EAAKA,KACjBztB,KAAK0tB,OAASD,EAAKC,OACnB1tB,KAAK8tB,QAAUJ,EAAOD,KACtBztB,KAAK+tB,UAAYL,EAAOA,SAI5B1tB,KAAKguB,aAEDzvB,MAAM0vB,mBACR1vB,MAAM0vB,kBAAkBjuB,KAAMutB,EAElC,CAEAS,aACEhuB,KAAKwtB,QAAUxtB,KAAK4tB,OAAS5tB,KAAK4tB,OAAS,KAAO,GAClD5tB,KAAKwtB,SAAWxtB,KAAK2tB,KAAO3tB,KAAK2tB,KAAO,cACf,qBAAd3tB,KAAKytB,OACdztB,KAAKwtB,SAAW,IAAMxtB,KAAKytB,KAAO,IAAMztB,KAAK0tB,QAE/C1tB,KAAKwtB,SAAW,KAAOxtB,KAAK6tB,MAC9B,CAEAK,eAAeC,GACb,IAAKnuB,KAAKtD,OAAQ,MAAO,GAEzB,IAAI0xB,EAAMpuB,KAAKtD,OACF,MAATyxB,IAAeA,EAAQd,EAAKvF,kBAC5BwF,GACEa,IAAOC,EAAMd,EAAkBc,IAGrC,IAMIC,EAAMC,EANNC,EAAQH,EAAIpK,MAAM,SAClBlgB,EAAQqY,KAAKqS,IAAIxuB,KAAKytB,KAAO,EAAG,GAChC5lB,EAAMsU,KAAKC,IAAIpc,KAAKytB,KAAO,EAAGc,EAAM1pB,QAEpC4pB,EAAWvX,OAAOrP,GAAKhD,OAG3B,GAAIspB,EAAO,CACT,IAAI,KAAEpG,EAAI,IAAEQ,EAAG,KAAEO,GAASuE,EAAK9D,cAAa,GAC5C8E,EAAO5X,GAAQsR,EAAKQ,EAAI9R,IACxB6X,EAAQ7X,GAAQqS,EAAKrS,EACvB,MACE4X,EAAOC,EAAQvmB,GAAOA,EAGxB,OAAOwmB,EACJvmB,MAAMlE,EAAO+D,GACbjL,KAAI,CAAC6wB,EAAM5iB,KACV,IAAI6jB,EAAS5qB,EAAQ,EAAI+G,EACrB8jB,EAAS,KAAO,IAAMD,GAAQ1mB,OAAOymB,GAAY,MACrD,GAAIC,IAAW1uB,KAAKytB,KAAM,CACxB,IAAImB,EACFN,EAAMK,EAAO7uB,QAAQ,MAAO,MAC5B2tB,EAAKzlB,MAAM,EAAGhI,KAAK0tB,OAAS,GAAG5tB,QAAQ,SAAU,KACnD,OAAOuuB,EAAK,KAAOC,EAAMK,GAAUlB,EAAO,MAAQmB,EAAUP,EAAK,IACnE,CACA,MAAO,IAAMC,EAAMK,GAAUlB,KAE9BlZ,KAAK,KACV,CAEA/Y,WACE,IAAIqzB,EAAO7uB,KAAKkuB,iBAIhB,OAHIW,IACFA,EAAO,OAASA,EAAO,MAElB7uB,KAAKuE,KAAO,KAAOvE,KAAKwtB,QAAUqB,CAC3C,EAGFjwB,EAAOC,QAAU0uB,EACjBA,EAAe5pB,QAAU4pB,C,oCCjGzB,IAAIzV,EAAO,EAAQ,MAEnB,MAAMmS,UAAoBnS,EACxBV,YAAYsS,GAERA,GAC0B,qBAAnBA,EAASxuB,OACU,kBAAnBwuB,EAASxuB,QAEhBwuB,EAAW,IAAKA,EAAUxuB,MAAOgc,OAAOwS,EAASxuB,SAEnDyuB,MAAMD,GACN1pB,KAAKf,KAAO,MACd,CAEI6vB,eACF,OAAO9uB,KAAKob,KAAKwR,WAAW,OAA0B,MAAjB5sB,KAAKob,KAAK,EACjD,EAGFxc,EAAOC,QAAUorB,EACjBA,EAAYtmB,QAAUsmB,C,oCCrBtB,IAEI8E,EAAYC,EAFZxF,EAAY,EAAQ,MAIxB,MAAMvT,UAAiBuT,EACrBpS,YAAYsS,GAEVC,MAAM,CAAE1qB,KAAM,cAAeyqB,IAExB1pB,KAAK0U,QACR1U,KAAK0U,MAAQ,GAEjB,CAEAua,SAAShb,EAAO,CAAC,GACf,IAAIib,EAAO,IAAIH,EAAW,IAAIC,EAAahvB,KAAMiU,GAEjD,OAAOib,EAAKC,WACd,EAGFlZ,EAASmZ,mBAAqBlC,IAC5B6B,EAAa7B,GAGfjX,EAASoZ,kBAAoBnC,IAC3B8B,EAAY9B,GAGdtuB,EAAOC,QAAUoX,EACjBA,EAAStS,QAAUsS,C,mCC9BnB,IAAIgU,EAAc,EAAQ,MACtBqF,EAAc,EAAQ,MACtB9vB,EAAU,EAAQ,MAClBiqB,EAAS,EAAQ,MACjB8F,EAAQ,EAAQ,MAChB5vB,EAAO,EAAQ,MACfmqB,EAAO,EAAQ,MAEnB,SAAS0F,EAASC,EAAMC,GACtB,GAAIxzB,MAAMC,QAAQszB,GAAO,OAAOA,EAAK7yB,KAAI0W,GAAKkc,EAASlc,KAEvD,IAAMoc,OAAQC,KAAcjG,GAAa+F,EACzC,GAAIE,EAAW,CACbD,EAAS,GACT,IAAK,IAAI1J,KAAS2J,EAAW,CAC3B,IAAIC,EAAgB,IAAK5J,EAAO/O,UAAWsY,EAAMh0B,WAC7Cq0B,EAAchzB,MAChBgzB,EAAchzB,IAAM,IACfgzB,EAAchzB,IACjBqa,UAAWqY,EAAY/zB,YAG3Bm0B,EAAOzqB,KAAK2qB,EACd,CACF,CAIA,GAHIlG,EAAShV,QACXgV,EAAShV,MAAQ+a,EAAK/a,MAAM9X,KAAI0W,GAAKkc,EAASlc,EAAGoc,MAE/ChG,EAAShtB,OAAQ,CACnB,IAAI,QAAEmzB,KAAYnzB,GAAWgtB,EAAShtB,OACtCgtB,EAAShtB,OAASA,EACH,MAAXmzB,IACFnG,EAAShtB,OAAOspB,MAAQ0J,EAAOG,GAEnC,CACA,GAAsB,SAAlBnG,EAASzqB,KACX,OAAO,IAAIU,EAAK+pB,GACX,GAAsB,SAAlBA,EAASzqB,KAClB,OAAO,IAAIgrB,EAAYP,GAClB,GAAsB,SAAlBA,EAASzqB,KAClB,OAAO,IAAI6qB,EAAKJ,GACX,GAAsB,YAAlBA,EAASzqB,KAClB,OAAO,IAAIO,EAAQkqB,GACd,GAAsB,WAAlBA,EAASzqB,KAClB,OAAO,IAAIwqB,EAAOC,GAElB,MAAM,IAAInrB,MAAM,sBAAwBkxB,EAAKxwB,KAEjD,CAEAL,EAAOC,QAAU2wB,EACjBA,EAAS7rB,QAAU6rB,C,oCCnDnB,IAAI,kBAAEM,EAAiB,mBAAEC,GAAuB,EAAQ,MACpD,cAAEC,EAAa,cAAEC,GAAkB,EAAQ,OAC3C,QAAEC,EAAO,WAAEC,GAAe,EAAQ,OAClC,OAAEC,GAAW,EAAQ,MAErB9C,EAAoB,EAAQ,MAC5BC,EAAiB,EAAQ,MACzB+B,EAAc,EAAQ,MAEtBe,EAAkBz0B,OAAO,mBAEzB00B,EAAqBC,QAAQT,GAAqBC,GAClDS,EAAgBD,QAAQL,GAAWC,GAEvC,MAAMZ,EACJnY,YAAYgX,EAAKna,EAAO,CAAC,GACvB,GACU,OAARma,GACe,qBAARA,GACS,kBAARA,IAAqBA,EAAI5yB,SAEjC,MAAM,IAAI+C,MAAM,oBAAoB6vB,2BAwBtC,GArBApuB,KAAKouB,IAAMA,EAAI5yB,WAEK,WAAhBwE,KAAKouB,IAAI,IAAmC,MAAhBpuB,KAAKouB,IAAI,IACvCpuB,KAAKywB,QAAS,EACdzwB,KAAKouB,IAAMpuB,KAAKouB,IAAIpmB,MAAM,IAE1BhI,KAAKywB,QAAS,EAGZxc,EAAKyc,QAEJF,GACD,YAAYxS,KAAK/J,EAAKyc,OACtBP,EAAWlc,EAAKyc,MAEhB1wB,KAAK2tB,KAAO1Z,EAAKyc,KAEjB1wB,KAAK2tB,KAAOuC,EAAQjc,EAAKyc,OAIzBF,GAAiBF,EAAoB,CACvC,IAAI1zB,EAAM,IAAI0yB,EAAYtvB,KAAKouB,IAAKna,GACpC,GAAIrX,EAAI6Z,KAAM,CACZzW,KAAKpD,IAAMA,EACX,IAAI+wB,EAAO/wB,EAAI+zB,WAAWhD,MACrB3tB,KAAK2tB,MAAQA,IAAM3tB,KAAK2tB,KAAO3tB,KAAK4wB,WAAWjD,GACtD,CACF,CAEK3tB,KAAK2tB,OACR3tB,KAAKma,GAAK,cAAgBiW,EAAO,GAAK,KAEpCpwB,KAAKpD,MAAKoD,KAAKpD,IAAI+wB,KAAO3tB,KAAK0wB,KACrC,CAEAG,WAAW/pB,GACT,IAAIgqB,EAAUC,EACd,GAAK/wB,KAAKqwB,GAYRU,EAAc/wB,KAAKqwB,OAZO,CAC1B,IAAI9B,EAAQvuB,KAAKouB,IAAIpK,MAAM,MAC3B+M,EAAc,IAAI70B,MAAMqyB,EAAM1pB,QAC9B,IAAImsB,EAAY,EAEhB,IAAK,IAAIvpB,EAAI,EAAGwpB,EAAI1C,EAAM1pB,OAAQ4C,EAAIwpB,EAAGxpB,IACvCspB,EAAYtpB,GAAKupB,EACjBA,GAAazC,EAAM9mB,GAAG5C,OAAS,EAGjC7E,KAAKqwB,GAAmBU,CAC1B,CAGAD,EAAWC,EAAYA,EAAYlsB,OAAS,GAE5C,IAAIuX,EAAM,EACV,GAAItV,GAAUgqB,EACZ1U,EAAM2U,EAAYlsB,OAAS,MACtB,CACL,IACIyd,EADAkM,EAAMuC,EAAYlsB,OAAS,EAE/B,MAAOuX,EAAMoS,EAEX,GADAlM,EAAMlG,GAAQoS,EAAMpS,GAAQ,GACxBtV,EAASiqB,EAAYzO,GACvBkM,EAAMlM,EAAM,MACP,MAAIxb,GAAUiqB,EAAYzO,EAAM,IAEhC,CACLlG,EAAMkG,EACN,KACF,CAJElG,EAAMkG,EAAM,CAId,CAEJ,CACA,MAAO,CACLmL,KAAMrR,EAAM,EACZ8U,IAAKpqB,EAASiqB,EAAY3U,GAAO,EAErC,CAEA9F,MAAMkX,EAASC,EAAMC,EAAQzZ,EAAO,CAAC,GACnC,IAAI/S,EAAQ4sB,EAASC,EAErB,GAAIN,GAAwB,kBAATA,EAAmB,CACpC,IAAI3pB,EAAQ2pB,EACR5lB,EAAM6lB,EACV,GAA2B,kBAAhBD,EAAK3mB,OAAqB,CACnC,IAAIvB,EAAMvF,KAAK6wB,WAAW/sB,EAAMgD,QAChC2mB,EAAOloB,EAAIkoB,KACXC,EAASnoB,EAAI2rB,GACf,MACEzD,EAAO3pB,EAAM2pB,KACbC,EAAS5pB,EAAM4pB,OAEjB,GAA0B,kBAAf7lB,EAAIf,OAAqB,CAClC,IAAIvB,EAAMvF,KAAK6wB,WAAWhpB,EAAIf,QAC9BgnB,EAAUvoB,EAAIkoB,KACdM,EAAYxoB,EAAI2rB,GAClB,MACEpD,EAAUjmB,EAAI4lB,KACdM,EAAYlmB,EAAI6lB,MAEpB,MAAO,IAAKA,EAAQ,CAClB,IAAInoB,EAAMvF,KAAK6wB,WAAWpD,GAC1BA,EAAOloB,EAAIkoB,KACXC,EAASnoB,EAAI2rB,GACf,CAEA,IAAIC,EAASnxB,KAAKmxB,OAAO1D,EAAMC,EAAQI,EAASC,GAiChD,OA/BE7sB,EADEiwB,EACO,IAAI5D,EACXC,OACmBltB,IAAnB6wB,EAAOrD,QACHqD,EAAO1D,KACP,CAAEA,KAAM0D,EAAO1D,KAAMC,OAAQyD,EAAOzD,aACrBptB,IAAnB6wB,EAAOrD,QACHqD,EAAOzD,OACP,CAAED,KAAM0D,EAAOrD,QAASJ,OAAQyD,EAAOpD,WAC3CoD,EAAOz0B,OACPy0B,EAAOxD,KACP1Z,EAAK2Z,QAGE,IAAIL,EACXC,OACYltB,IAAZwtB,EAAwBL,EAAO,CAAEA,OAAMC,eAC3BptB,IAAZwtB,EAAwBJ,EAAS,CAAED,KAAMK,EAASJ,OAAQK,GAC1D/tB,KAAKouB,IACLpuB,KAAK2tB,KACL1Z,EAAK2Z,QAIT1sB,EAAO8kB,MAAQ,CAAEyH,OAAMC,SAAQI,UAASC,YAAWrxB,OAAQsD,KAAKouB,KAC5DpuB,KAAK2tB,OACHsC,IACF/uB,EAAO8kB,MAAMK,IAAM4J,EAAcjwB,KAAK2tB,MAAMnyB,YAE9C0F,EAAO8kB,MAAM2H,KAAO3tB,KAAK2tB,MAGpBzsB,CACT,CAEAiwB,OAAO1D,EAAMC,EAAQI,EAASC,GAC5B,IAAK/tB,KAAKpD,IAAK,OAAO,EACtB,IAKIw0B,EAKAC,EAVAV,EAAW3wB,KAAKpD,IAAI+zB,WAEpBD,EAAOC,EAASW,oBAAoB,CAAE7D,OAAMC,WAChD,IAAKgD,EAAKh0B,OAAQ,OAAO,EAGF,kBAAZoxB,IACTsD,EAAKT,EAASW,oBAAoB,CAAE7D,KAAMK,EAASJ,OAAQK,KAM3DsD,EADElB,EAAWO,EAAKh0B,QACRuzB,EAAcS,EAAKh0B,QAEnB,IAAI60B,IACZb,EAAKh0B,OACLsD,KAAKpD,IAAI+zB,WAAWa,YAAcvB,EAAcjwB,KAAKpD,IAAI60B,UAI7D,IAAIvwB,EAAS,CACXmlB,IAAKgL,EAAQ71B,WACbiyB,KAAMiD,EAAKjD,KACXC,OAAQgD,EAAKhD,OACbI,QAASsD,GAAMA,EAAG3D,KAClBM,UAAWqD,GAAMA,EAAG1D,QAGtB,GAAyB,UAArB2D,EAAQK,SAAsB,CAChC,IAAI1B,EAIF,MAAM,IAAIzxB,MAAM,yDAHhB2C,EAAOysB,KAAOqC,EAAcqB,EAKhC,CAEA,IAAI30B,EAASi0B,EAASgB,iBAAiBjB,EAAKh0B,QAG5C,OAFIA,IAAQwE,EAAOxE,OAASA,GAErBwE,CACT,CAEA0vB,WAAWjD,GACT,MAAI,YAAY3P,KAAK2P,GACZA,EAEFuC,EAAQlwB,KAAKpD,IAAI+zB,WAAWa,YAAcxxB,KAAKpD,IAAI8V,MAAQ,IAAKib,EACzE,CAEI+C,WACF,OAAO1wB,KAAK2tB,MAAQ3tB,KAAKma,EAC3B,CAEAyX,SACE,IAAInC,EAAO,CAAC,EACZ,IAAK,IAAIlrB,IAAQ,CAAC,SAAU,MAAO,OAAQ,MACvB,MAAdvE,KAAKuE,KACPkrB,EAAKlrB,GAAQvE,KAAKuE,IAStB,OANIvE,KAAKpD,MACP6yB,EAAK7yB,IAAM,IAAKoD,KAAKpD,KACjB6yB,EAAK7yB,IAAIi1B,gBACXpC,EAAK7yB,IAAIi1B,mBAAgBvxB,IAGtBmvB,CACT,EAGF7wB,EAAOC,QAAU0wB,EACjBA,EAAM5rB,QAAU4rB,EAEZjC,GAAqBA,EAAkBwE,eACzCxE,EAAkBwE,cAAcvC,E,oCCpPlC,IAAI,QAAExF,EAAO,GAAEC,GAAO,EAAQ,MAC1B+H,EAAe,EAAQ,MACvB5C,EAAY,EAAQ,MACpB3F,EAAY,EAAQ,MACpBvT,EAAW,EAAQ,MAEnB+b,GADW,EAAQ,MACV,EAAQ,OACjBxmB,EAAQ,EAAQ,MAChB7L,EAAO,EAAQ,MAEnB,MAAMsyB,EAAqB,CACzBC,SAAU,WACVxf,KAAM,OACNyf,OAAQ,SACRC,KAAM,OACNnG,KAAM,cACNoG,QAAS,WAGLC,EAAe,CACnBC,eAAe,EACfC,SAAS,EACTC,MAAM,EACNxc,UAAU,EACVtW,MAAM,EACNsqB,aAAa,EACbH,MAAM,EACNL,QAAQ,EACRjqB,SAAS,EACTkzB,iBAAiB,EACjBC,UAAU,EACVC,YAAY,EACZC,aAAa,EACbC,UAAU,EACVC,cAAc,EACdC,UAAU,GAGNC,EAAe,CACnBV,eAAe,EACfC,SAAS,EACTC,MAAM,GAGFS,EAAW,EAEjB,SAASC,EAAUhY,GACjB,MAAsB,kBAARA,GAAwC,oBAAbA,EAAIiY,IAC/C,CAEA,SAASC,EAAU5e,GACjB,IAAI1X,GAAM,EACNkC,EAAOgzB,EAAmBxd,EAAKxV,MAOnC,MANkB,SAAdwV,EAAKxV,KACPlC,EAAM0X,EAAK2G,KAAK1W,cACO,WAAd+P,EAAKxV,OACdlC,EAAM0X,EAAKlQ,KAAKG,eAGd3H,GAAO0X,EAAKgK,OACP,CACLxf,EACAA,EAAO,IAAMlC,EACbm2B,EACAj0B,EAAO,OACPA,EAAO,QAAUlC,GAEVA,EACF,CAACkC,EAAMA,EAAO,IAAMlC,EAAKkC,EAAO,OAAQA,EAAO,QAAUlC,GACvD0X,EAAKgK,OACP,CAACxf,EAAMi0B,EAAUj0B,EAAO,QAExB,CAACA,EAAMA,EAAO,OAEzB,CAEA,SAASq0B,EAAQ7e,GACf,IAAI8e,EASJ,OAPEA,EADgB,aAAd9e,EAAKxV,KACE,CAAC,WAAYi0B,EAAU,gBACT,SAAdze,EAAKxV,KACL,CAAC,OAAQi0B,EAAU,YAEnBG,EAAU5e,GAGd,CACLA,OACA8e,SACAC,WAAY,EACZC,SAAU,GACVC,aAAc,EACdrJ,SAAU,EAEd,CAEA,SAASsJ,EAAWlf,GAGlB,OAFAA,EAAKsV,IAAW,EACZtV,EAAKC,OAAOD,EAAKC,MAAM1W,SAAQyJ,GAAKksB,EAAWlsB,KAC5CgN,CACT,CAEA,IAAImf,EAAU,CAAC,EAEf,MAAM7E,EACJ3X,YAAYyc,EAAWzF,EAAKna,GAI1B,IAAIvB,EACJ,GAJA1S,KAAK8zB,aAAc,EACnB9zB,KAAKusB,WAAY,EAIA,kBAAR6B,GACC,OAARA,GACc,SAAbA,EAAInvB,MAAgC,aAAbmvB,EAAInvB,KAGvB,GAAImvB,aAAeW,GAAcX,aAAe4D,EACrDtf,EAAOihB,EAAWvF,EAAI1b,MAClB0b,EAAIxxB,MACkB,qBAAbqX,EAAKrX,MAAqBqX,EAAKrX,IAAM,CAAC,GAC5CqX,EAAKrX,IAAIm3B,SAAQ9f,EAAKrX,IAAIm3B,QAAS,GACxC9f,EAAKrX,IAAI6B,KAAO2vB,EAAIxxB,SAEjB,CACL,IAAIwZ,EAAS5K,EACTyI,EAAK+f,SAAQ5d,EAASnC,EAAK+f,OAAOxoB,OAClCyI,EAAKmC,SAAQA,EAASnC,EAAKmC,QAC3BA,EAAO5K,QAAO4K,EAASA,EAAO5K,OAElC,IACEkH,EAAO0D,EAAOgY,EAAKna,EAIrB,CAHE,MAAOqC,GACPtW,KAAKusB,WAAY,EACjBvsB,KAAKsW,MAAQA,CACf,CAEI5D,IAASA,EAAKsX,IAEhBR,EAAUgD,QAAQ9Z,EAEtB,MAzBEA,EAAOihB,EAAWvF,GA2BpBpuB,KAAKkB,OAAS,IAAI8wB,EAAO6B,EAAWnhB,EAAMuB,GAC1CjU,KAAKi0B,QAAU,IAAKL,EAAS1yB,OAAQlB,KAAKkB,OAAQ0yB,WAClD5zB,KAAKk0B,QAAUl0B,KAAK6zB,UAAUK,QAAQt3B,KAAIgxB,GAClB,kBAAXA,GAAuBA,EAAO4E,QAChC,IAAK5E,KAAWA,EAAO4E,QAAQxyB,KAAKkB,SAEpC0sB,GAGb,CAEYuG,IAAPv4B,OAAOu4B,eACV,MAAO,YACT,CAEIN,gBACF,OAAO7zB,KAAKkB,OAAO2yB,SACrB,CAEI5f,WACF,OAAOjU,KAAKkB,OAAO+S,IACrB,CAEIma,UACF,OAAOpuB,KAAKmvB,YAAYf,GAC1B,CAEIgG,cACF,OAAOp0B,KAAKmvB,YAAYiF,OAC1B,CAEIx3B,UACF,OAAOoD,KAAKmvB,YAAYvyB,GAC1B,CAEI8V,WACF,OAAO1S,KAAKq0B,OAAO3hB,IACrB,CAEI4hB,eACF,OAAOt0B,KAAKq0B,OAAOC,QACrB,CAEAC,WACE,OAAOv0B,KAAKq0B,OAAOE,UACrB,CAEA/4B,WACE,OAAOwE,KAAKouB,GACd,CAEAgF,KAAKoB,EAAaC,GAUhB,OAAOz0B,KAAK00B,QAAQtB,KAAKoB,EAAaC,EACxC,CAEAE,MAAMF,GACJ,OAAOz0B,KAAK00B,QAAQC,MAAMF,EAC5B,CAEAG,QAAQC,GACN,OAAO70B,KAAK00B,QAAQtB,KAAKyB,EAAWA,EACtC,CAEAH,QACE,OAAI10B,KAAKsW,MAAcwe,QAAQC,OAAO/0B,KAAKsW,OACvCtW,KAAKusB,UAAkBuI,QAAQ5E,QAAQlwB,KAAKkB,SAC3ClB,KAAKg1B,aACRh1B,KAAKg1B,WAAah1B,KAAKi1B,YAElBj1B,KAAKg1B,WACd,CAEAX,OACE,GAAIr0B,KAAKsW,MAAO,MAAMtW,KAAKsW,MAC3B,GAAItW,KAAKusB,UAAW,OAAOvsB,KAAKkB,OAGhC,GAFAlB,KAAKusB,WAAY,EAEbvsB,KAAKg1B,WACP,MAAMh1B,KAAKk1B,gBAGb,IAAK,IAAItH,KAAU5tB,KAAKk0B,QAAS,CAC/B,IAAIiB,EAAUn1B,KAAKo1B,UAAUxH,GAC7B,GAAIuF,EAAUgC,GACZ,MAAMn1B,KAAKk1B,eAEf,CAGA,GADAl1B,KAAKq1B,kBACDr1B,KAAKs1B,YAAa,CACpB,IAAI5iB,EAAO1S,KAAKkB,OAAOwR,KACvB,OAAQA,EAAKqX,GACXrX,EAAKqX,IAAW,EAChB/pB,KAAKu1B,SAAS7iB,GAEhB,GAAI1S,KAAKw1B,UAAUxC,SACjB,GAAkB,aAAdtgB,EAAKzT,KACP,IAAK,IAAIw2B,KAAW/iB,EAAKgC,MACvB1U,KAAK01B,UAAU11B,KAAKw1B,UAAUxC,SAAUyC,QAG1Cz1B,KAAK01B,UAAU11B,KAAKw1B,UAAUxC,SAAUtgB,EAG9C,CAEA,OAAO1S,KAAKkB,MACd,CAEAiuB,YACE,GAAInvB,KAAKsW,MAAO,MAAMtW,KAAKsW,MAC3B,GAAItW,KAAK8zB,YAAa,OAAO9zB,KAAKkB,OAClClB,KAAK8zB,aAAc,EAEnB9zB,KAAKq0B,OAEL,IAAIpgB,EAAOjU,KAAKkB,OAAO+S,KACnBlM,EAAMonB,EACNlb,EAAK+f,SAAQjsB,EAAMkM,EAAK+f,OAAO7E,WAC/Blb,EAAK0hB,cAAa5tB,EAAMkM,EAAK0hB,aAC7B5tB,EAAIonB,YAAWpnB,EAAMA,EAAIonB,WAE7B,IAAIvyB,EAAM,IAAIm1B,EAAahqB,EAAK/H,KAAKkB,OAAOwR,KAAM1S,KAAKkB,OAAO+S,MAC1DlQ,EAAOnH,EAAIg5B,WAIf,OAHA51B,KAAKkB,OAAOktB,IAAMrqB,EAAK,GACvB/D,KAAKkB,OAAOtE,IAAMmH,EAAK,GAEhB/D,KAAKkB,MACd,CAEAq0B,SAAS9gB,GACPA,EAAKsV,IAAW,EAChB,IAAIwJ,EAASF,EAAU5e,GACvB,IAAK,IAAIohB,KAAStC,EAChB,GAAIsC,IAAU3C,EACRze,EAAKC,OACPD,EAAK2V,MAAK7R,IACHA,EAAMwR,IAAU/pB,KAAKu1B,SAAShd,EAAK,QAGvC,CACL,IAAIkb,EAAWzzB,KAAKw1B,UAAUK,GAC9B,GAAIpC,GACEzzB,KAAK01B,UAAUjC,EAAUhf,EAAKqY,WAAY,MAElD,CAEJ,CAEA4I,UAAUjC,EAAUhf,GAClB,IAAK,IAAKmZ,EAAQkI,KAAYrC,EAAU,CAEtC,IAAI0B,EADJn1B,KAAKkB,OAAO60B,WAAanI,EAEzB,IACEuH,EAAUW,EAAQrhB,EAAMzU,KAAKi0B,QAG/B,CAFE,MAAOxJ,GACP,MAAMzqB,KAAKg2B,YAAYvL,EAAGhW,EAAKmV,QACjC,CACA,GAAkB,SAAdnV,EAAKxV,MAAiC,aAAdwV,EAAKxV,OAAwBwV,EAAKW,OAC5D,OAAO,EAET,GAAI+d,EAAUgC,GACZ,MAAMn1B,KAAKk1B,eAEf,CACF,CAEAE,UAAUxH,GACR5tB,KAAKkB,OAAO60B,WAAanI,EACzB,IACE,GAAsB,kBAAXA,GAAuBA,EAAO6E,KAAM,CAC7C,GAA8B,aAA1BzyB,KAAKkB,OAAOwR,KAAKzT,KAAqB,CACxC,IAAIg3B,EAAQj2B,KAAKkB,OAAOwR,KAAKgC,MAAM9X,KAAI8V,GACrCkb,EAAO6E,KAAK/f,EAAM1S,KAAKi0B,WAGzB,OAAId,EAAU8C,EAAM,IACXnB,QAAQz2B,IAAI43B,GAGdA,CACT,CAEA,OAAOrI,EAAO6E,KAAKzyB,KAAKkB,OAAOwR,KAAM1S,KAAKi0B,QAC5C,CAAO,GAAsB,oBAAXrG,EAChB,OAAOA,EAAO5tB,KAAKkB,OAAOwR,KAAM1S,KAAKkB,OAIzC,CAFE,MAAOoV,GACP,MAAMtW,KAAKg2B,YAAY1f,EACzB,CACF,CAEA4e,gBACE,MAAM,IAAI32B,MAAM,uDAClB,CAEAy3B,YAAY1f,EAAO7B,GACjB,IAAImZ,EAAS5tB,KAAKkB,OAAO60B,WACzB,IACMthB,GAAMA,EAAKiW,WAAWpU,GAC1BtW,KAAKsW,MAAQA,EACM,mBAAfA,EAAM/R,MAA8B+R,EAAMsX,OAGnCA,EAAOsI,gBAFhB5f,EAAMsX,OAASA,EAAO2E,cACtBjc,EAAM0X,aA4BV,CAJE,MAAOmI,GAGHxO,SAAWA,QAAQrR,OAAOqR,QAAQrR,MAAM6f,EAC9C,CACA,OAAO7f,CACT,CAEAoe,iBACE10B,KAAK4tB,OAAS,EACd,IAAK,IAAInmB,EAAI,EAAGA,EAAIzH,KAAKk0B,QAAQrvB,OAAQ4C,IAAK,CAC5C,IAAImmB,EAAS5tB,KAAKk0B,QAAQzsB,GACtB0tB,EAAUn1B,KAAKo1B,UAAUxH,GAC7B,GAAIuF,EAAUgC,GACZ,UACQA,CAGR,CAFE,MAAO7e,GACP,MAAMtW,KAAKg2B,YAAY1f,EACzB,CAEJ,CAGA,GADAtW,KAAKq1B,kBACDr1B,KAAKs1B,YAAa,CACpB,IAAI5iB,EAAO1S,KAAKkB,OAAOwR,KACvB,OAAQA,EAAKqX,GAAU,CACrBrX,EAAKqX,IAAW,EAChB,IAAIhnB,EAAQ,CAACuwB,EAAQ5gB,IACrB,MAAO3P,EAAM8B,OAAS,EAAG,CACvB,IAAIswB,EAAUn1B,KAAKo2B,UAAUrzB,GAC7B,GAAIowB,EAAUgC,GACZ,UACQA,CAIR,CAHE,MAAO1K,GACP,IAAIhW,EAAO1R,EAAMA,EAAM8B,OAAS,GAAG4P,KACnC,MAAMzU,KAAKg2B,YAAYvL,EAAGhW,EAC5B,CAEJ,CACF,CAEA,GAAIzU,KAAKw1B,UAAUxC,SACjB,IAAK,IAAKpF,EAAQkI,KAAY91B,KAAKw1B,UAAUxC,SAAU,CACrDhzB,KAAKkB,OAAO60B,WAAanI,EACzB,IACE,GAAkB,aAAdlb,EAAKzT,KAAqB,CAC5B,IAAIg3B,EAAQvjB,EAAKgC,MAAM9X,KAAI64B,GACzBK,EAAQL,EAASz1B,KAAKi0B,iBAGlBa,QAAQz2B,IAAI43B,EACpB,YACQH,EAAQpjB,EAAM1S,KAAKi0B,QAI7B,CAFE,MAAOxJ,GACP,MAAMzqB,KAAKg2B,YAAYvL,EACzB,CACF,CAEJ,CAGA,OADAzqB,KAAKusB,WAAY,EACVvsB,KAAKmvB,WACd,CAEAkG,kBACEr1B,KAAKw1B,UAAY,CAAC,EAClB,IAAI9J,EAAM,CAACkC,EAAQ3uB,EAAM2T,KAClB5S,KAAKw1B,UAAUv2B,KAAOe,KAAKw1B,UAAUv2B,GAAQ,IAClDe,KAAKw1B,UAAUv2B,GAAMgG,KAAK,CAAC2oB,EAAQhb,GAAG,EAExC,IAAK,IAAIgb,KAAU5tB,KAAKk0B,QACtB,GAAsB,kBAAXtG,EACT,IAAK,IAAIiI,KAASjI,EAAQ,CACxB,IAAK0E,EAAauD,IAAU,SAAS7X,KAAK6X,GACxC,MAAM,IAAIt3B,MACR,iBAAiBs3B,QAAYjI,EAAO2E,yCACRvyB,KAAK6zB,UAAUwC,iBAG/C,IAAKpD,EAAa4C,GAChB,GAA6B,kBAAlBjI,EAAOiI,GAChB,IAAK,IAAI14B,KAAUywB,EAAOiI,GAEtBnK,EAAIkC,EADS,MAAXzwB,EACU04B,EAIVA,EAAQ,IAAM14B,EAAOuH,cAJJkpB,EAAOiI,GAAO14B,QASH,oBAAlBywB,EAAOiI,IACvBnK,EAAIkC,EAAQiI,EAAOjI,EAAOiI,GAGhC,CAGJ71B,KAAKs1B,YAAch6B,OAAOiC,KAAKyC,KAAKw1B,WAAW3wB,OAAS,CAC1D,CAEAuxB,UAAUrzB,GACR,IAAIuzB,EAAQvzB,EAAMA,EAAM8B,OAAS,IAC7B,KAAE4P,EAAI,SAAEgf,GAAa6C,EAEzB,GAAkB,SAAd7hB,EAAKxV,MAAiC,aAAdwV,EAAKxV,OAAwBwV,EAAKW,OAE5D,YADArS,EAAMgC,MAIR,GAAI0uB,EAAS5uB,OAAS,GAAKyxB,EAAM5C,aAAeD,EAAS5uB,OAAQ,CAC/D,IAAK+oB,EAAQkI,GAAWrC,EAAS6C,EAAM5C,cACvC4C,EAAM5C,cAAgB,EAClB4C,EAAM5C,eAAiBD,EAAS5uB,SAClCyxB,EAAM7C,SAAW,GACjB6C,EAAM5C,aAAe,GAEvB1zB,KAAKkB,OAAO60B,WAAanI,EACzB,IACE,OAAOkI,EAAQrhB,EAAKqY,UAAW9sB,KAAKi0B,QAGtC,CAFE,MAAOxJ,GACP,MAAMzqB,KAAKg2B,YAAYvL,EAAGhW,EAC5B,CACF,CAEA,GAAuB,IAAnB6hB,EAAMjM,SAAgB,CACxB,IACI9R,EADA8R,EAAWiM,EAAMjM,SAErB,MAAQ9R,EAAQ9D,EAAKC,MAAMD,EAAK8V,QAAQF,IAEtC,GADA5V,EAAK8V,QAAQF,IAAa,GACrB9R,EAAMwR,GAGT,OAFAxR,EAAMwR,IAAW,OACjBhnB,EAAMkC,KAAKquB,EAAQ/a,IAIvB+d,EAAMjM,SAAW,SACV5V,EAAK8V,QAAQF,EACtB,CAEA,IAAIkJ,EAAS+C,EAAM/C,OACnB,MAAO+C,EAAM9C,WAAaD,EAAO1uB,OAAQ,CACvC,IAAIgxB,EAAQtC,EAAO+C,EAAM9C,YAEzB,GADA8C,EAAM9C,YAAc,EAChBqC,IAAU3C,EAKZ,YAJIze,EAAKC,OAASD,EAAKC,MAAM7P,SAC3B4P,EAAKsV,IAAW,EAChBuM,EAAMjM,SAAW5V,EAAK6V,gBAGnB,GAAItqB,KAAKw1B,UAAUK,GAExB,YADAS,EAAM7C,SAAWzzB,KAAKw1B,UAAUK,GAGpC,CACA9yB,EAAMgC,KACR,EAGFgqB,EAAWwH,gBAAkBrJ,IAC3B0G,EAAU1G,GAGZtuB,EAAOC,QAAUkwB,EACjBA,EAAWprB,QAAUorB,EAErBpvB,EAAKyvB,mBAAmBL,GACxB9Y,EAASmZ,mBAAmBL,E,gCCniB5B,IAAIyH,EAAO,CACTxS,MAAMpkB,EAAQ62B,EAAYvL,GACxB,IAAI5sB,EAAQ,GACR0d,EAAU,GACVgI,GAAQ,EAER0S,EAAO,EACPC,GAAU,EACVC,EAAY,GACZlT,GAAS,EAEb,IAAK,IAAImT,KAAUj3B,EACb8jB,EACFA,GAAS,EACW,OAAXmT,EACTnT,GAAS,EACAiT,EACLE,IAAWD,IACbD,GAAU,GAEQ,MAAXE,GAA6B,MAAXA,GAC3BF,GAAU,EACVC,EAAYC,GACQ,MAAXA,EACTH,GAAQ,EACY,MAAXG,EACLH,EAAO,IAAGA,GAAQ,GACJ,IAATA,GACLD,EAAW9a,SAASkb,KAAS7S,GAAQ,GAGvCA,GACc,KAAZhI,GAAgB1d,EAAM2G,KAAK+W,EAAQd,QACvCc,EAAU,GACVgI,GAAQ,GAERhI,GAAW6a,EAKf,OADI3L,GAAoB,KAAZlP,IAAgB1d,EAAM2G,KAAK+W,EAAQd,QACxC5c,CACT,EAEAw4B,MAAMl3B,GACJ,IAAIm3B,EAAS,CAAC,IAAK,KAAM,MACzB,OAAOP,EAAKxS,MAAMpkB,EAAQm3B,EAC5B,EAEAC,MAAMp3B,GACJ,OAAO42B,EAAKxS,MAAMpkB,EAAQ,CAAC,MAAM,EACnC,GAGFhB,EAAOC,QAAU23B,EACjBA,EAAK7yB,QAAU6yB,C,oCCvDf,IAAI,kBAAE1G,EAAiB,mBAAEC,GAAuB,EAAQ,MACpD,QAAEkH,EAAO,QAAE/G,EAAO,SAAEhT,EAAQ,IAAEga,GAAQ,EAAQ,OAC9C,cAAEjH,GAAkB,EAAQ,MAE5BV,EAAQ,EAAQ,MAEhBe,EAAqBC,QAAQT,GAAqBC,GAClDS,EAAgBD,QAAQ0G,GAAW/G,GAAWhT,GAAYga,GAE9D,MAAMnF,EACJ3a,YAAY+X,EAAWzc,EAAMuB,EAAMkjB,GACjCn3B,KAAKmvB,UAAYA,EACjBnvB,KAAKo3B,QAAUnjB,EAAKrX,KAAO,CAAC,EAC5BoD,KAAK0S,KAAOA,EACZ1S,KAAKiU,KAAOA,EACZjU,KAAKouB,IAAM+I,EACXn3B,KAAKq3B,cAAgBr3B,KAAKo3B,QAAQ1G,MAAQ1wB,KAAKo3B,QAAQE,QACzD,CAEAC,QACE,MAA6B,qBAAlBv3B,KAAKiU,KAAKrX,MACVoD,KAAKiU,KAAKrX,IAEdoD,KAAKw3B,WAAW3yB,OAAS,CAClC,CAEA2yB,WACE,IAAKx3B,KAAKy3B,aAER,GADAz3B,KAAKy3B,aAAe,GAChBz3B,KAAK0S,KACP1S,KAAK0S,KAAK8X,MAAK/V,IACb,GAAIA,EAAK/X,QAAU+X,EAAK/X,OAAOspB,MAAMppB,IAAK,CACxC,IAAIA,EAAM6X,EAAK/X,OAAOspB,MAAMppB,IACvBoD,KAAKy3B,aAAa9b,SAAS/e,IAC9BoD,KAAKy3B,aAAaxyB,KAAKrI,EAE3B,SAEG,CACL,IAAIopB,EAAQ,IAAIuJ,EAAMvvB,KAAKouB,IAAKpuB,KAAKiU,MACjC+R,EAAMppB,KAAKoD,KAAKy3B,aAAaxyB,KAAK+gB,EAAMppB,IAC9C,CAGF,OAAOoD,KAAKy3B,YACd,CAEAC,WACE,GAAmC,qBAAxB13B,KAAKo3B,QAAQrD,OACtB,OAAO/zB,KAAKo3B,QAAQrD,OAGtB,IAAI4D,EAAa33B,KAAKo3B,QAAQO,WAC9B,OAA0B,qBAAfA,IAA6C,IAAfA,MAIrC33B,KAAKw3B,WAAW3yB,QACX7E,KAAKw3B,WAAWrY,MAAK1X,GAAKA,EAAEssB,SAGvC,CAEA6D,mBACE,MAA2C,qBAAhC53B,KAAKo3B,QAAQS,eACf73B,KAAKo3B,QAAQS,gBAElB73B,KAAKw3B,WAAW3yB,QACX7E,KAAKw3B,WAAWrY,MAAK1X,GAAKA,EAAEqwB,eAGvC,CAEAC,kBACE,IAAgC,IAA5B/3B,KAAKo3B,QAAQO,WAEjB,GAAI33B,KAAK0S,KAAM,CACb,IAAI+B,EACJ,IAAK,IAAIhN,EAAIzH,KAAK0S,KAAKgC,MAAM7P,OAAS,EAAG4C,GAAK,EAAGA,IAC/CgN,EAAOzU,KAAK0S,KAAKgC,MAAMjN,GACL,YAAdgN,EAAKxV,MACwC,IAA7CwV,EAAKgC,KAAKiG,QAAQ,wBACpB1c,KAAK0S,KAAKmZ,YAAYpkB,EAG5B,MAAWzH,KAAKouB,MACdpuB,KAAKouB,IAAMpuB,KAAKouB,IAAItuB,QAAQ,4BAA6B,IAE7D,CAEAk4B,oBACE,IAAIC,EAAU,CAAC,EACf,GAAIj4B,KAAK0S,KACP1S,KAAK0S,KAAK8X,MAAK/V,IACb,GAAIA,EAAK/X,OAAQ,CACf,IAAIg0B,EAAOjc,EAAK/X,OAAOspB,MAAM0K,KAC7B,GAAIA,IAASuH,EAAQvH,GAAO,CAC1BuH,EAAQvH,IAAQ,EAChB,IAAIW,EAAUrxB,KAAKq3B,aACfr3B,KAAKk4B,UAAUxH,GACf1wB,KAAKm4B,MAAMn4B,KAAKo4B,KAAK1H,IACzB1wB,KAAKpD,IAAIy7B,iBAAiBhH,EAAS5c,EAAK/X,OAAOspB,MAAMoI,IACvD,CACF,UAEG,GAAIpuB,KAAKouB,IAAK,CACnB,IAAIsC,EAAO1wB,KAAKiU,KAAKyc,KACjB1wB,KAAKm4B,MAAMn4B,KAAKo4B,KAAKp4B,KAAKiU,KAAKyc,OAC/B,cACJ1wB,KAAKpD,IAAIy7B,iBAAiB3H,EAAM1wB,KAAKouB,IACvC,CACF,CAEAkK,gBACE,IAAK,IAAI75B,KAAQuB,KAAKw3B,WAAY,CAChC,IAEI56B,EAFA8zB,EAAO1wB,KAAKm4B,MAAMn4B,KAAKo4B,KAAK35B,EAAKkvB,OACjCjb,EAAOjU,EAAKiU,MAAQukB,EAAQx4B,EAAKkvB,OAGD,IAAhC3tB,KAAKo3B,QAAQS,gBACfj7B,EAAM,IAAIkzB,EAAkBrxB,EAAKgY,MAC7B7Z,EAAIi7B,iBACNj7B,EAAIi7B,eAAiBj7B,EAAIi7B,eAAej7B,KAAI,IAAM,SAGpDA,EAAM6B,EAAKkyB,WAGb3wB,KAAKpD,IAAI27B,eAAe37B,EAAK8zB,EAAM1wB,KAAKm4B,MAAMn4B,KAAKo4B,KAAK1lB,IAC1D,CACF,CAEA8lB,eACE,QAAIx4B,KAAK03B,aAG8B,qBAA5B13B,KAAKo3B,QAAQO,WACf33B,KAAKo3B,QAAQO,YAElB33B,KAAKw3B,WAAW3yB,QACX7E,KAAKw3B,WAAWrY,MAAK1X,GAAKA,EAAEkwB,aAGvC,CAEAc,SAAS1wB,GACP,OAAI2wB,OACKA,OAAOhI,KAAK3oB,GAAKvM,SAAS,UAE1Bm9B,OAAOC,KAAKC,SAASC,mBAAmB/wB,IAEnD,CAEAgxB,gBACE,IAAI3E,EAGFA,EADEp0B,KAAK03B,WAEL,gCAAkC13B,KAAKy4B,SAASz4B,KAAKpD,IAAIpB,YACf,kBAA5BwE,KAAKo3B,QAAQO,WACnB33B,KAAKo3B,QAAQO,WACqB,oBAA5B33B,KAAKo3B,QAAQO,WACnB33B,KAAKo3B,QAAQO,WAAW33B,KAAKiU,KAAKmd,GAAIpxB,KAAK0S,MAE3C1S,KAAKg5B,aAAe,OAEhC,IAAIC,EAAM,KACNj5B,KAAKouB,IAAIzS,SAAS,UAASsd,EAAM,QAErCj5B,KAAKouB,KAAO6K,EAAM,wBAA0B7E,EAAU,KACxD,CAEA4E,aACE,OAAIh5B,KAAKiU,KAAKmd,GACLpxB,KAAKo4B,KAAKp4B,KAAKiU,KAAKmd,IAClBpxB,KAAKiU,KAAKyc,KACZ1wB,KAAKo4B,KAAKp4B,KAAKiU,KAAKyc,MAEpB,QAEX,CAEAwI,cACE,GAAIl5B,KAAK0S,KACP1S,KAAKm5B,sBACA,GAA+B,IAA3Bn5B,KAAKw3B,WAAW3yB,OAAc,CACvC,IAAIpG,EAAOuB,KAAKw3B,WAAW,GAAG7G,WAC9BlyB,EAAKkvB,KAAO3tB,KAAKg5B,aACjBh5B,KAAKpD,IAAMmzB,EAAmBqJ,cAAc36B,EAC9C,MACEuB,KAAKpD,IAAM,IAAImzB,EAAmB,CAAEpC,KAAM3tB,KAAKg5B,eAC/Ch5B,KAAKpD,IAAIy8B,WAAW,CAClB38B,OAAQsD,KAAKiU,KAAKyc,KACd1wB,KAAKm4B,MAAMn4B,KAAKo4B,KAAKp4B,KAAKiU,KAAKyc,OAC/B,cACJ4I,UAAW,CAAE7L,KAAM,EAAGC,OAAQ,GAC9B6L,SAAU,CAAE9L,KAAM,EAAGC,OAAQ,KAQjC,OAJI1tB,KAAK43B,oBAAoB53B,KAAKg4B,oBAC9Bh4B,KAAK0S,MAAQ1S,KAAKw3B,WAAW3yB,OAAS,GAAG7E,KAAKs4B,gBAC9Ct4B,KAAKw4B,gBAAgBx4B,KAAK+4B,gBAE1B/4B,KAAK03B,WACA,CAAC13B,KAAKouB,KAEN,CAACpuB,KAAKouB,IAAKpuB,KAAKpD,IAE3B,CAEAw7B,KAAKzK,GACH,GAA0B,IAAtBA,EAAKjR,QAAQ,KAAY,OAAOiR,EACpC,GAAI,YAAY3P,KAAK2P,GAAO,OAAOA,EACnC,GAAI3tB,KAAKo3B,QAAQE,SAAU,OAAO3J,EAElC,IAAI+C,EAAO1wB,KAAKiU,KAAKmd,GAAK6F,EAAQj3B,KAAKiU,KAAKmd,IAAM,IAOlD,MALuC,kBAA5BpxB,KAAKo3B,QAAQO,aACtBjH,EAAOuG,EAAQ/G,EAAQQ,EAAM1wB,KAAKo3B,QAAQO,cAG5ChK,EAAOzQ,EAASwT,EAAM/C,GACfA,CACT,CAEAwK,MAAMC,GAIJ,MAHY,OAARlB,IACFkB,EAAOA,EAAKt4B,QAAQ,MAAO,MAEtB05B,UAAUpB,GAAMt4B,QAAQ,QAASg5B,mBAC1C,CAEAZ,UAAUE,GACR,GAAInI,EACF,OAAOA,EAAcmI,GAAM58B,WAE3B,MAAM,IAAI+C,MACR,+DAGN,CAEAk7B,WAAWhlB,GACT,OAAIzU,KAAKo3B,QAAQ1G,KACR1wB,KAAKm4B,MAAMn4B,KAAKo3B,QAAQ1G,MACtB1wB,KAAKq3B,aACPr3B,KAAKk4B,UAAUzjB,EAAK/X,OAAOspB,MAAM0K,MAEjC1wB,KAAKm4B,MAAMn4B,KAAKo4B,KAAK3jB,EAAK/X,OAAOspB,MAAM0K,MAElD,CAEAyI,iBACEn5B,KAAKouB,IAAM,GACXpuB,KAAKpD,IAAM,IAAImzB,EAAmB,CAAEpC,KAAM3tB,KAAKg5B,eAE/C,IAUIzK,EAAOrD,EAVPuC,EAAO,EACPC,EAAS,EAETgM,EAAW,cACXC,EAAU,CACZj9B,OAAQ,GACR48B,UAAW,CAAE7L,KAAM,EAAGC,OAAQ,GAC9B6L,SAAU,CAAE9L,KAAM,EAAGC,OAAQ,IAI/B1tB,KAAKmvB,UAAUnvB,KAAK0S,MAAM,CAAC3K,EAAK0M,EAAMxV,KA4BpC,GA3BAe,KAAKouB,KAAOrmB,EAER0M,GAAiB,QAATxV,IACV06B,EAAQL,UAAU7L,KAAOA,EACzBkM,EAAQL,UAAU5L,OAASA,EAAS,EAChCjZ,EAAK/X,QAAU+X,EAAK/X,OAAOoH,OAC7B61B,EAAQj9B,OAASsD,KAAKy5B,WAAWhlB,GACjCklB,EAAQJ,SAAS9L,KAAOhZ,EAAK/X,OAAOoH,MAAM2pB,KAC1CkM,EAAQJ,SAAS7L,OAASjZ,EAAK/X,OAAOoH,MAAM4pB,OAAS,EACrD1tB,KAAKpD,IAAIy8B,WAAWM,KAEpBA,EAAQj9B,OAASg9B,EACjBC,EAAQJ,SAAS9L,KAAO,EACxBkM,EAAQJ,SAAS7L,OAAS,EAC1B1tB,KAAKpD,IAAIy8B,WAAWM,KAIxBpL,EAAQxmB,EAAIqb,MAAM,OACdmL,GACFd,GAAQc,EAAM1pB,OACdqmB,EAAOnjB,EAAIvC,YAAY,MACvBkoB,EAAS3lB,EAAIlD,OAASqmB,GAEtBwC,GAAU3lB,EAAIlD,OAGZ4P,GAAiB,UAATxV,EAAkB,CAC5B,IAAIuU,EAAIiB,EAAKW,QAAU,CAAEqX,KAAM,CAAC,GAC5BmN,EACY,SAAdnlB,EAAKxV,MAAkC,WAAdwV,EAAKxV,OAAsBwV,EAAKC,MACtDklB,GAAanlB,IAASjB,EAAE0X,OAAQ1X,EAAEiZ,KAAKoN,YACtCplB,EAAK/X,QAAU+X,EAAK/X,OAAOmL,KAC7B8xB,EAAQj9B,OAASsD,KAAKy5B,WAAWhlB,GACjCklB,EAAQJ,SAAS9L,KAAOhZ,EAAK/X,OAAOmL,IAAI4lB,KACxCkM,EAAQJ,SAAS7L,OAASjZ,EAAK/X,OAAOmL,IAAI6lB,OAAS,EACnDiM,EAAQL,UAAU7L,KAAOA,EACzBkM,EAAQL,UAAU5L,OAASA,EAAS,EACpC1tB,KAAKpD,IAAIy8B,WAAWM,KAEpBA,EAAQj9B,OAASg9B,EACjBC,EAAQJ,SAAS9L,KAAO,EACxBkM,EAAQJ,SAAS7L,OAAS,EAC1BiM,EAAQL,UAAU7L,KAAOA,EACzBkM,EAAQL,UAAU5L,OAASA,EAAS,EACpC1tB,KAAKpD,IAAIy8B,WAAWM,IAG1B,IAEJ,CAEA/D,WAEE,GADA51B,KAAK+3B,kBACDvH,GAAiBF,GAAsBtwB,KAAKu3B,QAC9C,OAAOv3B,KAAKk5B,cACP,CACL,IAAIh4B,EAAS,GAIb,OAHAlB,KAAKmvB,UAAUnvB,KAAK0S,MAAMjL,IACxBvG,GAAUuG,KAEL,CAACvG,EACV,CACF,EAGFtC,EAAOC,QAAUkzB,C,oCC/UjB,IAAIA,EAAe,EAAQ,MACvB5C,EAAY,EAAQ,MAEpB3jB,GADW,EAAQ,MACX,EAAQ,OACpB,MAAMwmB,EAAS,EAAQ,MAEvB,MAAM8H,EACJ1iB,YAAYyc,EAAWzF,EAAKna,GAQ1B,IAAIvB,EAPJ0b,EAAMA,EAAI5yB,WACVwE,KAAK8zB,aAAc,EAEnB9zB,KAAK+5B,WAAalG,EAClB7zB,KAAKg6B,KAAO5L,EACZpuB,KAAKi6B,MAAQhmB,EACbjU,KAAKk6B,UAAO55B,EAGZ,IAAIyH,EAAMonB,EACVnvB,KAAKkB,OAAS,IAAI8wB,EAAOhyB,KAAK+5B,WAAYrnB,EAAM1S,KAAKi6B,OACrDj6B,KAAKkB,OAAOktB,IAAMA,EAElB,IAAI+L,EAAOn6B,KACX1E,OAAO+D,eAAeW,KAAKkB,OAAQ,OAAQ,CACzCL,MACE,OAAOs5B,EAAKznB,IACd,IAGF,IAAI9V,EAAM,IAAIm1B,EAAahqB,EAAK2K,EAAM1S,KAAKi6B,MAAO7L,GAClD,GAAIxxB,EAAI26B,QAAS,CACf,IAAK6C,EAAcC,GAAgBz9B,EAAIg5B,WACnCwE,IACFp6B,KAAKkB,OAAOktB,IAAMgM,GAEhBC,IACFr6B,KAAKkB,OAAOtE,IAAMy9B,EAEtB,CACF,CAEYlG,IAAPv4B,OAAOu4B,eACV,MAAO,cACT,CAEIN,gBACF,OAAO7zB,KAAKkB,OAAO2yB,SACrB,CAEI5f,WACF,OAAOjU,KAAKkB,OAAO+S,IACrB,CAEIma,UACF,OAAOpuB,KAAKkB,OAAOktB,GACrB,CAEIgG,cACF,OAAOp0B,KAAKkB,OAAOktB,GACrB,CAEIxxB,UACF,OAAOoD,KAAKkB,OAAOtE,GACrB,CAEI8V,WACF,GAAI1S,KAAKs6B,MACP,OAAOt6B,KAAKs6B,MAGd,IAAI5nB,EACA0D,EAAS5K,EAEb,IACEkH,EAAO0D,EAAOpW,KAAKg6B,KAAMh6B,KAAKi6B,MAGhC,CAFE,MAAO3jB,GACPtW,KAAKsW,MAAQA,CACf,CAEA,GAAItW,KAAKsW,MACP,MAAMtW,KAAKsW,MAGX,OADAtW,KAAKs6B,MAAQ5nB,EACNA,CAEX,CAEI4hB,eACF,MAAO,EACT,CAEAC,WACE,MAAO,EACT,CAEA/4B,WACE,OAAOwE,KAAKg6B,IACd,CAEA5G,KAAKoB,EAAaC,GAWhB,OAAOz0B,KAAK00B,QAAQtB,KAAKoB,EAAaC,EACxC,CAEAE,MAAMF,GACJ,OAAOz0B,KAAK00B,QAAQC,MAAMF,EAC5B,CAEAG,QAAQC,GACN,OAAO70B,KAAK00B,QAAQtB,KAAKyB,EAAWA,EACtC,CAEAH,QACE,OAAI10B,KAAKsW,MAAcwe,QAAQC,OAAO/0B,KAAKsW,OACpCwe,QAAQ5E,QAAQlwB,KAAKkB,OAC9B,CAEAmzB,OACE,GAAIr0B,KAAKsW,MAAO,MAAMtW,KAAKsW,MAC3B,OAAOtW,KAAKkB,MACd,EAGFtC,EAAOC,QAAUi7B,EACjBA,EAAan2B,QAAUm2B,C,oCCpIvB,IAAI,QAAE/P,EAAO,GAAEC,GAAO,EAAQ,MAC1BuD,EAAiB,EAAQ,MACzBgN,EAAc,EAAQ,MACtBpL,EAAY,EAAQ,MAExB,SAAS9X,EAAU8D,EAAK/F,GACtB,IAAIolB,EAAS,IAAIrf,EAAI/D,YAErB,IAAK,IAAI3P,KAAK0T,EAAK,CACjB,IAAK7f,OAAOC,UAAUsC,eAAepC,KAAK0f,EAAK1T,GAE7C,SAEF,GAAU,eAANA,EAAoB,SACxB,IAAIvM,EAAQigB,EAAI1T,GACZxI,SAAc/D,EAER,WAANuM,GAA2B,WAATxI,EAChBmW,IAAQolB,EAAO/yB,GAAK2N,GACT,WAAN3N,EACT+yB,EAAO/yB,GAAKvM,EACHgB,MAAMC,QAAQjB,GACvBs/B,EAAO/yB,GAAKvM,EAAM0B,KAAI69B,GAAKpjB,EAAUojB,EAAGD,MAE3B,WAATv7B,GAA+B,OAAV/D,IAAgBA,EAAQmc,EAAUnc,IAC3Ds/B,EAAO/yB,GAAKvM,EAEhB,CAEA,OAAOs/B,CACT,CAEA,MAAM1iB,EACJV,YAAYsS,EAAW,CAAC,GACtB1pB,KAAKysB,KAAO,CAAC,EACbzsB,KAAK+pB,IAAW,EAChB/pB,KAAKgqB,IAAM,EAEX,IAAK,IAAIzlB,KAAQmlB,EACf,GAAa,UAATnlB,EAAkB,CACpBvE,KAAK0U,MAAQ,GACb,IAAK,IAAID,KAAQiV,EAASnlB,GACE,oBAAfkQ,EAAKnY,MACd0D,KAAKye,OAAOhK,EAAKnY,SAEjB0D,KAAKye,OAAOhK,EAGlB,MACEzU,KAAKuE,GAAQmlB,EAASnlB,EAG5B,CAEA+R,MAAMkX,EAASvZ,EAAO,CAAC,GACrB,GAAIjU,KAAKtD,OAAQ,CACf,IAAI,MAAEoH,EAAK,IAAE+D,GAAQ7H,KAAK06B,QAAQzmB,GAClC,OAAOjU,KAAKtD,OAAOspB,MAAM1P,MACvBkX,EACA,CAAEC,KAAM3pB,EAAM2pB,KAAMC,OAAQ5pB,EAAM4pB,QAClC,CAAED,KAAM5lB,EAAI4lB,KAAMC,OAAQ7lB,EAAI6lB,QAC9BzZ,EAEJ,CACA,OAAO,IAAIsZ,EAAeC,EAC5B,CAEAmN,KAAKz5B,EAAQuV,EAAMxC,GACjB,IAAIlQ,EAAO,CAAE0Q,KAAMzU,MACnB,IAAK,IAAIyH,KAAKwM,EAAMlQ,EAAK0D,GAAKwM,EAAKxM,GACnC,OAAOvG,EAAOy5B,KAAKlkB,EAAM1S,EAC3B,CAEA62B,SAKE,OAJI56B,KAAKoV,QACPpV,KAAKoV,OAAOyW,YAAY7rB,MAE1BA,KAAKoV,YAAS9U,EACPN,IACT,CAEAxE,SAASm6B,EAAcxG,GACjBwG,EAAYxG,YAAWwG,EAAcA,EAAYxG,WACrD,IAAIjuB,EAAS,GAIb,OAHAy0B,EAAY31B,MAAMyH,IAChBvG,GAAUuG,KAELvG,CACT,CAEAiS,OAAO0nB,EAAY,CAAC,GAClB,IAAK,IAAIt2B,KAAQs2B,EACf76B,KAAKuE,GAAQs2B,EAAUt2B,GAEzB,OAAOvE,IACT,CAEA1D,MAAMu+B,EAAY,CAAC,GACjB,IAAIL,EAASnjB,EAAUrX,MACvB,IAAK,IAAIuE,KAAQs2B,EACfL,EAAOj2B,GAAQs2B,EAAUt2B,GAE3B,OAAOi2B,CACT,CAEAM,YAAYD,EAAY,CAAC,GACvB,IAAIL,EAASx6B,KAAK1D,MAAMu+B,GAExB,OADA76B,KAAKoV,OAAOoW,aAAaxrB,KAAMw6B,GACxBA,CACT,CAEAO,WAAWF,EAAY,CAAC,GACtB,IAAIL,EAASx6B,KAAK1D,MAAMu+B,GAExB,OADA76B,KAAKoV,OAAOwW,YAAY5rB,KAAMw6B,GACvBA,CACT,CAEAQ,eAAetmB,GACb,GAAI1U,KAAKoV,OAAQ,CACf,IAAI6lB,EAAWj7B,KACXk7B,GAAY,EAChB,IAAK,IAAIzmB,KAAQC,EACXD,IAASzU,KACXk7B,GAAY,EACHA,GACTl7B,KAAKoV,OAAOwW,YAAYqP,EAAUxmB,GAClCwmB,EAAWxmB,GAEXzU,KAAKoV,OAAOoW,aAAayP,EAAUxmB,GAIlCymB,GACHl7B,KAAK46B,QAET,CAEA,OAAO56B,IACT,CAEAtB,OACE,IAAKsB,KAAKoV,OAAQ,OAClB,IAAIvK,EAAQ7K,KAAKoV,OAAOvK,MAAM7K,MAC9B,OAAOA,KAAKoV,OAAOV,MAAM7J,EAAQ,EACnC,CAEApM,OACE,IAAKuB,KAAKoV,OAAQ,OAClB,IAAIvK,EAAQ7K,KAAKoV,OAAOvK,MAAM7K,MAC9B,OAAOA,KAAKoV,OAAOV,MAAM7J,EAAQ,EACnC,CAEA6hB,OAAOhB,GAEL,OADA1rB,KAAKoV,OAAOoW,aAAaxrB,KAAM0rB,GACxB1rB,IACT,CAEAm7B,MAAMzP,GAEJ,OADA1rB,KAAKoV,OAAOwW,YAAY5rB,KAAM0rB,GACvB1rB,IACT,CAEA0S,OACE,IAAIxR,EAASlB,KACb,MAAOkB,EAAOkU,QAAiC,aAAvBlU,EAAOkU,OAAOnW,KACpCiC,EAASA,EAAOkU,OAElB,OAAOlU,CACT,CAEAk6B,IAAIhgB,EAAMigB,GACR,IAAItzB,EAAM,IAAIwyB,EACd,OAAOxyB,EAAIqzB,IAAIp7B,KAAMob,EAAMigB,EAC7B,CAEA/P,UAAUC,UACDvrB,KAAKysB,KAAKC,cACV1sB,KAAKysB,KAAK0O,MACZ5P,UAAoBvrB,KAAKysB,KAAK6O,OACrC,CAEA1J,OAAOj0B,EAAG+xB,GACR,IAAI6L,EAAQ,CAAC,EACTC,EAAuB,MAAV9L,EACjBA,EAASA,GAAU,IAAI7tB,IACvB,IAAI45B,EAAkB,EAEtB,IAAK,IAAIl3B,KAAQvE,KAAM,CACrB,IAAK1E,OAAOC,UAAUsC,eAAepC,KAAKuE,KAAMuE,GAE9C,SAEF,GAAa,WAATA,GAA8B,eAATA,EAAuB,SAChD,IAAIrJ,EAAQ8E,KAAKuE,GAEjB,GAAIrI,MAAMC,QAAQjB,GAChBqgC,EAAMh3B,GAAQrJ,EAAM0B,KAAI6K,GACL,kBAANA,GAAkBA,EAAEmqB,OACtBnqB,EAAEmqB,OAAO,KAAMlC,GAEfjoB,SAGN,GAAqB,kBAAVvM,GAAsBA,EAAM02B,OAC5C2J,EAAMh3B,GAAQrJ,EAAM02B,OAAO,KAAMlC,QAC5B,GAAa,WAATnrB,EAAmB,CAC5B,IAAIsrB,EAAUH,EAAO7uB,IAAI3F,EAAM8qB,OAChB,MAAX6J,IACFA,EAAU4L,EACV/L,EAAO3X,IAAI7c,EAAM8qB,MAAOyV,GACxBA,KAEFF,EAAMh3B,GAAQ,CACZsrB,UACA/rB,MAAO5I,EAAM4I,MACb+D,IAAK3M,EAAM2M,IAEf,MACE0zB,EAAMh3B,GAAQrJ,CAElB,CAMA,OAJIsgC,IACFD,EAAM7L,OAAS,IAAIA,EAAOnyB,QAAQX,KAAIopB,GAASA,EAAM4L,YAGhD2J,CACT,CAEAG,eAAe7wB,GACb,IAAIjL,EAASI,KAAKxE,WACdkyB,EAAS1tB,KAAKtD,OAAOoH,MAAM4pB,OAC3BD,EAAOztB,KAAKtD,OAAOoH,MAAM2pB,KAE7B,IAAK,IAAIhmB,EAAI,EAAGA,EAAIoD,EAAOpD,IACP,OAAd7H,EAAO6H,IACTimB,EAAS,EACTD,GAAQ,GAERC,GAAU,EAId,MAAO,CAAED,OAAMC,SACjB,CAEAiO,WAAW1nB,GACT,IAAI1O,EAAMvF,KAAKtD,OAAOoH,MACtB,GAAImQ,EAAKpJ,MACPtF,EAAMvF,KAAK07B,eAAeznB,EAAKpJ,YAC1B,GAAIoJ,EAAK2nB,KAAM,CACpB,IAAI/wB,EAAQ7K,KAAKxE,WAAWkhB,QAAQzI,EAAK2nB,OAC1B,IAAX/wB,IAActF,EAAMvF,KAAK07B,eAAe7wB,GAC9C,CACA,OAAOtF,CACT,CAEAm1B,QAAQzmB,GACN,IAAInQ,EAAQ,CACV2pB,KAAMztB,KAAKtD,OAAOoH,MAAM2pB,KACxBC,OAAQ1tB,KAAKtD,OAAOoH,MAAM4pB,QAExB7lB,EAAM7H,KAAKtD,OAAOmL,IAClB,CACE4lB,KAAMztB,KAAKtD,OAAOmL,IAAI4lB,KACtBC,OAAQ1tB,KAAKtD,OAAOmL,IAAI6lB,OAAS,GAEnC,CACED,KAAM3pB,EAAM2pB,KACZC,OAAQ5pB,EAAM4pB,OAAS,GAG7B,GAAIzZ,EAAK2nB,KAAM,CACb,IAAI/wB,EAAQ7K,KAAKxE,WAAWkhB,QAAQzI,EAAK2nB,OAC1B,IAAX/wB,IACF/G,EAAQ9D,KAAK07B,eAAe7wB,GAC5BhD,EAAM7H,KAAK07B,eAAe7wB,EAAQoJ,EAAK2nB,KAAK/2B,QAEhD,MACMoP,EAAKnQ,MACPA,EAAQ,CACN2pB,KAAMxZ,EAAKnQ,MAAM2pB,KACjBC,OAAQzZ,EAAKnQ,MAAM4pB,QAEZzZ,EAAKpJ,QACd/G,EAAQ9D,KAAK07B,eAAeznB,EAAKpJ,QAG/BoJ,EAAKpM,IACPA,EAAM,CACJ4lB,KAAMxZ,EAAKpM,IAAI4lB,KACfC,OAAQzZ,EAAKpM,IAAI6lB,QAEVzZ,EAAKxR,SACdoF,EAAM7H,KAAK07B,eAAeznB,EAAKxR,UACtBwR,EAAKpJ,QACdhD,EAAM7H,KAAK07B,eAAeznB,EAAKpJ,MAAQ,IAW3C,OANEhD,EAAI4lB,KAAO3pB,EAAM2pB,MAChB5lB,EAAI4lB,OAAS3pB,EAAM2pB,MAAQ5lB,EAAI6lB,QAAU5pB,EAAM4pB,UAEhD7lB,EAAM,CAAE4lB,KAAM3pB,EAAM2pB,KAAMC,OAAQ5pB,EAAM4pB,OAAS,IAG5C,CAAE5pB,QAAO+D,MAClB,CAEA8kB,oBACE,MAAO,CACL5U,IAAItD,EAAM2G,EAAMlgB,GACd,OAAIuZ,EAAK2G,KAAUlgB,IACnBuZ,EAAK2G,GAAQlgB,EAEF,SAATkgB,GACS,UAATA,GACS,SAATA,GACS,WAATA,GACS,cAATA,GAES,SAATA,GAEA3G,EAAK0W,cAX0B,CAcnC,EAEAtqB,IAAI4T,EAAM2G,GACR,MAAa,YAATA,EACK3G,EACW,SAAT2G,EACF,IAAM3G,EAAK/B,OAAOoa,UAElBrY,EAAK2G,EAEhB,EAEJ,CAEA0R,UAIE,OAHK9sB,KAAK67B,aACR77B,KAAK67B,WAAa,IAAIC,MAAM97B,KAAMA,KAAK2sB,sBAElC3sB,KAAK67B,UACd,CAEAnR,WAAWpU,GAET,GADAA,EAAMylB,YAAc/7B,KAChBsW,EAAMvT,OAAS/C,KAAKtD,QAAU,aAAashB,KAAK1H,EAAMvT,OAAQ,CAChE,IAAIsQ,EAAIrT,KAAKtD,OACb4Z,EAAMvT,MAAQuT,EAAMvT,MAAMjD,QACxB,aACA,KAAKuT,EAAE2S,MAAM0K,QAAQrd,EAAEvP,MAAM2pB,QAAQpa,EAAEvP,MAAM4pB,WAEjD,CACA,OAAOpX,CACT,CAEA6U,YACE,GAAInrB,KAAK+pB,GAAU,CACjB/pB,KAAK+pB,IAAW,EAChB,IAAIrrB,EAAOsB,KACX,MAAQtB,EAAOA,EAAK0W,OAClB1W,EAAKqrB,IAAW,CAEpB,CACF,CAEIH,cACF,OAAO5pB,IACT,EAGFpB,EAAOC,QAAUiZ,EACjBA,EAAKnU,QAAUmU,C,oCCxXf,IAAI0R,EAAY,EAAQ,MACpBroB,EAAS,EAAQ,MACjBouB,EAAQ,EAAQ,MAEpB,SAAS/jB,EAAM4iB,EAAKna,GAClB,IAAI+R,EAAQ,IAAIuJ,EAAMnB,EAAKna,GACvBmC,EAAS,IAAIjV,EAAO6kB,GACxB,IACE5P,EAAO5K,OAuBT,CAtBE,MAAOif,GAqBP,MAAMA,CACR,CAEA,OAAOrU,EAAO1D,IAChB,CAEA9T,EAAOC,QAAU2M,EACjBA,EAAM7H,QAAU6H,EAEhBge,EAAUyD,cAAczhB,E,oCCvCxB,IAAIye,EAAc,EAAQ,MACtBxmB,EAAY,EAAQ,MACpBjE,EAAU,EAAQ,MAClBiqB,EAAS,EAAQ,MACjB9pB,EAAO,EAAQ,MACfmqB,EAAO,EAAQ,MAEnB,MAAMkS,EAAwB,CAC5BC,OAAO,EACPnF,OAAO,GAGT,SAASoF,EAAqBC,GAC5B,IAAK,IAAI10B,EAAI00B,EAAOt3B,OAAS,EAAG4C,GAAK,EAAGA,IAAK,CAC3C,IAAI20B,EAAQD,EAAO10B,GACflC,EAAM62B,EAAM,IAAMA,EAAM,GAC5B,GAAI72B,EAAK,OAAOA,CAClB,CACF,CAEA,MAAMpE,EACJiW,YAAY4O,GACVhmB,KAAKgmB,MAAQA,EAEbhmB,KAAK0S,KAAO,IAAI/S,EAChBK,KAAKgc,QAAUhc,KAAK0S,KACpB1S,KAAK+2B,OAAS,GACd/2B,KAAK65B,WAAY,EACjB75B,KAAKq8B,gBAAiB,EAEtBr8B,KAAKs8B,kBACLt8B,KAAK0S,KAAKhW,OAAS,CAAEspB,QAAOliB,MAAO,CAAEgD,OAAQ,EAAG2mB,KAAM,EAAGC,OAAQ,GACnE,CAEA4O,kBACEt8B,KAAKyD,UAAYA,EAAUzD,KAAKgmB,MAClC,CAEAxa,QACE,IAAI4wB,EACJ,OAAQp8B,KAAKyD,UAAU84B,YAGrB,OAFAH,EAAQp8B,KAAKyD,UAAU+4B,YAEfJ,EAAM,IACZ,IAAK,QACHp8B,KAAK+2B,QAAUqF,EAAM,GACrB,MAEF,IAAK,IACHp8B,KAAKy8B,cAAcL,GACnB,MAEF,IAAK,IACHp8B,KAAK6H,IAAIu0B,GACT,MAEF,IAAK,UACHp8B,KAAKqyB,QAAQ+J,GACb,MAEF,IAAK,UACHp8B,KAAKmyB,OAAOiK,GACZ,MAEF,IAAK,IACHp8B,KAAK08B,UAAUN,GACf,MAEF,QACEp8B,KAAK+sB,MAAMqP,GACX,MAGNp8B,KAAK28B,SACP,CAEAtK,QAAQ+J,GACN,IAAI3nB,EAAO,IAAIjV,EACfQ,KAAK48B,KAAKnoB,EAAM2nB,EAAM,IACtB3nB,EAAK/X,OAAOmL,IAAM7H,KAAK68B,YAAYT,EAAM,IAAMA,EAAM,IAErD,IAAI3lB,EAAO2lB,EAAM,GAAGp0B,MAAM,GAAI,GAC9B,GAAI,QAAQgW,KAAKvH,GACfhC,EAAKgC,KAAO,GACZhC,EAAKgY,KAAKqQ,KAAOrmB,EACjBhC,EAAKgY,KAAKsQ,MAAQ,OACb,CACL,IAAI3Z,EAAQ3M,EAAK2M,MAAM,wBACvB3O,EAAKgC,KAAO2M,EAAM,GAClB3O,EAAKgY,KAAKqQ,KAAO1Z,EAAM,GACvB3O,EAAKgY,KAAKsQ,MAAQ3Z,EAAM,EAC1B,CACF,CAEAsZ,UAAUN,GACR,IAAI3nB,EAAO,IAAIqV,EACf9pB,KAAK48B,KAAKnoB,EAAM2nB,EAAM,IACtB3nB,EAAKqW,SAAW,GAChBrW,EAAKgY,KAAK6O,QAAU,GACpBt7B,KAAKgc,QAAUvH,CACjB,CAEAsY,MAAMjpB,GACJ,IAAI+D,GAAM,EACN5I,EAAO,KACP+9B,GAAQ,EACRC,EAAU,KACVC,EAAW,GACXb,EAAiBv4B,EAAM,GAAG8oB,WAAW,MAErCuP,EAAS,GACTC,EAAQt4B,EACZ,MAAOs4B,EAAO,CAIZ,GAHAn9B,EAAOm9B,EAAM,GACbD,EAAOl3B,KAAKm3B,GAEC,MAATn9B,GAAyB,MAATA,EACbg+B,IAASA,EAAUb,GACxBc,EAASj4B,KAAc,MAAThG,EAAe,IAAM,UAC9B,GAAIo9B,GAAkBW,GAAkB,MAAT/9B,EAC/Bg+B,IAASA,EAAUb,GACxBc,EAASj4B,KAAK,UACT,GAAwB,IAApBi4B,EAASr4B,OAAc,CAChC,GAAa,MAAT5F,EAAc,CAChB,GAAI+9B,EAEF,YADAh9B,KAAKisB,KAAKkQ,EAAQE,GAGlB,KAEJ,CAAO,GAAa,MAATp9B,EAET,YADAe,KAAKoyB,KAAK+J,GAEL,GAAa,MAATl9B,EAAc,CACvBe,KAAKyD,UAAU05B,KAAKhB,EAAOp3B,OAC3B8C,GAAM,EACN,KACF,CAAoB,MAAT5I,IACT+9B,GAAQ,EAEZ,MAAW/9B,IAASi+B,EAASA,EAASr4B,OAAS,KAC7Cq4B,EAASn4B,MACe,IAApBm4B,EAASr4B,SAAco4B,EAAU,OAGvCb,EAAQp8B,KAAKyD,UAAU+4B,WACzB,CAKA,GAHIx8B,KAAKyD,UAAU84B,cAAa10B,GAAM,GAClCq1B,EAASr4B,OAAS,GAAG7E,KAAKo9B,gBAAgBH,GAE1Cp1B,GAAOm1B,EAAO,CAChB,IAAKX,EACH,MAAOF,EAAOt3B,OAAQ,CAEpB,GADAu3B,EAAQD,EAAOA,EAAOt3B,OAAS,GAAG,GACpB,UAAVu3B,GAA+B,YAAVA,EAAqB,MAC9Cp8B,KAAKyD,UAAU05B,KAAKhB,EAAOp3B,MAC7B,CAEF/E,KAAKisB,KAAKkQ,EAAQE,EACpB,MACEr8B,KAAKq9B,YAAYlB,EAErB,CAEA/J,KAAK+J,GACHA,EAAOp3B,MAEP,IAAI0P,EAAO,IAAIqV,EACf9pB,KAAK48B,KAAKnoB,EAAM0nB,EAAO,GAAG,IAE1B1nB,EAAKgY,KAAK6O,QAAUt7B,KAAKs9B,yBAAyBnB,GAClDn8B,KAAKo7B,IAAI3mB,EAAM,WAAY0nB,GAC3Bn8B,KAAKgc,QAAUvH,CACjB,CAEAwX,KAAKkQ,EAAQE,GACX,IAAI5nB,EAAO,IAAIwV,EACfjqB,KAAK48B,KAAKnoB,EAAM0nB,EAAO,GAAG,IAE1B,IA2BIC,EA3BAlR,EAAOiR,EAAOA,EAAOt3B,OAAS,GAClB,MAAZqmB,EAAK,KACPlrB,KAAK65B,WAAY,EACjBsC,EAAOp3B,OAGT0P,EAAK/X,OAAOmL,IAAM7H,KAAK68B,YACrB3R,EAAK,IAAMA,EAAK,IAAMgR,EAAqBC,IAG7C,MAAwB,SAAjBA,EAAO,GAAG,GACO,IAAlBA,EAAOt3B,QAAc7E,KAAKq9B,YAAYlB,GAC1C1nB,EAAKgY,KAAKC,QAAUyP,EAAOl0B,QAAQ,GAErCwM,EAAK/X,OAAOoH,MAAQ9D,KAAK68B,YAAYV,EAAO,GAAG,IAE/C1nB,EAAK2G,KAAO,GACZ,MAAO+gB,EAAOt3B,OAAQ,CACpB,IAAI5F,EAAOk9B,EAAO,GAAG,GACrB,GAAa,MAATl9B,GAAyB,UAATA,GAA6B,YAATA,EACtC,MAEFwV,EAAK2G,MAAQ+gB,EAAOl0B,QAAQ,EAC9B,CAEAwM,EAAKgY,KAAK6O,QAAU,GAGpB,MAAOa,EAAOt3B,OAAQ,CAGpB,GAFAu3B,EAAQD,EAAOl0B,QAEE,MAAbm0B,EAAM,GAAY,CACpB3nB,EAAKgY,KAAK6O,SAAWc,EAAM,GAC3B,KACF,CACmB,SAAbA,EAAM,IAAiB,KAAKpe,KAAKoe,EAAM,KACzCp8B,KAAKq9B,YAAY,CAACjB,IAEpB3nB,EAAKgY,KAAK6O,SAAWc,EAAM,EAE/B,CAEqB,MAAjB3nB,EAAK2G,KAAK,IAA+B,MAAjB3G,EAAK2G,KAAK,KACpC3G,EAAKgY,KAAKC,QAAUjY,EAAK2G,KAAK,GAC9B3G,EAAK2G,KAAO3G,EAAK2G,KAAKpT,MAAM,IAG9B,IACItJ,EADA6+B,EAAc,GAElB,MAAOpB,EAAOt3B,OAAQ,CAEpB,GADAnG,EAAOy9B,EAAO,GAAG,GACJ,UAATz9B,GAA6B,YAATA,EAAoB,MAC5C6+B,EAAYt4B,KAAKk3B,EAAOl0B,QAC1B,CAEAjI,KAAKw9B,wBAAwBrB,GAE7B,IAAK,IAAI10B,EAAI00B,EAAOt3B,OAAS,EAAG4C,GAAK,EAAGA,IAAK,CAE3C,GADA20B,EAAQD,EAAO10B,GACgB,eAA3B20B,EAAM,GAAG13B,cAAgC,CAC3C+P,EAAKgpB,WAAY,EACjB,IAAI79B,EAASI,KAAK09B,WAAWvB,EAAQ10B,GACrC7H,EAASI,KAAK29B,cAAcxB,GAAUv8B,EACvB,gBAAXA,IAA0B6U,EAAKgY,KAAKgR,UAAY79B,GACpD,KACF,CAAO,GAA+B,cAA3Bw8B,EAAM,GAAG13B,cAA+B,CACjD,IAAIk5B,EAAQzB,EAAOn0B,MAAM,GACrBD,EAAM,GACV,IAAK,IAAI0yB,EAAIhzB,EAAGgzB,EAAI,EAAGA,IAAK,CAC1B,IAAIx7B,EAAO2+B,EAAMnD,GAAG,GACpB,GAAgC,IAA5B1yB,EAAImT,OAAOwB,QAAQ,MAAuB,UAATzd,EACnC,MAEF8I,EAAM61B,EAAM74B,MAAM,GAAKgD,CACzB,CACgC,IAA5BA,EAAImT,OAAOwB,QAAQ,OACrBjI,EAAKgpB,WAAY,EACjBhpB,EAAKgY,KAAKgR,UAAY11B,EACtBo0B,EAASyB,EAEb,CAEA,GAAiB,UAAbxB,EAAM,IAA+B,YAAbA,EAAM,GAChC,KAEJ,CAEA,IAAIyB,EAAU1B,EAAOhd,MAAK1X,GAAc,UAATA,EAAE,IAA2B,YAATA,EAAE,KAEjDo2B,IACFppB,EAAKgY,KAAK6O,SAAWiC,EAAY3gC,KAAI6K,GAAKA,EAAE,KAAI8M,KAAK,IACrDgpB,EAAc,IAEhBv9B,KAAKo7B,IAAI3mB,EAAM,QAAS8oB,EAAY5gC,OAAOw/B,GAASE,GAEhD5nB,EAAKvZ,MAAMygB,SAAS,OAAS0gB,GAC/Br8B,KAAK89B,qBAAqB3B,EAE9B,CAEAhK,OAAOiK,GACL,IAOIn9B,EACAR,EACAwJ,EATAwM,EAAO,IAAIgV,EACfhV,EAAKlQ,KAAO63B,EAAM,GAAGp0B,MAAM,GACT,KAAdyM,EAAKlQ,MACPvE,KAAK+9B,cAActpB,EAAM2nB,GAE3Bp8B,KAAK48B,KAAKnoB,EAAM2nB,EAAM,IAKtB,IAAIlR,GAAO,EACP8S,GAAO,EACPC,EAAS,GACTf,EAAW,GAEf,OAAQl9B,KAAKyD,UAAU84B,YAAa,CAYlC,GAXAH,EAAQp8B,KAAKyD,UAAU+4B,YACvBv9B,EAAOm9B,EAAM,GAEA,MAATn9B,GAAyB,MAATA,EAClBi+B,EAASj4B,KAAc,MAAThG,EAAe,IAAM,KACjB,MAATA,GAAgBi+B,EAASr4B,OAAS,EAC3Cq4B,EAASj4B,KAAK,KACLhG,IAASi+B,EAASA,EAASr4B,OAAS,IAC7Cq4B,EAASn4B,MAGa,IAApBm4B,EAASr4B,OAAc,CACzB,GAAa,MAAT5F,EAAc,CAChBwV,EAAK/X,OAAOmL,IAAM7H,KAAK68B,YAAYT,EAAM,IACzCp8B,KAAK65B,WAAY,EACjB,KACF,CAAO,GAAa,MAAT56B,EAAc,CACvB++B,GAAO,EACP,KACF,CAAO,GAAa,MAAT/+B,EAAc,CACvB,GAAIg/B,EAAOp5B,OAAS,EAAG,CACrBoD,EAAQg2B,EAAOp5B,OAAS,EACxBpG,EAAOw/B,EAAOh2B,GACd,MAAOxJ,GAAoB,UAAZA,EAAK,GAClBA,EAAOw/B,IAASh2B,GAEdxJ,IACFgW,EAAK/X,OAAOmL,IAAM7H,KAAK68B,YAAYp+B,EAAK,IAAMA,EAAK,IAEvD,CACAuB,KAAK6H,IAAIu0B,GACT,KACF,CACE6B,EAAOh5B,KAAKm3B,EAEhB,MACE6B,EAAOh5B,KAAKm3B,GAGd,GAAIp8B,KAAKyD,UAAU84B,YAAa,CAC9BrR,GAAO,EACP,KACF,CACF,CAEAzW,EAAKgY,KAAK6O,QAAUt7B,KAAKs9B,yBAAyBW,GAC9CA,EAAOp5B,QACT4P,EAAKgY,KAAKyR,UAAYl+B,KAAKm+B,2BAA2BF,GACtDj+B,KAAKo7B,IAAI3mB,EAAM,SAAUwpB,GACrB/S,IACFkR,EAAQ6B,EAAOA,EAAOp5B,OAAS,GAC/B4P,EAAK/X,OAAOmL,IAAM7H,KAAK68B,YAAYT,EAAM,IAAMA,EAAM,IACrDp8B,KAAK+2B,OAAStiB,EAAKgY,KAAK6O,QACxB7mB,EAAKgY,KAAK6O,QAAU,MAGtB7mB,EAAKgY,KAAKyR,UAAY,GACtBzpB,EAAKwpB,OAAS,IAGZD,IACFvpB,EAAKC,MAAQ,GACb1U,KAAKgc,QAAUvH,EAEnB,CAEA5M,IAAIu0B,GACEp8B,KAAKgc,QAAQtH,OAAS1U,KAAKgc,QAAQtH,MAAM7P,SAC3C7E,KAAKgc,QAAQyQ,KAAKoN,UAAY75B,KAAK65B,WAErC75B,KAAK65B,WAAY,EAEjB75B,KAAKgc,QAAQyQ,KAAK0O,OAASn7B,KAAKgc,QAAQyQ,KAAK0O,OAAS,IAAMn7B,KAAK+2B,OACjE/2B,KAAK+2B,OAAS,GAEV/2B,KAAKgc,QAAQ5G,QACfpV,KAAKgc,QAAQtf,OAAOmL,IAAM7H,KAAK68B,YAAYT,EAAM,IACjDp8B,KAAKgc,QAAUhc,KAAKgc,QAAQ5G,QAE5BpV,KAAKo+B,gBAAgBhC,EAEzB,CAEAO,UACM38B,KAAKgc,QAAQ5G,QAAQpV,KAAKq+B,gBAC1Br+B,KAAKgc,QAAQtH,OAAS1U,KAAKgc,QAAQtH,MAAM7P,SAC3C7E,KAAKgc,QAAQyQ,KAAKoN,UAAY75B,KAAK65B,WAErC75B,KAAKgc,QAAQyQ,KAAK0O,OAASn7B,KAAKgc,QAAQyQ,KAAK0O,OAAS,IAAMn7B,KAAK+2B,MACnE,CAEA0F,cAAcL,GAEZ,GADAp8B,KAAK+2B,QAAUqF,EAAM,GACjBp8B,KAAKgc,QAAQtH,MAAO,CACtB,IAAIjW,EAAOuB,KAAKgc,QAAQtH,MAAM1U,KAAKgc,QAAQtH,MAAM7P,OAAS,GACtDpG,GAAsB,SAAdA,EAAKQ,OAAoBR,EAAKguB,KAAK6R,eAC7C7/B,EAAKguB,KAAK6R,aAAet+B,KAAK+2B,OAC9B/2B,KAAK+2B,OAAS,GAElB,CACF,CAIA8F,YAAY/1B,GACV,IAAIvB,EAAMvF,KAAKgmB,MAAM6K,WAAW/pB,GAChC,MAAO,CACLA,SACA2mB,KAAMloB,EAAIkoB,KACVC,OAAQnoB,EAAI2rB,IAEhB,CAEA0L,KAAKnoB,EAAM3N,GACT9G,KAAKgc,QAAQ/W,KAAKwP,GAClBA,EAAK/X,OAAS,CACZoH,MAAO9D,KAAK68B,YAAY/1B,GACxBkf,MAAOhmB,KAAKgmB,OAEdvR,EAAKgY,KAAKC,OAAS1sB,KAAK+2B,OACxB/2B,KAAK+2B,OAAS,GACI,YAAdtiB,EAAKxV,OAAoBe,KAAK65B,WAAY,EAChD,CAEAuB,IAAI3mB,EAAM2G,EAAM+gB,EAAQE,GACtB,IAAID,EAAOn9B,EAIPP,EAAMD,EAHNoG,EAASs3B,EAAOt3B,OAChB3J,EAAQ,GACRqjC,GAAQ,EAGZ,IAAK,IAAI92B,EAAI,EAAGA,EAAI5C,EAAQ4C,GAAK,EAC/B20B,EAAQD,EAAO10B,GACfxI,EAAOm9B,EAAM,GACA,UAATn9B,GAAoBwI,IAAM5C,EAAS,GAAMw3B,EAEzB,YAATp9B,GACTR,EAAO09B,EAAO10B,EAAI,GAAK00B,EAAO10B,EAAI,GAAG,GAAK,QAC1C/I,EAAOy9B,EAAO10B,EAAI,GAAK00B,EAAO10B,EAAI,GAAG,GAAK,QACrCu0B,EAAsBv9B,IAAUu9B,EAAsBt9B,IACjC,MAApBxD,EAAM8M,OAAO,GAMjBu2B,GAAQ,EAHNrjC,GAASkhC,EAAM,IAMnBlhC,GAASkhC,EAAM,GAdfmC,GAAQ,EAiBZ,IAAKA,EAAO,CACV,IAAInD,EAAMe,EAAO39B,QAAO,CAACH,EAAKoJ,IAAMpJ,EAAMoJ,EAAE,IAAI,IAChDgN,EAAKgY,KAAKrR,GAAQ,CAAElgB,QAAOkgC,MAC7B,CACA3mB,EAAK2G,GAAQlgB,CACf,CAEAoiC,yBAAyBnB,GACvB,IAAIqC,EACAzH,EAAS,GACb,MAAOoF,EAAOt3B,OAAQ,CAEpB,GADA25B,EAAgBrC,EAAOA,EAAOt3B,OAAS,GAAG,GACpB,UAAlB25B,GAA+C,YAAlBA,EAA6B,MAC9DzH,EAASoF,EAAOp3B,MAAM,GAAKgyB,CAC7B,CACA,OAAOA,CACT,CAEAoH,2BAA2BhC,GACzB,IAAIz9B,EACAq4B,EAAS,GACb,MAAOoF,EAAOt3B,OAAQ,CAEpB,GADAnG,EAAOy9B,EAAO,GAAG,GACJ,UAATz9B,GAA6B,YAATA,EAAoB,MAC5Cq4B,GAAUoF,EAAOl0B,QAAQ,EAC3B,CACA,OAAO8uB,CACT,CAEA4G,cAAcxB,GACZ,IAAIqC,EACAzH,EAAS,GACb,MAAOoF,EAAOt3B,OAAQ,CAEpB,GADA25B,EAAgBrC,EAAOA,EAAOt3B,OAAS,GAAG,GACpB,UAAlB25B,EAA2B,MAC/BzH,EAASoF,EAAOp3B,MAAM,GAAKgyB,CAC7B,CACA,OAAOA,CACT,CAEA2G,WAAWvB,EAAQzL,GACjB,IAAIxvB,EAAS,GACb,IAAK,IAAIuG,EAAIipB,EAAMjpB,EAAI00B,EAAOt3B,OAAQ4C,IACpCvG,GAAUi7B,EAAO10B,GAAG,GAGtB,OADA00B,EAAO1gB,OAAOiV,EAAMyL,EAAOt3B,OAAS6rB,GAC7BxvB,CACT,CAEA87B,MAAMb,GACJ,IACIC,EAAOn9B,EAAMR,EADby+B,EAAW,EAEf,IAAK,IAAKz1B,EAAG5K,KAAYs/B,EAAOsC,UAAW,CAUzC,GATArC,EAAQv/B,EACRoC,EAAOm9B,EAAM,GAEA,MAATn9B,IACFi+B,GAAY,GAED,MAATj+B,IACFi+B,GAAY,GAEG,IAAbA,GAA2B,MAATj+B,EAAc,CAClC,GAAKR,EAEE,IAAgB,SAAZA,EAAK,IAA6B,WAAZA,EAAK,GACpC,SAEA,OAAOgJ,CACT,CALEzH,KAAK0+B,YAAYtC,EAMrB,CAEA39B,EAAO29B,CACT,CACA,OAAO,CACT,CAIAgB,gBAAgBH,GACd,MAAMj9B,KAAKgmB,MAAM1P,MACf,mBACA,CAAExP,OAAQm2B,EAAQ,IAClB,CAAEn2B,OAAQm2B,EAAQ,GAAK,GAE3B,CAEAI,YAAYlB,GACV,MAAMn8B,KAAKgmB,MAAM1P,MACf,eACA,CAAExP,OAAQq1B,EAAO,GAAG,IACpB,CAAEr1B,OAAQq1B,EAAO,GAAG,GAAKA,EAAO,GAAG,GAAGt3B,QAE1C,CAEAu5B,gBAAgBhC,GACd,MAAMp8B,KAAKgmB,MAAM1P,MACf,eACA,CAAExP,OAAQs1B,EAAM,IAChB,CAAEt1B,OAAQs1B,EAAM,GAAK,GAEzB,CAEAiC,gBACE,IAAI94B,EAAMvF,KAAKgc,QAAQtf,OAAOoH,MAC9B,MAAM9D,KAAKgmB,MAAM1P,MAAM,iBAAkB/Q,EAAIkoB,KAAMloB,EAAImoB,OACzD,CAEAgR,YAAYtC,GACV,MAAMp8B,KAAKgmB,MAAM1P,MACf,eACA,CAAExP,OAAQs1B,EAAM,IAChB,CAAEt1B,OAAQs1B,EAAM,GAAKA,EAAM,GAAGv3B,QAElC,CAEAk5B,cAActpB,EAAM2nB,GAClB,MAAMp8B,KAAKgmB,MAAM1P,MACf,uBACA,CAAExP,OAAQs1B,EAAM,IAChB,CAAEt1B,OAAQs1B,EAAM,GAAKA,EAAM,GAAGv3B,QAElC,CAEA24B,0BAEA,CAEAM,qBAAqB3B,GACnB,IAAIa,EAAQh9B,KAAKg9B,MAAMb,GACvB,IAAc,IAAVa,EAAiB,OAErB,IACIZ,EADAuC,EAAU,EAEd,IAAK,IAAIlE,EAAIuC,EAAQ,EAAGvC,GAAK,EAAGA,IAE9B,GADA2B,EAAQD,EAAO1B,GACE,UAAb2B,EAAM,KACRuC,GAAW,EACK,IAAZA,GAAe,MAMvB,MAAM3+B,KAAKgmB,MAAM1P,MACf,mBACa,SAAb8lB,EAAM,GAAgBA,EAAM,GAAK,EAAIA,EAAM,GAE/C,EAGFx9B,EAAOC,QAAUsC,C,kCCxlBjB,IAAIosB,EAAiB,EAAQ,MACzBtD,EAAc,EAAQ,MACtB8E,EAAa,EAAQ,MACrBvF,EAAY,EAAQ,MACpBwF,EAAY,EAAQ,MACpBG,EAAY,EAAQ,MACpBK,EAAW,EAAQ,KACnBvZ,EAAW,EAAQ,MACnB2oB,EAAU,EAAQ,MAClBp/B,EAAU,EAAQ,MAClBiqB,EAAS,EAAQ,MACjBuI,EAAS,EAAQ,MACjBzC,EAAQ,EAAQ,MAChB/jB,EAAQ,EAAQ,MAChBgrB,EAAO,EAAQ,MACf1M,EAAO,EAAQ,MACfnqB,EAAO,EAAQ,MACfmY,EAAO,EAAQ,MAEnB,SAAS8b,KAAWM,GAIlB,OAHuB,IAAnBA,EAAQrvB,QAAgB3I,MAAMC,QAAQ+3B,EAAQ,MAChDA,EAAUA,EAAQ,IAEb,IAAIlF,EAAUkF,EACvB,CAEAN,EAAQhG,OAAS,SAAgBrpB,EAAMs6B,GACrC,IA2BIjB,EA3BAkB,GAAiB,EACrB,SAASC,KAAWlS,GAEdlF,SAAWA,QAAQgT,OAASmE,IAC9BA,GAAiB,EAEjBnX,QAAQgT,KACNp2B,uHAIE,6EAAYy6B,MAAQ,6EAAYA,KAAKpS,WAAW,OAGlDjF,QAAQgT,KACNp2B,yEAMN,IAAI06B,EAAcJ,KAAehS,GAGjC,OAFAoS,EAAY1M,cAAgBhuB,EAC5B06B,EAAY/I,gBAAiB,IAAIlH,GAAYqH,QACtC4I,CACT,CAcA,OAXA3jC,OAAO+D,eAAe0/B,EAAS,UAAW,CACxCl+B,MAEE,OADK+8B,IAAOA,EAAQmB,KACbnB,CACT,IAGFmB,EAAQG,QAAU,SAAU9Q,EAAK+Q,EAAaC,GAC5C,OAAOxL,EAAQ,CAACmL,EAAQK,KAAcF,QAAQ9Q,EAAK+Q,EACrD,EAEOJ,CACT,EAEAnL,EAAQzE,UAAYA,EACpByE,EAAQpoB,MAAQA,EAChBooB,EAAQpE,SAAWA,EACnBoE,EAAQ4C,KAAOA,EAEf5C,EAAQvB,QAAU3I,GAAY,IAAIlqB,EAAQkqB,GAC1CkK,EAAQyL,OAAS3V,GAAY,IAAID,EAAOC,GACxCkK,EAAQ3H,KAAOvC,GAAY,IAAIO,EAAYP,GAC3CkK,EAAQxB,KAAO1I,GAAY,IAAII,EAAKJ,GACpCkK,EAAQlhB,KAAOgX,GAAY,IAAI/pB,EAAK+pB,GACpCkK,EAAQ1B,SAAWxI,GAAY,IAAIzT,EAASyT,GAE5CkK,EAAQrG,eAAiBA,EACzBqG,EAAQ3J,YAAcA,EACtB2J,EAAQpK,UAAYA,EACpBoK,EAAQ5E,UAAYA,EACpB4E,EAAQ3d,SAAWA,EACnB2d,EAAQp0B,QAAUA,EAClBo0B,EAAQgL,QAAUA,EAClBhL,EAAQnK,OAASA,EACjBmK,EAAQ5B,OAASA,EACjB4B,EAAQrE,MAAQA,EAChBqE,EAAQ9J,KAAOA,EACf8J,EAAQj0B,KAAOA,EACfi0B,EAAQ9b,KAAOA,EAEfiX,EAAWwH,gBAAgB3C,GAE3Bh1B,EAAOC,QAAU+0B,EACjBA,EAAQjwB,QAAUiwB,C,oCClGlB,IAAI,kBAAE9D,EAAiB,mBAAEC,GAAuB,EAAQ,MACpD,WAAEuP,EAAU,aAAEC,GAAiB,EAAQ,OACvC,QAAEtI,EAAO,KAAE1iB,GAAS,EAAQ,MAEhC,SAASirB,EAAWz3B,GAClB,OAAI2wB,OACKA,OAAOhI,KAAK3oB,EAAK,UAAUvM,WAG3Bm9B,OAAO8G,KAAK13B,EAEvB,CAEA,MAAMunB,EACJlY,YAAYgX,EAAKna,GACf,IAAiB,IAAbA,EAAKrX,IAAe,OACxBoD,KAAK0/B,eAAetR,GACpBpuB,KAAK+zB,OAAS/zB,KAAK2/B,UAAU3/B,KAAK23B,WAAY,SAE9C,IAAIl5B,EAAOwV,EAAKrX,IAAMqX,EAAKrX,IAAI6B,UAAO6B,EAClCmW,EAAOzW,KAAK4/B,QAAQ3rB,EAAKyc,KAAMjyB,IAC9BuB,KAAKyxB,SAAWxd,EAAKyc,OACxB1wB,KAAKyxB,QAAUxd,EAAKyc,MAElB1wB,KAAKyxB,UAASzxB,KAAK0S,KAAOukB,EAAQj3B,KAAKyxB,UACvChb,IAAMzW,KAAKyW,KAAOA,EACxB,CAEAka,WAIE,OAHK3wB,KAAK6xB,gBACR7xB,KAAK6xB,cAAgB,IAAI/B,EAAkB9vB,KAAKyW,OAE3CzW,KAAK6xB,aACd,CAEAiG,cACE,SACE93B,KAAK2wB,WAAWkH,gBAChB73B,KAAK2wB,WAAWkH,eAAehzB,OAAS,EAE5C,CAEA86B,UAAU//B,EAAQkE,GAChB,QAAKlE,GACEA,EAAO8G,OAAO,EAAG5C,EAAMe,UAAYf,CAC5C,CAEA+7B,iBAAiBC,GACf,OAAOA,EAAgBhgC,QAAQ,8BAA+B,IAAIob,MACpE,CAEAwkB,eAAetR,GACb,IAAI2R,EAAW3R,EAAIhL,MAAM,gCACzB,IAAK2c,EAAU,OAGf,IAAIj8B,EAAQsqB,EAAI5oB,YAAYu6B,EAASh7B,OACjC8C,EAAMumB,EAAI1R,QAAQ,KAAM5Y,GAExBA,GAAS,GAAK+D,GAAO,IAEvB7H,KAAK23B,WAAa33B,KAAK6/B,iBAAiBzR,EAAIxM,UAAU9d,EAAO+D,IAEjE,CAEAm4B,aAAavpB,GACX,IAAIwpB,EAAiB,iDACjBC,EAAU,kCACVC,EAAa,0CACbC,EAAM,2BAEV,GAAID,EAAWniB,KAAKvH,IAAS2pB,EAAIpiB,KAAKvH,GACpC,OAAO4pB,mBAAmB5pB,EAAK/P,OAAOkkB,OAAO0V,UAAUz7B,SAGzD,GAAIo7B,EAAejiB,KAAKvH,IAASypB,EAAQliB,KAAKvH,GAC5C,OAAO+oB,EAAW/oB,EAAK/P,OAAOkkB,OAAO0V,UAAUz7B,SAGjD,IAAI07B,EAAW9pB,EAAK2M,MAAM,mCAAmC,GAC7D,MAAM,IAAI7kB,MAAM,mCAAqCgiC,EACvD,CAEAC,SAASpI,GAEP,GADAp4B,KAAK0S,KAAOukB,EAAQmB,GAChBkH,EAAWlH,GAEb,OADAp4B,KAAKyxB,QAAU2G,EACRmH,EAAanH,EAAM,SAAS58B,WAAW0f,MAElD,CAEA0kB,QAAQjS,EAAMlvB,GACZ,IAAa,IAATA,EAAgB,OAAO,EAE3B,GAAIA,EAAM,CACR,GAAoB,kBAATA,EACT,OAAOA,EACF,GAAoB,oBAATA,EAWX,IAAIA,aAAgBqxB,EACzB,OAAOC,EAAmBqJ,cAAc36B,GAAMjD,WACzC,GAAIiD,aAAgBsxB,EACzB,OAAOtxB,EAAKjD,WACP,GAAIwE,KAAKu3B,MAAM94B,GACpB,OAAOgiC,KAAKtR,UAAU1wB,GAEtB,MAAM,IAAIF,MACR,2CAA6CE,EAAKjD,WAEtD,CArBuC,CACrC,IAAIklC,EAAWjiC,EAAKkvB,GACpB,GAAI+S,EAAU,CACZ,IAAI9jC,EAAMoD,KAAKwgC,SAASE,GACxB,IAAK9jC,EACH,MAAM,IAAI2B,MACR,uCAAyCmiC,EAASllC,YAGtD,OAAOoB,CACT,CACF,CAWF,KAAO,IAAIoD,KAAK+zB,OACd,OAAO/zB,KAAKggC,aAAahgC,KAAK23B,YACzB,GAAI33B,KAAK23B,WAAY,CAC1B,IAAI/6B,EAAMoD,KAAK23B,WAEf,OADIhK,IAAM/wB,EAAM2X,EAAK0iB,EAAQtJ,GAAO/wB,IAC7BoD,KAAKwgC,SAAS5jC,EACvB,EACF,CAEA26B,MAAM36B,GACJ,MAAmB,kBAARA,IAEe,kBAAjBA,EAAI+jC,UACc,kBAAlB/jC,EAAIgkC,WACX1kC,MAAMC,QAAQS,EAAIikC,UAEtB,EAGFjiC,EAAOC,QAAUywB,EACjBA,EAAY3rB,QAAU2rB,C,oCC3ItB,IAAIwK,EAAe,EAAQ,MACvB/K,EAAa,EAAQ,MACrB9Y,EAAW,EAAQ,MACnBtW,EAAO,EAAQ,MAEnB,MAAMqvB,EACJ5X,YAAY8c,EAAU,IACpBl0B,KAAKq2B,QAAU,SACfr2B,KAAKk0B,QAAUl0B,KAAKirB,UAAUiJ,EAChC,CAEA4M,IAAIlT,GAEF,OADA5tB,KAAKk0B,QAAUl0B,KAAKk0B,QAAQv3B,OAAOqD,KAAKirB,UAAU,CAAC2C,KAC5C5tB,IACT,CAEAk/B,QAAQ9Q,EAAKna,EAAO,CAAC,GACnB,OAC0B,IAAxBjU,KAAKk0B,QAAQrvB,QACU,qBAAhBoP,EAAKmC,QACgB,qBAArBnC,EAAK0hB,aACW,qBAAhB1hB,EAAK+f,OAEL,IAAI8F,EAAa95B,KAAMouB,EAAKna,GAE5B,IAAI8a,EAAW/uB,KAAMouB,EAAKna,EAErC,CAEAgX,UAAUiJ,GACR,IAAI6M,EAAa,GACjB,IAAK,IAAIt5B,KAAKysB,EAOZ,IANkB,IAAdzsB,EAAEmsB,QACJnsB,EAAIA,IACKA,EAAEmsB,UACXnsB,EAAIA,EAAEmsB,SAGS,kBAANnsB,GAAkBvL,MAAMC,QAAQsL,EAAEysB,SAC3C6M,EAAaA,EAAWpkC,OAAO8K,EAAEysB,cAC5B,GAAiB,kBAANzsB,GAAkBA,EAAE8qB,cACpCwO,EAAW97B,KAAKwC,QACX,GAAiB,oBAANA,EAChBs5B,EAAW97B,KAAKwC,OACX,IAAiB,kBAANA,IAAmBA,EAAE+D,QAAS/D,EAAE0nB,UAShD,MAAM,IAAI5wB,MAAMkJ,EAAI,2BACtB,CAEF,OAAOs5B,CACT,EAGFniC,EAAOC,QAAUmwB,EACjBA,EAAUrrB,QAAUqrB,EAEpBrvB,EAAK0vB,kBAAkBL,GACvB/Y,EAASoZ,kBAAkBL,E,oCChE3B,IAAI4P,EAAU,EAAQ,MAEtB,MAAM5M,EACJ5a,YAAYyc,EAAWnhB,EAAMuB,GAC3BjU,KAAK6zB,UAAYA,EACjB7zB,KAAKs0B,SAAW,GAChBt0B,KAAK0S,KAAOA,EACZ1S,KAAKiU,KAAOA,EACZjU,KAAKouB,SAAM9tB,EACXN,KAAKpD,SAAM0D,CACb,CAEA9E,WACE,OAAOwE,KAAKouB,GACd,CAEAuM,KAAKlkB,EAAMxC,EAAO,CAAC,GACZA,EAAK2Z,QACJ5tB,KAAK+1B,YAAc/1B,KAAK+1B,WAAWxD,gBACrCte,EAAK2Z,OAAS5tB,KAAK+1B,WAAWxD,eAIlC,IAAIyO,EAAU,IAAIpC,EAAQnoB,EAAMxC,GAGhC,OAFAjU,KAAKs0B,SAASrvB,KAAK+7B,GAEZA,CACT,CAEAzM,WACE,OAAOv0B,KAAKs0B,SAASn3B,QAAOsK,GAAgB,YAAXA,EAAExI,MACrC,CAEIm1B,cACF,OAAOp0B,KAAKouB,GACd,EAGFxvB,EAAOC,QAAUmzB,EACjBA,EAAOruB,QAAUquB,C,oCCvCjB,IAEIjD,EAAYC,EAFZxF,EAAY,EAAQ,MAIxB,MAAM7pB,UAAa6pB,EACjBpS,YAAYsS,GACVC,MAAMD,GACN1pB,KAAKf,KAAO,OACPe,KAAK0U,QAAO1U,KAAK0U,MAAQ,GAChC,CAEAmX,YAAYtT,EAAO0oB,GACjB,IAAIp2B,EAAQ7K,KAAK6K,MAAM0N,GAMvB,OAJK0oB,GAAoB,IAAVp2B,GAAe7K,KAAK0U,MAAM7P,OAAS,IAChD7E,KAAK0U,MAAM,GAAG+X,KAAKC,OAAS1sB,KAAK0U,MAAM7J,GAAO4hB,KAAKC,QAG9C/C,MAAMkC,YAAYtT,EAC3B,CAEA0S,UAAU1S,EAAO+T,EAAQrtB,GACvB,IAAIyV,EAAQiV,MAAMsB,UAAU1S,GAE5B,GAAI+T,EACF,GAAa,YAATrtB,EACEe,KAAK0U,MAAM7P,OAAS,EACtBynB,EAAOG,KAAKC,OAAS1sB,KAAK0U,MAAM,GAAG+X,KAAKC,cAEjCJ,EAAOG,KAAKC,YAEhB,GAAI1sB,KAAKqrB,QAAUiB,EACxB,IAAK,IAAI7X,KAAQC,EACfD,EAAKgY,KAAKC,OAASJ,EAAOG,KAAKC,OAKrC,OAAOhY,CACT,CAEAua,SAAShb,EAAO,CAAC,GACf,IAAIib,EAAO,IAAIH,EAAW,IAAIC,EAAahvB,KAAMiU,GACjD,OAAOib,EAAKC,WACd,EAGFxvB,EAAKyvB,mBAAqBlC,IACxB6B,EAAa7B,GAGfvtB,EAAK0vB,kBAAoBnC,IACvB8B,EAAY9B,GAGdtuB,EAAOC,QAAUc,EACjBA,EAAKgE,QAAUhE,EAEf6pB,EAAU4D,aAAaztB,E,oCC1DvB,IAAI6pB,EAAY,EAAQ,MACpBgN,EAAO,EAAQ,MAEnB,MAAM1M,UAAaN,EACjBpS,YAAYsS,GACVC,MAAMD,GACN1pB,KAAKf,KAAO,OACPe,KAAK0U,QAAO1U,KAAK0U,MAAQ,GAChC,CAEIwsB,gBACF,OAAO1K,EAAKQ,MAAMh3B,KAAK8qB,SACzB,CAEIoW,cAAUC,GACZ,IAAI/d,EAAQpjB,KAAK8qB,SAAW9qB,KAAK8qB,SAAS1H,MAAM,QAAU,KACtD8T,EAAM9T,EAAQA,EAAM,GAAK,IAAMpjB,KAAKo7B,IAAI,UAAW,cACvDp7B,KAAK8qB,SAAWqW,EAAO5sB,KAAK2iB,EAC9B,EAGFt4B,EAAOC,QAAUirB,EACjBA,EAAKnmB,QAAUmmB,EAEfN,EAAU2D,aAAarD,E,gCCxBvB,MAAMsX,EAAc,CAClBpE,MAAO,KACPqE,OAAQ,OACRC,WAAY,KACZC,WAAY,KACZC,WAAY,IACZC,YAAa,KACbC,cAAe,KACfvG,MAAO,KACPwG,UAAW,GACXC,YAAa,IACbC,aAAc,IACdhI,WAAW,GAGb,SAASiI,EAAW/5B,GAClB,OAAOA,EAAI,GAAGg6B,cAAgBh6B,EAAIC,MAAM,EAC1C,CAEA,MAAMuyB,EACJnjB,YAAY4qB,GACVhiC,KAAKgiC,QAAUA,CACjB,CAEA7S,UAAU1a,EAAMolB,GAEd,IAAK75B,KAAKyU,EAAKxV,MACb,MAAM,IAAIV,MACR,yBACEkW,EAAKxV,KADP,mDAOJe,KAAKyU,EAAKxV,MAAMwV,EAAMolB,EACxB,CAEA3H,SAASzd,GACPzU,KAAKiiC,KAAKxtB,EACZ,CAEA/B,KAAK+B,GACHzU,KAAKiiC,KAAKxtB,GACNA,EAAKgY,KAAK0O,OAAOn7B,KAAKgiC,QAAQvtB,EAAKgY,KAAK0O,MAC9C,CAEA9I,QAAQ5d,GACN,IAAIqoB,EAAO98B,KAAKo7B,IAAI3mB,EAAM,OAAQ,eAC9BsoB,EAAQ/8B,KAAKo7B,IAAI3mB,EAAM,QAAS,gBACpCzU,KAAKgiC,QAAQ,KAAOlF,EAAOroB,EAAKgC,KAAOsmB,EAAQ,KAAMtoB,EACvD,CAEAwX,KAAKxX,EAAMolB,GACT,IAAIyB,EAAUt7B,KAAKo7B,IAAI3mB,EAAM,UAAW,SACpC7U,EAAS6U,EAAK2G,KAAOkgB,EAAUt7B,KAAKkiC,SAASztB,EAAM,SAEnDA,EAAKgpB,YACP79B,GAAU6U,EAAKgY,KAAKgR,WAAa,eAG/B5D,IAAWj6B,GAAU,KACzBI,KAAKgiC,QAAQpiC,EAAQ6U,EACvB,CAEA2d,KAAK3d,GACHzU,KAAKmiC,MAAM1tB,EAAMzU,KAAKkiC,SAASztB,EAAM,aACjCA,EAAKgY,KAAK6R,cACZt+B,KAAKgiC,QAAQvtB,EAAKgY,KAAK6R,aAAc7pB,EAAM,MAE/C,CAEA0d,OAAO1d,EAAMolB,GACX,IAAIt1B,EAAO,IAAMkQ,EAAKlQ,KAClB05B,EAASxpB,EAAKwpB,OAASj+B,KAAKkiC,SAASztB,EAAM,UAAY,GAQ3D,GANmC,qBAAxBA,EAAKgY,KAAKyR,UACnB35B,GAAQkQ,EAAKgY,KAAKyR,UACTD,IACT15B,GAAQ,KAGNkQ,EAAKC,MACP1U,KAAKmiC,MAAM1tB,EAAMlQ,EAAO05B,OACnB,CACL,IAAIp2B,GAAO4M,EAAKgY,KAAK6O,SAAW,KAAOzB,EAAY,IAAM,IACzD75B,KAAKgiC,QAAQz9B,EAAO05B,EAASp2B,EAAK4M,EACpC,CACF,CAEAwtB,KAAKxtB,GACH,IAAIyW,EAAOzW,EAAKC,MAAM7P,OAAS,EAC/B,MAAOqmB,EAAO,EAAG,CACf,GAA8B,YAA1BzW,EAAKC,MAAMwW,GAAMjsB,KAAoB,MACzCisB,GAAQ,CACV,CAEA,IAAI2O,EAAY75B,KAAKo7B,IAAI3mB,EAAM,aAC/B,IAAK,IAAIhN,EAAI,EAAGA,EAAIgN,EAAKC,MAAM7P,OAAQ4C,IAAK,CAC1C,IAAI8Q,EAAQ9D,EAAKC,MAAMjN,GACnBilB,EAAS1sB,KAAKo7B,IAAI7iB,EAAO,UACzBmU,GAAQ1sB,KAAKgiC,QAAQtV,GACzB1sB,KAAKmvB,UAAU5W,EAAO2S,IAASzjB,GAAKoyB,EACtC,CACF,CAEAsI,MAAM1tB,EAAM3Q,GACV,IAGIq3B,EAHAG,EAAUt7B,KAAKo7B,IAAI3mB,EAAM,UAAW,cACxCzU,KAAKgiC,QAAQl+B,EAAQw3B,EAAU,IAAK7mB,EAAM,SAGtCA,EAAKC,OAASD,EAAKC,MAAM7P,QAC3B7E,KAAKiiC,KAAKxtB,GACV0mB,EAAQn7B,KAAKo7B,IAAI3mB,EAAM,UAEvB0mB,EAAQn7B,KAAKo7B,IAAI3mB,EAAM,QAAS,aAG9B0mB,GAAOn7B,KAAKgiC,QAAQ7G,GACxBn7B,KAAKgiC,QAAQ,IAAKvtB,EAAM,MAC1B,CAEA2mB,IAAI3mB,EAAM2tB,EAAKC,GACb,IAAInnC,EAIJ,GAHKmnC,IAAQA,EAASD,GAGlBA,IACFlnC,EAAQuZ,EAAKgY,KAAK2V,GACG,qBAAVlnC,GAAuB,OAAOA,EAG3C,IAAIka,EAASX,EAAKW,OAElB,GAAe,WAAXitB,EAAqB,CAEvB,IAAKjtB,GAA2B,SAAhBA,EAAOnW,MAAmBmW,EAAOiW,QAAU5W,EACzD,MAAO,GAIT,GAAIW,GAA0B,aAAhBA,EAAOnW,KACnB,MAAO,EAEX,CAGA,IAAKmW,EAAQ,OAAOgsB,EAAYiB,GAGhC,IAAI3vB,EAAO+B,EAAK/B,OAEhB,GADKA,EAAK4vB,WAAU5vB,EAAK4vB,SAAW,CAAC,GACA,qBAA1B5vB,EAAK4vB,SAASD,GACvB,OAAO3vB,EAAK4vB,SAASD,GAGvB,GAAe,WAAXA,GAAkC,UAAXA,EACzB,OAAOriC,KAAKuiC,YAAY9tB,EAAM4tB,GACzB,CACL,IAAIG,EAAS,MAAQV,EAAWO,GAC5BriC,KAAKwiC,GACPtnC,EAAQ8E,KAAKwiC,GAAQ9vB,EAAM+B,GAE3B/B,EAAK8X,MAAK/iB,IAER,GADAvM,EAAQuM,EAAEglB,KAAK2V,GACM,qBAAVlnC,EAAuB,OAAO,IAG/C,CAKA,MAHqB,qBAAVA,IAAuBA,EAAQkmC,EAAYiB,IAEtD3vB,EAAK4vB,SAASD,GAAUnnC,EACjBA,CACT,CAEAunC,aAAa/vB,GACX,IAAIxX,EAOJ,OANAwX,EAAK8X,MAAK/iB,IACR,GAAIA,EAAEiN,OAASjN,EAAEiN,MAAM7P,QAA0B,SAAhB4C,EAAEyjB,KAAKjsB,OACtC/D,EAAQuM,EAAEglB,KAAKoN,UACM,qBAAV3+B,GAAuB,OAAO,CAC3C,IAEKA,CACT,CAEAwnC,aAAahwB,GACX,IAAIxX,EAOJ,OANAwX,EAAK8X,MAAK/iB,IACR,GAAIA,EAAEiN,OAA4B,IAAnBjN,EAAEiN,MAAM7P,SACrB3J,EAAQuM,EAAEglB,KAAK0O,MACM,qBAAVjgC,GAAuB,OAAO,CAC3C,IAEKA,CACT,CAEAynC,UAAUjwB,GACR,GAAIA,EAAK+Z,KAAK4U,OAAQ,OAAO3uB,EAAK+Z,KAAK4U,OACvC,IAAInmC,EAYJ,OAXAwX,EAAK8X,MAAK/iB,IACR,IAAI+L,EAAI/L,EAAE2N,OACV,GAAI5B,GAAKA,IAAMd,GAAQc,EAAE4B,QAAU5B,EAAE4B,SAAW1C,GACjB,qBAAlBjL,EAAEglB,KAAKC,OAAwB,CACxC,IAAIkW,EAAQn7B,EAAEglB,KAAKC,OAAO1I,MAAM,MAGhC,OAFA9oB,EAAQ0nC,EAAMA,EAAM/9B,OAAS,GAC7B3J,EAAQA,EAAM4E,QAAQ,MAAO,KACtB,CACT,CACF,IAEK5E,CACT,CAEA2nC,iBAAiBnwB,EAAM+B,GACrB,IAAIvZ,EAeJ,OAdAwX,EAAKsY,cAAavjB,IAChB,GAA6B,qBAAlBA,EAAEglB,KAAKC,OAKhB,OAJAxxB,EAAQuM,EAAEglB,KAAKC,OACXxxB,EAAMygB,SAAS,QACjBzgB,EAAQA,EAAM4E,QAAQ,UAAW,MAE5B,CACT,IAEmB,qBAAV5E,EACTA,EAAQ8E,KAAKo7B,IAAI3mB,EAAM,KAAM,cACpBvZ,IACTA,EAAQA,EAAM4E,QAAQ,MAAO,KAExB5E,CACT,CAEA4nC,cAAcpwB,EAAM+B,GAClB,IAAIvZ,EAeJ,OAdAwX,EAAKiY,WAAUljB,IACb,GAA6B,qBAAlBA,EAAEglB,KAAKC,OAKhB,OAJAxxB,EAAQuM,EAAEglB,KAAKC,OACXxxB,EAAMygB,SAAS,QACjBzgB,EAAQA,EAAM4E,QAAQ,UAAW,MAE5B,CACT,IAEmB,qBAAV5E,EACTA,EAAQ8E,KAAKo7B,IAAI3mB,EAAM,KAAM,cACpBvZ,IACTA,EAAQA,EAAM4E,QAAQ,MAAO,KAExB5E,CACT,CAEA6nC,cAAcrwB,GACZ,IAAIxX,EAaJ,OAZAwX,EAAK8X,MAAK/iB,IACR,GAAIA,EAAEiN,QAAUjN,EAAE2N,SAAW1C,GAAQA,EAAK2Y,QAAU5jB,IACrB,qBAAlBA,EAAEglB,KAAKC,OAKhB,OAJAxxB,EAAQuM,EAAEglB,KAAKC,OACXxxB,EAAMygB,SAAS,QACjBzgB,EAAQA,EAAM4E,QAAQ,UAAW,MAE5B,CAEX,IAEE5E,IAAOA,EAAQA,EAAM4E,QAAQ,MAAO,KACjC5E,CACT,CAEA8nC,eAAetwB,GACb,IAAIxX,EAaJ,OAZAwX,EAAK8X,MAAK/iB,IACR,GAAIA,EAAEiN,OAASjN,EAAEiN,MAAM7P,OAAS,GACF,qBAAjB4C,EAAEglB,KAAK0O,MAKhB,OAJAjgC,EAAQuM,EAAEglB,KAAK0O,MACXjgC,EAAMygB,SAAS,QACjBzgB,EAAQA,EAAM4E,QAAQ,UAAW,MAE5B,CAEX,IAEE5E,IAAOA,EAAQA,EAAM4E,QAAQ,MAAO,KACjC5E,CACT,CAEA+nC,cAAcvwB,GACZ,IAAIxX,EAOJ,OANAwX,EAAK8X,MAAK/iB,IACR,GAAe,SAAXA,EAAExI,OACJ/D,EAAQuM,EAAEglB,KAAK6O,QACM,qBAAVpgC,GAAuB,OAAO,CAC3C,IAEKA,CACT,CAEAgoC,SAASxwB,GACP,IAAIxX,EAOJ,OANAwX,EAAKiY,WAAUljB,IACb,GAA8B,qBAAnBA,EAAEglB,KAAK6O,QAEhB,OADApgC,EAAQuM,EAAEglB,KAAK6O,QAAQx7B,QAAQ,UAAW,KACnC,CACT,IAEK5E,CACT,CAEAqnC,YAAY9tB,EAAM4tB,GAChB,IAAInnC,EAEFA,EADgB,SAAduZ,EAAKxV,KACCe,KAAKo7B,IAAI3mB,EAAM,KAAM,cACN,YAAdA,EAAKxV,KACNe,KAAKo7B,IAAI3mB,EAAM,KAAM,iBACT,WAAX4tB,EACDriC,KAAKo7B,IAAI3mB,EAAM,KAAM,cAErBzU,KAAKo7B,IAAI3mB,EAAM,KAAM,eAG/B,IAAI0uB,EAAM1uB,EAAKW,OACXguB,EAAQ,EACZ,MAAOD,GAAoB,SAAbA,EAAIlkC,KAChBmkC,GAAS,EACTD,EAAMA,EAAI/tB,OAGZ,GAAIla,EAAMygB,SAAS,MAAO,CACxB,IAAI0lB,EAASrhC,KAAKo7B,IAAI3mB,EAAM,KAAM,UAClC,GAAI4sB,EAAOx8B,OACT,IAAK,IAAIw+B,EAAO,EAAGA,EAAOD,EAAOC,IAAQnoC,GAASmmC,CAEtD,CAEA,OAAOnmC,CACT,CAEAgnC,SAASztB,EAAM2G,GACb,IAAIlgB,EAAQuZ,EAAK2G,GACbggB,EAAM3mB,EAAKgY,KAAKrR,GACpB,OAAIggB,GAAOA,EAAIlgC,QAAUA,EAChBkgC,EAAIA,IAGNlgC,CACT,EAGF0D,EAAOC,QAAU07B,EACjBA,EAAY52B,QAAU42B,C,oCC9VtB,IAAIA,EAAc,EAAQ,MAE1B,SAASpL,EAAU1a,EAAMutB,GACvB,IAAIj6B,EAAM,IAAIwyB,EAAYyH,GAC1Bj6B,EAAIonB,UAAU1a,EAChB,CAEA7V,EAAOC,QAAUswB,EACjBA,EAAUxrB,QAAUwrB,C,gCCRpBvwB,EAAOC,QAAQkrB,QAAUnuB,OAAO,WAEhCgD,EAAOC,QAAQmrB,GAAKpuB,OAAO,K,gCCF3B,MAAM0nC,EAAe,IAAIv2B,WAAW,GAC9Bw2B,EAAe,IAAIx2B,WAAW,GAC9By2B,EAAY,KAAKz2B,WAAW,GAC5B02B,EAAQ,IAAI12B,WAAW,GACvB22B,EAAU,KAAK32B,WAAW,GAC1B42B,EAAQ,IAAI52B,WAAW,GACvB62B,EAAO,KAAK72B,WAAW,GACvB82B,EAAM,KAAK92B,WAAW,GACtB+2B,EAAK,KAAK/2B,WAAW,GACrBg3B,EAAc,IAAIh3B,WAAW,GAC7Bi3B,EAAe,IAAIj3B,WAAW,GAC9Bk3B,EAAmB,IAAIl3B,WAAW,GAClCm3B,EAAoB,IAAIn3B,WAAW,GACnCo3B,EAAa,IAAIp3B,WAAW,GAC5Bq3B,EAAc,IAAIr3B,WAAW,GAC7Bs3B,EAAY,IAAIt3B,WAAW,GAC3Bu3B,EAAW,IAAIv3B,WAAW,GAC1Bw3B,EAAQ,IAAIx3B,WAAW,GACvBy3B,EAAK,IAAIz3B,WAAW,GAEpB03B,EAAY,6BACZC,EAAc,wCACdC,EAAiB,cACjBC,EAAgB,WAEtBhmC,EAAOC,QAAU,SAAmBmnB,EAAO3pB,EAAU,CAAC,GACpD,IAGIwyB,EAAMnwB,EAAMwH,EAAOkuB,EAAS1Q,EAC5BmhB,EAASC,EAAWrmC,EAAM6U,EAAGyxB,EAJ7B3W,EAAMpI,EAAMoI,IAAI4W,UAChB/D,EAAS5kC,EAAQ4oC,aAKjBpgC,EAASupB,EAAIvpB,OACbU,EAAM,EACNoF,EAAS,GACTu6B,EAAW,GAEf,SAASC,IACP,OAAO5/B,CACT,CAEA,SAAS6/B,EAASC,GAChB,MAAMrf,EAAM1P,MAAM,YAAc+uB,EAAM9/B,EACxC,CAEA,SAASg3B,IACP,OAA2B,IAApB2I,EAASrgC,QAAgBU,GAAOV,CACzC,CAEA,SAAS23B,EAAUvoB,GACjB,GAAIixB,EAASrgC,OAAQ,OAAOqgC,EAASngC,MACrC,GAAIQ,GAAOV,EAAQ,OAEnB,IAAIygC,IAAiBrxB,GAAOA,EAAKqxB,eAIjC,OAFAzW,EAAOT,EAAIrhB,WAAWxH,GAEdspB,GACN,KAAK6U,EACL,KAAKC,EACL,KAAKE,EACL,KAAKC,EACL,KAAKF,EACHllC,EAAO6G,EACP,GACE7G,GAAQ,EACRmwB,EAAOT,EAAIrhB,WAAWrO,SAEtBmwB,IAAS8U,GACT9U,IAAS6U,GACT7U,IAASgV,GACThV,IAASiV,GACTjV,IAAS+U,GAGXmB,EAAe,CAAC,QAAS3W,EAAIpmB,MAAMzC,EAAK7G,IACxC6G,EAAM7G,EAAO,EACb,MAGF,KAAKqlC,EACL,KAAKC,EACL,KAAKG,EACL,KAAKC,EACL,KAAKG,EACL,KAAKF,EACL,KAAKH,EAAmB,CACtB,IAAIqB,EAAcruB,OAAOiK,aAAa0N,GACtCkW,EAAe,CAACQ,EAAaA,EAAahgC,GAC1C,KACF,CAEA,KAAK0+B,EAGH,GAFAxlC,EAAOkM,EAAO9F,OAAS8F,EAAO5F,MAAM,GAAK,GACzCuO,EAAI8a,EAAIrhB,WAAWxH,EAAM,GAEd,QAAT9G,GACA6U,IAAMgwB,GACNhwB,IAAMiwB,GACNjwB,IAAMqwB,GACNrwB,IAAMowB,GACNpwB,IAAMuwB,GACNvwB,IAAMswB,GACNtwB,IAAMwwB,EACN,CACAplC,EAAO6G,EACP,EAAG,CAGD,GAFAs/B,GAAU,EACVnmC,EAAO0vB,EAAI1R,QAAQ,IAAKhe,EAAO,IACjB,IAAVA,EAAa,CACf,GAAIuiC,GAAUqE,EAAgB,CAC5B5mC,EAAO6G,EACP,KACF,CACE6/B,EAAS,UAEb,CACAN,EAAYpmC,EACZ,MAAO0vB,EAAIrhB,WAAW+3B,EAAY,KAAOtB,EACvCsB,GAAa,EACbD,GAAWA,CAEf,OAASA,GAETE,EAAe,CAAC,WAAY3W,EAAIpmB,MAAMzC,EAAK7G,EAAO,GAAI6G,EAAK7G,GAE3D6G,EAAM7G,CACR,MACEA,EAAO0vB,EAAI1R,QAAQ,IAAKnX,EAAM,GAC9B6uB,EAAUhG,EAAIpmB,MAAMzC,EAAK7G,EAAO,IAElB,IAAVA,GAAeimC,EAAe3mB,KAAKoW,GACrC2Q,EAAe,CAAC,IAAK,IAAKx/B,IAE1Bw/B,EAAe,CAAC,WAAY3Q,EAAS7uB,EAAK7G,GAC1C6G,EAAM7G,GAIV,MAGF,KAAK4kC,EACL,KAAKC,EACHr9B,EAAQ2oB,IAASyU,EAAe,IAAM,IACtC5kC,EAAO6G,EACP,EAAG,CAGD,GAFAs/B,GAAU,EACVnmC,EAAO0vB,EAAI1R,QAAQxW,EAAOxH,EAAO,IACnB,IAAVA,EAAa,CACf,GAAIuiC,GAAUqE,EAAgB,CAC5B5mC,EAAO6G,EAAM,EACb,KACF,CACE6/B,EAAS,SAEb,CACAN,EAAYpmC,EACZ,MAAO0vB,EAAIrhB,WAAW+3B,EAAY,KAAOtB,EACvCsB,GAAa,EACbD,GAAWA,CAEf,OAASA,GAETE,EAAe,CAAC,SAAU3W,EAAIpmB,MAAMzC,EAAK7G,EAAO,GAAI6G,EAAK7G,GACzD6G,EAAM7G,EACN,MAGF,KAAK8lC,EACHC,EAAUlhB,UAAYhe,EAAM,EAC5Bk/B,EAAUzmB,KAAKoQ,GAEb1vB,EAD0B,IAAxB+lC,EAAUlhB,UACL6K,EAAIvpB,OAAS,EAEb4/B,EAAUlhB,UAAY,EAG/BwhB,EAAe,CAAC,UAAW3W,EAAIpmB,MAAMzC,EAAK7G,EAAO,GAAI6G,EAAK7G,GAE1D6G,EAAM7G,EACN,MAGF,KAAK8kC,EACH9kC,EAAO6G,EACPme,GAAS,EACT,MAAO0K,EAAIrhB,WAAWrO,EAAO,KAAO8kC,EAClC9kC,GAAQ,EACRglB,GAAUA,EAGZ,GADAmL,EAAOT,EAAIrhB,WAAWrO,EAAO,GAE3BglB,GACAmL,IAAS4U,GACT5U,IAAS8U,GACT9U,IAAS6U,GACT7U,IAASgV,GACThV,IAASiV,GACTjV,IAAS+U,IAETllC,GAAQ,EACJkmC,EAAc5mB,KAAKoQ,EAAIlH,OAAOxoB,KAAQ,CACxC,MAAOkmC,EAAc5mB,KAAKoQ,EAAIlH,OAAOxoB,EAAO,IAC1CA,GAAQ,EAEN0vB,EAAIrhB,WAAWrO,EAAO,KAAOilC,IAC/BjlC,GAAQ,EAEZ,CAGFqmC,EAAe,CAAC,OAAQ3W,EAAIpmB,MAAMzC,EAAK7G,EAAO,GAAI6G,EAAK7G,GAEvD6G,EAAM7G,EACN,MAGF,QACMmwB,IAAS4U,GAASrV,EAAIrhB,WAAWxH,EAAM,KAAO++B,GAChD5lC,EAAO0vB,EAAI1R,QAAQ,KAAMnX,EAAM,GAAK,EACvB,IAAT7G,IACEuiC,GAAUqE,EACZ5mC,EAAO0vB,EAAIvpB,OAEXugC,EAAS,YAIbL,EAAe,CAAC,UAAW3W,EAAIpmB,MAAMzC,EAAK7G,EAAO,GAAI6G,EAAK7G,GAC1D6G,EAAM7G,IAENgmC,EAAYnhB,UAAYhe,EAAM,EAC9Bm/B,EAAY1mB,KAAKoQ,GAEf1vB,EAD4B,IAA1BgmC,EAAYnhB,UACP6K,EAAIvpB,OAAS,EAEb6/B,EAAYnhB,UAAY,EAGjCwhB,EAAe,CAAC,OAAQ3W,EAAIpmB,MAAMzC,EAAK7G,EAAO,GAAI6G,EAAK7G,GACvDiM,EAAO1F,KAAK8/B,GACZx/B,EAAM7G,GAGR,MAKJ,OADA6G,IACOw/B,CACT,CAEA,SAAS5H,EAAKf,GACZ8I,EAASjgC,KAAKm3B,EAChB,CAEA,MAAO,CACLe,OACAX,YACAD,YACA4I,WAEJ,C,gCCtQA,IAAIK,EAAU,CAAC,EAEf5mC,EAAOC,QAAU,SAAkB2uB,GAC7BgY,EAAQhY,KACZgY,EAAQhY,IAAW,EAEI,qBAAZ7F,SAA2BA,QAAQgT,MAC5ChT,QAAQgT,KAAKnN,GAEjB,C,gCCVA,MAAMoR,EACJxnB,YAAYX,EAAMxC,EAAO,CAAC,GAIxB,GAHAjU,KAAKf,KAAO,UACZe,KAAKyW,KAAOA,EAERxC,EAAKQ,MAAQR,EAAKQ,KAAK/X,OAAQ,CACjC,IAAI+oC,EAAQxxB,EAAKQ,KAAKimB,QAAQzmB,GAC9BjU,KAAKytB,KAAOgY,EAAM3hC,MAAM2pB,KACxBztB,KAAK0tB,OAAS+X,EAAM3hC,MAAM4pB,OAC1B1tB,KAAK8tB,QAAU2X,EAAM59B,IAAI4lB,KACzBztB,KAAK+tB,UAAY0X,EAAM59B,IAAI6lB,MAC7B,CAEA,IAAK,IAAIgY,KAAOzxB,EAAMjU,KAAK0lC,GAAOzxB,EAAKyxB,EACzC,CAEAlqC,WACE,OAAIwE,KAAKyU,KACAzU,KAAKyU,KAAK6B,MAAMtW,KAAKyW,KAAM,CAChCmX,OAAQ5tB,KAAK4tB,OACb/iB,MAAO7K,KAAK6K,MACZ+wB,KAAM57B,KAAK47B,OACVpO,QAGDxtB,KAAK4tB,OACA5tB,KAAK4tB,OAAS,KAAO5tB,KAAKyW,KAG5BzW,KAAKyW,IACd,EAGF7X,EAAOC,QAAU+/B,EACjBA,EAAQj7B,QAAUi7B,C,uBCpClB,MAAM+G,EAAa,EAAQ,MACrBC,EAAqB,EAAQ,OAC7B,cAAEhgB,GAAkB,EAAQ,MAC5BrpB,EAAY,EAAQ,MACpBspC,EAAc,EAAQ,OACpBr6B,MAAOs6B,GAAiB,EAAQ,IAElCC,EAAY,CAChB,MAAO,QAAS,QAAS,UAAW,MACpC,SAAU,MAAO,SAAU,SAGvBC,EAAiB,CAAE,SAAU,SAEnC,SAAS5b,EAAKjP,EAAKvI,GACbuI,GACF7f,OAAOiC,KAAK4d,GAAKnd,SAAQ,SAAUjB,GACjC6V,EAAGuI,EAAIpe,GAAMA,EACf,GAEJ,CAGA,SAASyH,EAAI2W,EAAKpe,GAChB,MAAO,CAAG,EAAEc,eAAepC,KAAK0f,EAAKpe,EACvC,CAGA,SAASI,EAAO8f,EAAGrK,GACjB,MAAMU,EAAI,GAMV,OALA8W,EAAKnN,GAAG,SAASlc,GACX6R,EAAG7R,IACLuS,EAAErO,KAAKlE,EAEX,IACOuS,CACT,CAEA,SAAS2yB,EAAc9qB,GACrB,IAAK,MAAMpe,KAAOoe,EAChB,GAAI3W,EAAI2W,EAAKpe,GACX,OAAO,EAGX,OAAO,CACT,CAEA,SAASmpC,EAAgBC,GACvB,OAAOA,EAAavpC,KAAI,SAASwpC,GAC/B,IAAKA,EAAK/f,IACR,MAAM,IAAI9nB,MAAM,eAGlB,OACE6nC,EAAK/f,KACJ+f,EAAKjf,EAAI,IAAIif,EAAKjf,KAAO,KACzBif,EAAKhf,EAAI,IAAIgf,EAAKhf,KAAO,KACzBgf,EAAKtvB,EAAI,IAAIsvB,EAAKtvB,KAAO,GAE9B,IAAGvC,KAAK,KACV,CAEA3V,EAAOC,QAAUwnC,EAajB,MAAMC,EAA4B,wBAMlC,SAASD,EAAaE,EAAMlqC,EAASmqC,GACnC,GAAY,MAARD,EACF,MAAO,GAEW,kBAATA,IACTA,EAAOA,EAAK/qC,YAGd,IAAI0F,EAAS,GAETulC,EAAa,GAEjB,SAASC,EAAMrxB,EAAKvS,GAClB,MAAM6jC,EAAO3mC,KACbA,KAAKqV,IAAMA,EACXrV,KAAK8C,QAAUA,GAAW,CAAC,EAC3B9C,KAAK4mC,YAAc1lC,EAAO2D,OAC1B7E,KAAKyW,KAAO,GACZzW,KAAK6mC,cAAgB,GAErB7mC,KAAK8mC,qBAAuB,WAC1B,GAAI/jC,EAAM8B,OAAQ,CAChB,MAAMkiC,EAAchkC,EAAMA,EAAM8B,OAAS,GACzCkiC,EAAYtwB,MAAQkwB,EAAKlwB,IAC3B,CACF,EAEAzW,KAAKgnC,8BAAgC,WACnC,GAAIjkC,EAAM8B,QAAUkhC,EAAUpqB,SAAS3b,KAAKqV,KAAM,CAChD,MAAM0xB,EAAchkC,EAAMA,EAAM8B,OAAS,GACzCkiC,EAAYF,cAAc5hC,KAAKjF,KAAKqV,IACtC,CACF,CACF,CAEAhZ,EAAUf,OAAO6X,OAAO,CAAC,EAAGkzB,EAAa3c,SAAUrtB,GACnDA,EAAQ+Z,OAAS9a,OAAO6X,OAAO,CAAC,EAAG8zB,EAAoB5qC,EAAQ+Z,QAG/D4vB,EAAehoC,SAAQ,SAAUqX,IAEL,IAAxBhZ,EAAQ6qC,cAA0B7qC,EAAQ6qC,aAAe,IAAIxqB,QAAQrH,IAAQ,IAC5EhZ,EAAQ8qC,qBAETxf,QAAQgT,KAAK,kDAAkDtlB,qNAEnE,IAMA,MAAM+xB,EAAmB/qC,EAAQgrC,aAAe,CAC9C,SACA,QACA,WACA,UAEF,IAAIC,EACAC,EACAlrC,EAAQmrC,oBACVF,EAAuB,CAAC,EACxBC,EAA2B,CAAC,EAC5Bnd,EAAK/tB,EAAQmrC,mBAAmB,SAASxzB,EAAYqB,GACnDiyB,EAAqBjyB,GAAO,GAC5B,MAAMoyB,EAAY,GAClBzzB,EAAWhW,SAAQ,SAASmd,GACP,kBAARA,GAAoBA,EAAIuB,QAAQ,MAAQ,EACjD+qB,EAAUxiC,KAAK2gC,EAAmBzqB,GAAKrb,QAAQ,QAAS,OAExDwnC,EAAqBjyB,GAAKpQ,KAAKkW,EAEnC,IACIssB,EAAU5iC,SACZ0iC,EAAyBlyB,GAAO,IAAIuV,OAAO,KAAO6c,EAAUlzB,KAAK,KAAO,MAE5E,KAEF,MAAMmzB,EAAoB,CAAC,EACrBC,EAAwB,CAAC,EACzBC,EAAyB,CAAC,EAChCxd,EAAK/tB,EAAQwrC,gBAAgB,SAASC,EAASzyB,GAEzCiyB,IACG9iC,EAAI8iC,EAAsBjyB,KAC7BiyB,EAAqBjyB,GAAO,IAE9BiyB,EAAqBjyB,GAAKpQ,KAAK,UAGjCyiC,EAAkBryB,GAAO,GACzBuyB,EAAuBvyB,GAAO,GAC9B,MAAMoyB,EAAY,GAClBK,EAAQ9pC,SAAQ,SAASmd,GACJ,kBAARA,GAAoBA,EAAIuB,QAAQ,MAAQ,EACjD+qB,EAAUxiC,KAAK2gC,EAAmBzqB,GAAKrb,QAAQ,QAAS,OAC/Cqb,aAAeyP,OACxBgd,EAAuBvyB,GAAKpQ,KAAKkW,GAEjCusB,EAAkBryB,GAAKpQ,KAAKkW,EAEhC,IACIssB,EAAU5iC,SACZ8iC,EAAsBtyB,GAAO,IAAIuV,OAAO,KAAO6c,EAAUlzB,KAAK,KAAO,MAEzE,IAEA,MAAMwzB,EAAmB,CAAC,EAC1B,IAAIC,EAeA5E,EACArgC,EACAklC,EACAC,EACAC,EACAC,EAnBJhe,EAAK/tB,EAAQgsC,eAAe,SAASC,EAAWjzB,GAC9C,IAAIkzB,EACqB,oBAAdD,EACTC,EAAWD,EACmB,kBAAdA,IAChBC,EAAWlC,EAAamC,gBAAgBF,IAE9B,MAARjzB,EACF2yB,EAAmBO,EAEnBR,EAAiB1yB,GAAOkzB,CAE5B,IAQA,IAAIE,GAAY,EAEhBC,IAEA,MAAMtyB,EAAS,IAAIuvB,EAAWxkC,OAAO,CACnC+D,UAAW,SAASX,EAAMzB,GAOxB,GAJIzG,EAAQssC,qBAAgC,SAATpkC,GACjCmkC,IAGEP,EAEF,YADAC,IAGF,MAAMQ,EAAQ,IAAIlC,EAAMniC,EAAMzB,GAC9BC,EAAMkC,KAAK2jC,GAEX,IAAIC,GAAO,EACX,MAAMC,IAAYF,EAAMnyB,KACxB,IAAIsyB,EAqCJ,GApCIvkC,EAAIujC,EAAkBxjC,KACxBwkC,EAAiBhB,EAAiBxjC,GAAMA,EAAMzB,GAE9C8lC,EAAM9lC,QAAUA,EAAUimC,EAAejmC,aAEbxC,IAAxByoC,EAAetyB,OACjBmyB,EAAMxpB,UAAY2pB,EAAetyB,MAG/BlS,IAASwkC,EAAehuB,UAC1B6tB,EAAMrkC,KAAOA,EAAOwkC,EAAehuB,QACnCmtB,EAAa9E,GAAS2F,EAAehuB,UAGrCitB,IACFe,EAAiBf,EAAiBzjC,EAAMzB,GAExC8lC,EAAM9lC,QAAUA,EAAUimC,EAAejmC,QACrCyB,IAASwkC,EAAehuB,UAC1B6tB,EAAMrkC,KAAOA,EAAOwkC,EAAehuB,QACnCmtB,EAAa9E,GAAS2F,EAAehuB,YAIZ,IAAxB1e,EAAQ6qC,cAAwE,KAA9C7qC,EAAQ6qC,aAAe,IAAIxqB,QAAQnY,IAAiD,oBAA/BlI,EAAQ2sC,qBAA6C/C,EAAcgC,IAAsC,MAAxB5rC,EAAQ4sC,cAAwB7F,GAAS/mC,EAAQ4sC,gBAC5NJ,GAAO,EACPZ,EAAQ7E,IAAS,EACkB,YAA/B/mC,EAAQ2sC,qBAC8B,IAApC5B,EAAiB1qB,QAAQnY,KAC3B4jC,GAAW,EACXC,EAAgB,GAGpBH,EAAQ7E,IAAS,GAEnBA,IACIyF,EAAM,CACR,GAAmC,YAA/BxsC,EAAQ2sC,mBAEV,OAEFvC,EAAavlC,EACbA,EAAS,EACX,CACAA,GAAU,IAAMqD,EAEH,WAATA,IACElI,EAAQ6sC,wBAA0B7sC,EAAQ8sC,wBAC5CP,EAAMxpB,UAAY,MAIjBkoB,GAAwB9iC,EAAI8iC,EAAsB/iC,IAAS+iC,EAAqB,OACnFld,EAAKtnB,GAAS,SAAS5H,EAAO+hB,GAC5B,IAAKqpB,EAA0BtoB,KAAKf,GAIlC,mBADO2rB,EAAM9lC,QAAQma,GAKvB,IAAImsB,GAAkC,EACtC,IAAK9B,GACF9iC,EAAI8iC,EAAsB/iC,KAAoD,IAA3C+iC,EAAqB/iC,GAAMmY,QAAQO,IACtEqqB,EAAqB,OAAkD,IAA1CA,EAAqB,KAAK5qB,QAAQO,IAC/DzY,EAAI+iC,EAA0BhjC,IAASgjC,EAAyBhjC,GAAMyZ,KAAKf,IAC3EsqB,EAAyB,MAAQA,EAAyB,KAAKvpB,KAAKf,GACrEmsB,GAAkC,OAC7B,GAAI9B,GAAwBA,EAAqB/iC,GACtD,IAAK,MAAMrE,KAAKonC,EAAqB/iC,GACnC,GAAIqhB,EAAc1lB,IAAMA,EAAEqE,MAASrE,EAAEqE,OAAS0Y,EAAI,CAChDmsB,GAAkC,EAClC,IAAIC,EAAW,GACf,IAAmB,IAAfnpC,EAAEopC,SAAmB,CAEvB,MAAMC,EAAgBruC,EAAM8oB,MAAM,KAClC,IAAK,MAAM3Q,KAAKk2B,GACe,IAAzBrpC,EAAEihC,OAAOzkB,QAAQrJ,KACF,KAAbg2B,EACFA,EAAWh2B,EAEXg2B,GAAY,IAAMh2B,EAI1B,MAAWnT,EAAEihC,OAAOzkB,QAAQxhB,IAAU,IAEpCmuC,EAAWnuC,GAEbA,EAAQmuC,CACV,CAGJ,GAAID,EAAiC,CACnC,IAA8D,IAA1D/sC,EAAQmtC,kCAAkC9sB,QAAQO,IAChDwsB,EAAYllC,EAAMrJ,GAEpB,mBADO0tC,EAAM9lC,QAAQma,GAKzB,GAAa,WAAT1Y,GAA2B,QAAN0Y,EAAa,CAEpC,IAAIysB,GAAU,EAEd,IACE,MAAM7nB,EAAS8nB,EAASzuC,GAExB,GAAImB,EAAQ6sC,wBAA0B7sC,EAAQ8sC,qBAAsB,CAClE,MAAMS,GAAmBvtC,EAAQ6sC,wBAA0B,IAAIlqB,MAAK,SAAU6qB,GAC5E,OAAOA,IAAahoB,EAAOwE,IAAIwjB,QACjC,IACMC,GAAiBztC,EAAQ8sC,sBAAwB,IAAInqB,MAAK,SAAS+qB,GACvE,OAAOloB,EAAOwE,IAAIwjB,WAAaE,GAAUloB,EAAOwE,IAAIwjB,SAASG,SAAS,IAAID,IAC5E,IACAL,EAAUE,GAAmBE,CAC/B,CAGF,CAFE,MAAOrf,GACPif,GAAU,CACZ,CAEA,IAAKA,EAEH,mBADOd,EAAM9lC,QAAQma,EAGzB,CAEA,GAAa,WAAT1Y,GAA2B,QAAN0Y,EAAa,CACpC,IAAIysB,GAAU,EACd,IACE,MAAM7nB,EAAS8nB,EAASzuC,GAExB,GAAI2mB,EAAOooB,cAGTP,EAAUllC,EAAInI,EAAS,2BACnBA,EAAQ6tC,yBACN7tC,EAAQ8tC,yBAA2B9tC,EAAQ+tC,0BAC5C,GAAI/tC,EAAQ8tC,wBAA0B9tC,EAAQ+tC,qBAAsB,CACzE,MAAMR,GAAmBvtC,EAAQ8tC,wBAA0B,IAAInrB,MAAK,SAAU6qB,GAC5E,OAAOA,IAAahoB,EAAOwE,IAAIwjB,QACjC,IACMC,GAAiBztC,EAAQ+tC,sBAAwB,IAAIprB,MAAK,SAAS+qB,GACvE,OAAOloB,EAAOwE,IAAIwjB,WAAaE,GAAUloB,EAAOwE,IAAIwjB,SAASG,SAAS,IAAID,IAC5E,IACAL,EAAUE,GAAmBE,CAC/B,CAIF,CAHE,MAAOrf,GAEPif,GAAU,CACZ,CACA,IAAKA,EAEH,mBADOd,EAAM9lC,QAAQma,EAGzB,CACA,GAAU,WAANA,EACF,IACE,IAAI4E,EAASgkB,EAAY3qC,GASzB,GARA2mB,EAAO7jB,SAAQ,SAAS9C,GAClBuuC,EAAY,SAAUvuC,EAAMmrB,OAC9BnrB,EAAMmvC,MAAO,EAEjB,IACAxoB,EAAS1kB,EAAO0kB,GAAQ,SAAS9gB,GAC/B,OAAQA,EAAEspC,IACZ,KACKxoB,EAAOhd,OAEV,mBADO+jC,EAAM9lC,QAAQma,GAGrB/hB,EAAQgrC,EAAgB/oC,EAAO0kB,GAAQ,SAAS9gB,GAC9C,OAAQA,EAAEspC,IACZ,KACAzB,EAAM9lC,QAAQma,GAAK/hB,CAMvB,CAJE,MAAOuvB,GAGP,mBADOme,EAAM9lC,QAAQma,EAEvB,CAEF,GAAU,UAANA,EAAe,CACjB,MAAMqtB,EAAyB5C,EAAkBnjC,GAC3CgmC,EAAyB7C,EAAkB,KAC3C8C,EAA6B7C,EAAsBpjC,GACnDkmC,EAA8B7C,EAAuBrjC,GACrDmmC,EAA6B/C,EAAsB,KACnDgD,EAAsB,CAC1BH,EACAE,GAEC/tC,OAAO8tC,GACPttC,QAAO,SAAUiW,GAChB,OAAOA,CACT,IAMF,GAJElY,EAAQ0vC,EAAc1vC,EADpBovC,GAA0BC,EACChuC,EAAU+tC,EAAwBC,GAElCD,GAA0BC,EAFiCI,IAIrFzvC,EAAM2J,OAET,mBADO+jC,EAAM9lC,QAAQma,EAGzB,CACA,GAAU,UAANA,EACF,IACE,MAAM4tB,EAAqB/E,EAAavhC,EAAO,KAAOrJ,EAAQ,KACxD4vC,EAAcC,EAAUF,EAAoBxuC,EAAQ2uC,eAI1D,GAFA9vC,EAAQ+vC,EAAyBH,GAEZ,IAAjB5vC,EAAM2J,OAER,mBADO+jC,EAAM9lC,QAAQma,EAMzB,CAHE,MAAOwN,GAEP,mBADOme,EAAM9lC,QAAQma,EAEvB,CAEF/b,GAAU,IAAM+b,EACZ/hB,GAASA,EAAM2J,SACjB3D,GAAU,KAAOgqC,EAAWhwC,GAAO,GAAQ,IAE/C,aACS0tC,EAAM9lC,QAAQma,EAEzB,KAEyC,IAAvC5gB,EAAQ8uC,YAAYzuB,QAAQnY,GAC9BrD,GAAU,OAEVA,GAAU,KACN0nC,EAAMxpB,WAAc0pB,GAAYzsC,EAAQ+uC,aAC1ClqC,GAAUgqC,EAAWtC,EAAMxpB,WAC3BqpB,GAAY,IAGZI,IACF3nC,EAASulC,EAAayE,EAAWhqC,GACjCulC,EAAa,GAEjB,EACA5iC,OAAQ,SAAS4S,GACf,GAAI0xB,EACF,OAEF,MAAMkD,EAAYtoC,EAAMA,EAAM8B,OAAS,GACvC,IAAIwQ,EAQJ,GANIg2B,IACFh2B,EAAMg2B,EAAUh2B,IAEhBoB,OAA+BnW,IAAxB+qC,EAAUjsB,UAA0BisB,EAAUjsB,UAAY3I,GAGhC,YAA/Bpa,EAAQ2sC,oBAA8C,WAAR3zB,GAA8B,UAARA,EAMjE,CACL,MAAMwvB,EAAUqG,EAAWz0B,GAAM,GAC7Bpa,EAAQ+uC,aAAe3C,EACzBvnC,GAAU7E,EAAQ+uC,WAAWvG,EAASxvB,GAC5BozB,IACVvnC,GAAU2jC,EAEd,MARE3jC,GAAUuV,EASZ,GAAI1T,EAAM8B,OAAQ,CAChB,MAAM+jC,EAAQ7lC,EAAMA,EAAM8B,OAAS,GACnC+jC,EAAMnyB,MAAQA,CAChB,CACF,EACAzR,WAAY,SAAST,GAEnB,GAAI4jC,EAAU,CAEZ,GADAC,IACKA,EAGH,OAFAD,GAAW,CAIf,CAEA,MAAMS,EAAQ7lC,EAAMgC,MACpB,IAAK6jC,EAEH,OAGF,GAAIA,EAAMvzB,MAAQ9Q,EAIhB,YADAxB,EAAMkC,KAAK2jC,GAIbT,IAAW9rC,EAAQssC,qBAA+B,SAATpkC,EACzC6+B,IACA,MAAMyF,EAAOZ,EAAQ7E,GACrB,GAAIyF,EAAM,CAER,UADOZ,EAAQ7E,GACoB,YAA/B/mC,EAAQ2sC,mBAEV,YADAJ,EAAM9B,uBAGRL,EAAavlC,EACbA,EAAS,EACX,CAEIgnC,EAAa9E,KACf7+B,EAAO2jC,EAAa9E,UACb8E,EAAa9E,IAGlB/mC,EAAQivC,iBAAmBjvC,EAAQivC,gBAAgB1C,GACrD1nC,EAASA,EAAOwF,OAAO,EAAGkiC,EAAMhC,cAIlCgC,EAAM5B,gCACN4B,EAAM9B,wBAEqC,IAAvCzqC,EAAQ8uC,YAAYzuB,QAAQnY,IAShCrD,GAAU,KAAOqD,EAAO,IACpBskC,IACF3nC,EAASulC,EAAayE,EAAWhqC,GACjCulC,EAAa,IAEfgC,GAAY,GAZNI,IACF3nC,EAASulC,EACTA,EAAa,IAWnB,GACCpqC,EAAQ+Z,QAIX,OAHAA,EAAOlO,MAAMq+B,GACbnwB,EAAOvO,MAEA3G,EAEP,SAASwnC,IACPxnC,EAAS,GACTkiC,EAAQ,EACRrgC,EAAQ,GACRklC,EAAU,CAAC,EACXC,EAAe,CAAC,EAChBC,GAAW,EACXC,EAAgB,CAClB,CAEA,SAAS8C,EAAW73B,EAAGnN,GAqBrB,MApBmB,kBAAR,IACTmN,GAAQ,IAENhX,EAAQ+Z,OAAO3L,iBACjB4I,EAAIA,EAAEvT,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,QAC7DoG,IACFmN,EAAIA,EAAEvT,QAAQ,KAAM,YAQxBuT,EAAIA,EAAEvT,QAAQ,4BAA6B,SACxCA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACboG,IACFmN,EAAIA,EAAEvT,QAAQ,KAAM,WAEfuT,CACT,CAEA,SAASo2B,EAAYllC,EAAMqV,GAKzBA,EAAOA,EAAK9Z,QAAQ,gBAAiB,IAIrC,MAAO,EAAM,CACX,MAAMyrC,EAAa3xB,EAAK8C,QAAQ,WAChC,IAAoB,IAAhB6uB,EACF,MAEF,MAAMhoB,EAAY3J,EAAK8C,QAAQ,SAAO6uB,EAAa,GACnD,IAAmB,IAAfhoB,EACF,MAEF3J,EAAOA,EAAKgI,UAAU,EAAG2pB,GAAc3xB,EAAKgI,UAAU2B,EAAY,EACpE,CAIA,MAAMioB,EAAU5xB,EAAKwJ,MAAM,gCAC3B,IAAKooB,EAEH,QAAI5xB,EAAKwJ,MAAM,eACL/mB,EAAQovC,sBAMpB,MAAMC,EAASF,EAAQ,GAAG9mC,cAE1B,OAAIF,EAAInI,EAAQsvC,oBAAqBpnC,IAC2B,IAAvDlI,EAAQsvC,oBAAoBpnC,GAAMmY,QAAQgvB,IAG3CrvC,EAAQuvC,iBAA8D,IAA5CvvC,EAAQuvC,eAAelvB,QAAQgvB,EACnE,CAEA,SAAS/B,EAASzuC,GAEhB,GADAA,EAAQA,EAAM4E,QAAQ,2BAA4B,QAC9C5E,EAAM0xB,WAAW,aAInB,MAAM,IAAIruB,MAAM,6BAQlB,IAAI6iB,EAAO,2BACX,IAAK,IAAI3Z,EAAI,EAAIA,EAAI,IAAMA,IACzB2Z,GAAQ,IAAI3Z,IAGd,MAAMoa,EAAS,IAAI0P,IAAIr2B,EAAOkmB,GAExB6oB,EAAgBpoB,GAA8B,kBAApBA,EAAOgoB,UAAoD,cAApBhoB,EAAO6P,SAC9E,MAAO,CACLuY,gBACA5jB,IAAKxE,EAET,CAUA,SAASkpB,EAAUF,EAAoBG,GACrC,IAAKA,EACH,OAAOH,EAGT,MAAMgB,EAAWhB,EAAmBn2B,MAAM,GAC1C,IAAIo3B,EAgBJ,OAZEA,EADEd,EAAca,EAAS/gB,WAAakgB,EAAc,KACrCzuC,EACbyuC,EAAca,EAAS/gB,UACvBkgB,EAAc,MAGDA,EAAca,EAAS/gB,WAAakgB,EAAc,KAG/Dc,IACFjB,EAAmBn2B,MAAM,GAAGA,MAAQm3B,EAASn3B,MAAMlW,OAAOutC,EAAmBD,GAAe,KAGvFjB,CACT,CASA,SAASI,EAAyBH,GAChC,OAAOA,EAAYp2B,MAAM,GAAGA,MACzBlW,QAAO,SAASwtC,EAAqBC,GAIpC,OAHAD,EAAoB/mC,KAClB,GAAGgnC,EAAW7wB,QAAQ6wB,EAAW/wC,QAAQ+wC,EAAWxO,UAAY,cAAgB,MAE3EuO,CACT,GAAG,IACFz3B,KAAK,IACV,CAcA,SAASw3B,EAAmBD,GAC1B,OAAO,SAAUI,EAAyBC,GAExC,GAAI3nC,EAAIsnC,EAAcK,EAAgB/wB,MAAO,CAC3C,MAAMgxB,EAAeN,EAAaK,EAAgB/wB,MAAM+D,MAAK,SAASktB,GACpE,OAAOA,EAAkBruB,KAAKmuB,EAAgBjxC,MAChD,IAEIkxC,GACFF,EAAwBjnC,KAAKknC,EAEjC,CACA,OAAOD,CACT,CACF,CAEA,SAAStB,EAAc9C,EAAS4B,EAAS4C,GACvC,OAAK5C,GAIL5B,EAAUA,EAAQ9jB,MAAM,OACjB8jB,EAAQ3qC,QAAO,SAASovC,GAC7B,OAAkC,IAA3B7C,EAAQhtB,QAAQ6vB,IAAgBD,EAAantB,MAAK,SAASqtB,GAChE,OAAOA,EAAKxuB,KAAKuuB,EACnB,GACF,IAAGh4B,KAAK,MAPCuzB,CAQX,CACF,CAKA,MAAMb,EAAqB,CACzBx8B,gBAAgB,GAElB47B,EAAa3c,SAAW,CACtBwd,YAAa,CAKX,UAAW,UAAW,QAAS,SAAU,SACzC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,SACpC,OAAQ,MAAO,UAEf,aAAc,KAAM,MAAO,KAAM,KAAM,aAAc,SACrD,KAAM,KAAM,OAAQ,KAAM,IAAK,MAAO,KAEtC,IAAK,OAAQ,IAAK,MAAO,MAAO,KAAM,OAAQ,OAAQ,OAAQ,MAC9D,KAAM,IAAK,MAAO,OAAQ,IAC1B,KAAM,KAAM,KAAM,MAAO,OACzB,IAAK,OAAQ,QAAS,OAAQ,SAAU,MAAO,MAAO,OAAQ,IAAK,MAAO,MAE1E,UAAW,MAAO,WAAY,QAAS,QAAS,KAAM,QAAS,KAC/D,QAAS,MAEX8B,mBAAoB,UACpBxB,kBAAmB,CACjBvqB,EAAG,CAAE,OAAQ,OAAQ,UAGrBwvB,IAAK,CAAE,MAAO,SAAU,MAAO,QAAS,QAAS,SAAU,YAG7DtB,YAAa,CAAE,MAAO,KAAM,KAAM,OAAQ,OAAQ,WAAY,QAAS,OAAQ,QAE/ES,eAAgB,CAAE,OAAQ,QAAS,MAAO,SAAU,OACpDD,oBAAqB,CAAC,EACtBnC,kCAAmC,CAAE,OAAQ,MAAO,QACpDiC,uBAAuB,EACvB9C,qBAAqB,GAGvBtC,EAAamC,gBAAkB,SAASkE,EAAYC,EAAYC,GAI9D,OAHAA,OAAmBtsC,IAAVssC,GAA8BA,EACvCD,EAAaA,GAAc,CAAC,EAErB,SAAS5xB,EAASjY,GACvB,IAAI6X,EACJ,GAAIiyB,EACF,IAAKjyB,KAAUgyB,EACb7pC,EAAQ6X,GAAUgyB,EAAWhyB,QAG/B7X,EAAU6pC,EAGZ,MAAO,CACL5xB,QAAS2xB,EACT5pC,QAASA,EAEb,CACF,C,wMCv0BA,MACM+pC,EAAa,CAAE1yB,GAAI,gBACnB2yB,EAAa,CAAC,YACdC,EAAa,CAAEC,MAAO,cACtBC,EAAa,CACjBlwC,IAAK,EACLiwC,MAAO,mBAEHE,EAAa,CAAC,UAAW,YACzBC,EAAa,CAAEtxC,IAAK,WACpBuxC,EAAa,CAAC,UAAW,YACzBC,EAAa,CAAExxC,IAAK,cACpByxC,EAAa,CAAEN,MAAO,aACtBO,EAAc,CAAC,YACfC,EAAc,CAAC,SACfC,EAAc,CAClB1wC,IAAK,EACLiwC,MAAO,aAEHU,EAAc,CAAE7xC,IAAK,WACrB8xC,EAAc,CAAC,YACfC,EAAc,CAAEZ,MAAO,uBACvBa,EAAc,CAClB9wC,IAAK,EACLiwC,MAAO,aAEHc,EAAc,CAAEjyC,IAAK,SACrBkyC,EAAc,CAAC,WAAY,YAC3BC,EAAc,CAAEjxC,IAAK,GACrBkxC,EAAc,CAAEjB,MAAO,yBACvBkB,EAAc,CAAElB,MAAO,aACvBmB,EAAc,CAAEnB,MAAO,qBACvBoB,EAAc,CAAC,YACfC,EAAc,CAAC,YACfC,EAAc,CAAEtB,MAAO,aACvBuB,EAAc,CAAC,YACfC,EAAc,CAAC,YACfC,EAAc,CAAC,YACfC,EAAc,CAAE1B,MAAO,gBACvB2B,EAAc,CAAE3B,MAAO,aACvB4B,EAAc,CAAC,YACfC,EAAc,CAAE7B,MAAO,aACvB8B,EAAc,CAAC,YACfC,EAAc,CAAE/B,MAAO,aACvBgC,EAAc,CAAC,YACfC,EAAc,CAAEjC,MAAO,aACvBkC,EAAc,CAAEnyC,IAAK,GACrBoyC,EAAc,CAClBpyC,IAAK,EACLiwC,MAAO,gBAEHoC,EAAc,CAAC,YACfC,GAAc,CAAC,WAoCrB,QAA4BC,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,iBACRrjB,MAAO,CACLsjB,SAAU,KACVC,OAAQ,KACRC,WAAY,CAAEzwC,KAAMsxB,QAAS5sB,SAAS,GACtCgsC,QAAS,CAAE1wC,KAAMsxB,QAAS5sB,SAAS,GACnCisC,QAAS,CAAEjsC,QAAS,KAAM,CAAgB,KAE5CksC,MAAMC,GAER,MAAM5jB,EAAQ4jB,GAIN,EAAE18B,IAAM28B,EAAAA,EAAAA,MACRC,IAAQC,EAAAA,EAAAA,KACRC,IAASC,EAAAA,EAAAA,OAET,SAAEX,GAAQ,QAAEI,GAAO,WAAEF,GAAU,QAAEC,KAAYS,EAAAA,EAAAA,IAAOlkB,GACpDmkB,IAA0CC,EAAAA,EAAAA,KAAS,KACvDC,EAAAA,EAAAA,IACErkB,EAAMujB,OACNr8B,EACA,qBACAw8B,GAAQ10C,MAAMif,GAAK,CAACy1B,GAAQ10C,MAAMs1C,UAAY,MAG5CC,IAAqCH,EAAAA,EAAAA,KACzC,IAAMN,GAAMU,QAAQC,EAAAA,GAAAA,QAAAA,cAEhBC,GAAgBH,GAAUv1C,MAAM21C,sBAClCC,EAAAA,EAAAA,GAAoBL,GAAUv1C,MAAM21C,sBACpC,GACEE,GAAmBN,GAAUv1C,MAAM61C,iBACnCC,GAAeP,GAAUv1C,MAAM+1C,mBACjCH,EAAAA,EAAAA,GAAoBL,GAAUv1C,MAAM+1C,mBACpC,GACEC,IAAuDZ,EAAAA,EAAAA,KAC3D,IAAMN,GAAMU,QAAQC,EAAAA,GAAAA,QAAAA,kBAEhBQ,IAAcC,EAAAA,EAAAA,IAAS,CAC3BZ,SAAU,GACVa,MAAO,GACPC,MAAO,GACPC,YAAa,GACbC,YAAa,GACbC,oBAAqB,GACrBC,uBAAwB,GACxBC,uBAAwB,GACxBC,gBAAiB,GACjBC,cAAe,GACfC,eAAgB,KAEZC,IAAUC,EAAAA,EAAAA,IACd9lB,EAAM0jB,QAAQz1B,GAAK+R,EAAM0jB,QAAQqC,SAAW/lB,EAAMwjB,YAEpD,IAAIwC,GAAuB,KAC3B,MAAMC,IAAaH,EAAAA,EAAAA,KAAI,GACjBI,IAAsCJ,EAAAA,EAAAA,IAAI,IAQhD,SAASK,GAAYn3C,GACnBi2C,GAAYG,MAAQp2C,CACtB,CACA,SAASo3C,KACPP,GAAQ72C,OAAS62C,GAAQ72C,MACzBi3C,GAAWj3C,OAAQ,CACrB,CACA,SAASq3C,GAAW1c,GACdA,EAAMp5B,OAAO+1C,QACfN,GAAUrc,EAAMp5B,OAAO+1C,MAAM,GAEjC,CACA,SAASC,GAAkB7C,GAIzB,GAHAuB,GAAYX,SAAW,GAAGZ,EAAQY,WAClCW,GAAYE,MAAQzB,EAAQyB,MAC5BF,GAAYG,MAAQ1B,EAAQ0B,OACvB1B,EAAQqC,SAAU,CACrB,MAAMS,GAAkBC,EAAAA,EAAAA,KACtBC,EAAAA,EAAAA,IAAchD,EAAQiD,aAAc3mB,EAAMsjB,SAASsD,UACnD,cAEIC,EAAWnD,EAAQmD,SAAS/uB,MAAM,KACxCmtB,GAAYS,gBAAkB,GAC5BpC,GAASt0C,MAAM83C,gBACXC,EAAAA,EAAAA,IAAgBrD,EAAQsD,SAAU,KAAM,KAAM,GAC9CxrB,WAAWkoB,EAAQsD,SAASC,QAAQ,MAE1ChC,GAAYI,YAAcmB,EAAgBG,aAC1C1B,GAAYK,YAAckB,EAAgBU,aAC1CjC,GAAYM,oBAAsBsB,EAAS,GAC3C5B,GAAYO,uBAAyBqB,EAAS,GAC9C5B,GAAYQ,uBAAyBoB,EAAS,GAC9C5B,GAAYU,cACS,OAAnBjC,EAAQyD,OACJ,GACA,GACE7D,GAASt0C,MAAM83C,gBACXC,EAAAA,EAAAA,IAAgBrD,EAAQyD,OAAQ,IAAK,KAAM,GAC3C3rB,WAAWkoB,EAAQyD,OAAOF,QAAQ,MAE9ChC,GAAYW,eACU,OAApBlC,EAAQ0D,QACJ,GACA,GACE9D,GAASt0C,MAAM83C,gBACXC,EAAAA,EAAAA,IAAgBrD,EAAQ0D,QAAS,IAAK,KAAM,GAC5C5rB,WAAWkoB,EAAQ0D,QAAQH,QAAQ,K,CAGnD,CACA,SAASI,KACP,OAAOnB,GAAqBl3C,MAAMygB,SAAS,4BAC7C,CACA,SAAS63B,KACP,OAAOpB,GAAqBl3C,MAAMygB,SAAS,4BAC7C,CACA,SAAS83B,KACP,OAAOrB,GAAqBl3C,MAAMygB,SAChC,qCAEJ,CACA,SAAS+3B,GAAcC,GACrBvB,GAAqBl3C,MAAQ,GAC7By4C,EAAQtC,MAAQF,GAAYE,MAC5BsC,EAAQZ,SAC6B,MAAlC5B,GAAYM,oBACyB,IAArCN,GAAYO,yBACZP,GAAYQ,uBACXgC,EAAQZ,UAAY,GACtBX,GAAqBl3C,MAAM+J,KAAK,6BAElC0uC,EAAQT,SAAW1D,GAASt0C,MAAM83C,gBAC9BC,EAAAA,EAAAA,KAAiB9B,GAAYS,gBAAiB,KAAM,KAAM,IACzDT,GAAYS,gBACb+B,EAAQT,UAAY,GACtBd,GAAqBl3C,MAAM+J,KAAK,6BAElC0uC,EAAQd,aAAe,GAAG1B,GAAYI,eAAeJ,GAAYK,cACjEmC,EAAQN,OACwB,KAA9BlC,GAAYU,cACR,KACArC,GAASt0C,MAAM83C,gBACfC,EAAAA,EAAAA,KAAiB9B,GAAYU,cAAe,KAAM,IAAK,IACtDV,GAAYU,cACnB8B,EAAQL,QACyB,KAA/BnC,GAAYW,eACR,KACAtC,GAASt0C,MAAM83C,gBACfC,EAAAA,EAAAA,KAAiB9B,GAAYW,eAAgB,KAAM,IAAK,IACvDX,GAAYW,gBAEG,OAAnB6B,EAAQN,QAAuC,OAApBM,EAAQL,SAChB,OAAnBK,EAAQN,QAAuC,OAApBM,EAAQL,UAEpClB,GAAqBl3C,MAAM+J,KAAK,qCAEpC,CACA,SAAS2uC,KACP,MAAMD,EAAwB,CAC5BnD,UAAWW,GAAYX,SACvBc,MAAOH,GAAYG,OAErB,GAAIplB,EAAM0jB,QAAQz1B,GACZ+R,EAAM0jB,QAAQqC,SAChB0B,EAAQtC,MAAQF,GAAYE,MAE5BqC,GAAcC,GAEZvB,GAAqBl3C,MAAM2J,OAAS,EACtCmrC,GAAM6D,OACJlD,EAAAA,GAAAA,UAAAA,mBACAyB,GAAqBl3C,OAGvB80C,GAAM8D,SAASC,EAAAA,GAAAA,QAAAA,aAAqC,CAClDC,UAAW9nB,EAAM0jB,QAAQz1B,GACzBpW,KAAM4vC,SAIV,GAAI5B,GAAQ72C,MAAO,CACjB,IAAKg3C,GAAS,CACZ,MAAM+B,EAAe,4BAErB,YADAjE,GAAM6D,OAAOlD,EAAAA,GAAAA,UAAAA,mBAAyCsD,E,CAGxDN,EAAQhmB,KAAOukB,GACflC,GAAM8D,SAASC,EAAAA,GAAAA,QAAAA,YAAoCJ,E,MAEnDD,GAAcC,GACVvB,GAAqBl3C,MAAM2J,OAAS,EACtCmrC,GAAM6D,OACJlD,EAAAA,GAAAA,UAAAA,mBACAyB,GAAqBl3C,OAGvB80C,GAAM8D,SACJC,EAAAA,GAAAA,QAAAA,wBACAJ,EAKV,CACA,SAASO,KACHhoB,EAAM0jB,QAAQz1B,GAChB+1B,GAAOjrC,KAAK,CACVV,KAAM,UACN05B,OAAQ,CAAE+V,UAAW9nB,EAAM0jB,QAAQz1B,MAGrC+1B,GAAOiE,IAAI,EAEf,CACA,SAASC,KACPjC,GAAWj3C,OAAQ,CACrB,CAgBF,OAlLEm5C,EAAAA,EAAAA,KAAU,KACJnoB,EAAM0jB,QAAQz1B,IAChBs4B,GAAkBvmB,EAAM0jB,Q,KAkK5B0E,EAAAA,EAAAA,KAAY,IAAMtE,GAAM6D,OAAOlD,EAAAA,GAAAA,UAAAA,yBAE/B4D,EAAAA,EAAAA,KACE,IAAMroB,EAAM0jB,UACZlb,MACE8f,EACAC,KAEID,IAAeC,GAAmBD,GAAcA,EAAWr6B,IAC7Ds4B,GAAkB+B,E,IAKnB,CAACE,EAAUC,KAChB,MAAMC,GAA4BC,EAAAA,EAAAA,IAAkB,kBAC9CC,GAA0BD,EAAAA,EAAAA,IAAkB,gBAC5CE,GAAoBF,EAAAA,EAAAA,IAAkB,UACtCG,GAAkBH,EAAAA,EAAAA,IAAkB,QAE1C,OAAQI,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAO,CAC/C/6B,GAAI,kBACJ6yB,OAAOmI,EAAAA,EAAAA,IAAgB,CAAC,0BAA2B,CAAE,eAAeC,EAAAA,EAAAA,IAAOxF,MAAYwF,EAAAA,EAAAA,IAAOxF,IAASqC,aACtG,EACDoD,EAAAA,EAAAA,IAAaL,EAAiB,KAAM,CAClC3D,OAAOiE,EAAAA,EAAAA,KAAS,IAAM,EACpBC,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,aAAYL,EAAAA,EAAAA,IAAO1F,IAAc,MAAQ,mBAAoB,MAEzGtb,SAASkhB,EAAAA,EAAAA,KAAS,IAAM,EACtBI,EAAAA,EAAAA,GAAoB,MAAO7I,EAAY,EACrC6I,EAAAA,EAAAA,GAAoB,OAAQ,CAC1B1I,OAAOmI,EAAAA,EAAAA,IAAgB,CAAEQ,OAAQxD,GAAWj3C,QAC5C06C,UAAUC,EAAAA,EAAAA,IAAejC,GAAe,CAAC,aACxC,EACD8B,EAAAA,EAAAA,GAAoB,MAAO3I,EAAY,EACpCqI,EAAAA,EAAAA,IAAO1F,MACHuF,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOjI,EAAY,EACpDyI,EAAAA,EAAAA,GAAoB,MAAO,KAAM,EAC/BA,EAAAA,EAAAA,GAAoB,QAAS,CAC3Bv7B,GAAI,UACJlb,KAAM,QACNigB,QAAS6yB,GAAQ72C,MACjB46C,UAAUV,EAAAA,EAAAA,IAAOzF,IACjBoG,QAASzD,IACR,KAAM,EAAGpF,IACZwI,EAAAA,EAAAA,GAAoB,QAASvI,GAAYqI,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,sBAAuB,MAE3FC,EAAAA,EAAAA,GAAoB,MAAO,KAAM,EAC/BA,EAAAA,EAAAA,GAAoB,QAAS,CAC3Bv7B,GAAI,aACJlb,KAAM,QACNigB,SAAU6yB,GAAQ72C,MAClB46C,UAAUV,EAAAA,EAAAA,IAAOzF,IACjBoG,QAASzD,IACR,KAAM,EAAGlF,IACZsI,EAAAA,EAAAA,GAAoB,QAASrI,GAAYmI,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,yBAA0B,SAGhGO,EAAAA,EAAAA,IAAoB,IAAI,IAC5BN,EAAAA,EAAAA,GAAoB,MAAOpI,EAAY,EACrCoI,EAAAA,EAAAA,GAAoB,QAAS,MAAMF,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,iBAAkB,IAAM,MAAO,IAC3FQ,EAAAA,EAAAA,KAAgBP,EAAAA,EAAAA,GAAoB,SAAU,CAC5Cv7B,GAAI,QACJ+7B,SAAU,GACVC,UAAW/B,GACX0B,UAAUV,EAAAA,EAAAA,IAAOzF,IACjB,sBAAuBgF,EAAO,KAAOA,EAAO,GAAMyB,GAAkBjF,GAAYX,SAAY4F,IAC3F,GACAnB,EAAAA,EAAAA,KAAW,IAAOC,EAAAA,EAAAA,IAAoBmB,EAAAA,GAAW,MAAMC,EAAAA,EAAAA,KAAYlB,EAAAA,EAAAA,IAAO/E,KAAoBkG,KACrFtB,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,SAAU,CAClDh6C,MAAOq7C,EAAMp8B,GACbpd,IAAKw5C,EAAMp8B,KACVq7B,EAAAA,EAAAA,IAAiBe,EAAMC,iBAAkB,EAAGhJ,MAC7C,OACH,GAAID,GAAc,CACnB,CAACkJ,EAAAA,GAAetF,GAAYX,eAG/B4E,EAAAA,EAAAA,IAAO1F,KAAeqC,GAAQ72C,QAC1B+5C,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOzH,EAAa,EACrDiI,EAAAA,EAAAA,GAAoB,QAAShI,GAAa8H,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,sBAAwB,KAAMD,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,qCAAuC,MAAO,IACxKC,EAAAA,EAAAA,GAAoB,QAAS,CAC3Bv7B,GAAI,UACJ5V,KAAM,UACNtF,KAAM,OACNy3C,OAAQ,aACRZ,UAAUV,EAAAA,EAAAA,IAAOzF,IACjBuG,SAAU,GACVC,UAAW/B,GACXuC,QAASpE,IACR,KAAM,GAAI5E,IACb+H,EAAAA,EAAAA,GAAoB,MAAO9H,EAAa,EACtC8H,EAAAA,EAAAA,GAAoB,MAAO,KAAM,EAC/BA,EAAAA,EAAAA,GAAoB,SAAU,MAAMF,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,sBAAwB,IAAK,IAC1FC,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BA,EAAAA,EAAAA,GAAoB,KAAM,MAAMF,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,sBAAwB,MAAOD,EAAAA,EAAAA,KAAiBJ,EAAAA,EAAAA,IAAOxE,KAAiB,QAGrI8E,EAAAA,EAAAA,GAAoB,MAAO,KAAM,EAC/BA,EAAAA,EAAAA,GAAoB,SAAU,MAAMF,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,yBAA2B,IAAK,IAC7FC,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BA,EAAAA,EAAAA,GAAoB,KAAM,MAAMF,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,uBAAwB,IACjFC,EAAAA,EAAAA,GAAoB,KAAM,MAAMF,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,uBAAyB,MAAOD,EAAAA,EAAAA,KAAiBJ,EAAAA,EAAAA,IAAOrE,KAAoB,IACrI2E,EAAAA,EAAAA,GAAoB,KAAM,MAAMF,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,sBAAwB,MAAOD,EAAAA,EAAAA,KAAiBJ,EAAAA,EAAAA,IAAOpE,KAAgB,cAKvIiE,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOrH,EAAa,EACrD6H,EAAAA,EAAAA,GAAoB,QAAS5H,GAAa0H,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,mBAAqB,KAAM,IAC9FQ,EAAAA,EAAAA,KAAgBP,EAAAA,EAAAA,GAAoB,QAAS,CAC3Cv7B,GAAI,QACJ5V,KAAM,QACNtF,KAAM,OACNi3C,WAAWd,EAAAA,EAAAA,IAAO1F,IAClByG,UAAW/B,GACX0B,UAAUV,EAAAA,EAAAA,IAAOzF,IACjB,sBAAuBgF,EAAO,KAAOA,EAAO,GAAMyB,GAAkBjF,GAAYE,MAAS+E,IACxF,KAAM,GAAIrI,GAAc,CACzB,CAAC6I,EAAAA,GAAazF,GAAYE,YAGhCU,GAAQ72C,OAwIN86C,EAAAA,EAAAA,IAAoB,IAAI,KAvIvBf,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOlH,EAAa,EACrD0H,EAAAA,EAAAA,GAAoB,MAAOzH,EAAa,EACtCyH,EAAAA,EAAAA,GAAoB,MAAOxH,EAAa,EACtCwH,EAAAA,EAAAA,GAAoB,QAAS,MAAMF,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,0BAA4B,KAAM,IAC9FC,EAAAA,EAAAA,GAAoB,MAAOvH,EAAa,EACtC8H,EAAAA,EAAAA,KAAgBP,EAAAA,EAAAA,GAAoB,QAAS,CAC3Cv7B,GAAI,eACJ5V,KAAM,eACNtF,KAAM,OACNi3C,SAAU,GACVC,UAAW/B,GACX0B,UAAUV,EAAAA,EAAAA,IAAOzF,IACjB,sBAAuBgF,EAAO,KAAOA,EAAO,GAAMyB,GAAkBjF,GAAYI,YAAe6E,IAC9F,KAAM,GAAIhI,GAAc,CACzB,CAACwI,EAAAA,GAAazF,GAAYI,gBAE5B0E,EAAAA,EAAAA,KAAgBP,EAAAA,EAAAA,GAAoB,QAAS,CAC3Cv7B,GAAI,eACJ5V,KAAM,eACNyoC,MAAO,eACP/tC,KAAM,OACNi3C,SAAU,GACVC,UAAW/B,GACX0B,UAAUV,EAAAA,EAAAA,IAAOzF,IACjB,sBAAuBgF,EAAO,KAAOA,EAAO,GAAMyB,GAAkBjF,GAAYK,YAAe4E,IAC9F,KAAM,GAAI/H,GAAc,CACzB,CAACuI,EAAAA,GAAazF,GAAYK,oBAIhCkE,EAAAA,EAAAA,GAAoB,MAAOpH,EAAa,EACtCoH,EAAAA,EAAAA,GAAoB,QAAS,MAAMF,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,sBAAwB,KAAM,IAC1FC,EAAAA,EAAAA,GAAoB,MAAO,KAAM,EAC/BO,EAAAA,EAAAA,KAAgBP,EAAAA,EAAAA,GAAoB,QAAS,CAC3Cv7B,GAAI,wBACJ5V,KAAM,wBACNyoC,OAAOmI,EAAAA,EAAAA,IAAgB,CAAC,mBAAoB,CAAE0B,QAASrD,QACvDv0C,KAAM,OACN63C,YAAa,KACbC,UAAW,IACXC,UAAW,IACXhrB,QAAS,yBACTkqB,SAAU,GACVC,UAAW/B,GACX0B,UAAUV,EAAAA,EAAAA,IAAOzF,IACjB,sBAAuBgF,EAAO,KAAOA,EAAO,GAAMyB,GAAkBjF,GAAYM,oBAAuB2E,IACtG,KAAM,GAAI7H,GAAc,CACzB,CAACqI,EAAAA,GAAazF,GAAYM,wBAE5B8D,EAAAA,EAAAA,IAAiB,QACjBU,EAAAA,EAAAA,KAAgBP,EAAAA,EAAAA,GAAoB,QAAS,CAC3Cv7B,GAAI,2BACJ5V,KAAM,2BACNyoC,OAAOmI,EAAAA,EAAAA,IAAgB,CAAC,mBAAoB,CAAE0B,QAASrD,QACvDv0C,KAAM,OACN+sB,QAAS,iBACT+qB,UAAW,IACXC,UAAW,IACXF,YAAa,KACbZ,SAAU,GACVC,UAAW/B,GACX0B,UAAUV,EAAAA,EAAAA,IAAOzF,IACjB,sBAAuBgF,EAAO,KAAOA,EAAO,GAAMyB,GAAkBjF,GAAYO,uBAA0B0E,IACzG,KAAM,GAAI5H,GAAc,CACzB,CAACoI,EAAAA,GAAazF,GAAYO,2BAE5B6D,EAAAA,EAAAA,IAAiB,QACjBU,EAAAA,EAAAA,KAAgBP,EAAAA,EAAAA,GAAoB,QAAS,CAC3Cv7B,GAAI,2BACJ5V,KAAM,2BACNyoC,OAAOmI,EAAAA,EAAAA,IAAgB,CAAC,mBAAoB,CAAE0B,QAASrD,QACvDv0C,KAAM,OACN+sB,QAAS,iBACT+qB,UAAW,IACXC,UAAW,IACXF,YAAa,KACbZ,SAAU,GACVC,UAAW/B,GACX0B,UAAUV,EAAAA,EAAAA,IAAOzF,IACjB,sBAAuBgF,EAAO,KAAOA,EAAO,GAAMyB,GAAkBjF,GAAYQ,uBAA0ByE,IACzG,KAAM,GAAI3H,GAAc,CACzB,CAACmI,EAAAA,GAAazF,GAAYQ,iCAKlC+D,EAAAA,EAAAA,GAAoB,MAAOhH,EAAa,EACtCgH,EAAAA,EAAAA,GAAoB,MAAO/G,EAAa,EACtC+G,EAAAA,EAAAA,GAAoB,QAAS,MAAMF,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,sBAAwB,MAAOD,EAAAA,EAAAA,KAAiBJ,EAAAA,EAAAA,IAAO5F,IAAUwD,eAAiB,KAAO,MAAQ,OAAQ,IACrKiD,EAAAA,EAAAA,KAAgBP,EAAAA,EAAAA,GAAoB,QAAS,CAC3C1I,OAAOmI,EAAAA,EAAAA,IAAgB,CAAE0B,QAAStD,OAClChvC,KAAM,mBACNtF,KAAM,SACNmd,IAAK,IACLinB,KAAM,QACN6S,SAAU,GACVC,UAAW/B,GACX0B,UAAUV,EAAAA,EAAAA,IAAOzF,IACjB,sBAAuBgF,EAAO,KAAOA,EAAO,GAAMyB,GAAkBjF,GAAYS,gBAAmBwE,IAClG,KAAM,GAAIxH,GAAc,CACzB,CAACgI,EAAAA,GAAazF,GAAYS,sBAG9B8D,EAAAA,EAAAA,GAAoB,MAAO7G,EAAa,EACtC6G,EAAAA,EAAAA,GAAoB,QAAS,MAAMF,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,oBAAsB,MAAOD,EAAAA,EAAAA,KAAiBJ,EAAAA,EAAAA,IAAO5F,IAAUwD,eAAiB,KAAO,KAAO,MAAO,IACjKiD,EAAAA,EAAAA,KAAgBP,EAAAA,EAAAA,GAAoB,QAAS,CAC3C1I,OAAOmI,EAAAA,EAAAA,IAAgB,CAAE0B,QAASpD,OAClClvC,KAAM,iBACNtF,KAAM,SACNmd,IAAK,IACLinB,KAAM,OACN8S,UAAW/B,GACX0B,UAAUV,EAAAA,EAAAA,IAAOzF,IACjB,sBAAuBgF,EAAO,KAAOA,EAAO,GAAMyB,GAAkBjF,GAAYU,cAAiBuE,IAChG,KAAM,GAAItH,GAAc,CACzB,CAAC8H,EAAAA,GAAazF,GAAYU,oBAG9B6D,EAAAA,EAAAA,GAAoB,MAAO3G,EAAa,EACtC2G,EAAAA,EAAAA,GAAoB,QAAS,MAAMF,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,qBAAuB,MAAOD,EAAAA,EAAAA,KAAiBJ,EAAAA,EAAAA,IAAO5F,IAAUwD,eAAiB,KAAO,KAAO,MAAO,IAClKiD,EAAAA,EAAAA,KAAgBP,EAAAA,EAAAA,GAAoB,QAAS,CAC3C1I,OAAOmI,EAAAA,EAAAA,IAAgB,CAAE0B,QAASpD,OAClClvC,KAAM,kBACNtF,KAAM,SACNmd,IAAK,IACLinB,KAAM,OACN8S,UAAW/B,GACX0B,UAAUV,EAAAA,EAAAA,IAAOzF,IACjB,sBAAuBgF,EAAO,KAAOA,EAAO,GAAMyB,GAAkBjF,GAAYW,eAAkBsE,IACjG,KAAM,GAAIpH,GAAc,CACzB,CAAC4H,EAAAA,GAAazF,GAAYW,0BAMtC4D,EAAAA,EAAAA,GAAoB,MAAOzG,EAAa,EACtCyG,EAAAA,EAAAA,GAAoB,QAAS,MAAMF,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,mBAAqB,KAAM,IACvFJ,EAAAA,EAAAA,IAAaT,EAA2B,CACtCrwC,KAAM,QACNyhB,MAAOmrB,GAAYG,MACnBwE,UAAUV,EAAAA,EAAAA,IAAOzF,IACjBsH,cAAe5E,IACd,KAAM,EAAG,CAAC,QAAS,kBAGzB+C,EAAAA,EAAAA,IAAOlE,MACH+D,EAAAA,EAAAA,OAAciC,EAAAA,EAAAA,IAAapC,EAAyB,CACnD/3C,IAAK,EACLywB,SAAS4nB,EAAAA,EAAAA,IAAOlE,KACf,KAAM,EAAG,CAAC,cACb8E,EAAAA,EAAAA,IAAoB,IAAI,IAC3BZ,EAAAA,EAAAA,IAAOzF,MACHsF,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOhG,EAAa,EACrDmG,EAAAA,EAAAA,IAAaN,QAEdE,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAO/F,EAAa,EACrDuG,EAAAA,EAAAA,GAAoB,SAAU,CAC5B1I,MAAO,UACP/tC,KAAM,SACN62C,UAAUV,EAAAA,EAAAA,IAAOzF,MAChB6F,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,mBAAoB,EAAGrG,IACnDsG,EAAAA,EAAAA,GAAoB,SAAU,CAC5B1I,MAAO,SACP+I,SAASF,EAAAA,EAAAA,IAAe3B,GAAU,CAAC,cAClCsB,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,mBAAoB,EAAGpG,QAExD,GAAIvC,QAGXnvC,EAAG,KAEJ,EAAE,CAEP,I,WC/lBA,MAAMw5C,IAA2B,QAAgB,GAAQ,CAAC,CAAC,YAAY,qBAEvE,S,uICLA,MAAMtK,EAAa,CACjB1yB,GAAI,cACJ6yB,MAAO,QAEHF,EAAa,CAAEE,MAAO,aAgB5B,OAA4BsC,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,aACRM,MAAMC,GAEN,MAAME,GAAQC,EAAAA,EAAAA,KAERR,GAAgCa,EAAAA,EAAAA,KACpC,IAAMN,EAAMU,QAAQ0G,EAAAA,GAAAA,QAAAA,UAEhB5H,GAA0Cc,EAAAA,EAAAA,KAC9C,IAAMN,EAAMU,QAAQ2G,EAAAA,GAAAA,QAAAA,qBAEhBC,GAAyChH,EAAAA,EAAAA,KAC7C,IAAMN,EAAMU,QAAQqD,EAAAA,GAAAA,QAAAA,gBAGxB,MAAO,CAACW,EAAUC,MACRM,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOrI,EAAY,EAC3D6I,EAAAA,EAAAA,GAAoB,MAAO5I,EAAY,EACrCuI,EAAAA,EAAAA,IAAakC,EAAAA,EAAgB,CAC3B/H,UAAU4F,EAAAA,EAAAA,IAAO5F,GACjBC,QAAQ2F,EAAAA,EAAAA,IAAO3F,GACfC,YAAY,EACZC,SAASyF,EAAAA,EAAAA,IAAOkC,GAAa3H,SAC5B,KAAM,EAAG,CAAC,WAAY,SAAU,gBAIzC,IChDA,MAAMwH,EAAc,EAEpB,O,iJCFA,MAAMtK,EAAa,CACjB1yB,GAAI,eACJ6yB,MAAO,QAEHF,EAAa,CAAEE,MAAO,aAiB5B,OAA4BsC,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,cACRM,MAAMC,GAEN,MAAM0H,GAAQC,EAAAA,EAAAA,MACRzH,GAAQC,EAAAA,EAAAA,KAERT,GAA0Cc,EAAAA,EAAAA,KAC9C,IAAMN,EAAMU,QAAQ2G,EAAAA,GAAAA,QAAAA,qBAEhB5H,GAAgCa,EAAAA,EAAAA,KACpC,IAAMN,EAAMU,QAAQ0G,EAAAA,GAAAA,QAAAA,UAEhBE,GAAyChH,EAAAA,EAAAA,KAC7C,IAAMN,EAAMU,QAAQqD,EAAAA,GAAAA,QAAAA,gBAkBxB,OAfE2D,EAAAA,EAAAA,KAAc,KACZ1H,EAAM8D,SAASC,EAAAA,GAAAA,QAAAA,iBAAyC,CACtDC,UAAWwD,EAAMvZ,OAAO+V,WACxB,KAGJO,EAAAA,EAAAA,KACE,IAAMiD,EAAMvZ,OAAO+V,YACnBtf,UACOijB,GACH3H,EAAM6D,OAAOE,EAAAA,GAAAA,UAAAA,c,IAKd,CAACW,EAAUC,MACRM,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOrI,EAAY,EAC3D6I,EAAAA,EAAAA,GAAoB,MAAO5I,EAAY,EACpCsI,EAAAA,EAAAA,IAAOkC,GAAa1H,QAAQz1B,KACxB86B,EAAAA,EAAAA,OAAciC,EAAAA,EAAAA,IAAaK,EAAAA,EAAgB,CAC1Cx6C,IAAK,EACLyyC,UAAU4F,EAAAA,EAAAA,IAAO5F,GACjBC,QAAQ2F,EAAAA,EAAAA,IAAO3F,GACfG,SAASwF,EAAAA,EAAAA,IAAOkC,GAAa1H,QAC7BD,SAASyF,EAAAA,EAAAA,IAAOkC,GAAa3H,SAC5B,KAAM,EAAG,CAAC,WAAY,SAAU,UAAW,cAC9CqG,EAAAA,EAAAA,IAAoB,IAAI,OAIlC,ICpEA,MAAMmB,EAAc,EAEpB,O,sKCFA,MAAMS,EAAetkC,KAAMukC,EAAAA,EAAAA,IAAa,mBAAmBvkC,EAAEA,KAAIwkC,EAAAA,EAAAA,MAAcxkC,GACzEu5B,EAAa,CAAE1yB,GAAI,sBACnB2yB,EAAa,CAAC,SACdC,EAA2B6K,GAAa,KAAmBlC,EAAAA,EAAAA,GAAoB,IAAK,CACxF1I,MAAO,qBACP,cAAe,QACd,MAAO,KACJC,EAAa,CACjBF,GAEIG,EAAa,CAAEF,MAAO,sBACtBG,EAAa,CAAEH,MAAO,sBACtBI,EAAa,CACjBrwC,IAAK,EACLiwC,MAAO,iBAEHK,EAAa,CACjBtwC,IAAK,EACLiwC,MAAO,iBAEHM,EAAa,CAAEN,MAAO,mBACtBO,EAA4BqK,GAAa,KAAmBlC,EAAAA,EAAAA,GAAoB,IAAK,CACzF1I,MAAO,mBACP,cAAe,QACd,MAAO,KACJQ,EAAc,CAAER,MAAO,gBACvBS,EAAc,CAAET,MAAO,gBACvBU,EAAc,CAAC,SACfC,EAA4BiK,GAAa,KAAmBlC,EAAAA,EAAAA,GAAoB,IAAK,CACzF1I,MAAO,sBACP,cAAe,QACd,MAAO,KACJY,EAAc,CAClBD,GAcF,OAA4B2B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,mBACRrjB,MAAO,CACLqqB,MAAO,KACPwB,cAAe,MAEjBC,MAAO,CAAC,gBACRnI,MAAMC,GAAc,KAAEmI,IAExB,MAAM/rB,EAAQ4jB,GASN,MAAEyG,EAAK,cAAEwB,IAAkB3H,EAAAA,EAAAA,IAAOlkB,GAExCwI,eAAewjB,EAAYlE,SACnBmE,EAAAA,EAAAA,IACC,YAAYnE,iBAA0B,CACzCoE,aAAc,SAEfhlB,MAAMilB,IACL,MAAMC,EAAa3f,OAAOpH,IAAIgnB,gBAC5B,IAAIC,KAAK,CAACH,EAASt0C,MAAO,CAAE9E,KAAM,yBAE9Bw5C,EAAUvmB,SAASwmB,cAAc,KACvCD,EAAQ7+B,KAAO0+B,EACfG,EAAQE,aAAa,WAAY,GAAG3E,SACpC9hB,SAAS+P,KAAK1jB,YAAYk6B,GAC1BA,EAAQG,OAAO,GAErB,CAEF,MAAO,CAAClE,EAAUC,KAChB,MAAMkE,GAAwBhE,EAAAA,EAAAA,IAAkB,cAC1CiE,GAAyBjE,EAAAA,EAAAA,IAAkB,eAEjD,OAAQI,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOrI,EAAY,EAC3D6I,EAAAA,EAAAA,GAAoB,MAAO,CACzB1I,OAAOmI,EAAAA,EAAAA,IAAgB,CAAC,iCAAkC,CAAE4D,WAAW3D,EAAAA,EAAAA,IAAO2C,GAAeiB,eAC7F3H,OACE+D,EAAAA,EAAAA,IAAO2C,GAAeiB,YAClBtE,EAAKe,GAAG,sBAAqBL,EAAAA,EAAAA,IAAO2C,GAAe94C,QACnDy1C,EAAKe,GAAG,yBAAwBL,EAAAA,EAAAA,IAAO2C,GAAe94C,QAE5D82C,QAASpB,EAAO,KAAOA,EAAO,GAAMyB,IAClChB,EAAAA,EAAAA,IAAO2C,GAAeiB,YAClBtE,EAAKuE,QAAQh0C,MAAKmwC,EAAAA,EAAAA,IAAO2C,GAAeiB,aACxC,OAEL/L,EAAY,GAAIH,IACnB4I,EAAAA,EAAAA,GAAoB,MAAOxI,EAAY,EACrCmI,EAAAA,EAAAA,IAAawD,EAAuB,CAClC,eAAezD,EAAAA,EAAAA,IAAOmB,GAAO2C,MAC7B/qB,OAAOinB,EAAAA,EAAAA,IAAOmB,GAAOpoB,OACpB,KAAM,EAAG,CAAC,cAAe,WAC5BunB,EAAAA,EAAAA,GAAoB,MAAOvI,EAAY,CACL,aAA/BiI,EAAAA,EAAAA,IAAO2C,GAAe94C,OAClBg2C,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAO9H,EAAY,EACpDsI,EAAAA,EAAAA,GAAoB,OAAQ,MAAMF,EAAAA,EAAAA,KAAiBJ,EAAAA,EAAAA,IAAO2C,GAAe1G,OAAQ,IACjFqE,EAAAA,EAAAA,GAAoB,IAAK,CACvB1I,MAAO,aACP,cAAe,OACf+I,QAASpB,EAAO,KAAOA,EAAO,GAAMyB,GACtC1B,EAAKuE,QAAQh0C,KAAK,CAChBV,KAAM,cACN05B,OAAQ,CAAE+V,WAAWoB,EAAAA,EAAAA,IAAO2C,GAAe/D,iBAI5CoB,EAAAA,EAAAA,IAAO2C,GAAe9F,WAClBgD,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,IAAK,CACtCn4C,IAAK,EACLiwC,MAAO,iBACP,cAAe,OACf+I,QAASpB,EAAO,KAAOA,EAAO,IAAKkB,EAAAA,EAAAA,KAAgBO,GAAiB8B,GAAY9C,EAAAA,EAAAA,IAAO2C,GAAe/D,YAAa,CAAC,iBAEtHgC,EAAAA,EAAAA,IAAoB,IAAI,IAC5BN,EAAAA,EAAAA,GAAoB,IAAK,CACvB1I,MAAO,cACP,cAAe,OACf+I,QAASpB,EAAO,KAAOA,EAAO,GAAMyB,GAAiB6B,EAAK,gBAAgB,WAG7EhD,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAO7H,EAAY,EACpDkI,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,KAAiBJ,EAAAA,EAAAA,IAAO2C,GAAe1G,OAAS,IAAK,IACtEqE,EAAAA,EAAAA,GAAoB,OAAQpI,EAAY,EACtCiI,EAAAA,EAAAA,IAAiB,OACjBhI,GACAgI,EAAAA,EAAAA,IAAiB,KAAMC,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,qBAAuB,KAAMD,EAAAA,EAAAA,KAAiBJ,EAAAA,EAAAA,IAAO2C,GAAeoB,UAAY,GAAI,SAG5IzD,EAAAA,EAAAA,GAAoB,MAAOlI,EAAa,EACtC+H,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,KAAiBJ,EAAAA,EAAAA,IAAO2C,GAAexG,aAAe,OAAQiE,EAAAA,EAAAA,KAAiBJ,EAAAA,EAAAA,IAAO2C,GAAevG,aAAe,IAAK,IAC1IkE,EAAAA,EAAAA,GAAoB,OAAQjI,EAAa,CACP,aAA/B2H,EAAAA,EAAAA,IAAO2C,GAAe94C,OAClBg2C,EAAAA,EAAAA,OAAciC,EAAAA,EAAAA,IAAa4B,EAAwB,CAClD/7C,IAAK,EACLq0B,GAAI,CACN7sB,KAAM,UACN05B,OAAQ,CAAE+V,WAAWoB,EAAAA,EAAAA,IAAO2C,GAAe/D,aAExC,CACDrwC,SAAS2xC,EAAAA,EAAAA,KAAS,IAAM,EACtBC,EAAAA,EAAAA,IAAiB,OAAQC,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,6BAA8B,MAElF93C,EAAG,GACF,EAAG,CAAC,SACPq4C,EAAAA,EAAAA,IAAoB,IAAI,YAKpCN,EAAAA,EAAAA,GAAoB,MAAO,CACzB1I,OAAOmI,EAAAA,EAAAA,IAAgB,CAAC,6BAA8B,CAAE4D,WAAW3D,EAAAA,EAAAA,IAAO2C,GAAeqB,WACzF/H,OACE+D,EAAAA,EAAAA,IAAO2C,GAAeqB,QAClB1E,EAAKe,GAAG,kBAAiBL,EAAAA,EAAAA,IAAO2C,GAAe94C,QAC/Cy1C,EAAKe,GAAG,qBAAoBL,EAAAA,EAAAA,IAAO2C,GAAe94C,QAExD82C,QAASpB,EAAO,KAAOA,EAAO,GAAMyB,IAClChB,EAAAA,EAAAA,IAAO2C,GAAeqB,QAAU1E,EAAKuE,QAAQh0C,MAAKmwC,EAAAA,EAAAA,IAAO2C,GAAeqB,SAAW,OAEpFxL,EAAa,GAAIF,IACpB,CAEJ,I,UC9KA,MAAMyJ,GAA2B,OAAgB,EAAQ,CAAC,CAAC,YAAY,qBAEvE,QCLA,MAAMS,EAAetkC,KAAMukC,EAAAA,EAAAA,IAAa,mBAAmBvkC,EAAEA,KAAIwkC,EAAAA,EAAAA,MAAcxkC,GACzEu5B,EAAa,CACjB9vC,IAAK,EACLiwC,MAAO,kBAEHF,EAA2B8K,GAAa,KAAmBlC,EAAAA,EAAAA,GAAoB,MAAO,KAAM,EACnFA,EAAAA,EAAAA,GAAoB,IAAK,CACpC1I,MAAO,eACP,cAAe,WAEf,KACED,EAAa,CACjBD,GAYF,OAA4BwC,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,gBACRrjB,MAAO,CACLmtB,WAAY,KACZtB,cAAe,MAEjBlI,MAAMC,GAER,MAAM5jB,EAAQ4jB,GAON,WAAEuJ,EAAU,cAAEtB,IAAkB3H,EAAAA,EAAAA,IAAOlkB,GAE/C,MAAO,CAACwoB,EAAUC,KAEZS,EAAAA,EAAAA,IAAO2C,GAAeuB,UACtBlE,EAAAA,EAAAA,IAAO2C,GAAeuB,QAAQt6B,MAAMu6B,GAAWA,EAAOC,eAAgBpE,EAAAA,EAAAA,IAAOiE,OAE5EpE,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,OAAQrI,EAAYE,KACvDiJ,EAAAA,EAAAA,IAAoB,IAAI,EAE9B,IC9CA,MAAM,GAA2B,OAAgB,EAAQ,CAAC,CAAC,YAAY,qBAEvE,Q,oBCRA,MAAMyD,EAAa,CACjB,IACA,MACA,KACA,MACA,IACA,MACA,KACA,MACA,IACA,MACA,KACA,MACA,IACA,MACA,KACA,OAGWC,EAA4BC,IACvC,MAAMz+C,EAAQihB,KAAKy9B,MAAMD,EAAQ,KAAO,IACxC,OAAOF,EAAWv+C,EAAQ,GAAG,ECjBzB2xC,EAAa,CAAEG,MAAO,QACtBF,EAAa,CAAEE,MAAO,gBACtBD,EAAa,CAAC,SAcpB,OAA4BuC,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,cACRrjB,MAAO,CACL2tB,QAAS,KACTC,iBAAkB,CAAE76C,KAAMsxB,UAE5Bsf,MAAMC,GAER,MAAM5jB,EAAQ4jB,GAON,iBAAEgK,EAAgB,QAAED,IAAYzJ,EAAAA,EAAAA,IAAOlkB,IACvC,EAAE9Y,IAAM28B,EAAAA,EAAAA,MAEd,SAASgK,EAAsBC,GAC7B,OAAO5mC,EACL,oCAAoCsmC,EAClCM,KAGN,CAEF,MAAO,CAACtF,EAAUC,MACRM,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOrI,EAAY,EAC3D0I,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,KAAiBJ,EAAAA,EAAAA,IAAO6E,EAAAA,GAAP7E,EAAqBA,EAAAA,EAAAA,IAAOyE,GAASK,MAAM9E,EAAAA,EAAAA,IAAO0E,KAAsB,IAAK,IAC/GpE,EAAAA,EAAAA,GAAoB,MAAO5I,EAAY,EACpCsI,EAAAA,EAAAA,IAAOyE,GAASG,cACZ/E,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,IAAK,CACtCn4C,IAAK,EACLiwC,MAAO,wBACPmN,OAAOC,EAAAA,EAAAA,IAAgB,CACzB9R,UAAW,WAAU8M,EAAAA,EAAAA,IAAOyE,GAASG,oBAEnC,cAAe,OACf3I,MAAO0I,GAAsB3E,EAAAA,EAAAA,IAAOyE,GAASG,cAC5C,KAAM,GAAIjN,KACbiJ,EAAAA,EAAAA,IAAoB,IAAI,OAIlC,IC1DA,MAAM,GAA2B,OAAgB,EAAQ,CAAC,CAAC,YAAY,qBAEvE,QCLA,MAAM4B,EAAetkC,KAAMukC,EAAAA,EAAAA,IAAa,mBAAmBvkC,EAAEA,KAAIwkC,EAAAA,EAAAA,MAAcxkC,GACzEu5B,EAAa,CACjB9vC,IAAK,EACLod,GAAI,mBAEA2yB,EAAa,CAAEE,MAAO,iBACtBD,EAA2B6K,GAAa,KAAmBlC,EAAAA,EAAAA,GAAoB,KAAM,KAAM,MAAO,KAClGzI,EAAa,CAAED,MAAO,cACtBE,EAAa,CAAC,MAAO,MAAO,SAC5BC,EAAa,CAAEH,MAAO,cACtBI,GAAa,CAAC,MAAO,MAAO,SAC5BC,GAAa,CAAC,MAAO,SACrBC,GAAa,CAAC,MAAO,SACrBC,GAAc,CAAC,MAAO,SAa5B,QAA4B+B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,iBACRrjB,MAAO,CACL6rB,cAAe,KACf+B,iBAAkB,CAAE76C,KAAMsxB,UAE5Bsf,MAAMC,GAER,MAAM5jB,EAAQ4jB,GAON,iBAAEgK,EAAgB,cAAE/B,IAAkB3H,EAAAA,EAAAA,IAAOlkB,GAErD,MAAO,CAACwoB,EAAUC,KACRS,EAAAA,EAAAA,IAAO2C,GAAesC,eAAgBjF,EAAAA,EAAAA,IAAO2C,GAAeuC,aAC/DrF,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOrI,EAAY,EACpD6I,EAAAA,EAAAA,GAAoB,QAAS5I,EAAY,EACvC4I,EAAAA,EAAAA,GAAoB,QAAS,KAAM,EACjCA,EAAAA,EAAAA,GAAoB,KAAM,KAAM,CAC9B3I,GACA2I,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BA,EAAAA,EAAAA,GAAoB,MAAOzI,EAAY,EACrCsI,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,mBAAqB,IAAK,IACpEC,EAAAA,EAAAA,GAAoB,MAAO,CACzB1I,MAAO,cACPuN,IAAK,iBAAgBnF,EAAAA,EAAAA,IAAO2C,GAAesC,aAAaG,WACxDC,IACF/F,EAAKe,GACH,8BAA6BL,EAAAA,EAAAA,IAAO2C,GAAesC,aAAaG,QAGhEnJ,MACFqD,EAAKe,GACH,8BAA6BL,EAAAA,EAAAA,IAAO2C,GAAesC,aAAaG,SAG/D,KAAM,EAAGtN,QAGhBwI,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BA,EAAAA,EAAAA,GAAoB,MAAOvI,EAAY,EACrCoI,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,iBAAmB,IAAK,IAClEC,EAAAA,EAAAA,GAAoB,MAAO,CACzB1I,MAAO,cACPuN,IAAK,iBAAgBnF,EAAAA,EAAAA,IAAO2C,GAAeuC,WAAWE,WACtDC,IACF/F,EAAKe,GACH,8BAA6BL,EAAAA,EAAAA,IAAO2C,GAAeuC,WAAWE,QAG9DnJ,MACFqD,EAAKe,GACH,8BAA6BL,EAAAA,EAAAA,IAAO2C,GAAeuC,WAAWE,SAG7D,KAAM,EAAGpN,aAKpBsI,EAAAA,EAAAA,GAAoB,QAAS,KAAM,EACjCA,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BA,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BA,EAAAA,EAAAA,GAAoB,MAAO,CACzB1I,MAAO,gCACPuN,IAAK,+BACLE,IAAK/F,EAAKe,GAAG,gCACbpE,MAAOqD,EAAKe,GAAG,iCACd,KAAM,EAAGpI,OAEdqI,EAAAA,EAAAA,GAAoB,KAAM,MAAMF,EAAAA,EAAAA,KAAiBJ,EAAAA,EAAAA,IAAOsF,EAAAA,GAAPtF,EAC/CA,EAAAA,EAAAA,IAAO2C,GAAesC,aAAaM,aACnCvF,EAAAA,EAAAA,IAAO0E,KACL,IACJpE,EAAAA,EAAAA,GAAoB,KAAM,MAAMF,EAAAA,EAAAA,KAAiBJ,EAAAA,EAAAA,IAAOsF,EAAAA,GAAPtF,EAC/CA,EAAAA,EAAAA,IAAO2C,GAAeuC,WAAWK,aACjCvF,EAAAA,EAAAA,IAAO0E,KACL,MAENpE,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BA,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BA,EAAAA,EAAAA,GAAoB,MAAO,CACzB1I,MAAO,gCACPuN,IAAK,6BACLE,IAAK/F,EAAKe,GAAG,6BACbpE,MAAOqD,EAAKe,GAAG,8BACd,KAAM,EAAGnI,OAEdoI,EAAAA,EAAAA,GAAoB,KAAM,MAAMF,EAAAA,EAAAA,IAAiB9oC,OAAqD,KAA9C0oC,EAAAA,EAAAA,IAAO2C,GAAesC,aAAaO,UAAgBzH,QAAQ,IAAM,KAAM,IAC/HuC,EAAAA,EAAAA,GAAoB,KAAM,MAAMF,EAAAA,EAAAA,IAAiB9oC,OAAmD,KAA5C0oC,EAAAA,EAAAA,IAAO2C,GAAeuC,WAAWM,UAAgBzH,QAAQ,IAAM,KAAM,MAE/HuC,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BA,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BA,EAAAA,EAAAA,GAAoB,MAAO,CACzB1I,MAAO,gCACPuN,IAAK,0BACLE,IAAK/F,EAAKe,GAAG,yBACbpE,MAAOqD,EAAKe,GAAG,0BACd,KAAM,EAAGlI,OAEdmI,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BL,EAAAA,EAAAA,IAAawF,EAAa,CACxBhB,SAASzE,EAAAA,EAAAA,IAAO2C,GAAesC,aAC/BP,kBAAkB1E,EAAAA,EAAAA,IAAO0E,IACxB,KAAM,EAAG,CAAC,UAAW,wBAE1BpE,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BL,EAAAA,EAAAA,IAAawF,EAAa,CACxBhB,SAASzE,EAAAA,EAAAA,IAAO2C,GAAeuC,WAC/BR,kBAAkB1E,EAAAA,EAAAA,IAAO0E,IACxB,KAAM,EAAG,CAAC,UAAW,iCAMlC9D,EAAAA,EAAAA,IAAoB,IAAI,EAE9B,ICjJA,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,YAAY,qBAEvE,UCLA,MAAM4B,GAAetkC,KAAMukC,EAAAA,EAAAA,IAAa,mBAAmBvkC,EAAEA,KAAIwkC,EAAAA,EAAAA,MAAcxkC,GACzEu5B,GAAa,CAAE1yB,GAAI,gBACnB2yB,GAAa,CAAEE,MAAO,gBACtBD,GAA2B6K,IAAa,KAAmBlC,EAAAA,EAAAA,GAAoB,IAAK,CACxF1I,MAAO,gBACP,cAAe,QACd,MAAO,KACJC,GAAa,CAAED,MAAO,SACtBE,GAAa,CAAEF,MAAO,SACtBG,GAAa,CAAEpwC,IAAK,GACpBqwC,GAAa,CAAEJ,MAAO,SACtBK,GAAa,CAAEL,MAAO,SACtBM,GAAa,CAAEN,MAAO,gBACtBO,GAA4BqK,IAAa,KAAmBlC,EAAAA,EAAAA,GAAoB,IAAK,CACzF1I,MAAO,aACP,cAAe,QACd,MAAO,KACJQ,GAAc,CAAER,MAAO,SACvBS,GAAc,CAAET,MAAO,gBACvBU,GAA4BkK,IAAa,KAAmBlC,EAAAA,EAAAA,GAAoB,IAAK,CACzF1I,MAAO,mBACP,cAAe,QACd,MAAO,KACJW,GAAc,CAAEX,MAAO,SACvBY,GAA4BgK,IAAa,KAAmBlC,EAAAA,EAAAA,GAAoB,KAAM,KAAM,MAAO,KACnG7H,GAAc,CAAEb,MAAO,SACvBc,GAAc,CAClB/wC,IAAK,EACLiwC,MAAO,gBAEHe,GAAc,CAAC,OACfC,GAAc,CAAEhB,MAAO,SACvBiB,GAA4B2J,IAAa,KAAmBlC,EAAAA,EAAAA,GAAoB,KAAM,KAAM,MAAO,KACnGxH,GAAc,CAAElB,MAAO,SACvBmB,GAAc,CAClBpxC,IAAK,EACLiwC,MAAO,gBAEHoB,GAA4BwJ,IAAa,KAAmBlC,EAAAA,EAAAA,GAAoB,IAAK,CACzF1I,MAAO,uBACP,cAAe,QACd,MAAO,KACJqB,GAAc,CAAErB,MAAO,SACvBsB,GAA4BsJ,IAAa,KAAmBlC,EAAAA,EAAAA,GAAoB,KAAM,KAAM,MAAO,KACnGnH,GAAc,CAAEvB,MAAO,SAc7B,QAA4BsC,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,cACRrjB,MAAO,CACL6rB,cAAe,KACf+B,iBAAkB,CAAE76C,KAAMsxB,SAC1BuqB,gBAAiB,CAAE77C,KAAMsxB,UAE3Bsf,MAAMC,GAER,MAAM5jB,EAAQ4jB,GAQN,gBAAEgL,EAAe,cAAE/C,EAAa,iBAAE+B,IAAqB1J,EAAAA,EAAAA,IAAOlkB,GAC9D6uB,GAAYzK,EAAAA,EAAAA,KAChB,IACiC,YAA/BpkB,EAAM6rB,cAAciD,QACW,OAA/B9uB,EAAM6rB,cAAciD,SAG1B,MAAO,CAACtG,EAAUC,KAChB,MAAMsG,GAAsBpG,EAAAA,EAAAA,IAAkB,YAE9C,OAAQI,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOrI,GAAY,EAC3D6I,EAAAA,EAAAA,GAAoB,MAAO5I,GAAY,CACrCC,IACA2I,EAAAA,EAAAA,GAAoB,OAAQzI,IAAYuI,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,sBAAuB,IACxFF,EAAAA,EAAAA,IAAiB,OACjBG,EAAAA,EAAAA,GAAoB,OAAQxI,IAAYsI,EAAAA,EAAAA,KAAiBJ,EAAAA,EAAAA,IAAO2C,GAAemD,QAAS,IACxF7F,EAAAA,EAAAA,IAAa8F,EAAe,CAC1BpD,eAAe3C,EAAAA,EAAAA,IAAO2C,GACtBsB,WAAY,MACX,KAAM,EAAG,CAAC,mBACZjE,EAAAA,EAAAA,IAAO2F,KACH9F,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAO/H,GAAY,EACpDoI,EAAAA,EAAAA,IAAiB,MAAOC,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,oBAAsB,KAAM,IAC7EC,EAAAA,EAAAA,GAAoB,OAAQtI,IAAYoI,EAAAA,EAAAA,KAAiBJ,EAAAA,EAAAA,IAAO2C,GAAeiD,QAAS,IACxFzF,EAAAA,EAAAA,IAAiB,OAAQC,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,4BAA8B,KAAM,IACtFC,EAAAA,EAAAA,GAAoB,OAAQrI,IAAYmI,EAAAA,EAAAA,KAAiBJ,EAAAA,EAAAA,IAAO2C,GAAehF,UAAY,IAAK,OAElGiD,EAAAA,EAAAA,IAAoB,IAAI,MAE9BN,EAAAA,EAAAA,GAAoB,MAAOpI,GAAY,CACrCC,IACAmI,EAAAA,EAAAA,GAAoB,OAAQlI,IAAagI,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,sBAAuB,IACzFF,EAAAA,EAAAA,IAAiB,OACjBF,EAAAA,EAAAA,IAAa4F,EAAqB,CAChC/H,UAAUkC,EAAAA,EAAAA,IAAO2C,GAAe7E,SAChCkI,OAAQ,EACRC,SAAU,KACVC,QAAQ,EACRxB,kBAAkB1E,EAAAA,EAAAA,IAAO0E,IACxB,KAAM,EAAG,CAAC,WAAY,sBACzBzE,EAAAA,EAAAA,IAAa8F,EAAe,CAC1BpD,eAAe3C,EAAAA,EAAAA,IAAO2C,GACtBsB,WAAY,MACX,KAAM,EAAG,CAAC,qBAEf3D,EAAAA,EAAAA,GAAoB,MAAOjI,GAAa,CACtCC,IACAgI,EAAAA,EAAAA,GAAoB,OAAQ/H,IAAa6H,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,2BAA4B,IAC9FF,EAAAA,EAAAA,IAAiB,OACjBF,EAAAA,EAAAA,IAAa4F,EAAqB,CAChC/H,UAAUkC,EAAAA,EAAAA,IAAO2C,GAAewD,SAChCF,SAAU,KACVG,OAAO,EACPF,QAAQ,EACRxB,kBAAkB1E,EAAAA,EAAAA,IAAO0E,IACxB,KAAM,EAAG,CAAC,WAAY,sBACzBzE,EAAAA,EAAAA,IAAa8F,EAAe,CAC1BpD,eAAe3C,EAAAA,EAAAA,IAAO2C,GACtBsB,WAAY,MACX,KAAM,EAAG,CAAC,kBACbzL,IACA8H,EAAAA,EAAAA,GAAoB,OAAQ7H,IAAa2H,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,uBAAwB,IAC1FF,EAAAA,EAAAA,IAAiB,OACjBF,EAAAA,EAAAA,IAAa4F,EAAqB,CAChC/H,UAAUkC,EAAAA,EAAAA,IAAO2C,GAAe0D,SAChCJ,SAAU,KACVG,OAAO,EACPF,QAAQ,EACRxB,kBAAkB1E,EAAAA,EAAAA,IAAO0E,IACxB,KAAM,EAAG,CAAC,WAAY,sBACzBzE,EAAAA,EAAAA,IAAa8F,EAAe,CAC1BpD,eAAe3C,EAAAA,EAAAA,IAAO2C,GACtBsB,WAAY,MACX,KAAM,EAAG,CAAC,oBAEmB,QAAjCjE,EAAAA,EAAAA,IAAO2C,GAAe2D,QAAoD,QAAjCtG,EAAAA,EAAAA,IAAO2C,GAAe4D,SAC3D1G,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOpH,GAAa,EACrD4H,EAAAA,EAAAA,GAAoB,MAAO,CACzB1I,MAAO,YACPuN,IAAK,8BACLE,IAAK/F,EAAKe,GAAG,uBACZ,KAAM,EAAG1H,KACZ2H,EAAAA,EAAAA,GAAoB,OAAQ1H,IAAawH,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,0BAA2B,IAC7FF,EAAAA,EAAAA,IAAiB,OACjBF,EAAAA,EAAAA,IAAa4F,EAAqB,CAChC/H,UAAUkC,EAAAA,EAAAA,IAAO2C,GAAe4D,OAChCN,SAAU,IACVC,QAAQ,EACRxB,kBAAkB1E,EAAAA,EAAAA,IAAO0E,IACxB,KAAM,EAAG,CAAC,WAAY,qBACzB7L,IACAyH,EAAAA,EAAAA,GAAoB,OAAQxH,IAAasH,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,0BAA2B,IAC7FF,EAAAA,EAAAA,IAAiB,OACjBF,EAAAA,EAAAA,IAAa4F,EAAqB,CAChC/H,UAAUkC,EAAAA,EAAAA,IAAO2C,GAAe2D,OAChCL,SAAU,IACVC,QAAQ,EACRxB,kBAAkB1E,EAAAA,EAAAA,IAAO0E,IACxB,KAAM,EAAG,CAAC,WAAY,yBAE3B9D,EAAAA,EAAAA,IAAoB,IAAI,GACM,QAAjCZ,EAAAA,EAAAA,IAAO2C,GAAe1E,QAAqD,QAAlC+B,EAAAA,EAAAA,IAAO2C,GAAezE,UAC3D2B,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAO/G,GAAa,CACrDC,IACAsH,EAAAA,EAAAA,GAAoB,OAAQrH,IAAamH,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,oBAAqB,IACvFF,EAAAA,EAAAA,IAAiB,OACjBF,EAAAA,EAAAA,IAAa4F,EAAqB,CAChC/H,UAAUkC,EAAAA,EAAAA,IAAO2C,GAAe1E,OAChCgI,SAAU,IACVC,QAAQ,EACRxB,kBAAkB1E,EAAAA,EAAAA,IAAO0E,IACxB,KAAM,EAAG,CAAC,WAAY,sBACxB1E,EAAAA,EAAAA,IAAO0F,KACH7F,EAAAA,EAAAA,OAAciC,EAAAA,EAAAA,IAAaiE,EAAe,CACzCp+C,IAAK,EACLg7C,eAAe3C,EAAAA,EAAAA,IAAO2C,GACtBsB,WAAY,MACX,KAAM,EAAG,CAAC,oBACbrD,EAAAA,EAAAA,IAAoB,IAAI,GAC5B1H,IACAoH,EAAAA,EAAAA,GAAoB,OAAQnH,IAAaiH,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,qBAAsB,IACxFF,EAAAA,EAAAA,IAAiB,OACjBF,EAAAA,EAAAA,IAAa4F,EAAqB,CAChC/H,UAAUkC,EAAAA,EAAAA,IAAO2C,GAAezE,QAChC+H,SAAU,IACVC,QAAQ,EACRxB,kBAAkB1E,EAAAA,EAAAA,IAAO0E,IACxB,KAAM,EAAG,CAAC,WAAY,yBAE3B9D,EAAAA,EAAAA,IAAoB,IAAI,IAC5BX,EAAAA,EAAAA,IAAauG,GAAgB,CAC3B7D,eAAe3C,EAAAA,EAAAA,IAAO2C,GACtB+B,kBAAkB1E,EAAAA,EAAAA,IAAO0E,IACxB,KAAM,EAAG,CAAC,gBAAiB,sBAC9B,CAEJ,IChNA,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,YAAY,qBAEvE,UCRA,SAAS+B,GAAEh/C,EAASke,GAChB,OAAO7e,MAAMw0B,KAAK7zB,EAAQyc,qBAAqByB,GACnD,CAUA,SAAS+gC,GAAQrnC,GAEb,OADAA,GAAMwW,YACExW,GAAQA,EAAKwG,aAAgB,EACzC,CAIA,SAAS8gC,GAAKtnC,EAAMsG,EAASjF,GACzB,MAAMxC,EAAImB,EAAK6E,qBAAqByB,GAC9B7Z,EAASoS,EAAEzO,OAASyO,EAAE,GAAK,KAGjC,OAFIpS,GAAU4U,GACVA,EAAS5U,GACNA,CACX,CACA,SAASL,GAAI4T,EAAMsG,EAASjF,GACxB,MAAMkmC,EAAa,CAAC,EACpB,IAAKvnC,EACD,OAAOunC,EACX,MAAM1oC,EAAImB,EAAK6E,qBAAqByB,GAC9B7Z,EAASoS,EAAEzO,OAASyO,EAAE,GAAK,KACjC,OAAIpS,GAAU4U,EACHA,EAAS5U,EAAQ86C,GAErBA,CACX,CACA,SAASC,GAAKxnC,EAAMsG,EAASjF,GACzB,MAAM7Z,EAAM6/C,GAAQC,GAAKtnC,EAAMsG,IAC/B,OAAI9e,GAAO6Z,GACAA,EAAS7Z,IACb,CAAC,CACZ,CACA,SAASigD,GAAKznC,EAAMsG,EAASjF,GACzB,MAAM7Z,EAAMyrB,WAAWo0B,GAAQC,GAAKtnC,EAAMsG,KAC1C,IAAIohC,MAAMlgD,GAEV,OAAIA,GAAO6Z,GACAA,EAAS7Z,IACb,CAAC,CACZ,CACA,SAASmgD,GAAK3nC,EAAMsG,EAASjF,GACzB,MAAM7Z,EAAMyrB,WAAWo0B,GAAQC,GAAKtnC,EAAMsG,KAC1C,IAAIohC,MAAMlgD,GAIV,OAFIA,GAAO6Z,GACPA,EAAS7Z,GACNA,CACX,CACA,SAASogD,GAAS5nC,EAAM6nC,GACpB,MAAMN,EAAa,CAAC,EACpB,IAAK,MAAMt+C,KAAY4+C,EACnBL,GAAKxnC,EAAM/W,GAAWzB,IAClB+/C,EAAWt+C,GAAYzB,CAAG,IAGlC,OAAO+/C,CACX,CACA,SAASO,GAAU9nC,GACf,OAA0B,IAAnBA,GAAM+nC,QACjB,CAEA,SAASC,GAAahoC,GAClB,OAAO5T,GAAI4T,EAAM,QAASioC,IACtB,MAAMzgD,EAAMX,OAAO6X,OAAO,CAAC,EAAG8oC,GAAKS,EAAW,SAAUvuB,IAC7C,CAAEwuB,OAAQ,IAAIxuB,QACrB+tB,GAAKQ,EAAW,WAAYE,IACrB,CAAE,iBAAkBA,MAC3BV,GAAKQ,EAAW,SAAUG,IAEnB,CAAE,eAAyB,GAARA,EAAc,UAE5C,OAAO5gD,CAAG,GAElB,CAEA,SAAS6gD,GAAcroC,GACnB,IAAI0sB,EAAS,GACb,GAAa,OAAT1sB,EACA,OAAO0sB,EACX,IAAK,MAAM5oB,KAASrc,MAAMw0B,KAAKjc,EAAKsoC,YAAa,CAC7C,IAAKR,GAAUhkC,GACX,SACJ,MAAMhU,EAAOy4C,GAAezkC,EAAM0kC,UAClC,GAAa,+BAAT14C,EAEA48B,EAASA,EAAOxkC,OAAOmgD,GAAcvkC,QAEpC,CAED,MAAMtc,EAAM6/C,GAAQvjC,GACpB4oB,EAAOl8B,KAAK,CAACV,EAAM24C,GAAajhD,IACpC,CACJ,CACA,OAAOklC,CACX,CACA,SAAS6b,GAAez4C,GACpB,MAAO,CAAC,QAAS,YAAa,MAAMoX,SAASpX,GAAQ,QAAUA,CACnE,CACA,SAAS24C,GAAajhD,GAClB,MAAMkhD,EAAMz1B,WAAWzrB,GACvB,OAAOkgD,MAAMgB,GAAOlhD,EAAMkhD,CAC9B,CAEA,SAASC,GAAY3oC,GACjB,MAAM4oC,EAAK,CACP31B,WAAWjT,EAAK6oC,aAAa,QAAU,IACvC51B,WAAWjT,EAAK6oC,aAAa,QAAU,KAE3C,GAAInB,MAAMkB,EAAG,KAAOlB,MAAMkB,EAAG,IACzB,OAAO,KAEXjB,GAAK3nC,EAAM,OAAQxY,IACfohD,EAAGp4C,KAAKhJ,EAAI,IAEhB,MAAMshD,EAAOxB,GAAKtnC,EAAM,QACxB,MAAO,CACH+oC,YAAaH,EACbE,KAAMA,EAAOzB,GAAQyB,GAAQ,KAC7BE,eAAgBX,GAAcf,GAAKtnC,EAAM,eAEjD,CAEA,SAASipC,GAAkBjpC,GACvB,MAAMunC,EAAaK,GAAS5nC,EAAM,CAC9B,OACA,MACA,OACA,OACA,OACA,aAEEkpC,EAAazhD,MAAMw0B,KAAKjc,EAAKmpC,uBAAuB,oDAAqD,MAC/G,IAAK,MAAMrlC,KAASolC,EACZplC,EAAMslC,YAAYA,aAAeppC,IACjCunC,EAAWzjC,EAAMwC,QAAQjb,QAAQ,IAAK,MAAQg8C,GAAQvjC,IAG9D,MAAMulC,EAAQjC,GAAEpnC,EAAM,QAItB,OAHIqpC,EAAMj5C,SACNm3C,EAAW8B,MAAQA,EAAMlhD,KAAKid,GAASve,OAAO6X,OAAO,CAAEyG,KAAMC,EAAKyjC,aAAa,SAAWjB,GAASxiC,EAAM,CAAC,OAAQ,aAE/GmiC,CACX,CAKA,SAAS+B,GAAYtpC,EAAMupC,GACvB,MAAMC,EAAMpC,GAAEpnC,EAAMupC,GACdvwB,EAAO,GACPywB,EAAQ,GACRT,EAAiB,CAAC,EACxB,IAAK,IAAIh2C,EAAI,EAAGA,EAAIw2C,EAAIp5C,OAAQ4C,IAAK,CACjC,MAAMoB,EAAIu0C,GAAYa,EAAIx2C,IAC1B,GAAKoB,EAAL,CAGA4kB,EAAKxoB,KAAK4D,EAAE20C,aACR30C,EAAE00C,MACFW,EAAMj5C,KAAK4D,EAAE00C,MACjB,IAAK,MAAOh5C,EAAMtI,KAAQ4M,EAAE40C,eAAgB,CACxC,MAAMU,EAAkB,UAAT55C,EAAmBA,EAAOA,EAAKzE,QAAQ,UAAW,IAAM,IAClE29C,EAAeU,KAChBV,EAAeU,GAAUjiD,MAAM+hD,EAAIp5C,QAAQu5C,KAAK,OAEpDX,EAAeU,GAAQ12C,GAAKxL,CAChC,CAVA,CAWJ,CACA,KAAIwxB,EAAK5oB,OAAS,GAElB,MAAO,CACH4oB,KAAMA,EACNywB,MAAOA,EACPT,eAAgBA,EAExB,CAKA,SAASY,GAAS5pC,GACd,MAAMgZ,EAAOswB,GAAYtpC,EAAM,SAC/B,GAAKgZ,EAEL,MAAO,CACHxuB,KAAM,UACN+8C,WAAY1gD,OAAO6X,OAAO,CAAEmrC,SAAU,OAASZ,GAAkBjpC,GAAOgoC,GAAaV,GAAKtnC,EAAM,gBAChG8pC,SAAU,CACNt/C,KAAM,aACNu+C,YAAa/vB,EAAKA,MAG9B,CACA,SAAS+wB,GAAS/pC,GACd,MAAMgqC,EAAW5C,GAAEpnC,EAAM,UACnBiqC,EAAQ,GACRR,EAAQ,GACRS,EAAiB,GACvB,IAAK,MAAMC,KAAWH,EAAU,CAC5B,MAAMhxB,EAAOswB,GAAYa,EAAS,SAC9BnxB,IACAkxB,EAAe15C,KAAKwoB,GAChBA,EAAKywB,OAASzwB,EAAKywB,MAAMr5C,QACzBq5C,EAAMj5C,KAAKwoB,EAAKywB,OAE5B,CACA,GAA8B,IAA1BS,EAAe95C,OACf,OAAO,KACX,MAAMg6C,EAAQF,EAAe95C,OAAS,EAChCm3C,EAAa1gD,OAAO6X,OAAO,CAAEmrC,SAAU,OAASZ,GAAkBjpC,GAAOgoC,GAAaV,GAAKtnC,EAAM,eAAgBypC,EAAMr5C,OACvH,CACEi6C,qBAAsB,CAClBZ,MAAOW,EAAQX,EAAQA,EAAM,KAGnC,CAAC,GACP,IAAK,MAAMzwB,KAAQkxB,EAAgB,CAC/BD,EAAMz5C,KAAKwoB,EAAKA,MACXuuB,EAAW8C,uBACZ9C,EAAW8C,qBAAuB,CAAC,GAEvC,MAAM5yB,EAAQ8vB,EAAW8C,qBACnBrgB,EAAUnjC,OAAOmjC,QAAQhR,EAAKgwB,gBACpC,IAAK,IAAIh2C,EAAI,EAAGA,EAAIg3B,EAAQ55B,OAAQ4C,IAAK,CACrC,MAAOlD,EAAMtI,GAAOwiC,EAAQh3B,GACxBo3C,GACK3yB,EAAM3nB,KACP2nB,EAAM3nB,GAAQo6C,EAAe/hD,KAAK6wB,GAAS,IAAIvxB,MAAMuxB,EAAKA,KAAK5oB,QAAQu5C,KAAK,SAEhFlyB,EAAM3nB,GAAMkD,GAAKxL,GAGjBiwB,EAAM3nB,GAAQtI,CAEtB,CACJ,CACA,MAAO,CACHgD,KAAM,UACN+8C,WAAYA,EACZuC,SAAUM,EACJ,CACE5/C,KAAM,kBACNu+C,YAAakB,GAEf,CACEz/C,KAAM,aACNu+C,YAAakB,EAAM,IAGnC,CAKA,SAASK,GAAStqC,GACd,MAAMunC,EAAa1gD,OAAO6X,OAAOuqC,GAAkBjpC,GAAO4nC,GAAS5nC,EAAM,CAAC,SACpEuqC,EAAO5B,GAAY3oC,GACzB,OAAKuqC,EAEE,CACH//C,KAAM,UACN+8C,aACAuC,SAAU,CACNt/C,KAAM,QACNu+C,YAAawB,EAAKxB,cANf,IASf,CAMA,SAAUyB,GAAOxqC,GACb,IAAK,MAAMiqC,KAAS7C,GAAEpnC,EAAM,OAAQ,CAChC,MAAMyqC,EAAUV,GAASE,GACrBQ,UACMA,EACd,CACA,IAAK,MAAM1H,KAASqE,GAAEpnC,EAAM,OAAQ,CAChC,MAAMyqC,EAAUb,GAAS7G,GACrB0H,UACMA,EACd,CACA,IAAK,MAAMC,KAAYtD,GAAEpnC,EAAM,OAAQ,CACnC,MAAM2qC,EAAQL,GAASI,GACnBC,UACMA,EACd,CACJ,CAYA,SAASC,GAAI5qC,GACT,MAAO,CACHxV,KAAM,oBACNqgD,SAAUpjD,MAAMw0B,KAAKuuB,GAAOxqC,IAEpC,CAwgB2B0H,KAAKojC,GCn0BhC,MAAMC,GAAW,CAACC,EAAIlC,KACpB,IAAImC,EAEJ,OAAO,YAAa7yB,GAClB,MAAM8yB,EAAU3/C,KACZ0/C,GACFE,aAAaF,GAEfA,EAAUG,YAAW,KACnBJ,EAAGhsC,MAAMksC,EAAS9yB,GAClB6yB,EAAU,IAAI,GACbnC,EACL,CAAC,EAGGuC,GAAyBlgD,GACxBA,GAAmC,oBAAlBA,EAAOsnB,OAGtBtnB,EAAOsnB,OAAO,GAAG6a,cAAgBniC,EAAOoI,MAAM,GAF5CpI,EAKLmgD,GAAcl4B,GAAmB,oBAANA,EAE3Bm4B,GAAc,CAACC,EAASC,EAAgBh0B,KAC5C,IAAK,MAAMnvB,KAAOmvB,EAAO,CACvB,MAAMi0B,EAAgB,MAAQL,GAAsB/iD,GAChDkjD,EAAQE,IACV,SACE,IAAMj0B,EAAMnvB,KACZ,CAACqjD,EAAQC,KACPJ,EAAQE,GAAeC,EAAQC,EAAO,IAGjCH,EAAeC,KACxB,SACE,IAAMj0B,EAAMnvB,KACXqjD,IACCF,EAAeC,GAAeC,EAAO,GAI7C,GAGIE,GAAeC,IACnB,MAAMr/C,EAAS,CAAC,EAChB,IAAK,MAAMs/C,KAAYD,EACrB,GACEC,EAAS5zB,WAAW,QACnB4zB,EAAS5zB,WAAW,aACR,YAAb4zB,EACA,CACA,MAAMC,EAAYD,EAASx4C,MAAM,GAAG04C,oBACpCx/C,EAAOu/C,GAAaF,EAAaC,EACnC,CAEF,OAAOt/C,CAAM,EAGTy/C,GAAmBjsB,MAAOksB,IAC9B,MAAMC,QAAgB/rB,QAAQz2B,IAAI,CAChC,mCACA,kCACA,4CAGKuiD,EAAKE,QAAQvlD,UAAUwlD,YAE9BH,EAAKE,QAAQE,aAAa,CACxBC,cAAeJ,EAAQ,GAAGl9C,QAC1Bu9C,QAASL,EAAQ,GAAGl9C,QACpBw9C,UAAWN,EAAQ,GAAGl9C,SACtB,EAUEy9C,GAAyBC,IAC7B,MAAMC,GAAU,SAAI,IAClB35B,QAAQgT,KAAK,UAAU0mB,+CAEnBE,EAAU,IAAI10B,IAASy0B,EAAQpmD,SAAS2xB,GAK9C,OAHA00B,EAAQD,QAAUA,GAClB,QAAQD,EAAYE,GAEbA,CAAO,EAUVC,GAAuB,CAACD,EAASE,IACpCF,EAAQD,QAAQpmD,MAAQumD,EAErBC,GACa,kBAATvnB,MAAqBA,KAAKA,OAASA,MAAQA,MAChC,kBAAX,EAAAwnB,GAAuB,EAAAA,EAAOC,SAAW,EAAAD,GAAU,EAAAA,QAC3DrhD,EAEIuhD,GAAqB,mBAErB31B,GAAQ,CACZ7vB,QAAS,CACP4C,KAAM3D,OACNqI,QAAS,KAAM,CAAG,KAIhBksC,GAAS3jB,IACN,CAAE7vB,QAAS6vB,EAAM7vB,QAAS4jD,QAAS,CAAC,IAGvC6B,GAAU,IACX51B,GACH61B,KAAM,CACJ9iD,KAAMiY,OACNvT,QAAS,eAEXq+C,YAAa,CACX/iD,KAAMiY,OACNvT,QAAS,MAEXY,KAAM,CACJtF,KAAMiY,OACN+qC,QAAQ,EACRt+C,aAASrD,GAEX4hD,UAAW,CACTjjD,KAAMiY,OACN+qC,QAAQ,EACRt+C,aAASrD,GAEX6hD,QAAS,CACPljD,KAAMsxB,QACN0xB,QAAQ,EACRt+C,SAAS,IAIPy+C,GAAU,CAACl2B,EAAOm2B,EAAY1C,KAClC,MAAM2C,GAAW,QAAO,YAClBC,GAAc,QAAO,gBAEzBlmD,QAASmmD,EACTvC,QAASwC,GACP5S,GAAM3jB,GAEJ7vB,EAAU,IACXmmD,EACHR,YAAa91B,EAAM81B,YACnBD,KAAM71B,EAAM61B,MAGRW,EAAe,IAAMJ,EAAS,CAAEK,cAAeN,EAAWnnD,QAC1D0nD,EAAkB,IACtBL,EAAY,CAAEI,cAAeN,EAAWnnD,QAEpC+kD,EAAU,IACXwC,EACHI,eAAe5mD,EAAK6mD,GAClB,MAAMC,EAAqB/iD,KAAKgjD,QAAQL,cAAcI,mBACtDA,EAAmBE,kBAAkBH,GAAKI,eAAejnD,EAC3D,EACAknD,UACEP,IACI12B,EAAMi2B,SACRO,GAEJ,EACAU,eACER,IACI12B,EAAMi2B,SACRO,GAEJ,EACAW,WAAWC,GACLjB,EAAWnnD,QACTooD,EACFZ,IAEAE,IAGN,EACAW,WAAU,cAAEZ,IACLN,EAAWnnD,OAAU6kD,GAAWsC,EAAWnnD,MAAMqoD,WAQtDlB,EAAWnnD,MAAMqoD,UAAUZ,GAPzBh7B,QAAQgT,KACN,oEAON,EACA6oB,aAAY,cAAEb,IACPN,EAAWnnD,OAAU6kD,GAAWsC,EAAWnnD,MAAMsoD,aAQtDnB,EAAWnnD,MAAMsoD,YAAYb,GAP3Bh7B,QAAQgT,KACN,wEAON,EACA8oB,gBACE,MAAMC,EACJrB,EAAWnnD,OAAS6kD,GAAWsC,EAAWnnD,MAAMyoD,YAC5CtB,EAAWnnD,MAAMyoD,aACjB,KACFD,GAAW3D,GAAW2D,EAAQD,gBAChCC,EAAQD,eAEZ,EACAG,cACE,MAAMC,EACJxB,EAAWnnD,OAAS6kD,GAAWsC,EAAWnnD,MAAM4oD,UAC5CzB,EAAWnnD,MAAM4oD,WACjB,KACFD,GAAS9D,GAAW8D,EAAMD,cAC5BC,EAAMD,aAEV,EACAG,kBAAkB7oD,GAMhBykD,EAAQ1H,KAAK,iBAAkB/8C,EACjC,GAcF,OAXA,QAAQ,YAAa+kD,EAAQsD,YAC7B,QAAQ,cAAetD,EAAQuD,cAC/B,QAAQ,gBAAiBvD,EAAQwD,gBACjC,QAAQ,cAAexD,EAAQ2D,cAE/B,SAAY,KACV3D,EAAQ2D,cACR3D,EAAQwD,gBACRb,GAAiB,IAGZ,CAAEvmD,UAAS4jD,UAAS,EAGvBvsC,GAAS,CAACswC,EAAOC,KACrB,GAAID,GAASC,EAAMtgD,QACjB,OAAO,IAAAyjB,GAAE,MAAO,CAAE+yB,MAAO,CAAE+J,QAAS,SAAYD,EAAMtgD,UACxD,EAGIwgD,GAAU,IACXj4B,GACHk4B,YAAa,CACXnlD,KAAMsxB,QACN5sB,SAAS,GAEX0gD,oBAAqB,CACnBplD,KAAMsxB,QACN5sB,SAAS,IAeP2gD,GAAU,IACXxC,MACAqC,GACHxH,OAAQ,CACN19C,KAAMsxB,QACN0xB,QAAQ,EACRt+C,SAAS,GAEXwqB,MAAO,CACLlvB,KAAMiY,OACN+qC,QAAQ,EACRt+C,QAAS,WAEX4gD,OAAQ,CACNtlD,KAAMyN,OACNu1C,QAAQ,EACRt+C,QAAS,GAEXi5C,QAAS,CACP39C,KAAMyN,OACNu1C,QAAQ,EACRt+C,QAAS,GAEX6gD,QAAS,CACPvlD,KAAMiY,OACN+qC,QAAQ,EACRt+C,QAAS,SAEX8gD,SAAU,CACRxlD,KAAMiY,OACN+qC,QAAQ,EACRt+C,QAAS,SAEX+gD,UAAW,CACTzlD,KAAMiY,OACN+qC,QAAQ,EACRt+C,QAAS,MAEXghD,WAAY,CACV1lD,KAAMiY,OACN+qC,QAAQ,EACRt+C,QAAS,MAEXy6C,KAAM,CACJn/C,KAAMsxB,QACN0xB,QAAQ,EACRt+C,SAAS,GAEXihD,UAAW,CACT3lD,KAAMiY,OACN+qC,QAAQ,EACRt+C,QAAS,WAEXkhD,YAAa,CACX5lD,KAAMyN,OACNu1C,QAAQ,EACRt+C,QAAS,IAEXmhD,SAAU,CACR7lD,KAAMiY,OACN+qC,QAAQ,EACRt+C,QAAS,WAEXohD,UAAW,CACT9lD,KAAMiY,OACN+qC,QAAQ,EACRt+C,QAAS,OAqFPqhD,GAAU,IACXV,GACHW,OAAQ,CACNhmD,KAAM,CAAC3D,OAAQY,OACf+lD,QAAQ,EACRt+C,QAAS,MAKXuhD,OAAQ,CACNjmD,KAAMyN,OACN/I,QAAS,OAgJb,MAAMwhD,GAAU,IACXj5B,GACHiZ,SAAU,CACRlmC,KAAMiY,OACNvT,QAAS,aAIPyhD,GAAU,CAACl5B,EAAOm2B,KACtB,MACEhmD,QAASmmD,EACTvC,QAASwC,GACP5S,GAAM3jB,GACJ7vB,EAAU,IACXmmD,EACHrd,SAAUjZ,EAAMiZ,UAGZ8a,EAAU,IACXwC,EACH4C,YAAYlgB,GACNkd,EAAWnnD,OACbmnD,EAAWnnD,MAAMmqD,YAAYlgB,EAEjC,GASF,OANA,SAAY,KACNkd,EAAWnnD,OACbmnD,EAAWnnD,MAAM0/B,QACnB,IAGK,CAAEv+B,UAAS4jD,UAAS,EAGvBqF,GAAYrB,GACZA,EAAMtgD,SACD,IAAAyjB,GAAE,MAAO,CAAE4qB,IAAK,QAAUiS,EAAMtgD,WAElC,KAGT,IAAI4hD,GAAW,CACbhhD,KAAM,WACN2nB,MAAO,IACFi5B,GACHK,wBAAyB,CACvBvmD,KAAMsxB,QACN0xB,QAAQ,EACRt+C,SAAS,GAEX8hD,yBAA0B,CACxBxmD,KAAMsxB,QACN0xB,QAAQ,EACRt+C,SAAS,IAGbksC,MAAM3jB,EAAOyzB,GACX,MAAM0C,GAAa,QAAI,CAAC,GAClB3vC,GAAO,QAAI,MAEXgzC,GAAmB,QAAO7D,IAC1B8D,GAAkB,QAAO,oBAEzB,QAAEtpD,EAAO,QAAE4jD,GAAYmF,GAAQl5B,EAAOm2B,GAyB5C,OAvBA,SAAU3tB,UACR,MAAM,QAAEkxB,EAAO,SAAEC,GAAaH,EAC1BhE,GAAiBoE,QACX,8BAEJC,EAAWH,EAAQI,OAAO,CAC9BC,QACE,OAAOvzC,EAAKxX,KACd,IAGFmnD,EAAWnnD,MAAQ,IAAI6qD,EAAS1pD,GAChC2jD,GAAYC,EAASoC,EAAWnnD,MAAOgxB,GACvCy5B,EAAgB,CAAEhD,cAAeN,EAAWnnD,QAExCgxB,EAAMs5B,yBACRK,EAASL,wBAAwB9yC,EAAKxX,OAEpCgxB,EAAMu5B,0BACRI,EAASJ,yBAAyB/yC,EAAKxX,QAEzC,SAAS,IAAMykD,EAAQ1H,KAAK,QAASoK,EAAWnnD,QAAO,IAElD,CAAEwX,OAAMiwC,cAAeN,EAChC,EACA3uC,SACE,OAAO4xC,GAAStlD,KAAKkmD,OACvB,EAGFX,OAAkB,+BA6DlB,MAAMY,GAAU,IACXhB,GACHiB,UAAW,CACTnnD,KAAMsxB,QACN5sB,SAAS,GAEX0iD,WAAY,CACVpnD,KAAMsxB,QACN5sB,SAAS,GAEX2iD,eAAgB,CACdrnD,KAAMsxB,QACN5sB,SAAS,GAEX4iD,WAAY,CACVtnD,KAAMsxB,QACN5sB,SAAS,GAEX6iD,aAAc,CACZvnD,KAAMwnD,SACN9iD,aAASrD,IAIPomD,GAAU,CAACx6B,EAAOm2B,KACtB,MAAQhmD,QAASsqD,GAAmBvB,GAAQl5B,EAAOm2B,GAC7ChmD,EAAU,IACXsqD,EACHP,UAAWl6B,EAAMk6B,UACjBC,WAAYn6B,EAAMm6B,WAClBC,eAAgBp6B,EAAMo6B,eACtBC,WAAYr6B,EAAMq6B,WAClBC,aAAct6B,EAAMs6B,cAGhBvG,EAAU,CACdqC,SAASsE,GACiB,SAApBA,EAAM1E,UACRG,EAAWnnD,MAAM2rD,aAAaD,EAAMjE,cAAeiE,EAAMriD,MAC5B,YAApBqiD,EAAM1E,WACfG,EAAWnnD,MAAM4rD,WAAWF,EAAMjE,cAAeiE,EAAMriD,KAE3D,EACAg+C,YAAYqE,GACVvE,EAAWnnD,MAAMqnD,YAAYqE,EAAMjE,cACrC,GAEF,MAAO,CAAEtmD,UAAS4jD,UAAS,EAG7B,IAAI8G,GAAW,CACbxiD,KAAM,iBACN2nB,MAAOi6B,GACPtW,MAAM3jB,EAAOyzB,GACX,MAAM0C,GAAa,QAAI,CAAC,GAElBqD,GAAmB,QAAO7D,IAC1BmF,GAAuB,QAAO,yBAE9B,QAAE3qD,EAAO,QAAE4jD,GAAYyG,GAAQx6B,EAAOm2B,GAkB5C,OAhBA,SAAU3tB,UACR,MAAM,QAAEuyB,GAAYvB,EAChBhE,GAAiBoE,QACX,8BAEVzD,EAAWnnD,MAAQ+rD,EAAQC,OAAO,KAAM,KAAM7qD,GAE9C2jD,GAAYC,EAASoC,EAAWnnD,MAAOgxB,GAEvC86B,EAAqB,IAChB96B,KACA+zB,EACH0C,cAAeN,EAAWnnD,SAE5B,SAAS,IAAMykD,EAAQ1H,KAAK,QAASoK,EAAWnnD,QAAO,IAElD,CAAEynD,cAAeN,EAAWnnD,MACrC,EACAwY,SACE,OAAO,IACT,EAGFqzC,OAAkB,qCASRx2B,QAIAA,QAIAA,QAqHV,MAAM42B,GAAU,IACXrF,IAGCsF,GAAU,CAACl7B,EAAOm2B,EAAY1C,KAClC,MAAQtjD,QAASgrD,EAAcpH,QAASqH,GAAiBlF,GACvDl2B,EACAm2B,EACA1C,GAGItjD,EAAU,IACXgrD,GAGCpH,EAAU,IACXqH,EACHhF,SAASsE,GACPvE,EAAWnnD,MAAMonD,SAASsE,EAAMjE,cAClC,EACAJ,YAAYqE,GACVvE,EAAWnnD,MAAMqnD,YAAYqE,EAAMjE,cACrC,GAMF,OAHA,QAAQ,WAAY1C,EAAQqC,WAC5B,QAAQ,cAAerC,EAAQsC,aAExB,CAAElmD,UAAS4jD,UAAS,EAgE7B,MAAMsH,GAAU,IACXJ,GACHK,QAAS,CACPvoD,KAAM,CAAC3D,OAAQY,OACfyH,QAAS,KAAM,CAAG,KAIhB8jD,GAAU,CAACv7B,EAAOm2B,EAAY1C,KAClC,MAAQtjD,QAASgrD,EAAcpH,QAASyH,GAAsBN,GAC5Dl7B,EACAm2B,EACA1C,GAGItjD,EAAU,IACXgrD,KACAn7B,GAGC+zB,EAAU,IACXyH,EACHC,WAAWvH,GACTiC,EAAWnnD,MAAM0sD,cACjBvF,EAAWnnD,MAAM2sD,QAAQzH,EAC3B,EACA0H,iBACE,OAAOzF,EAAWnnD,MAAM6sD,WAC1B,EACAC,YACE,OAAO3F,EAAWnnD,MAAM8sD,WAC1B,GAGF,MAAO,CAAE3rD,UAAS4jD,UAAS,EAG7B,IAAIgI,GAAW,CACb/7B,MAAOq7B,GACP1X,MAAM3jB,EAAOyzB,GACX,MAAM0C,GAAa,QAAI,CAAC,GAClB2B,GAAQ,SAAI,GAEZ0B,GAAmB,QAAO7D,IAC1BS,GAAW,QAAO,aAElB,QAAErC,EAAO,QAAE5jD,GAAYorD,GAAQv7B,EAAOm2B,EAAY1C,GAqBxD,OAnBA,SAAUjrB,UACR,MAAM,QAAEwzB,EAAO,SAAErC,GAAaH,EAC1BhE,GAAiBoE,QACX,8BAEVzD,EAAWnnD,MAAQgtD,EAAQh8B,EAAMs7B,QAASnrD,GAE1C,MAAMm5B,EAAY8qB,GAAYX,EAAQwI,OACtCtC,EAASuC,GAAG/F,EAAWnnD,MAAOs6B,GAE9BwqB,GAAYC,EAASoC,EAAWnnD,MAAOgxB,GACvCo2B,EAAS,IACJp2B,KACA+zB,EACH0C,cAAeN,EAAWnnD,QAE5B8oD,EAAM9oD,OAAQ,GACd,SAAS,IAAMykD,EAAQ1H,KAAK,QAASoK,EAAWnnD,QAAO,IAElD,CAAE8oD,QAAOrB,cAAeN,EACjC,EACA3uC,SACE,OAAOA,GAAO1T,KAAKgkD,MAAOhkD,KAAKkmD,OACjC,EAGF+B,OAAkB,+BAElB,MAAMI,GAAU,IACXvG,GACHC,KAAM,CACJ9iD,KAAMiY,OACNvT,QAAS,YAEXi5C,QAAS,CACP39C,KAAMyN,OACNu1C,QAAQ,EACRt+C,QAAS,GAEX2kD,OAAQ,CACNrpD,KAAMyN,OACN/I,QAAS,GAEX4kD,SAAU,CACRtpD,KAAMyN,OACN/I,QAAS,KAEX6kD,OAAQ,CACNvpD,KAAMsxB,QACN5sB,SAAS,GAEX8kD,QAAS,CACPxpD,KAAMyN,OACN/I,QAAS,GAEX+kD,QAAS,CACPzpD,KAAMyN,OACN/I,aAASrD,IAIPqoD,GAAU,CAACz8B,EAAOm2B,EAAY1C,KAClC,MAAQtjD,QAASgrD,EAAcpH,QAASqH,GAAiBlF,GACvDl2B,EACAm2B,EACA1C,GAEItjD,EAAU,IACXgrD,EACHtF,KAAM71B,EAAM61B,KACZnF,QAAS1wB,EAAM0wB,QACf0L,OAAQp8B,EAAMo8B,OACdC,SAAUr8B,EAAMq8B,SAChBC,OAAQt8B,EAAMs8B,OACdC,QAASv8B,EAAMu8B,QACfC,QAASx8B,EAAMw8B,SAEjB,MAAO,CAAErsD,UAAS4jD,QAAS,IAAKqH,GAAgB,EAuFlD,MAAMsB,GAAU,CACd1H,QAAS,CACPjiD,KAAMiY,OACN+qC,QAAQ,EACRt+C,QAAS,MAEXs9C,cAAe,CACbhiD,KAAMiY,OACN+qC,QAAQ,EACRt+C,QAAS,MAEXklD,SAAU,CACR5pD,KAAM,CAAC3D,OAAQY,OACf+lD,QAAQ,EACRt+C,QAAS,MAEXmlD,WAAY,CACV7pD,KAAM,CAAC3D,OAAQY,OACf+lD,QAAQ,EACRt+C,QAAS,MAEXolD,YAAa,CACX9pD,KAAM,CAAC3D,OAAQY,OACf+lD,QAAQ,EACRt+C,QAAS,IAAM,CAAC,EAAG,IAErBqlD,cAAe,CACb/pD,KAAM,CAAC3D,OAAQY,OACf+lD,QAAQ,EACRt+C,QAAS,IAAM,CAAC,EAAG,IAErBw9C,UAAW,CACTliD,KAAMiY,OACN+qC,QAAQ,EACRt+C,QAAS,MAEXslD,gBAAiB,CACfhqD,KAAMiY,OACN+qC,QAAQ,EACRt+C,QAAS,MAEXulD,WAAY,CACVjqD,KAAM,CAAC3D,OAAQY,OACf+lD,QAAQ,EACRt+C,QAAS,MAEXwlD,aAAc,CACZlqD,KAAM,CAAC3D,OAAQY,OACf+lD,QAAQ,EACRt+C,QAAS,MAEXylD,MAAO,CACLnqD,KAAM,CAAC3D,OAAQY,OACf+lD,QAAQ,EACRt+C,QAAS,IAAM,CAAC,EAAG,IAErBohD,UAAW,CACT9lD,KAAMiY,OACN+qC,QAAQ,EACRt+C,QAAS,IAEXtH,QAAS,CACP4C,KAAM3D,OACN2mD,QAAQ,EACRt+C,QAAS,KAAM,CAAG,KAOtB,IAAI0lD,GAAW,CACb9kD,KAAM,QACN2nB,MAAO,IACF08B,MACA18B,IAEL2jB,MAAM3jB,EAAOyzB,GACX,MAAMjtC,GAAO,QAAI,MAEXgzC,GAAmB,QAAO7D,IAC1ByH,GAAmB,QAAO,oBAC1BC,GAAgB,QAAO,iBACvBC,GAAU,QAAO,WAEvB,IAAIC,EACAC,EACAC,EACAnP,EACAoP,EAEJ,MAAMC,EAAa,CAAC/kD,EAAIglD,EAAkBC,KACxC,MAAMC,EAASllD,GAAMA,EAAGmlD,UACxB,IAAKH,EAIH,YAHIC,GAAkBH,GAAcN,KAClCC,EAAcS,IAKlB,MAAMx0B,EAAY8qB,GAAYX,EAAQwI,OAClCyB,GACFF,EAAYE,EAAYp0B,GAG1B,MAAQn5B,QAASmmD,GAAqB3S,GAAM3jB,GACtC7vB,EAAU,IACXmmD,EACHtB,QAASh1B,EAAMg1B,QACfD,cAAe/0B,EAAM+0B,cACrB4H,SAAU38B,EAAM28B,SAChBC,WAAY58B,EAAM48B,WAClBC,YAAa78B,EAAM68B,YACnBC,cAAe98B,EAAM88B,cACrB7H,UAAWj1B,EAAMi1B,UACjB8H,gBAAiB/8B,EAAM+8B,gBACvBC,WAAYh9B,EAAMg9B,WAClBC,aAAcj9B,EAAMi9B,aACpBC,MAAOl9B,EAAMk9B,MACbrE,UAAW74B,EAAM64B,UACjBxe,KAAMyjB,GAAU99B,EAAMqa,MAGxBqjB,EAAavtD,EAAQkqC,KAAOojB,EAAQttD,GAAWm+C,EAAKn+C,GACpDotD,EAAWG,EAAYp0B,GACvBg0B,EAAQI,EAAW,EAGfM,EAAqB,MACzB,SAAS,IAAML,EAAWn3C,EAAKxX,OAAO,GAAM,IAAO,EAG/CivD,EAAmB,MACvB,SAAS,IAAMN,EAAWn3C,EAAKxX,OAAO,GAAO,IAAM,EAG/C+kD,EAAU,CACdmK,WAAYF,EACZG,iBAAkBH,EAClBI,YAAaJ,EACbK,cAAeL,EACfM,eAAgBN,EAChBO,iBAAkBP,EAClBQ,aAAcR,EACdS,mBAAoBT,EACpBU,gBAAiBV,EACjBW,SAAUX,EACVY,aAAcZ,EACda,QAASb,GAyBX,OAtBA,SAAUx1B,UACR,MAAM,SAAEmxB,EAAU8D,QAASqB,EAAUxQ,KAAMyQ,GAAUvF,EACjDhE,GAAiBoE,QACX,8BAEV2D,EAAa5D,EAASuC,GACtBsB,EAAc7D,EAASqF,IACvBvB,EAAUqB,EACVxQ,EAAOyQ,EAEPjL,GAAYC,EAAS,CAAC,EAAG/zB,GAEzB,MAAMi/B,EAAW,IAAIC,iBAAiBjB,GACtCgB,EAASE,QAAQ34C,EAAKxX,MAAO,CAC3B8Y,YAAY,EACZs3C,WAAW,EACXC,eAAe,EACfC,SAAS,IAEXtB,GAAoB,IAGf,CAAEx3C,OACX,EACAgB,SACE,MAAM0gB,EAAUp0B,KAAKkmD,OAAOviD,QAAU3D,KAAKkmD,OAAOviD,eAAYrD,EAC9D,OAAO,IAAA8mB,GAAE,MAAO,CAAE4qB,IAAK,QAAU5d,EACnC,EAGFi1B,OAAkB,4BA0BR94B,QAIAA,QA8FV,IAuCIk7B,GAAW,CACbv/B,MAAOi7B,GACPtX,MAAM3jB,EAAOyzB,GACX,MAAM0C,GAAa,QAAI,CAAC,GAClB2B,GAAQ,SAAI,GAEZ0B,GAAmB,QAAO7D,IAC1BS,GAAW,QAAO,aAElB,QAAErC,GAAYmH,GAAQl7B,EAAOm2B,EAAY1C,GAoB/C,OAlBA,SAAUjrB,UACR,MAAM,WAAEg3B,EAAU,SAAE7F,GAAaH,EAC7BhE,GAAiBoE,QACX,8BACVzD,EAAWnnD,MAAQwwD,EAAWx/B,EAAM7vB,SAEpC,MAAMm5B,EAAY8qB,GAAYX,EAAQwI,OACtCtC,EAASuC,GAAG/F,EAAWnnD,MAAOs6B,GAE9BwqB,GAAYC,EAASoC,EAAWnnD,MAAOgxB,GACvCo2B,EAAS,IACJp2B,KACA+zB,EACH0C,cAAeN,EAAWnnD,QAE5B8oD,EAAM9oD,OAAQ,GACd,SAAS,IAAMykD,EAAQ1H,KAAK,QAASoK,EAAWnnD,QAAO,IAElD,CAAE8oD,QAAOrB,cAAeN,EACjC,EACA3uC,SACE,OAAOA,GAAO1T,KAAKgkD,MAAOhkD,KAAKkmD,OACjC,EAGFuF,OAAkB,kCAEdE,GAAW,CACb3T,MAAO,CAAC,QAAS,cAAe,gBAAiB,iBACjD9rB,MAAO,IACFA,GAIH0/B,OAAQ,CACN3sD,KAAM,CAAC3D,OAAQY,OACfyH,QAAS,IAAM,CAAC,EAAG,IAKrBkoD,OAAQ,CACN5sD,KAAM,CAAC/C,MAAOZ,QACdqI,aAASrD,GAKXwrD,UAAW,CACT7sD,KAAM,CAAC/C,MAAOZ,QACdqI,aAASrD,GAKXyrD,KAAM,CACJ9sD,KAAMyN,OACN/I,QAAS,GAKX8kD,QAAS,CACPxpD,KAAMyN,OACN/I,aAASrD,GAKXooD,QAAS,CACPzpD,KAAMyN,OACN/I,aAASrD,GAKX0rD,mBAAoB,CAClB/sD,KAAM/C,MACNyH,aAASrD,GAKX2rD,eAAgB,CACdhtD,KAAM/C,MACNyH,aAASrD,GAKX4rD,QAAS,CACPjtD,KAAM/C,MACNyH,aAASrD,GAKX6rD,cAAe,CACbltD,KAAMsxB,QACN5sB,SAAS,GAQXyoD,IAAK,CACHntD,KAAM,CAACiY,OAAQ5b,QACfqI,QAAS,YAEX0oD,mBAAoB,CAClBptD,KAAMyN,OACN/I,aAASrD,GAEXgsD,QAAS,CACPrtD,KAAMsxB,QACN5sB,aAASrD,GAEXisD,oBAAqB,CACnBttD,KAAMyN,OACN/I,aAASrD,GAEXksD,gBAAiB,CACfvtD,KAAMyN,OACN/I,aAASrD,GAEXmsD,cAAe,CACbxtD,KAAMyN,OACN/I,aAASrD,GAEXosD,cAAe,CACbztD,KAAMsxB,QACN5sB,aAASrD,GAEXqsD,uBAAwB,CACtB1tD,KAAMyN,OACN/I,aAASrD,GAEXssD,cAAe,CACb3tD,KAAMsxB,QACN5sB,aAASrD,GAEXusD,oBAAqB,CACnB5tD,KAAMsxB,QACN5sB,aAASrD,GAEXwsD,qBAAsB,CACpB7tD,KAAMsxB,QACN5sB,SAAS,GAEX+hD,iBAAkB,CAChBzmD,KAAMsxB,QACN5sB,SAAS,IAGbksC,MAAM3jB,EAAOyzB,GACX,MAAMjtC,GAAO,QAAI,MACXq6C,GAAY,QAAS,CACzB/I,OAAO,EACP3B,WAAY,CAAC,EACb2K,YAAa,GACbC,gBAAiB,MAEX5wD,QAASmmD,GAAqB3S,GAAM3jB,GACtC7vB,EAAU,IACXmmD,EACHiG,QAASv8B,EAAMu8B,QACfC,QAASx8B,EAAMw8B,QACfoD,UAAW5/B,EAAM4/B,UACjBO,mBAAoBngC,EAAMmgC,mBAC1BF,cAAejgC,EAAMigC,cACrBC,IAAKlgC,EAAMkgC,IACXR,OAAQ1/B,EAAM0/B,OACdG,KAAM7/B,EAAM6/B,KACZO,QAASpgC,EAAMogC,QACfC,oBAAqBrgC,EAAMqgC,oBAC3BC,gBAAiBtgC,EAAMsgC,gBACvBC,cAAevgC,EAAMugC,cACrBC,cAAexgC,EAAMwgC,cACrBC,uBAAwBzgC,EAAMygC,uBAC9BC,cAAe1gC,EAAM0gC,cACrBC,oBAAqB3gC,EAAM2gC,qBAGvBvK,EAAWlB,GAAsB,YACjCmB,EAAcnB,GAAsB,eACpCuE,EAAkBvE,GAAsB,mBACxC4F,EAAuB5F,GAAsB,yBACnD,QAAQS,GAAoB31B,EAAMw5B,kBAElC,MAAMwH,EAAgB,CACpBC,iBAKExN,EAAQ1H,KAAK,cAAe8U,EAAU1K,WAAW+K,WAKjDzN,EAAQ1H,KAAK,gBAAiB8U,EAAU1K,WAAWgL,aAMnD1N,EAAQ1H,KAAK,gBAAiB8U,EAAU1K,WAAW2F,YACrD,EACAsF,kBAAkB7iC,GAChB,MAAMm8B,EAAQmG,EAAUE,gBAAgBjuC,MAAMiS,GAAMA,EAAE1sB,OAASkmB,EAAElmB,OAC7DqiD,GACFA,EAAM7C,mBAAkB,EAE5B,EACAwJ,qBAAqB9iC,GACnB,MAAMm8B,EAAQmG,EAAUE,gBAAgBjuC,MAAMiS,GAAMA,EAAE1sB,OAASkmB,EAAElmB,OAC7DqiD,GACFA,EAAM7C,mBAAkB,EAE5B,IAGF,SAAUrvB,UACJxI,EAAMw5B,mBACRhE,GAAiBoE,EAAIpE,GAAiBoE,SAAY,oCAEpD,MAAM,IACJlpD,EAAG,IACH4wD,EAAG,KACH5M,EAAI,aACJ6M,EAAY,OACZxI,EAAM,SACNY,GACE35B,EAAMw5B,iBACNhE,GAAiBoE,QACX,8BAEV,IACEzpD,EAAQqxD,sBAAyBrxD,EAAQqxD,gBAK3C,CAJE,MAAOp3C,GACPqR,QAAQrR,MACN,yEAAyEA,EAAMkX,UAEnF,OAEMmzB,GAAiBC,GAEvB,MAAM+M,EACkB,iBAAftxD,EAAQ+vD,IAAkBoB,EAAInxD,EAAQ+vD,KAAO/vD,EAAQ+vD,IAC9D/vD,EAAQ+vD,IAAMuB,GAAcH,EAAII,SAEhC,MAAM3N,EAAU,CACdqC,SAASsE,GACP,QAAwBtmD,IAApBsmD,EAAM1E,UACR,QAA+B5hD,IAA3BysD,EAAUc,aACZd,EAAUC,YAAY/nD,KAAK2hD,OACtB,CACL,MAAMn7B,EAAQshC,EAAUE,gBAAgBjuC,MACrCiS,GACCA,EAAE0xB,cAAcmL,cAChBlH,EAAMjE,cAAcmL,cAEnBriC,IACHshC,EAAUc,aAAavL,SAASsE,GAChCmG,EAAUE,gBAAgBhoD,KAAK2hD,GAEnC,EAEoB,IAAlBA,EAAMzE,SACR4K,EAAU1K,WAAWC,SAASsE,EAAMjE,cAExC,EACAJ,YAAYqE,QACctmD,IAApBsmD,EAAM1E,iBACuB5hD,IAA3BysD,EAAUc,aACZd,EAAUC,YAAcD,EAAUC,YAAY7vD,QAC3C8zB,GAAMA,EAAE1sB,OAASqiD,EAAMriD,QAG1BwoD,EAAUc,aAAatL,YAAYqE,EAAMjE,eACzCoK,EAAUE,gBAAkBF,EAAUE,gBAAgB9vD,QACnD8zB,GACCA,EAAE0xB,cAAcmL,cAChBlH,EAAMjE,cAAcmL,gBAI5Bf,EAAU1K,WAAWE,YAAYqE,EAAMjE,cACzC,EAEAqE,qBAAqB+G,GACnBhB,EAAUc,aAAeE,EACzBhB,EAAUC,YAAYhvD,SAAS4oD,IAC7BmG,EAAUc,aAAavL,SAASsE,EAAM,IAExCmG,EAAUC,YAAc,GAExBrH,EAAgBoI,EAClB,EAEApI,gBAAgBqI,GACdjB,EAAU1K,WAAW4L,WAAWD,EAASrL,cAC3C,EAEAuL,QAAQ9N,GACN,MAAM2L,EAAOgB,EAAU1K,WAAW+K,UAC9BhN,IAAW2L,GACbgB,EAAU1K,WAAW6L,QAAQ9N,EAAQ,CACnC+N,SAASjiC,EAAM4gC,sBAA+B,MAGpD,EAEAsB,sBAAsBhO,GACpB2M,EAAUf,mBAAqB5L,CACjC,EACAiO,kBAAkBjO,GAChB2M,EAAUd,eAAiB7L,CAC7B,EACAkO,WAAWlO,GACT2M,EAAUb,QAAU9L,CACtB,EACAmO,OAAOnO,GACL,MAAMoO,EAAazB,EAAU1K,WAAW2F,YACxC+E,EAAU1K,WAAWhmD,QAAQ+vD,IAAMhM,EACnC2M,EAAU1K,WAAWoM,UAAUD,EAAY,CACzCL,SAAS,EACTjC,QAAS,CAAC,EAAG,IAEjB,EACAuC,UAAU5C,GACRkB,EAAU1K,WAAWoM,UAAU5C,EAAQ,CACrCsC,SAASnuD,KAAK8sD,sBAA+B,MAEjD,EACA4B,UAAUtO,GACR,IAAKA,EACH,OAEF,MAAMuO,EAAYlB,EAAarN,GAC/B,IAAKuO,EAAUC,UACb,OAEF,MAAMC,EACJ9B,EAAU+B,eAAiB/B,EAAU1K,WAAW2F,YAC5C+G,GAAiBF,EAAUG,OAAOL,EAAW,GAC/CI,IACFhC,EAAU+B,cAAgBH,EAC1B5B,EAAU1K,WAAWoM,UAAUE,EAAW3uD,KAAKivD,kBAEnD,EAEAC,UAAU9O,GACR,GAAc,MAAVA,EACF,OAEF,MAAM+O,EAAYlK,EAAO7E,GACnBgP,EACJrC,EAAUsC,eAAiBtC,EAAU1K,WAAWgL,YAEhD+B,EAAUE,MAAQH,EAAUG,KAC5BF,EAAUG,MAAQJ,EAAUI,MAE5BxC,EAAUsC,cAAgBF,EAC1BpC,EAAU1K,WAAWmN,MAAML,EAAW,CACpChB,SAASnuD,KAAK8sD,sBAA+B,OAGnD,GAGFtL,GAAqBc,EAAUrC,EAAQqC,UACvCd,GAAqBe,EAAatC,EAAQsC,aAC1Cf,GAAqBmE,EAAiB1F,EAAQ0F,iBAC9CnE,GAAqBwF,EAAsB/G,EAAQ+G,sBAEnD+F,EAAU1K,WAAazlD,EAAI8V,EAAKxX,MAAOmB,GAEvC2jD,GAAYC,EAAS8M,EAAU1K,WAAYn2B,GAC3C,MAAMsJ,EAAY8qB,GAAYX,EAAQwI,OAEtC4E,EAAU1K,WAAW+F,GACnB,UACA5I,GAAS0N,EAAcC,eAAgB,MAEzCJ,EAAU1K,WAAW+F,GAAG,aAAc8E,EAAcI,mBACpDP,EAAU1K,WAAW+F,GACnB,gBACA8E,EAAcK,sBAEhB1H,EAASuC,GAAG2E,EAAU1K,WAAY7sB,GAClCu3B,EAAU/I,OAAQ,GAClB,SAAS,IAAMrE,EAAQ1H,KAAK,QAAS8U,EAAU1K,aAAY,KAG7D,SAAgB,KACV0K,EAAU1K,YACZ0K,EAAU1K,WAAWznB,QACvB,IAGF,MAAM+nB,GAAgB,SAAS,IAAMoK,EAAU1K,aACzC2B,GAAQ,SAAS,IAAM+I,EAAU/I,QACvC,MAAO,CAAEtxC,OAAMsxC,QAAOrB,gBACxB,EACAjvC,SACE,OAAO,IAAA0T,GACL,MACA,CAAE+yB,MAAO,CAAE0C,MAAO,OAAQ4S,OAAQ,QAAUzd,IAAK,QACjDhyC,KAAKgkD,MAAQhkD,KAAKkmD,OAAOviD,UAAY,CAAC,EAE1C,EAGFgoD,OAAkB,2BAElB,MAAM+D,GAAU,IACX5N,GACHC,KAAM,CACJ9iD,KAAMiY,OACNvT,QAAS,cAEXgsD,UAAW,CACT1wD,KAAMsxB,QACN0xB,QAAQ,EACRt+C,SAAS,GAEXshD,OAAQ,CACNhmD,KAAM,CAAC3D,OAAQY,OACf+lD,QAAQ,EACRt+C,QAAS,MAEX62C,KAAM,CACJv7C,KAAM,CAAC3D,QACPqI,QAAS,KAAe,EACxBs+C,QAAQ,GAEV2N,aAAc,CACZ3wD,KAAMyN,OACNu1C,QAAQ,EACRt+C,QAAS,OAIPksD,GAAU,CAAC3jC,EAAOm2B,EAAY1C,KAClC,MAAQtjD,QAASgrD,EAAcpH,QAASqH,GAAiBlF,GACvDl2B,EACAm2B,EACA1C,GAEItjD,EAAU,IACXgrD,KACAn7B,GAGC+zB,EAAU,IACXqH,EACHwI,aAAa50D,GACPmnD,EAAWnnD,MAAM60D,WACnB70D,EACImnD,EAAWnnD,MAAM60D,SAASC,SAC1B3N,EAAWnnD,MAAM60D,SAASE,UAElC,EACAC,WAAWr6B,GACT8pB,EAAQ1H,KAAK,gBAAiBpiB,EAAMs6B,QACpCxQ,EAAQ1H,KAAK,iBAAkBpiB,EAAMs6B,OACvC,EACAC,UAAUhQ,GACR,GAAc,MAAVA,GAIAiC,EAAWnnD,MAAO,CACpB,MAAMm1D,EAAYhO,EAAWnnD,MAAMo1D,YAC9BD,GAAcA,EAAUrB,OAAO5O,IAClCiC,EAAWnnD,MAAMk1D,UAAUhQ,EAE/B,CACF,GAEF,MAAO,CAAE/jD,UAAS4jD,UAAS,EAM7B,IAAIsQ,GAAW,CACbhsD,KAAM,UACN2nB,MAAOwjC,GACP7f,MAAM3jB,EAAOyzB,GACX,MAAM0C,GAAa,QAAI,CAAC,GAClB2B,GAAQ,SAAI,GAEZ0B,GAAmB,QAAO7D,IAC1BS,GAAW,QAAO,aAExB,QAAQ,oBAAoB,MAAQD,EAAWnnD,MAAMs1D,gBACrD,QACE,iBACCjqB,GAAU8b,EAAWnnD,MAAMs1D,aAAavG,UAAY1jB,KAEvD,QACE,WACCkqB,GAAYpO,EAAWnnD,MAAMsuD,SAAWnH,EAAWnnD,MAAMsuD,QAAQiH,KAEpE,MAAM,QAAEp0D,EAAO,QAAE4jD,GAAY4P,GAAQ3jC,EAAOm2B,EAAY1C,GA4BxD,YA3BqBr/C,IAAjBjE,EAAQm+C,aAIHn+C,EAAQm+C,MAGjB,SAAU9lB,UACR,MAAM,OAAEg8B,EAAM,SAAE7K,GAAaH,EACzBhE,GAAiBoE,QACX,8BACVzD,EAAWnnD,MAAQw1D,EAAOxkC,EAAM+4B,OAAQ5oD,GAExC,MAAMm5B,EAAY8qB,GAAYX,EAAQwI,OACtCtC,EAASuC,GAAG/F,EAAWnnD,MAAOs6B,GAE9B6sB,EAAWnnD,MAAMktD,GAAG,OAAQ5I,GAASS,EAAQiQ,WAAY,MACzDlQ,GAAYC,EAASoC,EAAWnnD,MAAOgxB,GACvCo2B,EAAS,IACJp2B,KACA+zB,EACH0C,cAAeN,EAAWnnD,QAE5B8oD,EAAM9oD,OAAQ,GACd,SAAS,IAAMykD,EAAQ1H,KAAK,QAASoK,EAAWnnD,QAAO,IAGlD,CAAE8oD,QAAOrB,cAAeN,EACjC,EACA3uC,SACE,OAAOA,GAAO1T,KAAKgkD,MAAOhkD,KAAKkmD,OACjC,EAGFqK,OAAkB,8BAElB,MAAMI,GAAU,IACXrM,GACHsM,QAAS,CACP3xD,KAAM/C,MACNyH,QAAS,IAAM,IAEjBktD,aAAc,CACZ5xD,KAAMyN,OACNu1C,QAAQ,EACRt+C,QAAS,GAEXmtD,OAAQ,CACN7xD,KAAMsxB,QACN0xB,QAAQ,EACRt+C,SAAS,IA8BPotD,GAAU,IACXJ,IAiHL,MAAMK,GAAU,IACX9kC,GACHkI,QAAS,CACPn1B,KAAMiY,OACNvT,QAAS,OA0Kb,MAAMstD,GAAU,IACX5I,GACH6I,IAAK,CACHjyD,KAAMsxB,QACN5sB,SAAS,GAEXwtD,WAAY,CACVlyD,KAAMiY,OACNvT,QAAS,OAEXytD,aAAc,CACZnyD,KAAMsxB,QACN5sB,SAAS,GAEX0iB,IAAK,CACHpnB,KAAMiY,OACNvT,QAAS,OAIP0tD,GAAU,CAACnlC,EAAOm2B,EAAY1C,KAClC,MACEtjD,QAASi1D,EACTrR,QAASsR,GACP5I,GAAQz8B,EAAOm2B,EAAY1C,GACzBtjD,EAAU,IACXi1D,EACHJ,IAAKhlC,EAAMglC,IACXC,WAAYjlC,EAAMilC,WAClBC,aAAcllC,EAAMklC,cAEtB,MAAO,CACL/0D,UACA4jD,QAAS,IACJsR,GAEN,EAGH,IAAIC,GAAW,CACbtlC,MAAO+kC,GACPphB,MAAM3jB,EAAOyzB,GACX,MAAM0C,GAAa,QAAI,CAAC,GAElBqD,GAAmB,QAAO7D,IAC1BS,GAAW,QAAO,aAElB,QAAEjmD,EAAO,QAAE4jD,GAAYoR,GAAQnlC,EAAOm2B,EAAY1C,GAoBxD,OAlBA,SAAUjrB,UACR,MAAM,UAAE+8B,EAAS,SAAE5L,GAAaH,EAC5BhE,GAAiBoE,QACX,8BACVzD,EAAWnnD,MAAQu2D,EAAUvlC,EAAM7F,IAAKhqB,GAExC,MAAMm5B,EAAY8qB,GAAYX,EAAQwI,OACtCtC,EAASuC,GAAG/F,EAAWnnD,MAAOs6B,GAE9BwqB,GAAYC,EAASoC,EAAWnnD,MAAOgxB,GACvCo2B,EAAS,IACJp2B,KACA+zB,EACH0C,cAAeN,EAAWnnD,SAE5B,SAAS,IAAMykD,EAAQ1H,KAAK,QAASoK,EAAWnnD,QAAO,IAGlD,CAAEynD,cAAeN,EAC1B,EACA3uC,SACE,OAAO,IACT,EAGF89C,OAAkB,iCA2ERjhC,QAWAA,QA4BV,IC5nFA,IAA4B+e,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,eACRrjB,MAAO,CACLwlC,kBAAmB,KACnBC,QAAS,CAAE1yD,KAAMsxB,UAEnBsf,MAAMC,GAER,MAAM5jB,EAAQ4jB,GAON,QAAE6hB,EAAO,kBAAED,IAAsBthB,EAAAA,EAAAA,IAAOlkB,GAEhD,MAAO,CAACwoB,EAAUC,KACRS,EAAAA,EAAAA,IAAOsc,GAAmBE,WAC7B3c,EAAAA,EAAAA,OAAciC,EAAAA,EAAAA,KAAa9B,EAAAA,EAAAA,IAAOyc,IAAU,CAC3C90D,IAAK,EACL,UAAW,EAACq4C,EAAAA,EAAAA,IAAOsc,GAAmBE,UAAUxc,EAAAA,EAAAA,IAAOsc,GAAmBI,YACzE,CACDnuD,SAAS2xC,EAAAA,EAAAA,KAAS,IAAM,EACtBD,EAAAA,EAAAA,KAAaD,EAAAA,EAAAA,IAAO2c,IAAQ,CAC1B,WAAY,kBAAiB3c,EAAAA,EAAAA,IAAOuc,GAAW,QAAU,eACzD9I,SAAU,CAAC,GAAI,KACd,KAAM,EAAG,CAAC,gBAEflrD,EAAG,GACF,EAAG,CAAC,cACPq4C,EAAAA,EAAAA,IAAoB,IAAI,EAE9B,IC3CA,MAAM,GAAc,GAEpB,U,iCCFA,MAAM4B,GAAetkC,KAAMukC,EAAAA,EAAAA,IAAa,mBAAmBvkC,EAAEA,KAAIwkC,EAAAA,EAAAA,MAAcxkC,GACzEu5B,GAAa,CAAE1yB,GAAI,eACnB2yB,GAAa,CACjB/vC,IAAK,EACLiwC,MAAO,qBAEHD,GAAa,CAAEhwC,IAAK,GACpBkwC,GAA2B2K,IAAa,KAAmBlC,EAAAA,EAAAA,GAAoB,IAAK,CACxF1I,MAAO,gBACP,cAAe,QACd,MAAO,KACJE,GAAa,CACjBnwC,IAAK,EACLiwC,MAAO,UA6BT,QAA4BsC,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,QACRrjB,MAAO,CACLorB,YAAa,KACboa,kBAAmB,CAAE/tD,QAAS,KAAM,CAAoB,KAE1DksC,MAAMC,GAER,MAAM5jB,EAAQ4jB,EAINE,GAAQC,EAAAA,GAAAA,MAER,YAAEqH,EAAW,kBAAEoa,IAAsBthB,EAAAA,EAAAA,IAAOlkB,GAC5C8lC,GAAahgB,EAAAA,EAAAA,IAEhB,MACG6Z,GAASvb,EAAAA,EAAAA,KAAS,IAAM0X,MACxBvX,GAAqCH,EAAAA,EAAAA,KACzC,IAAMN,EAAMU,QAAQC,GAAAA,GAAAA,QAAAA,cAEhBib,GAAStb,EAAAA,EAAAA,KAAS,IAAM+c,EAAUxB,KAClCoG,GAAU3hB,EAAAA,EAAAA,KAAS,IACvBpkB,EAAMorB,aAAeprB,EAAMorB,YAAY+H,IACnC6S,EAAWhmC,EAAMorB,YAAY+H,KAC7B,CAAC,IAED8S,GAAyB7hB,EAAAA,EAAAA,KAAS,IACtCpkB,EAAMorB,aAAeprB,EAAMorB,YAAY8a,UAAUvtD,OAAS,EACtD,CACE+sD,SAAU1lC,EAAMorB,YAAY8a,UAAU,GAAGR,SACzCE,UAAW5lC,EAAMorB,YAAY8a,UAAU,GAAGN,WAE5C,CAAC,IAEDO,GAAuB/hB,EAAAA,EAAAA,KAAS,IACpCpkB,EAAMorB,aAAeprB,EAAMorB,YAAY8a,UAAUvtD,OAAS,EACtD,CACE+sD,SACE1lC,EAAMorB,YAAY8a,UAAUlmC,EAAMorB,YAAY8a,UAAUvtD,OAAS,GAC9D+sD,SACLE,UACE5lC,EAAMorB,YAAY8a,UAAUlmC,EAAMorB,YAAY8a,UAAUvtD,OAAS,GAC9DitD,WAEP,CAAC,IAEDQ,GAAetgB,EAAAA,EAAAA,KAAI,GAEzB,SAASkgB,EAAWK,GAClB,IAAKA,GAA6B,KAAfA,EACjB,IACE,MAAMC,EAAWnT,IACf,IAAIoT,WAAYC,gBAAgBH,EAAY,aAE9C,MAAO,CAAEC,W,CACT,MAAO/nC,GAEP,OADA9C,QAAQrR,MAAM,uBACP,CAAC,C,CAGZ,MAAO,CAAC,CACV,CACA,SAAS+2C,EAAUxB,GACjB,MAAO,EACJA,EAAO3wD,MAAM,GAAG,GAAK2wD,EAAO3wD,MAAM,GAAG,IAAM,GAC3C2wD,EAAO3wD,MAAM,GAAG,GAAK2wD,EAAO3wD,MAAM,GAAG,IAAM,EAEhD,CACA,SAASuzD,EAAU5C,GACbmG,EAAW92D,OAAOynD,eACpBqP,EAAW92D,OAAOynD,cAAc8L,UAAU5C,EAE9C,CACA,SAAS7D,IACP,OAAO97B,EAAMorB,YACT,CACE,CACEprB,EAAMorB,YAAY1H,QAAQic,OAAO,GACjC3/B,EAAMorB,YAAY1H,QAAQic,OAAO,IAEnC,CACE3/B,EAAMorB,YAAY1H,QAAQic,OAAO,GACjC3/B,EAAMorB,YAAY1H,QAAQic,OAAO,KAGrC,EACN,CACA,SAAS8G,IACPX,EAAW92D,OAAOynD,cAAc8L,UAAUzG,IAC5C,CACA,SAAS4K,IACPN,EAAap3D,OAASo3D,EAAap3D,MAC9Bo3D,EAAap3D,OAChB2kD,YAAW,KACT8S,GAAW,GACV,IAEP,CAEF,MAAO,CAACje,EAAUC,KAChB,MAAMke,GAAyBhe,EAAAA,EAAAA,IAAkB,eAEjD,OAAQI,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOrI,GAAY,EAC1DuI,EAAAA,EAAAA,IAAOkC,GAAa3H,UAChBsF,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOpI,OACzCmI,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOnI,GAAY,EACnDqI,EAAAA,EAAAA,IAAOkC,GAAa1H,QAAQqC,WACxBgD,EAAAA,EAAAA,OAAciC,EAAAA,EAAAA,IAAa2b,EAAwB,CAClD91D,IAAK,EACL+1D,WAAYR,EAAap3D,MACzB,sBAAuBy5C,EAAO,KAAOA,EAAO,GAAMyB,GAAkBkc,EAAcp3D,MAAQk7C,IACzF,CACDzyC,SAAS2xC,EAAAA,EAAAA,KAAS,IAAM,EACtBI,EAAAA,EAAAA,GAAoB,MAAO,CACzB1I,OAAOmI,EAAAA,EAAAA,IAAgB,CAAC,oBAAqB,CAAE,iBAAkBmd,EAAap3D,UAC7E,EACAk6C,EAAAA,EAAAA,IAAO6c,GAASO,WAAYpd,EAAAA,EAAAA,IAAOwW,IAAqC,KAA1BxW,EAAAA,EAAAA,IAAOyW,GAAQhnD,SACzDowC,EAAAA,EAAAA,OAAciC,EAAAA,EAAAA,KAAa9B,EAAAA,EAAAA,IAAO2d,IAAO,CACxCh2D,IAAK,EACLgvD,KAAM,GACNrD,QAAS,GACTkD,QAAQxW,EAAAA,EAAAA,IAAOwW,GACfC,QAAQzW,EAAAA,EAAAA,IAAOyW,GACfmH,QAAS,aACThhB,IAAKggB,EACLiB,QAASte,EAAO,KAAOA,EAAO,GAAMyB,GAAiBqY,GAAUrZ,EAAAA,EAAAA,IAAOyW,MACrE,CACDloD,SAAS2xC,EAAAA,EAAAA,KAAS,IAAM,EACtBD,EAAAA,EAAAA,KAAaD,EAAAA,EAAAA,IAAO8d,MACpB7d,EAAAA,EAAAA,KAAaD,EAAAA,EAAAA,IAAO2Q,IAAW,CAC7B5gB,SAAU,UACV6H,MAAO,cACP+I,QAAS4c,GACR,CACDhvD,SAAS2xC,EAAAA,EAAAA,KAAS,IAAM,CACtBrI,MAEFtvC,EAAG,KAEL03C,EAAAA,EAAAA,KAAaD,EAAAA,EAAAA,IAAO2Q,IAAW,CAC7B5gB,SAAU,UACV6H,MAAO,cACP+I,QAAS6c,GACR,CACDjvD,SAAS2xC,EAAAA,EAAAA,KAAS,IAAM,EACtBI,EAAAA,EAAAA,GAAoB,IAAK,CACvB1I,OAAOmI,EAAAA,EAAAA,IAAgB,UAASmd,EAAap3D,MAAQ,WAAa,eAClE,cAAe,QACd,KAAM,MAEXyC,EAAG,KAEL03C,EAAAA,EAAAA,KAAaD,EAAAA,EAAAA,IAAO+d,IAAa,CAC/B9sC,IAAK,IAAG+uB,EAAAA,EAAAA,IAAOge,GAAAA,EAAPhe,0CACR4M,aAAa5M,EAAAA,EAAAA,IAAO3E,GAAW4iB,gBAC/BxH,QAAQzW,EAAAA,EAAAA,IAAOyW,IACd,KAAM,EAAG,CAAC,MAAO,cAAe,YACnCxW,EAAAA,EAAAA,KAAaD,EAAAA,EAAAA,IAAOke,IAAW,CAC7B9L,SAASpS,EAAAA,EAAAA,IAAO6c,GAASO,UACxB,KAAM,EAAG,CAAC,aACZpd,EAAAA,EAAAA,IAAOsc,GAAmBE,WACtB3c,EAAAA,EAAAA,OAAciC,EAAAA,EAAAA,KAAa9B,EAAAA,EAAAA,IAAOyc,IAAU,CAC3C90D,IAAK,EACL,UAAW,EAC7Bq4C,EAAAA,EAAAA,IAAOsc,GAAmBE,UAC1Bxc,EAAAA,EAAAA,IAAOsc,GAAmBI,YAEP,KAAM,EAAG,CAAC,cACb9b,EAAAA,EAAAA,IAAoB,IAAI,IAC5BX,EAAAA,EAAAA,KAAaD,EAAAA,EAAAA,IAAOme,IAAc,CAChChvD,KAAMmwC,EAAKe,GAAG,6BACd,aAAc,WACb,CACD9xC,SAAS2xC,EAAAA,EAAAA,KAAS,IAAM,EACrBF,EAAAA,EAAAA,IAAO+c,GAAwBP,WAC3B3c,EAAAA,EAAAA,OAAciC,EAAAA,EAAAA,IAAasc,GAAc,CACxCz2D,IAAK,EACL20D,mBAAmBtc,EAAAA,EAAAA,IAAO+c,GAC1BR,SAAS,GACR,KAAM,EAAG,CAAC,wBACb3b,EAAAA,EAAAA,IAAoB,IAAI,IAC3BZ,EAAAA,EAAAA,IAAOid,GAAsBT,WACzB3c,EAAAA,EAAAA,OAAciC,EAAAA,EAAAA,IAAasc,GAAc,CACxCz2D,IAAK,EACL20D,mBAAmBtc,EAAAA,EAAAA,IAAOid,GAC1BV,SAAS,GACR,KAAM,EAAG,CAAC,wBACb3b,EAAAA,EAAAA,IAAoB,IAAI,MAE9Br4C,EAAG,GACF,EAAG,CAAC,YAETA,EAAG,GACF,EAAG,CAAC,SAAU,aACjBq4C,EAAAA,EAAAA,IAAoB,IAAI,IAC3B,MAELr4C,EAAG,GACF,EAAG,CAAC,kBACNs3C,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOhI,IAAYsI,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,oBAAqB,QAE9G,CAEJ,ICpPA,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,YAAY,qBAEvE,U,WCLA,MACM5I,GAAa,CAAEG,MAAO,kBAqC5B,QAA4BsC,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,QACRrjB,MAAO,CACLsjB,SAAU,KACVikB,eAAgB,CAAEx0D,KAAMsxB,SACxBkf,OAAQ,KACR6H,YAAa,KACboa,kBAAmB,CAAE/tD,QAAS,KAAM,CAAoB,KAE1DksC,MAAMC,GAER,MAAM5jB,EAAQ4jB,EAIN0H,GAAQC,EAAAA,EAAAA,MACRzH,GAAQC,EAAAA,GAAAA,MAER,SAAET,EAAQ,kBAAEkiB,EAAiB,YAAEpa,IAAgBlH,EAAAA,EAAAA,IAAOlkB,GACtD0jB,GAAiCU,EAAAA,EAAAA,KACrC,IAAMpkB,EAAMorB,YAAY1H,UAEpBuJ,GAAgCnH,EAAAA,EAAAA,IACpCwF,EAAMvZ,OAAO+V,WAAawD,EAAMvZ,OAAOkb,UAAY,MAE/CyF,GAA+CtO,EAAAA,EAAAA,KAAS,IAC5DV,EAAQ10C,MAAMujD,SAAS55C,OAAS,GAAKs0C,EAAUj+C,MAC3C00C,EAAQ10C,MAAMujD,UAAUtF,EAAUj+C,MAAQ,GAC1C,OAEAw4D,GAA6B1hB,EAAAA,EAAAA,KAAI,GACjCuE,GAAQjG,EAAAA,EAAAA,KAAS,IACrBpkB,EAAMujB,OACFvjB,EAAMujB,OAAOzwB,MACVu3B,GAAUA,EAAMp8B,KAAO+R,EAAMorB,YAAY1H,QAAQY,WAEpD,CAAC,IAEDuH,GAAgBzH,EAAAA,EAAAA,KAAS,IAC7BqjB,EAAiB/jB,EAAQ10C,MAAO0jD,EAAQ1jD,SAG1C,SAAS04D,EACPhkB,EACA6jB,EACAta,GAEA,MAAMH,EACJya,GAAkBta,GAA2B,IAAdA,EAC3B,aAAavJ,EAAQz1B,cAAcg/B,EAAY,KAC9Csa,GAAkB7jB,EAAQikB,iBAC3B,aAAajkB,EAAQikB,mBACrB,KACAza,EACJqa,GAAkBta,GAAaA,EAAYvJ,EAAQ6O,SAAS55C,OACxD,aAAa+qC,EAAQz1B,cAAcg/B,EAAY,KAC9Csa,GAAkB7jB,EAAQkkB,aAC3B,aAAalkB,EAAQkkB,eACrB,KACN,MAAO,CACL9a,cACAI,UAEJ,CACA,SAASua,EACP/jB,EACAgP,GAEA,MAAMmV,EAAOH,EACXhkB,EACA1jB,EAAMunC,eACNta,EAAUj+C,OAASi+C,EAAUj+C,MAAQ,MAEjCq2C,GAAcoB,EAAAA,GAAAA,KAClBC,EAAAA,GAAAA,IACE1mB,EAAMorB,YAAY1H,QAAQiD,aAC1B3mB,EAAMsjB,SAASsD,UAEjB5mB,EAAMsjB,SAASwkB,aAEjB,MAAO,CACL3gB,OAAQuL,EAAUA,EAAQvL,OAASzD,EAAQyD,OAC3CkI,SAAUqD,EAAUA,EAAQqV,UAAYrkB,EAAQqkB,UAChD/gB,SAAU0L,EAAUA,EAAQ1L,SAAWtD,EAAQsD,SAC/CI,QAASsL,EAAUA,EAAQtL,QAAU1D,EAAQ0D,QAC7CP,SAAU6L,EAAUA,EAAQ7L,SAAWnD,EAAQmD,SAC/C2I,OAAQkD,EAAUA,EAAQsV,QAAUtkB,EAAQskB,QAC5CzY,SAAUmD,EAAUA,EAAQuV,UAAYvkB,EAAQukB,UAChDxY,OAAQiD,EAAUA,EAAQwV,QAAUxkB,EAAQwkB,QAC5ClZ,OAAQ0D,EAAUA,EAAQ1D,OAAStL,EAAQsL,OAC3C9B,QAAS2a,EAAK3a,QACd4B,OAAQ4D,EAAUA,EAAQ5D,OAASpL,EAAQoL,OAC3ChC,YAAa+a,EAAK/a,YAClBM,QAASsF,EAAU,GAAKhP,EAAQ0J,QAChCH,UAAWyF,EAAUA,EAAQyV,WAAa,KAC1ChjB,MAAOzB,EAAQyB,MACfpyC,KAAMitB,EAAMunC,eAAiB,UAAY,UACzCliB,YAAaA,EAAYsB,aACzByH,WAAYsE,EAAU,KAAOhP,EAAQ0kB,YACrCja,aAAcuE,EAAU,KAAOhP,EAAQ2kB,cACvCtiB,SAAUrC,EAAQqC,SAClB+B,UAAWpE,EAAQz1B,GACnBq3B,YAAaD,EAAY6B,aAE7B,CACA,SAASohB,EAAmBt5D,GAC1Bw4D,EAAax4D,MAAQA,CACvB,CACA,SAASu5D,EAAczgB,GACrBhE,EAAM8D,SAASC,GAAAA,GAAAA,QAAAA,eAAuC,CACpDC,UAAWA,GAEf,CAWF,OATEO,EAAAA,EAAAA,KACE,IAAMiD,EAAMvZ,OAAOkb,YACnBzkB,UACMggC,IACFvb,EAAUj+C,OAASw5D,E,IAKpB,CAAChgB,EAAUC,KAChB,MAAMggB,GAAmB9f,EAAAA,EAAAA,IAAkB,SACrCG,GAAkBH,EAAAA,EAAAA,IAAkB,QAE1C,OAAQI,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOrI,GAAY,CAC1D6mB,EAAax4D,QACT+5C,EAAAA,EAAAA,OAAciC,EAAAA,EAAAA,IAAayd,EAAkB,CAC5C53D,IAAK,EACLs0C,MAAOqD,EAAKe,GAAG,uBACfjoB,QAASknB,EAAKe,GAAG,0CACjBmf,gBAAiBjgB,EAAO,KAAOA,EAAO,GAAMyB,GAAiBqe,GAAcrf,EAAAA,EAAAA,IAAO2C,GAAe/D,YACjG6gB,eAAgBlgB,EAAO,KAAOA,EAAO,GAAMyB,GAAiBoe,GAAmB,KAC9E,KAAM,EAAG,CAAC,QAAS,cACtBxe,EAAAA,EAAAA,IAAoB,IAAI,IAC5BX,EAAAA,EAAAA,IAAaL,EAAiB,KAAM,CAClC3D,OAAOiE,EAAAA,EAAAA,KAAS,IAAM,EACpBD,EAAAA,EAAAA,IAAayf,EAAkB,CAC7Bve,OAAOnB,EAAAA,EAAAA,IAAOmB,GACdwB,eAAe3C,EAAAA,EAAAA,IAAO2C,GACtBgd,eAAgBpgB,EAAO,KAAOA,EAAO,GAAMyB,GAAiBoe,GAAmB,KAC9E,KAAM,EAAG,CAAC,QAAS,qBAExBpgC,SAASkhB,EAAAA,EAAAA,KAAS,IAAM,EACtBD,EAAAA,EAAAA,IAAa2f,GAAY,CACvB1d,aAAalC,EAAAA,EAAAA,IAAOkC,GACpBoa,mBAAmBtc,EAAAA,EAAAA,IAAOsc,IACzB,KAAM,EAAG,CAAC,cAAe,uBAC5Brc,EAAAA,EAAAA,IAAa4f,GAAa,CACxBld,eAAe3C,EAAAA,EAAAA,IAAO2C,GACtB+B,kBAAkB1E,EAAAA,EAAAA,IAAO5F,GAAUwD,eACnC8H,iBAAiB1F,EAAAA,EAAAA,IAAO5F,GAAU0lB,gBACjC,KAAM,EAAG,CAAC,gBAAiB,mBAAoB,uBAEpDv3D,EAAG,KAEL,CAEJ,ICnMA,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,YAAY,qBAEvE,U,WCNA,MAAMw3D,GAAyBh7C,IAC7B,MAAMi7C,EAAkBljC,SAAS9U,eAAejD,GAChD,GAAIi7C,EAAiB,CACnB,IAAIC,EAAgBD,EAAgBE,cAAc,MAKlD,OAJKD,IACHA,EAAgBnjC,SAASwmB,cAAc,MACvC0c,EAAgB72C,YAAY82C,IAEvBA,C,CAET,MAAM,IAAI92D,MAAM,sBAAsB,EAG3Bg3D,GAAmB,CAC9Bp7C,GAAI,aACJq7C,YACEC,EACA5oC,EACAxwB,GAEA,MAAMq5D,EAAKP,GAAsB94D,EAAQs5D,aACzC,MAAOD,EAAGE,WACRF,EAAGE,WAAWh7B,SAGhB,MAAMi7B,EAAcJ,EAAMp5D,QAAQ63B,SAAS4hC,QAAQC,QAAQC,eACvDP,EAAMp5D,QAAQ63B,SAAS4hC,QAAQC,QAAQC,eAAeP,GACtD,GAEJI,EAAY73D,SAASub,IACnB,MAAM08C,EAAK/jC,SAASwmB,cAAc,MAClCud,EAAGC,QAAU,UACe51D,IAAtBiZ,EAAK48C,eACPV,EAAMW,qBACJ78C,EAAK48C,cACJV,EAAMY,iBAAiB98C,EAAK48C,eAE/BV,EAAMa,S,EAIV,MAAMC,EAAWrkC,SAASwmB,cAAc,SACpC6d,IACFA,EAASt3D,KAAO,WAChBs3D,EAASp8C,GAAKZ,EAAK9C,KACnB8/C,EAASr3C,SAAW3F,EAAK6O,QAG3B,MAAM3R,EAAOyb,SAASskC,eAAej9C,EAAK9C,MAEpCggD,EAAUvkC,SAASwmB,cAAc,QACnC+d,IACFA,EAAQtc,MAAMuc,WAAax/C,OAAOqC,EAAKo9C,WACvCF,EAAQtc,MAAMyc,YAAc1/C,OAAOqC,EAAKs9C,cAG1CZ,EAAG13C,YAAYg4C,GACfN,EAAG13C,YAAY9H,GACfw/C,EAAG13C,YAAYk4C,GACff,EAAGn3C,YAAY03C,EAAG,GAEtB,G,eC5DF,MAAMre,GAAetkC,KAAMukC,EAAAA,EAAAA,IAAa,mBAAmBvkC,EAAEA,KAAIwkC,EAAAA,EAAAA,MAAcxkC,GACzEu5B,GAAa,CAAE1yB,GAAI,iBACnB2yB,GAAa,CAAEE,MAAO,eACtBD,GAAa,CAAC,WACdE,GAAa,CAAC,WACdC,GAA2B0K,IAAa,KAAmBlC,EAAAA,EAAAA,GAAoB,MAAO,CAAEv7B,GAAI,gBAAkB,MAAO,KACrHgzB,GAAa,CAAEH,MAAO,cACtBI,GAAa,CAAEJ,MAAO,oBACtBK,GAAa,CAAEL,MAAO,mBACtBM,GAAa,CAAC,WAuBpB,QAA4BgC,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,QACRrjB,MAAO,CACLsjB,SAAU,KACV8H,YAAa,MAEfU,MAAO,CAAC,kBACRnI,MAAMC,GAAc,KAAEmI,IAExB,MAAM/rB,EAAQ4jB,GASN,EAAE18B,IAAM28B,EAAAA,EAAAA,MAER+mB,GAAkB9kB,EAAAA,EAAAA,KAAI,GACtB+kB,GAAuB/kB,EAAAA,EAAAA,KAAI,GAC3BglB,GAA2C1mB,EAAAA,EAAAA,KAAS,KACxD2mB,EAAAA,GAAAA,IAAY/qC,EAAMorB,YAAY8a,UAAWh/C,EAAG8Y,EAAMsjB,SAASwD,kBAEvDkkB,EAAaC,EAAU,MACvBC,EAAYD,EAAU,KACtB/E,GAA4C9hB,EAAAA,EAAAA,KAAS,KAAM,CAC/DylB,OAAQe,EAAgB57D,MACpB87D,EAAS97D,MAAMm8D,gBACfL,EAAS97D,MAAMo8D,gBACnBN,SAAUv2B,KAAKj1B,MACbi1B,KAAKtR,UAAU,CACb6nC,EAAS97D,MAAM87D,SAASxb,MACxBwb,EAAS97D,MAAM87D,SAASO,iBAIxB/Z,GAA2ClN,EAAAA,EAAAA,KAC/C,IAAM0mB,EAAS97D,MAAMsiD,cAEjBnhD,GAAUi0C,EAAAA,EAAAA,KAA+B,KAAM,CACnDknB,YAAY,EACZC,qBAAqB,EACrBC,WAAW,EACXC,OAAQ,CACNzL,QAAS,CACP0L,IAAK,KAGTC,OAAQ,CACNhwC,EAAG,CACDiwC,KAAM,CACJC,iBAAiB,GAEnBC,MAAO,CACLvyD,MAAO,GACPqQ,SAAU,SAAU5a,GAClB,OAAO47D,EAAgB57D,MACnBwR,OAAOxR,GAAOi4C,QAAQ,GACtB8kB,EAAe/8D,EACrB,GAEF+D,KAAM,SACN4sD,OAAQ,OACRxa,MAAO,CACL6S,SAAS,EACTztC,KAAMqgD,EAAgB57D,MAClBkY,EAAE,qBAAuB,KAAK8jD,KAC9B9jD,EAAE,uBAGV8kD,OAAQ,CACNJ,KAAM,CACJC,iBAAiB,GAEnB5yB,SAAU,OACVkM,MAAO,CACL6S,SAAS,EACTztC,KAAMrD,EAAE,kBAAoB,KAAK8jD,SAGrCiB,WAAY,CACVC,YAAarB,EAAqB77D,MAClC48D,KAAM,CACJC,iBAAiB,GAEnB5yB,SAAU,QACVkM,MAAO,CACL6S,SAAS,EACTztC,KAAMrD,EAAE,sBAAwB,KAAKgkD,QAI3CiB,SAAU,CACRjZ,MAAO,CACLkZ,WAAY,SACZC,YAAa,IAGjBrkC,QAAS,CACPskC,WAAY,CACVtU,SAAS,GAEXR,QAAS,CACP+U,YAAa,CACXC,WAAW,EACXxzC,KAAM,SAERyzC,UAAW,CACTzf,MAAO,SAAUyG,GACf,MAAMzG,EAAQ,IAAIyG,EAAQiZ,QAAQ1f,UAAUyG,EAAQkZ,iBACpD,MAAmC,eAA5BlZ,EAAQiZ,QAAQE,QACnB5f,EAAQ,IAAIke,IACZle,EAAQ,IAAIge,KAClB,EACA7lB,MAAO,SAAU0nB,GAIf,OAHIA,EAAal0D,OAAS,GACxBm0D,EAAgBxb,EAAYtiD,MAAM69D,EAAa,GAAGE,YAErB,IAAxBF,EAAal0D,OAChB,GACAiyD,EAAgB57D,MAChB,GAAGkY,EAAE,yBACH2lD,EAAa,GAAG7f,SACdge,IACJ,GAAG9jD,EAAE,yBAAyB6kD,EAC5Bc,EAAa,GAAG7f,MAAMp5C,QAAQ,IAAK,MAE3C,IAGJg2D,OAAQ,CACN5R,SAAS,GAEXgV,WAAY,CACVvD,YAAa,sBAIb,eAAEwD,IAAmBC,EAAAA,GAAAA,IAAa,CACtChH,YACA/1D,UACA63B,QAAS,CAACqhC,MAGZ,SAAS8D,IACPvC,EAAgB57D,OAAS47D,EAAgB57D,KAC3C,CACA,SAAS+8D,EAAellB,GACtB,OAAO,IAAI94B,KAAiB,KAAX84B,GAAiBumB,cAAc5yD,OAAO,GAAI,EAC7D,CACA,SAASsyD,EAAgBxb,GACvBvF,EAAK,iBAAkBuF,EACzB,CACA,SAAS+b,IACPP,EAAgB,CAAEpH,SAAU,KAAME,UAAW,MAC/C,CACA,SAASqF,EAAU9b,GACjB,OAAOnvB,EAAMsjB,SAASwD,eAClBwmB,EAAAA,GAAMne,GAAUoe,cAChBpe,CACN,CAEF,MAAO,CAAC3G,EAAUC,KAChB,MAAMK,GAAkBH,EAAAA,EAAAA,IAAkB,QAE1C,OAAQI,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOrI,GAAY,EAC3DwI,EAAAA,EAAAA,IAAaL,EAAiB,KAAM,CAClC3D,OAAOiE,EAAAA,EAAAA,KAAS,IAAM,EACpBC,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,sBAAuB,MAEnErhB,SAASkhB,EAAAA,EAAAA,KAAS,IAAM,EACtBI,EAAAA,EAAAA,GAAoB,MAAO5I,GAAY,EACrC4I,EAAAA,EAAAA,GAAoB,QAAS,KAAM,EACjCA,EAAAA,EAAAA,GAAoB,QAAS,CAC3Bz2C,KAAM,QACNsF,KAAM,WACN2a,QAAS43C,EAAgB57D,MACzB66C,QAASsjB,GACR,KAAM,EAAGtsB,KACZwI,EAAAA,EAAAA,IAAiB,KAAMC,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,sBAAuB,MAEzEC,EAAAA,EAAAA,GAAoB,QAAS,KAAM,EACjCA,EAAAA,EAAAA,GAAoB,QAAS,CAC3Bz2C,KAAM,QACNsF,KAAM,WACN2a,SAAU43C,EAAgB57D,MAC1B66C,QAASsjB,GACR,KAAM,EAAGpsB,KACZsI,EAAAA,EAAAA,IAAiB,KAAMC,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,sBAAuB,OAG3EvI,IACAmI,EAAAA,EAAAA,KAAaD,EAAAA,EAAAA,IAAOskB,GAAAA,KAAYC,EAAAA,EAAAA,KAAYvkB,EAAAA,EAAAA,IAAO+jB,GAAiB,CAClEnsB,MAAO,aACP4sB,aAAcL,IACZ,KAAM,KACV7jB,EAAAA,EAAAA,GAAoB,MAAOvI,GAAY,EACrCuI,EAAAA,EAAAA,GAAoB,MAAOtI,IAAYoI,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,8BAA+B,IAC/FC,EAAAA,EAAAA,GAAoB,MAAOrI,GAAY,EACrCqI,EAAAA,EAAAA,GAAoB,QAAS,KAAM,EACjCA,EAAAA,EAAAA,GAAoB,QAAS,CAC3Bz2C,KAAM,WACNigB,QAAS63C,EAAqB77D,MAC9B66C,QAASpB,EAAO,KAAOA,EAAO,GAAMyB,GAAiB2gB,EAAqB77D,OAAS67D,EAAqB77D,QACvG,KAAM,EAAGoyC,KACZiI,EAAAA,EAAAA,IAAiB,KAAMC,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,qCAAsC,YAK9F93C,EAAG,KAEL,CAEJ,ICrPA,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,YAAY,qBAEvE,UCNIk8D,GAAO,kyPAuzCP71C,MAAM,KAEN81C,GAAQ,6qBAsJR91C,MAAM,KASN,GAAS,SAAgBvnB,EAAQu/C,GACnC,IAAK,IAAIj/C,KAAOi/C,EACdv/C,EAAOM,GAAOi/C,EAAWj/C,GAG3B,OAAON,CACT,EAeIs9D,GAAU,UACVC,GAAQ,QACRC,GAAQ,QACRC,GAAe,eACfC,GAAe,eACfpwB,GAAS,SACTqwB,GAAQ,QACR1uB,GAAS,SACT2uB,GAAc,cACdC,GAAa,aAQjB,SAASC,GAAch2D,EAAMi2D,GAK3B,OAJMj2D,KAAQi2D,IACZA,EAAOj2D,GAAQ,IAGVi2D,EAAOj2D,EAChB,CASA,SAASk2D,GAAYrnD,EAAGsnD,EAAOF,GA2B7B,IAAK,IAAIp6D,KA1BLs6D,EAAMX,MACRW,EAAMR,KAAgB,EACtBQ,EAAMP,KAAgB,GAGpBO,EAAMV,MACRU,EAAMR,KAAgB,EACtBQ,EAAMT,KAAS,GAGbS,EAAMR,MACRQ,EAAMP,KAAgB,GAGpBO,EAAMT,MACRS,EAAMP,KAAgB,GAGpBO,EAAMP,MACRO,EAAM3wB,KAAU,GAGd2wB,EAAMN,MACRM,EAAM3wB,KAAU,GAGJ2wB,EAAO,CACnB,IAAIC,EAAQJ,GAAcn6D,EAAGo6D,GAEzBG,EAAMj+C,QAAQtJ,GAAK,GACrBunD,EAAM11D,KAAKmO,EAEf,CACF,CAQA,SAASwnD,GAAcxnD,EAAGonD,GACxB,IAAIt5D,EAAS,CAAC,EAEd,IAAK,IAAI2H,KAAK2xD,EACRA,EAAO3xD,GAAG6T,QAAQtJ,IAAM,IAC1BlS,EAAO2H,IAAK,GAIhB,OAAO3H,CACT,CAqBA,SAASyH,GAAMyzB,QACC,IAAVA,IACFA,EAAQ,MAMVp8B,KAAKy6B,EAAI,CAAC,EAKVz6B,KAAK66D,GAAK,GAGV76D,KAAK86D,GAAK,KAGV96D,KAAKoT,EAAIgpB,CACX,CAMAzzB,GAAM6xD,OAAS,CAAC,EAChB7xD,GAAMpN,UAAY,CAChBw/D,QAAS,WACP,QAAS/6D,KAAKoT,CAChB,EAQA+gC,GAAI,SAAYnuB,GACd,IAAItb,EAAQ1K,KACRg7D,EAAYtwD,EAAM+vB,EAAEzU,GAExB,GAAIg1C,EACF,OAAOA,EAGT,IAAK,IAAIvzD,EAAI,EAAGA,EAAIiD,EAAMmwD,GAAGh2D,OAAQ4C,IAAK,CACxC,IAAIoc,EAAQnZ,EAAMmwD,GAAGpzD,GAAG,GACpBwzD,EAAavwD,EAAMmwD,GAAGpzD,GAAG,GAE7B,GAAIwzD,GAAcp3C,EAAM7F,KAAKgI,GAC3B,OAAOi1C,CAEX,CAGA,OAAOvwD,EAAMowD,EACf,EASAt2D,IAAK,SAAawhB,EAAOk1C,GAKvB,YAJkB,IAAdA,IACFA,GAAY,GAGPA,EAAYl1C,KAAShmB,KAAKy6B,IAAMz6B,KAAKm0C,GAAGnuB,EACjD,EAUAm1C,GAAI,SAAYzrC,EAAQhxB,EAAMg8D,EAAOF,GACnC,IAAK,IAAI/yD,EAAI,EAAGA,EAAIioB,EAAO7qB,OAAQ4C,IACjCzH,KAAKo7D,GAAG1rC,EAAOjoB,GAAI/I,EAAMg8D,EAAOF,EAEpC,EAWAa,GAAI,SAAYC,EAAQ58D,EAAMg8D,EAAOF,GAEnC,IAAIQ,EAcJ,OAfAR,EAASA,GAAU7xD,GAAM6xD,OAGrB97D,GAAQA,EAAK+7B,EACfugC,EAAYt8D,GAGZs8D,EAAY,IAAIryD,GAAMjK,GAElBg8D,GAASF,GACXC,GAAY/7D,EAAMg8D,EAAOF,IAI7Bx6D,KAAK66D,GAAG51D,KAAK,CAACq2D,EAAQN,IACfA,CACT,EAYAO,GAAI,SAAYv1C,EAAOtnB,EAAMg8D,EAAOF,GAClC,IAAI9vD,EAAQ1K,KACRw7D,EAAMx1C,EAAMnhB,OAEhB,IAAK22D,EACH,OAAO9wD,EAGT,IAAK,IAAIjD,EAAI,EAAGA,EAAI+zD,EAAM,EAAG/zD,IAC3BiD,EAAQA,EAAM0wD,GAAGp1C,EAAMve,IAGzB,OAAOiD,EAAM0wD,GAAGp1C,EAAMw1C,EAAM,GAAI98D,EAAMg8D,EAAOF,EAC/C,EA4BAY,GAAI,SAAYp1C,EAAOtnB,EAAMg8D,EAAOF,GAClCA,EAASA,GAAU7xD,GAAM6xD,OACzB,IAAI9vD,EAAQ1K,KAEZ,GAAItB,GAAQA,EAAK+7B,EAEf,OADA/vB,EAAM+vB,EAAEzU,GAAStnB,EACVA,EAGT,IAGIs8D,EAHA5nD,EAAI1U,EAIJ+8D,EAAgB/wD,EAAMypC,GAAGnuB,GAY7B,GAVIy1C,GACFT,EAAY,IAAIryD,GAChB,GAAOqyD,EAAUvgC,EAAGghC,EAAchhC,GAClCugC,EAAUH,GAAG51D,KAAKwO,MAAMunD,EAAUH,GAAIY,EAAcZ,IACpDG,EAAUF,GAAKW,EAAcX,GAC7BE,EAAU5nD,EAAIqoD,EAAcroD,GAE5B4nD,EAAY,IAAIryD,GAGdyK,EAAG,CAEL,GAAIonD,EACF,GAAIQ,EAAU5nD,GAA4B,kBAAhB4nD,EAAU5nD,EAAgB,CAClD,IAAIsoD,EAAW,GAAOd,GAAcI,EAAU5nD,EAAGonD,GAASE,GAC1DD,GAAYrnD,EAAGsoD,EAAUlB,EAC3B,MAAWE,GACTD,GAAYrnD,EAAGsnD,EAAOF,GAI1BQ,EAAU5nD,EAAIA,CAChB,CAGA,OADA1I,EAAM+vB,EAAEzU,GAASg1C,EACVA,CACT,GAWF,IAAIG,GAAK,SAAYzwD,EAAOsb,EAAOtnB,EAAMg8D,EAAOF,GAC9C,OAAO9vD,EAAMywD,GAAGn1C,EAAOtnB,EAAMg8D,EAAOF,EACtC,EAUIa,GAAK,SAAY3wD,EAAO4wD,EAAQ58D,EAAMg8D,EAAOF,GAC/C,OAAO9vD,EAAM2wD,GAAGC,EAAQ58D,EAAMg8D,EAAOF,EACvC,EAUIe,GAAK,SAAY7wD,EAAOsb,EAAOtnB,EAAMg8D,EAAOF,GAC9C,OAAO9vD,EAAM6wD,GAAGv1C,EAAOtnB,EAAMg8D,EAAOF,EACtC,EAUIY,GAAK,SAAY1wD,EAAOsb,EAAOtnB,EAAMg8D,EAAOF,GAC9C,OAAO9vD,EAAM0wD,GAAGp1C,EAAOtnB,EAAMg8D,EAAOF,EACtC,EAOImB,GAAO,OAEPC,GAAQ,QAGRC,GAAY,YAEZC,GAAM,MAENC,GAAO,OAIPC,GAAS,SAITC,GAAe,eAEfn7C,GAAM,MAENo7C,GAAK,KAELC,GAAO,KAGPC,GAAY,YAEZC,GAAc,cAEdC,GAAmB,mBAEnBC,GAAY,YAEZC,GAAa,aAEbC,GAAe,eAEfC,GAAoB,oBAEpBC,GAAa,aAGbC,GAAY,YAEZC,GAAa,aAEbv4B,GAAW,WAEXE,GAAK,KAELhB,GAAY,YAEZs5B,GAAW,WAEXC,GAAQ,QAERx4B,GAAQ,QAERy4B,GAAQ,QAERC,GAAS,SAETC,GAAM,MAENC,GAAS,SAETC,GAAc,cAEdC,GAAS,SAETC,GAAU,UAEVC,GAAO,OAEPC,GAAO,OAEPC,GAAQ,QAERC,GAAQ,QAERC,GAAQ,QAERz8C,GAAO,OAEPuiB,GAAQ,QAERm6B,GAAQ,QAERC,GAAa,aAGbC,GAAU,QAEVC,GAAM,MAENC,GAAkB1iE,OAAO2iE,OAAO,CACnChnD,UAAW,KACX0kD,KAAMA,GACNC,MAAOA,GACPC,UAAWA,GACXC,IAAKA,GACLC,KAAMA,GACNC,OAAQA,GACRC,aAAcA,GACdn7C,IAAKA,GACLo7C,GAAIA,GACJgC,GAAI/B,GACJC,UAAWA,GACXC,YAAaA,GACbC,iBAAkBA,GAClBC,UAAWA,GACXC,WAAYA,GACZC,aAAcA,GACdC,kBAAmBA,GACnBC,WAAYA,GACZC,UAAWA,GACXC,WAAYA,GACZv4B,SAAUA,GACVE,GAAIA,GACJhB,UAAWA,GACXs5B,SAAUA,GACVC,MAAOA,GACPx4B,MAAOA,GACPy4B,MAAOA,GACPC,OAAQA,GACRC,IAAKA,GACLC,OAAQA,GACRC,YAAaA,GACbC,OAAQA,GACRC,QAASA,GACTC,KAAMA,GACNC,KAAMA,GACNC,MAAOA,GACPC,MAAOA,GACPC,MAAOA,GACPz8C,KAAMA,GACNuiB,MAAOA,GACPm6B,MAAOA,GACPC,WAAYA,GACZM,MAAOL,GACPC,IAAKA,KAIFK,GAAe,QACfC,GAAS,8qPAETF,GAAQ,q9CAGRG,GAAQ,KACR36B,GAAQ,KAgBRu6B,GAAK,KAELK,GAAkB,IAElBC,GAAe,IAwBnB,SAASC,GAAOC,GACd,IAAIC,EAAKC,EAAMC,EAAMC,EAAMC,EAAKC,OAEV,IAAlBN,IACFA,EAAgB,IAMlB,IAAIlE,EAAS,CAAC,EAEd7xD,GAAM6xD,OAASA,EAGf,IAAIyE,EAAQ,IAAIt2D,GAEhByyD,GAAG6D,EAAO,IAAKpC,IACfzB,GAAG6D,EAAO,IAAK7C,IACfhB,GAAG6D,EAAO,IAAK5C,IACfjB,GAAG6D,EAAO,IAAK3C,IACflB,GAAG6D,EAAO,IAAK1C,IACfnB,GAAG6D,EAAO,IAAKzC,IACfpB,GAAG6D,EAAO,IAAKxC,IACfrB,GAAG6D,EAAO,IAAKvC,IACftB,GAAG6D,EAAO,IAAKtC,IACfvB,GAAG6D,EAAO,IAAKrC,IACfxB,GAAG6D,EAAO,IAAK36B,IACf82B,GAAG6D,EAAO,IAAKz6B,IACf42B,GAAG6D,EAAO,IAAKnC,IACf1B,GAAG6D,EAAO,IAAKlC,IACf3B,GAAG6D,EAAO,IAAK16B,IACf62B,GAAG6D,EAAO,IAAKjC,IACf5B,GAAG6D,EAAO,IAAKhC,IACf7B,GAAG6D,EAAO,IAAK/B,IACf9B,GAAG6D,EAAO,IAAK9B,IACf/B,GAAG6D,EAAO,IAAK7B,IACfhC,GAAG6D,EAAO,IAAK5B,IACfjC,GAAG6D,EAAO,IAAK3B,IACflC,GAAG6D,EAAO,IAAK1B,IACfnC,GAAG6D,EAAO,IAAKzB,IACfpC,GAAG6D,EAAO,IAAKxB,IACfrC,GAAG6D,EAAO,IAAKvB,IACftC,GAAG6D,EAAO,IAAKtB,IACfvC,GAAG6D,EAAO,IAAKx7B,IACf23B,GAAG6D,EAAO,IAAK/9C,IACfk6C,GAAG6D,EAAO,IAAKrB,IACfxC,GAAG6D,EAAO,IAAKpB,IACfzC,GAAG6D,EAAO,KAAMz7B,IAChB,IAAItzB,EAAMmrD,GAAG4D,EAAOX,GAAOx9C,IAAM69C,EAAM,CAAC,EAAGA,EAAI5E,KAAW,EAAM4E,IAChEtD,GAAGnrD,EAAKouD,GAAOpuD,GAEf,IAAIgvD,EAAO7D,GAAG4D,EAAOb,GAAczC,IAAOiD,EAAO,CAAC,EAAGA,EAAK5E,KAAS,EAAM4E,IACzEvD,GAAG6D,EAAMd,GAAcc,GAEvB,IAAIC,EAAQ9D,GAAG4D,EAAOZ,GAAQzC,IAAQiD,EAAO,CAAC,EAAGA,EAAK5E,KAAS,EAAM4E,IACrExD,GAAG8D,EAAOf,IAEV/C,GAAG8D,EAAOd,GAAQc,GAIlB,IAAIC,EAAK/D,GAAG4D,EAAOt7B,GAAOu4B,IAAK4C,EAAO,CAAC,EAAGA,EAAKxE,KAAc,EAAMwE,IACnE1D,GAAG6D,EAAOf,GAAI/B,IAAO4C,EAAM,CAAC,EAAGA,EAAIzE,KAAc,EAAMyE,IACvD3D,GAAGgE,EAAIlB,IAEP7C,GAAG+D,EAAIz7B,GAAOy7B,GAGd,IAAIC,EAAQhE,GAAG4D,EAAOd,GAAOL,IAAUkB,EAAO,CAAC,EAAGA,EAAK5E,KAAS,EAAM4E,IACtE3D,GAAGgE,EAAOlB,GAAOkB,GACjBjE,GAAGiE,EAAOd,GAAiBc,GAE3B,IAAIC,EAAclE,GAAGiE,EAAOb,IAC5BnD,GAAGiE,EAAanB,GAAOkB,GAOvB,IAHA,IAAIE,EAAS,CAAC,CAACnB,GAAcc,IACzBM,EAAU,CAAC,CAACpB,GAAc,MAAO,CAACC,GAAQc,IAErC13D,EAAI,EAAGA,EAAIoyD,GAAKh1D,OAAQ4C,IAC/Bg4D,GAAOR,EAAOpF,GAAKpyD,GAAIq0D,GAAKH,GAAM4D,GAGpC,IAAK,IAAI9kD,EAAK,EAAGA,EAAKq/C,GAAMj1D,OAAQ4V,IAClCglD,GAAOR,EAAOnF,GAAMr/C,GAAKshD,GAAMH,GAAO4D,GAGxC/E,GAAYqB,GAAK,CACf4D,KAAK,EACL1F,OAAO,GACNQ,GACHC,GAAYsB,GAAM,CAChB4D,MAAM,EACN1F,OAAO,GACNO,GAIHiF,GAAOR,EAAO,OAAQjD,GAAQL,GAAM4D,GACpCE,GAAOR,EAAO,SAAUjD,GAAQL,GAAM4D,GACtCE,GAAOR,EAAO,OAAQhD,GAAcN,GAAM4D,GAC1CE,GAAOR,EAAO,QAAShD,GAAcN,GAAM4D,GAC3CE,GAAOR,EAAO,MAAOhD,GAAcN,GAAM4D,GACzCE,GAAOR,EAAO,OAAQhD,GAAcN,GAAM4D,GAC1C9E,GAAYuB,GAAQ,CAClBtwB,QAAQ,EACRsuB,OAAO,GACNQ,GACHC,GAAYwB,GAAc,CACxB5B,aAAa,EACbL,OAAO,GACNQ,GAEHkE,EAAgBA,EAAc1hD,MAAK,SAAUC,EAAGlG,GAC9C,OAAOkG,EAAE,GAAKlG,EAAE,GAAK,GAAK,CAC5B,IAEA,IAAK,IAAI6oD,EAAM,EAAGA,EAAMlB,EAAc75D,OAAQ+6D,IAAO,CACnD,IAAIC,EAAMC,EAENC,EAAMrB,EAAckB,GAAK,GACzBI,EAAqBtB,EAAckB,GAAK,GACxClF,EAAQsF,GAAsBH,EAAO,CAAC,EAAGA,EAAKn0B,KAAU,EAAMm0B,IAASC,EAAQ,CAAC,EAAGA,EAAMzF,KAAe,EAAMyF,GAE9GC,EAAIrjD,QAAQ,MAAQ,EACtBg+C,EAAM3wB,KAAU,EACNq0B,GAAapgD,KAAK+hD,GAEnBzB,GAAMtgD,KAAK+hD,GACpBrF,EAAMR,KAAgB,EAEtBQ,EAAMV,KAAS,EAJfU,EAAMX,KAAW,EAOnBwB,GAAG0D,EAAOc,EAAKA,EAAKrF,EACtB,CAQA,OALAa,GAAG0D,EAAO,YAAapD,GAAW,CAChC7B,OAAO,IAGTiF,EAAMnE,GAAK,IAAInyD,GAAMo1D,IACd,CACLj6D,MAAOm7D,EACP9iC,OAAQ,GAAO,CACbq+B,OAAQA,GACPwD,IAEP,CAWA,SAASiC,GAAMn8D,EAAOiE,GAKpB,IAAIm4D,EAAWC,GAAcp4D,EAAIjI,QAAQ,UAAU,SAAU+I,GAC3D,OAAOA,EAAEnE,aACX,KACI07D,EAAYF,EAASr7D,OAErBs3B,EAAS,GAITkkC,EAAS,EAETC,EAAa,EAEjB,MAAOA,EAAaF,EAAW,CAC7B,IAAI11D,EAAQ5G,EACRk3D,EAAY,KACZuF,EAAc,EACdC,EAAkB,KAClBC,GAAgB,EAChBC,GAAqB,EAEzB,MAAOJ,EAAaF,IAAcpF,EAAYtwD,EAAMypC,GAAG+rB,EAASI,KAC9D51D,EAAQswD,EAEJtwD,EAAMqwD,WACR0F,EAAe,EACfC,EAAoB,EACpBF,EAAkB91D,GACT+1D,GAAgB,IACzBA,GAAgBP,EAASI,GAAYz7D,OACrC67D,KAGFH,GAAeL,EAASI,GAAYz7D,OACpCw7D,GAAUH,EAASI,GAAYz7D,OAC/By7D,IAIFD,GAAUI,EACVH,GAAcI,EACdH,GAAeE,EAEftkC,EAAOl3B,KAAK,CACVmO,EAAGotD,EAAgBptD,EAEnBrS,EAAGgH,EAAIC,MAAMq4D,EAASE,EAAaF,GAEnChtD,EAAGgtD,EAASE,EAEZ91C,EAAG41C,GAGP,CAEA,OAAOlkC,CACT,CAaA,SAASgkC,GAAcp4D,GACrB,IAAI7G,EAAS,GACTs6D,EAAMzzD,EAAIlD,OACVgG,EAAQ,EAEZ,MAAOA,EAAQ2wD,EAAK,CAClB,IAAInwC,EAAQtjB,EAAIgF,WAAWlC,GACvB81D,OAAS,EACT5+C,EAAOsJ,EAAQ,OAAUA,EAAQ,OAAUxgB,EAAQ,IAAM2wD,IAAQmF,EAAS54D,EAAIgF,WAAWlC,EAAQ,IAAM,OAAU81D,EAAS,MAAS54D,EAAI8C,GACzI9C,EAAIC,MAAM6C,EAAOA,EAAQ,GAE3B3J,EAAO+D,KAAK8c,GACZlX,GAASkX,EAAKld,MAChB,CAEA,OAAO3D,CACT,CAWA,SAASu+D,GAAO/0D,EAAOsb,EAAO5S,EAAGwtD,EAAU/F,GAIzC,IAHA,IAAIn8D,EACA88D,EAAMx1C,EAAMnhB,OAEP4C,EAAI,EAAGA,EAAI+zD,EAAM,EAAG/zD,IAAK,CAChC,IAAIsa,EAAOiE,EAAMve,GAEbiD,EAAM+vB,EAAE1Y,GACVrjB,EAAOgM,EAAM+vB,EAAE1Y,IAEfrjB,EAAO,IAAIiK,GAAMi4D,GACjBliE,EAAKm8D,GAAKA,EAAG7yD,QACb0C,EAAM+vB,EAAE1Y,GAAQrjB,GAGlBgM,EAAQhM,CACV,CAKA,OAHAA,EAAO,IAAIiK,GAAMyK,GACjB1U,EAAKm8D,GAAKA,EAAG7yD,QACb0C,EAAM+vB,EAAEzU,EAAMw1C,EAAM,IAAM98D,EACnBA,CACT,CAEA,SAASmiE,GAAeC,EAAUC,GAChCD,EAASvlE,UAAYD,OAAO2E,OAAO8gE,EAAWxlE,WAC9CulE,EAASvlE,UAAU6b,YAAc0pD,EAEjCE,GAAgBF,EAAUC,EAC5B,CAEA,SAASC,GAAgB9gE,EAAGsT,GAM1B,OALAwtD,GAAkB1lE,OAAO0b,gBAAkB,SAAyB9W,EAAGsT,GAErE,OADAtT,EAAE+W,UAAYzD,EACPtT,CACT,EAEO8gE,GAAgB9gE,EAAGsT,EAC5B,CAoFA,IAAIkW,GAAW,CACbu3C,gBAAiB,OACjB1tC,OAAQ,KACR2tC,OAAQC,GACRC,WAAYD,GACZE,OAAO,EACPtmD,QAAS,IACTte,OAAQ,KACR6kE,IAAK,KACLC,UAAU,EACVC,SAAUtjD,IACV6mC,UAAW,KACX/wC,WAAY,KACZytD,WAAY,GACZ/tD,OAAQ,MAaV,SAASguD,GAAQztD,EAAM0tD,QACC,IAAlBA,IACFA,EAAgB,MAGlB,IAAIzhE,EAAI,GAAO,CAAC,EAAGwpB,IAEfzV,IACF/T,EAAI,GAAOA,EAAG+T,aAAgBytD,GAAUztD,EAAK/T,EAAI+T,IAOnD,IAHA,IAAI2tD,EAAc1hE,EAAEuhE,WAChBI,EAAuB,GAElBp6D,EAAI,EAAGA,EAAIm6D,EAAY/8D,OAAQ4C,IACtCo6D,EAAqB58D,KAAK28D,EAAYn6D,GAAGs6B,eAK3C/hC,KAAKE,EAAIA,EAELyhE,IACF3hE,KAAK2hE,cAAgBA,GAGvB3hE,KAAKyhE,WAAaI,CACpB,CA4FA,SAASV,GAAKllE,GACZ,OAAOA,CACT,CA7FAylE,GAAQnmE,UAAY,CAClB2E,EAAGwpB,GAKH+3C,WAAY,GAMZE,cAAe,SAAuBG,GACpC,OAAOA,CACT,EAQAC,MAAO,SAAe3lC,GACpB,OAAOp8B,KAAKa,IAAI,WAAYu7B,EAAM5gC,WAAY4gC,EAChD,EAcAv7B,IAAK,SAAa9D,EAAKilE,EAAU5lC,GAC/B,IAAI6lC,EAAyB,MAAZD,EACbE,EAASliE,KAAKE,EAAEnD,GAEpB,OAAKmlE,GAIiB,kBAAXA,GACTA,EAAS9lC,EAAMhpB,KAAK8uD,EAASA,EAAO9lC,EAAMhpB,GAAKsW,GAAS3sB,GAElC,oBAAXmlE,GAAyBD,IAClCC,EAASA,EAAOF,EAAU5lC,KAED,oBAAX8lC,GAAyBD,IACzCC,EAASA,EAAOF,EAAU5lC,EAAMhpB,EAAGgpB,IAG9B8lC,GAbEA,CAcX,EASAC,OAAQ,SAAgBplE,EAAKilE,EAAU5lC,GACrC,IAAIjhB,EAAMnb,KAAKE,EAAEnD,GAMjB,MAJmB,oBAARoe,GAAkC,MAAZ6mD,IAC/B7mD,EAAMA,EAAI6mD,EAAU5lC,EAAMhpB,EAAGgpB,IAGxBjhB,CACT,EASAzH,OAAQ,SAAgB0oB,GACtB,IAAI0lC,EAAK1lC,EAAM1oB,OAAO1T,MAElBoiE,EAAWpiE,KAAKa,IAAI,SAAU,KAAMu7B,IAAUp8B,KAAK2hE,cACvD,OAAOS,EAASN,EAAI1lC,EAAMhpB,EAAGgpB,EAC/B,GAwBF,SAASimC,GAAWnnE,EAAOihC,GACzBn8B,KAAKoT,EAAI,QACTpT,KAAKe,EAAI7F,EACT8E,KAAKg+D,GAAK7hC,CACZ,CAyKA,SAASmmC,GAAiBrjE,EAAMitB,GAC9B,IAAIq2C,EAAqB,SAAUC,GAGjC,SAASD,EAAMrnE,EAAOihC,GACpB,IAAIjkB,EAIJ,OAFAA,EAAQsqD,EAAY/mE,KAAKuE,KAAM9E,EAAOihC,IAAWn8B,KACjDkY,EAAM9E,EAAInU,EACHiZ,CACT,CAEA,OAVA2oD,GAAe0B,EAAOC,GAUfD,CACT,CAZyB,CAYvBF,IAEF,IAAK,IAAI7uD,KAAK0Y,EACZq2C,EAAMhnE,UAAUiY,GAAK0Y,EAAM1Y,GAI7B,OADA+uD,EAAMnvD,EAAInU,EACHsjE,CACT,CA/KAF,GAAW9mE,UAAY,CACrBknE,QAAQ,EAMRjnE,SAAU,WACR,OAAOwE,KAAKe,CACd,EAQA2hE,OAAQ,SAAgBh3B,GACtB,OAAO1rC,KAAKxE,UACd,EAMAmnE,kBAAmB,SAA2BtmE,GAC5C,IAAIJ,EAAM+D,KAAKxE,WACXgmE,EAAWnlE,EAAQwE,IAAI,WAAY5E,EAAK+D,MACxC4iE,EAAYvmE,EAAQwE,IAAI,SAAU5E,EAAK+D,MAC3C,OAAOwhE,GAAYoB,EAAU/9D,OAAS28D,EAAWoB,EAAUhhD,UAAU,EAAG4/C,GAAY,IAAMoB,CAC5F,EAOAC,gBAAiB,SAAyBxmE,GACxC,OAAOA,EAAQwE,IAAI,aAAcb,KAAK0iE,OAAOrmE,EAAQwE,IAAI,oBAAqBb,KAChF,EAMAwC,WAAY,WACV,OAAOxC,KAAKg+D,GAAG,GAAG3qD,CACpB,EAOA5Q,SAAU,WACR,OAAOzC,KAAKg+D,GAAGh+D,KAAKg+D,GAAGn5D,OAAS,GAAG4lB,CACrC,EAWAq4C,SAAU,SAAkBpxC,GAK1B,YAJiB,IAAbA,IACFA,EAAWhI,GAASu3C,iBAGf,CACLhiE,KAAMe,KAAKoT,EACXlY,MAAO8E,KAAKxE,WACZinE,OAAQziE,KAAKyiE,OACb7oD,KAAM5Z,KAAK0iE,OAAOhxC,GAClB5tB,MAAO9D,KAAKwC,aACZqF,IAAK7H,KAAKyC,WAEd,EAMAsgE,kBAAmB,SAA2B1mE,GAC5C,MAAO,CACL4C,KAAMe,KAAKoT,EACXlY,MAAO8E,KAAK2iE,kBAAkBtmE,GAC9BomE,OAAQziE,KAAKyiE,OACb7oD,KAAM5Z,KAAK6iE,gBAAgBxmE,GAC3ByH,MAAO9D,KAAKwC,aACZqF,IAAK7H,KAAKyC,WAEd,EAOA8+D,SAAU,SAAkBllE,GAC1B,OAAOA,EAAQwE,IAAI,WAAYb,KAAKxE,WAAYwE,KAClD,EAMA0T,OAAQ,SAAgBrX,GACtB,IAAI+/B,EAAQp8B,KACR4Z,EAAO5Z,KAAK6iE,gBAAgBxmE,GAC5B0e,EAAU1e,EAAQwE,IAAI,UAAW+Y,EAAMwiB,GACvChI,EAAUp0B,KAAK2iE,kBAAkBtmE,GACjC2X,EAAa,CAAC,EACd+wC,EAAY1oD,EAAQwE,IAAI,YAAa+Y,EAAMwiB,GAC3C3/B,EAASJ,EAAQwE,IAAI,SAAU+Y,EAAMwiB,GACrCklC,EAAMjlE,EAAQwE,IAAI,MAAO+Y,EAAMwiB,GAC/B+rB,EAAQ9rD,EAAQ8lE,OAAO,aAAcvoD,EAAMwiB,GAC3C4mC,EAAiB3mE,EAAQ8lE,OAAO,SAAUvoD,EAAMwiB,GAmBpD,OAlBApoB,EAAW4F,KAAOA,EAEdmrC,IACF/wC,EAAWg5B,MAAQ+X,GAGjBtoD,IACFuX,EAAWvX,OAASA,GAGlB6kE,IACFttD,EAAWstD,IAAMA,GAGfnZ,GACF,GAAOn0C,EAAYm0C,GAGd,CACLptC,QAASA,EACT/G,WAAYA,EACZogB,QAASA,EACT4uC,eAAgBA,EAEpB,GAmCF,IAAIC,GAAQX,GAAiB,QAAS,CACpCG,QAAQ,EACRC,OAAQ,WACN,MAAO,UAAY1iE,KAAKxE,UAC1B,IAMEkE,GAAO4iE,GAAiB,QAMxBY,GAAKZ,GAAiB,MAMtBa,GAAMb,GAAiB,MAAO,CAChCG,QAAQ,EASRC,OAAQ,SAAgBh3B,GAMtB,YALe,IAAXA,IACFA,EAAShiB,GAASu3C,iBAIbjhE,KAAKojE,cAAgBpjE,KAAKe,EAAI2qC,EAAS,MAAQ1rC,KAAKe,CAC7D,EAMAqiE,YAAa,WACX,IAAIjnC,EAASn8B,KAAKg+D,GAClB,OAAO7hC,EAAOt3B,QAAU,GAAKs3B,EAAO,GAAG/oB,IAAMyoD,IAAa1/B,EAAO,GAAG/oB,IAAMmxB,EAC5E,IA6BE8+B,GAAY,SAAmBC,GACjC,OAAO,IAAI36D,GAAM26D,EACnB,EAOA,SAASC,GAAO1D,GACd,IAAIrF,EAASqF,EAAKrF,OAEdgJ,EAAchJ,EAAOzwB,OAAOptC,OAAO,CAACigE,GAAWt4B,GAAUE,GAAIhB,GAAWs5B,GAAUC,GAAOE,GAAQE,GAAQE,GAAQv8C,GAAKw8C,GAASC,GAAMC,GAAMC,GAAOh6B,GAAOs6B,GAAKH,GAAOC,KAIrK4F,EAAiB,CAAC5G,GAAYH,GAAmBF,GAAYC,GAAcE,GAAYp4B,GAAOy4B,GAAOE,GAAKE,GAAad,GAAkBF,GAAWC,GAAaE,GAAWmB,GAAOC,GAAOz8C,IAG1LwiD,EAAqB,CAAC9G,GAAWC,GAAYv4B,GAAUd,GAAWs5B,GAAUC,GAAOP,GAAYS,GAAQE,GAAQE,GAAQv8C,GAAKs7C,GAAWkB,GAASC,GAAMC,GAAMC,GAAOC,GAAOj6B,GAAOs6B,GAAKH,GAAOC,IAM7LoB,EAAQoE,KACRM,EAAYvI,GAAG6D,EAAOrB,IAE1BzC,GAAGwI,EAAWD,EAAoBC,GAClCxI,GAAGwI,EAAWnJ,EAAOzwB,OAAQ45B,GAC7B,IAAIC,EAASP,KACTQ,EAASR,KACTS,EAAcT,KAClBlI,GAAG8D,EAAOzE,EAAOzwB,OAAQ65B,GAEzBzI,GAAG8D,EAAOzE,EAAO9uB,OAAQm4B,GAEzB1I,GAAG8D,EAAOzE,EAAOH,YAAayJ,GAE9B3I,GAAGyI,EAAQF,EAAoBC,GAC/BxI,GAAGyI,EAAQpJ,EAAOzwB,OAAQ65B,GAC1B,IAAIG,EAAc3I,GAAGwI,EAAQp/B,IAE7B42B,GAAGuI,EAAWn/B,GAAIu/B,GAElB,IAAIC,EAAe5I,GAAGuI,EAAWzG,IAEjC/B,GAAG6I,EAAcN,EAAoBC,GACrCxI,GAAG6I,EAAcxJ,EAAOzwB,OAAQ45B,GAChC,IAAIM,EAAcZ,KAClBlI,GAAG4I,EAAavJ,EAAOzwB,OAAQk6B,GAE/B9I,GAAG8I,EAAazJ,EAAOzwB,OAAQk6B,GAC/B,IAAIC,EAAiB9I,GAAG6I,EAAa/G,IAErC/B,GAAG+I,EAAgB1J,EAAOzwB,OAAQk6B,GAClC,IAAIE,EAAUd,GAAUJ,IAExB9H,GAAG+I,EAAgB1J,EAAOkF,IAAKyE,GAC/BhJ,GAAG+I,EAAgB1J,EAAOmF,KAAMwE,GAChC/I,GAAG2I,EAAalI,GAAWsI,GAE3B,IAAIC,EAAoBhJ,GAAG6I,EAAa5G,IAExClC,GAAGiJ,EAAmB5J,EAAOzwB,OAAQk6B,GACrC9I,GAAGgJ,EAAS3J,EAAOzwB,OAAQk6B,GAC3B7I,GAAG+I,EAASjH,GAAKgH,GACjB9I,GAAG+I,EAAS9G,GAAQ+G,GAEpB,IAAIC,EAAajJ,GAAG+I,EAAS5/B,IAI7B42B,GAAGkJ,EAAY7J,EAAOT,QAASkJ,IAI/B,IAAIqB,EAAelJ,GAAGwI,EAAQvG,IAE1BkH,EAAYnJ,GAAGwI,EAAQ1G,IAE3B/B,GAAGmJ,EAAc9J,EAAOzwB,OAAQ65B,GAChCzI,GAAGoJ,EAAWb,EAAoBC,GAClCxI,GAAGoJ,EAAW/J,EAAOzwB,OAAQ65B,GAC7B,IAAIY,EAAenB,GAAUF,IAE7BhI,GAAGoJ,EAAW/J,EAAOkF,IAAK8E,GAC1BrJ,GAAGoJ,EAAW/J,EAAOmF,KAAM6E,GAC3BrJ,GAAGqJ,EAAchK,EAAOzwB,OAAQ65B,GAChCzI,GAAGqJ,EAAcd,EAAoBC,GACrCvI,GAAGoJ,EAActH,GAAKqH,GACtBnJ,GAAGoJ,EAAcnH,GAAQiH,GACzBlJ,GAAGoJ,EAAchgC,GAAIu/B,GACrB,IAAIU,EAAoBrJ,GAAGoJ,EAAcjgC,IAErCmgC,EAAwBrB,GAAUF,IAEtChI,GAAGsJ,EAAmBjK,EAAOT,QAAS2K,GAEtC,IAAIC,EAAQtB,GAAUF,IAElByB,EAAevB,KAGnBlI,GAAGwJ,EAAOnB,EAAamB,GACvBxJ,GAAGwJ,EAAOlB,EAAgBmB,GAC1BzJ,GAAGyJ,EAAcpB,EAAamB,GAC9BxJ,GAAGyJ,EAAcnB,EAAgBmB,GAGjCxJ,GAAGoJ,EAAc/gC,GAAOkhC,GACxBvJ,GAAGsJ,EAAuBjhC,GAAOkhC,GAEjC,IAAIE,EAAYzJ,GAAGyI,EAAQt/B,IAEvBugC,EAAmB1J,GAAG0I,EAAav/B,IAEnCwgC,EAAwB3J,GAAG0J,EAAkBrhC,IAEjD23B,GAAG2J,EAAuBthC,GAAOohC,GAEjC1J,GAAG0I,EAAQrJ,EAAOzwB,OAAQ65B,GAC1BxI,GAAGyI,EAAQ3G,GAAKqH,GAChBnJ,GAAGyI,EAAQxG,GAAQiH,GACnBnJ,GAAG2I,EAAatJ,EAAOzwB,OAAQ65B,GAC/BxI,GAAG0I,EAAa5G,GAAKqH,GACrBnJ,GAAG0I,EAAazG,GAAQiH,GAExBnJ,GAAG0J,EAAWrK,EAAOzwB,OAAQ46B,GAC7BvJ,GAAGyJ,EAAWphC,GAAOkhC,GAErB,IAAIK,EAAe5J,GAAGuJ,EAAOvI,IAEzB6I,EAAiB7J,GAAGuJ,EAAOtI,IAE3B6I,EAAsB9J,GAAGuJ,EAAOrI,IAEhC6I,EAAe/J,GAAGuJ,EAAOpI,IAE7BnB,GAAGwJ,EAAcxI,GAAW4I,GAC5B5J,GAAGwJ,EAAcvI,GAAa4I,GAC9B7J,GAAGwJ,EAActI,GAAkB4I,GACnC9J,GAAGwJ,EAAcrI,GAAW4I,GAE5B/J,GAAG4J,EAAcxI,GAAYmI,GAC7BvJ,GAAG6J,EAAgBxI,GAAckI,GACjCvJ,GAAG8J,EAAqBxI,GAAmBiI,GAC3CvJ,GAAG+J,EAAcxI,GAAYgI,GAC7BvJ,GAAG4J,EAAcxI,GAAYmI,GAI7B,IAAIS,EAAgB/B,GAAUF,IAE1BkC,EAAkBhC,GAAUF,IAE5BmC,EAAuBjC,GAAUF,IAEjCoC,EAAgBlC,GAAUF,IAE9BhI,GAAG6J,EAAcxB,EAAa4B,GAC9BjK,GAAG8J,EAAgBzB,EAAa6B,GAChClK,GAAG+J,EAAqB1B,EAAa8B,GACrCnK,GAAGgK,EAAc3B,EAAa+B,GAC9B,IAAIC,EAAmBnC,KAEnBoC,EAAqBpC,KAErBqC,EAA0BrC,KAE1BsC,EAAmBtC,KAoCvB,OAlCAlI,GAAG6J,EAAcvB,GACjBtI,GAAG8J,EAAgBxB,GACnBtI,GAAG+J,EAAqBzB,GACxBtI,GAAGgK,EAAc1B,GAEjBtI,GAAGiK,EAAe5B,EAAa4B,GAC/BjK,GAAGkK,EAAiB7B,EAAa6B,GACjClK,GAAGmK,EAAsB9B,EAAa8B,GACtCnK,GAAGoK,EAAe/B,EAAa+B,GAC/BpK,GAAGiK,EAAe3B,EAAgB2B,GAClCjK,GAAGkK,EAAiB5B,EAAgB4B,GACpClK,GAAGmK,EAAsB7B,EAAgB6B,GACzCnK,GAAGoK,EAAe9B,EAAgB8B,GAClCpK,GAAGqK,EAAkBhC,EAAagC,GAClCrK,GAAGsK,EAAoBjC,EAAa6B,GACpClK,GAAGuK,EAAyBlC,EAAa8B,GACzCnK,GAAGwK,EAAkBnC,EAAa+B,GAClCpK,GAAGqK,EAAkB/B,EAAgB+B,GACrCrK,GAAGsK,EAAoBhC,EAAgBgC,GACvCtK,GAAGuK,EAAyBjC,EAAgBiC,GAC5CvK,GAAGwK,EAAkBlC,EAAgBkC,GAErCvK,GAAGiK,EAAiB5I,GAAckI,GAClCvJ,GAAGkK,EAAsB5I,GAAmBiI,GAC5CvJ,GAAGmK,EAAe5I,GAAYgI,GAC9BvJ,GAAGgK,EAAe5I,GAAYmI,GAC9BvJ,GAAGqK,EAAoBhJ,GAAckI,GACrCvJ,GAAGsK,EAAyBhJ,GAAmBiI,GAC/CvJ,GAAGuK,EAAkBhJ,GAAYgI,GACjCvJ,GAAGoK,EAAkB7I,GAAYgI,GACjCvJ,GAAG6D,EAAOpD,GAAW2I,GAErBpJ,GAAG6D,EAAO9C,GAAM+G,IAET,CACLp/D,MAAOm7D,EACP9iC,OAAQ6hC,GAEZ,CAYA,SAAS4H,GAAI9hE,EAAOkiB,EAAOmW,GACzB,IAAIq/B,EAAMr/B,EAAOt3B,OACbw7D,EAAS,EACTwF,EAAS,GACTC,EAAa,GAEjB,MAAOzF,EAAS7E,EAAK,CACnB,IAAI9wD,EAAQ5G,EACRiiE,EAAc,KACd/K,EAAY,KACZgL,EAAc,EACdxF,EAAkB,KAClBC,GAAgB,EAEpB,MAAOJ,EAAS7E,KAASuK,EAAcr7D,EAAMypC,GAAGhY,EAAOkkC,GAAQjtD,IAG7D0yD,EAAW7gE,KAAKk3B,EAAOkkC,MAGzB,MAAOA,EAAS7E,IAAQR,EAAY+K,GAAer7D,EAAMypC,GAAGhY,EAAOkkC,GAAQjtD,IAEzE2yD,EAAc,KACdr7D,EAAQswD,EAEJtwD,EAAMqwD,WACR0F,EAAe,EACfD,EAAkB91D,GACT+1D,GAAgB,GACzBA,IAGFJ,IACA2F,IAGF,GAAIvF,EAAe,EAIjBJ,GAAU2F,EAEN3F,EAAS7E,IACXsK,EAAW7gE,KAAKk3B,EAAOkkC,IACvBA,SAEG,CAGDyF,EAAWjhE,OAAS,IACtBghE,EAAO5gE,KAAKghE,GAAevmE,GAAMsmB,EAAO8/C,IACxCA,EAAa,IAIfzF,GAAUI,EACVuF,GAAevF,EAEf,IAAIyF,EAAQ1F,EAAgBptD,EACxB+yD,EAAYhqC,EAAOn0B,MAAMq4D,EAAS2F,EAAa3F,GACnDwF,EAAO5gE,KAAKghE,GAAeC,EAAOlgD,EAAOmgD,GAC3C,CACF,CAOA,OAJIL,EAAWjhE,OAAS,GACtBghE,EAAO5gE,KAAKghE,GAAevmE,GAAMsmB,EAAO8/C,IAGnCD,CACT,CAUA,SAASI,GAAeC,EAAOlgD,EAAOmW,GACpC,IAAIiqC,EAAWjqC,EAAO,GAAG9oB,EACrBgzD,EAASlqC,EAAOA,EAAOt3B,OAAS,GAAG4lB,EACnCvvB,EAAQ8qB,EAAMhe,MAAMo+D,EAAUC,GAClC,OAAO,IAAIH,EAAMhrE,EAAOihC,EAC1B,CAE8B,qBAAZxU,SAA2BA,SAAWA,QAAQgT,KAAhE,IAII2rC,GAAO,CACTC,QAAS,KACTnwD,OAAQ,KACRowD,WAAY,GACZC,YAAa,GACb/H,cAAe,GACfgI,aAAa,GAyHf,SAAS9pC,KAEP0pC,GAAKC,QAAU9H,GAAO6H,GAAK5H,eAE3B,IAAK,IAAIj3D,EAAI,EAAGA,EAAI6+D,GAAKE,WAAW3hE,OAAQ4C,IAC1C6+D,GAAKE,WAAW/+D,GAAG,GAAG,CACpB8+D,QAASD,GAAKC,UAKlBD,GAAKlwD,OAASmtD,GAAO+C,GAAKC,QAAQpqC,QAElC,IAAK,IAAI1hB,EAAK,EAAGA,EAAK6rD,GAAKG,YAAY5hE,OAAQ4V,IAC7C6rD,GAAKG,YAAYhsD,GAAI,GAAG,CACtB8rD,QAASD,GAAKC,QACdnwD,OAAQkwD,GAAKlwD,SAIjBkwD,GAAKI,aAAc,CACrB,CAOA,SAASz/C,GAASlf,GAKhB,OAJKu+D,GAAKI,aACR9pC,KAGKgpC,GAAIU,GAAKlwD,OAAOtS,MAAOiE,EAAKk4D,GAAMqG,GAAKC,QAAQziE,MAAOiE,GAC/D,CCrzGA,IAAI4+D,GAAqB,CAKvBC,IAAK,IACLC,GAAI,IACJC,GAAI,IACJC,KAAM,IACNC,KAAM,KAEJC,GAAc,wBACdC,GAAW,cACXC,GAAQ,mBAERC,GAEJ,WACE,SAASA,EAAaC,GACpBrnE,KAAKqnE,MAAQA,CACf,CA0BA,OAxBAD,EAAa7rE,UAAUiQ,MAAQ,SAAUmW,GACvC,GAAKA,EAAL,CAIA,IAAI6pB,EAAU7pB,EAAOyB,MAAM6jD,IAE3B,OAAIz7B,EACKt0B,OAAOiK,aAAatG,SAAS2wB,EAAQ,GAAI,MAGlDA,EAAU7pB,EAAOyB,MAAM8jD,IAEnB17B,EACKt0B,OAAOiK,aAAatG,SAAS2wB,EAAQ,GAAI,MAGlDA,EAAU7pB,EAAOyB,MAAM+jD,IAEnB37B,EACKxrC,KAAKqnE,MAAM77B,EAAQ,KAAO,IAAMA,EAAQ,GAAK,SADtD,GAhBA,CAmBF,EAEO47B,CACT,CA9BA,GAgCIE,GAAM,YACNC,GAAQ,WACRC,GAAO,SAEX,SAASvhD,GAAQlE,GACf,OAAOulD,GAAItpD,KAAK+D,EAClB,CAEA,SAAS0lD,GAAQ1lD,GACf,OAAOwlD,GAAMvpD,KAAK+D,EACpB,CAEA,SAAS2lD,GAAgB1hD,GACvB,OAAOA,EAAMlmB,QAAQ0nE,GAAM,KAC7B,CAEA,IAAIG,GAEJ,WACE,SAASA,EAAiBC,EAAUC,EAAc3iD,QACnC,IAATA,IACFA,EAAO,cAGTllB,KAAK4nE,SAAWA,EAChB5nE,KAAK6nE,aAAeA,EACpB7nE,KAAKklB,KAAOA,EACZllB,KAAK0K,MAAQ,aAGb1K,KAAKytB,MAAQ,EACbztB,KAAK0tB,QAAU,EACf1tB,KAAKgmB,MAAQ,GACbhmB,KAAK6K,OAAS,EACd7K,KAAK8nE,cAAgB,GACrB9nE,KAAK+nE,OAAS,CACZC,WAAY,WACV,IAAIjmD,EAAO/hB,KAAKioE,OAEhB,GAAa,MAATlmD,GAAiB/hB,KAAKkoE,kBAMnB,CACL,GAAkB,eAAdloE,KAAKklB,MAAkC,OAATnD,EAAe,CAC/C,IAAI1M,EAAMrV,KAAK8nE,cAAcpjE,cAEjB,QAAR2Q,GAAyB,aAARA,GACnBrV,KAAKmoE,SAET,CAEAnoE,KAAKooE,aAAa,QAGlBpoE,KAAK4nE,SAASS,WAChB,MAlBEroE,KAAKooE,aAAa,WAGlBpoE,KAAKsoE,eACLtoE,KAAKmoE,SAeT,EACApkE,KAAM,WACJ,IAAIge,EAAO/hB,KAAKioE,OACZ5yD,EAAMrV,KAAK8nE,cAEF,MAAT/lD,GAAiB/hB,KAAKkoE,kBAON,MAATnmD,GAAwB,WAAR1M,GAA4B,UAARA,GAC7CrV,KAAKmoE,UACLnoE,KAAK4nE,SAASW,aAAavoE,KAAKwoE,kBAAoB,OAEpDxoE,KAAKmoE,UACLnoE,KAAK4nE,SAASW,aAAaxmD,KAX3B/hB,KAAK4nE,SAASa,aACdzoE,KAAKooE,aAAa,WAGlBpoE,KAAKsoE,eACLtoE,KAAKmoE,UAQT,EACAO,QAAS,WACP,IAAI3mD,EAAO/hB,KAAKmoE,UAEH,MAATpmD,EACF/hB,KAAKooE,aAAa,yBAGA,MAATrmD,EACT/hB,KAAKooE,aAAa,eAGA,MAATrmD,GAAyB,MAATA,GAAgB0lD,GAAQ1lD,MACjD/hB,KAAKooE,aAAa,WAGlBpoE,KAAK8nE,cAAgB,GACrB9nE,KAAK4nE,SAASe,gBACd3oE,KAAK4oE,gBAAgB7mD,GAEzB,EACA8mD,sBAAuB,WACrB,IAAI9mD,EAAO/hB,KAAKmoE,UAEhB,GAAa,MAATpmD,GAAgC,MAAhB/hB,KAAKioE,OACvBjoE,KAAKmoE,UACLnoE,KAAKooE,aAAa,gBAGlBpoE,KAAK4nE,SAASkB,mBACT,CACL,IAAIC,EAAehnD,EAAKggB,cAAgB/hC,KAAKgmB,MAAMpE,UAAU5hB,KAAK6K,MAAO7K,KAAK6K,MAAQ,GAAGk3B,cAEpE,YAAjBgnC,IACF/oE,KAAKmoE,UACLnoE,KAAKmoE,UACLnoE,KAAKmoE,UACLnoE,KAAKmoE,UACLnoE,KAAKmoE,UACLnoE,KAAKmoE,UACLnoE,KAAKooE,aAAa,WAGdpoE,KAAK4nE,SAASoB,cAAchpE,KAAK4nE,SAASoB,eAElD,CACF,EACAC,QAAS,WACP,IAAIlnD,EAAO/hB,KAAKmoE,UAEZliD,GAAQlE,IACV/hB,KAAKooE,aAAa,oBAItB,EACAc,kBAAmB,WACjB,IAAInnD,EAAO/hB,KAAKmoE,UAEZliD,GAAQlE,KAGV/hB,KAAKooE,aAAa,eAGdpoE,KAAK4nE,SAASuB,qBAAqBnpE,KAAK4nE,SAASuB,oBAAoBpnD,EAAKrd,eAElF,EACA0kE,YAAa,WACX,IAAIrnD,EAAO/hB,KAAKmoE,UAEZliD,GAAQlE,GACV/hB,KAAKooE,aAAa,oBAGA,MAATrmD,GACL/hB,KAAK4nE,SAASyB,YAAYrpE,KAAK4nE,SAASyB,aAC5CrpE,KAAKooE,aAAa,eAIdpoE,KAAK4nE,SAASuB,qBAAqBnpE,KAAK4nE,SAASuB,oBAAoBpnD,EAAKrd,cAElF,EACA4kE,iBAAkB,WAChB,IAAIvnD,EAAO/hB,KAAKmoE,UAEhB,IAAIliD,GAAQlE,GAEL,GAAa,MAATA,EACL/hB,KAAK4nE,SAASyB,YAAYrpE,KAAK4nE,SAASyB,aAC5CrpE,KAAKooE,aAAa,kBAGb,CACL,IAAImB,EAAexnD,EAAKggB,cAAgB/hC,KAAKgmB,MAAMpE,UAAU5hB,KAAK6K,MAAO7K,KAAK6K,MAAQ,GAAGk3B,cACrFynC,EAA0C,WAA/BD,EAAaxnC,cACxB0nC,EAA0C,WAA/BF,EAAaxnC,eAExBynC,GAAYC,KACdzpE,KAAKmoE,UACLnoE,KAAKmoE,UACLnoE,KAAKmoE,UACLnoE,KAAKmoE,UACLnoE,KAAKmoE,UACLnoE,KAAKmoE,WAGHqB,EACFxpE,KAAKooE,aAAa,6BAGTqB,GACTzpE,KAAKooE,aAAa,4BAItB,CACF,EACAsB,0BAA2B,WACzB,IAAI3nD,EAAO/hB,KAAKioE,OAEZhiD,GAAQlE,IACV/hB,KAAKooE,aAAa,iCAGlBpoE,KAAKmoE,WACa,MAATpmD,GACT/hB,KAAKooE,aAAa,uCAGlBpoE,KAAKmoE,WACa,MAATpmD,GACT/hB,KAAKooE,aAAa,uCAGlBpoE,KAAKmoE,WACa,MAATpmD,IACT/hB,KAAKmoE,UACDnoE,KAAK4nE,SAASyB,YAAYrpE,KAAK4nE,SAASyB,aAC5CrpE,KAAKooE,aAAa,cAItB,EACAuB,oCAAqC,WACnC,IAAI5nD,EAAO/hB,KAAKmoE,UAEH,MAATpmD,EACF/hB,KAAKooE,aAAa,gCAGA,MAATrmD,GACL/hB,KAAK4nE,SAASyB,YAAYrpE,KAAK4nE,SAASyB,aAC5CrpE,KAAKooE,aAAa,eAIdpoE,KAAK4nE,SAASgC,iCAAiC5pE,KAAK4nE,SAASgC,gCAAgC7nD,EAErG,EACA8nD,oCAAqC,WACnC,IAAI9nD,EAAO/hB,KAAKmoE,UAEH,MAATpmD,EACF/hB,KAAKooE,aAAa,gCAGA,MAATrmD,GACL/hB,KAAK4nE,SAASyB,YAAYrpE,KAAK4nE,SAASyB,aAC5CrpE,KAAKooE,aAAa,eAIdpoE,KAAK4nE,SAASgC,iCAAiC5pE,KAAK4nE,SAASgC,gCAAgC7nD,EAErG,EACA+nD,6BAA8B,WAC5B,IAAI/nD,EAAO/hB,KAAKmoE,UAEZliD,GAAQlE,GACV/hB,KAAKooE,aAAa,4CAGA,MAATrmD,GACL/hB,KAAK4nE,SAASyB,YAAYrpE,KAAK4nE,SAASyB,aAC5CrpE,KAAKooE,aAAa,eAGA,MAATrmD,EACT/hB,KAAKooE,aAAa,uCAGA,MAATrmD,GACT/hB,KAAKooE,aAAa,sCAItB,EACA2B,yCAA0C,WACxC,IAAIhoD,EAAO/hB,KAAKmoE,UAEZliD,GAAQlE,KAEQ,MAATA,GACL/hB,KAAK4nE,SAASyB,YAAYrpE,KAAK4nE,SAASyB,aAC5CrpE,KAAKooE,aAAa,eAGA,MAATrmD,EACT/hB,KAAKooE,aAAa,uCAGA,MAATrmD,GACT/hB,KAAKooE,aAAa,uCAItB,EACA4B,oCAAqC,WACnC,IAAIjoD,EAAO/hB,KAAKmoE,UAEH,MAATpmD,EACF/hB,KAAKooE,aAAa,gCAGA,MAATrmD,GACL/hB,KAAK4nE,SAASyB,YAAYrpE,KAAK4nE,SAASyB,aAC5CrpE,KAAKooE,aAAa,eAIdpoE,KAAK4nE,SAASqC,iCAAiCjqE,KAAK4nE,SAASqC,gCAAgCloD,EAErG,EACAmoD,oCAAqC,WACnC,IAAInoD,EAAO/hB,KAAKmoE,UAEH,MAATpmD,EACF/hB,KAAKooE,aAAa,gCAGA,MAATrmD,GACL/hB,KAAK4nE,SAASyB,YAAYrpE,KAAK4nE,SAASyB,aAC5CrpE,KAAKooE,aAAa,eAIdpoE,KAAK4nE,SAASqC,iCAAiCjqE,KAAK4nE,SAASqC,gCAAgCloD,EAErG,EACAooD,6BAA8B,WAC5B,IAAIpoD,EAAO/hB,KAAKmoE,UAEZliD,GAAQlE,IAEQ,MAATA,IACL/hB,KAAK4nE,SAASyB,YAAYrpE,KAAK4nE,SAASyB,aAC5CrpE,KAAKooE,aAAa,cAItB,EACAgC,aAAc,WACZ,IAAIroD,EAAO/hB,KAAKmoE,UAEH,MAATpmD,EACF/hB,KAAKooE,aAAa,oBAGA,MAATrmD,GACT/hB,KAAK4nE,SAASyC,gBACdrqE,KAAKooE,aAAa,gBAIlBpoE,KAAK4nE,SAAS0C,oBAAoBvoD,GAClC/hB,KAAKooE,aAAa,WAItB,EACAmC,iBAAkB,WAChB,IAAIxoD,EAAO/hB,KAAKmoE,UAEH,MAATpmD,EACF/hB,KAAKooE,aAAa,cAGA,MAATrmD,GACT/hB,KAAK4nE,SAASyC,gBACdrqE,KAAKooE,aAAa,gBAIlBpoE,KAAK4nE,SAAS0C,oBAAoB,KAClCtqE,KAAKooE,aAAa,WAItB,EACA/1C,QAAS,WACP,IAAItQ,EAAO/hB,KAAKmoE,UAEH,MAATpmD,EACF/hB,KAAKooE,aAAa,kBAIlBpoE,KAAK4nE,SAAS0C,oBAAoBvoD,EAEtC,EACAyoD,eAAgB,WACd,IAAIzoD,EAAO/hB,KAAKmoE,UAEH,MAATpmD,EACF/hB,KAAKooE,aAAa,eAIlBpoE,KAAK4nE,SAAS0C,oBAAoB,IAAMvoD,GACxC/hB,KAAKooE,aAAa,WAItB,EACAqC,WAAY,WACV,IAAI1oD,EAAO/hB,KAAKmoE,UAEH,MAATpmD,GACF/hB,KAAK4nE,SAASyC,gBACdrqE,KAAKooE,aAAa,gBAIlBpoE,KAAK4nE,SAAS0C,oBAAoB,KAAOvoD,GACzC/hB,KAAKooE,aAAa,WAItB,EACArtD,QAAS,WACP,IAAIgH,EAAO/hB,KAAKmoE,UAEZliD,GAAQlE,GACV/hB,KAAKooE,aAAa,uBAGA,MAATrmD,EACT/hB,KAAKooE,aAAa,uBAGA,MAATrmD,GACT/hB,KAAK4nE,SAAS8C,YACd1qE,KAAKooE,aAAa,eAIlBpoE,KAAK4oE,gBAAgB7mD,EAEzB,EACA4oD,WAAY,WACV,IAAI5oD,EAAO/hB,KAAKmoE,UAEZliD,GAAQlE,IACV/hB,KAAKooE,aAAa,uBAGlBpoE,KAAK8nE,cAAgB,IACH,MAAT/lD,GACT/hB,KAAKooE,aAAa,uBAGlBpoE,KAAK8nE,cAAgB,IACH,MAAT/lD,GACT/hB,KAAK4nE,SAAS8C,YACd1qE,KAAKooE,aAAa,cAGlBpoE,KAAK8nE,cAAgB,IAErB9nE,KAAK4oE,gBAAgB7mD,EAEzB,EACA6oD,oBAAqB,WACnB,IAAI7oD,EAAO/hB,KAAKioE,OAEZhiD,GAAQlE,GACV/hB,KAAKmoE,UAEa,MAATpmD,GACT/hB,KAAKooE,aAAa,uBAGlBpoE,KAAKmoE,WACa,MAATpmD,GACT/hB,KAAKmoE,UACLnoE,KAAK4nE,SAAS8C,YACd1qE,KAAKooE,aAAa,eAGA,MAATrmD,GACT/hB,KAAK4nE,SAASiD,kBAAkB,gDAChC7qE,KAAKooE,aAAa,iBAGlBpoE,KAAK4nE,SAASkD,iBACd9qE,KAAKmoE,UACLnoE,KAAK4nE,SAASmD,sBAAsBhpD,KAEpC/hB,KAAKooE,aAAa,iBAGlBpoE,KAAK4nE,SAASkD,iBAElB,EACAE,cAAe,WACb,IAAIjpD,EAAO/hB,KAAKioE,OAEZhiD,GAAQlE,IACV/hB,KAAKooE,aAAa,sBAGlBpoE,KAAKmoE,WACa,MAATpmD,GACT/hB,KAAK4nE,SAASqD,qBAAoB,GAClCjrE,KAAK4nE,SAASsD,uBACdlrE,KAAKmoE,UACLnoE,KAAKooE,aAAa,wBAGA,MAATrmD,GACT/hB,KAAKooE,aAAa,wBAGlBpoE,KAAKmoE,WACa,MAATpmD,GACT/hB,KAAK4nE,SAASqD,qBAAoB,GAClCjrE,KAAK4nE,SAASsD,uBACdlrE,KAAKmoE,UACLnoE,KAAK4nE,SAAS8C,YACd1qE,KAAKooE,aAAa,eAGA,MAATrmD,GAAyB,MAATA,GAAyB,MAATA,GACzC/hB,KAAK4nE,SAASiD,kBAAkB9oD,EAAO,oDACvC/hB,KAAKmoE,UACLnoE,KAAK4nE,SAASmD,sBAAsBhpD,KAEpC/hB,KAAKmoE,UACLnoE,KAAK4nE,SAASmD,sBAAsBhpD,GAExC,EACAopD,mBAAoB,WAClB,IAAIppD,EAAO/hB,KAAKioE,OAEZhiD,GAAQlE,GACV/hB,KAAKmoE,UAEa,MAATpmD,GACT/hB,KAAK4nE,SAASqD,qBAAoB,GAClCjrE,KAAK4nE,SAASsD,uBACdlrE,KAAKmoE,UACLnoE,KAAKooE,aAAa,wBAGA,MAATrmD,GACT/hB,KAAKmoE,UACLnoE,KAAKooE,aAAa,yBAGA,MAATrmD,GACT/hB,KAAK4nE,SAASqD,qBAAoB,GAClCjrE,KAAK4nE,SAASsD,uBACdlrE,KAAKmoE,UACLnoE,KAAK4nE,SAAS8C,YACd1qE,KAAKooE,aAAa,gBAIlBpoE,KAAK4nE,SAASqD,qBAAoB,GAClCjrE,KAAK4nE,SAASsD,uBACdlrE,KAAKooE,aAAa,iBAGlBpoE,KAAK4nE,SAASkD,iBACd9qE,KAAKmoE,UACLnoE,KAAK4nE,SAASmD,sBAAsBhpD,GAExC,EACAqpD,qBAAsB,WACpB,IAAIrpD,EAAO/hB,KAAKioE,OAEZhiD,GAAQlE,GACV/hB,KAAKmoE,UACa,MAATpmD,GACT/hB,KAAKooE,aAAa,8BAGlBpoE,KAAK4nE,SAASqD,qBAAoB,GAClCjrE,KAAKmoE,WACa,MAATpmD,GACT/hB,KAAKooE,aAAa,8BAGlBpoE,KAAK4nE,SAASqD,qBAAoB,GAClCjrE,KAAKmoE,WACa,MAATpmD,GACT/hB,KAAK4nE,SAASqD,qBAAoB,GAClCjrE,KAAK4nE,SAASsD,uBACdlrE,KAAKmoE,UACLnoE,KAAK4nE,SAAS8C,YACd1qE,KAAKooE,aAAa,gBAIlBpoE,KAAKooE,aAAa,0BAGlBpoE,KAAK4nE,SAASqD,qBAAoB,GAClCjrE,KAAKmoE,UACLnoE,KAAK4nE,SAASyD,uBAAuBtpD,GAEzC,EACAupD,2BAA4B,WAC1B,IAAIvpD,EAAO/hB,KAAKmoE,UAEH,MAATpmD,GACF/hB,KAAK4nE,SAASsD,uBACdlrE,KAAKooE,aAAa,8BAGA,MAATrmD,EACT/hB,KAAK4nE,SAASyD,uBAAuBrrE,KAAKwoE,kBAAoB,KAE9DxoE,KAAK4nE,SAASyD,uBAAuBtpD,EAEzC,EACAwpD,2BAA4B,WAC1B,IAAIxpD,EAAO/hB,KAAKmoE,UAEH,MAATpmD,GACF/hB,KAAK4nE,SAASsD,uBACdlrE,KAAKooE,aAAa,8BAGA,MAATrmD,EACT/hB,KAAK4nE,SAASyD,uBAAuBrrE,KAAKwoE,kBAAoB,KAE9DxoE,KAAK4nE,SAASyD,uBAAuBtpD,EAEzC,EACAypD,uBAAwB,WACtB,IAAIzpD,EAAO/hB,KAAKioE,OAEZhiD,GAAQlE,IACV/hB,KAAK4nE,SAASsD,uBACdlrE,KAAKmoE,UACLnoE,KAAKooE,aAAa,wBAGA,MAATrmD,GACT/hB,KAAK4nE,SAASsD,uBACdlrE,KAAKmoE,UACLnoE,KAAKooE,aAAa,wBAGA,MAATrmD,GACT/hB,KAAKmoE,UACLnoE,KAAK4nE,SAASyD,uBAAuBrrE,KAAKwoE,kBAAoB,MAC5C,MAATzmD,GACT/hB,KAAK4nE,SAASsD,uBACdlrE,KAAKmoE,UACLnoE,KAAK4nE,SAAS8C,YACd1qE,KAAKooE,aAAa,gBAIlBpoE,KAAKmoE,UACLnoE,KAAK4nE,SAASyD,uBAAuBtpD,GAEzC,EACA0pD,0BAA2B,WACzB,IAAI1pD,EAAO/hB,KAAKioE,OAEZhiD,GAAQlE,IACV/hB,KAAKmoE,UACLnoE,KAAKooE,aAAa,wBAGA,MAATrmD,GACT/hB,KAAKmoE,UACLnoE,KAAKooE,aAAa,wBAGA,MAATrmD,GACT/hB,KAAKmoE,UACLnoE,KAAK4nE,SAAS8C,YACd1qE,KAAKooE,aAAa,eAIlBpoE,KAAKooE,aAAa,sBAItB,EACAsD,oBAAqB,WACnB,IAAI3pD,EAAO/hB,KAAKioE,OAEH,MAATlmD,GACF/hB,KAAKmoE,UACLnoE,KAAK4nE,SAAS+D,uBACd3rE,KAAK4nE,SAAS8C,YACd1qE,KAAKooE,aAAa,eAIlBpoE,KAAKooE,aAAa,sBAItB,EACAwD,WAAY,WACV,IAAI7pD,EAAO/hB,KAAKmoE,WAEH,MAATpmD,GAAyB,MAATA,GAAgB0lD,GAAQ1lD,MAC1C/hB,KAAKooE,aAAa,cAGlBpoE,KAAK8nE,cAAgB,GACrB9nE,KAAK4nE,SAASiE,cACd7rE,KAAK4oE,gBAAgB7mD,GAEzB,GAEF/hB,KAAK0H,OACP,CA2GA,OAzGAigE,EAAiBpsE,UAAUmM,MAAQ,WACjC1H,KAAKooE,aAAa,cAGlBpoE,KAAKgmB,MAAQ,GACbhmB,KAAK8nE,cAAgB,GACrB9nE,KAAK6K,MAAQ,EACb7K,KAAKytB,KAAO,EACZztB,KAAK0tB,OAAS,EACd1tB,KAAK4nE,SAASlgE,OAChB,EAEAigE,EAAiBpsE,UAAU6sE,aAAe,SAAU19D,GAClD1K,KAAK0K,MAAQA,CACf,EAEAi9D,EAAiBpsE,UAAU0rB,SAAW,SAAUjB,GAC9ChmB,KAAK0H,QACL1H,KAAK8rE,aAAa9lD,GAClBhmB,KAAK+rE,aACP,EAEApE,EAAiBpsE,UAAUuwE,aAAe,SAAU9lD,GAClDhmB,KAAKgmB,OAAS0hD,GAAgB1hD,GAE9B,MAAOhmB,KAAK6K,MAAQ7K,KAAKgmB,MAAMnhB,OAAQ,CACrC,IAAI4N,EAAUzS,KAAK+nE,OAAO/nE,KAAK0K,OAE/B,QAAgBpK,IAAZmS,EAGF,MAAM,IAAIlU,MAAM,mBAAqByB,KAAK0K,OAF1C+H,EAAQhX,KAAKuE,KAIjB,CACF,EAEA2nE,EAAiBpsE,UAAUwwE,YAAc,WACvC/rE,KAAKgsE,WACP,EAEArE,EAAiBpsE,UAAUywE,UAAY,WAClB,SAAfhsE,KAAK0K,QACP1K,KAAK4nE,SAASa,aACdzoE,KAAKooE,aAAa,cAItB,EAEAT,EAAiBpsE,UAAU0sE,KAAO,WAChC,OAAOjoE,KAAKgmB,MAAMkB,OAAOlnB,KAAK6K,MAChC,EAEA88D,EAAiBpsE,UAAU4sE,QAAU,WACnC,IAAIpmD,EAAO/hB,KAAKioE,OAUhB,OATAjoE,KAAK6K,QAEQ,OAATkX,GACF/hB,KAAKytB,OACLztB,KAAK0tB,OAAS,GAEd1tB,KAAK0tB,SAGA3L,CACT,EAEA4lD,EAAiBpsE,UAAUitE,eAAiB,WAC1C,IAAI/lE,EAAWzC,KAAKgmB,MAAMtJ,QAAQ,IAAK1c,KAAK6K,OAE5C,IAAkB,IAAdpI,EAAJ,CAIA,IAAIkf,EAAS3hB,KAAKgmB,MAAMhe,MAAMhI,KAAK6K,MAAOpI,GACtC2jB,EAAQpmB,KAAK6nE,aAAar8D,MAAMmW,GAEpC,GAAIyE,EAAO,CACT,IAAI3gB,EAAQkc,EAAO9c,OAEnB,MAAOY,EACLzF,KAAKmoE,UACL1iE,IAKF,OADAzF,KAAKmoE,UACE/hD,CACT,CAhBA,CAiBF,EAEAuhD,EAAiBpsE,UAAU+sE,aAAe,WACxCtoE,KAAK4nE,SAASc,SAChB,EAEAf,EAAiBpsE,UAAUqtE,gBAAkB,SAAU7mD,GACrD/hB,KAAK8nE,eAAiB/lD,EACtB/hB,KAAK4nE,SAASgB,gBAAgB7mD,EAChC,EAEA4lD,EAAiBpsE,UAAU2sE,gBAAkB,WAC3C,IAAI7yD,EAAMrV,KAAK8nE,cACf,MAAe,UAARzyD,GAAwE,aAArDrV,KAAKgmB,MAAMpE,UAAU5hB,KAAK6K,MAAO7K,KAAK6K,MAAQ,IAA6B,UAARwK,GAAwE,aAArDrV,KAAKgmB,MAAMpE,UAAU5hB,KAAK6K,MAAO7K,KAAK6K,MAAQ,IAA6B,WAARwK,GAAyE,eAArDrV,KAAKgmB,MAAMpE,UAAU5hB,KAAK6K,MAAO7K,KAAK6K,MAAQ,EACvP,EAEO88D,CACT,CAryBA,GAuyBIjkE,GAEJ,WACE,SAASA,EAAUmkE,EAAcxrE,QACf,IAAZA,IACFA,EAAU,CAAC,GAGb2D,KAAK3D,QAAUA,EACf2D,KAAKo8B,MAAQ,KACbp8B,KAAKisE,UAAY,EACjBjsE,KAAKksE,YAAc,EACnBlsE,KAAKm8B,OAAS,GACdn8B,KAAKyD,UAAY,IAAIkkE,GAAiB3nE,KAAM6nE,EAAcxrE,EAAQ6oB,MAClEllB,KAAKmsE,uBAAoB7rE,CAC3B,CAiOA,OA/NAoD,EAAUnI,UAAU0rB,SAAW,SAAUjB,GAGvC,OAFAhmB,KAAKm8B,OAAS,GACdn8B,KAAKyD,UAAUwjB,SAASjB,GACjBhmB,KAAKm8B,MACd,EAEAz4B,EAAUnI,UAAUuwE,aAAe,SAAU9lD,GAG3C,OAFAhmB,KAAKm8B,OAAS,GACdn8B,KAAKyD,UAAUqoE,aAAa9lD,GACrBhmB,KAAKm8B,MACd,EAEAz4B,EAAUnI,UAAUwwE,YAAc,WAGhC,OAFA/rE,KAAKm8B,OAAS,GACdn8B,KAAKyD,UAAUsoE,cACR/rE,KAAKm8B,OAAO,EACrB,EAEAz4B,EAAUnI,UAAUmM,MAAQ,WAC1B1H,KAAKo8B,MAAQ,KACbp8B,KAAKisE,UAAY,EACjBjsE,KAAKksE,YAAc,CACrB,EAEAxoE,EAAUnI,UAAUygB,QAAU,WAC5B,IAAIogB,EAAQp8B,KAAKo8B,MAEjB,GAAc,OAAVA,EACF,MAAM,IAAI79B,MAAM,+BAGlB,GAAyB,IAArBgV,UAAU1O,OACZ,OAAOu3B,EAGT,IAAK,IAAI30B,EAAI,EAAGA,EAAI8L,UAAU1O,OAAQ4C,IACpC,GAAI20B,EAAMn9B,OAASsU,UAAU9L,GAC3B,OAAO20B,EAIX,MAAM,IAAI79B,MAAM,+BAAiC69B,EAAMn9B,KACzD,EAEAyE,EAAUnI,UAAU0J,KAAO,SAAUm3B,GACnCp8B,KAAKo8B,MAAQA,EACbp8B,KAAKm8B,OAAOl3B,KAAKm3B,EACnB,EAEA14B,EAAUnI,UAAU6wE,iBAAmB,WACrC,OAAOpsE,KAAKmsE,iBACd,EAEAzoE,EAAUnI,UAAU8wE,WAAa,WAC3BrsE,KAAK3D,QAAQiwE,MACftsE,KAAKgc,UAAUswD,IAAM,CACnBxoE,MAAO,CACL2pB,KAAMztB,KAAKisE,UACXv+C,OAAQ1tB,KAAKksE,aAEfrkE,IAAK,CACH4lB,KAAMztB,KAAKyD,UAAUgqB,KACrBC,OAAQ1tB,KAAKyD,UAAUiqB,UAK7B1tB,KAAKisE,UAAYjsE,KAAKyD,UAAUgqB,KAChCztB,KAAKksE,YAAclsE,KAAKyD,UAAUiqB,MACpC,EAGAhqB,EAAUnI,UAAUytE,aAAe,WACjChpE,KAAKiF,KAAK,CACRhG,KAAM,UAGNsF,KAAM,IAEV,EAEAb,EAAUnI,UAAU4tE,oBAAsB,SAAUpnD,GAClD/hB,KAAKgc,QAAQ,WAEXzX,MAAQwd,CACZ,EAEAre,EAAUnI,UAAUquE,gCAAkC,SAAU7nD,GAC9D,IAAIknD,EAAUjpE,KAAKgc,QAAQ,gBAIM1b,IAA7B2oE,EAAQsD,iBACVtD,EAAQsD,iBAAmBxqD,EAE3BknD,EAAQsD,kBAAoBxqD,CAEhC,EAEAre,EAAUnI,UAAU0uE,gCAAkC,SAAUloD,GAC9D,IAAIknD,EAAUjpE,KAAKgc,QAAQ,gBAIM1b,IAA7B2oE,EAAQuD,iBACVvD,EAAQuD,iBAAmBzqD,EAE3BknD,EAAQuD,kBAAoBzqD,CAEhC,EAEAre,EAAUnI,UAAU8tE,WAAa,WAC/BrpE,KAAKqsE,YACP,EAEA3oE,EAAUnI,UAAU8sE,UAAY,WAC9BroE,KAAKiF,KAAK,CACRhG,KAAM,QAGNmnB,MAAO,IAEX,EAEA1iB,EAAUnI,UAAUgtE,aAAe,SAAUxmD,GAC3C/hB,KAAKgc,QAAQ,SAEXoK,OAASrE,CACb,EAEAre,EAAUnI,UAAUktE,WAAa,WAC/BzoE,KAAKqsE,YACP,EAGA3oE,EAAUnI,UAAUutE,aAAe,WACjC9oE,KAAKiF,KAAK,CACRhG,KAAM,UAGNmnB,MAAO,IAEX,EAEA1iB,EAAUnI,UAAU+uE,oBAAsB,SAAUvoD,GAClD/hB,KAAKgc,QAAQ,WAEXoK,OAASrE,CACb,EAEAre,EAAUnI,UAAU8uE,cAAgB,WAClCrqE,KAAKqsE,YACP,EAGA3oE,EAAUnI,UAAUmtE,QAAU,WAAa,EAE3ChlE,EAAUnI,UAAUotE,cAAgB,WAClC3oE,KAAKiF,KAAK,CACRhG,KAAM,WAGN8b,QAAS,GACT/G,WAAY,GACZm3B,aAAa,GAEjB,EAEAznC,EAAUnI,UAAUswE,YAAc,WAChC7rE,KAAKiF,KAAK,CACRhG,KAAM,SAGN8b,QAAS,IAEb,EAEArX,EAAUnI,UAAUmvE,UAAY,WAC9B1qE,KAAKqsE,YACP,EAEA3oE,EAAUnI,UAAUowE,qBAAuB,WACzC3rE,KAAKgc,QAAQ,YAEXmvB,aAAc,CAClB,EAGAznC,EAAUnI,UAAUqtE,gBAAkB,SAAU7mD,GAC9C/hB,KAAKgc,QAAQ,WAEX,UAEAjB,SAAWgH,CACf,EAGAre,EAAUnI,UAAUuvE,eAAiB,WACnC9qE,KAAKmsE,kBAAoB,CAAC,GAAI,IAAI,EACpC,EAEAzoE,EAAUnI,UAAUwvE,sBAAwB,SAAUhpD,GACpD/hB,KAAKosE,mBAAmB,IAAMrqD,CAChC,EAEAre,EAAUnI,UAAU0vE,oBAAsB,SAAUwB,GAClDzsE,KAAKosE,mBAAmB,GAAKK,CAC/B,EAEA/oE,EAAUnI,UAAU8vE,uBAAyB,SAAUtpD,GACrD/hB,KAAKosE,mBAAmB,IAAMrqD,CAChC,EAEAre,EAAUnI,UAAU2vE,qBAAuB,WACzClrE,KAAKgc,QAAQ,YAEXhI,WAAW/O,KAAKjF,KAAKmsE,kBACzB,EAEAzoE,EAAUnI,UAAUsvE,kBAAoB,SAAUr9C,GAChDxtB,KAAKgc,UAAU0wD,YAAcl/C,CAC/B,EAEO9pB,CACT,CA/OA,GAiPA,SAAS,GAASsiB,EAAO3pB,GACvB,IAAIoH,EAAY,IAAIC,GAAU,IAAI0jE,GAAaT,IAAqBtqE,GACpE,OAAOoH,EAAUwjB,SAASjB,EAC5B,CAEA,IAAI2mD,GAAgB,gBAChBC,GAAW,WACXC,GAAS,SACTC,GAAQ,QACRttE,GAAU,UACVF,GAAU,UAOd,SAASytE,GAAYhlE,EAAKkM,QACX,IAATA,IACFA,EAAO,CAAC,GAUV,IALA,IAAIkoB,EAAS,GAASp0B,GAClBilE,EAAkB,GAClBC,EAAY,GACZ5wE,EAAU,IAAIqlE,GAAQztD,EAAM0tD,IAEvBl6D,EAAI,EAAGA,EAAI00B,EAAOt3B,OAAQ4C,IAAK,CACtC,IAAI20B,EAAQD,EAAO10B,GAEnB,GAAI20B,EAAMn9B,OAAS2tE,GAAU,CAC3BI,EAAgB/nE,KAAKm3B,GAErB,IAAIrhB,EAAUqhB,EAAMrhB,QAAQgnB,cACxBmrC,EAAwB,MAAZnyD,GAAmB1e,EAAQolE,WAAW/kD,QAAQ3B,IAAY,EAE1E,IAAKmyD,EACH,SAGF,IAAIC,EAAaH,EAAgBnoE,OACjCuoE,GAAcryD,EAASohB,IAAU10B,EAAGulE,GACpCvlE,GAAKulE,EAAgBnoE,OAASsoE,EAAa,CAC7C,MAAO,GAAI/wC,EAAMn9B,OAAS6tE,GAExBE,EAAgB/nE,KAAKm3B,OAChB,CAEL,IAAIixC,EAAgBC,GAAalxC,EAAMhW,MAAO/pB,GAC9C2wE,EAAgB/nE,KAAKwO,MAAMu5D,EAAiBK,EAC9C,CACF,CAGA,IAAK,IAAI5yD,EAAK,EAAGA,EAAKuyD,EAAgBnoE,OAAQ4V,IAAM,CAClD,IAAI8yD,EAASP,EAAgBvyD,GAE7B,OAAQ8yD,EAAOtuE,MACb,KAAK0tE,GACHM,EAAUhoE,KAAKsoE,EAAOC,UACtB,MAEF,KAAKZ,GAED,IAAI/yD,EAAO,IAAM0zD,EAAOxyD,QAEpBwyD,EAAOv5D,WAAWnP,OAAS,IAC7BgV,GAAQ,IAAM4zD,GAAwBF,EAAOv5D,YAAYO,KAAK,MAG5Dg5D,EAAOpiC,cACTtxB,GAAQ,MAGVA,GAAQ,IACRozD,EAAUhoE,KAAK4U,GACf,MAGJ,KAAKgzD,GACHI,EAAUhoE,KAAK,KAAOsoE,EAAOxyD,QAAU,KACvC,MAEF,KAAK+xD,GACHG,EAAUhoE,KAAKsQ,GAAWg4D,EAAOnnD,QACjC,MAEF,KAAK5mB,GACHytE,EAAUhoE,KAAK,UAASsQ,GAAWg4D,EAAOnnD,OAAS,UACnD,MAEF,KAAK9mB,GAED,IAAI2pE,EAAU,aAAesE,EAAOhpE,KAEhCgpE,EAAOhB,mBACTtD,GAAW,YAAesE,EAAOhB,iBAAmB,KAGlDgB,EAAOf,mBACTvD,GAAW,KAAQsE,EAAOf,iBAAmB,KAG/CvD,GAAW,IACXgE,EAAUhoE,KAAKgkE,GACf,MAGR,CAEA,OAAOgE,EAAU14D,KAAK,GACxB,CAQA,SAAS+4D,GAAavlE,EAAK1L,GAIzB,IAHA,IAAI8/B,EAASlV,GAAWlf,GACpB7G,EAAS,GAEJuG,EAAI,EAAGA,EAAI00B,EAAOt3B,OAAQ4C,IAAK,CACtC,IAAI20B,EAAQD,EAAO10B,GAEH,OAAZ20B,EAAMhpB,GAAc/W,EAAQwE,IAAI,SAClCK,EAAO+D,KAAK,CACVhG,KAAM2tE,GACN7xD,QAAS,KACT/G,WAAY,GACZm3B,aAAa,IAEL/O,EAAMqmC,QAAWpmE,EAAQ0lE,MAAM3lC,GAMzCl7B,EAAO+D,KAAK,CACVhG,KAAM0tE,GACNa,SAAUnxE,EAAQqX,OAAO0oB,KAP3Bl7B,EAAO+D,KAAK,CACVhG,KAAM6tE,GACN1mD,MAAOgW,EAAM5gC,YAQnB,CAEA,OAAO0F,CACT,CAiBA,SAASksE,GAAcryD,EAASohB,EAAQ10B,EAAGimE,GAEzC,IAAIC,EAAa,EAEjB,MAAOlmE,EAAI00B,EAAOt3B,QAAU8oE,EAAa,EAAG,CAC1C,IAAIvxC,EAAQD,EAAO10B,GAEf20B,EAAMn9B,OAAS2tE,IAAYxwC,EAAMrhB,QAAQgnB,gBAAkBhnB,EAE7D4yD,IACSvxC,EAAMn9B,OAAS4tE,IAAUzwC,EAAMrhB,QAAQgnB,gBAAkBhnB,GAElE4yD,IAGFD,EAAczoE,KAAKm3B,GACnB30B,GACF,CAGA,OAAOimE,CACT,CAEA,SAAS/L,GAAc9B,GACrB,IAAI9kD,EAAU8kD,EAAK9kD,QACf/G,EAAa6rD,EAAK7rD,WAClBogB,EAAUyrC,EAAKzrC,QACnB,MAAO,IAAMrZ,EAAU,IAAM6yD,GAAmB55D,GAAc,IAAMuB,GAAW6e,GAAW,KAAOrZ,EAAU,GAC7G,CAEA,SAASxF,GAAWkB,GAClB,OAAOA,EAAK3W,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,OACzE,CAEA,SAAS+tE,GAAWC,GAClB,OAAOA,EAAKhuE,QAAQ,KAAM,SAC5B,CAEA,SAAS8tE,GAAmB55D,GAC1B,IAAI9S,EAAS,GAEb,IAAK,IAAI4sE,KAAQ95D,EAAY,CAC3B,IAAI/X,EAAM+X,EAAW85D,GAAQ,GAC7B5sE,EAAO+D,KAAK6oE,EAAO,KAAQD,GAAW5xE,GAAO,IAC/C,CAEA,OAAOiF,EAAOqT,KAAK,IACrB,CAEA,SAASk5D,GAAwBtlB,GAG/B,IAFA,IAAI4lB,EAAW,GAENtmE,EAAI,EAAGA,EAAI0gD,EAAMtjD,OAAQ4C,IAAK,CACrC,IAAIlD,EAAO4jD,EAAM1gD,GAAG,GAChBvM,EAAQitD,EAAM1gD,GAAG,GAAK,GAC1BsmE,EAAS9oE,KAAKV,EAAO,KAAQspE,GAAW3yE,GAAS,IACnD,CAEA,OAAO6yE,CACT,C,0BCj0CO,MAAMC,GAAmBhoD,GACvBqgB,KAAa0mC,GAAY/mD,EAAO,CAAEvpB,OAAQ,WAAa,CAC5DyqC,YAAa,CAAC,KACd8B,mBAAoB,WCFlB6D,GAAa,CAAE1yB,GAAI,gBACnB2yB,GAAa,CAAC,aAUpB,QAA4BwC,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,eACRrjB,MAAO,CACLolB,MAAO,CAAE3tC,QAAS,IAAM,OAE1BksC,MAAMC,GAER,MAAM5jB,EAAQ4jB,GAIN,MAAEwB,IAAUlB,EAAAA,EAAAA,IAAOlkB,GAE3B,MAAO,CAACwoB,EAAUC,KAChB,MAAMK,GAAkBH,EAAAA,EAAAA,IAAkB,QAE1C,OAAQI,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOrI,GAAY,EAC3DwI,EAAAA,EAAAA,IAAaL,EAAiB,KAAM,CAClC3D,OAAOiE,EAAAA,EAAAA,KAAS,IAAM,EACpBC,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,mBAAoB,MAEhErhB,SAASkhB,EAAAA,EAAAA,KAAS,IAAM,EACtBI,EAAAA,EAAAA,GAAoB,OAAQ,CAC1BuU,WACE7U,EAAAA,EAAAA,IAAO9D,IAA4B,MAAlB8D,EAAAA,EAAAA,IAAO9D,IACpB8D,EAAAA,EAAAA,IAAO44B,GAAP54B,EAAwBA,EAAAA,EAAAA,IAAO9D,IAC/BoD,EAAKe,GAAG,sBAEb,KAAM,EAAG3I,OAEdnvC,EAAG,KAEL,CAEJ,IC3CA,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,YAAY,qBAEvE,UCLA,MACMkvC,GAAa,CAAE1yB,GAAI,oBAWzB,QAA4Bm1B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,kBACRrjB,MAAO,CACLuyB,SAAU,KACV3E,iBAAkB,CAAE76C,KAAMsxB,UAE5Bsf,MAAMC,GAER,MAAM5jB,EAAQ4jB,GAON,SAAE2O,EAAQ,iBAAE3E,IAAqB1J,EAAAA,EAAAA,IAAOlkB,GAEhD,MAAO,CAACwoB,EAAUC,KAChB,MAAMmE,GAAyBjE,EAAAA,EAAAA,IAAkB,eAC3CoG,GAAsBpG,EAAAA,EAAAA,IAAkB,YACxCG,GAAkBH,EAAAA,EAAAA,IAAkB,QAE1C,OAAQI,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOrI,GAAY,EAC3DwI,EAAAA,EAAAA,IAAaL,EAAiB,KAAM,CAClC3D,OAAOiE,EAAAA,EAAAA,KAAS,IAAM,EACpBC,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,mBAAoB,IAAK,MAErErhB,SAASkhB,EAAAA,EAAAA,KAAS,IAAM,EACtBI,EAAAA,EAAAA,GAAoB,KAAM,KAAM,GAC7BT,EAAAA,EAAAA,KAAW,IAAOC,EAAAA,EAAAA,IAAoBmB,EAAAA,GAAW,MAAMC,EAAAA,EAAAA,KAAYlB,EAAAA,EAAAA,IAAOqJ,IAAW,CAACG,EAAS/zC,MACtFoqC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,KAAM,CAC9Cn4C,IAAK6hD,EAAQyV,YACZ,EACDhf,EAAAA,EAAAA,IAAayD,EAAwB,CACnC1nB,GAAI,CACJ7sB,KAAM,iBACN05B,OAAQ,CACN+V,UAAW4K,EAAQqvB,WACnB90B,UAAWtuC,EAAQ,KAGpB,CACDlH,SAAS2xC,EAAAA,EAAAA,KAAS,IAAM,EACtBC,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,mBAAoB,IAAM,KAAMD,EAAAA,EAAAA,IAAiB3qC,EAAQ,GAAI,MAEzGlN,EAAG,GACF,KAAM,CAAC,QACV43C,EAAAA,EAAAA,IAAiB,MAAOC,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,sBAAwB,KAAM,IAC/EJ,EAAAA,EAAAA,IAAa4F,EAAqB,CAChC/H,SAAU0L,EAAQ1L,SAClBmI,SAAU,KACVvB,kBAAkB1E,EAAAA,EAAAA,IAAO0E,IACxB,KAAM,EAAG,CAAC,WAAY,sBACzBvE,EAAAA,EAAAA,IAAiB,MAAOC,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,sBAAwB,MAAOD,EAAAA,EAAAA,IAAiBoJ,EAAQ7L,UAAY,KAAM,QAE3H,WAGRp1C,EAAG,KAEL,CAEJ,ICvEA,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,YAAY,qBAEvE,UCLA,MAAMi6C,GAAetkC,KAAMukC,EAAAA,EAAAA,IAAa,mBAAmBvkC,EAAEA,KAAIwkC,EAAAA,EAAAA,MAAcxkC,GACzEu5B,GAAa,CACjB1yB,GAAI,UACJ6yB,MAAO,QAEHF,GAAa,CAAEE,MAAO,aACtBD,GAAa,CACjBhwC,IAAK,EACLiwC,MAAO,qBAEHC,GAAa,CAAElwC,IAAK,GACpBmwC,GAA2B0K,IAAa,KAAmBlC,EAAAA,EAAAA,GAAoB,MAAO,CAAEv7B,GAAI,UAAY,MAAO,KAC/GgzB,GAAa,CAAEpwC,IAAK,GAiC1B,QAA4BuyC,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,UACRrjB,MAAO,CACLunC,eAAgB,CAAEx0D,KAAMsxB,UAE1Bsf,MAAMC,GAER,MAAM5jB,EAAQ4jB,EAMN0H,GAAQC,EAAAA,EAAAA,MACRzH,GAAQC,EAAAA,GAAAA,MAER,eAAEwjB,IAAmBrjB,EAAAA,EAAAA,IAAOlkB,GAC5BorB,GAAyChH,EAAAA,EAAAA,KAC7C,IAAMN,EAAMU,QAAQqD,GAAAA,GAAAA,QAAAA,gBAEhBvE,GAA0Cc,EAAAA,EAAAA,KAC9C,IAAMN,EAAMU,QAAQ2G,GAAAA,GAAAA,QAAAA,qBAEhB5H,GAAgCa,EAAAA,EAAAA,KACpC,IAAMN,EAAMU,QAAQ0G,GAAAA,GAAAA,QAAAA,UAEhBsa,GAAuC1f,EAAAA,EAAAA,IAAI,CAC/C4f,SAAU,KACVE,UAAW,OAeb,SAASoc,EAAkB1wB,GACzBkU,EAAkBx2D,MAAQ,CACxB02D,SAAUpU,EAAYoU,SACtBE,UAAWtU,EAAYsU,UAE3B,CA2BF,OA5CEpa,EAAAA,EAAAA,KAAc,KACZ,MAAM/D,EAA2B,CAAEK,UAAWwD,EAAMvZ,OAAO+V,WACvD9nB,EAAMunC,iBACR9f,EAAQwF,UAAY3B,EAAMvZ,OAAOkb,WAEnCnJ,EAAM8D,SAASC,GAAAA,GAAAA,QAAAA,iBAAyCJ,EAAQ,KAGlEW,EAAAA,EAAAA,KAAY,KACVtE,EAAM6D,OAAOE,GAAAA,GAAAA,UAAAA,cAAuC,KAUtDQ,EAAAA,EAAAA,KACE,IAAMiD,EAAMvZ,OAAO+V,YACnBtf,UACMijB,GACF3H,EAAM8D,SAASC,GAAAA,GAAAA,QAAAA,iBAAyC,CACtDC,UAAW2D,G,KAKnBpD,EAAAA,EAAAA,KACE,IAAMiD,EAAMvZ,OAAOkb,YACnBzkB,UACE,GAAI8iB,EAAMvZ,OAAO+V,UAAW,CAC1B,MAAML,EAA2B,CAC/BK,UAAWwD,EAAMvZ,OAAO+V,WAEtB0gB,IACF/gB,EAAQwF,UAAYub,GAEtB1kB,EAAM8D,SAASC,GAAAA,GAAAA,QAAAA,iBAAyCJ,E,KAKzD,CAACe,EAAUC,MACRM,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOrI,GAAY,EAC3D6I,EAAAA,EAAAA,GAAoB,MAAO5I,GAAY,EACpCsI,EAAAA,EAAAA,IAAO3F,GAAQ5qC,OAAS,IACpBowC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOnI,GAAY,EACnDqI,EAAAA,EAAAA,IAAOkC,GAAa1H,QAAQz1B,KACxB86B,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOjI,GAAY,EACpDoI,EAAAA,EAAAA,IAAa84B,GAAe,CAC1B72B,aAAalC,EAAAA,EAAAA,IAAOkC,GACpB7H,QAAQ2F,EAAAA,EAAAA,IAAO3F,GACfD,UAAU4F,EAAAA,EAAAA,IAAO5F,GACjBkiB,kBAAmBA,EAAkBx2D,MACrCu4D,gBAAgBre,EAAAA,EAAAA,IAAOqe,IACtB,KAAM,EAAG,CAAC,cAAe,SAAU,WAAY,oBAAqB,oBAE3Ere,EAAAA,EAAAA,IAAOkC,GAAa1H,QAAQqC,WAAYmD,EAAAA,EAAAA,IAAOkC,GAAa8a,UAAUvtD,OAAS,IAEtEowC,EAAAA,EAAAA,OAAciC,EAAAA,EAAAA,IAAak3B,GAAc,CACxCrxE,IAAK,EACLu6C,aAAalC,EAAAA,EAAAA,IAAOkC,GACpB9H,UAAU4F,EAAAA,EAAAA,IAAO5F,GACjBikB,gBAAgBre,EAAAA,EAAAA,IAAOqe,GACvB4a,iBAAkBH,GACjB,KAAM,EAAG,CAAC,cAAe,WAAY,qBACxCl4B,EAAAA,EAAAA,IAAoB,IAAI,KAC1BZ,EAAAA,EAAAA,IAAOqe,KAAmBre,EAAAA,EAAAA,IAAOkC,GAAa1H,QAAQ6O,SAAS55C,OAAS,IACrEowC,EAAAA,EAAAA,OAAciC,EAAAA,EAAAA,IAAao3B,GAAiB,CAC3CvxE,IAAK,EACL0hD,UAAUrJ,EAAAA,EAAAA,IAAOkC,GAAa1H,QAAQ6O,SACtC3E,kBAAkB1E,EAAAA,EAAAA,IAAO5F,GAAUwD,gBAClC,KAAM,EAAG,CAAC,WAAY,uBACzBgD,EAAAA,EAAAA,IAAoB,IAAI,IAC1BZ,EAAAA,EAAAA,IAAOqe,IAKLzd,EAAAA,EAAAA,IAAoB,IAAI,KAJvBf,EAAAA,EAAAA,OAAciC,EAAAA,EAAAA,IAAaq3B,GAAc,CACxCxxE,IAAK,EACLu0C,OAAO8D,EAAAA,EAAAA,IAAOkC,GAAa1H,QAAQ0B,OAClC,KAAM,EAAG,CAAC,WAEjBpE,QAED+H,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAO/H,GAAY,EAClDiI,EAAAA,EAAAA,IAAOkC,GAAa3H,SAKlBqG,EAAAA,EAAAA,IAAoB,IAAI,KAJvBf,EAAAA,EAAAA,OAAciC,EAAAA,EAAAA,IAAas3B,EAAAA,EAAU,CACpCzxE,IAAK,EACLN,OAAQ,oBAKtBu5C,EAAAA,EAAAA,IAAoB,IAAI,OAIlC,IC1KA,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,YAAY,qBAEvE,S,qKCLA,MAAM4B,EAAetkC,KAAMukC,EAAAA,EAAAA,IAAa,mBAAmBvkC,EAAEA,KAAIwkC,EAAAA,EAAAA,MAAcxkC,GACzEu5B,EAAa,CAAEG,MAAO,oBACtBF,EAAa,CAAEE,MAAO,OACtBD,EAAa,CAAEC,MAAO,QACtBC,EAAa,CAAED,MAAO,oBACtBE,EAAa,CAAEF,MAAO,aACtBG,EAAa,CAAC,SACdC,EAAa,CAAEJ,MAAO,aACtBK,EAAa,CAAC,SACdC,EAAa,CAAEN,MAAO,oBACtBO,EAAc,CAAEP,MAAO,aACvBQ,EAAc,CAAC,SACfC,EAA4BmK,GAAa,KAAmBlC,EAAAA,EAAAA,GAAoB,SAAU,CAAEx6C,MAAO,IAAM,MAAO,KAChHwyC,EAAc,CAAC,SACfC,EAAc,CAAEX,MAAO,oBACvBY,EAAc,CAAEZ,MAAO,aACvBa,EAAc,CAAEb,MAAO,qBACvBc,EAAc,CAAC,SACfC,EAAc,CAAC,SACfC,EAAc,CAAEhB,MAAO,oBACvBiB,EAAc,CAAEjB,MAAO,aACvBkB,EAAc,CAAElB,MAAO,qBACvBmB,EAAc,CAAC,SACfC,EAAc,CAAC,SACfC,EAAc,CAAErB,MAAO,oBACvBsB,EAAc,CAAEtB,MAAO,aACvBuB,EAAc,CAAEvB,MAAO,qBACvBwB,EAAc,CAAC,SACfC,EAAc,CAAC,SACfC,EAAc,CAAE1B,MAAO,oBACvB2B,EAAc,CAAE3B,MAAO,aACvB4B,EAAc,CAAE5B,MAAO,qBACvB6B,EAAc,CAAC,SACfC,EAAc,CAAC,SACfC,EAAc,CAAE/B,MAAO,eAgB7B,OAA4BsC,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,kBACRrjB,MAAO,CACLsjB,SAAU,KACVC,OAAQ,MAEVuI,MAAO,CAAC,UACRnI,MAAMC,GAAc,KAAEmI,IAExB,MAAM/rB,EAAQ4jB,GASN,EAAE18B,IAAM28B,EAAAA,EAAAA,MACRyH,GAAQC,EAAAA,EAAAA,MACRvH,GAASC,EAAAA,EAAAA,OAET,SAAEX,IAAaY,EAAAA,EAAAA,IAAOlkB,GAEtBuiD,EAASj/B,EAASt0C,MAAM83C,eAC1BwmB,EAAAA,GAAAA,GAAAA,cACA,KACEnpB,GAA0CC,EAAAA,EAAAA,KAAS,KACvDC,EAAAA,EAAAA,IAAgBrkB,EAAMujB,OAAQr8B,KAEhC,IAAI6qB,EAAwB3iC,OAAO6X,OAAO,CAAC,EAAGqkC,EAAMk3B,OAEpD,SAASC,EAAmB94C,GACC,KAAvBA,EAAMp5B,OAAOvB,aACR+iC,EAAOpI,EAAMp5B,OAAO8H,MAE3B05B,EAAOpI,EAAMp5B,OAAO8H,MAAQsxB,EAAMp5B,OAAOvB,KAE7C,CACA,SAAS0zE,IACP32B,EAAK,UACD,SAAUha,IACZA,EAAO,QAAU,KAEnBiS,EAAOjrC,KAAK,CAAEmzB,KAAM,YAAas2C,MAAOzwC,GAC1C,CACA,SAAS4wC,IACP52B,EAAK,UACL/H,EAAOjrC,KAAK,CAAEmzB,KAAM,YAAas2C,MAAO,CAAC,GAC3C,CASF,OAPEn6B,EAAAA,EAAAA,KACE,IAAMiD,EAAMk3B,QACXI,IACC7wC,EAAS3iC,OAAO6X,OAAO,CAAC,EAAG27D,EAAS,IAInC,CAACp6B,EAAUC,MACRM,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOrI,EAAY,EAC3D6I,EAAAA,EAAAA,GAAoB,MAAO5I,EAAY,EACrC4I,EAAAA,EAAAA,GAAoB,MAAO3I,EAAY,EACrC2I,EAAAA,EAAAA,GAAoB,MAAOzI,EAAY,EACrCyI,EAAAA,EAAAA,GAAoB,MAAOxI,EAAY,EACrCwI,EAAAA,EAAAA,GAAoB,QAAS,MAAMF,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,kBAAoB,KAAM,IACtFC,EAAAA,EAAAA,GAAoB,QAAS,CAC3BnxC,KAAM,OACNtF,KAAM,OACN/D,MAAOw5C,EAAKq6B,OAAOL,MAAMh+C,KACzBs+C,SAAUL,GACT,KAAM,GAAIxhC,MAEfuI,EAAAA,EAAAA,GAAoB,MAAOtI,EAAY,EACrCsI,EAAAA,EAAAA,GAAoB,QAAS,MAAMF,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,gBAAkB,KAAM,IACpFC,EAAAA,EAAAA,GAAoB,QAAS,CAC3BnxC,KAAM,KACNtF,KAAM,OACN/D,MAAOw5C,EAAKq6B,OAAOL,MAAMt9C,GACzB49C,SAAUL,GACT,KAAM,GAAIthC,QAGjBqI,EAAAA,EAAAA,GAAoB,MAAOpI,EAAY,EACrCoI,EAAAA,EAAAA,GAAoB,MAAOnI,EAAa,EACtCmI,EAAAA,EAAAA,GAAoB,QAAS,MAAMF,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,iBAAkB,IAAM,IAAK,IACzFC,EAAAA,EAAAA,GAAoB,SAAU,CAC5BnxC,KAAM,WACNrJ,MAAOw5C,EAAKq6B,OAAOL,MAAMl+B,SACzBw+B,SAAUL,GACT,CACDlhC,IACCwH,EAAAA,EAAAA,KAAW,IAAOC,EAAAA,EAAAA,IAAoBmB,EAAAA,GAAW,MAAMC,EAAAA,EAAAA,KAAYlB,EAAAA,EAAAA,IAAO/E,GAAkBlzC,QAAQkW,IACjG+hC,EAAAA,EAAAA,IAAO5F,GAAUy/B,YAAYtzD,SAAStI,EAAE8G,OACtCo8B,KACItB,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,SAAU,CAClDh6C,MAAOq7C,EAAMp8B,GACbpd,IAAKw5C,EAAMp8B,KACVq7B,EAAAA,EAAAA,IAAiBe,EAAMC,iBAAkB,EAAG9I,MAC7C,OACH,GAAIF,QAGXkI,EAAAA,EAAAA,GAAoB,MAAO/H,EAAa,EACtC+H,EAAAA,EAAAA,GAAoB,MAAO9H,EAAa,EACtC8H,EAAAA,EAAAA,GAAoB,QAAS,MAAMF,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,sBAAwB,MAAOD,EAAAA,EAAAA,KAAiBJ,EAAAA,EAAAA,IAAOq5B,IAAW,MAAO,IACrI/4B,EAAAA,EAAAA,GAAoB,MAAO7H,EAAa,EACtC6H,EAAAA,EAAAA,GAAoB,QAAS,CAC3BnxC,KAAM,gBACNtF,KAAM,SACNmd,IAAK,IACLinB,KAAM,MACNnoC,MAAOw5C,EAAKq6B,OAAOL,MAAMQ,cACzBF,SAAUL,GACT,KAAM,GAAI7gC,IACb4H,EAAAA,EAAAA,GAAoB,OAAQ,MAAMF,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,gBAAiB,IAC5EC,EAAAA,EAAAA,GAAoB,QAAS,CAC3BnxC,KAAM,cACNtF,KAAM,SACNmd,IAAK,IACLinB,KAAM,MACNnoC,MAAOw5C,EAAKq6B,OAAOL,MAAMS,YACzBH,SAAUL,GACT,KAAM,GAAI5gC,UAInB2H,EAAAA,EAAAA,GAAoB,MAAO1H,EAAa,EACtC0H,EAAAA,EAAAA,GAAoB,MAAOzH,EAAa,EACtCyH,EAAAA,EAAAA,GAAoB,QAAS,MAAMF,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,sBAAwB,KAAM,IAC1FC,EAAAA,EAAAA,GAAoB,MAAOxH,EAAa,EACtCwH,EAAAA,EAAAA,GAAoB,QAAS,CAC3BnxC,KAAM,gBACNrJ,MAAOw5C,EAAKq6B,OAAOL,MAAMU,cACzBJ,SAAUL,EACV3iD,QAAS,+BACT8qB,YAAa,QACb73C,KAAM,QACL,KAAM,GAAIkvC,IACbuH,EAAAA,EAAAA,GAAoB,OAAQ,MAAMF,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,gBAAiB,IAC5EC,EAAAA,EAAAA,GAAoB,QAAS,CAC3BnxC,KAAM,cACNrJ,MAAOw5C,EAAKq6B,OAAOL,MAAMW,YACzBL,SAAUL,EACV3iD,QAAS,+BACT8qB,YAAa,QACb73C,KAAM,QACL,KAAM,GAAImvC,UAInBsH,EAAAA,EAAAA,GAAoB,MAAOrH,EAAa,EACtCqH,EAAAA,EAAAA,GAAoB,MAAOpH,EAAa,EACtCoH,EAAAA,EAAAA,GAAoB,QAAS,MAAMF,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,uBAAyB,MAAOD,EAAAA,EAAAA,KAAiBJ,EAAAA,EAAAA,IAAOq5B,IAAW,QAAS,IACxI/4B,EAAAA,EAAAA,GAAoB,MAAOnH,EAAa,EACtCmH,EAAAA,EAAAA,GAAoB,QAAS,CAC3Bt5B,IAAK,IACL7X,KAAM,iBACNrJ,MAAOw5C,EAAKq6B,OAAOL,MAAMY,eACzBN,SAAUL,EACVtrC,KAAM,MACNpkC,KAAM,UACL,KAAM,GAAIuvC,IACbkH,EAAAA,EAAAA,GAAoB,OAAQ,MAAMF,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,gBAAiB,IAC5EC,EAAAA,EAAAA,GAAoB,QAAS,CAC3Bt5B,IAAK,IACL7X,KAAM,eACNrJ,MAAOw5C,EAAKq6B,OAAOL,MAAMa,aACzBP,SAAUL,EACVtrC,KAAM,MACNpkC,KAAM,UACL,KAAM,GAAIwvC,UAInBiH,EAAAA,EAAAA,GAAoB,MAAOhH,EAAa,EACtCgH,EAAAA,EAAAA,GAAoB,MAAO/G,EAAa,EACtC+G,EAAAA,EAAAA,GAAoB,QAAS,MAAMF,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,uBAAyB,MAAOD,EAAAA,EAAAA,KAAiBJ,EAAAA,EAAAA,IAAOq5B,IAAW,QAAS,IACxI/4B,EAAAA,EAAAA,GAAoB,MAAO9G,EAAa,EACtC8G,EAAAA,EAAAA,GAAoB,QAAS,CAC3Bt5B,IAAK,IACL7X,KAAM,iBACNrJ,MAAOw5C,EAAKq6B,OAAOL,MAAMc,eACzBR,SAAUL,EACVtrC,KAAM,MACNpkC,KAAM,UACL,KAAM,GAAI4vC,IACb6G,EAAAA,EAAAA,GAAoB,OAAQ,MAAMF,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,gBAAiB,IAC5EC,EAAAA,EAAAA,GAAoB,QAAS,CAC3Bt5B,IAAK,IACL7X,KAAM,eACNrJ,MAAOw5C,EAAKq6B,OAAOL,MAAMe,aACzBT,SAAUL,EACVtrC,KAAM,MACNpkC,KAAM,UACL,KAAM,GAAI6vC,YAKrB4G,EAAAA,EAAAA,GAAoB,MAAO3G,EAAa,EACtC2G,EAAAA,EAAAA,GAAoB,SAAU,CAC5B1I,MAAO,UACP+I,QAAS64B,IACRp5B,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,mBAAoB,IAChDC,EAAAA,EAAAA,GAAoB,SAAU,CAC5B1I,MAAO,UACP+I,QAAS84B,IACRr5B,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,yBAA0B,SAK9D,I,UCnQA,MAAM0B,GAA2B,OAAgB,EAAQ,CAAC,CAAC,YAAY,qBAEvE,Q,8FCLA,MAAMS,GAAetkC,KAAMukC,EAAAA,EAAAA,IAAa,mBAAmBvkC,EAAEA,KAAIwkC,EAAAA,EAAAA,MAAcxkC,GACzEu5B,GAAa,CAAEG,MAAO,iBACtBF,GAAa,CAAEE,MAAO,SACtBD,GAAa,CAAEC,MAAO,eACtBC,GAAa,CAAElwC,IAAK,GACpBmwC,GAAa,CACjBnwC,IAAK,EACLiwC,MAAO,mCAEHG,GAA2ByK,IAAa,KAAmBlC,EAAAA,EAAAA,GAAoB,KAAM,CAAE1I,MAAO,aAAe,MAAO,KACpHI,GAAa,CAAEJ,MAAO,aACtBK,GAAa,CAAEL,MAAO,gBACtBM,GAAa,CAAC,eACdC,GAAc,CAAEP,MAAO,gBACvBQ,GAAc,CAClBzwC,IAAK,EACLiwC,MAAO,cACP,cAAe,QAEXS,GAAc,CAAET,MAAO,SACvBU,GAAc,CAAEV,MAAO,gBACvBW,GAAc,CAAEX,MAAO,gBACvBY,GAAc,CAAEZ,MAAO,cACvBa,GAAc,CAAEb,MAAO,gBACvBc,GAAc,CAAEd,MAAO,cACvBe,GAAc,CAAEf,MAAO,gBACvBgB,GAAc,CAAEhB,MAAO,cACvBiB,GAAc,CAAEjB,MAAO,gBACvBkB,GAAc,CAAElB,MAAO,cACvBmB,GAAc,CAAEnB,MAAO,gBACvBoB,GAAc,CAAEpB,MAAO,cACvBqB,GAAc,CAAErB,MAAO,gBACvBsB,GAAc,CAAEtB,MAAO,cACvBuB,GAAc,CAAEvB,MAAO,gBACvBwB,GAA4BoJ,IAAa,KAAmBlC,EAAAA,EAAAA,GAAoB,MAAO,CAAEv7B,GAAI,UAAY,MAAO,KAmCtH,QAA4Bm1B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,eACRrjB,MAAO,CACLwjD,KAAM,KACNjgC,OAAQ,MAEVI,MAAMC,GAER,MAAM5jB,EAAQ4jB,EAONE,GAAQC,EAAAA,GAAAA,KACRuH,GAAQC,EAAAA,EAAAA,MACRvH,GAASC,EAAAA,EAAAA,OAET,KAAEu/B,EAAI,OAAEjgC,IAAWW,EAAAA,EAAAA,IAAOlkB,GAC1ByjD,EAAwB,CAC5B,YACA,WACA,WACA,gBAEIC,GAAoCt/B,EAAAA,EAAAA,KACxC,IAAMN,EAAMU,QAAQqD,EAAAA,GAAAA,QAAAA,iBAEhB87B,GAAuCv/B,EAAAA,EAAAA,KAC3C,IAAMN,EAAMU,QAAQqD,EAAAA,GAAAA,QAAAA,uBAEhB+7B,GAAuCx/B,EAAAA,EAAAA,KAC3C,IAAMN,EAAMU,QAAQC,EAAAA,GAAAA,QAAAA,YAEtB,IAAI+9B,EAA0BqB,EAAiBv4B,EAAMk3B,OACrD,MAAMsB,GAAqCh+B,EAAAA,EAAAA,IAAI,MAM/C,SAASi+B,EAAat8B,GACpB3D,EAAM8D,SACJC,EAAAA,GAAAA,QAAAA,kBACA27B,EAAKx0E,MAAM83C,eAAiBk9B,EAAoBv8B,GAAWA,EAE/D,CACA,SAASw8B,EAAeC,EAAoBC,GAC1C,MAAMvB,EAA0BxzE,OAAO6X,OAAO,CAAC,EAAGqkC,EAAMk3B,OACxDI,EAASsB,GAAcC,EACJ,aAAfD,IACFtB,EAAS,QAAU,KAErBJ,EAAQqB,EAAiBjB,GACzB5+B,EAAOjrC,KAAK,CAAEmzB,KAAM,YAAas2C,SACnC,CAEA,SAASqB,EAAiBjB,GACxB,MAAMwB,GAAeC,EAAAA,GAAAA,IACnBzB,EACAa,EACAa,GAAAA,GAAAA,SACA,CACEC,YAAaD,GAAAA,GAAAA,QAYjB,OATAl1E,OAAOiC,KAAKuxE,GACT3xE,QAAQiD,GAAMswE,GAAAA,GAAAA,SAA6BtwE,KAC3CxD,KAAKwD,IACuB,kBAAhB0uE,EAAS1uE,KAGlBkwE,EAAalwE,GAAK0uE,EAAS1uE,G,IAG1BkwE,CACT,CAEA,SAASJ,EAAoBv8B,GAC3B,MAAMg9B,EAAqC,IACtCh9B,GAOL,OALAr4C,OAAOmjC,QAAQkyC,GAAkB/zE,KAAK4c,IAChCA,EAAM,GAAG4J,MAAM,mBAAqB5J,EAAM,KAC5Cm3D,EAAiBn3D,EAAM,KAAMy5B,EAAAA,EAAAA,KAAiBz5B,EAAM,GAAI,KAAM,M,IAG3Dm3D,CACT,CAEA,SAASC,EAAQ58B,GACfg8B,EAAe90E,MAAQ84C,CACzB,CAUF,OAjEE0D,EAAAA,EAAAA,KAAc,KACZu4B,EAAavB,EAAM,KAwDrBn6B,EAAAA,EAAAA,KACE,IAAMiD,EAAMk3B,QACZh6C,UACEg6C,EAAQqB,EAAiBjB,GACzBmB,EAAavB,EAAM,IAIlB,CAACh6B,EAAUC,KAChB,MAAMkE,GAAwBhE,EAAAA,EAAAA,IAAkB,cAC1CiE,GAAyBjE,EAAAA,EAAAA,IAAkB,eAC3CoG,GAAsBpG,EAAAA,EAAAA,IAAkB,YAE9C,OAAQI,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOrI,GAAY,EAC3D6I,EAAAA,EAAAA,GAAoB,MAAO,CACzB1I,OAAOmI,EAAAA,EAAAA,IAAgB,CAAC,MAAO,CAAE,cAA2C,KAA5BC,EAAAA,EAAAA,IAAOw6B,GAAU/qE,WAChE,EACD6wC,EAAAA,EAAAA,GAAoB,MAAO5I,GAAY,EACrC4I,EAAAA,EAAAA,GAAoB,OAAQ3I,IAAYyI,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,gBAAgB/wC,eAAiB,KAAM,GAC1E,QAA7B0wC,EAAAA,EAAAA,IAAOy6B,GAAYgB,QACf57B,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,OAAQjI,IAAYuI,EAAAA,EAAAA,KAAiBJ,EAAAA,EAAAA,IAAOy6B,GAAYgB,OAAS,KAAMr7B,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,oBAAoBL,EAAAA,EAAAA,IAAOy6B,GAAYgB,QAAS,KACnL76B,EAAAA,EAAAA,IAAoB,IAAI,MAE9BX,EAAAA,EAAAA,IAAay7B,EAAAA,EAAe,CAC1B9zD,MAAMo4B,EAAAA,EAAAA,IAAO27B,GAAAA,IACbC,SAAUrB,EACVjB,OAAOt5B,EAAAA,EAAAA,IAAOs5B,GACdlhD,QAAS,WACTyjD,eAAgBd,GACf,KAAM,EAAG,CAAC,OAAQ,WACpB/6B,EAAAA,EAAAA,IAAOw6B,GAAU/qE,OAAS,IACtBowC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOhI,GAAY,EACpDmI,EAAAA,EAAAA,IAAa67B,EAAAA,EAAY,CACvBlkC,MAAO,iBACP6iC,YAAYz6B,EAAAA,EAAAA,IAAOy6B,GACnBz3C,KAAM,YACNs2C,OAAOt5B,EAAAA,EAAAA,IAAOs5B,IACb,KAAM,EAAG,CAAC,aAAc,WAC3Bh5B,EAAAA,EAAAA,GAAoB,QAAS,KAAM,EACjCA,EAAAA,EAAAA,GAAoB,QAAS,CAC3B1I,OAAOmI,EAAAA,EAAAA,IAAgB,CAAEg8B,QAAS,QAAS/7B,EAAAA,EAAAA,IAAO06B,MACjD,EACDp6B,EAAAA,EAAAA,GAAoB,KAAM,KAAM,CAC9BvI,IACAuI,EAAAA,EAAAA,GAAoB,KAAM,MAAMF,EAAAA,EAAAA,KAAiB1T,EAAAA,EAAAA,IAAW4S,EAAKe,GAAG,mBAAoB,KAAM,IAC9FC,EAAAA,EAAAA,GAAoB,KAAM,MAAMF,EAAAA,EAAAA,KAAiB1T,EAAAA,EAAAA,IAAW4S,EAAKe,GAAG,mBAAoB,IACxFC,EAAAA,EAAAA,GAAoB,KAAM,MAAMF,EAAAA,EAAAA,KAAiB1T,EAAAA,EAAAA,IAAW4S,EAAKe,GAAG,uBAAwB,IAC5FC,EAAAA,EAAAA,GAAoB,KAAM,MAAMF,EAAAA,EAAAA,KAAiB1T,EAAAA,EAAAA,IAAW4S,EAAKe,GAAG,uBAAwB,IAC5FC,EAAAA,EAAAA,GAAoB,KAAM,MAAMF,EAAAA,EAAAA,KAAiB1T,EAAAA,EAAAA,IAAW4S,EAAKe,GAAG,wBAAyB,IAC7FC,EAAAA,EAAAA,GAAoB,KAAM,MAAMF,EAAAA,EAAAA,KAAiB1T,EAAAA,EAAAA,IAAW4S,EAAKe,GAAG,wBAAyB,IAC7FC,EAAAA,EAAAA,GAAoB,KAAM,MAAMF,EAAAA,EAAAA,KAAiB1T,EAAAA,EAAAA,IAAW4S,EAAKe,GAAG,qBAAsB,IAC1FC,EAAAA,EAAAA,GAAoB,KAAM,MAAMF,EAAAA,EAAAA,KAAiB1T,EAAAA,EAAAA,IAAW4S,EAAKe,GAAG,sBAAuB,MAE5F,IACHC,EAAAA,EAAAA,GAAoB,QAAS,KAAM,GAChCT,EAAAA,EAAAA,KAAW,IAAOC,EAAAA,EAAAA,IAAoBmB,EAAAA,GAAW,MAAMC,EAAAA,EAAAA,KAAYlB,EAAAA,EAAAA,IAAOw6B,IAAYhgC,KAC7EqF,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,KAAM,CAC9Cn4C,IAAK6yC,EAAQz1B,IACZ,EACDu7B,EAAAA,EAAAA,GAAoB,KAAMtI,GAAY,EACpCsI,EAAAA,EAAAA,GAAoB,OAAQrI,IAAYmI,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,iBAAkB,IAAK,IACvFL,EAAAA,EAAAA,IAAO3F,GAAQ5qC,OAAS,IACpBowC,EAAAA,EAAAA,OAAciC,EAAAA,EAAAA,IAAa2B,EAAuB,CACjD97C,IAAK,EACLs0C,OACR+D,EAAAA,EAAAA,IAAO3F,GAAQzwB,MAAM3L,GAAMA,EAAE8G,KAAOy1B,EAAQY,WACzCgG,gBAEK,eAAepB,EAAAA,EAAAA,IAAOg8B,EAAAA,GAAPh8B,CAAsBxF,GAASwF,EAAAA,EAAAA,IAAO3F,IACrDthB,OAAOinB,EAAAA,EAAAA,IAAOi8B,EAAAA,GAAPj8B,CAAsBxF,GAASwF,EAAAA,EAAAA,IAAO3F,KAC5C,KAAM,EAAG,CAAC,QAAS,cAAe,YACrCuG,EAAAA,EAAAA,IAAoB,IAAI,MAE9BN,EAAAA,EAAAA,GAAoB,KAAM,CACxB1I,MAAO,gBACPskC,YAAcl7B,GAAiBw6B,EAAQhhC,EAAQz1B,IAC/Cy/C,aAAcjlB,EAAO,KAAOA,EAAO,GAAMyB,GAAiBw6B,EAAQ,QACjE,EACDl7B,EAAAA,EAAAA,GAAoB,OAAQnI,IAAaiI,EAAAA,EAAAA,KAAiB1T,EAAAA,EAAAA,IAAW4S,EAAKe,GAAG,mBAAoB,KAAM,IACvGJ,EAAAA,EAAAA,IAAayD,EAAwB,CACnC9L,MAAO,WACP5b,GAAI,CAAE7sB,KAAM,UAAW05B,OAAQ,CAAE+V,UAAWpE,EAAQz1B,MACnD,CACDxW,SAAS2xC,EAAAA,EAAAA,KAAS,IAAM,CACrB1F,EAAQqC,WACJgD,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,IAAK1H,MACxCwI,EAAAA,EAAAA,IAAoB,IAAI,IAC5BN,EAAAA,EAAAA,GAAoB,OAAQjI,IAAa+H,EAAAA,EAAAA,IAAiB5F,EAAQyB,OAAQ,MAE5E1zC,EAAG,GACF,KAAM,CAAC,OACTiyC,EAAQqC,UAAY+9B,EAAe90E,QAAU00C,EAAQz1B,KACjD86B,EAAAA,EAAAA,OAAciC,EAAAA,EAAAA,IAAaq6B,EAAAA,EAAW,CACrCx0E,IAAK,EACL6yC,QAASA,EACT,iBAAiB,GAChB,KAAM,EAAG,CAAC,cACboG,EAAAA,EAAAA,IAAoB,IAAI,IAC3B,GAAI1I,KACPoI,EAAAA,EAAAA,GAAoB,KAAMhI,GAAa,EACrCgI,EAAAA,EAAAA,GAAoB,OAAQ/H,IAAa6H,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,kBAAmB,IACrFF,EAAAA,EAAAA,IAAiB,KAAMC,EAAAA,EAAAA,KAAiBJ,EAAAA,EAAAA,IAAOo8B,GAAAA,GAAPp8B,CAC1CxF,EAAQiD,cACRuC,EAAAA,EAAAA,IAAOs6B,GAAM58B,UACbsC,EAAAA,EAAAA,IAAOs6B,GAAM1b,cACX,MAEFte,EAAAA,EAAAA,GAAoB,KAAM9H,GAAa,EACrC8H,EAAAA,EAAAA,GAAoB,OAAQ7H,IAAa2H,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,sBAAuB,IACzFJ,EAAAA,EAAAA,IAAa4F,EAAqB,CAChC/H,SAAUtD,EAAQsD,SAClBmI,SAAU,KACVvB,kBAAkB1E,EAAAA,EAAAA,IAAOs6B,GAAM18B,gBAC9B,KAAM,EAAG,CAAC,WAAY,wBAE3B0C,EAAAA,EAAAA,GAAoB,KAAM5H,GAAa,EACrC4H,EAAAA,EAAAA,GAAoB,OAAQ3H,IAAayH,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,sBAAuB,IACzFF,EAAAA,EAAAA,IAAiB,KAAMC,EAAAA,EAAAA,IAAiB5F,EAAQsL,QAAS,MAE3DxF,EAAAA,EAAAA,GAAoB,KAAM1H,GAAa,EACrC0H,EAAAA,EAAAA,GAAoB,OAAQzH,IAAauH,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,uBAAwB,IAC1FJ,EAAAA,EAAAA,IAAa4F,EAAqB,CAChC/H,SAAUtD,EAAQqkB,UAClB5Y,SAAU,KACVG,OAAO,EACP1B,kBAAkB1E,EAAAA,EAAAA,IAAOs6B,GAAM18B,gBAC9B,KAAM,EAAG,CAAC,WAAY,wBAE3B0C,EAAAA,EAAAA,GAAoB,KAAMxH,GAAa,EACrCwH,EAAAA,EAAAA,GAAoB,OAAQvH,IAAaqH,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,uBAAwB,IAC1FJ,EAAAA,EAAAA,IAAa4F,EAAqB,CAChC/H,SAAUtD,EAAQukB,UAClB9Y,SAAU,KACVG,OAAO,EACP1B,kBAAkB1E,EAAAA,EAAAA,IAAOs6B,GAAM18B,gBAC9B,KAAM,EAAG,CAAC,WAAY,wBAE3B0C,EAAAA,EAAAA,GAAoB,KAAMtH,GAAa,EACrCsH,EAAAA,EAAAA,GAAoB,OAAQrH,IAAamH,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,oBAAqB,GACnE,OAAnB7F,EAAQyD,SACJ4B,EAAAA,EAAAA,OAAciC,EAAAA,EAAAA,IAAa+D,EAAqB,CAC/Cl+C,IAAK,EACLm2C,SAAUtD,EAAQyD,OAClBgI,SAAU,IACVvB,kBAAkB1E,EAAAA,EAAAA,IAAOs6B,GAAM18B,gBAC9B,KAAM,EAAG,CAAC,WAAY,uBACzBgD,EAAAA,EAAAA,IAAoB,IAAI,MAE9BN,EAAAA,EAAAA,GAAoB,KAAMpH,GAAa,EACrCoH,EAAAA,EAAAA,GAAoB,OAAQnH,IAAaiH,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,qBAAsB,GACnE,OAApB7F,EAAQ0D,UACJ2B,EAAAA,EAAAA,OAAciC,EAAAA,EAAAA,IAAa+D,EAAqB,CAC/Cl+C,IAAK,EACLm2C,SAAUtD,EAAQ0D,QAClB+H,SAAU,IACVvB,kBAAkB1E,EAAAA,EAAAA,IAAOs6B,GAAM18B,gBAC9B,KAAM,EAAG,CAAC,WAAY,uBACzBgD,EAAAA,EAAAA,IAAoB,IAAI,UAG9B,WAGRX,EAAAA,EAAAA,IAAa67B,EAAAA,EAAY,CACvBrB,YAAYz6B,EAAAA,EAAAA,IAAOy6B,GACnBz3C,KAAM,YACNs2C,OAAOt5B,EAAAA,EAAAA,IAAOs5B,IACb,KAAM,EAAG,CAAC,aAAc,cAE7B14B,EAAAA,EAAAA,IAAoB,IAAI,IAC3B,GAC0B,KAA5BZ,EAAAA,EAAAA,IAAOw6B,GAAU/qE,SACbowC,EAAAA,EAAAA,OAAciC,EAAAA,EAAAA,IAAau6B,EAAAA,EAAY,CAAE10E,IAAK,MAC/Ci5C,EAAAA,EAAAA,IAAoB,IAAI,GAC5BxH,IACA,CAEJ,IClVA,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,YAAY,qBAEvE,UCLA,MACM3B,GAAa,CACjB9vC,IAAK,EACLod,GAAI,WACJ6yB,MAAO,QAEHF,GAAa,CAAEE,MAAO,gCACtBD,GAAa,CAAEC,MAAO,mBACtBC,GAAa,CAAED,MAAO,kBAc5B,QAA4BsC,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,eACRM,MAAMC,GAEN,MAAM,EAAE18B,IAAM28B,EAAAA,EAAAA,MACRC,GAAQC,EAAAA,GAAAA,KAERT,GAA0Cc,EAAAA,EAAAA,KAC9C,IAAMN,EAAMU,QAAQ2G,EAAAA,GAAAA,QAAAA,qBAEhB5H,GAAgCa,EAAAA,EAAAA,KACpC,IAAMN,EAAMU,QAAQ0G,EAAAA,GAAAA,QAAAA,UAEhB/G,GAAoDC,EAAAA,EAAAA,KAAS,KACjEC,EAAAA,EAAAA,IAAgBd,EAAOv0C,MAAOkY,KAE1Bs+D,GAAgB1/B,EAAAA,EAAAA,KAAI,GAE1B,SAAS2/B,IACPD,EAAcx2E,OAASw2E,EAAcx2E,KACvC,CAEF,MAAO,CAACw5C,EAAUC,KACRS,EAAAA,EAAAA,IAAO5F,GAAUoiC,WACpB38B,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOrI,GAAY,EACpD6I,EAAAA,EAAAA,GAAoB,MAAO5I,GAAY,EACrC4I,EAAAA,EAAAA,GAAoB,MAAO,CACzB1I,OAAOmI,EAAAA,EAAAA,IAAgB,CAAC,oBAAqB,CAAE/sB,OAAQspD,EAAcx2E,UACpE,EACDm6C,EAAAA,EAAAA,IAAaw8B,EAAiB,CAC5BpiC,QAAQ2F,EAAAA,EAAAA,IAAO/E,GACfb,UAAU4F,EAAAA,EAAAA,IAAO5F,GACjBo/B,SAAU+C,GACT,KAAM,EAAG,CAAC,SAAU,cACtB,IACHj8B,EAAAA,EAAAA,GAAoB,MAAO3I,GAAY,EACrC2I,EAAAA,EAAAA,GAAoB,MAAO,CAAEK,QAAS47B,GAAiB,EACrDj8B,EAAAA,EAAAA,GAAoB,IAAK,CACvB1I,OAAOmI,EAAAA,EAAAA,IAAgB,gBAAeu8B,EAAcx2E,MAAQ,OAAS,OACrE,cAAe,QACd,KAAM,IACTw6C,EAAAA,EAAAA,GAAoB,OAAQ,MAAMF,EAAAA,EAAAA,IAAiBd,EAAKe,GAAG,YAAYi8B,EAAcx2E,MAAQ,UAAY,mBAAoB,QAGjIw6C,EAAAA,EAAAA,GAAoB,MAAOzI,GAAY,EACrCoI,EAAAA,EAAAA,IAAay8B,GAAc,CACzBpC,MAAMt6B,EAAAA,EAAAA,IAAO5F,GACbC,QAAQ2F,EAAAA,EAAAA,IAAO/E,IACd,KAAM,EAAG,CAAC,OAAQ,mBAI3B2F,EAAAA,EAAAA,IAAoB,IAAI,EAE9B,ICzEA,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,YAAY,qBAEvE,S,4GCRA,IAAI+7B,EACF,mEACEC,EAAiB,CAACC,EAAUC,EAAc,KACrC,CAACC,EAAOD,KACb,IAAI/3D,EAAK,GACL1S,EAAI0qE,EACR,MAAO1qE,IACL0S,GAAM83D,EAAU91D,KAAKi2D,SAAWH,EAASptE,OAAU,GAErD,OAAOsV,GAGPiW,EAAS,CAAC+hD,EAAO,MACnB,IAAIh4D,EAAK,GACL1S,EAAI0qE,EACR,MAAO1qE,IACL0S,GAAM43D,EAA6B,GAAhB51D,KAAKi2D,SAAiB,GAE3C,OAAOj4D,GAETvb,EAAOC,QAAU,CAAEuxB,SAAQ4hD,iB","sources":["webpack://fittrackee_client/./node_modules/deepmerge/dist/cjs.js","webpack://fittrackee_client/./node_modules/domelementtype/lib/index.js","webpack://fittrackee_client/./node_modules/escape-string-regexp/index.js","webpack://fittrackee_client/./node_modules/htmlparser2/lib/Parser.js","webpack://fittrackee_client/./node_modules/htmlparser2/lib/Tokenizer.js","webpack://fittrackee_client/./node_modules/htmlparser2/lib/index.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/dom-serializer/lib/foreignNames.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/dom-serializer/lib/index.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/domhandler/lib/index.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/domhandler/lib/node.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/domutils/lib/feeds.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/domutils/lib/helpers.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/domutils/lib/index.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/domutils/lib/legacy.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/domutils/lib/manipulation.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/domutils/lib/querying.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/domutils/lib/stringify.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/domutils/lib/traversal.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/entities/lib/decode.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/entities/lib/decode_codepoint.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/entities/lib/encode.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/entities/lib/escape.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/entities/lib/generated/decode-data-html.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/entities/lib/generated/decode-data-xml.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/entities/lib/generated/encode-html.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/entities/lib/index.js","webpack://fittrackee_client/./node_modules/is-plain-object/dist/is-plain-object.js","webpack://fittrackee_client/./node_modules/parse-srcset/src/parse-srcset.js","webpack://fittrackee_client/./node_modules/picocolors/picocolors.browser.js","webpack://fittrackee_client/./node_modules/postcss/lib/at-rule.js","webpack://fittrackee_client/./node_modules/postcss/lib/comment.js","webpack://fittrackee_client/./node_modules/postcss/lib/container.js","webpack://fittrackee_client/./node_modules/postcss/lib/css-syntax-error.js","webpack://fittrackee_client/./node_modules/postcss/lib/declaration.js","webpack://fittrackee_client/./node_modules/postcss/lib/document.js","webpack://fittrackee_client/./node_modules/postcss/lib/fromJSON.js","webpack://fittrackee_client/./node_modules/postcss/lib/input.js","webpack://fittrackee_client/./node_modules/postcss/lib/lazy-result.js","webpack://fittrackee_client/./node_modules/postcss/lib/list.js","webpack://fittrackee_client/./node_modules/postcss/lib/map-generator.js","webpack://fittrackee_client/./node_modules/postcss/lib/no-work-result.js","webpack://fittrackee_client/./node_modules/postcss/lib/node.js","webpack://fittrackee_client/./node_modules/postcss/lib/parse.js","webpack://fittrackee_client/./node_modules/postcss/lib/parser.js","webpack://fittrackee_client/./node_modules/postcss/lib/postcss.js","webpack://fittrackee_client/./node_modules/postcss/lib/previous-map.js","webpack://fittrackee_client/./node_modules/postcss/lib/processor.js","webpack://fittrackee_client/./node_modules/postcss/lib/result.js","webpack://fittrackee_client/./node_modules/postcss/lib/root.js","webpack://fittrackee_client/./node_modules/postcss/lib/rule.js","webpack://fittrackee_client/./node_modules/postcss/lib/stringifier.js","webpack://fittrackee_client/./node_modules/postcss/lib/stringify.js","webpack://fittrackee_client/./node_modules/postcss/lib/symbols.js","webpack://fittrackee_client/./node_modules/postcss/lib/tokenize.js","webpack://fittrackee_client/./node_modules/postcss/lib/warn-once.js","webpack://fittrackee_client/./node_modules/postcss/lib/warning.js","webpack://fittrackee_client/./node_modules/sanitize-html/index.js","webpack://fittrackee_client/./src/components/Workout/WorkoutEdition.vue?1df7","webpack://fittrackee_client/./src/components/Workout/WorkoutEdition.vue","webpack://fittrackee_client/./src/views/workouts/AddWorkout.vue?212d","webpack://fittrackee_client/./src/views/workouts/AddWorkout.vue","webpack://fittrackee_client/./src/views/workouts/EditWorkout.vue?ba9e","webpack://fittrackee_client/./src/views/workouts/EditWorkout.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutCardTitle.vue?4e0b","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutCardTitle.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutRecord.vue?0a89","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutRecord.vue","webpack://fittrackee_client/./src/utils/weather.ts","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WeatherWind.vue?bd35","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WeatherWind.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutWeather.vue?84e1","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutWeather.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutData.vue?ef29","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutData.vue","webpack://fittrackee_client/./node_modules/@tmcw/togeojson/dist/togeojson.es.mjs","webpack://fittrackee_client/./node_modules/@vue-leaflet/vue-leaflet/dist/vue-leaflet.esm.js","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutMap/CustomMarker.vue?3193","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutMap/CustomMarker.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutMap/index.vue?a62d","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutMap/index.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/index.vue?8ebb","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/index.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutChart/legend.ts","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutChart/index.vue?65aa","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutChart/index.vue","webpack://fittrackee_client/./node_modules/linkifyjs/dist/linkify.es.js","webpack://fittrackee_client/./node_modules/linkify-html/dist/linkify-html.es.js","webpack://fittrackee_client/./src/utils/inputs.ts","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutNotes.vue?a827","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutNotes.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutSegments.vue?037e","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutSegments.vue","webpack://fittrackee_client/./src/views/workouts/Workout.vue?3305","webpack://fittrackee_client/./src/views/workouts/Workout.vue","webpack://fittrackee_client/./src/components/Workouts/WorkoutsFilters.vue?c3bc","webpack://fittrackee_client/./src/components/Workouts/WorkoutsFilters.vue","webpack://fittrackee_client/./src/components/Workouts/WorkoutsList.vue?72e6","webpack://fittrackee_client/./src/components/Workouts/WorkoutsList.vue","webpack://fittrackee_client/./src/views/workouts/WorkoutsView.vue?ee31","webpack://fittrackee_client/./src/views/workouts/WorkoutsView.vue","webpack://fittrackee_client/./node_modules/nanoid/non-secure/index.cjs"],"sourcesContent":["'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for `.\n this.sequenceIndex = Number(c === CharCodes.Lt);\n }\n };\n Tokenizer.prototype.stateCDATASequence = function (c) {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n }\n else {\n this.sequenceIndex = 0;\n this.state = State.InDeclaration;\n this.stateInDeclaration(c); // Reconsume the character\n }\n };\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n Tokenizer.prototype.fastForwardTo = function (c) {\n while (++this.index < this.buffer.length + this.offset) {\n if (this.buffer.charCodeAt(this.index - this.offset) === c) {\n return true;\n }\n }\n /*\n * We increment the index at the end of the `parse` loop,\n * so set it to `buffer.length - 1` here.\n *\n * TODO: Refactor `parse` to increment index before calling states.\n */\n this.index = this.buffer.length + this.offset - 1;\n return false;\n };\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n Tokenizer.prototype.stateInCommentLike = function (c) {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, this.index, 2);\n }\n else {\n this.cbs.oncomment(this.sectionStart, this.index, 2);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = State.Text;\n }\n }\n else if (this.sequenceIndex === 0) {\n // Fast-forward to the first character of the sequence\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n }\n else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n // Allow long sequences, eg. --->, ]]]>\n this.sequenceIndex = 0;\n }\n };\n /**\n * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n *\n * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n * We allow anything that wouldn't end the tag.\n */\n Tokenizer.prototype.isTagStartChar = function (c) {\n return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n };\n Tokenizer.prototype.startSpecial = function (sequence, offset) {\n this.isSpecial = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n this.state = State.SpecialStartSequence;\n };\n Tokenizer.prototype.stateBeforeTagName = function (c) {\n if (c === CharCodes.ExclamationMark) {\n this.state = State.BeforeDeclaration;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Questionmark) {\n this.state = State.InProcessingInstruction;\n this.sectionStart = this.index + 1;\n }\n else if (this.isTagStartChar(c)) {\n var lower = c | 0x20;\n this.sectionStart = this.index;\n if (!this.xmlMode && lower === Sequences.TitleEnd[2]) {\n this.startSpecial(Sequences.TitleEnd, 3);\n }\n else {\n this.state =\n !this.xmlMode && lower === Sequences.ScriptEnd[2]\n ? State.BeforeSpecialS\n : State.InTagName;\n }\n }\n else if (c === CharCodes.Slash) {\n this.state = State.BeforeClosingTagName;\n }\n else {\n this.state = State.Text;\n this.stateText(c);\n }\n };\n Tokenizer.prototype.stateInTagName = function (c) {\n if (isEndOfTagSection(c)) {\n this.cbs.onopentagname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateBeforeClosingTagName = function (c) {\n if (isWhitespace(c)) {\n // Ignore\n }\n else if (c === CharCodes.Gt) {\n this.state = State.Text;\n }\n else {\n this.state = this.isTagStartChar(c)\n ? State.InClosingTagName\n : State.InSpecialComment;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateInClosingTagName = function (c) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n this.cbs.onclosetag(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterClosingTagName;\n this.stateAfterClosingTagName(c);\n }\n };\n Tokenizer.prototype.stateAfterClosingTagName = function (c) {\n // Skip everything until \">\"\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeName = function (c) {\n if (c === CharCodes.Gt) {\n this.cbs.onopentagend(this.index);\n if (this.isSpecial) {\n this.state = State.InSpecialTag;\n this.sequenceIndex = 0;\n }\n else {\n this.state = State.Text;\n }\n this.baseState = this.state;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Slash) {\n this.state = State.InSelfClosingTag;\n }\n else if (!isWhitespace(c)) {\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateInSelfClosingTag = function (c) {\n if (c === CharCodes.Gt) {\n this.cbs.onselfclosingtag(this.index);\n this.state = State.Text;\n this.baseState = State.Text;\n this.sectionStart = this.index + 1;\n this.isSpecial = false; // Reset special state, in case of self-closing special tags\n }\n else if (!isWhitespace(c)) {\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateInAttributeName = function (c) {\n if (c === CharCodes.Eq || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterAttributeName;\n this.stateAfterAttributeName(c);\n }\n };\n Tokenizer.prototype.stateAfterAttributeName = function (c) {\n if (c === CharCodes.Eq) {\n this.state = State.BeforeAttributeValue;\n }\n else if (c === CharCodes.Slash || c === CharCodes.Gt) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (!isWhitespace(c)) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeValue = function (c) {\n if (c === CharCodes.DoubleQuote) {\n this.state = State.InAttributeValueDq;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.SingleQuote) {\n this.state = State.InAttributeValueSq;\n this.sectionStart = this.index + 1;\n }\n else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = State.InAttributeValueNq;\n this.stateInAttributeValueNoQuotes(c); // Reconsume token\n }\n };\n Tokenizer.prototype.handleInAttributeValue = function (c, quote) {\n if (c === quote ||\n (!this.decodeEntities && this.fastForwardTo(quote))) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(quote === CharCodes.DoubleQuote\n ? QuoteType.Double\n : QuoteType.Single, this.index);\n this.state = State.BeforeAttributeName;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateInAttributeValueDoubleQuotes = function (c) {\n this.handleInAttributeValue(c, CharCodes.DoubleQuote);\n };\n Tokenizer.prototype.stateInAttributeValueSingleQuotes = function (c) {\n this.handleInAttributeValue(c, CharCodes.SingleQuote);\n };\n Tokenizer.prototype.stateInAttributeValueNoQuotes = function (c) {\n if (isWhitespace(c) || c === CharCodes.Gt) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(QuoteType.Unquoted, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateBeforeDeclaration = function (c) {\n if (c === CharCodes.OpeningSquareBracket) {\n this.state = State.CDATASequence;\n this.sequenceIndex = 0;\n }\n else {\n this.state =\n c === CharCodes.Dash\n ? State.BeforeComment\n : State.InDeclaration;\n }\n };\n Tokenizer.prototype.stateInDeclaration = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.ondeclaration(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateInProcessingInstruction = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeComment = function (c) {\n if (c === CharCodes.Dash) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CommentEnd;\n // Allow short comments (eg. )\n this.sequenceIndex = 2;\n this.sectionStart = this.index + 1;\n }\n else {\n this.state = State.InDeclaration;\n }\n };\n Tokenizer.prototype.stateInSpecialComment = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.oncomment(this.sectionStart, this.index, 0);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeSpecialS = function (c) {\n var lower = c | 0x20;\n if (lower === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n }\n else if (lower === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n }\n else {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n };\n Tokenizer.prototype.stateBeforeEntity = function (c) {\n // Start excess with 1 to include the '&'\n this.entityExcess = 1;\n this.entityResult = 0;\n if (c === CharCodes.Num) {\n this.state = State.BeforeNumericEntity;\n }\n else if (c === CharCodes.Amp) {\n // We have two `&` characters in a row. Stay in the current state.\n }\n else {\n this.trieIndex = 0;\n this.trieCurrent = this.entityTrie[0];\n this.state = State.InNamedEntity;\n this.stateInNamedEntity(c);\n }\n };\n Tokenizer.prototype.stateInNamedEntity = function (c) {\n this.entityExcess += 1;\n this.trieIndex = (0, decode_js_1.determineBranch)(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c);\n if (this.trieIndex < 0) {\n this.emitNamedEntity();\n this.index--;\n return;\n }\n this.trieCurrent = this.entityTrie[this.trieIndex];\n var masked = this.trieCurrent & decode_js_1.BinTrieFlags.VALUE_LENGTH;\n // If the branch is a value, store it and continue\n if (masked) {\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (masked >> 14) - 1;\n // If we have a legacy entity while parsing strictly, just skip the number of bytes\n if (!this.allowLegacyEntity() && c !== CharCodes.Semi) {\n this.trieIndex += valueLength;\n }\n else {\n // Add 1 as we have already incremented the excess\n var entityStart = this.index - this.entityExcess + 1;\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n // If this is a surrogate pair, consume the next two bytes\n this.entityResult = this.trieIndex;\n this.trieIndex += valueLength;\n this.entityExcess = 0;\n this.sectionStart = this.index + 1;\n if (valueLength === 0) {\n this.emitNamedEntity();\n }\n }\n }\n };\n Tokenizer.prototype.emitNamedEntity = function () {\n this.state = this.baseState;\n if (this.entityResult === 0) {\n return;\n }\n var valueLength = (this.entityTrie[this.entityResult] & decode_js_1.BinTrieFlags.VALUE_LENGTH) >>\n 14;\n switch (valueLength) {\n case 1:\n this.emitCodePoint(this.entityTrie[this.entityResult] &\n ~decode_js_1.BinTrieFlags.VALUE_LENGTH);\n break;\n case 2:\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n break;\n case 3: {\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n this.emitCodePoint(this.entityTrie[this.entityResult + 2]);\n }\n }\n };\n Tokenizer.prototype.stateBeforeNumericEntity = function (c) {\n if ((c | 0x20) === CharCodes.LowerX) {\n this.entityExcess++;\n this.state = State.InHexEntity;\n }\n else {\n this.state = State.InNumericEntity;\n this.stateInNumericEntity(c);\n }\n };\n Tokenizer.prototype.emitNumericEntity = function (strict) {\n var entityStart = this.index - this.entityExcess - 1;\n var numberStart = entityStart + 2 + Number(this.state === State.InHexEntity);\n if (numberStart !== this.index) {\n // Emit leading data if any\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n this.sectionStart = this.index + Number(strict);\n this.emitCodePoint((0, decode_js_1.replaceCodePoint)(this.entityResult));\n }\n this.state = this.baseState;\n };\n Tokenizer.prototype.stateInNumericEntity = function (c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 10 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n };\n Tokenizer.prototype.stateInHexEntity = function (c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 16 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else if (isHexDigit(c)) {\n this.entityResult =\n this.entityResult * 16 + ((c | 0x20) - CharCodes.LowerA + 10);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n };\n Tokenizer.prototype.allowLegacyEntity = function () {\n return (!this.xmlMode &&\n (this.baseState === State.Text ||\n this.baseState === State.InSpecialTag));\n };\n /**\n * Remove data that has already been consumed from the buffer.\n */\n Tokenizer.prototype.cleanup = function () {\n // If we are inside of text or attributes, emit what we already have.\n if (this.running && this.sectionStart !== this.index) {\n if (this.state === State.Text ||\n (this.state === State.InSpecialTag && this.sequenceIndex === 0)) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n else if (this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueNq) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n };\n Tokenizer.prototype.shouldContinue = function () {\n return this.index < this.buffer.length + this.offset && this.running;\n };\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n Tokenizer.prototype.parse = function () {\n while (this.shouldContinue()) {\n var c = this.buffer.charCodeAt(this.index - this.offset);\n if (this.state === State.Text) {\n this.stateText(c);\n }\n else if (this.state === State.SpecialStartSequence) {\n this.stateSpecialStartSequence(c);\n }\n else if (this.state === State.InSpecialTag) {\n this.stateInSpecialTag(c);\n }\n else if (this.state === State.CDATASequence) {\n this.stateCDATASequence(c);\n }\n else if (this.state === State.InAttributeValueDq) {\n this.stateInAttributeValueDoubleQuotes(c);\n }\n else if (this.state === State.InAttributeName) {\n this.stateInAttributeName(c);\n }\n else if (this.state === State.InCommentLike) {\n this.stateInCommentLike(c);\n }\n else if (this.state === State.InSpecialComment) {\n this.stateInSpecialComment(c);\n }\n else if (this.state === State.BeforeAttributeName) {\n this.stateBeforeAttributeName(c);\n }\n else if (this.state === State.InTagName) {\n this.stateInTagName(c);\n }\n else if (this.state === State.InClosingTagName) {\n this.stateInClosingTagName(c);\n }\n else if (this.state === State.BeforeTagName) {\n this.stateBeforeTagName(c);\n }\n else if (this.state === State.AfterAttributeName) {\n this.stateAfterAttributeName(c);\n }\n else if (this.state === State.InAttributeValueSq) {\n this.stateInAttributeValueSingleQuotes(c);\n }\n else if (this.state === State.BeforeAttributeValue) {\n this.stateBeforeAttributeValue(c);\n }\n else if (this.state === State.BeforeClosingTagName) {\n this.stateBeforeClosingTagName(c);\n }\n else if (this.state === State.AfterClosingTagName) {\n this.stateAfterClosingTagName(c);\n }\n else if (this.state === State.BeforeSpecialS) {\n this.stateBeforeSpecialS(c);\n }\n else if (this.state === State.InAttributeValueNq) {\n this.stateInAttributeValueNoQuotes(c);\n }\n else if (this.state === State.InSelfClosingTag) {\n this.stateInSelfClosingTag(c);\n }\n else if (this.state === State.InDeclaration) {\n this.stateInDeclaration(c);\n }\n else if (this.state === State.BeforeDeclaration) {\n this.stateBeforeDeclaration(c);\n }\n else if (this.state === State.BeforeComment) {\n this.stateBeforeComment(c);\n }\n else if (this.state === State.InProcessingInstruction) {\n this.stateInProcessingInstruction(c);\n }\n else if (this.state === State.InNamedEntity) {\n this.stateInNamedEntity(c);\n }\n else if (this.state === State.BeforeEntity) {\n this.stateBeforeEntity(c);\n }\n else if (this.state === State.InHexEntity) {\n this.stateInHexEntity(c);\n }\n else if (this.state === State.InNumericEntity) {\n this.stateInNumericEntity(c);\n }\n else {\n // `this._state === State.BeforeNumericEntity`\n this.stateBeforeNumericEntity(c);\n }\n this.index++;\n }\n this.cleanup();\n };\n Tokenizer.prototype.finish = function () {\n if (this.state === State.InNamedEntity) {\n this.emitNamedEntity();\n }\n // If there is remaining data, emit it in a reasonable way\n if (this.sectionStart < this.index) {\n this.handleTrailingData();\n }\n this.cbs.onend();\n };\n /** Handle any trailing data. */\n Tokenizer.prototype.handleTrailingData = function () {\n var endIndex = this.buffer.length + this.offset;\n if (this.state === State.InCommentLike) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, endIndex, 0);\n }\n else {\n this.cbs.oncomment(this.sectionStart, endIndex, 0);\n }\n }\n else if (this.state === State.InNumericEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InHexEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InTagName ||\n this.state === State.BeforeAttributeName ||\n this.state === State.BeforeAttributeValue ||\n this.state === State.AfterAttributeName ||\n this.state === State.InAttributeName ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueNq ||\n this.state === State.InClosingTagName) {\n /*\n * If we are currently in an opening or closing tag, us not calling the\n * respective callback signals that the tag should be ignored.\n */\n }\n else {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n };\n Tokenizer.prototype.emitPartial = function (start, endIndex) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribdata(start, endIndex);\n }\n else {\n this.cbs.ontext(start, endIndex);\n }\n };\n Tokenizer.prototype.emitCodePoint = function (cp) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribentity(cp);\n }\n else {\n this.cbs.ontextentity(cp);\n }\n };\n return Tokenizer;\n}());\nexports.default = Tokenizer;\n//# sourceMappingURL=Tokenizer.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultHandler = exports.DomUtils = exports.parseFeed = exports.getFeed = exports.ElementType = exports.Tokenizer = exports.createDomStream = exports.parseDOM = exports.parseDocument = exports.DomHandler = exports.Parser = void 0;\nvar Parser_js_1 = require(\"./Parser.js\");\nObject.defineProperty(exports, \"Parser\", { enumerable: true, get: function () { return Parser_js_1.Parser; } });\nvar domhandler_1 = require(\"domhandler\");\nObject.defineProperty(exports, \"DomHandler\", { enumerable: true, get: function () { return domhandler_1.DomHandler; } });\nObject.defineProperty(exports, \"DefaultHandler\", { enumerable: true, get: function () { return domhandler_1.DomHandler; } });\n// Helper methods\n/**\n * Parses the data, returns the resulting document.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n */\nfunction parseDocument(data, options) {\n var handler = new domhandler_1.DomHandler(undefined, options);\n new Parser_js_1.Parser(handler, options).end(data);\n return handler.root;\n}\nexports.parseDocument = parseDocument;\n/**\n * Parses data, returns an array of the root nodes.\n *\n * Note that the root nodes still have a `Document` node as their parent.\n * Use `parseDocument` to get the `Document` node instead.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n * @deprecated Use `parseDocument` instead.\n */\nfunction parseDOM(data, options) {\n return parseDocument(data, options).children;\n}\nexports.parseDOM = parseDOM;\n/**\n * Creates a parser instance, with an attached DOM handler.\n *\n * @param cb A callback that will be called once parsing has been completed.\n * @param options Optional options for the parser and DOM builder.\n * @param elementCb An optional callback that will be called every time a tag has been completed inside of the DOM.\n */\nfunction createDomStream(cb, options, elementCb) {\n var handler = new domhandler_1.DomHandler(cb, options, elementCb);\n return new Parser_js_1.Parser(handler, options);\n}\nexports.createDomStream = createDomStream;\nvar Tokenizer_js_1 = require(\"./Tokenizer.js\");\nObject.defineProperty(exports, \"Tokenizer\", { enumerable: true, get: function () { return __importDefault(Tokenizer_js_1).default; } });\n/*\n * All of the following exports exist for backwards-compatibility.\n * They should probably be removed eventually.\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nexports.ElementType = ElementType;\nvar domutils_1 = require(\"domutils\");\nObject.defineProperty(exports, \"getFeed\", { enumerable: true, get: function () { return domutils_1.getFeed; } });\n/**\n * Parse a feed.\n *\n * @param feed The feed that should be parsed, as a string.\n * @param options Optionally, options for parsing. When using this, you should set `xmlMode` to `true`.\n */\nfunction parseFeed(feed, options) {\n if (options === void 0) { options = { xmlMode: true }; }\n return (0, domutils_1.getFeed)(parseDOM(feed, options));\n}\nexports.parseFeed = parseFeed;\nexports.DomUtils = __importStar(require(\"domutils\"));\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\n \"altGlyph\",\n \"altGlyphDef\",\n \"altGlyphItem\",\n \"animateColor\",\n \"animateMotion\",\n \"animateTransform\",\n \"clipPath\",\n \"feBlend\",\n \"feColorMatrix\",\n \"feComponentTransfer\",\n \"feComposite\",\n \"feConvolveMatrix\",\n \"feDiffuseLighting\",\n \"feDisplacementMap\",\n \"feDistantLight\",\n \"feDropShadow\",\n \"feFlood\",\n \"feFuncA\",\n \"feFuncB\",\n \"feFuncG\",\n \"feFuncR\",\n \"feGaussianBlur\",\n \"feImage\",\n \"feMerge\",\n \"feMergeNode\",\n \"feMorphology\",\n \"feOffset\",\n \"fePointLight\",\n \"feSpecularLighting\",\n \"feSpotLight\",\n \"feTile\",\n \"feTurbulence\",\n \"foreignObject\",\n \"glyphRef\",\n \"linearGradient\",\n \"radialGradient\",\n \"textPath\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\nexports.attributeNames = new Map([\n \"definitionURL\",\n \"attributeName\",\n \"attributeType\",\n \"baseFrequency\",\n \"baseProfile\",\n \"calcMode\",\n \"clipPathUnits\",\n \"diffuseConstant\",\n \"edgeMode\",\n \"filterUnits\",\n \"glyphRef\",\n \"gradientTransform\",\n \"gradientUnits\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keyPoints\",\n \"keySplines\",\n \"keyTimes\",\n \"lengthAdjust\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerUnits\",\n \"markerWidth\",\n \"maskContentUnits\",\n \"maskUnits\",\n \"numOctaves\",\n \"pathLength\",\n \"patternContentUnits\",\n \"patternTransform\",\n \"patternUnits\",\n \"pointsAtX\",\n \"pointsAtY\",\n \"pointsAtZ\",\n \"preserveAlpha\",\n \"preserveAspectRatio\",\n \"primitiveUnits\",\n \"refX\",\n \"refY\",\n \"repeatCount\",\n \"repeatDur\",\n \"requiredExtensions\",\n \"requiredFeatures\",\n \"specularConstant\",\n \"specularExponent\",\n \"spreadMethod\",\n \"startOffset\",\n \"stdDeviation\",\n \"stitchTiles\",\n \"surfaceScale\",\n \"systemLanguage\",\n \"tableValues\",\n \"targetX\",\n \"targetY\",\n \"textLength\",\n \"viewBox\",\n \"viewTarget\",\n \"xChannelSelector\",\n \"yChannelSelector\",\n \"zoomAndPan\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.render = void 0;\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_js_1 = require(\"./foreignNames.js\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\nfunction replaceQuotes(value) {\n return value.replace(/\"/g, \""\");\n}\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n var _a;\n if (!attributes)\n return;\n var encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false\n ? replaceQuotes\n : opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? entities_1.encodeXML\n : entities_1.escapeAttribute;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_js_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return \"\".concat(key, \"=\\\"\").concat(encode(value), \"\\\"\");\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.render = render;\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n // @ts-expect-error We don't use `Doctype` yet\n case ElementType.Doctype:\n case ElementType.Directive:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_js_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\".concat(elem.name);\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \".concat(attribs);\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"\");\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\".concat(elem.data, \">\");\n}\nfunction renderText(elem, opts) {\n var _a;\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data =\n opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? (0, entities_1.encodeXML)(data)\n : (0, entities_1.escapeText)(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"\");\n}\nfunction renderComment(elem) {\n return \"\");\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomHandler = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\nvar node_js_1 = require(\"./node.js\");\n__exportStar(require(\"./node.js\"), exports);\n// Default options\nvar defaultOpts = {\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\nvar DomHandler = /** @class */ (function () {\n /**\n * @param callback Called once parsing has completed.\n * @param options Settings for the handler.\n * @param elementCB Callback whenever a tag is closed.\n */\n function DomHandler(callback, options, elementCB) {\n /** The elements of the DOM */\n this.dom = [];\n /** The root element for the DOM */\n this.root = new node_js_1.Document(this.dom);\n /** Indicated whether parsing has been completed. */\n this.done = false;\n /** Stack of open tags. */\n this.tagStack = [this.root];\n /** A data node that is still being written to. */\n this.lastNode = null;\n /** Reference to the parser instance. Used for location information. */\n this.parser = null;\n // Make it possible to skip arguments, for backwards-compatibility\n if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOpts;\n }\n if (typeof callback === \"object\") {\n options = callback;\n callback = undefined;\n }\n this.callback = callback !== null && callback !== void 0 ? callback : null;\n this.options = options !== null && options !== void 0 ? options : defaultOpts;\n this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;\n }\n DomHandler.prototype.onparserinit = function (parser) {\n this.parser = parser;\n };\n // Resets the handler back to starting state\n DomHandler.prototype.onreset = function () {\n this.dom = [];\n this.root = new node_js_1.Document(this.dom);\n this.done = false;\n this.tagStack = [this.root];\n this.lastNode = null;\n this.parser = null;\n };\n // Signals the handler that parsing is done\n DomHandler.prototype.onend = function () {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n };\n DomHandler.prototype.onerror = function (error) {\n this.handleCallback(error);\n };\n DomHandler.prototype.onclosetag = function () {\n this.lastNode = null;\n var elem = this.tagStack.pop();\n if (this.options.withEndIndices) {\n elem.endIndex = this.parser.endIndex;\n }\n if (this.elementCB)\n this.elementCB(elem);\n };\n DomHandler.prototype.onopentag = function (name, attribs) {\n var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : undefined;\n var element = new node_js_1.Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n };\n DomHandler.prototype.ontext = function (data) {\n var lastNode = this.lastNode;\n if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) {\n lastNode.data += data;\n if (this.options.withEndIndices) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n var node = new node_js_1.Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n };\n DomHandler.prototype.oncomment = function (data) {\n if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n var node = new node_js_1.Comment(data);\n this.addNode(node);\n this.lastNode = node;\n };\n DomHandler.prototype.oncommentend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.oncdatastart = function () {\n var text = new node_js_1.Text(\"\");\n var node = new node_js_1.CDATA([text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n };\n DomHandler.prototype.oncdataend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.onprocessinginstruction = function (name, data) {\n var node = new node_js_1.ProcessingInstruction(name, data);\n this.addNode(node);\n };\n DomHandler.prototype.handleCallback = function (error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n };\n DomHandler.prototype.addNode = function (node) {\n var parent = this.tagStack[this.tagStack.length - 1];\n var previousSibling = parent.children[parent.children.length - 1];\n if (this.options.withStartIndices) {\n node.startIndex = this.parser.startIndex;\n }\n if (this.options.withEndIndices) {\n node.endIndex = this.parser.endIndex;\n }\n parent.children.push(node);\n if (previousSibling) {\n node.prev = previousSibling;\n previousSibling.next = node;\n }\n node.parent = parent;\n this.lastNode = null;\n };\n return DomHandler;\n}());\nexports.DomHandler = DomHandler;\nexports.default = DomHandler;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cloneNode = exports.hasChildren = exports.isDocument = exports.isDirective = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = exports.Element = exports.Document = exports.CDATA = exports.NodeWithChildren = exports.ProcessingInstruction = exports.Comment = exports.Text = exports.DataNode = exports.Node = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nvar Node = /** @class */ (function () {\n function Node() {\n /** Parent of the node */\n this.parent = null;\n /** Previous sibling */\n this.prev = null;\n /** Next sibling */\n this.next = null;\n /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n this.startIndex = null;\n /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n this.endIndex = null;\n }\n Object.defineProperty(Node.prototype, \"parentNode\", {\n // Read-write aliases for properties\n /**\n * Same as {@link parent}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.parent;\n },\n set: function (parent) {\n this.parent = parent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"previousSibling\", {\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.prev;\n },\n set: function (prev) {\n this.prev = prev;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"nextSibling\", {\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.next;\n },\n set: function (next) {\n this.next = next;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Clone this node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\n Node.prototype.cloneNode = function (recursive) {\n if (recursive === void 0) { recursive = false; }\n return cloneNode(this, recursive);\n };\n return Node;\n}());\nexports.Node = Node;\n/**\n * A node that contains some data.\n */\nvar DataNode = /** @class */ (function (_super) {\n __extends(DataNode, _super);\n /**\n * @param data The content of the data node\n */\n function DataNode(data) {\n var _this = _super.call(this) || this;\n _this.data = data;\n return _this;\n }\n Object.defineProperty(DataNode.prototype, \"nodeValue\", {\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.data;\n },\n set: function (data) {\n this.data = data;\n },\n enumerable: false,\n configurable: true\n });\n return DataNode;\n}(Node));\nexports.DataNode = DataNode;\n/**\n * Text within the document.\n */\nvar Text = /** @class */ (function (_super) {\n __extends(Text, _super);\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Text;\n return _this;\n }\n Object.defineProperty(Text.prototype, \"nodeType\", {\n get: function () {\n return 3;\n },\n enumerable: false,\n configurable: true\n });\n return Text;\n}(DataNode));\nexports.Text = Text;\n/**\n * Comments within the document.\n */\nvar Comment = /** @class */ (function (_super) {\n __extends(Comment, _super);\n function Comment() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Comment;\n return _this;\n }\n Object.defineProperty(Comment.prototype, \"nodeType\", {\n get: function () {\n return 8;\n },\n enumerable: false,\n configurable: true\n });\n return Comment;\n}(DataNode));\nexports.Comment = Comment;\n/**\n * Processing instructions, including doc types.\n */\nvar ProcessingInstruction = /** @class */ (function (_super) {\n __extends(ProcessingInstruction, _super);\n function ProcessingInstruction(name, data) {\n var _this = _super.call(this, data) || this;\n _this.name = name;\n _this.type = domelementtype_1.ElementType.Directive;\n return _this;\n }\n Object.defineProperty(ProcessingInstruction.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n return ProcessingInstruction;\n}(DataNode));\nexports.ProcessingInstruction = ProcessingInstruction;\n/**\n * A `Node` that can have children.\n */\nvar NodeWithChildren = /** @class */ (function (_super) {\n __extends(NodeWithChildren, _super);\n /**\n * @param children Children of the node. Only certain node types can have children.\n */\n function NodeWithChildren(children) {\n var _this = _super.call(this) || this;\n _this.children = children;\n return _this;\n }\n Object.defineProperty(NodeWithChildren.prototype, \"firstChild\", {\n // Aliases\n /** First child of the node. */\n get: function () {\n var _a;\n return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"lastChild\", {\n /** Last child of the node. */\n get: function () {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"childNodes\", {\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.children;\n },\n set: function (children) {\n this.children = children;\n },\n enumerable: false,\n configurable: true\n });\n return NodeWithChildren;\n}(Node));\nexports.NodeWithChildren = NodeWithChildren;\nvar CDATA = /** @class */ (function (_super) {\n __extends(CDATA, _super);\n function CDATA() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.CDATA;\n return _this;\n }\n Object.defineProperty(CDATA.prototype, \"nodeType\", {\n get: function () {\n return 4;\n },\n enumerable: false,\n configurable: true\n });\n return CDATA;\n}(NodeWithChildren));\nexports.CDATA = CDATA;\n/**\n * The root node of the document.\n */\nvar Document = /** @class */ (function (_super) {\n __extends(Document, _super);\n function Document() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Root;\n return _this;\n }\n Object.defineProperty(Document.prototype, \"nodeType\", {\n get: function () {\n return 9;\n },\n enumerable: false,\n configurable: true\n });\n return Document;\n}(NodeWithChildren));\nexports.Document = Document;\n/**\n * An element within the DOM.\n */\nvar Element = /** @class */ (function (_super) {\n __extends(Element, _super);\n /**\n * @param name Name of the tag, eg. `div`, `span`.\n * @param attribs Object mapping attribute names to attribute values.\n * @param children Children of the node.\n */\n function Element(name, attribs, children, type) {\n if (children === void 0) { children = []; }\n if (type === void 0) { type = name === \"script\"\n ? domelementtype_1.ElementType.Script\n : name === \"style\"\n ? domelementtype_1.ElementType.Style\n : domelementtype_1.ElementType.Tag; }\n var _this = _super.call(this, children) || this;\n _this.name = name;\n _this.attribs = attribs;\n _this.type = type;\n return _this;\n }\n Object.defineProperty(Element.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"tagName\", {\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.name;\n },\n set: function (name) {\n this.name = name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"attributes\", {\n get: function () {\n var _this = this;\n return Object.keys(this.attribs).map(function (name) {\n var _a, _b;\n return ({\n name: name,\n value: _this.attribs[name],\n namespace: (_a = _this[\"x-attribsNamespace\"]) === null || _a === void 0 ? void 0 : _a[name],\n prefix: (_b = _this[\"x-attribsPrefix\"]) === null || _b === void 0 ? void 0 : _b[name],\n });\n });\n },\n enumerable: false,\n configurable: true\n });\n return Element;\n}(NodeWithChildren));\nexports.Element = Element;\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nfunction isTag(node) {\n return (0, domelementtype_1.isTag)(node);\n}\nexports.isTag = isTag;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nfunction isCDATA(node) {\n return node.type === domelementtype_1.ElementType.CDATA;\n}\nexports.isCDATA = isCDATA;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nfunction isText(node) {\n return node.type === domelementtype_1.ElementType.Text;\n}\nexports.isText = isText;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nfunction isComment(node) {\n return node.type === domelementtype_1.ElementType.Comment;\n}\nexports.isComment = isComment;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDirective(node) {\n return node.type === domelementtype_1.ElementType.Directive;\n}\nexports.isDirective = isDirective;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDocument(node) {\n return node.type === domelementtype_1.ElementType.Root;\n}\nexports.isDocument = isDocument;\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nfunction hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\nexports.hasChildren = hasChildren;\n/**\n * Clone a node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nfunction cloneNode(node, recursive) {\n if (recursive === void 0) { recursive = false; }\n var result;\n if (isText(node)) {\n result = new Text(node.data);\n }\n else if (isComment(node)) {\n result = new Comment(node.data);\n }\n else if (isTag(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_1 = new Element(node.name, __assign({}, node.attribs), children);\n children.forEach(function (child) { return (child.parent = clone_1); });\n if (node.namespace != null) {\n clone_1.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone_1[\"x-attribsNamespace\"] = __assign({}, node[\"x-attribsNamespace\"]);\n }\n if (node[\"x-attribsPrefix\"]) {\n clone_1[\"x-attribsPrefix\"] = __assign({}, node[\"x-attribsPrefix\"]);\n }\n result = clone_1;\n }\n else if (isCDATA(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_2 = new CDATA(children);\n children.forEach(function (child) { return (child.parent = clone_2); });\n result = clone_2;\n }\n else if (isDocument(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_3 = new Document(children);\n children.forEach(function (child) { return (child.parent = clone_3); });\n if (node[\"x-mode\"]) {\n clone_3[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone_3;\n }\n else if (isDirective(node)) {\n var instruction = new ProcessingInstruction(node.name, node.data);\n if (node[\"x-name\"] != null) {\n instruction[\"x-name\"] = node[\"x-name\"];\n instruction[\"x-publicId\"] = node[\"x-publicId\"];\n instruction[\"x-systemId\"] = node[\"x-systemId\"];\n }\n result = instruction;\n }\n else {\n throw new Error(\"Not implemented yet: \".concat(node.type));\n }\n result.startIndex = node.startIndex;\n result.endIndex = node.endIndex;\n if (node.sourceCodeLocation != null) {\n result.sourceCodeLocation = node.sourceCodeLocation;\n }\n return result;\n}\nexports.cloneNode = cloneNode;\nfunction cloneChildren(childs) {\n var children = childs.map(function (child) { return cloneNode(child, true); });\n for (var i = 1; i < children.length; i++) {\n children[i].prev = children[i - 1];\n children[i - 1].next = children[i];\n }\n return children;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFeed = void 0;\nvar stringify_js_1 = require(\"./stringify.js\");\nvar legacy_js_1 = require(\"./legacy.js\");\n/**\n * Get the feed object from the root of a DOM tree.\n *\n * @category Feeds\n * @param doc - The DOM to to extract the feed from.\n * @returns The feed.\n */\nfunction getFeed(doc) {\n var feedRoot = getOneElement(isValidFeed, doc);\n return !feedRoot\n ? null\n : feedRoot.name === \"feed\"\n ? getAtomFeed(feedRoot)\n : getRssFeed(feedRoot);\n}\nexports.getFeed = getFeed;\n/**\n * Parse an Atom feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getAtomFeed(feedRoot) {\n var _a;\n var childs = feedRoot.children;\n var feed = {\n type: \"atom\",\n items: (0, legacy_js_1.getElementsByTagName)(\"entry\", childs).map(function (item) {\n var _a;\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"id\", children);\n addConditionally(entry, \"title\", \"title\", children);\n var href = (_a = getOneElement(\"link\", children)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n entry.link = href;\n }\n var description = fetch(\"summary\", children) || fetch(\"content\", children);\n if (description) {\n entry.description = description;\n }\n var pubDate = fetch(\"updated\", children);\n if (pubDate) {\n entry.pubDate = new Date(pubDate);\n }\n return entry;\n }),\n };\n addConditionally(feed, \"id\", \"id\", childs);\n addConditionally(feed, \"title\", \"title\", childs);\n var href = (_a = getOneElement(\"link\", childs)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n feed.link = href;\n }\n addConditionally(feed, \"description\", \"subtitle\", childs);\n var updated = fetch(\"updated\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"email\", childs, true);\n return feed;\n}\n/**\n * Parse a RSS feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getRssFeed(feedRoot) {\n var _a, _b;\n var childs = (_b = (_a = getOneElement(\"channel\", feedRoot.children)) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : [];\n var feed = {\n type: feedRoot.name.substr(0, 3),\n id: \"\",\n items: (0, legacy_js_1.getElementsByTagName)(\"item\", feedRoot.children).map(function (item) {\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"guid\", children);\n addConditionally(entry, \"title\", \"title\", children);\n addConditionally(entry, \"link\", \"link\", children);\n addConditionally(entry, \"description\", \"description\", children);\n var pubDate = fetch(\"pubDate\", children);\n if (pubDate)\n entry.pubDate = new Date(pubDate);\n return entry;\n }),\n };\n addConditionally(feed, \"title\", \"title\", childs);\n addConditionally(feed, \"link\", \"link\", childs);\n addConditionally(feed, \"description\", \"description\", childs);\n var updated = fetch(\"lastBuildDate\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"managingEditor\", childs, true);\n return feed;\n}\nvar MEDIA_KEYS_STRING = [\"url\", \"type\", \"lang\"];\nvar MEDIA_KEYS_INT = [\n \"fileSize\",\n \"bitrate\",\n \"framerate\",\n \"samplingrate\",\n \"channels\",\n \"duration\",\n \"height\",\n \"width\",\n];\n/**\n * Get all media elements of a feed item.\n *\n * @param where Nodes to search in.\n * @returns Media elements.\n */\nfunction getMediaElements(where) {\n return (0, legacy_js_1.getElementsByTagName)(\"media:content\", where).map(function (elem) {\n var attribs = elem.attribs;\n var media = {\n medium: attribs[\"medium\"],\n isDefault: !!attribs[\"isDefault\"],\n };\n for (var _i = 0, MEDIA_KEYS_STRING_1 = MEDIA_KEYS_STRING; _i < MEDIA_KEYS_STRING_1.length; _i++) {\n var attrib = MEDIA_KEYS_STRING_1[_i];\n if (attribs[attrib]) {\n media[attrib] = attribs[attrib];\n }\n }\n for (var _a = 0, MEDIA_KEYS_INT_1 = MEDIA_KEYS_INT; _a < MEDIA_KEYS_INT_1.length; _a++) {\n var attrib = MEDIA_KEYS_INT_1[_a];\n if (attribs[attrib]) {\n media[attrib] = parseInt(attribs[attrib], 10);\n }\n }\n if (attribs[\"expression\"]) {\n media.expression = attribs[\"expression\"];\n }\n return media;\n });\n}\n/**\n * Get one element by tag name.\n *\n * @param tagName Tag name to look for\n * @param node Node to search in\n * @returns The element or null\n */\nfunction getOneElement(tagName, node) {\n return (0, legacy_js_1.getElementsByTagName)(tagName, node, true, 1)[0];\n}\n/**\n * Get the text content of an element with a certain tag name.\n *\n * @param tagName Tag name to look for.\n * @param where Node to search in.\n * @param recurse Whether to recurse into child nodes.\n * @returns The text content of the element.\n */\nfunction fetch(tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n return (0, stringify_js_1.textContent)((0, legacy_js_1.getElementsByTagName)(tagName, where, recurse, 1)).trim();\n}\n/**\n * Adds a property to an object if it has a value.\n *\n * @param obj Object to be extended\n * @param prop Property name\n * @param tagName Tag name that contains the conditionally added property\n * @param where Element to search for the property\n * @param recurse Whether to recurse into child nodes.\n */\nfunction addConditionally(obj, prop, tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n var val = fetch(tagName, where, recurse);\n if (val)\n obj[prop] = val;\n}\n/**\n * Checks if an element is a feed root node.\n *\n * @param value The name of the element to check.\n * @returns Whether an element is a feed root node.\n */\nfunction isValidFeed(value) {\n return value === \"rss\" || value === \"feed\" || value === \"rdf:RDF\";\n}\n//# sourceMappingURL=feeds.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uniqueSort = exports.compareDocumentPosition = exports.DocumentPosition = exports.removeSubsets = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Given an array of nodes, remove any member that is contained by another.\n *\n * @category Helpers\n * @param nodes Nodes to filter.\n * @returns Remaining nodes that aren't subtrees of each other.\n */\nfunction removeSubsets(nodes) {\n var idx = nodes.length;\n /*\n * Check if each node (or one of its ancestors) is already contained in the\n * array.\n */\n while (--idx >= 0) {\n var node = nodes[idx];\n /*\n * Remove the node if it is not unique.\n * We are going through the array from the end, so we only\n * have to check nodes that preceed the node under consideration in the array.\n */\n if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) {\n nodes.splice(idx, 1);\n continue;\n }\n for (var ancestor = node.parent; ancestor; ancestor = ancestor.parent) {\n if (nodes.includes(ancestor)) {\n nodes.splice(idx, 1);\n break;\n }\n }\n }\n return nodes;\n}\nexports.removeSubsets = removeSubsets;\n/**\n * @category Helpers\n * @see {@link http://dom.spec.whatwg.org/#dom-node-comparedocumentposition}\n */\nvar DocumentPosition;\n(function (DocumentPosition) {\n DocumentPosition[DocumentPosition[\"DISCONNECTED\"] = 1] = \"DISCONNECTED\";\n DocumentPosition[DocumentPosition[\"PRECEDING\"] = 2] = \"PRECEDING\";\n DocumentPosition[DocumentPosition[\"FOLLOWING\"] = 4] = \"FOLLOWING\";\n DocumentPosition[DocumentPosition[\"CONTAINS\"] = 8] = \"CONTAINS\";\n DocumentPosition[DocumentPosition[\"CONTAINED_BY\"] = 16] = \"CONTAINED_BY\";\n})(DocumentPosition = exports.DocumentPosition || (exports.DocumentPosition = {}));\n/**\n * Compare the position of one node against another node in any other document.\n * The return value is a bitmask with the values from {@link DocumentPosition}.\n *\n * Document order:\n * > There is an ordering, document order, defined on all the nodes in the\n * > document corresponding to the order in which the first character of the\n * > XML representation of each node occurs in the XML representation of the\n * > document after expansion of general entities. Thus, the document element\n * > node will be the first node. Element nodes occur before their children.\n * > Thus, document order orders element nodes in order of the occurrence of\n * > their start-tag in the XML (after expansion of entities). The attribute\n * > nodes of an element occur after the element and before its children. The\n * > relative order of attribute nodes is implementation-dependent.\n *\n * Source:\n * http://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-document-order\n *\n * @category Helpers\n * @param nodeA The first node to use in the comparison\n * @param nodeB The second node to use in the comparison\n * @returns A bitmask describing the input nodes' relative position.\n *\n * See http://dom.spec.whatwg.org/#dom-node-comparedocumentposition for\n * a description of these values.\n */\nfunction compareDocumentPosition(nodeA, nodeB) {\n var aParents = [];\n var bParents = [];\n if (nodeA === nodeB) {\n return 0;\n }\n var current = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent;\n while (current) {\n aParents.unshift(current);\n current = current.parent;\n }\n current = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent;\n while (current) {\n bParents.unshift(current);\n current = current.parent;\n }\n var maxIdx = Math.min(aParents.length, bParents.length);\n var idx = 0;\n while (idx < maxIdx && aParents[idx] === bParents[idx]) {\n idx++;\n }\n if (idx === 0) {\n return DocumentPosition.DISCONNECTED;\n }\n var sharedParent = aParents[idx - 1];\n var siblings = sharedParent.children;\n var aSibling = aParents[idx];\n var bSibling = bParents[idx];\n if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {\n if (sharedParent === nodeB) {\n return DocumentPosition.FOLLOWING | DocumentPosition.CONTAINED_BY;\n }\n return DocumentPosition.FOLLOWING;\n }\n if (sharedParent === nodeA) {\n return DocumentPosition.PRECEDING | DocumentPosition.CONTAINS;\n }\n return DocumentPosition.PRECEDING;\n}\nexports.compareDocumentPosition = compareDocumentPosition;\n/**\n * Sort an array of nodes based on their relative position in the document and\n * remove any duplicate nodes. If the array contains nodes that do not belong to\n * the same document, sort order is unspecified.\n *\n * @category Helpers\n * @param nodes Array of DOM nodes.\n * @returns Collection of unique nodes, sorted in document order.\n */\nfunction uniqueSort(nodes) {\n nodes = nodes.filter(function (node, i, arr) { return !arr.includes(node, i + 1); });\n nodes.sort(function (a, b) {\n var relative = compareDocumentPosition(a, b);\n if (relative & DocumentPosition.PRECEDING) {\n return -1;\n }\n else if (relative & DocumentPosition.FOLLOWING) {\n return 1;\n }\n return 0;\n });\n return nodes;\n}\nexports.uniqueSort = uniqueSort;\n//# sourceMappingURL=helpers.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasChildren = exports.isDocument = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = void 0;\n__exportStar(require(\"./stringify.js\"), exports);\n__exportStar(require(\"./traversal.js\"), exports);\n__exportStar(require(\"./manipulation.js\"), exports);\n__exportStar(require(\"./querying.js\"), exports);\n__exportStar(require(\"./legacy.js\"), exports);\n__exportStar(require(\"./helpers.js\"), exports);\n__exportStar(require(\"./feeds.js\"), exports);\n/** @deprecated Use these methods from `domhandler` directly. */\nvar domhandler_1 = require(\"domhandler\");\nObject.defineProperty(exports, \"isTag\", { enumerable: true, get: function () { return domhandler_1.isTag; } });\nObject.defineProperty(exports, \"isCDATA\", { enumerable: true, get: function () { return domhandler_1.isCDATA; } });\nObject.defineProperty(exports, \"isText\", { enumerable: true, get: function () { return domhandler_1.isText; } });\nObject.defineProperty(exports, \"isComment\", { enumerable: true, get: function () { return domhandler_1.isComment; } });\nObject.defineProperty(exports, \"isDocument\", { enumerable: true, get: function () { return domhandler_1.isDocument; } });\nObject.defineProperty(exports, \"hasChildren\", { enumerable: true, get: function () { return domhandler_1.hasChildren; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getElementsByTagType = exports.getElementsByTagName = exports.getElementById = exports.getElements = exports.testElement = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar querying_js_1 = require(\"./querying.js\");\nvar Checks = {\n tag_name: function (name) {\n if (typeof name === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && name(elem.name); };\n }\n else if (name === \"*\") {\n return domhandler_1.isTag;\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.name === name; };\n },\n tag_type: function (type) {\n if (typeof type === \"function\") {\n return function (elem) { return type(elem.type); };\n }\n return function (elem) { return elem.type === type; };\n },\n tag_contains: function (data) {\n if (typeof data === \"function\") {\n return function (elem) { return (0, domhandler_1.isText)(elem) && data(elem.data); };\n }\n return function (elem) { return (0, domhandler_1.isText)(elem) && elem.data === data; };\n },\n};\n/**\n * @param attrib Attribute to check.\n * @param value Attribute value to look for.\n * @returns A function to check whether the a node has an attribute with a\n * particular value.\n */\nfunction getAttribCheck(attrib, value) {\n if (typeof value === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && value(elem.attribs[attrib]); };\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.attribs[attrib] === value; };\n}\n/**\n * @param a First function to combine.\n * @param b Second function to combine.\n * @returns A function taking a node and returning `true` if either of the input\n * functions returns `true` for the node.\n */\nfunction combineFuncs(a, b) {\n return function (elem) { return a(elem) || b(elem); };\n}\n/**\n * @param options An object describing nodes to look for.\n * @returns A function executing all checks in `options` and returning `true` if\n * any of them match a node.\n */\nfunction compileTest(options) {\n var funcs = Object.keys(options).map(function (key) {\n var value = options[key];\n return Object.prototype.hasOwnProperty.call(Checks, key)\n ? Checks[key](value)\n : getAttribCheck(key, value);\n });\n return funcs.length === 0 ? null : funcs.reduce(combineFuncs);\n}\n/**\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param node The element to test.\n * @returns Whether the element matches the description in `options`.\n */\nfunction testElement(options, node) {\n var test = compileTest(options);\n return test ? test(node) : true;\n}\nexports.testElement = testElement;\n/**\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes that match `options`.\n */\nfunction getElements(options, nodes, recurse, limit) {\n if (limit === void 0) { limit = Infinity; }\n var test = compileTest(options);\n return test ? (0, querying_js_1.filter)(test, nodes, recurse, limit) : [];\n}\nexports.getElements = getElements;\n/**\n * @category Legacy Query Functions\n * @param id The unique ID attribute value to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @returns The node with the supplied ID.\n */\nfunction getElementById(id, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n if (!Array.isArray(nodes))\n nodes = [nodes];\n return (0, querying_js_1.findOne)(getAttribCheck(\"id\", id), nodes, recurse);\n}\nexports.getElementById = getElementById;\n/**\n * @category Legacy Query Functions\n * @param tagName Tag name to search for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `tagName`.\n */\nfunction getElementsByTagName(tagName, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_name\"](tagName), nodes, recurse, limit);\n}\nexports.getElementsByTagName = getElementsByTagName;\n/**\n * @category Legacy Query Functions\n * @param type Element type to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `type`.\n */\nfunction getElementsByTagType(type, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_type\"](type), nodes, recurse, limit);\n}\nexports.getElementsByTagType = getElementsByTagType;\n//# sourceMappingURL=legacy.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepend = exports.prependChild = exports.append = exports.appendChild = exports.replaceElement = exports.removeElement = void 0;\n/**\n * Remove an element from the dom\n *\n * @category Manipulation\n * @param elem The element to be removed\n */\nfunction removeElement(elem) {\n if (elem.prev)\n elem.prev.next = elem.next;\n if (elem.next)\n elem.next.prev = elem.prev;\n if (elem.parent) {\n var childs = elem.parent.children;\n childs.splice(childs.lastIndexOf(elem), 1);\n }\n}\nexports.removeElement = removeElement;\n/**\n * Replace an element in the dom\n *\n * @category Manipulation\n * @param elem The element to be replaced\n * @param replacement The element to be added\n */\nfunction replaceElement(elem, replacement) {\n var prev = (replacement.prev = elem.prev);\n if (prev) {\n prev.next = replacement;\n }\n var next = (replacement.next = elem.next);\n if (next) {\n next.prev = replacement;\n }\n var parent = (replacement.parent = elem.parent);\n if (parent) {\n var childs = parent.children;\n childs[childs.lastIndexOf(elem)] = replacement;\n elem.parent = null;\n }\n}\nexports.replaceElement = replaceElement;\n/**\n * Append a child to an element.\n *\n * @category Manipulation\n * @param elem The element to append to.\n * @param child The element to be added as a child.\n */\nfunction appendChild(elem, child) {\n removeElement(child);\n child.next = null;\n child.parent = elem;\n if (elem.children.push(child) > 1) {\n var sibling = elem.children[elem.children.length - 2];\n sibling.next = child;\n child.prev = sibling;\n }\n else {\n child.prev = null;\n }\n}\nexports.appendChild = appendChild;\n/**\n * Append an element after another.\n *\n * @category Manipulation\n * @param elem The element to append after.\n * @param next The element be added.\n */\nfunction append(elem, next) {\n removeElement(next);\n var parent = elem.parent;\n var currNext = elem.next;\n next.next = currNext;\n next.prev = elem;\n elem.next = next;\n next.parent = parent;\n if (currNext) {\n currNext.prev = next;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.lastIndexOf(currNext), 0, next);\n }\n }\n else if (parent) {\n parent.children.push(next);\n }\n}\nexports.append = append;\n/**\n * Prepend a child to an element.\n *\n * @category Manipulation\n * @param elem The element to prepend before.\n * @param child The element to be added as a child.\n */\nfunction prependChild(elem, child) {\n removeElement(child);\n child.parent = elem;\n child.prev = null;\n if (elem.children.unshift(child) !== 1) {\n var sibling = elem.children[1];\n sibling.prev = child;\n child.next = sibling;\n }\n else {\n child.next = null;\n }\n}\nexports.prependChild = prependChild;\n/**\n * Prepend an element before another.\n *\n * @category Manipulation\n * @param elem The element to prepend before.\n * @param prev The element be added.\n */\nfunction prepend(elem, prev) {\n removeElement(prev);\n var parent = elem.parent;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.indexOf(elem), 0, prev);\n }\n if (elem.prev) {\n elem.prev.next = prev;\n }\n prev.parent = parent;\n prev.prev = elem.prev;\n prev.next = elem;\n elem.prev = prev;\n}\nexports.prepend = prepend;\n//# sourceMappingURL=manipulation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findAll = exports.existsOne = exports.findOne = exports.findOneChild = exports.find = exports.filter = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Search a node and its children for nodes passing a test function.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param node Node to search. Will be included in the result set if it matches.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction filter(test, node, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n if (!Array.isArray(node))\n node = [node];\n return find(test, node, recurse, limit);\n}\nexports.filter = filter;\n/**\n * Search an array of node and its children for nodes passing a test function.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction find(test, nodes, recurse, limit) {\n var result = [];\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var elem = nodes_1[_i];\n if (test(elem)) {\n result.push(elem);\n if (--limit <= 0)\n break;\n }\n if (recurse && (0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {\n var children = find(test, elem.children, recurse, limit);\n result.push.apply(result, children);\n limit -= children.length;\n if (limit <= 0)\n break;\n }\n }\n return result;\n}\nexports.find = find;\n/**\n * Finds the first element inside of an array that matches a test function.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns The first node in the array that passes `test`.\n * @deprecated Use `Array.prototype.find` directly.\n */\nfunction findOneChild(test, nodes) {\n return nodes.find(test);\n}\nexports.findOneChild = findOneChild;\n/**\n * Finds one element in a tree that passes a test.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @param recurse Also consider child nodes.\n * @returns The first child node that passes `test`.\n */\nfunction findOne(test, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n var elem = null;\n for (var i = 0; i < nodes.length && !elem; i++) {\n var checked = nodes[i];\n if (!(0, domhandler_1.isTag)(checked)) {\n continue;\n }\n else if (test(checked)) {\n elem = checked;\n }\n else if (recurse && checked.children.length > 0) {\n elem = findOne(test, checked.children, true);\n }\n }\n return elem;\n}\nexports.findOne = findOne;\n/**\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns Whether a tree of nodes contains at least one node passing the test.\n */\nfunction existsOne(test, nodes) {\n return nodes.some(function (checked) {\n return (0, domhandler_1.isTag)(checked) &&\n (test(checked) ||\n (checked.children.length > 0 &&\n existsOne(test, checked.children)));\n });\n}\nexports.existsOne = existsOne;\n/**\n * Search and array of nodes and its children for elements passing a test function.\n *\n * Same as `find`, but limited to elements and with less options, leading to reduced complexity.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns All nodes passing `test`.\n */\nfunction findAll(test, nodes) {\n var _a;\n var result = [];\n var stack = nodes.filter(domhandler_1.isTag);\n var elem;\n while ((elem = stack.shift())) {\n var children = (_a = elem.children) === null || _a === void 0 ? void 0 : _a.filter(domhandler_1.isTag);\n if (children && children.length > 0) {\n stack.unshift.apply(stack, children);\n }\n if (test(elem))\n result.push(elem);\n }\n return result;\n}\nexports.findAll = findAll;\n//# sourceMappingURL=querying.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.innerText = exports.textContent = exports.getText = exports.getInnerHTML = exports.getOuterHTML = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar dom_serializer_1 = __importDefault(require(\"dom-serializer\"));\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the outer HTML of.\n * @param options Options for serialization.\n * @returns `node`'s outer HTML.\n */\nfunction getOuterHTML(node, options) {\n return (0, dom_serializer_1.default)(node, options);\n}\nexports.getOuterHTML = getOuterHTML;\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the inner HTML of.\n * @param options Options for serialization.\n * @returns `node`'s inner HTML.\n */\nfunction getInnerHTML(node, options) {\n return (0, domhandler_1.hasChildren)(node)\n ? node.children.map(function (node) { return getOuterHTML(node, options); }).join(\"\")\n : \"\";\n}\nexports.getInnerHTML = getInnerHTML;\n/**\n * Get a node's inner text. Same as `textContent`, but inserts newlines for `
                                                                                ` tags.\n *\n * @category Stringify\n * @deprecated Use `textContent` instead.\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n */\nfunction getText(node) {\n if (Array.isArray(node))\n return node.map(getText).join(\"\");\n if ((0, domhandler_1.isTag)(node))\n return node.name === \"br\" ? \"\\n\" : getText(node.children);\n if ((0, domhandler_1.isCDATA)(node))\n return getText(node.children);\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.getText = getText;\n/**\n * Get a node's text content.\n *\n * @category Stringify\n * @param node Node to get the text content of.\n * @returns `node`'s text content.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent}\n */\nfunction textContent(node) {\n if (Array.isArray(node))\n return node.map(textContent).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && !(0, domhandler_1.isComment)(node)) {\n return textContent(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.textContent = textContent;\n/**\n * Get a node's inner text.\n *\n * @category Stringify\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText}\n */\nfunction innerText(node) {\n if (Array.isArray(node))\n return node.map(innerText).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && (node.type === domelementtype_1.ElementType.Tag || (0, domhandler_1.isCDATA)(node))) {\n return innerText(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.innerText = innerText;\n//# sourceMappingURL=stringify.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prevElementSibling = exports.nextElementSibling = exports.getName = exports.hasAttrib = exports.getAttributeValue = exports.getSiblings = exports.getParent = exports.getChildren = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Get a node's children.\n *\n * @category Traversal\n * @param elem Node to get the children of.\n * @returns `elem`'s children, or an empty array.\n */\nfunction getChildren(elem) {\n return (0, domhandler_1.hasChildren)(elem) ? elem.children : [];\n}\nexports.getChildren = getChildren;\n/**\n * Get a node's parent.\n *\n * @category Traversal\n * @param elem Node to get the parent of.\n * @returns `elem`'s parent node.\n */\nfunction getParent(elem) {\n return elem.parent || null;\n}\nexports.getParent = getParent;\n/**\n * Gets an elements siblings, including the element itself.\n *\n * Attempts to get the children through the element's parent first. If we don't\n * have a parent (the element is a root node), we walk the element's `prev` &\n * `next` to get all remaining nodes.\n *\n * @category Traversal\n * @param elem Element to get the siblings of.\n * @returns `elem`'s siblings.\n */\nfunction getSiblings(elem) {\n var _a, _b;\n var parent = getParent(elem);\n if (parent != null)\n return getChildren(parent);\n var siblings = [elem];\n var prev = elem.prev, next = elem.next;\n while (prev != null) {\n siblings.unshift(prev);\n (_a = prev, prev = _a.prev);\n }\n while (next != null) {\n siblings.push(next);\n (_b = next, next = _b.next);\n }\n return siblings;\n}\nexports.getSiblings = getSiblings;\n/**\n * Gets an attribute from an element.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to retrieve.\n * @returns The element's attribute value, or `undefined`.\n */\nfunction getAttributeValue(elem, name) {\n var _a;\n return (_a = elem.attribs) === null || _a === void 0 ? void 0 : _a[name];\n}\nexports.getAttributeValue = getAttributeValue;\n/**\n * Checks whether an element has an attribute.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to look for.\n * @returns Returns whether `elem` has the attribute `name`.\n */\nfunction hasAttrib(elem, name) {\n return (elem.attribs != null &&\n Object.prototype.hasOwnProperty.call(elem.attribs, name) &&\n elem.attribs[name] != null);\n}\nexports.hasAttrib = hasAttrib;\n/**\n * Get the tag name of an element.\n *\n * @category Traversal\n * @param elem The element to get the name for.\n * @returns The tag name of `elem`.\n */\nfunction getName(elem) {\n return elem.name;\n}\nexports.getName = getName;\n/**\n * Returns the next element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the next sibling of.\n * @returns `elem`'s next sibling that is a tag.\n */\nfunction nextElementSibling(elem) {\n var _a;\n var next = elem.next;\n while (next !== null && !(0, domhandler_1.isTag)(next))\n (_a = next, next = _a.next);\n return next;\n}\nexports.nextElementSibling = nextElementSibling;\n/**\n * Returns the previous element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the previous sibling of.\n * @returns `elem`'s previous sibling that is a tag.\n */\nfunction prevElementSibling(elem) {\n var _a;\n var prev = elem.prev;\n while (prev !== null && !(0, domhandler_1.isTag)(prev))\n (_a = prev, prev = _a.prev);\n return prev;\n}\nexports.prevElementSibling = prevElementSibling;\n//# sourceMappingURL=traversal.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTML = exports.determineBranch = exports.BinTrieFlags = exports.fromCodePoint = exports.replaceCodePoint = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = void 0;\nvar decode_data_html_js_1 = __importDefault(require(\"./generated/decode-data-html.js\"));\nexports.htmlDecodeTree = decode_data_html_js_1.default;\nvar decode_data_xml_js_1 = __importDefault(require(\"./generated/decode-data-xml.js\"));\nexports.xmlDecodeTree = decode_data_xml_js_1.default;\nvar decode_codepoint_js_1 = __importDefault(require(\"./decode_codepoint.js\"));\nexports.decodeCodePoint = decode_codepoint_js_1.default;\nvar decode_codepoint_js_2 = require(\"./decode_codepoint.js\");\nObject.defineProperty(exports, \"replaceCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } });\nObject.defineProperty(exports, \"fromCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } });\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n /** Bit that needs to be set to convert an upper case ASCII character to lower case */\n CharCodes[CharCodes[\"To_LOWER_BIT\"] = 32] = \"To_LOWER_BIT\";\n})(CharCodes || (CharCodes = {}));\nvar BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {}));\nfunction getDecoder(decodeTree) {\n return function decodeHTMLBinary(str, strict) {\n var ret = \"\";\n var lastIdx = 0;\n var strIdx = 0;\n while ((strIdx = str.indexOf(\"&\", strIdx)) >= 0) {\n ret += str.slice(lastIdx, strIdx);\n lastIdx = strIdx;\n // Skip the \"&\"\n strIdx += 1;\n // If we have a numeric entity, handle this separately.\n if (str.charCodeAt(strIdx) === CharCodes.NUM) {\n // Skip the leading \"&#\". For hex entities, also skip the leading \"x\".\n var start = strIdx + 1;\n var base = 10;\n var cp = str.charCodeAt(start);\n if ((cp | CharCodes.To_LOWER_BIT) === CharCodes.LOWER_X) {\n base = 16;\n strIdx += 1;\n start += 1;\n }\n do\n cp = str.charCodeAt(++strIdx);\n while ((cp >= CharCodes.ZERO && cp <= CharCodes.NINE) ||\n (base === 16 &&\n (cp | CharCodes.To_LOWER_BIT) >= CharCodes.LOWER_A &&\n (cp | CharCodes.To_LOWER_BIT) <= CharCodes.LOWER_F));\n if (start !== strIdx) {\n var entity = str.substring(start, strIdx);\n var parsed = parseInt(entity, base);\n if (str.charCodeAt(strIdx) === CharCodes.SEMI) {\n strIdx += 1;\n }\n else if (strict) {\n continue;\n }\n ret += (0, decode_codepoint_js_1.default)(parsed);\n lastIdx = strIdx;\n }\n continue;\n }\n var resultIdx = 0;\n var excess = 1;\n var treeIdx = 0;\n var current = decodeTree[treeIdx];\n for (; strIdx < str.length; strIdx++, excess++) {\n treeIdx = determineBranch(decodeTree, current, treeIdx + 1, str.charCodeAt(strIdx));\n if (treeIdx < 0)\n break;\n current = decodeTree[treeIdx];\n var masked = current & BinTrieFlags.VALUE_LENGTH;\n // If the branch is a value, store it and continue\n if (masked) {\n // If we have a legacy entity while parsing strictly, just skip the number of bytes\n if (!strict || str.charCodeAt(strIdx) === CharCodes.SEMI) {\n resultIdx = treeIdx;\n excess = 0;\n }\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (masked >> 14) - 1;\n if (valueLength === 0)\n break;\n treeIdx += valueLength;\n }\n }\n if (resultIdx !== 0) {\n var valueLength = (decodeTree[resultIdx] & BinTrieFlags.VALUE_LENGTH) >> 14;\n ret +=\n valueLength === 1\n ? String.fromCharCode(decodeTree[resultIdx] & ~BinTrieFlags.VALUE_LENGTH)\n : valueLength === 2\n ? String.fromCharCode(decodeTree[resultIdx + 1])\n : String.fromCharCode(decodeTree[resultIdx + 1], decodeTree[resultIdx + 2]);\n lastIdx = strIdx - excess + 1;\n }\n }\n return ret + str.slice(lastIdx);\n };\n}\nfunction determineBranch(decodeTree, current, nodeIdx, char) {\n var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n var jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n var value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIdx + value] - 1;\n }\n // Case 3: Multiple branches encoded in dictionary\n // Binary search for the character.\n var lo = nodeIdx;\n var hi = lo + branchCount - 1;\n while (lo <= hi) {\n var mid = (lo + hi) >>> 1;\n var midVal = decodeTree[mid];\n if (midVal < char) {\n lo = mid + 1;\n }\n else if (midVal > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nexports.determineBranch = determineBranch;\nvar htmlDecoder = getDecoder(decode_data_html_js_1.default);\nvar xmlDecoder = getDecoder(decode_data_xml_js_1.default);\n/**\n * Decodes an HTML string, allowing for entities not terminated by a semi-colon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTML(str) {\n return htmlDecoder(str, false);\n}\nexports.decodeHTML = decodeHTML;\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semi-colon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLStrict(str) {\n return htmlDecoder(str, true);\n}\nexports.decodeHTMLStrict = decodeHTMLStrict;\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semi-colon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeXML(str) {\n return xmlDecoder(str, true);\n}\nexports.decodeXML = decodeXML;\n//# sourceMappingURL=decode.js.map","\"use strict\";\n// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceCodePoint = exports.fromCodePoint = void 0;\nvar decodeMap = new Map([\n [0, 65533],\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\nexports.fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n var output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n};\nfunction replaceCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return 0xfffd;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\nexports.replaceCodePoint = replaceCodePoint;\nfunction decodeCodePoint(codePoint) {\n return (0, exports.fromCodePoint)(replaceCodePoint(codePoint));\n}\nexports.default = decodeCodePoint;\n//# sourceMappingURL=decode_codepoint.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeNonAsciiHTML = exports.encodeHTML = void 0;\nvar encode_html_js_1 = __importDefault(require(\"./generated/encode-html.js\"));\nvar escape_js_1 = require(\"./escape.js\");\nvar htmlReplacer = /[\\t\\n!-,./:-@[-`\\f{-}$\\x80-\\uFFFF]/g;\n/**\n * Encodes all characters in the input using HTML entities. This includes\n * characters that are valid ASCII characters in HTML documents, such as `#`.\n *\n * To get a more compact output, consider using the `encodeNonAsciiHTML`\n * function, which will only encode characters that are not valid in HTML\n * documents, as well as non-ASCII characters.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeHTML(data) {\n return encodeHTMLTrieRe(htmlReplacer, data);\n}\nexports.encodeHTML = encodeHTML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in HTML\n * documents using HTML entities. This function will not encode characters that\n * are valid in HTML documents, such as `#`.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeNonAsciiHTML(data) {\n return encodeHTMLTrieRe(escape_js_1.xmlReplacer, data);\n}\nexports.encodeNonAsciiHTML = encodeNonAsciiHTML;\nfunction encodeHTMLTrieRe(regExp, str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = regExp.exec(str)) !== null) {\n var i = match.index;\n ret += str.substring(lastIdx, i);\n var char = str.charCodeAt(i);\n var next = encode_html_js_1.default.get(char);\n if (typeof next === \"object\") {\n // We are in a branch. Try to match the next char.\n if (i + 1 < str.length) {\n var nextChar = str.charCodeAt(i + 1);\n var value = typeof next.n === \"number\"\n ? next.n === nextChar\n ? next.o\n : undefined\n : next.n.get(nextChar);\n if (value !== undefined) {\n ret += value;\n lastIdx = regExp.lastIndex += 1;\n continue;\n }\n }\n next = next.v;\n }\n // We might have a tree node without a value; skip and use a numeric entitiy.\n if (next !== undefined) {\n ret += next;\n lastIdx = i + 1;\n }\n else {\n var cp = (0, escape_js_1.getCodePoint)(str, i);\n ret += \"&#x\".concat(cp.toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = regExp.lastIndex += Number(cp !== char);\n }\n }\n return ret + str.substr(lastIdx);\n}\n//# sourceMappingURL=encode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.getCodePoint = exports.xmlReplacer = void 0;\nexports.xmlReplacer = /[\"&'<>$\\x80-\\uFFFF]/g;\nvar xmlCodeMap = new Map([\n [34, \""\"],\n [38, \"&\"],\n [39, \"'\"],\n [60, \"<\"],\n [62, \">\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexports.getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? function (str, index) { return str.codePointAt(index); }\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n function (c, index) {\n return (c.charCodeAt(index) & 0xfc00) === 0xd800\n ? (c.charCodeAt(index) - 0xd800) * 0x400 +\n c.charCodeAt(index + 1) -\n 0xdc00 +\n 0x10000\n : c.charCodeAt(index);\n };\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nfunction encodeXML(str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = exports.xmlReplacer.exec(str)) !== null) {\n var i = match.index;\n var char = str.charCodeAt(i);\n var next = xmlCodeMap.get(char);\n if (next !== undefined) {\n ret += str.substring(lastIdx, i) + next;\n lastIdx = i + 1;\n }\n else {\n ret += \"\".concat(str.substring(lastIdx, i), \"&#x\").concat((0, exports.getCodePoint)(str, i).toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = exports.xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);\n }\n }\n return ret + str.substr(lastIdx);\n}\nexports.encodeXML = encodeXML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexports.escape = encodeXML;\nfunction getEscaper(regex, map) {\n return function escape(data) {\n var match;\n var lastIdx = 0;\n var result = \"\";\n while ((match = regex.exec(data))) {\n if (lastIdx !== match.index) {\n result += data.substring(lastIdx, match.index);\n }\n // We know that this chararcter will be in the map.\n result += map.get(match[0].charCodeAt(0));\n // Every match will be of length 1\n lastIdx = match.index + 1;\n }\n return result + data.substring(lastIdx);\n };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexports.escapeUTF8 = getEscaper(/[&<>'\"]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeAttribute = getEscaper(/[\"&\\u00A0]/g, new Map([\n [34, \""\"],\n [38, \"&\"],\n [160, \" \"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeText = getEscaper(/[&<>\\u00A0]/g, new Map([\n [38, \"&\"],\n [60, \"<\"],\n [62, \">\"],\n [160, \" \"],\n]));\n//# sourceMappingURL=escape.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-html.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-xml.js.map","\"use strict\";\n// Generated using scripts/write-encode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction restoreDiff(arr) {\n for (var i = 1; i < arr.length; i++) {\n arr[i][0] += arr[i - 1][0] + 1;\n }\n return arr;\n}\n// prettier-ignore\nexports.default = new Map(/* #__PURE__ */ restoreDiff([[9, \" \"], [0, \" \"], [22, \"!\"], [0, \""\"], [0, \"#\"], [0, \"$\"], [0, \"%\"], [0, \"&\"], [0, \"'\"], [0, \"(\"], [0, \")\"], [0, \"*\"], [0, \"+\"], [0, \",\"], [1, \".\"], [0, \"/\"], [10, \":\"], [0, \";\"], [0, { v: \"<\", n: 8402, o: \"<⃒\" }], [0, { v: \"=\", n: 8421, o: \"=⃥\" }], [0, { v: \">\", n: 8402, o: \">⃒\" }], [0, \"?\"], [0, \"@\"], [26, \"[\"], [0, \"\\"], [0, \"]\"], [0, \"^\"], [0, \"_\"], [0, \"`\"], [5, { n: 106, o: \"fj\" }], [20, \"{\"], [0, \"|\"], [0, \"}\"], [34, \" \"], [0, \"¡\"], [0, \"¢\"], [0, \"£\"], [0, \"¤\"], [0, \"¥\"], [0, \"¦\"], [0, \"§\"], [0, \"¨\"], [0, \"©\"], [0, \"ª\"], [0, \"«\"], [0, \"¬\"], [0, \"­\"], [0, \"®\"], [0, \"¯\"], [0, \"°\"], [0, \"±\"], [0, \"²\"], [0, \"³\"], [0, \"´\"], [0, \"µ\"], [0, \"¶\"], [0, \"·\"], [0, \"¸\"], [0, \"¹\"], [0, \"º\"], [0, \"»\"], [0, \"¼\"], [0, \"½\"], [0, \"¾\"], [0, \"¿\"], [0, \"À\"], [0, \"Á\"], [0, \"Â\"], [0, \"Ã\"], [0, \"Ä\"], [0, \"Å\"], [0, \"Æ\"], [0, \"Ç\"], [0, \"È\"], [0, \"É\"], [0, \"Ê\"], [0, \"Ë\"], [0, \"Ì\"], [0, \"Í\"], [0, \"Î\"], [0, \"Ï\"], [0, \"Ð\"], [0, \"Ñ\"], [0, \"Ò\"], [0, \"Ó\"], [0, \"Ô\"], [0, \"Õ\"], [0, \"Ö\"], [0, \"×\"], [0, \"Ø\"], [0, \"Ù\"], [0, \"Ú\"], [0, \"Û\"], [0, \"Ü\"], [0, \"Ý\"], [0, \"Þ\"], [0, \"ß\"], [0, \"à\"], [0, \"á\"], [0, \"â\"], [0, \"ã\"], [0, \"ä\"], [0, \"å\"], [0, \"æ\"], [0, \"ç\"], [0, \"è\"], [0, \"é\"], [0, \"ê\"], [0, \"ë\"], [0, \"ì\"], [0, \"í\"], [0, \"î\"], [0, \"ï\"], [0, \"ð\"], [0, \"ñ\"], [0, \"ò\"], [0, \"ó\"], [0, \"ô\"], [0, \"õ\"], [0, \"ö\"], [0, \"÷\"], [0, \"ø\"], [0, \"ù\"], [0, \"ú\"], [0, \"û\"], [0, \"ü\"], [0, \"ý\"], [0, \"þ\"], [0, \"ÿ\"], [0, \"Ā\"], [0, \"ā\"], [0, \"Ă\"], [0, \"ă\"], [0, \"Ą\"], [0, \"ą\"], [0, \"Ć\"], [0, \"ć\"], [0, \"Ĉ\"], [0, \"ĉ\"], [0, \"Ċ\"], [0, \"ċ\"], [0, \"Č\"], [0, \"č\"], [0, \"Ď\"], [0, \"ď\"], [0, \"Đ\"], [0, \"đ\"], [0, \"Ē\"], [0, \"ē\"], [2, \"Ė\"], [0, \"ė\"], [0, \"Ę\"], [0, \"ę\"], [0, \"Ě\"], [0, \"ě\"], [0, \"Ĝ\"], [0, \"ĝ\"], [0, \"Ğ\"], [0, \"ğ\"], [0, \"Ġ\"], [0, \"ġ\"], [0, \"Ģ\"], [1, \"Ĥ\"], [0, \"ĥ\"], [0, \"Ħ\"], [0, \"ħ\"], [0, \"Ĩ\"], [0, \"ĩ\"], [0, \"Ī\"], [0, \"ī\"], [2, \"Į\"], [0, \"į\"], [0, \"İ\"], [0, \"ı\"], [0, \"IJ\"], [0, \"ij\"], [0, \"Ĵ\"], [0, \"ĵ\"], [0, \"Ķ\"], [0, \"ķ\"], [0, \"ĸ\"], [0, \"Ĺ\"], [0, \"ĺ\"], [0, \"Ļ\"], [0, \"ļ\"], [0, \"Ľ\"], [0, \"ľ\"], [0, \"Ŀ\"], [0, \"ŀ\"], [0, \"Ł\"], [0, \"ł\"], [0, \"Ń\"], [0, \"ń\"], [0, \"Ņ\"], [0, \"ņ\"], [0, \"Ň\"], [0, \"ň\"], [0, \"ʼn\"], [0, \"Ŋ\"], [0, \"ŋ\"], [0, \"Ō\"], [0, \"ō\"], [2, \"Ő\"], [0, \"ő\"], [0, \"Œ\"], [0, \"œ\"], [0, \"Ŕ\"], [0, \"ŕ\"], [0, \"Ŗ\"], [0, \"ŗ\"], [0, \"Ř\"], [0, \"ř\"], [0, \"Ś\"], [0, \"ś\"], [0, \"Ŝ\"], [0, \"ŝ\"], [0, \"Ş\"], [0, \"ş\"], [0, \"Š\"], [0, \"š\"], [0, \"Ţ\"], [0, \"ţ\"], [0, \"Ť\"], [0, \"ť\"], [0, \"Ŧ\"], [0, \"ŧ\"], [0, \"Ũ\"], [0, \"ũ\"], [0, \"Ū\"], [0, \"ū\"], [0, \"Ŭ\"], [0, \"ŭ\"], [0, \"Ů\"], [0, \"ů\"], [0, \"Ű\"], [0, \"ű\"], [0, \"Ų\"], [0, \"ų\"], [0, \"Ŵ\"], [0, \"ŵ\"], [0, \"Ŷ\"], [0, \"ŷ\"], [0, \"Ÿ\"], [0, \"Ź\"], [0, \"ź\"], [0, \"Ż\"], [0, \"ż\"], [0, \"Ž\"], [0, \"ž\"], [19, \"ƒ\"], [34, \"Ƶ\"], [63, \"ǵ\"], [65, \"ȷ\"], [142, \"ˆ\"], [0, \"ˇ\"], [16, \"˘\"], [0, \"˙\"], [0, \"˚\"], [0, \"˛\"], [0, \"˜\"], [0, \"˝\"], [51, \"̑\"], [127, \"Α\"], [0, \"Β\"], [0, \"Γ\"], [0, \"Δ\"], [0, \"Ε\"], [0, \"Ζ\"], [0, \"Η\"], [0, \"Θ\"], [0, \"Ι\"], [0, \"Κ\"], [0, \"Λ\"], [0, \"Μ\"], [0, \"Ν\"], [0, \"Ξ\"], [0, \"Ο\"], [0, \"Π\"], [0, \"Ρ\"], [1, \"Σ\"], [0, \"Τ\"], [0, \"Υ\"], [0, \"Φ\"], [0, \"Χ\"], [0, \"Ψ\"], [0, \"Ω\"], [7, \"α\"], [0, \"β\"], [0, \"γ\"], [0, \"δ\"], [0, \"ε\"], [0, \"ζ\"], [0, \"η\"], [0, \"θ\"], [0, \"ι\"], [0, \"κ\"], [0, \"λ\"], [0, \"μ\"], [0, \"ν\"], [0, \"ξ\"], [0, \"ο\"], [0, \"π\"], [0, \"ρ\"], [0, \"ς\"], [0, \"σ\"], [0, \"τ\"], [0, \"υ\"], [0, \"φ\"], [0, \"χ\"], [0, \"ψ\"], [0, \"ω\"], [7, \"ϑ\"], [0, \"ϒ\"], [2, \"ϕ\"], [0, \"ϖ\"], [5, \"Ϝ\"], [0, \"ϝ\"], [18, \"ϰ\"], [0, \"ϱ\"], [3, \"ϵ\"], [0, \"϶\"], [10, \"Ё\"], [0, \"Ђ\"], [0, \"Ѓ\"], [0, \"Є\"], [0, \"Ѕ\"], [0, \"І\"], [0, \"Ї\"], [0, \"Ј\"], [0, \"Љ\"], [0, \"Њ\"], [0, \"Ћ\"], [0, \"Ќ\"], [1, \"Ў\"], [0, \"Џ\"], [0, \"А\"], [0, \"Б\"], [0, \"В\"], [0, \"Г\"], [0, \"Д\"], [0, \"Е\"], [0, \"Ж\"], [0, \"З\"], [0, \"И\"], [0, \"Й\"], [0, \"К\"], [0, \"Л\"], [0, \"М\"], [0, \"Н\"], [0, \"О\"], [0, \"П\"], [0, \"Р\"], [0, \"С\"], [0, \"Т\"], [0, \"У\"], [0, \"Ф\"], [0, \"Х\"], [0, \"Ц\"], [0, \"Ч\"], [0, \"Ш\"], [0, \"Щ\"], [0, \"Ъ\"], [0, \"Ы\"], [0, \"Ь\"], [0, \"Э\"], [0, \"Ю\"], [0, \"Я\"], [0, \"а\"], [0, \"б\"], [0, \"в\"], [0, \"г\"], [0, \"д\"], [0, \"е\"], [0, \"ж\"], [0, \"з\"], [0, \"и\"], [0, \"й\"], [0, \"к\"], [0, \"л\"], [0, \"м\"], [0, \"н\"], [0, \"о\"], [0, \"п\"], [0, \"р\"], [0, \"с\"], [0, \"т\"], [0, \"у\"], [0, \"ф\"], [0, \"х\"], [0, \"ц\"], [0, \"ч\"], [0, \"ш\"], [0, \"щ\"], [0, \"ъ\"], [0, \"ы\"], [0, \"ь\"], [0, \"э\"], [0, \"ю\"], [0, \"я\"], [1, \"ё\"], [0, \"ђ\"], [0, \"ѓ\"], [0, \"є\"], [0, \"ѕ\"], [0, \"і\"], [0, \"ї\"], [0, \"ј\"], [0, \"љ\"], [0, \"њ\"], [0, \"ћ\"], [0, \"ќ\"], [1, \"ў\"], [0, \"џ\"], [7074, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [1, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [0, \"​\"], [0, \"‌\"], [0, \"‍\"], [0, \"‎\"], [0, \"‏\"], [0, \"‐\"], [2, \"–\"], [0, \"—\"], [0, \"―\"], [0, \"‖\"], [1, \"‘\"], [0, \"’\"], [0, \"‚\"], [1, \"“\"], [0, \"”\"], [0, \"„\"], [1, \"†\"], [0, \"‡\"], [0, \"•\"], [2, \"‥\"], [0, \"…\"], [9, \"‰\"], [0, \"‱\"], [0, \"′\"], [0, \"″\"], [0, \"‴\"], [0, \"‵\"], [3, \"‹\"], [0, \"›\"], [3, \"‾\"], [2, \"⁁\"], [1, \"⁃\"], [0, \"⁄\"], [10, \"⁏\"], [7, \"⁗\"], [7, { v: \" \", n: 8202, o: \"  \" }], [0, \"⁠\"], [0, \"⁡\"], [0, \"⁢\"], [0, \"⁣\"], [72, \"€\"], [46, \"⃛\"], [0, \"⃜\"], [37, \"ℂ\"], [2, \"℅\"], [4, \"ℊ\"], [0, \"ℋ\"], [0, \"ℌ\"], [0, \"ℍ\"], [0, \"ℎ\"], [0, \"ℏ\"], [0, \"ℐ\"], [0, \"ℑ\"], [0, \"ℒ\"], [0, \"ℓ\"], [1, \"ℕ\"], [0, \"№\"], [0, \"℗\"], [0, \"℘\"], [0, \"ℙ\"], [0, \"ℚ\"], [0, \"ℛ\"], [0, \"ℜ\"], [0, \"ℝ\"], [0, \"℞\"], [3, \"™\"], [1, \"ℤ\"], [2, \"℧\"], [0, \"ℨ\"], [0, \"℩\"], [2, \"ℬ\"], [0, \"ℭ\"], [1, \"ℯ\"], [0, \"ℰ\"], [0, \"ℱ\"], [1, \"ℳ\"], [0, \"ℴ\"], [0, \"ℵ\"], [0, \"ℶ\"], [0, \"ℷ\"], [0, \"ℸ\"], [12, \"ⅅ\"], [0, \"ⅆ\"], [0, \"ⅇ\"], [0, \"ⅈ\"], [10, \"⅓\"], [0, \"⅔\"], [0, \"⅕\"], [0, \"⅖\"], [0, \"⅗\"], [0, \"⅘\"], [0, \"⅙\"], [0, \"⅚\"], [0, \"⅛\"], [0, \"⅜\"], [0, \"⅝\"], [0, \"⅞\"], [49, \"←\"], [0, \"↑\"], [0, \"→\"], [0, \"↓\"], [0, \"↔\"], [0, \"↕\"], [0, \"↖\"], [0, \"↗\"], [0, \"↘\"], [0, \"↙\"], [0, \"↚\"], [0, \"↛\"], [1, { v: \"↝\", n: 824, o: \"↝̸\" }], [0, \"↞\"], [0, \"↟\"], [0, \"↠\"], [0, \"↡\"], [0, \"↢\"], [0, \"↣\"], [0, \"↤\"], [0, \"↥\"], [0, \"↦\"], [0, \"↧\"], [1, \"↩\"], [0, \"↪\"], [0, \"↫\"], [0, \"↬\"], [0, \"↭\"], [0, \"↮\"], [1, \"↰\"], [0, \"↱\"], [0, \"↲\"], [0, \"↳\"], [1, \"↵\"], [0, \"↶\"], [0, \"↷\"], [2, \"↺\"], [0, \"↻\"], [0, \"↼\"], [0, \"↽\"], [0, \"↾\"], [0, \"↿\"], [0, \"⇀\"], [0, \"⇁\"], [0, \"⇂\"], [0, \"⇃\"], [0, \"⇄\"], [0, \"⇅\"], [0, \"⇆\"], [0, \"⇇\"], [0, \"⇈\"], [0, \"⇉\"], [0, \"⇊\"], [0, \"⇋\"], [0, \"⇌\"], [0, \"⇍\"], [0, \"⇎\"], [0, \"⇏\"], [0, \"⇐\"], [0, \"⇑\"], [0, \"⇒\"], [0, \"⇓\"], [0, \"⇔\"], [0, \"⇕\"], [0, \"⇖\"], [0, \"⇗\"], [0, \"⇘\"], [0, \"⇙\"], [0, \"⇚\"], [0, \"⇛\"], [1, \"⇝\"], [6, \"⇤\"], [0, \"⇥\"], [15, \"⇵\"], [7, \"⇽\"], [0, \"⇾\"], [0, \"⇿\"], [0, \"∀\"], [0, \"∁\"], [0, { v: \"∂\", n: 824, o: \"∂̸\" }], [0, \"∃\"], [0, \"∄\"], [0, \"∅\"], [1, \"∇\"], [0, \"∈\"], [0, \"∉\"], [1, \"∋\"], [0, \"∌\"], [2, \"∏\"], [0, \"∐\"], [0, \"∑\"], [0, \"−\"], [0, \"∓\"], [0, \"∔\"], [1, \"∖\"], [0, \"∗\"], [0, \"∘\"], [1, \"√\"], [2, \"∝\"], [0, \"∞\"], [0, \"∟\"], [0, { v: \"∠\", n: 8402, o: \"∠⃒\" }], [0, \"∡\"], [0, \"∢\"], [0, \"∣\"], [0, \"∤\"], [0, \"∥\"], [0, \"∦\"], [0, \"∧\"], [0, \"∨\"], [0, { v: \"∩\", n: 65024, o: \"∩︀\" }], [0, { v: \"∪\", n: 65024, o: \"∪︀\" }], [0, \"∫\"], [0, \"∬\"], [0, \"∭\"], [0, \"∮\"], [0, \"∯\"], [0, \"∰\"], [0, \"∱\"], [0, \"∲\"], [0, \"∳\"], [0, \"∴\"], [0, \"∵\"], [0, \"∶\"], [0, \"∷\"], [0, \"∸\"], [1, \"∺\"], [0, \"∻\"], [0, { v: \"∼\", n: 8402, o: \"∼⃒\" }], [0, { v: \"∽\", n: 817, o: \"∽̱\" }], [0, { v: \"∾\", n: 819, o: \"∾̳\" }], [0, \"∿\"], [0, \"≀\"], [0, \"≁\"], [0, { v: \"≂\", n: 824, o: \"≂̸\" }], [0, \"≃\"], [0, \"≄\"], [0, \"≅\"], [0, \"≆\"], [0, \"≇\"], [0, \"≈\"], [0, \"≉\"], [0, \"≊\"], [0, { v: \"≋\", n: 824, o: \"≋̸\" }], [0, \"≌\"], [0, { v: \"≍\", n: 8402, o: \"≍⃒\" }], [0, { v: \"≎\", n: 824, o: \"≎̸\" }], [0, { v: \"≏\", n: 824, o: \"≏̸\" }], [0, { v: \"≐\", n: 824, o: \"≐̸\" }], [0, \"≑\"], [0, \"≒\"], [0, \"≓\"], [0, \"≔\"], [0, \"≕\"], [0, \"≖\"], [0, \"≗\"], [1, \"≙\"], [0, \"≚\"], [1, \"≜\"], [2, \"≟\"], [0, \"≠\"], [0, { v: \"≡\", n: 8421, o: \"≡⃥\" }], [0, \"≢\"], [1, { v: \"≤\", n: 8402, o: \"≤⃒\" }], [0, { v: \"≥\", n: 8402, o: \"≥⃒\" }], [0, { v: \"≦\", n: 824, o: \"≦̸\" }], [0, { v: \"≧\", n: 824, o: \"≧̸\" }], [0, { v: \"≨\", n: 65024, o: \"≨︀\" }], [0, { v: \"≩\", n: 65024, o: \"≩︀\" }], [0, { v: \"≪\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≪̸\"], [7577, \"≪⃒\"]])) }], [0, { v: \"≫\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≫̸\"], [7577, \"≫⃒\"]])) }], [0, \"≬\"], [0, \"≭\"], [0, \"≮\"], [0, \"≯\"], [0, \"≰\"], [0, \"≱\"], [0, \"≲\"], [0, \"≳\"], [0, \"≴\"], [0, \"≵\"], [0, \"≶\"], [0, \"≷\"], [0, \"≸\"], [0, \"≹\"], [0, \"≺\"], [0, \"≻\"], [0, \"≼\"], [0, \"≽\"], [0, \"≾\"], [0, { v: \"≿\", n: 824, o: \"≿̸\" }], [0, \"⊀\"], [0, \"⊁\"], [0, { v: \"⊂\", n: 8402, o: \"⊂⃒\" }], [0, { v: \"⊃\", n: 8402, o: \"⊃⃒\" }], [0, \"⊄\"], [0, \"⊅\"], [0, \"⊆\"], [0, \"⊇\"], [0, \"⊈\"], [0, \"⊉\"], [0, { v: \"⊊\", n: 65024, o: \"⊊︀\" }], [0, { v: \"⊋\", n: 65024, o: \"⊋︀\" }], [1, \"⊍\"], [0, \"⊎\"], [0, { v: \"⊏\", n: 824, o: \"⊏̸\" }], [0, { v: \"⊐\", n: 824, o: \"⊐̸\" }], [0, \"⊑\"], [0, \"⊒\"], [0, { v: \"⊓\", n: 65024, o: \"⊓︀\" }], [0, { v: \"⊔\", n: 65024, o: \"⊔︀\" }], [0, \"⊕\"], [0, \"⊖\"], [0, \"⊗\"], [0, \"⊘\"], [0, \"⊙\"], [0, \"⊚\"], [0, \"⊛\"], [1, \"⊝\"], [0, \"⊞\"], [0, \"⊟\"], [0, \"⊠\"], [0, \"⊡\"], [0, \"⊢\"], [0, \"⊣\"], [0, \"⊤\"], [0, \"⊥\"], [1, \"⊧\"], [0, \"⊨\"], [0, \"⊩\"], [0, \"⊪\"], [0, \"⊫\"], [0, \"⊬\"], [0, \"⊭\"], [0, \"⊮\"], [0, \"⊯\"], [0, \"⊰\"], [1, \"⊲\"], [0, \"⊳\"], [0, { v: \"⊴\", n: 8402, o: \"⊴⃒\" }], [0, { v: \"⊵\", n: 8402, o: \"⊵⃒\" }], [0, \"⊶\"], [0, \"⊷\"], [0, \"⊸\"], [0, \"⊹\"], [0, \"⊺\"], [0, \"⊻\"], [1, \"⊽\"], [0, \"⊾\"], [0, \"⊿\"], [0, \"⋀\"], [0, \"⋁\"], [0, \"⋂\"], [0, \"⋃\"], [0, \"⋄\"], [0, \"⋅\"], [0, \"⋆\"], [0, \"⋇\"], [0, \"⋈\"], [0, \"⋉\"], [0, \"⋊\"], [0, \"⋋\"], [0, \"⋌\"], [0, \"⋍\"], [0, \"⋎\"], [0, \"⋏\"], [0, \"⋐\"], [0, \"⋑\"], [0, \"⋒\"], [0, \"⋓\"], [0, \"⋔\"], [0, \"⋕\"], [0, \"⋖\"], [0, \"⋗\"], [0, { v: \"⋘\", n: 824, o: \"⋘̸\" }], [0, { v: \"⋙\", n: 824, o: \"⋙̸\" }], [0, { v: \"⋚\", n: 65024, o: \"⋚︀\" }], [0, { v: \"⋛\", n: 65024, o: \"⋛︀\" }], [2, \"⋞\"], [0, \"⋟\"], [0, \"⋠\"], [0, \"⋡\"], [0, \"⋢\"], [0, \"⋣\"], [2, \"⋦\"], [0, \"⋧\"], [0, \"⋨\"], [0, \"⋩\"], [0, \"⋪\"], [0, \"⋫\"], [0, \"⋬\"], [0, \"⋭\"], [0, \"⋮\"], [0, \"⋯\"], [0, \"⋰\"], [0, \"⋱\"], [0, \"⋲\"], [0, \"⋳\"], [0, \"⋴\"], [0, { v: \"⋵\", n: 824, o: \"⋵̸\" }], [0, \"⋶\"], [0, \"⋷\"], [1, { v: \"⋹\", n: 824, o: \"⋹̸\" }], [0, \"⋺\"], [0, \"⋻\"], [0, \"⋼\"], [0, \"⋽\"], [0, \"⋾\"], [6, \"⌅\"], [0, \"⌆\"], [1, \"⌈\"], [0, \"⌉\"], [0, \"⌊\"], [0, \"⌋\"], [0, \"⌌\"], [0, \"⌍\"], [0, \"⌎\"], [0, \"⌏\"], [0, \"⌐\"], [1, \"⌒\"], [0, \"⌓\"], [1, \"⌕\"], [0, \"⌖\"], [5, \"⌜\"], [0, \"⌝\"], [0, \"⌞\"], [0, \"⌟\"], [2, \"⌢\"], [0, \"⌣\"], [9, \"⌭\"], [0, \"⌮\"], [7, \"⌶\"], [6, \"⌽\"], [1, \"⌿\"], [60, \"⍼\"], [51, \"⎰\"], [0, \"⎱\"], [2, \"⎴\"], [0, \"⎵\"], [0, \"⎶\"], [37, \"⏜\"], [0, \"⏝\"], [0, \"⏞\"], [0, \"⏟\"], [2, \"⏢\"], [4, \"⏧\"], [59, \"␣\"], [164, \"Ⓢ\"], [55, \"─\"], [1, \"│\"], [9, \"┌\"], [3, \"┐\"], [3, \"└\"], [3, \"┘\"], [3, \"├\"], [7, \"┤\"], [7, \"┬\"], [7, \"┴\"], [7, \"┼\"], [19, \"═\"], [0, \"║\"], [0, \"╒\"], [0, \"╓\"], [0, \"╔\"], [0, \"╕\"], [0, \"╖\"], [0, \"╗\"], [0, \"╘\"], [0, \"╙\"], [0, \"╚\"], [0, \"╛\"], [0, \"╜\"], [0, \"╝\"], [0, \"╞\"], [0, \"╟\"], [0, \"╠\"], [0, \"╡\"], [0, \"╢\"], [0, \"╣\"], [0, \"╤\"], [0, \"╥\"], [0, \"╦\"], [0, \"╧\"], [0, \"╨\"], [0, \"╩\"], [0, \"╪\"], [0, \"╫\"], [0, \"╬\"], [19, \"▀\"], [3, \"▄\"], [3, \"█\"], [8, \"░\"], [0, \"▒\"], [0, \"▓\"], [13, \"□\"], [8, \"▪\"], [0, \"▫\"], [1, \"▭\"], [0, \"▮\"], [2, \"▱\"], [1, \"△\"], [0, \"▴\"], [0, \"▵\"], [2, \"▸\"], [0, \"▹\"], [3, \"▽\"], [0, \"▾\"], [0, \"▿\"], [2, \"◂\"], [0, \"◃\"], [6, \"◊\"], [0, \"○\"], [32, \"◬\"], [2, \"◯\"], [8, \"◸\"], [0, \"◹\"], [0, \"◺\"], [0, \"◻\"], [0, \"◼\"], [8, \"★\"], [0, \"☆\"], [7, \"☎\"], [49, \"♀\"], [1, \"♂\"], [29, \"♠\"], [2, \"♣\"], [1, \"♥\"], [0, \"♦\"], [3, \"♪\"], [2, \"♭\"], [0, \"♮\"], [0, \"♯\"], [163, \"✓\"], [3, \"✗\"], [8, \"✠\"], [21, \"✶\"], [33, \"❘\"], [25, \"❲\"], [0, \"❳\"], [84, \"⟈\"], [0, \"⟉\"], [28, \"⟦\"], [0, \"⟧\"], [0, \"⟨\"], [0, \"⟩\"], [0, \"⟪\"], [0, \"⟫\"], [0, \"⟬\"], [0, \"⟭\"], [7, \"⟵\"], [0, \"⟶\"], [0, \"⟷\"], [0, \"⟸\"], [0, \"⟹\"], [0, \"⟺\"], [1, \"⟼\"], [2, \"⟿\"], [258, \"⤂\"], [0, \"⤃\"], [0, \"⤄\"], [0, \"⤅\"], [6, \"⤌\"], [0, \"⤍\"], [0, \"⤎\"], [0, \"⤏\"], [0, \"⤐\"], [0, \"⤑\"], [0, \"⤒\"], [0, \"⤓\"], [2, \"⤖\"], [2, \"⤙\"], [0, \"⤚\"], [0, \"⤛\"], [0, \"⤜\"], [0, \"⤝\"], [0, \"⤞\"], [0, \"⤟\"], [0, \"⤠\"], [2, \"⤣\"], [0, \"⤤\"], [0, \"⤥\"], [0, \"⤦\"], [0, \"⤧\"], [0, \"⤨\"], [0, \"⤩\"], [0, \"⤪\"], [8, { v: \"⤳\", n: 824, o: \"⤳̸\" }], [1, \"⤵\"], [0, \"⤶\"], [0, \"⤷\"], [0, \"⤸\"], [0, \"⤹\"], [2, \"⤼\"], [0, \"⤽\"], [7, \"⥅\"], [2, \"⥈\"], [0, \"⥉\"], [0, \"⥊\"], [0, \"⥋\"], [2, \"⥎\"], [0, \"⥏\"], [0, \"⥐\"], [0, \"⥑\"], [0, \"⥒\"], [0, \"⥓\"], [0, \"⥔\"], [0, \"⥕\"], [0, \"⥖\"], [0, \"⥗\"], [0, \"⥘\"], [0, \"⥙\"], [0, \"⥚\"], [0, \"⥛\"], [0, \"⥜\"], [0, \"⥝\"], [0, \"⥞\"], [0, \"⥟\"], [0, \"⥠\"], [0, \"⥡\"], [0, \"⥢\"], [0, \"⥣\"], [0, \"⥤\"], [0, \"⥥\"], [0, \"⥦\"], [0, \"⥧\"], [0, \"⥨\"], [0, \"⥩\"], [0, \"⥪\"], [0, \"⥫\"], [0, \"⥬\"], [0, \"⥭\"], [0, \"⥮\"], [0, \"⥯\"], [0, \"⥰\"], [0, \"⥱\"], [0, \"⥲\"], [0, \"⥳\"], [0, \"⥴\"], [0, \"⥵\"], [0, \"⥶\"], [1, \"⥸\"], [0, \"⥹\"], [1, \"⥻\"], [0, \"⥼\"], [0, \"⥽\"], [0, \"⥾\"], [0, \"⥿\"], [5, \"⦅\"], [0, \"⦆\"], [4, \"⦋\"], [0, \"⦌\"], [0, \"⦍\"], [0, \"⦎\"], [0, \"⦏\"], [0, \"⦐\"], [0, \"⦑\"], [0, \"⦒\"], [0, \"⦓\"], [0, \"⦔\"], [0, \"⦕\"], [0, \"⦖\"], [3, \"⦚\"], [1, \"⦜\"], [0, \"⦝\"], [6, \"⦤\"], [0, \"⦥\"], [0, \"⦦\"], [0, \"⦧\"], [0, \"⦨\"], [0, \"⦩\"], [0, \"⦪\"], [0, \"⦫\"], [0, \"⦬\"], [0, \"⦭\"], [0, \"⦮\"], [0, \"⦯\"], [0, \"⦰\"], [0, \"⦱\"], [0, \"⦲\"], [0, \"⦳\"], [0, \"⦴\"], [0, \"⦵\"], [0, \"⦶\"], [0, \"⦷\"], [1, \"⦹\"], [1, \"⦻\"], [0, \"⦼\"], [1, \"⦾\"], [0, \"⦿\"], [0, \"⧀\"], [0, \"⧁\"], [0, \"⧂\"], [0, \"⧃\"], [0, \"⧄\"], [0, \"⧅\"], [3, \"⧉\"], [3, \"⧍\"], [0, \"⧎\"], [0, { v: \"⧏\", n: 824, o: \"⧏̸\" }], [0, { v: \"⧐\", n: 824, o: \"⧐̸\" }], [11, \"⧜\"], [0, \"⧝\"], [0, \"⧞\"], [4, \"⧣\"], [0, \"⧤\"], [0, \"⧥\"], [5, \"⧫\"], [8, \"⧴\"], [1, \"⧶\"], [9, \"⨀\"], [0, \"⨁\"], [0, \"⨂\"], [1, \"⨄\"], [1, \"⨆\"], [5, \"⨌\"], [0, \"⨍\"], [2, \"⨐\"], [0, \"⨑\"], [0, \"⨒\"], [0, \"⨓\"], [0, \"⨔\"], [0, \"⨕\"], [0, \"⨖\"], [0, \"⨗\"], [10, \"⨢\"], [0, \"⨣\"], [0, \"⨤\"], [0, \"⨥\"], [0, \"⨦\"], [0, \"⨧\"], [1, \"⨩\"], [0, \"⨪\"], [2, \"⨭\"], [0, \"⨮\"], [0, \"⨯\"], [0, \"⨰\"], [0, \"⨱\"], [1, \"⨳\"], [0, \"⨴\"], [0, \"⨵\"], [0, \"⨶\"], [0, \"⨷\"], [0, \"⨸\"], [0, \"⨹\"], [0, \"⨺\"], [0, \"⨻\"], [0, \"⨼\"], [2, \"⨿\"], [0, \"⩀\"], [1, \"⩂\"], [0, \"⩃\"], [0, \"⩄\"], [0, \"⩅\"], [0, \"⩆\"], [0, \"⩇\"], [0, \"⩈\"], [0, \"⩉\"], [0, \"⩊\"], [0, \"⩋\"], [0, \"⩌\"], [0, \"⩍\"], [2, \"⩐\"], [2, \"⩓\"], [0, \"⩔\"], [0, \"⩕\"], [0, \"⩖\"], [0, \"⩗\"], [0, \"⩘\"], [1, \"⩚\"], [0, \"⩛\"], [0, \"⩜\"], [0, \"⩝\"], [1, \"⩟\"], [6, \"⩦\"], [3, \"⩪\"], [2, { v: \"⩭\", n: 824, o: \"⩭̸\" }], [0, \"⩮\"], [0, \"⩯\"], [0, { v: \"⩰\", n: 824, o: \"⩰̸\" }], [0, \"⩱\"], [0, \"⩲\"], [0, \"⩳\"], [0, \"⩴\"], [0, \"⩵\"], [1, \"⩷\"], [0, \"⩸\"], [0, \"⩹\"], [0, \"⩺\"], [0, \"⩻\"], [0, \"⩼\"], [0, { v: \"⩽\", n: 824, o: \"⩽̸\" }], [0, { v: \"⩾\", n: 824, o: \"⩾̸\" }], [0, \"⩿\"], [0, \"⪀\"], [0, \"⪁\"], [0, \"⪂\"], [0, \"⪃\"], [0, \"⪄\"], [0, \"⪅\"], [0, \"⪆\"], [0, \"⪇\"], [0, \"⪈\"], [0, \"⪉\"], [0, \"⪊\"], [0, \"⪋\"], [0, \"⪌\"], [0, \"⪍\"], [0, \"⪎\"], [0, \"⪏\"], [0, \"⪐\"], [0, \"⪑\"], [0, \"⪒\"], [0, \"⪓\"], [0, \"⪔\"], [0, \"⪕\"], [0, \"⪖\"], [0, \"⪗\"], [0, \"⪘\"], [0, \"⪙\"], [0, \"⪚\"], [2, \"⪝\"], [0, \"⪞\"], [0, \"⪟\"], [0, \"⪠\"], [0, { v: \"⪡\", n: 824, o: \"⪡̸\" }], [0, { v: \"⪢\", n: 824, o: \"⪢̸\" }], [1, \"⪤\"], [0, \"⪥\"], [0, \"⪦\"], [0, \"⪧\"], [0, \"⪨\"], [0, \"⪩\"], [0, \"⪪\"], [0, \"⪫\"], [0, { v: \"⪬\", n: 65024, o: \"⪬︀\" }], [0, { v: \"⪭\", n: 65024, o: \"⪭︀\" }], [0, \"⪮\"], [0, { v: \"⪯\", n: 824, o: \"⪯̸\" }], [0, { v: \"⪰\", n: 824, o: \"⪰̸\" }], [2, \"⪳\"], [0, \"⪴\"], [0, \"⪵\"], [0, \"⪶\"], [0, \"⪷\"], [0, \"⪸\"], [0, \"⪹\"], [0, \"⪺\"], [0, \"⪻\"], [0, \"⪼\"], [0, \"⪽\"], [0, \"⪾\"], [0, \"⪿\"], [0, \"⫀\"], [0, \"⫁\"], [0, \"⫂\"], [0, \"⫃\"], [0, \"⫄\"], [0, { v: \"⫅\", n: 824, o: \"⫅̸\" }], [0, { v: \"⫆\", n: 824, o: \"⫆̸\" }], [0, \"⫇\"], [0, \"⫈\"], [2, { v: \"⫋\", n: 65024, o: \"⫋︀\" }], [0, { v: \"⫌\", n: 65024, o: \"⫌︀\" }], [2, \"⫏\"], [0, \"⫐\"], [0, \"⫑\"], [0, \"⫒\"], [0, \"⫓\"], [0, \"⫔\"], [0, \"⫕\"], [0, \"⫖\"], [0, \"⫗\"], [0, \"⫘\"], [0, \"⫙\"], [0, \"⫚\"], [0, \"⫛\"], [8, \"⫤\"], [1, \"⫦\"], [0, \"⫧\"], [0, \"⫨\"], [0, \"⫩\"], [1, \"⫫\"], [0, \"⫬\"], [0, \"⫭\"], [0, \"⫮\"], [0, \"⫯\"], [0, \"⫰\"], [0, \"⫱\"], [0, \"⫲\"], [0, \"⫳\"], [9, { v: \"⫽\", n: 8421, o: \"⫽⃥\" }], [44343, { n: new Map(/* #__PURE__ */ restoreDiff([[56476, \"𝒜\"], [1, \"𝒞\"], [0, \"𝒟\"], [2, \"𝒢\"], [2, \"𝒥\"], [0, \"𝒦\"], [2, \"𝒩\"], [0, \"𝒪\"], [0, \"𝒫\"], [0, \"𝒬\"], [1, \"𝒮\"], [0, \"𝒯\"], [0, \"𝒰\"], [0, \"𝒱\"], [0, \"𝒲\"], [0, \"𝒳\"], [0, \"𝒴\"], [0, \"𝒵\"], [0, \"𝒶\"], [0, \"𝒷\"], [0, \"𝒸\"], [0, \"𝒹\"], [1, \"𝒻\"], [1, \"𝒽\"], [0, \"𝒾\"], [0, \"𝒿\"], [0, \"𝓀\"], [0, \"𝓁\"], [0, \"𝓂\"], [0, \"𝓃\"], [1, \"𝓅\"], [0, \"𝓆\"], [0, \"𝓇\"], [0, \"𝓈\"], [0, \"𝓉\"], [0, \"𝓊\"], [0, \"𝓋\"], [0, \"𝓌\"], [0, \"𝓍\"], [0, \"𝓎\"], [0, \"𝓏\"], [52, \"𝔄\"], [0, \"𝔅\"], [1, \"𝔇\"], [0, \"𝔈\"], [0, \"𝔉\"], [0, \"𝔊\"], [2, \"𝔍\"], [0, \"𝔎\"], [0, \"𝔏\"], [0, \"𝔐\"], [0, \"𝔑\"], [0, \"𝔒\"], [0, \"𝔓\"], [0, \"𝔔\"], [1, \"𝔖\"], [0, \"𝔗\"], [0, \"𝔘\"], [0, \"𝔙\"], [0, \"𝔚\"], [0, \"𝔛\"], [0, \"𝔜\"], [1, \"𝔞\"], [0, \"𝔟\"], [0, \"𝔠\"], [0, \"𝔡\"], [0, \"𝔢\"], [0, \"𝔣\"], [0, \"𝔤\"], [0, \"𝔥\"], [0, \"𝔦\"], [0, \"𝔧\"], [0, \"𝔨\"], [0, \"𝔩\"], [0, \"𝔪\"], [0, \"𝔫\"], [0, \"𝔬\"], [0, \"𝔭\"], [0, \"𝔮\"], [0, \"𝔯\"], [0, \"𝔰\"], [0, \"𝔱\"], [0, \"𝔲\"], [0, \"𝔳\"], [0, \"𝔴\"], [0, \"𝔵\"], [0, \"𝔶\"], [0, \"𝔷\"], [0, \"𝔸\"], [0, \"𝔹\"], [1, \"𝔻\"], [0, \"𝔼\"], [0, \"𝔽\"], [0, \"𝔾\"], [1, \"𝕀\"], [0, \"𝕁\"], [0, \"𝕂\"], [0, \"𝕃\"], [0, \"𝕄\"], [1, \"𝕆\"], [3, \"𝕊\"], [0, \"𝕋\"], [0, \"𝕌\"], [0, \"𝕍\"], [0, \"𝕎\"], [0, \"𝕏\"], [0, \"𝕐\"], [1, \"𝕒\"], [0, \"𝕓\"], [0, \"𝕔\"], [0, \"𝕕\"], [0, \"𝕖\"], [0, \"𝕗\"], [0, \"𝕘\"], [0, \"𝕙\"], [0, \"𝕚\"], [0, \"𝕛\"], [0, \"𝕜\"], [0, \"𝕝\"], [0, \"𝕞\"], [0, \"𝕟\"], [0, \"𝕠\"], [0, \"𝕡\"], [0, \"𝕢\"], [0, \"𝕣\"], [0, \"𝕤\"], [0, \"𝕥\"], [0, \"𝕦\"], [0, \"𝕧\"], [0, \"𝕨\"], [0, \"𝕩\"], [0, \"𝕪\"], [0, \"𝕫\"]])) }], [8906, \"ff\"], [0, \"fi\"], [0, \"fl\"], [0, \"ffi\"], [0, \"ffl\"]]));\n//# sourceMappingURL=encode-html.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.encodeHTML5 = exports.encodeHTML4 = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = exports.EncodingMode = exports.DecodingMode = exports.EntityLevel = void 0;\nvar decode_js_1 = require(\"./decode.js\");\nvar encode_js_1 = require(\"./encode.js\");\nvar escape_js_1 = require(\"./escape.js\");\n/** The level of entities to support. */\nvar EntityLevel;\n(function (EntityLevel) {\n /** Support only XML entities. */\n EntityLevel[EntityLevel[\"XML\"] = 0] = \"XML\";\n /** Support HTML entities, which are a superset of XML entities. */\n EntityLevel[EntityLevel[\"HTML\"] = 1] = \"HTML\";\n})(EntityLevel = exports.EntityLevel || (exports.EntityLevel = {}));\n/** Determines whether some entities are allowed to be written without a trailing `;`. */\nvar DecodingMode;\n(function (DecodingMode) {\n /** Support legacy HTML entities. */\n DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n /** Do not support legacy HTML entities. */\n DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n})(DecodingMode = exports.DecodingMode || (exports.DecodingMode = {}));\nvar EncodingMode;\n(function (EncodingMode) {\n /**\n * The output is UTF-8 encoded. Only characters that need escaping within\n * XML will be escaped.\n */\n EncodingMode[EncodingMode[\"UTF8\"] = 0] = \"UTF8\";\n /**\n * The output consists only of ASCII characters. Characters that need\n * escaping within HTML, and characters that aren't ASCII characters will\n * be escaped.\n */\n EncodingMode[EncodingMode[\"ASCII\"] = 1] = \"ASCII\";\n /**\n * Encode all characters that have an equivalent entity, as well as all\n * characters that are not ASCII characters.\n */\n EncodingMode[EncodingMode[\"Extensive\"] = 2] = \"Extensive\";\n /**\n * Encode all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Attribute\"] = 3] = \"Attribute\";\n /**\n * Encode all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Text\"] = 4] = \"Text\";\n})(EncodingMode = exports.EncodingMode || (exports.EncodingMode = {}));\n/**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n */\nfunction decode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n if (opts.level === EntityLevel.HTML) {\n if (opts.mode === DecodingMode.Strict) {\n return (0, decode_js_1.decodeHTMLStrict)(data);\n }\n return (0, decode_js_1.decodeHTML)(data);\n }\n return (0, decode_js_1.decodeXML)(data);\n}\nexports.decode = decode;\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n * @deprecated Use `decode` with the `mode` set to `Strict`.\n */\nfunction decodeStrict(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n if (opts.level === EntityLevel.HTML) {\n if (opts.mode === DecodingMode.Legacy) {\n return (0, decode_js_1.decodeHTML)(data);\n }\n return (0, decode_js_1.decodeHTMLStrict)(data);\n }\n return (0, decode_js_1.decodeXML)(data);\n}\nexports.decodeStrict = decodeStrict;\n/**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param options Encoding options.\n */\nfunction encode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n // Mode `UTF8` just escapes XML entities\n if (opts.mode === EncodingMode.UTF8)\n return (0, escape_js_1.escapeUTF8)(data);\n if (opts.mode === EncodingMode.Attribute)\n return (0, escape_js_1.escapeAttribute)(data);\n if (opts.mode === EncodingMode.Text)\n return (0, escape_js_1.escapeText)(data);\n if (opts.level === EntityLevel.HTML) {\n if (opts.mode === EncodingMode.ASCII) {\n return (0, encode_js_1.encodeNonAsciiHTML)(data);\n }\n return (0, encode_js_1.encodeHTML)(data);\n }\n // ASCII and Extensive are equivalent\n return (0, escape_js_1.encodeXML)(data);\n}\nexports.encode = encode;\nvar escape_js_2 = require(\"./escape.js\");\nObject.defineProperty(exports, \"encodeXML\", { enumerable: true, get: function () { return escape_js_2.encodeXML; } });\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return escape_js_2.escape; } });\nObject.defineProperty(exports, \"escapeUTF8\", { enumerable: true, get: function () { return escape_js_2.escapeUTF8; } });\nObject.defineProperty(exports, \"escapeAttribute\", { enumerable: true, get: function () { return escape_js_2.escapeAttribute; } });\nObject.defineProperty(exports, \"escapeText\", { enumerable: true, get: function () { return escape_js_2.escapeText; } });\nvar encode_js_2 = require(\"./encode.js\");\nObject.defineProperty(exports, \"encodeHTML\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeNonAsciiHTML\", { enumerable: true, get: function () { return encode_js_2.encodeNonAsciiHTML; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"encodeHTML4\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeHTML5\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nvar decode_js_2 = require(\"./decode.js\");\nObject.defineProperty(exports, \"decodeXML\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\nObject.defineProperty(exports, \"decodeHTML\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"decodeHTML4\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML5\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML4Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTML5Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeXMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\n//# sourceMappingURL=index.js.map","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","/**\n * Srcset Parser\n *\n * By Alex Bell | MIT License\n *\n * JS Parser for the string value that appears in markup \n *\n * @returns Array [{url: _, d: _, w: _, h:_}, ...]\n *\n * Based super duper closely on the reference algorithm at:\n * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-srcset-attribute\n *\n * Most comments are copied in directly from the spec\n * (except for comments in parens).\n */\n\n(function (root, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([], factory);\n\t} else if (typeof module === 'object' && module.exports) {\n\t\t// Node. Does not work with strict CommonJS, but\n\t\t// only CommonJS-like environments that support module.exports,\n\t\t// like Node.\n\t\tmodule.exports = factory();\n\t} else {\n\t\t// Browser globals (root is window)\n\t\troot.parseSrcset = factory();\n\t}\n}(this, function () {\n\n\t// 1. Let input be the value passed to this algorithm.\n\treturn function (input) {\n\n\t\t// UTILITY FUNCTIONS\n\n\t\t// Manual is faster than RegEx\n\t\t// http://bjorn.tipling.com/state-and-regular-expressions-in-javascript\n\t\t// http://jsperf.com/whitespace-character/5\n\t\tfunction isSpace(c) {\n\t\t\treturn (c === \"\\u0020\" || // space\n\t\t\tc === \"\\u0009\" || // horizontal tab\n\t\t\tc === \"\\u000A\" || // new line\n\t\t\tc === \"\\u000C\" || // form feed\n\t\t\tc === \"\\u000D\"); // carriage return\n\t\t}\n\n\t\tfunction collectCharacters(regEx) {\n\t\t\tvar chars,\n\t\t\t\tmatch = regEx.exec(input.substring(pos));\n\t\t\tif (match) {\n\t\t\t\tchars = match[ 0 ];\n\t\t\t\tpos += chars.length;\n\t\t\t\treturn chars;\n\t\t\t}\n\t\t}\n\n\t\tvar inputLength = input.length,\n\n\t\t\t// (Don't use \\s, to avoid matching non-breaking space)\n\t\t\tregexLeadingSpaces = /^[ \\t\\n\\r\\u000c]+/,\n\t\t\tregexLeadingCommasOrSpaces = /^[, \\t\\n\\r\\u000c]+/,\n\t\t\tregexLeadingNotSpaces = /^[^ \\t\\n\\r\\u000c]+/,\n\t\t\tregexTrailingCommas = /[,]+$/,\n\t\t\tregexNonNegativeInteger = /^\\d+$/,\n\n\t\t\t// ( Positive or negative or unsigned integers or decimals, without or without exponents.\n\t\t\t// Must include at least one digit.\n\t\t\t// According to spec tests any decimal point must be followed by a digit.\n\t\t\t// No leading plus sign is allowed.)\n\t\t\t// https://html.spec.whatwg.org/multipage/infrastructure.html#valid-floating-point-number\n\t\t\tregexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,\n\n\t\t\turl,\n\t\t\tdescriptors,\n\t\t\tcurrentDescriptor,\n\t\t\tstate,\n\t\t\tc,\n\n\t\t\t// 2. Let position be a pointer into input, initially pointing at the start\n\t\t\t// of the string.\n\t\t\tpos = 0,\n\n\t\t\t// 3. Let candidates be an initially empty source set.\n\t\t\tcandidates = [];\n\n\t\t// 4. Splitting loop: Collect a sequence of characters that are space\n\t\t// characters or U+002C COMMA characters. If any U+002C COMMA characters\n\t\t// were collected, that is a parse error.\n\t\twhile (true) {\n\t\t\tcollectCharacters(regexLeadingCommasOrSpaces);\n\n\t\t\t// 5. If position is past the end of input, return candidates and abort these steps.\n\t\t\tif (pos >= inputLength) {\n\t\t\t\treturn candidates; // (we're done, this is the sole return path)\n\t\t\t}\n\n\t\t\t// 6. Collect a sequence of characters that are not space characters,\n\t\t\t// and let that be url.\n\t\t\turl = collectCharacters(regexLeadingNotSpaces);\n\n\t\t\t// 7. Let descriptors be a new empty list.\n\t\t\tdescriptors = [];\n\n\t\t\t// 8. If url ends with a U+002C COMMA character (,), follow these substeps:\n\t\t\t//\t\t(1). Remove all trailing U+002C COMMA characters from url. If this removed\n\t\t\t// more than one character, that is a parse error.\n\t\t\tif (url.slice(-1) === \",\") {\n\t\t\t\turl = url.replace(regexTrailingCommas, \"\");\n\t\t\t\t// (Jump ahead to step 9 to skip tokenization and just push the candidate).\n\t\t\t\tparseDescriptors();\n\n\t\t\t\t//\tOtherwise, follow these substeps:\n\t\t\t} else {\n\t\t\t\ttokenize();\n\t\t\t} // (close else of step 8)\n\n\t\t\t// 16. Return to the step labeled splitting loop.\n\t\t} // (Close of big while loop.)\n\n\t\t/**\n\t\t * Tokenizes descriptor properties prior to parsing\n\t\t * Returns undefined.\n\t\t */\n\t\tfunction tokenize() {\n\n\t\t\t// 8.1. Descriptor tokeniser: Skip whitespace\n\t\t\tcollectCharacters(regexLeadingSpaces);\n\n\t\t\t// 8.2. Let current descriptor be the empty string.\n\t\t\tcurrentDescriptor = \"\";\n\n\t\t\t// 8.3. Let state be in descriptor.\n\t\t\tstate = \"in descriptor\";\n\n\t\t\twhile (true) {\n\n\t\t\t\t// 8.4. Let c be the character at position.\n\t\t\t\tc = input.charAt(pos);\n\n\t\t\t\t// Do the following depending on the value of state.\n\t\t\t\t// For the purpose of this step, \"EOF\" is a special character representing\n\t\t\t\t// that position is past the end of input.\n\n\t\t\t\t// In descriptor\n\t\t\t\tif (state === \"in descriptor\") {\n\t\t\t\t\t// Do the following, depending on the value of c:\n\n\t\t\t\t\t// Space character\n\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t// descriptors and let current descriptor be the empty string.\n\t\t\t\t\t// Set state to after descriptor.\n\t\t\t\t\tif (isSpace(c)) {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t\tcurrentDescriptor = \"\";\n\t\t\t\t\t\t\tstate = \"after descriptor\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// U+002C COMMA (,)\n\t\t\t\t\t\t// Advance position to the next character in input. If current descriptor\n\t\t\t\t\t\t// is not empty, append current descriptor to descriptors. Jump to the step\n\t\t\t\t\t\t// labeled descriptor parser.\n\t\t\t\t\t} else if (c === \",\") {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// U+0028 LEFT PARENTHESIS (()\n\t\t\t\t\t\t// Append c to current descriptor. Set state to in parens.\n\t\t\t\t\t} else if (c === \"\\u0028\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in parens\";\n\n\t\t\t\t\t\t// EOF\n\t\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t\t// descriptors. Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\t\t\t\t\t// (end \"in descriptor\"\n\n\t\t\t\t\t// In parens\n\t\t\t\t} else if (state === \"in parens\") {\n\n\t\t\t\t\t// U+0029 RIGHT PARENTHESIS ())\n\t\t\t\t\t// Append c to current descriptor. Set state to in descriptor.\n\t\t\t\t\tif (c === \")\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in descriptor\";\n\n\t\t\t\t\t\t// EOF\n\t\t\t\t\t\t// Append current descriptor to descriptors. Jump to the step labeled\n\t\t\t\t\t\t// descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\n\t\t\t\t\t// After descriptor\n\t\t\t\t} else if (state === \"after descriptor\") {\n\n\t\t\t\t\t// Do the following, depending on the value of c:\n\t\t\t\t\t// Space character: Stay in this state.\n\t\t\t\t\tif (isSpace(c)) {\n\n\t\t\t\t\t\t// EOF: Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Set state to in descriptor. Set position to the previous character in input.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = \"in descriptor\";\n\t\t\t\t\t\tpos -= 1;\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Advance position to the next character in input.\n\t\t\t\tpos += 1;\n\n\t\t\t\t// Repeat this step.\n\t\t\t} // (close while true loop)\n\t\t}\n\n\t\t/**\n\t\t * Adds descriptor properties to a candidate, pushes to the candidates array\n\t\t * @return undefined\n\t\t */\n\t\t// Declared outside of the while loop so that it's only created once.\n\t\tfunction parseDescriptors() {\n\n\t\t\t// 9. Descriptor parser: Let error be no.\n\t\t\tvar pError = false,\n\n\t\t\t\t// 10. Let width be absent.\n\t\t\t\t// 11. Let density be absent.\n\t\t\t\t// 12. Let future-compat-h be absent. (We're implementing it now as h)\n\t\t\t\tw, d, h, i,\n\t\t\t\tcandidate = {},\n\t\t\t\tdesc, lastChar, value, intVal, floatVal;\n\n\t\t\t// 13. For each descriptor in descriptors, run the appropriate set of steps\n\t\t\t// from the following list:\n\t\t\tfor (i = 0 ; i < descriptors.length; i++) {\n\t\t\t\tdesc = descriptors[ i ];\n\n\t\t\t\tlastChar = desc[ desc.length - 1 ];\n\t\t\t\tvalue = desc.substring(0, desc.length - 1);\n\t\t\t\tintVal = parseInt(value, 10);\n\t\t\t\tfloatVal = parseFloat(value);\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0077 LATIN SMALL LETTER W character\n\t\t\t\tif (regexNonNegativeInteger.test(value) && (lastChar === \"w\")) {\n\n\t\t\t\t\t// If width and density are not both absent, then let error be yes.\n\t\t\t\t\tif (w || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes.\n\t\t\t\t\t// Otherwise, let width be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {w = intVal;}\n\n\t\t\t\t\t// If the descriptor consists of a valid floating-point number followed by\n\t\t\t\t\t// a U+0078 LATIN SMALL LETTER X character\n\t\t\t\t} else if (regexFloatingPoint.test(value) && (lastChar === \"x\")) {\n\n\t\t\t\t\t// If width, density and future-compat-h are not all absent, then let error\n\t\t\t\t\t// be yes.\n\t\t\t\t\tif (w || d || h) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing floating-point number values to the descriptor.\n\t\t\t\t\t// If the result is less than zero, let error be yes. Otherwise, let density\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (floatVal < 0) {pError = true;} else {d = floatVal;}\n\n\t\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t\t// a U+0068 LATIN SMALL LETTER H character\n\t\t\t\t} else if (regexNonNegativeInteger.test(value) && (lastChar === \"h\")) {\n\n\t\t\t\t\t// If height and density are not both absent, then let error be yes.\n\t\t\t\t\tif (h || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes. Otherwise, let future-compat-h\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {h = intVal;}\n\n\t\t\t\t\t// Anything else, Let error be yes.\n\t\t\t\t} else {pError = true;}\n\t\t\t} // (close step 13 for loop)\n\n\t\t\t// 15. If error is still no, then append a new image source to candidates whose\n\t\t\t// URL is url, associated with a width width if not absent and a pixel\n\t\t\t// density density if not absent. Otherwise, there is a parse error.\n\t\t\tif (!pError) {\n\t\t\t\tcandidate.url = url;\n\t\t\t\tif (w) { candidate.w = w;}\n\t\t\t\tif (d) { candidate.d = d;}\n\t\t\t\tif (h) { candidate.h = h;}\n\t\t\t\tcandidates.push(candidate);\n\t\t\t} else if (console && console.log) {\n\t\t\t\tconsole.log(\"Invalid srcset descriptor found in '\" +\n\t\t\t\t\tinput + \"' at '\" + desc + \"'.\");\n\t\t\t}\n\t\t} // (close parseDescriptors fn)\n\n\t}\n}));\n","var x=String;\nvar create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n","'use strict'\n\nlet Container = require('./container')\n\nclass AtRule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'atrule'\n }\n\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.append(...children)\n }\n\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.prepend(...children)\n }\n}\n\nmodule.exports = AtRule\nAtRule.default = AtRule\n\nContainer.registerAtRule(AtRule)\n","'use strict'\n\nlet Node = require('./node')\n\nclass Comment extends Node {\n constructor(defaults) {\n super(defaults)\n this.type = 'comment'\n }\n}\n\nmodule.exports = Comment\nComment.default = Comment\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet Declaration = require('./declaration')\nlet Comment = require('./comment')\nlet Node = require('./node')\n\nlet parse, Rule, AtRule, Root\n\nfunction cleanSource(nodes) {\n return nodes.map(i => {\n if (i.nodes) i.nodes = cleanSource(i.nodes)\n delete i.source\n return i\n })\n}\n\nfunction markDirtyUp(node) {\n node[isClean] = false\n if (node.proxyOf.nodes) {\n for (let i of node.proxyOf.nodes) {\n markDirtyUp(i)\n }\n }\n}\n\nclass Container extends Node {\n push(child) {\n child.parent = this\n this.proxyOf.nodes.push(child)\n return this\n }\n\n each(callback) {\n if (!this.proxyOf.nodes) return undefined\n let iterator = this.getIterator()\n\n let index, result\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index = this.indexes[iterator]\n result = callback(this.proxyOf.nodes[index], index)\n if (result === false) break\n\n this.indexes[iterator] += 1\n }\n\n delete this.indexes[iterator]\n return result\n }\n\n walk(callback) {\n return this.each((child, i) => {\n let result\n try {\n result = callback(child, i)\n } catch (e) {\n throw child.addToError(e)\n }\n if (result !== false && child.walk) {\n result = child.walk(callback)\n }\n\n return result\n })\n }\n\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop\n return this.walk((child, i) => {\n if (child.type === 'decl') {\n return callback(child, i)\n }\n })\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'decl' && prop.test(child.prop)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'decl' && child.prop === prop) {\n return callback(child, i)\n }\n })\n }\n\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector\n\n return this.walk((child, i) => {\n if (child.type === 'rule') {\n return callback(child, i)\n }\n })\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'rule' && selector.test(child.selector)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'rule' && child.selector === selector) {\n return callback(child, i)\n }\n })\n }\n\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name\n return this.walk((child, i) => {\n if (child.type === 'atrule') {\n return callback(child, i)\n }\n })\n }\n if (name instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'atrule' && name.test(child.name)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'atrule' && child.name === name) {\n return callback(child, i)\n }\n })\n }\n\n walkComments(callback) {\n return this.walk((child, i) => {\n if (child.type === 'comment') {\n return callback(child, i)\n }\n })\n }\n\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last)\n for (let node of nodes) this.proxyOf.nodes.push(node)\n }\n\n this.markDirty()\n\n return this\n }\n\n prepend(...children) {\n children = children.reverse()\n for (let child of children) {\n let nodes = this.normalize(child, this.first, 'prepend').reverse()\n for (let node of nodes) this.proxyOf.nodes.unshift(node)\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween)\n if (this.nodes) {\n for (let node of this.nodes) node.cleanRaws(keepBetween)\n }\n }\n\n insertBefore(exist, add) {\n let existIndex = this.index(exist)\n let type = existIndex === 0 ? 'prepend' : false\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex <= index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n insertAfter(exist, add) {\n let existIndex = this.index(exist)\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex < index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n removeChild(child) {\n child = this.index(child)\n this.proxyOf.nodes[child].parent = undefined\n this.proxyOf.nodes.splice(child, 1)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (index >= child) {\n this.indexes[id] = index - 1\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n removeAll() {\n for (let node of this.proxyOf.nodes) node.parent = undefined\n this.proxyOf.nodes = []\n\n this.markDirty()\n\n return this\n }\n\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts\n opts = {}\n }\n\n this.walkDecls(decl => {\n if (opts.props && !opts.props.includes(decl.prop)) return\n if (opts.fast && !decl.value.includes(opts.fast)) return\n\n decl.value = decl.value.replace(pattern, callback)\n })\n\n this.markDirty()\n\n return this\n }\n\n every(condition) {\n return this.nodes.every(condition)\n }\n\n some(condition) {\n return this.nodes.some(condition)\n }\n\n index(child) {\n if (typeof child === 'number') return child\n if (child.proxyOf) child = child.proxyOf\n return this.proxyOf.nodes.indexOf(child)\n }\n\n get first() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[0]\n }\n\n get last() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]\n }\n\n normalize(nodes, sample) {\n if (typeof nodes === 'string') {\n nodes = cleanSource(parse(nodes).nodes)\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type === 'root' && this.type !== 'document') {\n nodes = nodes.nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type) {\n nodes = [nodes]\n } else if (nodes.prop) {\n if (typeof nodes.value === 'undefined') {\n throw new Error('Value field is missed in node creation')\n } else if (typeof nodes.value !== 'string') {\n nodes.value = String(nodes.value)\n }\n nodes = [new Declaration(nodes)]\n } else if (nodes.selector) {\n nodes = [new Rule(nodes)]\n } else if (nodes.name) {\n nodes = [new AtRule(nodes)]\n } else if (nodes.text) {\n nodes = [new Comment(nodes)]\n } else {\n throw new Error('Unknown node type in node creation')\n }\n\n let processed = nodes.map(i => {\n /* c8 ignore next */\n if (!i[my]) Container.rebuild(i)\n i = i.proxyOf\n if (i.parent) i.parent.removeChild(i)\n if (i[isClean]) markDirtyUp(i)\n if (typeof i.raws.before === 'undefined') {\n if (sample && typeof sample.raws.before !== 'undefined') {\n i.raws.before = sample.raws.before.replace(/\\S/g, '')\n }\n }\n i.parent = this.proxyOf\n return i\n })\n\n return processed\n }\n\n getProxyProcessor() {\n return {\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (prop === 'name' || prop === 'params' || prop === 'selector') {\n node.markDirty()\n }\n return true\n },\n\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (!node[prop]) {\n return node[prop]\n } else if (\n prop === 'each' ||\n (typeof prop === 'string' && prop.startsWith('walk'))\n ) {\n return (...args) => {\n return node[prop](\n ...args.map(i => {\n if (typeof i === 'function') {\n return (child, index) => i(child.toProxy(), index)\n } else {\n return i\n }\n })\n )\n }\n } else if (prop === 'every' || prop === 'some') {\n return cb => {\n return node[prop]((child, ...other) =>\n cb(child.toProxy(), ...other)\n )\n }\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else if (prop === 'nodes') {\n return node.nodes.map(i => i.toProxy())\n } else if (prop === 'first' || prop === 'last') {\n return node[prop].toProxy()\n } else {\n return node[prop]\n }\n }\n }\n }\n\n getIterator() {\n if (!this.lastEach) this.lastEach = 0\n if (!this.indexes) this.indexes = {}\n\n this.lastEach += 1\n let iterator = this.lastEach\n this.indexes[iterator] = 0\n\n return iterator\n }\n}\n\nContainer.registerParse = dependant => {\n parse = dependant\n}\n\nContainer.registerRule = dependant => {\n Rule = dependant\n}\n\nContainer.registerAtRule = dependant => {\n AtRule = dependant\n}\n\nContainer.registerRoot = dependant => {\n Root = dependant\n}\n\nmodule.exports = Container\nContainer.default = Container\n\n/* c8 ignore start */\nContainer.rebuild = node => {\n if (node.type === 'atrule') {\n Object.setPrototypeOf(node, AtRule.prototype)\n } else if (node.type === 'rule') {\n Object.setPrototypeOf(node, Rule.prototype)\n } else if (node.type === 'decl') {\n Object.setPrototypeOf(node, Declaration.prototype)\n } else if (node.type === 'comment') {\n Object.setPrototypeOf(node, Comment.prototype)\n } else if (node.type === 'root') {\n Object.setPrototypeOf(node, Root.prototype)\n }\n\n node[my] = true\n\n if (node.nodes) {\n node.nodes.forEach(child => {\n Container.rebuild(child)\n })\n }\n}\n/* c8 ignore stop */\n","'use strict'\n\nlet pico = require('picocolors')\n\nlet terminalHighlight = require('./terminal-highlight')\n\nclass CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin) {\n super(message)\n this.name = 'CssSyntaxError'\n this.reason = message\n\n if (file) {\n this.file = file\n }\n if (source) {\n this.source = source\n }\n if (plugin) {\n this.plugin = plugin\n }\n if (typeof line !== 'undefined' && typeof column !== 'undefined') {\n if (typeof line === 'number') {\n this.line = line\n this.column = column\n } else {\n this.line = line.line\n this.column = line.column\n this.endLine = column.line\n this.endColumn = column.column\n }\n }\n\n this.setMessage()\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError)\n }\n }\n\n setMessage() {\n this.message = this.plugin ? this.plugin + ': ' : ''\n this.message += this.file ? this.file : ''\n if (typeof this.line !== 'undefined') {\n this.message += ':' + this.line + ':' + this.column\n }\n this.message += ': ' + this.reason\n }\n\n showSourceCode(color) {\n if (!this.source) return ''\n\n let css = this.source\n if (color == null) color = pico.isColorSupported\n if (terminalHighlight) {\n if (color) css = terminalHighlight(css)\n }\n\n let lines = css.split(/\\r?\\n/)\n let start = Math.max(this.line - 3, 0)\n let end = Math.min(this.line + 2, lines.length)\n\n let maxWidth = String(end).length\n\n let mark, aside\n if (color) {\n let { bold, red, gray } = pico.createColors(true)\n mark = text => bold(red(text))\n aside = text => gray(text)\n } else {\n mark = aside = str => str\n }\n\n return lines\n .slice(start, end)\n .map((line, index) => {\n let number = start + 1 + index\n let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | '\n if (number === this.line) {\n let spacing =\n aside(gutter.replace(/\\d/g, ' ')) +\n line.slice(0, this.column - 1).replace(/[^\\t]/g, ' ')\n return mark('>') + aside(gutter) + line + '\\n ' + spacing + mark('^')\n }\n return ' ' + aside(gutter) + line\n })\n .join('\\n')\n }\n\n toString() {\n let code = this.showSourceCode()\n if (code) {\n code = '\\n\\n' + code + '\\n'\n }\n return this.name + ': ' + this.message + code\n }\n}\n\nmodule.exports = CssSyntaxError\nCssSyntaxError.default = CssSyntaxError\n","'use strict'\n\nlet Node = require('./node')\n\nclass Declaration extends Node {\n constructor(defaults) {\n if (\n defaults &&\n typeof defaults.value !== 'undefined' &&\n typeof defaults.value !== 'string'\n ) {\n defaults = { ...defaults, value: String(defaults.value) }\n }\n super(defaults)\n this.type = 'decl'\n }\n\n get variable() {\n return this.prop.startsWith('--') || this.prop[0] === '$'\n }\n}\n\nmodule.exports = Declaration\nDeclaration.default = Declaration\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Document extends Container {\n constructor(defaults) {\n // type needs to be passed to super, otherwise child roots won't be normalized correctly\n super({ type: 'document', ...defaults })\n\n if (!this.nodes) {\n this.nodes = []\n }\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n\n return lazy.stringify()\n }\n}\n\nDocument.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nDocument.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Document\nDocument.default = Document\n","'use strict'\n\nlet Declaration = require('./declaration')\nlet PreviousMap = require('./previous-map')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Input = require('./input')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nfunction fromJSON(json, inputs) {\n if (Array.isArray(json)) return json.map(n => fromJSON(n))\n\n let { inputs: ownInputs, ...defaults } = json\n if (ownInputs) {\n inputs = []\n for (let input of ownInputs) {\n let inputHydrated = { ...input, __proto__: Input.prototype }\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap.prototype\n }\n }\n inputs.push(inputHydrated)\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map(n => fromJSON(n, inputs))\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source\n defaults.source = source\n if (inputId != null) {\n defaults.source.input = inputs[inputId]\n }\n }\n if (defaults.type === 'root') {\n return new Root(defaults)\n } else if (defaults.type === 'decl') {\n return new Declaration(defaults)\n } else if (defaults.type === 'rule') {\n return new Rule(defaults)\n } else if (defaults.type === 'comment') {\n return new Comment(defaults)\n } else if (defaults.type === 'atrule') {\n return new AtRule(defaults)\n } else {\n throw new Error('Unknown node type: ' + json.type)\n }\n}\n\nmodule.exports = fromJSON\nfromJSON.default = fromJSON\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { fileURLToPath, pathToFileURL } = require('url')\nlet { resolve, isAbsolute } = require('path')\nlet { nanoid } = require('nanoid/non-secure')\n\nlet terminalHighlight = require('./terminal-highlight')\nlet CssSyntaxError = require('./css-syntax-error')\nlet PreviousMap = require('./previous-map')\n\nlet fromOffsetCache = Symbol('fromOffsetCache')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(resolve && isAbsolute)\n\nclass Input {\n constructor(css, opts = {}) {\n if (\n css === null ||\n typeof css === 'undefined' ||\n (typeof css === 'object' && !css.toString)\n ) {\n throw new Error(`PostCSS received ${css} instead of CSS string`)\n }\n\n this.css = css.toString()\n\n if (this.css[0] === '\\uFEFF' || this.css[0] === '\\uFFFE') {\n this.hasBOM = true\n this.css = this.css.slice(1)\n } else {\n this.hasBOM = false\n }\n\n if (opts.from) {\n if (\n !pathAvailable ||\n /^\\w+:\\/\\//.test(opts.from) ||\n isAbsolute(opts.from)\n ) {\n this.file = opts.from\n } else {\n this.file = resolve(opts.from)\n }\n }\n\n if (pathAvailable && sourceMapAvailable) {\n let map = new PreviousMap(this.css, opts)\n if (map.text) {\n this.map = map\n let file = map.consumer().file\n if (!this.file && file) this.file = this.mapResolve(file)\n }\n }\n\n if (!this.file) {\n this.id = ''\n }\n if (this.map) this.map.file = this.from\n }\n\n fromOffset(offset) {\n let lastLine, lineToIndex\n if (!this[fromOffsetCache]) {\n let lines = this.css.split('\\n')\n lineToIndex = new Array(lines.length)\n let prevIndex = 0\n\n for (let i = 0, l = lines.length; i < l; i++) {\n lineToIndex[i] = prevIndex\n prevIndex += lines[i].length + 1\n }\n\n this[fromOffsetCache] = lineToIndex\n } else {\n lineToIndex = this[fromOffsetCache]\n }\n lastLine = lineToIndex[lineToIndex.length - 1]\n\n let min = 0\n if (offset >= lastLine) {\n min = lineToIndex.length - 1\n } else {\n let max = lineToIndex.length - 2\n let mid\n while (min < max) {\n mid = min + ((max - min) >> 1)\n if (offset < lineToIndex[mid]) {\n max = mid - 1\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1\n } else {\n min = mid\n break\n }\n }\n }\n return {\n line: min + 1,\n col: offset - lineToIndex[min] + 1\n }\n }\n\n error(message, line, column, opts = {}) {\n let result, endLine, endColumn\n\n if (line && typeof line === 'object') {\n let start = line\n let end = column\n if (typeof line.offset === 'number') {\n let pos = this.fromOffset(start.offset)\n line = pos.line\n column = pos.col\n } else {\n line = start.line\n column = start.column\n }\n if (typeof end.offset === 'number') {\n let pos = this.fromOffset(end.offset)\n endLine = pos.line\n endColumn = pos.col\n } else {\n endLine = end.line\n endColumn = end.column\n }\n } else if (!column) {\n let pos = this.fromOffset(line)\n line = pos.line\n column = pos.col\n }\n\n let origin = this.origin(line, column, endLine, endColumn)\n if (origin) {\n result = new CssSyntaxError(\n message,\n origin.endLine === undefined\n ? origin.line\n : { line: origin.line, column: origin.column },\n origin.endLine === undefined\n ? origin.column\n : { line: origin.endLine, column: origin.endColumn },\n origin.source,\n origin.file,\n opts.plugin\n )\n } else {\n result = new CssSyntaxError(\n message,\n endLine === undefined ? line : { line, column },\n endLine === undefined ? column : { line: endLine, column: endColumn },\n this.css,\n this.file,\n opts.plugin\n )\n }\n\n result.input = { line, column, endLine, endColumn, source: this.css }\n if (this.file) {\n if (pathToFileURL) {\n result.input.url = pathToFileURL(this.file).toString()\n }\n result.input.file = this.file\n }\n\n return result\n }\n\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false\n let consumer = this.map.consumer()\n\n let from = consumer.originalPositionFor({ line, column })\n if (!from.source) return false\n\n let to\n if (typeof endLine === 'number') {\n to = consumer.originalPositionFor({ line: endLine, column: endColumn })\n }\n\n let fromUrl\n\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL(from.source)\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n )\n }\n\n let result = {\n url: fromUrl.toString(),\n line: from.line,\n column: from.column,\n endLine: to && to.line,\n endColumn: to && to.column\n }\n\n if (fromUrl.protocol === 'file:') {\n if (fileURLToPath) {\n result.file = fileURLToPath(fromUrl)\n } else {\n /* c8 ignore next 2 */\n throw new Error(`file: protocol is not available in this PostCSS build`)\n }\n }\n\n let source = consumer.sourceContentFor(from.source)\n if (source) result.source = source\n\n return result\n }\n\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file\n }\n return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file)\n }\n\n get from() {\n return this.file || this.id\n }\n\n toJSON() {\n let json = {}\n for (let name of ['hasBOM', 'css', 'file', 'id']) {\n if (this[name] != null) {\n json[name] = this[name]\n }\n }\n if (this.map) {\n json.map = { ...this.map }\n if (json.map.consumerCache) {\n json.map.consumerCache = undefined\n }\n }\n return json\n }\n}\n\nmodule.exports = Input\nInput.default = Input\n\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input)\n}\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet Container = require('./container')\nlet Document = require('./document')\nlet warnOnce = require('./warn-once')\nlet Result = require('./result')\nlet parse = require('./parse')\nlet Root = require('./root')\n\nconst TYPE_TO_CLASS_NAME = {\n document: 'Document',\n root: 'Root',\n atrule: 'AtRule',\n rule: 'Rule',\n decl: 'Declaration',\n comment: 'Comment'\n}\n\nconst PLUGIN_PROPS = {\n postcssPlugin: true,\n prepare: true,\n Once: true,\n Document: true,\n Root: true,\n Declaration: true,\n Rule: true,\n AtRule: true,\n Comment: true,\n DeclarationExit: true,\n RuleExit: true,\n AtRuleExit: true,\n CommentExit: true,\n RootExit: true,\n DocumentExit: true,\n OnceExit: true\n}\n\nconst NOT_VISITORS = {\n postcssPlugin: true,\n prepare: true,\n Once: true\n}\n\nconst CHILDREN = 0\n\nfunction isPromise(obj) {\n return typeof obj === 'object' && typeof obj.then === 'function'\n}\n\nfunction getEvents(node) {\n let key = false\n let type = TYPE_TO_CLASS_NAME[node.type]\n if (node.type === 'decl') {\n key = node.prop.toLowerCase()\n } else if (node.type === 'atrule') {\n key = node.name.toLowerCase()\n }\n\n if (key && node.append) {\n return [\n type,\n type + '-' + key,\n CHILDREN,\n type + 'Exit',\n type + 'Exit-' + key\n ]\n } else if (key) {\n return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key]\n } else if (node.append) {\n return [type, CHILDREN, type + 'Exit']\n } else {\n return [type, type + 'Exit']\n }\n}\n\nfunction toStack(node) {\n let events\n if (node.type === 'document') {\n events = ['Document', CHILDREN, 'DocumentExit']\n } else if (node.type === 'root') {\n events = ['Root', CHILDREN, 'RootExit']\n } else {\n events = getEvents(node)\n }\n\n return {\n node,\n events,\n eventIndex: 0,\n visitors: [],\n visitorIndex: 0,\n iterator: 0\n }\n}\n\nfunction cleanMarks(node) {\n node[isClean] = false\n if (node.nodes) node.nodes.forEach(i => cleanMarks(i))\n return node\n}\n\nlet postcss = {}\n\nclass LazyResult {\n constructor(processor, css, opts) {\n this.stringified = false\n this.processed = false\n\n let root\n if (\n typeof css === 'object' &&\n css !== null &&\n (css.type === 'root' || css.type === 'document')\n ) {\n root = cleanMarks(css)\n } else if (css instanceof LazyResult || css instanceof Result) {\n root = cleanMarks(css.root)\n if (css.map) {\n if (typeof opts.map === 'undefined') opts.map = {}\n if (!opts.map.inline) opts.map.inline = false\n opts.map.prev = css.map\n }\n } else {\n let parser = parse\n if (opts.syntax) parser = opts.syntax.parse\n if (opts.parser) parser = opts.parser\n if (parser.parse) parser = parser.parse\n\n try {\n root = parser(css, opts)\n } catch (error) {\n this.processed = true\n this.error = error\n }\n\n if (root && !root[my]) {\n /* c8 ignore next 2 */\n Container.rebuild(root)\n }\n }\n\n this.result = new Result(processor, root, opts)\n this.helpers = { ...postcss, result: this.result, postcss }\n this.plugins = this.processor.plugins.map(plugin => {\n if (typeof plugin === 'object' && plugin.prepare) {\n return { ...plugin, ...plugin.prepare(this.result) }\n } else {\n return plugin\n }\n })\n }\n\n get [Symbol.toStringTag]() {\n return 'LazyResult'\n }\n\n get processor() {\n return this.result.processor\n }\n\n get opts() {\n return this.result.opts\n }\n\n get css() {\n return this.stringify().css\n }\n\n get content() {\n return this.stringify().content\n }\n\n get map() {\n return this.stringify().map\n }\n\n get root() {\n return this.sync().root\n }\n\n get messages() {\n return this.sync().messages\n }\n\n warnings() {\n return this.sync().warnings()\n }\n\n toString() {\n return this.css\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this.opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n return this.async().then(onFulfilled, onRejected)\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n if (this.processed) return Promise.resolve(this.result)\n if (!this.processing) {\n this.processing = this.runAsync()\n }\n return this.processing\n }\n\n sync() {\n if (this.error) throw this.error\n if (this.processed) return this.result\n this.processed = true\n\n if (this.processing) {\n throw this.getAsyncError()\n }\n\n for (let plugin of this.plugins) {\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n this.walkSync(root)\n }\n if (this.listeners.OnceExit) {\n if (root.type === 'document') {\n for (let subRoot of root.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot)\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root)\n }\n }\n }\n\n return this.result\n }\n\n stringify() {\n if (this.error) throw this.error\n if (this.stringified) return this.result\n this.stringified = true\n\n this.sync()\n\n let opts = this.result.opts\n let str = stringify\n if (opts.syntax) str = opts.syntax.stringify\n if (opts.stringifier) str = opts.stringifier\n if (str.stringify) str = str.stringify\n\n let map = new MapGenerator(str, this.result.root, this.result.opts)\n let data = map.generate()\n this.result.css = data[0]\n this.result.map = data[1]\n\n return this.result\n }\n\n walkSync(node) {\n node[isClean] = true\n let events = getEvents(node)\n for (let event of events) {\n if (event === CHILDREN) {\n if (node.nodes) {\n node.each(child => {\n if (!child[isClean]) this.walkSync(child)\n })\n }\n } else {\n let visitors = this.listeners[event]\n if (visitors) {\n if (this.visitSync(visitors, node.toProxy())) return\n }\n }\n }\n }\n\n visitSync(visitors, node) {\n for (let [plugin, visitor] of visitors) {\n this.result.lastPlugin = plugin\n let promise\n try {\n promise = visitor(node, this.helpers)\n } catch (e) {\n throw this.handleError(e, node.proxyOf)\n }\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n return true\n }\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n }\n\n runOnRoot(plugin) {\n this.result.lastPlugin = plugin\n try {\n if (typeof plugin === 'object' && plugin.Once) {\n if (this.result.root.type === 'document') {\n let roots = this.result.root.nodes.map(root =>\n plugin.Once(root, this.helpers)\n )\n\n if (isPromise(roots[0])) {\n return Promise.all(roots)\n }\n\n return roots\n }\n\n return plugin.Once(this.result.root, this.helpers)\n } else if (typeof plugin === 'function') {\n return plugin(this.result.root, this.result)\n }\n } catch (error) {\n throw this.handleError(error)\n }\n }\n\n getAsyncError() {\n throw new Error('Use process(css).then(cb) to work with async plugins')\n }\n\n handleError(error, node) {\n let plugin = this.result.lastPlugin\n try {\n if (node) node.addToError(error)\n this.error = error\n if (error.name === 'CssSyntaxError' && !error.plugin) {\n error.plugin = plugin.postcssPlugin\n error.setMessage()\n } else if (plugin.postcssVersion) {\n if (process.env.NODE_ENV !== 'production') {\n let pluginName = plugin.postcssPlugin\n let pluginVer = plugin.postcssVersion\n let runtimeVer = this.result.processor.version\n let a = pluginVer.split('.')\n let b = runtimeVer.split('.')\n\n if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n // eslint-disable-next-line no-console\n console.error(\n 'Unknown error from PostCSS plugin. Your current PostCSS ' +\n 'version is ' +\n runtimeVer +\n ', but ' +\n pluginName +\n ' uses ' +\n pluginVer +\n '. Perhaps this is the source of the error below.'\n )\n }\n }\n }\n } catch (err) {\n /* c8 ignore next 3 */\n // eslint-disable-next-line no-console\n if (console && console.error) console.error(err)\n }\n return error\n }\n\n async runAsync() {\n this.plugin = 0\n for (let i = 0; i < this.plugins.length; i++) {\n let plugin = this.plugins[i]\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (error) {\n throw this.handleError(error)\n }\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n let stack = [toStack(root)]\n while (stack.length > 0) {\n let promise = this.visitTick(stack)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (e) {\n let node = stack[stack.length - 1].node\n throw this.handleError(e, node)\n }\n }\n }\n }\n\n if (this.listeners.OnceExit) {\n for (let [plugin, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin\n try {\n if (root.type === 'document') {\n let roots = root.nodes.map(subRoot =>\n visitor(subRoot, this.helpers)\n )\n\n await Promise.all(roots)\n } else {\n await visitor(root, this.helpers)\n }\n } catch (e) {\n throw this.handleError(e)\n }\n }\n }\n }\n\n this.processed = true\n return this.stringify()\n }\n\n prepareVisitors() {\n this.listeners = {}\n let add = (plugin, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = []\n this.listeners[type].push([plugin, cb])\n }\n for (let plugin of this.plugins) {\n if (typeof plugin === 'object') {\n for (let event in plugin) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin.postcssPlugin}. ` +\n `Try to update PostCSS (${this.processor.version} now).`\n )\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin[event] === 'object') {\n for (let filter in plugin[event]) {\n if (filter === '*') {\n add(plugin, event, plugin[event][filter])\n } else {\n add(\n plugin,\n event + '-' + filter.toLowerCase(),\n plugin[event][filter]\n )\n }\n }\n } else if (typeof plugin[event] === 'function') {\n add(plugin, event, plugin[event])\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0\n }\n\n visitTick(stack) {\n let visit = stack[stack.length - 1]\n let { node, visitors } = visit\n\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n stack.pop()\n return\n }\n\n if (visitors.length > 0 && visit.visitorIndex < visitors.length) {\n let [plugin, visitor] = visitors[visit.visitorIndex]\n visit.visitorIndex += 1\n if (visit.visitorIndex === visitors.length) {\n visit.visitors = []\n visit.visitorIndex = 0\n }\n this.result.lastPlugin = plugin\n try {\n return visitor(node.toProxy(), this.helpers)\n } catch (e) {\n throw this.handleError(e, node)\n }\n }\n\n if (visit.iterator !== 0) {\n let iterator = visit.iterator\n let child\n while ((child = node.nodes[node.indexes[iterator]])) {\n node.indexes[iterator] += 1\n if (!child[isClean]) {\n child[isClean] = true\n stack.push(toStack(child))\n return\n }\n }\n visit.iterator = 0\n delete node.indexes[iterator]\n }\n\n let events = visit.events\n while (visit.eventIndex < events.length) {\n let event = events[visit.eventIndex]\n visit.eventIndex += 1\n if (event === CHILDREN) {\n if (node.nodes && node.nodes.length) {\n node[isClean] = true\n visit.iterator = node.getIterator()\n }\n return\n } else if (this.listeners[event]) {\n visit.visitors = this.listeners[event]\n return\n }\n }\n stack.pop()\n }\n}\n\nLazyResult.registerPostcss = dependant => {\n postcss = dependant\n}\n\nmodule.exports = LazyResult\nLazyResult.default = LazyResult\n\nRoot.registerLazyResult(LazyResult)\nDocument.registerLazyResult(LazyResult)\n","'use strict'\n\nlet list = {\n split(string, separators, last) {\n let array = []\n let current = ''\n let split = false\n\n let func = 0\n let inQuote = false\n let prevQuote = ''\n let escape = false\n\n for (let letter of string) {\n if (escape) {\n escape = false\n } else if (letter === '\\\\') {\n escape = true\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true\n prevQuote = letter\n } else if (letter === '(') {\n func += 1\n } else if (letter === ')') {\n if (func > 0) func -= 1\n } else if (func === 0) {\n if (separators.includes(letter)) split = true\n }\n\n if (split) {\n if (current !== '') array.push(current.trim())\n current = ''\n split = false\n } else {\n current += letter\n }\n }\n\n if (last || current !== '') array.push(current.trim())\n return array\n },\n\n space(string) {\n let spaces = [' ', '\\n', '\\t']\n return list.split(string, spaces)\n },\n\n comma(string) {\n return list.split(string, [','], true)\n }\n}\n\nmodule.exports = list\nlist.default = list\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { dirname, resolve, relative, sep } = require('path')\nlet { pathToFileURL } = require('url')\n\nlet Input = require('./input')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(dirname && resolve && relative && sep)\n\nclass MapGenerator {\n constructor(stringify, root, opts, cssString) {\n this.stringify = stringify\n this.mapOpts = opts.map || {}\n this.root = root\n this.opts = opts\n this.css = cssString\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute\n }\n\n isMap() {\n if (typeof this.opts.map !== 'undefined') {\n return !!this.opts.map\n }\n return this.previous().length > 0\n }\n\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = []\n if (this.root) {\n this.root.walk(node => {\n if (node.source && node.source.input.map) {\n let map = node.source.input.map\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map)\n }\n }\n })\n } else {\n let input = new Input(this.css, this.opts)\n if (input.map) this.previousMaps.push(input.map)\n }\n }\n\n return this.previousMaps\n }\n\n isInline() {\n if (typeof this.mapOpts.inline !== 'undefined') {\n return this.mapOpts.inline\n }\n\n let annotation = this.mapOpts.annotation\n if (typeof annotation !== 'undefined' && annotation !== true) {\n return false\n }\n\n if (this.previous().length) {\n return this.previous().some(i => i.inline)\n }\n return true\n }\n\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== 'undefined') {\n return this.mapOpts.sourcesContent\n }\n if (this.previous().length) {\n return this.previous().some(i => i.withContent())\n }\n return true\n }\n\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return\n\n if (this.root) {\n let node\n for (let i = this.root.nodes.length - 1; i >= 0; i--) {\n node = this.root.nodes[i]\n if (node.type !== 'comment') continue\n if (node.text.indexOf('# sourceMappingURL=') === 0) {\n this.root.removeChild(i)\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/(\\n)?\\/\\*#[\\S\\s]*?\\*\\/$/gm, '')\n }\n }\n\n setSourcesContent() {\n let already = {}\n if (this.root) {\n this.root.walk(node => {\n if (node.source) {\n let from = node.source.input.from\n if (from && !already[from]) {\n already[from] = true\n let fromUrl = this.usesFileUrls\n ? this.toFileUrl(from)\n : this.toUrl(this.path(from))\n this.map.setSourceContent(fromUrl, node.source.input.css)\n }\n }\n })\n } else if (this.css) {\n let from = this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : ''\n this.map.setSourceContent(from, this.css)\n }\n }\n\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file))\n let root = prev.root || dirname(prev.file)\n let map\n\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text)\n if (map.sourcesContent) {\n map.sourcesContent = map.sourcesContent.map(() => null)\n }\n } else {\n map = prev.consumer()\n }\n\n this.map.applySourceMap(map, from, this.toUrl(this.path(root)))\n }\n }\n\n isAnnotation() {\n if (this.isInline()) {\n return true\n }\n if (typeof this.mapOpts.annotation !== 'undefined') {\n return this.mapOpts.annotation\n }\n if (this.previous().length) {\n return this.previous().some(i => i.annotation)\n }\n return true\n }\n\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString('base64')\n } else {\n return window.btoa(unescape(encodeURIComponent(str)))\n }\n }\n\n addAnnotation() {\n let content\n\n if (this.isInline()) {\n content =\n 'data:application/json;base64,' + this.toBase64(this.map.toString())\n } else if (typeof this.mapOpts.annotation === 'string') {\n content = this.mapOpts.annotation\n } else if (typeof this.mapOpts.annotation === 'function') {\n content = this.mapOpts.annotation(this.opts.to, this.root)\n } else {\n content = this.outputFile() + '.map'\n }\n let eol = '\\n'\n if (this.css.includes('\\r\\n')) eol = '\\r\\n'\n\n this.css += eol + '/*# sourceMappingURL=' + content + ' */'\n }\n\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to)\n } else if (this.opts.from) {\n return this.path(this.opts.from)\n } else {\n return 'to.css'\n }\n }\n\n generateMap() {\n if (this.root) {\n this.generateString()\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer()\n prev.file = this.outputFile()\n this.map = SourceMapGenerator.fromSourceMap(prev)\n } else {\n this.map = new SourceMapGenerator({ file: this.outputFile() })\n this.map.addMapping({\n source: this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '',\n generated: { line: 1, column: 0 },\n original: { line: 1, column: 0 }\n })\n }\n\n if (this.isSourcesContent()) this.setSourcesContent()\n if (this.root && this.previous().length > 0) this.applyPrevMaps()\n if (this.isAnnotation()) this.addAnnotation()\n\n if (this.isInline()) {\n return [this.css]\n } else {\n return [this.css, this.map]\n }\n }\n\n path(file) {\n if (file.indexOf('<') === 0) return file\n if (/^\\w+:\\/\\//.test(file)) return file\n if (this.mapOpts.absolute) return file\n\n let from = this.opts.to ? dirname(this.opts.to) : '.'\n\n if (typeof this.mapOpts.annotation === 'string') {\n from = dirname(resolve(from, this.mapOpts.annotation))\n }\n\n file = relative(from, file)\n return file\n }\n\n toUrl(path) {\n if (sep === '\\\\') {\n path = path.replace(/\\\\/g, '/')\n }\n return encodeURI(path).replace(/[#?]/g, encodeURIComponent)\n }\n\n toFileUrl(path) {\n if (pathToFileURL) {\n return pathToFileURL(path).toString()\n } else {\n throw new Error(\n '`map.absolute` option is not available in this PostCSS build'\n )\n }\n }\n\n sourcePath(node) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from)\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node.source.input.from)\n } else {\n return this.toUrl(this.path(node.source.input.from))\n }\n }\n\n generateString() {\n this.css = ''\n this.map = new SourceMapGenerator({ file: this.outputFile() })\n\n let line = 1\n let column = 1\n\n let noSource = ''\n let mapping = {\n source: '',\n generated: { line: 0, column: 0 },\n original: { line: 0, column: 0 }\n }\n\n let lines, last\n this.stringify(this.root, (str, node, type) => {\n this.css += str\n\n if (node && type !== 'end') {\n mapping.generated.line = line\n mapping.generated.column = column - 1\n if (node.source && node.source.start) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.start.line\n mapping.original.column = node.source.start.column - 1\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n this.map.addMapping(mapping)\n }\n }\n\n lines = str.match(/\\n/g)\n if (lines) {\n line += lines.length\n last = str.lastIndexOf('\\n')\n column = str.length - last\n } else {\n column += str.length\n }\n\n if (node && type !== 'start') {\n let p = node.parent || { raws: {} }\n let childless =\n node.type === 'decl' || (node.type === 'atrule' && !node.nodes)\n if (!childless || node !== p.last || p.raws.semicolon) {\n if (node.source && node.source.end) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.end.line\n mapping.original.column = node.source.end.column - 1\n mapping.generated.line = line\n mapping.generated.column = column - 2\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n mapping.generated.line = line\n mapping.generated.column = column - 1\n this.map.addMapping(mapping)\n }\n }\n }\n })\n }\n\n generate() {\n this.clearAnnotation()\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap()\n } else {\n let result = ''\n this.stringify(this.root, i => {\n result += i\n })\n return [result]\n }\n }\n}\n\nmodule.exports = MapGenerator\n","'use strict'\n\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet warnOnce = require('./warn-once')\nlet parse = require('./parse')\nconst Result = require('./result')\n\nclass NoWorkResult {\n constructor(processor, css, opts) {\n css = css.toString()\n this.stringified = false\n\n this._processor = processor\n this._css = css\n this._opts = opts\n this._map = undefined\n let root\n\n let str = stringify\n this.result = new Result(this._processor, root, this._opts)\n this.result.css = css\n\n let self = this\n Object.defineProperty(this.result, 'root', {\n get() {\n return self.root\n }\n })\n\n let map = new MapGenerator(str, root, this._opts, css)\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate()\n if (generatedCSS) {\n this.result.css = generatedCSS\n }\n if (generatedMap) {\n this.result.map = generatedMap\n }\n }\n }\n\n get [Symbol.toStringTag]() {\n return 'NoWorkResult'\n }\n\n get processor() {\n return this.result.processor\n }\n\n get opts() {\n return this.result.opts\n }\n\n get css() {\n return this.result.css\n }\n\n get content() {\n return this.result.css\n }\n\n get map() {\n return this.result.map\n }\n\n get root() {\n if (this._root) {\n return this._root\n }\n\n let root\n let parser = parse\n\n try {\n root = parser(this._css, this._opts)\n } catch (error) {\n this.error = error\n }\n\n if (this.error) {\n throw this.error\n } else {\n this._root = root\n return root\n }\n }\n\n get messages() {\n return []\n }\n\n warnings() {\n return []\n }\n\n toString() {\n return this._css\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this._opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n\n return this.async().then(onFulfilled, onRejected)\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n return Promise.resolve(this.result)\n }\n\n sync() {\n if (this.error) throw this.error\n return this.result\n }\n}\n\nmodule.exports = NoWorkResult\nNoWorkResult.default = NoWorkResult\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet CssSyntaxError = require('./css-syntax-error')\nlet Stringifier = require('./stringifier')\nlet stringify = require('./stringify')\n\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor()\n\n for (let i in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n /* c8 ignore next 2 */\n continue\n }\n if (i === 'proxyCache') continue\n let value = obj[i]\n let type = typeof value\n\n if (i === 'parent' && type === 'object') {\n if (parent) cloned[i] = parent\n } else if (i === 'source') {\n cloned[i] = value\n } else if (Array.isArray(value)) {\n cloned[i] = value.map(j => cloneNode(j, cloned))\n } else {\n if (type === 'object' && value !== null) value = cloneNode(value)\n cloned[i] = value\n }\n }\n\n return cloned\n}\n\nclass Node {\n constructor(defaults = {}) {\n this.raws = {}\n this[isClean] = false\n this[my] = true\n\n for (let name in defaults) {\n if (name === 'nodes') {\n this.nodes = []\n for (let node of defaults[name]) {\n if (typeof node.clone === 'function') {\n this.append(node.clone())\n } else {\n this.append(node)\n }\n }\n } else {\n this[name] = defaults[name]\n }\n }\n }\n\n error(message, opts = {}) {\n if (this.source) {\n let { start, end } = this.rangeBy(opts)\n return this.source.input.error(\n message,\n { line: start.line, column: start.column },\n { line: end.line, column: end.column },\n opts\n )\n }\n return new CssSyntaxError(message)\n }\n\n warn(result, text, opts) {\n let data = { node: this }\n for (let i in opts) data[i] = opts[i]\n return result.warn(text, data)\n }\n\n remove() {\n if (this.parent) {\n this.parent.removeChild(this)\n }\n this.parent = undefined\n return this\n }\n\n toString(stringifier = stringify) {\n if (stringifier.stringify) stringifier = stringifier.stringify\n let result = ''\n stringifier(this, i => {\n result += i\n })\n return result\n }\n\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name]\n }\n return this\n }\n\n clone(overrides = {}) {\n let cloned = cloneNode(this)\n for (let name in overrides) {\n cloned[name] = overrides[name]\n }\n return cloned\n }\n\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertBefore(this, cloned)\n return cloned\n }\n\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertAfter(this, cloned)\n return cloned\n }\n\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this\n let foundSelf = false\n for (let node of nodes) {\n if (node === this) {\n foundSelf = true\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node)\n bookmark = node\n } else {\n this.parent.insertBefore(bookmark, node)\n }\n }\n\n if (!foundSelf) {\n this.remove()\n }\n }\n\n return this\n }\n\n next() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index + 1]\n }\n\n prev() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index - 1]\n }\n\n before(add) {\n this.parent.insertBefore(this, add)\n return this\n }\n\n after(add) {\n this.parent.insertAfter(this, add)\n return this\n }\n\n root() {\n let result = this\n while (result.parent && result.parent.type !== 'document') {\n result = result.parent\n }\n return result\n }\n\n raw(prop, defaultType) {\n let str = new Stringifier()\n return str.raw(this, prop, defaultType)\n }\n\n cleanRaws(keepBetween) {\n delete this.raws.before\n delete this.raws.after\n if (!keepBetween) delete this.raws.between\n }\n\n toJSON(_, inputs) {\n let fixed = {}\n let emitInputs = inputs == null\n inputs = inputs || new Map()\n let inputsNextIndex = 0\n\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n /* c8 ignore next 2 */\n continue\n }\n if (name === 'parent' || name === 'proxyCache') continue\n let value = this[name]\n\n if (Array.isArray(value)) {\n fixed[name] = value.map(i => {\n if (typeof i === 'object' && i.toJSON) {\n return i.toJSON(null, inputs)\n } else {\n return i\n }\n })\n } else if (typeof value === 'object' && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs)\n } else if (name === 'source') {\n let inputId = inputs.get(value.input)\n if (inputId == null) {\n inputId = inputsNextIndex\n inputs.set(value.input, inputsNextIndex)\n inputsNextIndex++\n }\n fixed[name] = {\n inputId,\n start: value.start,\n end: value.end\n }\n } else {\n fixed[name] = value\n }\n }\n\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map(input => input.toJSON())\n }\n\n return fixed\n }\n\n positionInside(index) {\n let string = this.toString()\n let column = this.source.start.column\n let line = this.source.start.line\n\n for (let i = 0; i < index; i++) {\n if (string[i] === '\\n') {\n column = 1\n line += 1\n } else {\n column += 1\n }\n }\n\n return { line, column }\n }\n\n positionBy(opts) {\n let pos = this.source.start\n if (opts.index) {\n pos = this.positionInside(opts.index)\n } else if (opts.word) {\n let index = this.toString().indexOf(opts.word)\n if (index !== -1) pos = this.positionInside(index)\n }\n return pos\n }\n\n rangeBy(opts) {\n let start = {\n line: this.source.start.line,\n column: this.source.start.column\n }\n let end = this.source.end\n ? {\n line: this.source.end.line,\n column: this.source.end.column + 1\n }\n : {\n line: start.line,\n column: start.column + 1\n }\n\n if (opts.word) {\n let index = this.toString().indexOf(opts.word)\n if (index !== -1) {\n start = this.positionInside(index)\n end = this.positionInside(index + opts.word.length)\n }\n } else {\n if (opts.start) {\n start = {\n line: opts.start.line,\n column: opts.start.column\n }\n } else if (opts.index) {\n start = this.positionInside(opts.index)\n }\n\n if (opts.end) {\n end = {\n line: opts.end.line,\n column: opts.end.column\n }\n } else if (opts.endIndex) {\n end = this.positionInside(opts.endIndex)\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1)\n }\n }\n\n if (\n end.line < start.line ||\n (end.line === start.line && end.column <= start.column)\n ) {\n end = { line: start.line, column: start.column + 1 }\n }\n\n return { start, end }\n }\n\n getProxyProcessor() {\n return {\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (\n prop === 'prop' ||\n prop === 'value' ||\n prop === 'name' ||\n prop === 'params' ||\n prop === 'important' ||\n /* c8 ignore next */\n prop === 'text'\n ) {\n node.markDirty()\n }\n return true\n },\n\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else {\n return node[prop]\n }\n }\n }\n }\n\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor())\n }\n return this.proxyCache\n }\n\n addToError(error) {\n error.postcssNode = this\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s = this.source\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s.input.from}:${s.start.line}:${s.start.column}$&`\n )\n }\n return error\n }\n\n markDirty() {\n if (this[isClean]) {\n this[isClean] = false\n let next = this\n while ((next = next.parent)) {\n next[isClean] = false\n }\n }\n }\n\n get proxyOf() {\n return this\n }\n}\n\nmodule.exports = Node\nNode.default = Node\n","'use strict'\n\nlet Container = require('./container')\nlet Parser = require('./parser')\nlet Input = require('./input')\n\nfunction parse(css, opts) {\n let input = new Input(css, opts)\n let parser = new Parser(input)\n try {\n parser.parse()\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n if (e.name === 'CssSyntaxError' && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse SCSS with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-scss parser'\n } else if (/\\.sass/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Sass with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-sass parser'\n } else if (/\\.less$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Less with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-less parser'\n }\n }\n }\n throw e\n }\n\n return parser.root\n}\n\nmodule.exports = parse\nparse.default = parse\n\nContainer.registerParse(parse)\n","'use strict'\n\nlet Declaration = require('./declaration')\nlet tokenizer = require('./tokenize')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nconst SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n}\n\nfunction findLastWithPosition(tokens) {\n for (let i = tokens.length - 1; i >= 0; i--) {\n let token = tokens[i]\n let pos = token[3] || token[2]\n if (pos) return pos\n }\n}\n\nclass Parser {\n constructor(input) {\n this.input = input\n\n this.root = new Root()\n this.current = this.root\n this.spaces = ''\n this.semicolon = false\n this.customProperty = false\n\n this.createTokenizer()\n this.root.source = { input, start: { offset: 0, line: 1, column: 1 } }\n }\n\n createTokenizer() {\n this.tokenizer = tokenizer(this.input)\n }\n\n parse() {\n let token\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n\n switch (token[0]) {\n case 'space':\n this.spaces += token[1]\n break\n\n case ';':\n this.freeSemicolon(token)\n break\n\n case '}':\n this.end(token)\n break\n\n case 'comment':\n this.comment(token)\n break\n\n case 'at-word':\n this.atrule(token)\n break\n\n case '{':\n this.emptyRule(token)\n break\n\n default:\n this.other(token)\n break\n }\n }\n this.endFile()\n }\n\n comment(token) {\n let node = new Comment()\n this.init(node, token[2])\n node.source.end = this.getPosition(token[3] || token[2])\n\n let text = token[1].slice(2, -2)\n if (/^\\s*$/.test(text)) {\n node.text = ''\n node.raws.left = text\n node.raws.right = ''\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/)\n node.text = match[2]\n node.raws.left = match[1]\n node.raws.right = match[3]\n }\n }\n\n emptyRule(token) {\n let node = new Rule()\n this.init(node, token[2])\n node.selector = ''\n node.raws.between = ''\n this.current = node\n }\n\n other(start) {\n let end = false\n let type = null\n let colon = false\n let bracket = null\n let brackets = []\n let customProperty = start[1].startsWith('--')\n\n let tokens = []\n let token = start\n while (token) {\n type = token[0]\n tokens.push(token)\n\n if (type === '(' || type === '[') {\n if (!bracket) bracket = token\n brackets.push(type === '(' ? ')' : ']')\n } else if (customProperty && colon && type === '{') {\n if (!bracket) bracket = token\n brackets.push('}')\n } else if (brackets.length === 0) {\n if (type === ';') {\n if (colon) {\n this.decl(tokens, customProperty)\n return\n } else {\n break\n }\n } else if (type === '{') {\n this.rule(tokens)\n return\n } else if (type === '}') {\n this.tokenizer.back(tokens.pop())\n end = true\n break\n } else if (type === ':') {\n colon = true\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n if (brackets.length === 0) bracket = null\n }\n\n token = this.tokenizer.nextToken()\n }\n\n if (this.tokenizer.endOfFile()) end = true\n if (brackets.length > 0) this.unclosedBracket(bracket)\n\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0]\n if (token !== 'space' && token !== 'comment') break\n this.tokenizer.back(tokens.pop())\n }\n }\n this.decl(tokens, customProperty)\n } else {\n this.unknownWord(tokens)\n }\n }\n\n rule(tokens) {\n tokens.pop()\n\n let node = new Rule()\n this.init(node, tokens[0][2])\n\n node.raws.between = this.spacesAndCommentsFromEnd(tokens)\n this.raw(node, 'selector', tokens)\n this.current = node\n }\n\n decl(tokens, customProperty) {\n let node = new Declaration()\n this.init(node, tokens[0][2])\n\n let last = tokens[tokens.length - 1]\n if (last[0] === ';') {\n this.semicolon = true\n tokens.pop()\n }\n\n node.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n )\n\n while (tokens[0][0] !== 'word') {\n if (tokens.length === 1) this.unknownWord(tokens)\n node.raws.before += tokens.shift()[1]\n }\n node.source.start = this.getPosition(tokens[0][2])\n\n node.prop = ''\n while (tokens.length) {\n let type = tokens[0][0]\n if (type === ':' || type === 'space' || type === 'comment') {\n break\n }\n node.prop += tokens.shift()[1]\n }\n\n node.raws.between = ''\n\n let token\n while (tokens.length) {\n token = tokens.shift()\n\n if (token[0] === ':') {\n node.raws.between += token[1]\n break\n } else {\n if (token[0] === 'word' && /\\w/.test(token[1])) {\n this.unknownWord([token])\n }\n node.raws.between += token[1]\n }\n }\n\n if (node.prop[0] === '_' || node.prop[0] === '*') {\n node.raws.before += node.prop[0]\n node.prop = node.prop.slice(1)\n }\n\n let firstSpaces = []\n let next\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n firstSpaces.push(tokens.shift())\n }\n\n this.precheckMissedSemicolon(tokens)\n\n for (let i = tokens.length - 1; i >= 0; i--) {\n token = tokens[i]\n if (token[1].toLowerCase() === '!important') {\n node.important = true\n let string = this.stringFrom(tokens, i)\n string = this.spacesFromEnd(tokens) + string\n if (string !== ' !important') node.raws.important = string\n break\n } else if (token[1].toLowerCase() === 'important') {\n let cache = tokens.slice(0)\n let str = ''\n for (let j = i; j > 0; j--) {\n let type = cache[j][0]\n if (str.trim().indexOf('!') === 0 && type !== 'space') {\n break\n }\n str = cache.pop()[1] + str\n }\n if (str.trim().indexOf('!') === 0) {\n node.important = true\n node.raws.important = str\n tokens = cache\n }\n }\n\n if (token[0] !== 'space' && token[0] !== 'comment') {\n break\n }\n }\n\n let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment')\n\n if (hasWord) {\n node.raws.between += firstSpaces.map(i => i[1]).join('')\n firstSpaces = []\n }\n this.raw(node, 'value', firstSpaces.concat(tokens), customProperty)\n\n if (node.value.includes(':') && !customProperty) {\n this.checkMissedSemicolon(tokens)\n }\n }\n\n atrule(token) {\n let node = new AtRule()\n node.name = token[1].slice(1)\n if (node.name === '') {\n this.unnamedAtrule(node, token)\n }\n this.init(node, token[2])\n\n let type\n let prev\n let shift\n let last = false\n let open = false\n let params = []\n let brackets = []\n\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n type = token[0]\n\n if (type === '(' || type === '[') {\n brackets.push(type === '(' ? ')' : ']')\n } else if (type === '{' && brackets.length > 0) {\n brackets.push('}')\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n }\n\n if (brackets.length === 0) {\n if (type === ';') {\n node.source.end = this.getPosition(token[2])\n this.semicolon = true\n break\n } else if (type === '{') {\n open = true\n break\n } else if (type === '}') {\n if (params.length > 0) {\n shift = params.length - 1\n prev = params[shift]\n while (prev && prev[0] === 'space') {\n prev = params[--shift]\n }\n if (prev) {\n node.source.end = this.getPosition(prev[3] || prev[2])\n }\n }\n this.end(token)\n break\n } else {\n params.push(token)\n }\n } else {\n params.push(token)\n }\n\n if (this.tokenizer.endOfFile()) {\n last = true\n break\n }\n }\n\n node.raws.between = this.spacesAndCommentsFromEnd(params)\n if (params.length) {\n node.raws.afterName = this.spacesAndCommentsFromStart(params)\n this.raw(node, 'params', params)\n if (last) {\n token = params[params.length - 1]\n node.source.end = this.getPosition(token[3] || token[2])\n this.spaces = node.raws.between\n node.raws.between = ''\n }\n } else {\n node.raws.afterName = ''\n node.params = ''\n }\n\n if (open) {\n node.nodes = []\n this.current = node\n }\n }\n\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.semicolon = false\n\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.spaces = ''\n\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2])\n this.current = this.current.parent\n } else {\n this.unexpectedClose(token)\n }\n }\n\n endFile() {\n if (this.current.parent) this.unclosedBlock()\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n }\n\n freeSemicolon(token) {\n this.spaces += token[1]\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1]\n if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces\n this.spaces = ''\n }\n }\n }\n\n // Helpers\n\n getPosition(offset) {\n let pos = this.input.fromOffset(offset)\n return {\n offset,\n line: pos.line,\n column: pos.col\n }\n }\n\n init(node, offset) {\n this.current.push(node)\n node.source = {\n start: this.getPosition(offset),\n input: this.input\n }\n node.raws.before = this.spaces\n this.spaces = ''\n if (node.type !== 'comment') this.semicolon = false\n }\n\n raw(node, prop, tokens, customProperty) {\n let token, type\n let length = tokens.length\n let value = ''\n let clean = true\n let next, prev\n\n for (let i = 0; i < length; i += 1) {\n token = tokens[i]\n type = token[0]\n if (type === 'space' && i === length - 1 && !customProperty) {\n clean = false\n } else if (type === 'comment') {\n prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty'\n next = tokens[i + 1] ? tokens[i + 1][0] : 'empty'\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === ',') {\n clean = false\n } else {\n value += token[1]\n }\n } else {\n clean = false\n }\n } else {\n value += token[1]\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i) => all + i[1], '')\n node.raws[prop] = { value, raw }\n }\n node[prop] = value\n }\n\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space' && lastTokenType !== 'comment') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n spacesAndCommentsFromStart(tokens) {\n let next\n let spaces = ''\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n spaces += tokens.shift()[1]\n }\n return spaces\n }\n\n spacesFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n stringFrom(tokens, from) {\n let result = ''\n for (let i = from; i < tokens.length; i++) {\n result += tokens[i][1]\n }\n tokens.splice(from, tokens.length - from)\n return result\n }\n\n colon(tokens) {\n let brackets = 0\n let token, type, prev\n for (let [i, element] of tokens.entries()) {\n token = element\n type = token[0]\n\n if (type === '(') {\n brackets += 1\n }\n if (type === ')') {\n brackets -= 1\n }\n if (brackets === 0 && type === ':') {\n if (!prev) {\n this.doubleColon(token)\n } else if (prev[0] === 'word' && prev[1] === 'progid') {\n continue\n } else {\n return i\n }\n }\n\n prev = token\n }\n return false\n }\n\n // Errors\n\n unclosedBracket(bracket) {\n throw this.input.error(\n 'Unclosed bracket',\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n )\n }\n\n unknownWord(tokens) {\n throw this.input.error(\n 'Unknown word',\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n )\n }\n\n unexpectedClose(token) {\n throw this.input.error(\n 'Unexpected }',\n { offset: token[2] },\n { offset: token[2] + 1 }\n )\n }\n\n unclosedBlock() {\n let pos = this.current.source.start\n throw this.input.error('Unclosed block', pos.line, pos.column)\n }\n\n doubleColon(token) {\n throw this.input.error(\n 'Double colon',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n\n unnamedAtrule(node, token) {\n throw this.input.error(\n 'At-rule without name',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n\n precheckMissedSemicolon(/* tokens */) {\n // Hook for Safe Parser\n }\n\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens)\n if (colon === false) return\n\n let founded = 0\n let token\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j]\n if (token[0] !== 'space') {\n founded += 1\n if (founded === 2) break\n }\n }\n // If the token is a word, e.g. `!important`, `red` or any other valid property's value.\n // Then we need to return the colon after that word token. [3] is the \"end\" colon of that word.\n // And because we need it after that one we do +1 to get the next one.\n throw this.input.error(\n 'Missed semicolon',\n token[0] === 'word' ? token[3] + 1 : token[2]\n )\n }\n}\n\nmodule.exports = Parser\n","'use strict'\n\nlet CssSyntaxError = require('./css-syntax-error')\nlet Declaration = require('./declaration')\nlet LazyResult = require('./lazy-result')\nlet Container = require('./container')\nlet Processor = require('./processor')\nlet stringify = require('./stringify')\nlet fromJSON = require('./fromJSON')\nlet Document = require('./document')\nlet Warning = require('./warning')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Result = require('./result.js')\nlet Input = require('./input')\nlet parse = require('./parse')\nlet list = require('./list')\nlet Rule = require('./rule')\nlet Root = require('./root')\nlet Node = require('./node')\n\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0]\n }\n return new Processor(plugins)\n}\n\npostcss.plugin = function plugin(name, initializer) {\n let warningPrinted = false\n function creator(...args) {\n // eslint-disable-next-line no-console\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': postcss.plugin was deprecated. Migration guide:\\n' +\n 'https://evilmartians.com/chronicles/postcss-8-plugin-migration'\n )\n if (process.env.LANG && process.env.LANG.startsWith('cn')) {\n /* c8 ignore next 7 */\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': 里面 postcss.plugin 被弃用. 迁移指南:\\n' +\n 'https://www.w3ctech.com/topic/2226'\n )\n }\n }\n let transformer = initializer(...args)\n transformer.postcssPlugin = name\n transformer.postcssVersion = new Processor().version\n return transformer\n }\n\n let cache\n Object.defineProperty(creator, 'postcss', {\n get() {\n if (!cache) cache = creator()\n return cache\n }\n })\n\n creator.process = function (css, processOpts, pluginOpts) {\n return postcss([creator(pluginOpts)]).process(css, processOpts)\n }\n\n return creator\n}\n\npostcss.stringify = stringify\npostcss.parse = parse\npostcss.fromJSON = fromJSON\npostcss.list = list\n\npostcss.comment = defaults => new Comment(defaults)\npostcss.atRule = defaults => new AtRule(defaults)\npostcss.decl = defaults => new Declaration(defaults)\npostcss.rule = defaults => new Rule(defaults)\npostcss.root = defaults => new Root(defaults)\npostcss.document = defaults => new Document(defaults)\n\npostcss.CssSyntaxError = CssSyntaxError\npostcss.Declaration = Declaration\npostcss.Container = Container\npostcss.Processor = Processor\npostcss.Document = Document\npostcss.Comment = Comment\npostcss.Warning = Warning\npostcss.AtRule = AtRule\npostcss.Result = Result\npostcss.Input = Input\npostcss.Rule = Rule\npostcss.Root = Root\npostcss.Node = Node\n\nLazyResult.registerPostcss(postcss)\n\nmodule.exports = postcss\npostcss.default = postcss\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { existsSync, readFileSync } = require('fs')\nlet { dirname, join } = require('path')\n\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, 'base64').toString()\n } else {\n /* c8 ignore next 2 */\n return window.atob(str)\n }\n}\n\nclass PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return\n this.loadAnnotation(css)\n this.inline = this.startWith(this.annotation, 'data:')\n\n let prev = opts.map ? opts.map.prev : undefined\n let text = this.loadMap(opts.from, prev)\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from\n }\n if (this.mapFile) this.root = dirname(this.mapFile)\n if (text) this.text = text\n }\n\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer(this.text)\n }\n return this.consumerCache\n }\n\n withContent() {\n return !!(\n this.consumer().sourcesContent &&\n this.consumer().sourcesContent.length > 0\n )\n }\n\n startWith(string, start) {\n if (!string) return false\n return string.substr(0, start.length) === start\n }\n\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, '').trim()\n }\n\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm)\n if (!comments) return\n\n // sourceMappingURLs from comments, strings, etc.\n let start = css.lastIndexOf(comments.pop())\n let end = css.indexOf('*/', start)\n\n if (start > -1 && end > -1) {\n // Locate the last sourceMappingURL to avoid pickin\n this.annotation = this.getAnnotationURL(css.substring(start, end))\n }\n }\n\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/\n let baseUri = /^data:application\\/json;base64,/\n let charsetUri = /^data:application\\/json;charset=utf-?8,/\n let uri = /^data:application\\/json,/\n\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length))\n }\n\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64(text.substr(RegExp.lastMatch.length))\n }\n\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1]\n throw new Error('Unsupported source map encoding ' + encoding)\n }\n\n loadFile(path) {\n this.root = dirname(path)\n if (existsSync(path)) {\n this.mapFile = path\n return readFileSync(path, 'utf-8').toString().trim()\n }\n }\n\n loadMap(file, prev) {\n if (prev === false) return false\n\n if (prev) {\n if (typeof prev === 'string') {\n return prev\n } else if (typeof prev === 'function') {\n let prevPath = prev(file)\n if (prevPath) {\n let map = this.loadFile(prevPath)\n if (!map) {\n throw new Error(\n 'Unable to load previous source map: ' + prevPath.toString()\n )\n }\n return map\n }\n } else if (prev instanceof SourceMapConsumer) {\n return SourceMapGenerator.fromSourceMap(prev).toString()\n } else if (prev instanceof SourceMapGenerator) {\n return prev.toString()\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev)\n } else {\n throw new Error(\n 'Unsupported previous source map format: ' + prev.toString()\n )\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation)\n } else if (this.annotation) {\n let map = this.annotation\n if (file) map = join(dirname(file), map)\n return this.loadFile(map)\n }\n }\n\n isMap(map) {\n if (typeof map !== 'object') return false\n return (\n typeof map.mappings === 'string' ||\n typeof map._mappings === 'string' ||\n Array.isArray(map.sections)\n )\n }\n}\n\nmodule.exports = PreviousMap\nPreviousMap.default = PreviousMap\n","'use strict'\n\nlet NoWorkResult = require('./no-work-result')\nlet LazyResult = require('./lazy-result')\nlet Document = require('./document')\nlet Root = require('./root')\n\nclass Processor {\n constructor(plugins = []) {\n this.version = '8.4.20'\n this.plugins = this.normalize(plugins)\n }\n\n use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]))\n return this\n }\n\n process(css, opts = {}) {\n if (\n this.plugins.length === 0 &&\n typeof opts.parser === 'undefined' &&\n typeof opts.stringifier === 'undefined' &&\n typeof opts.syntax === 'undefined'\n ) {\n return new NoWorkResult(this, css, opts)\n } else {\n return new LazyResult(this, css, opts)\n }\n }\n\n normalize(plugins) {\n let normalized = []\n for (let i of plugins) {\n if (i.postcss === true) {\n i = i()\n } else if (i.postcss) {\n i = i.postcss\n }\n\n if (typeof i === 'object' && Array.isArray(i.plugins)) {\n normalized = normalized.concat(i.plugins)\n } else if (typeof i === 'object' && i.postcssPlugin) {\n normalized.push(i)\n } else if (typeof i === 'function') {\n normalized.push(i)\n } else if (typeof i === 'object' && (i.parse || i.stringify)) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n 'PostCSS syntaxes cannot be used as plugins. Instead, please use ' +\n 'one of the syntax/parser/stringifier options as outlined ' +\n 'in your PostCSS runner documentation.'\n )\n }\n } else {\n throw new Error(i + ' is not a PostCSS plugin')\n }\n }\n return normalized\n }\n}\n\nmodule.exports = Processor\nProcessor.default = Processor\n\nRoot.registerProcessor(Processor)\nDocument.registerProcessor(Processor)\n","'use strict'\n\nlet Warning = require('./warning')\n\nclass Result {\n constructor(processor, root, opts) {\n this.processor = processor\n this.messages = []\n this.root = root\n this.opts = opts\n this.css = undefined\n this.map = undefined\n }\n\n toString() {\n return this.css\n }\n\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin\n }\n }\n\n let warning = new Warning(text, opts)\n this.messages.push(warning)\n\n return warning\n }\n\n warnings() {\n return this.messages.filter(i => i.type === 'warning')\n }\n\n get content() {\n return this.css\n }\n}\n\nmodule.exports = Result\nResult.default = Result\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Root extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'root'\n if (!this.nodes) this.nodes = []\n }\n\n removeChild(child, ignore) {\n let index = this.index(child)\n\n if (!ignore && index === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index].raws.before\n }\n\n return super.removeChild(child)\n }\n\n normalize(child, sample, type) {\n let nodes = super.normalize(child)\n\n if (sample) {\n if (type === 'prepend') {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before\n } else {\n delete sample.raws.before\n }\n } else if (this.first !== sample) {\n for (let node of nodes) {\n node.raws.before = sample.raws.before\n }\n }\n }\n\n return nodes\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n return lazy.stringify()\n }\n}\n\nRoot.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nRoot.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Root\nRoot.default = Root\n\nContainer.registerRoot(Root)\n","'use strict'\n\nlet Container = require('./container')\nlet list = require('./list')\n\nclass Rule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'rule'\n if (!this.nodes) this.nodes = []\n }\n\n get selectors() {\n return list.comma(this.selector)\n }\n\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null\n let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen')\n this.selector = values.join(sep)\n }\n}\n\nmodule.exports = Rule\nRule.default = Rule\n\nContainer.registerRule(Rule)\n","'use strict'\n\nconst DEFAULT_RAW = {\n colon: ': ',\n indent: ' ',\n beforeDecl: '\\n',\n beforeRule: '\\n',\n beforeOpen: ' ',\n beforeClose: '\\n',\n beforeComment: '\\n',\n after: '\\n',\n emptyBody: '',\n commentLeft: ' ',\n commentRight: ' ',\n semicolon: false\n}\n\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1)\n}\n\nclass Stringifier {\n constructor(builder) {\n this.builder = builder\n }\n\n stringify(node, semicolon) {\n /* c8 ignore start */\n if (!this[node.type]) {\n throw new Error(\n 'Unknown AST node type ' +\n node.type +\n '. ' +\n 'Maybe you need to change PostCSS stringifier.'\n )\n }\n /* c8 ignore stop */\n this[node.type](node, semicolon)\n }\n\n document(node) {\n this.body(node)\n }\n\n root(node) {\n this.body(node)\n if (node.raws.after) this.builder(node.raws.after)\n }\n\n comment(node) {\n let left = this.raw(node, 'left', 'commentLeft')\n let right = this.raw(node, 'right', 'commentRight')\n this.builder('/*' + left + node.text + right + '*/', node)\n }\n\n decl(node, semicolon) {\n let between = this.raw(node, 'between', 'colon')\n let string = node.prop + between + this.rawValue(node, 'value')\n\n if (node.important) {\n string += node.raws.important || ' !important'\n }\n\n if (semicolon) string += ';'\n this.builder(string, node)\n }\n\n rule(node) {\n this.block(node, this.rawValue(node, 'selector'))\n if (node.raws.ownSemicolon) {\n this.builder(node.raws.ownSemicolon, node, 'end')\n }\n }\n\n atrule(node, semicolon) {\n let name = '@' + node.name\n let params = node.params ? this.rawValue(node, 'params') : ''\n\n if (typeof node.raws.afterName !== 'undefined') {\n name += node.raws.afterName\n } else if (params) {\n name += ' '\n }\n\n if (node.nodes) {\n this.block(node, name + params)\n } else {\n let end = (node.raws.between || '') + (semicolon ? ';' : '')\n this.builder(name + params + end, node)\n }\n }\n\n body(node) {\n let last = node.nodes.length - 1\n while (last > 0) {\n if (node.nodes[last].type !== 'comment') break\n last -= 1\n }\n\n let semicolon = this.raw(node, 'semicolon')\n for (let i = 0; i < node.nodes.length; i++) {\n let child = node.nodes[i]\n let before = this.raw(child, 'before')\n if (before) this.builder(before)\n this.stringify(child, last !== i || semicolon)\n }\n }\n\n block(node, start) {\n let between = this.raw(node, 'between', 'beforeOpen')\n this.builder(start + between + '{', node, 'start')\n\n let after\n if (node.nodes && node.nodes.length) {\n this.body(node)\n after = this.raw(node, 'after')\n } else {\n after = this.raw(node, 'after', 'emptyBody')\n }\n\n if (after) this.builder(after)\n this.builder('}', node, 'end')\n }\n\n raw(node, own, detect) {\n let value\n if (!detect) detect = own\n\n // Already had\n if (own) {\n value = node.raws[own]\n if (typeof value !== 'undefined') return value\n }\n\n let parent = node.parent\n\n if (detect === 'before') {\n // Hack for first rule in CSS\n if (!parent || (parent.type === 'root' && parent.first === node)) {\n return ''\n }\n\n // `root` nodes in `document` should use only their own raws\n if (parent && parent.type === 'document') {\n return ''\n }\n }\n\n // Floating child without parent\n if (!parent) return DEFAULT_RAW[detect]\n\n // Detect style by other nodes\n let root = node.root()\n if (!root.rawCache) root.rawCache = {}\n if (typeof root.rawCache[detect] !== 'undefined') {\n return root.rawCache[detect]\n }\n\n if (detect === 'before' || detect === 'after') {\n return this.beforeAfter(node, detect)\n } else {\n let method = 'raw' + capitalize(detect)\n if (this[method]) {\n value = this[method](root, node)\n } else {\n root.walk(i => {\n value = i.raws[own]\n if (typeof value !== 'undefined') return false\n })\n }\n }\n\n if (typeof value === 'undefined') value = DEFAULT_RAW[detect]\n\n root.rawCache[detect] = value\n return value\n }\n\n rawSemicolon(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length && i.last.type === 'decl') {\n value = i.raws.semicolon\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawEmptyBody(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length === 0) {\n value = i.raws.after\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawIndent(root) {\n if (root.raws.indent) return root.raws.indent\n let value\n root.walk(i => {\n let p = i.parent\n if (p && p !== root && p.parent && p.parent === root) {\n if (typeof i.raws.before !== 'undefined') {\n let parts = i.raws.before.split('\\n')\n value = parts[parts.length - 1]\n value = value.replace(/\\S/g, '')\n return false\n }\n }\n })\n return value\n }\n\n rawBeforeComment(root, node) {\n let value\n root.walkComments(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeDecl(root, node) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeRule')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeRule(root) {\n let value\n root.walk(i => {\n if (i.nodes && (i.parent !== root || root.first !== i)) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawBeforeClose(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== 'undefined') {\n value = i.raws.after\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawBeforeOpen(root) {\n let value\n root.walk(i => {\n if (i.type !== 'decl') {\n value = i.raws.between\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawColon(root) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.between !== 'undefined') {\n value = i.raws.between.replace(/[^\\s:]/g, '')\n return false\n }\n })\n return value\n }\n\n beforeAfter(node, detect) {\n let value\n if (node.type === 'decl') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (node.type === 'comment') {\n value = this.raw(node, null, 'beforeComment')\n } else if (detect === 'before') {\n value = this.raw(node, null, 'beforeRule')\n } else {\n value = this.raw(node, null, 'beforeClose')\n }\n\n let buf = node.parent\n let depth = 0\n while (buf && buf.type !== 'root') {\n depth += 1\n buf = buf.parent\n }\n\n if (value.includes('\\n')) {\n let indent = this.raw(node, null, 'indent')\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent\n }\n }\n\n return value\n }\n\n rawValue(node, prop) {\n let value = node[prop]\n let raw = node.raws[prop]\n if (raw && raw.value === value) {\n return raw.raw\n }\n\n return value\n }\n}\n\nmodule.exports = Stringifier\nStringifier.default = Stringifier\n","'use strict'\n\nlet Stringifier = require('./stringifier')\n\nfunction stringify(node, builder) {\n let str = new Stringifier(builder)\n str.stringify(node)\n}\n\nmodule.exports = stringify\nstringify.default = stringify\n","'use strict'\n\nmodule.exports.isClean = Symbol('isClean')\n\nmodule.exports.my = Symbol('my')\n","'use strict'\n\nconst SINGLE_QUOTE = \"'\".charCodeAt(0)\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0)\nconst BACKSLASH = '\\\\'.charCodeAt(0)\nconst SLASH = '/'.charCodeAt(0)\nconst NEWLINE = '\\n'.charCodeAt(0)\nconst SPACE = ' '.charCodeAt(0)\nconst FEED = '\\f'.charCodeAt(0)\nconst TAB = '\\t'.charCodeAt(0)\nconst CR = '\\r'.charCodeAt(0)\nconst OPEN_SQUARE = '['.charCodeAt(0)\nconst CLOSE_SQUARE = ']'.charCodeAt(0)\nconst OPEN_PARENTHESES = '('.charCodeAt(0)\nconst CLOSE_PARENTHESES = ')'.charCodeAt(0)\nconst OPEN_CURLY = '{'.charCodeAt(0)\nconst CLOSE_CURLY = '}'.charCodeAt(0)\nconst SEMICOLON = ';'.charCodeAt(0)\nconst ASTERISK = '*'.charCodeAt(0)\nconst COLON = ':'.charCodeAt(0)\nconst AT = '@'.charCodeAt(0)\n\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g\nconst RE_BAD_BRACKET = /.[\\n\"'(/\\\\]/\nconst RE_HEX_ESCAPE = /[\\da-f]/i\n\nmodule.exports = function tokenizer(input, options = {}) {\n let css = input.css.valueOf()\n let ignore = options.ignoreErrors\n\n let code, next, quote, content, escape\n let escaped, escapePos, prev, n, currentToken\n\n let length = css.length\n let pos = 0\n let buffer = []\n let returned = []\n\n function position() {\n return pos\n }\n\n function unclosed(what) {\n throw input.error('Unclosed ' + what, pos)\n }\n\n function endOfFile() {\n return returned.length === 0 && pos >= length\n }\n\n function nextToken(opts) {\n if (returned.length) return returned.pop()\n if (pos >= length) return\n\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false\n\n code = css.charCodeAt(pos)\n\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos\n do {\n next += 1\n code = css.charCodeAt(next)\n } while (\n code === SPACE ||\n code === NEWLINE ||\n code === TAB ||\n code === CR ||\n code === FEED\n )\n\n currentToken = ['space', css.slice(pos, next)]\n pos = next - 1\n break\n }\n\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code)\n currentToken = [controlChar, controlChar, pos]\n break\n }\n\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : ''\n n = css.charCodeAt(pos + 1)\n if (\n prev === 'url' &&\n n !== SINGLE_QUOTE &&\n n !== DOUBLE_QUOTE &&\n n !== SPACE &&\n n !== NEWLINE &&\n n !== TAB &&\n n !== FEED &&\n n !== CR\n ) {\n next = pos\n do {\n escaped = false\n next = css.indexOf(')', next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos\n break\n } else {\n unclosed('bracket')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['brackets', css.slice(pos, next + 1), pos, next]\n\n pos = next\n } else {\n next = css.indexOf(')', pos + 1)\n content = css.slice(pos, next + 1)\n\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = ['(', '(', pos]\n } else {\n currentToken = ['brackets', content, pos, next]\n pos = next\n }\n }\n\n break\n }\n\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"'\n next = pos\n do {\n escaped = false\n next = css.indexOf(quote, next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1\n break\n } else {\n unclosed('string')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['string', css.slice(pos, next + 1), pos, next]\n pos = next\n break\n }\n\n case AT: {\n RE_AT_END.lastIndex = pos + 1\n RE_AT_END.test(css)\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_AT_END.lastIndex - 2\n }\n\n currentToken = ['at-word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n case BACKSLASH: {\n next = pos\n escape = true\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1\n escape = !escape\n }\n code = css.charCodeAt(next + 1)\n if (\n escape &&\n code !== SLASH &&\n code !== SPACE &&\n code !== NEWLINE &&\n code !== TAB &&\n code !== CR &&\n code !== FEED\n ) {\n next += 1\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1\n }\n }\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf('*/', pos + 2) + 1\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length\n } else {\n unclosed('comment')\n }\n }\n\n currentToken = ['comment', css.slice(pos, next + 1), pos, next]\n pos = next\n } else {\n RE_WORD_END.lastIndex = pos + 1\n RE_WORD_END.test(css)\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_WORD_END.lastIndex - 2\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n buffer.push(currentToken)\n pos = next\n }\n\n break\n }\n }\n\n pos++\n return currentToken\n }\n\n function back(token) {\n returned.push(token)\n }\n\n return {\n back,\n nextToken,\n endOfFile,\n position\n }\n}\n","/* eslint-disable no-console */\n'use strict'\n\nlet printed = {}\n\nmodule.exports = function warnOnce(message) {\n if (printed[message]) return\n printed[message] = true\n\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(message)\n }\n}\n","'use strict'\n\nclass Warning {\n constructor(text, opts = {}) {\n this.type = 'warning'\n this.text = text\n\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts)\n this.line = range.start.line\n this.column = range.start.column\n this.endLine = range.end.line\n this.endColumn = range.end.column\n }\n\n for (let opt in opts) this[opt] = opts[opt]\n }\n\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n plugin: this.plugin,\n index: this.index,\n word: this.word\n }).message\n }\n\n if (this.plugin) {\n return this.plugin + ': ' + this.text\n }\n\n return this.text\n }\n}\n\nmodule.exports = Warning\nWarning.default = Warning\n","const htmlparser = require('htmlparser2');\nconst escapeStringRegexp = require('escape-string-regexp');\nconst { isPlainObject } = require('is-plain-object');\nconst deepmerge = require('deepmerge');\nconst parseSrcset = require('parse-srcset');\nconst { parse: postcssParse } = require('postcss');\n// Tags that can conceivably represent stand-alone media.\nconst mediaTags = [\n 'img', 'audio', 'video', 'picture', 'svg',\n 'object', 'map', 'iframe', 'embed'\n];\n// Tags that are inherently vulnerable to being used in XSS attacks.\nconst vulnerableTags = [ 'script', 'style' ];\n\nfunction each(obj, cb) {\n if (obj) {\n Object.keys(obj).forEach(function (key) {\n cb(obj[key], key);\n });\n }\n}\n\n// Avoid false positives with .__proto__, .hasOwnProperty, etc.\nfunction has(obj, key) {\n return ({}).hasOwnProperty.call(obj, key);\n}\n\n// Returns those elements of `a` for which `cb(a)` returns truthy\nfunction filter(a, cb) {\n const n = [];\n each(a, function(v) {\n if (cb(v)) {\n n.push(v);\n }\n });\n return n;\n}\n\nfunction isEmptyObject(obj) {\n for (const key in obj) {\n if (has(obj, key)) {\n return false;\n }\n }\n return true;\n}\n\nfunction stringifySrcset(parsedSrcset) {\n return parsedSrcset.map(function(part) {\n if (!part.url) {\n throw new Error('URL missing');\n }\n\n return (\n part.url +\n (part.w ? ` ${part.w}w` : '') +\n (part.h ? ` ${part.h}h` : '') +\n (part.d ? ` ${part.d}x` : '')\n );\n }).join(', ');\n}\n\nmodule.exports = sanitizeHtml;\n\n// A valid attribute name.\n// We use a tolerant definition based on the set of strings defined by\n// html.spec.whatwg.org/multipage/parsing.html#before-attribute-name-state\n// and html.spec.whatwg.org/multipage/parsing.html#attribute-name-state .\n// The characters accepted are ones which can be appended to the attribute\n// name buffer without triggering a parse error:\n// * unexpected-equals-sign-before-attribute-name\n// * unexpected-null-character\n// * unexpected-character-in-attribute-name\n// We exclude the empty string because it's impossible to get to the after\n// attribute name state with an empty attribute name buffer.\nconst VALID_HTML_ATTRIBUTE_NAME = /^[^\\0\\t\\n\\f\\r /<=>]+$/;\n\n// Ignore the _recursing flag; it's there for recursive\n// invocation as a guard against this exploit:\n// https://github.com/fb55/htmlparser2/issues/105\n\nfunction sanitizeHtml(html, options, _recursing) {\n if (html == null) {\n return '';\n }\n if (typeof html === 'number') {\n html = html.toString();\n }\n\n let result = '';\n // Used for hot swapping the result variable with an empty string in order to \"capture\" the text written to it.\n let tempResult = '';\n\n function Frame(tag, attribs) {\n const that = this;\n this.tag = tag;\n this.attribs = attribs || {};\n this.tagPosition = result.length;\n this.text = ''; // Node inner text\n this.mediaChildren = [];\n\n this.updateParentNodeText = function() {\n if (stack.length) {\n const parentFrame = stack[stack.length - 1];\n parentFrame.text += that.text;\n }\n };\n\n this.updateParentNodeMediaChildren = function() {\n if (stack.length && mediaTags.includes(this.tag)) {\n const parentFrame = stack[stack.length - 1];\n parentFrame.mediaChildren.push(this.tag);\n }\n };\n }\n\n options = Object.assign({}, sanitizeHtml.defaults, options);\n options.parser = Object.assign({}, htmlParserDefaults, options.parser);\n\n // vulnerableTags\n vulnerableTags.forEach(function (tag) {\n if (\n options.allowedTags !== false && (options.allowedTags || []).indexOf(tag) > -1 &&\n !options.allowVulnerableTags\n ) {\n console.warn(`\\n\\n⚠️ Your \\`allowedTags\\` option includes, \\`${tag}\\`, which is inherently\\nvulnerable to XSS attacks. Please remove it from \\`allowedTags\\`.\\nOr, to disable this warning, add the \\`allowVulnerableTags\\` option\\nand ensure you are accounting for this risk.\\n\\n`);\n }\n });\n\n // Tags that contain something other than HTML, or where discarding\n // the text when the tag is disallowed makes sense for other reasons.\n // If we are not allowing these tags, we should drop their content too.\n // For other tags you would drop the tag but keep its content.\n const nonTextTagsArray = options.nonTextTags || [\n 'script',\n 'style',\n 'textarea',\n 'option'\n ];\n let allowedAttributesMap;\n let allowedAttributesGlobMap;\n if (options.allowedAttributes) {\n allowedAttributesMap = {};\n allowedAttributesGlobMap = {};\n each(options.allowedAttributes, function(attributes, tag) {\n allowedAttributesMap[tag] = [];\n const globRegex = [];\n attributes.forEach(function(obj) {\n if (typeof obj === 'string' && obj.indexOf('*') >= 0) {\n globRegex.push(escapeStringRegexp(obj).replace(/\\\\\\*/g, '.*'));\n } else {\n allowedAttributesMap[tag].push(obj);\n }\n });\n if (globRegex.length) {\n allowedAttributesGlobMap[tag] = new RegExp('^(' + globRegex.join('|') + ')$');\n }\n });\n }\n const allowedClassesMap = {};\n const allowedClassesGlobMap = {};\n const allowedClassesRegexMap = {};\n each(options.allowedClasses, function(classes, tag) {\n // Implicitly allows the class attribute\n if (allowedAttributesMap) {\n if (!has(allowedAttributesMap, tag)) {\n allowedAttributesMap[tag] = [];\n }\n allowedAttributesMap[tag].push('class');\n }\n\n allowedClassesMap[tag] = [];\n allowedClassesRegexMap[tag] = [];\n const globRegex = [];\n classes.forEach(function(obj) {\n if (typeof obj === 'string' && obj.indexOf('*') >= 0) {\n globRegex.push(escapeStringRegexp(obj).replace(/\\\\\\*/g, '.*'));\n } else if (obj instanceof RegExp) {\n allowedClassesRegexMap[tag].push(obj);\n } else {\n allowedClassesMap[tag].push(obj);\n }\n });\n if (globRegex.length) {\n allowedClassesGlobMap[tag] = new RegExp('^(' + globRegex.join('|') + ')$');\n }\n });\n\n const transformTagsMap = {};\n let transformTagsAll;\n each(options.transformTags, function(transform, tag) {\n let transFun;\n if (typeof transform === 'function') {\n transFun = transform;\n } else if (typeof transform === 'string') {\n transFun = sanitizeHtml.simpleTransform(transform);\n }\n if (tag === '*') {\n transformTagsAll = transFun;\n } else {\n transformTagsMap[tag] = transFun;\n }\n });\n\n let depth;\n let stack;\n let skipMap;\n let transformMap;\n let skipText;\n let skipTextDepth;\n let addedText = false;\n\n initializeState();\n\n const parser = new htmlparser.Parser({\n onopentag: function(name, attribs) {\n // If `enforceHtmlBoundary` is `true` and this has found the opening\n // `html` tag, reset the state.\n if (options.enforceHtmlBoundary && name === 'html') {\n initializeState();\n }\n\n if (skipText) {\n skipTextDepth++;\n return;\n }\n const frame = new Frame(name, attribs);\n stack.push(frame);\n\n let skip = false;\n const hasText = !!frame.text;\n let transformedTag;\n if (has(transformTagsMap, name)) {\n transformedTag = transformTagsMap[name](name, attribs);\n\n frame.attribs = attribs = transformedTag.attribs;\n\n if (transformedTag.text !== undefined) {\n frame.innerText = transformedTag.text;\n }\n\n if (name !== transformedTag.tagName) {\n frame.name = name = transformedTag.tagName;\n transformMap[depth] = transformedTag.tagName;\n }\n }\n if (transformTagsAll) {\n transformedTag = transformTagsAll(name, attribs);\n\n frame.attribs = attribs = transformedTag.attribs;\n if (name !== transformedTag.tagName) {\n frame.name = name = transformedTag.tagName;\n transformMap[depth] = transformedTag.tagName;\n }\n }\n\n if ((options.allowedTags !== false && (options.allowedTags || []).indexOf(name) === -1) || (options.disallowedTagsMode === 'recursiveEscape' && !isEmptyObject(skipMap)) || (options.nestingLimit != null && depth >= options.nestingLimit)) {\n skip = true;\n skipMap[depth] = true;\n if (options.disallowedTagsMode === 'discard') {\n if (nonTextTagsArray.indexOf(name) !== -1) {\n skipText = true;\n skipTextDepth = 1;\n }\n }\n skipMap[depth] = true;\n }\n depth++;\n if (skip) {\n if (options.disallowedTagsMode === 'discard') {\n // We want the contents but not this tag\n return;\n }\n tempResult = result;\n result = '';\n }\n result += '<' + name;\n\n if (name === 'script') {\n if (options.allowedScriptHostnames || options.allowedScriptDomains) {\n frame.innerText = '';\n }\n }\n\n if (!allowedAttributesMap || has(allowedAttributesMap, name) || allowedAttributesMap['*']) {\n each(attribs, function(value, a) {\n if (!VALID_HTML_ATTRIBUTE_NAME.test(a)) {\n // This prevents part of an attribute name in the output from being\n // interpreted as the end of an attribute, or end of a tag.\n delete frame.attribs[a];\n return;\n }\n // check allowedAttributesMap for the element and attribute and modify the value\n // as necessary if there are specific values defined.\n let passedAllowedAttributesMapCheck = false;\n if (!allowedAttributesMap ||\n (has(allowedAttributesMap, name) && allowedAttributesMap[name].indexOf(a) !== -1) ||\n (allowedAttributesMap['*'] && allowedAttributesMap['*'].indexOf(a) !== -1) ||\n (has(allowedAttributesGlobMap, name) && allowedAttributesGlobMap[name].test(a)) ||\n (allowedAttributesGlobMap['*'] && allowedAttributesGlobMap['*'].test(a))) {\n passedAllowedAttributesMapCheck = true;\n } else if (allowedAttributesMap && allowedAttributesMap[name]) {\n for (const o of allowedAttributesMap[name]) {\n if (isPlainObject(o) && o.name && (o.name === a)) {\n passedAllowedAttributesMapCheck = true;\n let newValue = '';\n if (o.multiple === true) {\n // verify the values that are allowed\n const splitStrArray = value.split(' ');\n for (const s of splitStrArray) {\n if (o.values.indexOf(s) !== -1) {\n if (newValue === '') {\n newValue = s;\n } else {\n newValue += ' ' + s;\n }\n }\n }\n } else if (o.values.indexOf(value) >= 0) {\n // verified an allowed value matches the entire attribute value\n newValue = value;\n }\n value = newValue;\n }\n }\n }\n if (passedAllowedAttributesMapCheck) {\n if (options.allowedSchemesAppliedToAttributes.indexOf(a) !== -1) {\n if (naughtyHref(name, value)) {\n delete frame.attribs[a];\n return;\n }\n }\n\n if (name === 'script' && a === 'src') {\n\n let allowed = true;\n\n try {\n const parsed = parseUrl(value);\n\n if (options.allowedScriptHostnames || options.allowedScriptDomains) {\n const allowedHostname = (options.allowedScriptHostnames || []).find(function (hostname) {\n return hostname === parsed.url.hostname;\n });\n const allowedDomain = (options.allowedScriptDomains || []).find(function(domain) {\n return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);\n });\n allowed = allowedHostname || allowedDomain;\n }\n } catch (e) {\n allowed = false;\n }\n\n if (!allowed) {\n delete frame.attribs[a];\n return;\n }\n }\n\n if (name === 'iframe' && a === 'src') {\n let allowed = true;\n try {\n const parsed = parseUrl(value);\n\n if (parsed.isRelativeUrl) {\n // default value of allowIframeRelativeUrls is true\n // unless allowedIframeHostnames or allowedIframeDomains specified\n allowed = has(options, 'allowIframeRelativeUrls')\n ? options.allowIframeRelativeUrls\n : (!options.allowedIframeHostnames && !options.allowedIframeDomains);\n } else if (options.allowedIframeHostnames || options.allowedIframeDomains) {\n const allowedHostname = (options.allowedIframeHostnames || []).find(function (hostname) {\n return hostname === parsed.url.hostname;\n });\n const allowedDomain = (options.allowedIframeDomains || []).find(function(domain) {\n return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);\n });\n allowed = allowedHostname || allowedDomain;\n }\n } catch (e) {\n // Unparseable iframe src\n allowed = false;\n }\n if (!allowed) {\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'srcset') {\n try {\n let parsed = parseSrcset(value);\n parsed.forEach(function(value) {\n if (naughtyHref('srcset', value.url)) {\n value.evil = true;\n }\n });\n parsed = filter(parsed, function(v) {\n return !v.evil;\n });\n if (!parsed.length) {\n delete frame.attribs[a];\n return;\n } else {\n value = stringifySrcset(filter(parsed, function(v) {\n return !v.evil;\n }));\n frame.attribs[a] = value;\n }\n } catch (e) {\n // Unparseable srcset\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'class') {\n const allowedSpecificClasses = allowedClassesMap[name];\n const allowedWildcardClasses = allowedClassesMap['*'];\n const allowedSpecificClassesGlob = allowedClassesGlobMap[name];\n const allowedSpecificClassesRegex = allowedClassesRegexMap[name];\n const allowedWildcardClassesGlob = allowedClassesGlobMap['*'];\n const allowedClassesGlobs = [\n allowedSpecificClassesGlob,\n allowedWildcardClassesGlob\n ]\n .concat(allowedSpecificClassesRegex)\n .filter(function (t) {\n return t;\n });\n if (allowedSpecificClasses && allowedWildcardClasses) {\n value = filterClasses(value, deepmerge(allowedSpecificClasses, allowedWildcardClasses), allowedClassesGlobs);\n } else {\n value = filterClasses(value, allowedSpecificClasses || allowedWildcardClasses, allowedClassesGlobs);\n }\n if (!value.length) {\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'style') {\n try {\n const abstractSyntaxTree = postcssParse(name + ' {' + value + '}');\n const filteredAST = filterCss(abstractSyntaxTree, options.allowedStyles);\n\n value = stringifyStyleAttributes(filteredAST);\n\n if (value.length === 0) {\n delete frame.attribs[a];\n return;\n }\n } catch (e) {\n delete frame.attribs[a];\n return;\n }\n }\n result += ' ' + a;\n if (value && value.length) {\n result += '=\"' + escapeHtml(value, true) + '\"';\n }\n } else {\n delete frame.attribs[a];\n }\n });\n }\n if (options.selfClosing.indexOf(name) !== -1) {\n result += ' />';\n } else {\n result += '>';\n if (frame.innerText && !hasText && !options.textFilter) {\n result += escapeHtml(frame.innerText);\n addedText = true;\n }\n }\n if (skip) {\n result = tempResult + escapeHtml(result);\n tempResult = '';\n }\n },\n ontext: function(text) {\n if (skipText) {\n return;\n }\n const lastFrame = stack[stack.length - 1];\n let tag;\n\n if (lastFrame) {\n tag = lastFrame.tag;\n // If inner text was set by transform function then let's use it\n text = lastFrame.innerText !== undefined ? lastFrame.innerText : text;\n }\n\n if (options.disallowedTagsMode === 'discard' && ((tag === 'script') || (tag === 'style'))) {\n // htmlparser2 gives us these as-is. Escaping them ruins the content. Allowing\n // script tags is, by definition, game over for XSS protection, so if that's\n // your concern, don't allow them. The same is essentially true for style tags\n // which have their own collection of XSS vectors.\n result += text;\n } else {\n const escaped = escapeHtml(text, false);\n if (options.textFilter && !addedText) {\n result += options.textFilter(escaped, tag);\n } else if (!addedText) {\n result += escaped;\n }\n }\n if (stack.length) {\n const frame = stack[stack.length - 1];\n frame.text += text;\n }\n },\n onclosetag: function(name) {\n\n if (skipText) {\n skipTextDepth--;\n if (!skipTextDepth) {\n skipText = false;\n } else {\n return;\n }\n }\n\n const frame = stack.pop();\n if (!frame) {\n // Do not crash on bad markup\n return;\n }\n\n if (frame.tag !== name) {\n // Another case of bad markup.\n // Push to stack, so that it will be used in future closing tags.\n stack.push(frame);\n return;\n }\n\n skipText = options.enforceHtmlBoundary ? name === 'html' : false;\n depth--;\n const skip = skipMap[depth];\n if (skip) {\n delete skipMap[depth];\n if (options.disallowedTagsMode === 'discard') {\n frame.updateParentNodeText();\n return;\n }\n tempResult = result;\n result = '';\n }\n\n if (transformMap[depth]) {\n name = transformMap[depth];\n delete transformMap[depth];\n }\n\n if (options.exclusiveFilter && options.exclusiveFilter(frame)) {\n result = result.substr(0, frame.tagPosition);\n return;\n }\n\n frame.updateParentNodeMediaChildren();\n frame.updateParentNodeText();\n\n if (options.selfClosing.indexOf(name) !== -1) {\n // Already output />\n if (skip) {\n result = tempResult;\n tempResult = '';\n }\n return;\n }\n\n result += '';\n if (skip) {\n result = tempResult + escapeHtml(result);\n tempResult = '';\n }\n addedText = false;\n }\n }, options.parser);\n parser.write(html);\n parser.end();\n\n return result;\n\n function initializeState() {\n result = '';\n depth = 0;\n stack = [];\n skipMap = {};\n transformMap = {};\n skipText = false;\n skipTextDepth = 0;\n }\n\n function escapeHtml(s, quote) {\n if (typeof (s) !== 'string') {\n s = s + '';\n }\n if (options.parser.decodeEntities) {\n s = s.replace(/&/g, '&').replace(//g, '>');\n if (quote) {\n s = s.replace(/\"/g, '"');\n }\n }\n // TODO: this is inadequate because it will pass `&0;`. This approach\n // will not work, each & must be considered with regard to whether it\n // is followed by a 100% syntactically valid entity or not, and escaped\n // if it is not. If this bothers you, don't set parser.decodeEntities\n // to false. (The default is true.)\n s = s.replace(/&(?![a-zA-Z0-9#]{1,20};)/g, '&') // Match ampersands not part of existing HTML entity\n .replace(//g, '>');\n if (quote) {\n s = s.replace(/\"/g, '"');\n }\n return s;\n }\n\n function naughtyHref(name, href) {\n // Browsers ignore character codes of 32 (space) and below in a surprising\n // number of situations. Start reading here:\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet#Embedded_tab\n // eslint-disable-next-line no-control-regex\n href = href.replace(/[\\x00-\\x20]+/g, '');\n // Clobber any comments in URLs, which the browser might\n // interpret inside an XML data island, allowing\n // a javascript: URL to be snuck through\n while (true) {\n const firstIndex = href.indexOf('', firstIndex + 4);\n if (lastIndex === -1) {\n break;\n }\n href = href.substring(0, firstIndex) + href.substring(lastIndex + 3);\n }\n // Case insensitive so we don't get faked out by JAVASCRIPT #1\n // Allow more characters after the first so we don't get faked\n // out by certain schemes browsers accept\n const matches = href.match(/^([a-zA-Z][a-zA-Z0-9.\\-+]*):/);\n if (!matches) {\n // Protocol-relative URL starting with any combination of '/' and '\\'\n if (href.match(/^[/\\\\]{2}/)) {\n return !options.allowProtocolRelative;\n }\n\n // No scheme\n return false;\n }\n const scheme = matches[1].toLowerCase();\n\n if (has(options.allowedSchemesByTag, name)) {\n return options.allowedSchemesByTag[name].indexOf(scheme) === -1;\n }\n\n return !options.allowedSchemes || options.allowedSchemes.indexOf(scheme) === -1;\n }\n\n function parseUrl(value) {\n value = value.replace(/^(\\w+:)?\\s*[\\\\/]\\s*[\\\\/]/, '$1//');\n if (value.startsWith('relative:')) {\n // An attempt to exploit our workaround for base URLs being\n // mandatory for relative URL validation in the WHATWG\n // URL parser, reject it\n throw new Error('relative: exploit attempt');\n }\n // naughtyHref is in charge of whether protocol relative URLs\n // are cool. Here we are concerned just with allowed hostnames and\n // whether to allow relative URLs.\n //\n // Build a placeholder \"base URL\" against which any reasonable\n // relative URL may be parsed successfully\n let base = 'relative://relative-site';\n for (let i = 0; (i < 100); i++) {\n base += `/${i}`;\n }\n\n const parsed = new URL(value, base);\n\n const isRelativeUrl = parsed && parsed.hostname === 'relative-site' && parsed.protocol === 'relative:';\n return {\n isRelativeUrl,\n url: parsed\n };\n }\n /**\n * Filters user input css properties by allowlisted regex attributes.\n * Modifies the abstractSyntaxTree object.\n *\n * @param {object} abstractSyntaxTree - Object representation of CSS attributes.\n * @property {array[Declaration]} abstractSyntaxTree.nodes[0] - Each object cointains prop and value key, i.e { prop: 'color', value: 'red' }.\n * @param {object} allowedStyles - Keys are properties (i.e color), value is list of permitted regex rules (i.e /green/i).\n * @return {object} - The modified tree.\n */\n function filterCss(abstractSyntaxTree, allowedStyles) {\n if (!allowedStyles) {\n return abstractSyntaxTree;\n }\n\n const astRules = abstractSyntaxTree.nodes[0];\n let selectedRule;\n\n // Merge global and tag-specific styles into new AST.\n if (allowedStyles[astRules.selector] && allowedStyles['*']) {\n selectedRule = deepmerge(\n allowedStyles[astRules.selector],\n allowedStyles['*']\n );\n } else {\n selectedRule = allowedStyles[astRules.selector] || allowedStyles['*'];\n }\n\n if (selectedRule) {\n abstractSyntaxTree.nodes[0].nodes = astRules.nodes.reduce(filterDeclarations(selectedRule), []);\n }\n\n return abstractSyntaxTree;\n }\n\n /**\n * Extracts the style attributes from an AbstractSyntaxTree and formats those\n * values in the inline style attribute format.\n *\n * @param {AbstractSyntaxTree} filteredAST\n * @return {string} - Example: \"color:yellow;text-align:center !important;font-family:helvetica;\"\n */\n function stringifyStyleAttributes(filteredAST) {\n return filteredAST.nodes[0].nodes\n .reduce(function(extractedAttributes, attrObject) {\n extractedAttributes.push(\n `${attrObject.prop}:${attrObject.value}${attrObject.important ? ' !important' : ''}`\n );\n return extractedAttributes;\n }, [])\n .join(';');\n }\n\n /**\n * Filters the existing attributes for the given property. Discards any attributes\n * which don't match the allowlist.\n *\n * @param {object} selectedRule - Example: { color: red, font-family: helvetica }\n * @param {array} allowedDeclarationsList - List of declarations which pass the allowlist.\n * @param {object} attributeObject - Object representing the current css property.\n * @property {string} attributeObject.type - Typically 'declaration'.\n * @property {string} attributeObject.prop - The CSS property, i.e 'color'.\n * @property {string} attributeObject.value - The corresponding value to the css property, i.e 'red'.\n * @return {function} - When used in Array.reduce, will return an array of Declaration objects\n */\n function filterDeclarations(selectedRule) {\n return function (allowedDeclarationsList, attributeObject) {\n // If this property is allowlisted...\n if (has(selectedRule, attributeObject.prop)) {\n const matchesRegex = selectedRule[attributeObject.prop].some(function(regularExpression) {\n return regularExpression.test(attributeObject.value);\n });\n\n if (matchesRegex) {\n allowedDeclarationsList.push(attributeObject);\n }\n }\n return allowedDeclarationsList;\n };\n }\n\n function filterClasses(classes, allowed, allowedGlobs) {\n if (!allowed) {\n // The class attribute is allowed without filtering on this tag\n return classes;\n }\n classes = classes.split(/\\s+/);\n return classes.filter(function(clss) {\n return allowed.indexOf(clss) !== -1 || allowedGlobs.some(function(glob) {\n return glob.test(clss);\n });\n }).join(' ');\n }\n}\n\n// Defaults are accessible to you so that you can use them as a starting point\n// programmatically if you wish\n\nconst htmlParserDefaults = {\n decodeEntities: true\n};\nsanitizeHtml.defaults = {\n allowedTags: [\n // Sections derived from MDN element categories and limited to the more\n // benign categories.\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element\n // Content sectioning\n 'address', 'article', 'aside', 'footer', 'header',\n 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hgroup',\n 'main', 'nav', 'section',\n // Text content\n 'blockquote', 'dd', 'div', 'dl', 'dt', 'figcaption', 'figure',\n 'hr', 'li', 'main', 'ol', 'p', 'pre', 'ul',\n // Inline text semantics\n 'a', 'abbr', 'b', 'bdi', 'bdo', 'br', 'cite', 'code', 'data', 'dfn',\n 'em', 'i', 'kbd', 'mark', 'q',\n 'rb', 'rp', 'rt', 'rtc', 'ruby',\n 's', 'samp', 'small', 'span', 'strong', 'sub', 'sup', 'time', 'u', 'var', 'wbr',\n // Table content\n 'caption', 'col', 'colgroup', 'table', 'tbody', 'td', 'tfoot', 'th',\n 'thead', 'tr'\n ],\n disallowedTagsMode: 'discard',\n allowedAttributes: {\n a: [ 'href', 'name', 'target' ],\n // We don't currently allow img itself by default, but\n // these attributes would make sense if we did.\n img: [ 'src', 'srcset', 'alt', 'title', 'width', 'height', 'loading' ]\n },\n // Lots of these won't come up by default because we don't allow them\n selfClosing: [ 'img', 'br', 'hr', 'area', 'base', 'basefont', 'input', 'link', 'meta' ],\n // URL schemes we permit\n allowedSchemes: [ 'http', 'https', 'ftp', 'mailto', 'tel' ],\n allowedSchemesByTag: {},\n allowedSchemesAppliedToAttributes: [ 'href', 'src', 'cite' ],\n allowProtocolRelative: true,\n enforceHtmlBoundary: false\n};\n\nsanitizeHtml.simpleTransform = function(newTagName, newAttribs, merge) {\n merge = (merge === undefined) ? true : merge;\n newAttribs = newAttribs || {};\n\n return function(tagName, attribs) {\n let attrib;\n if (merge) {\n for (attrib in newAttribs) {\n attribs[attrib] = newAttribs[attrib];\n }\n } else {\n attribs = newAttribs;\n }\n\n return {\n tagName: newTagName,\n attribs: attribs\n };\n };\n};\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, vModelSelect as _vModelSelect, withDirectives as _withDirectives, vModelText as _vModelText, normalizeClass as _normalizeClass, resolveComponent as _resolveComponent, createVNode as _createVNode, createBlock as _createBlock, withModifiers as _withModifiers, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-45d3bf87\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-form\" }\nconst _hoisted_2 = [\"onSubmit\"]\nconst _hoisted_3 = { class: \"form-items\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"form-item-radio\"\n}\nconst _hoisted_5 = [\"checked\", \"disabled\"]\nconst _hoisted_6 = { for: \"withGpx\" }\nconst _hoisted_7 = [\"checked\", \"disabled\"]\nconst _hoisted_8 = { for: \"withoutGpx\" }\nconst _hoisted_9 = { class: \"form-item\" }\nconst _hoisted_10 = [\"disabled\"]\nconst _hoisted_11 = [\"value\"]\nconst _hoisted_12 = {\n key: 1,\n class: \"form-item\"\n}\nconst _hoisted_13 = { for: \"gpxFile\" }\nconst _hoisted_14 = [\"disabled\"]\nconst _hoisted_15 = { class: \"files-help info-box\" }\nconst _hoisted_16 = {\n key: 2,\n class: \"form-item\"\n}\nconst _hoisted_17 = { for: \"title\" }\nconst _hoisted_18 = [\"required\", \"disabled\"]\nconst _hoisted_19 = { key: 3 }\nconst _hoisted_20 = { class: \"workout-date-duration\" }\nconst _hoisted_21 = { class: \"form-item\" }\nconst _hoisted_22 = { class: \"workout-date-time\" }\nconst _hoisted_23 = [\"disabled\"]\nconst _hoisted_24 = [\"disabled\"]\nconst _hoisted_25 = { class: \"form-item\" }\nconst _hoisted_26 = [\"disabled\"]\nconst _hoisted_27 = [\"disabled\"]\nconst _hoisted_28 = [\"disabled\"]\nconst _hoisted_29 = { class: \"workout-data\" }\nconst _hoisted_30 = { class: \"form-item\" }\nconst _hoisted_31 = [\"disabled\"]\nconst _hoisted_32 = { class: \"form-item\" }\nconst _hoisted_33 = [\"disabled\"]\nconst _hoisted_34 = { class: \"form-item\" }\nconst _hoisted_35 = [\"disabled\"]\nconst _hoisted_36 = { class: \"form-item\" }\nconst _hoisted_37 = { key: 1 }\nconst _hoisted_38 = {\n key: 2,\n class: \"form-buttons\"\n}\nconst _hoisted_39 = [\"disabled\"]\nconst _hoisted_40 = [\"onClick\"]\n\nimport {\n ComputedRef,\n Ref,\n computed,\n reactive,\n ref,\n toRefs,\n watch,\n onMounted,\n onUnmounted,\n withDefaults,\n } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { useRouter } from 'vue-router'\n\n import { ROOT_STORE, WORKOUTS_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { IWorkout, IWorkoutForm } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { formatWorkoutDate, getDateWithTZ } from '@/utils/dates'\n import { getReadableFileSize } from '@/utils/files'\n import { translateSports } from '@/utils/sports'\n import { convertDistance } from '@/utils/units'\n\n interface Props {\n authUser: IAuthUserProfile\n sports: ISport[]\n isCreation?: boolean\n loading?: boolean\n workout?: IWorkout\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutEdition',\n props: {\n authUser: null,\n sports: null,\n isCreation: { type: Boolean, default: false },\n loading: { type: Boolean, default: false },\n workout: { default: () => ({} as IWorkout) }\n },\n setup(__props: any) {\n\nconst props = __props as { authUser: IAuthUserProfile, sports: ISport[], isCreation: boolean, loading: boolean, workout: IWorkout };\n\n \n\n const { t } = useI18n()\n const store = useStore()\n const router = useRouter()\n\n const { authUser, workout, isCreation, loading } = toRefs(props)\n const translatedSports: ComputedRef = computed(() =>\n translateSports(\n props.sports,\n t,\n 'is_active_for_user',\n workout.value.id ? [workout.value.sport_id] : []\n )\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const fileSizeLimit = appConfig.value.max_single_file_size\n ? getReadableFileSize(appConfig.value.max_single_file_size)\n : ''\n const gpx_limit_import = appConfig.value.gpx_limit_import\n const zipSizeLimit = appConfig.value.max_zip_file_size\n ? getReadableFileSize(appConfig.value.max_zip_file_size)\n : ''\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const workoutForm = reactive({\n sport_id: '',\n title: '',\n notes: '',\n workoutDate: '',\n workoutTime: '',\n workoutDurationHour: '',\n workoutDurationMinutes: '',\n workoutDurationSeconds: '',\n workoutDistance: '',\n workoutAscent: '',\n workoutDescent: '',\n })\n const withGpx = ref(\n props.workout.id ? props.workout.with_gpx : props.isCreation\n )\n let gpxFile: File | null = null\n const formErrors = ref(false)\n const payloadErrorMessages: Ref = ref([])\n\n onMounted(() => {\n if (props.workout.id) {\n formatWorkoutForm(props.workout)\n }\n })\n\n function updateNotes(value: string) {\n workoutForm.notes = value\n }\n function updateWithGpx() {\n withGpx.value = !withGpx.value\n formErrors.value = false\n }\n function updateFile(event: Event & { target: HTMLInputElement }) {\n if (event.target.files) {\n gpxFile = event.target.files[0]\n }\n }\n function formatWorkoutForm(workout: IWorkout) {\n workoutForm.sport_id = `${workout.sport_id}`\n workoutForm.title = workout.title\n workoutForm.notes = workout.notes\n if (!workout.with_gpx) {\n const workoutDateTime = formatWorkoutDate(\n getDateWithTZ(workout.workout_date, props.authUser.timezone),\n 'yyyy-MM-dd'\n )\n const duration = workout.duration.split(':')\n workoutForm.workoutDistance = `${\n authUser.value.imperial_units\n ? convertDistance(workout.distance, 'km', 'mi', 3)\n : parseFloat(workout.distance.toFixed(3))\n }`\n workoutForm.workoutDate = workoutDateTime.workout_date\n workoutForm.workoutTime = workoutDateTime.workout_time\n workoutForm.workoutDurationHour = duration[0]\n workoutForm.workoutDurationMinutes = duration[1]\n workoutForm.workoutDurationSeconds = duration[2]\n workoutForm.workoutAscent =\n workout.ascent === null\n ? ''\n : `${\n authUser.value.imperial_units\n ? convertDistance(workout.ascent, 'm', 'ft', 2)\n : parseFloat(workout.ascent.toFixed(2))\n }`\n workoutForm.workoutDescent =\n workout.descent === null\n ? ''\n : `${\n authUser.value.imperial_units\n ? convertDistance(workout.descent, 'm', 'ft', 2)\n : parseFloat(workout.descent.toFixed(2))\n }`\n }\n }\n function isDistanceInvalid() {\n return payloadErrorMessages.value.includes('workouts.INVALID_DISTANCE')\n }\n function isDurationInvalid() {\n return payloadErrorMessages.value.includes('workouts.INVALID_DURATION')\n }\n function isElevationInvalid() {\n return payloadErrorMessages.value.includes(\n 'workouts.INVALID_ASCENT_OR_DESCENT'\n )\n }\n function formatPayload(payload: IWorkoutForm) {\n payloadErrorMessages.value = []\n payload.title = workoutForm.title\n payload.duration =\n +workoutForm.workoutDurationHour * 3600 +\n +workoutForm.workoutDurationMinutes * 60 +\n +workoutForm.workoutDurationSeconds\n if (payload.duration <= 0) {\n payloadErrorMessages.value.push('workouts.INVALID_DURATION')\n }\n payload.distance = authUser.value.imperial_units\n ? convertDistance(+workoutForm.workoutDistance, 'mi', 'km', 3)\n : +workoutForm.workoutDistance\n if (payload.distance <= 0) {\n payloadErrorMessages.value.push('workouts.INVALID_DISTANCE')\n }\n payload.workout_date = `${workoutForm.workoutDate} ${workoutForm.workoutTime}`\n payload.ascent =\n workoutForm.workoutAscent === ''\n ? null\n : authUser.value.imperial_units\n ? convertDistance(+workoutForm.workoutAscent, 'ft', 'm', 3)\n : +workoutForm.workoutAscent\n payload.descent =\n workoutForm.workoutDescent === ''\n ? null\n : authUser.value.imperial_units\n ? convertDistance(+workoutForm.workoutDescent, 'ft', 'm', 3)\n : +workoutForm.workoutDescent\n if (\n (payload.ascent !== null && payload.descent === null) ||\n (payload.ascent === null && payload.descent !== null)\n ) {\n payloadErrorMessages.value.push('workouts.INVALID_ASCENT_OR_DESCENT')\n }\n }\n function updateWorkout() {\n const payload: IWorkoutForm = {\n sport_id: +workoutForm.sport_id,\n notes: workoutForm.notes,\n }\n if (props.workout.id) {\n if (props.workout.with_gpx) {\n payload.title = workoutForm.title\n } else {\n formatPayload(payload)\n }\n if (payloadErrorMessages.value.length > 0) {\n store.commit(\n ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES,\n payloadErrorMessages.value\n )\n } else {\n store.dispatch(WORKOUTS_STORE.ACTIONS.EDIT_WORKOUT, {\n workoutId: props.workout.id,\n data: payload,\n })\n }\n } else {\n if (withGpx.value) {\n if (!gpxFile) {\n const errorMessage = 'workouts.NO_FILE_PROVIDED'\n store.commit(ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES, errorMessage)\n return\n }\n payload.file = gpxFile\n store.dispatch(WORKOUTS_STORE.ACTIONS.ADD_WORKOUT, payload)\n } else {\n formatPayload(payload)\n if (payloadErrorMessages.value.length > 0) {\n store.commit(\n ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES,\n payloadErrorMessages.value\n )\n } else {\n store.dispatch(\n WORKOUTS_STORE.ACTIONS.ADD_WORKOUT_WITHOUT_GPX,\n payload\n )\n }\n }\n }\n }\n function onCancel() {\n if (props.workout.id) {\n router.push({\n name: 'Workout',\n params: { workoutId: props.workout.id },\n })\n } else {\n router.go(-1)\n }\n }\n function invalidateForm() {\n formErrors.value = true\n }\n\n onUnmounted(() => store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES))\n\n watch(\n () => props.workout,\n async (\n newWorkout: IWorkout | undefined,\n previousWorkout: IWorkout | undefined\n ) => {\n if (newWorkout !== previousWorkout && newWorkout && newWorkout.id) {\n formatWorkoutForm(newWorkout)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_CustomTextArea = _resolveComponent(\"CustomTextArea\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Loader = _resolveComponent(\"Loader\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n id: \"workout-edition\",\n class: _normalizeClass([\"center-card with-margin\", { 'center-form': _unref(workout) && _unref(workout).with_gpx }])\n }, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(`workouts.${_unref(isCreation) ? 'ADD' : 'EDIT'}_WORKOUT`)), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"form\", {\n class: _normalizeClass({ errors: formErrors.value }),\n onSubmit: _withModifiers(updateWorkout, [\"prevent\"])\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_unref(isCreation))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"input\", {\n id: \"withGpx\",\n type: \"radio\",\n checked: withGpx.value,\n disabled: _unref(loading),\n onClick: updateWithGpx\n }, null, 8, _hoisted_5),\n _createElementVNode(\"label\", _hoisted_6, _toDisplayString(_ctx.$t('workouts.WITH_GPX')), 1)\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"input\", {\n id: \"withoutGpx\",\n type: \"radio\",\n checked: !withGpx.value,\n disabled: _unref(loading),\n onClick: updateWithGpx\n }, null, 8, _hoisted_7),\n _createElementVNode(\"label\", _hoisted_8, _toDisplayString(_ctx.$t('workouts.WITHOUT_GPX')), 1)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.SPORT', 1)) + \"*: \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"sport\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((workoutForm.sport_id) = $event))\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports), (sport) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: sport.id,\n key: sport.id\n }, _toDisplayString(sport.translatedLabel), 9, _hoisted_11))\n }), 128))\n ], 40, _hoisted_10), [\n [_vModelSelect, workoutForm.sport_id]\n ])\n ]),\n (_unref(isCreation) && withGpx.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_12, [\n _createElementVNode(\"label\", _hoisted_13, _toDisplayString(_ctx.$t('workouts.GPX_FILE')) + \" \" + _toDisplayString(_ctx.$t('workouts.ZIP_ARCHIVE_DESCRIPTION')) + \"*: \", 1),\n _createElementVNode(\"input\", {\n id: \"gpxFile\",\n name: \"gpxFile\",\n type: \"file\",\n accept: \".gpx, .zip\",\n disabled: _unref(loading),\n required: \"\",\n onInvalid: invalidateForm,\n onInput: updateFile\n }, null, 40, _hoisted_14),\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"strong\", null, _toDisplayString(_ctx.$t('workouts.GPX_FILE')) + \":\", 1),\n _createElementVNode(\"ul\", null, [\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('workouts.MAX_SIZE')) + \": \" + _toDisplayString(_unref(fileSizeLimit)), 1)\n ])\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"strong\", null, _toDisplayString(_ctx.$t('workouts.ZIP_ARCHIVE')) + \":\", 1),\n _createElementVNode(\"ul\", null, [\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('workouts.NO_FOLDER')), 1),\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('workouts.MAX_FILES')) + \": \" + _toDisplayString(_unref(gpx_limit_import)), 1),\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('workouts.MAX_SIZE')) + \": \" + _toDisplayString(_unref(zipSizeLimit)), 1)\n ])\n ])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_16, [\n _createElementVNode(\"label\", _hoisted_17, _toDisplayString(_ctx.$t('workouts.TITLE')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"title\",\n name: \"title\",\n type: \"text\",\n required: !_unref(isCreation),\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((workoutForm.title) = $event))\n }, null, 40, _hoisted_18), [\n [_vModelText, workoutForm.title]\n ])\n ])),\n (!withGpx.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_19, [\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.WORKOUT_DATE')) + \"*:\", 1),\n _createElementVNode(\"div\", _hoisted_22, [\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-date\",\n name: \"workout-date\",\n type: \"date\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((workoutForm.workoutDate) = $event))\n }, null, 40, _hoisted_23), [\n [_vModelText, workoutForm.workoutDate]\n ]),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-time\",\n name: \"workout-time\",\n class: \"workout-time\",\n type: \"time\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((workoutForm.workoutTime) = $event))\n }, null, 40, _hoisted_24), [\n [_vModelText, workoutForm.workoutTime]\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_25, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DURATION')) + \"*:\", 1),\n _createElementVNode(\"div\", null, [\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-duration-hour\",\n name: \"workout-duration-hour\",\n class: _normalizeClass([\"workout-duration\", { errored: isDurationInvalid() }]),\n type: \"text\",\n placeholder: \"HH\",\n minlength: \"1\",\n maxlength: \"2\",\n pattern: \"^([0-1]?[0-9]|2[0-3])$\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((workoutForm.workoutDurationHour) = $event))\n }, null, 42, _hoisted_26), [\n [_vModelText, workoutForm.workoutDurationHour]\n ]),\n _createTextVNode(\" : \"),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-duration-minutes\",\n name: \"workout-duration-minutes\",\n class: _normalizeClass([\"workout-duration\", { errored: isDurationInvalid() }]),\n type: \"text\",\n pattern: \"^([0-5][0-9])$\",\n minlength: \"2\",\n maxlength: \"2\",\n placeholder: \"MM\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((workoutForm.workoutDurationMinutes) = $event))\n }, null, 42, _hoisted_27), [\n [_vModelText, workoutForm.workoutDurationMinutes]\n ]),\n _createTextVNode(\" : \"),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-duration-seconds\",\n name: \"workout-duration-seconds\",\n class: _normalizeClass([\"workout-duration\", { errored: isDurationInvalid() }]),\n type: \"text\",\n pattern: \"^([0-5][0-9])$\",\n minlength: \"2\",\n maxlength: \"2\",\n placeholder: \"SS\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((workoutForm.workoutDurationSeconds) = $event))\n }, null, 42, _hoisted_28), [\n [_vModelText, workoutForm.workoutDurationSeconds]\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_29, [\n _createElementVNode(\"div\", _hoisted_30, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DISTANCE')) + \" (\" + _toDisplayString(_unref(authUser).imperial_units ? 'mi' : 'km') + \")*: \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n class: _normalizeClass({ errored: isDistanceInvalid() }),\n name: \"workout-distance\",\n type: \"number\",\n min: \"0\",\n step: \"0.001\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((workoutForm.workoutDistance) = $event))\n }, null, 42, _hoisted_31), [\n [_vModelText, workoutForm.workoutDistance]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_32, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.ASCENT')) + \" (\" + _toDisplayString(_unref(authUser).imperial_units ? 'ft' : 'm') + \"): \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n class: _normalizeClass({ errored: isElevationInvalid() }),\n name: \"workout-ascent\",\n type: \"number\",\n min: \"0\",\n step: \"0.01\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = ($event: any) => ((workoutForm.workoutAscent) = $event))\n }, null, 42, _hoisted_33), [\n [_vModelText, workoutForm.workoutAscent]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_34, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DESCENT')) + \" (\" + _toDisplayString(_unref(authUser).imperial_units ? 'ft' : 'm') + \"): \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n class: _normalizeClass({ errored: isElevationInvalid() }),\n name: \"workout-descent\",\n type: \"number\",\n min: \"0\",\n step: \"0.01\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[9] || (_cache[9] = ($event: any) => ((workoutForm.workoutDescent) = $event))\n }, null, 42, _hoisted_35), [\n [_vModelText, workoutForm.workoutDescent]\n ])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_36, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.NOTES')) + \": \", 1),\n _createVNode(_component_CustomTextArea, {\n name: \"notes\",\n input: workoutForm.notes,\n disabled: _unref(loading),\n onUpdateValue: updateNotes\n }, null, 8, [\"input\", \"disabled\"])\n ])\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(loading))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_37, [\n _createVNode(_component_Loader)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_38, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n type: \"submit\",\n disabled: _unref(loading)\n }, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 9, _hoisted_39),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _withModifiers(onCancel, [\"prevent\"])\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 9, _hoisted_40)\n ]))\n ], 42, _hoisted_2)\n ])\n ]),\n _: 1\n })\n ], 2))\n}\n}\n\n})","import script from \"./WorkoutEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutEdition.vue?vue&type=style&index=0&id=45d3bf87&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-45d3bf87\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"add-workout\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\n\nimport { ComputedRef, computed } from 'vue'\n\n import WorkoutEdition from '@/components/Workout/WorkoutEdition.vue'\n import {\n AUTH_USER_STORE,\n SPORTS_STORE,\n WORKOUTS_STORE,\n } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { IWorkoutData } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AddWorkout',\n setup(__props) {\n\n const store = useStore()\n\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const workoutData: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.WORKOUT_DATA]\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(WorkoutEdition, {\n authUser: _unref(authUser),\n sports: _unref(sports),\n isCreation: true,\n loading: _unref(workoutData).loading\n }, null, 8, [\"authUser\", \"sports\", \"loading\"])\n ])\n ]))\n}\n}\n\n})","import script from \"./AddWorkout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AddWorkout.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"edit-workout\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\n\nimport { computed, watch, onBeforeMount, ComputedRef } from 'vue'\n import { useRoute } from 'vue-router'\n\n import WorkoutEdition from '@/components/Workout/WorkoutEdition.vue'\n import {\n AUTH_USER_STORE,\n SPORTS_STORE,\n WORKOUTS_STORE,\n } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { IWorkoutData } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'EditWorkout',\n setup(__props) {\n\n const route = useRoute()\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const workoutData: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.WORKOUT_DATA]\n )\n\n onBeforeMount(() => {\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, {\n workoutId: route.params.workoutId,\n })\n })\n\n watch(\n () => route.params.workoutId,\n async (newWorkoutId) => {\n if (!newWorkoutId) {\n store.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(workoutData).workout.id)\n ? (_openBlock(), _createBlock(WorkoutEdition, {\n key: 0,\n authUser: _unref(authUser),\n sports: _unref(sports),\n workout: _unref(workoutData).workout,\n loading: _unref(workoutData).loading\n }, null, 8, [\"authUser\", \"sports\", \"workout\", \"loading\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./EditWorkout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./EditWorkout.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4d9f9a8a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-card-title\" }\nconst _hoisted_2 = [\"title\"]\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-left\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = [\n _hoisted_3\n]\nconst _hoisted_5 = { class: \"workout-card-title\" }\nconst _hoisted_6 = { class: \"workout-title-date\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"workout-title\"\n}\nconst _hoisted_8 = {\n key: 1,\n class: \"workout-title\"\n}\nconst _hoisted_9 = { class: \"workout-segment\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-map-marker\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = { class: \"workout-date\" }\nconst _hoisted_12 = { class: \"workout-link\" }\nconst _hoisted_13 = [\"title\"]\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-right\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_15 = [\n _hoisted_14\n]\n\nimport { toRefs } from 'vue'\n\n import authApi from '@/api/authApi'\n import { ISport } from '@/types/sports'\n import { IWorkoutObject } from '@/types/workouts'\n\n interface Props {\n sport: ISport\n workoutObject: IWorkoutObject\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutCardTitle',\n props: {\n sport: null,\n workoutObject: null\n },\n emits: ['displayModal'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n sport: ISport\n workoutObject: IWorkoutObject\n };\n\n \n\n \n\n const { sport, workoutObject } = toRefs(props)\n\n async function downloadGpx(workoutId: string) {\n await authApi\n .get(`workouts/${workoutId}/gpx/download`, {\n responseType: 'blob',\n })\n .then((response) => {\n const gpxFileUrl = window.URL.createObjectURL(\n new Blob([response.data], { type: 'application/gpx+xml' })\n )\n const gpxLink = document.createElement('a')\n gpxLink.href = gpxFileUrl\n gpxLink.setAttribute('download', `${workoutId}.gpx`)\n document.body.appendChild(gpxLink)\n gpxLink.click()\n })\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"workout-previous workout-arrow\", { inactive: !_unref(workoutObject).previousUrl }]),\n title: \n _unref(workoutObject).previousUrl\n ? _ctx.$t(`workouts.PREVIOUS_${_unref(workoutObject).type}`)\n : _ctx.$t(`workouts.NO_PREVIOUS_${_unref(workoutObject).type}`)\n ,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (\n _unref(workoutObject).previousUrl\n ? _ctx.$router.push(_unref(workoutObject).previousUrl)\n : null\n ))\n }, _hoisted_4, 10, _hoisted_2),\n _createElementVNode(\"div\", _hoisted_5, [\n _createVNode(_component_SportImage, {\n \"sport-label\": _unref(sport).label,\n color: _unref(sport).color\n }, null, 8, [\"sport-label\", \"color\"]),\n _createElementVNode(\"div\", _hoisted_6, [\n (_unref(workoutObject).type === 'WORKOUT')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n _createElementVNode(\"span\", null, _toDisplayString(_unref(workoutObject).title), 1),\n _createElementVNode(\"i\", {\n class: \"fa fa-edit\",\n \"aria-hidden\": \"true\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (\n _ctx.$router.push({\n name: 'EditWorkout',\n params: { workoutId: _unref(workoutObject).workoutId },\n })\n ))\n }),\n (_unref(workoutObject).with_gpx)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"fa fa-download\",\n \"aria-hidden\": \"true\",\n onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (downloadGpx(_unref(workoutObject).workoutId)), [\"prevent\"]))\n }))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"i\", {\n class: \"fa fa-trash\",\n \"aria-hidden\": \"true\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (emit('displayModal', true)))\n })\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_unref(workoutObject).title) + \" \", 1),\n _createElementVNode(\"span\", _hoisted_9, [\n _createTextVNode(\" — \"),\n _hoisted_10,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.SEGMENT')) + \" \" + _toDisplayString(_unref(workoutObject).segmentId + 1), 1)\n ])\n ])),\n _createElementVNode(\"div\", _hoisted_11, [\n _createTextVNode(_toDisplayString(_unref(workoutObject).workoutDate) + \" - \" + _toDisplayString(_unref(workoutObject).workoutTime) + \" \", 1),\n _createElementVNode(\"span\", _hoisted_12, [\n (_unref(workoutObject).type === 'SEGMENT')\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: {\n name: 'Workout',\n params: { workoutId: _unref(workoutObject).workoutId },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" > \" + _toDisplayString(_ctx.$t('workouts.BACK_TO_WORKOUT')), 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"workout-next workout-arrow\", { inactive: !_unref(workoutObject).nextUrl }]),\n title: \n _unref(workoutObject).nextUrl\n ? _ctx.$t(`workouts.NEXT_${_unref(workoutObject).type}`)\n : _ctx.$t(`workouts.NO_NEXT_${_unref(workoutObject).type}`)\n ,\n onClick: _cache[4] || (_cache[4] = ($event: any) => (\n _unref(workoutObject).nextUrl ? _ctx.$router.push(_unref(workoutObject).nextUrl) : null\n ))\n }, _hoisted_15, 10, _hoisted_13)\n ]))\n}\n}\n\n})","import script from \"./WorkoutCardTitle.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutCardTitle.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutCardTitle.vue?vue&type=style&index=0&id=4d9f9a8a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4d9f9a8a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1a5282f6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"workout-record\"\n}\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"sup\", null, [\n /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-trophy\",\n \"aria-hidden\": \"true\"\n })\n], -1))\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nimport { toRefs } from 'vue'\n\n import { IWorkoutObject } from '@/types/workouts'\n\n interface Props {\n recordType: string\n workoutObject: IWorkoutObject\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutRecord',\n props: {\n recordType: null,\n workoutObject: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n recordType: string\n workoutObject: IWorkoutObject\n };\n\n \n\n const { recordType, workoutObject } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (\n _unref(workoutObject).records &&\n _unref(workoutObject).records.find((record) => record.record_type === _unref(recordType))\n )\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_1, _hoisted_3))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./WorkoutRecord.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutRecord.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutRecord.vue?vue&type=style&index=0&id=1a5282f6&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1a5282f6\"]])\n\nexport default __exports__","const directions = [\n 'N',\n 'NNE',\n 'NE',\n 'ENE',\n 'E',\n 'ESE',\n 'SE',\n 'SSE',\n 'S',\n 'SSW',\n 'SW',\n 'WSW',\n 'W',\n 'WNW',\n 'NW',\n 'NNW',\n]\n\nexport const convertDegreeToDirection = (angle: number): string => {\n const value = Math.floor(angle / 22.5 + 0.5)\n return directions[value % 16]\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-40697ed1\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"wind\" }\nconst _hoisted_2 = { class: \"wind-bearing\" }\nconst _hoisted_3 = [\"title\"]\n\nimport { toRefs } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { IWeather } from '@/types/workouts'\n import { getWindSpeed } from '@/utils/units'\n import { convertDegreeToDirection } from '@/utils/weather'\n\n interface Props {\n weather: IWeather\n useImperialUnits: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WeatherWind',\n props: {\n weather: null,\n useImperialUnits: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n weather: IWeather\n useImperialUnits: boolean\n };\n\n \n\n const { useImperialUnits, weather } = toRefs(props)\n const { t } = useI18n()\n\n function getWindDirectionTitle(windBearing: number): string {\n return t(\n `workouts.WEATHER.WIND_DIRECTIONS.${convertDegreeToDirection(\n windBearing\n )}`\n )\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createTextVNode(_toDisplayString(_unref(getWindSpeed)(_unref(weather).wind, _unref(useImperialUnits))) + \" \", 1),\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(weather).windBearing)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"fa fa-long-arrow-down\",\n style: _normalizeStyle({\n transform: `rotate(${_unref(weather).windBearing}deg)`,\n }),\n \"aria-hidden\": \"true\",\n title: getWindDirectionTitle(_unref(weather).windBearing)\n }, null, 12, _hoisted_3))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./WeatherWind.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WeatherWind.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WeatherWind.vue?vue&type=style&index=0&id=40697ed1&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-40697ed1\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-807b431a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n id: \"workout-weather\"\n}\nconst _hoisted_2 = { class: \"weather-table\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, null, -1))\nconst _hoisted_4 = { class: \"weather-th\" }\nconst _hoisted_5 = [\"src\", \"alt\", \"title\"]\nconst _hoisted_6 = { class: \"weather-th\" }\nconst _hoisted_7 = [\"src\", \"alt\", \"title\"]\nconst _hoisted_8 = [\"alt\", \"title\"]\nconst _hoisted_9 = [\"alt\", \"title\"]\nconst _hoisted_10 = [\"alt\", \"title\"]\n\nimport { toRefs } from 'vue'\n\n import WeatherWind from '@/components/Workout/WorkoutDetail/WeatherWind.vue'\n import { IWorkoutObject } from '@/types/workouts'\n import { getTemperature } from '@/utils/units'\n\n interface Props {\n workoutObject: IWorkoutObject\n useImperialUnits: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutWeather',\n props: {\n workoutObject: null,\n useImperialUnits: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n workoutObject: IWorkoutObject\n useImperialUnits: boolean\n };\n\n \n\n const { useImperialUnits, workoutObject } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(workoutObject).weatherStart && _unref(workoutObject).weatherEnd)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"table\", _hoisted_2, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_3,\n _createElementVNode(\"th\", null, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.START')) + \" \", 1),\n _createElementVNode(\"img\", {\n class: \"weather-img\",\n src: `/img/weather/${_unref(workoutObject).weatherStart.icon}.svg`,\n alt: \n _ctx.$t(\n `workouts.WEATHER.DARK_SKY.${_unref(workoutObject).weatherStart.icon}`\n )\n ,\n title: \n _ctx.$t(\n `workouts.WEATHER.DARK_SKY.${_unref(workoutObject).weatherStart.icon}`\n )\n \n }, null, 8, _hoisted_5)\n ])\n ]),\n _createElementVNode(\"th\", null, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.END')) + \" \", 1),\n _createElementVNode(\"img\", {\n class: \"weather-img\",\n src: `/img/weather/${_unref(workoutObject).weatherEnd.icon}.svg`,\n alt: \n _ctx.$t(\n `workouts.WEATHER.DARK_SKY.${_unref(workoutObject).weatherEnd.icon}`\n )\n ,\n title: \n _ctx.$t(\n `workouts.WEATHER.DARK_SKY.${_unref(workoutObject).weatherEnd.icon}`\n )\n \n }, null, 8, _hoisted_7)\n ])\n ])\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"img\", {\n class: \"weather-img weather-img-small\",\n src: \"/img/weather/temperature.svg\",\n alt: _ctx.$t(`workouts.WEATHER.TEMPERATURE`),\n title: _ctx.$t(`workouts.WEATHER.TEMPERATURE`)\n }, null, 8, _hoisted_8)\n ]),\n _createElementVNode(\"td\", null, _toDisplayString(_unref(getTemperature)(\n _unref(workoutObject).weatherStart.temperature,\n _unref(useImperialUnits)\n )), 1),\n _createElementVNode(\"td\", null, _toDisplayString(_unref(getTemperature)(\n _unref(workoutObject).weatherEnd.temperature,\n _unref(useImperialUnits)\n )), 1)\n ]),\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"img\", {\n class: \"weather-img weather-img-small\",\n src: \"/img/weather/pour-rain.svg\",\n alt: _ctx.$t(`workouts.WEATHER.HUMIDITY`),\n title: _ctx.$t(`workouts.WEATHER.HUMIDITY`)\n }, null, 8, _hoisted_9)\n ]),\n _createElementVNode(\"td\", null, _toDisplayString(Number(_unref(workoutObject).weatherStart.humidity * 100).toFixed(1)) + \"% \", 1),\n _createElementVNode(\"td\", null, _toDisplayString(Number(_unref(workoutObject).weatherEnd.humidity * 100).toFixed(1)) + \"% \", 1)\n ]),\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"img\", {\n class: \"weather-img weather-img-small\",\n src: \"/img/weather/breeze.svg\",\n alt: _ctx.$t(`workouts.WEATHER.WIND`),\n title: _ctx.$t(`workouts.WEATHER.WIND`)\n }, null, 8, _hoisted_10)\n ]),\n _createElementVNode(\"td\", null, [\n _createVNode(WeatherWind, {\n weather: _unref(workoutObject).weatherStart,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"weather\", \"useImperialUnits\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createVNode(WeatherWind, {\n weather: _unref(workoutObject).weatherEnd,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"weather\", \"useImperialUnits\"])\n ])\n ])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./WorkoutWeather.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutWeather.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutWeather.vue?vue&type=style&index=0&id=807b431a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-807b431a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, unref as _unref, createVNode as _createVNode, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-74c5993b\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-info\" }\nconst _hoisted_2 = { class: \"workout-data\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-clock-o\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = { class: \"label\" }\nconst _hoisted_5 = { class: \"value\" }\nconst _hoisted_6 = { key: 0 }\nconst _hoisted_7 = { class: \"value\" }\nconst _hoisted_8 = { class: \"value\" }\nconst _hoisted_9 = { class: \"workout-data\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-road\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = { class: \"label\" }\nconst _hoisted_12 = { class: \"workout-data\" }\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-tachometer\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_14 = { class: \"label\" }\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_16 = { class: \"label\" }\nconst _hoisted_17 = {\n key: 0,\n class: \"workout-data\"\n}\nconst _hoisted_18 = [\"alt\"]\nconst _hoisted_19 = { class: \"label\" }\nconst _hoisted_20 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_21 = { class: \"label\" }\nconst _hoisted_22 = {\n key: 1,\n class: \"workout-data\"\n}\nconst _hoisted_23 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-location-arrow\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_24 = { class: \"label\" }\nconst _hoisted_25 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_26 = { class: \"label\" }\n\nimport { computed, toRefs } from 'vue'\n\n import WorkoutRecord from '@/components/Workout/WorkoutDetail/WorkoutRecord.vue'\n import WorkoutWeather from '@/components/Workout/WorkoutDetail/WorkoutWeather.vue'\n import { IWorkoutObject } from '@/types/workouts'\n\n interface Props {\n workoutObject: IWorkoutObject\n useImperialUnits: boolean\n displayHARecord: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutData',\n props: {\n workoutObject: null,\n useImperialUnits: { type: Boolean },\n displayHARecord: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n workoutObject: IWorkoutObject\n useImperialUnits: boolean\n displayHARecord: boolean\n };\n\n \n\n const { displayHARecord, workoutObject, useImperialUnits } = toRefs(props)\n const withPause = computed(\n () =>\n props.workoutObject.pauses !== '0:00:00' &&\n props.workoutObject.pauses !== null\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Distance = _resolveComponent(\"Distance\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.$t('workouts.DURATION')), 1),\n _createTextVNode(\": \"),\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(_unref(workoutObject).moving), 1),\n _createVNode(WorkoutRecord, {\n workoutObject: _unref(workoutObject),\n recordType: \"LD\"\n }, null, 8, [\"workoutObject\"]),\n (_unref(withPause))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createTextVNode(\" (\" + _toDisplayString(_ctx.$t('workouts.PAUSES')) + \": \", 1),\n _createElementVNode(\"span\", _hoisted_7, _toDisplayString(_unref(workoutObject).pauses), 1),\n _createTextVNode(\" - \" + _toDisplayString(_ctx.$t('workouts.TOTAL_DURATION')) + \": \", 1),\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_unref(workoutObject).duration) + \")\", 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _hoisted_10,\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_ctx.$t('workouts.DISTANCE')), 1),\n _createTextVNode(\": \"),\n _createVNode(_component_Distance, {\n distance: _unref(workoutObject).distance,\n digits: 3,\n unitFrom: \"km\",\n strong: true,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]),\n _createVNode(WorkoutRecord, {\n workoutObject: _unref(workoutObject),\n recordType: \"FD\"\n }, null, 8, [\"workoutObject\"])\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _hoisted_13,\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.$t('workouts.AVERAGE_SPEED')), 1),\n _createTextVNode(\": \"),\n _createVNode(_component_Distance, {\n distance: _unref(workoutObject).aveSpeed,\n unitFrom: \"km\",\n speed: true,\n strong: true,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]),\n _createVNode(WorkoutRecord, {\n workoutObject: _unref(workoutObject),\n recordType: \"AS\"\n }, null, 8, [\"workoutObject\"]),\n _hoisted_15,\n _createElementVNode(\"span\", _hoisted_16, _toDisplayString(_ctx.$t('workouts.MAX_SPEED')), 1),\n _createTextVNode(\": \"),\n _createVNode(_component_Distance, {\n distance: _unref(workoutObject).maxSpeed,\n unitFrom: \"km\",\n speed: true,\n strong: true,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]),\n _createVNode(WorkoutRecord, {\n workoutObject: _unref(workoutObject),\n recordType: \"MS\"\n }, null, 8, [\"workoutObject\"])\n ]),\n (_unref(workoutObject).maxAlt !== null && _unref(workoutObject).minAlt !== null)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _createElementVNode(\"img\", {\n class: \"mountains\",\n src: \"/img/workouts/mountains.svg\",\n alt: _ctx.$t('workouts.ELEVATION')\n }, null, 8, _hoisted_18),\n _createElementVNode(\"span\", _hoisted_19, _toDisplayString(_ctx.$t('workouts.MIN_ALTITUDE')), 1),\n _createTextVNode(\": \"),\n _createVNode(_component_Distance, {\n distance: _unref(workoutObject).minAlt,\n unitFrom: \"m\",\n strong: true,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]),\n _hoisted_20,\n _createElementVNode(\"span\", _hoisted_21, _toDisplayString(_ctx.$t('workouts.MAX_ALTITUDE')), 1),\n _createTextVNode(\": \"),\n _createVNode(_component_Distance, {\n distance: _unref(workoutObject).maxAlt,\n unitFrom: \"m\",\n strong: true,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"])\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(workoutObject).ascent !== null && _unref(workoutObject).descent !== null)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_22, [\n _hoisted_23,\n _createElementVNode(\"span\", _hoisted_24, _toDisplayString(_ctx.$t('workouts.ASCENT')), 1),\n _createTextVNode(\": \"),\n _createVNode(_component_Distance, {\n distance: _unref(workoutObject).ascent,\n unitFrom: \"m\",\n strong: true,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]),\n (_unref(displayHARecord))\n ? (_openBlock(), _createBlock(WorkoutRecord, {\n key: 0,\n workoutObject: _unref(workoutObject),\n recordType: \"HA\"\n }, null, 8, [\"workoutObject\"]))\n : _createCommentVNode(\"\", true),\n _hoisted_25,\n _createElementVNode(\"span\", _hoisted_26, _toDisplayString(_ctx.$t('workouts.DESCENT')), 1),\n _createTextVNode(\": \"),\n _createVNode(_component_Distance, {\n distance: _unref(workoutObject).descent,\n unitFrom: \"m\",\n strong: true,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"])\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(WorkoutWeather, {\n workoutObject: _unref(workoutObject),\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"workoutObject\", \"useImperialUnits\"])\n ]))\n}\n}\n\n})","import script from \"./WorkoutData.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutData.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutData.vue?vue&type=style&index=0&id=74c5993b&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-74c5993b\"]])\n\nexport default __exports__","function $(element, tagName) {\n return Array.from(element.getElementsByTagName(tagName));\n}\nfunction normalizeId(id) {\n return id[0] === \"#\" ? id : `#${id}`;\n}\nfunction $ns(element, tagName, ns) {\n return Array.from(element.getElementsByTagNameNS(ns, tagName));\n}\n/**\n * get the content of a text node, if any\n */\nfunction nodeVal(node) {\n node?.normalize();\n return (node && node.textContent) || \"\";\n}\n/**\n * Get one Y child of X, if any, otherwise null\n */\nfunction get1(node, tagName, callback) {\n const n = node.getElementsByTagName(tagName);\n const result = n.length ? n[0] : null;\n if (result && callback)\n callback(result);\n return result;\n}\nfunction get(node, tagName, callback) {\n const properties = {};\n if (!node)\n return properties;\n const n = node.getElementsByTagName(tagName);\n const result = n.length ? n[0] : null;\n if (result && callback) {\n return callback(result, properties);\n }\n return properties;\n}\nfunction val1(node, tagName, callback) {\n const val = nodeVal(get1(node, tagName));\n if (val && callback)\n return callback(val) || {};\n return {};\n}\nfunction $num(node, tagName, callback) {\n const val = parseFloat(nodeVal(get1(node, tagName)));\n if (isNaN(val))\n return undefined;\n if (val && callback)\n return callback(val) || {};\n return {};\n}\nfunction num1(node, tagName, callback) {\n const val = parseFloat(nodeVal(get1(node, tagName)));\n if (isNaN(val))\n return undefined;\n if (val && callback)\n callback(val);\n return val;\n}\nfunction getMulti(node, propertyNames) {\n const properties = {};\n for (const property of propertyNames) {\n val1(node, property, (val) => {\n properties[property] = val;\n });\n }\n return properties;\n}\nfunction isElement(node) {\n return node?.nodeType === 1;\n}\n\nfunction getLineStyle(node) {\n return get(node, \"line\", (lineStyle) => {\n const val = Object.assign({}, val1(lineStyle, \"color\", (color) => {\n return { stroke: `#${color}` };\n }), $num(lineStyle, \"opacity\", (opacity) => {\n return { \"stroke-opacity\": opacity };\n }), $num(lineStyle, \"width\", (width) => {\n // GPX width is in mm, convert to px with 96 px per inch\n return { \"stroke-width\": (width * 96) / 25.4 };\n }));\n return val;\n });\n}\n\nfunction getExtensions(node) {\n let values = [];\n if (node === null)\n return values;\n for (const child of Array.from(node.childNodes)) {\n if (!isElement(child))\n continue;\n const name = abbreviateName(child.nodeName);\n if (name === \"gpxtpx:TrackPointExtension\") {\n // loop again for nested garmin extensions (eg. \"gpxtpx:hr\")\n values = values.concat(getExtensions(child));\n }\n else {\n // push custom extension (eg. \"power\")\n const val = nodeVal(child);\n values.push([name, parseNumeric(val)]);\n }\n }\n return values;\n}\nfunction abbreviateName(name) {\n return [\"heart\", \"gpxtpx:hr\", \"hr\"].includes(name) ? \"heart\" : name;\n}\nfunction parseNumeric(val) {\n const num = parseFloat(val);\n return isNaN(num) ? val : num;\n}\n\nfunction coordPair$1(node) {\n const ll = [\n parseFloat(node.getAttribute(\"lon\") || \"\"),\n parseFloat(node.getAttribute(\"lat\") || \"\"),\n ];\n if (isNaN(ll[0]) || isNaN(ll[1])) {\n return null;\n }\n num1(node, \"ele\", (val) => {\n ll.push(val);\n });\n const time = get1(node, \"time\");\n return {\n coordinates: ll,\n time: time ? nodeVal(time) : null,\n extendedValues: getExtensions(get1(node, \"extensions\")),\n };\n}\n\nfunction extractProperties(node) {\n const properties = getMulti(node, [\n \"name\",\n \"cmt\",\n \"desc\",\n \"type\",\n \"time\",\n \"keywords\",\n ]);\n const extensions = Array.from(node.getElementsByTagNameNS(\"http://www.garmin.com/xmlschemas/GpxExtensions/v3\", \"*\"));\n for (const child of extensions) {\n if (child.parentNode?.parentNode === node) {\n properties[child.tagName.replace(\":\", \"_\")] = nodeVal(child);\n }\n }\n const links = $(node, \"link\");\n if (links.length) {\n properties.links = links.map((link) => Object.assign({ href: link.getAttribute(\"href\") }, getMulti(link, [\"text\", \"type\"])));\n }\n return properties;\n}\n\n/**\n * Extract points from a trkseg or rte element.\n */\nfunction getPoints$1(node, pointname) {\n const pts = $(node, pointname);\n const line = [];\n const times = [];\n const extendedValues = {};\n for (let i = 0; i < pts.length; i++) {\n const c = coordPair$1(pts[i]);\n if (!c) {\n continue;\n }\n line.push(c.coordinates);\n if (c.time)\n times.push(c.time);\n for (const [name, val] of c.extendedValues) {\n const plural = name === \"heart\" ? name : name.replace(\"gpxtpx:\", \"\") + \"s\";\n if (!extendedValues[plural]) {\n extendedValues[plural] = Array(pts.length).fill(null);\n }\n extendedValues[plural][i] = val;\n }\n }\n if (line.length < 2)\n return; // Invalid line in GeoJSON\n return {\n line: line,\n times: times,\n extendedValues: extendedValues,\n };\n}\n/**\n * Extract a LineString geometry from a rte\n * element.\n */\nfunction getRoute(node) {\n const line = getPoints$1(node, \"rtept\");\n if (!line)\n return;\n return {\n type: \"Feature\",\n properties: Object.assign({ _gpxType: \"rte\" }, extractProperties(node), getLineStyle(get1(node, \"extensions\"))),\n geometry: {\n type: \"LineString\",\n coordinates: line.line,\n },\n };\n}\nfunction getTrack(node) {\n const segments = $(node, \"trkseg\");\n const track = [];\n const times = [];\n const extractedLines = [];\n for (const segment of segments) {\n const line = getPoints$1(segment, \"trkpt\");\n if (line) {\n extractedLines.push(line);\n if (line.times && line.times.length)\n times.push(line.times);\n }\n }\n if (extractedLines.length === 0)\n return null;\n const multi = extractedLines.length > 1;\n const properties = Object.assign({ _gpxType: \"trk\" }, extractProperties(node), getLineStyle(get1(node, \"extensions\")), times.length\n ? {\n coordinateProperties: {\n times: multi ? times : times[0],\n },\n }\n : {});\n for (const line of extractedLines) {\n track.push(line.line);\n if (!properties.coordinateProperties) {\n properties.coordinateProperties = {};\n }\n const props = properties.coordinateProperties;\n const entries = Object.entries(line.extendedValues);\n for (let i = 0; i < entries.length; i++) {\n const [name, val] = entries[i];\n if (multi) {\n if (!props[name]) {\n props[name] = extractedLines.map((line) => new Array(line.line.length).fill(null));\n }\n props[name][i] = val;\n }\n else {\n props[name] = val;\n }\n }\n }\n return {\n type: \"Feature\",\n properties: properties,\n geometry: multi\n ? {\n type: \"MultiLineString\",\n coordinates: track,\n }\n : {\n type: \"LineString\",\n coordinates: track[0],\n },\n };\n}\n/**\n * Extract a point, if possible, from a given node,\n * which is usually a wpt or trkpt\n */\nfunction getPoint(node) {\n const properties = Object.assign(extractProperties(node), getMulti(node, [\"sym\"]));\n const pair = coordPair$1(node);\n if (!pair)\n return null;\n return {\n type: \"Feature\",\n properties,\n geometry: {\n type: \"Point\",\n coordinates: pair.coordinates,\n },\n };\n}\n/**\n * Convert GPX to GeoJSON incrementally, returning\n * a [Generator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators)\n * that yields output feature by feature.\n */\nfunction* gpxGen(node) {\n for (const track of $(node, \"trk\")) {\n const feature = getTrack(track);\n if (feature)\n yield feature;\n }\n for (const route of $(node, \"rte\")) {\n const feature = getRoute(route);\n if (feature)\n yield feature;\n }\n for (const waypoint of $(node, \"wpt\")) {\n const point = getPoint(waypoint);\n if (point)\n yield point;\n }\n}\n/**\n *\n * Convert a GPX document to GeoJSON. The first argument, `doc`, must be a GPX\n * document as an XML DOM - not as a string. You can get this using jQuery's default\n * `.ajax` function or using a bare XMLHttpRequest with the `.response` property\n * holding an XML DOM.\n *\n * The output is a JavaScript object of GeoJSON data, same as `.kml` outputs, with the\n * addition of a `_gpxType` property on each `LineString` feature that indicates whether\n * the feature was encoded as a route (`rte`) or track (`trk`) in the GPX document.\n */\nfunction gpx(node) {\n return {\n type: \"FeatureCollection\",\n features: Array.from(gpxGen(node)),\n };\n}\n\nconst EXTENSIONS_NS = \"http://www.garmin.com/xmlschemas/ActivityExtension/v2\";\nconst TRACKPOINT_ATTRIBUTES = [\n [\"heartRate\", \"heartRates\"],\n [\"Cadence\", \"cadences\"],\n // Extended Trackpoint attributes\n [\"Speed\", \"speeds\"],\n [\"Watts\", \"watts\"],\n];\nconst LAP_ATTRIBUTES = [\n [\"TotalTimeSeconds\", \"totalTimeSeconds\"],\n [\"DistanceMeters\", \"distanceMeters\"],\n [\"MaximumSpeed\", \"maxSpeed\"],\n [\"AverageHeartRateBpm\", \"avgHeartRate\"],\n [\"MaximumHeartRateBpm\", \"maxHeartRate\"],\n // Extended Lap attributes\n [\"AvgSpeed\", \"avgSpeed\"],\n [\"AvgWatts\", \"avgWatts\"],\n [\"MaxWatts\", \"maxWatts\"],\n];\nfunction getProperties(node, attributeNames) {\n const properties = [];\n for (const [tag, alias] of attributeNames) {\n let elem = get1(node, tag);\n if (!elem) {\n const elements = node.getElementsByTagNameNS(EXTENSIONS_NS, tag);\n if (elements.length) {\n elem = elements[0];\n }\n }\n const val = parseFloat(nodeVal(elem));\n if (!isNaN(val)) {\n properties.push([alias, val]);\n }\n }\n return properties;\n}\nfunction coordPair(node) {\n const ll = [num1(node, \"LongitudeDegrees\"), num1(node, \"LatitudeDegrees\")];\n if (ll[0] === undefined ||\n isNaN(ll[0]) ||\n ll[1] === undefined ||\n isNaN(ll[1])) {\n return null;\n }\n const heartRate = get1(node, \"HeartRateBpm\");\n const time = nodeVal(get1(node, \"Time\"));\n get1(node, \"AltitudeMeters\", (alt) => {\n const a = parseFloat(nodeVal(alt));\n if (!isNaN(a)) {\n ll.push(a);\n }\n });\n return {\n coordinates: ll,\n time: time || null,\n heartRate: heartRate ? parseFloat(nodeVal(heartRate)) : null,\n extensions: getProperties(node, TRACKPOINT_ATTRIBUTES),\n };\n}\nfunction getPoints(node) {\n const pts = $(node, \"Trackpoint\");\n const line = [];\n const times = [];\n const heartRates = [];\n if (pts.length < 2)\n return null; // Invalid line in GeoJSON\n const extendedProperties = {};\n const result = { extendedProperties };\n for (let i = 0; i < pts.length; i++) {\n const c = coordPair(pts[i]);\n if (c === null)\n continue;\n line.push(c.coordinates);\n const { time, heartRate, extensions } = c;\n if (time)\n times.push(time);\n if (heartRate)\n heartRates.push(heartRate);\n for (const [alias, value] of extensions) {\n if (!extendedProperties[alias]) {\n extendedProperties[alias] = Array(pts.length).fill(null);\n }\n extendedProperties[alias][i] = value;\n }\n }\n if (line.length < 2)\n return null;\n return Object.assign(result, {\n line: line,\n times: times,\n heartRates: heartRates,\n });\n}\nfunction getLap(node) {\n const segments = $(node, \"Track\");\n const track = [];\n const times = [];\n const heartRates = [];\n const allExtendedProperties = [];\n let line;\n const properties = Object.assign(Object.fromEntries(getProperties(node, LAP_ATTRIBUTES)), get(node, \"Name\", (nameElement) => {\n return { name: nodeVal(nameElement) };\n }));\n for (const segment of segments) {\n line = getPoints(segment);\n if (line) {\n track.push(line.line);\n if (line.times.length)\n times.push(line.times);\n if (line.heartRates.length)\n heartRates.push(line.heartRates);\n allExtendedProperties.push(line.extendedProperties);\n }\n }\n for (let i = 0; i < allExtendedProperties.length; i++) {\n const extendedProperties = allExtendedProperties[i];\n for (const property in extendedProperties) {\n if (segments.length === 1) {\n if (line) {\n properties[property] = line.extendedProperties[property];\n }\n }\n else {\n if (!properties[property]) {\n properties[property] = track.map((track) => Array(track.length).fill(null));\n }\n properties[property][i] = extendedProperties[property];\n }\n }\n }\n if (track.length === 0)\n return null;\n if (times.length || heartRates.length) {\n properties.coordinateProperties = Object.assign(times.length\n ? {\n times: track.length === 1 ? times[0] : times,\n }\n : {}, heartRates.length\n ? {\n heart: track.length === 1 ? heartRates[0] : heartRates,\n }\n : {});\n }\n return {\n type: \"Feature\",\n properties: properties,\n geometry: track.length === 1\n ? {\n type: \"LineString\",\n coordinates: track[0],\n }\n : {\n type: \"MultiLineString\",\n coordinates: track,\n },\n };\n}\n/**\n * Incrementally convert a TCX document to GeoJSON. The\n * first argument, `doc`, must be a TCX\n * document as an XML DOM - not as a string.\n */\nfunction* tcxGen(node) {\n for (const lap of $(node, \"Lap\")) {\n const feature = getLap(lap);\n if (feature)\n yield feature;\n }\n for (const course of $(node, \"Courses\")) {\n const feature = getLap(course);\n if (feature)\n yield feature;\n }\n}\n/**\n * Convert a TCX document to GeoJSON. The first argument, `doc`, must be a TCX\n * document as an XML DOM - not as a string.\n */\nfunction tcx(node) {\n return {\n type: \"FeatureCollection\",\n features: Array.from(tcxGen(node)),\n };\n}\n\nfunction fixColor(v, prefix) {\n const properties = {};\n const colorProp = prefix == \"stroke\" || prefix === \"fill\" ? prefix : prefix + \"-color\";\n if (v[0] === \"#\") {\n v = v.substring(1);\n }\n if (v.length === 6 || v.length === 3) {\n properties[colorProp] = \"#\" + v;\n }\n else if (v.length === 8) {\n properties[prefix + \"-opacity\"] = parseInt(v.substring(0, 2), 16) / 255;\n properties[colorProp] =\n \"#\" + v.substring(6, 8) + v.substring(4, 6) + v.substring(2, 4);\n }\n return properties;\n}\n\nfunction numericProperty(node, source, target) {\n const properties = {};\n num1(node, source, (val) => {\n properties[target] = val;\n });\n return properties;\n}\nfunction getColor(node, output) {\n return get(node, \"color\", (elem) => fixColor(nodeVal(elem), output));\n}\nfunction extractIconHref(node) {\n return get(node, \"Icon\", (icon, properties) => {\n val1(icon, \"href\", (href) => {\n properties.icon = href;\n });\n return properties;\n });\n}\nfunction extractIcon(node) {\n return get(node, \"IconStyle\", (iconStyle) => {\n return Object.assign(getColor(iconStyle, \"icon\"), numericProperty(iconStyle, \"scale\", \"icon-scale\"), numericProperty(iconStyle, \"heading\", \"icon-heading\"), get(iconStyle, \"hotSpot\", (hotspot) => {\n const left = parseFloat(hotspot.getAttribute(\"x\") || \"\");\n const top = parseFloat(hotspot.getAttribute(\"y\") || \"\");\n const xunits = hotspot.getAttribute(\"xunits\") || \"\";\n const yunits = hotspot.getAttribute(\"yunits\") || \"\";\n if (!isNaN(left) && !isNaN(top))\n return {\n \"icon-offset\": [left, top],\n \"icon-offset-units\": [xunits, yunits],\n };\n return {};\n }), extractIconHref(iconStyle));\n });\n}\nfunction extractLabel(node) {\n return get(node, \"LabelStyle\", (labelStyle) => {\n return Object.assign(getColor(labelStyle, \"label\"), numericProperty(labelStyle, \"scale\", \"label-scale\"));\n });\n}\nfunction extractLine(node) {\n return get(node, \"LineStyle\", (lineStyle) => {\n return Object.assign(getColor(lineStyle, \"stroke\"), numericProperty(lineStyle, \"width\", \"stroke-width\"));\n });\n}\nfunction extractPoly(node) {\n return get(node, \"PolyStyle\", (polyStyle, properties) => {\n return Object.assign(properties, get(polyStyle, \"color\", (elem) => fixColor(nodeVal(elem), \"fill\")), val1(polyStyle, \"fill\", (fill) => {\n if (fill === \"0\")\n return { \"fill-opacity\": 0 };\n }), val1(polyStyle, \"outline\", (outline) => {\n if (outline === \"0\")\n return { \"stroke-opacity\": 0 };\n }));\n });\n}\nfunction extractStyle(node) {\n return Object.assign({}, extractPoly(node), extractLine(node), extractLabel(node), extractIcon(node));\n}\n\nconst toNumber = (x) => Number(x);\nconst typeConverters = {\n string: (x) => x,\n int: toNumber,\n uint: toNumber,\n short: toNumber,\n ushort: toNumber,\n float: toNumber,\n double: toNumber,\n bool: (x) => Boolean(x),\n};\nfunction extractExtendedData(node, schema) {\n return get(node, \"ExtendedData\", (extendedData, properties) => {\n for (const data of $(extendedData, \"Data\")) {\n properties[data.getAttribute(\"name\") || \"\"] = nodeVal(get1(data, \"value\"));\n }\n for (const simpleData of $(extendedData, \"SimpleData\")) {\n const name = simpleData.getAttribute(\"name\") || \"\";\n const typeConverter = schema[name] || typeConverters.string;\n properties[name] = typeConverter(nodeVal(simpleData));\n }\n return properties;\n });\n}\nfunction getMaybeHTMLDescription(node) {\n const descriptionNode = get1(node, \"description\");\n for (const c of Array.from(descriptionNode?.childNodes || [])) {\n if (c.nodeType === 4) {\n return {\n description: {\n \"@type\": \"html\",\n value: nodeVal(c),\n },\n };\n }\n }\n return {};\n}\nfunction extractTimeSpan(node) {\n return get(node, \"TimeSpan\", (timeSpan) => {\n return {\n timespan: {\n begin: nodeVal(get1(timeSpan, \"begin\")),\n end: nodeVal(get1(timeSpan, \"end\")),\n },\n };\n });\n}\nfunction extractTimeStamp(node) {\n return get(node, \"TimeStamp\", (timeStamp) => {\n return { timestamp: nodeVal(get1(timeStamp, \"when\")) };\n });\n}\nfunction extractCascadedStyle(node, styleMap) {\n return val1(node, \"styleUrl\", (styleUrl) => {\n styleUrl = normalizeId(styleUrl);\n if (styleMap[styleUrl]) {\n return Object.assign({ styleUrl }, styleMap[styleUrl]);\n }\n // For backward-compatibility. Should we still include\n // styleUrl even if it's not resolved?\n return { styleUrl };\n });\n}\n\nconst removeSpace = /\\s*/g;\nconst trimSpace = /^\\s*|\\s*$/g;\nconst splitSpace = /\\s+/;\n/**\n * Get one coordinate from a coordinate array, if any\n */\nfunction coord1(value) {\n return value\n .replace(removeSpace, \"\")\n .split(\",\")\n .map(parseFloat)\n .filter((num) => !isNaN(num))\n .slice(0, 3);\n}\n/**\n * Get all coordinates from a coordinate array as [[],[]]\n */\nfunction coord(value) {\n return value\n .replace(trimSpace, \"\")\n .split(splitSpace)\n .map(coord1)\n .filter((coord) => {\n return coord.length >= 2;\n });\n}\nfunction gxCoords(node) {\n let elems = $(node, \"coord\");\n if (elems.length === 0) {\n elems = $ns(node, \"coord\", \"*\");\n }\n const coordinates = elems.map((elem) => {\n return nodeVal(elem).split(\" \").map(parseFloat);\n });\n if (coordinates.length === 0) {\n return null;\n }\n return {\n geometry: coordinates.length > 2\n ? {\n type: \"LineString\",\n coordinates,\n }\n : {\n type: \"Point\",\n coordinates: coordinates[0],\n },\n times: $(node, \"when\").map((elem) => nodeVal(elem)),\n };\n}\nfunction fixRing(ring) {\n if (ring.length === 0)\n return ring;\n const first = ring[0];\n const last = ring[ring.length - 1];\n let equal = true;\n for (let i = 0; i < Math.max(first.length, last.length); i++) {\n if (first[i] !== last[i]) {\n equal = false;\n break;\n }\n }\n if (!equal) {\n return ring.concat([ring[0]]);\n }\n return ring;\n}\nfunction getCoordinates(node) {\n return nodeVal(get1(node, \"coordinates\"));\n}\nfunction getGeometry(node) {\n let geometries = [];\n let coordTimes = [];\n for (let i = 0; i < node.childNodes.length; i++) {\n const child = node.childNodes.item(i);\n if (isElement(child)) {\n switch (child.tagName) {\n case \"MultiGeometry\":\n case \"MultiTrack\":\n case \"gx:MultiTrack\": {\n const childGeometries = getGeometry(child);\n geometries = geometries.concat(childGeometries.geometries);\n coordTimes = coordTimes.concat(childGeometries.coordTimes);\n break;\n }\n case \"Point\": {\n const coordinates = coord1(getCoordinates(child));\n if (coordinates.length >= 2) {\n geometries.push({\n type: \"Point\",\n coordinates,\n });\n }\n break;\n }\n case \"LinearRing\":\n case \"LineString\": {\n const coordinates = coord(getCoordinates(child));\n if (coordinates.length >= 2) {\n geometries.push({\n type: \"LineString\",\n coordinates,\n });\n }\n break;\n }\n case \"Polygon\": {\n const coords = [];\n for (const linearRing of $(child, \"LinearRing\")) {\n const ring = fixRing(coord(getCoordinates(linearRing)));\n if (ring.length >= 4) {\n coords.push(ring);\n }\n }\n if (coords.length) {\n geometries.push({\n type: \"Polygon\",\n coordinates: coords,\n });\n }\n break;\n }\n case \"Track\":\n case \"gx:Track\": {\n const gx = gxCoords(child);\n if (!gx)\n break;\n const { times, geometry } = gx;\n geometries.push(geometry);\n if (times.length)\n coordTimes.push(times);\n break;\n }\n }\n }\n }\n return {\n geometries,\n coordTimes,\n };\n}\n\nfunction geometryListToGeometry(geometries) {\n return geometries.length === 0\n ? null\n : geometries.length === 1\n ? geometries[0]\n : {\n type: \"GeometryCollection\",\n geometries,\n };\n}\nfunction getPlacemark(node, styleMap, schema) {\n const { coordTimes, geometries } = getGeometry(node);\n const feature = {\n type: \"Feature\",\n geometry: geometryListToGeometry(geometries),\n properties: Object.assign(getMulti(node, [\n \"name\",\n \"address\",\n \"visibility\",\n \"open\",\n \"phoneNumber\",\n \"description\",\n ]), getMaybeHTMLDescription(node), extractCascadedStyle(node, styleMap), extractStyle(node), extractExtendedData(node, schema), extractTimeSpan(node), extractTimeStamp(node), coordTimes.length\n ? {\n coordinateProperties: {\n times: coordTimes.length === 1 ? coordTimes[0] : coordTimes,\n },\n }\n : {}),\n };\n if (feature.properties?.visibility !== undefined) {\n feature.properties.visibility = feature.properties.visibility !== \"0\";\n }\n const id = node.getAttribute(\"id\");\n if (id !== null && id !== \"\")\n feature.id = id;\n return feature;\n}\n\nfunction getGroundOverlayBox(node) {\n const latLonQuad = get1(node, \"gx:LatLonQuad\");\n if (latLonQuad) {\n const ring = fixRing(coord(getCoordinates(node)));\n return {\n type: \"Polygon\",\n coordinates: [ring],\n };\n }\n return getLatLonBox(node);\n}\nconst DEGREES_TO_RADIANS = Math.PI / 180;\nfunction rotateBox(bbox, coordinates, rotation) {\n const center = [(bbox[0] + bbox[2]) / 2, (bbox[1] + bbox[3]) / 2];\n return [\n coordinates[0].map((coordinate) => {\n const dy = coordinate[1] - center[1];\n const dx = coordinate[0] - center[0];\n const distance = Math.sqrt(Math.pow(dy, 2) + Math.pow(dx, 2));\n const angle = Math.atan2(dy, dx) - rotation * DEGREES_TO_RADIANS;\n return [\n center[0] + Math.cos(angle) * distance,\n center[1] + Math.sin(angle) * distance,\n ];\n }),\n ];\n}\nfunction getLatLonBox(node) {\n const latLonBox = get1(node, \"LatLonBox\");\n if (latLonBox) {\n const north = num1(latLonBox, \"north\");\n const west = num1(latLonBox, \"west\");\n const east = num1(latLonBox, \"east\");\n const south = num1(latLonBox, \"south\");\n const rotation = num1(latLonBox, \"rotation\");\n if (typeof north === \"number\" &&\n typeof south === \"number\" &&\n typeof west === \"number\" &&\n typeof east === \"number\") {\n const bbox = [west, south, east, north];\n let coordinates = [\n [\n [west, north],\n [east, north],\n [east, south],\n [west, south],\n [west, north], // top left (again)\n ],\n ];\n if (typeof rotation === \"number\") {\n coordinates = rotateBox(bbox, coordinates, rotation);\n }\n return {\n type: \"Polygon\",\n coordinates,\n };\n }\n }\n return null;\n}\nfunction getGroundOverlay(node, styleMap, schema) {\n const geometry = getGroundOverlayBox(node);\n const feature = {\n type: \"Feature\",\n geometry,\n properties: Object.assign(\n /**\n * Related to\n * https://gist.github.com/tmcw/037a1cb6660d74a392e9da7446540f46\n */\n { \"@geometry-type\": \"groundoverlay\" }, getMulti(node, [\n \"name\",\n \"address\",\n \"visibility\",\n \"open\",\n \"phoneNumber\",\n \"description\",\n ]), getMaybeHTMLDescription(node), extractCascadedStyle(node, styleMap), extractStyle(node), extractIconHref(node), extractExtendedData(node, schema), extractTimeSpan(node), extractTimeStamp(node)),\n };\n if (feature.properties?.visibility !== undefined) {\n feature.properties.visibility = feature.properties.visibility !== \"0\";\n }\n const id = node.getAttribute(\"id\");\n if (id !== null && id !== \"\")\n feature.id = id;\n return feature;\n}\n\nfunction getStyleId(style) {\n let id = style.getAttribute(\"id\");\n const parentNode = style.parentNode;\n if (!id &&\n isElement(parentNode) &&\n parentNode.localName === \"CascadingStyle\") {\n id = parentNode.getAttribute(\"kml:id\") || parentNode.getAttribute(\"id\");\n }\n return normalizeId(id || \"\");\n}\nfunction buildStyleMap(node) {\n const styleMap = {};\n for (const style of $(node, \"Style\")) {\n styleMap[getStyleId(style)] = extractStyle(style);\n }\n for (const map of $(node, \"StyleMap\")) {\n const id = normalizeId(map.getAttribute(\"id\") || \"\");\n val1(map, \"styleUrl\", (styleUrl) => {\n styleUrl = normalizeId(styleUrl);\n if (styleMap[styleUrl]) {\n styleMap[id] = styleMap[styleUrl];\n }\n });\n }\n return styleMap;\n}\nfunction buildSchema(node) {\n const schema = {};\n for (const field of $(node, \"SimpleField\")) {\n schema[field.getAttribute(\"name\") || \"\"] =\n typeConverters[field.getAttribute(\"type\") || \"\"] ||\n typeConverters[\"string\"];\n }\n return schema;\n}\nconst FOLDER_PROPS = [\n \"name\",\n \"visibility\",\n \"open\",\n \"address\",\n \"description\",\n \"phoneNumber\",\n \"visibility\",\n];\nfunction getFolder(node) {\n const meta = {};\n for (const child of Array.from(node.childNodes)) {\n if (isElement(child) && FOLDER_PROPS.includes(child.tagName)) {\n meta[child.tagName] = nodeVal(child);\n }\n }\n return {\n type: \"folder\",\n meta,\n children: [],\n };\n}\n/**\n * Yield a nested tree with KML folder structure\n *\n * This generates a tree with the given structure:\n *\n * ```js\n * {\n * \"type\": \"root\",\n * \"children\": [\n * {\n * \"type\": \"folder\",\n * \"meta\": {\n * \"name\": \"Test\"\n * },\n * \"children\": [\n * // ...features and folders\n * ]\n * }\n * // ...features\n * ]\n * }\n * ```\n *\n * ### GroundOverlay\n *\n * GroundOverlay elements are converted into\n * `Feature` objects with `Polygon` geometries,\n * a property like:\n *\n * ```json\n * {\n * \"@geometry-type\": \"groundoverlay\"\n * }\n * ```\n *\n * And the ground overlay's image URL in the `href`\n * property. Ground overlays will need to be displayed\n * with a separate method to other features, depending\n * on which map framework you're using.\n */\nfunction kmlWithFolders(node) {\n const styleMap = buildStyleMap(node);\n const schema = buildSchema(node);\n const tree = { type: \"root\", children: [] };\n function traverse(node, pointer) {\n if (isElement(node)) {\n switch (node.tagName) {\n case \"GroundOverlay\": {\n const placemark = getGroundOverlay(node, styleMap, schema);\n if (placemark) {\n pointer.children.push(placemark);\n }\n break;\n }\n case \"Placemark\": {\n const placemark = getPlacemark(node, styleMap, schema);\n if (placemark) {\n pointer.children.push(placemark);\n }\n break;\n }\n case \"Folder\": {\n const folder = getFolder(node);\n pointer.children.push(folder);\n pointer = folder;\n break;\n }\n }\n }\n if (node.childNodes) {\n for (let i = 0; i < node.childNodes.length; i++) {\n traverse(node.childNodes[i], pointer);\n }\n }\n }\n traverse(node, tree);\n return tree;\n}\n/**\n * Convert KML to GeoJSON incrementally, returning\n * a [Generator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators)\n * that yields output feature by feature.\n */\nfunction* kmlGen(node) {\n const styleMap = buildStyleMap(node);\n const schema = buildSchema(node);\n for (const placemark of $(node, \"Placemark\")) {\n const feature = getPlacemark(placemark, styleMap, schema);\n if (feature)\n yield feature;\n }\n for (const groundOverlay of $(node, \"GroundOverlay\")) {\n const feature = getGroundOverlay(groundOverlay, styleMap, schema);\n if (feature)\n yield feature;\n }\n}\n/**\n * Convert a KML document to GeoJSON. The first argument, `doc`, must be a KML\n * document as an XML DOM - not as a string. You can get this using jQuery's default\n * `.ajax` function or using a bare XMLHttpRequest with the `.response` property\n * holding an XML DOM.\n *\n * The output is a JavaScript object of GeoJSON data. You can convert it to a string\n * with [JSON.stringify](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify)\n * or use it directly in libraries.\n */\nfunction kml(node) {\n return {\n type: \"FeatureCollection\",\n features: Array.from(kmlGen(node)),\n };\n}\n\nexport { gpx, gpxGen, kml, kmlGen, kmlWithFolders, tcx, tcxGen };\n//# sourceMappingURL=togeojson.es.mjs.map\n","import { watch, ref, provide, h, inject, onUnmounted, onBeforeUnmount, onMounted, nextTick, render as render$3, reactive, computed } from 'vue';\n\nconst debounce = (fn, time) => {\n let timeout;\n\n return function (...args) {\n const context = this;\n if (timeout) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(() => {\n fn.apply(context, args);\n timeout = null;\n }, time);\n };\n};\n\nconst capitalizeFirstLetter = (string) => {\n if (!string || typeof string.charAt !== \"function\") {\n return string;\n }\n return string.charAt(0).toUpperCase() + string.slice(1);\n};\n\nconst isFunction = (x) => typeof x === \"function\";\n\nconst propsBinder = (methods, leafletElement, props) => {\n for (const key in props) {\n const setMethodName = \"set\" + capitalizeFirstLetter(key);\n if (methods[setMethodName]) {\n watch(\n () => props[key],\n (newVal, oldVal) => {\n methods[setMethodName](newVal, oldVal);\n }\n );\n } else if (leafletElement[setMethodName]) {\n watch(\n () => props[key],\n (newVal) => {\n leafletElement[setMethodName](newVal);\n }\n );\n }\n }\n};\n\nconst remapEvents = (contextAttrs) => {\n const result = {};\n for (const attrName in contextAttrs) {\n if (\n attrName.startsWith(\"on\") &&\n !attrName.startsWith(\"onUpdate\") &&\n attrName !== \"onReady\"\n ) {\n const eventName = attrName.slice(2).toLocaleLowerCase();\n result[eventName] = contextAttrs[attrName];\n }\n }\n return result;\n};\n\nconst resetWebpackIcon = async (Icon) => {\n const modules = await Promise.all([\n import('leaflet/dist/images/marker-icon-2x.png'),\n import('leaflet/dist/images/marker-icon.png'),\n import('leaflet/dist/images/marker-shadow.png'),\n ]);\n\n delete Icon.Default.prototype._getIconUrl;\n\n Icon.Default.mergeOptions({\n iconRetinaUrl: modules[0].default,\n iconUrl: modules[1].default,\n shadowUrl: modules[2].default,\n });\n};\n\n/**\n * Wraps a placeholder function and provides it with the given name.\n * The wrapper can later be updated with {@link updateLeafletWrapper}\n * to provide a different function.\n *\n * @param {String} methodName Key used to provide the wrapper function\n */\nconst provideLeafletWrapper = (methodName) => {\n const wrapped = ref(() =>\n console.warn(`Method ${methodName} has been invoked without being replaced`)\n );\n const wrapper = (...args) => wrapped.value(...args);\n // eslint-disable-next-line vue/no-ref-as-operand\n wrapper.wrapped = wrapped;\n provide(methodName, wrapper);\n\n return wrapper;\n};\n\n/**\n * Change the function that will be executed when an injected Leaflet wrapper\n * is invoked.\n *\n * @param {*} wrapper Provided wrapper whose wrapped function is to be updated\n * @param {function} leafletMethod New method to be wrapped by the wrapper\n */\nconst updateLeafletWrapper = (wrapper, leafletMethod) =>\n (wrapper.wrapped.value = leafletMethod);\n\nconst WINDOW_OR_GLOBAL =\n (typeof self === \"object\" && self.self === self && self) ||\n (typeof global === \"object\" && global.global === global && global) ||\n undefined;\n\nconst GLOBAL_LEAFLET_OPT = \"useGlobalLeaflet\";\n\nconst props = {\n options: {\n type: Object,\n default: () => ({}),\n },\n};\n\nconst setup = (props) => {\n return { options: props.options, methods: {} };\n};\n\nconst props$1 = {\n ...props,\n pane: {\n type: String,\n default: \"overlayPane\",\n },\n attribution: {\n type: String,\n default: null,\n },\n name: {\n type: String,\n custom: true,\n default: undefined,\n },\n layerType: {\n type: String,\n custom: true,\n default: undefined,\n },\n visible: {\n type: Boolean,\n custom: true,\n default: true,\n },\n};\n\nconst setup$1 = (props, leafletRef, context) => {\n const addLayer = inject(\"addLayer\");\n const removeLayer = inject(\"removeLayer\");\n const {\n options: componentOptions,\n methods: componentMethods,\n } = setup(props);\n\n const options = {\n ...componentOptions,\n attribution: props.attribution,\n pane: props.pane,\n };\n\n const addThisLayer = () => addLayer({ leafletObject: leafletRef.value });\n const removeThisLayer = () =>\n removeLayer({ leafletObject: leafletRef.value });\n\n const methods = {\n ...componentMethods,\n setAttribution(val, old) {\n const attributionControl = this.$parent.leafletObject.attributionControl;\n attributionControl.removeAttribution(old).addAttribution(val);\n },\n setName() {\n removeThisLayer();\n if (props.visible) {\n addThisLayer();\n }\n },\n setLayerType() {\n removeThisLayer();\n if (props.visible) {\n addThisLayer();\n }\n },\n setVisible(isVisible) {\n if (leafletRef.value) {\n if (isVisible) {\n addThisLayer();\n } else {\n removeThisLayer();\n }\n }\n },\n bindPopup({ leafletObject }) {\n if (!leafletRef.value || !isFunction(leafletRef.value.bindPopup)) {\n console.warn(\n \"Attempt to bind popup before bindPopup method available on layer.\"\n );\n\n return;\n }\n\n leafletRef.value.bindPopup(leafletObject);\n },\n bindTooltip({ leafletObject }) {\n if (!leafletRef.value || !isFunction(leafletRef.value.bindTooltip)) {\n console.warn(\n \"Attempt to bind tooltip before bindTooltip method available on layer.\"\n );\n\n return;\n }\n\n leafletRef.value.bindTooltip(leafletObject);\n },\n unbindTooltip() {\n const tooltip =\n leafletRef.value && isFunction(leafletRef.value.getTooltip)\n ? leafletRef.value.getTooltip()\n : null;\n if (tooltip && isFunction(tooltip.unbindTooltip)) {\n tooltip.unbindTooltip();\n }\n },\n unbindPopup() {\n const popup =\n leafletRef.value && isFunction(leafletRef.value.getPopup)\n ? leafletRef.value.getPopup()\n : null;\n if (popup && isFunction(popup.unbindPopup)) {\n popup.unbindPopup();\n }\n },\n updateVisibleProp(value) {\n /**\n * Triggers when the visible prop needs to be updated\n * @type {boolean}\n * @property {boolean} value - value of the visible property\n */\n context.emit(\"update:visible\", value);\n },\n };\n\n provide(\"bindPopup\", methods.bindPopup);\n provide(\"bindTooltip\", methods.bindTooltip);\n provide(\"unbindTooltip\", methods.unbindTooltip);\n provide(\"unbindPopup\", methods.unbindPopup);\n\n onUnmounted(() => {\n methods.unbindPopup();\n methods.unbindTooltip();\n removeThisLayer();\n });\n\n return { options, methods };\n};\n\nconst render = (ready, slots) => {\n if (ready && slots.default) {\n return h(\"div\", { style: { display: \"none\" } }, slots.default());\n }\n};\n\nconst props$2 = {\n ...props,\n interactive: {\n type: Boolean,\n default: true,\n },\n bubblingMouseEvents: {\n type: Boolean,\n default: true,\n },\n};\n\nconst setup$2 = (props) => {\n const { options: componentOptions, methods } = setup(props);\n const options = {\n ...componentOptions,\n interactive: props.interactive,\n bubblingMouseEvents: props.bubblingMouseEvents,\n };\n\n return { options, methods };\n};\n\nconst props$3 = {\n ...props$1,\n ...props$2,\n stroke: {\n type: Boolean,\n custom: true,\n default: true,\n },\n color: {\n type: String,\n custom: true,\n default: \"#3388ff\",\n },\n weight: {\n type: Number,\n custom: true,\n default: 3,\n },\n opacity: {\n type: Number,\n custom: true,\n default: 1.0,\n },\n lineCap: {\n type: String,\n custom: true,\n default: \"round\",\n },\n lineJoin: {\n type: String,\n custom: true,\n default: \"round\",\n },\n dashArray: {\n type: String,\n custom: true,\n default: null,\n },\n dashOffset: {\n type: String,\n custom: true,\n default: null,\n },\n fill: {\n type: Boolean,\n custom: true,\n default: false,\n },\n fillColor: {\n type: String,\n custom: true,\n default: \"#3388ff\",\n },\n fillOpacity: {\n type: Number,\n custom: true,\n default: 0.2,\n },\n fillRule: {\n type: String,\n custom: true,\n default: \"evenodd\",\n },\n className: {\n type: String,\n custom: true,\n default: null,\n },\n};\n\nconst setup$3 = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n props,\n leafletRef,\n context\n );\n const {\n options: interactiveLayerOptions,\n methods: interactiveLayerMethods,\n } = setup$2(props);\n\n const removeLayer = inject(\"removeLayer\");\n\n const options = {\n ...layerOptions,\n ...interactiveLayerOptions,\n stroke: props.stroke,\n color: props.color,\n weight: props.weight,\n opacity: props.opacity,\n lineCap: props.lineCap,\n lineJoin: props.lineJoin,\n dashArray: props.dashArray,\n dashOffset: props.dashOffset,\n fill: props.fill,\n fillColor: props.fillColor,\n fillOpacity: props.fillOpacity,\n fillRule: props.fillRule,\n className: props.className,\n };\n const methods = {\n ...layerMethods,\n ...interactiveLayerMethods,\n setStroke(stroke) {\n leafletRef.value.setStyle({ stroke });\n },\n setColor(color) {\n leafletRef.value.setStyle({ color });\n },\n setWeight(weight) {\n leafletRef.value.setStyle({ weight });\n },\n setOpacity(opacity) {\n leafletRef.value.setStyle({ opacity });\n },\n setLineCap(lineCap) {\n leafletRef.value.setStyle({ lineCap });\n },\n setLineJoin(lineJoin) {\n leafletRef.value.setStyle({ lineJoin });\n },\n setDashArray(dashArray) {\n leafletRef.value.setStyle({ dashArray });\n },\n setDashOffset(dashOffset) {\n leafletRef.value.setStyle({ dashOffset });\n },\n setFill(fill) {\n leafletRef.value.setStyle({ fill });\n },\n setFillColor(fillColor) {\n leafletRef.value.setStyle({ fillColor });\n },\n setFillOpacity(fillOpacity) {\n leafletRef.value.setStyle({ fillOpacity });\n },\n setFillRule(fillRule) {\n leafletRef.value.setStyle({ fillRule });\n },\n setClassName(className) {\n leafletRef.value.setStyle({ className });\n },\n };\n\n onBeforeUnmount(() => {\n removeLayer({ leafletObject: leafletRef.value });\n });\n\n return { options, methods };\n};\n\nconst props$4 = {\n ...props$3,\n latLng: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n /**\n * Radius of the marker in pixels.\n */\n radius: {\n type: Number,\n default: null,\n },\n};\n\nconst setup$4 = (props, leafletRef, context) => {\n const { options: pathOptions, methods: pathMethods } = setup$3(\n props,\n leafletRef,\n context\n );\n const options = {\n ...pathOptions,\n ...props,\n };\n const methods = {\n ...pathMethods,\n setRadius(radius) {\n leafletRef.value.setRadius(radius);\n },\n setLatLng(latLng) {\n leafletRef.value.setLatLng(latLng);\n },\n };\n\n return { options, methods };\n};\n\nconst props$5 = {\n ...props$4,\n /**\n * Radius of the circle in meters.\n */\n radius: {\n type: Number,\n default: null,\n },\n};\n\nconst setup$5 = (props, leafletRef, context) => {\n const {\n options: circleMarkerOptions,\n methods: circleMarkerMethods,\n } = setup$4(props, leafletRef, context);\n\n const options = {\n ...circleMarkerOptions,\n ...props,\n };\n\n const methods = {\n ...circleMarkerMethods,\n };\n\n return { options, methods };\n};\n\n/**\n * Circle component, lets you add and personalize circles on the map\n */\nvar script = {\n name: \"LCircle\",\n props: props$5,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$5(props, leafletRef, context);\n\n onMounted(async () => {\n const { circle, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = circle(props.latLng, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript.__file = \"src/components/LCircle.vue\";\n\n/**\n * Circle Marker component, lets you add and personalize circle markers on the map\n */\nvar script$1 = {\n name: \"LCircleMarker\",\n props: props$4,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$4(props, leafletRef, context);\n\n onMounted(async () => {\n const { circleMarker, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = circleMarker(props.latLng, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$1.__file = \"src/components/LCircleMarker.vue\";\n\nconst props$6 = {\n ...props,\n position: {\n type: String,\n default: \"topright\",\n },\n};\n\nconst setup$6 = (props, leafletRef) => {\n const {\n options: componentOptions,\n methods: componentMethods,\n } = setup(props);\n const options = {\n ...componentOptions,\n position: props.position,\n };\n\n const methods = {\n ...componentMethods,\n setPosition(position) {\n if (leafletRef.value) {\n leafletRef.value.setPosition(position);\n }\n },\n };\n\n onUnmounted(() => {\n if (leafletRef.value) {\n leafletRef.value.remove();\n }\n });\n\n return { options, methods };\n};\n\nconst render$1 = (slots) => {\n if (slots.default) {\n return h(\"div\", { ref: \"root\" }, slots.default());\n }\n return null;\n};\n\nvar script$2 = {\n name: \"LControl\",\n props: {\n ...props$6,\n disableClickPropagation: {\n type: Boolean,\n custom: true,\n default: true,\n },\n disableScrollPropagation: {\n type: Boolean,\n custom: true,\n default: false,\n },\n },\n setup(props, context) {\n const leafletRef = ref({});\n const root = ref(null);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerControl = inject(\"registerControl\");\n\n const { options, methods } = setup$6(props, leafletRef);\n\n onMounted(async () => {\n const { Control, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n const LControl = Control.extend({\n onAdd() {\n return root.value;\n },\n });\n\n leafletRef.value = new LControl(options);\n propsBinder(methods, leafletRef.value, props);\n registerControl({ leafletObject: leafletRef.value });\n\n if (props.disableClickPropagation) {\n DomEvent.disableClickPropagation(root.value);\n }\n if (props.disableScrollPropagation) {\n DomEvent.disableScrollPropagation(root.value);\n }\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { root, leafletObject: leafletRef };\n },\n render() {\n return render$1(this.$slots);\n },\n};\n\nscript$2.__file = \"src/components/LControl.vue\";\n\nconst props$7 = {\n ...props$6,\n prefix: {\n type: String,\n default: \"Vue-Leaflet\",\n custom: true,\n },\n};\n\nconst setup$7 = (props, leafletRef) => {\n const { options: controlOptions, methods: controlMethods } = setup$6(\n props,\n leafletRef\n );\n const options = {\n ...controlOptions,\n prefix: props.prefix,\n };\n\n const methods = {\n ...controlMethods,\n setPrefix(prefix) {\n leafletRef.value.setPrefix(prefix);\n },\n };\n\n return { options, methods };\n};\n\nvar script$3 = {\n name: \"LControlAttribution\",\n props: props$7,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerControl = inject(\"registerControl\");\n\n const { options, methods } = setup$7(props, leafletRef);\n\n onMounted(async () => {\n const { control } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = control.attribution(options);\n propsBinder(methods, leafletRef.value, props);\n registerControl({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$3.__file = \"src/components/LControlAttribution.vue\";\n\nconst props$8 = {\n ...props$6,\n collapsed: {\n type: Boolean,\n default: true,\n },\n autoZIndex: {\n type: Boolean,\n default: true,\n },\n hideSingleBase: {\n type: Boolean,\n default: false,\n },\n sortLayers: {\n type: Boolean,\n default: false,\n },\n sortFunction: {\n type: Function,\n default: undefined,\n },\n};\n\nconst setup$8 = (props, leafletRef) => {\n const { options: controlOptions } = setup$6(props, leafletRef);\n const options = {\n ...controlOptions,\n collapsed: props.collapsed,\n autoZIndex: props.autoZIndex,\n hideSingleBase: props.hideSingleBase,\n sortLayers: props.sortLayers,\n sortFunction: props.sortFunction,\n };\n\n const methods = {\n addLayer(layer) {\n if (layer.layerType === \"base\") {\n leafletRef.value.addBaseLayer(layer.leafletObject, layer.name);\n } else if (layer.layerType === \"overlay\") {\n leafletRef.value.addOverlay(layer.leafletObject, layer.name);\n }\n },\n removeLayer(layer) {\n leafletRef.value.removeLayer(layer.leafletObject);\n },\n };\n return { options, methods };\n};\n\nvar script$4 = {\n name: \"LControlLayers\",\n props: props$8,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerLayerControl = inject(\"registerLayerControl\");\n\n const { options, methods } = setup$8(props, leafletRef);\n\n onMounted(async () => {\n const { control } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = control.layers(null, null, options);\n\n propsBinder(methods, leafletRef.value, props);\n\n registerLayerControl({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$4.__file = \"src/components/LControlLayers.vue\";\n\nconst props$9 = {\n ...props$6,\n maxWidth: {\n type: Number,\n default: 100,\n },\n metric: {\n type: Boolean,\n default: true,\n },\n imperial: {\n type: Boolean,\n default: true,\n },\n updateWhenIdle: {\n type: Boolean,\n default: false,\n },\n};\n\nconst setup$9 = (props, leafletRef) => {\n const { options: controlOptions, methods: controlMethods } = setup$6(\n props,\n leafletRef\n );\n const options = {\n ...controlOptions,\n maxWidth: props.maxWidth,\n metric: props.metric,\n imperial: props.imperial,\n updateWhenIdle: props.updateWhenIdle,\n };\n\n return { options, methods: controlMethods };\n};\n\nvar script$5 = {\n name: \"LControlScale\",\n props: props$9,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerControl = inject(\"registerControl\");\n\n const { options, methods } = setup$9(props, leafletRef);\n\n onMounted(async () => {\n const { control } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = control.scale(options);\n propsBinder(methods, leafletRef.value, props);\n registerControl({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$5.__file = \"src/components/LControlScale.vue\";\n\nconst props$a = {\n ...props$6,\n zoomInText: {\n type: String,\n default: \"+\",\n },\n zoomInTitle: {\n type: String,\n default: \"Zoom in\",\n },\n zoomOutText: {\n type: String,\n default: \"-\",\n },\n zoomOutTitle: {\n type: String,\n default: \"Zoom out\",\n },\n};\n\nconst setup$a = (props, leafletRef) => {\n const { options: controlOptions, methods: controlMethods } = setup$6(\n props,\n leafletRef\n );\n const options = {\n ...controlOptions,\n zoomInText: props.zoomInText,\n zoomInTitle: props.zoomInTitle,\n zoomOutText: props.zoomOutText,\n zoomOutTitle: props.zoomOutTitle,\n };\n\n return { options, methods: controlMethods };\n};\n\nvar script$6 = {\n name: \"LControlZoom\",\n props: props$a,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerControl = inject(\"registerControl\");\n\n const { options, methods } = setup$a(props, leafletRef);\n\n onMounted(async () => {\n const { control } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = control.zoom(options);\n propsBinder(methods, leafletRef.value, props);\n registerControl({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$6.__file = \"src/components/LControlZoom.vue\";\n\nconst props$b = {\n ...props$1,\n};\n\nconst setup$b = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n props,\n leafletRef,\n context\n );\n\n const options = {\n ...layerOptions,\n };\n\n const methods = {\n ...layerMethods,\n addLayer(layer) {\n leafletRef.value.addLayer(layer.leafletObject);\n },\n removeLayer(layer) {\n leafletRef.value.removeLayer(layer.leafletObject);\n },\n };\n\n provide(\"addLayer\", methods.addLayer);\n provide(\"removeLayer\", methods.removeLayer);\n\n return { options, methods };\n};\n\nconst props$c = {\n ...props$b,\n};\n\nconst setup$c = (props, leafletRef) => {\n const { options: layerOptions, methods: layerGroupMethods } = setup$b(\n props,\n leafletRef\n );\n\n const options = {\n ...layerOptions,\n ...props,\n };\n\n const methods = {\n ...layerGroupMethods,\n };\n\n return { options, methods };\n};\n\nvar script$7 = {\n props: props$c,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { methods, options } = setup$c(props, leafletRef);\n\n onMounted(async () => {\n const { featureGroup, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = featureGroup(options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$7.__file = \"src/components/LFeatureGroup.vue\";\n\nconst props$d = {\n ...props$b,\n geojson: {\n type: [Object, Array],\n default: () => ({}),\n },\n};\n\nconst setup$d = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerGroupMethods } = setup$b(\n props,\n leafletRef,\n context\n );\n\n const options = {\n ...layerOptions,\n ...props,\n };\n\n const methods = {\n ...layerGroupMethods,\n setGeojson(newVal) {\n leafletRef.value.clearLayers();\n leafletRef.value.addData(newVal);\n },\n getGeoJSONData() {\n return leafletRef.value.toGeoJSON();\n },\n getBounds() {\n return leafletRef.value.getBounds();\n },\n };\n\n return { options, methods };\n};\n\nvar script$8 = {\n props: props$d,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { methods, options } = setup$d(props, leafletRef, context);\n\n onMounted(async () => {\n const { geoJSON, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = geoJSON(props.geojson, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$8.__file = \"src/components/LGeoJson.vue\";\n\nconst props$e = {\n ...props$1,\n pane: {\n type: String,\n default: \"tilePane\",\n },\n opacity: {\n type: Number,\n custom: false,\n default: 1.0,\n },\n zIndex: {\n type: Number,\n default: 1,\n },\n tileSize: {\n type: Number,\n default: 256,\n },\n noWrap: {\n type: Boolean,\n default: false,\n },\n minZoom: {\n type: Number,\n default: 0,\n },\n maxZoom: {\n type: Number,\n default: undefined,\n },\n};\n\nconst setup$e = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n props,\n leafletRef,\n context\n );\n const options = {\n ...layerOptions,\n pane: props.pane,\n opacity: props.opacity,\n zIndex: props.zIndex,\n tileSize: props.tileSize,\n noWrap: props.noWrap,\n minZoom: props.minZoom,\n maxZoom: props.maxZoom,\n };\n return { options, methods: { ...layerMethods } };\n};\n\nvar script$9 = {\n props: {\n ...props$e,\n childRender: {\n type: Function,\n required: true,\n },\n },\n setup(props, context) {\n const leafletRef = ref({});\n const tileComponents = ref({});\n const root = ref(null);\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$e(props, leafletRef, context);\n\n onMounted(async () => {\n const { GridLayer, DomEvent, DomUtil } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n methods.onUnload = (e) => {\n const key = leafletRef.value._tileCoordsToKey(e.coords);\n if (tileComponents[key]) {\n tileComponents[key].innerHTML = \"\";\n tileComponents[key] = undefined;\n }\n };\n\n methods.setTileComponent = () => {\n leafletRef.value.redraw();\n };\n\n const GLayer = GridLayer.extend({\n createTile(coords) {\n const key = leafletRef.value._tileCoordsToKey(coords);\n tileComponents[key] = DomUtil.create(\"div\");\n\n let vNode = h(\n { setup: props.childRender, props: [\"coords\"] },\n { coords }\n );\n render$3(vNode, tileComponents[key]);\n\n return tileComponents[key];\n },\n });\n\n leafletRef.value = new GLayer(options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n leafletRef.value.on(\"tileunload\", methods.onUnload);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n onUnmounted(() => {\n leafletRef.value.off(\"tileunload\", methods.unLoad);\n });\n\n return { root, ready, leafletObject: leafletRef };\n },\n render() {\n if (this.ready) {\n return h(\"div\", { style: { display: \"none\" }, ref: \"root\" });\n }\n return null;\n },\n};\n\nscript$9.__file = \"src/components/LGridLayer.vue\";\n\nconst props$f = {\n iconUrl: {\n type: String,\n custom: true,\n default: null,\n },\n iconRetinaUrl: {\n type: String,\n custom: true,\n default: null,\n },\n iconSize: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n iconAnchor: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n popupAnchor: {\n type: [Object, Array],\n custom: true,\n default: () => [0, 0],\n },\n tooltipAnchor: {\n type: [Object, Array],\n custom: true,\n default: () => [0, 0],\n },\n shadowUrl: {\n type: String,\n custom: true,\n default: null,\n },\n shadowRetinaUrl: {\n type: String,\n custom: true,\n default: null,\n },\n shadowSize: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n shadowAnchor: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n bgPos: {\n type: [Object, Array],\n custom: true,\n default: () => [0, 0],\n },\n className: {\n type: String,\n custom: true,\n default: \"\",\n },\n options: {\n type: Object,\n custom: true,\n default: () => ({}),\n },\n};\n\n/**\n * Icon component, lets you add and custom icons to the map\n */\nvar script$a = {\n name: \"LIcon\",\n props: {\n ...props$f,\n ...props,\n },\n setup(props, context) {\n const root = ref(null);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const canSetParentHtml = inject(\"canSetParentHtml\");\n const setParentHtml = inject(\"setParentHtml\");\n const setIcon = inject(\"setIcon\");\n\n let onDomEvent;\n let offDomEvent;\n let divIcon;\n let icon;\n let iconObject = undefined;\n\n const createIcon = (el, recreationNeeded, htmlSwapNeeded) => {\n const elHtml = el && el.innerHTML;\n if (!recreationNeeded) {\n if (htmlSwapNeeded && iconObject && canSetParentHtml()) {\n setParentHtml(elHtml);\n }\n return;\n }\n\n const listeners = remapEvents(context.attrs);\n if (iconObject) {\n offDomEvent(iconObject, listeners);\n }\n\n const { options: componentOptions } = setup(props);\n const options = {\n ...componentOptions,\n iconUrl: props.iconUrl,\n iconRetinaUrl: props.iconRetinaUrl,\n iconSize: props.iconSize,\n iconAnchor: props.iconAnchor,\n popupAnchor: props.popupAnchor,\n tooltipAnchor: props.tooltipAnchor,\n shadowUrl: props.shadowUrl,\n shadowRetinaUrl: props.shadowRetinaUrl,\n shadowSize: props.shadowSize,\n shadowAnchor: props.shadowAnchor,\n bgPos: props.bgPos,\n className: props.className,\n html: elHtml || props.html,\n };\n\n iconObject = options.html ? divIcon(options) : icon(options);\n onDomEvent(iconObject, listeners);\n setIcon(iconObject);\n };\n\n const scheduleCreateIcon = () => {\n nextTick(() => createIcon(root.value, true, false));\n };\n\n const scheduleHtmlSwap = () => {\n nextTick(() => createIcon(root.value, false, true));\n };\n\n const methods = {\n setIconUrl: scheduleCreateIcon,\n setIconRetinaUrl: scheduleCreateIcon,\n setIconSize: scheduleCreateIcon,\n setIconAnchor: scheduleCreateIcon,\n setPopupAnchor: scheduleCreateIcon,\n setTooltipAnchor: scheduleCreateIcon,\n setShadowUrl: scheduleCreateIcon,\n setShadowRetinaUrl: scheduleCreateIcon,\n setShadowAnchor: scheduleCreateIcon,\n setBgPos: scheduleCreateIcon,\n setClassName: scheduleCreateIcon,\n setHtml: scheduleCreateIcon,\n };\n\n onMounted(async () => {\n const { DomEvent, divIcon: lDivIcon, icon: lIcon } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n onDomEvent = DomEvent.on;\n offDomEvent = DomEvent.off;\n divIcon = lDivIcon;\n icon = lIcon;\n\n propsBinder(methods, {}, props);\n\n const observer = new MutationObserver(scheduleHtmlSwap);\n observer.observe(root.value, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n });\n scheduleCreateIcon();\n });\n\n return { root };\n },\n render() {\n const content = this.$slots.default ? this.$slots.default() : undefined;\n return h(\"div\", { ref: \"root\" }, content);\n },\n};\n\nscript$a.__file = \"src/components/LIcon.vue\";\n\n/**\n * @typedef {import('leaflet/dist/leaflet-src.esm.js').LatLngBounds} LatLngBounds\n */\n\nconst props$g = {\n ...props$1,\n url: {\n type: String,\n required: true,\n },\n bounds: {\n type: [Array, Object],\n required: true,\n },\n opacity: {\n type: Number,\n custom: true,\n default: 1.0,\n },\n alt: {\n type: String,\n default: \"\",\n },\n interactive: {\n type: Boolean,\n default: false,\n },\n crossOrigin: {\n type: Boolean,\n default: false,\n },\n errorOverlayUrl: {\n type: String,\n custom: true,\n default: \"\",\n },\n zIndex: {\n type: Number,\n custom: true,\n default: 1,\n },\n className: {\n type: String,\n default: \"\",\n },\n};\n\nconst setup$f = (setupProps, LeafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n setupProps,\n LeafletRef,\n context\n );\n const options = {\n ...layerOptions,\n ...setupProps,\n };\n\n const methods = {\n ...layerMethods,\n /**\n * Sets the opacity of the overlay.\n * @param {number} opacity\n */\n setOpacity(opacity) {\n return LeafletRef.value.setOpacity(opacity);\n },\n /**\n * Changes the URL of the image.\n * @param {string} url\n */\n setUrl(url) {\n return LeafletRef.value.setUrl(url);\n },\n /**\n * Update the bounds that this ImageOverlay covers\n * @param {LatLngBounds | Array>} bounds\n */\n setBounds(bounds) {\n return LeafletRef.value.setBounds(bounds);\n },\n /**\n * Get the bounds that this ImageOverlay covers\n * @returns {LatLngBounds}\n */\n getBounds() {\n return LeafletRef.value.getBounds();\n },\n /**\n * Returns the instance of HTMLImageElement used by this overlay.\n * @returns {HTMLElement}\n */\n getElement() {\n return LeafletRef.value.getElement();\n },\n /**\n * Brings the layer to the top of all overlays.\n */\n bringToFront() {\n return LeafletRef.value.bringToFront();\n },\n /**\n * Brings the layer to the bottom of all overlays.\n */\n bringToBack() {\n return LeafletRef.value.bringToBack();\n },\n /**\n * Changes the zIndex of the image overlay.\n * @param {number} zIndex\n */\n setZIndex(zIndex) {\n return LeafletRef.value.setZIndex(zIndex);\n },\n };\n\n return { options, methods };\n};\n\n/**\n * ImageOverlay component, render a plain image instead of a geospatial map.\n */\nvar script$b = {\n name: \"LImageOverlay\",\n props: props$g,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$f(props, leafletRef, context);\n\n onMounted(async () => {\n const { imageOverlay, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n leafletRef.value = imageOverlay(props.url, props.bounds, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$b.__file = \"src/components/LImageOverlay.vue\";\n\nvar script$c = {\n props: props$b,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { methods } = setup$b(props, leafletRef, context);\n\n onMounted(async () => {\n const { layerGroup, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n leafletRef.value = layerGroup(props.options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$c.__file = \"src/components/LLayerGroup.vue\";\n\nvar script$d = {\n emits: [\"ready\", \"update:zoom\", \"update:center\", \"update:bounds\"],\n props: {\n ...props,\n /**\n * The center of the map, supports .sync modifier\n */\n center: {\n type: [Object, Array],\n default: () => [0, 0],\n },\n /**\n * The bounds of the map, supports .sync modifier\n */\n bounds: {\n type: [Array, Object],\n default: undefined,\n },\n /**\n * The max bounds of the map\n */\n maxBounds: {\n type: [Array, Object],\n default: undefined,\n },\n /**\n * The zoom of the map, supports .sync modifier\n */\n zoom: {\n type: Number,\n default: 0,\n },\n /**\n * The minZoom of the map\n */\n minZoom: {\n type: Number,\n default: undefined,\n },\n /**\n * The maxZoom of the map\n */\n maxZoom: {\n type: Number,\n default: undefined,\n },\n /**\n * The paddingBottomRight of the map\n */\n paddingBottomRight: {\n type: Array,\n default: undefined,\n },\n /**\n * The paddingTopLeft of the map\n */\n paddingTopLeft: {\n type: Array,\n default: undefined,\n },\n /**\n * The padding of the map\n */\n padding: {\n type: Array,\n default: undefined,\n },\n /**\n * The worldCopyJump option for the map\n */\n worldCopyJump: {\n type: Boolean,\n default: false,\n },\n /**\n * The CRS to use for the map. Can be an object that defines a coordinate reference\n * system for projecting geographical points into screen coordinates and back\n * (see https://leafletjs.com/reference-1.7.1.html#crs-l-crs-base), or a string\n * name identifying one of Leaflet's defined CRSs, such as \"EPSG4326\".\n */\n crs: {\n type: [String, Object],\n default: \"EPSG3857\",\n },\n maxBoundsViscosity: {\n type: Number,\n default: undefined,\n },\n inertia: {\n type: Boolean,\n default: undefined,\n },\n inertiaDeceleration: {\n type: Number,\n default: undefined,\n },\n inertiaMaxSpeed: {\n type: Number,\n default: undefined,\n },\n easeLinearity: {\n type: Number,\n default: undefined,\n },\n zoomAnimation: {\n type: Boolean,\n default: undefined,\n },\n zoomAnimationThreshold: {\n type: Number,\n default: undefined,\n },\n fadeAnimation: {\n type: Boolean,\n default: undefined,\n },\n markerZoomAnimation: {\n type: Boolean,\n default: undefined,\n },\n noBlockingAnimations: {\n type: Boolean,\n default: false,\n },\n useGlobalLeaflet: {\n type: Boolean,\n default: true,\n },\n },\n setup(props, context) {\n const root = ref(null);\n const blueprint = reactive({\n ready: false,\n leafletRef: {},\n layersToAdd: [],\n layersInControl: [],\n });\n const { options: componentOptions } = setup(props);\n const options = {\n ...componentOptions,\n minZoom: props.minZoom,\n maxZoom: props.maxZoom,\n maxBounds: props.maxBounds,\n maxBoundsViscosity: props.maxBoundsViscosity,\n worldCopyJump: props.worldCopyJump,\n crs: props.crs,\n center: props.center,\n zoom: props.zoom,\n inertia: props.inertia,\n inertiaDeceleration: props.inertiaDeceleration,\n inertiaMaxSpeed: props.inertiaMaxSpeed,\n easeLinearity: props.easeLinearity,\n zoomAnimation: props.zoomAnimation,\n zoomAnimationThreshold: props.zoomAnimationThreshold,\n fadeAnimation: props.fadeAnimation,\n markerZoomAnimation: props.markerZoomAnimation,\n };\n\n const addLayer = provideLeafletWrapper(\"addLayer\");\n const removeLayer = provideLeafletWrapper(\"removeLayer\");\n const registerControl = provideLeafletWrapper(\"registerControl\");\n const registerLayerControl = provideLeafletWrapper(\"registerLayerControl\");\n provide(GLOBAL_LEAFLET_OPT, props.useGlobalLeaflet);\n\n const eventHandlers = {\n moveEndHandler() {\n /**\n * Triggers when zoom is updated\n * @type {number,string}\n */\n context.emit(\"update:zoom\", blueprint.leafletRef.getZoom());\n /**\n * Triggers when center is updated\n * @type {object,array}\n */\n context.emit(\"update:center\", blueprint.leafletRef.getCenter());\n\n /**\n * Triggers when bounds are updated\n * @type {object}\n */\n context.emit(\"update:bounds\", blueprint.leafletRef.getBounds());\n },\n overlayAddHandler(e) {\n const layer = blueprint.layersInControl.find((l) => l.name === e.name);\n if (layer) {\n layer.updateVisibleProp(true);\n }\n },\n overlayRemoveHandler(e) {\n const layer = blueprint.layersInControl.find((l) => l.name === e.name);\n if (layer) {\n layer.updateVisibleProp(false);\n }\n },\n };\n\n onMounted(async () => {\n if (props.useGlobalLeaflet) {\n WINDOW_OR_GLOBAL.L = WINDOW_OR_GLOBAL.L || (await import('leaflet'));\n }\n const {\n map,\n CRS,\n Icon,\n latLngBounds,\n latLng,\n DomEvent,\n } = props.useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n try {\n options.beforeMapMount && (await options.beforeMapMount());\n } catch (error) {\n console.error(\n `The following error occurred running the provided beforeMapMount hook ${error.message}`\n );\n }\n\n await resetWebpackIcon(Icon);\n\n const optionsCrs =\n typeof options.crs == \"string\" ? CRS[options.crs] : options.crs;\n options.crs = optionsCrs || CRS.EPSG3857;\n\n const methods = {\n addLayer(layer) {\n if (layer.layerType !== undefined) {\n if (blueprint.layerControl === undefined) {\n blueprint.layersToAdd.push(layer);\n } else {\n const exist = blueprint.layersInControl.find(\n (l) =>\n l.leafletObject._leaflet_id ===\n layer.leafletObject._leaflet_id\n );\n if (!exist) {\n blueprint.layerControl.addLayer(layer);\n blueprint.layersInControl.push(layer);\n }\n }\n }\n if (layer.visible !== false) {\n blueprint.leafletRef.addLayer(layer.leafletObject);\n }\n },\n removeLayer(layer) {\n if (layer.layerType !== undefined) {\n if (blueprint.layerControl === undefined) {\n blueprint.layersToAdd = blueprint.layersToAdd.filter(\n (l) => l.name !== layer.name\n );\n } else {\n blueprint.layerControl.removeLayer(layer.leafletObject);\n blueprint.layersInControl = blueprint.layersInControl.filter(\n (l) =>\n l.leafletObject._leaflet_id !==\n layer.leafletObject._leaflet_id\n );\n }\n }\n blueprint.leafletRef.removeLayer(layer.leafletObject);\n },\n\n registerLayerControl(lControlLayer) {\n blueprint.layerControl = lControlLayer;\n blueprint.layersToAdd.forEach((layer) => {\n blueprint.layerControl.addLayer(layer);\n });\n blueprint.layersToAdd = [];\n\n registerControl(lControlLayer);\n },\n\n registerControl(lControl) {\n blueprint.leafletRef.addControl(lControl.leafletObject);\n },\n\n setZoom(newVal) {\n const zoom = blueprint.leafletRef.getZoom();\n if (newVal !== zoom) {\n blueprint.leafletRef.setZoom(newVal, {\n animate: props.noBlockingAnimations ? false : null,\n });\n }\n },\n\n setPaddingBottomRight(newVal) {\n blueprint.paddingBottomRight = newVal;\n },\n setPaddingTopLeft(newVal) {\n blueprint.paddingTopLeft = newVal;\n },\n setPadding(newVal) {\n blueprint.padding = newVal;\n },\n setCrs(newVal) {\n const prevBounds = blueprint.leafletRef.getBounds();\n blueprint.leafletRef.options.crs = newVal;\n blueprint.leafletRef.fitBounds(prevBounds, {\n animate: false,\n padding: [0, 0],\n });\n },\n fitBounds(bounds) {\n blueprint.leafletRef.fitBounds(bounds, {\n animate: this.noBlockingAnimations ? false : null,\n });\n },\n setBounds(newVal) {\n if (!newVal) {\n return;\n }\n const newBounds = latLngBounds(newVal);\n if (!newBounds.isValid()) {\n return;\n }\n const oldBounds =\n blueprint.lastSetBounds || blueprint.leafletRef.getBounds();\n const boundsChanged = !oldBounds.equals(newBounds, 0); // set maxMargin to 0 - check exact equals\n if (boundsChanged) {\n blueprint.lastSetBounds = newBounds;\n blueprint.leafletRef.fitBounds(newBounds, this.fitBoundsOptions);\n }\n },\n\n setCenter(newVal) {\n if (newVal == null) {\n return;\n }\n const newCenter = latLng(newVal);\n const oldCenter =\n blueprint.lastSetCenter || blueprint.leafletRef.getCenter();\n if (\n oldCenter.lat !== newCenter.lat ||\n oldCenter.lng !== newCenter.lng\n ) {\n blueprint.lastSetCenter = newCenter;\n blueprint.leafletRef.panTo(newCenter, {\n animate: this.noBlockingAnimations ? false : null,\n });\n }\n },\n };\n\n updateLeafletWrapper(addLayer, methods.addLayer);\n updateLeafletWrapper(removeLayer, methods.removeLayer);\n updateLeafletWrapper(registerControl, methods.registerControl);\n updateLeafletWrapper(registerLayerControl, methods.registerLayerControl);\n\n blueprint.leafletRef = map(root.value, options);\n\n propsBinder(methods, blueprint.leafletRef, props);\n const listeners = remapEvents(context.attrs);\n\n blueprint.leafletRef.on(\n \"moveend\",\n debounce(eventHandlers.moveEndHandler, 100)\n );\n blueprint.leafletRef.on(\"overlayadd\", eventHandlers.overlayAddHandler);\n blueprint.leafletRef.on(\n \"overlayremove\",\n eventHandlers.overlayRemoveHandler\n );\n DomEvent.on(blueprint.leafletRef, listeners);\n blueprint.ready = true;\n nextTick(() => context.emit(\"ready\", blueprint.leafletRef));\n });\n\n onBeforeUnmount(() => {\n if (blueprint.leafletRef) {\n blueprint.leafletRef.remove();\n }\n });\n\n const leafletObject = computed(() => blueprint.leafletRef);\n const ready = computed(() => blueprint.ready);\n return { root, ready, leafletObject };\n },\n render() {\n return h(\n \"div\",\n { style: { width: \"100%\", height: \"100%\" }, ref: \"root\" },\n this.ready ? this.$slots.default() : {}\n );\n },\n};\n\nscript$d.__file = \"src/components/LMap.vue\";\n\nconst props$h = {\n ...props$1,\n pane: {\n type: String,\n default: \"markerPane\",\n },\n draggable: {\n type: Boolean,\n custom: true,\n default: false,\n },\n latLng: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n icon: {\n type: [Object],\n default: () => undefined,\n custom: false,\n },\n zIndexOffset: {\n type: Number,\n custom: false,\n default: null,\n },\n};\n\nconst setup$g = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n props,\n leafletRef,\n context\n );\n const options = {\n ...layerOptions,\n ...props,\n };\n\n const methods = {\n ...layerMethods,\n setDraggable(value) {\n if (leafletRef.value.dragging) {\n value\n ? leafletRef.value.dragging.enable()\n : leafletRef.value.dragging.disable();\n }\n },\n latLngSync(event) {\n context.emit(\"update:latLng\", event.latlng);\n context.emit(\"update:lat-lng\", event.latlng);\n },\n setLatLng(newVal) {\n if (newVal == null) {\n return;\n }\n\n if (leafletRef.value) {\n const oldLatLng = leafletRef.value.getLatLng();\n if (!oldLatLng || !oldLatLng.equals(newVal)) {\n leafletRef.value.setLatLng(newVal);\n }\n }\n },\n };\n return { options, methods };\n};\n\n/**\n * Marker component, lets you add and personalize markers on the map\n */\nvar script$e = {\n name: \"LMarker\",\n props: props$h,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n provide(\"canSetParentHtml\", () => !!leafletRef.value.getElement());\n provide(\n \"setParentHtml\",\n (html) => (leafletRef.value.getElement().innerHTML = html)\n );\n provide(\n \"setIcon\",\n (newIcon) => leafletRef.value.setIcon && leafletRef.value.setIcon(newIcon)\n );\n const { options, methods } = setup$g(props, leafletRef, context);\n if (options.icon === undefined) {\n // If the options objection has a property named 'icon', then Leaflet will overwrite\n // the default icon with it for the marker, _even if it is undefined_.\n // This leads to the issue discussed in https://github.com/vue-leaflet/vue-leaflet/issues/130\n delete options.icon;\n }\n\n onMounted(async () => {\n const { marker, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n leafletRef.value = marker(props.latLng, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n leafletRef.value.on(\"move\", debounce(methods.latLngSync, 100));\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$e.__file = \"src/components/LMarker.vue\";\n\nconst props$i = {\n ...props$3,\n latLngs: {\n type: Array,\n default: () => [],\n },\n smoothFactor: {\n type: Number,\n custom: true,\n default: 1.0,\n },\n noClip: {\n type: Boolean,\n custom: true,\n default: false,\n },\n};\n\nconst setup$h = (props, leafletRef, context) => {\n const { options: pathOptions, methods: pathMethods } = setup$3(\n props,\n leafletRef,\n context\n );\n const options = {\n ...pathOptions,\n ...props,\n };\n\n const methods = {\n ...pathMethods,\n setSmoothFactor(smoothFactor) {\n leafletRef.value.setStyle({ smoothFactor });\n },\n setNoClip(noClip) {\n leafletRef.value.setStyle({ noClip });\n },\n addLatLng(latLng) {\n leafletRef.value.addLatLng(latLng);\n },\n };\n return { options, methods };\n};\n\nconst props$j = {\n ...props$i,\n};\n\nconst setup$i = (props, leafletRef, context) => {\n const { options: polylineOptions, methods: polylineMethods } = setup$h(\n props,\n leafletRef,\n context\n );\n const options = {\n ...polylineOptions,\n ...props,\n };\n\n const methods = {\n ...polylineMethods,\n toGeoJSON(precision) {\n return leafletRef.value.toGeoJSON(precision);\n },\n };\n\n return { options, methods };\n};\n\n/**\n * Polygon component, lets you add and customize polygon regions on the map\n */\nvar script$f = {\n name: \"LPolygon\",\n props: props$j,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$i(props, leafletRef, context);\n\n onMounted(async () => {\n const { polygon, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = polygon(props.latLngs, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$f.__file = \"src/components/LPolygon.vue\";\n\n/**\n * Polyline component, lets you add and personalize polylines on the map\n */\nvar script$g = {\n name: \"LPolyline\",\n props: props$i,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$h(props, leafletRef, context);\n\n onMounted(async () => {\n const { polyline, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = polyline(props.latLngs, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$g.__file = \"src/components/LPolyline.vue\";\n\nconst props$k = {\n ...props,\n content: {\n type: String,\n default: null,\n },\n};\n\nconst setup$j = (props, leafletRef) => {\n const { options, methods: componentMethods } = setup(props);\n const methods = {\n ...componentMethods,\n setContent(newVal) {\n if (leafletRef.value && newVal !== null && newVal !== undefined) {\n leafletRef.value.setContent(newVal);\n }\n },\n };\n return { options, methods };\n};\n\nconst render$2 = (slots) => {\n if (slots.default) {\n return h(\"div\", { ref: \"root\" }, slots.default());\n }\n return null;\n};\n\nconst props$l = {\n ...props$k,\n latLng: {\n type: [Object, Array],\n default: () => [],\n },\n};\n\nconst setup$k = (props, leafletRef) => {\n const { options, methods } = setup$j(props, leafletRef);\n const unbindPopup = inject(\"unbindPopup\");\n\n onBeforeUnmount(() => {\n unbindPopup();\n });\n\n return { options, methods };\n};\n\n/**\n * Display a popup on the map\n */\nvar script$h = {\n name: \"LPopup\",\n props: props$l,\n setup(props, context) {\n const leafletRef = ref({});\n const root = ref(null);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const bindPopup = inject(\"bindPopup\");\n\n const { options, methods } = setup$k(props, leafletRef);\n\n onMounted(async () => {\n const { popup, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = popup(options);\n\n if (props.latLng !== undefined) {\n leafletRef.value.setLatLng(props.latLng);\n }\n\n propsBinder(methods, leafletRef.value, props);\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n leafletRef.value.setContent(props.content || root.value);\n bindPopup({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { root, leafletObject: leafletRef };\n },\n render() {\n return render$2(this.$slots);\n },\n};\n\nscript$h.__file = \"src/components/LPopup.vue\";\n\nconst props$m = {\n ...props$j,\n bounds: {\n type: Array,\n default: undefined,\n },\n};\n\nconst setup$l = (props, leafletRef, context) => {\n const { options: polygonOptions, methods: polygonMethods } = setup$i(\n props,\n leafletRef,\n context\n );\n const options = {\n ...polygonOptions,\n ...props,\n };\n\n const methods = {\n ...polygonMethods,\n setBounds(latLngBounds) {\n leafletRef.value.setBounds(latLngBounds);\n },\n setLatLngs(latLngs) {\n // Calling setLatLngs on a Leaflet rectangle will convert it\n // to a polygon. So instead, we call setBounds here to ensure\n // that the rectangle remains a rectangle, defined by the\n // bounds of the points in the latLngs array.\n leafletRef.value.setBounds(latLngs);\n },\n };\n\n return { options, methods };\n};\n\n/**\n * Rectangle component, lets you add and customize rectangular regions on the map\n */\nvar script$i = {\n name: \"LRectangle\",\n props: props$m,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$l(props, leafletRef, context);\n\n onMounted(async () => {\n const { rectangle, latLngBounds, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n const bounds =\n props.bounds && props.bounds.length\n ? latLngBounds(props.bounds)\n : latLngBounds(props.latLngs);\n leafletRef.value = rectangle(bounds, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$i.__file = \"src/components/LRectangle.vue\";\n\nconst props$n = {\n ...props$e,\n tms: {\n type: Boolean,\n default: false,\n },\n subdomains: {\n type: String,\n default: \"abc\",\n },\n detectRetina: {\n type: Boolean,\n default: false,\n },\n url: {\n type: String,\n default: null,\n },\n};\n\nconst setup$m = (props, leafletRef, context) => {\n const {\n options: gridLayerOptions,\n methods: gridLayerMethods,\n } = setup$e(props, leafletRef, context);\n const options = {\n ...gridLayerOptions,\n tms: props.tms,\n subdomains: props.subdomains,\n detectRetina: props.detectRetina,\n };\n return {\n options,\n methods: {\n ...gridLayerMethods,\n },\n };\n};\n\nvar script$j = {\n props: props$n,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$m(props, leafletRef, context);\n\n onMounted(async () => {\n const { tileLayer, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n leafletRef.value = tileLayer(props.url, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { leafletObject: leafletRef };\n },\n render() {\n return null;\n },\n};\n\nscript$j.__file = \"src/components/LTileLayer.vue\";\n\nconst props$o = {\n ...props$k,\n};\n\nconst setup$n = (props, leafletRef) => {\n const { options, methods } = setup$j(props, leafletRef);\n const unbindTooltip = inject(\"unbindTooltip\");\n\n onBeforeUnmount(() => {\n unbindTooltip();\n });\n\n return { options, methods };\n};\n\n/**\n * Display a tooltip on the map\n */\nvar script$k = {\n name: \"LTooltip\",\n props: props$o,\n setup(props, context) {\n const leafletRef = ref({});\n const root = ref(null);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const bindTooltip = inject(\"bindTooltip\");\n\n const { options, methods } = setup$n(props, leafletRef);\n\n onMounted(async () => {\n const { tooltip, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = tooltip(options);\n\n propsBinder(methods, leafletRef.value, props);\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n leafletRef.value.setContent(props.content || root.value);\n bindTooltip({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { root, leafletObject: leafletRef };\n },\n render() {\n return render$2(this.$slots);\n },\n};\n\nscript$k.__file = \"src/components/LTooltip.vue\";\n\nconst props$p = {\n ...props$n,\n baseUrl: {\n type: String,\n default: null,\n required: true,\n },\n layers: {\n type: String,\n default: \"\",\n },\n styles: {\n type: String,\n default: \"\",\n },\n format: {\n type: String,\n default: \"image/jpeg\",\n },\n transparent: {\n type: Boolean,\n custom: false,\n },\n version: {\n type: String,\n default: \"1.1.1\",\n },\n crs: {\n default: null,\n },\n upperCase: {\n type: Boolean,\n default: false,\n },\n};\n\nconst setup$o = (props, leafletRef) => {\n const {\n options: tileLayerOptions,\n methods: tileLayerMethods,\n } = setup$m(props, leafletRef);\n const options = {\n ...tileLayerOptions,\n layers: props.layers,\n styles: props.styles,\n format: props.format,\n transparent: props.transparent,\n version: props.version,\n crs: props.crs,\n upperCase: props.upperCase,\n };\n return {\n options,\n methods: {\n ...tileLayerMethods,\n },\n };\n};\n\nvar script$l = {\n props: props$p,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$o(props, leafletRef);\n\n onMounted(async () => {\n const { tileLayer, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = tileLayer.wms(props.baseUrl, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$l.__file = \"src/components/LWmsTileLayer.vue\";\n\nexport { script as LCircle, script$1 as LCircleMarker, script$2 as LControl, script$3 as LControlAttribution, script$4 as LControlLayers, script$5 as LControlScale, script$6 as LControlZoom, script$7 as LFeatureGroup, script$8 as LGeoJson, script$9 as LGridLayer, script$a as LIcon, script$b as LImageOverlay, script$c as LLayerGroup, script$d as LMap, script$e as LMarker, script$f as LPolygon, script$g as LPolyline, script$h as LPopup, script$i as LRectangle, script$j as LTileLayer, script$k as LTooltip, script$l as LWmsTileLayer };\n//# sourceMappingURL=vue-leaflet.esm.js.map\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nimport { LIcon, LMarker } from '@vue-leaflet/vue-leaflet'\n import { toRefs } from 'vue'\n\n import { TCoordinates } from '@/types/workouts'\n\n interface Props {\n markerCoordinates: TCoordinates\n isStart: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CustomMarker',\n props: {\n markerCoordinates: null,\n isStart: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n markerCoordinates: TCoordinates\n isStart: boolean\n };\n\n \n\n const { isStart, markerCoordinates } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(markerCoordinates).latitude)\n ? (_openBlock(), _createBlock(_unref(LMarker), {\n key: 0,\n \"lat-lng\": [_unref(markerCoordinates).latitude, _unref(markerCoordinates).longitude]\n }, {\n default: _withCtx(() => [\n _createVNode(_unref(LIcon), {\n \"icon-url\": `/img/workouts/${_unref(isStart) ? 'start' : 'finish'}.svg`,\n iconSize: [15, 15]\n }, null, 8, [\"icon-url\"])\n ]),\n _: 1\n }, 8, [\"lat-lng\"]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./CustomMarker.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./CustomMarker.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, normalizeClass as _normalizeClass, createBlock as _createBlock, resolveComponent as _resolveComponent, toDisplayString as _toDisplayString, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6b490f5d\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-map\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"leaflet-container\"\n}\nconst _hoisted_3 = { key: 1 }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-refresh\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_5 = {\n key: 1,\n class: \"no-map\"\n}\n\nimport { gpx } from '@tmcw/togeojson'\n import {\n LControl,\n LControlLayers,\n LGeoJson,\n LLayerGroup,\n LMap,\n LMarker,\n LTileLayer,\n } from '@vue-leaflet/vue-leaflet'\n import { ComputedRef, computed, ref, toRefs, withDefaults } from 'vue'\n import 'leaflet/dist/leaflet.css'\n\n import CustomMarker from '@/components/Workout/WorkoutDetail/WorkoutMap/CustomMarker.vue'\n import { ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { GeoJSONData } from '@/types/geojson'\n import { IWorkoutData, TCoordinates } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { getApiUrl } from '@/utils'\n\n interface Props {\n workoutData: IWorkoutData\n markerCoordinates?: TCoordinates\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n workoutData: null,\n markerCoordinates: { default: () => ({} as TCoordinates) }\n },\n setup(__props: any) {\n\nconst props = __props as { workoutData: IWorkoutData, markerCoordinates: TCoordinates };\n\n \n\n const store = useStore()\n\n const { workoutData, markerCoordinates } = toRefs(props)\n const workoutMap = ref null }\n }>(null)\n const bounds = computed(() => getBounds())\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const center = computed(() => getCenter(bounds))\n const geoJson = computed(() =>\n props.workoutData && props.workoutData.gpx\n ? getGeoJson(props.workoutData.gpx)\n : {}\n )\n const startMarkerCoordinates = computed(() =>\n props.workoutData && props.workoutData.chartData.length > 0\n ? {\n latitude: props.workoutData.chartData[0].latitude,\n longitude: props.workoutData.chartData[0].longitude,\n }\n : {}\n )\n const endMarkerCoordinates = computed(() =>\n props.workoutData && props.workoutData.chartData.length > 0\n ? {\n latitude:\n props.workoutData.chartData[props.workoutData.chartData.length - 1]\n .latitude,\n longitude:\n props.workoutData.chartData[props.workoutData.chartData.length - 1]\n .longitude,\n }\n : {}\n )\n const isFullscreen = ref(false)\n\n function getGeoJson(gpxContent: string): GeoJSONData {\n if (!gpxContent || gpxContent !== '') {\n try {\n const jsonData = gpx(\n new DOMParser().parseFromString(gpxContent, 'text/xml')\n )\n return { jsonData }\n } catch (e) {\n console.error('Invalid gpx content')\n return {}\n }\n }\n return {}\n }\n function getCenter(bounds: ComputedRef): number[] {\n return [\n (bounds.value[0][0] + bounds.value[1][0]) / 2,\n (bounds.value[0][1] + bounds.value[1][1]) / 2,\n ]\n }\n function fitBounds(bounds: number[][]) {\n if (workoutMap.value?.leafletObject) {\n workoutMap.value?.leafletObject.fitBounds(bounds)\n }\n }\n function getBounds() {\n return props.workoutData\n ? [\n [\n props.workoutData.workout.bounds[0],\n props.workoutData.workout.bounds[1],\n ],\n [\n props.workoutData.workout.bounds[2],\n props.workoutData.workout.bounds[3],\n ],\n ]\n : []\n }\n function resetZoom() {\n workoutMap.value?.leafletObject.fitBounds(getBounds())\n }\n function toggleFullscreen() {\n isFullscreen.value = !isFullscreen.value\n if (!isFullscreen.value) {\n setTimeout(() => {\n resetZoom()\n }, 100)\n }\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_VFullscreen = _resolveComponent(\"VFullscreen\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(workoutData).loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_unref(workoutData).workout.with_gpx)\n ? (_openBlock(), _createBlock(_component_VFullscreen, {\n key: 0,\n modelValue: isFullscreen.value,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((isFullscreen).value = $event))\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"leaflet-container\", { 'fullscreen-map': isFullscreen.value }])\n }, [\n (_unref(geoJson).jsonData && _unref(center) && _unref(bounds).length === 2)\n ? (_openBlock(), _createBlock(_unref(LMap), {\n key: 0,\n zoom: 13,\n maxZoom: 19,\n center: _unref(center),\n bounds: _unref(bounds),\n ref_key: \"workoutMap\",\n ref: workoutMap,\n onReady: _cache[0] || (_cache[0] = ($event: any) => (fitBounds(_unref(bounds))))\n }, {\n default: _withCtx(() => [\n _createVNode(_unref(LControlLayers)),\n _createVNode(_unref(LControl), {\n position: \"topleft\",\n class: \"map-control\",\n onClick: resetZoom\n }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }),\n _createVNode(_unref(LControl), {\n position: \"topleft\",\n class: \"map-control\",\n onClick: toggleFullscreen\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa-${isFullscreen.value ? 'compress' : 'arrows-alt'}`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _: 1\n }),\n _createVNode(_unref(LTileLayer), {\n url: `${_unref(getApiUrl)()}workouts/map_tile/{s}/{z}/{x}/{y}.png`,\n attribution: _unref(appConfig).map_attribution,\n bounds: _unref(bounds)\n }, null, 8, [\"url\", \"attribution\", \"bounds\"]),\n _createVNode(_unref(LGeoJson), {\n geojson: _unref(geoJson).jsonData\n }, null, 8, [\"geojson\"]),\n (_unref(markerCoordinates).latitude)\n ? (_openBlock(), _createBlock(_unref(LMarker), {\n key: 0,\n \"lat-lng\": [\n _unref(markerCoordinates).latitude,\n _unref(markerCoordinates).longitude,\n ]\n }, null, 8, [\"lat-lng\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_unref(LLayerGroup), {\n name: _ctx.$t('workouts.START_AND_FINISH'),\n \"layer-type\": \"overlay\"\n }, {\n default: _withCtx(() => [\n (_unref(startMarkerCoordinates).latitude)\n ? (_openBlock(), _createBlock(CustomMarker, {\n key: 0,\n markerCoordinates: _unref(startMarkerCoordinates),\n isStart: true\n }, null, 8, [\"markerCoordinates\"]))\n : _createCommentVNode(\"\", true),\n (_unref(endMarkerCoordinates).latitude)\n ? (_openBlock(), _createBlock(CustomMarker, {\n key: 1,\n markerCoordinates: _unref(endMarkerCoordinates),\n isStart: false\n }, null, 8, [\"markerCoordinates\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"name\"])\n ]),\n _: 1\n }, 8, [\"center\", \"bounds\"]))\n : _createCommentVNode(\"\", true)\n ], 2)\n ]),\n _: 1\n }, 8, [\"modelValue\"]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _toDisplayString(_ctx.$t('workouts.NO_MAP')), 1))\n ]))\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=6b490f5d&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6b490f5d\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, withCtx as _withCtx, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-9fc0bab8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"workout-detail\" }\n\nimport {\n ComputedRef,\n Ref,\n computed,\n ref,\n toRefs,\n watch,\n withDefaults,\n } from 'vue'\n import { useRoute } from 'vue-router'\n\n import WorkoutCardTitle from '@/components/Workout/WorkoutDetail/WorkoutCardTitle.vue'\n import WorkoutData from '@/components/Workout/WorkoutDetail/WorkoutData.vue'\n import WorkoutMap from '@/components/Workout/WorkoutDetail/WorkoutMap/index.vue'\n import { WORKOUTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import {\n IWorkout,\n IWorkoutData,\n IWorkoutObject,\n IWorkoutSegment,\n TCoordinates,\n } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { formatWorkoutDate, getDateWithTZ } from '@/utils/dates'\n\n interface Props {\n authUser: IAuthUserProfile\n displaySegment: boolean\n sports: ISport[]\n workoutData: IWorkoutData\n markerCoordinates?: TCoordinates\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n authUser: null,\n displaySegment: { type: Boolean },\n sports: null,\n workoutData: null,\n markerCoordinates: { default: () => ({} as TCoordinates) }\n },\n setup(__props: any) {\n\nconst props = __props as { authUser: IAuthUserProfile, displaySegment: boolean, sports: ISport[], workoutData: IWorkoutData, markerCoordinates: TCoordinates };\n\n \n\n const route = useRoute()\n const store = useStore()\n\n const { authUser, markerCoordinates, workoutData } = toRefs(props)\n const workout: ComputedRef = computed(\n () => props.workoutData.workout\n )\n const segmentId: Ref = ref(\n route.params.workoutId ? +route.params.segmentId : null\n )\n const segment: ComputedRef = computed(() =>\n workout.value.segments.length > 0 && segmentId.value\n ? workout.value.segments[+segmentId.value - 1]\n : null\n )\n const displayModal: Ref = ref(false)\n const sport = computed(() =>\n props.sports\n ? props.sports.find(\n (sport) => sport.id === props.workoutData.workout.sport_id\n )\n : {}\n )\n const workoutObject = computed(() =>\n getWorkoutObject(workout.value, segment.value)\n )\n\n function getWorkoutObjectUrl(\n workout: IWorkout,\n displaySegment: boolean,\n segmentId: number | null\n ): Record {\n const previousUrl =\n displaySegment && segmentId && segmentId !== 1\n ? `/workouts/${workout.id}/segment/${segmentId - 1}`\n : !displaySegment && workout.previous_workout\n ? `/workouts/${workout.previous_workout}`\n : null\n const nextUrl =\n displaySegment && segmentId && segmentId < workout.segments.length\n ? `/workouts/${workout.id}/segment/${segmentId + 1}`\n : !displaySegment && workout.next_workout\n ? `/workouts/${workout.next_workout}`\n : null\n return {\n previousUrl,\n nextUrl,\n }\n }\n function getWorkoutObject(\n workout: IWorkout,\n segment: IWorkoutSegment | null\n ): IWorkoutObject {\n const urls = getWorkoutObjectUrl(\n workout,\n props.displaySegment,\n segmentId.value ? +segmentId.value : null\n )\n const workoutDate = formatWorkoutDate(\n getDateWithTZ(\n props.workoutData.workout.workout_date,\n props.authUser.timezone\n ),\n props.authUser.date_format\n )\n return {\n ascent: segment ? segment.ascent : workout.ascent,\n aveSpeed: segment ? segment.ave_speed : workout.ave_speed,\n distance: segment ? segment.distance : workout.distance,\n descent: segment ? segment.descent : workout.descent,\n duration: segment ? segment.duration : workout.duration,\n maxAlt: segment ? segment.max_alt : workout.max_alt,\n maxSpeed: segment ? segment.max_speed : workout.max_speed,\n minAlt: segment ? segment.min_alt : workout.min_alt,\n moving: segment ? segment.moving : workout.moving,\n nextUrl: urls.nextUrl,\n pauses: segment ? segment.pauses : workout.pauses,\n previousUrl: urls.previousUrl,\n records: segment ? [] : workout.records,\n segmentId: segment ? segment.segment_id : null,\n title: workout.title,\n type: props.displaySegment ? 'SEGMENT' : 'WORKOUT',\n workoutDate: workoutDate.workout_date,\n weatherEnd: segment ? null : workout.weather_end,\n weatherStart: segment ? null : workout.weather_start,\n with_gpx: workout.with_gpx,\n workoutId: workout.id,\n workoutTime: workoutDate.workout_time,\n }\n }\n function updateDisplayModal(value: boolean) {\n displayModal.value = value\n }\n function deleteWorkout(workoutId: string) {\n store.dispatch(WORKOUTS_STORE.ACTIONS.DELETE_WORKOUT, {\n workoutId: workoutId,\n })\n }\n\n watch(\n () => route.params.segmentId,\n async (newSegmentId) => {\n if (newSegmentId) {\n segmentId.value = +newSegmentId\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (displayModal.value)\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: _ctx.$t('workouts.WORKOUT_DELETION_CONFIRMATION'),\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (deleteWorkout(_unref(workoutObject).workoutId))),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal(false)))\n }, null, 8, [\"title\", \"message\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createVNode(WorkoutCardTitle, {\n sport: _unref(sport),\n workoutObject: _unref(workoutObject),\n onDisplayModal: _cache[2] || (_cache[2] = ($event: any) => (updateDisplayModal(true)))\n }, null, 8, [\"sport\", \"workoutObject\"])\n ]),\n content: _withCtx(() => [\n _createVNode(WorkoutMap, {\n workoutData: _unref(workoutData),\n markerCoordinates: _unref(markerCoordinates)\n }, null, 8, [\"workoutData\", \"markerCoordinates\"]),\n _createVNode(WorkoutData, {\n workoutObject: _unref(workoutObject),\n useImperialUnits: _unref(authUser).imperial_units,\n displayHARecord: _unref(authUser).display_ascent\n }, null, 8, [\"workoutObject\", \"useImperialUnits\", \"displayHARecord\"])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=9fc0bab8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-9fc0bab8\"]])\n\nexport default __exports__","import { Chart, LegendItem } from 'chart.js'\n\nconst getOrCreateLegendList = (id: string): HTMLUListElement => {\n const legendContainer = document.getElementById(id)\n if (legendContainer) {\n let listContainer = legendContainer.querySelector('ul')\n if (!listContainer) {\n listContainer = document.createElement('ul')\n legendContainer.appendChild(listContainer)\n }\n return listContainer\n }\n throw new Error('No legend container')\n}\n\nexport const htmlLegendPlugin = {\n id: 'htmlLegend',\n afterUpdate(\n chart: Chart,\n args: Record,\n options: Record\n ): void {\n const ul = getOrCreateLegendList(options.containerID)\n while (ul.firstChild) {\n ul.firstChild.remove()\n }\n\n const legendItems = chart.options.plugins?.legend?.labels?.generateLabels\n ? chart.options.plugins?.legend?.labels?.generateLabels(chart)\n : []\n\n legendItems.forEach((item: LegendItem) => {\n const li = document.createElement('li')\n li.onclick = () => {\n if (item.datasetIndex !== undefined) {\n chart.setDatasetVisibility(\n item.datasetIndex,\n !chart.isDatasetVisible(item.datasetIndex)\n )\n chart.update()\n }\n }\n\n const checkBox = document.createElement('input')\n if (checkBox) {\n checkBox.type = 'checkbox'\n checkBox.id = item.text\n checkBox.checked = !item.hidden\n }\n\n const text = document.createTextNode(item.text)\n\n const boxSpan = document.createElement('span')\n if (boxSpan) {\n boxSpan.style.background = String(item.fillStyle)\n boxSpan.style.borderColor = String(item.strokeStyle)\n }\n\n li.appendChild(checkBox)\n li.appendChild(text)\n li.appendChild(boxSpan)\n ul.appendChild(li)\n })\n },\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, unref as _unref, mergeProps as _mergeProps, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0b68c436\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-chart\" }\nconst _hoisted_2 = { class: \"chart-radio\" }\nconst _hoisted_3 = [\"checked\"]\nconst _hoisted_4 = [\"checked\"]\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"chart-legend\" }, null, -1))\nconst _hoisted_6 = { class: \"chart-info\" }\nconst _hoisted_7 = { class: \"no-data-cleaning\" }\nconst _hoisted_8 = { class: \"elevation-start\" }\nconst _hoisted_9 = [\"checked\"]\n\nimport { ChartData, ChartOptions } from 'chart.js'\n import { ComputedRef, computed, ref } from 'vue'\n import { LineChart, useLineChart } from 'vue-chart-3'\n import { useI18n } from 'vue-i18n'\n\n import { htmlLegendPlugin } from '@/components/Workout/WorkoutDetail/WorkoutChart/legend'\n import { TUnit } from '@/types/units'\n import { IAuthUserProfile } from '@/types/user'\n import {\n IWorkoutChartData,\n IWorkoutData,\n TCoordinates,\n } from '@/types/workouts'\n import { units } from '@/utils/units'\n import { getDatasets } from '@/utils/workouts'\n\n interface Props {\n authUser: IAuthUserProfile\n workoutData: IWorkoutData\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n authUser: null,\n workoutData: null\n },\n emits: ['getCoordinates'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n authUser: IAuthUserProfile\n workoutData: IWorkoutData\n };\n\n \n\n \n\n const { t } = useI18n()\n\n const displayDistance = ref(true)\n const beginElevationAtZero = ref(true)\n const datasets: ComputedRef = computed(() =>\n getDatasets(props.workoutData.chartData, t, props.authUser.imperial_units)\n )\n const fromKmUnit = getUnitTo('km')\n const fromMUnit = getUnitTo('m')\n const chartData: ComputedRef> = computed(() => ({\n labels: displayDistance.value\n ? datasets.value.distance_labels\n : datasets.value.duration_labels,\n datasets: JSON.parse(\n JSON.stringify([\n datasets.value.datasets.speed,\n datasets.value.datasets.elevation,\n ])\n ),\n }))\n const coordinates: ComputedRef = computed(\n () => datasets.value.coordinates\n )\n const options = computed>(() => ({\n responsive: true,\n maintainAspectRatio: true,\n animation: false,\n layout: {\n padding: {\n top: 22,\n },\n },\n scales: {\n x: {\n grid: {\n drawOnChartArea: false,\n },\n ticks: {\n count: 10,\n callback: function (value) {\n return displayDistance.value\n ? Number(value).toFixed(2)\n : formatDuration(value)\n },\n },\n type: 'linear',\n bounds: 'data',\n title: {\n display: true,\n text: displayDistance.value\n ? t('workouts.DISTANCE') + ` (${fromKmUnit})`\n : t('workouts.DURATION'),\n },\n },\n ySpeed: {\n grid: {\n drawOnChartArea: false,\n },\n position: 'left',\n title: {\n display: true,\n text: t('workouts.SPEED') + ` (${fromKmUnit}/h)`,\n },\n },\n yElevation: {\n beginAtZero: beginElevationAtZero.value,\n grid: {\n drawOnChartArea: false,\n },\n position: 'right',\n title: {\n display: true,\n text: t('workouts.ELEVATION') + ` (${fromMUnit})`,\n },\n },\n },\n elements: {\n point: {\n pointStyle: 'circle',\n pointRadius: 0,\n },\n },\n plugins: {\n datalabels: {\n display: false,\n },\n tooltip: {\n interaction: {\n intersect: false,\n mode: 'index',\n },\n callbacks: {\n label: function (context) {\n const label = ` ${context.dataset.label}: ${context.formattedValue}`\n return context.dataset.yAxisID === 'yElevation'\n ? label + ` ${fromMUnit}`\n : label + ` ${fromKmUnit}/h`\n },\n title: function (tooltipItems) {\n if (tooltipItems.length > 0) {\n emitCoordinates(coordinates.value[tooltipItems[0].dataIndex])\n }\n return tooltipItems.length === 0\n ? ''\n : displayDistance.value\n ? `${t('workouts.DISTANCE')}: ${\n tooltipItems[0].label\n } ${fromKmUnit}`\n : `${t('workouts.DURATION')}: ${formatDuration(\n tooltipItems[0].label.replace(',', '')\n )}`\n },\n },\n },\n legend: {\n display: false,\n },\n htmlLegend: {\n containerID: 'chart-legend',\n },\n },\n }))\n const { lineChartProps } = useLineChart({\n chartData,\n options,\n plugins: [htmlLegendPlugin],\n })\n\n function updateDisplayDistance() {\n displayDistance.value = !displayDistance.value\n }\n function formatDuration(duration: string | number): string {\n return new Date(+duration * 1000).toISOString().substr(11, 8)\n }\n function emitCoordinates(coordinates: TCoordinates) {\n emit('getCoordinates', coordinates)\n }\n function emitEmptyCoordinates() {\n emitCoordinates({ latitude: null, longitude: null })\n }\n function getUnitTo(unitFrom: TUnit): TUnit {\n return props.authUser.imperial_units\n ? units[unitFrom].defaultTarget\n : unitFrom\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.ANALYSIS')), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"distance\",\n checked: displayDistance.value,\n onClick: updateDisplayDistance\n }, null, 8, _hoisted_3),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DISTANCE')), 1)\n ]),\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"duration\",\n checked: !displayDistance.value,\n onClick: updateDisplayDistance\n }, null, 8, _hoisted_4),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DURATION')), 1)\n ])\n ]),\n _hoisted_5,\n _createVNode(_unref(LineChart), _mergeProps(_unref(lineChartProps), {\n class: \"line-chart\",\n onMouseleave: emitEmptyCoordinates\n }), null, 16),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", _hoisted_7, _toDisplayString(_ctx.$t('workouts.NO_DATA_CLEANING')), 1),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n checked: beginElevationAtZero.value,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (beginElevationAtZero.value = !beginElevationAtZero.value))\n }, null, 8, _hoisted_9),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.START_ELEVATION_AT_ZERO')), 1)\n ])\n ])\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=0b68c436&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-0b68c436\"]])\n\nexport default __exports__","// THIS FILE IS AUTOMATICALLY GENERATED DO NOT EDIT DIRECTLY\n// https://data.iana.org/TLD/tlds-alpha-by-domain.txt\nvar tlds = 'aaa \\\naarp \\\nabarth \\\nabb \\\nabbott \\\nabbvie \\\nabc \\\nable \\\nabogado \\\nabudhabi \\\nac \\\nacademy \\\naccenture \\\naccountant \\\naccountants \\\naco \\\nactor \\\nad \\\nadac \\\nads \\\nadult \\\nae \\\naeg \\\naero \\\naetna \\\naf \\\nafl \\\nafrica \\\nag \\\nagakhan \\\nagency \\\nai \\\naig \\\nairbus \\\nairforce \\\nairtel \\\nakdn \\\nal \\\nalfaromeo \\\nalibaba \\\nalipay \\\nallfinanz \\\nallstate \\\nally \\\nalsace \\\nalstom \\\nam \\\namazon \\\namericanexpress \\\namericanfamily \\\namex \\\namfam \\\namica \\\namsterdam \\\nanalytics \\\nandroid \\\nanquan \\\nanz \\\nao \\\naol \\\napartments \\\napp \\\napple \\\naq \\\naquarelle \\\nar \\\narab \\\naramco \\\narchi \\\narmy \\\narpa \\\nart \\\narte \\\nas \\\nasda \\\nasia \\\nassociates \\\nat \\\nathleta \\\nattorney \\\nau \\\nauction \\\naudi \\\naudible \\\naudio \\\nauspost \\\nauthor \\\nauto \\\nautos \\\navianca \\\naw \\\naws \\\nax \\\naxa \\\naz \\\nazure \\\nba \\\nbaby \\\nbaidu \\\nbanamex \\\nbananarepublic \\\nband \\\nbank \\\nbar \\\nbarcelona \\\nbarclaycard \\\nbarclays \\\nbarefoot \\\nbargains \\\nbaseball \\\nbasketball \\\nbauhaus \\\nbayern \\\nbb \\\nbbc \\\nbbt \\\nbbva \\\nbcg \\\nbcn \\\nbd \\\nbe \\\nbeats \\\nbeauty \\\nbeer \\\nbentley \\\nberlin \\\nbest \\\nbestbuy \\\nbet \\\nbf \\\nbg \\\nbh \\\nbharti \\\nbi \\\nbible \\\nbid \\\nbike \\\nbing \\\nbingo \\\nbio \\\nbiz \\\nbj \\\nblack \\\nblackfriday \\\nblockbuster \\\nblog \\\nbloomberg \\\nblue \\\nbm \\\nbms \\\nbmw \\\nbn \\\nbnpparibas \\\nbo \\\nboats \\\nboehringer \\\nbofa \\\nbom \\\nbond \\\nboo \\\nbook \\\nbooking \\\nbosch \\\nbostik \\\nboston \\\nbot \\\nboutique \\\nbox \\\nbr \\\nbradesco \\\nbridgestone \\\nbroadway \\\nbroker \\\nbrother \\\nbrussels \\\nbs \\\nbt \\\nbugatti \\\nbuild \\\nbuilders \\\nbusiness \\\nbuy \\\nbuzz \\\nbv \\\nbw \\\nby \\\nbz \\\nbzh \\\nca \\\ncab \\\ncafe \\\ncal \\\ncall \\\ncalvinklein \\\ncam \\\ncamera \\\ncamp \\\ncancerresearch \\\ncanon \\\ncapetown \\\ncapital \\\ncapitalone \\\ncar \\\ncaravan \\\ncards \\\ncare \\\ncareer \\\ncareers \\\ncars \\\ncasa \\\ncase \\\ncash \\\ncasino \\\ncat \\\ncatering \\\ncatholic \\\ncba \\\ncbn \\\ncbre \\\ncbs \\\ncc \\\ncd \\\ncenter \\\nceo \\\ncern \\\ncf \\\ncfa \\\ncfd \\\ncg \\\nch \\\nchanel \\\nchannel \\\ncharity \\\nchase \\\nchat \\\ncheap \\\nchintai \\\nchristmas \\\nchrome \\\nchurch \\\nci \\\ncipriani \\\ncircle \\\ncisco \\\ncitadel \\\nciti \\\ncitic \\\ncity \\\ncityeats \\\nck \\\ncl \\\nclaims \\\ncleaning \\\nclick \\\nclinic \\\nclinique \\\nclothing \\\ncloud \\\nclub \\\nclubmed \\\ncm \\\ncn \\\nco \\\ncoach \\\ncodes \\\ncoffee \\\ncollege \\\ncologne \\\ncom \\\ncomcast \\\ncommbank \\\ncommunity \\\ncompany \\\ncompare \\\ncomputer \\\ncomsec \\\ncondos \\\nconstruction \\\nconsulting \\\ncontact \\\ncontractors \\\ncooking \\\ncookingchannel \\\ncool \\\ncoop \\\ncorsica \\\ncountry \\\ncoupon \\\ncoupons \\\ncourses \\\ncpa \\\ncr \\\ncredit \\\ncreditcard \\\ncreditunion \\\ncricket \\\ncrown \\\ncrs \\\ncruise \\\ncruises \\\ncu \\\ncuisinella \\\ncv \\\ncw \\\ncx \\\ncy \\\ncymru \\\ncyou \\\ncz \\\ndabur \\\ndad \\\ndance \\\ndata \\\ndate \\\ndating \\\ndatsun \\\nday \\\ndclk \\\ndds \\\nde \\\ndeal \\\ndealer \\\ndeals \\\ndegree \\\ndelivery \\\ndell \\\ndeloitte \\\ndelta \\\ndemocrat \\\ndental \\\ndentist \\\ndesi \\\ndesign \\\ndev \\\ndhl \\\ndiamonds \\\ndiet \\\ndigital \\\ndirect \\\ndirectory \\\ndiscount \\\ndiscover \\\ndish \\\ndiy \\\ndj \\\ndk \\\ndm \\\ndnp \\\ndo \\\ndocs \\\ndoctor \\\ndog \\\ndomains \\\ndot \\\ndownload \\\ndrive \\\ndtv \\\ndubai \\\ndunlop \\\ndupont \\\ndurban \\\ndvag \\\ndvr \\\ndz \\\nearth \\\neat \\\nec \\\neco \\\nedeka \\\nedu \\\neducation \\\nee \\\neg \\\nemail \\\nemerck \\\nenergy \\\nengineer \\\nengineering \\\nenterprises \\\nepson \\\nequipment \\\ner \\\nericsson \\\nerni \\\nes \\\nesq \\\nestate \\\net \\\netisalat \\\neu \\\neurovision \\\neus \\\nevents \\\nexchange \\\nexpert \\\nexposed \\\nexpress \\\nextraspace \\\nfage \\\nfail \\\nfairwinds \\\nfaith \\\nfamily \\\nfan \\\nfans \\\nfarm \\\nfarmers \\\nfashion \\\nfast \\\nfedex \\\nfeedback \\\nferrari \\\nferrero \\\nfi \\\nfiat \\\nfidelity \\\nfido \\\nfilm \\\nfinal \\\nfinance \\\nfinancial \\\nfire \\\nfirestone \\\nfirmdale \\\nfish \\\nfishing \\\nfit \\\nfitness \\\nfj \\\nfk \\\nflickr \\\nflights \\\nflir \\\nflorist \\\nflowers \\\nfly \\\nfm \\\nfo \\\nfoo \\\nfood \\\nfoodnetwork \\\nfootball \\\nford \\\nforex \\\nforsale \\\nforum \\\nfoundation \\\nfox \\\nfr \\\nfree \\\nfresenius \\\nfrl \\\nfrogans \\\nfrontdoor \\\nfrontier \\\nftr \\\nfujitsu \\\nfun \\\nfund \\\nfurniture \\\nfutbol \\\nfyi \\\nga \\\ngal \\\ngallery \\\ngallo \\\ngallup \\\ngame \\\ngames \\\ngap \\\ngarden \\\ngay \\\ngb \\\ngbiz \\\ngd \\\ngdn \\\nge \\\ngea \\\ngent \\\ngenting \\\ngeorge \\\ngf \\\ngg \\\nggee \\\ngh \\\ngi \\\ngift \\\ngifts \\\ngives \\\ngiving \\\ngl \\\nglass \\\ngle \\\nglobal \\\nglobo \\\ngm \\\ngmail \\\ngmbh \\\ngmo \\\ngmx \\\ngn \\\ngodaddy \\\ngold \\\ngoldpoint \\\ngolf \\\ngoo \\\ngoodyear \\\ngoog \\\ngoogle \\\ngop \\\ngot \\\ngov \\\ngp \\\ngq \\\ngr \\\ngrainger \\\ngraphics \\\ngratis \\\ngreen \\\ngripe \\\ngrocery \\\ngroup \\\ngs \\\ngt \\\ngu \\\nguardian \\\ngucci \\\nguge \\\nguide \\\nguitars \\\nguru \\\ngw \\\ngy \\\nhair \\\nhamburg \\\nhangout \\\nhaus \\\nhbo \\\nhdfc \\\nhdfcbank \\\nhealth \\\nhealthcare \\\nhelp \\\nhelsinki \\\nhere \\\nhermes \\\nhgtv \\\nhiphop \\\nhisamitsu \\\nhitachi \\\nhiv \\\nhk \\\nhkt \\\nhm \\\nhn \\\nhockey \\\nholdings \\\nholiday \\\nhomedepot \\\nhomegoods \\\nhomes \\\nhomesense \\\nhonda \\\nhorse \\\nhospital \\\nhost \\\nhosting \\\nhot \\\nhoteles \\\nhotels \\\nhotmail \\\nhouse \\\nhow \\\nhr \\\nhsbc \\\nht \\\nhu \\\nhughes \\\nhyatt \\\nhyundai \\\nibm \\\nicbc \\\nice \\\nicu \\\nid \\\nie \\\nieee \\\nifm \\\nikano \\\nil \\\nim \\\nimamat \\\nimdb \\\nimmo \\\nimmobilien \\\nin \\\ninc \\\nindustries \\\ninfiniti \\\ninfo \\\ning \\\nink \\\ninstitute \\\ninsurance \\\ninsure \\\nint \\\ninternational \\\nintuit \\\ninvestments \\\nio \\\nipiranga \\\niq \\\nir \\\nirish \\\nis \\\nismaili \\\nist \\\nistanbul \\\nit \\\nitau \\\nitv \\\njaguar \\\njava \\\njcb \\\nje \\\njeep \\\njetzt \\\njewelry \\\njio \\\njll \\\njm \\\njmp \\\njnj \\\njo \\\njobs \\\njoburg \\\njot \\\njoy \\\njp \\\njpmorgan \\\njprs \\\njuegos \\\njuniper \\\nkaufen \\\nkddi \\\nke \\\nkerryhotels \\\nkerrylogistics \\\nkerryproperties \\\nkfh \\\nkg \\\nkh \\\nki \\\nkia \\\nkids \\\nkim \\\nkinder \\\nkindle \\\nkitchen \\\nkiwi \\\nkm \\\nkn \\\nkoeln \\\nkomatsu \\\nkosher \\\nkp \\\nkpmg \\\nkpn \\\nkr \\\nkrd \\\nkred \\\nkuokgroup \\\nkw \\\nky \\\nkyoto \\\nkz \\\nla \\\nlacaixa \\\nlamborghini \\\nlamer \\\nlancaster \\\nlancia \\\nland \\\nlandrover \\\nlanxess \\\nlasalle \\\nlat \\\nlatino \\\nlatrobe \\\nlaw \\\nlawyer \\\nlb \\\nlc \\\nlds \\\nlease \\\nleclerc \\\nlefrak \\\nlegal \\\nlego \\\nlexus \\\nlgbt \\\nli \\\nlidl \\\nlife \\\nlifeinsurance \\\nlifestyle \\\nlighting \\\nlike \\\nlilly \\\nlimited \\\nlimo \\\nlincoln \\\nlinde \\\nlink \\\nlipsy \\\nlive \\\nliving \\\nlk \\\nllc \\\nllp \\\nloan \\\nloans \\\nlocker \\\nlocus \\\nloft \\\nlol \\\nlondon \\\nlotte \\\nlotto \\\nlove \\\nlpl \\\nlplfinancial \\\nlr \\\nls \\\nlt \\\nltd \\\nltda \\\nlu \\\nlundbeck \\\nluxe \\\nluxury \\\nlv \\\nly \\\nma \\\nmacys \\\nmadrid \\\nmaif \\\nmaison \\\nmakeup \\\nman \\\nmanagement \\\nmango \\\nmap \\\nmarket \\\nmarketing \\\nmarkets \\\nmarriott \\\nmarshalls \\\nmaserati \\\nmattel \\\nmba \\\nmc \\\nmckinsey \\\nmd \\\nme \\\nmed \\\nmedia \\\nmeet \\\nmelbourne \\\nmeme \\\nmemorial \\\nmen \\\nmenu \\\nmerckmsd \\\nmg \\\nmh \\\nmiami \\\nmicrosoft \\\nmil \\\nmini \\\nmint \\\nmit \\\nmitsubishi \\\nmk \\\nml \\\nmlb \\\nmls \\\nmm \\\nmma \\\nmn \\\nmo \\\nmobi \\\nmobile \\\nmoda \\\nmoe \\\nmoi \\\nmom \\\nmonash \\\nmoney \\\nmonster \\\nmormon \\\nmortgage \\\nmoscow \\\nmoto \\\nmotorcycles \\\nmov \\\nmovie \\\nmp \\\nmq \\\nmr \\\nms \\\nmsd \\\nmt \\\nmtn \\\nmtr \\\nmu \\\nmuseum \\\nmusic \\\nmutual \\\nmv \\\nmw \\\nmx \\\nmy \\\nmz \\\nna \\\nnab \\\nnagoya \\\nname \\\nnatura \\\nnavy \\\nnba \\\nnc \\\nne \\\nnec \\\nnet \\\nnetbank \\\nnetflix \\\nnetwork \\\nneustar \\\nnew \\\nnews \\\nnext \\\nnextdirect \\\nnexus \\\nnf \\\nnfl \\\nng \\\nngo \\\nnhk \\\nni \\\nnico \\\nnike \\\nnikon \\\nninja \\\nnissan \\\nnissay \\\nnl \\\nno \\\nnokia \\\nnorthwesternmutual \\\nnorton \\\nnow \\\nnowruz \\\nnowtv \\\nnp \\\nnr \\\nnra \\\nnrw \\\nntt \\\nnu \\\nnyc \\\nnz \\\nobi \\\nobserver \\\noffice \\\nokinawa \\\nolayan \\\nolayangroup \\\noldnavy \\\nollo \\\nom \\\nomega \\\none \\\nong \\\nonl \\\nonline \\\nooo \\\nopen \\\noracle \\\norange \\\norg \\\norganic \\\norigins \\\nosaka \\\notsuka \\\nott \\\novh \\\npa \\\npage \\\npanasonic \\\nparis \\\npars \\\npartners \\\nparts \\\nparty \\\npassagens \\\npay \\\npccw \\\npe \\\npet \\\npf \\\npfizer \\\npg \\\nph \\\npharmacy \\\nphd \\\nphilips \\\nphone \\\nphoto \\\nphotography \\\nphotos \\\nphysio \\\npics \\\npictet \\\npictures \\\npid \\\npin \\\nping \\\npink \\\npioneer \\\npizza \\\npk \\\npl \\\nplace \\\nplay \\\nplaystation \\\nplumbing \\\nplus \\\npm \\\npn \\\npnc \\\npohl \\\npoker \\\npolitie \\\nporn \\\npost \\\npr \\\npramerica \\\npraxi \\\npress \\\nprime \\\npro \\\nprod \\\nproductions \\\nprof \\\nprogressive \\\npromo \\\nproperties \\\nproperty \\\nprotection \\\npru \\\nprudential \\\nps \\\npt \\\npub \\\npw \\\npwc \\\npy \\\nqa \\\nqpon \\\nquebec \\\nquest \\\nracing \\\nradio \\\nre \\\nread \\\nrealestate \\\nrealtor \\\nrealty \\\nrecipes \\\nred \\\nredstone \\\nredumbrella \\\nrehab \\\nreise \\\nreisen \\\nreit \\\nreliance \\\nren \\\nrent \\\nrentals \\\nrepair \\\nreport \\\nrepublican \\\nrest \\\nrestaurant \\\nreview \\\nreviews \\\nrexroth \\\nrich \\\nrichardli \\\nricoh \\\nril \\\nrio \\\nrip \\\nro \\\nrocher \\\nrocks \\\nrodeo \\\nrogers \\\nroom \\\nrs \\\nrsvp \\\nru \\\nrugby \\\nruhr \\\nrun \\\nrw \\\nrwe \\\nryukyu \\\nsa \\\nsaarland \\\nsafe \\\nsafety \\\nsakura \\\nsale \\\nsalon \\\nsamsclub \\\nsamsung \\\nsandvik \\\nsandvikcoromant \\\nsanofi \\\nsap \\\nsarl \\\nsas \\\nsave \\\nsaxo \\\nsb \\\nsbi \\\nsbs \\\nsc \\\nsca \\\nscb \\\nschaeffler \\\nschmidt \\\nscholarships \\\nschool \\\nschule \\\nschwarz \\\nscience \\\nscot \\\nsd \\\nse \\\nsearch \\\nseat \\\nsecure \\\nsecurity \\\nseek \\\nselect \\\nsener \\\nservices \\\nses \\\nseven \\\nsew \\\nsex \\\nsexy \\\nsfr \\\nsg \\\nsh \\\nshangrila \\\nsharp \\\nshaw \\\nshell \\\nshia \\\nshiksha \\\nshoes \\\nshop \\\nshopping \\\nshouji \\\nshow \\\nshowtime \\\nsi \\\nsilk \\\nsina \\\nsingles \\\nsite \\\nsj \\\nsk \\\nski \\\nskin \\\nsky \\\nskype \\\nsl \\\nsling \\\nsm \\\nsmart \\\nsmile \\\nsn \\\nsncf \\\nso \\\nsoccer \\\nsocial \\\nsoftbank \\\nsoftware \\\nsohu \\\nsolar \\\nsolutions \\\nsong \\\nsony \\\nsoy \\\nspa \\\nspace \\\nsport \\\nspot \\\nsr \\\nsrl \\\nss \\\nst \\\nstada \\\nstaples \\\nstar \\\nstatebank \\\nstatefarm \\\nstc \\\nstcgroup \\\nstockholm \\\nstorage \\\nstore \\\nstream \\\nstudio \\\nstudy \\\nstyle \\\nsu \\\nsucks \\\nsupplies \\\nsupply \\\nsupport \\\nsurf \\\nsurgery \\\nsuzuki \\\nsv \\\nswatch \\\nswiss \\\nsx \\\nsy \\\nsydney \\\nsystems \\\nsz \\\ntab \\\ntaipei \\\ntalk \\\ntaobao \\\ntarget \\\ntatamotors \\\ntatar \\\ntattoo \\\ntax \\\ntaxi \\\ntc \\\ntci \\\ntd \\\ntdk \\\nteam \\\ntech \\\ntechnology \\\ntel \\\ntemasek \\\ntennis \\\nteva \\\ntf \\\ntg \\\nth \\\nthd \\\ntheater \\\ntheatre \\\ntiaa \\\ntickets \\\ntienda \\\ntiffany \\\ntips \\\ntires \\\ntirol \\\ntj \\\ntjmaxx \\\ntjx \\\ntk \\\ntkmaxx \\\ntl \\\ntm \\\ntmall \\\ntn \\\nto \\\ntoday \\\ntokyo \\\ntools \\\ntop \\\ntoray \\\ntoshiba \\\ntotal \\\ntours \\\ntown \\\ntoyota \\\ntoys \\\ntr \\\ntrade \\\ntrading \\\ntraining \\\ntravel \\\ntravelchannel \\\ntravelers \\\ntravelersinsurance \\\ntrust \\\ntrv \\\ntt \\\ntube \\\ntui \\\ntunes \\\ntushu \\\ntv \\\ntvs \\\ntw \\\ntz \\\nua \\\nubank \\\nubs \\\nug \\\nuk \\\nunicom \\\nuniversity \\\nuno \\\nuol \\\nups \\\nus \\\nuy \\\nuz \\\nva \\\nvacations \\\nvana \\\nvanguard \\\nvc \\\nve \\\nvegas \\\nventures \\\nverisign \\\nvermögensberater \\\nvermögensberatung \\\nversicherung \\\nvet \\\nvg \\\nvi \\\nviajes \\\nvideo \\\nvig \\\nviking \\\nvillas \\\nvin \\\nvip \\\nvirgin \\\nvisa \\\nvision \\\nviva \\\nvivo \\\nvlaanderen \\\nvn \\\nvodka \\\nvolkswagen \\\nvolvo \\\nvote \\\nvoting \\\nvoto \\\nvoyage \\\nvu \\\nvuelos \\\nwales \\\nwalmart \\\nwalter \\\nwang \\\nwanggou \\\nwatch \\\nwatches \\\nweather \\\nweatherchannel \\\nwebcam \\\nweber \\\nwebsite \\\nwed \\\nwedding \\\nweibo \\\nweir \\\nwf \\\nwhoswho \\\nwien \\\nwiki \\\nwilliamhill \\\nwin \\\nwindows \\\nwine \\\nwinners \\\nwme \\\nwolterskluwer \\\nwoodside \\\nwork \\\nworks \\\nworld \\\nwow \\\nws \\\nwtc \\\nwtf \\\nxbox \\\nxerox \\\nxfinity \\\nxihuan \\\nxin \\\nxxx \\\nxyz \\\nyachts \\\nyahoo \\\nyamaxun \\\nyandex \\\nye \\\nyodobashi \\\nyoga \\\nyokohama \\\nyou \\\nyoutube \\\nyt \\\nyun \\\nza \\\nzappos \\\nzara \\\nzero \\\nzip \\\nzm \\\nzone \\\nzuerich \\\nzw'.split(' '); // Internationalized domain names containing non-ASCII\n\nvar utlds = 'ελ \\\nευ \\\nбг \\\nбел \\\nдети \\\nею \\\nкатолик \\\nком \\\nмкд \\\nмон \\\nмосква \\\nонлайн \\\nорг \\\nрус \\\nрф \\\nсайт \\\nсрб \\\nукр \\\nқаз \\\nհայ \\\nישראל \\\nקום \\\nابوظبي \\\nاتصالات \\\nارامكو \\\nالاردن \\\nالبحرين \\\nالجزائر \\\nالسعودية \\\nالعليان \\\nالمغرب \\\nامارات \\\nایران \\\nبارت \\\nبازار \\\nبيتك \\\nبھارت \\\nتونس \\\nسودان \\\nسورية \\\nشبكة \\\nعراق \\\nعرب \\\nعمان \\\nفلسطين \\\nقطر \\\nكاثوليك \\\nكوم \\\nمصر \\\nمليسيا \\\nموريتانيا \\\nموقع \\\nهمراه \\\nپاکستان \\\nڀارت \\\nकॉम \\\nनेट \\\nभारत \\\nभारतम् \\\nभारोत \\\nसंगठन \\\nবাংলা \\\nভারত \\\nভাৰত \\\nਭਾਰਤ \\\nભારત \\\nଭାରତ \\\nஇந்தியா \\\nஇலங்கை \\\nசிங்கப்பூர் \\\nభారత్ \\\nಭಾರತ \\\nഭാരതം \\\nලංකා \\\nคอม \\\nไทย \\\nລາວ \\\nგე \\\nみんな \\\nアマゾン \\\nクラウド \\\nグーグル \\\nコム \\\nストア \\\nセール \\\nファッション \\\nポイント \\\n世界 \\\n中信 \\\n中国 \\\n中國 \\\n中文网 \\\n亚马逊 \\\n企业 \\\n佛山 \\\n信息 \\\n健康 \\\n八卦 \\\n公司 \\\n公益 \\\n台湾 \\\n台灣 \\\n商城 \\\n商店 \\\n商标 \\\n嘉里 \\\n嘉里大酒店 \\\n在线 \\\n大拿 \\\n天主教 \\\n娱乐 \\\n家電 \\\n广东 \\\n微博 \\\n慈善 \\\n我爱你 \\\n手机 \\\n招聘 \\\n政务 \\\n政府 \\\n新加坡 \\\n新闻 \\\n时尚 \\\n書籍 \\\n机构 \\\n淡马锡 \\\n游戏 \\\n澳門 \\\n点看 \\\n移动 \\\n组织机构 \\\n网址 \\\n网店 \\\n网站 \\\n网络 \\\n联通 \\\n诺基亚 \\\n谷歌 \\\n购物 \\\n通販 \\\n集团 \\\n電訊盈科 \\\n飞利浦 \\\n食品 \\\n餐厅 \\\n香格里拉 \\\n香港 \\\n닷넷 \\\n닷컴 \\\n삼성 \\\n한국'.split(' ');\n\n/**\n * @template A\n * @template B\n * @param {A} target\n * @param {B} properties\n * @return {A & B}\n */\nvar assign = function assign(target, properties) {\n for (var key in properties) {\n target[key] = properties[key];\n }\n\n return target;\n};\n\n/**\n * Finite State Machine generation utilities\n */\n/**\n * @template T\n * @typedef {{ [group: string]: T[] }} Collections\n */\n\n/**\n * @typedef {{ [group: string]: true }} Flags\n */\n// Keys in scanner Collections instances\n\nvar numeric = 'numeric';\nvar ascii = 'ascii';\nvar alpha = 'alpha';\nvar asciinumeric = 'asciinumeric';\nvar alphanumeric = 'alphanumeric';\nvar domain = 'domain';\nvar emoji = 'emoji';\nvar scheme = 'scheme';\nvar slashscheme = 'slashscheme';\nvar whitespace = 'whitespace';\n/**\n * @template T\n * @param {string} name\n * @param {Collections} groups to register in\n * @returns {T[]} Current list of tokens in the given collection\n */\n\nfunction registerGroup(name, groups) {\n if (!(name in groups)) {\n groups[name] = [];\n }\n\n return groups[name];\n}\n/**\n * @template T\n * @param {T} t token to add\n * @param {Collections} groups\n * @param {Flags} flags\n */\n\n\nfunction addToGroups(t, flags, groups) {\n if (flags[numeric]) {\n flags[asciinumeric] = true;\n flags[alphanumeric] = true;\n }\n\n if (flags[ascii]) {\n flags[asciinumeric] = true;\n flags[alpha] = true;\n }\n\n if (flags[asciinumeric]) {\n flags[alphanumeric] = true;\n }\n\n if (flags[alpha]) {\n flags[alphanumeric] = true;\n }\n\n if (flags[alphanumeric]) {\n flags[domain] = true;\n }\n\n if (flags[emoji]) {\n flags[domain] = true;\n }\n\n for (var k in flags) {\n var group = registerGroup(k, groups);\n\n if (group.indexOf(t) < 0) {\n group.push(t);\n }\n }\n}\n/**\n * @template T\n * @param {T} t token to check\n * @param {Collections} groups\n * @returns {Flags} group flags that contain this token\n */\n\nfunction flagsForToken(t, groups) {\n var result = {};\n\n for (var c in groups) {\n if (groups[c].indexOf(t) >= 0) {\n result[c] = true;\n }\n }\n\n return result;\n}\n/**\n * @template T\n * @typedef {null | T } Transition\n */\n\n/**\n * Define a basic state machine state. j is the list of character transitions,\n * jr is the list of regex-match transitions, jd is the default state to\n * transition to t is the accepting token type, if any. If this is the terminal\n * state, then it does not emit a token.\n *\n * The template type T represents the type of the token this state accepts. This\n * should be a string (such as of the token exports in `text.js`) or a\n * MultiToken subclass (from `multi.js`)\n *\n * @template T\n * @param {T} [token] Token that this state emits\n */\n\n\nfunction State(token) {\n if (token === void 0) {\n token = null;\n }\n\n // this.n = null; // DEBUG: State name\n\n /** @type {{ [input: string]: State }} j */\n this.j = {}; // IMPLEMENTATION 1\n // this.j = []; // IMPLEMENTATION 2\n\n /** @type {[RegExp, State][]} jr */\n\n this.jr = [];\n /** @type {?State} jd */\n\n this.jd = null;\n /** @type {?T} t */\n\n this.t = token;\n}\n/**\n * Scanner token groups\n * @type Collections\n */\n\nState.groups = {};\nState.prototype = {\n accepts: function accepts() {\n return !!this.t;\n },\n\n /**\n * Follow an existing transition from the given input to the next state.\n * Does not mutate.\n * @param {string} input character or token type to transition on\n * @returns {?State} the next state, if any\n */\n go: function go(input) {\n var state = this;\n var nextState = state.j[input];\n\n if (nextState) {\n return nextState;\n }\n\n for (var i = 0; i < state.jr.length; i++) {\n var regex = state.jr[i][0];\n var _nextState = state.jr[i][1]; // note: might be empty to prevent default jump\n\n if (_nextState && regex.test(input)) {\n return _nextState;\n }\n } // Nowhere left to jump! Return default, if any\n\n\n return state.jd;\n },\n\n /**\n * Whether the state has a transition for the given input. Set the second\n * argument to true to only look for an exact match (and not a default or\n * regular-expression-based transition)\n * @param {string} input\n * @param {boolean} exactOnly\n */\n has: function has(input, exactOnly) {\n if (exactOnly === void 0) {\n exactOnly = false;\n }\n\n return exactOnly ? input in this.j : !!this.go(input);\n },\n\n /**\n * Short for \"transition all\"; create a transition from the array of items\n * in the given list to the same final resulting state.\n * @param {string | string[]} inputs Group of inputs to transition on\n * @param {Transition | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n */\n ta: function ta(inputs, next, flags, groups) {\n for (var i = 0; i < inputs.length; i++) {\n this.tt(inputs[i], next, flags, groups);\n }\n },\n\n /**\n * Short for \"take regexp transition\"; defines a transition for this state\n * when it encounters a token which matches the given regular expression\n * @param {RegExp} regexp Regular expression transition (populate first)\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n * @returns {State} taken after the given input\n */\n tr: function tr(regexp, next, flags, groups) {\n groups = groups || State.groups;\n var nextState;\n\n if (next && next.j) {\n nextState = next;\n } else {\n // Token with maybe token groups\n nextState = new State(next);\n\n if (flags && groups) {\n addToGroups(next, flags, groups);\n }\n }\n\n this.jr.push([regexp, nextState]);\n return nextState;\n },\n\n /**\n * Short for \"take transitions\", will take as many sequential transitions as\n * the length of the given input and returns the\n * resulting final state.\n * @param {string | string[]} input\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n * @returns {State} taken after the given input\n */\n ts: function ts(input, next, flags, groups) {\n var state = this;\n var len = input.length;\n\n if (!len) {\n return state;\n }\n\n for (var i = 0; i < len - 1; i++) {\n state = state.tt(input[i]);\n }\n\n return state.tt(input[len - 1], next, flags, groups);\n },\n\n /**\n * Short for \"take transition\", this is a method for building/working with\n * state machines.\n *\n * If a state already exists for the given input, returns it.\n *\n * If a token is specified, that state will emit that token when reached by\n * the linkify engine.\n *\n * If no state exists, it will be initialized with some default transitions\n * that resemble existing default transitions.\n *\n * If a state is given for the second argument, that state will be\n * transitioned to on the given input regardless of what that input\n * previously did.\n *\n * Specify a token group flags to define groups that this token belongs to.\n * The token will be added to corresponding entires in the given groups\n * object.\n *\n * @param {string} input character, token type to transition on\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of groups\n * @returns {State} taken after the given input\n */\n tt: function tt(input, next, flags, groups) {\n groups = groups || State.groups;\n var state = this; // Check if existing state given, just a basic transition\n\n if (next && next.j) {\n state.j[input] = next;\n return next;\n }\n\n var t = next; // Take the transition with the usual default mechanisms and use that as\n // a template for creating the next state\n\n var nextState,\n templateState = state.go(input);\n\n if (templateState) {\n nextState = new State();\n assign(nextState.j, templateState.j);\n nextState.jr.push.apply(nextState.jr, templateState.jr);\n nextState.jd = templateState.jd;\n nextState.t = templateState.t;\n } else {\n nextState = new State();\n }\n\n if (t) {\n // Ensure newly token is in the same groups as the old token\n if (groups) {\n if (nextState.t && typeof nextState.t === 'string') {\n var allFlags = assign(flagsForToken(nextState.t, groups), flags);\n addToGroups(t, allFlags, groups);\n } else if (flags) {\n addToGroups(t, flags, groups);\n }\n }\n\n nextState.t = t; // overwrite anything that was previously there\n }\n\n state.j[input] = nextState;\n return nextState;\n }\n}; // Helper functions to improve minification (not exported outside linkifyjs module)\n\n/**\n * @template T\n * @param {State} state\n * @param {string | string[]} input\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\n\nvar ta = function ta(state, input, next, flags, groups) {\n return state.ta(input, next, flags, groups);\n};\n/**\n * @template T\n * @param {State} state\n * @param {RegExp} regexp\n * @param {T | State} [next]\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\n\nvar tr = function tr(state, regexp, next, flags, groups) {\n return state.tr(regexp, next, flags, groups);\n};\n/**\n * @template T\n * @param {State} state\n * @param {string | string[]} input\n * @param {T | State} [next]\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\n\nvar ts = function ts(state, input, next, flags, groups) {\n return state.ts(input, next, flags, groups);\n};\n/**\n * @template T\n * @param {State} state\n * @param {string} input\n * @param {T | State} [next]\n * @param {Collections} [groups]\n * @param {Flags} [flags]\n */\n\nvar tt = function tt(state, input, next, flags, groups) {\n return state.tt(input, next, flags, groups);\n};\n\n/******************************************************************************\nText Tokens\nIdentifiers for token outputs from the regexp scanner\n******************************************************************************/\n// A valid web domain token\nvar WORD = 'WORD'; // only contains a-z\n\nvar UWORD = 'UWORD'; // contains letters other than a-z, used for IDN\n// Special case of word\n\nvar LOCALHOST = 'LOCALHOST'; // Valid top-level domain, special case of WORD (see tlds.js)\n\nvar TLD = 'TLD'; // Valid IDN TLD, special case of UWORD (see tlds.js)\n\nvar UTLD = 'UTLD'; // The scheme portion of a web URI protocol. Supported types include: `mailto`,\n// `file`, and user-defined custom protocols. Limited to schemes that contain\n// only letters\n\nvar SCHEME = 'SCHEME'; // Similar to SCHEME, except makes distinction for schemes that must always be\n// followed by `://`, not just `:`. Supported types include `http`, `https`,\n// `ftp`, `ftps`\n\nvar SLASH_SCHEME = 'SLASH_SCHEME'; // Any sequence of digits 0-9\n\nvar NUM = 'NUM'; // Any number of consecutive whitespace characters that are not newline\n\nvar WS = 'WS'; // New line (unix style)\n\nvar NL$1 = 'NL'; // \\n\n// Opening/closing bracket classes\n\nvar OPENBRACE = 'OPENBRACE'; // {\n\nvar OPENBRACKET = 'OPENBRACKET'; // [\n\nvar OPENANGLEBRACKET = 'OPENANGLEBRACKET'; // <\n\nvar OPENPAREN = 'OPENPAREN'; // (\n\nvar CLOSEBRACE = 'CLOSEBRACE'; // }\n\nvar CLOSEBRACKET = 'CLOSEBRACKET'; // ]\n\nvar CLOSEANGLEBRACKET = 'CLOSEANGLEBRACKET'; // >\n\nvar CLOSEPAREN = 'CLOSEPAREN'; // )\n// Various symbols\n\nvar AMPERSAND = 'AMPERSAND'; // &\n\nvar APOSTROPHE = 'APOSTROPHE'; // '\n\nvar ASTERISK = 'ASTERISK'; // *\n\nvar AT = 'AT'; // @\n\nvar BACKSLASH = 'BACKSLASH'; // \\\n\nvar BACKTICK = 'BACKTICK'; // `\n\nvar CARET = 'CARET'; // ^\n\nvar COLON = 'COLON'; // :\n\nvar COMMA = 'COMMA'; // ,\n\nvar DOLLAR = 'DOLLAR'; // $\n\nvar DOT = 'DOT'; // .\n\nvar EQUALS = 'EQUALS'; // =\n\nvar EXCLAMATION = 'EXCLAMATION'; // !\n\nvar HYPHEN = 'HYPHEN'; // -\n\nvar PERCENT = 'PERCENT'; // %\n\nvar PIPE = 'PIPE'; // |\n\nvar PLUS = 'PLUS'; // +\n\nvar POUND = 'POUND'; // #\n\nvar QUERY = 'QUERY'; // ?\n\nvar QUOTE = 'QUOTE'; // \"\n\nvar SEMI = 'SEMI'; // ;\n\nvar SLASH = 'SLASH'; // /\n\nvar TILDE = 'TILDE'; // ~\n\nvar UNDERSCORE = 'UNDERSCORE'; // _\n// Emoji symbol\n\nvar EMOJI$1 = 'EMOJI'; // Default token - anything that is not one of the above\n\nvar SYM = 'SYM';\n\nvar tk = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tWORD: WORD,\n\tUWORD: UWORD,\n\tLOCALHOST: LOCALHOST,\n\tTLD: TLD,\n\tUTLD: UTLD,\n\tSCHEME: SCHEME,\n\tSLASH_SCHEME: SLASH_SCHEME,\n\tNUM: NUM,\n\tWS: WS,\n\tNL: NL$1,\n\tOPENBRACE: OPENBRACE,\n\tOPENBRACKET: OPENBRACKET,\n\tOPENANGLEBRACKET: OPENANGLEBRACKET,\n\tOPENPAREN: OPENPAREN,\n\tCLOSEBRACE: CLOSEBRACE,\n\tCLOSEBRACKET: CLOSEBRACKET,\n\tCLOSEANGLEBRACKET: CLOSEANGLEBRACKET,\n\tCLOSEPAREN: CLOSEPAREN,\n\tAMPERSAND: AMPERSAND,\n\tAPOSTROPHE: APOSTROPHE,\n\tASTERISK: ASTERISK,\n\tAT: AT,\n\tBACKSLASH: BACKSLASH,\n\tBACKTICK: BACKTICK,\n\tCARET: CARET,\n\tCOLON: COLON,\n\tCOMMA: COMMA,\n\tDOLLAR: DOLLAR,\n\tDOT: DOT,\n\tEQUALS: EQUALS,\n\tEXCLAMATION: EXCLAMATION,\n\tHYPHEN: HYPHEN,\n\tPERCENT: PERCENT,\n\tPIPE: PIPE,\n\tPLUS: PLUS,\n\tPOUND: POUND,\n\tQUERY: QUERY,\n\tQUOTE: QUOTE,\n\tSEMI: SEMI,\n\tSLASH: SLASH,\n\tTILDE: TILDE,\n\tUNDERSCORE: UNDERSCORE,\n\tEMOJI: EMOJI$1,\n\tSYM: SYM\n});\n\n// Note that these two Unicode ones expand into a really big one with Babel\nvar ASCII_LETTER = /[a-z]/;\nvar LETTER = /(?:[A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF40\\uDF42-\\uDF49\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF70-\\uDF81\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8\\uDF00-\\uDF1A\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE70-\\uDEBE\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD837[\\uDF00-\\uDF1E]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF38\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])/; // Any Unicode character with letter data type\n\nvar EMOJI = /(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26A7\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5-\\uDED7\\uDEDD-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7C\\uDE80-\\uDE86\\uDE90-\\uDEAC\\uDEB0-\\uDEBA\\uDEC0-\\uDEC5\\uDED0-\\uDED9\\uDEE0-\\uDEE7\\uDEF0-\\uDEF6])/; // Any Unicode emoji character\n\nvar EMOJI_VARIATION$1 = /\\ufe0f/;\nvar DIGIT = /\\d/;\nvar SPACE = /\\s/;\n\nvar regexp = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tASCII_LETTER: ASCII_LETTER,\n\tLETTER: LETTER,\n\tEMOJI: EMOJI,\n\tEMOJI_VARIATION: EMOJI_VARIATION$1,\n\tDIGIT: DIGIT,\n\tSPACE: SPACE\n});\n\n/**\n\tThe scanner provides an interface that takes a string of text as input, and\n\toutputs an array of tokens instances that can be used for easy URL parsing.\n*/\nvar NL = '\\n'; // New line character\n\nvar EMOJI_VARIATION = \"\\uFE0F\"; // Variation selector, follows heart and others\n\nvar EMOJI_JOINER = \"\\u200D\"; // zero-width joiner\n\n/**\n * Scanner output token:\n * - `t` is the token name (e.g., 'NUM', 'EMOJI', 'TLD')\n * - `v` is the value of the token (e.g., '123', '❤️', 'com')\n * - `s` is the start index of the token in the original string\n * - `e` is the end index of the token in the original string\n * @typedef {{t: string, v: string, s: number, e: number}} Token\n */\n\n/**\n * @template T\n * @typedef {{ [collection: string]: T[] }} Collections\n */\n\n/**\n * Initialize the scanner character-based state machine for the given start\n * state\n * @param {[string, boolean][]} customSchemes List of custom schemes, where each\n * item is a length-2 tuple with the first element set to the string scheme, and\n * the second element set to `true` if the `://` after the scheme is optional\n */\n\nfunction init$2(customSchemes) {\n var _tr, _tr2, _tr3, _tr4, _tt, _tr5;\n\n if (customSchemes === void 0) {\n customSchemes = [];\n }\n\n // Frequently used states (name argument removed during minification)\n\n /** @type Collections */\n var groups = {}; // of tokens\n\n State.groups = groups;\n /** @type State */\n\n var Start = new State(); // States for special URL symbols that accept immediately after start\n\n tt(Start, \"'\", APOSTROPHE);\n tt(Start, '{', OPENBRACE);\n tt(Start, '[', OPENBRACKET);\n tt(Start, '<', OPENANGLEBRACKET);\n tt(Start, '(', OPENPAREN);\n tt(Start, '}', CLOSEBRACE);\n tt(Start, ']', CLOSEBRACKET);\n tt(Start, '>', CLOSEANGLEBRACKET);\n tt(Start, ')', CLOSEPAREN);\n tt(Start, '&', AMPERSAND);\n tt(Start, '*', ASTERISK);\n tt(Start, '@', AT);\n tt(Start, '`', BACKTICK);\n tt(Start, '^', CARET);\n tt(Start, ':', COLON);\n tt(Start, ',', COMMA);\n tt(Start, '$', DOLLAR);\n tt(Start, '.', DOT);\n tt(Start, '=', EQUALS);\n tt(Start, '!', EXCLAMATION);\n tt(Start, '-', HYPHEN);\n tt(Start, '%', PERCENT);\n tt(Start, '|', PIPE);\n tt(Start, '+', PLUS);\n tt(Start, '#', POUND);\n tt(Start, '?', QUERY);\n tt(Start, '\"', QUOTE);\n tt(Start, '/', SLASH);\n tt(Start, ';', SEMI);\n tt(Start, '~', TILDE);\n tt(Start, '_', UNDERSCORE);\n tt(Start, '\\\\', BACKSLASH);\n var Num = tr(Start, DIGIT, NUM, (_tr = {}, _tr[numeric] = true, _tr));\n tr(Num, DIGIT, Num); // State which emits a word token\n\n var Word = tr(Start, ASCII_LETTER, WORD, (_tr2 = {}, _tr2[ascii] = true, _tr2));\n tr(Word, ASCII_LETTER, Word); // Same as previous, but specific to non-fsm.ascii alphabet words\n\n var UWord = tr(Start, LETTER, UWORD, (_tr3 = {}, _tr3[alpha] = true, _tr3));\n tr(UWord, ASCII_LETTER); // Non-accepting\n\n tr(UWord, LETTER, UWord); // Whitespace jumps\n // Tokens of only non-newline whitespace are arbitrarily long\n // If any whitespace except newline, more whitespace!\n\n var Ws = tr(Start, SPACE, WS, (_tr4 = {}, _tr4[whitespace] = true, _tr4));\n tt(Start, NL, NL$1, (_tt = {}, _tt[whitespace] = true, _tt));\n tt(Ws, NL); // non-accepting state to avoid mixing whitespaces\n\n tr(Ws, SPACE, Ws); // Emoji tokens. They are not grouped by the scanner except in cases where a\n // zero-width joiner is present\n\n var Emoji = tr(Start, EMOJI, EMOJI$1, (_tr5 = {}, _tr5[emoji] = true, _tr5));\n tr(Emoji, EMOJI, Emoji);\n tt(Emoji, EMOJI_VARIATION, Emoji); // tt(Start, EMOJI_VARIATION, Emoji); // This one is sketchy\n\n var EmojiJoiner = tt(Emoji, EMOJI_JOINER);\n tr(EmojiJoiner, EMOJI, Emoji); // tt(EmojiJoiner, EMOJI_VARIATION, Emoji); // also sketchy\n // Generates states for top-level domains\n // Note that this is most accurate when tlds are in alphabetical order\n\n var wordjr = [[ASCII_LETTER, Word]];\n var uwordjr = [[ASCII_LETTER, null], [LETTER, UWord]];\n\n for (var i = 0; i < tlds.length; i++) {\n fastts(Start, tlds[i], TLD, WORD, wordjr);\n }\n\n for (var _i = 0; _i < utlds.length; _i++) {\n fastts(Start, utlds[_i], UTLD, UWORD, uwordjr);\n }\n\n addToGroups(TLD, {\n tld: true,\n ascii: true\n }, groups);\n addToGroups(UTLD, {\n utld: true,\n alpha: true\n }, groups); // Collect the states generated by different protocols. NOTE: If any new TLDs\n // get added that are also protocols, set the token to be the same as the\n // protocol to ensure parsing works as expected.\n\n fastts(Start, 'file', SCHEME, WORD, wordjr);\n fastts(Start, 'mailto', SCHEME, WORD, wordjr);\n fastts(Start, 'http', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'https', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftp', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftps', SLASH_SCHEME, WORD, wordjr);\n addToGroups(SCHEME, {\n scheme: true,\n ascii: true\n }, groups);\n addToGroups(SLASH_SCHEME, {\n slashscheme: true,\n ascii: true\n }, groups); // Register custom schemes. Assumes each scheme is asciinumeric with hyphens\n\n customSchemes = customSchemes.sort(function (a, b) {\n return a[0] > b[0] ? 1 : -1;\n });\n\n for (var _i2 = 0; _i2 < customSchemes.length; _i2++) {\n var _ref, _ref2;\n\n var sch = customSchemes[_i2][0];\n var optionalSlashSlash = customSchemes[_i2][1];\n var flags = optionalSlashSlash ? (_ref = {}, _ref[scheme] = true, _ref) : (_ref2 = {}, _ref2[slashscheme] = true, _ref2);\n\n if (sch.indexOf('-') >= 0) {\n flags[domain] = true;\n } else if (!ASCII_LETTER.test(sch)) {\n flags[numeric] = true; // numbers only\n } else if (DIGIT.test(sch)) {\n flags[asciinumeric] = true;\n } else {\n flags[ascii] = true;\n }\n\n ts(Start, sch, sch, flags);\n } // Localhost token\n\n\n ts(Start, 'localhost', LOCALHOST, {\n ascii: true\n }); // Set default transition for start state (some symbol)\n\n Start.jd = new State(SYM);\n return {\n start: Start,\n tokens: assign({\n groups: groups\n }, tk)\n };\n}\n/**\n\tGiven a string, returns an array of TOKEN instances representing the\n\tcomposition of that string.\n\n\t@method run\n\t@param {State} start scanner starting state\n\t@param {string} str input string to scan\n\t@return {Token[]} list of tokens, each with a type and value\n*/\n\nfunction run$1(start, str) {\n // State machine is not case sensitive, so input is tokenized in lowercased\n // form (still returns regular case). Uses selective `toLowerCase` because\n // lowercasing the entire string causes the length and character position to\n // vary in some non-English strings with V8-based runtimes.\n var iterable = stringToArray(str.replace(/[A-Z]/g, function (c) {\n return c.toLowerCase();\n }));\n var charCount = iterable.length; // <= len if there are emojis, etc\n\n var tokens = []; // return value\n // cursor through the string itself, accounting for characters that have\n // width with length 2 such as emojis\n\n var cursor = 0; // Cursor through the array-representation of the string\n\n var charCursor = 0; // Tokenize the string\n\n while (charCursor < charCount) {\n var state = start;\n var nextState = null;\n var tokenLength = 0;\n var latestAccepting = null;\n var sinceAccepts = -1;\n var charsSinceAccepts = -1;\n\n while (charCursor < charCount && (nextState = state.go(iterable[charCursor]))) {\n state = nextState; // Keep track of the latest accepting state\n\n if (state.accepts()) {\n sinceAccepts = 0;\n charsSinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts += iterable[charCursor].length;\n charsSinceAccepts++;\n }\n\n tokenLength += iterable[charCursor].length;\n cursor += iterable[charCursor].length;\n charCursor++;\n } // Roll back to the latest accepting state\n\n\n cursor -= sinceAccepts;\n charCursor -= charsSinceAccepts;\n tokenLength -= sinceAccepts; // No more jumps, just make a new token from the last accepting one\n\n tokens.push({\n t: latestAccepting.t,\n // token type/name\n v: str.slice(cursor - tokenLength, cursor),\n // string value\n s: cursor - tokenLength,\n // start index\n e: cursor // end index (excluding)\n\n });\n }\n\n return tokens;\n}\n/**\n * Convert a String to an Array of characters, taking into account that some\n * characters like emojis take up two string indexes.\n *\n * Adapted from core-js (MIT license)\n * https://github.com/zloirock/core-js/blob/2d69cf5f99ab3ea3463c395df81e5a15b68f49d9/packages/core-js/internals/string-multibyte.js\n *\n * @function stringToArray\n * @param {string} str\n * @returns {string[]}\n */\n\nfunction stringToArray(str) {\n var result = [];\n var len = str.length;\n var index = 0;\n\n while (index < len) {\n var first = str.charCodeAt(index);\n var second = void 0;\n var char = first < 0xd800 || first > 0xdbff || index + 1 === len || (second = str.charCodeAt(index + 1)) < 0xdc00 || second > 0xdfff ? str[index] // single character\n : str.slice(index, index + 2); // two-index characters\n\n result.push(char);\n index += char.length;\n }\n\n return result;\n}\n/**\n * Fast version of ts function for when transition defaults are well known\n * @param {State} state\n * @param {string} input\n * @param {string} t\n * @param {string} defaultt\n * @param {[RegExp, State][]} jr\n * @returns {State}\n */\n\nfunction fastts(state, input, t, defaultt, jr) {\n var next;\n var len = input.length;\n\n for (var i = 0; i < len - 1; i++) {\n var char = input[i];\n\n if (state.j[char]) {\n next = state.j[char];\n } else {\n next = new State(defaultt);\n next.jr = jr.slice();\n state.j[char] = next;\n }\n\n state = next;\n }\n\n next = new State(t);\n next.jr = jr.slice();\n state.j[input[len - 1]] = next;\n return next;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\n/**\n * An object where each key is a valid DOM Event Name such as `click` or `focus`\n * and each value is an event handler function.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/Element#events\n * @typedef {?{ [event: string]: Function }} EventListeners\n */\n\n/**\n * All formatted properties required to render a link, including `tagName`,\n * `attributes`, `content` and `eventListeners`.\n * @typedef {{ tagName: any, attributes: {[attr: string]: any}, content: string,\n * eventListeners: EventListeners }} IntermediateRepresentation\n */\n\n/**\n * Specify either an object described by the template type `O` or a function.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `O`\n * @template O\n * @typedef {O | ((value: string, type: string, token: MultiToken) => O)} OptObj\n */\n\n/**\n * Specify either a function described by template type `F` or an object.\n *\n * Each key in the object should be a link type (`'url'`, `'hashtag`', etc.). Each\n * value should be a function with template type `F` that is called when the\n * corresponding link type is encountered.\n * @template F\n * @typedef {F | { [type: string]: F}} OptFn\n */\n\n/**\n * Specify either a value with template type `V`, a function that returns `V` or\n * an object where each value resolves to `V`.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `V`\n *\n * For the object, each key should be a link type (`'url'`, `'hashtag`', etc.).\n * Each value should either have type `V` or a function that returns V. This\n * function similarly takes a string value and a token.\n *\n * Example valid types for `Opt`:\n *\n * ```js\n * 'hello'\n * (value, type, token) => 'world'\n * { url: 'hello', email: (value, token) => 'world'}\n * ```\n * @template V\n * @typedef {V | ((value: string, type: string, token: MultiToken) => V) | { [type: string]: V | ((value: string, token: MultiToken) => V) }} Opt\n */\n\n/**\n * See available options: https://linkify.js.org/docs/options.html\n * @typedef {{\n * \tdefaultProtocol?: string,\n * events?: OptObj,\n * \tformat?: Opt,\n * \tformatHref?: Opt,\n * \tnl2br?: boolean,\n * \ttagName?: Opt,\n * \ttarget?: Opt,\n * \trel?: Opt,\n * \tvalidate?: Opt,\n * \ttruncate?: Opt,\n * \tclassName?: Opt,\n * \tattributes?: OptObj<({ [attr: string]: any })>,\n * ignoreTags?: string[],\n * \trender?: OptFn<((ir: IntermediateRepresentation) => any)>\n * }} Opts\n */\n\n/**\n * @type Required\n */\n\nvar defaults = {\n defaultProtocol: 'http',\n events: null,\n format: noop,\n formatHref: noop,\n nl2br: false,\n tagName: 'a',\n target: null,\n rel: null,\n validate: true,\n truncate: Infinity,\n className: null,\n attributes: null,\n ignoreTags: [],\n render: null\n};\n/**\n * Utility class for linkify interfaces to apply specified\n * {@link Opts formatting and rendering options}.\n *\n * @param {Opts | Options} [opts] Option value overrides.\n * @param {(ir: IntermediateRepresentation) => any} [defaultRender] (For\n * internal use) default render function that determines how to generate an\n * HTML element based on a link token's derived tagName, attributes and HTML.\n * Similar to render option\n */\n\nfunction Options(opts, defaultRender) {\n if (defaultRender === void 0) {\n defaultRender = null;\n }\n\n var o = assign({}, defaults);\n\n if (opts) {\n o = assign(o, opts instanceof Options ? opts.o : opts);\n } // Ensure all ignored tags are uppercase\n\n\n var ignoredTags = o.ignoreTags;\n var uppercaseIgnoredTags = [];\n\n for (var i = 0; i < ignoredTags.length; i++) {\n uppercaseIgnoredTags.push(ignoredTags[i].toUpperCase());\n }\n /** @protected */\n\n\n this.o = o;\n\n if (defaultRender) {\n this.defaultRender = defaultRender;\n }\n\n this.ignoreTags = uppercaseIgnoredTags;\n}\nOptions.prototype = {\n o: defaults,\n\n /**\n * @type string[]\n */\n ignoreTags: [],\n\n /**\n * @param {IntermediateRepresentation} ir\n * @returns {any}\n */\n defaultRender: function defaultRender(ir) {\n return ir;\n },\n\n /**\n * Returns true or false based on whether a token should be displayed as a\n * link based on the user options.\n * @param {MultiToken} token\n * @returns {boolean}\n */\n check: function check(token) {\n return this.get('validate', token.toString(), token);\n },\n // Private methods\n\n /**\n * Resolve an option's value based on the value of the option and the given\n * params. If operator and token are specified and the target option is\n * callable, automatically calls the function with the given argument.\n * @template {keyof Opts} K\n * @param {K} key Name of option to use\n * @param {string} [operator] will be passed to the target option if it's a\n * function. If not specified, RAW function value gets returned\n * @param {MultiToken} [token] The token from linkify.tokenize\n * @returns {Opts[K] | any}\n */\n get: function get(key, operator, token) {\n var isCallable = operator != null;\n var option = this.o[key];\n\n if (!option) {\n return option;\n }\n\n if (typeof option === 'object') {\n option = token.t in option ? option[token.t] : defaults[key];\n\n if (typeof option === 'function' && isCallable) {\n option = option(operator, token);\n }\n } else if (typeof option === 'function' && isCallable) {\n option = option(operator, token.t, token);\n }\n\n return option;\n },\n\n /**\n * @template {keyof Opts} L\n * @param {L} key Name of options object to use\n * @param {string} [operator]\n * @param {MultiToken} [token]\n * @returns {Opts[L] | any}\n */\n getObj: function getObj(key, operator, token) {\n var obj = this.o[key];\n\n if (typeof obj === 'function' && operator != null) {\n obj = obj(operator, token.t, token);\n }\n\n return obj;\n },\n\n /**\n * Convert the given token to a rendered element that may be added to the\n * calling-interface's DOM\n * @param {MultiToken} token Token to render to an HTML element\n * @returns {any} Render result; e.g., HTML string, DOM element, React\n * Component, etc.\n */\n render: function render(token) {\n var ir = token.render(this); // intermediate representation\n\n var renderFn = this.get('render', null, token) || this.defaultRender;\n return renderFn(ir, token.t, token);\n }\n};\n\nfunction noop(val) {\n return val;\n}\n\nvar options = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tdefaults: defaults,\n\tOptions: Options,\n\tassign: assign\n});\n\n/******************************************************************************\n\tMulti-Tokens\n\tTokens composed of arrays of TextTokens\n******************************************************************************/\n\n/**\n * @param {string} value\n * @param {Token[]} tokens\n */\n\nfunction MultiToken(value, tokens) {\n this.t = 'token';\n this.v = value;\n this.tk = tokens;\n}\n/**\n * Abstract class used for manufacturing tokens of text tokens. That is rather\n * than the value for a token being a small string of text, it's value an array\n * of text tokens.\n *\n * Used for grouping together URLs, emails, hashtags, and other potential\n * creations.\n * @class MultiToken\n * @property {string} t\n * @property {string} v\n * @property {Token[]} tk\n * @abstract\n */\n\nMultiToken.prototype = {\n isLink: false,\n\n /**\n * Return the string this token represents.\n * @return {string}\n */\n toString: function toString() {\n return this.v;\n },\n\n /**\n * What should the value for this token be in the `href` HTML attribute?\n * Returns the `.toString` value by default.\n * @param {string} [scheme]\n * @return {string}\n */\n toHref: function toHref(scheme) {\n return this.toString();\n },\n\n /**\n * @param {Options} options Formatting options\n * @returns {string}\n */\n toFormattedString: function toFormattedString(options) {\n var val = this.toString();\n var truncate = options.get('truncate', val, this);\n var formatted = options.get('format', val, this);\n return truncate && formatted.length > truncate ? formatted.substring(0, truncate) + '…' : formatted;\n },\n\n /**\n *\n * @param {Options} options\n * @returns {string}\n */\n toFormattedHref: function toFormattedHref(options) {\n return options.get('formatHref', this.toHref(options.get('defaultProtocol')), this);\n },\n\n /**\n * The start index of this token in the original input string\n * @returns {number}\n */\n startIndex: function startIndex() {\n return this.tk[0].s;\n },\n\n /**\n * The end index of this token in the original input string (up to this\n * index but not including it)\n * @returns {number}\n */\n endIndex: function endIndex() {\n return this.tk[this.tk.length - 1].e;\n },\n\n /**\n \tReturns an object of relevant values for this token, which includes keys\n \t* type - Kind of token ('url', 'email', etc.)\n \t* value - Original text\n \t* href - The value that should be added to the anchor tag's href\n \t\tattribute\n \t\t@method toObject\n \t@param {string} [protocol] `'http'` by default\n */\n toObject: function toObject(protocol) {\n if (protocol === void 0) {\n protocol = defaults.defaultProtocol;\n }\n\n return {\n type: this.t,\n value: this.toString(),\n isLink: this.isLink,\n href: this.toHref(protocol),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n\n /**\n *\n * @param {Options} options Formatting option\n */\n toFormattedObject: function toFormattedObject(options) {\n return {\n type: this.t,\n value: this.toFormattedString(options),\n isLink: this.isLink,\n href: this.toFormattedHref(options),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n\n /**\n * Whether this token should be rendered as a link according to the given options\n * @param {Options} options\n * @returns {boolean}\n */\n validate: function validate(options) {\n return options.get('validate', this.toString(), this);\n },\n\n /**\n * Return an object that represents how this link should be rendered.\n * @param {Options} options Formattinng options\n */\n render: function render(options) {\n var token = this;\n var href = this.toFormattedHref(options);\n var tagName = options.get('tagName', href, token);\n var content = this.toFormattedString(options);\n var attributes = {};\n var className = options.get('className', href, token);\n var target = options.get('target', href, token);\n var rel = options.get('rel', href, token);\n var attrs = options.getObj('attributes', href, token);\n var eventListeners = options.getObj('events', href, token);\n attributes.href = href;\n\n if (className) {\n attributes.class = className;\n }\n\n if (target) {\n attributes.target = target;\n }\n\n if (rel) {\n attributes.rel = rel;\n }\n\n if (attrs) {\n assign(attributes, attrs);\n }\n\n return {\n tagName: tagName,\n attributes: attributes,\n content: content,\n eventListeners: eventListeners\n };\n }\n}; // Base token\n/**\n * Create a new token that can be emitted by the parser state machine\n * @param {string} type readable type of the token\n * @param {object} props properties to assign or override, including isLink = true or false\n * @returns {new (value: string, tokens: Token[]) => MultiToken} new token class\n */\n\nfunction createTokenClass(type, props) {\n var Token = /*#__PURE__*/function (_MultiToken) {\n _inheritsLoose(Token, _MultiToken);\n\n function Token(value, tokens) {\n var _this;\n\n _this = _MultiToken.call(this, value, tokens) || this;\n _this.t = type;\n return _this;\n }\n\n return Token;\n }(MultiToken);\n\n for (var p in props) {\n Token.prototype[p] = props[p];\n }\n\n Token.t = type;\n return Token;\n}\n/**\n\tRepresents a list of tokens making up a valid email address\n*/\n\nvar Email = createTokenClass('email', {\n isLink: true,\n toHref: function toHref() {\n return 'mailto:' + this.toString();\n }\n});\n/**\n\tRepresents some plain text\n*/\n\nvar Text = createTokenClass('text');\n/**\n\tMulti-linebreak token - represents a line break\n\t@class Nl\n*/\n\nvar Nl = createTokenClass('nl');\n/**\n\tRepresents a list of text tokens making up a valid URL\n\t@class Url\n*/\n\nvar Url = createTokenClass('url', {\n isLink: true,\n\n /**\n \tLowercases relevant parts of the domain and adds the protocol if\n \trequired. Note that this will not escape unsafe HTML characters in the\n \tURL.\n \t\t@param {string} [scheme] default scheme (e.g., 'https')\n \t@return {string} the full href\n */\n toHref: function toHref(scheme) {\n if (scheme === void 0) {\n scheme = defaults.defaultProtocol;\n }\n\n // Check if already has a prefix scheme\n return this.hasProtocol() ? this.v : scheme + \"://\" + this.v;\n },\n\n /**\n * Check whether this URL token has a protocol\n * @return {boolean}\n */\n hasProtocol: function hasProtocol() {\n var tokens = this.tk;\n return tokens.length >= 2 && tokens[0].t !== LOCALHOST && tokens[1].t === COLON;\n }\n});\n\nvar multi = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tMultiToken: MultiToken,\n\tBase: MultiToken,\n\tcreateTokenClass: createTokenClass,\n\tEmail: Email,\n\tText: Text,\n\tNl: Nl,\n\tUrl: Url\n});\n\n/**\n\tNot exactly parser, more like the second-stage scanner (although we can\n\ttheoretically hotswap the code here with a real parser in the future... but\n\tfor a little URL-finding utility abstract syntax trees may be a little\n\toverkill).\n\n\tURL format: http://en.wikipedia.org/wiki/URI_scheme\n\tEmail format: http://en.wikipedia.org/wiki/EmailAddress (links to RFC in\n\treference)\n\n\t@module linkify\n\t@submodule parser\n\t@main run\n*/\n\nvar makeState = function makeState(arg) {\n return new State(arg);\n};\n/**\n * Generate the parser multi token-based state machine\n * @param {{ groups: Collections }} tokens\n */\n\n\nfunction init$1(_ref) {\n var groups = _ref.groups;\n // Types of characters the URL can definitely end in\n var qsAccepting = groups.domain.concat([AMPERSAND, ASTERISK, AT, BACKSLASH, BACKTICK, CARET, DOLLAR, EQUALS, HYPHEN, NUM, PERCENT, PIPE, PLUS, POUND, SLASH, SYM, TILDE, UNDERSCORE]); // Types of tokens that can follow a URL and be part of the query string\n // but cannot be the very last characters\n // Characters that cannot appear in the URL at all should be excluded\n\n var qsNonAccepting = [APOSTROPHE, CLOSEANGLEBRACKET, CLOSEBRACE, CLOSEBRACKET, CLOSEPAREN, COLON, COMMA, DOT, EXCLAMATION, OPENANGLEBRACKET, OPENBRACE, OPENBRACKET, OPENPAREN, QUERY, QUOTE, SEMI]; // For addresses without the mailto prefix\n // Tokens allowed in the localpart of the email\n\n var localpartAccepting = [AMPERSAND, APOSTROPHE, ASTERISK, BACKSLASH, BACKTICK, CARET, CLOSEBRACE, DOLLAR, EQUALS, HYPHEN, NUM, OPENBRACE, PERCENT, PIPE, PLUS, POUND, QUERY, SLASH, SYM, TILDE, UNDERSCORE]; // The universal starting state.\n\n /**\n * @type State\n */\n\n var Start = makeState();\n var Localpart = tt(Start, TILDE); // Local part of the email address\n\n ta(Localpart, localpartAccepting, Localpart);\n ta(Localpart, groups.domain, Localpart);\n var Domain = makeState(),\n Scheme = makeState(),\n SlashScheme = makeState();\n ta(Start, groups.domain, Domain); // parsed string ends with a potential domain name (A)\n\n ta(Start, groups.scheme, Scheme); // e.g., 'mailto'\n\n ta(Start, groups.slashscheme, SlashScheme); // e.g., 'http'\n\n ta(Domain, localpartAccepting, Localpart);\n ta(Domain, groups.domain, Domain);\n var LocalpartAt = tt(Domain, AT); // Local part of the email address plus @\n\n tt(Localpart, AT, LocalpartAt); // close to an email address now\n\n var LocalpartDot = tt(Localpart, DOT); // Local part of the email address plus '.' (localpart cannot end in .)\n\n ta(LocalpartDot, localpartAccepting, Localpart);\n ta(LocalpartDot, groups.domain, Localpart);\n var EmailDomain = makeState();\n ta(LocalpartAt, groups.domain, EmailDomain); // parsed string starts with local email info + @ with a potential domain name\n\n ta(EmailDomain, groups.domain, EmailDomain);\n var EmailDomainDot = tt(EmailDomain, DOT); // domain followed by DOT\n\n ta(EmailDomainDot, groups.domain, EmailDomain);\n var Email$1 = makeState(Email); // Possible email address (could have more tlds)\n\n ta(EmailDomainDot, groups.tld, Email$1);\n ta(EmailDomainDot, groups.utld, Email$1);\n tt(LocalpartAt, LOCALHOST, Email$1); // Hyphen can jump back to a domain name\n\n var EmailDomainHyphen = tt(EmailDomain, HYPHEN); // parsed string starts with local email info + @ with a potential domain name\n\n ta(EmailDomainHyphen, groups.domain, EmailDomain);\n ta(Email$1, groups.domain, EmailDomain);\n tt(Email$1, DOT, EmailDomainDot);\n tt(Email$1, HYPHEN, EmailDomainHyphen); // Final possible email states\n\n var EmailColon = tt(Email$1, COLON); // URL followed by colon (potential port number here)\n\n /*const EmailColonPort = */\n\n ta(EmailColon, groups.numeric, Email); // URL followed by colon and port numner\n // Account for dots and hyphens. Hyphens are usually parts of domain names\n // (but not TLDs)\n\n var DomainHyphen = tt(Domain, HYPHEN); // domain followed by hyphen\n\n var DomainDot = tt(Domain, DOT); // domain followed by DOT\n\n ta(DomainHyphen, groups.domain, Domain);\n ta(DomainDot, localpartAccepting, Localpart);\n ta(DomainDot, groups.domain, Domain);\n var DomainDotTld = makeState(Url); // Simplest possible URL with no query string\n\n ta(DomainDot, groups.tld, DomainDotTld);\n ta(DomainDot, groups.utld, DomainDotTld);\n ta(DomainDotTld, groups.domain, Domain);\n ta(DomainDotTld, localpartAccepting, Localpart);\n tt(DomainDotTld, DOT, DomainDot);\n tt(DomainDotTld, HYPHEN, DomainHyphen);\n tt(DomainDotTld, AT, LocalpartAt);\n var DomainDotTldColon = tt(DomainDotTld, COLON); // URL followed by colon (potential port number here)\n\n var DomainDotTldColonPort = makeState(Url); // TLD followed by a port number\n\n ta(DomainDotTldColon, groups.numeric, DomainDotTldColonPort); // Long URL with optional port and maybe query string\n\n var Url$1 = makeState(Url); // URL with extra symbols at the end, followed by an opening bracket\n\n var UrlNonaccept = makeState(); // URL followed by some symbols (will not be part of the final URL)\n // Query strings\n\n ta(Url$1, qsAccepting, Url$1);\n ta(Url$1, qsNonAccepting, UrlNonaccept);\n ta(UrlNonaccept, qsAccepting, Url$1);\n ta(UrlNonaccept, qsNonAccepting, UrlNonaccept); // Become real URLs after `SLASH` or `COLON NUM SLASH`\n // Here works with or without scheme:// prefix\n\n tt(DomainDotTld, SLASH, Url$1);\n tt(DomainDotTldColonPort, SLASH, Url$1); // Note that domains that begin with schemes are treated slighly differently\n\n var UriPrefix = tt(Scheme, COLON); // e.g., 'mailto:' or 'http://'\n\n var SlashSchemeColon = tt(SlashScheme, COLON); // e.g., 'http:'\n\n var SlashSchemeColonSlash = tt(SlashSchemeColon, SLASH); // e.g., 'http:/'\n\n tt(SlashSchemeColonSlash, SLASH, UriPrefix); // Scheme states can transition to domain states\n\n ta(Scheme, groups.domain, Domain);\n tt(Scheme, DOT, DomainDot);\n tt(Scheme, HYPHEN, DomainHyphen);\n ta(SlashScheme, groups.domain, Domain);\n tt(SlashScheme, DOT, DomainDot);\n tt(SlashScheme, HYPHEN, DomainHyphen); // Force URL with scheme prefix followed by anything sane\n\n ta(UriPrefix, groups.domain, Url$1);\n tt(UriPrefix, SLASH, Url$1); // URL, followed by an opening bracket\n\n var UrlOpenbrace = tt(Url$1, OPENBRACE); // URL followed by {\n\n var UrlOpenbracket = tt(Url$1, OPENBRACKET); // URL followed by [\n\n var UrlOpenanglebracket = tt(Url$1, OPENANGLEBRACKET); // URL followed by <\n\n var UrlOpenparen = tt(Url$1, OPENPAREN); // URL followed by (\n\n tt(UrlNonaccept, OPENBRACE, UrlOpenbrace);\n tt(UrlNonaccept, OPENBRACKET, UrlOpenbracket);\n tt(UrlNonaccept, OPENANGLEBRACKET, UrlOpenanglebracket);\n tt(UrlNonaccept, OPENPAREN, UrlOpenparen); // Closing bracket component. This character WILL be included in the URL\n\n tt(UrlOpenbrace, CLOSEBRACE, Url$1);\n tt(UrlOpenbracket, CLOSEBRACKET, Url$1);\n tt(UrlOpenanglebracket, CLOSEANGLEBRACKET, Url$1);\n tt(UrlOpenparen, CLOSEPAREN, Url$1);\n tt(UrlOpenbrace, CLOSEBRACE, Url$1); // URL that beings with an opening bracket, followed by a symbols.\n // Note that the final state can still be `UrlOpenbrace` (if the URL only\n // has a single opening bracket for some reason).\n\n var UrlOpenbraceQ = makeState(Url); // URL followed by { and some symbols that the URL can end it\n\n var UrlOpenbracketQ = makeState(Url); // URL followed by [ and some symbols that the URL can end it\n\n var UrlOpenanglebracketQ = makeState(Url); // URL followed by < and some symbols that the URL can end it\n\n var UrlOpenparenQ = makeState(Url); // URL followed by ( and some symbols that the URL can end it\n\n ta(UrlOpenbrace, qsAccepting, UrlOpenbraceQ);\n ta(UrlOpenbracket, qsAccepting, UrlOpenbracketQ);\n ta(UrlOpenanglebracket, qsAccepting, UrlOpenanglebracketQ);\n ta(UrlOpenparen, qsAccepting, UrlOpenparenQ);\n var UrlOpenbraceSyms = makeState(); // UrlOpenbrace followed by some symbols it cannot end it\n\n var UrlOpenbracketSyms = makeState(); // UrlOpenbracketQ followed by some symbols it cannot end it\n\n var UrlOpenanglebracketSyms = makeState(); // UrlOpenanglebracketQ followed by some symbols it cannot end it\n\n var UrlOpenparenSyms = makeState(); // UrlOpenparenQ followed by some symbols it cannot end it\n\n ta(UrlOpenbrace, qsNonAccepting);\n ta(UrlOpenbracket, qsNonAccepting);\n ta(UrlOpenanglebracket, qsNonAccepting);\n ta(UrlOpenparen, qsNonAccepting); // URL that begins with an opening bracket, followed by some symbols\n\n ta(UrlOpenbraceQ, qsAccepting, UrlOpenbraceQ);\n ta(UrlOpenbracketQ, qsAccepting, UrlOpenbracketQ);\n ta(UrlOpenanglebracketQ, qsAccepting, UrlOpenanglebracketQ);\n ta(UrlOpenparenQ, qsAccepting, UrlOpenparenQ);\n ta(UrlOpenbraceQ, qsNonAccepting, UrlOpenbraceQ);\n ta(UrlOpenbracketQ, qsNonAccepting, UrlOpenbracketQ);\n ta(UrlOpenanglebracketQ, qsNonAccepting, UrlOpenanglebracketQ);\n ta(UrlOpenparenQ, qsNonAccepting, UrlOpenparenQ);\n ta(UrlOpenbraceSyms, qsAccepting, UrlOpenbraceSyms);\n ta(UrlOpenbracketSyms, qsAccepting, UrlOpenbracketQ);\n ta(UrlOpenanglebracketSyms, qsAccepting, UrlOpenanglebracketQ);\n ta(UrlOpenparenSyms, qsAccepting, UrlOpenparenQ);\n ta(UrlOpenbraceSyms, qsNonAccepting, UrlOpenbraceSyms);\n ta(UrlOpenbracketSyms, qsNonAccepting, UrlOpenbracketSyms);\n ta(UrlOpenanglebracketSyms, qsNonAccepting, UrlOpenanglebracketSyms);\n ta(UrlOpenparenSyms, qsNonAccepting, UrlOpenparenSyms); // Close brace/bracket to become regular URL\n\n tt(UrlOpenbracketQ, CLOSEBRACKET, Url$1);\n tt(UrlOpenanglebracketQ, CLOSEANGLEBRACKET, Url$1);\n tt(UrlOpenparenQ, CLOSEPAREN, Url$1);\n tt(UrlOpenbraceQ, CLOSEBRACE, Url$1);\n tt(UrlOpenbracketSyms, CLOSEBRACKET, Url$1);\n tt(UrlOpenanglebracketSyms, CLOSEANGLEBRACKET, Url$1);\n tt(UrlOpenparenSyms, CLOSEPAREN, Url$1);\n tt(UrlOpenbraceSyms, CLOSEPAREN, Url$1);\n tt(Start, LOCALHOST, DomainDotTld); // localhost is a valid URL state\n\n tt(Start, NL$1, Nl); // single new line\n\n return {\n start: Start,\n tokens: tk\n };\n}\n/**\n * Run the parser state machine on a list of scanned string-based tokens to\n * create a list of multi tokens, each of which represents a URL, email address,\n * plain text, etc.\n *\n * @param {State} start parser start state\n * @param {string} input the original input used to generate the given tokens\n * @param {Token[]} tokens list of scanned tokens\n * @returns {MultiToken[]}\n */\n\nfunction run(start, input, tokens) {\n var len = tokens.length;\n var cursor = 0;\n var multis = [];\n var textTokens = [];\n\n while (cursor < len) {\n var state = start;\n var secondState = null;\n var nextState = null;\n var multiLength = 0;\n var latestAccepting = null;\n var sinceAccepts = -1;\n\n while (cursor < len && !(secondState = state.go(tokens[cursor].t))) {\n // Starting tokens with nowhere to jump to.\n // Consider these to be just plain text\n textTokens.push(tokens[cursor++]);\n }\n\n while (cursor < len && (nextState = secondState || state.go(tokens[cursor].t))) {\n // Get the next state\n secondState = null;\n state = nextState; // Keep track of the latest accepting state\n\n if (state.accepts()) {\n sinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts++;\n }\n\n cursor++;\n multiLength++;\n }\n\n if (sinceAccepts < 0) {\n // No accepting state was found, part of a regular text token add\n // the first text token to the text tokens array and try again from\n // the next\n cursor -= multiLength;\n\n if (cursor < len) {\n textTokens.push(tokens[cursor]);\n cursor++;\n }\n } else {\n // Accepting state!\n // First close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n textTokens = [];\n } // Roll back to the latest accepting state\n\n\n cursor -= sinceAccepts;\n multiLength -= sinceAccepts; // Create a new multitoken\n\n var Multi = latestAccepting.t;\n var subtokens = tokens.slice(cursor - multiLength, cursor);\n multis.push(initMultiToken(Multi, input, subtokens));\n }\n } // Finally close off the textTokens (if available)\n\n\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n }\n\n return multis;\n}\n/**\n * Utility function for instantiating a new multitoken with all the relevant\n * fields during parsing.\n * @param {new (value: string, tokens: Token[]) => MultiToken} Multi class to instantiate\n * @param {string} input original input string\n * @param {Token[]} tokens consecutive tokens scanned from input string\n * @returns {MultiToken}\n */\n\nfunction initMultiToken(Multi, input, tokens) {\n var startIdx = tokens[0].s;\n var endIdx = tokens[tokens.length - 1].e;\n var value = input.slice(startIdx, endIdx);\n return new Multi(value, tokens);\n}\n\nvar warn = typeof console !== 'undefined' && console && console.warn || function () {};\n\nvar warnAdvice = 'To avoid this warning, please register all custom schemes before invoking linkify the first time.'; // Side-effect initialization state\n\nvar INIT = {\n scanner: null,\n parser: null,\n tokenQueue: [],\n pluginQueue: [],\n customSchemes: [],\n initialized: false\n};\n/**\n * @typedef {{\n * \tstart: State,\n * \ttokens: { groups: Collections } & typeof tk\n * }} ScannerInit\n */\n\n/**\n * @typedef {{\n * \tstart: State,\n * \ttokens: typeof multi\n * }} ParserInit\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit }) => void} TokenPlugin\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit, parser: ParserInit }) => void} Plugin\n */\n\n/**\n * De-register all plugins and reset the internal state-machine. Used for\n * testing; not required in practice.\n * @private\n */\n\nfunction reset() {\n State.groups = {};\n INIT.scanner = null;\n INIT.parser = null;\n INIT.tokenQueue = [];\n INIT.pluginQueue = [];\n INIT.customSchemes = [];\n INIT.initialized = false;\n}\n/**\n * Register a token plugin to allow the scanner to recognize additional token\n * types before the parser state machine is constructed from the results.\n * @param {string} name of plugin to register\n * @param {TokenPlugin} plugin function that accepts the scanner state machine\n * and available scanner tokens and collections and extends the state machine to\n * recognize additional tokens or groups.\n */\n\nfunction registerTokenPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(\"linkifyjs: Invalid token plugin \" + plugin + \" (expects function)\");\n }\n\n for (var i = 0; i < INIT.tokenQueue.length; i++) {\n if (name === INIT.tokenQueue[i][0]) {\n warn(\"linkifyjs: token plugin \\\"\" + name + \"\\\" already registered - will be overwritten\");\n INIT.tokenQueue[i] = [name, plugin];\n return;\n }\n }\n\n INIT.tokenQueue.push([name, plugin]);\n\n if (INIT.initialized) {\n warn(\"linkifyjs: already initialized - will not register token plugin \\\"\" + name + \"\\\" until you manually call linkify.init(). \" + warnAdvice);\n }\n}\n/**\n * Register a linkify plugin\n * @param {string} name of plugin to register\n * @param {Plugin} plugin function that accepts the parser state machine and\n * extends the parser to recognize additional link types\n */\n\nfunction registerPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(\"linkifyjs: Invalid plugin \" + plugin + \" (expects function)\");\n }\n\n for (var i = 0; i < INIT.pluginQueue.length; i++) {\n if (name === INIT.pluginQueue[i][0]) {\n warn(\"linkifyjs: plugin \\\"\" + name + \"\\\" already registered - will be overwritten\");\n INIT.pluginQueue[i] = [name, plugin];\n return;\n }\n }\n\n INIT.pluginQueue.push([name, plugin]);\n\n if (INIT.initialized) {\n warn(\"linkifyjs: already initialized - will not register plugin \\\"\" + name + \"\\\" until you manually call linkify.init(). \" + warnAdvice);\n }\n}\n/**\n * Detect URLs with the following additional protocol. Anything with format\n * \"protocol://...\" will be considered a link. If `optionalSlashSlash` is set to\n * `true`, anything with format \"protocol:...\" will be considered a link.\n * @param {string} protocol\n * @param {boolean} [optionalSlashSlash]\n */\n\nfunction registerCustomProtocol(scheme, optionalSlashSlash) {\n if (optionalSlashSlash === void 0) {\n optionalSlashSlash = false;\n }\n\n if (INIT.initialized) {\n warn(\"linkifyjs: already initialized - will not register custom scheme \\\"\" + scheme + \"\\\" until you manually call linkify.init(). \" + warnAdvice);\n }\n\n if (!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(scheme)) {\n throw new Error('linkifyjs: incorrect scheme format.\\n 1. Must only contain digits, lowercase ASCII letters or \"-\"\\n 2. Cannot start or end with \"-\"\\n 3. \"-\" cannot repeat');\n }\n\n INIT.customSchemes.push([scheme, optionalSlashSlash]);\n}\n/**\n * Initialize the linkify state machine. Called automatically the first time\n * linkify is called on a string, but may be called manually as well.\n */\n\nfunction init() {\n // Initialize scanner state machine and plugins\n INIT.scanner = init$2(INIT.customSchemes);\n\n for (var i = 0; i < INIT.tokenQueue.length; i++) {\n INIT.tokenQueue[i][1]({\n scanner: INIT.scanner\n });\n } // Initialize parser state machine and plugins\n\n\n INIT.parser = init$1(INIT.scanner.tokens);\n\n for (var _i = 0; _i < INIT.pluginQueue.length; _i++) {\n INIT.pluginQueue[_i][1]({\n scanner: INIT.scanner,\n parser: INIT.parser\n });\n }\n\n INIT.initialized = true;\n}\n/**\n * Parse a string into tokens that represent linkable and non-linkable sub-components\n * @param {string} str\n * @return {MultiToken[]} tokens\n */\n\nfunction tokenize(str) {\n if (!INIT.initialized) {\n init();\n }\n\n return run(INIT.parser.start, str, run$1(INIT.scanner.start, str));\n}\n/**\n * Find a list of linkable items in the given string.\n * @param {string} str string to find links in\n * @param {string | Opts} [type] either formatting options or specific type of\n * links to find, e.g., 'url' or 'email'\n * @param {Opts} [opts] formatting options for final output. Cannot be specified\n * if opts already provided in `type` argument\n*/\n\nfunction find(str, type, opts) {\n if (type === void 0) {\n type = null;\n }\n\n if (opts === void 0) {\n opts = null;\n }\n\n if (type && typeof type === 'object') {\n if (opts) {\n throw Error(\"linkifyjs: Invalid link type \" + type + \"; must be a string\");\n }\n\n opts = type;\n type = null;\n }\n\n var options = new Options(opts);\n var tokens = tokenize(str);\n var filtered = [];\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (token.isLink && (!type || token.t === type)) {\n filtered.push(token.toFormattedObject(options));\n }\n }\n\n return filtered;\n}\n/**\n * Is the given string valid linkable text of some sort. Note that this does not\n * trim the text for you.\n *\n * Optionally pass in a second `type` param, which is the type of link to test\n * for.\n *\n * For example,\n *\n * linkify.test(str, 'email');\n *\n * Returns `true` if str is a valid email.\n * @param {string} str string to test for links\n * @param {string} [type] optional specific link type to look for\n * @returns boolean true/false\n */\n\nfunction test(str, type) {\n if (type === void 0) {\n type = null;\n }\n\n var tokens = tokenize(str);\n return tokens.length === 1 && tokens[0].isLink && (!type || tokens[0].t === type);\n}\n\nexport { MultiToken, Options, State, createTokenClass, find, init, multi, options, regexp, registerCustomProtocol, registerPlugin, registerTokenPlugin, reset, stringToArray, test, tokenize };\n","import { Options, tokenize as tokenize$1 } from 'linkifyjs';\n\n/**\n * generated from https://raw.githubusercontent.com/w3c/html/26b5126f96f736f796b9e29718138919dd513744/entities.json\n * do not edit\n */\nvar HTML5NamedCharRefs = {\n // We don't need the complete named character reference because linkifyHtml\n // does not modify the escape sequences. We do need   so that\n // whitespace is parsed properly. Other types of whitespace should already\n // be accounted for. > < and " are also frequently relevant ones\n amp: \"&\",\n gt: \">\",\n lt: \"<\",\n nbsp: \" \",\n quot: \"\\\"\"\n};\nvar HEXCHARCODE = /^#[xX]([A-Fa-f0-9]+)$/;\nvar CHARCODE = /^#([0-9]+)$/;\nvar NAMED = /^([A-Za-z0-9]+)$/;\n\nvar EntityParser =\n/** @class */\nfunction () {\n function EntityParser(named) {\n this.named = named;\n }\n\n EntityParser.prototype.parse = function (entity) {\n if (!entity) {\n return;\n }\n\n var matches = entity.match(HEXCHARCODE);\n\n if (matches) {\n return String.fromCharCode(parseInt(matches[1], 16));\n }\n\n matches = entity.match(CHARCODE);\n\n if (matches) {\n return String.fromCharCode(parseInt(matches[1], 10));\n }\n\n matches = entity.match(NAMED);\n\n if (matches) {\n return this.named[matches[1]] || \"&\" + matches[1] + \";\";\n }\n };\n\n return EntityParser;\n}();\n\nvar WSP = /[\\t\\n\\f ]/;\nvar ALPHA = /[A-Za-z]/;\nvar CRLF = /\\r\\n?/g;\n\nfunction isSpace(char) {\n return WSP.test(char);\n}\n\nfunction isAlpha(char) {\n return ALPHA.test(char);\n}\n\nfunction preprocessInput(input) {\n return input.replace(CRLF, '\\n');\n}\n\nvar EventedTokenizer =\n/** @class */\nfunction () {\n function EventedTokenizer(delegate, entityParser, mode) {\n if (mode === void 0) {\n mode = 'precompile';\n }\n\n this.delegate = delegate;\n this.entityParser = entityParser;\n this.mode = mode;\n this.state = \"beforeData\"\n /* beforeData */\n ;\n this.line = -1;\n this.column = -1;\n this.input = '';\n this.index = -1;\n this.tagNameBuffer = '';\n this.states = {\n beforeData: function beforeData() {\n var char = this.peek();\n\n if (char === '<' && !this.isIgnoredEndTag()) {\n this.transitionTo(\"tagOpen\"\n /* tagOpen */\n );\n this.markTagStart();\n this.consume();\n } else {\n if (this.mode === 'precompile' && char === '\\n') {\n var tag = this.tagNameBuffer.toLowerCase();\n\n if (tag === 'pre' || tag === 'textarea') {\n this.consume();\n }\n }\n\n this.transitionTo(\"data\"\n /* data */\n );\n this.delegate.beginData();\n }\n },\n data: function data() {\n var char = this.peek();\n var tag = this.tagNameBuffer;\n\n if (char === '<' && !this.isIgnoredEndTag()) {\n this.delegate.finishData();\n this.transitionTo(\"tagOpen\"\n /* tagOpen */\n );\n this.markTagStart();\n this.consume();\n } else if (char === '&' && tag !== 'script' && tag !== 'style') {\n this.consume();\n this.delegate.appendToData(this.consumeCharRef() || '&');\n } else {\n this.consume();\n this.delegate.appendToData(char);\n }\n },\n tagOpen: function tagOpen() {\n var char = this.consume();\n\n if (char === '!') {\n this.transitionTo(\"markupDeclarationOpen\"\n /* markupDeclarationOpen */\n );\n } else if (char === '/') {\n this.transitionTo(\"endTagOpen\"\n /* endTagOpen */\n );\n } else if (char === '@' || char === ':' || isAlpha(char)) {\n this.transitionTo(\"tagName\"\n /* tagName */\n );\n this.tagNameBuffer = '';\n this.delegate.beginStartTag();\n this.appendToTagName(char);\n }\n },\n markupDeclarationOpen: function markupDeclarationOpen() {\n var char = this.consume();\n\n if (char === '-' && this.peek() === '-') {\n this.consume();\n this.transitionTo(\"commentStart\"\n /* commentStart */\n );\n this.delegate.beginComment();\n } else {\n var maybeDoctype = char.toUpperCase() + this.input.substring(this.index, this.index + 6).toUpperCase();\n\n if (maybeDoctype === 'DOCTYPE') {\n this.consume();\n this.consume();\n this.consume();\n this.consume();\n this.consume();\n this.consume();\n this.transitionTo(\"doctype\"\n /* doctype */\n );\n if (this.delegate.beginDoctype) this.delegate.beginDoctype();\n }\n }\n },\n doctype: function doctype() {\n var char = this.consume();\n\n if (isSpace(char)) {\n this.transitionTo(\"beforeDoctypeName\"\n /* beforeDoctypeName */\n );\n }\n },\n beforeDoctypeName: function beforeDoctypeName() {\n var char = this.consume();\n\n if (isSpace(char)) {\n return;\n } else {\n this.transitionTo(\"doctypeName\"\n /* doctypeName */\n );\n if (this.delegate.appendToDoctypeName) this.delegate.appendToDoctypeName(char.toLowerCase());\n }\n },\n doctypeName: function doctypeName() {\n var char = this.consume();\n\n if (isSpace(char)) {\n this.transitionTo(\"afterDoctypeName\"\n /* afterDoctypeName */\n );\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n if (this.delegate.appendToDoctypeName) this.delegate.appendToDoctypeName(char.toLowerCase());\n }\n },\n afterDoctypeName: function afterDoctypeName() {\n var char = this.consume();\n\n if (isSpace(char)) {\n return;\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n var nextSixChars = char.toUpperCase() + this.input.substring(this.index, this.index + 5).toUpperCase();\n var isPublic = nextSixChars.toUpperCase() === 'PUBLIC';\n var isSystem = nextSixChars.toUpperCase() === 'SYSTEM';\n\n if (isPublic || isSystem) {\n this.consume();\n this.consume();\n this.consume();\n this.consume();\n this.consume();\n this.consume();\n }\n\n if (isPublic) {\n this.transitionTo(\"afterDoctypePublicKeyword\"\n /* afterDoctypePublicKeyword */\n );\n } else if (isSystem) {\n this.transitionTo(\"afterDoctypeSystemKeyword\"\n /* afterDoctypeSystemKeyword */\n );\n }\n }\n },\n afterDoctypePublicKeyword: function afterDoctypePublicKeyword() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.transitionTo(\"beforeDoctypePublicIdentifier\"\n /* beforeDoctypePublicIdentifier */\n );\n this.consume();\n } else if (char === '\"') {\n this.transitionTo(\"doctypePublicIdentifierDoubleQuoted\"\n /* doctypePublicIdentifierDoubleQuoted */\n );\n this.consume();\n } else if (char === \"'\") {\n this.transitionTo(\"doctypePublicIdentifierSingleQuoted\"\n /* doctypePublicIdentifierSingleQuoted */\n );\n this.consume();\n } else if (char === '>') {\n this.consume();\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n }\n },\n doctypePublicIdentifierDoubleQuoted: function doctypePublicIdentifierDoubleQuoted() {\n var char = this.consume();\n\n if (char === '\"') {\n this.transitionTo(\"afterDoctypePublicIdentifier\"\n /* afterDoctypePublicIdentifier */\n );\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n if (this.delegate.appendToDoctypePublicIdentifier) this.delegate.appendToDoctypePublicIdentifier(char);\n }\n },\n doctypePublicIdentifierSingleQuoted: function doctypePublicIdentifierSingleQuoted() {\n var char = this.consume();\n\n if (char === \"'\") {\n this.transitionTo(\"afterDoctypePublicIdentifier\"\n /* afterDoctypePublicIdentifier */\n );\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n if (this.delegate.appendToDoctypePublicIdentifier) this.delegate.appendToDoctypePublicIdentifier(char);\n }\n },\n afterDoctypePublicIdentifier: function afterDoctypePublicIdentifier() {\n var char = this.consume();\n\n if (isSpace(char)) {\n this.transitionTo(\"betweenDoctypePublicAndSystemIdentifiers\"\n /* betweenDoctypePublicAndSystemIdentifiers */\n );\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else if (char === '\"') {\n this.transitionTo(\"doctypeSystemIdentifierDoubleQuoted\"\n /* doctypeSystemIdentifierDoubleQuoted */\n );\n } else if (char === \"'\") {\n this.transitionTo(\"doctypeSystemIdentifierSingleQuoted\"\n /* doctypeSystemIdentifierSingleQuoted */\n );\n }\n },\n betweenDoctypePublicAndSystemIdentifiers: function betweenDoctypePublicAndSystemIdentifiers() {\n var char = this.consume();\n\n if (isSpace(char)) {\n return;\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else if (char === '\"') {\n this.transitionTo(\"doctypeSystemIdentifierDoubleQuoted\"\n /* doctypeSystemIdentifierDoubleQuoted */\n );\n } else if (char === \"'\") {\n this.transitionTo(\"doctypeSystemIdentifierSingleQuoted\"\n /* doctypeSystemIdentifierSingleQuoted */\n );\n }\n },\n doctypeSystemIdentifierDoubleQuoted: function doctypeSystemIdentifierDoubleQuoted() {\n var char = this.consume();\n\n if (char === '\"') {\n this.transitionTo(\"afterDoctypeSystemIdentifier\"\n /* afterDoctypeSystemIdentifier */\n );\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n if (this.delegate.appendToDoctypeSystemIdentifier) this.delegate.appendToDoctypeSystemIdentifier(char);\n }\n },\n doctypeSystemIdentifierSingleQuoted: function doctypeSystemIdentifierSingleQuoted() {\n var char = this.consume();\n\n if (char === \"'\") {\n this.transitionTo(\"afterDoctypeSystemIdentifier\"\n /* afterDoctypeSystemIdentifier */\n );\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n if (this.delegate.appendToDoctypeSystemIdentifier) this.delegate.appendToDoctypeSystemIdentifier(char);\n }\n },\n afterDoctypeSystemIdentifier: function afterDoctypeSystemIdentifier() {\n var char = this.consume();\n\n if (isSpace(char)) {\n return;\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n }\n },\n commentStart: function commentStart() {\n var char = this.consume();\n\n if (char === '-') {\n this.transitionTo(\"commentStartDash\"\n /* commentStartDash */\n );\n } else if (char === '>') {\n this.delegate.finishComment();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.delegate.appendToCommentData(char);\n this.transitionTo(\"comment\"\n /* comment */\n );\n }\n },\n commentStartDash: function commentStartDash() {\n var char = this.consume();\n\n if (char === '-') {\n this.transitionTo(\"commentEnd\"\n /* commentEnd */\n );\n } else if (char === '>') {\n this.delegate.finishComment();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.delegate.appendToCommentData('-');\n this.transitionTo(\"comment\"\n /* comment */\n );\n }\n },\n comment: function comment() {\n var char = this.consume();\n\n if (char === '-') {\n this.transitionTo(\"commentEndDash\"\n /* commentEndDash */\n );\n } else {\n this.delegate.appendToCommentData(char);\n }\n },\n commentEndDash: function commentEndDash() {\n var char = this.consume();\n\n if (char === '-') {\n this.transitionTo(\"commentEnd\"\n /* commentEnd */\n );\n } else {\n this.delegate.appendToCommentData('-' + char);\n this.transitionTo(\"comment\"\n /* comment */\n );\n }\n },\n commentEnd: function commentEnd() {\n var char = this.consume();\n\n if (char === '>') {\n this.delegate.finishComment();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.delegate.appendToCommentData('--' + char);\n this.transitionTo(\"comment\"\n /* comment */\n );\n }\n },\n tagName: function tagName() {\n var char = this.consume();\n\n if (isSpace(char)) {\n this.transitionTo(\"beforeAttributeName\"\n /* beforeAttributeName */\n );\n } else if (char === '/') {\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n } else if (char === '>') {\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.appendToTagName(char);\n }\n },\n endTagName: function endTagName() {\n var char = this.consume();\n\n if (isSpace(char)) {\n this.transitionTo(\"beforeAttributeName\"\n /* beforeAttributeName */\n );\n this.tagNameBuffer = '';\n } else if (char === '/') {\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n this.tagNameBuffer = '';\n } else if (char === '>') {\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n this.tagNameBuffer = '';\n } else {\n this.appendToTagName(char);\n }\n },\n beforeAttributeName: function beforeAttributeName() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.consume();\n return;\n } else if (char === '/') {\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n this.consume();\n } else if (char === '>') {\n this.consume();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else if (char === '=') {\n this.delegate.reportSyntaxError('attribute name cannot start with equals sign');\n this.transitionTo(\"attributeName\"\n /* attributeName */\n );\n this.delegate.beginAttribute();\n this.consume();\n this.delegate.appendToAttributeName(char);\n } else {\n this.transitionTo(\"attributeName\"\n /* attributeName */\n );\n this.delegate.beginAttribute();\n }\n },\n attributeName: function attributeName() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.transitionTo(\"afterAttributeName\"\n /* afterAttributeName */\n );\n this.consume();\n } else if (char === '/') {\n this.delegate.beginAttributeValue(false);\n this.delegate.finishAttributeValue();\n this.consume();\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n } else if (char === '=') {\n this.transitionTo(\"beforeAttributeValue\"\n /* beforeAttributeValue */\n );\n this.consume();\n } else if (char === '>') {\n this.delegate.beginAttributeValue(false);\n this.delegate.finishAttributeValue();\n this.consume();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else if (char === '\"' || char === \"'\" || char === '<') {\n this.delegate.reportSyntaxError(char + ' is not a valid character within attribute names');\n this.consume();\n this.delegate.appendToAttributeName(char);\n } else {\n this.consume();\n this.delegate.appendToAttributeName(char);\n }\n },\n afterAttributeName: function afterAttributeName() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.consume();\n return;\n } else if (char === '/') {\n this.delegate.beginAttributeValue(false);\n this.delegate.finishAttributeValue();\n this.consume();\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n } else if (char === '=') {\n this.consume();\n this.transitionTo(\"beforeAttributeValue\"\n /* beforeAttributeValue */\n );\n } else if (char === '>') {\n this.delegate.beginAttributeValue(false);\n this.delegate.finishAttributeValue();\n this.consume();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.delegate.beginAttributeValue(false);\n this.delegate.finishAttributeValue();\n this.transitionTo(\"attributeName\"\n /* attributeName */\n );\n this.delegate.beginAttribute();\n this.consume();\n this.delegate.appendToAttributeName(char);\n }\n },\n beforeAttributeValue: function beforeAttributeValue() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.consume();\n } else if (char === '\"') {\n this.transitionTo(\"attributeValueDoubleQuoted\"\n /* attributeValueDoubleQuoted */\n );\n this.delegate.beginAttributeValue(true);\n this.consume();\n } else if (char === \"'\") {\n this.transitionTo(\"attributeValueSingleQuoted\"\n /* attributeValueSingleQuoted */\n );\n this.delegate.beginAttributeValue(true);\n this.consume();\n } else if (char === '>') {\n this.delegate.beginAttributeValue(false);\n this.delegate.finishAttributeValue();\n this.consume();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.transitionTo(\"attributeValueUnquoted\"\n /* attributeValueUnquoted */\n );\n this.delegate.beginAttributeValue(false);\n this.consume();\n this.delegate.appendToAttributeValue(char);\n }\n },\n attributeValueDoubleQuoted: function attributeValueDoubleQuoted() {\n var char = this.consume();\n\n if (char === '\"') {\n this.delegate.finishAttributeValue();\n this.transitionTo(\"afterAttributeValueQuoted\"\n /* afterAttributeValueQuoted */\n );\n } else if (char === '&') {\n this.delegate.appendToAttributeValue(this.consumeCharRef() || '&');\n } else {\n this.delegate.appendToAttributeValue(char);\n }\n },\n attributeValueSingleQuoted: function attributeValueSingleQuoted() {\n var char = this.consume();\n\n if (char === \"'\") {\n this.delegate.finishAttributeValue();\n this.transitionTo(\"afterAttributeValueQuoted\"\n /* afterAttributeValueQuoted */\n );\n } else if (char === '&') {\n this.delegate.appendToAttributeValue(this.consumeCharRef() || '&');\n } else {\n this.delegate.appendToAttributeValue(char);\n }\n },\n attributeValueUnquoted: function attributeValueUnquoted() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.delegate.finishAttributeValue();\n this.consume();\n this.transitionTo(\"beforeAttributeName\"\n /* beforeAttributeName */\n );\n } else if (char === '/') {\n this.delegate.finishAttributeValue();\n this.consume();\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n } else if (char === '&') {\n this.consume();\n this.delegate.appendToAttributeValue(this.consumeCharRef() || '&');\n } else if (char === '>') {\n this.delegate.finishAttributeValue();\n this.consume();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.consume();\n this.delegate.appendToAttributeValue(char);\n }\n },\n afterAttributeValueQuoted: function afterAttributeValueQuoted() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.consume();\n this.transitionTo(\"beforeAttributeName\"\n /* beforeAttributeName */\n );\n } else if (char === '/') {\n this.consume();\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n } else if (char === '>') {\n this.consume();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.transitionTo(\"beforeAttributeName\"\n /* beforeAttributeName */\n );\n }\n },\n selfClosingStartTag: function selfClosingStartTag() {\n var char = this.peek();\n\n if (char === '>') {\n this.consume();\n this.delegate.markTagAsSelfClosing();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.transitionTo(\"beforeAttributeName\"\n /* beforeAttributeName */\n );\n }\n },\n endTagOpen: function endTagOpen() {\n var char = this.consume();\n\n if (char === '@' || char === ':' || isAlpha(char)) {\n this.transitionTo(\"endTagName\"\n /* endTagName */\n );\n this.tagNameBuffer = '';\n this.delegate.beginEndTag();\n this.appendToTagName(char);\n }\n }\n };\n this.reset();\n }\n\n EventedTokenizer.prototype.reset = function () {\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n this.input = '';\n this.tagNameBuffer = '';\n this.index = 0;\n this.line = 1;\n this.column = 0;\n this.delegate.reset();\n };\n\n EventedTokenizer.prototype.transitionTo = function (state) {\n this.state = state;\n };\n\n EventedTokenizer.prototype.tokenize = function (input) {\n this.reset();\n this.tokenizePart(input);\n this.tokenizeEOF();\n };\n\n EventedTokenizer.prototype.tokenizePart = function (input) {\n this.input += preprocessInput(input);\n\n while (this.index < this.input.length) {\n var handler = this.states[this.state];\n\n if (handler !== undefined) {\n handler.call(this);\n } else {\n throw new Error(\"unhandled state \" + this.state);\n }\n }\n };\n\n EventedTokenizer.prototype.tokenizeEOF = function () {\n this.flushData();\n };\n\n EventedTokenizer.prototype.flushData = function () {\n if (this.state === 'data') {\n this.delegate.finishData();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n }\n };\n\n EventedTokenizer.prototype.peek = function () {\n return this.input.charAt(this.index);\n };\n\n EventedTokenizer.prototype.consume = function () {\n var char = this.peek();\n this.index++;\n\n if (char === '\\n') {\n this.line++;\n this.column = 0;\n } else {\n this.column++;\n }\n\n return char;\n };\n\n EventedTokenizer.prototype.consumeCharRef = function () {\n var endIndex = this.input.indexOf(';', this.index);\n\n if (endIndex === -1) {\n return;\n }\n\n var entity = this.input.slice(this.index, endIndex);\n var chars = this.entityParser.parse(entity);\n\n if (chars) {\n var count = entity.length; // consume the entity chars\n\n while (count) {\n this.consume();\n count--;\n } // consume the `;`\n\n\n this.consume();\n return chars;\n }\n };\n\n EventedTokenizer.prototype.markTagStart = function () {\n this.delegate.tagOpen();\n };\n\n EventedTokenizer.prototype.appendToTagName = function (char) {\n this.tagNameBuffer += char;\n this.delegate.appendToTagName(char);\n };\n\n EventedTokenizer.prototype.isIgnoredEndTag = function () {\n var tag = this.tagNameBuffer;\n return tag === 'title' && this.input.substring(this.index, this.index + 8) !== '' || tag === 'style' && this.input.substring(this.index, this.index + 8) !== '' || tag === 'script' && this.input.substring(this.index, this.index + 9) !== '';\n };\n\n return EventedTokenizer;\n}();\n\nvar Tokenizer =\n/** @class */\nfunction () {\n function Tokenizer(entityParser, options) {\n if (options === void 0) {\n options = {};\n }\n\n this.options = options;\n this.token = null;\n this.startLine = 1;\n this.startColumn = 0;\n this.tokens = [];\n this.tokenizer = new EventedTokenizer(this, entityParser, options.mode);\n this._currentAttribute = undefined;\n }\n\n Tokenizer.prototype.tokenize = function (input) {\n this.tokens = [];\n this.tokenizer.tokenize(input);\n return this.tokens;\n };\n\n Tokenizer.prototype.tokenizePart = function (input) {\n this.tokens = [];\n this.tokenizer.tokenizePart(input);\n return this.tokens;\n };\n\n Tokenizer.prototype.tokenizeEOF = function () {\n this.tokens = [];\n this.tokenizer.tokenizeEOF();\n return this.tokens[0];\n };\n\n Tokenizer.prototype.reset = function () {\n this.token = null;\n this.startLine = 1;\n this.startColumn = 0;\n };\n\n Tokenizer.prototype.current = function () {\n var token = this.token;\n\n if (token === null) {\n throw new Error('token was unexpectedly null');\n }\n\n if (arguments.length === 0) {\n return token;\n }\n\n for (var i = 0; i < arguments.length; i++) {\n if (token.type === arguments[i]) {\n return token;\n }\n }\n\n throw new Error(\"token type was unexpectedly \" + token.type);\n };\n\n Tokenizer.prototype.push = function (token) {\n this.token = token;\n this.tokens.push(token);\n };\n\n Tokenizer.prototype.currentAttribute = function () {\n return this._currentAttribute;\n };\n\n Tokenizer.prototype.addLocInfo = function () {\n if (this.options.loc) {\n this.current().loc = {\n start: {\n line: this.startLine,\n column: this.startColumn\n },\n end: {\n line: this.tokenizer.line,\n column: this.tokenizer.column\n }\n };\n }\n\n this.startLine = this.tokenizer.line;\n this.startColumn = this.tokenizer.column;\n }; // Data\n\n\n Tokenizer.prototype.beginDoctype = function () {\n this.push({\n type: \"Doctype\"\n /* Doctype */\n ,\n name: ''\n });\n };\n\n Tokenizer.prototype.appendToDoctypeName = function (char) {\n this.current(\"Doctype\"\n /* Doctype */\n ).name += char;\n };\n\n Tokenizer.prototype.appendToDoctypePublicIdentifier = function (char) {\n var doctype = this.current(\"Doctype\"\n /* Doctype */\n );\n\n if (doctype.publicIdentifier === undefined) {\n doctype.publicIdentifier = char;\n } else {\n doctype.publicIdentifier += char;\n }\n };\n\n Tokenizer.prototype.appendToDoctypeSystemIdentifier = function (char) {\n var doctype = this.current(\"Doctype\"\n /* Doctype */\n );\n\n if (doctype.systemIdentifier === undefined) {\n doctype.systemIdentifier = char;\n } else {\n doctype.systemIdentifier += char;\n }\n };\n\n Tokenizer.prototype.endDoctype = function () {\n this.addLocInfo();\n };\n\n Tokenizer.prototype.beginData = function () {\n this.push({\n type: \"Chars\"\n /* Chars */\n ,\n chars: ''\n });\n };\n\n Tokenizer.prototype.appendToData = function (char) {\n this.current(\"Chars\"\n /* Chars */\n ).chars += char;\n };\n\n Tokenizer.prototype.finishData = function () {\n this.addLocInfo();\n }; // Comment\n\n\n Tokenizer.prototype.beginComment = function () {\n this.push({\n type: \"Comment\"\n /* Comment */\n ,\n chars: ''\n });\n };\n\n Tokenizer.prototype.appendToCommentData = function (char) {\n this.current(\"Comment\"\n /* Comment */\n ).chars += char;\n };\n\n Tokenizer.prototype.finishComment = function () {\n this.addLocInfo();\n }; // Tags - basic\n\n\n Tokenizer.prototype.tagOpen = function () {};\n\n Tokenizer.prototype.beginStartTag = function () {\n this.push({\n type: \"StartTag\"\n /* StartTag */\n ,\n tagName: '',\n attributes: [],\n selfClosing: false\n });\n };\n\n Tokenizer.prototype.beginEndTag = function () {\n this.push({\n type: \"EndTag\"\n /* EndTag */\n ,\n tagName: ''\n });\n };\n\n Tokenizer.prototype.finishTag = function () {\n this.addLocInfo();\n };\n\n Tokenizer.prototype.markTagAsSelfClosing = function () {\n this.current(\"StartTag\"\n /* StartTag */\n ).selfClosing = true;\n }; // Tags - name\n\n\n Tokenizer.prototype.appendToTagName = function (char) {\n this.current(\"StartTag\"\n /* StartTag */\n , \"EndTag\"\n /* EndTag */\n ).tagName += char;\n }; // Tags - attributes\n\n\n Tokenizer.prototype.beginAttribute = function () {\n this._currentAttribute = ['', '', false];\n };\n\n Tokenizer.prototype.appendToAttributeName = function (char) {\n this.currentAttribute()[0] += char;\n };\n\n Tokenizer.prototype.beginAttributeValue = function (isQuoted) {\n this.currentAttribute()[2] = isQuoted;\n };\n\n Tokenizer.prototype.appendToAttributeValue = function (char) {\n this.currentAttribute()[1] += char;\n };\n\n Tokenizer.prototype.finishAttributeValue = function () {\n this.current(\"StartTag\"\n /* StartTag */\n ).attributes.push(this._currentAttribute);\n };\n\n Tokenizer.prototype.reportSyntaxError = function (message) {\n this.current().syntaxError = message;\n };\n\n return Tokenizer;\n}();\n\nfunction tokenize(input, options) {\n var tokenizer = new Tokenizer(new EntityParser(HTML5NamedCharRefs), options);\n return tokenizer.tokenize(input);\n}\n\nvar LinkifyResult = 'LinkifyResult';\nvar StartTag = 'StartTag';\nvar EndTag = 'EndTag';\nvar Chars = 'Chars';\nvar Comment = 'Comment';\nvar Doctype = 'Doctype';\n/**\n * @param {string} str html string to link\n * @param {import('linkifyjs').Opts} [opts] linkify options\n * @returns {string} resulting string\n */\n\nfunction linkifyHtml(str, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n // `tokens` and `token` in this section refer to tokens generated by the\n // HTML parser, not linkify's parser\n var tokens = tokenize(str);\n var linkifiedTokens = [];\n var linkified = [];\n var options = new Options(opts, defaultRender); // Linkify the tokens given by the parser\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (token.type === StartTag) {\n linkifiedTokens.push(token); // Ignore all the contents of ignored tags\n\n var tagName = token.tagName.toUpperCase();\n var isIgnored = tagName === 'A' || options.ignoreTags.indexOf(tagName) >= 0;\n\n if (!isIgnored) {\n continue;\n }\n\n var preskipLen = linkifiedTokens.length;\n skipTagTokens(tagName, tokens, ++i, linkifiedTokens);\n i += linkifiedTokens.length - preskipLen - 1;\n } else if (token.type !== Chars) {\n // Skip this token, it's not important\n linkifiedTokens.push(token);\n } else {\n // Valid text token, linkify it!\n var linkifedChars = linkifyChars(token.chars, options);\n linkifiedTokens.push.apply(linkifiedTokens, linkifedChars);\n }\n } // Convert the tokens back into a string\n\n\n for (var _i = 0; _i < linkifiedTokens.length; _i++) {\n var _token = linkifiedTokens[_i];\n\n switch (_token.type) {\n case LinkifyResult:\n linkified.push(_token.rendered);\n break;\n\n case StartTag:\n {\n var link = '<' + _token.tagName;\n\n if (_token.attributes.length > 0) {\n link += ' ' + attributeArrayToStrings(_token.attributes).join(' ');\n }\n\n if (_token.selfClosing) {\n link += ' /';\n }\n\n link += '>';\n linkified.push(link);\n break;\n }\n\n case EndTag:\n linkified.push(\"\");\n break;\n\n case Chars:\n linkified.push(escapeText(_token.chars));\n break;\n\n case Comment:\n linkified.push(\"\");\n break;\n\n case Doctype:\n {\n var doctype = \"';\n linkified.push(doctype);\n break;\n }\n }\n }\n\n return linkified.join('');\n}\n/**\n\t`tokens` and `token` in this section referes to tokens returned by\n\t`linkify.tokenize`. `linkified` will contain HTML Parser-style tokens\n\t@param {string}\n\t@param {import('linkifyjs').Options}\n*/\n\nfunction linkifyChars(str, options) {\n var tokens = tokenize$1(str);\n var result = [];\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (token.t === 'nl' && options.get('nl2br')) {\n result.push({\n type: StartTag,\n tagName: 'br',\n attributes: [],\n selfClosing: true\n });\n } else if (!token.isLink || !options.check(token)) {\n result.push({\n type: Chars,\n chars: token.toString()\n });\n } else {\n result.push({\n type: LinkifyResult,\n rendered: options.render(token)\n });\n }\n }\n\n return result;\n}\n/**\n\tReturns a list of tokens skipped until the closing tag of tagName.\n\n\t* `tagName` is the closing tag which will prompt us to stop skipping\n\t* `tokens` is the array of tokens generated by HTML5Tokenizer which\n\t* `i` is the index immediately after the opening tag to skip\n\t* `skippedTokens` is an array which skipped tokens are being pushed into\n\n\tCaveats\n\n\t* Assumes that i is the first token after the given opening tagName\n\t* The closing tag will be skipped, but nothing after it\n\t* Will track whether there is a nested tag of the same type\n*/\n\n\nfunction skipTagTokens(tagName, tokens, i, skippedTokens) {\n // number of tokens of this type on the [fictional] stack\n var stackCount = 1;\n\n while (i < tokens.length && stackCount > 0) {\n var token = tokens[i];\n\n if (token.type === StartTag && token.tagName.toUpperCase() === tagName) {\n // Nested tag of the same type, \"add to stack\"\n stackCount++;\n } else if (token.type === EndTag && token.tagName.toUpperCase() === tagName) {\n // Closing tag\n stackCount--;\n }\n\n skippedTokens.push(token);\n i++;\n } // Note that if stackCount > 0 here, the HTML is probably invalid\n\n\n return skippedTokens;\n}\n\nfunction defaultRender(_ref) {\n var tagName = _ref.tagName,\n attributes = _ref.attributes,\n content = _ref.content;\n return \"<\" + tagName + \" \" + attributesToString(attributes) + \">\" + escapeText(content) + \"\";\n}\n\nfunction escapeText(text) {\n return text.replace(/&/g, '&').replace(//g, '>');\n}\n\nfunction escapeAttr(attr) {\n return attr.replace(/\"/g, '"');\n}\n\nfunction attributesToString(attributes) {\n var result = [];\n\n for (var attr in attributes) {\n var val = attributes[attr] + '';\n result.push(attr + \"=\\\"\" + escapeAttr(val) + \"\\\"\");\n }\n\n return result.join(' ');\n}\n\nfunction attributeArrayToStrings(attrs) {\n var attrStrs = [];\n\n for (var i = 0; i < attrs.length; i++) {\n var name = attrs[i][0];\n var value = attrs[i][1] + '';\n attrStrs.push(name + \"=\\\"\" + escapeAttr(value) + \"\\\"\");\n }\n\n return attrStrs;\n}\n\nexport { linkifyHtml as default };\n","import linkifyHtml from 'linkify-html'\nimport sanitizeHtml from 'sanitize-html'\n\nexport const linkifyAndClean = (input: string): string => {\n return sanitizeHtml(linkifyHtml(input, { target: '_blank' }), {\n allowedTags: ['a'],\n disallowedTagsMode: 'escape',\n })\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f6b59442\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-note\" }\nconst _hoisted_2 = [\"innerHTML\"]\n\nimport { toRefs, withDefaults } from 'vue'\n\n import { linkifyAndClean } from '@/utils/inputs'\n\n interface Props {\n notes?: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutNotes',\n props: {\n notes: { default: () => null }\n },\n setup(__props: any) {\n\nconst props = __props as { notes: string | null };\n\n \n\n const { notes } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.NOTES')), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"span\", {\n innerHTML: \n _unref(notes) && _unref(notes) !== ''\n ? _unref(linkifyAndClean)(_unref(notes))\n : _ctx.$t('workouts.NO_NOTES')\n \n }, null, 8, _hoisted_2)\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./WorkoutNotes.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutNotes.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutNotes.vue?vue&type=style&index=0&id=f6b59442&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f6b59442\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6b8a27cd\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-segments\" }\n\nimport { toRefs } from 'vue'\n\n import { IWorkoutSegment } from '@/types/workouts'\n\n interface Props {\n segments: IWorkoutSegment[]\n useImperialUnits: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutSegments',\n props: {\n segments: null,\n useImperialUnits: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n segments: IWorkoutSegment[]\n useImperialUnits: boolean\n };\n\n \n\n const { segments, useImperialUnits } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Distance = _resolveComponent(\"Distance\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.SEGMENT', 2)), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"ul\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(segments), (segment, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: segment.segment_id\n }, [\n _createVNode(_component_router_link, {\n to: {\n name: 'WorkoutSegment',\n params: {\n workoutId: segment.workout_id,\n segmentId: index + 1,\n },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.SEGMENT', 1)) + \" \" + _toDisplayString(index + 1), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]),\n _createTextVNode(\" (\" + _toDisplayString(_ctx.$t('workouts.DISTANCE')) + \": \", 1),\n _createVNode(_component_Distance, {\n distance: segment.distance,\n unitFrom: \"km\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]),\n _createTextVNode(\", \" + _toDisplayString(_ctx.$t('workouts.DURATION')) + \": \" + _toDisplayString(segment.duration) + \") \", 1)\n ]))\n }), 128))\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./WorkoutSegments.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutSegments.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutSegments.vue?vue&type=style&index=0&id=6b8a27cd&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6b8a27cd\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-53c4e53a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"workout\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"workout-container\"\n}\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\nconst _hoisted_6 = { key: 1 }\n\nimport {\n ComputedRef,\n Ref,\n computed,\n ref,\n toRefs,\n watch,\n onBeforeMount,\n onUnmounted,\n } from 'vue'\n import { useRoute } from 'vue-router'\n\n import NotFound from '@/components/Common/NotFound.vue'\n import WorkoutDetail from '@/components/Workout/WorkoutDetail/index.vue'\n import WorkoutChart from '@/components/Workout/WorkoutDetail/WorkoutChart/index.vue'\n import WorkoutNotes from '@/components/Workout/WorkoutDetail/WorkoutNotes.vue'\n import WorkoutSegments from '@/components/Workout/WorkoutDetail/WorkoutSegments.vue'\n import {\n AUTH_USER_STORE,\n SPORTS_STORE,\n WORKOUTS_STORE,\n } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { IWorkoutData, IWorkoutPayload, TCoordinates } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n displaySegment: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Workout',\n props: {\n displaySegment: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n displaySegment: boolean\n };\n\n \n\n const route = useRoute()\n const store = useStore()\n\n const { displaySegment } = toRefs(props)\n const workoutData: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.WORKOUT_DATA]\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const markerCoordinates: Ref = ref({\n latitude: null,\n longitude: null,\n })\n\n onBeforeMount(() => {\n const payload: IWorkoutPayload = { workoutId: route.params.workoutId }\n if (props.displaySegment) {\n payload.segmentId = route.params.segmentId\n }\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, payload)\n })\n\n onUnmounted(() => {\n store.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n })\n\n function updateCoordinates(coordinates: TCoordinates) {\n markerCoordinates.value = {\n latitude: coordinates.latitude,\n longitude: coordinates.longitude,\n }\n }\n\n watch(\n () => route.params.workoutId,\n async (newWorkoutId) => {\n if (newWorkoutId) {\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, {\n workoutId: newWorkoutId,\n })\n }\n }\n )\n watch(\n () => route.params.segmentId,\n async (newSegmentId) => {\n if (route.params.workoutId) {\n const payload: IWorkoutPayload = {\n workoutId: route.params.workoutId,\n }\n if (newSegmentId) {\n payload.segmentId = newSegmentId\n }\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, payload)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(sports).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_unref(workoutData).workout.id)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createVNode(WorkoutDetail, {\n workoutData: _unref(workoutData),\n sports: _unref(sports),\n authUser: _unref(authUser),\n markerCoordinates: markerCoordinates.value,\n displaySegment: _unref(displaySegment)\n }, null, 8, [\"workoutData\", \"sports\", \"authUser\", \"markerCoordinates\", \"displaySegment\"]),\n (\n _unref(workoutData).workout.with_gpx && _unref(workoutData).chartData.length > 0\n )\n ? (_openBlock(), _createBlock(WorkoutChart, {\n key: 0,\n workoutData: _unref(workoutData),\n authUser: _unref(authUser),\n displaySegment: _unref(displaySegment),\n onGetCoordinates: updateCoordinates\n }, null, 8, [\"workoutData\", \"authUser\", \"displaySegment\"]))\n : _createCommentVNode(\"\", true),\n (!_unref(displaySegment) && _unref(workoutData).workout.segments.length > 1)\n ? (_openBlock(), _createBlock(WorkoutSegments, {\n key: 1,\n segments: _unref(workoutData).workout.segments,\n useImperialUnits: _unref(authUser).imperial_units\n }, null, 8, [\"segments\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true),\n (!_unref(displaySegment))\n ? (_openBlock(), _createBlock(WorkoutNotes, {\n key: 2,\n notes: _unref(workoutData).workout.notes\n }, null, 8, [\"notes\"]))\n : _createCommentVNode(\"\", true),\n _hoisted_5\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n (!_unref(workoutData).loading)\n ? (_openBlock(), _createBlock(NotFound, {\n key: 0,\n target: \"WORKOUT\"\n }))\n : _createCommentVNode(\"\", true)\n ]))\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./Workout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Workout.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Workout.vue?vue&type=style&index=0&id=53c4e53a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-53c4e53a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6c38593a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"workouts-filters\" }\nconst _hoisted_2 = { class: \"box\" }\nconst _hoisted_3 = { class: \"form\" }\nconst _hoisted_4 = { class: \"form-items-group\" }\nconst _hoisted_5 = { class: \"form-item\" }\nconst _hoisted_6 = [\"value\"]\nconst _hoisted_7 = { class: \"form-item\" }\nconst _hoisted_8 = [\"value\"]\nconst _hoisted_9 = { class: \"form-items-group\" }\nconst _hoisted_10 = { class: \"form-item\" }\nconst _hoisted_11 = [\"value\"]\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"option\", { value: \"\" }, null, -1))\nconst _hoisted_13 = [\"value\"]\nconst _hoisted_14 = { class: \"form-items-group\" }\nconst _hoisted_15 = { class: \"form-item\" }\nconst _hoisted_16 = { class: \"form-inputs-group\" }\nconst _hoisted_17 = [\"value\"]\nconst _hoisted_18 = [\"value\"]\nconst _hoisted_19 = { class: \"form-items-group\" }\nconst _hoisted_20 = { class: \"form-item\" }\nconst _hoisted_21 = { class: \"form-inputs-group\" }\nconst _hoisted_22 = [\"value\"]\nconst _hoisted_23 = [\"value\"]\nconst _hoisted_24 = { class: \"form-items-group\" }\nconst _hoisted_25 = { class: \"form-item\" }\nconst _hoisted_26 = { class: \"form-inputs-group\" }\nconst _hoisted_27 = [\"value\"]\nconst _hoisted_28 = [\"value\"]\nconst _hoisted_29 = { class: \"form-items-group\" }\nconst _hoisted_30 = { class: \"form-item\" }\nconst _hoisted_31 = { class: \"form-inputs-group\" }\nconst _hoisted_32 = [\"value\"]\nconst _hoisted_33 = [\"value\"]\nconst _hoisted_34 = { class: \"form-button\" }\n\nimport { ComputedRef, computed, toRefs, watch } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { LocationQuery, useRoute, useRouter } from 'vue-router'\n\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { translateSports } from '@/utils/sports'\n import { units } from '@/utils/units'\n\n interface Props {\n authUser: IAuthUserProfile\n sports: ISport[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutsFilters',\n props: {\n authUser: null,\n sports: null\n },\n emits: ['filter'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n authUser: IAuthUserProfile\n sports: ISport[]\n };\n\n \n\n \n\n const { t } = useI18n()\n const route = useRoute()\n const router = useRouter()\n\n const { authUser } = toRefs(props)\n\n const toUnit = authUser.value.imperial_units\n ? units['km'].defaultTarget\n : 'km'\n const translatedSports: ComputedRef = computed(() =>\n translateSports(props.sports, t)\n )\n let params: LocationQuery = Object.assign({}, route.query)\n\n function handleFilterChange(event: Event & { target: HTMLInputElement }) {\n if (event.target.value === '') {\n delete params[event.target.name]\n } else {\n params[event.target.name] = event.target.value\n }\n }\n function onFilter() {\n emit('filter')\n if ('page' in params) {\n params['page'] = '1'\n }\n router.push({ path: '/workouts', query: params })\n }\n function onClearFilter() {\n emit('filter')\n router.push({ path: '/workouts', query: {} })\n }\n\n watch(\n () => route.query,\n (newQuery) => {\n params = Object.assign({}, newQuery)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.FROM')) + \": \", 1),\n _createElementVNode(\"input\", {\n name: \"from\",\n type: \"date\",\n value: _ctx.$route.query.from,\n onChange: handleFilterChange\n }, null, 40, _hoisted_6)\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.TO')) + \": \", 1),\n _createElementVNode(\"input\", {\n name: \"to\",\n type: \"date\",\n value: _ctx.$route.query.to,\n onChange: handleFilterChange\n }, null, 40, _hoisted_8)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.SPORT', 1)) + \":\", 1),\n _createElementVNode(\"select\", {\n name: \"sport_id\",\n value: _ctx.$route.query.sport_id,\n onChange: handleFilterChange\n }, [\n _hoisted_12,\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports).filter((s) =>\n _unref(authUser).sports_list.includes(s.id)\n ), (sport) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: sport.id,\n key: sport.id\n }, _toDisplayString(sport.translatedLabel), 9, _hoisted_13))\n }), 128))\n ], 40, _hoisted_11)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DISTANCE')) + \" (\" + _toDisplayString(_unref(toUnit)) + \"): \", 1),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"input\", {\n name: \"distance_from\",\n type: \"number\",\n min: \"0\",\n step: \"0.1\",\n value: _ctx.$route.query.distance_from,\n onChange: handleFilterChange\n }, null, 40, _hoisted_17),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('workouts.TO')), 1),\n _createElementVNode(\"input\", {\n name: \"distance_to\",\n type: \"number\",\n min: \"0\",\n step: \"0.1\",\n value: _ctx.$route.query.distance_to,\n onChange: handleFilterChange\n }, null, 40, _hoisted_18)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DURATION')) + \": \", 1),\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"input\", {\n name: \"duration_from\",\n value: _ctx.$route.query.duration_from,\n onChange: handleFilterChange,\n pattern: \"^([0-9]*[0-9]):([0-5][0-9])$\",\n placeholder: \"hh:mm\",\n type: \"text\"\n }, null, 40, _hoisted_22),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('workouts.TO')), 1),\n _createElementVNode(\"input\", {\n name: \"duration_to\",\n value: _ctx.$route.query.duration_to,\n onChange: handleFilterChange,\n pattern: \"^([0-9]*[0-9]):([0-5][0-9])$\",\n placeholder: \"hh:mm\",\n type: \"text\"\n }, null, 40, _hoisted_23)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_24, [\n _createElementVNode(\"div\", _hoisted_25, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.AVE_SPEED')) + \" (\" + _toDisplayString(_unref(toUnit)) + \"/h): \", 1),\n _createElementVNode(\"div\", _hoisted_26, [\n _createElementVNode(\"input\", {\n min: \"0\",\n name: \"ave_speed_from\",\n value: _ctx.$route.query.ave_speed_from,\n onChange: handleFilterChange,\n step: \"0.1\",\n type: \"number\"\n }, null, 40, _hoisted_27),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('workouts.TO')), 1),\n _createElementVNode(\"input\", {\n min: \"0\",\n name: \"ave_speed_to\",\n value: _ctx.$route.query.ave_speed_to,\n onChange: handleFilterChange,\n step: \"0.1\",\n type: \"number\"\n }, null, 40, _hoisted_28)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_29, [\n _createElementVNode(\"div\", _hoisted_30, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.MAX_SPEED')) + \" (\" + _toDisplayString(_unref(toUnit)) + \"/h): \", 1),\n _createElementVNode(\"div\", _hoisted_31, [\n _createElementVNode(\"input\", {\n min: \"0\",\n name: \"max_speed_from\",\n value: _ctx.$route.query.max_speed_from,\n onChange: handleFilterChange,\n step: \"0.1\",\n type: \"number\"\n }, null, 40, _hoisted_32),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('workouts.TO')), 1),\n _createElementVNode(\"input\", {\n min: \"0\",\n name: \"max_speed_to\",\n value: _ctx.$route.query.max_speed_to,\n onChange: handleFilterChange,\n step: \"0.1\",\n type: \"number\"\n }, null, 40, _hoisted_33)\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_34, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n onClick: onFilter\n }, _toDisplayString(_ctx.$t('buttons.FILTER')), 1),\n _createElementVNode(\"button\", {\n class: \"confirm\",\n onClick: onClearFilter\n }, _toDisplayString(_ctx.$t('buttons.CLEAR_FILTER')), 1)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./WorkoutsFilters.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutsFilters.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutsFilters.vue?vue&type=style&index=0&id=6c38593a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6c38593a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, normalizeClass as _normalizeClass, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, createBlock as _createBlock, withCtx as _withCtx, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-19504874\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"workouts-list\" }\nconst _hoisted_2 = { class: \"total\" }\nconst _hoisted_3 = { class: \"total-label\" }\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = {\n key: 0,\n class: \"workouts-table responsive-table\"\n}\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", { class: \"sport-col\" }, null, -1))\nconst _hoisted_7 = { class: \"sport-col\" }\nconst _hoisted_8 = { class: \"cell-heading\" }\nconst _hoisted_9 = [\"onMouseover\"]\nconst _hoisted_10 = { class: \"cell-heading\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"fa fa-map-o\",\n \"aria-hidden\": \"true\"\n}\nconst _hoisted_12 = { class: \"title\" }\nconst _hoisted_13 = { class: \"workout-date\" }\nconst _hoisted_14 = { class: \"cell-heading\" }\nconst _hoisted_15 = { class: \"text-right\" }\nconst _hoisted_16 = { class: \"cell-heading\" }\nconst _hoisted_17 = { class: \"text-right\" }\nconst _hoisted_18 = { class: \"cell-heading\" }\nconst _hoisted_19 = { class: \"text-right\" }\nconst _hoisted_20 = { class: \"cell-heading\" }\nconst _hoisted_21 = { class: \"text-right\" }\nconst _hoisted_22 = { class: \"cell-heading\" }\nconst _hoisted_23 = { class: \"text-right\" }\nconst _hoisted_24 = { class: \"cell-heading\" }\nconst _hoisted_25 = { class: \"text-right\" }\nconst _hoisted_26 = { class: \"cell-heading\" }\nconst _hoisted_27 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\n\nimport {\n ComputedRef,\n Ref,\n computed,\n ref,\n toRefs,\n watch,\n capitalize,\n onBeforeMount,\n } from 'vue'\n import { LocationQuery, useRoute, useRouter } from 'vue-router'\n\n import FilterSelects from '@/components/Common/FilterSelects.vue'\n import Pagination from '@/components/Common/Pagination.vue'\n import StaticMap from '@/components/Common/StaticMap.vue'\n import NoWorkouts from '@/components/Workouts/NoWorkouts.vue'\n import { ROOT_STORE, WORKOUTS_STORE } from '@/store/constants'\n import { IPagination } from '@/types/api'\n import { ITranslatedSport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { IWorkout, TWorkoutsPayload } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { getQuery, sortList, workoutsPayloadKeys } from '@/utils/api'\n import { formatDate } from '@/utils/dates'\n import { getSportColor, getSportLabel } from '@/utils/sports'\n import { convertDistance } from '@/utils/units'\n import { defaultOrder } from '@/utils/workouts'\n\n interface Props {\n user: IAuthUserProfile\n sports: ITranslatedSport[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutsList',\n props: {\n user: null,\n sports: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n sports: ITranslatedSport[]\n };\n\n \n\n const store = useStore()\n const route = useRoute()\n const router = useRouter()\n\n const { user, sports } = toRefs(props)\n const orderByList: string[] = [\n 'ave_speed',\n 'distance',\n 'duration',\n 'workout_date',\n ]\n const workouts: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.USER_WORKOUTS]\n )\n const pagination: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.WORKOUTS_PAGINATION]\n )\n const currentLanguage: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n let query: TWorkoutsPayload = getWorkoutsQuery(route.query)\n const hoverWorkoutId: Ref = ref(null)\n\n onBeforeMount(() => {\n loadWorkouts(query)\n })\n\n function loadWorkouts(payload: TWorkoutsPayload) {\n store.dispatch(\n WORKOUTS_STORE.ACTIONS.GET_USER_WORKOUTS,\n user.value.imperial_units ? getConvertedPayload(payload) : payload\n )\n }\n function reloadWorkouts(queryParam: string, queryValue: string) {\n const newQuery: LocationQuery = Object.assign({}, route.query)\n newQuery[queryParam] = queryValue\n if (queryParam === 'per_page') {\n newQuery['page'] = '1'\n }\n query = getWorkoutsQuery(newQuery)\n router.push({ path: '/workouts', query })\n }\n\n function getWorkoutsQuery(newQuery: LocationQuery): TWorkoutsPayload {\n const workoutQuery = getQuery(\n newQuery,\n orderByList,\n defaultOrder.order_by,\n {\n defaultSort: defaultOrder.order,\n }\n )\n Object.keys(newQuery)\n .filter((k) => workoutsPayloadKeys.includes(k))\n .map((k) => {\n if (typeof newQuery[k] === 'string') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n workoutQuery[k] = newQuery[k]\n }\n })\n return workoutQuery\n }\n\n function getConvertedPayload(payload: TWorkoutsPayload): TWorkoutsPayload {\n const convertedPayload: TWorkoutsPayload = {\n ...payload,\n }\n Object.entries(convertedPayload).map((entry) => {\n if (entry[0].match('speed|distance') && entry[1]) {\n convertedPayload[entry[0]] = convertDistance(+entry[1], 'mi', 'km')\n }\n })\n return convertedPayload\n }\n\n function onHover(workoutId: string | null) {\n hoverWorkoutId.value = workoutId\n }\n\n watch(\n () => route.query,\n async (newQuery) => {\n query = getWorkoutsQuery(newQuery)\n loadWorkouts(query)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Distance = _resolveComponent(\"Distance\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"box\", { 'empty-table': _unref(workouts).length === 0 }])\n }, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(_ctx.$t('common.TOTAL').toLowerCase()) + \": \", 1),\n (_unref(pagination).total !== null)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, _toDisplayString(_unref(pagination).total) + \" \" + _toDisplayString(_ctx.$t('workouts.WORKOUT', _unref(pagination).total)), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(FilterSelects, {\n sort: _unref(sortList),\n order_by: orderByList,\n query: _unref(query),\n message: \"workouts\",\n onUpdateSelect: reloadWorkouts\n }, null, 8, [\"sort\", \"query\"]),\n (_unref(workouts).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createVNode(Pagination, {\n class: \"top-pagination\",\n pagination: _unref(pagination),\n path: \"/workouts\",\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"]),\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", {\n class: _normalizeClass({ smaller: 'de' === _unref(currentLanguage) })\n }, [\n _createElementVNode(\"tr\", null, [\n _hoisted_6,\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 1))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.DATE'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.DISTANCE'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.DURATION'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.AVE_SPEED'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.MAX_SPEED'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.ASCENT'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.DESCENT'))), 1)\n ])\n ], 2),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts), (workout) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: workout.id\n }, [\n _createElementVNode(\"td\", _hoisted_7, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t('workouts.SPORT', 1)), 1),\n (_unref(sports).length > 0)\n ? (_openBlock(), _createBlock(_component_SportImage, {\n key: 0,\n title: \n _unref(sports).find((s) => s.id === workout.sport_id)\n .translatedLabel\n ,\n \"sport-label\": _unref(getSportLabel)(workout, _unref(sports)),\n color: _unref(getSportColor)(workout, _unref(sports))\n }, null, 8, [\"title\", \"sport-label\", \"color\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"td\", {\n class: \"workout-title\",\n onMouseover: ($event: any) => (onHover(workout.id)),\n onMouseleave: _cache[0] || (_cache[0] = ($event: any) => (onHover(null)))\n }, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 1))), 1),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: { name: 'Workout', params: { workoutId: workout.id } }\n }, {\n default: _withCtx(() => [\n (workout.with_gpx)\n ? (_openBlock(), _createElementBlock(\"i\", _hoisted_11))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(workout.title), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]),\n (workout.with_gpx && hoverWorkoutId.value === workout.id)\n ? (_openBlock(), _createBlock(StaticMap, {\n key: 0,\n workout: workout,\n \"display-hover\": true\n }, null, 8, [\"workout\"]))\n : _createCommentVNode(\"\", true)\n ], 40, _hoisted_9),\n _createElementVNode(\"td\", _hoisted_13, [\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.$t('workouts.DATE')), 1),\n _createTextVNode(\" \" + _toDisplayString(_unref(formatDate)(\n workout.workout_date,\n _unref(user).timezone,\n _unref(user).date_format\n )), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_15, [\n _createElementVNode(\"span\", _hoisted_16, _toDisplayString(_ctx.$t('workouts.DISTANCE')), 1),\n _createVNode(_component_Distance, {\n distance: workout.distance,\n unitFrom: \"km\",\n useImperialUnits: _unref(user).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"])\n ]),\n _createElementVNode(\"td\", _hoisted_17, [\n _createElementVNode(\"span\", _hoisted_18, _toDisplayString(_ctx.$t('workouts.DURATION')), 1),\n _createTextVNode(\" \" + _toDisplayString(workout.moving), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_19, [\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t('workouts.AVE_SPEED')), 1),\n _createVNode(_component_Distance, {\n distance: workout.ave_speed,\n unitFrom: \"km\",\n speed: true,\n useImperialUnits: _unref(user).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"])\n ]),\n _createElementVNode(\"td\", _hoisted_21, [\n _createElementVNode(\"span\", _hoisted_22, _toDisplayString(_ctx.$t('workouts.MAX_SPEED')), 1),\n _createVNode(_component_Distance, {\n distance: workout.max_speed,\n unitFrom: \"km\",\n speed: true,\n useImperialUnits: _unref(user).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"])\n ]),\n _createElementVNode(\"td\", _hoisted_23, [\n _createElementVNode(\"span\", _hoisted_24, _toDisplayString(_ctx.$t('workouts.ASCENT')), 1),\n (workout.ascent !== null)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: workout.ascent,\n unitFrom: \"m\",\n useImperialUnits: _unref(user).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"td\", _hoisted_25, [\n _createElementVNode(\"span\", _hoisted_26, _toDisplayString(_ctx.$t('workouts.DESCENT')), 1),\n (workout.descent !== null)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: workout.descent,\n unitFrom: \"m\",\n useImperialUnits: _unref(user).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n }), 128))\n ])\n ]),\n _createVNode(Pagination, {\n pagination: _unref(pagination),\n path: \"/workouts\",\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"])\n ]))\n : _createCommentVNode(\"\", true)\n ], 2),\n (_unref(workouts).length === 0)\n ? (_openBlock(), _createBlock(NoWorkouts, { key: 0 }))\n : _createCommentVNode(\"\", true),\n _hoisted_27\n ]))\n}\n}\n\n})","import script from \"./WorkoutsList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutsList.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutsList.vue?vue&type=style&index=0&id=19504874&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-19504874\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-57ec0168\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n id: \"workouts\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container workouts-container\" }\nconst _hoisted_3 = { class: \"display-filters\" }\nconst _hoisted_4 = { class: \"list-container\" }\n\nimport { ComputedRef, computed, ref } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import WorkoutsFilters from '@/components/Workouts/WorkoutsFilters.vue'\n import WorkoutsList from '@/components/Workouts/WorkoutsList.vue'\n import { AUTH_USER_STORE, SPORTS_STORE } from '@/store/constants'\n import { ISport, ITranslatedSport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { translateSports } from '@/utils/sports'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutsView',\n setup(__props) {\n\n const { t } = useI18n()\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const translatedSports: ComputedRef = computed(() =>\n translateSports(sports.value, t)\n )\n const hiddenFilters = ref(true)\n\n function toggleFilters() {\n hiddenFilters.value = !hiddenFilters.value\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(authUser).username)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"filters-container\", { hidden: hiddenFilters.value }])\n }, [\n _createVNode(WorkoutsFilters, {\n sports: _unref(translatedSports),\n authUser: _unref(authUser),\n onFilter: toggleFilters\n }, null, 8, [\"sports\", \"authUser\"])\n ], 2),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", { onClick: toggleFilters }, [\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa-caret-${hiddenFilters.value ? 'down' : 'up'}`),\n \"aria-hidden\": \"true\"\n }, null, 2),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t(`workouts.${hiddenFilters.value ? 'DISPLAY' : 'HIDE'}_FILTERS`)), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(WorkoutsList, {\n user: _unref(authUser),\n sports: _unref(translatedSports)\n }, null, 8, [\"user\", \"sports\"])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./WorkoutsView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutsView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutsView.vue?vue&type=style&index=0&id=57ec0168&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-57ec0168\"]])\n\nexport default __exports__","let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nmodule.exports = { nanoid, customAlphabet }\n"],"names":["isMergeableObject","value","isNonNullObject","isSpecial","stringValue","Object","prototype","toString","call","isReactElement","canUseSymbol","Symbol","for","REACT_ELEMENT_TYPE","$$typeof","emptyTarget","val","Array","isArray","cloneUnlessOtherwiseSpecified","options","clone","deepmerge","defaultArrayMerge","target","source","concat","map","element","getMergeFunction","key","customMerge","getEnumerableOwnPropertySymbols","getOwnPropertySymbols","filter","symbol","propertyIsEnumerable","getKeys","keys","propertyIsOnObject","object","property","_","propertyIsUnsafe","hasOwnProperty","mergeObject","destination","forEach","arrayMerge","sourceIsArray","targetIsArray","sourceAndTargetTypesMatch","all","array","Error","reduce","prev","next","deepmerge_1","module","exports","ElementType","isTag","elem","type","Tag","Script","Style","defineProperty","Doctype","CDATA","Comment","Directive","Text","Root","string","TypeError","replace","__createBinding","this","create","o","m","k","k2","undefined","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","get","__setModuleDefault","v","__importStar","mod","result","Parser","Tokenizer_js_1","decode_js_1","formTags","Set","pTag","tableSectionTags","ddtTags","rtpTags","openImpliesClose","Map","voidElements","foreignContextElements","htmlIntegrationElements","reNameEnd","cbs","_a","_b","_c","_d","_e","startIndex","endIndex","openTagStart","tagname","attribname","attribvalue","attribs","stack","foreignContext","buffers","bufferOffset","writeIndex","ended","lowerCaseTagNames","lowerCaseTags","xmlMode","lowerCaseAttributeNames","tokenizer","Tokenizer","default","onparserinit","ontext","start","data","getSlice","ontextentity","cp","idx","getSectionStart","fromCodePoint","isVoidElement","name","has","onopentagname","toLowerCase","emitOpenTag","impliesClose","length","el","pop","onclosetag","push","onopentag","endOpenTag","isImplied","onopentagend","_f","pos","lastIndexOf","count","closeCurrentTag","onselfclosingtag","recognizeSelfClosing","isOpenImplied","onattribname","onattribdata","onattribentity","onattribend","quote","onattribute","QuoteType","Double","Single","NoValue","getInstructionName","search","substr","ondeclaration","onprocessinginstruction","oncomment","offset","oncommentend","oncdata","_g","_h","_j","_k","recognizeCDATA","oncdatastart","oncdataend","onend","i","reset","onreset","parseComplete","end","shiftBuffer","str","slice","shift","write","chunk","onerror","running","pause","resume","parseChunk","done","CharCodes","State","isWhitespace","c","Space","NewLine","Tab","FormFeed","CarriageReturn","isEndOfTagSection","Slash","Gt","isNumber","Zero","Nine","isASCIIAlpha","LowerA","LowerZ","UpperA","UpperZ","isHexDigit","UpperF","LowerF","Sequences","Cdata","Uint8Array","CdataEnd","CommentEnd","ScriptEnd","StyleEnd","TitleEnd","decodeEntities","state","buffer","sectionStart","index","baseState","sequenceIndex","trieIndex","trieCurrent","entityResult","entityExcess","entityTrie","xmlDecodeTree","htmlDecodeTree","currentSequence","parse","finish","getIndex","stateText","Lt","fastForwardTo","BeforeTagName","Amp","BeforeEntity","stateSpecialStartSequence","isEnd","isMatch","InTagName","stateInTagName","stateInSpecialTag","endOfText","actualIndex","stateInClosingTagName","Number","stateCDATASequence","InCommentLike","InDeclaration","stateInDeclaration","charCodeAt","stateInCommentLike","isTagStartChar","startSpecial","sequence","SpecialStartSequence","stateBeforeTagName","ExclamationMark","BeforeDeclaration","Questionmark","InProcessingInstruction","lower","BeforeSpecialS","BeforeClosingTagName","BeforeAttributeName","stateBeforeAttributeName","stateBeforeClosingTagName","InClosingTagName","InSpecialComment","AfterClosingTagName","stateAfterClosingTagName","InSpecialTag","InSelfClosingTag","InAttributeName","stateInSelfClosingTag","stateInAttributeName","Eq","AfterAttributeName","stateAfterAttributeName","BeforeAttributeValue","stateBeforeAttributeValue","DoubleQuote","InAttributeValueDq","SingleQuote","InAttributeValueSq","InAttributeValueNq","stateInAttributeValueNoQuotes","handleInAttributeValue","stateInAttributeValueDoubleQuotes","stateInAttributeValueSingleQuotes","Unquoted","stateBeforeDeclaration","OpeningSquareBracket","CDATASequence","Dash","BeforeComment","stateInProcessingInstruction","stateBeforeComment","stateInSpecialComment","stateBeforeSpecialS","stateBeforeEntity","Num","BeforeNumericEntity","InNamedEntity","stateInNamedEntity","determineBranch","emitNamedEntity","masked","BinTrieFlags","VALUE_LENGTH","valueLength","allowLegacyEntity","Semi","entityStart","emitPartial","emitCodePoint","stateBeforeNumericEntity","LowerX","InHexEntity","InNumericEntity","stateInNumericEntity","emitNumericEntity","strict","numberStart","replaceCodePoint","stateInHexEntity","cleanup","shouldContinue","handleTrailingData","__importDefault","DefaultHandler","DomUtils","parseFeed","getFeed","createDomStream","parseDOM","parseDocument","DomHandler","Parser_js_1","domhandler_1","handler","root","children","cb","elementCb","domutils_1","feed","attributeNames","elementNames","__assign","assign","t","s","n","arguments","p","apply","render","entities_1","foreignNames_js_1","unencodedElements","replaceQuotes","formatAttributes","attributes","opts","encode","encodeEntities","encodeXML","escapeAttribute","emptyAttrs","join","singleTag","node","nodes","output","renderNode","renderDirective","renderComment","renderCdata","renderTag","renderText","foreignModeIntegrationPoints","foreignElements","parent","tag","selfClosingTags","escapeText","__exportStar","domelementtype_1","node_js_1","defaultOpts","withStartIndices","withEndIndices","callback","elementCB","dom","Document","tagStack","lastNode","parser","handleCallback","error","Element","addNode","text","ProcessingInstruction","previousSibling","__extends","extendStatics","d","b","setPrototypeOf","__proto__","String","__","constructor","cloneNode","hasChildren","isDocument","isDirective","isComment","isText","isCDATA","NodeWithChildren","DataNode","Node","set","recursive","_super","_this","namespace","prefix","cloneChildren","clone_1","child","clone_2","clone_3","instruction","sourceCodeLocation","childs","stringify_js_1","legacy_js_1","doc","feedRoot","getOneElement","isValidFeed","getAtomFeed","getRssFeed","items","getElementsByTagName","item","entry","media","getMediaElements","addConditionally","href","link","description","fetch","pubDate","Date","updated","id","MEDIA_KEYS_STRING","MEDIA_KEYS_INT","where","medium","isDefault","_i","MEDIA_KEYS_STRING_1","attrib","MEDIA_KEYS_INT_1","parseInt","expression","tagName","recurse","textContent","trim","obj","prop","uniqueSort","compareDocumentPosition","DocumentPosition","removeSubsets","splice","ancestor","includes","nodeA","nodeB","aParents","bParents","current","unshift","maxIdx","Math","min","DISCONNECTED","sharedParent","siblings","aSibling","bSibling","indexOf","FOLLOWING","CONTAINED_BY","PRECEDING","CONTAINS","arr","sort","a","relative","getElementsByTagType","getElementById","getElements","testElement","querying_js_1","Checks","tag_name","tag_type","tag_contains","getAttribCheck","combineFuncs","compileTest","funcs","test","limit","Infinity","findOne","removeElement","replaceElement","replacement","appendChild","sibling","append","currNext","prependChild","prepend","findAll","existsOne","findOneChild","find","nodes_1","checked","some","innerText","getText","getInnerHTML","getOuterHTML","dom_serializer_1","prevElementSibling","nextElementSibling","getName","hasAttrib","getAttributeValue","getSiblings","getParent","getChildren","decodeXML","decodeHTMLStrict","decodeHTML","decodeCodePoint","decode_data_html_js_1","decode_data_xml_js_1","decode_codepoint_js_1","decode_codepoint_js_2","getDecoder","decodeTree","ret","lastIdx","strIdx","NUM","resultIdx","excess","treeIdx","SEMI","fromCharCode","base","To_LOWER_BIT","LOWER_X","ZERO","NINE","LOWER_A","LOWER_F","entity","substring","parsed","nodeIdx","char","branchCount","BRANCH_LENGTH","jumpOffset","JUMP_TABLE","lo","hi","mid","midVal","htmlDecoder","xmlDecoder","decodeMap","codePoint","encodeNonAsciiHTML","encodeHTML","encode_html_js_1","escape_js_1","htmlReplacer","encodeHTMLTrieRe","xmlReplacer","regExp","match","exec","nextChar","lastIndex","getCodePoint","escapeUTF8","escape","xmlCodeMap","getEscaper","regex","codePointAt","Uint16Array","split","restoreDiff","decodeXMLStrict","decodeHTML5Strict","decodeHTML4Strict","decodeHTML5","decodeHTML4","encodeHTML5","encodeHTML4","decodeStrict","decode","EncodingMode","DecodingMode","EntityLevel","encode_js_1","XML","level","HTML","mode","Strict","Legacy","UTF8","Attribute","ASCII","escape_js_2","encode_js_2","decode_js_2","isObject","isPlainObject","ctor","prot","factory","input","isSpace","collectCharacters","regEx","chars","url","descriptors","currentDescriptor","inputLength","regexLeadingSpaces","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexNonNegativeInteger","regexFloatingPoint","candidates","parseDescriptors","tokenize","charAt","w","h","lastChar","intVal","floatVal","pError","candidate","parseFloat","console","log","x","isColorSupported","bold","dim","italic","underline","inverse","hidden","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","createColors","Container","AtRule","defaults","super","proxyOf","registerAtRule","Rule","isClean","my","Declaration","cleanSource","markDirtyUp","each","iterator","getIterator","indexes","walk","e","addToError","walkDecls","RegExp","walkRules","selector","walkAtRules","walkComments","normalize","last","markDirty","reverse","first","cleanRaws","keepBetween","insertBefore","exist","add","existIndex","insertAfter","removeChild","removeAll","replaceValues","pattern","decl","props","fast","every","condition","sample","processed","rebuild","raws","before","getProxyProcessor","startsWith","args","toProxy","other","lastEach","registerParse","dependant","registerRule","registerRoot","pico","terminalHighlight","CssSyntaxError","message","line","column","file","plugin","reason","endLine","endColumn","setMessage","captureStackTrace","showSourceCode","color","css","mark","aside","lines","max","maxWidth","number","gutter","spacing","code","variable","LazyResult","Processor","toResult","lazy","stringify","registerLazyResult","registerProcessor","PreviousMap","Input","fromJSON","json","inputs","ownInputs","inputHydrated","inputId","SourceMapConsumer","SourceMapGenerator","fileURLToPath","pathToFileURL","resolve","isAbsolute","nanoid","fromOffsetCache","sourceMapAvailable","Boolean","pathAvailable","hasBOM","from","consumer","mapResolve","fromOffset","lastLine","lineToIndex","prevIndex","l","col","origin","to","fromUrl","originalPositionFor","URL","sourceRoot","mapFile","protocol","sourceContentFor","toJSON","consumerCache","registerInput","MapGenerator","Result","TYPE_TO_CLASS_NAME","document","atrule","rule","comment","PLUGIN_PROPS","postcssPlugin","prepare","Once","DeclarationExit","RuleExit","AtRuleExit","CommentExit","RootExit","DocumentExit","OnceExit","NOT_VISITORS","CHILDREN","isPromise","then","getEvents","toStack","events","eventIndex","visitors","visitorIndex","cleanMarks","postcss","processor","stringified","inline","syntax","helpers","plugins","toStringTag","content","sync","messages","warnings","onFulfilled","onRejected","async","catch","finally","onFinally","Promise","reject","processing","runAsync","getAsyncError","promise","runOnRoot","prepareVisitors","hasListener","walkSync","listeners","subRoot","visitSync","stringifier","generate","event","visitor","lastPlugin","handleError","roots","postcssVersion","err","visitTick","version","visit","registerPostcss","list","separators","func","inQuote","prevQuote","letter","space","spaces","comma","dirname","sep","cssString","mapOpts","usesFileUrls","absolute","isMap","previous","previousMaps","isInline","annotation","isSourcesContent","sourcesContent","withContent","clearAnnotation","setSourcesContent","already","toFileUrl","toUrl","path","setSourceContent","applyPrevMaps","applySourceMap","isAnnotation","toBase64","Buffer","window","btoa","unescape","encodeURIComponent","addAnnotation","outputFile","eol","generateMap","generateString","fromSourceMap","addMapping","generated","original","encodeURI","sourcePath","noSource","mapping","childless","semicolon","NoWorkResult","_processor","_css","_opts","_map","self","generatedCSS","generatedMap","_root","Stringifier","cloned","j","rangeBy","warn","remove","overrides","cloneBefore","cloneAfter","replaceWith","bookmark","foundSelf","after","raw","defaultType","between","fixed","emitInputs","inputsNextIndex","positionInside","positionBy","word","proxyCache","Proxy","postcssNode","SAFE_COMMENT_NEIGHBOR","empty","findLastWithPosition","tokens","token","customProperty","createTokenizer","endOfFile","nextToken","freeSemicolon","emptyRule","endFile","init","getPosition","left","right","colon","bracket","brackets","back","unclosedBracket","unknownWord","spacesAndCommentsFromEnd","firstSpaces","precheckMissedSemicolon","important","stringFrom","spacesFromEnd","cache","hasWord","checkMissedSemicolon","unnamedAtrule","open","params","afterName","spacesAndCommentsFromStart","unexpectedClose","unclosedBlock","ownSemicolon","clean","lastTokenType","entries","doubleColon","founded","Warning","initializer","warningPrinted","creator","LANG","transformer","process","processOpts","pluginOpts","atRule","existsSync","readFileSync","fromBase64","atob","loadAnnotation","startWith","loadMap","getAnnotationURL","sourceMapString","comments","decodeInline","baseCharsetUri","baseUri","charsetUri","uri","decodeURIComponent","lastMatch","encoding","loadFile","JSON","prevPath","mappings","_mappings","sections","use","normalized","warning","ignore","selectors","values","DEFAULT_RAW","indent","beforeDecl","beforeRule","beforeOpen","beforeClose","beforeComment","emptyBody","commentLeft","commentRight","capitalize","toUpperCase","builder","body","rawValue","block","own","detect","rawCache","beforeAfter","method","rawSemicolon","rawEmptyBody","rawIndent","parts","rawBeforeComment","rawBeforeDecl","rawBeforeRule","rawBeforeClose","rawBeforeOpen","rawColon","buf","depth","step","SINGLE_QUOTE","DOUBLE_QUOTE","BACKSLASH","SLASH","NEWLINE","SPACE","FEED","TAB","CR","OPEN_SQUARE","CLOSE_SQUARE","OPEN_PARENTHESES","CLOSE_PARENTHESES","OPEN_CURLY","CLOSE_CURLY","SEMICOLON","ASTERISK","COLON","AT","RE_AT_END","RE_WORD_END","RE_BAD_BRACKET","RE_HEX_ESCAPE","escaped","escapePos","currentToken","valueOf","ignoreErrors","returned","position","unclosed","what","ignoreUnclosed","controlChar","printed","range","opt","htmlparser","escapeStringRegexp","parseSrcset","postcssParse","mediaTags","vulnerableTags","isEmptyObject","stringifySrcset","parsedSrcset","part","sanitizeHtml","VALID_HTML_ATTRIBUTE_NAME","html","_recursing","tempResult","Frame","that","tagPosition","mediaChildren","updateParentNodeText","parentFrame","updateParentNodeMediaChildren","htmlParserDefaults","allowedTags","allowVulnerableTags","nonTextTagsArray","nonTextTags","allowedAttributesMap","allowedAttributesGlobMap","allowedAttributes","globRegex","allowedClassesMap","allowedClassesGlobMap","allowedClassesRegexMap","allowedClasses","classes","transformTagsMap","transformTagsAll","skipMap","transformMap","skipText","skipTextDepth","transformTags","transform","transFun","simpleTransform","addedText","initializeState","enforceHtmlBoundary","frame","skip","hasText","transformedTag","disallowedTagsMode","nestingLimit","allowedScriptHostnames","allowedScriptDomains","passedAllowedAttributesMapCheck","newValue","multiple","splitStrArray","allowedSchemesAppliedToAttributes","naughtyHref","allowed","parseUrl","allowedHostname","hostname","allowedDomain","domain","endsWith","isRelativeUrl","allowIframeRelativeUrls","allowedIframeHostnames","allowedIframeDomains","evil","allowedSpecificClasses","allowedWildcardClasses","allowedSpecificClassesGlob","allowedSpecificClassesRegex","allowedWildcardClassesGlob","allowedClassesGlobs","filterClasses","abstractSyntaxTree","filteredAST","filterCss","allowedStyles","stringifyStyleAttributes","escapeHtml","selfClosing","textFilter","lastFrame","exclusiveFilter","firstIndex","matches","allowProtocolRelative","scheme","allowedSchemesByTag","allowedSchemes","astRules","selectedRule","filterDeclarations","extractedAttributes","attrObject","allowedDeclarationsList","attributeObject","matchesRegex","regularExpression","allowedGlobs","clss","glob","img","newTagName","newAttribs","merge","_hoisted_1","_hoisted_2","_hoisted_3","class","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_37","_hoisted_38","_hoisted_39","_hoisted_40","_defineComponent","__name","authUser","sports","isCreation","loading","workout","setup","__props","useI18n","store","useStore","router","useRouter","toRefs","translatedSports","computed","translateSports","sport_id","appConfig","getters","ROOT_STORE","fileSizeLimit","max_single_file_size","getReadableFileSize","gpx_limit_import","zipSizeLimit","max_zip_file_size","errorMessages","workoutForm","reactive","title","notes","workoutDate","workoutTime","workoutDurationHour","workoutDurationMinutes","workoutDurationSeconds","workoutDistance","workoutAscent","workoutDescent","withGpx","ref","with_gpx","gpxFile","formErrors","payloadErrorMessages","updateNotes","updateWithGpx","updateFile","files","formatWorkoutForm","workoutDateTime","formatWorkoutDate","getDateWithTZ","workout_date","timezone","duration","imperial_units","convertDistance","distance","toFixed","workout_time","ascent","descent","isDistanceInvalid","isDurationInvalid","isElevationInvalid","formatPayload","payload","updateWorkout","commit","dispatch","WORKOUTS_STORE","workoutId","errorMessage","onCancel","go","invalidateForm","onMounted","onUnmounted","watch","newWorkout","previousWorkout","_ctx","_cache","_component_CustomTextArea","_resolveComponent","_component_ErrorMessage","_component_Loader","_component_Card","_openBlock","_createElementBlock","_normalizeClass","_unref","_createVNode","_withCtx","_createTextVNode","_toDisplayString","$t","_createElementVNode","errors","onSubmit","_withModifiers","disabled","onClick","_createCommentVNode","_withDirectives","required","onInvalid","$event","_Fragment","_renderList","sport","translatedLabel","_vModelSelect","accept","onInput","_vModelText","errored","placeholder","minlength","maxlength","onUpdateValue","_createBlock","__exports__","SPORTS_STORE","AUTH_USER_STORE","workoutData","WorkoutEdition","route","useRoute","onBeforeMount","newWorkoutId","_withScopeId","_pushScopeId","_popScopeId","workoutObject","emits","emit","downloadGpx","authApi","responseType","response","gpxFileUrl","createObjectURL","Blob","gpxLink","createElement","setAttribute","click","_component_SportImage","_component_router_link","inactive","previousUrl","$router","label","segmentId","nextUrl","recordType","records","record","record_type","directions","convertDegreeToDirection","angle","floor","weather","useImperialUnits","getWindDirectionTitle","windBearing","getWindSpeed","wind","style","_normalizeStyle","weatherStart","weatherEnd","src","icon","alt","getTemperature","temperature","humidity","WeatherWind","displayHARecord","withPause","pauses","_component_Distance","moving","WorkoutRecord","digits","unitFrom","strong","aveSpeed","speed","maxSpeed","maxAlt","minAlt","WorkoutWeather","$","nodeVal","get1","properties","val1","$num","isNaN","num1","getMulti","propertyNames","isElement","nodeType","getLineStyle","lineStyle","stroke","opacity","width","getExtensions","childNodes","abbreviateName","nodeName","parseNumeric","num","coordPair$1","ll","getAttribute","time","coordinates","extendedValues","extractProperties","extensions","getElementsByTagNameNS","parentNode","links","getPoints$1","pointname","pts","times","plural","fill","getRoute","_gpxType","geometry","getTrack","segments","track","extractedLines","segment","multi","coordinateProperties","getPoint","pair","gpxGen","feature","waypoint","point","gpx","features","PI","debounce","fn","timeout","context","clearTimeout","setTimeout","capitalizeFirstLetter","isFunction","propsBinder","methods","leafletElement","setMethodName","newVal","oldVal","remapEvents","contextAttrs","attrName","eventName","toLocaleLowerCase","resetWebpackIcon","Icon","modules","Default","_getIconUrl","mergeOptions","iconRetinaUrl","iconUrl","shadowUrl","provideLeafletWrapper","methodName","wrapped","wrapper","updateLeafletWrapper","leafletMethod","WINDOW_OR_GLOBAL","g","global","GLOBAL_LEAFLET_OPT","props$1","pane","attribution","custom","layerType","visible","setup$1","leafletRef","addLayer","removeLayer","componentOptions","componentMethods","addThisLayer","leafletObject","removeThisLayer","setAttribution","old","attributionControl","$parent","removeAttribution","addAttribution","setName","setLayerType","setVisible","isVisible","bindPopup","bindTooltip","unbindTooltip","tooltip","getTooltip","unbindPopup","popup","getPopup","updateVisibleProp","ready","slots","display","props$2","interactive","bubblingMouseEvents","props$3","weight","lineCap","lineJoin","dashArray","dashOffset","fillColor","fillOpacity","fillRule","className","props$4","latLng","radius","props$6","setup$6","setPosition","render$1","script$2","disableClickPropagation","disableScrollPropagation","useGlobalLeaflet","registerControl","Control","DomEvent","L","LControl","extend","onAdd","$slots","props$8","collapsed","autoZIndex","hideSingleBase","sortLayers","sortFunction","Function","setup$8","controlOptions","layer","addBaseLayer","addOverlay","script$4","registerLayerControl","control","layers","props$b","setup$b","layerOptions","layerMethods","props$d","geojson","setup$d","layerGroupMethods","setGeojson","clearLayers","addData","getGeoJSONData","toGeoJSON","getBounds","script$8","geoJSON","attrs","on","props$e","zIndex","tileSize","noWrap","minZoom","maxZoom","setup$e","props$f","iconSize","iconAnchor","popupAnchor","tooltipAnchor","shadowRetinaUrl","shadowSize","shadowAnchor","bgPos","script$a","canSetParentHtml","setParentHtml","setIcon","onDomEvent","offDomEvent","divIcon","iconObject","createIcon","recreationNeeded","htmlSwapNeeded","elHtml","innerHTML","scheduleCreateIcon","scheduleHtmlSwap","setIconUrl","setIconRetinaUrl","setIconSize","setIconAnchor","setPopupAnchor","setTooltipAnchor","setShadowUrl","setShadowRetinaUrl","setShadowAnchor","setBgPos","setClassName","setHtml","lDivIcon","lIcon","off","observer","MutationObserver","observe","childList","characterData","subtree","script$c","layerGroup","script$d","center","bounds","maxBounds","zoom","paddingBottomRight","paddingTopLeft","padding","worldCopyJump","crs","maxBoundsViscosity","inertia","inertiaDeceleration","inertiaMaxSpeed","easeLinearity","zoomAnimation","zoomAnimationThreshold","fadeAnimation","markerZoomAnimation","noBlockingAnimations","blueprint","layersToAdd","layersInControl","eventHandlers","moveEndHandler","getZoom","getCenter","overlayAddHandler","overlayRemoveHandler","CRS","latLngBounds","beforeMapMount","optionsCrs","EPSG3857","layerControl","_leaflet_id","lControlLayer","lControl","addControl","setZoom","animate","setPaddingBottomRight","setPaddingTopLeft","setPadding","setCrs","prevBounds","fitBounds","setBounds","newBounds","isValid","oldBounds","lastSetBounds","boundsChanged","equals","fitBoundsOptions","setCenter","newCenter","oldCenter","lastSetCenter","lat","lng","panTo","height","props$h","draggable","zIndexOffset","setup$g","setDraggable","dragging","enable","disable","latLngSync","latlng","setLatLng","oldLatLng","getLatLng","script$e","getElement","newIcon","marker","props$i","latLngs","smoothFactor","noClip","props$j","props$k","props$n","tms","subdomains","detectRetina","setup$m","gridLayerOptions","gridLayerMethods","script$j","tileLayer","markerCoordinates","isStart","latitude","LMarker","longitude","LIcon","workoutMap","geoJson","getGeoJson","startMarkerCoordinates","chartData","endMarkerCoordinates","isFullscreen","gpxContent","jsonData","DOMParser","parseFromString","resetZoom","toggleFullscreen","_component_VFullscreen","modelValue","LMap","ref_key","onReady","LControlLayers","LTileLayer","getApiUrl","map_attribution","LGeoJson","LLayerGroup","CustomMarker","displaySegment","displayModal","getWorkoutObject","getWorkoutObjectUrl","previous_workout","next_workout","urls","date_format","ave_speed","max_alt","max_speed","min_alt","segment_id","weather_end","weather_start","updateDisplayModal","deleteWorkout","newSegmentId","_component_Modal","onConfirmAction","onCancelAction","WorkoutCardTitle","onDisplayModal","WorkoutMap","WorkoutData","display_ascent","getOrCreateLegendList","legendContainer","listContainer","querySelector","htmlLegendPlugin","afterUpdate","chart","ul","containerID","firstChild","legendItems","legend","labels","generateLabels","li","onclick","datasetIndex","setDatasetVisibility","isDatasetVisible","update","checkBox","createTextNode","boxSpan","background","fillStyle","borderColor","strokeStyle","displayDistance","beginElevationAtZero","datasets","getDatasets","fromKmUnit","getUnitTo","fromMUnit","distance_labels","duration_labels","elevation","responsive","maintainAspectRatio","animation","layout","top","scales","grid","drawOnChartArea","ticks","formatDuration","ySpeed","yElevation","beginAtZero","elements","pointStyle","pointRadius","datalabels","interaction","intersect","callbacks","dataset","formattedValue","yAxisID","tooltipItems","emitCoordinates","dataIndex","htmlLegend","lineChartProps","useLineChart","updateDisplayDistance","toISOString","emitEmptyCoordinates","units","defaultTarget","LineChart","_mergeProps","onMouseleave","tlds","utlds","numeric","ascii","alpha","asciinumeric","alphanumeric","emoji","slashscheme","whitespace","registerGroup","groups","addToGroups","flags","group","flagsForToken","jr","jd","accepts","nextState","_nextState","exactOnly","ta","tt","tr","regexp","ts","len","templateState","allFlags","WORD","UWORD","LOCALHOST","TLD","UTLD","SCHEME","SLASH_SCHEME","WS","NL$1","OPENBRACE","OPENBRACKET","OPENANGLEBRACKET","OPENPAREN","CLOSEBRACE","CLOSEBRACKET","CLOSEANGLEBRACKET","CLOSEPAREN","AMPERSAND","APOSTROPHE","BACKTICK","CARET","COMMA","DOLLAR","DOT","EQUALS","EXCLAMATION","HYPHEN","PERCENT","PIPE","PLUS","POUND","QUERY","QUOTE","TILDE","UNDERSCORE","EMOJI$1","SYM","tk","freeze","NL","EMOJI","ASCII_LETTER","LETTER","DIGIT","EMOJI_VARIATION","EMOJI_JOINER","init$2","customSchemes","_tr","_tr2","_tr3","_tr4","_tt","_tr5","Start","Word","UWord","Ws","Emoji","EmojiJoiner","wordjr","uwordjr","fastts","tld","utld","_i2","_ref","_ref2","sch","optionalSlashSlash","run$1","iterable","stringToArray","charCount","cursor","charCursor","tokenLength","latestAccepting","sinceAccepts","charsSinceAccepts","second","defaultt","_inheritsLoose","subClass","superClass","_setPrototypeOf","defaultProtocol","format","noop","formatHref","nl2br","rel","validate","truncate","ignoreTags","Options","defaultRender","ignoredTags","uppercaseIgnoredTags","ir","check","operator","isCallable","option","getObj","renderFn","MultiToken","createTokenClass","Token","_MultiToken","isLink","toHref","toFormattedString","formatted","toFormattedHref","toObject","toFormattedObject","eventListeners","Email","Nl","Url","hasProtocol","makeState","arg","init$1","qsAccepting","qsNonAccepting","localpartAccepting","Localpart","Domain","Scheme","SlashScheme","LocalpartAt","LocalpartDot","EmailDomain","EmailDomainDot","Email$1","EmailDomainHyphen","EmailColon","DomainHyphen","DomainDot","DomainDotTld","DomainDotTldColon","DomainDotTldColonPort","Url$1","UrlNonaccept","UriPrefix","SlashSchemeColon","SlashSchemeColonSlash","UrlOpenbrace","UrlOpenbracket","UrlOpenanglebracket","UrlOpenparen","UrlOpenbraceQ","UrlOpenbracketQ","UrlOpenanglebracketQ","UrlOpenparenQ","UrlOpenbraceSyms","UrlOpenbracketSyms","UrlOpenanglebracketSyms","UrlOpenparenSyms","run","multis","textTokens","secondState","multiLength","initMultiToken","Multi","subtokens","startIdx","endIdx","INIT","scanner","tokenQueue","pluginQueue","initialized","HTML5NamedCharRefs","amp","gt","lt","nbsp","quot","HEXCHARCODE","CHARCODE","NAMED","EntityParser","named","WSP","ALPHA","CRLF","isAlpha","preprocessInput","EventedTokenizer","delegate","entityParser","tagNameBuffer","states","beforeData","peek","isIgnoredEndTag","consume","transitionTo","beginData","markTagStart","appendToData","consumeCharRef","finishData","tagOpen","beginStartTag","appendToTagName","markupDeclarationOpen","beginComment","maybeDoctype","beginDoctype","doctype","beforeDoctypeName","appendToDoctypeName","doctypeName","endDoctype","afterDoctypeName","nextSixChars","isPublic","isSystem","afterDoctypePublicKeyword","doctypePublicIdentifierDoubleQuoted","appendToDoctypePublicIdentifier","doctypePublicIdentifierSingleQuoted","afterDoctypePublicIdentifier","betweenDoctypePublicAndSystemIdentifiers","doctypeSystemIdentifierDoubleQuoted","appendToDoctypeSystemIdentifier","doctypeSystemIdentifierSingleQuoted","afterDoctypeSystemIdentifier","commentStart","finishComment","appendToCommentData","commentStartDash","commentEndDash","commentEnd","finishTag","endTagName","beforeAttributeName","reportSyntaxError","beginAttribute","appendToAttributeName","attributeName","beginAttributeValue","finishAttributeValue","afterAttributeName","beforeAttributeValue","appendToAttributeValue","attributeValueDoubleQuoted","attributeValueSingleQuoted","attributeValueUnquoted","afterAttributeValueQuoted","selfClosingStartTag","markTagAsSelfClosing","endTagOpen","beginEndTag","tokenizePart","tokenizeEOF","flushData","startLine","startColumn","_currentAttribute","currentAttribute","addLocInfo","loc","publicIdentifier","systemIdentifier","isQuoted","syntaxError","LinkifyResult","StartTag","EndTag","Chars","linkifyHtml","linkifiedTokens","linkified","isIgnored","preskipLen","skipTagTokens","linkifedChars","linkifyChars","_token","rendered","attributeArrayToStrings","skippedTokens","stackCount","attributesToString","escapeAttr","attr","attrStrs","linkifyAndClean","workout_id","updateCoordinates","WorkoutDetail","WorkoutChart","onGetCoordinates","WorkoutSegments","WorkoutNotes","NotFound","toUnit","query","handleFilterChange","onFilter","onClearFilter","newQuery","$route","onChange","sports_list","distance_from","distance_to","duration_from","duration_to","ave_speed_from","ave_speed_to","max_speed_from","max_speed_to","user","orderByList","workouts","pagination","currentLanguage","getWorkoutsQuery","hoverWorkoutId","loadWorkouts","getConvertedPayload","reloadWorkouts","queryParam","queryValue","workoutQuery","getQuery","defaultOrder","defaultSort","workoutsPayloadKeys","convertedPayload","onHover","total","FilterSelects","sortList","order_by","onUpdateSelect","Pagination","smaller","getSportLabel","getSportColor","onMouseover","StaticMap","formatDate","NoWorkouts","hiddenFilters","toggleFilters","username","WorkoutsFilters","WorkoutsList","urlAlphabet","customAlphabet","alphabet","defaultSize","size","random"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/workouts.143c4328.js","mappings":"6HAEA,IAAIA,EAAoB,SAA2BC,GAClD,OAAOC,EAAgBD,KAClBE,EAAUF,EAChB,EAEA,SAASC,EAAgBD,GACxB,QAASA,GAA0B,kBAAVA,CAC1B,CAEA,SAASE,EAAUF,GAClB,IAAIG,EAAcC,OAAOC,UAAUC,SAASC,KAAKP,GAEjD,MAAuB,oBAAhBG,GACa,kBAAhBA,GACAK,EAAeR,EACpB,CAGA,IAAIS,EAAiC,oBAAXC,QAAyBA,OAAOC,IACtDC,EAAqBH,EAAeC,OAAOC,IAAI,iBAAmB,MAEtE,SAASH,EAAeR,GACvB,OAAOA,EAAMa,WAAaD,CAC3B,CAEA,SAASE,EAAYC,GACpB,OAAOC,MAAMC,QAAQF,GAAO,GAAK,CAAC,CACnC,CAEA,SAASG,EAA8BlB,EAAOmB,GAC7C,OAA0B,IAAlBA,EAAQC,OAAmBD,EAAQpB,kBAAkBC,GAC1DqB,EAAUP,EAAYd,GAAQA,EAAOmB,GACrCnB,CACJ,CAEA,SAASsB,EAAkBC,EAAQC,EAAQL,GAC1C,OAAOI,EAAOE,OAAOD,GAAQE,KAAI,SAASC,GACzC,OAAOT,EAA8BS,EAASR,EAC/C,GACD,CAEA,SAASS,EAAiBC,EAAKV,GAC9B,IAAKA,EAAQW,YACZ,OAAOT,EAER,IAAIS,EAAcX,EAAQW,YAAYD,GACtC,MAA8B,oBAAhBC,EAA6BA,EAAcT,CAC1D,CAEA,SAASU,EAAgCR,GACxC,OAAOnB,OAAO4B,sBACX5B,OAAO4B,sBAAsBT,GAAQU,QAAO,SAASC,GACtD,OAAOX,EAAOY,qBAAqBD,EACpC,IACE,EACJ,CAEA,SAASE,EAAQb,GAChB,OAAOnB,OAAOiC,KAAKd,GAAQE,OAAOM,EAAgCR,GACnE,CAEA,SAASe,EAAmBC,EAAQC,GACnC,IACC,OAAOA,KAAYD,CAGpB,CAFE,MAAME,GACP,OAAO,CACR,CACD,CAGA,SAASC,EAAiBnB,EAAQM,GACjC,OAAOS,EAAmBf,EAAQM,MAC5BzB,OAAOuC,eAAepC,KAAKgB,EAAQM,IACpCzB,OAAO+B,qBAAqB5B,KAAKgB,EAAQM,GAC/C,CAEA,SAASe,EAAYrB,EAAQC,EAAQL,GACpC,IAAI0B,EAAc,CAAC,EAiBnB,OAhBI1B,EAAQpB,kBAAkBwB,IAC7Ba,EAAQb,GAAQuB,SAAQ,SAASjB,GAChCgB,EAAYhB,GAAOX,EAA8BK,EAAOM,GAAMV,EAC/D,IAEDiB,EAAQZ,GAAQsB,SAAQ,SAASjB,GAC5Ba,EAAiBnB,EAAQM,KAIzBS,EAAmBf,EAAQM,IAAQV,EAAQpB,kBAAkByB,EAAOK,IACvEgB,EAAYhB,GAAOD,EAAiBC,EAAKV,EAAtBS,CAA+BL,EAAOM,GAAML,EAAOK,GAAMV,GAE5E0B,EAAYhB,GAAOX,EAA8BM,EAAOK,GAAMV,GAEhE,IACO0B,CACR,CAEA,SAASxB,EAAUE,EAAQC,EAAQL,GAClCA,EAAUA,GAAW,CAAC,EACtBA,EAAQ4B,WAAa5B,EAAQ4B,YAAczB,EAC3CH,EAAQpB,kBAAoBoB,EAAQpB,mBAAqBA,EAGzDoB,EAAQD,8BAAgCA,EAExC,IAAI8B,EAAgBhC,MAAMC,QAAQO,GAC9ByB,EAAgBjC,MAAMC,QAAQM,GAC9B2B,EAA4BF,IAAkBC,EAElD,OAAKC,EAEMF,EACH7B,EAAQ4B,WAAWxB,EAAQC,EAAQL,GAEnCyB,EAAYrB,EAAQC,EAAQL,GAJ5BD,EAA8BM,EAAQL,EAM/C,CAEAE,EAAU8B,IAAM,SAAsBC,EAAOjC,GAC5C,IAAKH,MAAMC,QAAQmC,GAClB,MAAM,IAAIC,MAAM,qCAGjB,OAAOD,EAAME,QAAO,SAASC,EAAMC,GAClC,OAAOnC,EAAUkC,EAAMC,EAAMrC,EAC9B,GAAG,CAAC,EACL,EAEA,IAAIsC,EAAcpC,EAElBqC,EAAOC,QAAUF,C,kCChIjB,IAAIG,EA0BJ,SAASC,EAAMC,GACX,OAAQA,EAAKC,OAASH,EAAYI,KAC9BF,EAAKC,OAASH,EAAYK,QAC1BH,EAAKC,OAASH,EAAYM,KAClC,CAjCA9D,OAAO+D,eAAeR,EAAS,aAAc,CAAE3D,OAAO,IACtD2D,EAAQS,QAAUT,EAAQU,MAAQV,EAAQK,IAAML,EAAQO,MAAQP,EAAQM,OAASN,EAAQW,QAAUX,EAAQY,UAAYZ,EAAQa,KAAOb,EAAQc,KAAOd,EAAQE,MAAQF,EAAQC,iBAAc,EAG3L,SAAWA,GAEPA,EAAY,QAAU,OAEtBA,EAAY,QAAU,OAEtBA,EAAY,aAAe,YAE3BA,EAAY,WAAa,UAEzBA,EAAY,UAAY,SAExBA,EAAY,SAAW,QAEvBA,EAAY,OAAS,MAErBA,EAAY,SAAW,QAEvBA,EAAY,WAAa,SAC5B,CAnBD,CAmBGA,EAAcD,EAAQC,cAAgBD,EAAQC,YAAc,CAAC,IAWhED,EAAQE,MAAQA,EAGhBF,EAAQc,KAAOb,EAAYa,KAE3Bd,EAAQa,KAAOZ,EAAYY,KAE3Bb,EAAQY,UAAYX,EAAYW,UAEhCZ,EAAQW,QAAUV,EAAYU,QAE9BX,EAAQM,OAASL,EAAYK,OAE7BN,EAAQO,MAAQN,EAAYM,MAE5BP,EAAQK,IAAMJ,EAAYI,IAE1BL,EAAQU,MAAQT,EAAYS,MAE5BV,EAAQS,QAAUR,EAAYQ,O,gCCpD9BV,EAAOC,QAAUe,IAChB,GAAsB,kBAAXA,EACV,MAAM,IAAIC,UAAU,qBAKrB,OAAOD,EACLE,QAAQ,sBAAuB,QAC/BA,QAAQ,KAAM,QAAQ,C,mCCVzB,IAAIC,EAAmBC,MAAQA,KAAKD,kBAAqBzE,OAAO2E,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOjF,OAAOkF,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMC,IAAK,WAAa,OAAOV,EAAEC,EAAI,IAE5D9E,OAAO+D,eAAea,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGU,EAAsBd,MAAQA,KAAKc,qBAAwBxF,OAAO2E,OAAS,SAAUC,EAAGa,GACxFzF,OAAO+D,eAAea,EAAG,UAAW,CAAEU,YAAY,EAAM1F,MAAO6F,GAClE,EAAI,SAASb,EAAGa,GACbb,EAAE,WAAaa,CACnB,GACIC,EAAgBhB,MAAQA,KAAKgB,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIR,WAAY,OAAOQ,EAClC,IAAIC,EAAS,CAAC,EACd,GAAW,MAAPD,EAAa,IAAK,IAAIb,KAAKa,EAAe,YAANb,GAAmB9E,OAAOC,UAAUsC,eAAepC,KAAKwF,EAAKb,IAAIL,EAAgBmB,EAAQD,EAAKb,GAEtI,OADAU,EAAmBI,EAAQD,GACpBC,CACX,EACA5F,OAAO+D,eAAeR,EAAS,aAAc,CAAE3D,OAAO,IACtD2D,EAAQsC,YAAS,EACjB,IAAIC,EAAiBJ,EAAa,EAAQ,OACtCK,EAAc,EAAQ,MACtBC,EAAW,IAAIC,IAAI,CACnB,QACA,SACA,WACA,SACA,SACA,WACA,aAEAC,EAAO,IAAID,IAAI,CAAC,MAChBE,EAAmB,IAAIF,IAAI,CAAC,QAAS,UACrCG,EAAU,IAAIH,IAAI,CAAC,KAAM,OACzBI,EAAU,IAAIJ,IAAI,CAAC,KAAM,OACzBK,EAAmB,IAAIC,IAAI,CAC3B,CAAC,KAAM,IAAIN,IAAI,CAAC,KAAM,KAAM,QAC5B,CAAC,KAAM,IAAIA,IAAI,CAAC,QAChB,CAAC,KAAM,IAAIA,IAAI,CAAC,QAAS,KAAM,QAC/B,CAAC,OAAQ,IAAIA,IAAI,CAAC,OAAQ,OAAQ,YAClC,CAAC,KAAM,IAAIA,IAAI,CAAC,QAChB,CAAC,IAAKC,GACN,CAAC,KAAMA,GACP,CAAC,KAAMA,GACP,CAAC,KAAMA,GACP,CAAC,KAAMA,GACP,CAAC,KAAMA,GACP,CAAC,KAAMA,GACP,CAAC,SAAUF,GACX,CAAC,QAASA,GACV,CAAC,SAAUA,GACX,CAAC,SAAUA,GACX,CAAC,WAAYA,GACb,CAAC,WAAYA,GACb,CAAC,SAAU,IAAIC,IAAI,CAAC,YACpB,CAAC,WAAY,IAAIA,IAAI,CAAC,WAAY,YAClC,CAAC,KAAMG,GACP,CAAC,KAAMA,GACP,CAAC,UAAWF,GACZ,CAAC,UAAWA,GACZ,CAAC,QAASA,GACV,CAAC,aAAcA,GACf,CAAC,UAAWA,GACZ,CAAC,MAAOA,GACR,CAAC,KAAMA,GACP,CAAC,WAAYA,GACb,CAAC,aAAcA,GACf,CAAC,SAAUA,GACX,CAAC,SAAUA,GACX,CAAC,OAAQA,GACT,CAAC,SAAUA,GACX,CAAC,KAAMA,GACP,CAAC,OAAQA,GACT,CAAC,MAAOA,GACR,CAAC,KAAMA,GACP,CAAC,MAAOA,GACR,CAAC,UAAWA,GACZ,CAAC,QAASA,GACV,CAAC,KAAMA,GACP,CAAC,KAAMG,GACP,CAAC,KAAMA,GACP,CAAC,QAASF,GACV,CAAC,QAASA,KAEVK,EAAe,IAAIP,IAAI,CACvB,OACA,OACA,WACA,KACA,MACA,UACA,QACA,QACA,KACA,MACA,QACA,UACA,SACA,OACA,OACA,QACA,SACA,QACA,QAEAQ,EAAyB,IAAIR,IAAI,CAAC,OAAQ,QAC1CS,EAA0B,IAAIT,IAAI,CAClC,KACA,KACA,KACA,KACA,QACA,iBACA,gBACA,OACA,UAEAU,EAAY,QACZd,EAAwB,WACxB,SAASA,EAAOe,EAAK7F,GAEjB,IAAI8F,EAAIC,EAAIC,EAAIC,EAAIC,OADJ,IAAZlG,IAAsBA,EAAU,CAAC,GAErC2D,KAAK3D,QAAUA,EAEf2D,KAAKwC,WAAa,EAElBxC,KAAKyC,SAAW,EAKhBzC,KAAK0C,aAAe,EACpB1C,KAAK2C,QAAU,GACf3C,KAAK4C,WAAa,GAClB5C,KAAK6C,YAAc,GACnB7C,KAAK8C,QAAU,KACf9C,KAAK+C,MAAQ,GACb/C,KAAKgD,eAAiB,GACtBhD,KAAKiD,QAAU,GACfjD,KAAKkD,aAAe,EAEpBlD,KAAKmD,WAAa,EAElBnD,KAAKoD,OAAQ,EACbpD,KAAKkC,IAAc,OAARA,QAAwB,IAARA,EAAiBA,EAAM,CAAC,EACnDlC,KAAKqD,kBAAqD,QAAhClB,EAAK9F,EAAQiH,qBAAkC,IAAPnB,EAAgBA,GAAM9F,EAAQkH,QAChGvD,KAAKwD,wBAC0C,QAA1CpB,EAAK/F,EAAQmH,+BAA4C,IAAPpB,EAAgBA,GAAM/F,EAAQkH,QACrFvD,KAAKyD,UAAY,IAAkC,QAA5BpB,EAAKhG,EAAQqH,iBAA8B,IAAPrB,EAAgBA,EAAKjB,EAAeuC,SAAS3D,KAAK3D,QAAS2D,MAC9E,QAAvCuC,GAAMD,EAAKtC,KAAKkC,KAAK0B,oBAAiC,IAAPrB,GAAyBA,EAAG9G,KAAK6G,EAAItC,KACzF,CAsWA,OAnWAmB,EAAO5F,UAAUsI,OAAS,SAAUC,EAAOrB,GACvC,IAAIN,EAAIC,EACJ2B,EAAO/D,KAAKgE,SAASF,EAAOrB,GAChCzC,KAAKyC,SAAWA,EAAW,EACO,QAAjCL,GAAMD,EAAKnC,KAAKkC,KAAK2B,cAA2B,IAAPzB,GAAyBA,EAAG3G,KAAK0G,EAAI4B,GAC/E/D,KAAKwC,WAAaC,CACtB,EAEAtB,EAAO5F,UAAU0I,aAAe,SAAUC,GACtC,IAAI/B,EAAIC,EAKJ+B,EAAMnE,KAAKyD,UAAUW,kBACzBpE,KAAKyC,SAAW0B,EAAM,EACY,QAAjC/B,GAAMD,EAAKnC,KAAKkC,KAAK2B,cAA2B,IAAPzB,GAAyBA,EAAG3G,KAAK0G,GAAI,EAAId,EAAYgD,eAAeH,IAC9GlE,KAAKwC,WAAa2B,CACtB,EACAhD,EAAO5F,UAAU+I,cAAgB,SAAUC,GACvC,OAAQvE,KAAK3D,QAAQkH,SAAWzB,EAAa0C,IAAID,EACrD,EAEApD,EAAO5F,UAAUkJ,cAAgB,SAAUX,EAAOrB,GAC9CzC,KAAKyC,SAAWA,EAChB,IAAI8B,EAAOvE,KAAKgE,SAASF,EAAOrB,GAC5BzC,KAAKqD,oBACLkB,EAAOA,EAAKG,eAEhB1E,KAAK2E,YAAYJ,EACrB,EACApD,EAAO5F,UAAUoJ,YAAc,SAAUJ,GACrC,IAAIpC,EAAIC,EAAIC,EAAIC,EAChBtC,KAAK0C,aAAe1C,KAAKwC,WACzBxC,KAAK2C,QAAU4B,EACf,IAAIK,GAAgB5E,KAAK3D,QAAQkH,SAAW3B,EAAiBf,IAAI0D,GACjE,GAAIK,EACA,MAAO5E,KAAK+C,MAAM8B,OAAS,GACvBD,EAAaJ,IAAIxE,KAAK+C,MAAM/C,KAAK+C,MAAM8B,OAAS,IAAK,CACrD,IAAIC,EAAK9E,KAAK+C,MAAMgC,MACkB,QAArC3C,GAAMD,EAAKnC,KAAKkC,KAAK8C,kBAA+B,IAAP5C,GAAyBA,EAAG3G,KAAK0G,EAAI2C,GAAI,EAC3F,CAEC9E,KAAKsE,cAAcC,KACpBvE,KAAK+C,MAAMkC,KAAKV,GACZxC,EAAuByC,IAAID,GAC3BvE,KAAKgD,eAAeiC,MAAK,GAEpBjD,EAAwBwC,IAAID,IACjCvE,KAAKgD,eAAeiC,MAAK,IAGQ,QAAxC3C,GAAMD,EAAKrC,KAAKkC,KAAKuC,qBAAkC,IAAPnC,GAAyBA,EAAG7G,KAAK4G,EAAIkC,GAClFvE,KAAKkC,IAAIgD,YACTlF,KAAK8C,QAAU,CAAC,EACxB,EACA3B,EAAO5F,UAAU4J,WAAa,SAAUC,GACpC,IAAIjD,EAAIC,EACRpC,KAAKwC,WAAaxC,KAAK0C,aACnB1C,KAAK8C,UACgC,QAApCV,GAAMD,EAAKnC,KAAKkC,KAAKgD,iBAA8B,IAAP9C,GAAyBA,EAAG3G,KAAK0G,EAAInC,KAAK2C,QAAS3C,KAAK8C,QAASsC,GAC9GpF,KAAK8C,QAAU,MAEf9C,KAAKkC,IAAI8C,YAAchF,KAAKsE,cAActE,KAAK2C,UAC/C3C,KAAKkC,IAAI8C,WAAWhF,KAAK2C,SAAS,GAEtC3C,KAAK2C,QAAU,EACnB,EAEAxB,EAAO5F,UAAU8J,aAAe,SAAU5C,GACtCzC,KAAKyC,SAAWA,EAChBzC,KAAKmF,YAAW,GAEhBnF,KAAKwC,WAAaC,EAAW,CACjC,EAEAtB,EAAO5F,UAAUyJ,WAAa,SAAUlB,EAAOrB,GAC3C,IAAIN,EAAIC,EAAIC,EAAIC,EAAIC,EAAI+C,EACxBtF,KAAKyC,SAAWA,EAChB,IAAI8B,EAAOvE,KAAKgE,SAASF,EAAOrB,GAQhC,GAPIzC,KAAKqD,oBACLkB,EAAOA,EAAKG,gBAEZ3C,EAAuByC,IAAID,IAC3BvC,EAAwBwC,IAAID,KAC5BvE,KAAKgD,eAAe+B,MAEnB/E,KAAKsE,cAAcC,GAmBdvE,KAAK3D,QAAQkH,SAAoB,OAATgB,IAEW,QAAxCnC,GAAMD,EAAKnC,KAAKkC,KAAKuC,qBAAkC,IAAPrC,GAAyBA,EAAG3G,KAAK0G,EAAI,MACjD,QAApCG,GAAMD,EAAKrC,KAAKkC,KAAKgD,iBAA8B,IAAP5C,GAAyBA,EAAG7G,KAAK4G,EAAI,KAAM,CAAC,GAAG,GACtD,QAArCiD,GAAM/C,EAAKvC,KAAKkC,KAAK8C,kBAA+B,IAAPM,GAAyBA,EAAG7J,KAAK8G,EAAI,MAAM,QAvB9D,CAC3B,IAAIgD,EAAMvF,KAAK+C,MAAMyC,YAAYjB,GACjC,IAAa,IAATgB,EACA,GAAIvF,KAAKkC,IAAI8C,WAAY,CACrB,IAAIS,EAAQzF,KAAK+C,MAAM8B,OAASU,EAChC,MAAOE,IAEHzF,KAAKkC,IAAI8C,WAAWhF,KAAK+C,MAAMgC,MAAiB,IAAVU,EAE9C,MAEIzF,KAAK+C,MAAM8B,OAASU,OAElBvF,KAAK3D,QAAQkH,SAAoB,MAATgB,IAE9BvE,KAAK2E,YAAY,KACjB3E,KAAK0F,iBAAgB,GAE7B,CAQA1F,KAAKwC,WAAaC,EAAW,CACjC,EAEAtB,EAAO5F,UAAUoK,iBAAmB,SAAUlD,GAC1CzC,KAAKyC,SAAWA,EACZzC,KAAK3D,QAAQkH,SACbvD,KAAK3D,QAAQuJ,sBACb5F,KAAKgD,eAAehD,KAAKgD,eAAe6B,OAAS,IACjD7E,KAAK0F,iBAAgB,GAErB1F,KAAKwC,WAAaC,EAAW,GAI7BzC,KAAKqF,aAAa5C,EAE1B,EACAtB,EAAO5F,UAAUmK,gBAAkB,SAAUG,GACzC,IAAI1D,EAAIC,EACJmC,EAAOvE,KAAK2C,QAChB3C,KAAKmF,WAAWU,GAEZ7F,KAAK+C,MAAM/C,KAAK+C,MAAM8B,OAAS,KAAON,IAEA,QAArCnC,GAAMD,EAAKnC,KAAKkC,KAAK8C,kBAA+B,IAAP5C,GAAyBA,EAAG3G,KAAK0G,EAAIoC,GAAOsB,GAC1F7F,KAAK+C,MAAMgC,MAEnB,EAEA5D,EAAO5F,UAAUuK,aAAe,SAAUhC,EAAOrB,GAC7CzC,KAAKwC,WAAasB,EAClB,IAAIS,EAAOvE,KAAKgE,SAASF,EAAOrB,GAChCzC,KAAK4C,WAAa5C,KAAKwD,wBACjBe,EAAKG,cACLH,CACV,EAEApD,EAAO5F,UAAUwK,aAAe,SAAUjC,EAAOrB,GAC7CzC,KAAK6C,aAAe7C,KAAKgE,SAASF,EAAOrB,EAC7C,EAEAtB,EAAO5F,UAAUyK,eAAiB,SAAU9B,GACxClE,KAAK6C,cAAe,EAAIxB,EAAYgD,eAAeH,EACvD,EAEA/C,EAAO5F,UAAU0K,YAAc,SAAUC,EAAOzD,GAC5C,IAAIN,EAAIC,EACRpC,KAAKyC,SAAWA,EACuB,QAAtCL,GAAMD,EAAKnC,KAAKkC,KAAKiE,mBAAgC,IAAP/D,GAAyBA,EAAG3G,KAAK0G,EAAInC,KAAK4C,WAAY5C,KAAK6C,YAAaqD,IAAU9E,EAAegF,UAAUC,OACpJ,IACAH,IAAU9E,EAAegF,UAAUE,OAC/B,IACAJ,IAAU9E,EAAegF,UAAUG,aAC/BjG,EACA,MACVN,KAAK8C,UACJxH,OAAOC,UAAUsC,eAAepC,KAAKuE,KAAK8C,QAAS9C,KAAK4C,cACzD5C,KAAK8C,QAAQ9C,KAAK4C,YAAc5C,KAAK6C,aAEzC7C,KAAK6C,YAAc,EACvB,EACA1B,EAAO5F,UAAUiL,mBAAqB,SAAUtL,GAC5C,IAAIiJ,EAAMjJ,EAAMuL,OAAOxE,GACnBsC,EAAOJ,EAAM,EAAIjJ,EAAQA,EAAMwL,OAAO,EAAGvC,GAI7C,OAHInE,KAAKqD,oBACLkB,EAAOA,EAAKG,eAETH,CACX,EAEApD,EAAO5F,UAAUoL,cAAgB,SAAU7C,EAAOrB,GAC9CzC,KAAKyC,SAAWA,EAChB,IAAIvH,EAAQ8E,KAAKgE,SAASF,EAAOrB,GACjC,GAAIzC,KAAKkC,IAAI0E,wBAAyB,CAClC,IAAIrC,EAAOvE,KAAKwG,mBAAmBtL,GACnC8E,KAAKkC,IAAI0E,wBAAwB,IAAIjK,OAAO4H,GAAO,IAAI5H,OAAOzB,GAClE,CAEA8E,KAAKwC,WAAaC,EAAW,CACjC,EAEAtB,EAAO5F,UAAUqL,wBAA0B,SAAU9C,EAAOrB,GACxDzC,KAAKyC,SAAWA,EAChB,IAAIvH,EAAQ8E,KAAKgE,SAASF,EAAOrB,GACjC,GAAIzC,KAAKkC,IAAI0E,wBAAyB,CAClC,IAAIrC,EAAOvE,KAAKwG,mBAAmBtL,GACnC8E,KAAKkC,IAAI0E,wBAAwB,IAAIjK,OAAO4H,GAAO,IAAI5H,OAAOzB,GAClE,CAEA8E,KAAKwC,WAAaC,EAAW,CACjC,EAEAtB,EAAO5F,UAAUsL,UAAY,SAAU/C,EAAOrB,EAAUqE,GACpD,IAAI3E,EAAIC,EAAIC,EAAIC,EAChBtC,KAAKyC,SAAWA,EACqB,QAApCL,GAAMD,EAAKnC,KAAKkC,KAAK2E,iBAA8B,IAAPzE,GAAyBA,EAAG3G,KAAK0G,EAAInC,KAAKgE,SAASF,EAAOrB,EAAWqE,IAC1E,QAAvCxE,GAAMD,EAAKrC,KAAKkC,KAAK6E,oBAAiC,IAAPzE,GAAyBA,EAAG7G,KAAK4G,GAEjFrC,KAAKwC,WAAaC,EAAW,CACjC,EAEAtB,EAAO5F,UAAUyL,QAAU,SAAUlD,EAAOrB,EAAUqE,GAClD,IAAI3E,EAAIC,EAAIC,EAAIC,EAAIC,EAAI+C,EAAI2B,EAAIC,EAAIC,EAAIC,EACxCpH,KAAKyC,SAAWA,EAChB,IAAIvH,EAAQ8E,KAAKgE,SAASF,EAAOrB,EAAWqE,GACxC9G,KAAK3D,QAAQkH,SAAWvD,KAAK3D,QAAQgL,gBACG,QAAvCjF,GAAMD,EAAKnC,KAAKkC,KAAKoF,oBAAiC,IAAPlF,GAAyBA,EAAG3G,KAAK0G,GAC/C,QAAjCG,GAAMD,EAAKrC,KAAKkC,KAAK2B,cAA2B,IAAPvB,GAAyBA,EAAG7G,KAAK4G,EAAInH,GACzC,QAArCoK,GAAM/C,EAAKvC,KAAKkC,KAAKqF,kBAA+B,IAAPjC,GAAyBA,EAAG7J,KAAK8G,KAG1C,QAApC2E,GAAMD,EAAKjH,KAAKkC,KAAK2E,iBAA8B,IAAPK,GAAyBA,EAAGzL,KAAKwL,EAAI,UAAUtK,OAAOzB,EAAO,OAClE,QAAvCkM,GAAMD,EAAKnH,KAAKkC,KAAK6E,oBAAiC,IAAPK,GAAyBA,EAAG3L,KAAK0L,IAGrFnH,KAAKwC,WAAaC,EAAW,CACjC,EAEAtB,EAAO5F,UAAUiM,MAAQ,WACrB,IAAIrF,EAAIC,EACR,GAAIpC,KAAKkC,IAAI8C,WAAY,CAErBhF,KAAKyC,SAAWzC,KAAKwC,WACrB,IAAK,IAAIiF,EAAIzH,KAAK+C,MAAM8B,OAAQ4C,EAAI,EAAGzH,KAAKkC,IAAI8C,WAAWhF,KAAK+C,QAAQ0E,IAAI,IAEhF,CACiC,QAAhCrF,GAAMD,EAAKnC,KAAKkC,KAAKsF,aAA0B,IAAPpF,GAAyBA,EAAG3G,KAAK0G,EAC9E,EAIAhB,EAAO5F,UAAUmM,MAAQ,WACrB,IAAIvF,EAAIC,EAAIC,EAAIC,EACmB,QAAlCF,GAAMD,EAAKnC,KAAKkC,KAAKyF,eAA4B,IAAPvF,GAAyBA,EAAG3G,KAAK0G,GAC5EnC,KAAKyD,UAAUiE,QACf1H,KAAK2C,QAAU,GACf3C,KAAK4C,WAAa,GAClB5C,KAAK8C,QAAU,KACf9C,KAAK+C,MAAM8B,OAAS,EACpB7E,KAAKwC,WAAa,EAClBxC,KAAKyC,SAAW,EACwB,QAAvCH,GAAMD,EAAKrC,KAAKkC,KAAK0B,oBAAiC,IAAPtB,GAAyBA,EAAG7G,KAAK4G,EAAIrC,MACrFA,KAAKiD,QAAQ4B,OAAS,EACtB7E,KAAKkD,aAAe,EACpBlD,KAAKmD,WAAa,EAClBnD,KAAKoD,OAAQ,CACjB,EAOAjC,EAAO5F,UAAUqM,cAAgB,SAAU7D,GACvC/D,KAAK0H,QACL1H,KAAK6H,IAAI9D,EACb,EACA5C,EAAO5F,UAAUyI,SAAW,SAAUF,EAAO+D,GACzC,MAAO/D,EAAQ9D,KAAKkD,cAAgBlD,KAAKiD,QAAQ,GAAG4B,OAChD7E,KAAK8H,cAET,IAAIC,EAAM/H,KAAKiD,QAAQ,GAAG+E,MAAMlE,EAAQ9D,KAAKkD,aAAc2E,EAAM7H,KAAKkD,cACtE,MAAO2E,EAAM7H,KAAKkD,aAAelD,KAAKiD,QAAQ,GAAG4B,OAC7C7E,KAAK8H,cACLC,GAAO/H,KAAKiD,QAAQ,GAAG+E,MAAM,EAAGH,EAAM7H,KAAKkD,cAE/C,OAAO6E,CACX,EACA5G,EAAO5F,UAAUuM,YAAc,WAC3B9H,KAAKkD,cAAgBlD,KAAKiD,QAAQ,GAAG4B,OACrC7E,KAAKmD,aACLnD,KAAKiD,QAAQgF,OACjB,EAMA9G,EAAO5F,UAAU2M,MAAQ,SAAUC,GAC/B,IAAIhG,EAAIC,EACJpC,KAAKoD,MAC8B,QAAlChB,GAAMD,EAAKnC,KAAKkC,KAAKkG,eAA4B,IAAPhG,GAAyBA,EAAG3G,KAAK0G,EAAI,IAAI5D,MAAM,0BAG9FyB,KAAKiD,QAAQgC,KAAKkD,GACdnI,KAAKyD,UAAU4E,UACfrI,KAAKyD,UAAUyE,MAAMC,GACrBnI,KAAKmD,cAEb,EAMAhC,EAAO5F,UAAUsM,IAAM,SAAUM,GAC7B,IAAIhG,EAAIC,EACJpC,KAAKoD,MAC8B,QAAlChB,GAAMD,EAAKnC,KAAKkC,KAAKkG,eAA4B,IAAPhG,GAAyBA,EAAG3G,KAAK0G,EAAI5D,MAAM,wBAGtF4J,GACAnI,KAAKkI,MAAMC,GACfnI,KAAKoD,OAAQ,EACbpD,KAAKyD,UAAUoE,MACnB,EAIA1G,EAAO5F,UAAU+M,MAAQ,WACrBtI,KAAKyD,UAAU6E,OACnB,EAIAnH,EAAO5F,UAAUgN,OAAS,WACtBvI,KAAKyD,UAAU8E,SACf,MAAOvI,KAAKyD,UAAU4E,SAClBrI,KAAKmD,WAAanD,KAAKiD,QAAQ4B,OAC/B7E,KAAKyD,UAAUyE,MAAMlI,KAAKiD,QAAQjD,KAAKmD,eAEvCnD,KAAKoD,OACLpD,KAAKyD,UAAUoE,KACvB,EAOA1G,EAAO5F,UAAUiN,WAAa,SAAUL,GACpCnI,KAAKkI,MAAMC,EACf,EAOAhH,EAAO5F,UAAUkN,KAAO,SAAUN,GAC9BnI,KAAK6H,IAAIM,EACb,EACOhH,CACX,CAvY2B,GAwY3BtC,EAAQsC,OAASA,C,oCCngBjB7F,OAAO+D,eAAeR,EAAS,aAAc,CAAE3D,OAAO,IACtD2D,EAAQuH,eAAY,EACpB,IACIsC,EA+BAC,EA0DAvC,EA1FA/E,EAAc,EAAQ,MAqE1B,SAASuH,EAAaC,GAClB,OAAQA,IAAMH,EAAUI,OACpBD,IAAMH,EAAUK,SAChBF,IAAMH,EAAUM,KAChBH,IAAMH,EAAUO,UAChBJ,IAAMH,EAAUQ,cACxB,CACA,SAASC,EAAkBN,GACvB,OAAOA,IAAMH,EAAUU,OAASP,IAAMH,EAAUW,IAAMT,EAAaC,EACvE,CACA,SAASS,EAAST,GACd,OAAOA,GAAKH,EAAUa,MAAQV,GAAKH,EAAUc,IACjD,CACA,SAASC,EAAaZ,GAClB,OAASA,GAAKH,EAAUgB,QAAUb,GAAKH,EAAUiB,QAC5Cd,GAAKH,EAAUkB,QAAUf,GAAKH,EAAUmB,MACjD,CACA,SAASC,EAAWjB,GAChB,OAASA,GAAKH,EAAUkB,QAAUf,GAAKH,EAAUqB,QAC5ClB,GAAKH,EAAUgB,QAAUb,GAAKH,EAAUsB,MACjD,EAvFA,SAAWtB,GACPA,EAAUA,EAAU,OAAS,GAAK,MAClCA,EAAUA,EAAU,WAAa,IAAM,UACvCA,EAAUA,EAAU,YAAc,IAAM,WACxCA,EAAUA,EAAU,kBAAoB,IAAM,iBAC9CA,EAAUA,EAAU,SAAW,IAAM,QACrCA,EAAUA,EAAU,mBAAqB,IAAM,kBAC/CA,EAAUA,EAAU,OAAS,IAAM,MACnCA,EAAUA,EAAU,OAAS,IAAM,MACnCA,EAAUA,EAAU,eAAiB,IAAM,cAC3CA,EAAUA,EAAU,eAAiB,IAAM,cAC3CA,EAAUA,EAAU,QAAU,IAAM,OACpCA,EAAUA,EAAU,SAAW,IAAM,QACrCA,EAAUA,EAAU,QAAU,IAAM,OACpCA,EAAUA,EAAU,QAAU,IAAM,OACpCA,EAAUA,EAAU,QAAU,IAAM,OACpCA,EAAUA,EAAU,MAAQ,IAAM,KAClCA,EAAUA,EAAU,MAAQ,IAAM,KAClCA,EAAUA,EAAU,MAAQ,IAAM,KAClCA,EAAUA,EAAU,gBAAkB,IAAM,eAC5CA,EAAUA,EAAU,UAAY,IAAM,SACtCA,EAAUA,EAAU,UAAY,IAAM,SACtCA,EAAUA,EAAU,UAAY,IAAM,SACtCA,EAAUA,EAAU,UAAY,KAAO,SACvCA,EAAUA,EAAU,UAAY,IAAM,SACtCA,EAAUA,EAAU,UAAY,KAAO,SACvCA,EAAUA,EAAU,UAAY,KAAO,SACvCA,EAAUA,EAAU,wBAA0B,IAAM,sBACvD,EA5BD,CA4BGA,IAAcA,EAAY,CAAC,IAG9B,SAAWC,GACPA,EAAMA,EAAM,QAAU,GAAK,OAC3BA,EAAMA,EAAM,iBAAmB,GAAK,gBACpCA,EAAMA,EAAM,aAAe,GAAK,YAChCA,EAAMA,EAAM,oBAAsB,GAAK,mBACvCA,EAAMA,EAAM,wBAA0B,GAAK,uBAC3CA,EAAMA,EAAM,oBAAsB,GAAK,mBACvCA,EAAMA,EAAM,uBAAyB,GAAK,sBAE1CA,EAAMA,EAAM,uBAAyB,GAAK,sBAC1CA,EAAMA,EAAM,mBAAqB,GAAK,kBACtCA,EAAMA,EAAM,sBAAwB,IAAM,qBAC1CA,EAAMA,EAAM,wBAA0B,IAAM,uBAC5CA,EAAMA,EAAM,sBAAwB,IAAM,qBAC1CA,EAAMA,EAAM,sBAAwB,IAAM,qBAC1CA,EAAMA,EAAM,sBAAwB,IAAM,qBAE1CA,EAAMA,EAAM,qBAAuB,IAAM,oBACzCA,EAAMA,EAAM,iBAAmB,IAAM,gBAErCA,EAAMA,EAAM,2BAA6B,IAAM,0BAE/CA,EAAMA,EAAM,iBAAmB,IAAM,gBACrCA,EAAMA,EAAM,iBAAmB,IAAM,gBACrCA,EAAMA,EAAM,oBAAsB,IAAM,mBACxCA,EAAMA,EAAM,iBAAmB,IAAM,gBAErCA,EAAMA,EAAM,kBAAoB,IAAM,iBACtCA,EAAMA,EAAM,wBAA0B,IAAM,uBAC5CA,EAAMA,EAAM,gBAAkB,IAAM,eACpCA,EAAMA,EAAM,gBAAkB,IAAM,eACpCA,EAAMA,EAAM,uBAAyB,IAAM,sBAC3CA,EAAMA,EAAM,iBAAmB,IAAM,gBACrCA,EAAMA,EAAM,mBAAqB,IAAM,kBACvCA,EAAMA,EAAM,eAAiB,IAAM,aACtC,CAnCD,CAmCGA,IAAUA,EAAQ,CAAC,IAuBtB,SAAWvC,GACPA,EAAUA,EAAU,WAAa,GAAK,UACtCA,EAAUA,EAAU,YAAc,GAAK,WACvCA,EAAUA,EAAU,UAAY,GAAK,SACrCA,EAAUA,EAAU,UAAY,GAAK,QACxC,CALD,CAKGA,EAAYvH,EAAQuH,YAAcvH,EAAQuH,UAAY,CAAC,IAO1D,IAAI6D,EAAY,CACZC,MAAO,IAAIC,WAAW,CAAC,GAAM,GAAM,GAAM,GAAM,GAAM,KACrDC,SAAU,IAAID,WAAW,CAAC,GAAM,GAAM,KACtCE,WAAY,IAAIF,WAAW,CAAC,GAAM,GAAM,KACxCG,UAAW,IAAIH,WAAW,CAAC,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,MACrEI,SAAU,IAAIJ,WAAW,CAAC,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,MAC9DK,SAAU,IAAIL,WAAW,CAAC,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,OAE9DzG,EAA2B,WAC3B,SAASA,EAAUvB,EAAID,GACnB,IAAIE,EAAKD,EAAGoB,QAASA,OAAiB,IAAPnB,GAAwBA,EAAIC,EAAKF,EAAGsI,eAAgBA,OAAwB,IAAPpI,GAAuBA,EAC3HrC,KAAKkC,IAAMA,EAEXlC,KAAK0K,MAAQ/B,EAAMjJ,KAEnBM,KAAK2K,OAAS,GAEd3K,KAAK4K,aAAe,EAEpB5K,KAAK6K,MAAQ,EAEb7K,KAAK8K,UAAYnC,EAAMjJ,KAEvBM,KAAK5E,WAAY,EAEjB4E,KAAKqI,SAAU,EAEfrI,KAAK8G,OAAS,EACd9G,KAAK+K,cAAgB,EACrB/K,KAAKgL,UAAY,EACjBhL,KAAKiL,YAAc,EAEnBjL,KAAKkL,aAAe,EACpBlL,KAAKmL,aAAe,EACpBnL,KAAKuD,QAAUA,EACfvD,KAAKyK,eAAiBA,EACtBzK,KAAKoL,WAAa7H,EAAUlC,EAAYgK,cAAgBhK,EAAYiK,cACxE,CAqvBA,OApvBA5H,EAAUnI,UAAUmM,MAAQ,WACxB1H,KAAK0K,MAAQ/B,EAAMjJ,KACnBM,KAAK2K,OAAS,GACd3K,KAAK4K,aAAe,EACpB5K,KAAK6K,MAAQ,EACb7K,KAAK8K,UAAYnC,EAAMjJ,KACvBM,KAAKuL,qBAAkBjL,EACvBN,KAAKqI,SAAU,EACfrI,KAAK8G,OAAS,CAClB,EACApD,EAAUnI,UAAU2M,MAAQ,SAAUC,GAClCnI,KAAK8G,QAAU9G,KAAK2K,OAAO9F,OAC3B7E,KAAK2K,OAASxC,EACdnI,KAAKwL,OACT,EACA9H,EAAUnI,UAAUsM,IAAM,WAClB7H,KAAKqI,SACLrI,KAAKyL,QACb,EACA/H,EAAUnI,UAAU+M,MAAQ,WACxBtI,KAAKqI,SAAU,CACnB,EACA3E,EAAUnI,UAAUgN,OAAS,WACzBvI,KAAKqI,SAAU,EACXrI,KAAK6K,MAAQ7K,KAAK2K,OAAO9F,OAAS7E,KAAK8G,QACvC9G,KAAKwL,OAEb,EAIA9H,EAAUnI,UAAUmQ,SAAW,WAC3B,OAAO1L,KAAK6K,KAChB,EAIAnH,EAAUnI,UAAU6I,gBAAkB,WAClC,OAAOpE,KAAK4K,YAChB,EACAlH,EAAUnI,UAAUoQ,UAAY,SAAU9C,GAClCA,IAAMH,EAAUkD,KACd5L,KAAKyK,gBAAkBzK,KAAK6L,cAAcnD,EAAUkD,KAClD5L,KAAK6K,MAAQ7K,KAAK4K,cAClB5K,KAAKkC,IAAI2B,OAAO7D,KAAK4K,aAAc5K,KAAK6K,OAE5C7K,KAAK0K,MAAQ/B,EAAMmD,cACnB9L,KAAK4K,aAAe5K,KAAK6K,OAEpB7K,KAAKyK,gBAAkB5B,IAAMH,EAAUqD,MAC5C/L,KAAK0K,MAAQ/B,EAAMqD,aAE3B,EACAtI,EAAUnI,UAAU0Q,0BAA4B,SAAUpD,GACtD,IAAIqD,EAAQlM,KAAK+K,gBAAkB/K,KAAKuL,gBAAgB1G,OACpDsH,EAAUD,EAEN/C,EAAkBN,IAEb,GAAJA,KAAc7I,KAAKuL,gBAAgBvL,KAAK+K,eACjD,GAAKoB,GAGA,IAAKD,EAEN,YADAlM,KAAK+K,qBAHL/K,KAAK5E,WAAY,EAMrB4E,KAAK+K,cAAgB,EACrB/K,KAAK0K,MAAQ/B,EAAMyD,UACnBpM,KAAKqM,eAAexD,EACxB,EAEAnF,EAAUnI,UAAU+Q,kBAAoB,SAAUzD,GAC9C,GAAI7I,KAAK+K,gBAAkB/K,KAAKuL,gBAAgB1G,OAAQ,CACpD,GAAIgE,IAAMH,EAAUW,IAAMT,EAAaC,GAAI,CACvC,IAAI0D,EAAYvM,KAAK6K,MAAQ7K,KAAKuL,gBAAgB1G,OAClD,GAAI7E,KAAK4K,aAAe2B,EAAW,CAE/B,IAAIC,EAAcxM,KAAK6K,MACvB7K,KAAK6K,MAAQ0B,EACbvM,KAAKkC,IAAI2B,OAAO7D,KAAK4K,aAAc2B,GACnCvM,KAAK6K,MAAQ2B,CACjB,CAIA,OAHAxM,KAAK5E,WAAY,EACjB4E,KAAK4K,aAAe2B,EAAY,OAChCvM,KAAKyM,sBAAsB5D,EAE/B,CACA7I,KAAK+K,cAAgB,CACzB,EACS,GAAJlC,KAAc7I,KAAKuL,gBAAgBvL,KAAK+K,eACzC/K,KAAK+K,eAAiB,EAEM,IAAvB/K,KAAK+K,cACN/K,KAAKuL,kBAAoBtB,EAAUO,SAE/BxK,KAAKyK,gBAAkB5B,IAAMH,EAAUqD,MACvC/L,KAAK0K,MAAQ/B,EAAMqD,cAGlBhM,KAAK6L,cAAcnD,EAAUkD,MAElC5L,KAAK+K,cAAgB,GAKzB/K,KAAK+K,cAAgB2B,OAAO7D,IAAMH,EAAUkD,GAEpD,EACAlI,EAAUnI,UAAUoR,mBAAqB,SAAU9D,GAC3CA,IAAMoB,EAAUC,MAAMlK,KAAK+K,iBACrB/K,KAAK+K,gBAAkBd,EAAUC,MAAMrF,SACzC7E,KAAK0K,MAAQ/B,EAAMiE,cACnB5M,KAAKuL,gBAAkBtB,EAAUG,SACjCpK,KAAK+K,cAAgB,EACrB/K,KAAK4K,aAAe5K,KAAK6K,MAAQ,IAIrC7K,KAAK+K,cAAgB,EACrB/K,KAAK0K,MAAQ/B,EAAMkE,cACnB7M,KAAK8M,mBAAmBjE,GAEhC,EAOAnF,EAAUnI,UAAUsQ,cAAgB,SAAUhD,GAC1C,QAAS7I,KAAK6K,MAAQ7K,KAAK2K,OAAO9F,OAAS7E,KAAK8G,OAC5C,GAAI9G,KAAK2K,OAAOoC,WAAW/M,KAAK6K,MAAQ7K,KAAK8G,UAAY+B,EACrD,OAAO,EAUf,OADA7I,KAAK6K,MAAQ7K,KAAK2K,OAAO9F,OAAS7E,KAAK8G,OAAS,GACzC,CACX,EASApD,EAAUnI,UAAUyR,mBAAqB,SAAUnE,GAC3CA,IAAM7I,KAAKuL,gBAAgBvL,KAAK+K,iBAC1B/K,KAAK+K,gBAAkB/K,KAAKuL,gBAAgB1G,SAC1C7E,KAAKuL,kBAAoBtB,EAAUG,SACnCpK,KAAKkC,IAAI8E,QAAQhH,KAAK4K,aAAc5K,KAAK6K,MAAO,GAGhD7K,KAAKkC,IAAI2E,UAAU7G,KAAK4K,aAAc5K,KAAK6K,MAAO,GAEtD7K,KAAK+K,cAAgB,EACrB/K,KAAK4K,aAAe5K,KAAK6K,MAAQ,EACjC7K,KAAK0K,MAAQ/B,EAAMjJ,MAGK,IAAvBM,KAAK+K,cAEN/K,KAAK6L,cAAc7L,KAAKuL,gBAAgB,MACxCvL,KAAK+K,cAAgB,GAGpBlC,IAAM7I,KAAKuL,gBAAgBvL,KAAK+K,cAAgB,KAErD/K,KAAK+K,cAAgB,EAE7B,EAOArH,EAAUnI,UAAU0R,eAAiB,SAAUpE,GAC3C,OAAO7I,KAAKuD,SAAW4F,EAAkBN,GAAKY,EAAaZ,EAC/D,EACAnF,EAAUnI,UAAU2R,aAAe,SAAUC,EAAUrG,GACnD9G,KAAK5E,WAAY,EACjB4E,KAAKuL,gBAAkB4B,EACvBnN,KAAK+K,cAAgBjE,EACrB9G,KAAK0K,MAAQ/B,EAAMyE,oBACvB,EACA1J,EAAUnI,UAAU8R,mBAAqB,SAAUxE,GAC/C,GAAIA,IAAMH,EAAU4E,gBAChBtN,KAAK0K,MAAQ/B,EAAM4E,kBACnBvN,KAAK4K,aAAe5K,KAAK6K,MAAQ,OAEhC,GAAIhC,IAAMH,EAAU8E,aACrBxN,KAAK0K,MAAQ/B,EAAM8E,wBACnBzN,KAAK4K,aAAe5K,KAAK6K,MAAQ,OAEhC,GAAI7K,KAAKiN,eAAepE,GAAI,CAC7B,IAAI6E,EAAY,GAAJ7E,EACZ7I,KAAK4K,aAAe5K,KAAK6K,MACpB7K,KAAKuD,SAAWmK,IAAUzD,EAAUO,SAAS,GAI9CxK,KAAK0K,MACA1K,KAAKuD,SAAWmK,IAAUzD,EAAUK,UAAU,GAEzC3B,EAAMyD,UADNzD,EAAMgF,eALhB3N,KAAKkN,aAAajD,EAAUO,SAAU,EAQ9C,MACS3B,IAAMH,EAAUU,MACrBpJ,KAAK0K,MAAQ/B,EAAMiF,sBAGnB5N,KAAK0K,MAAQ/B,EAAMjJ,KACnBM,KAAK2L,UAAU9C,GAEvB,EACAnF,EAAUnI,UAAU8Q,eAAiB,SAAUxD,GACvCM,EAAkBN,KAClB7I,KAAKkC,IAAIuC,cAAczE,KAAK4K,aAAc5K,KAAK6K,OAC/C7K,KAAK4K,cAAgB,EACrB5K,KAAK0K,MAAQ/B,EAAMkF,oBACnB7N,KAAK8N,yBAAyBjF,GAEtC,EACAnF,EAAUnI,UAAUwS,0BAA4B,SAAUlF,GAClDD,EAAaC,KAGRA,IAAMH,EAAUW,GACrBrJ,KAAK0K,MAAQ/B,EAAMjJ,MAGnBM,KAAK0K,MAAQ1K,KAAKiN,eAAepE,GAC3BF,EAAMqF,iBACNrF,EAAMsF,iBACZjO,KAAK4K,aAAe5K,KAAK6K,OAEjC,EACAnH,EAAUnI,UAAUkR,sBAAwB,SAAU5D,IAC9CA,IAAMH,EAAUW,IAAMT,EAAaC,MACnC7I,KAAKkC,IAAI8C,WAAWhF,KAAK4K,aAAc5K,KAAK6K,OAC5C7K,KAAK4K,cAAgB,EACrB5K,KAAK0K,MAAQ/B,EAAMuF,oBACnBlO,KAAKmO,yBAAyBtF,GAEtC,EACAnF,EAAUnI,UAAU4S,yBAA2B,SAAUtF,IAEjDA,IAAMH,EAAUW,IAAMrJ,KAAK6L,cAAcnD,EAAUW,OACnDrJ,KAAK0K,MAAQ/B,EAAMjJ,KACnBM,KAAK4K,aAAe5K,KAAK6K,MAAQ,EAEzC,EACAnH,EAAUnI,UAAUuS,yBAA2B,SAAUjF,GACjDA,IAAMH,EAAUW,IAChBrJ,KAAKkC,IAAImD,aAAarF,KAAK6K,OACvB7K,KAAK5E,WACL4E,KAAK0K,MAAQ/B,EAAMyF,aACnBpO,KAAK+K,cAAgB,GAGrB/K,KAAK0K,MAAQ/B,EAAMjJ,KAEvBM,KAAK8K,UAAY9K,KAAK0K,MACtB1K,KAAK4K,aAAe5K,KAAK6K,MAAQ,GAE5BhC,IAAMH,EAAUU,MACrBpJ,KAAK0K,MAAQ/B,EAAM0F,iBAEbzF,EAAaC,KACnB7I,KAAK0K,MAAQ/B,EAAM2F,gBACnBtO,KAAK4K,aAAe5K,KAAK6K,MAEjC,EACAnH,EAAUnI,UAAUgT,sBAAwB,SAAU1F,GAC9CA,IAAMH,EAAUW,IAChBrJ,KAAKkC,IAAIyD,iBAAiB3F,KAAK6K,OAC/B7K,KAAK0K,MAAQ/B,EAAMjJ,KACnBM,KAAK8K,UAAYnC,EAAMjJ,KACvBM,KAAK4K,aAAe5K,KAAK6K,MAAQ,EACjC7K,KAAK5E,WAAY,GAEXwN,EAAaC,KACnB7I,KAAK0K,MAAQ/B,EAAMkF,oBACnB7N,KAAK8N,yBAAyBjF,GAEtC,EACAnF,EAAUnI,UAAUiT,qBAAuB,SAAU3F,IAC7CA,IAAMH,EAAU+F,IAAMtF,EAAkBN,MACxC7I,KAAKkC,IAAI4D,aAAa9F,KAAK4K,aAAc5K,KAAK6K,OAC9C7K,KAAK4K,cAAgB,EACrB5K,KAAK0K,MAAQ/B,EAAM+F,mBACnB1O,KAAK2O,wBAAwB9F,GAErC,EACAnF,EAAUnI,UAAUoT,wBAA0B,SAAU9F,GAChDA,IAAMH,EAAU+F,GAChBzO,KAAK0K,MAAQ/B,EAAMiG,qBAEd/F,IAAMH,EAAUU,OAASP,IAAMH,EAAUW,IAC9CrJ,KAAKkC,IAAI+D,YAAYG,EAAUG,QAASvG,KAAK6K,OAC7C7K,KAAK0K,MAAQ/B,EAAMkF,oBACnB7N,KAAK8N,yBAAyBjF,IAExBD,EAAaC,KACnB7I,KAAKkC,IAAI+D,YAAYG,EAAUG,QAASvG,KAAK6K,OAC7C7K,KAAK0K,MAAQ/B,EAAM2F,gBACnBtO,KAAK4K,aAAe5K,KAAK6K,MAEjC,EACAnH,EAAUnI,UAAUsT,0BAA4B,SAAUhG,GAClDA,IAAMH,EAAUoG,aAChB9O,KAAK0K,MAAQ/B,EAAMoG,mBACnB/O,KAAK4K,aAAe5K,KAAK6K,MAAQ,GAE5BhC,IAAMH,EAAUsG,aACrBhP,KAAK0K,MAAQ/B,EAAMsG,mBACnBjP,KAAK4K,aAAe5K,KAAK6K,MAAQ,GAE3BjC,EAAaC,KACnB7I,KAAK4K,aAAe5K,KAAK6K,MACzB7K,KAAK0K,MAAQ/B,EAAMuG,mBACnBlP,KAAKmP,8BAA8BtG,GAE3C,EACAnF,EAAUnI,UAAU6T,uBAAyB,SAAUvG,EAAG3C,GAClD2C,IAAM3C,IACJlG,KAAKyK,gBAAkBzK,KAAK6L,cAAc3F,IAC5ClG,KAAKkC,IAAI6D,aAAa/F,KAAK4K,aAAc5K,KAAK6K,OAC9C7K,KAAK4K,cAAgB,EACrB5K,KAAKkC,IAAI+D,YAAYC,IAAUwC,EAAUoG,YACnC1I,EAAUC,OACVD,EAAUE,OAAQtG,KAAK6K,OAC7B7K,KAAK0K,MAAQ/B,EAAMkF,qBAEd7N,KAAKyK,gBAAkB5B,IAAMH,EAAUqD,MAC5C/L,KAAK8K,UAAY9K,KAAK0K,MACtB1K,KAAK0K,MAAQ/B,EAAMqD,aAE3B,EACAtI,EAAUnI,UAAU8T,kCAAoC,SAAUxG,GAC9D7I,KAAKoP,uBAAuBvG,EAAGH,EAAUoG,YAC7C,EACApL,EAAUnI,UAAU+T,kCAAoC,SAAUzG,GAC9D7I,KAAKoP,uBAAuBvG,EAAGH,EAAUsG,YAC7C,EACAtL,EAAUnI,UAAU4T,8BAAgC,SAAUtG,GACtDD,EAAaC,IAAMA,IAAMH,EAAUW,IACnCrJ,KAAKkC,IAAI6D,aAAa/F,KAAK4K,aAAc5K,KAAK6K,OAC9C7K,KAAK4K,cAAgB,EACrB5K,KAAKkC,IAAI+D,YAAYG,EAAUmJ,SAAUvP,KAAK6K,OAC9C7K,KAAK0K,MAAQ/B,EAAMkF,oBACnB7N,KAAK8N,yBAAyBjF,IAEzB7I,KAAKyK,gBAAkB5B,IAAMH,EAAUqD,MAC5C/L,KAAK8K,UAAY9K,KAAK0K,MACtB1K,KAAK0K,MAAQ/B,EAAMqD,aAE3B,EACAtI,EAAUnI,UAAUiU,uBAAyB,SAAU3G,GAC/CA,IAAMH,EAAU+G,sBAChBzP,KAAK0K,MAAQ/B,EAAM+G,cACnB1P,KAAK+K,cAAgB,GAGrB/K,KAAK0K,MACD7B,IAAMH,EAAUiH,KACVhH,EAAMiH,cACNjH,EAAMkE,aAExB,EACAnJ,EAAUnI,UAAUuR,mBAAqB,SAAUjE,IAC3CA,IAAMH,EAAUW,IAAMrJ,KAAK6L,cAAcnD,EAAUW,OACnDrJ,KAAKkC,IAAIyE,cAAc3G,KAAK4K,aAAc5K,KAAK6K,OAC/C7K,KAAK0K,MAAQ/B,EAAMjJ,KACnBM,KAAK4K,aAAe5K,KAAK6K,MAAQ,EAEzC,EACAnH,EAAUnI,UAAUsU,6BAA+B,SAAUhH,IACrDA,IAAMH,EAAUW,IAAMrJ,KAAK6L,cAAcnD,EAAUW,OACnDrJ,KAAKkC,IAAI0E,wBAAwB5G,KAAK4K,aAAc5K,KAAK6K,OACzD7K,KAAK0K,MAAQ/B,EAAMjJ,KACnBM,KAAK4K,aAAe5K,KAAK6K,MAAQ,EAEzC,EACAnH,EAAUnI,UAAUuU,mBAAqB,SAAUjH,GAC3CA,IAAMH,EAAUiH,MAChB3P,KAAK0K,MAAQ/B,EAAMiE,cACnB5M,KAAKuL,gBAAkBtB,EAAUI,WAEjCrK,KAAK+K,cAAgB,EACrB/K,KAAK4K,aAAe5K,KAAK6K,MAAQ,GAGjC7K,KAAK0K,MAAQ/B,EAAMkE,aAE3B,EACAnJ,EAAUnI,UAAUwU,sBAAwB,SAAUlH,IAC9CA,IAAMH,EAAUW,IAAMrJ,KAAK6L,cAAcnD,EAAUW,OACnDrJ,KAAKkC,IAAI2E,UAAU7G,KAAK4K,aAAc5K,KAAK6K,MAAO,GAClD7K,KAAK0K,MAAQ/B,EAAMjJ,KACnBM,KAAK4K,aAAe5K,KAAK6K,MAAQ,EAEzC,EACAnH,EAAUnI,UAAUyU,oBAAsB,SAAUnH,GAChD,IAAI6E,EAAY,GAAJ7E,EACR6E,IAAUzD,EAAUK,UAAU,GAC9BtK,KAAKkN,aAAajD,EAAUK,UAAW,GAElCoD,IAAUzD,EAAUM,SAAS,GAClCvK,KAAKkN,aAAajD,EAAUM,SAAU,IAGtCvK,KAAK0K,MAAQ/B,EAAMyD,UACnBpM,KAAKqM,eAAexD,GAE5B,EACAnF,EAAUnI,UAAU0U,kBAAoB,SAAUpH,GAE9C7I,KAAKmL,aAAe,EACpBnL,KAAKkL,aAAe,EAChBrC,IAAMH,EAAUwH,IAChBlQ,KAAK0K,MAAQ/B,EAAMwH,oBAEdtH,IAAMH,EAAUqD,MAIrB/L,KAAKgL,UAAY,EACjBhL,KAAKiL,YAAcjL,KAAKoL,WAAW,GACnCpL,KAAK0K,MAAQ/B,EAAMyH,cACnBpQ,KAAKqQ,mBAAmBxH,GAEhC,EACAnF,EAAUnI,UAAU8U,mBAAqB,SAAUxH,GAG/C,GAFA7I,KAAKmL,cAAgB,EACrBnL,KAAKgL,WAAY,EAAI3J,EAAYiP,iBAAiBtQ,KAAKoL,WAAYpL,KAAKiL,YAAajL,KAAKgL,UAAY,EAAGnC,GACrG7I,KAAKgL,UAAY,EAGjB,OAFAhL,KAAKuQ,uBACLvQ,KAAK6K,QAGT7K,KAAKiL,YAAcjL,KAAKoL,WAAWpL,KAAKgL,WACxC,IAAIwF,EAASxQ,KAAKiL,YAAc5J,EAAYoP,aAAaC,aAEzD,GAAIF,EAAQ,CAER,IAAIG,GAAeH,GAAU,IAAM,EAEnC,GAAKxQ,KAAK4Q,qBAAuB/H,IAAMH,EAAUmI,KAG5C,CAED,IAAIC,EAAc9Q,KAAK6K,MAAQ7K,KAAKmL,aAAe,EAC/C2F,EAAc9Q,KAAK4K,cACnB5K,KAAK+Q,YAAY/Q,KAAK4K,aAAckG,GAGxC9Q,KAAKkL,aAAelL,KAAKgL,UACzBhL,KAAKgL,WAAa2F,EAClB3Q,KAAKmL,aAAe,EACpBnL,KAAK4K,aAAe5K,KAAK6K,MAAQ,EACb,IAAhB8F,GACA3Q,KAAKuQ,iBAEb,MAhBIvQ,KAAKgL,WAAa2F,CAiB1B,CACJ,EACAjN,EAAUnI,UAAUgV,gBAAkB,WAElC,GADAvQ,KAAK0K,MAAQ1K,KAAK8K,UACQ,IAAtB9K,KAAKkL,aAAT,CAGA,IAAIyF,GAAe3Q,KAAKoL,WAAWpL,KAAKkL,cAAgB7J,EAAYoP,aAAaC,eAC7E,GACJ,OAAQC,GACJ,KAAK,EACD3Q,KAAKgR,cAAchR,KAAKoL,WAAWpL,KAAKkL,eACnC7J,EAAYoP,aAAaC,cAC9B,MACJ,KAAK,EACD1Q,KAAKgR,cAAchR,KAAKoL,WAAWpL,KAAKkL,aAAe,IACvD,MACJ,KAAK,EACDlL,KAAKgR,cAAchR,KAAKoL,WAAWpL,KAAKkL,aAAe,IACvDlL,KAAKgR,cAAchR,KAAKoL,WAAWpL,KAAKkL,aAAe,IAb/D,CAgBJ,EACAxH,EAAUnI,UAAU0V,yBAA2B,SAAUpI,IAC5C,GAAJA,KAAcH,EAAUwI,QACzBlR,KAAKmL,eACLnL,KAAK0K,MAAQ/B,EAAMwI,cAGnBnR,KAAK0K,MAAQ/B,EAAMyI,gBACnBpR,KAAKqR,qBAAqBxI,GAElC,EACAnF,EAAUnI,UAAU+V,kBAAoB,SAAUC,GAC9C,IAAIT,EAAc9Q,KAAK6K,MAAQ7K,KAAKmL,aAAe,EAC/CqG,EAAcV,EAAc,EAAIpE,OAAO1M,KAAK0K,QAAU/B,EAAMwI,aAC5DK,IAAgBxR,KAAK6K,QAEjBiG,EAAc9Q,KAAK4K,cACnB5K,KAAK+Q,YAAY/Q,KAAK4K,aAAckG,GAExC9Q,KAAK4K,aAAe5K,KAAK6K,MAAQ6B,OAAO6E,GACxCvR,KAAKgR,eAAc,EAAI3P,EAAYoQ,kBAAkBzR,KAAKkL,gBAE9DlL,KAAK0K,MAAQ1K,KAAK8K,SACtB,EACApH,EAAUnI,UAAU8V,qBAAuB,SAAUxI,GAC7CA,IAAMH,EAAUmI,KAChB7Q,KAAKsR,mBAAkB,GAElBhI,EAAST,IACd7I,KAAKkL,aAAmC,GAApBlL,KAAKkL,cAAqBrC,EAAIH,EAAUa,MAC5DvJ,KAAKmL,iBAGDnL,KAAK4Q,oBACL5Q,KAAKsR,mBAAkB,GAGvBtR,KAAK0K,MAAQ1K,KAAK8K,UAEtB9K,KAAK6K,QAEb,EACAnH,EAAUnI,UAAUmW,iBAAmB,SAAU7I,GACzCA,IAAMH,EAAUmI,KAChB7Q,KAAKsR,mBAAkB,GAElBhI,EAAST,IACd7I,KAAKkL,aAAmC,GAApBlL,KAAKkL,cAAqBrC,EAAIH,EAAUa,MAC5DvJ,KAAKmL,gBAEArB,EAAWjB,IAChB7I,KAAKkL,aACmB,GAApBlL,KAAKkL,eAA0B,GAAJrC,GAAYH,EAAUgB,OAAS,IAC9D1J,KAAKmL,iBAGDnL,KAAK4Q,oBACL5Q,KAAKsR,mBAAkB,GAGvBtR,KAAK0K,MAAQ1K,KAAK8K,UAEtB9K,KAAK6K,QAEb,EACAnH,EAAUnI,UAAUqV,kBAAoB,WACpC,OAAS5Q,KAAKuD,UACTvD,KAAK8K,YAAcnC,EAAMjJ,MACtBM,KAAK8K,YAAcnC,EAAMyF,aACrC,EAIA1K,EAAUnI,UAAUoW,QAAU,WAEtB3R,KAAKqI,SAAWrI,KAAK4K,eAAiB5K,KAAK6K,QACvC7K,KAAK0K,QAAU/B,EAAMjJ,MACpBM,KAAK0K,QAAU/B,EAAMyF,cAAuC,IAAvBpO,KAAK+K,eAC3C/K,KAAKkC,IAAI2B,OAAO7D,KAAK4K,aAAc5K,KAAK6K,OACxC7K,KAAK4K,aAAe5K,KAAK6K,OAEpB7K,KAAK0K,QAAU/B,EAAMoG,oBAC1B/O,KAAK0K,QAAU/B,EAAMsG,oBACrBjP,KAAK0K,QAAU/B,EAAMuG,qBACrBlP,KAAKkC,IAAI6D,aAAa/F,KAAK4K,aAAc5K,KAAK6K,OAC9C7K,KAAK4K,aAAe5K,KAAK6K,OAGrC,EACAnH,EAAUnI,UAAUqW,eAAiB,WACjC,OAAO5R,KAAK6K,MAAQ7K,KAAK2K,OAAO9F,OAAS7E,KAAK8G,QAAU9G,KAAKqI,OACjE,EAMA3E,EAAUnI,UAAUiQ,MAAQ,WACxB,MAAOxL,KAAK4R,iBAAkB,CAC1B,IAAI/I,EAAI7I,KAAK2K,OAAOoC,WAAW/M,KAAK6K,MAAQ7K,KAAK8G,QAC7C9G,KAAK0K,QAAU/B,EAAMjJ,KACrBM,KAAK2L,UAAU9C,GAEV7I,KAAK0K,QAAU/B,EAAMyE,qBAC1BpN,KAAKiM,0BAA0BpD,GAE1B7I,KAAK0K,QAAU/B,EAAMyF,aAC1BpO,KAAKsM,kBAAkBzD,GAElB7I,KAAK0K,QAAU/B,EAAM+G,cAC1B1P,KAAK2M,mBAAmB9D,GAEnB7I,KAAK0K,QAAU/B,EAAMoG,mBAC1B/O,KAAKqP,kCAAkCxG,GAElC7I,KAAK0K,QAAU/B,EAAM2F,gBAC1BtO,KAAKwO,qBAAqB3F,GAErB7I,KAAK0K,QAAU/B,EAAMiE,cAC1B5M,KAAKgN,mBAAmBnE,GAEnB7I,KAAK0K,QAAU/B,EAAMsF,iBAC1BjO,KAAK+P,sBAAsBlH,GAEtB7I,KAAK0K,QAAU/B,EAAMkF,oBAC1B7N,KAAK8N,yBAAyBjF,GAEzB7I,KAAK0K,QAAU/B,EAAMyD,UAC1BpM,KAAKqM,eAAexD,GAEf7I,KAAK0K,QAAU/B,EAAMqF,iBAC1BhO,KAAKyM,sBAAsB5D,GAEtB7I,KAAK0K,QAAU/B,EAAMmD,cAC1B9L,KAAKqN,mBAAmBxE,GAEnB7I,KAAK0K,QAAU/B,EAAM+F,mBAC1B1O,KAAK2O,wBAAwB9F,GAExB7I,KAAK0K,QAAU/B,EAAMsG,mBAC1BjP,KAAKsP,kCAAkCzG,GAElC7I,KAAK0K,QAAU/B,EAAMiG,qBAC1B5O,KAAK6O,0BAA0BhG,GAE1B7I,KAAK0K,QAAU/B,EAAMiF,qBAC1B5N,KAAK+N,0BAA0BlF,GAE1B7I,KAAK0K,QAAU/B,EAAMuF,oBAC1BlO,KAAKmO,yBAAyBtF,GAEzB7I,KAAK0K,QAAU/B,EAAMgF,eAC1B3N,KAAKgQ,oBAAoBnH,GAEpB7I,KAAK0K,QAAU/B,EAAMuG,mBAC1BlP,KAAKmP,8BAA8BtG,GAE9B7I,KAAK0K,QAAU/B,EAAM0F,iBAC1BrO,KAAKuO,sBAAsB1F,GAEtB7I,KAAK0K,QAAU/B,EAAMkE,cAC1B7M,KAAK8M,mBAAmBjE,GAEnB7I,KAAK0K,QAAU/B,EAAM4E,kBAC1BvN,KAAKwP,uBAAuB3G,GAEvB7I,KAAK0K,QAAU/B,EAAMiH,cAC1B5P,KAAK8P,mBAAmBjH,GAEnB7I,KAAK0K,QAAU/B,EAAM8E,wBAC1BzN,KAAK6P,6BAA6BhH,GAE7B7I,KAAK0K,QAAU/B,EAAMyH,cAC1BpQ,KAAKqQ,mBAAmBxH,GAEnB7I,KAAK0K,QAAU/B,EAAMqD,aAC1BhM,KAAKiQ,kBAAkBpH,GAElB7I,KAAK0K,QAAU/B,EAAMwI,YAC1BnR,KAAK0R,iBAAiB7I,GAEjB7I,KAAK0K,QAAU/B,EAAMyI,gBAC1BpR,KAAKqR,qBAAqBxI,GAI1B7I,KAAKiR,yBAAyBpI,GAElC7I,KAAK6K,OACT,CACA7K,KAAK2R,SACT,EACAjO,EAAUnI,UAAUkQ,OAAS,WACrBzL,KAAK0K,QAAU/B,EAAMyH,eACrBpQ,KAAKuQ,kBAGLvQ,KAAK4K,aAAe5K,KAAK6K,OACzB7K,KAAK6R,qBAET7R,KAAKkC,IAAIsF,OACb,EAEA9D,EAAUnI,UAAUsW,mBAAqB,WACrC,IAAIpP,EAAWzC,KAAK2K,OAAO9F,OAAS7E,KAAK8G,OACrC9G,KAAK0K,QAAU/B,EAAMiE,cACjB5M,KAAKuL,kBAAoBtB,EAAUG,SACnCpK,KAAKkC,IAAI8E,QAAQhH,KAAK4K,aAAcnI,EAAU,GAG9CzC,KAAKkC,IAAI2E,UAAU7G,KAAK4K,aAAcnI,EAAU,GAG/CzC,KAAK0K,QAAU/B,EAAMyI,iBAC1BpR,KAAK4Q,qBAIA5Q,KAAK0K,QAAU/B,EAAMwI,aAC1BnR,KAAK4Q,oBAJL5Q,KAAKsR,mBAAkB,GAQlBtR,KAAK0K,QAAU/B,EAAMyD,WAC1BpM,KAAK0K,QAAU/B,EAAMkF,qBACrB7N,KAAK0K,QAAU/B,EAAMiG,sBACrB5O,KAAK0K,QAAU/B,EAAM+F,oBACrB1O,KAAK0K,QAAU/B,EAAM2F,iBACrBtO,KAAK0K,QAAU/B,EAAMsG,oBACrBjP,KAAK0K,QAAU/B,EAAMoG,oBACrB/O,KAAK0K,QAAU/B,EAAMuG,oBACrBlP,KAAK0K,QAAU/B,EAAMqF,kBAOrBhO,KAAKkC,IAAI2B,OAAO7D,KAAK4K,aAAcnI,EAE3C,EACAiB,EAAUnI,UAAUwV,YAAc,SAAUjN,EAAOrB,GAC3CzC,KAAK8K,YAAcnC,EAAMjJ,MACzBM,KAAK8K,YAAcnC,EAAMyF,aACzBpO,KAAKkC,IAAI6D,aAAajC,EAAOrB,GAG7BzC,KAAKkC,IAAI2B,OAAOC,EAAOrB,EAE/B,EACAiB,EAAUnI,UAAUyV,cAAgB,SAAU9M,GACtClE,KAAK8K,YAAcnC,EAAMjJ,MACzBM,KAAK8K,YAAcnC,EAAMyF,aACzBpO,KAAKkC,IAAI8D,eAAe9B,GAGxBlE,KAAKkC,IAAI+B,aAAaC,EAE9B,EACOR,CACX,CAnxB8B,GAoxB9B7E,EAAA,WAAkB6E,C,oCCr4BlB,IAAI3D,EAAmBC,MAAQA,KAAKD,kBAAqBzE,OAAO2E,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOjF,OAAOkF,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMC,IAAK,WAAa,OAAOV,EAAEC,EAAI,IAE5D9E,OAAO+D,eAAea,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGU,EAAsBd,MAAQA,KAAKc,qBAAwBxF,OAAO2E,OAAS,SAAUC,EAAGa,GACxFzF,OAAO+D,eAAea,EAAG,UAAW,CAAEU,YAAY,EAAM1F,MAAO6F,GAClE,EAAI,SAASb,EAAGa,GACbb,EAAE,WAAaa,CACnB,GACIC,EAAgBhB,MAAQA,KAAKgB,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIR,WAAY,OAAOQ,EAClC,IAAIC,EAAS,CAAC,EACd,GAAW,MAAPD,EAAa,IAAK,IAAIb,KAAKa,EAAe,YAANb,GAAmB9E,OAAOC,UAAUsC,eAAepC,KAAKwF,EAAKb,IAAIL,EAAgBmB,EAAQD,EAAKb,GAEtI,OADAU,EAAmBI,EAAQD,GACpBC,CACX,EACI4Q,EAAmB9R,MAAQA,KAAK8R,iBAAoB,SAAU7Q,GAC9D,OAAQA,GAAOA,EAAIR,WAAcQ,EAAM,CAAE,QAAWA,EACxD,EACA3F,OAAO+D,eAAeR,EAAS,aAAc,CAAE3D,OAAO,IACtD2D,EAAQkT,eAAiBlT,EAAQmT,SAAWnT,EAAQoT,UAAYpT,EAAQqT,QAAUrT,EAAQC,YAAcD,EAAQ6E,UAAY7E,EAAQsT,gBAAkBtT,EAAQuT,SAAWvT,EAAQwT,cAAgBxT,EAAQyT,WAAazT,EAAQsC,YAAS,EACvO,IAAIoR,EAAc,EAAQ,KAC1BjX,OAAO+D,eAAeR,EAAS,SAAU,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO0R,EAAYpR,MAAQ,IAC3G,IAAIqR,EAAe,EAAQ,MAU3B,SAASH,EAActO,EAAM1H,GACzB,IAAIoW,EAAU,IAAID,EAAaF,gBAAWhS,EAAWjE,GAErD,OADA,IAAIkW,EAAYpR,OAAOsR,EAASpW,GAASwL,IAAI9D,GACtC0O,EAAQC,IACnB,CAYA,SAASN,EAASrO,EAAM1H,GACpB,OAAOgW,EAActO,EAAM1H,GAASsW,QACxC,CASA,SAASR,EAAgBS,EAAIvW,EAASwW,GAClC,IAAIJ,EAAU,IAAID,EAAaF,WAAWM,EAAIvW,EAASwW,GACvD,OAAO,IAAIN,EAAYpR,OAAOsR,EAASpW,EAC3C,CAvCAf,OAAO+D,eAAeR,EAAS,aAAc,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO2R,EAAaF,UAAY,IACpHhX,OAAO+D,eAAeR,EAAS,iBAAkB,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO2R,EAAaF,UAAY,IAaxHzT,EAAQwT,cAAgBA,EAcxBxT,EAAQuT,SAAWA,EAYnBvT,EAAQsT,gBAAkBA,EAC1B,IAAI/Q,EAAiB,EAAQ,MAC7B9F,OAAO+D,eAAeR,EAAS,YAAa,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAOiR,EAAgB1Q,GAAgBuC,OAAS,IAKnI,IAAI7E,EAAckC,EAAa,EAAQ,OACvCnC,EAAQC,YAAcA,EACtB,IAAIgU,EAAa,EAAQ,MAQzB,SAASb,EAAUc,EAAM1W,GAErB,YADgB,IAAZA,IAAsBA,EAAU,CAAEkH,SAAS,KACxC,EAAIuP,EAAWZ,SAASE,EAASW,EAAM1W,GAClD,CAVAf,OAAO+D,eAAeR,EAAS,UAAW,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAOiS,EAAWZ,OAAS,IAW5GrT,EAAQoT,UAAYA,EACpBpT,EAAQmT,SAAWhR,EAAa,EAAQ,M,kCC7FxC1F,OAAO+D,eAAeR,EAAS,aAAc,CAAE3D,OAAO,IACtD2D,EAAQmU,eAAiBnU,EAAQoU,kBAAe,EAChDpU,EAAQoU,aAAe,IAAIpR,IAAI,CAC3B,WACA,cACA,eACA,eACA,gBACA,mBACA,WACA,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,eACA,gBACA,WACA,iBACA,iBACA,YACFjF,KAAI,SAAUX,GAAO,MAAO,CAACA,EAAIyI,cAAezI,EAAM,KACxD4C,EAAQmU,eAAiB,IAAInR,IAAI,CAC7B,gBACA,gBACA,gBACA,gBACA,cACA,WACA,gBACA,kBACA,WACA,cACA,WACA,oBACA,gBACA,eACA,mBACA,YACA,aACA,WACA,eACA,oBACA,eACA,cACA,cACA,mBACA,YACA,aACA,aACA,sBACA,mBACA,eACA,YACA,YACA,YACA,gBACA,sBACA,iBACA,OACA,OACA,cACA,YACA,qBACA,mBACA,mBACA,mBACA,eACA,cACA,eACA,cACA,eACA,iBACA,cACA,UACA,UACA,aACA,UACA,aACA,mBACA,mBACA,cACFjF,KAAI,SAAUX,GAAO,MAAO,CAACA,EAAIyI,cAAezI,EAAM,I,oCCrGxD,IAAIiX,EAAYlT,MAAQA,KAAKkT,UAAa,WAStC,OARAA,EAAW5X,OAAO6X,QAAU,SAASC,GACjC,IAAK,IAAIC,EAAG5L,EAAI,EAAG6L,EAAIC,UAAU1O,OAAQ4C,EAAI6L,EAAG7L,IAE5C,IAAK,IAAI+L,KADTH,EAAIE,UAAU9L,GACA4L,EAAO/X,OAAOC,UAAUsC,eAAepC,KAAK4X,EAAGG,KACzDJ,EAAEI,GAAKH,EAAEG,IAEjB,OAAOJ,CACX,EACOF,EAASO,MAAMzT,KAAMuT,UAChC,EACIxT,EAAmBC,MAAQA,KAAKD,kBAAqBzE,OAAO2E,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOjF,OAAOkF,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMC,IAAK,WAAa,OAAOV,EAAEC,EAAI,IAE5D9E,OAAO+D,eAAea,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGU,EAAsBd,MAAQA,KAAKc,qBAAwBxF,OAAO2E,OAAS,SAAUC,EAAGa,GACxFzF,OAAO+D,eAAea,EAAG,UAAW,CAAEU,YAAY,EAAM1F,MAAO6F,GAClE,EAAI,SAASb,EAAGa,GACbb,EAAE,WAAaa,CACnB,GACIC,EAAgBhB,MAAQA,KAAKgB,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIR,WAAY,OAAOQ,EAClC,IAAIC,EAAS,CAAC,EACd,GAAW,MAAPD,EAAa,IAAK,IAAIb,KAAKa,EAAe,YAANb,GAAmB9E,OAAOC,UAAUsC,eAAepC,KAAKwF,EAAKb,IAAIL,EAAgBmB,EAAQD,EAAKb,GAEtI,OADAU,EAAmBI,EAAQD,GACpBC,CACX,EACA5F,OAAO+D,eAAeR,EAAS,aAAc,CAAE3D,OAAO,IACtD2D,EAAQ6U,YAAS,EAIjB,IAAI5U,EAAckC,EAAa,EAAQ,OACnC2S,EAAa,EAAQ,MAOrBC,EAAoB,EAAQ,MAC5BC,EAAoB,IAAItS,IAAI,CAC5B,QACA,SACA,MACA,SACA,UACA,WACA,YACA,aAEJ,SAASuS,EAAc5Y,GACnB,OAAOA,EAAM4E,QAAQ,KAAM,SAC/B,CAIA,SAASiU,EAAiBC,EAAYC,GAClC,IAAI9R,EACJ,GAAK6R,EAAL,CAEA,IAAIE,GAA+F,KAAtD,QAA9B/R,EAAK8R,EAAKE,sBAAmC,IAAPhS,EAAgBA,EAAK8R,EAAKxJ,gBACzEqJ,EACAG,EAAK1Q,SAAmC,SAAxB0Q,EAAKE,eACjBR,EAAWS,UACXT,EAAWU,gBACrB,OAAO/Y,OAAOiC,KAAKyW,GACdpX,KAAI,SAAUG,GACf,IAAIoF,EAAIC,EACJlH,EAAmC,QAA1BiH,EAAK6R,EAAWjX,UAAyB,IAAPoF,EAAgBA,EAAK,GAKpE,MAJqB,YAAjB8R,EAAK1Q,UAELxG,EAA2D,QAApDqF,EAAKwR,EAAkBZ,eAAenS,IAAI9D,UAAyB,IAAPqF,EAAgBA,EAAKrF,GAEvFkX,EAAKK,YAAeL,EAAK1Q,SAAqB,KAAVrI,EAGlC,GAAGyB,OAAOI,EAAK,MAAOJ,OAAOuX,EAAOhZ,GAAQ,KAFxC6B,CAGf,IACKwX,KAAK,IAnBA,CAoBd,CAIA,IAAIC,EAAY,IAAIjT,IAAI,CACpB,OACA,OACA,WACA,KACA,MACA,UACA,QACA,QACA,KACA,MACA,QACA,UACA,SACA,OACA,OACA,QACA,SACA,QACA,QAUJ,SAASmS,EAAOe,EAAMpY,QACF,IAAZA,IAAsBA,EAAU,CAAC,GAGrC,IAFA,IAAIqY,GAAQ,WAAYD,EAAOA,EAAO,CAACA,IACnCE,EAAS,GACJlN,EAAI,EAAGA,EAAIiN,EAAM7P,OAAQ4C,IAC9BkN,GAAUC,EAAWF,EAAMjN,GAAIpL,GAEnC,OAAOsY,CACX,CAGA,SAASC,EAAWH,EAAMpY,GACtB,OAAQoY,EAAKxV,MACT,KAAKH,EAAYa,KACb,OAAO+T,EAAOe,EAAK9B,SAAUtW,GAEjC,KAAKyC,EAAYQ,QACjB,KAAKR,EAAYW,UACb,OAAOoV,EAAgBJ,GAC3B,KAAK3V,EAAYU,QACb,OAAOsV,EAAcL,GACzB,KAAK3V,EAAYS,MACb,OAAOwV,EAAYN,GACvB,KAAK3V,EAAYK,OACjB,KAAKL,EAAYM,MACjB,KAAKN,EAAYI,IACb,OAAO8V,EAAUP,EAAMpY,GAC3B,KAAKyC,EAAYY,KACb,OAAOuV,EAAWR,EAAMpY,GAEpC,CArBAwC,EAAQ6U,OAASA,EACjB7U,EAAA,WAAkB6U,EAqBlB,IAAIwB,EAA+B,IAAI3T,IAAI,CACvC,KACA,KACA,KACA,KACA,QACA,iBACA,gBACA,OACA,UAEA4T,EAAkB,IAAI5T,IAAI,CAAC,MAAO,SACtC,SAASyT,EAAUhW,EAAMiV,GACrB,IAAI9R,EAEiB,YAAjB8R,EAAK1Q,UAELvE,EAAKuF,KAAgE,QAAxDpC,EAAKyR,EAAkBX,aAAapS,IAAI7B,EAAKuF,aAA0B,IAAPpC,EAAgBA,EAAKnD,EAAKuF,KAEnGvF,EAAKoW,QACLF,EAA6B1Q,IAAIxF,EAAKoW,OAAO7Q,QAC7C0P,EAAOf,EAASA,EAAS,CAAC,EAAGe,GAAO,CAAE1Q,SAAS,OAGlD0Q,EAAK1Q,SAAW4R,EAAgB3Q,IAAIxF,EAAKuF,QAC1C0P,EAAOf,EAASA,EAAS,CAAC,EAAGe,GAAO,CAAE1Q,QAAS,aAEnD,IAAI8R,EAAM,IAAI1Y,OAAOqC,EAAKuF,MACtBzB,EAAUiR,EAAiB/U,EAAK8D,QAASmR,GAuB7C,OAtBInR,IACAuS,GAAO,IAAI1Y,OAAOmG,IAEO,IAAzB9D,EAAK2T,SAAS9N,SACboP,EAAK1Q,SAE2B,IAAzB0Q,EAAKqB,gBAELrB,EAAKqB,iBAAmBd,EAAUhQ,IAAIxF,EAAKuF,QAC9C0P,EAAK1Q,UACN8R,GAAO,KACXA,GAAO,OAGPA,GAAO,IACHrW,EAAK2T,SAAS9N,OAAS,IACvBwQ,GAAO3B,EAAO1U,EAAK2T,SAAUsB,KAE7BA,EAAK1Q,SAAYiR,EAAUhQ,IAAIxF,EAAKuF,QACpC8Q,GAAO,KAAK1Y,OAAOqC,EAAKuF,KAAM,OAG/B8Q,CACX,CACA,SAASR,EAAgB7V,GACrB,MAAO,IAAIrC,OAAOqC,EAAK+E,KAAM,IACjC,CACA,SAASkR,EAAWjW,EAAMiV,GACtB,IAAI9R,EACA4B,EAAO/E,EAAK+E,MAAQ,GAWxB,OAT0F,KAAtD,QAA9B5B,EAAK8R,EAAKE,sBAAmC,IAAPhS,EAAgBA,EAAK8R,EAAKxJ,kBAC/DwJ,EAAK1Q,SACJvE,EAAKoW,QACLvB,EAAkBrP,IAAIxF,EAAKoW,OAAO7Q,QACtCR,EACIkQ,EAAK1Q,SAAmC,SAAxB0Q,EAAKE,gBACf,EAAIR,EAAWS,WAAWrQ,IAC1B,EAAI4P,EAAW4B,YAAYxR,IAElCA,CACX,CACA,SAASgR,EAAY/V,GACjB,MAAO,YAAYrC,OAAOqC,EAAK2T,SAAS,GAAG5O,KAAM,MACrD,CACA,SAAS+Q,EAAc9V,GACnB,MAAO,UAAOrC,OAAOqC,EAAK+E,KAAM,SACpC,C,oCCnOA,IAAIhE,EAAmBC,MAAQA,KAAKD,kBAAqBzE,OAAO2E,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOjF,OAAOkF,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMC,IAAK,WAAa,OAAOV,EAAEC,EAAI,IAE5D9E,OAAO+D,eAAea,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGoV,EAAgBxV,MAAQA,KAAKwV,cAAiB,SAASrV,EAAGtB,GAC1D,IAAK,IAAI2U,KAAKrT,EAAa,YAANqT,GAAoBlY,OAAOC,UAAUsC,eAAepC,KAAKoD,EAAS2U,IAAIzT,EAAgBlB,EAASsB,EAAGqT,EAC3H,EACAlY,OAAO+D,eAAeR,EAAS,aAAc,CAAE3D,OAAO,IACtD2D,EAAQyT,gBAAa,EACrB,IAAImD,EAAmB,EAAQ,MAC3BC,EAAY,EAAQ,MACxBF,EAAa,EAAQ,MAAc3W,GAEnC,IAAI8W,EAAc,CACdC,kBAAkB,EAClBC,gBAAgB,EAChBtS,SAAS,GAET+O,EAA4B,WAM5B,SAASA,EAAWwD,EAAUzZ,EAAS0Z,GAEnC/V,KAAKgW,IAAM,GAEXhW,KAAK0S,KAAO,IAAIgD,EAAUO,SAASjW,KAAKgW,KAExChW,KAAKyI,MAAO,EAEZzI,KAAKkW,SAAW,CAAClW,KAAK0S,MAEtB1S,KAAKmW,SAAW,KAEhBnW,KAAKoW,OAAS,KAES,oBAAZ/Z,IACP0Z,EAAY1Z,EACZA,EAAUsZ,GAEU,kBAAbG,IACPzZ,EAAUyZ,EACVA,OAAWxV,GAEfN,KAAK8V,SAAwB,OAAbA,QAAkC,IAAbA,EAAsBA,EAAW,KACtE9V,KAAK3D,QAAsB,OAAZA,QAAgC,IAAZA,EAAqBA,EAAUsZ,EAClE3V,KAAK+V,UAA0B,OAAdA,QAAoC,IAAdA,EAAuBA,EAAY,IAC9E,CAwGA,OAvGAzD,EAAW/W,UAAUqI,aAAe,SAAUwS,GAC1CpW,KAAKoW,OAASA,CAClB,EAEA9D,EAAW/W,UAAUoM,QAAU,WAC3B3H,KAAKgW,IAAM,GACXhW,KAAK0S,KAAO,IAAIgD,EAAUO,SAASjW,KAAKgW,KACxChW,KAAKyI,MAAO,EACZzI,KAAKkW,SAAW,CAAClW,KAAK0S,MACtB1S,KAAKmW,SAAW,KAChBnW,KAAKoW,OAAS,IAClB,EAEA9D,EAAW/W,UAAUiM,MAAQ,WACrBxH,KAAKyI,OAETzI,KAAKyI,MAAO,EACZzI,KAAKoW,OAAS,KACdpW,KAAKqW,eAAe,MACxB,EACA/D,EAAW/W,UAAU6M,QAAU,SAAUkO,GACrCtW,KAAKqW,eAAeC,EACxB,EACAhE,EAAW/W,UAAUyJ,WAAa,WAC9BhF,KAAKmW,SAAW,KAChB,IAAInX,EAAOgB,KAAKkW,SAASnR,MACrB/E,KAAK3D,QAAQwZ,iBACb7W,EAAKyD,SAAWzC,KAAKoW,OAAO3T,UAE5BzC,KAAK+V,WACL/V,KAAK+V,UAAU/W,EACvB,EACAsT,EAAW/W,UAAU2J,UAAY,SAAUX,EAAMzB,GAC7C,IAAI7D,EAAOe,KAAK3D,QAAQkH,QAAUkS,EAAiB3W,YAAYI,SAAMoB,EACjEzD,EAAU,IAAI6Y,EAAUa,QAAQhS,EAAMzB,OAASxC,EAAWrB,GAC9De,KAAKwW,QAAQ3Z,GACbmD,KAAKkW,SAASjR,KAAKpI,EACvB,EACAyV,EAAW/W,UAAUsI,OAAS,SAAUE,GACpC,IAAIoS,EAAWnW,KAAKmW,SACpB,GAAIA,GAAYA,EAASlX,OAASwW,EAAiB3W,YAAYY,KAC3DyW,EAASpS,MAAQA,EACb/D,KAAK3D,QAAQwZ,iBACbM,EAAS1T,SAAWzC,KAAKoW,OAAO3T,cAGnC,CACD,IAAIgS,EAAO,IAAIiB,EAAUhW,KAAKqE,GAC9B/D,KAAKwW,QAAQ/B,GACbzU,KAAKmW,SAAW1B,CACpB,CACJ,EACAnC,EAAW/W,UAAUsL,UAAY,SAAU9C,GACvC,GAAI/D,KAAKmW,UAAYnW,KAAKmW,SAASlX,OAASwW,EAAiB3W,YAAYU,QACrEQ,KAAKmW,SAASpS,MAAQA,MAD1B,CAIA,IAAI0Q,EAAO,IAAIiB,EAAUlW,QAAQuE,GACjC/D,KAAKwW,QAAQ/B,GACbzU,KAAKmW,SAAW1B,CAHhB,CAIJ,EACAnC,EAAW/W,UAAUwL,aAAe,WAChC/G,KAAKmW,SAAW,IACpB,EACA7D,EAAW/W,UAAU+L,aAAe,WAChC,IAAImP,EAAO,IAAIf,EAAUhW,KAAK,IAC1B+U,EAAO,IAAIiB,EAAUnW,MAAM,CAACkX,IAChCzW,KAAKwW,QAAQ/B,GACbgC,EAAKrB,OAASX,EACdzU,KAAKmW,SAAWM,CACpB,EACAnE,EAAW/W,UAAUgM,WAAa,WAC9BvH,KAAKmW,SAAW,IACpB,EACA7D,EAAW/W,UAAUqL,wBAA0B,SAAUrC,EAAMR,GAC3D,IAAI0Q,EAAO,IAAIiB,EAAUgB,sBAAsBnS,EAAMR,GACrD/D,KAAKwW,QAAQ/B,EACjB,EACAnC,EAAW/W,UAAU8a,eAAiB,SAAUC,GAC5C,GAA6B,oBAAlBtW,KAAK8V,SACZ9V,KAAK8V,SAASQ,EAAOtW,KAAKgW,UAEzB,GAAIM,EACL,MAAMA,CAEd,EACAhE,EAAW/W,UAAUib,QAAU,SAAU/B,GACrC,IAAIW,EAASpV,KAAKkW,SAASlW,KAAKkW,SAASrR,OAAS,GAC9C8R,EAAkBvB,EAAOzC,SAASyC,EAAOzC,SAAS9N,OAAS,GAC3D7E,KAAK3D,QAAQuZ,mBACbnB,EAAKjS,WAAaxC,KAAKoW,OAAO5T,YAE9BxC,KAAK3D,QAAQwZ,iBACbpB,EAAKhS,SAAWzC,KAAKoW,OAAO3T,UAEhC2S,EAAOzC,SAAS1N,KAAKwP,GACjBkC,IACAlC,EAAKhW,KAAOkY,EACZA,EAAgBjY,KAAO+V,GAE3BA,EAAKW,OAASA,EACdpV,KAAKmW,SAAW,IACpB,EACO7D,CACX,CAxI+B,GAyI/BzT,EAAQyT,WAAaA,EACrBzT,EAAA,WAAkByT,C,oCCnKlB,IAAIsE,EAAa5W,MAAQA,KAAK4W,WAAc,WACxC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBvb,OAAO0b,gBAClB,CAAEC,UAAW,cAAgB/a,OAAS,SAAU4a,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIvD,KAAKuD,EAAOzb,OAAOC,UAAUsC,eAAepC,KAAKsb,EAAGvD,KAAIsD,EAAEtD,GAAKuD,EAAEvD,GAAI,EAC7FqD,EAAcC,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIlX,UAAU,uBAAyBqX,OAAOH,GAAK,iCAE7D,SAASI,IAAOnX,KAAKoX,YAAcN,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEvb,UAAkB,OAANwb,EAAazb,OAAO2E,OAAO8W,IAAMI,EAAG5b,UAAYwb,EAAExb,UAAW,IAAI4b,EACnF,CACH,CAd2C,GAexCjE,EAAYlT,MAAQA,KAAKkT,UAAa,WAStC,OARAA,EAAW5X,OAAO6X,QAAU,SAASC,GACjC,IAAK,IAAIC,EAAG5L,EAAI,EAAG6L,EAAIC,UAAU1O,OAAQ4C,EAAI6L,EAAG7L,IAE5C,IAAK,IAAI+L,KADTH,EAAIE,UAAU9L,GACA4L,EAAO/X,OAAOC,UAAUsC,eAAepC,KAAK4X,EAAGG,KACzDJ,EAAEI,GAAKH,EAAEG,IAEjB,OAAOJ,CACX,EACOF,EAASO,MAAMzT,KAAMuT,UAChC,EACAjY,OAAO+D,eAAeR,EAAS,aAAc,CAAE3D,OAAO,IACtD2D,EAAQwY,UAAYxY,EAAQyY,YAAczY,EAAQ0Y,WAAa1Y,EAAQ2Y,YAAc3Y,EAAQ4Y,UAAY5Y,EAAQ6Y,OAAS7Y,EAAQ8Y,QAAU9Y,EAAQE,MAAQF,EAAQ0X,QAAU1X,EAAQoX,SAAWpX,EAAQU,MAAQV,EAAQ+Y,iBAAmB/Y,EAAQ6X,sBAAwB7X,EAAQW,QAAUX,EAAQa,KAAOb,EAAQgZ,SAAWhZ,EAAQiZ,UAAO,EAC/U,IAAIrC,EAAmB,EAAQ,MAK3BqC,EAAsB,WACtB,SAASA,IAEL9X,KAAKoV,OAAS,KAEdpV,KAAKvB,KAAO,KAEZuB,KAAKtB,KAAO,KAEZsB,KAAKwC,WAAa,KAElBxC,KAAKyC,SAAW,IACpB,CAsDA,OArDAnH,OAAO+D,eAAeyY,EAAKvc,UAAW,aAAc,CAMhDsF,IAAK,WACD,OAAOb,KAAKoV,MAChB,EACA2C,IAAK,SAAU3C,GACXpV,KAAKoV,OAASA,CAClB,EACAxU,YAAY,EACZD,cAAc,IAElBrF,OAAO+D,eAAeyY,EAAKvc,UAAW,kBAAmB,CAKrDsF,IAAK,WACD,OAAOb,KAAKvB,IAChB,EACAsZ,IAAK,SAAUtZ,GACXuB,KAAKvB,KAAOA,CAChB,EACAmC,YAAY,EACZD,cAAc,IAElBrF,OAAO+D,eAAeyY,EAAKvc,UAAW,cAAe,CAKjDsF,IAAK,WACD,OAAOb,KAAKtB,IAChB,EACAqZ,IAAK,SAAUrZ,GACXsB,KAAKtB,KAAOA,CAChB,EACAkC,YAAY,EACZD,cAAc,IAQlBmX,EAAKvc,UAAU8b,UAAY,SAAUW,GAEjC,YADkB,IAAdA,IAAwBA,GAAY,GACjCX,EAAUrX,KAAMgY,EAC3B,EACOF,CACX,CAnEyB,GAoEzBjZ,EAAQiZ,KAAOA,EAIf,IAAID,EAA0B,SAAUI,GAKpC,SAASJ,EAAS9T,GACd,IAAImU,EAAQD,EAAOxc,KAAKuE,OAASA,KAEjC,OADAkY,EAAMnU,KAAOA,EACNmU,CACX,CAeA,OAvBAtB,EAAUiB,EAAUI,GASpB3c,OAAO+D,eAAewY,EAAStc,UAAW,YAAa,CAKnDsF,IAAK,WACD,OAAOb,KAAK+D,IAChB,EACAgU,IAAK,SAAUhU,GACX/D,KAAK+D,KAAOA,CAChB,EACAnD,YAAY,EACZD,cAAc,IAEXkX,CACX,CAzB6B,CAyB3BC,GACFjZ,EAAQgZ,SAAWA,EAInB,IAAInY,EAAsB,SAAUuY,GAEhC,SAASvY,IACL,IAAIwY,EAAmB,OAAXD,GAAmBA,EAAOxE,MAAMzT,KAAMuT,YAAcvT,KAEhE,OADAkY,EAAMjZ,KAAOwW,EAAiB3W,YAAYY,KACnCwY,CACX,CAQA,OAbAtB,EAAUlX,EAAMuY,GAMhB3c,OAAO+D,eAAeK,EAAKnE,UAAW,WAAY,CAC9CsF,IAAK,WACD,OAAO,CACX,EACAD,YAAY,EACZD,cAAc,IAEXjB,CACX,CAfyB,CAevBmY,GACFhZ,EAAQa,KAAOA,EAIf,IAAIF,EAAyB,SAAUyY,GAEnC,SAASzY,IACL,IAAI0Y,EAAmB,OAAXD,GAAmBA,EAAOxE,MAAMzT,KAAMuT,YAAcvT,KAEhE,OADAkY,EAAMjZ,KAAOwW,EAAiB3W,YAAYU,QACnC0Y,CACX,CAQA,OAbAtB,EAAUpX,EAASyY,GAMnB3c,OAAO+D,eAAeG,EAAQjE,UAAW,WAAY,CACjDsF,IAAK,WACD,OAAO,CACX,EACAD,YAAY,EACZD,cAAc,IAEXnB,CACX,CAf4B,CAe1BqY,GACFhZ,EAAQW,QAAUA,EAIlB,IAAIkX,EAAuC,SAAUuB,GAEjD,SAASvB,EAAsBnS,EAAMR,GACjC,IAAImU,EAAQD,EAAOxc,KAAKuE,KAAM+D,IAAS/D,KAGvC,OAFAkY,EAAM3T,KAAOA,EACb2T,EAAMjZ,KAAOwW,EAAiB3W,YAAYW,UACnCyY,CACX,CAQA,OAdAtB,EAAUF,EAAuBuB,GAOjC3c,OAAO+D,eAAeqX,EAAsBnb,UAAW,WAAY,CAC/DsF,IAAK,WACD,OAAO,CACX,EACAD,YAAY,EACZD,cAAc,IAEX+V,CACX,CAhB0C,CAgBxCmB,GACFhZ,EAAQ6X,sBAAwBA,EAIhC,IAAIkB,EAAkC,SAAUK,GAK5C,SAASL,EAAiBjF,GACtB,IAAIuF,EAAQD,EAAOxc,KAAKuE,OAASA,KAEjC,OADAkY,EAAMvF,SAAWA,EACVuF,CACX,CAmCA,OA3CAtB,EAAUgB,EAAkBK,GAS5B3c,OAAO+D,eAAeuY,EAAiBrc,UAAW,aAAc,CAG5DsF,IAAK,WACD,IAAIsB,EACJ,OAAmC,QAA3BA,EAAKnC,KAAK2S,SAAS,UAAuB,IAAPxQ,EAAgBA,EAAK,IACpE,EACAvB,YAAY,EACZD,cAAc,IAElBrF,OAAO+D,eAAeuY,EAAiBrc,UAAW,YAAa,CAE3DsF,IAAK,WACD,OAAOb,KAAK2S,SAAS9N,OAAS,EACxB7E,KAAK2S,SAAS3S,KAAK2S,SAAS9N,OAAS,GACrC,IACV,EACAjE,YAAY,EACZD,cAAc,IAElBrF,OAAO+D,eAAeuY,EAAiBrc,UAAW,aAAc,CAK5DsF,IAAK,WACD,OAAOb,KAAK2S,QAChB,EACAoF,IAAK,SAAUpF,GACX3S,KAAK2S,SAAWA,CACpB,EACA/R,YAAY,EACZD,cAAc,IAEXiX,CACX,CA7CqC,CA6CnCE,GACFjZ,EAAQ+Y,iBAAmBA,EAC3B,IAAIrY,EAAuB,SAAU0Y,GAEjC,SAAS1Y,IACL,IAAI2Y,EAAmB,OAAXD,GAAmBA,EAAOxE,MAAMzT,KAAMuT,YAAcvT,KAEhE,OADAkY,EAAMjZ,KAAOwW,EAAiB3W,YAAYS,MACnC2Y,CACX,CAQA,OAbAtB,EAAUrX,EAAO0Y,GAMjB3c,OAAO+D,eAAeE,EAAMhE,UAAW,WAAY,CAC/CsF,IAAK,WACD,OAAO,CACX,EACAD,YAAY,EACZD,cAAc,IAEXpB,CACX,CAf0B,CAexBqY,GACF/Y,EAAQU,MAAQA,EAIhB,IAAI0W,EAA0B,SAAUgC,GAEpC,SAAShC,IACL,IAAIiC,EAAmB,OAAXD,GAAmBA,EAAOxE,MAAMzT,KAAMuT,YAAcvT,KAEhE,OADAkY,EAAMjZ,KAAOwW,EAAiB3W,YAAYa,KACnCuY,CACX,CAQA,OAbAtB,EAAUX,EAAUgC,GAMpB3c,OAAO+D,eAAe4W,EAAS1a,UAAW,WAAY,CAClDsF,IAAK,WACD,OAAO,CACX,EACAD,YAAY,EACZD,cAAc,IAEXsV,CACX,CAf6B,CAe3B2B,GACF/Y,EAAQoX,SAAWA,EAInB,IAAIM,EAAyB,SAAU0B,GAOnC,SAAS1B,EAAQhS,EAAMzB,EAAS6P,EAAU1T,QACrB,IAAb0T,IAAuBA,EAAW,SACzB,IAAT1T,IAAmBA,EAAgB,WAATsF,EACxBkR,EAAiB3W,YAAYK,OACpB,UAAToF,EACIkR,EAAiB3W,YAAYM,MAC7BqW,EAAiB3W,YAAYI,KACvC,IAAIgZ,EAAQD,EAAOxc,KAAKuE,KAAM2S,IAAa3S,KAI3C,OAHAkY,EAAM3T,KAAOA,EACb2T,EAAMpV,QAAUA,EAChBoV,EAAMjZ,KAAOA,EACNiZ,CACX,CAuCA,OAzDAtB,EAAUL,EAAS0B,GAmBnB3c,OAAO+D,eAAekX,EAAQhb,UAAW,WAAY,CACjDsF,IAAK,WACD,OAAO,CACX,EACAD,YAAY,EACZD,cAAc,IAElBrF,OAAO+D,eAAekX,EAAQhb,UAAW,UAAW,CAMhDsF,IAAK,WACD,OAAOb,KAAKuE,IAChB,EACAwT,IAAK,SAAUxT,GACXvE,KAAKuE,KAAOA,CAChB,EACA3D,YAAY,EACZD,cAAc,IAElBrF,OAAO+D,eAAekX,EAAQhb,UAAW,aAAc,CACnDsF,IAAK,WACD,IAAIqX,EAAQlY,KACZ,OAAO1E,OAAOiC,KAAKyC,KAAK8C,SAASlG,KAAI,SAAU2H,GAC3C,IAAIpC,EAAIC,EACR,MAAO,CACHmC,KAAMA,EACNrJ,MAAOgd,EAAMpV,QAAQyB,GACrB4T,UAAkD,QAAtChW,EAAK+V,EAAM,6BAA0C,IAAP/V,OAAgB,EAASA,EAAGoC,GACtF6T,OAA4C,QAAnChW,EAAK8V,EAAM,0BAAuC,IAAP9V,OAAgB,EAASA,EAAGmC,GAExF,GACJ,EACA3D,YAAY,EACZD,cAAc,IAEX4V,CACX,CA3D4B,CA2D1BqB,GAMF,SAAS7Y,EAAM0V,GACX,OAAO,EAAIgB,EAAiB1W,OAAO0V,EACvC,CAMA,SAASkD,EAAQlD,GACb,OAAOA,EAAKxV,OAASwW,EAAiB3W,YAAYS,KACtD,CAMA,SAASmY,EAAOjD,GACZ,OAAOA,EAAKxV,OAASwW,EAAiB3W,YAAYY,IACtD,CAMA,SAAS+X,EAAUhD,GACf,OAAOA,EAAKxV,OAASwW,EAAiB3W,YAAYU,OACtD,CAMA,SAASgY,EAAY/C,GACjB,OAAOA,EAAKxV,OAASwW,EAAiB3W,YAAYW,SACtD,CAMA,SAAS8X,EAAW9C,GAChB,OAAOA,EAAKxV,OAASwW,EAAiB3W,YAAYa,IACtD,CAMA,SAAS2X,EAAY7C,GACjB,OAAOnZ,OAAOC,UAAUsC,eAAepC,KAAKgZ,EAAM,WACtD,CAQA,SAAS4C,EAAU5C,EAAMuD,GAErB,IAAI9W,EACJ,QAFkB,IAAd8W,IAAwBA,GAAY,GAEpCN,EAAOjD,GACPvT,EAAS,IAAIxB,EAAK+U,EAAK1Q,WAEtB,GAAI0T,EAAUhD,GACfvT,EAAS,IAAI1B,EAAQiV,EAAK1Q,WAEzB,GAAIhF,EAAM0V,GAAO,CAClB,IAAI9B,EAAWqF,EAAYK,EAAc5D,EAAK9B,UAAY,GACtD2F,EAAU,IAAI/B,EAAQ9B,EAAKlQ,KAAM2O,EAAS,CAAC,EAAGuB,EAAK3R,SAAU6P,GACjEA,EAAS3U,SAAQ,SAAUua,GAAS,OAAQA,EAAMnD,OAASkD,CAAU,IAC/C,MAAlB7D,EAAK0D,YACLG,EAAQH,UAAY1D,EAAK0D,WAEzB1D,EAAK,wBACL6D,EAAQ,sBAAwBpF,EAAS,CAAC,EAAGuB,EAAK,wBAElDA,EAAK,qBACL6D,EAAQ,mBAAqBpF,EAAS,CAAC,EAAGuB,EAAK,qBAEnDvT,EAASoX,CACb,MACK,GAAIX,EAAQlD,GAAO,CAChB9B,EAAWqF,EAAYK,EAAc5D,EAAK9B,UAAY,GAA1D,IACI6F,EAAU,IAAIjZ,EAAMoT,GACxBA,EAAS3U,SAAQ,SAAUua,GAAS,OAAQA,EAAMnD,OAASoD,CAAU,IACrEtX,EAASsX,CACb,MACK,GAAIjB,EAAW9C,GAAO,CACnB9B,EAAWqF,EAAYK,EAAc5D,EAAK9B,UAAY,GAA1D,IACI8F,EAAU,IAAIxC,EAAStD,GAC3BA,EAAS3U,SAAQ,SAAUua,GAAS,OAAQA,EAAMnD,OAASqD,CAAU,IACjEhE,EAAK,YACLgE,EAAQ,UAAYhE,EAAK,WAE7BvT,EAASuX,CACb,KACK,KAAIjB,EAAY/C,GAUjB,MAAM,IAAIlW,MAAM,wBAAwB5B,OAAO8X,EAAKxV,OATpD,IAAIyZ,EAAc,IAAIhC,EAAsBjC,EAAKlQ,KAAMkQ,EAAK1Q,MACtC,MAAlB0Q,EAAK,YACLiE,EAAY,UAAYjE,EAAK,UAC7BiE,EAAY,cAAgBjE,EAAK,cACjCiE,EAAY,cAAgBjE,EAAK,eAErCvT,EAASwX,CAIb,CAMA,OALAxX,EAAOsB,WAAaiS,EAAKjS,WACzBtB,EAAOuB,SAAWgS,EAAKhS,SACQ,MAA3BgS,EAAKkE,qBACLzX,EAAOyX,mBAAqBlE,EAAKkE,oBAE9BzX,CACX,CAEA,SAASmX,EAAcO,GAEnB,IADA,IAAIjG,EAAWiG,EAAOhc,KAAI,SAAU2b,GAAS,OAAOlB,EAAUkB,GAAO,EAAO,IACnE9Q,EAAI,EAAGA,EAAIkL,EAAS9N,OAAQ4C,IACjCkL,EAASlL,GAAGhJ,KAAOkU,EAASlL,EAAI,GAChCkL,EAASlL,EAAI,GAAG/I,KAAOiU,EAASlL,GAEpC,OAAOkL,CACX,CAjIA9T,EAAQ0X,QAAUA,EAQlB1X,EAAQE,MAAQA,EAQhBF,EAAQ8Y,QAAUA,EAQlB9Y,EAAQ6Y,OAASA,EAQjB7Y,EAAQ4Y,UAAYA,EAQpB5Y,EAAQ2Y,YAAcA,EAQtB3Y,EAAQ0Y,WAAaA,EAQrB1Y,EAAQyY,YAAcA,EAiEtBzY,EAAQwY,UAAYA,C,oCChdpB/b,OAAO+D,eAAeR,EAAS,aAAc,CAAE3D,OAAO,IACtD2D,EAAQqT,aAAU,EAClB,IAAI2G,EAAiB,EAAQ,MACzBC,EAAc,EAAQ,MAQ1B,SAAS5G,EAAQ6G,GACb,IAAIC,EAAWC,EAAcC,EAAaH,GAC1C,OAAQC,EAEgB,SAAlBA,EAASzU,KACL4U,EAAYH,GACZI,EAAWJ,GAHf,IAIV,CAQA,SAASG,EAAYH,GACjB,IAAI7W,EACAyW,EAASI,EAASrG,SAClBI,EAAO,CACP9T,KAAM,OACNoa,OAAO,EAAIP,EAAYQ,sBAAsB,QAASV,GAAQhc,KAAI,SAAU2c,GACxE,IAAIpX,EACAwQ,EAAW4G,EAAK5G,SAChB6G,EAAQ,CAAEC,MAAOC,EAAiB/G,IACtCgH,EAAiBH,EAAO,KAAM,KAAM7G,GACpCgH,EAAiBH,EAAO,QAAS,QAAS7G,GAC1C,IAAIiH,EAAkD,QAA1CzX,EAAK8W,EAAc,OAAQtG,UAA8B,IAAPxQ,OAAgB,EAASA,EAAGW,QAAQ,QAC9F8W,IACAJ,EAAMK,KAAOD,GAEjB,IAAIE,EAAcC,EAAM,UAAWpH,IAAaoH,EAAM,UAAWpH,GAC7DmH,IACAN,EAAMM,YAAcA,GAExB,IAAIE,EAAUD,EAAM,UAAWpH,GAI/B,OAHIqH,IACAR,EAAMQ,QAAU,IAAIC,KAAKD,IAEtBR,CACX,KAEJG,EAAiB5G,EAAM,KAAM,KAAM6F,GACnCe,EAAiB5G,EAAM,QAAS,QAAS6F,GACzC,IAAIgB,EAAgD,QAAxCzX,EAAK8W,EAAc,OAAQL,UAA4B,IAAPzW,OAAgB,EAASA,EAAGW,QAAQ,QAC5F8W,IACA7G,EAAK8G,KAAOD,GAEhBD,EAAiB5G,EAAM,cAAe,WAAY6F,GAClD,IAAIsB,EAAUH,EAAM,UAAWnB,GAK/B,OAJIsB,IACAnH,EAAKmH,QAAU,IAAID,KAAKC,IAE5BP,EAAiB5G,EAAM,SAAU,QAAS6F,GAAQ,GAC3C7F,CACX,CAOA,SAASqG,EAAWJ,GAChB,IAAI7W,EAAIC,EACJwW,EAAwH,QAA9GxW,EAA4D,QAAtDD,EAAK8W,EAAc,UAAWD,EAASrG,iBAA8B,IAAPxQ,OAAgB,EAASA,EAAGwQ,gBAA6B,IAAPvQ,EAAgBA,EAAK,GACrJ2Q,EAAO,CACP9T,KAAM+Z,EAASzU,KAAKmC,OAAO,EAAG,GAC9ByT,GAAI,GACJd,OAAO,EAAIP,EAAYQ,sBAAsB,OAAQN,EAASrG,UAAU/V,KAAI,SAAU2c,GAClF,IAAI5G,EAAW4G,EAAK5G,SAChB6G,EAAQ,CAAEC,MAAOC,EAAiB/G,IACtCgH,EAAiBH,EAAO,KAAM,OAAQ7G,GACtCgH,EAAiBH,EAAO,QAAS,QAAS7G,GAC1CgH,EAAiBH,EAAO,OAAQ,OAAQ7G,GACxCgH,EAAiBH,EAAO,cAAe,cAAe7G,GACtD,IAAIqH,EAAUD,EAAM,UAAWpH,GAG/B,OAFIqH,IACAR,EAAMQ,QAAU,IAAIC,KAAKD,IACtBR,CACX,KAEJG,EAAiB5G,EAAM,QAAS,QAAS6F,GACzCe,EAAiB5G,EAAM,OAAQ,OAAQ6F,GACvCe,EAAiB5G,EAAM,cAAe,cAAe6F,GACrD,IAAIsB,EAAUH,EAAM,gBAAiBnB,GAKrC,OAJIsB,IACAnH,EAAKmH,QAAU,IAAID,KAAKC,IAE5BP,EAAiB5G,EAAM,SAAU,iBAAkB6F,GAAQ,GACpD7F,CACX,CAjFAlU,EAAQqT,QAAUA,EAkFlB,IAAIkI,EAAoB,CAAC,MAAO,OAAQ,QACpCC,EAAiB,CACjB,WACA,UACA,YACA,eACA,WACA,WACA,SACA,SAQJ,SAASX,EAAiBY,GACtB,OAAO,EAAIxB,EAAYQ,sBAAsB,gBAAiBgB,GAAO1d,KAAI,SAAUoC,GAM/E,IALA,IAAI8D,EAAU9D,EAAK8D,QACf2W,EAAQ,CACRc,OAAQzX,EAAQ,UAChB0X,YAAa1X,EAAQ,cAEhB2X,EAAK,EAAGC,EAAsBN,EAAmBK,EAAKC,EAAoB7V,OAAQ4V,IAAM,CAC7F,IAAIE,EAASD,EAAoBD,GAC7B3X,EAAQ6X,KACRlB,EAAMkB,GAAU7X,EAAQ6X,GAEhC,CACA,IAAK,IAAIxY,EAAK,EAAGyY,EAAmBP,EAAgBlY,EAAKyY,EAAiB/V,OAAQ1C,IAAM,CAChFwY,EAASC,EAAiBzY,GAC1BW,EAAQ6X,KACRlB,EAAMkB,GAAUE,SAAS/X,EAAQ6X,GAAS,IAElD,CAIA,OAHI7X,EAAQ,gBACR2W,EAAMqB,WAAahY,EAAQ,eAExB2W,CACX,GACJ,CAQA,SAASR,EAAc8B,EAAStG,GAC5B,OAAO,EAAIqE,EAAYQ,sBAAsByB,EAAStG,GAAM,EAAM,GAAG,EACzE,CASA,SAASsF,EAAMgB,EAAST,EAAOU,GAE3B,YADgB,IAAZA,IAAsBA,GAAU,IAC7B,EAAInC,EAAeoC,cAAa,EAAInC,EAAYQ,sBAAsByB,EAAST,EAAOU,EAAS,IAAIE,MAC9G,CAUA,SAASvB,EAAiBwB,EAAKC,EAAML,EAAST,EAAOU,QACjC,IAAZA,IAAsBA,GAAU,GACpC,IAAI/e,EAAM8d,EAAMgB,EAAST,EAAOU,GAC5B/e,IACAkf,EAAIC,GAAQnf,EACpB,CAOA,SAASid,EAAYhe,GACjB,MAAiB,QAAVA,GAA6B,SAAVA,GAA8B,YAAVA,CAClD,C,oCC5LAI,OAAO+D,eAAeR,EAAS,aAAc,CAAE3D,OAAO,IACtD2D,EAAQwc,WAAaxc,EAAQyc,wBAA0Bzc,EAAQ0c,iBAAmB1c,EAAQ2c,mBAAgB,EAC1G,IAuCID,EAvCA/I,EAAe,EAAQ,MAQ3B,SAASgJ,EAAc9G,GACnB,IAAIvQ,EAAMuQ,EAAM7P,OAKhB,QAASV,GAAO,EAAG,CACf,IAAIsQ,EAAOC,EAAMvQ,GAMjB,GAAIA,EAAM,GAAKuQ,EAAMlP,YAAYiP,EAAMtQ,EAAM,IAAM,EAC/CuQ,EAAM+G,OAAOtX,EAAK,QAGtB,IAAK,IAAIuX,EAAWjH,EAAKW,OAAQsG,EAAUA,EAAWA,EAAStG,OAC3D,GAAIV,EAAMiH,SAASD,GAAW,CAC1BhH,EAAM+G,OAAOtX,EAAK,GAClB,KACJ,CAER,CACA,OAAOuQ,CACX,CAwCA,SAAS4G,EAAwBM,EAAOC,GACpC,IAAIC,EAAW,GACXC,EAAW,GACf,GAAIH,IAAUC,EACV,OAAO,EAEX,IAAIG,GAAU,EAAIxJ,EAAa8E,aAAasE,GAASA,EAAQA,EAAMxG,OACnE,MAAO4G,EACHF,EAASG,QAAQD,GACjBA,EAAUA,EAAQ5G,OAEtB4G,GAAU,EAAIxJ,EAAa8E,aAAauE,GAASA,EAAQA,EAAMzG,OAC/D,MAAO4G,EACHD,EAASE,QAAQD,GACjBA,EAAUA,EAAQ5G,OAEtB,IAAI8G,EAASC,KAAKC,IAAIN,EAASjX,OAAQkX,EAASlX,QAC5CV,EAAM,EACV,MAAOA,EAAM+X,GAAUJ,EAAS3X,KAAS4X,EAAS5X,GAC9CA,IAEJ,GAAY,IAARA,EACA,OAAOoX,EAAiBc,aAE5B,IAAIC,EAAeR,EAAS3X,EAAM,GAC9BoY,EAAWD,EAAa3J,SACxB6J,EAAWV,EAAS3X,GACpBsY,EAAWV,EAAS5X,GACxB,OAAIoY,EAASG,QAAQF,GAAYD,EAASG,QAAQD,GAC1CH,IAAiBT,EACVN,EAAiBoB,UAAYpB,EAAiBqB,aAElDrB,EAAiBoB,UAExBL,IAAiBV,EACVL,EAAiBsB,UAAYtB,EAAiBuB,SAElDvB,EAAiBsB,SAC5B,CAWA,SAASxB,EAAW3G,GAYhB,OAXAA,EAAQA,EAAMvX,QAAO,SAAUsX,EAAMhN,EAAGsV,GAAO,OAAQA,EAAIpB,SAASlH,EAAMhN,EAAI,EAAI,IAClFiN,EAAMsI,MAAK,SAAUC,EAAGlG,GACpB,IAAImG,EAAW5B,EAAwB2B,EAAGlG,GAC1C,OAAImG,EAAW3B,EAAiBsB,WACpB,EAEHK,EAAW3B,EAAiBoB,UAC1B,EAEJ,CACX,IACOjI,CACX,CArGA7V,EAAQ2c,cAAgBA,EAMxB,SAAWD,GACPA,EAAiBA,EAAiB,gBAAkB,GAAK,eACzDA,EAAiBA,EAAiB,aAAe,GAAK,YACtDA,EAAiBA,EAAiB,aAAe,GAAK,YACtDA,EAAiBA,EAAiB,YAAc,GAAK,WACrDA,EAAiBA,EAAiB,gBAAkB,IAAM,cAC7D,CAND,CAMGA,EAAmB1c,EAAQ0c,mBAAqB1c,EAAQ0c,iBAAmB,CAAC,IAkE/E1c,EAAQyc,wBAA0BA,EAwBlCzc,EAAQwc,WAAaA,C,oCC1IrB,IAAItb,EAAmBC,MAAQA,KAAKD,kBAAqBzE,OAAO2E,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOjF,OAAOkF,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMC,IAAK,WAAa,OAAOV,EAAEC,EAAI,IAE5D9E,OAAO+D,eAAea,EAAGG,EAAIE,EAChC,EAAI,SAAUL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGoV,EAAgBxV,MAAQA,KAAKwV,cAAiB,SAASrV,EAAGtB,GAC1D,IAAK,IAAI2U,KAAKrT,EAAa,YAANqT,GAAoBlY,OAAOC,UAAUsC,eAAepC,KAAKoD,EAAS2U,IAAIzT,EAAgBlB,EAASsB,EAAGqT,EAC3H,EACAlY,OAAO+D,eAAeR,EAAS,aAAc,CAAE3D,OAAO,IACtD2D,EAAQyY,YAAczY,EAAQ0Y,WAAa1Y,EAAQ4Y,UAAY5Y,EAAQ6Y,OAAS7Y,EAAQ8Y,QAAU9Y,EAAQE,WAAQ,EAClHyW,EAAa,EAAQ,MAAmB3W,GACxC2W,EAAa,EAAQ,MAAmB3W,GACxC2W,EAAa,EAAQ,MAAsB3W,GAC3C2W,EAAa,EAAQ,MAAkB3W,GACvC2W,EAAa,EAAQ,MAAgB3W,GACrC2W,EAAa,EAAQ,MAAiB3W,GACtC2W,EAAa,EAAQ,MAAe3W,GAEpC,IAAI2T,EAAe,EAAQ,MAC3BlX,OAAO+D,eAAeR,EAAS,QAAS,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO2R,EAAazT,KAAO,IAC1GzD,OAAO+D,eAAeR,EAAS,UAAW,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO2R,EAAamF,OAAS,IAC9Grc,OAAO+D,eAAeR,EAAS,SAAU,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO2R,EAAakF,MAAQ,IAC5Gpc,OAAO+D,eAAeR,EAAS,YAAa,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO2R,EAAaiF,SAAW,IAClHnc,OAAO+D,eAAeR,EAAS,aAAc,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO2R,EAAa+E,UAAY,IACpHjc,OAAO+D,eAAeR,EAAS,cAAe,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO2R,EAAa8E,WAAa,G,oCC9BtHhc,OAAO+D,eAAeR,EAAS,aAAc,CAAE3D,OAAO,IACtD2D,EAAQse,qBAAuBte,EAAQya,qBAAuBza,EAAQue,eAAiBve,EAAQwe,YAAcxe,EAAQye,iBAAc,EACnI,IAAI9K,EAAe,EAAQ,MACvB+K,EAAgB,EAAQ,MACxBC,EAAS,CACTC,SAAU,SAAUlZ,GAChB,MAAoB,oBAATA,EACA,SAAUvF,GAAQ,OAAO,EAAIwT,EAAazT,OAAOC,IAASuF,EAAKvF,EAAKuF,KAAO,EAEpE,MAATA,EACEiO,EAAazT,MAEjB,SAAUC,GAAQ,OAAO,EAAIwT,EAAazT,OAAOC,IAASA,EAAKuF,OAASA,CAAM,CACzF,EACAmZ,SAAU,SAAUze,GAChB,MAAoB,oBAATA,EACA,SAAUD,GAAQ,OAAOC,EAAKD,EAAKC,KAAO,EAE9C,SAAUD,GAAQ,OAAOA,EAAKC,OAASA,CAAM,CACxD,EACA0e,aAAc,SAAU5Z,GACpB,MAAoB,oBAATA,EACA,SAAU/E,GAAQ,OAAO,EAAIwT,EAAakF,QAAQ1Y,IAAS+E,EAAK/E,EAAK+E,KAAO,EAEhF,SAAU/E,GAAQ,OAAO,EAAIwT,EAAakF,QAAQ1Y,IAASA,EAAK+E,OAASA,CAAM,CAC1F,GAQJ,SAAS6Z,EAAejD,EAAQzf,GAC5B,MAAqB,oBAAVA,EACA,SAAU8D,GAAQ,OAAO,EAAIwT,EAAazT,OAAOC,IAAS9D,EAAM8D,EAAK8D,QAAQ6X,GAAU,EAE3F,SAAU3b,GAAQ,OAAO,EAAIwT,EAAazT,OAAOC,IAASA,EAAK8D,QAAQ6X,KAAYzf,CAAO,CACrG,CAOA,SAAS2iB,EAAaZ,EAAGlG,GACrB,OAAO,SAAU/X,GAAQ,OAAOie,EAAEje,IAAS+X,EAAE/X,EAAO,CACxD,CAMA,SAAS8e,EAAYzhB,GACjB,IAAI0hB,EAAQziB,OAAOiC,KAAKlB,GAASO,KAAI,SAAUG,GAC3C,IAAI7B,EAAQmB,EAAQU,GACpB,OAAOzB,OAAOC,UAAUsC,eAAepC,KAAK+hB,EAAQzgB,GAC9CygB,EAAOzgB,GAAK7B,GACZ0iB,EAAe7gB,EAAK7B,EAC9B,IACA,OAAwB,IAAjB6iB,EAAMlZ,OAAe,KAAOkZ,EAAMvf,OAAOqf,EACpD,CAOA,SAASP,EAAYjhB,EAASoY,GAC1B,IAAIuJ,EAAOF,EAAYzhB,GACvB,OAAO2hB,GAAOA,EAAKvJ,EACvB,CAUA,SAAS4I,EAAYhhB,EAASqY,EAAOsG,EAASiD,QAC5B,IAAVA,IAAoBA,EAAQC,KAChC,IAAIF,EAAOF,EAAYzhB,GACvB,OAAO2hB,GAAO,EAAIT,EAAcpgB,QAAQ6gB,EAAMtJ,EAAOsG,EAASiD,GAAS,EAC3E,CASA,SAASb,EAAejD,EAAIzF,EAAOsG,GAI/B,YAHgB,IAAZA,IAAsBA,GAAU,GAC/B9e,MAAMC,QAAQuY,KACfA,EAAQ,CAACA,KACN,EAAI6I,EAAcY,SAASP,EAAe,KAAMzD,GAAKzF,EAAOsG,EACvE,CAUA,SAAS1B,EAAqByB,EAASrG,EAAOsG,EAASiD,GAGnD,YAFgB,IAAZjD,IAAsBA,GAAU,QACtB,IAAViD,IAAoBA,EAAQC,MACzB,EAAIX,EAAcpgB,QAAQqgB,EAAO,YAAYzC,GAAUrG,EAAOsG,EAASiD,EAClF,CAUA,SAASd,EAAqBle,EAAMyV,EAAOsG,EAASiD,GAGhD,YAFgB,IAAZjD,IAAsBA,GAAU,QACtB,IAAViD,IAAoBA,EAAQC,MACzB,EAAIX,EAAcpgB,QAAQqgB,EAAO,YAAYve,GAAOyV,EAAOsG,EAASiD,EAC/E,CAvDApf,EAAQye,YAAcA,EActBze,EAAQwe,YAAcA,EActBxe,EAAQue,eAAiBA,EAczBve,EAAQya,qBAAuBA,EAc/Bza,EAAQse,qBAAuBA,C,kCCxH/B,SAASiB,EAAcpf,GAKnB,GAJIA,EAAKP,OACLO,EAAKP,KAAKC,KAAOM,EAAKN,MACtBM,EAAKN,OACLM,EAAKN,KAAKD,KAAOO,EAAKP,MACtBO,EAAKoW,OAAQ,CACb,IAAIwD,EAAS5Z,EAAKoW,OAAOzC,SACzBiG,EAAO6C,OAAO7C,EAAOpT,YAAYxG,GAAO,EAC5C,CACJ,CASA,SAASqf,EAAerf,EAAMsf,GAC1B,IAAI7f,EAAQ6f,EAAY7f,KAAOO,EAAKP,KAChCA,IACAA,EAAKC,KAAO4f,GAEhB,IAAI5f,EAAQ4f,EAAY5f,KAAOM,EAAKN,KAChCA,IACAA,EAAKD,KAAO6f,GAEhB,IAAIlJ,EAAUkJ,EAAYlJ,OAASpW,EAAKoW,OACxC,GAAIA,EAAQ,CACR,IAAIwD,EAASxD,EAAOzC,SACpBiG,EAAOA,EAAOpT,YAAYxG,IAASsf,EACnCtf,EAAKoW,OAAS,IAClB,CACJ,CASA,SAASmJ,EAAYvf,EAAMuZ,GAIvB,GAHA6F,EAAc7F,GACdA,EAAM7Z,KAAO,KACb6Z,EAAMnD,OAASpW,EACXA,EAAK2T,SAAS1N,KAAKsT,GAAS,EAAG,CAC/B,IAAIiG,EAAUxf,EAAK2T,SAAS3T,EAAK2T,SAAS9N,OAAS,GACnD2Z,EAAQ9f,KAAO6Z,EACfA,EAAM9Z,KAAO+f,CACjB,MAEIjG,EAAM9Z,KAAO,IAErB,CASA,SAASggB,EAAOzf,EAAMN,GAClB0f,EAAc1f,GACd,IAAI0W,EAASpW,EAAKoW,OACdsJ,EAAW1f,EAAKN,KAKpB,GAJAA,EAAKA,KAAOggB,EACZhgB,EAAKD,KAAOO,EACZA,EAAKN,KAAOA,EACZA,EAAK0W,OAASA,EACVsJ,GAEA,GADAA,EAASjgB,KAAOC,EACZ0W,EAAQ,CACR,IAAIwD,EAASxD,EAAOzC,SACpBiG,EAAO6C,OAAO7C,EAAOpT,YAAYkZ,GAAW,EAAGhgB,EACnD,OAEK0W,GACLA,EAAOzC,SAAS1N,KAAKvG,EAE7B,CASA,SAASigB,EAAa3f,EAAMuZ,GAIxB,GAHA6F,EAAc7F,GACdA,EAAMnD,OAASpW,EACfuZ,EAAM9Z,KAAO,KACwB,IAAjCO,EAAK2T,SAASsJ,QAAQ1D,GAAc,CACpC,IAAIiG,EAAUxf,EAAK2T,SAAS,GAC5B6L,EAAQ/f,KAAO8Z,EACfA,EAAM7Z,KAAO8f,CACjB,MAEIjG,EAAM7Z,KAAO,IAErB,CASA,SAASkgB,EAAQ5f,EAAMP,GACnB2f,EAAc3f,GACd,IAAI2W,EAASpW,EAAKoW,OAClB,GAAIA,EAAQ,CACR,IAAIwD,EAASxD,EAAOzC,SACpBiG,EAAO6C,OAAO7C,EAAO8D,QAAQ1d,GAAO,EAAGP,EAC3C,CACIO,EAAKP,OACLO,EAAKP,KAAKC,KAAOD,GAErBA,EAAK2W,OAASA,EACd3W,EAAKA,KAAOO,EAAKP,KACjBA,EAAKC,KAAOM,EACZA,EAAKP,KAAOA,CAChB,CArIAnD,OAAO+D,eAAeR,EAAS,aAAc,CAAE3D,OAAO,IACtD2D,EAAQ+f,QAAU/f,EAAQ8f,aAAe9f,EAAQ4f,OAAS5f,EAAQ0f,YAAc1f,EAAQwf,eAAiBxf,EAAQuf,mBAAgB,EAiBjIvf,EAAQuf,cAAgBA,EAwBxBvf,EAAQwf,eAAiBA,EAqBzBxf,EAAQ0f,YAAcA,EA2BtB1f,EAAQ4f,OAASA,EAqBjB5f,EAAQ8f,aAAeA,EAuBvB9f,EAAQ+f,QAAUA,C,oCCtIlBtjB,OAAO+D,eAAeR,EAAS,aAAc,CAAE3D,OAAO,IACtD2D,EAAQggB,QAAUhgB,EAAQigB,UAAYjgB,EAAQsf,QAAUtf,EAAQkgB,aAAelgB,EAAQmgB,KAAOngB,EAAQ1B,YAAS,EAC/G,IAAIqV,EAAe,EAAQ,MAW3B,SAASrV,EAAO6gB,EAAMvJ,EAAMuG,EAASiD,GAKjC,YAJgB,IAAZjD,IAAsBA,GAAU,QACtB,IAAViD,IAAoBA,EAAQC,KAC3BhiB,MAAMC,QAAQsY,KACfA,EAAO,CAACA,IACLuK,EAAKhB,EAAMvJ,EAAMuG,EAASiD,EACrC,CAYA,SAASe,EAAKhB,EAAMtJ,EAAOsG,EAASiD,GAEhC,IADA,IAAI/c,EAAS,GACJuZ,EAAK,EAAGwE,EAAUvK,EAAO+F,EAAKwE,EAAQpa,OAAQ4V,IAAM,CACzD,IAAIzb,EAAOigB,EAAQxE,GACnB,GAAIuD,EAAKhf,KACLkC,EAAO+D,KAAKjG,KACNif,GAAS,GACX,MAER,GAAIjD,IAAW,EAAIxI,EAAa8E,aAAatY,IAASA,EAAK2T,SAAS9N,OAAS,EAAG,CAC5E,IAAI8N,EAAWqM,EAAKhB,EAAMhf,EAAK2T,SAAUqI,EAASiD,GAGlD,GAFA/c,EAAO+D,KAAKwO,MAAMvS,EAAQyR,GAC1BsL,GAAStL,EAAS9N,OACdoZ,GAAS,EACT,KACR,CACJ,CACA,OAAO/c,CACX,CAWA,SAAS6d,EAAaf,EAAMtJ,GACxB,OAAOA,EAAMsK,KAAKhB,EACtB,CAWA,SAASG,EAAQH,EAAMtJ,EAAOsG,QACV,IAAZA,IAAsBA,GAAU,GAEpC,IADA,IAAIhc,EAAO,KACFyI,EAAI,EAAGA,EAAIiN,EAAM7P,SAAW7F,EAAMyI,IAAK,CAC5C,IAAIyX,EAAUxK,EAAMjN,IACf,EAAI+K,EAAazT,OAAOmgB,KAGpBlB,EAAKkB,GACVlgB,EAAOkgB,EAEFlE,GAAWkE,EAAQvM,SAAS9N,OAAS,IAC1C7F,EAAOmf,EAAQH,EAAMkB,EAAQvM,UAAU,IAE/C,CACA,OAAO3T,CACX,CAQA,SAAS8f,EAAUd,EAAMtJ,GACrB,OAAOA,EAAMyK,MAAK,SAAUD,GACxB,OAAO,EAAI1M,EAAazT,OAAOmgB,KAC1BlB,EAAKkB,IACDA,EAAQvM,SAAS9N,OAAS,GACvBia,EAAUd,EAAMkB,EAAQvM,UACxC,GACJ,CAYA,SAASkM,EAAQb,EAAMtJ,GACnB,IAAIvS,EAGAnD,EAFAkC,EAAS,GACT6B,EAAQ2R,EAAMvX,OAAOqV,EAAazT,OAEtC,MAAQC,EAAO+D,EAAMkF,QAAU,CAC3B,IAAI0K,EAAoC,QAAxBxQ,EAAKnD,EAAK2T,gBAA6B,IAAPxQ,OAAgB,EAASA,EAAGhF,OAAOqV,EAAazT,OAC5F4T,GAAYA,EAAS9N,OAAS,GAC9B9B,EAAMkZ,QAAQxI,MAAM1Q,EAAO4P,GAE3BqL,EAAKhf,IACLkC,EAAO+D,KAAKjG,EACpB,CACA,OAAOkC,CACX,CA9GArC,EAAQ1B,OAASA,EA8BjB0B,EAAQmgB,KAAOA,EAafngB,EAAQkgB,aAAeA,EA2BvBlgB,EAAQsf,QAAUA,EAelBtf,EAAQigB,UAAYA,EA0BpBjgB,EAAQggB,QAAUA,C,oCCnIlB,IAAI/M,EAAmB9R,MAAQA,KAAK8R,iBAAoB,SAAU7Q,GAC9D,OAAQA,GAAOA,EAAIR,WAAcQ,EAAM,CAAE,QAAWA,EACxD,EACA3F,OAAO+D,eAAeR,EAAS,aAAc,CAAE3D,OAAO,IACtD2D,EAAQugB,UAAYvgB,EAAQoc,YAAcpc,EAAQwgB,QAAUxgB,EAAQygB,aAAezgB,EAAQ0gB,kBAAe,EAC1G,IAAI/M,EAAe,EAAQ,MACvBgN,EAAmB1N,EAAgB,EAAQ,OAC3C2D,EAAmB,EAAQ,MAQ/B,SAAS8J,EAAa9K,EAAMpY,GACxB,OAAO,EAAImjB,EAAiB7b,SAAS8Q,EAAMpY,EAC/C,CASA,SAASijB,EAAa7K,EAAMpY,GACxB,OAAO,EAAImW,EAAa8E,aAAa7C,GAC/BA,EAAK9B,SAAS/V,KAAI,SAAU6X,GAAQ,OAAO8K,EAAa9K,EAAMpY,EAAU,IAAGkY,KAAK,IAChF,EACV,CAUA,SAAS8K,EAAQ5K,GACb,OAAIvY,MAAMC,QAAQsY,GACPA,EAAK7X,IAAIyiB,GAAS9K,KAAK,KAC9B,EAAI/B,EAAazT,OAAO0V,GACH,OAAdA,EAAKlQ,KAAgB,KAAO8a,EAAQ5K,EAAK9B,WAChD,EAAIH,EAAamF,SAASlD,GACnB4K,EAAQ5K,EAAK9B,WACpB,EAAIH,EAAakF,QAAQjD,GAClBA,EAAK1Q,KACT,EACX,CAUA,SAASkX,EAAYxG,GACjB,OAAIvY,MAAMC,QAAQsY,GACPA,EAAK7X,IAAIqe,GAAa1G,KAAK,KAClC,EAAI/B,EAAa8E,aAAa7C,MAAU,EAAIjC,EAAaiF,WAAWhD,GAC7DwG,EAAYxG,EAAK9B,WAExB,EAAIH,EAAakF,QAAQjD,GAClBA,EAAK1Q,KACT,EACX,CAUA,SAASqb,EAAU3K,GACf,OAAIvY,MAAMC,QAAQsY,GACPA,EAAK7X,IAAIwiB,GAAW7K,KAAK,KAChC,EAAI/B,EAAa8E,aAAa7C,KAAUA,EAAKxV,OAASwW,EAAiB3W,YAAYI,MAAO,EAAIsT,EAAamF,SAASlD,IAC7G2K,EAAU3K,EAAK9B,WAEtB,EAAIH,EAAakF,QAAQjD,GAClBA,EAAK1Q,KACT,EACX,CAtEAlF,EAAQ0gB,aAAeA,EAavB1gB,EAAQygB,aAAeA,EAoBvBzgB,EAAQwgB,QAAUA,EAmBlBxgB,EAAQoc,YAAcA,EAmBtBpc,EAAQugB,UAAYA,C,oCCzFpB9jB,OAAO+D,eAAeR,EAAS,aAAc,CAAE3D,OAAO,IACtD2D,EAAQ4gB,mBAAqB5gB,EAAQ6gB,mBAAqB7gB,EAAQ8gB,QAAU9gB,EAAQ+gB,UAAY/gB,EAAQghB,kBAAoBhhB,EAAQihB,YAAcjhB,EAAQkhB,UAAYlhB,EAAQmhB,iBAAc,EAC5L,IAAIxN,EAAe,EAAQ,MAQ3B,SAASwN,EAAYhhB,GACjB,OAAO,EAAIwT,EAAa8E,aAAatY,GAAQA,EAAK2T,SAAW,EACjE,CASA,SAASoN,EAAU/gB,GACf,OAAOA,EAAKoW,QAAU,IAC1B,CAaA,SAAS0K,EAAY9gB,GACjB,IAAImD,EAAIC,EACJgT,EAAS2K,EAAU/gB,GACvB,GAAc,MAAVoW,EACA,OAAO4K,EAAY5K,GACvB,IAAImH,EAAW,CAACvd,GACZP,EAAOO,EAAKP,KAAMC,EAAOM,EAAKN,KAClC,MAAe,MAARD,EACH8d,EAASN,QAAQxd,GAChB0D,EAAK1D,EAAMA,EAAO0D,EAAG1D,KAE1B,MAAe,MAARC,EACH6d,EAAStX,KAAKvG,GACb0D,EAAK1D,EAAMA,EAAO0D,EAAG1D,KAE1B,OAAO6d,CACX,CAUA,SAASsD,EAAkB7gB,EAAMuF,GAC7B,IAAIpC,EACJ,OAA+B,QAAvBA,EAAKnD,EAAK8D,eAA4B,IAAPX,OAAgB,EAASA,EAAGoC,EACvE,CAUA,SAASqb,EAAU5gB,EAAMuF,GACrB,OAAwB,MAAhBvF,EAAK8D,SACTxH,OAAOC,UAAUsC,eAAepC,KAAKuD,EAAK8D,QAASyB,IAC7B,MAAtBvF,EAAK8D,QAAQyB,EACrB,CASA,SAASob,EAAQ3gB,GACb,OAAOA,EAAKuF,IAChB,CASA,SAASmb,EAAmB1gB,GACxB,IAAImD,EACAzD,EAAOM,EAAKN,KAChB,MAAgB,OAATA,KAAkB,EAAI8T,EAAazT,OAAOL,GAC5CyD,EAAKzD,EAAMA,EAAOyD,EAAGzD,KAC1B,OAAOA,CACX,CASA,SAAS+gB,EAAmBzgB,GACxB,IAAImD,EACA1D,EAAOO,EAAKP,KAChB,MAAgB,OAATA,KAAkB,EAAI+T,EAAazT,OAAON,GAC5C0D,EAAK1D,EAAMA,EAAO0D,EAAG1D,KAC1B,OAAOA,CACX,CA3GAI,EAAQmhB,YAAcA,EAWtBnhB,EAAQkhB,UAAYA,EA6BpBlhB,EAAQihB,YAAcA,EAatBjhB,EAAQghB,kBAAoBA,EAc5BhhB,EAAQ+gB,UAAYA,EAWpB/gB,EAAQ8gB,QAAUA,EAelB9gB,EAAQ6gB,mBAAqBA,EAe7B7gB,EAAQ4gB,mBAAqBA,C,oCCzH7B,IAAI3N,EAAmB9R,MAAQA,KAAK8R,iBAAoB,SAAU7Q,GAC9D,OAAQA,GAAOA,EAAIR,WAAcQ,EAAM,CAAE,QAAWA,EACxD,EACA3F,OAAO+D,eAAeR,EAAS,aAAc,CAAE3D,OAAO,IACtD2D,EAAQohB,UAAYphB,EAAQqhB,iBAAmBrhB,EAAQshB,WAAathB,EAAQyR,gBAAkBzR,EAAQ4R,aAAe5R,EAAQwF,cAAgBxF,EAAQ4S,iBAAmB5S,EAAQuhB,gBAAkBvhB,EAAQwM,cAAgBxM,EAAQyM,oBAAiB,EACnP,IAAI+U,EAAwBvO,EAAgB,EAAQ,OACpDjT,EAAQyM,eAAiB+U,EAAsB1c,QAC/C,IAAI2c,EAAuBxO,EAAgB,EAAQ,OACnDjT,EAAQwM,cAAgBiV,EAAqB3c,QAC7C,IAAI4c,EAAwBzO,EAAgB,EAAQ,OACpDjT,EAAQuhB,gBAAkBG,EAAsB5c,QAChD,IAGI+E,EAYA+H,EAfA+P,EAAwB,EAAQ,MAqBpC,SAASC,EAAWC,GAChB,OAAO,SAA0B3Y,EAAKwJ,GAClC,IAAIoP,EAAM,GACNC,EAAU,EACVC,EAAS,EACb,OAAQA,EAAS9Y,EAAI2U,QAAQ,IAAKmE,KAAY,EAM1C,GALAF,GAAO5Y,EAAIC,MAAM4Y,EAASC,GAC1BD,EAAUC,EAEVA,GAAU,EAEN9Y,EAAIgF,WAAW8T,KAAYnY,EAAUoY,IAAzC,CAkCA,IAJA,IAAIC,EAAY,EACZC,EAAS,EACTC,EAAU,EACVjF,EAAU0E,EAAWO,GAClBJ,EAAS9Y,EAAIlD,OAAQgc,IAAUG,IAAU,CAE5C,GADAC,EAAU3Q,EAAgBoQ,EAAY1E,EAASiF,EAAU,EAAGlZ,EAAIgF,WAAW8T,IACvEI,EAAU,EACV,MACJjF,EAAU0E,EAAWO,GACrB,IAAIzQ,EAASwL,EAAUvL,EAAaC,aAEpC,GAAIF,EAAQ,CAEHe,GAAUxJ,EAAIgF,WAAW8T,KAAYnY,EAAUwY,OAChDH,EAAYE,EACZD,EAAS,GAGb,IAAIrQ,GAAeH,GAAU,IAAM,EACnC,GAAoB,IAAhBG,EACA,MACJsQ,GAAWtQ,CACf,CACJ,CACA,GAAkB,IAAdoQ,EAAiB,CACbpQ,GAAe+P,EAAWK,GAAatQ,EAAaC,eAAiB,GACzEiQ,GACoB,IAAhBhQ,EACMuG,OAAOiK,aAAaT,EAAWK,IAActQ,EAAaC,cAC1C,IAAhBC,EACIuG,OAAOiK,aAAaT,EAAWK,EAAY,IAC3C7J,OAAOiK,aAAaT,EAAWK,EAAY,GAAIL,EAAWK,EAAY,IACpFH,EAAUC,EAASG,EAAS,CAChC,CAlCA,KA7BA,CAEI,IAAIld,EAAQ+c,EAAS,EACjBO,EAAO,GACPld,EAAK6D,EAAIgF,WAAWjJ,IACnBI,EAAKwE,EAAU2Y,gBAAkB3Y,EAAU4Y,UAC5CF,EAAO,GACPP,GAAU,EACV/c,GAAS,GAEb,GACII,EAAK6D,EAAIgF,aAAa8T,SAClB3c,GAAMwE,EAAU6Y,MAAQrd,GAAMwE,EAAU8Y,MAClC,KAATJ,IACIld,EAAKwE,EAAU2Y,eAAiB3Y,EAAU+Y,UAC1Cvd,EAAKwE,EAAU2Y,eAAiB3Y,EAAUgZ,SACnD,GAAI5d,IAAU+c,EAAQ,CAClB,IAAIc,EAAS5Z,EAAI6Z,UAAU9d,EAAO+c,GAC9BgB,EAAShH,SAAS8G,EAAQP,GAC9B,GAAIrZ,EAAIgF,WAAW8T,KAAYnY,EAAUwY,KACrCL,GAAU,OAET,GAAItP,EACL,SAEJoP,IAAO,EAAIJ,EAAsB5c,SAASke,GAC1CjB,EAAUC,CACd,CAEJ,CAoCJ,OAAOF,EAAM5Y,EAAIC,MAAM4Y,EAC3B,CACJ,CACA,SAAStQ,EAAgBoQ,EAAY1E,EAAS8F,EAASC,GACnD,IAAIC,GAAehG,EAAUvL,EAAawR,gBAAkB,EACxDC,EAAalG,EAAUvL,EAAa0R,WAExC,GAAoB,IAAhBH,EACA,OAAsB,IAAfE,GAAoBH,IAASG,EAAaJ,GAAW,EAGhE,GAAII,EAAY,CACZ,IAAIhnB,EAAQ6mB,EAAOG,EACnB,OAAOhnB,EAAQ,GAAKA,GAAS8mB,GACtB,EACDtB,EAAWoB,EAAU5mB,GAAS,CACxC,CAGA,IAAIknB,EAAKN,EACLO,EAAKD,EAAKJ,EAAc,EAC5B,MAAOI,GAAMC,EAAI,CACb,IAAIC,EAAOF,EAAKC,IAAQ,EACpBE,EAAS7B,EAAW4B,GACxB,GAAIC,EAASR,EACTK,EAAKE,EAAM,MAEV,MAAIC,EAASR,GAId,OAAOrB,EAAW4B,EAAMN,GAHxBK,EAAKC,EAAM,CAIf,CACJ,CACA,OAAQ,CACZ,CAnIAhnB,OAAO+D,eAAeR,EAAS,mBAAoB,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO2f,EAAsB/O,gBAAkB,IACzInW,OAAO+D,eAAeR,EAAS,gBAAiB,CAAE+B,YAAY,EAAMC,IAAK,WAAc,OAAO2f,EAAsBnc,aAAe,IAEnI,SAAWqE,GACPA,EAAUA,EAAU,OAAS,IAAM,MACnCA,EAAUA,EAAU,QAAU,IAAM,OACpCA,EAAUA,EAAU,QAAU,IAAM,OACpCA,EAAUA,EAAU,QAAU,IAAM,OACpCA,EAAUA,EAAU,WAAa,IAAM,UACvCA,EAAUA,EAAU,WAAa,KAAO,UACxCA,EAAUA,EAAU,WAAa,KAAO,UAExCA,EAAUA,EAAU,gBAAkB,IAAM,cAC/C,CAVD,CAUGA,IAAcA,EAAY,CAAC,IAE9B,SAAW+H,GACPA,EAAaA,EAAa,gBAAkB,OAAS,eACrDA,EAAaA,EAAa,iBAAmB,OAAS,gBACtDA,EAAaA,EAAa,cAAgB,KAAO,YACpD,CAJD,CAIGA,EAAe5R,EAAQ4R,eAAiB5R,EAAQ4R,aAAe,CAAC,IAiHnE5R,EAAQyR,gBAAkBA,EAC1B,IAAIkS,EAAc/B,EAAWJ,EAAsB1c,SAC/C8e,EAAahC,EAAWH,EAAqB3c,SAOjD,SAASwc,EAAWpY,GAChB,OAAOya,EAAYza,GAAK,EAC5B,CAQA,SAASmY,EAAiBnY,GACtB,OAAOya,EAAYza,GAAK,EAC5B,CAQA,SAASkY,EAAUlY,GACf,OAAO0a,EAAW1a,GAAK,EAC3B,CAnBAlJ,EAAQshB,WAAaA,EAUrBthB,EAAQqhB,iBAAmBA,EAU3BrhB,EAAQohB,UAAYA,C,kCC/KpB,IAAI9d,EACJ7G,OAAO+D,eAAeR,EAAS,aAAc,CAAE3D,OAAO,IACtD2D,EAAQ4S,iBAAmB5S,EAAQwF,mBAAgB,EACnD,IAAIqe,EAAY,IAAI7gB,IAAI,CACpB,CAAC,EAAG,OACJ,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,KACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,KACN,CAAC,IAAK,MACN,CAAC,IAAK,KACN,CAAC,IAAK,MACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,KACN,CAAC,IAAK,MACN,CAAC,IAAK,KACN,CAAC,IAAK,MACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,OAcV,SAAS4P,EAAiBkR,GACtB,IAAIxgB,EACJ,OAAKwgB,GAAa,OAAUA,GAAa,OAAWA,EAAY,QACrD,MAEgC,QAAnCxgB,EAAKugB,EAAU7hB,IAAI8hB,UAA+B,IAAPxgB,EAAgBA,EAAKwgB,CAC5E,CAEA,SAASvC,EAAgBuC,GACrB,OAAO,EAAI9jB,EAAQwF,eAAeoN,EAAiBkR,GACvD,CAtBA9jB,EAAQwF,cAEwB,QAA/BlC,EAAK+U,OAAO7S,qBAAkC,IAAPlC,EAAgBA,EAAK,SAAUwgB,GACnE,IAAIhO,EAAS,GAOb,OANIgO,EAAY,QACZA,GAAa,MACbhO,GAAUuC,OAAOiK,aAAewB,IAAc,GAAM,KAAS,OAC7DA,EAAY,MAAsB,KAAZA,GAE1BhO,GAAUuC,OAAOiK,aAAawB,GACvBhO,CACX,EAQA9V,EAAQ4S,iBAAmBA,EAI3B5S,EAAA,WAAkBuhB,C,oCCzDlB,IAAItO,EAAmB9R,MAAQA,KAAK8R,iBAAoB,SAAU7Q,GAC9D,OAAQA,GAAOA,EAAIR,WAAcQ,EAAM,CAAE,QAAWA,EACxD,EACA3F,OAAO+D,eAAeR,EAAS,aAAc,CAAE3D,OAAO,IACtD2D,EAAQ+jB,mBAAqB/jB,EAAQgkB,gBAAa,EAClD,IAAIC,EAAmBhR,EAAgB,EAAQ,OAC3CiR,EAAc,EAAQ,MACtBC,EAAe,sCAYnB,SAASH,EAAW9e,GAChB,OAAOkf,EAAiBD,EAAcjf,EAC1C,CAUA,SAAS6e,EAAmB7e,GACxB,OAAOkf,EAAiBF,EAAYG,YAAanf,EACrD,CAEA,SAASkf,EAAiBE,EAAQpb,GAC9B,IAEIqb,EAFAzC,EAAM,GACNC,EAAU,EAEd,MAAsC,QAA9BwC,EAAQD,EAAOE,KAAKtb,IAAgB,CACxC,IAAIN,EAAI2b,EAAMvY,MACd8V,GAAO5Y,EAAI6Z,UAAUhB,EAASnZ,GAC9B,IAAIsa,EAAOha,EAAIgF,WAAWtF,GACtB/I,EAAOokB,EAAiBnf,QAAQ9C,IAAIkhB,GACxC,GAAoB,kBAATrjB,EAAmB,CAE1B,GAAI+I,EAAI,EAAIM,EAAIlD,OAAQ,CACpB,IAAIye,EAAWvb,EAAIgF,WAAWtF,EAAI,GAC9BvM,EAA0B,kBAAXwD,EAAK4U,EAClB5U,EAAK4U,IAAMgQ,EACP5kB,EAAKwB,OACLI,EACJ5B,EAAK4U,EAAEzS,IAAIyiB,GACjB,QAAchjB,IAAVpF,EAAqB,CACrBylB,GAAOzlB,EACP0lB,EAAUuC,EAAOI,WAAa,EAC9B,QACJ,CACJ,CACA7kB,EAAOA,EAAKqC,CAChB,CAEA,QAAaT,IAAT5B,EACAiiB,GAAOjiB,EACPkiB,EAAUnZ,EAAI,MAEb,CACD,IAAIvD,GAAK,EAAI6e,EAAYS,cAAczb,EAAKN,GAC5CkZ,GAAO,MAAMhkB,OAAOuH,EAAG1I,SAAS,IAAK,KAErColB,EAAUuC,EAAOI,WAAa7W,OAAOxI,IAAO6d,EAChD,CACJ,CACA,OAAOpB,EAAM5Y,EAAIrB,OAAOka,EAC5B,CApDA/hB,EAAQgkB,WAAaA,EAYrBhkB,EAAQ+jB,mBAAqBA,C,kCClC7BtnB,OAAO+D,eAAeR,EAAS,aAAc,CAAE3D,OAAO,IACtD2D,EAAQ0W,WAAa1W,EAAQwV,gBAAkBxV,EAAQ4kB,WAAa5kB,EAAQ6kB,OAAS7kB,EAAQuV,UAAYvV,EAAQ2kB,aAAe3kB,EAAQqkB,iBAAc,EACtJrkB,EAAQqkB,YAAc,uBACtB,IAAIS,EAAa,IAAI9hB,IAAI,CACrB,CAAC,GAAI,UACL,CAAC,GAAI,SACL,CAAC,GAAI,UACL,CAAC,GAAI,QACL,CAAC,GAAI,UAuBT,SAASuS,EAAUrM,GACf,IAEIqb,EAFAzC,EAAM,GACNC,EAAU,EAEd,MAAmD,QAA3CwC,EAAQvkB,EAAQqkB,YAAYG,KAAKtb,IAAgB,CACrD,IAAIN,EAAI2b,EAAMvY,MACVkX,EAAOha,EAAIgF,WAAWtF,GACtB/I,EAAOilB,EAAW9iB,IAAIkhB,QACbzhB,IAAT5B,GACAiiB,GAAO5Y,EAAI6Z,UAAUhB,EAASnZ,GAAK/I,EACnCkiB,EAAUnZ,EAAI,IAGdkZ,GAAO,GAAGhkB,OAAOoL,EAAI6Z,UAAUhB,EAASnZ,GAAI,OAAO9K,QAAO,EAAIkC,EAAQ2kB,cAAczb,EAAKN,GAAGjM,SAAS,IAAK,KAE1GolB,EAAU/hB,EAAQqkB,YAAYK,WAAa7W,OAA2B,SAAZ,MAAPqV,IAE3D,CACA,OAAOpB,EAAM5Y,EAAIrB,OAAOka,EAC5B,CAYA,SAASgD,EAAWC,EAAOjnB,GACvB,OAAO,SAAgBmH,GACnB,IAAIqf,EACAxC,EAAU,EACV1f,EAAS,GACb,MAAQkiB,EAAQS,EAAMR,KAAKtf,GACnB6c,IAAYwC,EAAMvY,QAClB3J,GAAU6C,EAAK6d,UAAUhB,EAASwC,EAAMvY,QAG5C3J,GAAUtE,EAAIiE,IAAIuiB,EAAM,GAAGrW,WAAW,IAEtC6T,EAAUwC,EAAMvY,MAAQ,EAE5B,OAAO3J,EAAS6C,EAAK6d,UAAUhB,EACnC,CACJ,CAnEA/hB,EAAQ2kB,aAEwB,MAAhCtM,OAAO3b,UAAUuoB,YACX,SAAU/b,EAAK8C,GAAS,OAAO9C,EAAI+b,YAAYjZ,EAAQ,EAErD,SAAUhC,EAAGgC,GACT,OAA0C,SAAZ,MAAtBhC,EAAEkE,WAAWlC,IACkB,MAAhChC,EAAEkE,WAAWlC,GAAS,OACrBhC,EAAEkE,WAAWlC,EAAQ,GACrB,MACA,MACFhC,EAAEkE,WAAWlC,EACvB,EA4BRhM,EAAQuV,UAAYA,EAUpBvV,EAAQ6kB,OAAStP,EAyBjBvV,EAAQ4kB,WAAaG,EAAW,WAAYD,GAO5C9kB,EAAQwV,gBAAkBuP,EAAW,cAAe,IAAI/hB,IAAI,CACxD,CAAC,GAAI,UACL,CAAC,GAAI,SACL,CAAC,IAAK,aAQVhD,EAAQ0W,WAAaqO,EAAW,eAAgB,IAAI/hB,IAAI,CACpD,CAAC,GAAI,SACL,CAAC,GAAI,QACL,CAAC,GAAI,QACL,CAAC,IAAK,Y,kCC3GVvG,OAAO+D,eAAeR,EAAS,aAAc,CAAE3D,OAAO,IACtD2D,EAAA,WAAkB,IAAIklB,YAEtB,2keACKC,MAAM,IACNpnB,KAAI,SAAUiM,GAAK,OAAOA,EAAEkE,WAAW,EAAI,I,kCCLhDzR,OAAO+D,eAAeR,EAAS,aAAc,CAAE3D,OAAO,IACtD2D,EAAA,WAAkB,IAAIklB,YAEtB,sCACKC,MAAM,IACNpnB,KAAI,SAAUiM,GAAK,OAAOA,EAAEkE,WAAW,EAAI,I,kCCJhD,SAASkX,EAAYlH,GACjB,IAAK,IAAItV,EAAI,EAAGA,EAAIsV,EAAIlY,OAAQ4C,IAC5BsV,EAAItV,GAAG,IAAMsV,EAAItV,EAAI,GAAG,GAAK,EAEjC,OAAOsV,CACX,CANAzhB,OAAO+D,eAAeR,EAAS,aAAc,CAAE3D,OAAO,IAQtD2D,EAAA,WAAkB,IAAIgD,IAAoBoiB,EAAY,CAAC,CAAC,EAAG,SAAU,CAAC,EAAG,aAAc,CAAC,GAAI,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,GAAI,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,CAAEljB,EAAG,OAAQuS,EAAG,KAAMpT,EAAG,WAAa,CAAC,EAAG,CAAEa,EAAG,WAAYuS,EAAG,KAAMpT,EAAG,UAAY,CAAC,EAAG,CAAEa,EAAG,OAAQuS,EAAG,KAAMpT,EAAG,WAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,GAAI,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,sBAAuB,CAAC,EAAG,CAAEoT,EAAG,IAAKpT,EAAG,YAAc,CAAC,GAAI,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,GAAI,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,cAAe,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,eAAgB,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,eAAgB,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,E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,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,KAAM,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,eAAgB,CAAC,EAAG,YAAa,CAAC,EAAG,yBAA0B,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,W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","sources":["webpack://fittrackee_client/./node_modules/deepmerge/dist/cjs.js","webpack://fittrackee_client/./node_modules/domelementtype/lib/index.js","webpack://fittrackee_client/./node_modules/escape-string-regexp/index.js","webpack://fittrackee_client/./node_modules/htmlparser2/lib/Parser.js","webpack://fittrackee_client/./node_modules/htmlparser2/lib/Tokenizer.js","webpack://fittrackee_client/./node_modules/htmlparser2/lib/index.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/dom-serializer/lib/foreignNames.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/dom-serializer/lib/index.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/domhandler/lib/index.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/domhandler/lib/node.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/domutils/lib/feeds.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/domutils/lib/helpers.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/domutils/lib/index.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/domutils/lib/legacy.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/domutils/lib/manipulation.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/domutils/lib/querying.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/domutils/lib/stringify.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/domutils/lib/traversal.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/entities/lib/decode.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/entities/lib/decode_codepoint.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/entities/lib/encode.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/entities/lib/escape.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/entities/lib/generated/decode-data-html.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/entities/lib/generated/decode-data-xml.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/entities/lib/generated/encode-html.js","webpack://fittrackee_client/./node_modules/htmlparser2/node_modules/entities/lib/index.js","webpack://fittrackee_client/./node_modules/is-plain-object/dist/is-plain-object.js","webpack://fittrackee_client/./node_modules/parse-srcset/src/parse-srcset.js","webpack://fittrackee_client/./node_modules/picocolors/picocolors.browser.js","webpack://fittrackee_client/./node_modules/postcss/lib/at-rule.js","webpack://fittrackee_client/./node_modules/postcss/lib/comment.js","webpack://fittrackee_client/./node_modules/postcss/lib/container.js","webpack://fittrackee_client/./node_modules/postcss/lib/css-syntax-error.js","webpack://fittrackee_client/./node_modules/postcss/lib/declaration.js","webpack://fittrackee_client/./node_modules/postcss/lib/document.js","webpack://fittrackee_client/./node_modules/postcss/lib/fromJSON.js","webpack://fittrackee_client/./node_modules/postcss/lib/input.js","webpack://fittrackee_client/./node_modules/postcss/lib/lazy-result.js","webpack://fittrackee_client/./node_modules/postcss/lib/list.js","webpack://fittrackee_client/./node_modules/postcss/lib/map-generator.js","webpack://fittrackee_client/./node_modules/postcss/lib/no-work-result.js","webpack://fittrackee_client/./node_modules/postcss/lib/node.js","webpack://fittrackee_client/./node_modules/postcss/lib/parse.js","webpack://fittrackee_client/./node_modules/postcss/lib/parser.js","webpack://fittrackee_client/./node_modules/postcss/lib/postcss.js","webpack://fittrackee_client/./node_modules/postcss/lib/previous-map.js","webpack://fittrackee_client/./node_modules/postcss/lib/processor.js","webpack://fittrackee_client/./node_modules/postcss/lib/result.js","webpack://fittrackee_client/./node_modules/postcss/lib/root.js","webpack://fittrackee_client/./node_modules/postcss/lib/rule.js","webpack://fittrackee_client/./node_modules/postcss/lib/stringifier.js","webpack://fittrackee_client/./node_modules/postcss/lib/stringify.js","webpack://fittrackee_client/./node_modules/postcss/lib/symbols.js","webpack://fittrackee_client/./node_modules/postcss/lib/tokenize.js","webpack://fittrackee_client/./node_modules/postcss/lib/warn-once.js","webpack://fittrackee_client/./node_modules/postcss/lib/warning.js","webpack://fittrackee_client/./node_modules/sanitize-html/index.js","webpack://fittrackee_client/./src/components/Workout/WorkoutEdition.vue?1df7","webpack://fittrackee_client/./src/components/Workout/WorkoutEdition.vue","webpack://fittrackee_client/./src/views/workouts/AddWorkout.vue?212d","webpack://fittrackee_client/./src/views/workouts/AddWorkout.vue","webpack://fittrackee_client/./src/views/workouts/EditWorkout.vue?ba9e","webpack://fittrackee_client/./src/views/workouts/EditWorkout.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutCardTitle.vue?4e0b","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutCardTitle.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutRecord.vue?0a89","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutRecord.vue","webpack://fittrackee_client/./src/utils/weather.ts","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WeatherWind.vue?bd35","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WeatherWind.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutWeather.vue?84e1","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutWeather.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutData.vue?ef29","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutData.vue","webpack://fittrackee_client/./node_modules/@tmcw/togeojson/dist/togeojson.es.mjs","webpack://fittrackee_client/./node_modules/@vue-leaflet/vue-leaflet/dist/vue-leaflet.esm.js","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutMap/CustomMarker.vue?3193","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutMap/CustomMarker.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutMap/index.vue?a62d","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutMap/index.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/index.vue?8ebb","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/index.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutChart/legend.ts","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutChart/index.vue?65aa","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutChart/index.vue","webpack://fittrackee_client/./node_modules/linkifyjs/dist/linkify.es.js","webpack://fittrackee_client/./node_modules/linkify-html/dist/linkify-html.es.js","webpack://fittrackee_client/./src/utils/inputs.ts","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutNotes.vue?a827","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutNotes.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutSegments.vue?037e","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutSegments.vue","webpack://fittrackee_client/./src/views/workouts/Workout.vue?3305","webpack://fittrackee_client/./src/views/workouts/Workout.vue","webpack://fittrackee_client/./src/components/Workouts/WorkoutsFilters.vue?c3bc","webpack://fittrackee_client/./src/components/Workouts/WorkoutsFilters.vue","webpack://fittrackee_client/./src/components/Workouts/WorkoutsList.vue?72e6","webpack://fittrackee_client/./src/components/Workouts/WorkoutsList.vue","webpack://fittrackee_client/./src/views/workouts/WorkoutsView.vue?ee31","webpack://fittrackee_client/./src/views/workouts/WorkoutsView.vue","webpack://fittrackee_client/./node_modules/nanoid/non-secure/index.cjs"],"sourcesContent":["'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for `.\n this.sequenceIndex = Number(c === CharCodes.Lt);\n }\n };\n Tokenizer.prototype.stateCDATASequence = function (c) {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n }\n else {\n this.sequenceIndex = 0;\n this.state = State.InDeclaration;\n this.stateInDeclaration(c); // Reconsume the character\n }\n };\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n Tokenizer.prototype.fastForwardTo = function (c) {\n while (++this.index < this.buffer.length + this.offset) {\n if (this.buffer.charCodeAt(this.index - this.offset) === c) {\n return true;\n }\n }\n /*\n * We increment the index at the end of the `parse` loop,\n * so set it to `buffer.length - 1` here.\n *\n * TODO: Refactor `parse` to increment index before calling states.\n */\n this.index = this.buffer.length + this.offset - 1;\n return false;\n };\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n Tokenizer.prototype.stateInCommentLike = function (c) {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, this.index, 2);\n }\n else {\n this.cbs.oncomment(this.sectionStart, this.index, 2);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = State.Text;\n }\n }\n else if (this.sequenceIndex === 0) {\n // Fast-forward to the first character of the sequence\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n }\n else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n // Allow long sequences, eg. --->, ]]]>\n this.sequenceIndex = 0;\n }\n };\n /**\n * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n *\n * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n * We allow anything that wouldn't end the tag.\n */\n Tokenizer.prototype.isTagStartChar = function (c) {\n return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n };\n Tokenizer.prototype.startSpecial = function (sequence, offset) {\n this.isSpecial = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n this.state = State.SpecialStartSequence;\n };\n Tokenizer.prototype.stateBeforeTagName = function (c) {\n if (c === CharCodes.ExclamationMark) {\n this.state = State.BeforeDeclaration;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Questionmark) {\n this.state = State.InProcessingInstruction;\n this.sectionStart = this.index + 1;\n }\n else if (this.isTagStartChar(c)) {\n var lower = c | 0x20;\n this.sectionStart = this.index;\n if (!this.xmlMode && lower === Sequences.TitleEnd[2]) {\n this.startSpecial(Sequences.TitleEnd, 3);\n }\n else {\n this.state =\n !this.xmlMode && lower === Sequences.ScriptEnd[2]\n ? State.BeforeSpecialS\n : State.InTagName;\n }\n }\n else if (c === CharCodes.Slash) {\n this.state = State.BeforeClosingTagName;\n }\n else {\n this.state = State.Text;\n this.stateText(c);\n }\n };\n Tokenizer.prototype.stateInTagName = function (c) {\n if (isEndOfTagSection(c)) {\n this.cbs.onopentagname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateBeforeClosingTagName = function (c) {\n if (isWhitespace(c)) {\n // Ignore\n }\n else if (c === CharCodes.Gt) {\n this.state = State.Text;\n }\n else {\n this.state = this.isTagStartChar(c)\n ? State.InClosingTagName\n : State.InSpecialComment;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateInClosingTagName = function (c) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n this.cbs.onclosetag(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterClosingTagName;\n this.stateAfterClosingTagName(c);\n }\n };\n Tokenizer.prototype.stateAfterClosingTagName = function (c) {\n // Skip everything until \">\"\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeName = function (c) {\n if (c === CharCodes.Gt) {\n this.cbs.onopentagend(this.index);\n if (this.isSpecial) {\n this.state = State.InSpecialTag;\n this.sequenceIndex = 0;\n }\n else {\n this.state = State.Text;\n }\n this.baseState = this.state;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Slash) {\n this.state = State.InSelfClosingTag;\n }\n else if (!isWhitespace(c)) {\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateInSelfClosingTag = function (c) {\n if (c === CharCodes.Gt) {\n this.cbs.onselfclosingtag(this.index);\n this.state = State.Text;\n this.baseState = State.Text;\n this.sectionStart = this.index + 1;\n this.isSpecial = false; // Reset special state, in case of self-closing special tags\n }\n else if (!isWhitespace(c)) {\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateInAttributeName = function (c) {\n if (c === CharCodes.Eq || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterAttributeName;\n this.stateAfterAttributeName(c);\n }\n };\n Tokenizer.prototype.stateAfterAttributeName = function (c) {\n if (c === CharCodes.Eq) {\n this.state = State.BeforeAttributeValue;\n }\n else if (c === CharCodes.Slash || c === CharCodes.Gt) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (!isWhitespace(c)) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeValue = function (c) {\n if (c === CharCodes.DoubleQuote) {\n this.state = State.InAttributeValueDq;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.SingleQuote) {\n this.state = State.InAttributeValueSq;\n this.sectionStart = this.index + 1;\n }\n else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = State.InAttributeValueNq;\n this.stateInAttributeValueNoQuotes(c); // Reconsume token\n }\n };\n Tokenizer.prototype.handleInAttributeValue = function (c, quote) {\n if (c === quote ||\n (!this.decodeEntities && this.fastForwardTo(quote))) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(quote === CharCodes.DoubleQuote\n ? QuoteType.Double\n : QuoteType.Single, this.index);\n this.state = State.BeforeAttributeName;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateInAttributeValueDoubleQuotes = function (c) {\n this.handleInAttributeValue(c, CharCodes.DoubleQuote);\n };\n Tokenizer.prototype.stateInAttributeValueSingleQuotes = function (c) {\n this.handleInAttributeValue(c, CharCodes.SingleQuote);\n };\n Tokenizer.prototype.stateInAttributeValueNoQuotes = function (c) {\n if (isWhitespace(c) || c === CharCodes.Gt) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(QuoteType.Unquoted, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateBeforeDeclaration = function (c) {\n if (c === CharCodes.OpeningSquareBracket) {\n this.state = State.CDATASequence;\n this.sequenceIndex = 0;\n }\n else {\n this.state =\n c === CharCodes.Dash\n ? State.BeforeComment\n : State.InDeclaration;\n }\n };\n Tokenizer.prototype.stateInDeclaration = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.ondeclaration(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateInProcessingInstruction = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeComment = function (c) {\n if (c === CharCodes.Dash) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CommentEnd;\n // Allow short comments (eg. )\n this.sequenceIndex = 2;\n this.sectionStart = this.index + 1;\n }\n else {\n this.state = State.InDeclaration;\n }\n };\n Tokenizer.prototype.stateInSpecialComment = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.oncomment(this.sectionStart, this.index, 0);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeSpecialS = function (c) {\n var lower = c | 0x20;\n if (lower === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n }\n else if (lower === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n }\n else {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n };\n Tokenizer.prototype.stateBeforeEntity = function (c) {\n // Start excess with 1 to include the '&'\n this.entityExcess = 1;\n this.entityResult = 0;\n if (c === CharCodes.Num) {\n this.state = State.BeforeNumericEntity;\n }\n else if (c === CharCodes.Amp) {\n // We have two `&` characters in a row. Stay in the current state.\n }\n else {\n this.trieIndex = 0;\n this.trieCurrent = this.entityTrie[0];\n this.state = State.InNamedEntity;\n this.stateInNamedEntity(c);\n }\n };\n Tokenizer.prototype.stateInNamedEntity = function (c) {\n this.entityExcess += 1;\n this.trieIndex = (0, decode_js_1.determineBranch)(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c);\n if (this.trieIndex < 0) {\n this.emitNamedEntity();\n this.index--;\n return;\n }\n this.trieCurrent = this.entityTrie[this.trieIndex];\n var masked = this.trieCurrent & decode_js_1.BinTrieFlags.VALUE_LENGTH;\n // If the branch is a value, store it and continue\n if (masked) {\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (masked >> 14) - 1;\n // If we have a legacy entity while parsing strictly, just skip the number of bytes\n if (!this.allowLegacyEntity() && c !== CharCodes.Semi) {\n this.trieIndex += valueLength;\n }\n else {\n // Add 1 as we have already incremented the excess\n var entityStart = this.index - this.entityExcess + 1;\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n // If this is a surrogate pair, consume the next two bytes\n this.entityResult = this.trieIndex;\n this.trieIndex += valueLength;\n this.entityExcess = 0;\n this.sectionStart = this.index + 1;\n if (valueLength === 0) {\n this.emitNamedEntity();\n }\n }\n }\n };\n Tokenizer.prototype.emitNamedEntity = function () {\n this.state = this.baseState;\n if (this.entityResult === 0) {\n return;\n }\n var valueLength = (this.entityTrie[this.entityResult] & decode_js_1.BinTrieFlags.VALUE_LENGTH) >>\n 14;\n switch (valueLength) {\n case 1:\n this.emitCodePoint(this.entityTrie[this.entityResult] &\n ~decode_js_1.BinTrieFlags.VALUE_LENGTH);\n break;\n case 2:\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n break;\n case 3: {\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n this.emitCodePoint(this.entityTrie[this.entityResult + 2]);\n }\n }\n };\n Tokenizer.prototype.stateBeforeNumericEntity = function (c) {\n if ((c | 0x20) === CharCodes.LowerX) {\n this.entityExcess++;\n this.state = State.InHexEntity;\n }\n else {\n this.state = State.InNumericEntity;\n this.stateInNumericEntity(c);\n }\n };\n Tokenizer.prototype.emitNumericEntity = function (strict) {\n var entityStart = this.index - this.entityExcess - 1;\n var numberStart = entityStart + 2 + Number(this.state === State.InHexEntity);\n if (numberStart !== this.index) {\n // Emit leading data if any\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n this.sectionStart = this.index + Number(strict);\n this.emitCodePoint((0, decode_js_1.replaceCodePoint)(this.entityResult));\n }\n this.state = this.baseState;\n };\n Tokenizer.prototype.stateInNumericEntity = function (c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 10 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n };\n Tokenizer.prototype.stateInHexEntity = function (c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 16 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else if (isHexDigit(c)) {\n this.entityResult =\n this.entityResult * 16 + ((c | 0x20) - CharCodes.LowerA + 10);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n };\n Tokenizer.prototype.allowLegacyEntity = function () {\n return (!this.xmlMode &&\n (this.baseState === State.Text ||\n this.baseState === State.InSpecialTag));\n };\n /**\n * Remove data that has already been consumed from the buffer.\n */\n Tokenizer.prototype.cleanup = function () {\n // If we are inside of text or attributes, emit what we already have.\n if (this.running && this.sectionStart !== this.index) {\n if (this.state === State.Text ||\n (this.state === State.InSpecialTag && this.sequenceIndex === 0)) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n else if (this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueNq) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n };\n Tokenizer.prototype.shouldContinue = function () {\n return this.index < this.buffer.length + this.offset && this.running;\n };\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n Tokenizer.prototype.parse = function () {\n while (this.shouldContinue()) {\n var c = this.buffer.charCodeAt(this.index - this.offset);\n if (this.state === State.Text) {\n this.stateText(c);\n }\n else if (this.state === State.SpecialStartSequence) {\n this.stateSpecialStartSequence(c);\n }\n else if (this.state === State.InSpecialTag) {\n this.stateInSpecialTag(c);\n }\n else if (this.state === State.CDATASequence) {\n this.stateCDATASequence(c);\n }\n else if (this.state === State.InAttributeValueDq) {\n this.stateInAttributeValueDoubleQuotes(c);\n }\n else if (this.state === State.InAttributeName) {\n this.stateInAttributeName(c);\n }\n else if (this.state === State.InCommentLike) {\n this.stateInCommentLike(c);\n }\n else if (this.state === State.InSpecialComment) {\n this.stateInSpecialComment(c);\n }\n else if (this.state === State.BeforeAttributeName) {\n this.stateBeforeAttributeName(c);\n }\n else if (this.state === State.InTagName) {\n this.stateInTagName(c);\n }\n else if (this.state === State.InClosingTagName) {\n this.stateInClosingTagName(c);\n }\n else if (this.state === State.BeforeTagName) {\n this.stateBeforeTagName(c);\n }\n else if (this.state === State.AfterAttributeName) {\n this.stateAfterAttributeName(c);\n }\n else if (this.state === State.InAttributeValueSq) {\n this.stateInAttributeValueSingleQuotes(c);\n }\n else if (this.state === State.BeforeAttributeValue) {\n this.stateBeforeAttributeValue(c);\n }\n else if (this.state === State.BeforeClosingTagName) {\n this.stateBeforeClosingTagName(c);\n }\n else if (this.state === State.AfterClosingTagName) {\n this.stateAfterClosingTagName(c);\n }\n else if (this.state === State.BeforeSpecialS) {\n this.stateBeforeSpecialS(c);\n }\n else if (this.state === State.InAttributeValueNq) {\n this.stateInAttributeValueNoQuotes(c);\n }\n else if (this.state === State.InSelfClosingTag) {\n this.stateInSelfClosingTag(c);\n }\n else if (this.state === State.InDeclaration) {\n this.stateInDeclaration(c);\n }\n else if (this.state === State.BeforeDeclaration) {\n this.stateBeforeDeclaration(c);\n }\n else if (this.state === State.BeforeComment) {\n this.stateBeforeComment(c);\n }\n else if (this.state === State.InProcessingInstruction) {\n this.stateInProcessingInstruction(c);\n }\n else if (this.state === State.InNamedEntity) {\n this.stateInNamedEntity(c);\n }\n else if (this.state === State.BeforeEntity) {\n this.stateBeforeEntity(c);\n }\n else if (this.state === State.InHexEntity) {\n this.stateInHexEntity(c);\n }\n else if (this.state === State.InNumericEntity) {\n this.stateInNumericEntity(c);\n }\n else {\n // `this._state === State.BeforeNumericEntity`\n this.stateBeforeNumericEntity(c);\n }\n this.index++;\n }\n this.cleanup();\n };\n Tokenizer.prototype.finish = function () {\n if (this.state === State.InNamedEntity) {\n this.emitNamedEntity();\n }\n // If there is remaining data, emit it in a reasonable way\n if (this.sectionStart < this.index) {\n this.handleTrailingData();\n }\n this.cbs.onend();\n };\n /** Handle any trailing data. */\n Tokenizer.prototype.handleTrailingData = function () {\n var endIndex = this.buffer.length + this.offset;\n if (this.state === State.InCommentLike) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, endIndex, 0);\n }\n else {\n this.cbs.oncomment(this.sectionStart, endIndex, 0);\n }\n }\n else if (this.state === State.InNumericEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InHexEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InTagName ||\n this.state === State.BeforeAttributeName ||\n this.state === State.BeforeAttributeValue ||\n this.state === State.AfterAttributeName ||\n this.state === State.InAttributeName ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueNq ||\n this.state === State.InClosingTagName) {\n /*\n * If we are currently in an opening or closing tag, us not calling the\n * respective callback signals that the tag should be ignored.\n */\n }\n else {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n };\n Tokenizer.prototype.emitPartial = function (start, endIndex) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribdata(start, endIndex);\n }\n else {\n this.cbs.ontext(start, endIndex);\n }\n };\n Tokenizer.prototype.emitCodePoint = function (cp) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribentity(cp);\n }\n else {\n this.cbs.ontextentity(cp);\n }\n };\n return Tokenizer;\n}());\nexports.default = Tokenizer;\n//# sourceMappingURL=Tokenizer.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultHandler = exports.DomUtils = exports.parseFeed = exports.getFeed = exports.ElementType = exports.Tokenizer = exports.createDomStream = exports.parseDOM = exports.parseDocument = exports.DomHandler = exports.Parser = void 0;\nvar Parser_js_1 = require(\"./Parser.js\");\nObject.defineProperty(exports, \"Parser\", { enumerable: true, get: function () { return Parser_js_1.Parser; } });\nvar domhandler_1 = require(\"domhandler\");\nObject.defineProperty(exports, \"DomHandler\", { enumerable: true, get: function () { return domhandler_1.DomHandler; } });\nObject.defineProperty(exports, \"DefaultHandler\", { enumerable: true, get: function () { return domhandler_1.DomHandler; } });\n// Helper methods\n/**\n * Parses the data, returns the resulting document.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n */\nfunction parseDocument(data, options) {\n var handler = new domhandler_1.DomHandler(undefined, options);\n new Parser_js_1.Parser(handler, options).end(data);\n return handler.root;\n}\nexports.parseDocument = parseDocument;\n/**\n * Parses data, returns an array of the root nodes.\n *\n * Note that the root nodes still have a `Document` node as their parent.\n * Use `parseDocument` to get the `Document` node instead.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n * @deprecated Use `parseDocument` instead.\n */\nfunction parseDOM(data, options) {\n return parseDocument(data, options).children;\n}\nexports.parseDOM = parseDOM;\n/**\n * Creates a parser instance, with an attached DOM handler.\n *\n * @param cb A callback that will be called once parsing has been completed.\n * @param options Optional options for the parser and DOM builder.\n * @param elementCb An optional callback that will be called every time a tag has been completed inside of the DOM.\n */\nfunction createDomStream(cb, options, elementCb) {\n var handler = new domhandler_1.DomHandler(cb, options, elementCb);\n return new Parser_js_1.Parser(handler, options);\n}\nexports.createDomStream = createDomStream;\nvar Tokenizer_js_1 = require(\"./Tokenizer.js\");\nObject.defineProperty(exports, \"Tokenizer\", { enumerable: true, get: function () { return __importDefault(Tokenizer_js_1).default; } });\n/*\n * All of the following exports exist for backwards-compatibility.\n * They should probably be removed eventually.\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nexports.ElementType = ElementType;\nvar domutils_1 = require(\"domutils\");\nObject.defineProperty(exports, \"getFeed\", { enumerable: true, get: function () { return domutils_1.getFeed; } });\n/**\n * Parse a feed.\n *\n * @param feed The feed that should be parsed, as a string.\n * @param options Optionally, options for parsing. When using this, you should set `xmlMode` to `true`.\n */\nfunction parseFeed(feed, options) {\n if (options === void 0) { options = { xmlMode: true }; }\n return (0, domutils_1.getFeed)(parseDOM(feed, options));\n}\nexports.parseFeed = parseFeed;\nexports.DomUtils = __importStar(require(\"domutils\"));\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\n \"altGlyph\",\n \"altGlyphDef\",\n \"altGlyphItem\",\n \"animateColor\",\n \"animateMotion\",\n \"animateTransform\",\n \"clipPath\",\n \"feBlend\",\n \"feColorMatrix\",\n \"feComponentTransfer\",\n \"feComposite\",\n \"feConvolveMatrix\",\n \"feDiffuseLighting\",\n \"feDisplacementMap\",\n \"feDistantLight\",\n \"feDropShadow\",\n \"feFlood\",\n \"feFuncA\",\n \"feFuncB\",\n \"feFuncG\",\n \"feFuncR\",\n \"feGaussianBlur\",\n \"feImage\",\n \"feMerge\",\n \"feMergeNode\",\n \"feMorphology\",\n \"feOffset\",\n \"fePointLight\",\n \"feSpecularLighting\",\n \"feSpotLight\",\n \"feTile\",\n \"feTurbulence\",\n \"foreignObject\",\n \"glyphRef\",\n \"linearGradient\",\n \"radialGradient\",\n \"textPath\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\nexports.attributeNames = new Map([\n \"definitionURL\",\n \"attributeName\",\n \"attributeType\",\n \"baseFrequency\",\n \"baseProfile\",\n \"calcMode\",\n \"clipPathUnits\",\n \"diffuseConstant\",\n \"edgeMode\",\n \"filterUnits\",\n \"glyphRef\",\n \"gradientTransform\",\n \"gradientUnits\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keyPoints\",\n \"keySplines\",\n \"keyTimes\",\n \"lengthAdjust\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerUnits\",\n \"markerWidth\",\n \"maskContentUnits\",\n \"maskUnits\",\n \"numOctaves\",\n \"pathLength\",\n \"patternContentUnits\",\n \"patternTransform\",\n \"patternUnits\",\n \"pointsAtX\",\n \"pointsAtY\",\n \"pointsAtZ\",\n \"preserveAlpha\",\n \"preserveAspectRatio\",\n \"primitiveUnits\",\n \"refX\",\n \"refY\",\n \"repeatCount\",\n \"repeatDur\",\n \"requiredExtensions\",\n \"requiredFeatures\",\n \"specularConstant\",\n \"specularExponent\",\n \"spreadMethod\",\n \"startOffset\",\n \"stdDeviation\",\n \"stitchTiles\",\n \"surfaceScale\",\n \"systemLanguage\",\n \"tableValues\",\n \"targetX\",\n \"targetY\",\n \"textLength\",\n \"viewBox\",\n \"viewTarget\",\n \"xChannelSelector\",\n \"yChannelSelector\",\n \"zoomAndPan\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.render = void 0;\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_js_1 = require(\"./foreignNames.js\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\nfunction replaceQuotes(value) {\n return value.replace(/\"/g, \""\");\n}\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n var _a;\n if (!attributes)\n return;\n var encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false\n ? replaceQuotes\n : opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? entities_1.encodeXML\n : entities_1.escapeAttribute;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_js_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return \"\".concat(key, \"=\\\"\").concat(encode(value), \"\\\"\");\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.render = render;\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n // @ts-expect-error We don't use `Doctype` yet\n case ElementType.Doctype:\n case ElementType.Directive:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_js_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\".concat(elem.name);\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \".concat(attribs);\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"\");\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\".concat(elem.data, \">\");\n}\nfunction renderText(elem, opts) {\n var _a;\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data =\n opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? (0, entities_1.encodeXML)(data)\n : (0, entities_1.escapeText)(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"\");\n}\nfunction renderComment(elem) {\n return \"\");\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomHandler = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\nvar node_js_1 = require(\"./node.js\");\n__exportStar(require(\"./node.js\"), exports);\n// Default options\nvar defaultOpts = {\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\nvar DomHandler = /** @class */ (function () {\n /**\n * @param callback Called once parsing has completed.\n * @param options Settings for the handler.\n * @param elementCB Callback whenever a tag is closed.\n */\n function DomHandler(callback, options, elementCB) {\n /** The elements of the DOM */\n this.dom = [];\n /** The root element for the DOM */\n this.root = new node_js_1.Document(this.dom);\n /** Indicated whether parsing has been completed. */\n this.done = false;\n /** Stack of open tags. */\n this.tagStack = [this.root];\n /** A data node that is still being written to. */\n this.lastNode = null;\n /** Reference to the parser instance. Used for location information. */\n this.parser = null;\n // Make it possible to skip arguments, for backwards-compatibility\n if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOpts;\n }\n if (typeof callback === \"object\") {\n options = callback;\n callback = undefined;\n }\n this.callback = callback !== null && callback !== void 0 ? callback : null;\n this.options = options !== null && options !== void 0 ? options : defaultOpts;\n this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;\n }\n DomHandler.prototype.onparserinit = function (parser) {\n this.parser = parser;\n };\n // Resets the handler back to starting state\n DomHandler.prototype.onreset = function () {\n this.dom = [];\n this.root = new node_js_1.Document(this.dom);\n this.done = false;\n this.tagStack = [this.root];\n this.lastNode = null;\n this.parser = null;\n };\n // Signals the handler that parsing is done\n DomHandler.prototype.onend = function () {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n };\n DomHandler.prototype.onerror = function (error) {\n this.handleCallback(error);\n };\n DomHandler.prototype.onclosetag = function () {\n this.lastNode = null;\n var elem = this.tagStack.pop();\n if (this.options.withEndIndices) {\n elem.endIndex = this.parser.endIndex;\n }\n if (this.elementCB)\n this.elementCB(elem);\n };\n DomHandler.prototype.onopentag = function (name, attribs) {\n var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : undefined;\n var element = new node_js_1.Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n };\n DomHandler.prototype.ontext = function (data) {\n var lastNode = this.lastNode;\n if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) {\n lastNode.data += data;\n if (this.options.withEndIndices) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n var node = new node_js_1.Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n };\n DomHandler.prototype.oncomment = function (data) {\n if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n var node = new node_js_1.Comment(data);\n this.addNode(node);\n this.lastNode = node;\n };\n DomHandler.prototype.oncommentend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.oncdatastart = function () {\n var text = new node_js_1.Text(\"\");\n var node = new node_js_1.CDATA([text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n };\n DomHandler.prototype.oncdataend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.onprocessinginstruction = function (name, data) {\n var node = new node_js_1.ProcessingInstruction(name, data);\n this.addNode(node);\n };\n DomHandler.prototype.handleCallback = function (error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n };\n DomHandler.prototype.addNode = function (node) {\n var parent = this.tagStack[this.tagStack.length - 1];\n var previousSibling = parent.children[parent.children.length - 1];\n if (this.options.withStartIndices) {\n node.startIndex = this.parser.startIndex;\n }\n if (this.options.withEndIndices) {\n node.endIndex = this.parser.endIndex;\n }\n parent.children.push(node);\n if (previousSibling) {\n node.prev = previousSibling;\n previousSibling.next = node;\n }\n node.parent = parent;\n this.lastNode = null;\n };\n return DomHandler;\n}());\nexports.DomHandler = DomHandler;\nexports.default = DomHandler;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cloneNode = exports.hasChildren = exports.isDocument = exports.isDirective = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = exports.Element = exports.Document = exports.CDATA = exports.NodeWithChildren = exports.ProcessingInstruction = exports.Comment = exports.Text = exports.DataNode = exports.Node = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nvar Node = /** @class */ (function () {\n function Node() {\n /** Parent of the node */\n this.parent = null;\n /** Previous sibling */\n this.prev = null;\n /** Next sibling */\n this.next = null;\n /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n this.startIndex = null;\n /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n this.endIndex = null;\n }\n Object.defineProperty(Node.prototype, \"parentNode\", {\n // Read-write aliases for properties\n /**\n * Same as {@link parent}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.parent;\n },\n set: function (parent) {\n this.parent = parent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"previousSibling\", {\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.prev;\n },\n set: function (prev) {\n this.prev = prev;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"nextSibling\", {\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.next;\n },\n set: function (next) {\n this.next = next;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Clone this node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\n Node.prototype.cloneNode = function (recursive) {\n if (recursive === void 0) { recursive = false; }\n return cloneNode(this, recursive);\n };\n return Node;\n}());\nexports.Node = Node;\n/**\n * A node that contains some data.\n */\nvar DataNode = /** @class */ (function (_super) {\n __extends(DataNode, _super);\n /**\n * @param data The content of the data node\n */\n function DataNode(data) {\n var _this = _super.call(this) || this;\n _this.data = data;\n return _this;\n }\n Object.defineProperty(DataNode.prototype, \"nodeValue\", {\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.data;\n },\n set: function (data) {\n this.data = data;\n },\n enumerable: false,\n configurable: true\n });\n return DataNode;\n}(Node));\nexports.DataNode = DataNode;\n/**\n * Text within the document.\n */\nvar Text = /** @class */ (function (_super) {\n __extends(Text, _super);\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Text;\n return _this;\n }\n Object.defineProperty(Text.prototype, \"nodeType\", {\n get: function () {\n return 3;\n },\n enumerable: false,\n configurable: true\n });\n return Text;\n}(DataNode));\nexports.Text = Text;\n/**\n * Comments within the document.\n */\nvar Comment = /** @class */ (function (_super) {\n __extends(Comment, _super);\n function Comment() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Comment;\n return _this;\n }\n Object.defineProperty(Comment.prototype, \"nodeType\", {\n get: function () {\n return 8;\n },\n enumerable: false,\n configurable: true\n });\n return Comment;\n}(DataNode));\nexports.Comment = Comment;\n/**\n * Processing instructions, including doc types.\n */\nvar ProcessingInstruction = /** @class */ (function (_super) {\n __extends(ProcessingInstruction, _super);\n function ProcessingInstruction(name, data) {\n var _this = _super.call(this, data) || this;\n _this.name = name;\n _this.type = domelementtype_1.ElementType.Directive;\n return _this;\n }\n Object.defineProperty(ProcessingInstruction.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n return ProcessingInstruction;\n}(DataNode));\nexports.ProcessingInstruction = ProcessingInstruction;\n/**\n * A `Node` that can have children.\n */\nvar NodeWithChildren = /** @class */ (function (_super) {\n __extends(NodeWithChildren, _super);\n /**\n * @param children Children of the node. Only certain node types can have children.\n */\n function NodeWithChildren(children) {\n var _this = _super.call(this) || this;\n _this.children = children;\n return _this;\n }\n Object.defineProperty(NodeWithChildren.prototype, \"firstChild\", {\n // Aliases\n /** First child of the node. */\n get: function () {\n var _a;\n return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"lastChild\", {\n /** Last child of the node. */\n get: function () {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"childNodes\", {\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.children;\n },\n set: function (children) {\n this.children = children;\n },\n enumerable: false,\n configurable: true\n });\n return NodeWithChildren;\n}(Node));\nexports.NodeWithChildren = NodeWithChildren;\nvar CDATA = /** @class */ (function (_super) {\n __extends(CDATA, _super);\n function CDATA() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.CDATA;\n return _this;\n }\n Object.defineProperty(CDATA.prototype, \"nodeType\", {\n get: function () {\n return 4;\n },\n enumerable: false,\n configurable: true\n });\n return CDATA;\n}(NodeWithChildren));\nexports.CDATA = CDATA;\n/**\n * The root node of the document.\n */\nvar Document = /** @class */ (function (_super) {\n __extends(Document, _super);\n function Document() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Root;\n return _this;\n }\n Object.defineProperty(Document.prototype, \"nodeType\", {\n get: function () {\n return 9;\n },\n enumerable: false,\n configurable: true\n });\n return Document;\n}(NodeWithChildren));\nexports.Document = Document;\n/**\n * An element within the DOM.\n */\nvar Element = /** @class */ (function (_super) {\n __extends(Element, _super);\n /**\n * @param name Name of the tag, eg. `div`, `span`.\n * @param attribs Object mapping attribute names to attribute values.\n * @param children Children of the node.\n */\n function Element(name, attribs, children, type) {\n if (children === void 0) { children = []; }\n if (type === void 0) { type = name === \"script\"\n ? domelementtype_1.ElementType.Script\n : name === \"style\"\n ? domelementtype_1.ElementType.Style\n : domelementtype_1.ElementType.Tag; }\n var _this = _super.call(this, children) || this;\n _this.name = name;\n _this.attribs = attribs;\n _this.type = type;\n return _this;\n }\n Object.defineProperty(Element.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"tagName\", {\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.name;\n },\n set: function (name) {\n this.name = name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"attributes\", {\n get: function () {\n var _this = this;\n return Object.keys(this.attribs).map(function (name) {\n var _a, _b;\n return ({\n name: name,\n value: _this.attribs[name],\n namespace: (_a = _this[\"x-attribsNamespace\"]) === null || _a === void 0 ? void 0 : _a[name],\n prefix: (_b = _this[\"x-attribsPrefix\"]) === null || _b === void 0 ? void 0 : _b[name],\n });\n });\n },\n enumerable: false,\n configurable: true\n });\n return Element;\n}(NodeWithChildren));\nexports.Element = Element;\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nfunction isTag(node) {\n return (0, domelementtype_1.isTag)(node);\n}\nexports.isTag = isTag;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nfunction isCDATA(node) {\n return node.type === domelementtype_1.ElementType.CDATA;\n}\nexports.isCDATA = isCDATA;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nfunction isText(node) {\n return node.type === domelementtype_1.ElementType.Text;\n}\nexports.isText = isText;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nfunction isComment(node) {\n return node.type === domelementtype_1.ElementType.Comment;\n}\nexports.isComment = isComment;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDirective(node) {\n return node.type === domelementtype_1.ElementType.Directive;\n}\nexports.isDirective = isDirective;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDocument(node) {\n return node.type === domelementtype_1.ElementType.Root;\n}\nexports.isDocument = isDocument;\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nfunction hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\nexports.hasChildren = hasChildren;\n/**\n * Clone a node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nfunction cloneNode(node, recursive) {\n if (recursive === void 0) { recursive = false; }\n var result;\n if (isText(node)) {\n result = new Text(node.data);\n }\n else if (isComment(node)) {\n result = new Comment(node.data);\n }\n else if (isTag(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_1 = new Element(node.name, __assign({}, node.attribs), children);\n children.forEach(function (child) { return (child.parent = clone_1); });\n if (node.namespace != null) {\n clone_1.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone_1[\"x-attribsNamespace\"] = __assign({}, node[\"x-attribsNamespace\"]);\n }\n if (node[\"x-attribsPrefix\"]) {\n clone_1[\"x-attribsPrefix\"] = __assign({}, node[\"x-attribsPrefix\"]);\n }\n result = clone_1;\n }\n else if (isCDATA(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_2 = new CDATA(children);\n children.forEach(function (child) { return (child.parent = clone_2); });\n result = clone_2;\n }\n else if (isDocument(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_3 = new Document(children);\n children.forEach(function (child) { return (child.parent = clone_3); });\n if (node[\"x-mode\"]) {\n clone_3[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone_3;\n }\n else if (isDirective(node)) {\n var instruction = new ProcessingInstruction(node.name, node.data);\n if (node[\"x-name\"] != null) {\n instruction[\"x-name\"] = node[\"x-name\"];\n instruction[\"x-publicId\"] = node[\"x-publicId\"];\n instruction[\"x-systemId\"] = node[\"x-systemId\"];\n }\n result = instruction;\n }\n else {\n throw new Error(\"Not implemented yet: \".concat(node.type));\n }\n result.startIndex = node.startIndex;\n result.endIndex = node.endIndex;\n if (node.sourceCodeLocation != null) {\n result.sourceCodeLocation = node.sourceCodeLocation;\n }\n return result;\n}\nexports.cloneNode = cloneNode;\nfunction cloneChildren(childs) {\n var children = childs.map(function (child) { return cloneNode(child, true); });\n for (var i = 1; i < children.length; i++) {\n children[i].prev = children[i - 1];\n children[i - 1].next = children[i];\n }\n return children;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFeed = void 0;\nvar stringify_js_1 = require(\"./stringify.js\");\nvar legacy_js_1 = require(\"./legacy.js\");\n/**\n * Get the feed object from the root of a DOM tree.\n *\n * @category Feeds\n * @param doc - The DOM to to extract the feed from.\n * @returns The feed.\n */\nfunction getFeed(doc) {\n var feedRoot = getOneElement(isValidFeed, doc);\n return !feedRoot\n ? null\n : feedRoot.name === \"feed\"\n ? getAtomFeed(feedRoot)\n : getRssFeed(feedRoot);\n}\nexports.getFeed = getFeed;\n/**\n * Parse an Atom feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getAtomFeed(feedRoot) {\n var _a;\n var childs = feedRoot.children;\n var feed = {\n type: \"atom\",\n items: (0, legacy_js_1.getElementsByTagName)(\"entry\", childs).map(function (item) {\n var _a;\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"id\", children);\n addConditionally(entry, \"title\", \"title\", children);\n var href = (_a = getOneElement(\"link\", children)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n entry.link = href;\n }\n var description = fetch(\"summary\", children) || fetch(\"content\", children);\n if (description) {\n entry.description = description;\n }\n var pubDate = fetch(\"updated\", children);\n if (pubDate) {\n entry.pubDate = new Date(pubDate);\n }\n return entry;\n }),\n };\n addConditionally(feed, \"id\", \"id\", childs);\n addConditionally(feed, \"title\", \"title\", childs);\n var href = (_a = getOneElement(\"link\", childs)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n feed.link = href;\n }\n addConditionally(feed, \"description\", \"subtitle\", childs);\n var updated = fetch(\"updated\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"email\", childs, true);\n return feed;\n}\n/**\n * Parse a RSS feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getRssFeed(feedRoot) {\n var _a, _b;\n var childs = (_b = (_a = getOneElement(\"channel\", feedRoot.children)) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : [];\n var feed = {\n type: feedRoot.name.substr(0, 3),\n id: \"\",\n items: (0, legacy_js_1.getElementsByTagName)(\"item\", feedRoot.children).map(function (item) {\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"guid\", children);\n addConditionally(entry, \"title\", \"title\", children);\n addConditionally(entry, \"link\", \"link\", children);\n addConditionally(entry, \"description\", \"description\", children);\n var pubDate = fetch(\"pubDate\", children);\n if (pubDate)\n entry.pubDate = new Date(pubDate);\n return entry;\n }),\n };\n addConditionally(feed, \"title\", \"title\", childs);\n addConditionally(feed, \"link\", \"link\", childs);\n addConditionally(feed, \"description\", \"description\", childs);\n var updated = fetch(\"lastBuildDate\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"managingEditor\", childs, true);\n return feed;\n}\nvar MEDIA_KEYS_STRING = [\"url\", \"type\", \"lang\"];\nvar MEDIA_KEYS_INT = [\n \"fileSize\",\n \"bitrate\",\n \"framerate\",\n \"samplingrate\",\n \"channels\",\n \"duration\",\n \"height\",\n \"width\",\n];\n/**\n * Get all media elements of a feed item.\n *\n * @param where Nodes to search in.\n * @returns Media elements.\n */\nfunction getMediaElements(where) {\n return (0, legacy_js_1.getElementsByTagName)(\"media:content\", where).map(function (elem) {\n var attribs = elem.attribs;\n var media = {\n medium: attribs[\"medium\"],\n isDefault: !!attribs[\"isDefault\"],\n };\n for (var _i = 0, MEDIA_KEYS_STRING_1 = MEDIA_KEYS_STRING; _i < MEDIA_KEYS_STRING_1.length; _i++) {\n var attrib = MEDIA_KEYS_STRING_1[_i];\n if (attribs[attrib]) {\n media[attrib] = attribs[attrib];\n }\n }\n for (var _a = 0, MEDIA_KEYS_INT_1 = MEDIA_KEYS_INT; _a < MEDIA_KEYS_INT_1.length; _a++) {\n var attrib = MEDIA_KEYS_INT_1[_a];\n if (attribs[attrib]) {\n media[attrib] = parseInt(attribs[attrib], 10);\n }\n }\n if (attribs[\"expression\"]) {\n media.expression = attribs[\"expression\"];\n }\n return media;\n });\n}\n/**\n * Get one element by tag name.\n *\n * @param tagName Tag name to look for\n * @param node Node to search in\n * @returns The element or null\n */\nfunction getOneElement(tagName, node) {\n return (0, legacy_js_1.getElementsByTagName)(tagName, node, true, 1)[0];\n}\n/**\n * Get the text content of an element with a certain tag name.\n *\n * @param tagName Tag name to look for.\n * @param where Node to search in.\n * @param recurse Whether to recurse into child nodes.\n * @returns The text content of the element.\n */\nfunction fetch(tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n return (0, stringify_js_1.textContent)((0, legacy_js_1.getElementsByTagName)(tagName, where, recurse, 1)).trim();\n}\n/**\n * Adds a property to an object if it has a value.\n *\n * @param obj Object to be extended\n * @param prop Property name\n * @param tagName Tag name that contains the conditionally added property\n * @param where Element to search for the property\n * @param recurse Whether to recurse into child nodes.\n */\nfunction addConditionally(obj, prop, tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n var val = fetch(tagName, where, recurse);\n if (val)\n obj[prop] = val;\n}\n/**\n * Checks if an element is a feed root node.\n *\n * @param value The name of the element to check.\n * @returns Whether an element is a feed root node.\n */\nfunction isValidFeed(value) {\n return value === \"rss\" || value === \"feed\" || value === \"rdf:RDF\";\n}\n//# sourceMappingURL=feeds.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uniqueSort = exports.compareDocumentPosition = exports.DocumentPosition = exports.removeSubsets = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Given an array of nodes, remove any member that is contained by another.\n *\n * @category Helpers\n * @param nodes Nodes to filter.\n * @returns Remaining nodes that aren't subtrees of each other.\n */\nfunction removeSubsets(nodes) {\n var idx = nodes.length;\n /*\n * Check if each node (or one of its ancestors) is already contained in the\n * array.\n */\n while (--idx >= 0) {\n var node = nodes[idx];\n /*\n * Remove the node if it is not unique.\n * We are going through the array from the end, so we only\n * have to check nodes that preceed the node under consideration in the array.\n */\n if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) {\n nodes.splice(idx, 1);\n continue;\n }\n for (var ancestor = node.parent; ancestor; ancestor = ancestor.parent) {\n if (nodes.includes(ancestor)) {\n nodes.splice(idx, 1);\n break;\n }\n }\n }\n return nodes;\n}\nexports.removeSubsets = removeSubsets;\n/**\n * @category Helpers\n * @see {@link http://dom.spec.whatwg.org/#dom-node-comparedocumentposition}\n */\nvar DocumentPosition;\n(function (DocumentPosition) {\n DocumentPosition[DocumentPosition[\"DISCONNECTED\"] = 1] = \"DISCONNECTED\";\n DocumentPosition[DocumentPosition[\"PRECEDING\"] = 2] = \"PRECEDING\";\n DocumentPosition[DocumentPosition[\"FOLLOWING\"] = 4] = \"FOLLOWING\";\n DocumentPosition[DocumentPosition[\"CONTAINS\"] = 8] = \"CONTAINS\";\n DocumentPosition[DocumentPosition[\"CONTAINED_BY\"] = 16] = \"CONTAINED_BY\";\n})(DocumentPosition = exports.DocumentPosition || (exports.DocumentPosition = {}));\n/**\n * Compare the position of one node against another node in any other document.\n * The return value is a bitmask with the values from {@link DocumentPosition}.\n *\n * Document order:\n * > There is an ordering, document order, defined on all the nodes in the\n * > document corresponding to the order in which the first character of the\n * > XML representation of each node occurs in the XML representation of the\n * > document after expansion of general entities. Thus, the document element\n * > node will be the first node. Element nodes occur before their children.\n * > Thus, document order orders element nodes in order of the occurrence of\n * > their start-tag in the XML (after expansion of entities). The attribute\n * > nodes of an element occur after the element and before its children. The\n * > relative order of attribute nodes is implementation-dependent.\n *\n * Source:\n * http://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-document-order\n *\n * @category Helpers\n * @param nodeA The first node to use in the comparison\n * @param nodeB The second node to use in the comparison\n * @returns A bitmask describing the input nodes' relative position.\n *\n * See http://dom.spec.whatwg.org/#dom-node-comparedocumentposition for\n * a description of these values.\n */\nfunction compareDocumentPosition(nodeA, nodeB) {\n var aParents = [];\n var bParents = [];\n if (nodeA === nodeB) {\n return 0;\n }\n var current = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent;\n while (current) {\n aParents.unshift(current);\n current = current.parent;\n }\n current = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent;\n while (current) {\n bParents.unshift(current);\n current = current.parent;\n }\n var maxIdx = Math.min(aParents.length, bParents.length);\n var idx = 0;\n while (idx < maxIdx && aParents[idx] === bParents[idx]) {\n idx++;\n }\n if (idx === 0) {\n return DocumentPosition.DISCONNECTED;\n }\n var sharedParent = aParents[idx - 1];\n var siblings = sharedParent.children;\n var aSibling = aParents[idx];\n var bSibling = bParents[idx];\n if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {\n if (sharedParent === nodeB) {\n return DocumentPosition.FOLLOWING | DocumentPosition.CONTAINED_BY;\n }\n return DocumentPosition.FOLLOWING;\n }\n if (sharedParent === nodeA) {\n return DocumentPosition.PRECEDING | DocumentPosition.CONTAINS;\n }\n return DocumentPosition.PRECEDING;\n}\nexports.compareDocumentPosition = compareDocumentPosition;\n/**\n * Sort an array of nodes based on their relative position in the document and\n * remove any duplicate nodes. If the array contains nodes that do not belong to\n * the same document, sort order is unspecified.\n *\n * @category Helpers\n * @param nodes Array of DOM nodes.\n * @returns Collection of unique nodes, sorted in document order.\n */\nfunction uniqueSort(nodes) {\n nodes = nodes.filter(function (node, i, arr) { return !arr.includes(node, i + 1); });\n nodes.sort(function (a, b) {\n var relative = compareDocumentPosition(a, b);\n if (relative & DocumentPosition.PRECEDING) {\n return -1;\n }\n else if (relative & DocumentPosition.FOLLOWING) {\n return 1;\n }\n return 0;\n });\n return nodes;\n}\nexports.uniqueSort = uniqueSort;\n//# sourceMappingURL=helpers.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasChildren = exports.isDocument = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = void 0;\n__exportStar(require(\"./stringify.js\"), exports);\n__exportStar(require(\"./traversal.js\"), exports);\n__exportStar(require(\"./manipulation.js\"), exports);\n__exportStar(require(\"./querying.js\"), exports);\n__exportStar(require(\"./legacy.js\"), exports);\n__exportStar(require(\"./helpers.js\"), exports);\n__exportStar(require(\"./feeds.js\"), exports);\n/** @deprecated Use these methods from `domhandler` directly. */\nvar domhandler_1 = require(\"domhandler\");\nObject.defineProperty(exports, \"isTag\", { enumerable: true, get: function () { return domhandler_1.isTag; } });\nObject.defineProperty(exports, \"isCDATA\", { enumerable: true, get: function () { return domhandler_1.isCDATA; } });\nObject.defineProperty(exports, \"isText\", { enumerable: true, get: function () { return domhandler_1.isText; } });\nObject.defineProperty(exports, \"isComment\", { enumerable: true, get: function () { return domhandler_1.isComment; } });\nObject.defineProperty(exports, \"isDocument\", { enumerable: true, get: function () { return domhandler_1.isDocument; } });\nObject.defineProperty(exports, \"hasChildren\", { enumerable: true, get: function () { return domhandler_1.hasChildren; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getElementsByTagType = exports.getElementsByTagName = exports.getElementById = exports.getElements = exports.testElement = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar querying_js_1 = require(\"./querying.js\");\nvar Checks = {\n tag_name: function (name) {\n if (typeof name === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && name(elem.name); };\n }\n else if (name === \"*\") {\n return domhandler_1.isTag;\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.name === name; };\n },\n tag_type: function (type) {\n if (typeof type === \"function\") {\n return function (elem) { return type(elem.type); };\n }\n return function (elem) { return elem.type === type; };\n },\n tag_contains: function (data) {\n if (typeof data === \"function\") {\n return function (elem) { return (0, domhandler_1.isText)(elem) && data(elem.data); };\n }\n return function (elem) { return (0, domhandler_1.isText)(elem) && elem.data === data; };\n },\n};\n/**\n * @param attrib Attribute to check.\n * @param value Attribute value to look for.\n * @returns A function to check whether the a node has an attribute with a\n * particular value.\n */\nfunction getAttribCheck(attrib, value) {\n if (typeof value === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && value(elem.attribs[attrib]); };\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.attribs[attrib] === value; };\n}\n/**\n * @param a First function to combine.\n * @param b Second function to combine.\n * @returns A function taking a node and returning `true` if either of the input\n * functions returns `true` for the node.\n */\nfunction combineFuncs(a, b) {\n return function (elem) { return a(elem) || b(elem); };\n}\n/**\n * @param options An object describing nodes to look for.\n * @returns A function executing all checks in `options` and returning `true` if\n * any of them match a node.\n */\nfunction compileTest(options) {\n var funcs = Object.keys(options).map(function (key) {\n var value = options[key];\n return Object.prototype.hasOwnProperty.call(Checks, key)\n ? Checks[key](value)\n : getAttribCheck(key, value);\n });\n return funcs.length === 0 ? null : funcs.reduce(combineFuncs);\n}\n/**\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param node The element to test.\n * @returns Whether the element matches the description in `options`.\n */\nfunction testElement(options, node) {\n var test = compileTest(options);\n return test ? test(node) : true;\n}\nexports.testElement = testElement;\n/**\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes that match `options`.\n */\nfunction getElements(options, nodes, recurse, limit) {\n if (limit === void 0) { limit = Infinity; }\n var test = compileTest(options);\n return test ? (0, querying_js_1.filter)(test, nodes, recurse, limit) : [];\n}\nexports.getElements = getElements;\n/**\n * @category Legacy Query Functions\n * @param id The unique ID attribute value to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @returns The node with the supplied ID.\n */\nfunction getElementById(id, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n if (!Array.isArray(nodes))\n nodes = [nodes];\n return (0, querying_js_1.findOne)(getAttribCheck(\"id\", id), nodes, recurse);\n}\nexports.getElementById = getElementById;\n/**\n * @category Legacy Query Functions\n * @param tagName Tag name to search for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `tagName`.\n */\nfunction getElementsByTagName(tagName, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_name\"](tagName), nodes, recurse, limit);\n}\nexports.getElementsByTagName = getElementsByTagName;\n/**\n * @category Legacy Query Functions\n * @param type Element type to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `type`.\n */\nfunction getElementsByTagType(type, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_type\"](type), nodes, recurse, limit);\n}\nexports.getElementsByTagType = getElementsByTagType;\n//# sourceMappingURL=legacy.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepend = exports.prependChild = exports.append = exports.appendChild = exports.replaceElement = exports.removeElement = void 0;\n/**\n * Remove an element from the dom\n *\n * @category Manipulation\n * @param elem The element to be removed\n */\nfunction removeElement(elem) {\n if (elem.prev)\n elem.prev.next = elem.next;\n if (elem.next)\n elem.next.prev = elem.prev;\n if (elem.parent) {\n var childs = elem.parent.children;\n childs.splice(childs.lastIndexOf(elem), 1);\n }\n}\nexports.removeElement = removeElement;\n/**\n * Replace an element in the dom\n *\n * @category Manipulation\n * @param elem The element to be replaced\n * @param replacement The element to be added\n */\nfunction replaceElement(elem, replacement) {\n var prev = (replacement.prev = elem.prev);\n if (prev) {\n prev.next = replacement;\n }\n var next = (replacement.next = elem.next);\n if (next) {\n next.prev = replacement;\n }\n var parent = (replacement.parent = elem.parent);\n if (parent) {\n var childs = parent.children;\n childs[childs.lastIndexOf(elem)] = replacement;\n elem.parent = null;\n }\n}\nexports.replaceElement = replaceElement;\n/**\n * Append a child to an element.\n *\n * @category Manipulation\n * @param elem The element to append to.\n * @param child The element to be added as a child.\n */\nfunction appendChild(elem, child) {\n removeElement(child);\n child.next = null;\n child.parent = elem;\n if (elem.children.push(child) > 1) {\n var sibling = elem.children[elem.children.length - 2];\n sibling.next = child;\n child.prev = sibling;\n }\n else {\n child.prev = null;\n }\n}\nexports.appendChild = appendChild;\n/**\n * Append an element after another.\n *\n * @category Manipulation\n * @param elem The element to append after.\n * @param next The element be added.\n */\nfunction append(elem, next) {\n removeElement(next);\n var parent = elem.parent;\n var currNext = elem.next;\n next.next = currNext;\n next.prev = elem;\n elem.next = next;\n next.parent = parent;\n if (currNext) {\n currNext.prev = next;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.lastIndexOf(currNext), 0, next);\n }\n }\n else if (parent) {\n parent.children.push(next);\n }\n}\nexports.append = append;\n/**\n * Prepend a child to an element.\n *\n * @category Manipulation\n * @param elem The element to prepend before.\n * @param child The element to be added as a child.\n */\nfunction prependChild(elem, child) {\n removeElement(child);\n child.parent = elem;\n child.prev = null;\n if (elem.children.unshift(child) !== 1) {\n var sibling = elem.children[1];\n sibling.prev = child;\n child.next = sibling;\n }\n else {\n child.next = null;\n }\n}\nexports.prependChild = prependChild;\n/**\n * Prepend an element before another.\n *\n * @category Manipulation\n * @param elem The element to prepend before.\n * @param prev The element be added.\n */\nfunction prepend(elem, prev) {\n removeElement(prev);\n var parent = elem.parent;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.indexOf(elem), 0, prev);\n }\n if (elem.prev) {\n elem.prev.next = prev;\n }\n prev.parent = parent;\n prev.prev = elem.prev;\n prev.next = elem;\n elem.prev = prev;\n}\nexports.prepend = prepend;\n//# sourceMappingURL=manipulation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findAll = exports.existsOne = exports.findOne = exports.findOneChild = exports.find = exports.filter = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Search a node and its children for nodes passing a test function.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param node Node to search. Will be included in the result set if it matches.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction filter(test, node, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n if (!Array.isArray(node))\n node = [node];\n return find(test, node, recurse, limit);\n}\nexports.filter = filter;\n/**\n * Search an array of node and its children for nodes passing a test function.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction find(test, nodes, recurse, limit) {\n var result = [];\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var elem = nodes_1[_i];\n if (test(elem)) {\n result.push(elem);\n if (--limit <= 0)\n break;\n }\n if (recurse && (0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {\n var children = find(test, elem.children, recurse, limit);\n result.push.apply(result, children);\n limit -= children.length;\n if (limit <= 0)\n break;\n }\n }\n return result;\n}\nexports.find = find;\n/**\n * Finds the first element inside of an array that matches a test function.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns The first node in the array that passes `test`.\n * @deprecated Use `Array.prototype.find` directly.\n */\nfunction findOneChild(test, nodes) {\n return nodes.find(test);\n}\nexports.findOneChild = findOneChild;\n/**\n * Finds one element in a tree that passes a test.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @param recurse Also consider child nodes.\n * @returns The first child node that passes `test`.\n */\nfunction findOne(test, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n var elem = null;\n for (var i = 0; i < nodes.length && !elem; i++) {\n var checked = nodes[i];\n if (!(0, domhandler_1.isTag)(checked)) {\n continue;\n }\n else if (test(checked)) {\n elem = checked;\n }\n else if (recurse && checked.children.length > 0) {\n elem = findOne(test, checked.children, true);\n }\n }\n return elem;\n}\nexports.findOne = findOne;\n/**\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns Whether a tree of nodes contains at least one node passing the test.\n */\nfunction existsOne(test, nodes) {\n return nodes.some(function (checked) {\n return (0, domhandler_1.isTag)(checked) &&\n (test(checked) ||\n (checked.children.length > 0 &&\n existsOne(test, checked.children)));\n });\n}\nexports.existsOne = existsOne;\n/**\n * Search and array of nodes and its children for elements passing a test function.\n *\n * Same as `find`, but limited to elements and with less options, leading to reduced complexity.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns All nodes passing `test`.\n */\nfunction findAll(test, nodes) {\n var _a;\n var result = [];\n var stack = nodes.filter(domhandler_1.isTag);\n var elem;\n while ((elem = stack.shift())) {\n var children = (_a = elem.children) === null || _a === void 0 ? void 0 : _a.filter(domhandler_1.isTag);\n if (children && children.length > 0) {\n stack.unshift.apply(stack, children);\n }\n if (test(elem))\n result.push(elem);\n }\n return result;\n}\nexports.findAll = findAll;\n//# sourceMappingURL=querying.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.innerText = exports.textContent = exports.getText = exports.getInnerHTML = exports.getOuterHTML = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar dom_serializer_1 = __importDefault(require(\"dom-serializer\"));\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the outer HTML of.\n * @param options Options for serialization.\n * @returns `node`'s outer HTML.\n */\nfunction getOuterHTML(node, options) {\n return (0, dom_serializer_1.default)(node, options);\n}\nexports.getOuterHTML = getOuterHTML;\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the inner HTML of.\n * @param options Options for serialization.\n * @returns `node`'s inner HTML.\n */\nfunction getInnerHTML(node, options) {\n return (0, domhandler_1.hasChildren)(node)\n ? node.children.map(function (node) { return getOuterHTML(node, options); }).join(\"\")\n : \"\";\n}\nexports.getInnerHTML = getInnerHTML;\n/**\n * Get a node's inner text. Same as `textContent`, but inserts newlines for `
                                                                                ` tags.\n *\n * @category Stringify\n * @deprecated Use `textContent` instead.\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n */\nfunction getText(node) {\n if (Array.isArray(node))\n return node.map(getText).join(\"\");\n if ((0, domhandler_1.isTag)(node))\n return node.name === \"br\" ? \"\\n\" : getText(node.children);\n if ((0, domhandler_1.isCDATA)(node))\n return getText(node.children);\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.getText = getText;\n/**\n * Get a node's text content.\n *\n * @category Stringify\n * @param node Node to get the text content of.\n * @returns `node`'s text content.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent}\n */\nfunction textContent(node) {\n if (Array.isArray(node))\n return node.map(textContent).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && !(0, domhandler_1.isComment)(node)) {\n return textContent(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.textContent = textContent;\n/**\n * Get a node's inner text.\n *\n * @category Stringify\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText}\n */\nfunction innerText(node) {\n if (Array.isArray(node))\n return node.map(innerText).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && (node.type === domelementtype_1.ElementType.Tag || (0, domhandler_1.isCDATA)(node))) {\n return innerText(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.innerText = innerText;\n//# sourceMappingURL=stringify.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prevElementSibling = exports.nextElementSibling = exports.getName = exports.hasAttrib = exports.getAttributeValue = exports.getSiblings = exports.getParent = exports.getChildren = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Get a node's children.\n *\n * @category Traversal\n * @param elem Node to get the children of.\n * @returns `elem`'s children, or an empty array.\n */\nfunction getChildren(elem) {\n return (0, domhandler_1.hasChildren)(elem) ? elem.children : [];\n}\nexports.getChildren = getChildren;\n/**\n * Get a node's parent.\n *\n * @category Traversal\n * @param elem Node to get the parent of.\n * @returns `elem`'s parent node.\n */\nfunction getParent(elem) {\n return elem.parent || null;\n}\nexports.getParent = getParent;\n/**\n * Gets an elements siblings, including the element itself.\n *\n * Attempts to get the children through the element's parent first. If we don't\n * have a parent (the element is a root node), we walk the element's `prev` &\n * `next` to get all remaining nodes.\n *\n * @category Traversal\n * @param elem Element to get the siblings of.\n * @returns `elem`'s siblings.\n */\nfunction getSiblings(elem) {\n var _a, _b;\n var parent = getParent(elem);\n if (parent != null)\n return getChildren(parent);\n var siblings = [elem];\n var prev = elem.prev, next = elem.next;\n while (prev != null) {\n siblings.unshift(prev);\n (_a = prev, prev = _a.prev);\n }\n while (next != null) {\n siblings.push(next);\n (_b = next, next = _b.next);\n }\n return siblings;\n}\nexports.getSiblings = getSiblings;\n/**\n * Gets an attribute from an element.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to retrieve.\n * @returns The element's attribute value, or `undefined`.\n */\nfunction getAttributeValue(elem, name) {\n var _a;\n return (_a = elem.attribs) === null || _a === void 0 ? void 0 : _a[name];\n}\nexports.getAttributeValue = getAttributeValue;\n/**\n * Checks whether an element has an attribute.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to look for.\n * @returns Returns whether `elem` has the attribute `name`.\n */\nfunction hasAttrib(elem, name) {\n return (elem.attribs != null &&\n Object.prototype.hasOwnProperty.call(elem.attribs, name) &&\n elem.attribs[name] != null);\n}\nexports.hasAttrib = hasAttrib;\n/**\n * Get the tag name of an element.\n *\n * @category Traversal\n * @param elem The element to get the name for.\n * @returns The tag name of `elem`.\n */\nfunction getName(elem) {\n return elem.name;\n}\nexports.getName = getName;\n/**\n * Returns the next element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the next sibling of.\n * @returns `elem`'s next sibling that is a tag.\n */\nfunction nextElementSibling(elem) {\n var _a;\n var next = elem.next;\n while (next !== null && !(0, domhandler_1.isTag)(next))\n (_a = next, next = _a.next);\n return next;\n}\nexports.nextElementSibling = nextElementSibling;\n/**\n * Returns the previous element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the previous sibling of.\n * @returns `elem`'s previous sibling that is a tag.\n */\nfunction prevElementSibling(elem) {\n var _a;\n var prev = elem.prev;\n while (prev !== null && !(0, domhandler_1.isTag)(prev))\n (_a = prev, prev = _a.prev);\n return prev;\n}\nexports.prevElementSibling = prevElementSibling;\n//# sourceMappingURL=traversal.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTML = exports.determineBranch = exports.BinTrieFlags = exports.fromCodePoint = exports.replaceCodePoint = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = void 0;\nvar decode_data_html_js_1 = __importDefault(require(\"./generated/decode-data-html.js\"));\nexports.htmlDecodeTree = decode_data_html_js_1.default;\nvar decode_data_xml_js_1 = __importDefault(require(\"./generated/decode-data-xml.js\"));\nexports.xmlDecodeTree = decode_data_xml_js_1.default;\nvar decode_codepoint_js_1 = __importDefault(require(\"./decode_codepoint.js\"));\nexports.decodeCodePoint = decode_codepoint_js_1.default;\nvar decode_codepoint_js_2 = require(\"./decode_codepoint.js\");\nObject.defineProperty(exports, \"replaceCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } });\nObject.defineProperty(exports, \"fromCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } });\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n /** Bit that needs to be set to convert an upper case ASCII character to lower case */\n CharCodes[CharCodes[\"To_LOWER_BIT\"] = 32] = \"To_LOWER_BIT\";\n})(CharCodes || (CharCodes = {}));\nvar BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {}));\nfunction getDecoder(decodeTree) {\n return function decodeHTMLBinary(str, strict) {\n var ret = \"\";\n var lastIdx = 0;\n var strIdx = 0;\n while ((strIdx = str.indexOf(\"&\", strIdx)) >= 0) {\n ret += str.slice(lastIdx, strIdx);\n lastIdx = strIdx;\n // Skip the \"&\"\n strIdx += 1;\n // If we have a numeric entity, handle this separately.\n if (str.charCodeAt(strIdx) === CharCodes.NUM) {\n // Skip the leading \"&#\". For hex entities, also skip the leading \"x\".\n var start = strIdx + 1;\n var base = 10;\n var cp = str.charCodeAt(start);\n if ((cp | CharCodes.To_LOWER_BIT) === CharCodes.LOWER_X) {\n base = 16;\n strIdx += 1;\n start += 1;\n }\n do\n cp = str.charCodeAt(++strIdx);\n while ((cp >= CharCodes.ZERO && cp <= CharCodes.NINE) ||\n (base === 16 &&\n (cp | CharCodes.To_LOWER_BIT) >= CharCodes.LOWER_A &&\n (cp | CharCodes.To_LOWER_BIT) <= CharCodes.LOWER_F));\n if (start !== strIdx) {\n var entity = str.substring(start, strIdx);\n var parsed = parseInt(entity, base);\n if (str.charCodeAt(strIdx) === CharCodes.SEMI) {\n strIdx += 1;\n }\n else if (strict) {\n continue;\n }\n ret += (0, decode_codepoint_js_1.default)(parsed);\n lastIdx = strIdx;\n }\n continue;\n }\n var resultIdx = 0;\n var excess = 1;\n var treeIdx = 0;\n var current = decodeTree[treeIdx];\n for (; strIdx < str.length; strIdx++, excess++) {\n treeIdx = determineBranch(decodeTree, current, treeIdx + 1, str.charCodeAt(strIdx));\n if (treeIdx < 0)\n break;\n current = decodeTree[treeIdx];\n var masked = current & BinTrieFlags.VALUE_LENGTH;\n // If the branch is a value, store it and continue\n if (masked) {\n // If we have a legacy entity while parsing strictly, just skip the number of bytes\n if (!strict || str.charCodeAt(strIdx) === CharCodes.SEMI) {\n resultIdx = treeIdx;\n excess = 0;\n }\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (masked >> 14) - 1;\n if (valueLength === 0)\n break;\n treeIdx += valueLength;\n }\n }\n if (resultIdx !== 0) {\n var valueLength = (decodeTree[resultIdx] & BinTrieFlags.VALUE_LENGTH) >> 14;\n ret +=\n valueLength === 1\n ? String.fromCharCode(decodeTree[resultIdx] & ~BinTrieFlags.VALUE_LENGTH)\n : valueLength === 2\n ? String.fromCharCode(decodeTree[resultIdx + 1])\n : String.fromCharCode(decodeTree[resultIdx + 1], decodeTree[resultIdx + 2]);\n lastIdx = strIdx - excess + 1;\n }\n }\n return ret + str.slice(lastIdx);\n };\n}\nfunction determineBranch(decodeTree, current, nodeIdx, char) {\n var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n var jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n var value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIdx + value] - 1;\n }\n // Case 3: Multiple branches encoded in dictionary\n // Binary search for the character.\n var lo = nodeIdx;\n var hi = lo + branchCount - 1;\n while (lo <= hi) {\n var mid = (lo + hi) >>> 1;\n var midVal = decodeTree[mid];\n if (midVal < char) {\n lo = mid + 1;\n }\n else if (midVal > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nexports.determineBranch = determineBranch;\nvar htmlDecoder = getDecoder(decode_data_html_js_1.default);\nvar xmlDecoder = getDecoder(decode_data_xml_js_1.default);\n/**\n * Decodes an HTML string, allowing for entities not terminated by a semi-colon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTML(str) {\n return htmlDecoder(str, false);\n}\nexports.decodeHTML = decodeHTML;\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semi-colon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLStrict(str) {\n return htmlDecoder(str, true);\n}\nexports.decodeHTMLStrict = decodeHTMLStrict;\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semi-colon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeXML(str) {\n return xmlDecoder(str, true);\n}\nexports.decodeXML = decodeXML;\n//# sourceMappingURL=decode.js.map","\"use strict\";\n// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceCodePoint = exports.fromCodePoint = void 0;\nvar decodeMap = new Map([\n [0, 65533],\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\nexports.fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n var output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n};\nfunction replaceCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return 0xfffd;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\nexports.replaceCodePoint = replaceCodePoint;\nfunction decodeCodePoint(codePoint) {\n return (0, exports.fromCodePoint)(replaceCodePoint(codePoint));\n}\nexports.default = decodeCodePoint;\n//# sourceMappingURL=decode_codepoint.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeNonAsciiHTML = exports.encodeHTML = void 0;\nvar encode_html_js_1 = __importDefault(require(\"./generated/encode-html.js\"));\nvar escape_js_1 = require(\"./escape.js\");\nvar htmlReplacer = /[\\t\\n!-,./:-@[-`\\f{-}$\\x80-\\uFFFF]/g;\n/**\n * Encodes all characters in the input using HTML entities. This includes\n * characters that are valid ASCII characters in HTML documents, such as `#`.\n *\n * To get a more compact output, consider using the `encodeNonAsciiHTML`\n * function, which will only encode characters that are not valid in HTML\n * documents, as well as non-ASCII characters.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeHTML(data) {\n return encodeHTMLTrieRe(htmlReplacer, data);\n}\nexports.encodeHTML = encodeHTML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in HTML\n * documents using HTML entities. This function will not encode characters that\n * are valid in HTML documents, such as `#`.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeNonAsciiHTML(data) {\n return encodeHTMLTrieRe(escape_js_1.xmlReplacer, data);\n}\nexports.encodeNonAsciiHTML = encodeNonAsciiHTML;\nfunction encodeHTMLTrieRe(regExp, str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = regExp.exec(str)) !== null) {\n var i = match.index;\n ret += str.substring(lastIdx, i);\n var char = str.charCodeAt(i);\n var next = encode_html_js_1.default.get(char);\n if (typeof next === \"object\") {\n // We are in a branch. Try to match the next char.\n if (i + 1 < str.length) {\n var nextChar = str.charCodeAt(i + 1);\n var value = typeof next.n === \"number\"\n ? next.n === nextChar\n ? next.o\n : undefined\n : next.n.get(nextChar);\n if (value !== undefined) {\n ret += value;\n lastIdx = regExp.lastIndex += 1;\n continue;\n }\n }\n next = next.v;\n }\n // We might have a tree node without a value; skip and use a numeric entitiy.\n if (next !== undefined) {\n ret += next;\n lastIdx = i + 1;\n }\n else {\n var cp = (0, escape_js_1.getCodePoint)(str, i);\n ret += \"&#x\".concat(cp.toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = regExp.lastIndex += Number(cp !== char);\n }\n }\n return ret + str.substr(lastIdx);\n}\n//# sourceMappingURL=encode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.getCodePoint = exports.xmlReplacer = void 0;\nexports.xmlReplacer = /[\"&'<>$\\x80-\\uFFFF]/g;\nvar xmlCodeMap = new Map([\n [34, \""\"],\n [38, \"&\"],\n [39, \"'\"],\n [60, \"<\"],\n [62, \">\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexports.getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? function (str, index) { return str.codePointAt(index); }\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n function (c, index) {\n return (c.charCodeAt(index) & 0xfc00) === 0xd800\n ? (c.charCodeAt(index) - 0xd800) * 0x400 +\n c.charCodeAt(index + 1) -\n 0xdc00 +\n 0x10000\n : c.charCodeAt(index);\n };\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nfunction encodeXML(str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = exports.xmlReplacer.exec(str)) !== null) {\n var i = match.index;\n var char = str.charCodeAt(i);\n var next = xmlCodeMap.get(char);\n if (next !== undefined) {\n ret += str.substring(lastIdx, i) + next;\n lastIdx = i + 1;\n }\n else {\n ret += \"\".concat(str.substring(lastIdx, i), \"&#x\").concat((0, exports.getCodePoint)(str, i).toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = exports.xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);\n }\n }\n return ret + str.substr(lastIdx);\n}\nexports.encodeXML = encodeXML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexports.escape = encodeXML;\nfunction getEscaper(regex, map) {\n return function escape(data) {\n var match;\n var lastIdx = 0;\n var result = \"\";\n while ((match = regex.exec(data))) {\n if (lastIdx !== match.index) {\n result += data.substring(lastIdx, match.index);\n }\n // We know that this chararcter will be in the map.\n result += map.get(match[0].charCodeAt(0));\n // Every match will be of length 1\n lastIdx = match.index + 1;\n }\n return result + data.substring(lastIdx);\n };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexports.escapeUTF8 = getEscaper(/[&<>'\"]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeAttribute = getEscaper(/[\"&\\u00A0]/g, new Map([\n [34, \""\"],\n [38, \"&\"],\n [160, \" \"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeText = getEscaper(/[&<>\\u00A0]/g, new Map([\n [38, \"&\"],\n [60, \"<\"],\n [62, \">\"],\n [160, \" \"],\n]));\n//# sourceMappingURL=escape.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-html.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-xml.js.map","\"use strict\";\n// Generated using scripts/write-encode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction restoreDiff(arr) {\n for (var i = 1; i < arr.length; i++) {\n arr[i][0] += arr[i - 1][0] + 1;\n }\n return arr;\n}\n// prettier-ignore\nexports.default = new Map(/* #__PURE__ */ restoreDiff([[9, \" \"], [0, \" \"], [22, \"!\"], [0, \""\"], [0, \"#\"], [0, \"$\"], [0, \"%\"], [0, \"&\"], [0, \"'\"], [0, \"(\"], [0, \")\"], [0, \"*\"], [0, \"+\"], [0, \",\"], [1, \".\"], [0, \"/\"], [10, \":\"], [0, \";\"], [0, { v: \"<\", n: 8402, o: \"<⃒\" }], [0, { v: \"=\", n: 8421, o: \"=⃥\" }], [0, { v: \">\", n: 8402, o: \">⃒\" }], [0, \"?\"], [0, \"@\"], [26, \"[\"], [0, \"\\"], [0, \"]\"], [0, \"^\"], [0, \"_\"], [0, \"`\"], [5, { n: 106, o: \"fj\" }], [20, \"{\"], [0, \"|\"], [0, \"}\"], [34, \" \"], [0, \"¡\"], [0, \"¢\"], [0, \"£\"], [0, \"¤\"], [0, \"¥\"], [0, \"¦\"], [0, \"§\"], [0, \"¨\"], [0, \"©\"], [0, \"ª\"], [0, \"«\"], [0, \"¬\"], [0, \"­\"], [0, \"®\"], [0, \"¯\"], [0, \"°\"], [0, \"±\"], [0, \"²\"], [0, \"³\"], [0, \"´\"], [0, \"µ\"], [0, \"¶\"], [0, \"·\"], [0, \"¸\"], [0, \"¹\"], [0, \"º\"], [0, \"»\"], [0, \"¼\"], [0, \"½\"], [0, \"¾\"], [0, \"¿\"], [0, \"À\"], [0, \"Á\"], [0, \"Â\"], [0, \"Ã\"], [0, \"Ä\"], [0, \"Å\"], [0, \"Æ\"], [0, \"Ç\"], [0, \"È\"], [0, \"É\"], [0, \"Ê\"], [0, \"Ë\"], [0, \"Ì\"], [0, \"Í\"], [0, \"Î\"], [0, \"Ï\"], [0, \"Ð\"], [0, \"Ñ\"], [0, \"Ò\"], [0, \"Ó\"], [0, \"Ô\"], [0, \"Õ\"], [0, \"Ö\"], [0, \"×\"], [0, \"Ø\"], [0, \"Ù\"], [0, \"Ú\"], [0, \"Û\"], [0, \"Ü\"], [0, \"Ý\"], [0, \"Þ\"], [0, \"ß\"], [0, \"à\"], [0, \"á\"], [0, \"â\"], [0, \"ã\"], [0, \"ä\"], [0, \"å\"], [0, \"æ\"], [0, \"ç\"], [0, \"è\"], [0, \"é\"], [0, \"ê\"], [0, \"ë\"], [0, \"ì\"], [0, \"í\"], [0, \"î\"], [0, \"ï\"], [0, \"ð\"], [0, \"ñ\"], [0, \"ò\"], [0, \"ó\"], [0, \"ô\"], [0, \"õ\"], [0, \"ö\"], [0, \"÷\"], [0, \"ø\"], [0, \"ù\"], [0, \"ú\"], [0, \"û\"], [0, \"ü\"], [0, \"ý\"], [0, \"þ\"], [0, \"ÿ\"], [0, \"Ā\"], [0, \"ā\"], [0, \"Ă\"], [0, \"ă\"], [0, \"Ą\"], [0, \"ą\"], [0, \"Ć\"], [0, \"ć\"], [0, \"Ĉ\"], [0, \"ĉ\"], [0, \"Ċ\"], [0, \"ċ\"], [0, \"Č\"], [0, \"č\"], [0, \"Ď\"], [0, \"ď\"], [0, \"Đ\"], [0, \"đ\"], [0, \"Ē\"], [0, \"ē\"], [2, \"Ė\"], [0, \"ė\"], [0, \"Ę\"], [0, \"ę\"], [0, \"Ě\"], [0, \"ě\"], [0, \"Ĝ\"], [0, \"ĝ\"], [0, \"Ğ\"], [0, \"ğ\"], [0, \"Ġ\"], [0, \"ġ\"], [0, \"Ģ\"], [1, \"Ĥ\"], [0, \"ĥ\"], [0, \"Ħ\"], [0, \"ħ\"], [0, \"Ĩ\"], [0, \"ĩ\"], [0, \"Ī\"], [0, \"ī\"], [2, \"Į\"], [0, \"į\"], [0, \"İ\"], [0, \"ı\"], [0, \"IJ\"], [0, \"ij\"], [0, \"Ĵ\"], [0, \"ĵ\"], [0, \"Ķ\"], [0, \"ķ\"], [0, \"ĸ\"], [0, \"Ĺ\"], [0, \"ĺ\"], [0, \"Ļ\"], [0, \"ļ\"], [0, \"Ľ\"], [0, \"ľ\"], [0, \"Ŀ\"], [0, \"ŀ\"], [0, \"Ł\"], [0, \"ł\"], [0, \"Ń\"], [0, \"ń\"], [0, \"Ņ\"], [0, \"ņ\"], [0, \"Ň\"], [0, \"ň\"], [0, \"ʼn\"], [0, \"Ŋ\"], [0, \"ŋ\"], [0, \"Ō\"], [0, \"ō\"], [2, \"Ő\"], [0, \"ő\"], [0, \"Œ\"], [0, \"œ\"], [0, \"Ŕ\"], [0, \"ŕ\"], [0, \"Ŗ\"], [0, \"ŗ\"], [0, \"Ř\"], [0, \"ř\"], [0, \"Ś\"], [0, \"ś\"], [0, \"Ŝ\"], [0, \"ŝ\"], [0, \"Ş\"], [0, \"ş\"], [0, \"Š\"], [0, \"š\"], [0, \"Ţ\"], [0, \"ţ\"], [0, \"Ť\"], [0, \"ť\"], [0, \"Ŧ\"], [0, \"ŧ\"], [0, \"Ũ\"], [0, \"ũ\"], [0, \"Ū\"], [0, \"ū\"], [0, \"Ŭ\"], [0, \"ŭ\"], [0, \"Ů\"], [0, \"ů\"], [0, \"Ű\"], [0, \"ű\"], [0, \"Ų\"], [0, \"ų\"], [0, \"Ŵ\"], [0, \"ŵ\"], [0, \"Ŷ\"], [0, \"ŷ\"], [0, \"Ÿ\"], [0, \"Ź\"], [0, \"ź\"], [0, \"Ż\"], [0, \"ż\"], [0, \"Ž\"], [0, \"ž\"], [19, \"ƒ\"], [34, \"Ƶ\"], [63, \"ǵ\"], [65, \"ȷ\"], [142, \"ˆ\"], [0, \"ˇ\"], [16, \"˘\"], [0, \"˙\"], [0, \"˚\"], [0, \"˛\"], [0, \"˜\"], [0, \"˝\"], [51, \"̑\"], [127, \"Α\"], [0, \"Β\"], [0, \"Γ\"], [0, \"Δ\"], [0, \"Ε\"], [0, \"Ζ\"], [0, \"Η\"], [0, \"Θ\"], [0, \"Ι\"], [0, \"Κ\"], [0, \"Λ\"], [0, \"Μ\"], [0, \"Ν\"], [0, \"Ξ\"], [0, \"Ο\"], [0, \"Π\"], [0, \"Ρ\"], [1, \"Σ\"], [0, \"Τ\"], [0, \"Υ\"], [0, \"Φ\"], [0, \"Χ\"], [0, \"Ψ\"], [0, \"Ω\"], [7, \"α\"], [0, \"β\"], [0, \"γ\"], [0, \"δ\"], [0, \"ε\"], [0, \"ζ\"], [0, \"η\"], [0, \"θ\"], [0, \"ι\"], [0, \"κ\"], [0, \"λ\"], [0, \"μ\"], [0, \"ν\"], [0, \"ξ\"], [0, \"ο\"], [0, \"π\"], [0, \"ρ\"], [0, \"ς\"], [0, \"σ\"], [0, \"τ\"], [0, \"υ\"], [0, \"φ\"], [0, \"χ\"], [0, \"ψ\"], [0, \"ω\"], [7, \"ϑ\"], [0, \"ϒ\"], [2, \"ϕ\"], [0, \"ϖ\"], [5, \"Ϝ\"], [0, \"ϝ\"], [18, \"ϰ\"], [0, \"ϱ\"], [3, \"ϵ\"], [0, \"϶\"], [10, \"Ё\"], [0, \"Ђ\"], [0, \"Ѓ\"], [0, \"Є\"], [0, \"Ѕ\"], [0, \"І\"], [0, \"Ї\"], [0, \"Ј\"], [0, \"Љ\"], [0, \"Њ\"], [0, \"Ћ\"], [0, \"Ќ\"], [1, \"Ў\"], [0, \"Џ\"], [0, \"А\"], [0, \"Б\"], [0, \"В\"], [0, \"Г\"], [0, \"Д\"], [0, \"Е\"], [0, \"Ж\"], [0, \"З\"], [0, \"И\"], [0, \"Й\"], [0, \"К\"], [0, \"Л\"], [0, \"М\"], [0, \"Н\"], [0, \"О\"], [0, \"П\"], [0, \"Р\"], [0, \"С\"], [0, \"Т\"], [0, \"У\"], [0, \"Ф\"], [0, \"Х\"], [0, \"Ц\"], [0, \"Ч\"], [0, \"Ш\"], [0, \"Щ\"], [0, \"Ъ\"], [0, \"Ы\"], [0, \"Ь\"], [0, \"Э\"], [0, \"Ю\"], [0, \"Я\"], [0, \"а\"], [0, \"б\"], [0, \"в\"], [0, \"г\"], [0, \"д\"], [0, \"е\"], [0, \"ж\"], [0, \"з\"], [0, \"и\"], [0, \"й\"], [0, \"к\"], [0, \"л\"], [0, \"м\"], [0, \"н\"], [0, \"о\"], [0, \"п\"], [0, \"р\"], [0, \"с\"], [0, \"т\"], [0, \"у\"], [0, \"ф\"], [0, \"х\"], [0, \"ц\"], [0, \"ч\"], [0, \"ш\"], [0, \"щ\"], [0, \"ъ\"], [0, \"ы\"], [0, \"ь\"], [0, \"э\"], [0, \"ю\"], [0, \"я\"], [1, \"ё\"], [0, \"ђ\"], [0, \"ѓ\"], [0, \"є\"], [0, \"ѕ\"], [0, \"і\"], [0, \"ї\"], [0, \"ј\"], [0, \"љ\"], [0, \"њ\"], [0, \"ћ\"], [0, \"ќ\"], [1, \"ў\"], [0, \"џ\"], [7074, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [1, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [0, \"​\"], [0, \"‌\"], [0, \"‍\"], [0, \"‎\"], [0, \"‏\"], [0, \"‐\"], [2, \"–\"], [0, \"—\"], [0, \"―\"], [0, \"‖\"], [1, \"‘\"], [0, \"’\"], [0, \"‚\"], [1, \"“\"], [0, \"”\"], [0, \"„\"], [1, \"†\"], [0, \"‡\"], [0, \"•\"], [2, \"‥\"], [0, \"…\"], [9, \"‰\"], [0, \"‱\"], [0, \"′\"], [0, \"″\"], [0, \"‴\"], [0, \"‵\"], [3, \"‹\"], [0, \"›\"], [3, \"‾\"], [2, \"⁁\"], [1, \"⁃\"], [0, \"⁄\"], [10, \"⁏\"], [7, \"⁗\"], [7, { v: \" \", n: 8202, o: \"  \" }], [0, \"⁠\"], [0, \"⁡\"], [0, \"⁢\"], [0, \"⁣\"], [72, \"€\"], [46, \"⃛\"], [0, \"⃜\"], [37, \"ℂ\"], [2, \"℅\"], [4, \"ℊ\"], [0, \"ℋ\"], [0, \"ℌ\"], [0, \"ℍ\"], [0, \"ℎ\"], [0, \"ℏ\"], [0, \"ℐ\"], [0, \"ℑ\"], [0, \"ℒ\"], [0, \"ℓ\"], [1, \"ℕ\"], [0, \"№\"], [0, \"℗\"], [0, \"℘\"], [0, \"ℙ\"], [0, \"ℚ\"], [0, \"ℛ\"], [0, \"ℜ\"], [0, \"ℝ\"], [0, \"℞\"], [3, \"™\"], [1, \"ℤ\"], [2, \"℧\"], [0, \"ℨ\"], [0, \"℩\"], [2, \"ℬ\"], [0, \"ℭ\"], [1, \"ℯ\"], [0, \"ℰ\"], [0, \"ℱ\"], [1, \"ℳ\"], [0, \"ℴ\"], [0, \"ℵ\"], [0, \"ℶ\"], [0, \"ℷ\"], [0, \"ℸ\"], [12, \"ⅅ\"], [0, \"ⅆ\"], [0, \"ⅇ\"], [0, \"ⅈ\"], [10, \"⅓\"], [0, \"⅔\"], [0, \"⅕\"], [0, \"⅖\"], [0, \"⅗\"], [0, \"⅘\"], [0, \"⅙\"], [0, \"⅚\"], [0, \"⅛\"], [0, \"⅜\"], [0, \"⅝\"], [0, \"⅞\"], [49, \"←\"], [0, \"↑\"], [0, \"→\"], [0, \"↓\"], [0, \"↔\"], [0, \"↕\"], [0, \"↖\"], [0, \"↗\"], [0, \"↘\"], [0, \"↙\"], [0, \"↚\"], [0, \"↛\"], [1, { v: \"↝\", n: 824, o: \"↝̸\" }], [0, \"↞\"], [0, \"↟\"], [0, \"↠\"], [0, \"↡\"], [0, \"↢\"], [0, \"↣\"], [0, \"↤\"], [0, \"↥\"], [0, \"↦\"], [0, \"↧\"], [1, \"↩\"], [0, \"↪\"], [0, \"↫\"], [0, \"↬\"], [0, \"↭\"], [0, \"↮\"], [1, \"↰\"], [0, \"↱\"], [0, \"↲\"], [0, \"↳\"], [1, \"↵\"], [0, \"↶\"], [0, \"↷\"], [2, \"↺\"], [0, \"↻\"], [0, \"↼\"], [0, \"↽\"], [0, \"↾\"], [0, \"↿\"], [0, \"⇀\"], [0, \"⇁\"], [0, \"⇂\"], [0, \"⇃\"], [0, \"⇄\"], [0, \"⇅\"], [0, \"⇆\"], [0, \"⇇\"], [0, \"⇈\"], [0, \"⇉\"], [0, \"⇊\"], [0, \"⇋\"], [0, \"⇌\"], [0, \"⇍\"], [0, \"⇎\"], [0, \"⇏\"], [0, \"⇐\"], [0, \"⇑\"], [0, \"⇒\"], [0, \"⇓\"], [0, \"⇔\"], [0, \"⇕\"], [0, \"⇖\"], [0, \"⇗\"], [0, \"⇘\"], [0, \"⇙\"], [0, \"⇚\"], [0, \"⇛\"], [1, \"⇝\"], [6, \"⇤\"], [0, \"⇥\"], [15, \"⇵\"], [7, \"⇽\"], [0, \"⇾\"], [0, \"⇿\"], [0, \"∀\"], [0, \"∁\"], [0, { v: \"∂\", n: 824, o: \"∂̸\" }], [0, \"∃\"], [0, \"∄\"], [0, \"∅\"], [1, \"∇\"], [0, \"∈\"], [0, \"∉\"], [1, \"∋\"], [0, \"∌\"], [2, \"∏\"], [0, \"∐\"], [0, \"∑\"], [0, \"−\"], [0, \"∓\"], [0, \"∔\"], [1, \"∖\"], [0, \"∗\"], [0, \"∘\"], [1, \"√\"], [2, \"∝\"], [0, \"∞\"], [0, \"∟\"], [0, { v: \"∠\", n: 8402, o: \"∠⃒\" }], [0, \"∡\"], [0, \"∢\"], [0, \"∣\"], [0, \"∤\"], [0, \"∥\"], [0, \"∦\"], [0, \"∧\"], [0, \"∨\"], [0, { v: \"∩\", n: 65024, o: \"∩︀\" }], [0, { v: \"∪\", n: 65024, o: \"∪︀\" }], [0, \"∫\"], [0, \"∬\"], [0, \"∭\"], [0, \"∮\"], [0, \"∯\"], [0, \"∰\"], [0, \"∱\"], [0, \"∲\"], [0, \"∳\"], [0, \"∴\"], [0, \"∵\"], [0, \"∶\"], [0, \"∷\"], [0, \"∸\"], [1, \"∺\"], [0, \"∻\"], [0, { v: \"∼\", n: 8402, o: \"∼⃒\" }], [0, { v: \"∽\", n: 817, o: \"∽̱\" }], [0, { v: \"∾\", n: 819, o: \"∾̳\" }], [0, \"∿\"], [0, \"≀\"], [0, \"≁\"], [0, { v: \"≂\", n: 824, o: \"≂̸\" }], [0, \"≃\"], [0, \"≄\"], [0, \"≅\"], [0, \"≆\"], [0, \"≇\"], [0, \"≈\"], [0, \"≉\"], [0, \"≊\"], [0, { v: \"≋\", n: 824, o: \"≋̸\" }], [0, \"≌\"], [0, { v: \"≍\", n: 8402, o: \"≍⃒\" }], [0, { v: \"≎\", n: 824, o: \"≎̸\" }], [0, { v: \"≏\", n: 824, o: \"≏̸\" }], [0, { v: \"≐\", n: 824, o: \"≐̸\" }], [0, \"≑\"], [0, \"≒\"], [0, \"≓\"], [0, \"≔\"], [0, \"≕\"], [0, \"≖\"], [0, \"≗\"], [1, \"≙\"], [0, \"≚\"], [1, \"≜\"], [2, \"≟\"], [0, \"≠\"], [0, { v: \"≡\", n: 8421, o: \"≡⃥\" }], [0, \"≢\"], [1, { v: \"≤\", n: 8402, o: \"≤⃒\" }], [0, { v: \"≥\", n: 8402, o: \"≥⃒\" }], [0, { v: \"≦\", n: 824, o: \"≦̸\" }], [0, { v: \"≧\", n: 824, o: \"≧̸\" }], [0, { v: \"≨\", n: 65024, o: \"≨︀\" }], [0, { v: \"≩\", n: 65024, o: \"≩︀\" }], [0, { v: \"≪\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≪̸\"], [7577, \"≪⃒\"]])) }], [0, { v: \"≫\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≫̸\"], [7577, \"≫⃒\"]])) }], [0, \"≬\"], [0, \"≭\"], [0, \"≮\"], [0, \"≯\"], [0, \"≰\"], [0, \"≱\"], [0, \"≲\"], [0, \"≳\"], [0, \"≴\"], [0, \"≵\"], [0, \"≶\"], [0, \"≷\"], [0, \"≸\"], [0, \"≹\"], [0, \"≺\"], [0, \"≻\"], [0, \"≼\"], [0, \"≽\"], [0, \"≾\"], [0, { v: \"≿\", n: 824, o: \"≿̸\" }], [0, \"⊀\"], [0, \"⊁\"], [0, { v: \"⊂\", n: 8402, o: \"⊂⃒\" }], [0, { v: \"⊃\", n: 8402, o: \"⊃⃒\" }], [0, \"⊄\"], [0, \"⊅\"], [0, \"⊆\"], [0, \"⊇\"], [0, \"⊈\"], [0, \"⊉\"], [0, { v: \"⊊\", n: 65024, o: \"⊊︀\" }], [0, { v: \"⊋\", n: 65024, o: \"⊋︀\" }], [1, \"⊍\"], [0, \"⊎\"], [0, { v: \"⊏\", n: 824, o: \"⊏̸\" }], [0, { v: \"⊐\", n: 824, o: \"⊐̸\" }], [0, \"⊑\"], [0, \"⊒\"], [0, { v: \"⊓\", n: 65024, o: \"⊓︀\" }], [0, { v: \"⊔\", n: 65024, o: \"⊔︀\" }], [0, \"⊕\"], [0, \"⊖\"], [0, \"⊗\"], [0, \"⊘\"], [0, \"⊙\"], [0, \"⊚\"], [0, \"⊛\"], [1, \"⊝\"], [0, \"⊞\"], [0, \"⊟\"], [0, \"⊠\"], [0, \"⊡\"], [0, \"⊢\"], [0, \"⊣\"], [0, \"⊤\"], [0, \"⊥\"], [1, \"⊧\"], [0, \"⊨\"], [0, \"⊩\"], [0, \"⊪\"], [0, \"⊫\"], [0, \"⊬\"], [0, \"⊭\"], [0, \"⊮\"], [0, \"⊯\"], [0, \"⊰\"], [1, \"⊲\"], [0, \"⊳\"], [0, { v: \"⊴\", n: 8402, o: \"⊴⃒\" }], [0, { v: \"⊵\", n: 8402, o: \"⊵⃒\" }], [0, \"⊶\"], [0, \"⊷\"], [0, \"⊸\"], [0, \"⊹\"], [0, \"⊺\"], [0, \"⊻\"], [1, \"⊽\"], [0, \"⊾\"], [0, \"⊿\"], [0, \"⋀\"], [0, \"⋁\"], [0, \"⋂\"], [0, \"⋃\"], [0, \"⋄\"], [0, \"⋅\"], [0, \"⋆\"], [0, \"⋇\"], [0, \"⋈\"], [0, \"⋉\"], [0, \"⋊\"], [0, \"⋋\"], [0, \"⋌\"], [0, \"⋍\"], [0, \"⋎\"], [0, \"⋏\"], [0, \"⋐\"], [0, \"⋑\"], [0, \"⋒\"], [0, \"⋓\"], [0, \"⋔\"], [0, \"⋕\"], [0, \"⋖\"], [0, \"⋗\"], [0, { v: \"⋘\", n: 824, o: \"⋘̸\" }], [0, { v: \"⋙\", n: 824, o: \"⋙̸\" }], [0, { v: \"⋚\", n: 65024, o: \"⋚︀\" }], [0, { v: \"⋛\", n: 65024, o: \"⋛︀\" }], [2, \"⋞\"], [0, \"⋟\"], [0, \"⋠\"], [0, \"⋡\"], [0, \"⋢\"], [0, \"⋣\"], [2, \"⋦\"], [0, \"⋧\"], [0, \"⋨\"], [0, \"⋩\"], [0, \"⋪\"], [0, \"⋫\"], [0, \"⋬\"], [0, \"⋭\"], [0, \"⋮\"], [0, \"⋯\"], [0, \"⋰\"], [0, \"⋱\"], [0, \"⋲\"], [0, \"⋳\"], [0, \"⋴\"], [0, { v: \"⋵\", n: 824, o: \"⋵̸\" }], [0, \"⋶\"], [0, \"⋷\"], [1, { v: \"⋹\", n: 824, o: \"⋹̸\" }], [0, \"⋺\"], [0, \"⋻\"], [0, \"⋼\"], [0, \"⋽\"], [0, \"⋾\"], [6, \"⌅\"], [0, \"⌆\"], [1, \"⌈\"], [0, \"⌉\"], [0, \"⌊\"], [0, \"⌋\"], [0, \"⌌\"], [0, \"⌍\"], [0, \"⌎\"], [0, \"⌏\"], [0, \"⌐\"], [1, \"⌒\"], [0, \"⌓\"], [1, \"⌕\"], [0, \"⌖\"], [5, \"⌜\"], [0, \"⌝\"], [0, \"⌞\"], [0, \"⌟\"], [2, \"⌢\"], [0, \"⌣\"], [9, \"⌭\"], [0, \"⌮\"], [7, \"⌶\"], [6, \"⌽\"], [1, \"⌿\"], [60, \"⍼\"], [51, \"⎰\"], [0, \"⎱\"], [2, \"⎴\"], [0, \"⎵\"], [0, \"⎶\"], [37, \"⏜\"], [0, \"⏝\"], [0, \"⏞\"], [0, \"⏟\"], [2, \"⏢\"], [4, \"⏧\"], [59, \"␣\"], [164, \"Ⓢ\"], [55, \"─\"], [1, \"│\"], [9, \"┌\"], [3, \"┐\"], [3, \"└\"], [3, \"┘\"], [3, \"├\"], [7, \"┤\"], [7, \"┬\"], [7, \"┴\"], [7, \"┼\"], [19, \"═\"], [0, \"║\"], [0, \"╒\"], [0, \"╓\"], [0, \"╔\"], [0, \"╕\"], [0, \"╖\"], [0, \"╗\"], [0, \"╘\"], [0, \"╙\"], [0, \"╚\"], [0, \"╛\"], [0, \"╜\"], [0, \"╝\"], [0, \"╞\"], [0, \"╟\"], [0, \"╠\"], [0, \"╡\"], [0, \"╢\"], [0, \"╣\"], [0, \"╤\"], [0, \"╥\"], [0, \"╦\"], [0, \"╧\"], [0, \"╨\"], [0, \"╩\"], [0, \"╪\"], [0, \"╫\"], [0, \"╬\"], [19, \"▀\"], [3, \"▄\"], [3, \"█\"], [8, \"░\"], [0, \"▒\"], [0, \"▓\"], [13, \"□\"], [8, \"▪\"], [0, \"▫\"], [1, \"▭\"], [0, \"▮\"], [2, \"▱\"], [1, \"△\"], [0, \"▴\"], [0, \"▵\"], [2, \"▸\"], [0, \"▹\"], [3, \"▽\"], [0, \"▾\"], [0, \"▿\"], [2, \"◂\"], [0, \"◃\"], [6, \"◊\"], [0, \"○\"], [32, \"◬\"], [2, \"◯\"], [8, \"◸\"], [0, \"◹\"], [0, \"◺\"], [0, \"◻\"], [0, \"◼\"], [8, \"★\"], [0, \"☆\"], [7, \"☎\"], [49, \"♀\"], [1, \"♂\"], [29, \"♠\"], [2, \"♣\"], [1, \"♥\"], [0, \"♦\"], [3, \"♪\"], [2, \"♭\"], [0, \"♮\"], [0, \"♯\"], [163, \"✓\"], [3, \"✗\"], [8, \"✠\"], [21, \"✶\"], [33, \"❘\"], [25, \"❲\"], [0, \"❳\"], [84, \"⟈\"], [0, \"⟉\"], [28, \"⟦\"], [0, \"⟧\"], [0, \"⟨\"], [0, \"⟩\"], [0, \"⟪\"], [0, \"⟫\"], [0, \"⟬\"], [0, \"⟭\"], [7, \"⟵\"], [0, \"⟶\"], [0, \"⟷\"], [0, \"⟸\"], [0, \"⟹\"], [0, \"⟺\"], [1, \"⟼\"], [2, \"⟿\"], [258, \"⤂\"], [0, \"⤃\"], [0, \"⤄\"], [0, \"⤅\"], [6, \"⤌\"], [0, \"⤍\"], [0, \"⤎\"], [0, \"⤏\"], [0, \"⤐\"], [0, \"⤑\"], [0, \"⤒\"], [0, \"⤓\"], [2, \"⤖\"], [2, \"⤙\"], [0, \"⤚\"], [0, \"⤛\"], [0, \"⤜\"], [0, \"⤝\"], [0, \"⤞\"], [0, \"⤟\"], [0, \"⤠\"], [2, \"⤣\"], [0, \"⤤\"], [0, \"⤥\"], [0, \"⤦\"], [0, \"⤧\"], [0, \"⤨\"], [0, \"⤩\"], [0, \"⤪\"], [8, { v: \"⤳\", n: 824, o: \"⤳̸\" }], [1, \"⤵\"], [0, \"⤶\"], [0, \"⤷\"], [0, \"⤸\"], [0, \"⤹\"], [2, \"⤼\"], [0, \"⤽\"], [7, \"⥅\"], [2, \"⥈\"], [0, \"⥉\"], [0, \"⥊\"], [0, \"⥋\"], [2, \"⥎\"], [0, \"⥏\"], [0, \"⥐\"], [0, \"⥑\"], [0, \"⥒\"], [0, \"⥓\"], [0, \"⥔\"], [0, \"⥕\"], [0, \"⥖\"], [0, \"⥗\"], [0, \"⥘\"], [0, \"⥙\"], [0, \"⥚\"], [0, \"⥛\"], [0, \"⥜\"], [0, \"⥝\"], [0, \"⥞\"], [0, \"⥟\"], [0, \"⥠\"], [0, \"⥡\"], [0, \"⥢\"], [0, \"⥣\"], [0, \"⥤\"], [0, \"⥥\"], [0, \"⥦\"], [0, \"⥧\"], [0, \"⥨\"], [0, \"⥩\"], [0, \"⥪\"], [0, \"⥫\"], [0, \"⥬\"], [0, \"⥭\"], [0, \"⥮\"], [0, \"⥯\"], [0, \"⥰\"], [0, \"⥱\"], [0, \"⥲\"], [0, \"⥳\"], [0, \"⥴\"], [0, \"⥵\"], [0, \"⥶\"], [1, \"⥸\"], [0, \"⥹\"], [1, \"⥻\"], [0, \"⥼\"], [0, \"⥽\"], [0, \"⥾\"], [0, \"⥿\"], [5, \"⦅\"], [0, \"⦆\"], [4, \"⦋\"], [0, \"⦌\"], [0, \"⦍\"], [0, \"⦎\"], [0, \"⦏\"], [0, \"⦐\"], [0, \"⦑\"], [0, \"⦒\"], [0, \"⦓\"], [0, \"⦔\"], [0, \"⦕\"], [0, \"⦖\"], [3, \"⦚\"], [1, \"⦜\"], [0, \"⦝\"], [6, \"⦤\"], [0, \"⦥\"], [0, \"⦦\"], [0, \"⦧\"], [0, \"⦨\"], [0, \"⦩\"], [0, \"⦪\"], [0, \"⦫\"], [0, \"⦬\"], [0, \"⦭\"], [0, \"⦮\"], [0, \"⦯\"], [0, \"⦰\"], [0, \"⦱\"], [0, \"⦲\"], [0, \"⦳\"], [0, \"⦴\"], [0, \"⦵\"], [0, \"⦶\"], [0, \"⦷\"], [1, \"⦹\"], [1, \"⦻\"], [0, \"⦼\"], [1, \"⦾\"], [0, \"⦿\"], [0, \"⧀\"], [0, \"⧁\"], [0, \"⧂\"], [0, \"⧃\"], [0, \"⧄\"], [0, \"⧅\"], [3, \"⧉\"], [3, \"⧍\"], [0, \"⧎\"], [0, { v: \"⧏\", n: 824, o: \"⧏̸\" }], [0, { v: \"⧐\", n: 824, o: \"⧐̸\" }], [11, \"⧜\"], [0, \"⧝\"], [0, \"⧞\"], [4, \"⧣\"], [0, \"⧤\"], [0, \"⧥\"], [5, \"⧫\"], [8, \"⧴\"], [1, \"⧶\"], [9, \"⨀\"], [0, \"⨁\"], [0, \"⨂\"], [1, \"⨄\"], [1, \"⨆\"], [5, \"⨌\"], [0, \"⨍\"], [2, \"⨐\"], [0, \"⨑\"], [0, \"⨒\"], [0, \"⨓\"], [0, \"⨔\"], [0, \"⨕\"], [0, \"⨖\"], [0, \"⨗\"], [10, \"⨢\"], [0, \"⨣\"], [0, \"⨤\"], [0, \"⨥\"], [0, \"⨦\"], [0, \"⨧\"], [1, \"⨩\"], [0, \"⨪\"], [2, \"⨭\"], [0, \"⨮\"], [0, \"⨯\"], [0, \"⨰\"], [0, \"⨱\"], [1, \"⨳\"], [0, \"⨴\"], [0, \"⨵\"], [0, \"⨶\"], [0, \"⨷\"], [0, \"⨸\"], [0, \"⨹\"], [0, \"⨺\"], [0, \"⨻\"], [0, \"⨼\"], [2, \"⨿\"], [0, \"⩀\"], [1, \"⩂\"], [0, \"⩃\"], [0, \"⩄\"], [0, \"⩅\"], [0, \"⩆\"], [0, \"⩇\"], [0, \"⩈\"], [0, \"⩉\"], [0, \"⩊\"], [0, \"⩋\"], [0, \"⩌\"], [0, \"⩍\"], [2, \"⩐\"], [2, \"⩓\"], [0, \"⩔\"], [0, \"⩕\"], [0, \"⩖\"], [0, \"⩗\"], [0, \"⩘\"], [1, \"⩚\"], [0, \"⩛\"], [0, \"⩜\"], [0, \"⩝\"], [1, \"⩟\"], [6, \"⩦\"], [3, \"⩪\"], [2, { v: \"⩭\", n: 824, o: \"⩭̸\" }], [0, \"⩮\"], [0, \"⩯\"], [0, { v: \"⩰\", n: 824, o: \"⩰̸\" }], [0, \"⩱\"], [0, \"⩲\"], [0, \"⩳\"], [0, \"⩴\"], [0, \"⩵\"], [1, \"⩷\"], [0, \"⩸\"], [0, \"⩹\"], [0, \"⩺\"], [0, \"⩻\"], [0, \"⩼\"], [0, { v: \"⩽\", n: 824, o: \"⩽̸\" }], [0, { v: \"⩾\", n: 824, o: \"⩾̸\" }], [0, \"⩿\"], [0, \"⪀\"], [0, \"⪁\"], [0, \"⪂\"], [0, \"⪃\"], [0, \"⪄\"], [0, \"⪅\"], [0, \"⪆\"], [0, \"⪇\"], [0, \"⪈\"], [0, \"⪉\"], [0, \"⪊\"], [0, \"⪋\"], [0, \"⪌\"], [0, \"⪍\"], [0, \"⪎\"], [0, \"⪏\"], [0, \"⪐\"], [0, \"⪑\"], [0, \"⪒\"], [0, \"⪓\"], [0, \"⪔\"], [0, \"⪕\"], [0, \"⪖\"], [0, \"⪗\"], [0, \"⪘\"], [0, \"⪙\"], [0, \"⪚\"], [2, \"⪝\"], [0, \"⪞\"], [0, \"⪟\"], [0, \"⪠\"], [0, { v: \"⪡\", n: 824, o: \"⪡̸\" }], [0, { v: \"⪢\", n: 824, o: \"⪢̸\" }], [1, \"⪤\"], [0, \"⪥\"], [0, \"⪦\"], [0, \"⪧\"], [0, \"⪨\"], [0, \"⪩\"], [0, \"⪪\"], [0, \"⪫\"], [0, { v: \"⪬\", n: 65024, o: \"⪬︀\" }], [0, { v: \"⪭\", n: 65024, o: \"⪭︀\" }], [0, \"⪮\"], [0, { v: \"⪯\", n: 824, o: \"⪯̸\" }], [0, { v: \"⪰\", n: 824, o: \"⪰̸\" }], [2, \"⪳\"], [0, \"⪴\"], [0, \"⪵\"], [0, \"⪶\"], [0, \"⪷\"], [0, \"⪸\"], [0, \"⪹\"], [0, \"⪺\"], [0, \"⪻\"], [0, \"⪼\"], [0, \"⪽\"], [0, \"⪾\"], [0, \"⪿\"], [0, \"⫀\"], [0, \"⫁\"], [0, \"⫂\"], [0, \"⫃\"], [0, \"⫄\"], [0, { v: \"⫅\", n: 824, o: \"⫅̸\" }], [0, { v: \"⫆\", n: 824, o: \"⫆̸\" }], [0, \"⫇\"], [0, \"⫈\"], [2, { v: \"⫋\", n: 65024, o: \"⫋︀\" }], [0, { v: \"⫌\", n: 65024, o: \"⫌︀\" }], [2, \"⫏\"], [0, \"⫐\"], [0, \"⫑\"], [0, \"⫒\"], [0, \"⫓\"], [0, \"⫔\"], [0, \"⫕\"], [0, \"⫖\"], [0, \"⫗\"], [0, \"⫘\"], [0, \"⫙\"], [0, \"⫚\"], [0, \"⫛\"], [8, \"⫤\"], [1, \"⫦\"], [0, \"⫧\"], [0, \"⫨\"], [0, \"⫩\"], [1, \"⫫\"], [0, \"⫬\"], [0, \"⫭\"], [0, \"⫮\"], [0, \"⫯\"], [0, \"⫰\"], [0, \"⫱\"], [0, \"⫲\"], [0, \"⫳\"], [9, { v: \"⫽\", n: 8421, o: \"⫽⃥\" }], [44343, { n: new Map(/* #__PURE__ */ restoreDiff([[56476, \"𝒜\"], [1, \"𝒞\"], [0, \"𝒟\"], [2, \"𝒢\"], [2, \"𝒥\"], [0, \"𝒦\"], [2, \"𝒩\"], [0, \"𝒪\"], [0, \"𝒫\"], [0, \"𝒬\"], [1, \"𝒮\"], [0, \"𝒯\"], [0, \"𝒰\"], [0, \"𝒱\"], [0, \"𝒲\"], [0, \"𝒳\"], [0, \"𝒴\"], [0, \"𝒵\"], [0, \"𝒶\"], [0, \"𝒷\"], [0, \"𝒸\"], [0, \"𝒹\"], [1, \"𝒻\"], [1, \"𝒽\"], [0, \"𝒾\"], [0, \"𝒿\"], [0, \"𝓀\"], [0, \"𝓁\"], [0, \"𝓂\"], [0, \"𝓃\"], [1, \"𝓅\"], [0, \"𝓆\"], [0, \"𝓇\"], [0, \"𝓈\"], [0, \"𝓉\"], [0, \"𝓊\"], [0, \"𝓋\"], [0, \"𝓌\"], [0, \"𝓍\"], [0, \"𝓎\"], [0, \"𝓏\"], [52, \"𝔄\"], [0, \"𝔅\"], [1, \"𝔇\"], [0, \"𝔈\"], [0, \"𝔉\"], [0, \"𝔊\"], [2, \"𝔍\"], [0, \"𝔎\"], [0, \"𝔏\"], [0, \"𝔐\"], [0, \"𝔑\"], [0, \"𝔒\"], [0, \"𝔓\"], [0, \"𝔔\"], [1, \"𝔖\"], [0, \"𝔗\"], [0, \"𝔘\"], [0, \"𝔙\"], [0, \"𝔚\"], [0, \"𝔛\"], [0, \"𝔜\"], [1, \"𝔞\"], [0, \"𝔟\"], [0, \"𝔠\"], [0, \"𝔡\"], [0, \"𝔢\"], [0, \"𝔣\"], [0, \"𝔤\"], [0, \"𝔥\"], [0, \"𝔦\"], [0, \"𝔧\"], [0, \"𝔨\"], [0, \"𝔩\"], [0, \"𝔪\"], [0, \"𝔫\"], [0, \"𝔬\"], [0, \"𝔭\"], [0, \"𝔮\"], [0, \"𝔯\"], [0, \"𝔰\"], [0, \"𝔱\"], [0, \"𝔲\"], [0, \"𝔳\"], [0, \"𝔴\"], [0, \"𝔵\"], [0, \"𝔶\"], [0, \"𝔷\"], [0, \"𝔸\"], [0, \"𝔹\"], [1, \"𝔻\"], [0, \"𝔼\"], [0, \"𝔽\"], [0, \"𝔾\"], [1, \"𝕀\"], [0, \"𝕁\"], [0, \"𝕂\"], [0, \"𝕃\"], [0, \"𝕄\"], [1, \"𝕆\"], [3, \"𝕊\"], [0, \"𝕋\"], [0, \"𝕌\"], [0, \"𝕍\"], [0, \"𝕎\"], [0, \"𝕏\"], [0, \"𝕐\"], [1, \"𝕒\"], [0, \"𝕓\"], [0, \"𝕔\"], [0, \"𝕕\"], [0, \"𝕖\"], [0, \"𝕗\"], [0, \"𝕘\"], [0, \"𝕙\"], [0, \"𝕚\"], [0, \"𝕛\"], [0, \"𝕜\"], [0, \"𝕝\"], [0, \"𝕞\"], [0, \"𝕟\"], [0, \"𝕠\"], [0, \"𝕡\"], [0, \"𝕢\"], [0, \"𝕣\"], [0, \"𝕤\"], [0, \"𝕥\"], [0, \"𝕦\"], [0, \"𝕧\"], [0, \"𝕨\"], [0, \"𝕩\"], [0, \"𝕪\"], [0, \"𝕫\"]])) }], [8906, \"ff\"], [0, \"fi\"], [0, \"fl\"], [0, \"ffi\"], [0, \"ffl\"]]));\n//# sourceMappingURL=encode-html.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.encodeHTML5 = exports.encodeHTML4 = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = exports.EncodingMode = exports.DecodingMode = exports.EntityLevel = void 0;\nvar decode_js_1 = require(\"./decode.js\");\nvar encode_js_1 = require(\"./encode.js\");\nvar escape_js_1 = require(\"./escape.js\");\n/** The level of entities to support. */\nvar EntityLevel;\n(function (EntityLevel) {\n /** Support only XML entities. */\n EntityLevel[EntityLevel[\"XML\"] = 0] = \"XML\";\n /** Support HTML entities, which are a superset of XML entities. */\n EntityLevel[EntityLevel[\"HTML\"] = 1] = \"HTML\";\n})(EntityLevel = exports.EntityLevel || (exports.EntityLevel = {}));\n/** Determines whether some entities are allowed to be written without a trailing `;`. */\nvar DecodingMode;\n(function (DecodingMode) {\n /** Support legacy HTML entities. */\n DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n /** Do not support legacy HTML entities. */\n DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n})(DecodingMode = exports.DecodingMode || (exports.DecodingMode = {}));\nvar EncodingMode;\n(function (EncodingMode) {\n /**\n * The output is UTF-8 encoded. Only characters that need escaping within\n * XML will be escaped.\n */\n EncodingMode[EncodingMode[\"UTF8\"] = 0] = \"UTF8\";\n /**\n * The output consists only of ASCII characters. Characters that need\n * escaping within HTML, and characters that aren't ASCII characters will\n * be escaped.\n */\n EncodingMode[EncodingMode[\"ASCII\"] = 1] = \"ASCII\";\n /**\n * Encode all characters that have an equivalent entity, as well as all\n * characters that are not ASCII characters.\n */\n EncodingMode[EncodingMode[\"Extensive\"] = 2] = \"Extensive\";\n /**\n * Encode all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Attribute\"] = 3] = \"Attribute\";\n /**\n * Encode all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Text\"] = 4] = \"Text\";\n})(EncodingMode = exports.EncodingMode || (exports.EncodingMode = {}));\n/**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n */\nfunction decode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n if (opts.level === EntityLevel.HTML) {\n if (opts.mode === DecodingMode.Strict) {\n return (0, decode_js_1.decodeHTMLStrict)(data);\n }\n return (0, decode_js_1.decodeHTML)(data);\n }\n return (0, decode_js_1.decodeXML)(data);\n}\nexports.decode = decode;\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n * @deprecated Use `decode` with the `mode` set to `Strict`.\n */\nfunction decodeStrict(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n if (opts.level === EntityLevel.HTML) {\n if (opts.mode === DecodingMode.Legacy) {\n return (0, decode_js_1.decodeHTML)(data);\n }\n return (0, decode_js_1.decodeHTMLStrict)(data);\n }\n return (0, decode_js_1.decodeXML)(data);\n}\nexports.decodeStrict = decodeStrict;\n/**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param options Encoding options.\n */\nfunction encode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n // Mode `UTF8` just escapes XML entities\n if (opts.mode === EncodingMode.UTF8)\n return (0, escape_js_1.escapeUTF8)(data);\n if (opts.mode === EncodingMode.Attribute)\n return (0, escape_js_1.escapeAttribute)(data);\n if (opts.mode === EncodingMode.Text)\n return (0, escape_js_1.escapeText)(data);\n if (opts.level === EntityLevel.HTML) {\n if (opts.mode === EncodingMode.ASCII) {\n return (0, encode_js_1.encodeNonAsciiHTML)(data);\n }\n return (0, encode_js_1.encodeHTML)(data);\n }\n // ASCII and Extensive are equivalent\n return (0, escape_js_1.encodeXML)(data);\n}\nexports.encode = encode;\nvar escape_js_2 = require(\"./escape.js\");\nObject.defineProperty(exports, \"encodeXML\", { enumerable: true, get: function () { return escape_js_2.encodeXML; } });\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return escape_js_2.escape; } });\nObject.defineProperty(exports, \"escapeUTF8\", { enumerable: true, get: function () { return escape_js_2.escapeUTF8; } });\nObject.defineProperty(exports, \"escapeAttribute\", { enumerable: true, get: function () { return escape_js_2.escapeAttribute; } });\nObject.defineProperty(exports, \"escapeText\", { enumerable: true, get: function () { return escape_js_2.escapeText; } });\nvar encode_js_2 = require(\"./encode.js\");\nObject.defineProperty(exports, \"encodeHTML\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeNonAsciiHTML\", { enumerable: true, get: function () { return encode_js_2.encodeNonAsciiHTML; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"encodeHTML4\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeHTML5\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nvar decode_js_2 = require(\"./decode.js\");\nObject.defineProperty(exports, \"decodeXML\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\nObject.defineProperty(exports, \"decodeHTML\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"decodeHTML4\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML5\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML4Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTML5Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeXMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\n//# sourceMappingURL=index.js.map","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","/**\n * Srcset Parser\n *\n * By Alex Bell | MIT License\n *\n * JS Parser for the string value that appears in markup \n *\n * @returns Array [{url: _, d: _, w: _, h:_}, ...]\n *\n * Based super duper closely on the reference algorithm at:\n * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-srcset-attribute\n *\n * Most comments are copied in directly from the spec\n * (except for comments in parens).\n */\n\n(function (root, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([], factory);\n\t} else if (typeof module === 'object' && module.exports) {\n\t\t// Node. Does not work with strict CommonJS, but\n\t\t// only CommonJS-like environments that support module.exports,\n\t\t// like Node.\n\t\tmodule.exports = factory();\n\t} else {\n\t\t// Browser globals (root is window)\n\t\troot.parseSrcset = factory();\n\t}\n}(this, function () {\n\n\t// 1. Let input be the value passed to this algorithm.\n\treturn function (input) {\n\n\t\t// UTILITY FUNCTIONS\n\n\t\t// Manual is faster than RegEx\n\t\t// http://bjorn.tipling.com/state-and-regular-expressions-in-javascript\n\t\t// http://jsperf.com/whitespace-character/5\n\t\tfunction isSpace(c) {\n\t\t\treturn (c === \"\\u0020\" || // space\n\t\t\tc === \"\\u0009\" || // horizontal tab\n\t\t\tc === \"\\u000A\" || // new line\n\t\t\tc === \"\\u000C\" || // form feed\n\t\t\tc === \"\\u000D\"); // carriage return\n\t\t}\n\n\t\tfunction collectCharacters(regEx) {\n\t\t\tvar chars,\n\t\t\t\tmatch = regEx.exec(input.substring(pos));\n\t\t\tif (match) {\n\t\t\t\tchars = match[ 0 ];\n\t\t\t\tpos += chars.length;\n\t\t\t\treturn chars;\n\t\t\t}\n\t\t}\n\n\t\tvar inputLength = input.length,\n\n\t\t\t// (Don't use \\s, to avoid matching non-breaking space)\n\t\t\tregexLeadingSpaces = /^[ \\t\\n\\r\\u000c]+/,\n\t\t\tregexLeadingCommasOrSpaces = /^[, \\t\\n\\r\\u000c]+/,\n\t\t\tregexLeadingNotSpaces = /^[^ \\t\\n\\r\\u000c]+/,\n\t\t\tregexTrailingCommas = /[,]+$/,\n\t\t\tregexNonNegativeInteger = /^\\d+$/,\n\n\t\t\t// ( Positive or negative or unsigned integers or decimals, without or without exponents.\n\t\t\t// Must include at least one digit.\n\t\t\t// According to spec tests any decimal point must be followed by a digit.\n\t\t\t// No leading plus sign is allowed.)\n\t\t\t// https://html.spec.whatwg.org/multipage/infrastructure.html#valid-floating-point-number\n\t\t\tregexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,\n\n\t\t\turl,\n\t\t\tdescriptors,\n\t\t\tcurrentDescriptor,\n\t\t\tstate,\n\t\t\tc,\n\n\t\t\t// 2. Let position be a pointer into input, initially pointing at the start\n\t\t\t// of the string.\n\t\t\tpos = 0,\n\n\t\t\t// 3. Let candidates be an initially empty source set.\n\t\t\tcandidates = [];\n\n\t\t// 4. Splitting loop: Collect a sequence of characters that are space\n\t\t// characters or U+002C COMMA characters. If any U+002C COMMA characters\n\t\t// were collected, that is a parse error.\n\t\twhile (true) {\n\t\t\tcollectCharacters(regexLeadingCommasOrSpaces);\n\n\t\t\t// 5. If position is past the end of input, return candidates and abort these steps.\n\t\t\tif (pos >= inputLength) {\n\t\t\t\treturn candidates; // (we're done, this is the sole return path)\n\t\t\t}\n\n\t\t\t// 6. Collect a sequence of characters that are not space characters,\n\t\t\t// and let that be url.\n\t\t\turl = collectCharacters(regexLeadingNotSpaces);\n\n\t\t\t// 7. Let descriptors be a new empty list.\n\t\t\tdescriptors = [];\n\n\t\t\t// 8. If url ends with a U+002C COMMA character (,), follow these substeps:\n\t\t\t//\t\t(1). Remove all trailing U+002C COMMA characters from url. If this removed\n\t\t\t// more than one character, that is a parse error.\n\t\t\tif (url.slice(-1) === \",\") {\n\t\t\t\turl = url.replace(regexTrailingCommas, \"\");\n\t\t\t\t// (Jump ahead to step 9 to skip tokenization and just push the candidate).\n\t\t\t\tparseDescriptors();\n\n\t\t\t\t//\tOtherwise, follow these substeps:\n\t\t\t} else {\n\t\t\t\ttokenize();\n\t\t\t} // (close else of step 8)\n\n\t\t\t// 16. Return to the step labeled splitting loop.\n\t\t} // (Close of big while loop.)\n\n\t\t/**\n\t\t * Tokenizes descriptor properties prior to parsing\n\t\t * Returns undefined.\n\t\t */\n\t\tfunction tokenize() {\n\n\t\t\t// 8.1. Descriptor tokeniser: Skip whitespace\n\t\t\tcollectCharacters(regexLeadingSpaces);\n\n\t\t\t// 8.2. Let current descriptor be the empty string.\n\t\t\tcurrentDescriptor = \"\";\n\n\t\t\t// 8.3. Let state be in descriptor.\n\t\t\tstate = \"in descriptor\";\n\n\t\t\twhile (true) {\n\n\t\t\t\t// 8.4. Let c be the character at position.\n\t\t\t\tc = input.charAt(pos);\n\n\t\t\t\t// Do the following depending on the value of state.\n\t\t\t\t// For the purpose of this step, \"EOF\" is a special character representing\n\t\t\t\t// that position is past the end of input.\n\n\t\t\t\t// In descriptor\n\t\t\t\tif (state === \"in descriptor\") {\n\t\t\t\t\t// Do the following, depending on the value of c:\n\n\t\t\t\t\t// Space character\n\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t// descriptors and let current descriptor be the empty string.\n\t\t\t\t\t// Set state to after descriptor.\n\t\t\t\t\tif (isSpace(c)) {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t\tcurrentDescriptor = \"\";\n\t\t\t\t\t\t\tstate = \"after descriptor\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// U+002C COMMA (,)\n\t\t\t\t\t\t// Advance position to the next character in input. If current descriptor\n\t\t\t\t\t\t// is not empty, append current descriptor to descriptors. Jump to the step\n\t\t\t\t\t\t// labeled descriptor parser.\n\t\t\t\t\t} else if (c === \",\") {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// U+0028 LEFT PARENTHESIS (()\n\t\t\t\t\t\t// Append c to current descriptor. Set state to in parens.\n\t\t\t\t\t} else if (c === \"\\u0028\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in parens\";\n\n\t\t\t\t\t\t// EOF\n\t\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t\t// descriptors. Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\t\t\t\t\t// (end \"in descriptor\"\n\n\t\t\t\t\t// In parens\n\t\t\t\t} else if (state === \"in parens\") {\n\n\t\t\t\t\t// U+0029 RIGHT PARENTHESIS ())\n\t\t\t\t\t// Append c to current descriptor. Set state to in descriptor.\n\t\t\t\t\tif (c === \")\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in descriptor\";\n\n\t\t\t\t\t\t// EOF\n\t\t\t\t\t\t// Append current descriptor to descriptors. Jump to the step labeled\n\t\t\t\t\t\t// descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\n\t\t\t\t\t// After descriptor\n\t\t\t\t} else if (state === \"after descriptor\") {\n\n\t\t\t\t\t// Do the following, depending on the value of c:\n\t\t\t\t\t// Space character: Stay in this state.\n\t\t\t\t\tif (isSpace(c)) {\n\n\t\t\t\t\t\t// EOF: Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Set state to in descriptor. Set position to the previous character in input.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = \"in descriptor\";\n\t\t\t\t\t\tpos -= 1;\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Advance position to the next character in input.\n\t\t\t\tpos += 1;\n\n\t\t\t\t// Repeat this step.\n\t\t\t} // (close while true loop)\n\t\t}\n\n\t\t/**\n\t\t * Adds descriptor properties to a candidate, pushes to the candidates array\n\t\t * @return undefined\n\t\t */\n\t\t// Declared outside of the while loop so that it's only created once.\n\t\tfunction parseDescriptors() {\n\n\t\t\t// 9. Descriptor parser: Let error be no.\n\t\t\tvar pError = false,\n\n\t\t\t\t// 10. Let width be absent.\n\t\t\t\t// 11. Let density be absent.\n\t\t\t\t// 12. Let future-compat-h be absent. (We're implementing it now as h)\n\t\t\t\tw, d, h, i,\n\t\t\t\tcandidate = {},\n\t\t\t\tdesc, lastChar, value, intVal, floatVal;\n\n\t\t\t// 13. For each descriptor in descriptors, run the appropriate set of steps\n\t\t\t// from the following list:\n\t\t\tfor (i = 0 ; i < descriptors.length; i++) {\n\t\t\t\tdesc = descriptors[ i ];\n\n\t\t\t\tlastChar = desc[ desc.length - 1 ];\n\t\t\t\tvalue = desc.substring(0, desc.length - 1);\n\t\t\t\tintVal = parseInt(value, 10);\n\t\t\t\tfloatVal = parseFloat(value);\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0077 LATIN SMALL LETTER W character\n\t\t\t\tif (regexNonNegativeInteger.test(value) && (lastChar === \"w\")) {\n\n\t\t\t\t\t// If width and density are not both absent, then let error be yes.\n\t\t\t\t\tif (w || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes.\n\t\t\t\t\t// Otherwise, let width be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {w = intVal;}\n\n\t\t\t\t\t// If the descriptor consists of a valid floating-point number followed by\n\t\t\t\t\t// a U+0078 LATIN SMALL LETTER X character\n\t\t\t\t} else if (regexFloatingPoint.test(value) && (lastChar === \"x\")) {\n\n\t\t\t\t\t// If width, density and future-compat-h are not all absent, then let error\n\t\t\t\t\t// be yes.\n\t\t\t\t\tif (w || d || h) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing floating-point number values to the descriptor.\n\t\t\t\t\t// If the result is less than zero, let error be yes. Otherwise, let density\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (floatVal < 0) {pError = true;} else {d = floatVal;}\n\n\t\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t\t// a U+0068 LATIN SMALL LETTER H character\n\t\t\t\t} else if (regexNonNegativeInteger.test(value) && (lastChar === \"h\")) {\n\n\t\t\t\t\t// If height and density are not both absent, then let error be yes.\n\t\t\t\t\tif (h || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes. Otherwise, let future-compat-h\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {h = intVal;}\n\n\t\t\t\t\t// Anything else, Let error be yes.\n\t\t\t\t} else {pError = true;}\n\t\t\t} // (close step 13 for loop)\n\n\t\t\t// 15. If error is still no, then append a new image source to candidates whose\n\t\t\t// URL is url, associated with a width width if not absent and a pixel\n\t\t\t// density density if not absent. Otherwise, there is a parse error.\n\t\t\tif (!pError) {\n\t\t\t\tcandidate.url = url;\n\t\t\t\tif (w) { candidate.w = w;}\n\t\t\t\tif (d) { candidate.d = d;}\n\t\t\t\tif (h) { candidate.h = h;}\n\t\t\t\tcandidates.push(candidate);\n\t\t\t} else if (console && console.log) {\n\t\t\t\tconsole.log(\"Invalid srcset descriptor found in '\" +\n\t\t\t\t\tinput + \"' at '\" + desc + \"'.\");\n\t\t\t}\n\t\t} // (close parseDescriptors fn)\n\n\t}\n}));\n","var x=String;\nvar create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n","'use strict'\n\nlet Container = require('./container')\n\nclass AtRule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'atrule'\n }\n\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.append(...children)\n }\n\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.prepend(...children)\n }\n}\n\nmodule.exports = AtRule\nAtRule.default = AtRule\n\nContainer.registerAtRule(AtRule)\n","'use strict'\n\nlet Node = require('./node')\n\nclass Comment extends Node {\n constructor(defaults) {\n super(defaults)\n this.type = 'comment'\n }\n}\n\nmodule.exports = Comment\nComment.default = Comment\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet Declaration = require('./declaration')\nlet Comment = require('./comment')\nlet Node = require('./node')\n\nlet parse, Rule, AtRule, Root\n\nfunction cleanSource(nodes) {\n return nodes.map(i => {\n if (i.nodes) i.nodes = cleanSource(i.nodes)\n delete i.source\n return i\n })\n}\n\nfunction markDirtyUp(node) {\n node[isClean] = false\n if (node.proxyOf.nodes) {\n for (let i of node.proxyOf.nodes) {\n markDirtyUp(i)\n }\n }\n}\n\nclass Container extends Node {\n push(child) {\n child.parent = this\n this.proxyOf.nodes.push(child)\n return this\n }\n\n each(callback) {\n if (!this.proxyOf.nodes) return undefined\n let iterator = this.getIterator()\n\n let index, result\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index = this.indexes[iterator]\n result = callback(this.proxyOf.nodes[index], index)\n if (result === false) break\n\n this.indexes[iterator] += 1\n }\n\n delete this.indexes[iterator]\n return result\n }\n\n walk(callback) {\n return this.each((child, i) => {\n let result\n try {\n result = callback(child, i)\n } catch (e) {\n throw child.addToError(e)\n }\n if (result !== false && child.walk) {\n result = child.walk(callback)\n }\n\n return result\n })\n }\n\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop\n return this.walk((child, i) => {\n if (child.type === 'decl') {\n return callback(child, i)\n }\n })\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'decl' && prop.test(child.prop)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'decl' && child.prop === prop) {\n return callback(child, i)\n }\n })\n }\n\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector\n\n return this.walk((child, i) => {\n if (child.type === 'rule') {\n return callback(child, i)\n }\n })\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'rule' && selector.test(child.selector)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'rule' && child.selector === selector) {\n return callback(child, i)\n }\n })\n }\n\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name\n return this.walk((child, i) => {\n if (child.type === 'atrule') {\n return callback(child, i)\n }\n })\n }\n if (name instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'atrule' && name.test(child.name)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'atrule' && child.name === name) {\n return callback(child, i)\n }\n })\n }\n\n walkComments(callback) {\n return this.walk((child, i) => {\n if (child.type === 'comment') {\n return callback(child, i)\n }\n })\n }\n\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last)\n for (let node of nodes) this.proxyOf.nodes.push(node)\n }\n\n this.markDirty()\n\n return this\n }\n\n prepend(...children) {\n children = children.reverse()\n for (let child of children) {\n let nodes = this.normalize(child, this.first, 'prepend').reverse()\n for (let node of nodes) this.proxyOf.nodes.unshift(node)\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween)\n if (this.nodes) {\n for (let node of this.nodes) node.cleanRaws(keepBetween)\n }\n }\n\n insertBefore(exist, add) {\n let existIndex = this.index(exist)\n let type = existIndex === 0 ? 'prepend' : false\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex <= index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n insertAfter(exist, add) {\n let existIndex = this.index(exist)\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex < index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n removeChild(child) {\n child = this.index(child)\n this.proxyOf.nodes[child].parent = undefined\n this.proxyOf.nodes.splice(child, 1)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (index >= child) {\n this.indexes[id] = index - 1\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n removeAll() {\n for (let node of this.proxyOf.nodes) node.parent = undefined\n this.proxyOf.nodes = []\n\n this.markDirty()\n\n return this\n }\n\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts\n opts = {}\n }\n\n this.walkDecls(decl => {\n if (opts.props && !opts.props.includes(decl.prop)) return\n if (opts.fast && !decl.value.includes(opts.fast)) return\n\n decl.value = decl.value.replace(pattern, callback)\n })\n\n this.markDirty()\n\n return this\n }\n\n every(condition) {\n return this.nodes.every(condition)\n }\n\n some(condition) {\n return this.nodes.some(condition)\n }\n\n index(child) {\n if (typeof child === 'number') return child\n if (child.proxyOf) child = child.proxyOf\n return this.proxyOf.nodes.indexOf(child)\n }\n\n get first() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[0]\n }\n\n get last() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]\n }\n\n normalize(nodes, sample) {\n if (typeof nodes === 'string') {\n nodes = cleanSource(parse(nodes).nodes)\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type === 'root' && this.type !== 'document') {\n nodes = nodes.nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type) {\n nodes = [nodes]\n } else if (nodes.prop) {\n if (typeof nodes.value === 'undefined') {\n throw new Error('Value field is missed in node creation')\n } else if (typeof nodes.value !== 'string') {\n nodes.value = String(nodes.value)\n }\n nodes = [new Declaration(nodes)]\n } else if (nodes.selector) {\n nodes = [new Rule(nodes)]\n } else if (nodes.name) {\n nodes = [new AtRule(nodes)]\n } else if (nodes.text) {\n nodes = [new Comment(nodes)]\n } else {\n throw new Error('Unknown node type in node creation')\n }\n\n let processed = nodes.map(i => {\n /* c8 ignore next */\n if (!i[my]) Container.rebuild(i)\n i = i.proxyOf\n if (i.parent) i.parent.removeChild(i)\n if (i[isClean]) markDirtyUp(i)\n if (typeof i.raws.before === 'undefined') {\n if (sample && typeof sample.raws.before !== 'undefined') {\n i.raws.before = sample.raws.before.replace(/\\S/g, '')\n }\n }\n i.parent = this.proxyOf\n return i\n })\n\n return processed\n }\n\n getProxyProcessor() {\n return {\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (prop === 'name' || prop === 'params' || prop === 'selector') {\n node.markDirty()\n }\n return true\n },\n\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (!node[prop]) {\n return node[prop]\n } else if (\n prop === 'each' ||\n (typeof prop === 'string' && prop.startsWith('walk'))\n ) {\n return (...args) => {\n return node[prop](\n ...args.map(i => {\n if (typeof i === 'function') {\n return (child, index) => i(child.toProxy(), index)\n } else {\n return i\n }\n })\n )\n }\n } else if (prop === 'every' || prop === 'some') {\n return cb => {\n return node[prop]((child, ...other) =>\n cb(child.toProxy(), ...other)\n )\n }\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else if (prop === 'nodes') {\n return node.nodes.map(i => i.toProxy())\n } else if (prop === 'first' || prop === 'last') {\n return node[prop].toProxy()\n } else {\n return node[prop]\n }\n }\n }\n }\n\n getIterator() {\n if (!this.lastEach) this.lastEach = 0\n if (!this.indexes) this.indexes = {}\n\n this.lastEach += 1\n let iterator = this.lastEach\n this.indexes[iterator] = 0\n\n return iterator\n }\n}\n\nContainer.registerParse = dependant => {\n parse = dependant\n}\n\nContainer.registerRule = dependant => {\n Rule = dependant\n}\n\nContainer.registerAtRule = dependant => {\n AtRule = dependant\n}\n\nContainer.registerRoot = dependant => {\n Root = dependant\n}\n\nmodule.exports = Container\nContainer.default = Container\n\n/* c8 ignore start */\nContainer.rebuild = node => {\n if (node.type === 'atrule') {\n Object.setPrototypeOf(node, AtRule.prototype)\n } else if (node.type === 'rule') {\n Object.setPrototypeOf(node, Rule.prototype)\n } else if (node.type === 'decl') {\n Object.setPrototypeOf(node, Declaration.prototype)\n } else if (node.type === 'comment') {\n Object.setPrototypeOf(node, Comment.prototype)\n } else if (node.type === 'root') {\n Object.setPrototypeOf(node, Root.prototype)\n }\n\n node[my] = true\n\n if (node.nodes) {\n node.nodes.forEach(child => {\n Container.rebuild(child)\n })\n }\n}\n/* c8 ignore stop */\n","'use strict'\n\nlet pico = require('picocolors')\n\nlet terminalHighlight = require('./terminal-highlight')\n\nclass CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin) {\n super(message)\n this.name = 'CssSyntaxError'\n this.reason = message\n\n if (file) {\n this.file = file\n }\n if (source) {\n this.source = source\n }\n if (plugin) {\n this.plugin = plugin\n }\n if (typeof line !== 'undefined' && typeof column !== 'undefined') {\n if (typeof line === 'number') {\n this.line = line\n this.column = column\n } else {\n this.line = line.line\n this.column = line.column\n this.endLine = column.line\n this.endColumn = column.column\n }\n }\n\n this.setMessage()\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError)\n }\n }\n\n setMessage() {\n this.message = this.plugin ? this.plugin + ': ' : ''\n this.message += this.file ? this.file : ''\n if (typeof this.line !== 'undefined') {\n this.message += ':' + this.line + ':' + this.column\n }\n this.message += ': ' + this.reason\n }\n\n showSourceCode(color) {\n if (!this.source) return ''\n\n let css = this.source\n if (color == null) color = pico.isColorSupported\n if (terminalHighlight) {\n if (color) css = terminalHighlight(css)\n }\n\n let lines = css.split(/\\r?\\n/)\n let start = Math.max(this.line - 3, 0)\n let end = Math.min(this.line + 2, lines.length)\n\n let maxWidth = String(end).length\n\n let mark, aside\n if (color) {\n let { bold, red, gray } = pico.createColors(true)\n mark = text => bold(red(text))\n aside = text => gray(text)\n } else {\n mark = aside = str => str\n }\n\n return lines\n .slice(start, end)\n .map((line, index) => {\n let number = start + 1 + index\n let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | '\n if (number === this.line) {\n let spacing =\n aside(gutter.replace(/\\d/g, ' ')) +\n line.slice(0, this.column - 1).replace(/[^\\t]/g, ' ')\n return mark('>') + aside(gutter) + line + '\\n ' + spacing + mark('^')\n }\n return ' ' + aside(gutter) + line\n })\n .join('\\n')\n }\n\n toString() {\n let code = this.showSourceCode()\n if (code) {\n code = '\\n\\n' + code + '\\n'\n }\n return this.name + ': ' + this.message + code\n }\n}\n\nmodule.exports = CssSyntaxError\nCssSyntaxError.default = CssSyntaxError\n","'use strict'\n\nlet Node = require('./node')\n\nclass Declaration extends Node {\n constructor(defaults) {\n if (\n defaults &&\n typeof defaults.value !== 'undefined' &&\n typeof defaults.value !== 'string'\n ) {\n defaults = { ...defaults, value: String(defaults.value) }\n }\n super(defaults)\n this.type = 'decl'\n }\n\n get variable() {\n return this.prop.startsWith('--') || this.prop[0] === '$'\n }\n}\n\nmodule.exports = Declaration\nDeclaration.default = Declaration\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Document extends Container {\n constructor(defaults) {\n // type needs to be passed to super, otherwise child roots won't be normalized correctly\n super({ type: 'document', ...defaults })\n\n if (!this.nodes) {\n this.nodes = []\n }\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n\n return lazy.stringify()\n }\n}\n\nDocument.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nDocument.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Document\nDocument.default = Document\n","'use strict'\n\nlet Declaration = require('./declaration')\nlet PreviousMap = require('./previous-map')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Input = require('./input')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nfunction fromJSON(json, inputs) {\n if (Array.isArray(json)) return json.map(n => fromJSON(n))\n\n let { inputs: ownInputs, ...defaults } = json\n if (ownInputs) {\n inputs = []\n for (let input of ownInputs) {\n let inputHydrated = { ...input, __proto__: Input.prototype }\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap.prototype\n }\n }\n inputs.push(inputHydrated)\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map(n => fromJSON(n, inputs))\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source\n defaults.source = source\n if (inputId != null) {\n defaults.source.input = inputs[inputId]\n }\n }\n if (defaults.type === 'root') {\n return new Root(defaults)\n } else if (defaults.type === 'decl') {\n return new Declaration(defaults)\n } else if (defaults.type === 'rule') {\n return new Rule(defaults)\n } else if (defaults.type === 'comment') {\n return new Comment(defaults)\n } else if (defaults.type === 'atrule') {\n return new AtRule(defaults)\n } else {\n throw new Error('Unknown node type: ' + json.type)\n }\n}\n\nmodule.exports = fromJSON\nfromJSON.default = fromJSON\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { fileURLToPath, pathToFileURL } = require('url')\nlet { resolve, isAbsolute } = require('path')\nlet { nanoid } = require('nanoid/non-secure')\n\nlet terminalHighlight = require('./terminal-highlight')\nlet CssSyntaxError = require('./css-syntax-error')\nlet PreviousMap = require('./previous-map')\n\nlet fromOffsetCache = Symbol('fromOffsetCache')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(resolve && isAbsolute)\n\nclass Input {\n constructor(css, opts = {}) {\n if (\n css === null ||\n typeof css === 'undefined' ||\n (typeof css === 'object' && !css.toString)\n ) {\n throw new Error(`PostCSS received ${css} instead of CSS string`)\n }\n\n this.css = css.toString()\n\n if (this.css[0] === '\\uFEFF' || this.css[0] === '\\uFFFE') {\n this.hasBOM = true\n this.css = this.css.slice(1)\n } else {\n this.hasBOM = false\n }\n\n if (opts.from) {\n if (\n !pathAvailable ||\n /^\\w+:\\/\\//.test(opts.from) ||\n isAbsolute(opts.from)\n ) {\n this.file = opts.from\n } else {\n this.file = resolve(opts.from)\n }\n }\n\n if (pathAvailable && sourceMapAvailable) {\n let map = new PreviousMap(this.css, opts)\n if (map.text) {\n this.map = map\n let file = map.consumer().file\n if (!this.file && file) this.file = this.mapResolve(file)\n }\n }\n\n if (!this.file) {\n this.id = ''\n }\n if (this.map) this.map.file = this.from\n }\n\n fromOffset(offset) {\n let lastLine, lineToIndex\n if (!this[fromOffsetCache]) {\n let lines = this.css.split('\\n')\n lineToIndex = new Array(lines.length)\n let prevIndex = 0\n\n for (let i = 0, l = lines.length; i < l; i++) {\n lineToIndex[i] = prevIndex\n prevIndex += lines[i].length + 1\n }\n\n this[fromOffsetCache] = lineToIndex\n } else {\n lineToIndex = this[fromOffsetCache]\n }\n lastLine = lineToIndex[lineToIndex.length - 1]\n\n let min = 0\n if (offset >= lastLine) {\n min = lineToIndex.length - 1\n } else {\n let max = lineToIndex.length - 2\n let mid\n while (min < max) {\n mid = min + ((max - min) >> 1)\n if (offset < lineToIndex[mid]) {\n max = mid - 1\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1\n } else {\n min = mid\n break\n }\n }\n }\n return {\n line: min + 1,\n col: offset - lineToIndex[min] + 1\n }\n }\n\n error(message, line, column, opts = {}) {\n let result, endLine, endColumn\n\n if (line && typeof line === 'object') {\n let start = line\n let end = column\n if (typeof line.offset === 'number') {\n let pos = this.fromOffset(start.offset)\n line = pos.line\n column = pos.col\n } else {\n line = start.line\n column = start.column\n }\n if (typeof end.offset === 'number') {\n let pos = this.fromOffset(end.offset)\n endLine = pos.line\n endColumn = pos.col\n } else {\n endLine = end.line\n endColumn = end.column\n }\n } else if (!column) {\n let pos = this.fromOffset(line)\n line = pos.line\n column = pos.col\n }\n\n let origin = this.origin(line, column, endLine, endColumn)\n if (origin) {\n result = new CssSyntaxError(\n message,\n origin.endLine === undefined\n ? origin.line\n : { line: origin.line, column: origin.column },\n origin.endLine === undefined\n ? origin.column\n : { line: origin.endLine, column: origin.endColumn },\n origin.source,\n origin.file,\n opts.plugin\n )\n } else {\n result = new CssSyntaxError(\n message,\n endLine === undefined ? line : { line, column },\n endLine === undefined ? column : { line: endLine, column: endColumn },\n this.css,\n this.file,\n opts.plugin\n )\n }\n\n result.input = { line, column, endLine, endColumn, source: this.css }\n if (this.file) {\n if (pathToFileURL) {\n result.input.url = pathToFileURL(this.file).toString()\n }\n result.input.file = this.file\n }\n\n return result\n }\n\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false\n let consumer = this.map.consumer()\n\n let from = consumer.originalPositionFor({ line, column })\n if (!from.source) return false\n\n let to\n if (typeof endLine === 'number') {\n to = consumer.originalPositionFor({ line: endLine, column: endColumn })\n }\n\n let fromUrl\n\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL(from.source)\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n )\n }\n\n let result = {\n url: fromUrl.toString(),\n line: from.line,\n column: from.column,\n endLine: to && to.line,\n endColumn: to && to.column\n }\n\n if (fromUrl.protocol === 'file:') {\n if (fileURLToPath) {\n result.file = fileURLToPath(fromUrl)\n } else {\n /* c8 ignore next 2 */\n throw new Error(`file: protocol is not available in this PostCSS build`)\n }\n }\n\n let source = consumer.sourceContentFor(from.source)\n if (source) result.source = source\n\n return result\n }\n\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file\n }\n return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file)\n }\n\n get from() {\n return this.file || this.id\n }\n\n toJSON() {\n let json = {}\n for (let name of ['hasBOM', 'css', 'file', 'id']) {\n if (this[name] != null) {\n json[name] = this[name]\n }\n }\n if (this.map) {\n json.map = { ...this.map }\n if (json.map.consumerCache) {\n json.map.consumerCache = undefined\n }\n }\n return json\n }\n}\n\nmodule.exports = Input\nInput.default = Input\n\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input)\n}\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet Container = require('./container')\nlet Document = require('./document')\nlet warnOnce = require('./warn-once')\nlet Result = require('./result')\nlet parse = require('./parse')\nlet Root = require('./root')\n\nconst TYPE_TO_CLASS_NAME = {\n document: 'Document',\n root: 'Root',\n atrule: 'AtRule',\n rule: 'Rule',\n decl: 'Declaration',\n comment: 'Comment'\n}\n\nconst PLUGIN_PROPS = {\n postcssPlugin: true,\n prepare: true,\n Once: true,\n Document: true,\n Root: true,\n Declaration: true,\n Rule: true,\n AtRule: true,\n Comment: true,\n DeclarationExit: true,\n RuleExit: true,\n AtRuleExit: true,\n CommentExit: true,\n RootExit: true,\n DocumentExit: true,\n OnceExit: true\n}\n\nconst NOT_VISITORS = {\n postcssPlugin: true,\n prepare: true,\n Once: true\n}\n\nconst CHILDREN = 0\n\nfunction isPromise(obj) {\n return typeof obj === 'object' && typeof obj.then === 'function'\n}\n\nfunction getEvents(node) {\n let key = false\n let type = TYPE_TO_CLASS_NAME[node.type]\n if (node.type === 'decl') {\n key = node.prop.toLowerCase()\n } else if (node.type === 'atrule') {\n key = node.name.toLowerCase()\n }\n\n if (key && node.append) {\n return [\n type,\n type + '-' + key,\n CHILDREN,\n type + 'Exit',\n type + 'Exit-' + key\n ]\n } else if (key) {\n return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key]\n } else if (node.append) {\n return [type, CHILDREN, type + 'Exit']\n } else {\n return [type, type + 'Exit']\n }\n}\n\nfunction toStack(node) {\n let events\n if (node.type === 'document') {\n events = ['Document', CHILDREN, 'DocumentExit']\n } else if (node.type === 'root') {\n events = ['Root', CHILDREN, 'RootExit']\n } else {\n events = getEvents(node)\n }\n\n return {\n node,\n events,\n eventIndex: 0,\n visitors: [],\n visitorIndex: 0,\n iterator: 0\n }\n}\n\nfunction cleanMarks(node) {\n node[isClean] = false\n if (node.nodes) node.nodes.forEach(i => cleanMarks(i))\n return node\n}\n\nlet postcss = {}\n\nclass LazyResult {\n constructor(processor, css, opts) {\n this.stringified = false\n this.processed = false\n\n let root\n if (\n typeof css === 'object' &&\n css !== null &&\n (css.type === 'root' || css.type === 'document')\n ) {\n root = cleanMarks(css)\n } else if (css instanceof LazyResult || css instanceof Result) {\n root = cleanMarks(css.root)\n if (css.map) {\n if (typeof opts.map === 'undefined') opts.map = {}\n if (!opts.map.inline) opts.map.inline = false\n opts.map.prev = css.map\n }\n } else {\n let parser = parse\n if (opts.syntax) parser = opts.syntax.parse\n if (opts.parser) parser = opts.parser\n if (parser.parse) parser = parser.parse\n\n try {\n root = parser(css, opts)\n } catch (error) {\n this.processed = true\n this.error = error\n }\n\n if (root && !root[my]) {\n /* c8 ignore next 2 */\n Container.rebuild(root)\n }\n }\n\n this.result = new Result(processor, root, opts)\n this.helpers = { ...postcss, result: this.result, postcss }\n this.plugins = this.processor.plugins.map(plugin => {\n if (typeof plugin === 'object' && plugin.prepare) {\n return { ...plugin, ...plugin.prepare(this.result) }\n } else {\n return plugin\n }\n })\n }\n\n get [Symbol.toStringTag]() {\n return 'LazyResult'\n }\n\n get processor() {\n return this.result.processor\n }\n\n get opts() {\n return this.result.opts\n }\n\n get css() {\n return this.stringify().css\n }\n\n get content() {\n return this.stringify().content\n }\n\n get map() {\n return this.stringify().map\n }\n\n get root() {\n return this.sync().root\n }\n\n get messages() {\n return this.sync().messages\n }\n\n warnings() {\n return this.sync().warnings()\n }\n\n toString() {\n return this.css\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this.opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n return this.async().then(onFulfilled, onRejected)\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n if (this.processed) return Promise.resolve(this.result)\n if (!this.processing) {\n this.processing = this.runAsync()\n }\n return this.processing\n }\n\n sync() {\n if (this.error) throw this.error\n if (this.processed) return this.result\n this.processed = true\n\n if (this.processing) {\n throw this.getAsyncError()\n }\n\n for (let plugin of this.plugins) {\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n this.walkSync(root)\n }\n if (this.listeners.OnceExit) {\n if (root.type === 'document') {\n for (let subRoot of root.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot)\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root)\n }\n }\n }\n\n return this.result\n }\n\n stringify() {\n if (this.error) throw this.error\n if (this.stringified) return this.result\n this.stringified = true\n\n this.sync()\n\n let opts = this.result.opts\n let str = stringify\n if (opts.syntax) str = opts.syntax.stringify\n if (opts.stringifier) str = opts.stringifier\n if (str.stringify) str = str.stringify\n\n let map = new MapGenerator(str, this.result.root, this.result.opts)\n let data = map.generate()\n this.result.css = data[0]\n this.result.map = data[1]\n\n return this.result\n }\n\n walkSync(node) {\n node[isClean] = true\n let events = getEvents(node)\n for (let event of events) {\n if (event === CHILDREN) {\n if (node.nodes) {\n node.each(child => {\n if (!child[isClean]) this.walkSync(child)\n })\n }\n } else {\n let visitors = this.listeners[event]\n if (visitors) {\n if (this.visitSync(visitors, node.toProxy())) return\n }\n }\n }\n }\n\n visitSync(visitors, node) {\n for (let [plugin, visitor] of visitors) {\n this.result.lastPlugin = plugin\n let promise\n try {\n promise = visitor(node, this.helpers)\n } catch (e) {\n throw this.handleError(e, node.proxyOf)\n }\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n return true\n }\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n }\n\n runOnRoot(plugin) {\n this.result.lastPlugin = plugin\n try {\n if (typeof plugin === 'object' && plugin.Once) {\n if (this.result.root.type === 'document') {\n let roots = this.result.root.nodes.map(root =>\n plugin.Once(root, this.helpers)\n )\n\n if (isPromise(roots[0])) {\n return Promise.all(roots)\n }\n\n return roots\n }\n\n return plugin.Once(this.result.root, this.helpers)\n } else if (typeof plugin === 'function') {\n return plugin(this.result.root, this.result)\n }\n } catch (error) {\n throw this.handleError(error)\n }\n }\n\n getAsyncError() {\n throw new Error('Use process(css).then(cb) to work with async plugins')\n }\n\n handleError(error, node) {\n let plugin = this.result.lastPlugin\n try {\n if (node) node.addToError(error)\n this.error = error\n if (error.name === 'CssSyntaxError' && !error.plugin) {\n error.plugin = plugin.postcssPlugin\n error.setMessage()\n } else if (plugin.postcssVersion) {\n if (process.env.NODE_ENV !== 'production') {\n let pluginName = plugin.postcssPlugin\n let pluginVer = plugin.postcssVersion\n let runtimeVer = this.result.processor.version\n let a = pluginVer.split('.')\n let b = runtimeVer.split('.')\n\n if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n // eslint-disable-next-line no-console\n console.error(\n 'Unknown error from PostCSS plugin. Your current PostCSS ' +\n 'version is ' +\n runtimeVer +\n ', but ' +\n pluginName +\n ' uses ' +\n pluginVer +\n '. Perhaps this is the source of the error below.'\n )\n }\n }\n }\n } catch (err) {\n /* c8 ignore next 3 */\n // eslint-disable-next-line no-console\n if (console && console.error) console.error(err)\n }\n return error\n }\n\n async runAsync() {\n this.plugin = 0\n for (let i = 0; i < this.plugins.length; i++) {\n let plugin = this.plugins[i]\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (error) {\n throw this.handleError(error)\n }\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n let stack = [toStack(root)]\n while (stack.length > 0) {\n let promise = this.visitTick(stack)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (e) {\n let node = stack[stack.length - 1].node\n throw this.handleError(e, node)\n }\n }\n }\n }\n\n if (this.listeners.OnceExit) {\n for (let [plugin, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin\n try {\n if (root.type === 'document') {\n let roots = root.nodes.map(subRoot =>\n visitor(subRoot, this.helpers)\n )\n\n await Promise.all(roots)\n } else {\n await visitor(root, this.helpers)\n }\n } catch (e) {\n throw this.handleError(e)\n }\n }\n }\n }\n\n this.processed = true\n return this.stringify()\n }\n\n prepareVisitors() {\n this.listeners = {}\n let add = (plugin, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = []\n this.listeners[type].push([plugin, cb])\n }\n for (let plugin of this.plugins) {\n if (typeof plugin === 'object') {\n for (let event in plugin) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin.postcssPlugin}. ` +\n `Try to update PostCSS (${this.processor.version} now).`\n )\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin[event] === 'object') {\n for (let filter in plugin[event]) {\n if (filter === '*') {\n add(plugin, event, plugin[event][filter])\n } else {\n add(\n plugin,\n event + '-' + filter.toLowerCase(),\n plugin[event][filter]\n )\n }\n }\n } else if (typeof plugin[event] === 'function') {\n add(plugin, event, plugin[event])\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0\n }\n\n visitTick(stack) {\n let visit = stack[stack.length - 1]\n let { node, visitors } = visit\n\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n stack.pop()\n return\n }\n\n if (visitors.length > 0 && visit.visitorIndex < visitors.length) {\n let [plugin, visitor] = visitors[visit.visitorIndex]\n visit.visitorIndex += 1\n if (visit.visitorIndex === visitors.length) {\n visit.visitors = []\n visit.visitorIndex = 0\n }\n this.result.lastPlugin = plugin\n try {\n return visitor(node.toProxy(), this.helpers)\n } catch (e) {\n throw this.handleError(e, node)\n }\n }\n\n if (visit.iterator !== 0) {\n let iterator = visit.iterator\n let child\n while ((child = node.nodes[node.indexes[iterator]])) {\n node.indexes[iterator] += 1\n if (!child[isClean]) {\n child[isClean] = true\n stack.push(toStack(child))\n return\n }\n }\n visit.iterator = 0\n delete node.indexes[iterator]\n }\n\n let events = visit.events\n while (visit.eventIndex < events.length) {\n let event = events[visit.eventIndex]\n visit.eventIndex += 1\n if (event === CHILDREN) {\n if (node.nodes && node.nodes.length) {\n node[isClean] = true\n visit.iterator = node.getIterator()\n }\n return\n } else if (this.listeners[event]) {\n visit.visitors = this.listeners[event]\n return\n }\n }\n stack.pop()\n }\n}\n\nLazyResult.registerPostcss = dependant => {\n postcss = dependant\n}\n\nmodule.exports = LazyResult\nLazyResult.default = LazyResult\n\nRoot.registerLazyResult(LazyResult)\nDocument.registerLazyResult(LazyResult)\n","'use strict'\n\nlet list = {\n split(string, separators, last) {\n let array = []\n let current = ''\n let split = false\n\n let func = 0\n let inQuote = false\n let prevQuote = ''\n let escape = false\n\n for (let letter of string) {\n if (escape) {\n escape = false\n } else if (letter === '\\\\') {\n escape = true\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true\n prevQuote = letter\n } else if (letter === '(') {\n func += 1\n } else if (letter === ')') {\n if (func > 0) func -= 1\n } else if (func === 0) {\n if (separators.includes(letter)) split = true\n }\n\n if (split) {\n if (current !== '') array.push(current.trim())\n current = ''\n split = false\n } else {\n current += letter\n }\n }\n\n if (last || current !== '') array.push(current.trim())\n return array\n },\n\n space(string) {\n let spaces = [' ', '\\n', '\\t']\n return list.split(string, spaces)\n },\n\n comma(string) {\n return list.split(string, [','], true)\n }\n}\n\nmodule.exports = list\nlist.default = list\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { dirname, resolve, relative, sep } = require('path')\nlet { pathToFileURL } = require('url')\n\nlet Input = require('./input')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(dirname && resolve && relative && sep)\n\nclass MapGenerator {\n constructor(stringify, root, opts, cssString) {\n this.stringify = stringify\n this.mapOpts = opts.map || {}\n this.root = root\n this.opts = opts\n this.css = cssString\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute\n }\n\n isMap() {\n if (typeof this.opts.map !== 'undefined') {\n return !!this.opts.map\n }\n return this.previous().length > 0\n }\n\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = []\n if (this.root) {\n this.root.walk(node => {\n if (node.source && node.source.input.map) {\n let map = node.source.input.map\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map)\n }\n }\n })\n } else {\n let input = new Input(this.css, this.opts)\n if (input.map) this.previousMaps.push(input.map)\n }\n }\n\n return this.previousMaps\n }\n\n isInline() {\n if (typeof this.mapOpts.inline !== 'undefined') {\n return this.mapOpts.inline\n }\n\n let annotation = this.mapOpts.annotation\n if (typeof annotation !== 'undefined' && annotation !== true) {\n return false\n }\n\n if (this.previous().length) {\n return this.previous().some(i => i.inline)\n }\n return true\n }\n\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== 'undefined') {\n return this.mapOpts.sourcesContent\n }\n if (this.previous().length) {\n return this.previous().some(i => i.withContent())\n }\n return true\n }\n\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return\n\n if (this.root) {\n let node\n for (let i = this.root.nodes.length - 1; i >= 0; i--) {\n node = this.root.nodes[i]\n if (node.type !== 'comment') continue\n if (node.text.indexOf('# sourceMappingURL=') === 0) {\n this.root.removeChild(i)\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/(\\n)?\\/\\*#[\\S\\s]*?\\*\\/$/gm, '')\n }\n }\n\n setSourcesContent() {\n let already = {}\n if (this.root) {\n this.root.walk(node => {\n if (node.source) {\n let from = node.source.input.from\n if (from && !already[from]) {\n already[from] = true\n let fromUrl = this.usesFileUrls\n ? this.toFileUrl(from)\n : this.toUrl(this.path(from))\n this.map.setSourceContent(fromUrl, node.source.input.css)\n }\n }\n })\n } else if (this.css) {\n let from = this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : ''\n this.map.setSourceContent(from, this.css)\n }\n }\n\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file))\n let root = prev.root || dirname(prev.file)\n let map\n\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text)\n if (map.sourcesContent) {\n map.sourcesContent = map.sourcesContent.map(() => null)\n }\n } else {\n map = prev.consumer()\n }\n\n this.map.applySourceMap(map, from, this.toUrl(this.path(root)))\n }\n }\n\n isAnnotation() {\n if (this.isInline()) {\n return true\n }\n if (typeof this.mapOpts.annotation !== 'undefined') {\n return this.mapOpts.annotation\n }\n if (this.previous().length) {\n return this.previous().some(i => i.annotation)\n }\n return true\n }\n\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString('base64')\n } else {\n return window.btoa(unescape(encodeURIComponent(str)))\n }\n }\n\n addAnnotation() {\n let content\n\n if (this.isInline()) {\n content =\n 'data:application/json;base64,' + this.toBase64(this.map.toString())\n } else if (typeof this.mapOpts.annotation === 'string') {\n content = this.mapOpts.annotation\n } else if (typeof this.mapOpts.annotation === 'function') {\n content = this.mapOpts.annotation(this.opts.to, this.root)\n } else {\n content = this.outputFile() + '.map'\n }\n let eol = '\\n'\n if (this.css.includes('\\r\\n')) eol = '\\r\\n'\n\n this.css += eol + '/*# sourceMappingURL=' + content + ' */'\n }\n\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to)\n } else if (this.opts.from) {\n return this.path(this.opts.from)\n } else {\n return 'to.css'\n }\n }\n\n generateMap() {\n if (this.root) {\n this.generateString()\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer()\n prev.file = this.outputFile()\n this.map = SourceMapGenerator.fromSourceMap(prev)\n } else {\n this.map = new SourceMapGenerator({ file: this.outputFile() })\n this.map.addMapping({\n source: this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '',\n generated: { line: 1, column: 0 },\n original: { line: 1, column: 0 }\n })\n }\n\n if (this.isSourcesContent()) this.setSourcesContent()\n if (this.root && this.previous().length > 0) this.applyPrevMaps()\n if (this.isAnnotation()) this.addAnnotation()\n\n if (this.isInline()) {\n return [this.css]\n } else {\n return [this.css, this.map]\n }\n }\n\n path(file) {\n if (file.indexOf('<') === 0) return file\n if (/^\\w+:\\/\\//.test(file)) return file\n if (this.mapOpts.absolute) return file\n\n let from = this.opts.to ? dirname(this.opts.to) : '.'\n\n if (typeof this.mapOpts.annotation === 'string') {\n from = dirname(resolve(from, this.mapOpts.annotation))\n }\n\n file = relative(from, file)\n return file\n }\n\n toUrl(path) {\n if (sep === '\\\\') {\n path = path.replace(/\\\\/g, '/')\n }\n return encodeURI(path).replace(/[#?]/g, encodeURIComponent)\n }\n\n toFileUrl(path) {\n if (pathToFileURL) {\n return pathToFileURL(path).toString()\n } else {\n throw new Error(\n '`map.absolute` option is not available in this PostCSS build'\n )\n }\n }\n\n sourcePath(node) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from)\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node.source.input.from)\n } else {\n return this.toUrl(this.path(node.source.input.from))\n }\n }\n\n generateString() {\n this.css = ''\n this.map = new SourceMapGenerator({ file: this.outputFile() })\n\n let line = 1\n let column = 1\n\n let noSource = ''\n let mapping = {\n source: '',\n generated: { line: 0, column: 0 },\n original: { line: 0, column: 0 }\n }\n\n let lines, last\n this.stringify(this.root, (str, node, type) => {\n this.css += str\n\n if (node && type !== 'end') {\n mapping.generated.line = line\n mapping.generated.column = column - 1\n if (node.source && node.source.start) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.start.line\n mapping.original.column = node.source.start.column - 1\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n this.map.addMapping(mapping)\n }\n }\n\n lines = str.match(/\\n/g)\n if (lines) {\n line += lines.length\n last = str.lastIndexOf('\\n')\n column = str.length - last\n } else {\n column += str.length\n }\n\n if (node && type !== 'start') {\n let p = node.parent || { raws: {} }\n let childless =\n node.type === 'decl' || (node.type === 'atrule' && !node.nodes)\n if (!childless || node !== p.last || p.raws.semicolon) {\n if (node.source && node.source.end) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.end.line\n mapping.original.column = node.source.end.column - 1\n mapping.generated.line = line\n mapping.generated.column = column - 2\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n mapping.generated.line = line\n mapping.generated.column = column - 1\n this.map.addMapping(mapping)\n }\n }\n }\n })\n }\n\n generate() {\n this.clearAnnotation()\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap()\n } else {\n let result = ''\n this.stringify(this.root, i => {\n result += i\n })\n return [result]\n }\n }\n}\n\nmodule.exports = MapGenerator\n","'use strict'\n\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet warnOnce = require('./warn-once')\nlet parse = require('./parse')\nconst Result = require('./result')\n\nclass NoWorkResult {\n constructor(processor, css, opts) {\n css = css.toString()\n this.stringified = false\n\n this._processor = processor\n this._css = css\n this._opts = opts\n this._map = undefined\n let root\n\n let str = stringify\n this.result = new Result(this._processor, root, this._opts)\n this.result.css = css\n\n let self = this\n Object.defineProperty(this.result, 'root', {\n get() {\n return self.root\n }\n })\n\n let map = new MapGenerator(str, root, this._opts, css)\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate()\n if (generatedCSS) {\n this.result.css = generatedCSS\n }\n if (generatedMap) {\n this.result.map = generatedMap\n }\n }\n }\n\n get [Symbol.toStringTag]() {\n return 'NoWorkResult'\n }\n\n get processor() {\n return this.result.processor\n }\n\n get opts() {\n return this.result.opts\n }\n\n get css() {\n return this.result.css\n }\n\n get content() {\n return this.result.css\n }\n\n get map() {\n return this.result.map\n }\n\n get root() {\n if (this._root) {\n return this._root\n }\n\n let root\n let parser = parse\n\n try {\n root = parser(this._css, this._opts)\n } catch (error) {\n this.error = error\n }\n\n if (this.error) {\n throw this.error\n } else {\n this._root = root\n return root\n }\n }\n\n get messages() {\n return []\n }\n\n warnings() {\n return []\n }\n\n toString() {\n return this._css\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this._opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n\n return this.async().then(onFulfilled, onRejected)\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n return Promise.resolve(this.result)\n }\n\n sync() {\n if (this.error) throw this.error\n return this.result\n }\n}\n\nmodule.exports = NoWorkResult\nNoWorkResult.default = NoWorkResult\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet CssSyntaxError = require('./css-syntax-error')\nlet Stringifier = require('./stringifier')\nlet stringify = require('./stringify')\n\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor()\n\n for (let i in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n /* c8 ignore next 2 */\n continue\n }\n if (i === 'proxyCache') continue\n let value = obj[i]\n let type = typeof value\n\n if (i === 'parent' && type === 'object') {\n if (parent) cloned[i] = parent\n } else if (i === 'source') {\n cloned[i] = value\n } else if (Array.isArray(value)) {\n cloned[i] = value.map(j => cloneNode(j, cloned))\n } else {\n if (type === 'object' && value !== null) value = cloneNode(value)\n cloned[i] = value\n }\n }\n\n return cloned\n}\n\nclass Node {\n constructor(defaults = {}) {\n this.raws = {}\n this[isClean] = false\n this[my] = true\n\n for (let name in defaults) {\n if (name === 'nodes') {\n this.nodes = []\n for (let node of defaults[name]) {\n if (typeof node.clone === 'function') {\n this.append(node.clone())\n } else {\n this.append(node)\n }\n }\n } else {\n this[name] = defaults[name]\n }\n }\n }\n\n error(message, opts = {}) {\n if (this.source) {\n let { start, end } = this.rangeBy(opts)\n return this.source.input.error(\n message,\n { line: start.line, column: start.column },\n { line: end.line, column: end.column },\n opts\n )\n }\n return new CssSyntaxError(message)\n }\n\n warn(result, text, opts) {\n let data = { node: this }\n for (let i in opts) data[i] = opts[i]\n return result.warn(text, data)\n }\n\n remove() {\n if (this.parent) {\n this.parent.removeChild(this)\n }\n this.parent = undefined\n return this\n }\n\n toString(stringifier = stringify) {\n if (stringifier.stringify) stringifier = stringifier.stringify\n let result = ''\n stringifier(this, i => {\n result += i\n })\n return result\n }\n\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name]\n }\n return this\n }\n\n clone(overrides = {}) {\n let cloned = cloneNode(this)\n for (let name in overrides) {\n cloned[name] = overrides[name]\n }\n return cloned\n }\n\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertBefore(this, cloned)\n return cloned\n }\n\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertAfter(this, cloned)\n return cloned\n }\n\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this\n let foundSelf = false\n for (let node of nodes) {\n if (node === this) {\n foundSelf = true\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node)\n bookmark = node\n } else {\n this.parent.insertBefore(bookmark, node)\n }\n }\n\n if (!foundSelf) {\n this.remove()\n }\n }\n\n return this\n }\n\n next() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index + 1]\n }\n\n prev() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index - 1]\n }\n\n before(add) {\n this.parent.insertBefore(this, add)\n return this\n }\n\n after(add) {\n this.parent.insertAfter(this, add)\n return this\n }\n\n root() {\n let result = this\n while (result.parent && result.parent.type !== 'document') {\n result = result.parent\n }\n return result\n }\n\n raw(prop, defaultType) {\n let str = new Stringifier()\n return str.raw(this, prop, defaultType)\n }\n\n cleanRaws(keepBetween) {\n delete this.raws.before\n delete this.raws.after\n if (!keepBetween) delete this.raws.between\n }\n\n toJSON(_, inputs) {\n let fixed = {}\n let emitInputs = inputs == null\n inputs = inputs || new Map()\n let inputsNextIndex = 0\n\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n /* c8 ignore next 2 */\n continue\n }\n if (name === 'parent' || name === 'proxyCache') continue\n let value = this[name]\n\n if (Array.isArray(value)) {\n fixed[name] = value.map(i => {\n if (typeof i === 'object' && i.toJSON) {\n return i.toJSON(null, inputs)\n } else {\n return i\n }\n })\n } else if (typeof value === 'object' && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs)\n } else if (name === 'source') {\n let inputId = inputs.get(value.input)\n if (inputId == null) {\n inputId = inputsNextIndex\n inputs.set(value.input, inputsNextIndex)\n inputsNextIndex++\n }\n fixed[name] = {\n inputId,\n start: value.start,\n end: value.end\n }\n } else {\n fixed[name] = value\n }\n }\n\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map(input => input.toJSON())\n }\n\n return fixed\n }\n\n positionInside(index) {\n let string = this.toString()\n let column = this.source.start.column\n let line = this.source.start.line\n\n for (let i = 0; i < index; i++) {\n if (string[i] === '\\n') {\n column = 1\n line += 1\n } else {\n column += 1\n }\n }\n\n return { line, column }\n }\n\n positionBy(opts) {\n let pos = this.source.start\n if (opts.index) {\n pos = this.positionInside(opts.index)\n } else if (opts.word) {\n let index = this.toString().indexOf(opts.word)\n if (index !== -1) pos = this.positionInside(index)\n }\n return pos\n }\n\n rangeBy(opts) {\n let start = {\n line: this.source.start.line,\n column: this.source.start.column\n }\n let end = this.source.end\n ? {\n line: this.source.end.line,\n column: this.source.end.column + 1\n }\n : {\n line: start.line,\n column: start.column + 1\n }\n\n if (opts.word) {\n let index = this.toString().indexOf(opts.word)\n if (index !== -1) {\n start = this.positionInside(index)\n end = this.positionInside(index + opts.word.length)\n }\n } else {\n if (opts.start) {\n start = {\n line: opts.start.line,\n column: opts.start.column\n }\n } else if (opts.index) {\n start = this.positionInside(opts.index)\n }\n\n if (opts.end) {\n end = {\n line: opts.end.line,\n column: opts.end.column\n }\n } else if (opts.endIndex) {\n end = this.positionInside(opts.endIndex)\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1)\n }\n }\n\n if (\n end.line < start.line ||\n (end.line === start.line && end.column <= start.column)\n ) {\n end = { line: start.line, column: start.column + 1 }\n }\n\n return { start, end }\n }\n\n getProxyProcessor() {\n return {\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (\n prop === 'prop' ||\n prop === 'value' ||\n prop === 'name' ||\n prop === 'params' ||\n prop === 'important' ||\n /* c8 ignore next */\n prop === 'text'\n ) {\n node.markDirty()\n }\n return true\n },\n\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else {\n return node[prop]\n }\n }\n }\n }\n\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor())\n }\n return this.proxyCache\n }\n\n addToError(error) {\n error.postcssNode = this\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s = this.source\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s.input.from}:${s.start.line}:${s.start.column}$&`\n )\n }\n return error\n }\n\n markDirty() {\n if (this[isClean]) {\n this[isClean] = false\n let next = this\n while ((next = next.parent)) {\n next[isClean] = false\n }\n }\n }\n\n get proxyOf() {\n return this\n }\n}\n\nmodule.exports = Node\nNode.default = Node\n","'use strict'\n\nlet Container = require('./container')\nlet Parser = require('./parser')\nlet Input = require('./input')\n\nfunction parse(css, opts) {\n let input = new Input(css, opts)\n let parser = new Parser(input)\n try {\n parser.parse()\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n if (e.name === 'CssSyntaxError' && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse SCSS with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-scss parser'\n } else if (/\\.sass/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Sass with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-sass parser'\n } else if (/\\.less$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Less with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-less parser'\n }\n }\n }\n throw e\n }\n\n return parser.root\n}\n\nmodule.exports = parse\nparse.default = parse\n\nContainer.registerParse(parse)\n","'use strict'\n\nlet Declaration = require('./declaration')\nlet tokenizer = require('./tokenize')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nconst SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n}\n\nfunction findLastWithPosition(tokens) {\n for (let i = tokens.length - 1; i >= 0; i--) {\n let token = tokens[i]\n let pos = token[3] || token[2]\n if (pos) return pos\n }\n}\n\nclass Parser {\n constructor(input) {\n this.input = input\n\n this.root = new Root()\n this.current = this.root\n this.spaces = ''\n this.semicolon = false\n this.customProperty = false\n\n this.createTokenizer()\n this.root.source = { input, start: { offset: 0, line: 1, column: 1 } }\n }\n\n createTokenizer() {\n this.tokenizer = tokenizer(this.input)\n }\n\n parse() {\n let token\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n\n switch (token[0]) {\n case 'space':\n this.spaces += token[1]\n break\n\n case ';':\n this.freeSemicolon(token)\n break\n\n case '}':\n this.end(token)\n break\n\n case 'comment':\n this.comment(token)\n break\n\n case 'at-word':\n this.atrule(token)\n break\n\n case '{':\n this.emptyRule(token)\n break\n\n default:\n this.other(token)\n break\n }\n }\n this.endFile()\n }\n\n comment(token) {\n let node = new Comment()\n this.init(node, token[2])\n node.source.end = this.getPosition(token[3] || token[2])\n\n let text = token[1].slice(2, -2)\n if (/^\\s*$/.test(text)) {\n node.text = ''\n node.raws.left = text\n node.raws.right = ''\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/)\n node.text = match[2]\n node.raws.left = match[1]\n node.raws.right = match[3]\n }\n }\n\n emptyRule(token) {\n let node = new Rule()\n this.init(node, token[2])\n node.selector = ''\n node.raws.between = ''\n this.current = node\n }\n\n other(start) {\n let end = false\n let type = null\n let colon = false\n let bracket = null\n let brackets = []\n let customProperty = start[1].startsWith('--')\n\n let tokens = []\n let token = start\n while (token) {\n type = token[0]\n tokens.push(token)\n\n if (type === '(' || type === '[') {\n if (!bracket) bracket = token\n brackets.push(type === '(' ? ')' : ']')\n } else if (customProperty && colon && type === '{') {\n if (!bracket) bracket = token\n brackets.push('}')\n } else if (brackets.length === 0) {\n if (type === ';') {\n if (colon) {\n this.decl(tokens, customProperty)\n return\n } else {\n break\n }\n } else if (type === '{') {\n this.rule(tokens)\n return\n } else if (type === '}') {\n this.tokenizer.back(tokens.pop())\n end = true\n break\n } else if (type === ':') {\n colon = true\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n if (brackets.length === 0) bracket = null\n }\n\n token = this.tokenizer.nextToken()\n }\n\n if (this.tokenizer.endOfFile()) end = true\n if (brackets.length > 0) this.unclosedBracket(bracket)\n\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0]\n if (token !== 'space' && token !== 'comment') break\n this.tokenizer.back(tokens.pop())\n }\n }\n this.decl(tokens, customProperty)\n } else {\n this.unknownWord(tokens)\n }\n }\n\n rule(tokens) {\n tokens.pop()\n\n let node = new Rule()\n this.init(node, tokens[0][2])\n\n node.raws.between = this.spacesAndCommentsFromEnd(tokens)\n this.raw(node, 'selector', tokens)\n this.current = node\n }\n\n decl(tokens, customProperty) {\n let node = new Declaration()\n this.init(node, tokens[0][2])\n\n let last = tokens[tokens.length - 1]\n if (last[0] === ';') {\n this.semicolon = true\n tokens.pop()\n }\n\n node.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n )\n\n while (tokens[0][0] !== 'word') {\n if (tokens.length === 1) this.unknownWord(tokens)\n node.raws.before += tokens.shift()[1]\n }\n node.source.start = this.getPosition(tokens[0][2])\n\n node.prop = ''\n while (tokens.length) {\n let type = tokens[0][0]\n if (type === ':' || type === 'space' || type === 'comment') {\n break\n }\n node.prop += tokens.shift()[1]\n }\n\n node.raws.between = ''\n\n let token\n while (tokens.length) {\n token = tokens.shift()\n\n if (token[0] === ':') {\n node.raws.between += token[1]\n break\n } else {\n if (token[0] === 'word' && /\\w/.test(token[1])) {\n this.unknownWord([token])\n }\n node.raws.between += token[1]\n }\n }\n\n if (node.prop[0] === '_' || node.prop[0] === '*') {\n node.raws.before += node.prop[0]\n node.prop = node.prop.slice(1)\n }\n\n let firstSpaces = []\n let next\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n firstSpaces.push(tokens.shift())\n }\n\n this.precheckMissedSemicolon(tokens)\n\n for (let i = tokens.length - 1; i >= 0; i--) {\n token = tokens[i]\n if (token[1].toLowerCase() === '!important') {\n node.important = true\n let string = this.stringFrom(tokens, i)\n string = this.spacesFromEnd(tokens) + string\n if (string !== ' !important') node.raws.important = string\n break\n } else if (token[1].toLowerCase() === 'important') {\n let cache = tokens.slice(0)\n let str = ''\n for (let j = i; j > 0; j--) {\n let type = cache[j][0]\n if (str.trim().indexOf('!') === 0 && type !== 'space') {\n break\n }\n str = cache.pop()[1] + str\n }\n if (str.trim().indexOf('!') === 0) {\n node.important = true\n node.raws.important = str\n tokens = cache\n }\n }\n\n if (token[0] !== 'space' && token[0] !== 'comment') {\n break\n }\n }\n\n let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment')\n\n if (hasWord) {\n node.raws.between += firstSpaces.map(i => i[1]).join('')\n firstSpaces = []\n }\n this.raw(node, 'value', firstSpaces.concat(tokens), customProperty)\n\n if (node.value.includes(':') && !customProperty) {\n this.checkMissedSemicolon(tokens)\n }\n }\n\n atrule(token) {\n let node = new AtRule()\n node.name = token[1].slice(1)\n if (node.name === '') {\n this.unnamedAtrule(node, token)\n }\n this.init(node, token[2])\n\n let type\n let prev\n let shift\n let last = false\n let open = false\n let params = []\n let brackets = []\n\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n type = token[0]\n\n if (type === '(' || type === '[') {\n brackets.push(type === '(' ? ')' : ']')\n } else if (type === '{' && brackets.length > 0) {\n brackets.push('}')\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n }\n\n if (brackets.length === 0) {\n if (type === ';') {\n node.source.end = this.getPosition(token[2])\n this.semicolon = true\n break\n } else if (type === '{') {\n open = true\n break\n } else if (type === '}') {\n if (params.length > 0) {\n shift = params.length - 1\n prev = params[shift]\n while (prev && prev[0] === 'space') {\n prev = params[--shift]\n }\n if (prev) {\n node.source.end = this.getPosition(prev[3] || prev[2])\n }\n }\n this.end(token)\n break\n } else {\n params.push(token)\n }\n } else {\n params.push(token)\n }\n\n if (this.tokenizer.endOfFile()) {\n last = true\n break\n }\n }\n\n node.raws.between = this.spacesAndCommentsFromEnd(params)\n if (params.length) {\n node.raws.afterName = this.spacesAndCommentsFromStart(params)\n this.raw(node, 'params', params)\n if (last) {\n token = params[params.length - 1]\n node.source.end = this.getPosition(token[3] || token[2])\n this.spaces = node.raws.between\n node.raws.between = ''\n }\n } else {\n node.raws.afterName = ''\n node.params = ''\n }\n\n if (open) {\n node.nodes = []\n this.current = node\n }\n }\n\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.semicolon = false\n\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.spaces = ''\n\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2])\n this.current = this.current.parent\n } else {\n this.unexpectedClose(token)\n }\n }\n\n endFile() {\n if (this.current.parent) this.unclosedBlock()\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n }\n\n freeSemicolon(token) {\n this.spaces += token[1]\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1]\n if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces\n this.spaces = ''\n }\n }\n }\n\n // Helpers\n\n getPosition(offset) {\n let pos = this.input.fromOffset(offset)\n return {\n offset,\n line: pos.line,\n column: pos.col\n }\n }\n\n init(node, offset) {\n this.current.push(node)\n node.source = {\n start: this.getPosition(offset),\n input: this.input\n }\n node.raws.before = this.spaces\n this.spaces = ''\n if (node.type !== 'comment') this.semicolon = false\n }\n\n raw(node, prop, tokens, customProperty) {\n let token, type\n let length = tokens.length\n let value = ''\n let clean = true\n let next, prev\n\n for (let i = 0; i < length; i += 1) {\n token = tokens[i]\n type = token[0]\n if (type === 'space' && i === length - 1 && !customProperty) {\n clean = false\n } else if (type === 'comment') {\n prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty'\n next = tokens[i + 1] ? tokens[i + 1][0] : 'empty'\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === ',') {\n clean = false\n } else {\n value += token[1]\n }\n } else {\n clean = false\n }\n } else {\n value += token[1]\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i) => all + i[1], '')\n node.raws[prop] = { value, raw }\n }\n node[prop] = value\n }\n\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space' && lastTokenType !== 'comment') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n spacesAndCommentsFromStart(tokens) {\n let next\n let spaces = ''\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n spaces += tokens.shift()[1]\n }\n return spaces\n }\n\n spacesFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n stringFrom(tokens, from) {\n let result = ''\n for (let i = from; i < tokens.length; i++) {\n result += tokens[i][1]\n }\n tokens.splice(from, tokens.length - from)\n return result\n }\n\n colon(tokens) {\n let brackets = 0\n let token, type, prev\n for (let [i, element] of tokens.entries()) {\n token = element\n type = token[0]\n\n if (type === '(') {\n brackets += 1\n }\n if (type === ')') {\n brackets -= 1\n }\n if (brackets === 0 && type === ':') {\n if (!prev) {\n this.doubleColon(token)\n } else if (prev[0] === 'word' && prev[1] === 'progid') {\n continue\n } else {\n return i\n }\n }\n\n prev = token\n }\n return false\n }\n\n // Errors\n\n unclosedBracket(bracket) {\n throw this.input.error(\n 'Unclosed bracket',\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n )\n }\n\n unknownWord(tokens) {\n throw this.input.error(\n 'Unknown word',\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n )\n }\n\n unexpectedClose(token) {\n throw this.input.error(\n 'Unexpected }',\n { offset: token[2] },\n { offset: token[2] + 1 }\n )\n }\n\n unclosedBlock() {\n let pos = this.current.source.start\n throw this.input.error('Unclosed block', pos.line, pos.column)\n }\n\n doubleColon(token) {\n throw this.input.error(\n 'Double colon',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n\n unnamedAtrule(node, token) {\n throw this.input.error(\n 'At-rule without name',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n\n precheckMissedSemicolon(/* tokens */) {\n // Hook for Safe Parser\n }\n\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens)\n if (colon === false) return\n\n let founded = 0\n let token\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j]\n if (token[0] !== 'space') {\n founded += 1\n if (founded === 2) break\n }\n }\n // If the token is a word, e.g. `!important`, `red` or any other valid property's value.\n // Then we need to return the colon after that word token. [3] is the \"end\" colon of that word.\n // And because we need it after that one we do +1 to get the next one.\n throw this.input.error(\n 'Missed semicolon',\n token[0] === 'word' ? token[3] + 1 : token[2]\n )\n }\n}\n\nmodule.exports = Parser\n","'use strict'\n\nlet CssSyntaxError = require('./css-syntax-error')\nlet Declaration = require('./declaration')\nlet LazyResult = require('./lazy-result')\nlet Container = require('./container')\nlet Processor = require('./processor')\nlet stringify = require('./stringify')\nlet fromJSON = require('./fromJSON')\nlet Document = require('./document')\nlet Warning = require('./warning')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Result = require('./result.js')\nlet Input = require('./input')\nlet parse = require('./parse')\nlet list = require('./list')\nlet Rule = require('./rule')\nlet Root = require('./root')\nlet Node = require('./node')\n\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0]\n }\n return new Processor(plugins)\n}\n\npostcss.plugin = function plugin(name, initializer) {\n let warningPrinted = false\n function creator(...args) {\n // eslint-disable-next-line no-console\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': postcss.plugin was deprecated. Migration guide:\\n' +\n 'https://evilmartians.com/chronicles/postcss-8-plugin-migration'\n )\n if (process.env.LANG && process.env.LANG.startsWith('cn')) {\n /* c8 ignore next 7 */\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': 里面 postcss.plugin 被弃用. 迁移指南:\\n' +\n 'https://www.w3ctech.com/topic/2226'\n )\n }\n }\n let transformer = initializer(...args)\n transformer.postcssPlugin = name\n transformer.postcssVersion = new Processor().version\n return transformer\n }\n\n let cache\n Object.defineProperty(creator, 'postcss', {\n get() {\n if (!cache) cache = creator()\n return cache\n }\n })\n\n creator.process = function (css, processOpts, pluginOpts) {\n return postcss([creator(pluginOpts)]).process(css, processOpts)\n }\n\n return creator\n}\n\npostcss.stringify = stringify\npostcss.parse = parse\npostcss.fromJSON = fromJSON\npostcss.list = list\n\npostcss.comment = defaults => new Comment(defaults)\npostcss.atRule = defaults => new AtRule(defaults)\npostcss.decl = defaults => new Declaration(defaults)\npostcss.rule = defaults => new Rule(defaults)\npostcss.root = defaults => new Root(defaults)\npostcss.document = defaults => new Document(defaults)\n\npostcss.CssSyntaxError = CssSyntaxError\npostcss.Declaration = Declaration\npostcss.Container = Container\npostcss.Processor = Processor\npostcss.Document = Document\npostcss.Comment = Comment\npostcss.Warning = Warning\npostcss.AtRule = AtRule\npostcss.Result = Result\npostcss.Input = Input\npostcss.Rule = Rule\npostcss.Root = Root\npostcss.Node = Node\n\nLazyResult.registerPostcss(postcss)\n\nmodule.exports = postcss\npostcss.default = postcss\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { existsSync, readFileSync } = require('fs')\nlet { dirname, join } = require('path')\n\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, 'base64').toString()\n } else {\n /* c8 ignore next 2 */\n return window.atob(str)\n }\n}\n\nclass PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return\n this.loadAnnotation(css)\n this.inline = this.startWith(this.annotation, 'data:')\n\n let prev = opts.map ? opts.map.prev : undefined\n let text = this.loadMap(opts.from, prev)\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from\n }\n if (this.mapFile) this.root = dirname(this.mapFile)\n if (text) this.text = text\n }\n\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer(this.text)\n }\n return this.consumerCache\n }\n\n withContent() {\n return !!(\n this.consumer().sourcesContent &&\n this.consumer().sourcesContent.length > 0\n )\n }\n\n startWith(string, start) {\n if (!string) return false\n return string.substr(0, start.length) === start\n }\n\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, '').trim()\n }\n\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm)\n if (!comments) return\n\n // sourceMappingURLs from comments, strings, etc.\n let start = css.lastIndexOf(comments.pop())\n let end = css.indexOf('*/', start)\n\n if (start > -1 && end > -1) {\n // Locate the last sourceMappingURL to avoid pickin\n this.annotation = this.getAnnotationURL(css.substring(start, end))\n }\n }\n\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/\n let baseUri = /^data:application\\/json;base64,/\n let charsetUri = /^data:application\\/json;charset=utf-?8,/\n let uri = /^data:application\\/json,/\n\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length))\n }\n\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64(text.substr(RegExp.lastMatch.length))\n }\n\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1]\n throw new Error('Unsupported source map encoding ' + encoding)\n }\n\n loadFile(path) {\n this.root = dirname(path)\n if (existsSync(path)) {\n this.mapFile = path\n return readFileSync(path, 'utf-8').toString().trim()\n }\n }\n\n loadMap(file, prev) {\n if (prev === false) return false\n\n if (prev) {\n if (typeof prev === 'string') {\n return prev\n } else if (typeof prev === 'function') {\n let prevPath = prev(file)\n if (prevPath) {\n let map = this.loadFile(prevPath)\n if (!map) {\n throw new Error(\n 'Unable to load previous source map: ' + prevPath.toString()\n )\n }\n return map\n }\n } else if (prev instanceof SourceMapConsumer) {\n return SourceMapGenerator.fromSourceMap(prev).toString()\n } else if (prev instanceof SourceMapGenerator) {\n return prev.toString()\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev)\n } else {\n throw new Error(\n 'Unsupported previous source map format: ' + prev.toString()\n )\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation)\n } else if (this.annotation) {\n let map = this.annotation\n if (file) map = join(dirname(file), map)\n return this.loadFile(map)\n }\n }\n\n isMap(map) {\n if (typeof map !== 'object') return false\n return (\n typeof map.mappings === 'string' ||\n typeof map._mappings === 'string' ||\n Array.isArray(map.sections)\n )\n }\n}\n\nmodule.exports = PreviousMap\nPreviousMap.default = PreviousMap\n","'use strict'\n\nlet NoWorkResult = require('./no-work-result')\nlet LazyResult = require('./lazy-result')\nlet Document = require('./document')\nlet Root = require('./root')\n\nclass Processor {\n constructor(plugins = []) {\n this.version = '8.4.20'\n this.plugins = this.normalize(plugins)\n }\n\n use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]))\n return this\n }\n\n process(css, opts = {}) {\n if (\n this.plugins.length === 0 &&\n typeof opts.parser === 'undefined' &&\n typeof opts.stringifier === 'undefined' &&\n typeof opts.syntax === 'undefined'\n ) {\n return new NoWorkResult(this, css, opts)\n } else {\n return new LazyResult(this, css, opts)\n }\n }\n\n normalize(plugins) {\n let normalized = []\n for (let i of plugins) {\n if (i.postcss === true) {\n i = i()\n } else if (i.postcss) {\n i = i.postcss\n }\n\n if (typeof i === 'object' && Array.isArray(i.plugins)) {\n normalized = normalized.concat(i.plugins)\n } else if (typeof i === 'object' && i.postcssPlugin) {\n normalized.push(i)\n } else if (typeof i === 'function') {\n normalized.push(i)\n } else if (typeof i === 'object' && (i.parse || i.stringify)) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n 'PostCSS syntaxes cannot be used as plugins. Instead, please use ' +\n 'one of the syntax/parser/stringifier options as outlined ' +\n 'in your PostCSS runner documentation.'\n )\n }\n } else {\n throw new Error(i + ' is not a PostCSS plugin')\n }\n }\n return normalized\n }\n}\n\nmodule.exports = Processor\nProcessor.default = Processor\n\nRoot.registerProcessor(Processor)\nDocument.registerProcessor(Processor)\n","'use strict'\n\nlet Warning = require('./warning')\n\nclass Result {\n constructor(processor, root, opts) {\n this.processor = processor\n this.messages = []\n this.root = root\n this.opts = opts\n this.css = undefined\n this.map = undefined\n }\n\n toString() {\n return this.css\n }\n\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin\n }\n }\n\n let warning = new Warning(text, opts)\n this.messages.push(warning)\n\n return warning\n }\n\n warnings() {\n return this.messages.filter(i => i.type === 'warning')\n }\n\n get content() {\n return this.css\n }\n}\n\nmodule.exports = Result\nResult.default = Result\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Root extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'root'\n if (!this.nodes) this.nodes = []\n }\n\n removeChild(child, ignore) {\n let index = this.index(child)\n\n if (!ignore && index === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index].raws.before\n }\n\n return super.removeChild(child)\n }\n\n normalize(child, sample, type) {\n let nodes = super.normalize(child)\n\n if (sample) {\n if (type === 'prepend') {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before\n } else {\n delete sample.raws.before\n }\n } else if (this.first !== sample) {\n for (let node of nodes) {\n node.raws.before = sample.raws.before\n }\n }\n }\n\n return nodes\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n return lazy.stringify()\n }\n}\n\nRoot.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nRoot.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Root\nRoot.default = Root\n\nContainer.registerRoot(Root)\n","'use strict'\n\nlet Container = require('./container')\nlet list = require('./list')\n\nclass Rule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'rule'\n if (!this.nodes) this.nodes = []\n }\n\n get selectors() {\n return list.comma(this.selector)\n }\n\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null\n let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen')\n this.selector = values.join(sep)\n }\n}\n\nmodule.exports = Rule\nRule.default = Rule\n\nContainer.registerRule(Rule)\n","'use strict'\n\nconst DEFAULT_RAW = {\n colon: ': ',\n indent: ' ',\n beforeDecl: '\\n',\n beforeRule: '\\n',\n beforeOpen: ' ',\n beforeClose: '\\n',\n beforeComment: '\\n',\n after: '\\n',\n emptyBody: '',\n commentLeft: ' ',\n commentRight: ' ',\n semicolon: false\n}\n\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1)\n}\n\nclass Stringifier {\n constructor(builder) {\n this.builder = builder\n }\n\n stringify(node, semicolon) {\n /* c8 ignore start */\n if (!this[node.type]) {\n throw new Error(\n 'Unknown AST node type ' +\n node.type +\n '. ' +\n 'Maybe you need to change PostCSS stringifier.'\n )\n }\n /* c8 ignore stop */\n this[node.type](node, semicolon)\n }\n\n document(node) {\n this.body(node)\n }\n\n root(node) {\n this.body(node)\n if (node.raws.after) this.builder(node.raws.after)\n }\n\n comment(node) {\n let left = this.raw(node, 'left', 'commentLeft')\n let right = this.raw(node, 'right', 'commentRight')\n this.builder('/*' + left + node.text + right + '*/', node)\n }\n\n decl(node, semicolon) {\n let between = this.raw(node, 'between', 'colon')\n let string = node.prop + between + this.rawValue(node, 'value')\n\n if (node.important) {\n string += node.raws.important || ' !important'\n }\n\n if (semicolon) string += ';'\n this.builder(string, node)\n }\n\n rule(node) {\n this.block(node, this.rawValue(node, 'selector'))\n if (node.raws.ownSemicolon) {\n this.builder(node.raws.ownSemicolon, node, 'end')\n }\n }\n\n atrule(node, semicolon) {\n let name = '@' + node.name\n let params = node.params ? this.rawValue(node, 'params') : ''\n\n if (typeof node.raws.afterName !== 'undefined') {\n name += node.raws.afterName\n } else if (params) {\n name += ' '\n }\n\n if (node.nodes) {\n this.block(node, name + params)\n } else {\n let end = (node.raws.between || '') + (semicolon ? ';' : '')\n this.builder(name + params + end, node)\n }\n }\n\n body(node) {\n let last = node.nodes.length - 1\n while (last > 0) {\n if (node.nodes[last].type !== 'comment') break\n last -= 1\n }\n\n let semicolon = this.raw(node, 'semicolon')\n for (let i = 0; i < node.nodes.length; i++) {\n let child = node.nodes[i]\n let before = this.raw(child, 'before')\n if (before) this.builder(before)\n this.stringify(child, last !== i || semicolon)\n }\n }\n\n block(node, start) {\n let between = this.raw(node, 'between', 'beforeOpen')\n this.builder(start + between + '{', node, 'start')\n\n let after\n if (node.nodes && node.nodes.length) {\n this.body(node)\n after = this.raw(node, 'after')\n } else {\n after = this.raw(node, 'after', 'emptyBody')\n }\n\n if (after) this.builder(after)\n this.builder('}', node, 'end')\n }\n\n raw(node, own, detect) {\n let value\n if (!detect) detect = own\n\n // Already had\n if (own) {\n value = node.raws[own]\n if (typeof value !== 'undefined') return value\n }\n\n let parent = node.parent\n\n if (detect === 'before') {\n // Hack for first rule in CSS\n if (!parent || (parent.type === 'root' && parent.first === node)) {\n return ''\n }\n\n // `root` nodes in `document` should use only their own raws\n if (parent && parent.type === 'document') {\n return ''\n }\n }\n\n // Floating child without parent\n if (!parent) return DEFAULT_RAW[detect]\n\n // Detect style by other nodes\n let root = node.root()\n if (!root.rawCache) root.rawCache = {}\n if (typeof root.rawCache[detect] !== 'undefined') {\n return root.rawCache[detect]\n }\n\n if (detect === 'before' || detect === 'after') {\n return this.beforeAfter(node, detect)\n } else {\n let method = 'raw' + capitalize(detect)\n if (this[method]) {\n value = this[method](root, node)\n } else {\n root.walk(i => {\n value = i.raws[own]\n if (typeof value !== 'undefined') return false\n })\n }\n }\n\n if (typeof value === 'undefined') value = DEFAULT_RAW[detect]\n\n root.rawCache[detect] = value\n return value\n }\n\n rawSemicolon(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length && i.last.type === 'decl') {\n value = i.raws.semicolon\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawEmptyBody(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length === 0) {\n value = i.raws.after\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawIndent(root) {\n if (root.raws.indent) return root.raws.indent\n let value\n root.walk(i => {\n let p = i.parent\n if (p && p !== root && p.parent && p.parent === root) {\n if (typeof i.raws.before !== 'undefined') {\n let parts = i.raws.before.split('\\n')\n value = parts[parts.length - 1]\n value = value.replace(/\\S/g, '')\n return false\n }\n }\n })\n return value\n }\n\n rawBeforeComment(root, node) {\n let value\n root.walkComments(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeDecl(root, node) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeRule')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeRule(root) {\n let value\n root.walk(i => {\n if (i.nodes && (i.parent !== root || root.first !== i)) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawBeforeClose(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== 'undefined') {\n value = i.raws.after\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawBeforeOpen(root) {\n let value\n root.walk(i => {\n if (i.type !== 'decl') {\n value = i.raws.between\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawColon(root) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.between !== 'undefined') {\n value = i.raws.between.replace(/[^\\s:]/g, '')\n return false\n }\n })\n return value\n }\n\n beforeAfter(node, detect) {\n let value\n if (node.type === 'decl') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (node.type === 'comment') {\n value = this.raw(node, null, 'beforeComment')\n } else if (detect === 'before') {\n value = this.raw(node, null, 'beforeRule')\n } else {\n value = this.raw(node, null, 'beforeClose')\n }\n\n let buf = node.parent\n let depth = 0\n while (buf && buf.type !== 'root') {\n depth += 1\n buf = buf.parent\n }\n\n if (value.includes('\\n')) {\n let indent = this.raw(node, null, 'indent')\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent\n }\n }\n\n return value\n }\n\n rawValue(node, prop) {\n let value = node[prop]\n let raw = node.raws[prop]\n if (raw && raw.value === value) {\n return raw.raw\n }\n\n return value\n }\n}\n\nmodule.exports = Stringifier\nStringifier.default = Stringifier\n","'use strict'\n\nlet Stringifier = require('./stringifier')\n\nfunction stringify(node, builder) {\n let str = new Stringifier(builder)\n str.stringify(node)\n}\n\nmodule.exports = stringify\nstringify.default = stringify\n","'use strict'\n\nmodule.exports.isClean = Symbol('isClean')\n\nmodule.exports.my = Symbol('my')\n","'use strict'\n\nconst SINGLE_QUOTE = \"'\".charCodeAt(0)\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0)\nconst BACKSLASH = '\\\\'.charCodeAt(0)\nconst SLASH = '/'.charCodeAt(0)\nconst NEWLINE = '\\n'.charCodeAt(0)\nconst SPACE = ' '.charCodeAt(0)\nconst FEED = '\\f'.charCodeAt(0)\nconst TAB = '\\t'.charCodeAt(0)\nconst CR = '\\r'.charCodeAt(0)\nconst OPEN_SQUARE = '['.charCodeAt(0)\nconst CLOSE_SQUARE = ']'.charCodeAt(0)\nconst OPEN_PARENTHESES = '('.charCodeAt(0)\nconst CLOSE_PARENTHESES = ')'.charCodeAt(0)\nconst OPEN_CURLY = '{'.charCodeAt(0)\nconst CLOSE_CURLY = '}'.charCodeAt(0)\nconst SEMICOLON = ';'.charCodeAt(0)\nconst ASTERISK = '*'.charCodeAt(0)\nconst COLON = ':'.charCodeAt(0)\nconst AT = '@'.charCodeAt(0)\n\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g\nconst RE_BAD_BRACKET = /.[\\n\"'(/\\\\]/\nconst RE_HEX_ESCAPE = /[\\da-f]/i\n\nmodule.exports = function tokenizer(input, options = {}) {\n let css = input.css.valueOf()\n let ignore = options.ignoreErrors\n\n let code, next, quote, content, escape\n let escaped, escapePos, prev, n, currentToken\n\n let length = css.length\n let pos = 0\n let buffer = []\n let returned = []\n\n function position() {\n return pos\n }\n\n function unclosed(what) {\n throw input.error('Unclosed ' + what, pos)\n }\n\n function endOfFile() {\n return returned.length === 0 && pos >= length\n }\n\n function nextToken(opts) {\n if (returned.length) return returned.pop()\n if (pos >= length) return\n\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false\n\n code = css.charCodeAt(pos)\n\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos\n do {\n next += 1\n code = css.charCodeAt(next)\n } while (\n code === SPACE ||\n code === NEWLINE ||\n code === TAB ||\n code === CR ||\n code === FEED\n )\n\n currentToken = ['space', css.slice(pos, next)]\n pos = next - 1\n break\n }\n\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code)\n currentToken = [controlChar, controlChar, pos]\n break\n }\n\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : ''\n n = css.charCodeAt(pos + 1)\n if (\n prev === 'url' &&\n n !== SINGLE_QUOTE &&\n n !== DOUBLE_QUOTE &&\n n !== SPACE &&\n n !== NEWLINE &&\n n !== TAB &&\n n !== FEED &&\n n !== CR\n ) {\n next = pos\n do {\n escaped = false\n next = css.indexOf(')', next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos\n break\n } else {\n unclosed('bracket')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['brackets', css.slice(pos, next + 1), pos, next]\n\n pos = next\n } else {\n next = css.indexOf(')', pos + 1)\n content = css.slice(pos, next + 1)\n\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = ['(', '(', pos]\n } else {\n currentToken = ['brackets', content, pos, next]\n pos = next\n }\n }\n\n break\n }\n\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"'\n next = pos\n do {\n escaped = false\n next = css.indexOf(quote, next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1\n break\n } else {\n unclosed('string')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['string', css.slice(pos, next + 1), pos, next]\n pos = next\n break\n }\n\n case AT: {\n RE_AT_END.lastIndex = pos + 1\n RE_AT_END.test(css)\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_AT_END.lastIndex - 2\n }\n\n currentToken = ['at-word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n case BACKSLASH: {\n next = pos\n escape = true\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1\n escape = !escape\n }\n code = css.charCodeAt(next + 1)\n if (\n escape &&\n code !== SLASH &&\n code !== SPACE &&\n code !== NEWLINE &&\n code !== TAB &&\n code !== CR &&\n code !== FEED\n ) {\n next += 1\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1\n }\n }\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf('*/', pos + 2) + 1\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length\n } else {\n unclosed('comment')\n }\n }\n\n currentToken = ['comment', css.slice(pos, next + 1), pos, next]\n pos = next\n } else {\n RE_WORD_END.lastIndex = pos + 1\n RE_WORD_END.test(css)\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_WORD_END.lastIndex - 2\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n buffer.push(currentToken)\n pos = next\n }\n\n break\n }\n }\n\n pos++\n return currentToken\n }\n\n function back(token) {\n returned.push(token)\n }\n\n return {\n back,\n nextToken,\n endOfFile,\n position\n }\n}\n","/* eslint-disable no-console */\n'use strict'\n\nlet printed = {}\n\nmodule.exports = function warnOnce(message) {\n if (printed[message]) return\n printed[message] = true\n\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(message)\n }\n}\n","'use strict'\n\nclass Warning {\n constructor(text, opts = {}) {\n this.type = 'warning'\n this.text = text\n\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts)\n this.line = range.start.line\n this.column = range.start.column\n this.endLine = range.end.line\n this.endColumn = range.end.column\n }\n\n for (let opt in opts) this[opt] = opts[opt]\n }\n\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n plugin: this.plugin,\n index: this.index,\n word: this.word\n }).message\n }\n\n if (this.plugin) {\n return this.plugin + ': ' + this.text\n }\n\n return this.text\n }\n}\n\nmodule.exports = Warning\nWarning.default = Warning\n","const htmlparser = require('htmlparser2');\nconst escapeStringRegexp = require('escape-string-regexp');\nconst { isPlainObject } = require('is-plain-object');\nconst deepmerge = require('deepmerge');\nconst parseSrcset = require('parse-srcset');\nconst { parse: postcssParse } = require('postcss');\n// Tags that can conceivably represent stand-alone media.\nconst mediaTags = [\n 'img', 'audio', 'video', 'picture', 'svg',\n 'object', 'map', 'iframe', 'embed'\n];\n// Tags that are inherently vulnerable to being used in XSS attacks.\nconst vulnerableTags = [ 'script', 'style' ];\n\nfunction each(obj, cb) {\n if (obj) {\n Object.keys(obj).forEach(function (key) {\n cb(obj[key], key);\n });\n }\n}\n\n// Avoid false positives with .__proto__, .hasOwnProperty, etc.\nfunction has(obj, key) {\n return ({}).hasOwnProperty.call(obj, key);\n}\n\n// Returns those elements of `a` for which `cb(a)` returns truthy\nfunction filter(a, cb) {\n const n = [];\n each(a, function(v) {\n if (cb(v)) {\n n.push(v);\n }\n });\n return n;\n}\n\nfunction isEmptyObject(obj) {\n for (const key in obj) {\n if (has(obj, key)) {\n return false;\n }\n }\n return true;\n}\n\nfunction stringifySrcset(parsedSrcset) {\n return parsedSrcset.map(function(part) {\n if (!part.url) {\n throw new Error('URL missing');\n }\n\n return (\n part.url +\n (part.w ? ` ${part.w}w` : '') +\n (part.h ? ` ${part.h}h` : '') +\n (part.d ? ` ${part.d}x` : '')\n );\n }).join(', ');\n}\n\nmodule.exports = sanitizeHtml;\n\n// A valid attribute name.\n// We use a tolerant definition based on the set of strings defined by\n// html.spec.whatwg.org/multipage/parsing.html#before-attribute-name-state\n// and html.spec.whatwg.org/multipage/parsing.html#attribute-name-state .\n// The characters accepted are ones which can be appended to the attribute\n// name buffer without triggering a parse error:\n// * unexpected-equals-sign-before-attribute-name\n// * unexpected-null-character\n// * unexpected-character-in-attribute-name\n// We exclude the empty string because it's impossible to get to the after\n// attribute name state with an empty attribute name buffer.\nconst VALID_HTML_ATTRIBUTE_NAME = /^[^\\0\\t\\n\\f\\r /<=>]+$/;\n\n// Ignore the _recursing flag; it's there for recursive\n// invocation as a guard against this exploit:\n// https://github.com/fb55/htmlparser2/issues/105\n\nfunction sanitizeHtml(html, options, _recursing) {\n if (html == null) {\n return '';\n }\n if (typeof html === 'number') {\n html = html.toString();\n }\n\n let result = '';\n // Used for hot swapping the result variable with an empty string in order to \"capture\" the text written to it.\n let tempResult = '';\n\n function Frame(tag, attribs) {\n const that = this;\n this.tag = tag;\n this.attribs = attribs || {};\n this.tagPosition = result.length;\n this.text = ''; // Node inner text\n this.mediaChildren = [];\n\n this.updateParentNodeText = function() {\n if (stack.length) {\n const parentFrame = stack[stack.length - 1];\n parentFrame.text += that.text;\n }\n };\n\n this.updateParentNodeMediaChildren = function() {\n if (stack.length && mediaTags.includes(this.tag)) {\n const parentFrame = stack[stack.length - 1];\n parentFrame.mediaChildren.push(this.tag);\n }\n };\n }\n\n options = Object.assign({}, sanitizeHtml.defaults, options);\n options.parser = Object.assign({}, htmlParserDefaults, options.parser);\n\n // vulnerableTags\n vulnerableTags.forEach(function (tag) {\n if (\n options.allowedTags !== false && (options.allowedTags || []).indexOf(tag) > -1 &&\n !options.allowVulnerableTags\n ) {\n console.warn(`\\n\\n⚠️ Your \\`allowedTags\\` option includes, \\`${tag}\\`, which is inherently\\nvulnerable to XSS attacks. Please remove it from \\`allowedTags\\`.\\nOr, to disable this warning, add the \\`allowVulnerableTags\\` option\\nand ensure you are accounting for this risk.\\n\\n`);\n }\n });\n\n // Tags that contain something other than HTML, or where discarding\n // the text when the tag is disallowed makes sense for other reasons.\n // If we are not allowing these tags, we should drop their content too.\n // For other tags you would drop the tag but keep its content.\n const nonTextTagsArray = options.nonTextTags || [\n 'script',\n 'style',\n 'textarea',\n 'option'\n ];\n let allowedAttributesMap;\n let allowedAttributesGlobMap;\n if (options.allowedAttributes) {\n allowedAttributesMap = {};\n allowedAttributesGlobMap = {};\n each(options.allowedAttributes, function(attributes, tag) {\n allowedAttributesMap[tag] = [];\n const globRegex = [];\n attributes.forEach(function(obj) {\n if (typeof obj === 'string' && obj.indexOf('*') >= 0) {\n globRegex.push(escapeStringRegexp(obj).replace(/\\\\\\*/g, '.*'));\n } else {\n allowedAttributesMap[tag].push(obj);\n }\n });\n if (globRegex.length) {\n allowedAttributesGlobMap[tag] = new RegExp('^(' + globRegex.join('|') + ')$');\n }\n });\n }\n const allowedClassesMap = {};\n const allowedClassesGlobMap = {};\n const allowedClassesRegexMap = {};\n each(options.allowedClasses, function(classes, tag) {\n // Implicitly allows the class attribute\n if (allowedAttributesMap) {\n if (!has(allowedAttributesMap, tag)) {\n allowedAttributesMap[tag] = [];\n }\n allowedAttributesMap[tag].push('class');\n }\n\n allowedClassesMap[tag] = [];\n allowedClassesRegexMap[tag] = [];\n const globRegex = [];\n classes.forEach(function(obj) {\n if (typeof obj === 'string' && obj.indexOf('*') >= 0) {\n globRegex.push(escapeStringRegexp(obj).replace(/\\\\\\*/g, '.*'));\n } else if (obj instanceof RegExp) {\n allowedClassesRegexMap[tag].push(obj);\n } else {\n allowedClassesMap[tag].push(obj);\n }\n });\n if (globRegex.length) {\n allowedClassesGlobMap[tag] = new RegExp('^(' + globRegex.join('|') + ')$');\n }\n });\n\n const transformTagsMap = {};\n let transformTagsAll;\n each(options.transformTags, function(transform, tag) {\n let transFun;\n if (typeof transform === 'function') {\n transFun = transform;\n } else if (typeof transform === 'string') {\n transFun = sanitizeHtml.simpleTransform(transform);\n }\n if (tag === '*') {\n transformTagsAll = transFun;\n } else {\n transformTagsMap[tag] = transFun;\n }\n });\n\n let depth;\n let stack;\n let skipMap;\n let transformMap;\n let skipText;\n let skipTextDepth;\n let addedText = false;\n\n initializeState();\n\n const parser = new htmlparser.Parser({\n onopentag: function(name, attribs) {\n // If `enforceHtmlBoundary` is `true` and this has found the opening\n // `html` tag, reset the state.\n if (options.enforceHtmlBoundary && name === 'html') {\n initializeState();\n }\n\n if (skipText) {\n skipTextDepth++;\n return;\n }\n const frame = new Frame(name, attribs);\n stack.push(frame);\n\n let skip = false;\n const hasText = !!frame.text;\n let transformedTag;\n if (has(transformTagsMap, name)) {\n transformedTag = transformTagsMap[name](name, attribs);\n\n frame.attribs = attribs = transformedTag.attribs;\n\n if (transformedTag.text !== undefined) {\n frame.innerText = transformedTag.text;\n }\n\n if (name !== transformedTag.tagName) {\n frame.name = name = transformedTag.tagName;\n transformMap[depth] = transformedTag.tagName;\n }\n }\n if (transformTagsAll) {\n transformedTag = transformTagsAll(name, attribs);\n\n frame.attribs = attribs = transformedTag.attribs;\n if (name !== transformedTag.tagName) {\n frame.name = name = transformedTag.tagName;\n transformMap[depth] = transformedTag.tagName;\n }\n }\n\n if ((options.allowedTags !== false && (options.allowedTags || []).indexOf(name) === -1) || (options.disallowedTagsMode === 'recursiveEscape' && !isEmptyObject(skipMap)) || (options.nestingLimit != null && depth >= options.nestingLimit)) {\n skip = true;\n skipMap[depth] = true;\n if (options.disallowedTagsMode === 'discard') {\n if (nonTextTagsArray.indexOf(name) !== -1) {\n skipText = true;\n skipTextDepth = 1;\n }\n }\n skipMap[depth] = true;\n }\n depth++;\n if (skip) {\n if (options.disallowedTagsMode === 'discard') {\n // We want the contents but not this tag\n return;\n }\n tempResult = result;\n result = '';\n }\n result += '<' + name;\n\n if (name === 'script') {\n if (options.allowedScriptHostnames || options.allowedScriptDomains) {\n frame.innerText = '';\n }\n }\n\n if (!allowedAttributesMap || has(allowedAttributesMap, name) || allowedAttributesMap['*']) {\n each(attribs, function(value, a) {\n if (!VALID_HTML_ATTRIBUTE_NAME.test(a)) {\n // This prevents part of an attribute name in the output from being\n // interpreted as the end of an attribute, or end of a tag.\n delete frame.attribs[a];\n return;\n }\n // check allowedAttributesMap for the element and attribute and modify the value\n // as necessary if there are specific values defined.\n let passedAllowedAttributesMapCheck = false;\n if (!allowedAttributesMap ||\n (has(allowedAttributesMap, name) && allowedAttributesMap[name].indexOf(a) !== -1) ||\n (allowedAttributesMap['*'] && allowedAttributesMap['*'].indexOf(a) !== -1) ||\n (has(allowedAttributesGlobMap, name) && allowedAttributesGlobMap[name].test(a)) ||\n (allowedAttributesGlobMap['*'] && allowedAttributesGlobMap['*'].test(a))) {\n passedAllowedAttributesMapCheck = true;\n } else if (allowedAttributesMap && allowedAttributesMap[name]) {\n for (const o of allowedAttributesMap[name]) {\n if (isPlainObject(o) && o.name && (o.name === a)) {\n passedAllowedAttributesMapCheck = true;\n let newValue = '';\n if (o.multiple === true) {\n // verify the values that are allowed\n const splitStrArray = value.split(' ');\n for (const s of splitStrArray) {\n if (o.values.indexOf(s) !== -1) {\n if (newValue === '') {\n newValue = s;\n } else {\n newValue += ' ' + s;\n }\n }\n }\n } else if (o.values.indexOf(value) >= 0) {\n // verified an allowed value matches the entire attribute value\n newValue = value;\n }\n value = newValue;\n }\n }\n }\n if (passedAllowedAttributesMapCheck) {\n if (options.allowedSchemesAppliedToAttributes.indexOf(a) !== -1) {\n if (naughtyHref(name, value)) {\n delete frame.attribs[a];\n return;\n }\n }\n\n if (name === 'script' && a === 'src') {\n\n let allowed = true;\n\n try {\n const parsed = parseUrl(value);\n\n if (options.allowedScriptHostnames || options.allowedScriptDomains) {\n const allowedHostname = (options.allowedScriptHostnames || []).find(function (hostname) {\n return hostname === parsed.url.hostname;\n });\n const allowedDomain = (options.allowedScriptDomains || []).find(function(domain) {\n return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);\n });\n allowed = allowedHostname || allowedDomain;\n }\n } catch (e) {\n allowed = false;\n }\n\n if (!allowed) {\n delete frame.attribs[a];\n return;\n }\n }\n\n if (name === 'iframe' && a === 'src') {\n let allowed = true;\n try {\n const parsed = parseUrl(value);\n\n if (parsed.isRelativeUrl) {\n // default value of allowIframeRelativeUrls is true\n // unless allowedIframeHostnames or allowedIframeDomains specified\n allowed = has(options, 'allowIframeRelativeUrls')\n ? options.allowIframeRelativeUrls\n : (!options.allowedIframeHostnames && !options.allowedIframeDomains);\n } else if (options.allowedIframeHostnames || options.allowedIframeDomains) {\n const allowedHostname = (options.allowedIframeHostnames || []).find(function (hostname) {\n return hostname === parsed.url.hostname;\n });\n const allowedDomain = (options.allowedIframeDomains || []).find(function(domain) {\n return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);\n });\n allowed = allowedHostname || allowedDomain;\n }\n } catch (e) {\n // Unparseable iframe src\n allowed = false;\n }\n if (!allowed) {\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'srcset') {\n try {\n let parsed = parseSrcset(value);\n parsed.forEach(function(value) {\n if (naughtyHref('srcset', value.url)) {\n value.evil = true;\n }\n });\n parsed = filter(parsed, function(v) {\n return !v.evil;\n });\n if (!parsed.length) {\n delete frame.attribs[a];\n return;\n } else {\n value = stringifySrcset(filter(parsed, function(v) {\n return !v.evil;\n }));\n frame.attribs[a] = value;\n }\n } catch (e) {\n // Unparseable srcset\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'class') {\n const allowedSpecificClasses = allowedClassesMap[name];\n const allowedWildcardClasses = allowedClassesMap['*'];\n const allowedSpecificClassesGlob = allowedClassesGlobMap[name];\n const allowedSpecificClassesRegex = allowedClassesRegexMap[name];\n const allowedWildcardClassesGlob = allowedClassesGlobMap['*'];\n const allowedClassesGlobs = [\n allowedSpecificClassesGlob,\n allowedWildcardClassesGlob\n ]\n .concat(allowedSpecificClassesRegex)\n .filter(function (t) {\n return t;\n });\n if (allowedSpecificClasses && allowedWildcardClasses) {\n value = filterClasses(value, deepmerge(allowedSpecificClasses, allowedWildcardClasses), allowedClassesGlobs);\n } else {\n value = filterClasses(value, allowedSpecificClasses || allowedWildcardClasses, allowedClassesGlobs);\n }\n if (!value.length) {\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'style') {\n try {\n const abstractSyntaxTree = postcssParse(name + ' {' + value + '}');\n const filteredAST = filterCss(abstractSyntaxTree, options.allowedStyles);\n\n value = stringifyStyleAttributes(filteredAST);\n\n if (value.length === 0) {\n delete frame.attribs[a];\n return;\n }\n } catch (e) {\n delete frame.attribs[a];\n return;\n }\n }\n result += ' ' + a;\n if (value && value.length) {\n result += '=\"' + escapeHtml(value, true) + '\"';\n }\n } else {\n delete frame.attribs[a];\n }\n });\n }\n if (options.selfClosing.indexOf(name) !== -1) {\n result += ' />';\n } else {\n result += '>';\n if (frame.innerText && !hasText && !options.textFilter) {\n result += escapeHtml(frame.innerText);\n addedText = true;\n }\n }\n if (skip) {\n result = tempResult + escapeHtml(result);\n tempResult = '';\n }\n },\n ontext: function(text) {\n if (skipText) {\n return;\n }\n const lastFrame = stack[stack.length - 1];\n let tag;\n\n if (lastFrame) {\n tag = lastFrame.tag;\n // If inner text was set by transform function then let's use it\n text = lastFrame.innerText !== undefined ? lastFrame.innerText : text;\n }\n\n if (options.disallowedTagsMode === 'discard' && ((tag === 'script') || (tag === 'style'))) {\n // htmlparser2 gives us these as-is. Escaping them ruins the content. Allowing\n // script tags is, by definition, game over for XSS protection, so if that's\n // your concern, don't allow them. The same is essentially true for style tags\n // which have their own collection of XSS vectors.\n result += text;\n } else {\n const escaped = escapeHtml(text, false);\n if (options.textFilter && !addedText) {\n result += options.textFilter(escaped, tag);\n } else if (!addedText) {\n result += escaped;\n }\n }\n if (stack.length) {\n const frame = stack[stack.length - 1];\n frame.text += text;\n }\n },\n onclosetag: function(name) {\n\n if (skipText) {\n skipTextDepth--;\n if (!skipTextDepth) {\n skipText = false;\n } else {\n return;\n }\n }\n\n const frame = stack.pop();\n if (!frame) {\n // Do not crash on bad markup\n return;\n }\n\n if (frame.tag !== name) {\n // Another case of bad markup.\n // Push to stack, so that it will be used in future closing tags.\n stack.push(frame);\n return;\n }\n\n skipText = options.enforceHtmlBoundary ? name === 'html' : false;\n depth--;\n const skip = skipMap[depth];\n if (skip) {\n delete skipMap[depth];\n if (options.disallowedTagsMode === 'discard') {\n frame.updateParentNodeText();\n return;\n }\n tempResult = result;\n result = '';\n }\n\n if (transformMap[depth]) {\n name = transformMap[depth];\n delete transformMap[depth];\n }\n\n if (options.exclusiveFilter && options.exclusiveFilter(frame)) {\n result = result.substr(0, frame.tagPosition);\n return;\n }\n\n frame.updateParentNodeMediaChildren();\n frame.updateParentNodeText();\n\n if (options.selfClosing.indexOf(name) !== -1) {\n // Already output />\n if (skip) {\n result = tempResult;\n tempResult = '';\n }\n return;\n }\n\n result += '';\n if (skip) {\n result = tempResult + escapeHtml(result);\n tempResult = '';\n }\n addedText = false;\n }\n }, options.parser);\n parser.write(html);\n parser.end();\n\n return result;\n\n function initializeState() {\n result = '';\n depth = 0;\n stack = [];\n skipMap = {};\n transformMap = {};\n skipText = false;\n skipTextDepth = 0;\n }\n\n function escapeHtml(s, quote) {\n if (typeof (s) !== 'string') {\n s = s + '';\n }\n if (options.parser.decodeEntities) {\n s = s.replace(/&/g, '&').replace(//g, '>');\n if (quote) {\n s = s.replace(/\"/g, '"');\n }\n }\n // TODO: this is inadequate because it will pass `&0;`. This approach\n // will not work, each & must be considered with regard to whether it\n // is followed by a 100% syntactically valid entity or not, and escaped\n // if it is not. If this bothers you, don't set parser.decodeEntities\n // to false. (The default is true.)\n s = s.replace(/&(?![a-zA-Z0-9#]{1,20};)/g, '&') // Match ampersands not part of existing HTML entity\n .replace(//g, '>');\n if (quote) {\n s = s.replace(/\"/g, '"');\n }\n return s;\n }\n\n function naughtyHref(name, href) {\n // Browsers ignore character codes of 32 (space) and below in a surprising\n // number of situations. Start reading here:\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet#Embedded_tab\n // eslint-disable-next-line no-control-regex\n href = href.replace(/[\\x00-\\x20]+/g, '');\n // Clobber any comments in URLs, which the browser might\n // interpret inside an XML data island, allowing\n // a javascript: URL to be snuck through\n while (true) {\n const firstIndex = href.indexOf('', firstIndex + 4);\n if (lastIndex === -1) {\n break;\n }\n href = href.substring(0, firstIndex) + href.substring(lastIndex + 3);\n }\n // Case insensitive so we don't get faked out by JAVASCRIPT #1\n // Allow more characters after the first so we don't get faked\n // out by certain schemes browsers accept\n const matches = href.match(/^([a-zA-Z][a-zA-Z0-9.\\-+]*):/);\n if (!matches) {\n // Protocol-relative URL starting with any combination of '/' and '\\'\n if (href.match(/^[/\\\\]{2}/)) {\n return !options.allowProtocolRelative;\n }\n\n // No scheme\n return false;\n }\n const scheme = matches[1].toLowerCase();\n\n if (has(options.allowedSchemesByTag, name)) {\n return options.allowedSchemesByTag[name].indexOf(scheme) === -1;\n }\n\n return !options.allowedSchemes || options.allowedSchemes.indexOf(scheme) === -1;\n }\n\n function parseUrl(value) {\n value = value.replace(/^(\\w+:)?\\s*[\\\\/]\\s*[\\\\/]/, '$1//');\n if (value.startsWith('relative:')) {\n // An attempt to exploit our workaround for base URLs being\n // mandatory for relative URL validation in the WHATWG\n // URL parser, reject it\n throw new Error('relative: exploit attempt');\n }\n // naughtyHref is in charge of whether protocol relative URLs\n // are cool. Here we are concerned just with allowed hostnames and\n // whether to allow relative URLs.\n //\n // Build a placeholder \"base URL\" against which any reasonable\n // relative URL may be parsed successfully\n let base = 'relative://relative-site';\n for (let i = 0; (i < 100); i++) {\n base += `/${i}`;\n }\n\n const parsed = new URL(value, base);\n\n const isRelativeUrl = parsed && parsed.hostname === 'relative-site' && parsed.protocol === 'relative:';\n return {\n isRelativeUrl,\n url: parsed\n };\n }\n /**\n * Filters user input css properties by allowlisted regex attributes.\n * Modifies the abstractSyntaxTree object.\n *\n * @param {object} abstractSyntaxTree - Object representation of CSS attributes.\n * @property {array[Declaration]} abstractSyntaxTree.nodes[0] - Each object cointains prop and value key, i.e { prop: 'color', value: 'red' }.\n * @param {object} allowedStyles - Keys are properties (i.e color), value is list of permitted regex rules (i.e /green/i).\n * @return {object} - The modified tree.\n */\n function filterCss(abstractSyntaxTree, allowedStyles) {\n if (!allowedStyles) {\n return abstractSyntaxTree;\n }\n\n const astRules = abstractSyntaxTree.nodes[0];\n let selectedRule;\n\n // Merge global and tag-specific styles into new AST.\n if (allowedStyles[astRules.selector] && allowedStyles['*']) {\n selectedRule = deepmerge(\n allowedStyles[astRules.selector],\n allowedStyles['*']\n );\n } else {\n selectedRule = allowedStyles[astRules.selector] || allowedStyles['*'];\n }\n\n if (selectedRule) {\n abstractSyntaxTree.nodes[0].nodes = astRules.nodes.reduce(filterDeclarations(selectedRule), []);\n }\n\n return abstractSyntaxTree;\n }\n\n /**\n * Extracts the style attributes from an AbstractSyntaxTree and formats those\n * values in the inline style attribute format.\n *\n * @param {AbstractSyntaxTree} filteredAST\n * @return {string} - Example: \"color:yellow;text-align:center !important;font-family:helvetica;\"\n */\n function stringifyStyleAttributes(filteredAST) {\n return filteredAST.nodes[0].nodes\n .reduce(function(extractedAttributes, attrObject) {\n extractedAttributes.push(\n `${attrObject.prop}:${attrObject.value}${attrObject.important ? ' !important' : ''}`\n );\n return extractedAttributes;\n }, [])\n .join(';');\n }\n\n /**\n * Filters the existing attributes for the given property. Discards any attributes\n * which don't match the allowlist.\n *\n * @param {object} selectedRule - Example: { color: red, font-family: helvetica }\n * @param {array} allowedDeclarationsList - List of declarations which pass the allowlist.\n * @param {object} attributeObject - Object representing the current css property.\n * @property {string} attributeObject.type - Typically 'declaration'.\n * @property {string} attributeObject.prop - The CSS property, i.e 'color'.\n * @property {string} attributeObject.value - The corresponding value to the css property, i.e 'red'.\n * @return {function} - When used in Array.reduce, will return an array of Declaration objects\n */\n function filterDeclarations(selectedRule) {\n return function (allowedDeclarationsList, attributeObject) {\n // If this property is allowlisted...\n if (has(selectedRule, attributeObject.prop)) {\n const matchesRegex = selectedRule[attributeObject.prop].some(function(regularExpression) {\n return regularExpression.test(attributeObject.value);\n });\n\n if (matchesRegex) {\n allowedDeclarationsList.push(attributeObject);\n }\n }\n return allowedDeclarationsList;\n };\n }\n\n function filterClasses(classes, allowed, allowedGlobs) {\n if (!allowed) {\n // The class attribute is allowed without filtering on this tag\n return classes;\n }\n classes = classes.split(/\\s+/);\n return classes.filter(function(clss) {\n return allowed.indexOf(clss) !== -1 || allowedGlobs.some(function(glob) {\n return glob.test(clss);\n });\n }).join(' ');\n }\n}\n\n// Defaults are accessible to you so that you can use them as a starting point\n// programmatically if you wish\n\nconst htmlParserDefaults = {\n decodeEntities: true\n};\nsanitizeHtml.defaults = {\n allowedTags: [\n // Sections derived from MDN element categories and limited to the more\n // benign categories.\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element\n // Content sectioning\n 'address', 'article', 'aside', 'footer', 'header',\n 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hgroup',\n 'main', 'nav', 'section',\n // Text content\n 'blockquote', 'dd', 'div', 'dl', 'dt', 'figcaption', 'figure',\n 'hr', 'li', 'main', 'ol', 'p', 'pre', 'ul',\n // Inline text semantics\n 'a', 'abbr', 'b', 'bdi', 'bdo', 'br', 'cite', 'code', 'data', 'dfn',\n 'em', 'i', 'kbd', 'mark', 'q',\n 'rb', 'rp', 'rt', 'rtc', 'ruby',\n 's', 'samp', 'small', 'span', 'strong', 'sub', 'sup', 'time', 'u', 'var', 'wbr',\n // Table content\n 'caption', 'col', 'colgroup', 'table', 'tbody', 'td', 'tfoot', 'th',\n 'thead', 'tr'\n ],\n disallowedTagsMode: 'discard',\n allowedAttributes: {\n a: [ 'href', 'name', 'target' ],\n // We don't currently allow img itself by default, but\n // these attributes would make sense if we did.\n img: [ 'src', 'srcset', 'alt', 'title', 'width', 'height', 'loading' ]\n },\n // Lots of these won't come up by default because we don't allow them\n selfClosing: [ 'img', 'br', 'hr', 'area', 'base', 'basefont', 'input', 'link', 'meta' ],\n // URL schemes we permit\n allowedSchemes: [ 'http', 'https', 'ftp', 'mailto', 'tel' ],\n allowedSchemesByTag: {},\n allowedSchemesAppliedToAttributes: [ 'href', 'src', 'cite' ],\n allowProtocolRelative: true,\n enforceHtmlBoundary: false\n};\n\nsanitizeHtml.simpleTransform = function(newTagName, newAttribs, merge) {\n merge = (merge === undefined) ? true : merge;\n newAttribs = newAttribs || {};\n\n return function(tagName, attribs) {\n let attrib;\n if (merge) {\n for (attrib in newAttribs) {\n attribs[attrib] = newAttribs[attrib];\n }\n } else {\n attribs = newAttribs;\n }\n\n return {\n tagName: newTagName,\n attribs: attribs\n };\n };\n};\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, vModelSelect as _vModelSelect, withDirectives as _withDirectives, vModelText as _vModelText, normalizeClass as _normalizeClass, resolveComponent as _resolveComponent, createVNode as _createVNode, createBlock as _createBlock, withModifiers as _withModifiers, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-45d3bf87\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-form\" }\nconst _hoisted_2 = [\"onSubmit\"]\nconst _hoisted_3 = { class: \"form-items\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"form-item-radio\"\n}\nconst _hoisted_5 = [\"checked\", \"disabled\"]\nconst _hoisted_6 = { for: \"withGpx\" }\nconst _hoisted_7 = [\"checked\", \"disabled\"]\nconst _hoisted_8 = { for: \"withoutGpx\" }\nconst _hoisted_9 = { class: \"form-item\" }\nconst _hoisted_10 = [\"disabled\"]\nconst _hoisted_11 = [\"value\"]\nconst _hoisted_12 = {\n key: 1,\n class: \"form-item\"\n}\nconst _hoisted_13 = { for: \"gpxFile\" }\nconst _hoisted_14 = [\"disabled\"]\nconst _hoisted_15 = { class: \"files-help info-box\" }\nconst _hoisted_16 = {\n key: 2,\n class: \"form-item\"\n}\nconst _hoisted_17 = { for: \"title\" }\nconst _hoisted_18 = [\"required\", \"disabled\"]\nconst _hoisted_19 = { key: 3 }\nconst _hoisted_20 = { class: \"workout-date-duration\" }\nconst _hoisted_21 = { class: \"form-item\" }\nconst _hoisted_22 = { class: \"workout-date-time\" }\nconst _hoisted_23 = [\"disabled\"]\nconst _hoisted_24 = [\"disabled\"]\nconst _hoisted_25 = { class: \"form-item\" }\nconst _hoisted_26 = [\"disabled\"]\nconst _hoisted_27 = [\"disabled\"]\nconst _hoisted_28 = [\"disabled\"]\nconst _hoisted_29 = { class: \"workout-data\" }\nconst _hoisted_30 = { class: \"form-item\" }\nconst _hoisted_31 = [\"disabled\"]\nconst _hoisted_32 = { class: \"form-item\" }\nconst _hoisted_33 = [\"disabled\"]\nconst _hoisted_34 = { class: \"form-item\" }\nconst _hoisted_35 = [\"disabled\"]\nconst _hoisted_36 = { class: \"form-item\" }\nconst _hoisted_37 = { key: 1 }\nconst _hoisted_38 = {\n key: 2,\n class: \"form-buttons\"\n}\nconst _hoisted_39 = [\"disabled\"]\nconst _hoisted_40 = [\"onClick\"]\n\nimport {\n ComputedRef,\n Ref,\n computed,\n reactive,\n ref,\n toRefs,\n watch,\n onMounted,\n onUnmounted,\n withDefaults,\n } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { useRouter } from 'vue-router'\n\n import { ROOT_STORE, WORKOUTS_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { IWorkout, IWorkoutForm } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { formatWorkoutDate, getDateWithTZ } from '@/utils/dates'\n import { getReadableFileSize } from '@/utils/files'\n import { translateSports } from '@/utils/sports'\n import { convertDistance } from '@/utils/units'\n\n interface Props {\n authUser: IAuthUserProfile\n sports: ISport[]\n isCreation?: boolean\n loading?: boolean\n workout?: IWorkout\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutEdition',\n props: {\n authUser: null,\n sports: null,\n isCreation: { type: Boolean, default: false },\n loading: { type: Boolean, default: false },\n workout: { default: () => ({} as IWorkout) }\n },\n setup(__props: any) {\n\nconst props = __props as { authUser: IAuthUserProfile, sports: ISport[], isCreation: boolean, loading: boolean, workout: IWorkout };\n\n \n\n const { t } = useI18n()\n const store = useStore()\n const router = useRouter()\n\n const { authUser, workout, isCreation, loading } = toRefs(props)\n const translatedSports: ComputedRef = computed(() =>\n translateSports(\n props.sports,\n t,\n 'is_active_for_user',\n workout.value.id ? [workout.value.sport_id] : []\n )\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const fileSizeLimit = appConfig.value.max_single_file_size\n ? getReadableFileSize(appConfig.value.max_single_file_size)\n : ''\n const gpx_limit_import = appConfig.value.gpx_limit_import\n const zipSizeLimit = appConfig.value.max_zip_file_size\n ? getReadableFileSize(appConfig.value.max_zip_file_size)\n : ''\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const workoutForm = reactive({\n sport_id: '',\n title: '',\n notes: '',\n workoutDate: '',\n workoutTime: '',\n workoutDurationHour: '',\n workoutDurationMinutes: '',\n workoutDurationSeconds: '',\n workoutDistance: '',\n workoutAscent: '',\n workoutDescent: '',\n })\n const withGpx = ref(\n props.workout.id ? props.workout.with_gpx : props.isCreation\n )\n let gpxFile: File | null = null\n const formErrors = ref(false)\n const payloadErrorMessages: Ref = ref([])\n\n onMounted(() => {\n if (props.workout.id) {\n formatWorkoutForm(props.workout)\n }\n })\n\n function updateNotes(value: string) {\n workoutForm.notes = value\n }\n function updateWithGpx() {\n withGpx.value = !withGpx.value\n formErrors.value = false\n }\n function updateFile(event: Event & { target: HTMLInputElement }) {\n if (event.target.files) {\n gpxFile = event.target.files[0]\n }\n }\n function formatWorkoutForm(workout: IWorkout) {\n workoutForm.sport_id = `${workout.sport_id}`\n workoutForm.title = workout.title\n workoutForm.notes = workout.notes\n if (!workout.with_gpx) {\n const workoutDateTime = formatWorkoutDate(\n getDateWithTZ(workout.workout_date, props.authUser.timezone),\n 'yyyy-MM-dd'\n )\n const duration = workout.duration.split(':')\n workoutForm.workoutDistance = `${\n authUser.value.imperial_units\n ? convertDistance(workout.distance, 'km', 'mi', 3)\n : parseFloat(workout.distance.toFixed(3))\n }`\n workoutForm.workoutDate = workoutDateTime.workout_date\n workoutForm.workoutTime = workoutDateTime.workout_time\n workoutForm.workoutDurationHour = duration[0]\n workoutForm.workoutDurationMinutes = duration[1]\n workoutForm.workoutDurationSeconds = duration[2]\n workoutForm.workoutAscent =\n workout.ascent === null\n ? ''\n : `${\n authUser.value.imperial_units\n ? convertDistance(workout.ascent, 'm', 'ft', 2)\n : parseFloat(workout.ascent.toFixed(2))\n }`\n workoutForm.workoutDescent =\n workout.descent === null\n ? ''\n : `${\n authUser.value.imperial_units\n ? convertDistance(workout.descent, 'm', 'ft', 2)\n : parseFloat(workout.descent.toFixed(2))\n }`\n }\n }\n function isDistanceInvalid() {\n return payloadErrorMessages.value.includes('workouts.INVALID_DISTANCE')\n }\n function isDurationInvalid() {\n return payloadErrorMessages.value.includes('workouts.INVALID_DURATION')\n }\n function isElevationInvalid() {\n return payloadErrorMessages.value.includes(\n 'workouts.INVALID_ASCENT_OR_DESCENT'\n )\n }\n function formatPayload(payload: IWorkoutForm) {\n payloadErrorMessages.value = []\n payload.title = workoutForm.title\n payload.duration =\n +workoutForm.workoutDurationHour * 3600 +\n +workoutForm.workoutDurationMinutes * 60 +\n +workoutForm.workoutDurationSeconds\n if (payload.duration <= 0) {\n payloadErrorMessages.value.push('workouts.INVALID_DURATION')\n }\n payload.distance = authUser.value.imperial_units\n ? convertDistance(+workoutForm.workoutDistance, 'mi', 'km', 3)\n : +workoutForm.workoutDistance\n if (payload.distance <= 0) {\n payloadErrorMessages.value.push('workouts.INVALID_DISTANCE')\n }\n payload.workout_date = `${workoutForm.workoutDate} ${workoutForm.workoutTime}`\n payload.ascent =\n workoutForm.workoutAscent === ''\n ? null\n : authUser.value.imperial_units\n ? convertDistance(+workoutForm.workoutAscent, 'ft', 'm', 3)\n : +workoutForm.workoutAscent\n payload.descent =\n workoutForm.workoutDescent === ''\n ? null\n : authUser.value.imperial_units\n ? convertDistance(+workoutForm.workoutDescent, 'ft', 'm', 3)\n : +workoutForm.workoutDescent\n if (\n (payload.ascent !== null && payload.descent === null) ||\n (payload.ascent === null && payload.descent !== null)\n ) {\n payloadErrorMessages.value.push('workouts.INVALID_ASCENT_OR_DESCENT')\n }\n }\n function updateWorkout() {\n const payload: IWorkoutForm = {\n sport_id: +workoutForm.sport_id,\n notes: workoutForm.notes,\n }\n if (props.workout.id) {\n if (props.workout.with_gpx) {\n payload.title = workoutForm.title\n } else {\n formatPayload(payload)\n }\n if (payloadErrorMessages.value.length > 0) {\n store.commit(\n ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES,\n payloadErrorMessages.value\n )\n } else {\n store.dispatch(WORKOUTS_STORE.ACTIONS.EDIT_WORKOUT, {\n workoutId: props.workout.id,\n data: payload,\n })\n }\n } else {\n if (withGpx.value) {\n if (!gpxFile) {\n const errorMessage = 'workouts.NO_FILE_PROVIDED'\n store.commit(ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES, errorMessage)\n return\n }\n payload.file = gpxFile\n store.dispatch(WORKOUTS_STORE.ACTIONS.ADD_WORKOUT, payload)\n } else {\n formatPayload(payload)\n if (payloadErrorMessages.value.length > 0) {\n store.commit(\n ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES,\n payloadErrorMessages.value\n )\n } else {\n store.dispatch(\n WORKOUTS_STORE.ACTIONS.ADD_WORKOUT_WITHOUT_GPX,\n payload\n )\n }\n }\n }\n }\n function onCancel() {\n if (props.workout.id) {\n router.push({\n name: 'Workout',\n params: { workoutId: props.workout.id },\n })\n } else {\n router.go(-1)\n }\n }\n function invalidateForm() {\n formErrors.value = true\n }\n\n onUnmounted(() => store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES))\n\n watch(\n () => props.workout,\n async (\n newWorkout: IWorkout | undefined,\n previousWorkout: IWorkout | undefined\n ) => {\n if (newWorkout !== previousWorkout && newWorkout && newWorkout.id) {\n formatWorkoutForm(newWorkout)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_CustomTextArea = _resolveComponent(\"CustomTextArea\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Loader = _resolveComponent(\"Loader\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n id: \"workout-edition\",\n class: _normalizeClass([\"center-card with-margin\", { 'center-form': _unref(workout) && _unref(workout).with_gpx }])\n }, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(`workouts.${_unref(isCreation) ? 'ADD' : 'EDIT'}_WORKOUT`)), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"form\", {\n class: _normalizeClass({ errors: formErrors.value }),\n onSubmit: _withModifiers(updateWorkout, [\"prevent\"])\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_unref(isCreation))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"input\", {\n id: \"withGpx\",\n type: \"radio\",\n checked: withGpx.value,\n disabled: _unref(loading),\n onClick: updateWithGpx\n }, null, 8, _hoisted_5),\n _createElementVNode(\"label\", _hoisted_6, _toDisplayString(_ctx.$t('workouts.WITH_GPX')), 1)\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"input\", {\n id: \"withoutGpx\",\n type: \"radio\",\n checked: !withGpx.value,\n disabled: _unref(loading),\n onClick: updateWithGpx\n }, null, 8, _hoisted_7),\n _createElementVNode(\"label\", _hoisted_8, _toDisplayString(_ctx.$t('workouts.WITHOUT_GPX')), 1)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.SPORT', 1)) + \"*: \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"sport\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((workoutForm.sport_id) = $event))\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports), (sport) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: sport.id,\n key: sport.id\n }, _toDisplayString(sport.translatedLabel), 9, _hoisted_11))\n }), 128))\n ], 40, _hoisted_10), [\n [_vModelSelect, workoutForm.sport_id]\n ])\n ]),\n (_unref(isCreation) && withGpx.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_12, [\n _createElementVNode(\"label\", _hoisted_13, _toDisplayString(_ctx.$t('workouts.GPX_FILE')) + \" \" + _toDisplayString(_ctx.$t('workouts.ZIP_ARCHIVE_DESCRIPTION')) + \"*: \", 1),\n _createElementVNode(\"input\", {\n id: \"gpxFile\",\n name: \"gpxFile\",\n type: \"file\",\n accept: \".gpx, .zip\",\n disabled: _unref(loading),\n required: \"\",\n onInvalid: invalidateForm,\n onInput: updateFile\n }, null, 40, _hoisted_14),\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"strong\", null, _toDisplayString(_ctx.$t('workouts.GPX_FILE')) + \":\", 1),\n _createElementVNode(\"ul\", null, [\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('workouts.MAX_SIZE')) + \": \" + _toDisplayString(_unref(fileSizeLimit)), 1)\n ])\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"strong\", null, _toDisplayString(_ctx.$t('workouts.ZIP_ARCHIVE')) + \":\", 1),\n _createElementVNode(\"ul\", null, [\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('workouts.NO_FOLDER')), 1),\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('workouts.MAX_FILES')) + \": \" + _toDisplayString(_unref(gpx_limit_import)), 1),\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('workouts.MAX_SIZE')) + \": \" + _toDisplayString(_unref(zipSizeLimit)), 1)\n ])\n ])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_16, [\n _createElementVNode(\"label\", _hoisted_17, _toDisplayString(_ctx.$t('workouts.TITLE')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"title\",\n name: \"title\",\n type: \"text\",\n required: !_unref(isCreation),\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((workoutForm.title) = $event))\n }, null, 40, _hoisted_18), [\n [_vModelText, workoutForm.title]\n ])\n ])),\n (!withGpx.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_19, [\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.WORKOUT_DATE')) + \"*:\", 1),\n _createElementVNode(\"div\", _hoisted_22, [\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-date\",\n name: \"workout-date\",\n type: \"date\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((workoutForm.workoutDate) = $event))\n }, null, 40, _hoisted_23), [\n [_vModelText, workoutForm.workoutDate]\n ]),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-time\",\n name: \"workout-time\",\n class: \"workout-time\",\n type: \"time\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((workoutForm.workoutTime) = $event))\n }, null, 40, _hoisted_24), [\n [_vModelText, workoutForm.workoutTime]\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_25, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DURATION')) + \"*:\", 1),\n _createElementVNode(\"div\", null, [\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-duration-hour\",\n name: \"workout-duration-hour\",\n class: _normalizeClass([\"workout-duration\", { errored: isDurationInvalid() }]),\n type: \"text\",\n placeholder: \"HH\",\n minlength: \"1\",\n maxlength: \"2\",\n pattern: \"^([0-1]?[0-9]|2[0-3])$\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((workoutForm.workoutDurationHour) = $event))\n }, null, 42, _hoisted_26), [\n [_vModelText, workoutForm.workoutDurationHour]\n ]),\n _createTextVNode(\" : \"),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-duration-minutes\",\n name: \"workout-duration-minutes\",\n class: _normalizeClass([\"workout-duration\", { errored: isDurationInvalid() }]),\n type: \"text\",\n pattern: \"^([0-5][0-9])$\",\n minlength: \"2\",\n maxlength: \"2\",\n placeholder: \"MM\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((workoutForm.workoutDurationMinutes) = $event))\n }, null, 42, _hoisted_27), [\n [_vModelText, workoutForm.workoutDurationMinutes]\n ]),\n _createTextVNode(\" : \"),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-duration-seconds\",\n name: \"workout-duration-seconds\",\n class: _normalizeClass([\"workout-duration\", { errored: isDurationInvalid() }]),\n type: \"text\",\n pattern: \"^([0-5][0-9])$\",\n minlength: \"2\",\n maxlength: \"2\",\n placeholder: \"SS\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((workoutForm.workoutDurationSeconds) = $event))\n }, null, 42, _hoisted_28), [\n [_vModelText, workoutForm.workoutDurationSeconds]\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_29, [\n _createElementVNode(\"div\", _hoisted_30, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DISTANCE')) + \" (\" + _toDisplayString(_unref(authUser).imperial_units ? 'mi' : 'km') + \")*: \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n class: _normalizeClass({ errored: isDistanceInvalid() }),\n name: \"workout-distance\",\n type: \"number\",\n min: \"0\",\n step: \"0.001\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((workoutForm.workoutDistance) = $event))\n }, null, 42, _hoisted_31), [\n [_vModelText, workoutForm.workoutDistance]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_32, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.ASCENT')) + \" (\" + _toDisplayString(_unref(authUser).imperial_units ? 'ft' : 'm') + \"): \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n class: _normalizeClass({ errored: isElevationInvalid() }),\n name: \"workout-ascent\",\n type: \"number\",\n min: \"0\",\n step: \"0.01\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = ($event: any) => ((workoutForm.workoutAscent) = $event))\n }, null, 42, _hoisted_33), [\n [_vModelText, workoutForm.workoutAscent]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_34, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DESCENT')) + \" (\" + _toDisplayString(_unref(authUser).imperial_units ? 'ft' : 'm') + \"): \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n class: _normalizeClass({ errored: isElevationInvalid() }),\n name: \"workout-descent\",\n type: \"number\",\n min: \"0\",\n step: \"0.01\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[9] || (_cache[9] = ($event: any) => ((workoutForm.workoutDescent) = $event))\n }, null, 42, _hoisted_35), [\n [_vModelText, workoutForm.workoutDescent]\n ])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_36, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.NOTES')) + \": \", 1),\n _createVNode(_component_CustomTextArea, {\n name: \"notes\",\n input: workoutForm.notes,\n disabled: _unref(loading),\n onUpdateValue: updateNotes\n }, null, 8, [\"input\", \"disabled\"])\n ])\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(loading))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_37, [\n _createVNode(_component_Loader)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_38, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n type: \"submit\",\n disabled: _unref(loading)\n }, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 9, _hoisted_39),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _withModifiers(onCancel, [\"prevent\"])\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 9, _hoisted_40)\n ]))\n ], 42, _hoisted_2)\n ])\n ]),\n _: 1\n })\n ], 2))\n}\n}\n\n})","import script from \"./WorkoutEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutEdition.vue?vue&type=style&index=0&id=45d3bf87&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-45d3bf87\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"add-workout\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\n\nimport { ComputedRef, computed } from 'vue'\n\n import WorkoutEdition from '@/components/Workout/WorkoutEdition.vue'\n import {\n AUTH_USER_STORE,\n SPORTS_STORE,\n WORKOUTS_STORE,\n } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { IWorkoutData } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AddWorkout',\n setup(__props) {\n\n const store = useStore()\n\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const workoutData: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.WORKOUT_DATA]\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(WorkoutEdition, {\n authUser: _unref(authUser),\n sports: _unref(sports),\n isCreation: true,\n loading: _unref(workoutData).loading\n }, null, 8, [\"authUser\", \"sports\", \"loading\"])\n ])\n ]))\n}\n}\n\n})","import script from \"./AddWorkout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AddWorkout.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"edit-workout\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\n\nimport { computed, watch, onBeforeMount, ComputedRef } from 'vue'\n import { useRoute } from 'vue-router'\n\n import WorkoutEdition from '@/components/Workout/WorkoutEdition.vue'\n import {\n AUTH_USER_STORE,\n SPORTS_STORE,\n WORKOUTS_STORE,\n } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { IWorkoutData } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'EditWorkout',\n setup(__props) {\n\n const route = useRoute()\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const workoutData: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.WORKOUT_DATA]\n )\n\n onBeforeMount(() => {\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, {\n workoutId: route.params.workoutId,\n })\n })\n\n watch(\n () => route.params.workoutId,\n async (newWorkoutId) => {\n if (!newWorkoutId) {\n store.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(workoutData).workout.id)\n ? (_openBlock(), _createBlock(WorkoutEdition, {\n key: 0,\n authUser: _unref(authUser),\n sports: _unref(sports),\n workout: _unref(workoutData).workout,\n loading: _unref(workoutData).loading\n }, null, 8, [\"authUser\", \"sports\", \"workout\", \"loading\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./EditWorkout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./EditWorkout.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4d9f9a8a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-card-title\" }\nconst _hoisted_2 = [\"title\"]\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-left\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = [\n _hoisted_3\n]\nconst _hoisted_5 = { class: \"workout-card-title\" }\nconst _hoisted_6 = { class: \"workout-title-date\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"workout-title\"\n}\nconst _hoisted_8 = {\n key: 1,\n class: \"workout-title\"\n}\nconst _hoisted_9 = { class: \"workout-segment\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-map-marker\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = { class: \"workout-date\" }\nconst _hoisted_12 = { class: \"workout-link\" }\nconst _hoisted_13 = [\"title\"]\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-right\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_15 = [\n _hoisted_14\n]\n\nimport { toRefs } from 'vue'\n\n import authApi from '@/api/authApi'\n import { ISport } from '@/types/sports'\n import { IWorkoutObject } from '@/types/workouts'\n\n interface Props {\n sport: ISport\n workoutObject: IWorkoutObject\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutCardTitle',\n props: {\n sport: null,\n workoutObject: null\n },\n emits: ['displayModal'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n sport: ISport\n workoutObject: IWorkoutObject\n };\n\n \n\n \n\n const { sport, workoutObject } = toRefs(props)\n\n async function downloadGpx(workoutId: string) {\n await authApi\n .get(`workouts/${workoutId}/gpx/download`, {\n responseType: 'blob',\n })\n .then((response) => {\n const gpxFileUrl = window.URL.createObjectURL(\n new Blob([response.data], { type: 'application/gpx+xml' })\n )\n const gpxLink = document.createElement('a')\n gpxLink.href = gpxFileUrl\n gpxLink.setAttribute('download', `${workoutId}.gpx`)\n document.body.appendChild(gpxLink)\n gpxLink.click()\n })\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"workout-previous workout-arrow\", { inactive: !_unref(workoutObject).previousUrl }]),\n title: \n _unref(workoutObject).previousUrl\n ? _ctx.$t(`workouts.PREVIOUS_${_unref(workoutObject).type}`)\n : _ctx.$t(`workouts.NO_PREVIOUS_${_unref(workoutObject).type}`)\n ,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (\n _unref(workoutObject).previousUrl\n ? _ctx.$router.push(_unref(workoutObject).previousUrl)\n : null\n ))\n }, _hoisted_4, 10, _hoisted_2),\n _createElementVNode(\"div\", _hoisted_5, [\n _createVNode(_component_SportImage, {\n \"sport-label\": _unref(sport).label,\n color: _unref(sport).color\n }, null, 8, [\"sport-label\", \"color\"]),\n _createElementVNode(\"div\", _hoisted_6, [\n (_unref(workoutObject).type === 'WORKOUT')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n _createElementVNode(\"span\", null, _toDisplayString(_unref(workoutObject).title), 1),\n _createElementVNode(\"i\", {\n class: \"fa fa-edit\",\n \"aria-hidden\": \"true\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (\n _ctx.$router.push({\n name: 'EditWorkout',\n params: { workoutId: _unref(workoutObject).workoutId },\n })\n ))\n }),\n (_unref(workoutObject).with_gpx)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"fa fa-download\",\n \"aria-hidden\": \"true\",\n onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (downloadGpx(_unref(workoutObject).workoutId)), [\"prevent\"]))\n }))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"i\", {\n class: \"fa fa-trash\",\n \"aria-hidden\": \"true\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (emit('displayModal', true)))\n })\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_unref(workoutObject).title) + \" \", 1),\n _createElementVNode(\"span\", _hoisted_9, [\n _createTextVNode(\" — \"),\n _hoisted_10,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.SEGMENT')) + \" \" + _toDisplayString(_unref(workoutObject).segmentId + 1), 1)\n ])\n ])),\n _createElementVNode(\"div\", _hoisted_11, [\n _createTextVNode(_toDisplayString(_unref(workoutObject).workoutDate) + \" - \" + _toDisplayString(_unref(workoutObject).workoutTime) + \" \", 1),\n _createElementVNode(\"span\", _hoisted_12, [\n (_unref(workoutObject).type === 'SEGMENT')\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: {\n name: 'Workout',\n params: { workoutId: _unref(workoutObject).workoutId },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" > \" + _toDisplayString(_ctx.$t('workouts.BACK_TO_WORKOUT')), 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"workout-next workout-arrow\", { inactive: !_unref(workoutObject).nextUrl }]),\n title: \n _unref(workoutObject).nextUrl\n ? _ctx.$t(`workouts.NEXT_${_unref(workoutObject).type}`)\n : _ctx.$t(`workouts.NO_NEXT_${_unref(workoutObject).type}`)\n ,\n onClick: _cache[4] || (_cache[4] = ($event: any) => (\n _unref(workoutObject).nextUrl ? _ctx.$router.push(_unref(workoutObject).nextUrl) : null\n ))\n }, _hoisted_15, 10, _hoisted_13)\n ]))\n}\n}\n\n})","import script from \"./WorkoutCardTitle.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutCardTitle.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutCardTitle.vue?vue&type=style&index=0&id=4d9f9a8a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4d9f9a8a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1a5282f6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"workout-record\"\n}\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"sup\", null, [\n /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-trophy\",\n \"aria-hidden\": \"true\"\n })\n], -1))\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nimport { toRefs } from 'vue'\n\n import { IWorkoutObject } from '@/types/workouts'\n\n interface Props {\n recordType: string\n workoutObject: IWorkoutObject\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutRecord',\n props: {\n recordType: null,\n workoutObject: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n recordType: string\n workoutObject: IWorkoutObject\n };\n\n \n\n const { recordType, workoutObject } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (\n _unref(workoutObject).records &&\n _unref(workoutObject).records.find((record) => record.record_type === _unref(recordType))\n )\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_1, _hoisted_3))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./WorkoutRecord.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutRecord.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutRecord.vue?vue&type=style&index=0&id=1a5282f6&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1a5282f6\"]])\n\nexport default __exports__","const directions = [\n 'N',\n 'NNE',\n 'NE',\n 'ENE',\n 'E',\n 'ESE',\n 'SE',\n 'SSE',\n 'S',\n 'SSW',\n 'SW',\n 'WSW',\n 'W',\n 'WNW',\n 'NW',\n 'NNW',\n]\n\nexport const convertDegreeToDirection = (angle: number): string => {\n const value = Math.floor(angle / 22.5 + 0.5)\n return directions[value % 16]\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-40697ed1\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"wind\" }\nconst _hoisted_2 = { class: \"wind-bearing\" }\nconst _hoisted_3 = [\"title\"]\n\nimport { toRefs } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { IWeather } from '@/types/workouts'\n import { getWindSpeed } from '@/utils/units'\n import { convertDegreeToDirection } from '@/utils/weather'\n\n interface Props {\n weather: IWeather\n useImperialUnits: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WeatherWind',\n props: {\n weather: null,\n useImperialUnits: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n weather: IWeather\n useImperialUnits: boolean\n };\n\n \n\n const { useImperialUnits, weather } = toRefs(props)\n const { t } = useI18n()\n\n function getWindDirectionTitle(windBearing: number): string {\n return t(\n `workouts.WEATHER.WIND_DIRECTIONS.${convertDegreeToDirection(\n windBearing\n )}`\n )\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createTextVNode(_toDisplayString(_unref(getWindSpeed)(_unref(weather).wind, _unref(useImperialUnits))) + \" \", 1),\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(weather).windBearing)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"fa fa-long-arrow-down\",\n style: _normalizeStyle({\n transform: `rotate(${_unref(weather).windBearing}deg)`,\n }),\n \"aria-hidden\": \"true\",\n title: getWindDirectionTitle(_unref(weather).windBearing)\n }, null, 12, _hoisted_3))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./WeatherWind.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WeatherWind.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WeatherWind.vue?vue&type=style&index=0&id=40697ed1&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-40697ed1\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-807b431a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n id: \"workout-weather\"\n}\nconst _hoisted_2 = { class: \"weather-table\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, null, -1))\nconst _hoisted_4 = { class: \"weather-th\" }\nconst _hoisted_5 = [\"src\", \"alt\", \"title\"]\nconst _hoisted_6 = { class: \"weather-th\" }\nconst _hoisted_7 = [\"src\", \"alt\", \"title\"]\nconst _hoisted_8 = [\"alt\", \"title\"]\nconst _hoisted_9 = [\"alt\", \"title\"]\nconst _hoisted_10 = [\"alt\", \"title\"]\n\nimport { toRefs } from 'vue'\n\n import WeatherWind from '@/components/Workout/WorkoutDetail/WeatherWind.vue'\n import { IWorkoutObject } from '@/types/workouts'\n import { getTemperature } from '@/utils/units'\n\n interface Props {\n workoutObject: IWorkoutObject\n useImperialUnits: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutWeather',\n props: {\n workoutObject: null,\n useImperialUnits: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n workoutObject: IWorkoutObject\n useImperialUnits: boolean\n };\n\n \n\n const { useImperialUnits, workoutObject } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(workoutObject).weatherStart && _unref(workoutObject).weatherEnd)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"table\", _hoisted_2, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_3,\n _createElementVNode(\"th\", null, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.START')) + \" \", 1),\n _createElementVNode(\"img\", {\n class: \"weather-img\",\n src: `/img/weather/${_unref(workoutObject).weatherStart.icon}.svg`,\n alt: \n _ctx.$t(\n `workouts.WEATHER.DARK_SKY.${_unref(workoutObject).weatherStart.icon}`\n )\n ,\n title: \n _ctx.$t(\n `workouts.WEATHER.DARK_SKY.${_unref(workoutObject).weatherStart.icon}`\n )\n \n }, null, 8, _hoisted_5)\n ])\n ]),\n _createElementVNode(\"th\", null, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.END')) + \" \", 1),\n _createElementVNode(\"img\", {\n class: \"weather-img\",\n src: `/img/weather/${_unref(workoutObject).weatherEnd.icon}.svg`,\n alt: \n _ctx.$t(\n `workouts.WEATHER.DARK_SKY.${_unref(workoutObject).weatherEnd.icon}`\n )\n ,\n title: \n _ctx.$t(\n `workouts.WEATHER.DARK_SKY.${_unref(workoutObject).weatherEnd.icon}`\n )\n \n }, null, 8, _hoisted_7)\n ])\n ])\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"img\", {\n class: \"weather-img weather-img-small\",\n src: \"/img/weather/temperature.svg\",\n alt: _ctx.$t(`workouts.WEATHER.TEMPERATURE`),\n title: _ctx.$t(`workouts.WEATHER.TEMPERATURE`)\n }, null, 8, _hoisted_8)\n ]),\n _createElementVNode(\"td\", null, _toDisplayString(_unref(getTemperature)(\n _unref(workoutObject).weatherStart.temperature,\n _unref(useImperialUnits)\n )), 1),\n _createElementVNode(\"td\", null, _toDisplayString(_unref(getTemperature)(\n _unref(workoutObject).weatherEnd.temperature,\n _unref(useImperialUnits)\n )), 1)\n ]),\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"img\", {\n class: \"weather-img weather-img-small\",\n src: \"/img/weather/pour-rain.svg\",\n alt: _ctx.$t(`workouts.WEATHER.HUMIDITY`),\n title: _ctx.$t(`workouts.WEATHER.HUMIDITY`)\n }, null, 8, _hoisted_9)\n ]),\n _createElementVNode(\"td\", null, _toDisplayString(Number(_unref(workoutObject).weatherStart.humidity * 100).toFixed(1)) + \"% \", 1),\n _createElementVNode(\"td\", null, _toDisplayString(Number(_unref(workoutObject).weatherEnd.humidity * 100).toFixed(1)) + \"% \", 1)\n ]),\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"img\", {\n class: \"weather-img weather-img-small\",\n src: \"/img/weather/breeze.svg\",\n alt: _ctx.$t(`workouts.WEATHER.WIND`),\n title: _ctx.$t(`workouts.WEATHER.WIND`)\n }, null, 8, _hoisted_10)\n ]),\n _createElementVNode(\"td\", null, [\n _createVNode(WeatherWind, {\n weather: _unref(workoutObject).weatherStart,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"weather\", \"useImperialUnits\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createVNode(WeatherWind, {\n weather: _unref(workoutObject).weatherEnd,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"weather\", \"useImperialUnits\"])\n ])\n ])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./WorkoutWeather.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutWeather.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutWeather.vue?vue&type=style&index=0&id=807b431a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-807b431a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, unref as _unref, createVNode as _createVNode, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-74c5993b\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-info\" }\nconst _hoisted_2 = { class: \"workout-data\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-clock-o\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = { class: \"label\" }\nconst _hoisted_5 = { class: \"value\" }\nconst _hoisted_6 = { key: 0 }\nconst _hoisted_7 = { class: \"value\" }\nconst _hoisted_8 = { class: \"value\" }\nconst _hoisted_9 = { class: \"workout-data\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-road\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = { class: \"label\" }\nconst _hoisted_12 = { class: \"workout-data\" }\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-tachometer\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_14 = { class: \"label\" }\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_16 = { class: \"label\" }\nconst _hoisted_17 = {\n key: 0,\n class: \"workout-data\"\n}\nconst _hoisted_18 = [\"alt\"]\nconst _hoisted_19 = { class: \"label\" }\nconst _hoisted_20 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_21 = { class: \"label\" }\nconst _hoisted_22 = {\n key: 1,\n class: \"workout-data\"\n}\nconst _hoisted_23 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-location-arrow\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_24 = { class: \"label\" }\nconst _hoisted_25 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_26 = { class: \"label\" }\n\nimport { computed, toRefs } from 'vue'\n\n import WorkoutRecord from '@/components/Workout/WorkoutDetail/WorkoutRecord.vue'\n import WorkoutWeather from '@/components/Workout/WorkoutDetail/WorkoutWeather.vue'\n import { IWorkoutObject } from '@/types/workouts'\n\n interface Props {\n workoutObject: IWorkoutObject\n useImperialUnits: boolean\n displayHARecord: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutData',\n props: {\n workoutObject: null,\n useImperialUnits: { type: Boolean },\n displayHARecord: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n workoutObject: IWorkoutObject\n useImperialUnits: boolean\n displayHARecord: boolean\n };\n\n \n\n const { displayHARecord, workoutObject, useImperialUnits } = toRefs(props)\n const withPause = computed(\n () =>\n props.workoutObject.pauses !== '0:00:00' &&\n props.workoutObject.pauses !== null\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Distance = _resolveComponent(\"Distance\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.$t('workouts.DURATION')), 1),\n _createTextVNode(\": \"),\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(_unref(workoutObject).moving), 1),\n _createVNode(WorkoutRecord, {\n workoutObject: _unref(workoutObject),\n recordType: \"LD\"\n }, null, 8, [\"workoutObject\"]),\n (_unref(withPause))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createTextVNode(\" (\" + _toDisplayString(_ctx.$t('workouts.PAUSES')) + \": \", 1),\n _createElementVNode(\"span\", _hoisted_7, _toDisplayString(_unref(workoutObject).pauses), 1),\n _createTextVNode(\" - \" + _toDisplayString(_ctx.$t('workouts.TOTAL_DURATION')) + \": \", 1),\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_unref(workoutObject).duration) + \")\", 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _hoisted_10,\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_ctx.$t('workouts.DISTANCE')), 1),\n _createTextVNode(\": \"),\n _createVNode(_component_Distance, {\n distance: _unref(workoutObject).distance,\n digits: 3,\n unitFrom: \"km\",\n strong: true,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]),\n _createVNode(WorkoutRecord, {\n workoutObject: _unref(workoutObject),\n recordType: \"FD\"\n }, null, 8, [\"workoutObject\"])\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _hoisted_13,\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.$t('workouts.AVERAGE_SPEED')), 1),\n _createTextVNode(\": \"),\n _createVNode(_component_Distance, {\n distance: _unref(workoutObject).aveSpeed,\n unitFrom: \"km\",\n speed: true,\n strong: true,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]),\n _createVNode(WorkoutRecord, {\n workoutObject: _unref(workoutObject),\n recordType: \"AS\"\n }, null, 8, [\"workoutObject\"]),\n _hoisted_15,\n _createElementVNode(\"span\", _hoisted_16, _toDisplayString(_ctx.$t('workouts.MAX_SPEED')), 1),\n _createTextVNode(\": \"),\n _createVNode(_component_Distance, {\n distance: _unref(workoutObject).maxSpeed,\n unitFrom: \"km\",\n speed: true,\n strong: true,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]),\n _createVNode(WorkoutRecord, {\n workoutObject: _unref(workoutObject),\n recordType: \"MS\"\n }, null, 8, [\"workoutObject\"])\n ]),\n (_unref(workoutObject).maxAlt !== null && _unref(workoutObject).minAlt !== null)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _createElementVNode(\"img\", {\n class: \"mountains\",\n src: \"/img/workouts/mountains.svg\",\n alt: _ctx.$t('workouts.ELEVATION')\n }, null, 8, _hoisted_18),\n _createElementVNode(\"span\", _hoisted_19, _toDisplayString(_ctx.$t('workouts.MIN_ALTITUDE')), 1),\n _createTextVNode(\": \"),\n _createVNode(_component_Distance, {\n distance: _unref(workoutObject).minAlt,\n unitFrom: \"m\",\n strong: true,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]),\n _hoisted_20,\n _createElementVNode(\"span\", _hoisted_21, _toDisplayString(_ctx.$t('workouts.MAX_ALTITUDE')), 1),\n _createTextVNode(\": \"),\n _createVNode(_component_Distance, {\n distance: _unref(workoutObject).maxAlt,\n unitFrom: \"m\",\n strong: true,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"])\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(workoutObject).ascent !== null && _unref(workoutObject).descent !== null)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_22, [\n _hoisted_23,\n _createElementVNode(\"span\", _hoisted_24, _toDisplayString(_ctx.$t('workouts.ASCENT')), 1),\n _createTextVNode(\": \"),\n _createVNode(_component_Distance, {\n distance: _unref(workoutObject).ascent,\n unitFrom: \"m\",\n strong: true,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]),\n (_unref(displayHARecord))\n ? (_openBlock(), _createBlock(WorkoutRecord, {\n key: 0,\n workoutObject: _unref(workoutObject),\n recordType: \"HA\"\n }, null, 8, [\"workoutObject\"]))\n : _createCommentVNode(\"\", true),\n _hoisted_25,\n _createElementVNode(\"span\", _hoisted_26, _toDisplayString(_ctx.$t('workouts.DESCENT')), 1),\n _createTextVNode(\": \"),\n _createVNode(_component_Distance, {\n distance: _unref(workoutObject).descent,\n unitFrom: \"m\",\n strong: true,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"])\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(WorkoutWeather, {\n workoutObject: _unref(workoutObject),\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"workoutObject\", \"useImperialUnits\"])\n ]))\n}\n}\n\n})","import script from \"./WorkoutData.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutData.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutData.vue?vue&type=style&index=0&id=74c5993b&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-74c5993b\"]])\n\nexport default __exports__","function $(element, tagName) {\n return Array.from(element.getElementsByTagName(tagName));\n}\nfunction normalizeId(id) {\n return id[0] === \"#\" ? id : `#${id}`;\n}\nfunction $ns(element, tagName, ns) {\n return Array.from(element.getElementsByTagNameNS(ns, tagName));\n}\n/**\n * get the content of a text node, if any\n */\nfunction nodeVal(node) {\n node?.normalize();\n return (node && node.textContent) || \"\";\n}\n/**\n * Get one Y child of X, if any, otherwise null\n */\nfunction get1(node, tagName, callback) {\n const n = node.getElementsByTagName(tagName);\n const result = n.length ? n[0] : null;\n if (result && callback)\n callback(result);\n return result;\n}\nfunction get(node, tagName, callback) {\n const properties = {};\n if (!node)\n return properties;\n const n = node.getElementsByTagName(tagName);\n const result = n.length ? n[0] : null;\n if (result && callback) {\n return callback(result, properties);\n }\n return properties;\n}\nfunction val1(node, tagName, callback) {\n const val = nodeVal(get1(node, tagName));\n if (val && callback)\n return callback(val) || {};\n return {};\n}\nfunction $num(node, tagName, callback) {\n const val = parseFloat(nodeVal(get1(node, tagName)));\n if (isNaN(val))\n return undefined;\n if (val && callback)\n return callback(val) || {};\n return {};\n}\nfunction num1(node, tagName, callback) {\n const val = parseFloat(nodeVal(get1(node, tagName)));\n if (isNaN(val))\n return undefined;\n if (val && callback)\n callback(val);\n return val;\n}\nfunction getMulti(node, propertyNames) {\n const properties = {};\n for (const property of propertyNames) {\n val1(node, property, (val) => {\n properties[property] = val;\n });\n }\n return properties;\n}\nfunction isElement(node) {\n return node?.nodeType === 1;\n}\n\nfunction getLineStyle(node) {\n return get(node, \"line\", (lineStyle) => {\n const val = Object.assign({}, val1(lineStyle, \"color\", (color) => {\n return { stroke: `#${color}` };\n }), $num(lineStyle, \"opacity\", (opacity) => {\n return { \"stroke-opacity\": opacity };\n }), $num(lineStyle, \"width\", (width) => {\n // GPX width is in mm, convert to px with 96 px per inch\n return { \"stroke-width\": (width * 96) / 25.4 };\n }));\n return val;\n });\n}\n\nfunction getExtensions(node) {\n let values = [];\n if (node === null)\n return values;\n for (const child of Array.from(node.childNodes)) {\n if (!isElement(child))\n continue;\n const name = abbreviateName(child.nodeName);\n if (name === \"gpxtpx:TrackPointExtension\") {\n // loop again for nested garmin extensions (eg. \"gpxtpx:hr\")\n values = values.concat(getExtensions(child));\n }\n else {\n // push custom extension (eg. \"power\")\n const val = nodeVal(child);\n values.push([name, parseNumeric(val)]);\n }\n }\n return values;\n}\nfunction abbreviateName(name) {\n return [\"heart\", \"gpxtpx:hr\", \"hr\"].includes(name) ? \"heart\" : name;\n}\nfunction parseNumeric(val) {\n const num = parseFloat(val);\n return isNaN(num) ? val : num;\n}\n\nfunction coordPair$1(node) {\n const ll = [\n parseFloat(node.getAttribute(\"lon\") || \"\"),\n parseFloat(node.getAttribute(\"lat\") || \"\"),\n ];\n if (isNaN(ll[0]) || isNaN(ll[1])) {\n return null;\n }\n num1(node, \"ele\", (val) => {\n ll.push(val);\n });\n const time = get1(node, \"time\");\n return {\n coordinates: ll,\n time: time ? nodeVal(time) : null,\n extendedValues: getExtensions(get1(node, \"extensions\")),\n };\n}\n\nfunction extractProperties(node) {\n const properties = getMulti(node, [\n \"name\",\n \"cmt\",\n \"desc\",\n \"type\",\n \"time\",\n \"keywords\",\n ]);\n const extensions = Array.from(node.getElementsByTagNameNS(\"http://www.garmin.com/xmlschemas/GpxExtensions/v3\", \"*\"));\n for (const child of extensions) {\n if (child.parentNode?.parentNode === node) {\n properties[child.tagName.replace(\":\", \"_\")] = nodeVal(child);\n }\n }\n const links = $(node, \"link\");\n if (links.length) {\n properties.links = links.map((link) => Object.assign({ href: link.getAttribute(\"href\") }, getMulti(link, [\"text\", \"type\"])));\n }\n return properties;\n}\n\n/**\n * Extract points from a trkseg or rte element.\n */\nfunction getPoints$1(node, pointname) {\n const pts = $(node, pointname);\n const line = [];\n const times = [];\n const extendedValues = {};\n for (let i = 0; i < pts.length; i++) {\n const c = coordPair$1(pts[i]);\n if (!c) {\n continue;\n }\n line.push(c.coordinates);\n if (c.time)\n times.push(c.time);\n for (const [name, val] of c.extendedValues) {\n const plural = name === \"heart\" ? name : name.replace(\"gpxtpx:\", \"\") + \"s\";\n if (!extendedValues[plural]) {\n extendedValues[plural] = Array(pts.length).fill(null);\n }\n extendedValues[plural][i] = val;\n }\n }\n if (line.length < 2)\n return; // Invalid line in GeoJSON\n return {\n line: line,\n times: times,\n extendedValues: extendedValues,\n };\n}\n/**\n * Extract a LineString geometry from a rte\n * element.\n */\nfunction getRoute(node) {\n const line = getPoints$1(node, \"rtept\");\n if (!line)\n return;\n return {\n type: \"Feature\",\n properties: Object.assign({ _gpxType: \"rte\" }, extractProperties(node), getLineStyle(get1(node, \"extensions\"))),\n geometry: {\n type: \"LineString\",\n coordinates: line.line,\n },\n };\n}\nfunction getTrack(node) {\n const segments = $(node, \"trkseg\");\n const track = [];\n const times = [];\n const extractedLines = [];\n for (const segment of segments) {\n const line = getPoints$1(segment, \"trkpt\");\n if (line) {\n extractedLines.push(line);\n if (line.times && line.times.length)\n times.push(line.times);\n }\n }\n if (extractedLines.length === 0)\n return null;\n const multi = extractedLines.length > 1;\n const properties = Object.assign({ _gpxType: \"trk\" }, extractProperties(node), getLineStyle(get1(node, \"extensions\")), times.length\n ? {\n coordinateProperties: {\n times: multi ? times : times[0],\n },\n }\n : {});\n for (const line of extractedLines) {\n track.push(line.line);\n if (!properties.coordinateProperties) {\n properties.coordinateProperties = {};\n }\n const props = properties.coordinateProperties;\n const entries = Object.entries(line.extendedValues);\n for (let i = 0; i < entries.length; i++) {\n const [name, val] = entries[i];\n if (multi) {\n if (!props[name]) {\n props[name] = extractedLines.map((line) => new Array(line.line.length).fill(null));\n }\n props[name][i] = val;\n }\n else {\n props[name] = val;\n }\n }\n }\n return {\n type: \"Feature\",\n properties: properties,\n geometry: multi\n ? {\n type: \"MultiLineString\",\n coordinates: track,\n }\n : {\n type: \"LineString\",\n coordinates: track[0],\n },\n };\n}\n/**\n * Extract a point, if possible, from a given node,\n * which is usually a wpt or trkpt\n */\nfunction getPoint(node) {\n const properties = Object.assign(extractProperties(node), getMulti(node, [\"sym\"]));\n const pair = coordPair$1(node);\n if (!pair)\n return null;\n return {\n type: \"Feature\",\n properties,\n geometry: {\n type: \"Point\",\n coordinates: pair.coordinates,\n },\n };\n}\n/**\n * Convert GPX to GeoJSON incrementally, returning\n * a [Generator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators)\n * that yields output feature by feature.\n */\nfunction* gpxGen(node) {\n for (const track of $(node, \"trk\")) {\n const feature = getTrack(track);\n if (feature)\n yield feature;\n }\n for (const route of $(node, \"rte\")) {\n const feature = getRoute(route);\n if (feature)\n yield feature;\n }\n for (const waypoint of $(node, \"wpt\")) {\n const point = getPoint(waypoint);\n if (point)\n yield point;\n }\n}\n/**\n *\n * Convert a GPX document to GeoJSON. The first argument, `doc`, must be a GPX\n * document as an XML DOM - not as a string. You can get this using jQuery's default\n * `.ajax` function or using a bare XMLHttpRequest with the `.response` property\n * holding an XML DOM.\n *\n * The output is a JavaScript object of GeoJSON data, same as `.kml` outputs, with the\n * addition of a `_gpxType` property on each `LineString` feature that indicates whether\n * the feature was encoded as a route (`rte`) or track (`trk`) in the GPX document.\n */\nfunction gpx(node) {\n return {\n type: \"FeatureCollection\",\n features: Array.from(gpxGen(node)),\n };\n}\n\nconst EXTENSIONS_NS = \"http://www.garmin.com/xmlschemas/ActivityExtension/v2\";\nconst TRACKPOINT_ATTRIBUTES = [\n [\"heartRate\", \"heartRates\"],\n [\"Cadence\", \"cadences\"],\n // Extended Trackpoint attributes\n [\"Speed\", \"speeds\"],\n [\"Watts\", \"watts\"],\n];\nconst LAP_ATTRIBUTES = [\n [\"TotalTimeSeconds\", \"totalTimeSeconds\"],\n [\"DistanceMeters\", \"distanceMeters\"],\n [\"MaximumSpeed\", \"maxSpeed\"],\n [\"AverageHeartRateBpm\", \"avgHeartRate\"],\n [\"MaximumHeartRateBpm\", \"maxHeartRate\"],\n // Extended Lap attributes\n [\"AvgSpeed\", \"avgSpeed\"],\n [\"AvgWatts\", \"avgWatts\"],\n [\"MaxWatts\", \"maxWatts\"],\n];\nfunction getProperties(node, attributeNames) {\n const properties = [];\n for (const [tag, alias] of attributeNames) {\n let elem = get1(node, tag);\n if (!elem) {\n const elements = node.getElementsByTagNameNS(EXTENSIONS_NS, tag);\n if (elements.length) {\n elem = elements[0];\n }\n }\n const val = parseFloat(nodeVal(elem));\n if (!isNaN(val)) {\n properties.push([alias, val]);\n }\n }\n return properties;\n}\nfunction coordPair(node) {\n const ll = [num1(node, \"LongitudeDegrees\"), num1(node, \"LatitudeDegrees\")];\n if (ll[0] === undefined ||\n isNaN(ll[0]) ||\n ll[1] === undefined ||\n isNaN(ll[1])) {\n return null;\n }\n const heartRate = get1(node, \"HeartRateBpm\");\n const time = nodeVal(get1(node, \"Time\"));\n get1(node, \"AltitudeMeters\", (alt) => {\n const a = parseFloat(nodeVal(alt));\n if (!isNaN(a)) {\n ll.push(a);\n }\n });\n return {\n coordinates: ll,\n time: time || null,\n heartRate: heartRate ? parseFloat(nodeVal(heartRate)) : null,\n extensions: getProperties(node, TRACKPOINT_ATTRIBUTES),\n };\n}\nfunction getPoints(node) {\n const pts = $(node, \"Trackpoint\");\n const line = [];\n const times = [];\n const heartRates = [];\n if (pts.length < 2)\n return null; // Invalid line in GeoJSON\n const extendedProperties = {};\n const result = { extendedProperties };\n for (let i = 0; i < pts.length; i++) {\n const c = coordPair(pts[i]);\n if (c === null)\n continue;\n line.push(c.coordinates);\n const { time, heartRate, extensions } = c;\n if (time)\n times.push(time);\n if (heartRate)\n heartRates.push(heartRate);\n for (const [alias, value] of extensions) {\n if (!extendedProperties[alias]) {\n extendedProperties[alias] = Array(pts.length).fill(null);\n }\n extendedProperties[alias][i] = value;\n }\n }\n if (line.length < 2)\n return null;\n return Object.assign(result, {\n line: line,\n times: times,\n heartRates: heartRates,\n });\n}\nfunction getLap(node) {\n const segments = $(node, \"Track\");\n const track = [];\n const times = [];\n const heartRates = [];\n const allExtendedProperties = [];\n let line;\n const properties = Object.assign(Object.fromEntries(getProperties(node, LAP_ATTRIBUTES)), get(node, \"Name\", (nameElement) => {\n return { name: nodeVal(nameElement) };\n }));\n for (const segment of segments) {\n line = getPoints(segment);\n if (line) {\n track.push(line.line);\n if (line.times.length)\n times.push(line.times);\n if (line.heartRates.length)\n heartRates.push(line.heartRates);\n allExtendedProperties.push(line.extendedProperties);\n }\n }\n for (let i = 0; i < allExtendedProperties.length; i++) {\n const extendedProperties = allExtendedProperties[i];\n for (const property in extendedProperties) {\n if (segments.length === 1) {\n if (line) {\n properties[property] = line.extendedProperties[property];\n }\n }\n else {\n if (!properties[property]) {\n properties[property] = track.map((track) => Array(track.length).fill(null));\n }\n properties[property][i] = extendedProperties[property];\n }\n }\n }\n if (track.length === 0)\n return null;\n if (times.length || heartRates.length) {\n properties.coordinateProperties = Object.assign(times.length\n ? {\n times: track.length === 1 ? times[0] : times,\n }\n : {}, heartRates.length\n ? {\n heart: track.length === 1 ? heartRates[0] : heartRates,\n }\n : {});\n }\n return {\n type: \"Feature\",\n properties: properties,\n geometry: track.length === 1\n ? {\n type: \"LineString\",\n coordinates: track[0],\n }\n : {\n type: \"MultiLineString\",\n coordinates: track,\n },\n };\n}\n/**\n * Incrementally convert a TCX document to GeoJSON. The\n * first argument, `doc`, must be a TCX\n * document as an XML DOM - not as a string.\n */\nfunction* tcxGen(node) {\n for (const lap of $(node, \"Lap\")) {\n const feature = getLap(lap);\n if (feature)\n yield feature;\n }\n for (const course of $(node, \"Courses\")) {\n const feature = getLap(course);\n if (feature)\n yield feature;\n }\n}\n/**\n * Convert a TCX document to GeoJSON. The first argument, `doc`, must be a TCX\n * document as an XML DOM - not as a string.\n */\nfunction tcx(node) {\n return {\n type: \"FeatureCollection\",\n features: Array.from(tcxGen(node)),\n };\n}\n\nfunction fixColor(v, prefix) {\n const properties = {};\n const colorProp = prefix == \"stroke\" || prefix === \"fill\" ? prefix : prefix + \"-color\";\n if (v[0] === \"#\") {\n v = v.substring(1);\n }\n if (v.length === 6 || v.length === 3) {\n properties[colorProp] = \"#\" + v;\n }\n else if (v.length === 8) {\n properties[prefix + \"-opacity\"] = parseInt(v.substring(0, 2), 16) / 255;\n properties[colorProp] =\n \"#\" + v.substring(6, 8) + v.substring(4, 6) + v.substring(2, 4);\n }\n return properties;\n}\n\nfunction numericProperty(node, source, target) {\n const properties = {};\n num1(node, source, (val) => {\n properties[target] = val;\n });\n return properties;\n}\nfunction getColor(node, output) {\n return get(node, \"color\", (elem) => fixColor(nodeVal(elem), output));\n}\nfunction extractIconHref(node) {\n return get(node, \"Icon\", (icon, properties) => {\n val1(icon, \"href\", (href) => {\n properties.icon = href;\n });\n return properties;\n });\n}\nfunction extractIcon(node) {\n return get(node, \"IconStyle\", (iconStyle) => {\n return Object.assign(getColor(iconStyle, \"icon\"), numericProperty(iconStyle, \"scale\", \"icon-scale\"), numericProperty(iconStyle, \"heading\", \"icon-heading\"), get(iconStyle, \"hotSpot\", (hotspot) => {\n const left = parseFloat(hotspot.getAttribute(\"x\") || \"\");\n const top = parseFloat(hotspot.getAttribute(\"y\") || \"\");\n const xunits = hotspot.getAttribute(\"xunits\") || \"\";\n const yunits = hotspot.getAttribute(\"yunits\") || \"\";\n if (!isNaN(left) && !isNaN(top))\n return {\n \"icon-offset\": [left, top],\n \"icon-offset-units\": [xunits, yunits],\n };\n return {};\n }), extractIconHref(iconStyle));\n });\n}\nfunction extractLabel(node) {\n return get(node, \"LabelStyle\", (labelStyle) => {\n return Object.assign(getColor(labelStyle, \"label\"), numericProperty(labelStyle, \"scale\", \"label-scale\"));\n });\n}\nfunction extractLine(node) {\n return get(node, \"LineStyle\", (lineStyle) => {\n return Object.assign(getColor(lineStyle, \"stroke\"), numericProperty(lineStyle, \"width\", \"stroke-width\"));\n });\n}\nfunction extractPoly(node) {\n return get(node, \"PolyStyle\", (polyStyle, properties) => {\n return Object.assign(properties, get(polyStyle, \"color\", (elem) => fixColor(nodeVal(elem), \"fill\")), val1(polyStyle, \"fill\", (fill) => {\n if (fill === \"0\")\n return { \"fill-opacity\": 0 };\n }), val1(polyStyle, \"outline\", (outline) => {\n if (outline === \"0\")\n return { \"stroke-opacity\": 0 };\n }));\n });\n}\nfunction extractStyle(node) {\n return Object.assign({}, extractPoly(node), extractLine(node), extractLabel(node), extractIcon(node));\n}\n\nconst toNumber = (x) => Number(x);\nconst typeConverters = {\n string: (x) => x,\n int: toNumber,\n uint: toNumber,\n short: toNumber,\n ushort: toNumber,\n float: toNumber,\n double: toNumber,\n bool: (x) => Boolean(x),\n};\nfunction extractExtendedData(node, schema) {\n return get(node, \"ExtendedData\", (extendedData, properties) => {\n for (const data of $(extendedData, \"Data\")) {\n properties[data.getAttribute(\"name\") || \"\"] = nodeVal(get1(data, \"value\"));\n }\n for (const simpleData of $(extendedData, \"SimpleData\")) {\n const name = simpleData.getAttribute(\"name\") || \"\";\n const typeConverter = schema[name] || typeConverters.string;\n properties[name] = typeConverter(nodeVal(simpleData));\n }\n return properties;\n });\n}\nfunction getMaybeHTMLDescription(node) {\n const descriptionNode = get1(node, \"description\");\n for (const c of Array.from(descriptionNode?.childNodes || [])) {\n if (c.nodeType === 4) {\n return {\n description: {\n \"@type\": \"html\",\n value: nodeVal(c),\n },\n };\n }\n }\n return {};\n}\nfunction extractTimeSpan(node) {\n return get(node, \"TimeSpan\", (timeSpan) => {\n return {\n timespan: {\n begin: nodeVal(get1(timeSpan, \"begin\")),\n end: nodeVal(get1(timeSpan, \"end\")),\n },\n };\n });\n}\nfunction extractTimeStamp(node) {\n return get(node, \"TimeStamp\", (timeStamp) => {\n return { timestamp: nodeVal(get1(timeStamp, \"when\")) };\n });\n}\nfunction extractCascadedStyle(node, styleMap) {\n return val1(node, \"styleUrl\", (styleUrl) => {\n styleUrl = normalizeId(styleUrl);\n if (styleMap[styleUrl]) {\n return Object.assign({ styleUrl }, styleMap[styleUrl]);\n }\n // For backward-compatibility. Should we still include\n // styleUrl even if it's not resolved?\n return { styleUrl };\n });\n}\n\nconst removeSpace = /\\s*/g;\nconst trimSpace = /^\\s*|\\s*$/g;\nconst splitSpace = /\\s+/;\n/**\n * Get one coordinate from a coordinate array, if any\n */\nfunction coord1(value) {\n return value\n .replace(removeSpace, \"\")\n .split(\",\")\n .map(parseFloat)\n .filter((num) => !isNaN(num))\n .slice(0, 3);\n}\n/**\n * Get all coordinates from a coordinate array as [[],[]]\n */\nfunction coord(value) {\n return value\n .replace(trimSpace, \"\")\n .split(splitSpace)\n .map(coord1)\n .filter((coord) => {\n return coord.length >= 2;\n });\n}\nfunction gxCoords(node) {\n let elems = $(node, \"coord\");\n if (elems.length === 0) {\n elems = $ns(node, \"coord\", \"*\");\n }\n const coordinates = elems.map((elem) => {\n return nodeVal(elem).split(\" \").map(parseFloat);\n });\n if (coordinates.length === 0) {\n return null;\n }\n return {\n geometry: coordinates.length > 2\n ? {\n type: \"LineString\",\n coordinates,\n }\n : {\n type: \"Point\",\n coordinates: coordinates[0],\n },\n times: $(node, \"when\").map((elem) => nodeVal(elem)),\n };\n}\nfunction fixRing(ring) {\n if (ring.length === 0)\n return ring;\n const first = ring[0];\n const last = ring[ring.length - 1];\n let equal = true;\n for (let i = 0; i < Math.max(first.length, last.length); i++) {\n if (first[i] !== last[i]) {\n equal = false;\n break;\n }\n }\n if (!equal) {\n return ring.concat([ring[0]]);\n }\n return ring;\n}\nfunction getCoordinates(node) {\n return nodeVal(get1(node, \"coordinates\"));\n}\nfunction getGeometry(node) {\n let geometries = [];\n let coordTimes = [];\n for (let i = 0; i < node.childNodes.length; i++) {\n const child = node.childNodes.item(i);\n if (isElement(child)) {\n switch (child.tagName) {\n case \"MultiGeometry\":\n case \"MultiTrack\":\n case \"gx:MultiTrack\": {\n const childGeometries = getGeometry(child);\n geometries = geometries.concat(childGeometries.geometries);\n coordTimes = coordTimes.concat(childGeometries.coordTimes);\n break;\n }\n case \"Point\": {\n const coordinates = coord1(getCoordinates(child));\n if (coordinates.length >= 2) {\n geometries.push({\n type: \"Point\",\n coordinates,\n });\n }\n break;\n }\n case \"LinearRing\":\n case \"LineString\": {\n const coordinates = coord(getCoordinates(child));\n if (coordinates.length >= 2) {\n geometries.push({\n type: \"LineString\",\n coordinates,\n });\n }\n break;\n }\n case \"Polygon\": {\n const coords = [];\n for (const linearRing of $(child, \"LinearRing\")) {\n const ring = fixRing(coord(getCoordinates(linearRing)));\n if (ring.length >= 4) {\n coords.push(ring);\n }\n }\n if (coords.length) {\n geometries.push({\n type: \"Polygon\",\n coordinates: coords,\n });\n }\n break;\n }\n case \"Track\":\n case \"gx:Track\": {\n const gx = gxCoords(child);\n if (!gx)\n break;\n const { times, geometry } = gx;\n geometries.push(geometry);\n if (times.length)\n coordTimes.push(times);\n break;\n }\n }\n }\n }\n return {\n geometries,\n coordTimes,\n };\n}\n\nfunction geometryListToGeometry(geometries) {\n return geometries.length === 0\n ? null\n : geometries.length === 1\n ? geometries[0]\n : {\n type: \"GeometryCollection\",\n geometries,\n };\n}\nfunction getPlacemark(node, styleMap, schema) {\n const { coordTimes, geometries } = getGeometry(node);\n const feature = {\n type: \"Feature\",\n geometry: geometryListToGeometry(geometries),\n properties: Object.assign(getMulti(node, [\n \"name\",\n \"address\",\n \"visibility\",\n \"open\",\n \"phoneNumber\",\n \"description\",\n ]), getMaybeHTMLDescription(node), extractCascadedStyle(node, styleMap), extractStyle(node), extractExtendedData(node, schema), extractTimeSpan(node), extractTimeStamp(node), coordTimes.length\n ? {\n coordinateProperties: {\n times: coordTimes.length === 1 ? coordTimes[0] : coordTimes,\n },\n }\n : {}),\n };\n if (feature.properties?.visibility !== undefined) {\n feature.properties.visibility = feature.properties.visibility !== \"0\";\n }\n const id = node.getAttribute(\"id\");\n if (id !== null && id !== \"\")\n feature.id = id;\n return feature;\n}\n\nfunction getGroundOverlayBox(node) {\n const latLonQuad = get1(node, \"gx:LatLonQuad\");\n if (latLonQuad) {\n const ring = fixRing(coord(getCoordinates(node)));\n return {\n type: \"Polygon\",\n coordinates: [ring],\n };\n }\n return getLatLonBox(node);\n}\nconst DEGREES_TO_RADIANS = Math.PI / 180;\nfunction rotateBox(bbox, coordinates, rotation) {\n const center = [(bbox[0] + bbox[2]) / 2, (bbox[1] + bbox[3]) / 2];\n return [\n coordinates[0].map((coordinate) => {\n const dy = coordinate[1] - center[1];\n const dx = coordinate[0] - center[0];\n const distance = Math.sqrt(Math.pow(dy, 2) + Math.pow(dx, 2));\n const angle = Math.atan2(dy, dx) - rotation * DEGREES_TO_RADIANS;\n return [\n center[0] + Math.cos(angle) * distance,\n center[1] + Math.sin(angle) * distance,\n ];\n }),\n ];\n}\nfunction getLatLonBox(node) {\n const latLonBox = get1(node, \"LatLonBox\");\n if (latLonBox) {\n const north = num1(latLonBox, \"north\");\n const west = num1(latLonBox, \"west\");\n const east = num1(latLonBox, \"east\");\n const south = num1(latLonBox, \"south\");\n const rotation = num1(latLonBox, \"rotation\");\n if (typeof north === \"number\" &&\n typeof south === \"number\" &&\n typeof west === \"number\" &&\n typeof east === \"number\") {\n const bbox = [west, south, east, north];\n let coordinates = [\n [\n [west, north],\n [east, north],\n [east, south],\n [west, south],\n [west, north], // top left (again)\n ],\n ];\n if (typeof rotation === \"number\") {\n coordinates = rotateBox(bbox, coordinates, rotation);\n }\n return {\n type: \"Polygon\",\n coordinates,\n };\n }\n }\n return null;\n}\nfunction getGroundOverlay(node, styleMap, schema) {\n const geometry = getGroundOverlayBox(node);\n const feature = {\n type: \"Feature\",\n geometry,\n properties: Object.assign(\n /**\n * Related to\n * https://gist.github.com/tmcw/037a1cb6660d74a392e9da7446540f46\n */\n { \"@geometry-type\": \"groundoverlay\" }, getMulti(node, [\n \"name\",\n \"address\",\n \"visibility\",\n \"open\",\n \"phoneNumber\",\n \"description\",\n ]), getMaybeHTMLDescription(node), extractCascadedStyle(node, styleMap), extractStyle(node), extractIconHref(node), extractExtendedData(node, schema), extractTimeSpan(node), extractTimeStamp(node)),\n };\n if (feature.properties?.visibility !== undefined) {\n feature.properties.visibility = feature.properties.visibility !== \"0\";\n }\n const id = node.getAttribute(\"id\");\n if (id !== null && id !== \"\")\n feature.id = id;\n return feature;\n}\n\nfunction getStyleId(style) {\n let id = style.getAttribute(\"id\");\n const parentNode = style.parentNode;\n if (!id &&\n isElement(parentNode) &&\n parentNode.localName === \"CascadingStyle\") {\n id = parentNode.getAttribute(\"kml:id\") || parentNode.getAttribute(\"id\");\n }\n return normalizeId(id || \"\");\n}\nfunction buildStyleMap(node) {\n const styleMap = {};\n for (const style of $(node, \"Style\")) {\n styleMap[getStyleId(style)] = extractStyle(style);\n }\n for (const map of $(node, \"StyleMap\")) {\n const id = normalizeId(map.getAttribute(\"id\") || \"\");\n val1(map, \"styleUrl\", (styleUrl) => {\n styleUrl = normalizeId(styleUrl);\n if (styleMap[styleUrl]) {\n styleMap[id] = styleMap[styleUrl];\n }\n });\n }\n return styleMap;\n}\nfunction buildSchema(node) {\n const schema = {};\n for (const field of $(node, \"SimpleField\")) {\n schema[field.getAttribute(\"name\") || \"\"] =\n typeConverters[field.getAttribute(\"type\") || \"\"] ||\n typeConverters[\"string\"];\n }\n return schema;\n}\nconst FOLDER_PROPS = [\n \"name\",\n \"visibility\",\n \"open\",\n \"address\",\n \"description\",\n \"phoneNumber\",\n \"visibility\",\n];\nfunction getFolder(node) {\n const meta = {};\n for (const child of Array.from(node.childNodes)) {\n if (isElement(child) && FOLDER_PROPS.includes(child.tagName)) {\n meta[child.tagName] = nodeVal(child);\n }\n }\n return {\n type: \"folder\",\n meta,\n children: [],\n };\n}\n/**\n * Yield a nested tree with KML folder structure\n *\n * This generates a tree with the given structure:\n *\n * ```js\n * {\n * \"type\": \"root\",\n * \"children\": [\n * {\n * \"type\": \"folder\",\n * \"meta\": {\n * \"name\": \"Test\"\n * },\n * \"children\": [\n * // ...features and folders\n * ]\n * }\n * // ...features\n * ]\n * }\n * ```\n *\n * ### GroundOverlay\n *\n * GroundOverlay elements are converted into\n * `Feature` objects with `Polygon` geometries,\n * a property like:\n *\n * ```json\n * {\n * \"@geometry-type\": \"groundoverlay\"\n * }\n * ```\n *\n * And the ground overlay's image URL in the `href`\n * property. Ground overlays will need to be displayed\n * with a separate method to other features, depending\n * on which map framework you're using.\n */\nfunction kmlWithFolders(node) {\n const styleMap = buildStyleMap(node);\n const schema = buildSchema(node);\n const tree = { type: \"root\", children: [] };\n function traverse(node, pointer) {\n if (isElement(node)) {\n switch (node.tagName) {\n case \"GroundOverlay\": {\n const placemark = getGroundOverlay(node, styleMap, schema);\n if (placemark) {\n pointer.children.push(placemark);\n }\n break;\n }\n case \"Placemark\": {\n const placemark = getPlacemark(node, styleMap, schema);\n if (placemark) {\n pointer.children.push(placemark);\n }\n break;\n }\n case \"Folder\": {\n const folder = getFolder(node);\n pointer.children.push(folder);\n pointer = folder;\n break;\n }\n }\n }\n if (node.childNodes) {\n for (let i = 0; i < node.childNodes.length; i++) {\n traverse(node.childNodes[i], pointer);\n }\n }\n }\n traverse(node, tree);\n return tree;\n}\n/**\n * Convert KML to GeoJSON incrementally, returning\n * a [Generator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators)\n * that yields output feature by feature.\n */\nfunction* kmlGen(node) {\n const styleMap = buildStyleMap(node);\n const schema = buildSchema(node);\n for (const placemark of $(node, \"Placemark\")) {\n const feature = getPlacemark(placemark, styleMap, schema);\n if (feature)\n yield feature;\n }\n for (const groundOverlay of $(node, \"GroundOverlay\")) {\n const feature = getGroundOverlay(groundOverlay, styleMap, schema);\n if (feature)\n yield feature;\n }\n}\n/**\n * Convert a KML document to GeoJSON. The first argument, `doc`, must be a KML\n * document as an XML DOM - not as a string. You can get this using jQuery's default\n * `.ajax` function or using a bare XMLHttpRequest with the `.response` property\n * holding an XML DOM.\n *\n * The output is a JavaScript object of GeoJSON data. You can convert it to a string\n * with [JSON.stringify](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify)\n * or use it directly in libraries.\n */\nfunction kml(node) {\n return {\n type: \"FeatureCollection\",\n features: Array.from(kmlGen(node)),\n };\n}\n\nexport { gpx, gpxGen, kml, kmlGen, kmlWithFolders, tcx, tcxGen };\n//# sourceMappingURL=togeojson.es.mjs.map\n","import { watch, ref, provide, h, inject, onUnmounted, onBeforeUnmount, onMounted, nextTick, render as render$3, reactive, computed } from 'vue';\n\nconst debounce = (fn, time) => {\n let timeout;\n\n return function (...args) {\n const context = this;\n if (timeout) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(() => {\n fn.apply(context, args);\n timeout = null;\n }, time);\n };\n};\n\nconst capitalizeFirstLetter = (string) => {\n if (!string || typeof string.charAt !== \"function\") {\n return string;\n }\n return string.charAt(0).toUpperCase() + string.slice(1);\n};\n\nconst isFunction = (x) => typeof x === \"function\";\n\nconst propsBinder = (methods, leafletElement, props) => {\n for (const key in props) {\n const setMethodName = \"set\" + capitalizeFirstLetter(key);\n if (methods[setMethodName]) {\n watch(\n () => props[key],\n (newVal, oldVal) => {\n methods[setMethodName](newVal, oldVal);\n }\n );\n } else if (leafletElement[setMethodName]) {\n watch(\n () => props[key],\n (newVal) => {\n leafletElement[setMethodName](newVal);\n }\n );\n }\n }\n};\n\nconst remapEvents = (contextAttrs) => {\n const result = {};\n for (const attrName in contextAttrs) {\n if (\n attrName.startsWith(\"on\") &&\n !attrName.startsWith(\"onUpdate\") &&\n attrName !== \"onReady\"\n ) {\n const eventName = attrName.slice(2).toLocaleLowerCase();\n result[eventName] = contextAttrs[attrName];\n }\n }\n return result;\n};\n\nconst resetWebpackIcon = async (Icon) => {\n const modules = await Promise.all([\n import('leaflet/dist/images/marker-icon-2x.png'),\n import('leaflet/dist/images/marker-icon.png'),\n import('leaflet/dist/images/marker-shadow.png'),\n ]);\n\n delete Icon.Default.prototype._getIconUrl;\n\n Icon.Default.mergeOptions({\n iconRetinaUrl: modules[0].default,\n iconUrl: modules[1].default,\n shadowUrl: modules[2].default,\n });\n};\n\n/**\n * Wraps a placeholder function and provides it with the given name.\n * The wrapper can later be updated with {@link updateLeafletWrapper}\n * to provide a different function.\n *\n * @param {String} methodName Key used to provide the wrapper function\n */\nconst provideLeafletWrapper = (methodName) => {\n const wrapped = ref(() =>\n console.warn(`Method ${methodName} has been invoked without being replaced`)\n );\n const wrapper = (...args) => wrapped.value(...args);\n // eslint-disable-next-line vue/no-ref-as-operand\n wrapper.wrapped = wrapped;\n provide(methodName, wrapper);\n\n return wrapper;\n};\n\n/**\n * Change the function that will be executed when an injected Leaflet wrapper\n * is invoked.\n *\n * @param {*} wrapper Provided wrapper whose wrapped function is to be updated\n * @param {function} leafletMethod New method to be wrapped by the wrapper\n */\nconst updateLeafletWrapper = (wrapper, leafletMethod) =>\n (wrapper.wrapped.value = leafletMethod);\n\nconst WINDOW_OR_GLOBAL =\n (typeof self === \"object\" && self.self === self && self) ||\n (typeof global === \"object\" && global.global === global && global) ||\n undefined;\n\nconst GLOBAL_LEAFLET_OPT = \"useGlobalLeaflet\";\n\nconst props = {\n options: {\n type: Object,\n default: () => ({}),\n },\n};\n\nconst setup = (props) => {\n return { options: props.options, methods: {} };\n};\n\nconst props$1 = {\n ...props,\n pane: {\n type: String,\n default: \"overlayPane\",\n },\n attribution: {\n type: String,\n default: null,\n },\n name: {\n type: String,\n custom: true,\n default: undefined,\n },\n layerType: {\n type: String,\n custom: true,\n default: undefined,\n },\n visible: {\n type: Boolean,\n custom: true,\n default: true,\n },\n};\n\nconst setup$1 = (props, leafletRef, context) => {\n const addLayer = inject(\"addLayer\");\n const removeLayer = inject(\"removeLayer\");\n const {\n options: componentOptions,\n methods: componentMethods,\n } = setup(props);\n\n const options = {\n ...componentOptions,\n attribution: props.attribution,\n pane: props.pane,\n };\n\n const addThisLayer = () => addLayer({ leafletObject: leafletRef.value });\n const removeThisLayer = () =>\n removeLayer({ leafletObject: leafletRef.value });\n\n const methods = {\n ...componentMethods,\n setAttribution(val, old) {\n const attributionControl = this.$parent.leafletObject.attributionControl;\n attributionControl.removeAttribution(old).addAttribution(val);\n },\n setName() {\n removeThisLayer();\n if (props.visible) {\n addThisLayer();\n }\n },\n setLayerType() {\n removeThisLayer();\n if (props.visible) {\n addThisLayer();\n }\n },\n setVisible(isVisible) {\n if (leafletRef.value) {\n if (isVisible) {\n addThisLayer();\n } else {\n removeThisLayer();\n }\n }\n },\n bindPopup({ leafletObject }) {\n if (!leafletRef.value || !isFunction(leafletRef.value.bindPopup)) {\n console.warn(\n \"Attempt to bind popup before bindPopup method available on layer.\"\n );\n\n return;\n }\n\n leafletRef.value.bindPopup(leafletObject);\n },\n bindTooltip({ leafletObject }) {\n if (!leafletRef.value || !isFunction(leafletRef.value.bindTooltip)) {\n console.warn(\n \"Attempt to bind tooltip before bindTooltip method available on layer.\"\n );\n\n return;\n }\n\n leafletRef.value.bindTooltip(leafletObject);\n },\n unbindTooltip() {\n const tooltip =\n leafletRef.value && isFunction(leafletRef.value.getTooltip)\n ? leafletRef.value.getTooltip()\n : null;\n if (tooltip && isFunction(tooltip.unbindTooltip)) {\n tooltip.unbindTooltip();\n }\n },\n unbindPopup() {\n const popup =\n leafletRef.value && isFunction(leafletRef.value.getPopup)\n ? leafletRef.value.getPopup()\n : null;\n if (popup && isFunction(popup.unbindPopup)) {\n popup.unbindPopup();\n }\n },\n updateVisibleProp(value) {\n /**\n * Triggers when the visible prop needs to be updated\n * @type {boolean}\n * @property {boolean} value - value of the visible property\n */\n context.emit(\"update:visible\", value);\n },\n };\n\n provide(\"bindPopup\", methods.bindPopup);\n provide(\"bindTooltip\", methods.bindTooltip);\n provide(\"unbindTooltip\", methods.unbindTooltip);\n provide(\"unbindPopup\", methods.unbindPopup);\n\n onUnmounted(() => {\n methods.unbindPopup();\n methods.unbindTooltip();\n removeThisLayer();\n });\n\n return { options, methods };\n};\n\nconst render = (ready, slots) => {\n if (ready && slots.default) {\n return h(\"div\", { style: { display: \"none\" } }, slots.default());\n }\n};\n\nconst props$2 = {\n ...props,\n interactive: {\n type: Boolean,\n default: true,\n },\n bubblingMouseEvents: {\n type: Boolean,\n default: true,\n },\n};\n\nconst setup$2 = (props) => {\n const { options: componentOptions, methods } = setup(props);\n const options = {\n ...componentOptions,\n interactive: props.interactive,\n bubblingMouseEvents: props.bubblingMouseEvents,\n };\n\n return { options, methods };\n};\n\nconst props$3 = {\n ...props$1,\n ...props$2,\n stroke: {\n type: Boolean,\n custom: true,\n default: true,\n },\n color: {\n type: String,\n custom: true,\n default: \"#3388ff\",\n },\n weight: {\n type: Number,\n custom: true,\n default: 3,\n },\n opacity: {\n type: Number,\n custom: true,\n default: 1.0,\n },\n lineCap: {\n type: String,\n custom: true,\n default: \"round\",\n },\n lineJoin: {\n type: String,\n custom: true,\n default: \"round\",\n },\n dashArray: {\n type: String,\n custom: true,\n default: null,\n },\n dashOffset: {\n type: String,\n custom: true,\n default: null,\n },\n fill: {\n type: Boolean,\n custom: true,\n default: false,\n },\n fillColor: {\n type: String,\n custom: true,\n default: \"#3388ff\",\n },\n fillOpacity: {\n type: Number,\n custom: true,\n default: 0.2,\n },\n fillRule: {\n type: String,\n custom: true,\n default: \"evenodd\",\n },\n className: {\n type: String,\n custom: true,\n default: null,\n },\n};\n\nconst setup$3 = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n props,\n leafletRef,\n context\n );\n const {\n options: interactiveLayerOptions,\n methods: interactiveLayerMethods,\n } = setup$2(props);\n\n const removeLayer = inject(\"removeLayer\");\n\n const options = {\n ...layerOptions,\n ...interactiveLayerOptions,\n stroke: props.stroke,\n color: props.color,\n weight: props.weight,\n opacity: props.opacity,\n lineCap: props.lineCap,\n lineJoin: props.lineJoin,\n dashArray: props.dashArray,\n dashOffset: props.dashOffset,\n fill: props.fill,\n fillColor: props.fillColor,\n fillOpacity: props.fillOpacity,\n fillRule: props.fillRule,\n className: props.className,\n };\n const methods = {\n ...layerMethods,\n ...interactiveLayerMethods,\n setStroke(stroke) {\n leafletRef.value.setStyle({ stroke });\n },\n setColor(color) {\n leafletRef.value.setStyle({ color });\n },\n setWeight(weight) {\n leafletRef.value.setStyle({ weight });\n },\n setOpacity(opacity) {\n leafletRef.value.setStyle({ opacity });\n },\n setLineCap(lineCap) {\n leafletRef.value.setStyle({ lineCap });\n },\n setLineJoin(lineJoin) {\n leafletRef.value.setStyle({ lineJoin });\n },\n setDashArray(dashArray) {\n leafletRef.value.setStyle({ dashArray });\n },\n setDashOffset(dashOffset) {\n leafletRef.value.setStyle({ dashOffset });\n },\n setFill(fill) {\n leafletRef.value.setStyle({ fill });\n },\n setFillColor(fillColor) {\n leafletRef.value.setStyle({ fillColor });\n },\n setFillOpacity(fillOpacity) {\n leafletRef.value.setStyle({ fillOpacity });\n },\n setFillRule(fillRule) {\n leafletRef.value.setStyle({ fillRule });\n },\n setClassName(className) {\n leafletRef.value.setStyle({ className });\n },\n };\n\n onBeforeUnmount(() => {\n removeLayer({ leafletObject: leafletRef.value });\n });\n\n return { options, methods };\n};\n\nconst props$4 = {\n ...props$3,\n latLng: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n /**\n * Radius of the marker in pixels.\n */\n radius: {\n type: Number,\n default: null,\n },\n};\n\nconst setup$4 = (props, leafletRef, context) => {\n const { options: pathOptions, methods: pathMethods } = setup$3(\n props,\n leafletRef,\n context\n );\n const options = {\n ...pathOptions,\n ...props,\n };\n const methods = {\n ...pathMethods,\n setRadius(radius) {\n leafletRef.value.setRadius(radius);\n },\n setLatLng(latLng) {\n leafletRef.value.setLatLng(latLng);\n },\n };\n\n return { options, methods };\n};\n\nconst props$5 = {\n ...props$4,\n /**\n * Radius of the circle in meters.\n */\n radius: {\n type: Number,\n default: null,\n },\n};\n\nconst setup$5 = (props, leafletRef, context) => {\n const {\n options: circleMarkerOptions,\n methods: circleMarkerMethods,\n } = setup$4(props, leafletRef, context);\n\n const options = {\n ...circleMarkerOptions,\n ...props,\n };\n\n const methods = {\n ...circleMarkerMethods,\n };\n\n return { options, methods };\n};\n\n/**\n * Circle component, lets you add and personalize circles on the map\n */\nvar script = {\n name: \"LCircle\",\n props: props$5,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$5(props, leafletRef, context);\n\n onMounted(async () => {\n const { circle, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = circle(props.latLng, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript.__file = \"src/components/LCircle.vue\";\n\n/**\n * Circle Marker component, lets you add and personalize circle markers on the map\n */\nvar script$1 = {\n name: \"LCircleMarker\",\n props: props$4,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$4(props, leafletRef, context);\n\n onMounted(async () => {\n const { circleMarker, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = circleMarker(props.latLng, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$1.__file = \"src/components/LCircleMarker.vue\";\n\nconst props$6 = {\n ...props,\n position: {\n type: String,\n default: \"topright\",\n },\n};\n\nconst setup$6 = (props, leafletRef) => {\n const {\n options: componentOptions,\n methods: componentMethods,\n } = setup(props);\n const options = {\n ...componentOptions,\n position: props.position,\n };\n\n const methods = {\n ...componentMethods,\n setPosition(position) {\n if (leafletRef.value) {\n leafletRef.value.setPosition(position);\n }\n },\n };\n\n onUnmounted(() => {\n if (leafletRef.value) {\n leafletRef.value.remove();\n }\n });\n\n return { options, methods };\n};\n\nconst render$1 = (slots) => {\n if (slots.default) {\n return h(\"div\", { ref: \"root\" }, slots.default());\n }\n return null;\n};\n\nvar script$2 = {\n name: \"LControl\",\n props: {\n ...props$6,\n disableClickPropagation: {\n type: Boolean,\n custom: true,\n default: true,\n },\n disableScrollPropagation: {\n type: Boolean,\n custom: true,\n default: false,\n },\n },\n setup(props, context) {\n const leafletRef = ref({});\n const root = ref(null);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerControl = inject(\"registerControl\");\n\n const { options, methods } = setup$6(props, leafletRef);\n\n onMounted(async () => {\n const { Control, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n const LControl = Control.extend({\n onAdd() {\n return root.value;\n },\n });\n\n leafletRef.value = new LControl(options);\n propsBinder(methods, leafletRef.value, props);\n registerControl({ leafletObject: leafletRef.value });\n\n if (props.disableClickPropagation) {\n DomEvent.disableClickPropagation(root.value);\n }\n if (props.disableScrollPropagation) {\n DomEvent.disableScrollPropagation(root.value);\n }\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { root, leafletObject: leafletRef };\n },\n render() {\n return render$1(this.$slots);\n },\n};\n\nscript$2.__file = \"src/components/LControl.vue\";\n\nconst props$7 = {\n ...props$6,\n prefix: {\n type: String,\n default: \"Vue-Leaflet\",\n custom: true,\n },\n};\n\nconst setup$7 = (props, leafletRef) => {\n const { options: controlOptions, methods: controlMethods } = setup$6(\n props,\n leafletRef\n );\n const options = {\n ...controlOptions,\n prefix: props.prefix,\n };\n\n const methods = {\n ...controlMethods,\n setPrefix(prefix) {\n leafletRef.value.setPrefix(prefix);\n },\n };\n\n return { options, methods };\n};\n\nvar script$3 = {\n name: \"LControlAttribution\",\n props: props$7,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerControl = inject(\"registerControl\");\n\n const { options, methods } = setup$7(props, leafletRef);\n\n onMounted(async () => {\n const { control } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = control.attribution(options);\n propsBinder(methods, leafletRef.value, props);\n registerControl({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$3.__file = \"src/components/LControlAttribution.vue\";\n\nconst props$8 = {\n ...props$6,\n collapsed: {\n type: Boolean,\n default: true,\n },\n autoZIndex: {\n type: Boolean,\n default: true,\n },\n hideSingleBase: {\n type: Boolean,\n default: false,\n },\n sortLayers: {\n type: Boolean,\n default: false,\n },\n sortFunction: {\n type: Function,\n default: undefined,\n },\n};\n\nconst setup$8 = (props, leafletRef) => {\n const { options: controlOptions } = setup$6(props, leafletRef);\n const options = {\n ...controlOptions,\n collapsed: props.collapsed,\n autoZIndex: props.autoZIndex,\n hideSingleBase: props.hideSingleBase,\n sortLayers: props.sortLayers,\n sortFunction: props.sortFunction,\n };\n\n const methods = {\n addLayer(layer) {\n if (layer.layerType === \"base\") {\n leafletRef.value.addBaseLayer(layer.leafletObject, layer.name);\n } else if (layer.layerType === \"overlay\") {\n leafletRef.value.addOverlay(layer.leafletObject, layer.name);\n }\n },\n removeLayer(layer) {\n leafletRef.value.removeLayer(layer.leafletObject);\n },\n };\n return { options, methods };\n};\n\nvar script$4 = {\n name: \"LControlLayers\",\n props: props$8,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerLayerControl = inject(\"registerLayerControl\");\n\n const { options, methods } = setup$8(props, leafletRef);\n\n onMounted(async () => {\n const { control } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = control.layers(null, null, options);\n\n propsBinder(methods, leafletRef.value, props);\n\n registerLayerControl({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$4.__file = \"src/components/LControlLayers.vue\";\n\nconst props$9 = {\n ...props$6,\n maxWidth: {\n type: Number,\n default: 100,\n },\n metric: {\n type: Boolean,\n default: true,\n },\n imperial: {\n type: Boolean,\n default: true,\n },\n updateWhenIdle: {\n type: Boolean,\n default: false,\n },\n};\n\nconst setup$9 = (props, leafletRef) => {\n const { options: controlOptions, methods: controlMethods } = setup$6(\n props,\n leafletRef\n );\n const options = {\n ...controlOptions,\n maxWidth: props.maxWidth,\n metric: props.metric,\n imperial: props.imperial,\n updateWhenIdle: props.updateWhenIdle,\n };\n\n return { options, methods: controlMethods };\n};\n\nvar script$5 = {\n name: \"LControlScale\",\n props: props$9,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerControl = inject(\"registerControl\");\n\n const { options, methods } = setup$9(props, leafletRef);\n\n onMounted(async () => {\n const { control } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = control.scale(options);\n propsBinder(methods, leafletRef.value, props);\n registerControl({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$5.__file = \"src/components/LControlScale.vue\";\n\nconst props$a = {\n ...props$6,\n zoomInText: {\n type: String,\n default: \"+\",\n },\n zoomInTitle: {\n type: String,\n default: \"Zoom in\",\n },\n zoomOutText: {\n type: String,\n default: \"-\",\n },\n zoomOutTitle: {\n type: String,\n default: \"Zoom out\",\n },\n};\n\nconst setup$a = (props, leafletRef) => {\n const { options: controlOptions, methods: controlMethods } = setup$6(\n props,\n leafletRef\n );\n const options = {\n ...controlOptions,\n zoomInText: props.zoomInText,\n zoomInTitle: props.zoomInTitle,\n zoomOutText: props.zoomOutText,\n zoomOutTitle: props.zoomOutTitle,\n };\n\n return { options, methods: controlMethods };\n};\n\nvar script$6 = {\n name: \"LControlZoom\",\n props: props$a,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerControl = inject(\"registerControl\");\n\n const { options, methods } = setup$a(props, leafletRef);\n\n onMounted(async () => {\n const { control } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = control.zoom(options);\n propsBinder(methods, leafletRef.value, props);\n registerControl({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$6.__file = \"src/components/LControlZoom.vue\";\n\nconst props$b = {\n ...props$1,\n};\n\nconst setup$b = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n props,\n leafletRef,\n context\n );\n\n const options = {\n ...layerOptions,\n };\n\n const methods = {\n ...layerMethods,\n addLayer(layer) {\n leafletRef.value.addLayer(layer.leafletObject);\n },\n removeLayer(layer) {\n leafletRef.value.removeLayer(layer.leafletObject);\n },\n };\n\n provide(\"addLayer\", methods.addLayer);\n provide(\"removeLayer\", methods.removeLayer);\n\n return { options, methods };\n};\n\nconst props$c = {\n ...props$b,\n};\n\nconst setup$c = (props, leafletRef) => {\n const { options: layerOptions, methods: layerGroupMethods } = setup$b(\n props,\n leafletRef\n );\n\n const options = {\n ...layerOptions,\n ...props,\n };\n\n const methods = {\n ...layerGroupMethods,\n };\n\n return { options, methods };\n};\n\nvar script$7 = {\n props: props$c,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { methods, options } = setup$c(props, leafletRef);\n\n onMounted(async () => {\n const { featureGroup, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = featureGroup(options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$7.__file = \"src/components/LFeatureGroup.vue\";\n\nconst props$d = {\n ...props$b,\n geojson: {\n type: [Object, Array],\n default: () => ({}),\n },\n};\n\nconst setup$d = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerGroupMethods } = setup$b(\n props,\n leafletRef,\n context\n );\n\n const options = {\n ...layerOptions,\n ...props,\n };\n\n const methods = {\n ...layerGroupMethods,\n setGeojson(newVal) {\n leafletRef.value.clearLayers();\n leafletRef.value.addData(newVal);\n },\n getGeoJSONData() {\n return leafletRef.value.toGeoJSON();\n },\n getBounds() {\n return leafletRef.value.getBounds();\n },\n };\n\n return { options, methods };\n};\n\nvar script$8 = {\n props: props$d,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { methods, options } = setup$d(props, leafletRef, context);\n\n onMounted(async () => {\n const { geoJSON, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = geoJSON(props.geojson, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$8.__file = \"src/components/LGeoJson.vue\";\n\nconst props$e = {\n ...props$1,\n pane: {\n type: String,\n default: \"tilePane\",\n },\n opacity: {\n type: Number,\n custom: false,\n default: 1.0,\n },\n zIndex: {\n type: Number,\n default: 1,\n },\n tileSize: {\n type: Number,\n default: 256,\n },\n noWrap: {\n type: Boolean,\n default: false,\n },\n minZoom: {\n type: Number,\n default: 0,\n },\n maxZoom: {\n type: Number,\n default: undefined,\n },\n};\n\nconst setup$e = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n props,\n leafletRef,\n context\n );\n const options = {\n ...layerOptions,\n pane: props.pane,\n opacity: props.opacity,\n zIndex: props.zIndex,\n tileSize: props.tileSize,\n noWrap: props.noWrap,\n minZoom: props.minZoom,\n maxZoom: props.maxZoom,\n };\n return { options, methods: { ...layerMethods } };\n};\n\nvar script$9 = {\n props: {\n ...props$e,\n childRender: {\n type: Function,\n required: true,\n },\n },\n setup(props, context) {\n const leafletRef = ref({});\n const tileComponents = ref({});\n const root = ref(null);\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$e(props, leafletRef, context);\n\n onMounted(async () => {\n const { GridLayer, DomEvent, DomUtil } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n methods.onUnload = (e) => {\n const key = leafletRef.value._tileCoordsToKey(e.coords);\n if (tileComponents[key]) {\n tileComponents[key].innerHTML = \"\";\n tileComponents[key] = undefined;\n }\n };\n\n methods.setTileComponent = () => {\n leafletRef.value.redraw();\n };\n\n const GLayer = GridLayer.extend({\n createTile(coords) {\n const key = leafletRef.value._tileCoordsToKey(coords);\n tileComponents[key] = DomUtil.create(\"div\");\n\n let vNode = h(\n { setup: props.childRender, props: [\"coords\"] },\n { coords }\n );\n render$3(vNode, tileComponents[key]);\n\n return tileComponents[key];\n },\n });\n\n leafletRef.value = new GLayer(options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n leafletRef.value.on(\"tileunload\", methods.onUnload);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n onUnmounted(() => {\n leafletRef.value.off(\"tileunload\", methods.unLoad);\n });\n\n return { root, ready, leafletObject: leafletRef };\n },\n render() {\n if (this.ready) {\n return h(\"div\", { style: { display: \"none\" }, ref: \"root\" });\n }\n return null;\n },\n};\n\nscript$9.__file = \"src/components/LGridLayer.vue\";\n\nconst props$f = {\n iconUrl: {\n type: String,\n custom: true,\n default: null,\n },\n iconRetinaUrl: {\n type: String,\n custom: true,\n default: null,\n },\n iconSize: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n iconAnchor: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n popupAnchor: {\n type: [Object, Array],\n custom: true,\n default: () => [0, 0],\n },\n tooltipAnchor: {\n type: [Object, Array],\n custom: true,\n default: () => [0, 0],\n },\n shadowUrl: {\n type: String,\n custom: true,\n default: null,\n },\n shadowRetinaUrl: {\n type: String,\n custom: true,\n default: null,\n },\n shadowSize: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n shadowAnchor: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n bgPos: {\n type: [Object, Array],\n custom: true,\n default: () => [0, 0],\n },\n className: {\n type: String,\n custom: true,\n default: \"\",\n },\n options: {\n type: Object,\n custom: true,\n default: () => ({}),\n },\n};\n\n/**\n * Icon component, lets you add and custom icons to the map\n */\nvar script$a = {\n name: \"LIcon\",\n props: {\n ...props$f,\n ...props,\n },\n setup(props, context) {\n const root = ref(null);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const canSetParentHtml = inject(\"canSetParentHtml\");\n const setParentHtml = inject(\"setParentHtml\");\n const setIcon = inject(\"setIcon\");\n\n let onDomEvent;\n let offDomEvent;\n let divIcon;\n let icon;\n let iconObject = undefined;\n\n const createIcon = (el, recreationNeeded, htmlSwapNeeded) => {\n const elHtml = el && el.innerHTML;\n if (!recreationNeeded) {\n if (htmlSwapNeeded && iconObject && canSetParentHtml()) {\n setParentHtml(elHtml);\n }\n return;\n }\n\n const listeners = remapEvents(context.attrs);\n if (iconObject) {\n offDomEvent(iconObject, listeners);\n }\n\n const { options: componentOptions } = setup(props);\n const options = {\n ...componentOptions,\n iconUrl: props.iconUrl,\n iconRetinaUrl: props.iconRetinaUrl,\n iconSize: props.iconSize,\n iconAnchor: props.iconAnchor,\n popupAnchor: props.popupAnchor,\n tooltipAnchor: props.tooltipAnchor,\n shadowUrl: props.shadowUrl,\n shadowRetinaUrl: props.shadowRetinaUrl,\n shadowSize: props.shadowSize,\n shadowAnchor: props.shadowAnchor,\n bgPos: props.bgPos,\n className: props.className,\n html: elHtml || props.html,\n };\n\n iconObject = options.html ? divIcon(options) : icon(options);\n onDomEvent(iconObject, listeners);\n setIcon(iconObject);\n };\n\n const scheduleCreateIcon = () => {\n nextTick(() => createIcon(root.value, true, false));\n };\n\n const scheduleHtmlSwap = () => {\n nextTick(() => createIcon(root.value, false, true));\n };\n\n const methods = {\n setIconUrl: scheduleCreateIcon,\n setIconRetinaUrl: scheduleCreateIcon,\n setIconSize: scheduleCreateIcon,\n setIconAnchor: scheduleCreateIcon,\n setPopupAnchor: scheduleCreateIcon,\n setTooltipAnchor: scheduleCreateIcon,\n setShadowUrl: scheduleCreateIcon,\n setShadowRetinaUrl: scheduleCreateIcon,\n setShadowAnchor: scheduleCreateIcon,\n setBgPos: scheduleCreateIcon,\n setClassName: scheduleCreateIcon,\n setHtml: scheduleCreateIcon,\n };\n\n onMounted(async () => {\n const { DomEvent, divIcon: lDivIcon, icon: lIcon } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n onDomEvent = DomEvent.on;\n offDomEvent = DomEvent.off;\n divIcon = lDivIcon;\n icon = lIcon;\n\n propsBinder(methods, {}, props);\n\n const observer = new MutationObserver(scheduleHtmlSwap);\n observer.observe(root.value, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n });\n scheduleCreateIcon();\n });\n\n return { root };\n },\n render() {\n const content = this.$slots.default ? this.$slots.default() : undefined;\n return h(\"div\", { ref: \"root\" }, content);\n },\n};\n\nscript$a.__file = \"src/components/LIcon.vue\";\n\n/**\n * @typedef {import('leaflet/dist/leaflet-src.esm.js').LatLngBounds} LatLngBounds\n */\n\nconst props$g = {\n ...props$1,\n url: {\n type: String,\n required: true,\n },\n bounds: {\n type: [Array, Object],\n required: true,\n },\n opacity: {\n type: Number,\n custom: true,\n default: 1.0,\n },\n alt: {\n type: String,\n default: \"\",\n },\n interactive: {\n type: Boolean,\n default: false,\n },\n crossOrigin: {\n type: Boolean,\n default: false,\n },\n errorOverlayUrl: {\n type: String,\n custom: true,\n default: \"\",\n },\n zIndex: {\n type: Number,\n custom: true,\n default: 1,\n },\n className: {\n type: String,\n default: \"\",\n },\n};\n\nconst setup$f = (setupProps, LeafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n setupProps,\n LeafletRef,\n context\n );\n const options = {\n ...layerOptions,\n ...setupProps,\n };\n\n const methods = {\n ...layerMethods,\n /**\n * Sets the opacity of the overlay.\n * @param {number} opacity\n */\n setOpacity(opacity) {\n return LeafletRef.value.setOpacity(opacity);\n },\n /**\n * Changes the URL of the image.\n * @param {string} url\n */\n setUrl(url) {\n return LeafletRef.value.setUrl(url);\n },\n /**\n * Update the bounds that this ImageOverlay covers\n * @param {LatLngBounds | Array>} bounds\n */\n setBounds(bounds) {\n return LeafletRef.value.setBounds(bounds);\n },\n /**\n * Get the bounds that this ImageOverlay covers\n * @returns {LatLngBounds}\n */\n getBounds() {\n return LeafletRef.value.getBounds();\n },\n /**\n * Returns the instance of HTMLImageElement used by this overlay.\n * @returns {HTMLElement}\n */\n getElement() {\n return LeafletRef.value.getElement();\n },\n /**\n * Brings the layer to the top of all overlays.\n */\n bringToFront() {\n return LeafletRef.value.bringToFront();\n },\n /**\n * Brings the layer to the bottom of all overlays.\n */\n bringToBack() {\n return LeafletRef.value.bringToBack();\n },\n /**\n * Changes the zIndex of the image overlay.\n * @param {number} zIndex\n */\n setZIndex(zIndex) {\n return LeafletRef.value.setZIndex(zIndex);\n },\n };\n\n return { options, methods };\n};\n\n/**\n * ImageOverlay component, render a plain image instead of a geospatial map.\n */\nvar script$b = {\n name: \"LImageOverlay\",\n props: props$g,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$f(props, leafletRef, context);\n\n onMounted(async () => {\n const { imageOverlay, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n leafletRef.value = imageOverlay(props.url, props.bounds, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$b.__file = \"src/components/LImageOverlay.vue\";\n\nvar script$c = {\n props: props$b,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { methods } = setup$b(props, leafletRef, context);\n\n onMounted(async () => {\n const { layerGroup, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n leafletRef.value = layerGroup(props.options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$c.__file = \"src/components/LLayerGroup.vue\";\n\nvar script$d = {\n emits: [\"ready\", \"update:zoom\", \"update:center\", \"update:bounds\"],\n props: {\n ...props,\n /**\n * The center of the map, supports .sync modifier\n */\n center: {\n type: [Object, Array],\n default: () => [0, 0],\n },\n /**\n * The bounds of the map, supports .sync modifier\n */\n bounds: {\n type: [Array, Object],\n default: undefined,\n },\n /**\n * The max bounds of the map\n */\n maxBounds: {\n type: [Array, Object],\n default: undefined,\n },\n /**\n * The zoom of the map, supports .sync modifier\n */\n zoom: {\n type: Number,\n default: 0,\n },\n /**\n * The minZoom of the map\n */\n minZoom: {\n type: Number,\n default: undefined,\n },\n /**\n * The maxZoom of the map\n */\n maxZoom: {\n type: Number,\n default: undefined,\n },\n /**\n * The paddingBottomRight of the map\n */\n paddingBottomRight: {\n type: Array,\n default: undefined,\n },\n /**\n * The paddingTopLeft of the map\n */\n paddingTopLeft: {\n type: Array,\n default: undefined,\n },\n /**\n * The padding of the map\n */\n padding: {\n type: Array,\n default: undefined,\n },\n /**\n * The worldCopyJump option for the map\n */\n worldCopyJump: {\n type: Boolean,\n default: false,\n },\n /**\n * The CRS to use for the map. Can be an object that defines a coordinate reference\n * system for projecting geographical points into screen coordinates and back\n * (see https://leafletjs.com/reference-1.7.1.html#crs-l-crs-base), or a string\n * name identifying one of Leaflet's defined CRSs, such as \"EPSG4326\".\n */\n crs: {\n type: [String, Object],\n default: \"EPSG3857\",\n },\n maxBoundsViscosity: {\n type: Number,\n default: undefined,\n },\n inertia: {\n type: Boolean,\n default: undefined,\n },\n inertiaDeceleration: {\n type: Number,\n default: undefined,\n },\n inertiaMaxSpeed: {\n type: Number,\n default: undefined,\n },\n easeLinearity: {\n type: Number,\n default: undefined,\n },\n zoomAnimation: {\n type: Boolean,\n default: undefined,\n },\n zoomAnimationThreshold: {\n type: Number,\n default: undefined,\n },\n fadeAnimation: {\n type: Boolean,\n default: undefined,\n },\n markerZoomAnimation: {\n type: Boolean,\n default: undefined,\n },\n noBlockingAnimations: {\n type: Boolean,\n default: false,\n },\n useGlobalLeaflet: {\n type: Boolean,\n default: true,\n },\n },\n setup(props, context) {\n const root = ref(null);\n const blueprint = reactive({\n ready: false,\n leafletRef: {},\n layersToAdd: [],\n layersInControl: [],\n });\n const { options: componentOptions } = setup(props);\n const options = {\n ...componentOptions,\n minZoom: props.minZoom,\n maxZoom: props.maxZoom,\n maxBounds: props.maxBounds,\n maxBoundsViscosity: props.maxBoundsViscosity,\n worldCopyJump: props.worldCopyJump,\n crs: props.crs,\n center: props.center,\n zoom: props.zoom,\n inertia: props.inertia,\n inertiaDeceleration: props.inertiaDeceleration,\n inertiaMaxSpeed: props.inertiaMaxSpeed,\n easeLinearity: props.easeLinearity,\n zoomAnimation: props.zoomAnimation,\n zoomAnimationThreshold: props.zoomAnimationThreshold,\n fadeAnimation: props.fadeAnimation,\n markerZoomAnimation: props.markerZoomAnimation,\n };\n\n const addLayer = provideLeafletWrapper(\"addLayer\");\n const removeLayer = provideLeafletWrapper(\"removeLayer\");\n const registerControl = provideLeafletWrapper(\"registerControl\");\n const registerLayerControl = provideLeafletWrapper(\"registerLayerControl\");\n provide(GLOBAL_LEAFLET_OPT, props.useGlobalLeaflet);\n\n const eventHandlers = {\n moveEndHandler() {\n /**\n * Triggers when zoom is updated\n * @type {number,string}\n */\n context.emit(\"update:zoom\", blueprint.leafletRef.getZoom());\n /**\n * Triggers when center is updated\n * @type {object,array}\n */\n context.emit(\"update:center\", blueprint.leafletRef.getCenter());\n\n /**\n * Triggers when bounds are updated\n * @type {object}\n */\n context.emit(\"update:bounds\", blueprint.leafletRef.getBounds());\n },\n overlayAddHandler(e) {\n const layer = blueprint.layersInControl.find((l) => l.name === e.name);\n if (layer) {\n layer.updateVisibleProp(true);\n }\n },\n overlayRemoveHandler(e) {\n const layer = blueprint.layersInControl.find((l) => l.name === e.name);\n if (layer) {\n layer.updateVisibleProp(false);\n }\n },\n };\n\n onMounted(async () => {\n if (props.useGlobalLeaflet) {\n WINDOW_OR_GLOBAL.L = WINDOW_OR_GLOBAL.L || (await import('leaflet'));\n }\n const {\n map,\n CRS,\n Icon,\n latLngBounds,\n latLng,\n DomEvent,\n } = props.useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n try {\n options.beforeMapMount && (await options.beforeMapMount());\n } catch (error) {\n console.error(\n `The following error occurred running the provided beforeMapMount hook ${error.message}`\n );\n }\n\n await resetWebpackIcon(Icon);\n\n const optionsCrs =\n typeof options.crs == \"string\" ? CRS[options.crs] : options.crs;\n options.crs = optionsCrs || CRS.EPSG3857;\n\n const methods = {\n addLayer(layer) {\n if (layer.layerType !== undefined) {\n if (blueprint.layerControl === undefined) {\n blueprint.layersToAdd.push(layer);\n } else {\n const exist = blueprint.layersInControl.find(\n (l) =>\n l.leafletObject._leaflet_id ===\n layer.leafletObject._leaflet_id\n );\n if (!exist) {\n blueprint.layerControl.addLayer(layer);\n blueprint.layersInControl.push(layer);\n }\n }\n }\n if (layer.visible !== false) {\n blueprint.leafletRef.addLayer(layer.leafletObject);\n }\n },\n removeLayer(layer) {\n if (layer.layerType !== undefined) {\n if (blueprint.layerControl === undefined) {\n blueprint.layersToAdd = blueprint.layersToAdd.filter(\n (l) => l.name !== layer.name\n );\n } else {\n blueprint.layerControl.removeLayer(layer.leafletObject);\n blueprint.layersInControl = blueprint.layersInControl.filter(\n (l) =>\n l.leafletObject._leaflet_id !==\n layer.leafletObject._leaflet_id\n );\n }\n }\n blueprint.leafletRef.removeLayer(layer.leafletObject);\n },\n\n registerLayerControl(lControlLayer) {\n blueprint.layerControl = lControlLayer;\n blueprint.layersToAdd.forEach((layer) => {\n blueprint.layerControl.addLayer(layer);\n });\n blueprint.layersToAdd = [];\n\n registerControl(lControlLayer);\n },\n\n registerControl(lControl) {\n blueprint.leafletRef.addControl(lControl.leafletObject);\n },\n\n setZoom(newVal) {\n const zoom = blueprint.leafletRef.getZoom();\n if (newVal !== zoom) {\n blueprint.leafletRef.setZoom(newVal, {\n animate: props.noBlockingAnimations ? false : null,\n });\n }\n },\n\n setPaddingBottomRight(newVal) {\n blueprint.paddingBottomRight = newVal;\n },\n setPaddingTopLeft(newVal) {\n blueprint.paddingTopLeft = newVal;\n },\n setPadding(newVal) {\n blueprint.padding = newVal;\n },\n setCrs(newVal) {\n const prevBounds = blueprint.leafletRef.getBounds();\n blueprint.leafletRef.options.crs = newVal;\n blueprint.leafletRef.fitBounds(prevBounds, {\n animate: false,\n padding: [0, 0],\n });\n },\n fitBounds(bounds) {\n blueprint.leafletRef.fitBounds(bounds, {\n animate: this.noBlockingAnimations ? false : null,\n });\n },\n setBounds(newVal) {\n if (!newVal) {\n return;\n }\n const newBounds = latLngBounds(newVal);\n if (!newBounds.isValid()) {\n return;\n }\n const oldBounds =\n blueprint.lastSetBounds || blueprint.leafletRef.getBounds();\n const boundsChanged = !oldBounds.equals(newBounds, 0); // set maxMargin to 0 - check exact equals\n if (boundsChanged) {\n blueprint.lastSetBounds = newBounds;\n blueprint.leafletRef.fitBounds(newBounds, this.fitBoundsOptions);\n }\n },\n\n setCenter(newVal) {\n if (newVal == null) {\n return;\n }\n const newCenter = latLng(newVal);\n const oldCenter =\n blueprint.lastSetCenter || blueprint.leafletRef.getCenter();\n if (\n oldCenter.lat !== newCenter.lat ||\n oldCenter.lng !== newCenter.lng\n ) {\n blueprint.lastSetCenter = newCenter;\n blueprint.leafletRef.panTo(newCenter, {\n animate: this.noBlockingAnimations ? false : null,\n });\n }\n },\n };\n\n updateLeafletWrapper(addLayer, methods.addLayer);\n updateLeafletWrapper(removeLayer, methods.removeLayer);\n updateLeafletWrapper(registerControl, methods.registerControl);\n updateLeafletWrapper(registerLayerControl, methods.registerLayerControl);\n\n blueprint.leafletRef = map(root.value, options);\n\n propsBinder(methods, blueprint.leafletRef, props);\n const listeners = remapEvents(context.attrs);\n\n blueprint.leafletRef.on(\n \"moveend\",\n debounce(eventHandlers.moveEndHandler, 100)\n );\n blueprint.leafletRef.on(\"overlayadd\", eventHandlers.overlayAddHandler);\n blueprint.leafletRef.on(\n \"overlayremove\",\n eventHandlers.overlayRemoveHandler\n );\n DomEvent.on(blueprint.leafletRef, listeners);\n blueprint.ready = true;\n nextTick(() => context.emit(\"ready\", blueprint.leafletRef));\n });\n\n onBeforeUnmount(() => {\n if (blueprint.leafletRef) {\n blueprint.leafletRef.remove();\n }\n });\n\n const leafletObject = computed(() => blueprint.leafletRef);\n const ready = computed(() => blueprint.ready);\n return { root, ready, leafletObject };\n },\n render() {\n return h(\n \"div\",\n { style: { width: \"100%\", height: \"100%\" }, ref: \"root\" },\n this.ready ? this.$slots.default() : {}\n );\n },\n};\n\nscript$d.__file = \"src/components/LMap.vue\";\n\nconst props$h = {\n ...props$1,\n pane: {\n type: String,\n default: \"markerPane\",\n },\n draggable: {\n type: Boolean,\n custom: true,\n default: false,\n },\n latLng: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n icon: {\n type: [Object],\n default: () => undefined,\n custom: false,\n },\n zIndexOffset: {\n type: Number,\n custom: false,\n default: null,\n },\n};\n\nconst setup$g = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n props,\n leafletRef,\n context\n );\n const options = {\n ...layerOptions,\n ...props,\n };\n\n const methods = {\n ...layerMethods,\n setDraggable(value) {\n if (leafletRef.value.dragging) {\n value\n ? leafletRef.value.dragging.enable()\n : leafletRef.value.dragging.disable();\n }\n },\n latLngSync(event) {\n context.emit(\"update:latLng\", event.latlng);\n context.emit(\"update:lat-lng\", event.latlng);\n },\n setLatLng(newVal) {\n if (newVal == null) {\n return;\n }\n\n if (leafletRef.value) {\n const oldLatLng = leafletRef.value.getLatLng();\n if (!oldLatLng || !oldLatLng.equals(newVal)) {\n leafletRef.value.setLatLng(newVal);\n }\n }\n },\n };\n return { options, methods };\n};\n\n/**\n * Marker component, lets you add and personalize markers on the map\n */\nvar script$e = {\n name: \"LMarker\",\n props: props$h,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n provide(\"canSetParentHtml\", () => !!leafletRef.value.getElement());\n provide(\n \"setParentHtml\",\n (html) => (leafletRef.value.getElement().innerHTML = html)\n );\n provide(\n \"setIcon\",\n (newIcon) => leafletRef.value.setIcon && leafletRef.value.setIcon(newIcon)\n );\n const { options, methods } = setup$g(props, leafletRef, context);\n if (options.icon === undefined) {\n // If the options objection has a property named 'icon', then Leaflet will overwrite\n // the default icon with it for the marker, _even if it is undefined_.\n // This leads to the issue discussed in https://github.com/vue-leaflet/vue-leaflet/issues/130\n delete options.icon;\n }\n\n onMounted(async () => {\n const { marker, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n leafletRef.value = marker(props.latLng, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n leafletRef.value.on(\"move\", debounce(methods.latLngSync, 100));\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$e.__file = \"src/components/LMarker.vue\";\n\nconst props$i = {\n ...props$3,\n latLngs: {\n type: Array,\n default: () => [],\n },\n smoothFactor: {\n type: Number,\n custom: true,\n default: 1.0,\n },\n noClip: {\n type: Boolean,\n custom: true,\n default: false,\n },\n};\n\nconst setup$h = (props, leafletRef, context) => {\n const { options: pathOptions, methods: pathMethods } = setup$3(\n props,\n leafletRef,\n context\n );\n const options = {\n ...pathOptions,\n ...props,\n };\n\n const methods = {\n ...pathMethods,\n setSmoothFactor(smoothFactor) {\n leafletRef.value.setStyle({ smoothFactor });\n },\n setNoClip(noClip) {\n leafletRef.value.setStyle({ noClip });\n },\n addLatLng(latLng) {\n leafletRef.value.addLatLng(latLng);\n },\n };\n return { options, methods };\n};\n\nconst props$j = {\n ...props$i,\n};\n\nconst setup$i = (props, leafletRef, context) => {\n const { options: polylineOptions, methods: polylineMethods } = setup$h(\n props,\n leafletRef,\n context\n );\n const options = {\n ...polylineOptions,\n ...props,\n };\n\n const methods = {\n ...polylineMethods,\n toGeoJSON(precision) {\n return leafletRef.value.toGeoJSON(precision);\n },\n };\n\n return { options, methods };\n};\n\n/**\n * Polygon component, lets you add and customize polygon regions on the map\n */\nvar script$f = {\n name: \"LPolygon\",\n props: props$j,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$i(props, leafletRef, context);\n\n onMounted(async () => {\n const { polygon, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = polygon(props.latLngs, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$f.__file = \"src/components/LPolygon.vue\";\n\n/**\n * Polyline component, lets you add and personalize polylines on the map\n */\nvar script$g = {\n name: \"LPolyline\",\n props: props$i,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$h(props, leafletRef, context);\n\n onMounted(async () => {\n const { polyline, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = polyline(props.latLngs, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$g.__file = \"src/components/LPolyline.vue\";\n\nconst props$k = {\n ...props,\n content: {\n type: String,\n default: null,\n },\n};\n\nconst setup$j = (props, leafletRef) => {\n const { options, methods: componentMethods } = setup(props);\n const methods = {\n ...componentMethods,\n setContent(newVal) {\n if (leafletRef.value && newVal !== null && newVal !== undefined) {\n leafletRef.value.setContent(newVal);\n }\n },\n };\n return { options, methods };\n};\n\nconst render$2 = (slots) => {\n if (slots.default) {\n return h(\"div\", { ref: \"root\" }, slots.default());\n }\n return null;\n};\n\nconst props$l = {\n ...props$k,\n latLng: {\n type: [Object, Array],\n default: () => [],\n },\n};\n\nconst setup$k = (props, leafletRef) => {\n const { options, methods } = setup$j(props, leafletRef);\n const unbindPopup = inject(\"unbindPopup\");\n\n onBeforeUnmount(() => {\n unbindPopup();\n });\n\n return { options, methods };\n};\n\n/**\n * Display a popup on the map\n */\nvar script$h = {\n name: \"LPopup\",\n props: props$l,\n setup(props, context) {\n const leafletRef = ref({});\n const root = ref(null);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const bindPopup = inject(\"bindPopup\");\n\n const { options, methods } = setup$k(props, leafletRef);\n\n onMounted(async () => {\n const { popup, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = popup(options);\n\n if (props.latLng !== undefined) {\n leafletRef.value.setLatLng(props.latLng);\n }\n\n propsBinder(methods, leafletRef.value, props);\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n leafletRef.value.setContent(props.content || root.value);\n bindPopup({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { root, leafletObject: leafletRef };\n },\n render() {\n return render$2(this.$slots);\n },\n};\n\nscript$h.__file = \"src/components/LPopup.vue\";\n\nconst props$m = {\n ...props$j,\n bounds: {\n type: Array,\n default: undefined,\n },\n};\n\nconst setup$l = (props, leafletRef, context) => {\n const { options: polygonOptions, methods: polygonMethods } = setup$i(\n props,\n leafletRef,\n context\n );\n const options = {\n ...polygonOptions,\n ...props,\n };\n\n const methods = {\n ...polygonMethods,\n setBounds(latLngBounds) {\n leafletRef.value.setBounds(latLngBounds);\n },\n setLatLngs(latLngs) {\n // Calling setLatLngs on a Leaflet rectangle will convert it\n // to a polygon. So instead, we call setBounds here to ensure\n // that the rectangle remains a rectangle, defined by the\n // bounds of the points in the latLngs array.\n leafletRef.value.setBounds(latLngs);\n },\n };\n\n return { options, methods };\n};\n\n/**\n * Rectangle component, lets you add and customize rectangular regions on the map\n */\nvar script$i = {\n name: \"LRectangle\",\n props: props$m,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$l(props, leafletRef, context);\n\n onMounted(async () => {\n const { rectangle, latLngBounds, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n const bounds =\n props.bounds && props.bounds.length\n ? latLngBounds(props.bounds)\n : latLngBounds(props.latLngs);\n leafletRef.value = rectangle(bounds, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$i.__file = \"src/components/LRectangle.vue\";\n\nconst props$n = {\n ...props$e,\n tms: {\n type: Boolean,\n default: false,\n },\n subdomains: {\n type: String,\n default: \"abc\",\n },\n detectRetina: {\n type: Boolean,\n default: false,\n },\n url: {\n type: String,\n default: null,\n },\n};\n\nconst setup$m = (props, leafletRef, context) => {\n const {\n options: gridLayerOptions,\n methods: gridLayerMethods,\n } = setup$e(props, leafletRef, context);\n const options = {\n ...gridLayerOptions,\n tms: props.tms,\n subdomains: props.subdomains,\n detectRetina: props.detectRetina,\n };\n return {\n options,\n methods: {\n ...gridLayerMethods,\n },\n };\n};\n\nvar script$j = {\n props: props$n,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$m(props, leafletRef, context);\n\n onMounted(async () => {\n const { tileLayer, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n leafletRef.value = tileLayer(props.url, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { leafletObject: leafletRef };\n },\n render() {\n return null;\n },\n};\n\nscript$j.__file = \"src/components/LTileLayer.vue\";\n\nconst props$o = {\n ...props$k,\n};\n\nconst setup$n = (props, leafletRef) => {\n const { options, methods } = setup$j(props, leafletRef);\n const unbindTooltip = inject(\"unbindTooltip\");\n\n onBeforeUnmount(() => {\n unbindTooltip();\n });\n\n return { options, methods };\n};\n\n/**\n * Display a tooltip on the map\n */\nvar script$k = {\n name: \"LTooltip\",\n props: props$o,\n setup(props, context) {\n const leafletRef = ref({});\n const root = ref(null);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const bindTooltip = inject(\"bindTooltip\");\n\n const { options, methods } = setup$n(props, leafletRef);\n\n onMounted(async () => {\n const { tooltip, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = tooltip(options);\n\n propsBinder(methods, leafletRef.value, props);\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n leafletRef.value.setContent(props.content || root.value);\n bindTooltip({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { root, leafletObject: leafletRef };\n },\n render() {\n return render$2(this.$slots);\n },\n};\n\nscript$k.__file = \"src/components/LTooltip.vue\";\n\nconst props$p = {\n ...props$n,\n baseUrl: {\n type: String,\n default: null,\n required: true,\n },\n layers: {\n type: String,\n default: \"\",\n },\n styles: {\n type: String,\n default: \"\",\n },\n format: {\n type: String,\n default: \"image/jpeg\",\n },\n transparent: {\n type: Boolean,\n custom: false,\n },\n version: {\n type: String,\n default: \"1.1.1\",\n },\n crs: {\n default: null,\n },\n upperCase: {\n type: Boolean,\n default: false,\n },\n};\n\nconst setup$o = (props, leafletRef) => {\n const {\n options: tileLayerOptions,\n methods: tileLayerMethods,\n } = setup$m(props, leafletRef);\n const options = {\n ...tileLayerOptions,\n layers: props.layers,\n styles: props.styles,\n format: props.format,\n transparent: props.transparent,\n version: props.version,\n crs: props.crs,\n upperCase: props.upperCase,\n };\n return {\n options,\n methods: {\n ...tileLayerMethods,\n },\n };\n};\n\nvar script$l = {\n props: props$p,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$o(props, leafletRef);\n\n onMounted(async () => {\n const { tileLayer, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = tileLayer.wms(props.baseUrl, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$l.__file = \"src/components/LWmsTileLayer.vue\";\n\nexport { script as LCircle, script$1 as LCircleMarker, script$2 as LControl, script$3 as LControlAttribution, script$4 as LControlLayers, script$5 as LControlScale, script$6 as LControlZoom, script$7 as LFeatureGroup, script$8 as LGeoJson, script$9 as LGridLayer, script$a as LIcon, script$b as LImageOverlay, script$c as LLayerGroup, script$d as LMap, script$e as LMarker, script$f as LPolygon, script$g as LPolyline, script$h as LPopup, script$i as LRectangle, script$j as LTileLayer, script$k as LTooltip, script$l as LWmsTileLayer };\n//# sourceMappingURL=vue-leaflet.esm.js.map\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nimport { LIcon, LMarker } from '@vue-leaflet/vue-leaflet'\n import { toRefs } from 'vue'\n\n import { TCoordinates } from '@/types/workouts'\n\n interface Props {\n markerCoordinates: TCoordinates\n isStart: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CustomMarker',\n props: {\n markerCoordinates: null,\n isStart: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n markerCoordinates: TCoordinates\n isStart: boolean\n };\n\n \n\n const { isStart, markerCoordinates } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(markerCoordinates).latitude)\n ? (_openBlock(), _createBlock(_unref(LMarker), {\n key: 0,\n \"lat-lng\": [_unref(markerCoordinates).latitude, _unref(markerCoordinates).longitude]\n }, {\n default: _withCtx(() => [\n _createVNode(_unref(LIcon), {\n \"icon-url\": `/img/workouts/${_unref(isStart) ? 'start' : 'finish'}.svg`,\n iconSize: [15, 15]\n }, null, 8, [\"icon-url\"])\n ]),\n _: 1\n }, 8, [\"lat-lng\"]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./CustomMarker.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./CustomMarker.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, normalizeClass as _normalizeClass, createBlock as _createBlock, resolveComponent as _resolveComponent, toDisplayString as _toDisplayString, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6b490f5d\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-map\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"leaflet-container\"\n}\nconst _hoisted_3 = { key: 1 }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-refresh\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_5 = {\n key: 1,\n class: \"no-map\"\n}\n\nimport { gpx } from '@tmcw/togeojson'\n import {\n LControl,\n LControlLayers,\n LGeoJson,\n LLayerGroup,\n LMap,\n LMarker,\n LTileLayer,\n } from '@vue-leaflet/vue-leaflet'\n import { ComputedRef, computed, ref, toRefs, withDefaults } from 'vue'\n import 'leaflet/dist/leaflet.css'\n\n import CustomMarker from '@/components/Workout/WorkoutDetail/WorkoutMap/CustomMarker.vue'\n import { ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { GeoJSONData } from '@/types/geojson'\n import { IWorkoutData, TCoordinates } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { getApiUrl } from '@/utils'\n\n interface Props {\n workoutData: IWorkoutData\n markerCoordinates?: TCoordinates\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n workoutData: null,\n markerCoordinates: { default: () => ({} as TCoordinates) }\n },\n setup(__props: any) {\n\nconst props = __props as { workoutData: IWorkoutData, markerCoordinates: TCoordinates };\n\n \n\n const store = useStore()\n\n const { workoutData, markerCoordinates } = toRefs(props)\n const workoutMap = ref null }\n }>(null)\n const bounds = computed(() => getBounds())\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const center = computed(() => getCenter(bounds))\n const geoJson = computed(() =>\n props.workoutData && props.workoutData.gpx\n ? getGeoJson(props.workoutData.gpx)\n : {}\n )\n const startMarkerCoordinates = computed(() =>\n props.workoutData && props.workoutData.chartData.length > 0\n ? {\n latitude: props.workoutData.chartData[0].latitude,\n longitude: props.workoutData.chartData[0].longitude,\n }\n : {}\n )\n const endMarkerCoordinates = computed(() =>\n props.workoutData && props.workoutData.chartData.length > 0\n ? {\n latitude:\n props.workoutData.chartData[props.workoutData.chartData.length - 1]\n .latitude,\n longitude:\n props.workoutData.chartData[props.workoutData.chartData.length - 1]\n .longitude,\n }\n : {}\n )\n const isFullscreen = ref(false)\n\n function getGeoJson(gpxContent: string): GeoJSONData {\n if (!gpxContent || gpxContent !== '') {\n try {\n const jsonData = gpx(\n new DOMParser().parseFromString(gpxContent, 'text/xml')\n )\n return { jsonData }\n } catch (e) {\n console.error('Invalid gpx content')\n return {}\n }\n }\n return {}\n }\n function getCenter(bounds: ComputedRef): number[] {\n return [\n (bounds.value[0][0] + bounds.value[1][0]) / 2,\n (bounds.value[0][1] + bounds.value[1][1]) / 2,\n ]\n }\n function fitBounds(bounds: number[][]) {\n if (workoutMap.value?.leafletObject) {\n workoutMap.value?.leafletObject.fitBounds(bounds)\n }\n }\n function getBounds() {\n return props.workoutData\n ? [\n [\n props.workoutData.workout.bounds[0],\n props.workoutData.workout.bounds[1],\n ],\n [\n props.workoutData.workout.bounds[2],\n props.workoutData.workout.bounds[3],\n ],\n ]\n : []\n }\n function resetZoom() {\n workoutMap.value?.leafletObject.fitBounds(getBounds())\n }\n function toggleFullscreen() {\n isFullscreen.value = !isFullscreen.value\n if (!isFullscreen.value) {\n setTimeout(() => {\n resetZoom()\n }, 100)\n }\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_VFullscreen = _resolveComponent(\"VFullscreen\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(workoutData).loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_unref(workoutData).workout.with_gpx)\n ? (_openBlock(), _createBlock(_component_VFullscreen, {\n key: 0,\n modelValue: isFullscreen.value,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((isFullscreen).value = $event))\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"leaflet-container\", { 'fullscreen-map': isFullscreen.value }])\n }, [\n (_unref(geoJson).jsonData && _unref(center) && _unref(bounds).length === 2)\n ? (_openBlock(), _createBlock(_unref(LMap), {\n key: 0,\n zoom: 13,\n maxZoom: 19,\n center: _unref(center),\n bounds: _unref(bounds),\n ref_key: \"workoutMap\",\n ref: workoutMap,\n onReady: _cache[0] || (_cache[0] = ($event: any) => (fitBounds(_unref(bounds))))\n }, {\n default: _withCtx(() => [\n _createVNode(_unref(LControlLayers)),\n _createVNode(_unref(LControl), {\n position: \"topleft\",\n class: \"map-control\",\n onClick: resetZoom\n }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }),\n _createVNode(_unref(LControl), {\n position: \"topleft\",\n class: \"map-control\",\n onClick: toggleFullscreen\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa-${isFullscreen.value ? 'compress' : 'arrows-alt'}`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _: 1\n }),\n _createVNode(_unref(LTileLayer), {\n url: `${_unref(getApiUrl)()}workouts/map_tile/{s}/{z}/{x}/{y}.png`,\n attribution: _unref(appConfig).map_attribution,\n bounds: _unref(bounds)\n }, null, 8, [\"url\", \"attribution\", \"bounds\"]),\n _createVNode(_unref(LGeoJson), {\n geojson: _unref(geoJson).jsonData\n }, null, 8, [\"geojson\"]),\n (_unref(markerCoordinates).latitude)\n ? (_openBlock(), _createBlock(_unref(LMarker), {\n key: 0,\n \"lat-lng\": [\n _unref(markerCoordinates).latitude,\n _unref(markerCoordinates).longitude,\n ]\n }, null, 8, [\"lat-lng\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_unref(LLayerGroup), {\n name: _ctx.$t('workouts.START_AND_FINISH'),\n \"layer-type\": \"overlay\"\n }, {\n default: _withCtx(() => [\n (_unref(startMarkerCoordinates).latitude)\n ? (_openBlock(), _createBlock(CustomMarker, {\n key: 0,\n markerCoordinates: _unref(startMarkerCoordinates),\n isStart: true\n }, null, 8, [\"markerCoordinates\"]))\n : _createCommentVNode(\"\", true),\n (_unref(endMarkerCoordinates).latitude)\n ? (_openBlock(), _createBlock(CustomMarker, {\n key: 1,\n markerCoordinates: _unref(endMarkerCoordinates),\n isStart: false\n }, null, 8, [\"markerCoordinates\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"name\"])\n ]),\n _: 1\n }, 8, [\"center\", \"bounds\"]))\n : _createCommentVNode(\"\", true)\n ], 2)\n ]),\n _: 1\n }, 8, [\"modelValue\"]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _toDisplayString(_ctx.$t('workouts.NO_MAP')), 1))\n ]))\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=6b490f5d&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6b490f5d\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, withCtx as _withCtx, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-9fc0bab8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"workout-detail\" }\n\nimport {\n ComputedRef,\n Ref,\n computed,\n ref,\n toRefs,\n watch,\n withDefaults,\n } from 'vue'\n import { useRoute } from 'vue-router'\n\n import WorkoutCardTitle from '@/components/Workout/WorkoutDetail/WorkoutCardTitle.vue'\n import WorkoutData from '@/components/Workout/WorkoutDetail/WorkoutData.vue'\n import WorkoutMap from '@/components/Workout/WorkoutDetail/WorkoutMap/index.vue'\n import { WORKOUTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import {\n IWorkout,\n IWorkoutData,\n IWorkoutObject,\n IWorkoutSegment,\n TCoordinates,\n } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { formatWorkoutDate, getDateWithTZ } from '@/utils/dates'\n\n interface Props {\n authUser: IAuthUserProfile\n displaySegment: boolean\n sports: ISport[]\n workoutData: IWorkoutData\n markerCoordinates?: TCoordinates\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n authUser: null,\n displaySegment: { type: Boolean },\n sports: null,\n workoutData: null,\n markerCoordinates: { default: () => ({} as TCoordinates) }\n },\n setup(__props: any) {\n\nconst props = __props as { authUser: IAuthUserProfile, displaySegment: boolean, sports: ISport[], workoutData: IWorkoutData, markerCoordinates: TCoordinates };\n\n \n\n const route = useRoute()\n const store = useStore()\n\n const { authUser, markerCoordinates, workoutData } = toRefs(props)\n const workout: ComputedRef = computed(\n () => props.workoutData.workout\n )\n const segmentId: Ref = ref(\n route.params.workoutId ? +route.params.segmentId : null\n )\n const segment: ComputedRef = computed(() =>\n workout.value.segments.length > 0 && segmentId.value\n ? workout.value.segments[+segmentId.value - 1]\n : null\n )\n const displayModal: Ref = ref(false)\n const sport = computed(() =>\n props.sports\n ? props.sports.find(\n (sport) => sport.id === props.workoutData.workout.sport_id\n )\n : {}\n )\n const workoutObject = computed(() =>\n getWorkoutObject(workout.value, segment.value)\n )\n\n function getWorkoutObjectUrl(\n workout: IWorkout,\n displaySegment: boolean,\n segmentId: number | null\n ): Record {\n const previousUrl =\n displaySegment && segmentId && segmentId !== 1\n ? `/workouts/${workout.id}/segment/${segmentId - 1}`\n : !displaySegment && workout.previous_workout\n ? `/workouts/${workout.previous_workout}`\n : null\n const nextUrl =\n displaySegment && segmentId && segmentId < workout.segments.length\n ? `/workouts/${workout.id}/segment/${segmentId + 1}`\n : !displaySegment && workout.next_workout\n ? `/workouts/${workout.next_workout}`\n : null\n return {\n previousUrl,\n nextUrl,\n }\n }\n function getWorkoutObject(\n workout: IWorkout,\n segment: IWorkoutSegment | null\n ): IWorkoutObject {\n const urls = getWorkoutObjectUrl(\n workout,\n props.displaySegment,\n segmentId.value ? +segmentId.value : null\n )\n const workoutDate = formatWorkoutDate(\n getDateWithTZ(\n props.workoutData.workout.workout_date,\n props.authUser.timezone\n ),\n props.authUser.date_format\n )\n return {\n ascent: segment ? segment.ascent : workout.ascent,\n aveSpeed: segment ? segment.ave_speed : workout.ave_speed,\n distance: segment ? segment.distance : workout.distance,\n descent: segment ? segment.descent : workout.descent,\n duration: segment ? segment.duration : workout.duration,\n maxAlt: segment ? segment.max_alt : workout.max_alt,\n maxSpeed: segment ? segment.max_speed : workout.max_speed,\n minAlt: segment ? segment.min_alt : workout.min_alt,\n moving: segment ? segment.moving : workout.moving,\n nextUrl: urls.nextUrl,\n pauses: segment ? segment.pauses : workout.pauses,\n previousUrl: urls.previousUrl,\n records: segment ? [] : workout.records,\n segmentId: segment ? segment.segment_id : null,\n title: workout.title,\n type: props.displaySegment ? 'SEGMENT' : 'WORKOUT',\n workoutDate: workoutDate.workout_date,\n weatherEnd: segment ? null : workout.weather_end,\n weatherStart: segment ? null : workout.weather_start,\n with_gpx: workout.with_gpx,\n workoutId: workout.id,\n workoutTime: workoutDate.workout_time,\n }\n }\n function updateDisplayModal(value: boolean) {\n displayModal.value = value\n }\n function deleteWorkout(workoutId: string) {\n store.dispatch(WORKOUTS_STORE.ACTIONS.DELETE_WORKOUT, {\n workoutId: workoutId,\n })\n }\n\n watch(\n () => route.params.segmentId,\n async (newSegmentId) => {\n if (newSegmentId) {\n segmentId.value = +newSegmentId\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (displayModal.value)\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: _ctx.$t('workouts.WORKOUT_DELETION_CONFIRMATION'),\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (deleteWorkout(_unref(workoutObject).workoutId))),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal(false)))\n }, null, 8, [\"title\", \"message\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createVNode(WorkoutCardTitle, {\n sport: _unref(sport),\n workoutObject: _unref(workoutObject),\n onDisplayModal: _cache[2] || (_cache[2] = ($event: any) => (updateDisplayModal(true)))\n }, null, 8, [\"sport\", \"workoutObject\"])\n ]),\n content: _withCtx(() => [\n _createVNode(WorkoutMap, {\n workoutData: _unref(workoutData),\n markerCoordinates: _unref(markerCoordinates)\n }, null, 8, [\"workoutData\", \"markerCoordinates\"]),\n _createVNode(WorkoutData, {\n workoutObject: _unref(workoutObject),\n useImperialUnits: _unref(authUser).imperial_units,\n displayHARecord: _unref(authUser).display_ascent\n }, null, 8, [\"workoutObject\", \"useImperialUnits\", \"displayHARecord\"])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=9fc0bab8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-9fc0bab8\"]])\n\nexport default __exports__","import { Chart, LegendItem } from 'chart.js'\n\nconst getOrCreateLegendList = (id: string): HTMLUListElement => {\n const legendContainer = document.getElementById(id)\n if (legendContainer) {\n let listContainer = legendContainer.querySelector('ul')\n if (!listContainer) {\n listContainer = document.createElement('ul')\n legendContainer.appendChild(listContainer)\n }\n return listContainer\n }\n throw new Error('No legend container')\n}\n\nexport const htmlLegendPlugin = {\n id: 'htmlLegend',\n afterUpdate(\n chart: Chart,\n args: Record,\n options: Record\n ): void {\n const ul = getOrCreateLegendList(options.containerID)\n while (ul.firstChild) {\n ul.firstChild.remove()\n }\n\n const legendItems = chart.options.plugins?.legend?.labels?.generateLabels\n ? chart.options.plugins?.legend?.labels?.generateLabels(chart)\n : []\n\n legendItems.forEach((item: LegendItem) => {\n const li = document.createElement('li')\n li.onclick = () => {\n if (item.datasetIndex !== undefined) {\n chart.setDatasetVisibility(\n item.datasetIndex,\n !chart.isDatasetVisible(item.datasetIndex)\n )\n chart.update()\n }\n }\n\n const checkBox = document.createElement('input')\n if (checkBox) {\n checkBox.type = 'checkbox'\n checkBox.id = item.text\n checkBox.checked = !item.hidden\n }\n\n const text = document.createTextNode(item.text)\n\n const boxSpan = document.createElement('span')\n if (boxSpan) {\n boxSpan.style.background = String(item.fillStyle)\n boxSpan.style.borderColor = String(item.strokeStyle)\n }\n\n li.appendChild(checkBox)\n li.appendChild(text)\n li.appendChild(boxSpan)\n ul.appendChild(li)\n })\n },\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, unref as _unref, mergeProps as _mergeProps, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0b68c436\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-chart\" }\nconst _hoisted_2 = { class: \"chart-radio\" }\nconst _hoisted_3 = [\"checked\"]\nconst _hoisted_4 = [\"checked\"]\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"chart-legend\" }, null, -1))\nconst _hoisted_6 = { class: \"chart-info\" }\nconst _hoisted_7 = { class: \"no-data-cleaning\" }\nconst _hoisted_8 = { class: \"elevation-start\" }\nconst _hoisted_9 = [\"checked\"]\n\nimport { ChartData, ChartOptions } from 'chart.js'\n import { ComputedRef, computed, ref } from 'vue'\n import { LineChart, useLineChart } from 'vue-chart-3'\n import { useI18n } from 'vue-i18n'\n\n import { htmlLegendPlugin } from '@/components/Workout/WorkoutDetail/WorkoutChart/legend'\n import { TUnit } from '@/types/units'\n import { IAuthUserProfile } from '@/types/user'\n import {\n IWorkoutChartData,\n IWorkoutData,\n TCoordinates,\n } from '@/types/workouts'\n import { units } from '@/utils/units'\n import { getDatasets } from '@/utils/workouts'\n\n interface Props {\n authUser: IAuthUserProfile\n workoutData: IWorkoutData\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n authUser: null,\n workoutData: null\n },\n emits: ['getCoordinates'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n authUser: IAuthUserProfile\n workoutData: IWorkoutData\n };\n\n \n\n \n\n const { t } = useI18n()\n\n const displayDistance = ref(true)\n const beginElevationAtZero = ref(true)\n const datasets: ComputedRef = computed(() =>\n getDatasets(props.workoutData.chartData, t, props.authUser.imperial_units)\n )\n const fromKmUnit = getUnitTo('km')\n const fromMUnit = getUnitTo('m')\n const chartData: ComputedRef> = computed(() => ({\n labels: displayDistance.value\n ? datasets.value.distance_labels\n : datasets.value.duration_labels,\n datasets: JSON.parse(\n JSON.stringify([\n datasets.value.datasets.speed,\n datasets.value.datasets.elevation,\n ])\n ),\n }))\n const coordinates: ComputedRef = computed(\n () => datasets.value.coordinates\n )\n const options = computed>(() => ({\n responsive: true,\n maintainAspectRatio: true,\n animation: false,\n layout: {\n padding: {\n top: 22,\n },\n },\n scales: {\n x: {\n grid: {\n drawOnChartArea: false,\n },\n ticks: {\n count: 10,\n callback: function (value) {\n return displayDistance.value\n ? Number(value).toFixed(2)\n : formatDuration(value)\n },\n },\n type: 'linear',\n bounds: 'data',\n title: {\n display: true,\n text: displayDistance.value\n ? t('workouts.DISTANCE') + ` (${fromKmUnit})`\n : t('workouts.DURATION'),\n },\n },\n ySpeed: {\n grid: {\n drawOnChartArea: false,\n },\n position: 'left',\n title: {\n display: true,\n text: t('workouts.SPEED') + ` (${fromKmUnit}/h)`,\n },\n },\n yElevation: {\n beginAtZero: beginElevationAtZero.value,\n grid: {\n drawOnChartArea: false,\n },\n position: 'right',\n title: {\n display: true,\n text: t('workouts.ELEVATION') + ` (${fromMUnit})`,\n },\n },\n },\n elements: {\n point: {\n pointStyle: 'circle',\n pointRadius: 0,\n },\n },\n plugins: {\n datalabels: {\n display: false,\n },\n tooltip: {\n interaction: {\n intersect: false,\n mode: 'index',\n },\n callbacks: {\n label: function (context) {\n const label = ` ${context.dataset.label}: ${context.formattedValue}`\n return context.dataset.yAxisID === 'yElevation'\n ? label + ` ${fromMUnit}`\n : label + ` ${fromKmUnit}/h`\n },\n title: function (tooltipItems) {\n if (tooltipItems.length > 0) {\n emitCoordinates(coordinates.value[tooltipItems[0].dataIndex])\n }\n return tooltipItems.length === 0\n ? ''\n : displayDistance.value\n ? `${t('workouts.DISTANCE')}: ${\n tooltipItems[0].label\n } ${fromKmUnit}`\n : `${t('workouts.DURATION')}: ${formatDuration(\n tooltipItems[0].label.replace(',', '')\n )}`\n },\n },\n },\n legend: {\n display: false,\n },\n htmlLegend: {\n containerID: 'chart-legend',\n },\n },\n }))\n const { lineChartProps } = useLineChart({\n chartData,\n options,\n plugins: [htmlLegendPlugin],\n })\n\n function updateDisplayDistance() {\n displayDistance.value = !displayDistance.value\n }\n function formatDuration(duration: string | number): string {\n return new Date(+duration * 1000).toISOString().substr(11, 8)\n }\n function emitCoordinates(coordinates: TCoordinates) {\n emit('getCoordinates', coordinates)\n }\n function emitEmptyCoordinates() {\n emitCoordinates({ latitude: null, longitude: null })\n }\n function getUnitTo(unitFrom: TUnit): TUnit {\n return props.authUser.imperial_units\n ? units[unitFrom].defaultTarget\n : unitFrom\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.ANALYSIS')), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"distance\",\n checked: displayDistance.value,\n onClick: updateDisplayDistance\n }, null, 8, _hoisted_3),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DISTANCE')), 1)\n ]),\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"duration\",\n checked: !displayDistance.value,\n onClick: updateDisplayDistance\n }, null, 8, _hoisted_4),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DURATION')), 1)\n ])\n ]),\n _hoisted_5,\n _createVNode(_unref(LineChart), _mergeProps(_unref(lineChartProps), {\n class: \"line-chart\",\n onMouseleave: emitEmptyCoordinates\n }), null, 16),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", _hoisted_7, _toDisplayString(_ctx.$t('workouts.NO_DATA_CLEANING')), 1),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n checked: beginElevationAtZero.value,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (beginElevationAtZero.value = !beginElevationAtZero.value))\n }, null, 8, _hoisted_9),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.START_ELEVATION_AT_ZERO')), 1)\n ])\n ])\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=0b68c436&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-0b68c436\"]])\n\nexport default __exports__","// THIS FILE IS AUTOMATICALLY GENERATED DO NOT EDIT DIRECTLY\n// https://data.iana.org/TLD/tlds-alpha-by-domain.txt\nvar tlds = 'aaa \\\naarp \\\nabarth \\\nabb \\\nabbott \\\nabbvie \\\nabc \\\nable \\\nabogado \\\nabudhabi \\\nac \\\nacademy \\\naccenture \\\naccountant \\\naccountants \\\naco \\\nactor \\\nad \\\nadac \\\nads \\\nadult \\\nae \\\naeg \\\naero \\\naetna \\\naf \\\nafl \\\nafrica \\\nag \\\nagakhan \\\nagency \\\nai \\\naig \\\nairbus \\\nairforce \\\nairtel \\\nakdn \\\nal \\\nalfaromeo \\\nalibaba \\\nalipay \\\nallfinanz \\\nallstate \\\nally \\\nalsace \\\nalstom \\\nam \\\namazon \\\namericanexpress \\\namericanfamily \\\namex \\\namfam \\\namica \\\namsterdam \\\nanalytics \\\nandroid \\\nanquan \\\nanz \\\nao \\\naol \\\napartments \\\napp \\\napple \\\naq \\\naquarelle \\\nar \\\narab \\\naramco \\\narchi \\\narmy \\\narpa \\\nart \\\narte \\\nas \\\nasda \\\nasia \\\nassociates \\\nat \\\nathleta \\\nattorney \\\nau \\\nauction \\\naudi \\\naudible \\\naudio \\\nauspost \\\nauthor \\\nauto \\\nautos \\\navianca \\\naw \\\naws \\\nax \\\naxa \\\naz \\\nazure \\\nba \\\nbaby \\\nbaidu \\\nbanamex \\\nbananarepublic \\\nband \\\nbank \\\nbar \\\nbarcelona \\\nbarclaycard \\\nbarclays \\\nbarefoot \\\nbargains \\\nbaseball \\\nbasketball \\\nbauhaus \\\nbayern \\\nbb \\\nbbc \\\nbbt \\\nbbva \\\nbcg \\\nbcn \\\nbd \\\nbe \\\nbeats \\\nbeauty \\\nbeer \\\nbentley \\\nberlin \\\nbest \\\nbestbuy \\\nbet \\\nbf \\\nbg \\\nbh \\\nbharti \\\nbi \\\nbible \\\nbid \\\nbike \\\nbing \\\nbingo \\\nbio \\\nbiz \\\nbj \\\nblack \\\nblackfriday \\\nblockbuster \\\nblog \\\nbloomberg \\\nblue \\\nbm \\\nbms \\\nbmw \\\nbn \\\nbnpparibas \\\nbo \\\nboats \\\nboehringer \\\nbofa \\\nbom \\\nbond \\\nboo \\\nbook \\\nbooking \\\nbosch \\\nbostik \\\nboston \\\nbot \\\nboutique \\\nbox \\\nbr \\\nbradesco \\\nbridgestone \\\nbroadway \\\nbroker \\\nbrother \\\nbrussels \\\nbs \\\nbt \\\nbugatti \\\nbuild \\\nbuilders \\\nbusiness \\\nbuy \\\nbuzz \\\nbv \\\nbw \\\nby \\\nbz \\\nbzh \\\nca \\\ncab \\\ncafe \\\ncal \\\ncall \\\ncalvinklein \\\ncam \\\ncamera \\\ncamp \\\ncancerresearch \\\ncanon \\\ncapetown \\\ncapital \\\ncapitalone \\\ncar \\\ncaravan \\\ncards \\\ncare \\\ncareer \\\ncareers \\\ncars \\\ncasa \\\ncase \\\ncash \\\ncasino \\\ncat \\\ncatering \\\ncatholic \\\ncba \\\ncbn \\\ncbre \\\ncbs \\\ncc \\\ncd \\\ncenter \\\nceo \\\ncern \\\ncf \\\ncfa \\\ncfd \\\ncg \\\nch \\\nchanel \\\nchannel \\\ncharity \\\nchase \\\nchat \\\ncheap \\\nchintai \\\nchristmas \\\nchrome \\\nchurch \\\nci \\\ncipriani \\\ncircle \\\ncisco \\\ncitadel \\\nciti \\\ncitic \\\ncity \\\ncityeats \\\nck \\\ncl \\\nclaims \\\ncleaning \\\nclick \\\nclinic \\\nclinique \\\nclothing \\\ncloud \\\nclub \\\nclubmed \\\ncm \\\ncn \\\nco \\\ncoach \\\ncodes \\\ncoffee \\\ncollege \\\ncologne \\\ncom \\\ncomcast \\\ncommbank \\\ncommunity \\\ncompany \\\ncompare \\\ncomputer \\\ncomsec \\\ncondos \\\nconstruction \\\nconsulting \\\ncontact \\\ncontractors \\\ncooking \\\ncookingchannel \\\ncool \\\ncoop \\\ncorsica \\\ncountry \\\ncoupon \\\ncoupons \\\ncourses \\\ncpa \\\ncr \\\ncredit \\\ncreditcard \\\ncreditunion \\\ncricket \\\ncrown \\\ncrs \\\ncruise \\\ncruises \\\ncu \\\ncuisinella \\\ncv \\\ncw \\\ncx \\\ncy \\\ncymru \\\ncyou \\\ncz \\\ndabur \\\ndad \\\ndance \\\ndata \\\ndate \\\ndating \\\ndatsun \\\nday \\\ndclk \\\ndds \\\nde \\\ndeal \\\ndealer \\\ndeals \\\ndegree \\\ndelivery \\\ndell \\\ndeloitte \\\ndelta \\\ndemocrat \\\ndental \\\ndentist \\\ndesi \\\ndesign \\\ndev \\\ndhl \\\ndiamonds \\\ndiet \\\ndigital \\\ndirect \\\ndirectory \\\ndiscount \\\ndiscover \\\ndish \\\ndiy \\\ndj \\\ndk \\\ndm \\\ndnp \\\ndo \\\ndocs \\\ndoctor \\\ndog \\\ndomains \\\ndot \\\ndownload \\\ndrive \\\ndtv \\\ndubai \\\ndunlop \\\ndupont \\\ndurban \\\ndvag \\\ndvr \\\ndz \\\nearth \\\neat \\\nec \\\neco \\\nedeka \\\nedu \\\neducation \\\nee \\\neg \\\nemail \\\nemerck \\\nenergy \\\nengineer \\\nengineering \\\nenterprises \\\nepson \\\nequipment \\\ner \\\nericsson \\\nerni \\\nes \\\nesq \\\nestate \\\net \\\netisalat \\\neu \\\neurovision \\\neus \\\nevents \\\nexchange \\\nexpert \\\nexposed \\\nexpress \\\nextraspace \\\nfage \\\nfail \\\nfairwinds \\\nfaith \\\nfamily \\\nfan \\\nfans \\\nfarm \\\nfarmers \\\nfashion \\\nfast \\\nfedex \\\nfeedback \\\nferrari \\\nferrero \\\nfi \\\nfiat \\\nfidelity \\\nfido \\\nfilm \\\nfinal \\\nfinance \\\nfinancial \\\nfire \\\nfirestone \\\nfirmdale \\\nfish \\\nfishing \\\nfit \\\nfitness \\\nfj \\\nfk \\\nflickr \\\nflights \\\nflir \\\nflorist \\\nflowers \\\nfly \\\nfm \\\nfo \\\nfoo \\\nfood \\\nfoodnetwork \\\nfootball \\\nford \\\nforex \\\nforsale \\\nforum \\\nfoundation \\\nfox \\\nfr \\\nfree \\\nfresenius \\\nfrl \\\nfrogans \\\nfrontdoor \\\nfrontier \\\nftr \\\nfujitsu \\\nfun \\\nfund \\\nfurniture \\\nfutbol \\\nfyi \\\nga \\\ngal \\\ngallery \\\ngallo \\\ngallup \\\ngame \\\ngames \\\ngap \\\ngarden \\\ngay \\\ngb \\\ngbiz \\\ngd \\\ngdn \\\nge \\\ngea \\\ngent \\\ngenting \\\ngeorge \\\ngf \\\ngg \\\nggee \\\ngh \\\ngi \\\ngift \\\ngifts \\\ngives \\\ngiving \\\ngl \\\nglass \\\ngle \\\nglobal \\\nglobo \\\ngm \\\ngmail \\\ngmbh \\\ngmo \\\ngmx \\\ngn \\\ngodaddy \\\ngold \\\ngoldpoint \\\ngolf \\\ngoo \\\ngoodyear \\\ngoog \\\ngoogle \\\ngop \\\ngot \\\ngov \\\ngp \\\ngq \\\ngr \\\ngrainger \\\ngraphics \\\ngratis \\\ngreen \\\ngripe \\\ngrocery \\\ngroup \\\ngs \\\ngt \\\ngu \\\nguardian \\\ngucci \\\nguge \\\nguide \\\nguitars \\\nguru \\\ngw \\\ngy \\\nhair \\\nhamburg \\\nhangout \\\nhaus \\\nhbo \\\nhdfc \\\nhdfcbank \\\nhealth \\\nhealthcare \\\nhelp \\\nhelsinki \\\nhere \\\nhermes \\\nhgtv \\\nhiphop \\\nhisamitsu \\\nhitachi \\\nhiv \\\nhk \\\nhkt \\\nhm \\\nhn \\\nhockey \\\nholdings \\\nholiday \\\nhomedepot \\\nhomegoods \\\nhomes \\\nhomesense \\\nhonda \\\nhorse \\\nhospital \\\nhost \\\nhosting \\\nhot \\\nhoteles \\\nhotels \\\nhotmail \\\nhouse \\\nhow \\\nhr \\\nhsbc \\\nht \\\nhu \\\nhughes \\\nhyatt \\\nhyundai \\\nibm \\\nicbc \\\nice \\\nicu \\\nid \\\nie \\\nieee \\\nifm \\\nikano \\\nil \\\nim \\\nimamat \\\nimdb \\\nimmo \\\nimmobilien \\\nin \\\ninc \\\nindustries \\\ninfiniti \\\ninfo \\\ning \\\nink \\\ninstitute \\\ninsurance \\\ninsure \\\nint \\\ninternational \\\nintuit \\\ninvestments \\\nio \\\nipiranga \\\niq \\\nir \\\nirish \\\nis \\\nismaili \\\nist \\\nistanbul \\\nit \\\nitau \\\nitv \\\njaguar \\\njava \\\njcb \\\nje \\\njeep \\\njetzt \\\njewelry \\\njio \\\njll \\\njm \\\njmp \\\njnj \\\njo \\\njobs \\\njoburg \\\njot \\\njoy \\\njp \\\njpmorgan \\\njprs \\\njuegos \\\njuniper \\\nkaufen \\\nkddi \\\nke \\\nkerryhotels \\\nkerrylogistics \\\nkerryproperties \\\nkfh \\\nkg \\\nkh \\\nki \\\nkia \\\nkids \\\nkim \\\nkinder \\\nkindle \\\nkitchen \\\nkiwi \\\nkm \\\nkn \\\nkoeln \\\nkomatsu \\\nkosher \\\nkp \\\nkpmg \\\nkpn \\\nkr \\\nkrd \\\nkred \\\nkuokgroup \\\nkw \\\nky \\\nkyoto \\\nkz \\\nla \\\nlacaixa \\\nlamborghini \\\nlamer \\\nlancaster \\\nlancia \\\nland \\\nlandrover \\\nlanxess \\\nlasalle \\\nlat \\\nlatino \\\nlatrobe \\\nlaw \\\nlawyer \\\nlb \\\nlc \\\nlds \\\nlease \\\nleclerc \\\nlefrak \\\nlegal \\\nlego \\\nlexus \\\nlgbt \\\nli \\\nlidl \\\nlife \\\nlifeinsurance \\\nlifestyle \\\nlighting \\\nlike \\\nlilly \\\nlimited \\\nlimo \\\nlincoln \\\nlinde \\\nlink \\\nlipsy \\\nlive \\\nliving \\\nlk \\\nllc \\\nllp \\\nloan \\\nloans \\\nlocker \\\nlocus \\\nloft \\\nlol \\\nlondon \\\nlotte \\\nlotto \\\nlove \\\nlpl \\\nlplfinancial \\\nlr \\\nls \\\nlt \\\nltd \\\nltda \\\nlu \\\nlundbeck \\\nluxe \\\nluxury \\\nlv \\\nly \\\nma \\\nmacys \\\nmadrid \\\nmaif \\\nmaison \\\nmakeup \\\nman \\\nmanagement \\\nmango \\\nmap \\\nmarket \\\nmarketing \\\nmarkets \\\nmarriott \\\nmarshalls \\\nmaserati \\\nmattel \\\nmba \\\nmc \\\nmckinsey \\\nmd \\\nme \\\nmed \\\nmedia \\\nmeet \\\nmelbourne \\\nmeme \\\nmemorial \\\nmen \\\nmenu \\\nmerckmsd \\\nmg \\\nmh \\\nmiami \\\nmicrosoft \\\nmil \\\nmini \\\nmint \\\nmit \\\nmitsubishi \\\nmk \\\nml \\\nmlb \\\nmls \\\nmm \\\nmma \\\nmn \\\nmo \\\nmobi \\\nmobile \\\nmoda \\\nmoe \\\nmoi \\\nmom \\\nmonash \\\nmoney \\\nmonster \\\nmormon \\\nmortgage \\\nmoscow \\\nmoto \\\nmotorcycles \\\nmov \\\nmovie \\\nmp \\\nmq \\\nmr \\\nms \\\nmsd \\\nmt \\\nmtn \\\nmtr \\\nmu \\\nmuseum \\\nmusic \\\nmutual \\\nmv \\\nmw \\\nmx \\\nmy \\\nmz \\\nna \\\nnab \\\nnagoya \\\nname \\\nnatura \\\nnavy \\\nnba \\\nnc \\\nne \\\nnec \\\nnet \\\nnetbank \\\nnetflix \\\nnetwork \\\nneustar \\\nnew \\\nnews \\\nnext \\\nnextdirect \\\nnexus \\\nnf \\\nnfl \\\nng \\\nngo \\\nnhk \\\nni \\\nnico \\\nnike \\\nnikon \\\nninja \\\nnissan \\\nnissay \\\nnl \\\nno \\\nnokia \\\nnorthwesternmutual \\\nnorton \\\nnow \\\nnowruz \\\nnowtv \\\nnp \\\nnr \\\nnra \\\nnrw \\\nntt \\\nnu \\\nnyc \\\nnz \\\nobi \\\nobserver \\\noffice \\\nokinawa \\\nolayan \\\nolayangroup \\\noldnavy \\\nollo \\\nom \\\nomega \\\none \\\nong \\\nonl \\\nonline \\\nooo \\\nopen \\\noracle \\\norange \\\norg \\\norganic \\\norigins \\\nosaka \\\notsuka \\\nott \\\novh \\\npa \\\npage \\\npanasonic \\\nparis \\\npars \\\npartners \\\nparts \\\nparty \\\npassagens \\\npay \\\npccw \\\npe \\\npet \\\npf \\\npfizer \\\npg \\\nph \\\npharmacy \\\nphd \\\nphilips \\\nphone \\\nphoto \\\nphotography \\\nphotos \\\nphysio \\\npics \\\npictet \\\npictures \\\npid \\\npin \\\nping \\\npink \\\npioneer \\\npizza \\\npk \\\npl \\\nplace \\\nplay \\\nplaystation \\\nplumbing \\\nplus \\\npm \\\npn \\\npnc \\\npohl \\\npoker \\\npolitie \\\nporn \\\npost \\\npr \\\npramerica \\\npraxi \\\npress \\\nprime \\\npro \\\nprod \\\nproductions \\\nprof \\\nprogressive \\\npromo \\\nproperties \\\nproperty \\\nprotection \\\npru \\\nprudential \\\nps \\\npt \\\npub \\\npw \\\npwc \\\npy \\\nqa \\\nqpon \\\nquebec \\\nquest \\\nracing \\\nradio \\\nre \\\nread \\\nrealestate \\\nrealtor \\\nrealty \\\nrecipes \\\nred \\\nredstone \\\nredumbrella \\\nrehab \\\nreise \\\nreisen \\\nreit \\\nreliance \\\nren \\\nrent \\\nrentals \\\nrepair \\\nreport \\\nrepublican \\\nrest \\\nrestaurant \\\nreview \\\nreviews \\\nrexroth \\\nrich \\\nrichardli \\\nricoh \\\nril \\\nrio \\\nrip \\\nro \\\nrocher \\\nrocks \\\nrodeo \\\nrogers \\\nroom \\\nrs \\\nrsvp \\\nru \\\nrugby \\\nruhr \\\nrun \\\nrw \\\nrwe \\\nryukyu \\\nsa \\\nsaarland \\\nsafe \\\nsafety \\\nsakura \\\nsale \\\nsalon \\\nsamsclub \\\nsamsung \\\nsandvik \\\nsandvikcoromant \\\nsanofi \\\nsap \\\nsarl \\\nsas \\\nsave \\\nsaxo \\\nsb \\\nsbi \\\nsbs \\\nsc \\\nsca \\\nscb \\\nschaeffler \\\nschmidt \\\nscholarships \\\nschool \\\nschule \\\nschwarz \\\nscience \\\nscot \\\nsd \\\nse \\\nsearch \\\nseat \\\nsecure \\\nsecurity \\\nseek \\\nselect \\\nsener \\\nservices \\\nses \\\nseven \\\nsew \\\nsex \\\nsexy \\\nsfr \\\nsg \\\nsh \\\nshangrila \\\nsharp \\\nshaw \\\nshell \\\nshia \\\nshiksha \\\nshoes \\\nshop \\\nshopping \\\nshouji \\\nshow \\\nshowtime \\\nsi \\\nsilk \\\nsina \\\nsingles \\\nsite \\\nsj \\\nsk \\\nski \\\nskin \\\nsky \\\nskype \\\nsl \\\nsling \\\nsm \\\nsmart \\\nsmile \\\nsn \\\nsncf \\\nso \\\nsoccer \\\nsocial \\\nsoftbank \\\nsoftware \\\nsohu \\\nsolar \\\nsolutions \\\nsong \\\nsony \\\nsoy \\\nspa \\\nspace \\\nsport \\\nspot \\\nsr \\\nsrl \\\nss \\\nst \\\nstada \\\nstaples \\\nstar \\\nstatebank \\\nstatefarm \\\nstc \\\nstcgroup \\\nstockholm \\\nstorage \\\nstore \\\nstream \\\nstudio \\\nstudy \\\nstyle \\\nsu \\\nsucks \\\nsupplies \\\nsupply \\\nsupport \\\nsurf \\\nsurgery \\\nsuzuki \\\nsv \\\nswatch \\\nswiss \\\nsx \\\nsy \\\nsydney \\\nsystems \\\nsz \\\ntab \\\ntaipei \\\ntalk \\\ntaobao \\\ntarget \\\ntatamotors \\\ntatar \\\ntattoo \\\ntax \\\ntaxi \\\ntc \\\ntci \\\ntd \\\ntdk \\\nteam \\\ntech \\\ntechnology \\\ntel \\\ntemasek \\\ntennis \\\nteva \\\ntf \\\ntg \\\nth \\\nthd \\\ntheater \\\ntheatre \\\ntiaa \\\ntickets \\\ntienda \\\ntiffany \\\ntips \\\ntires \\\ntirol \\\ntj \\\ntjmaxx \\\ntjx \\\ntk \\\ntkmaxx \\\ntl \\\ntm \\\ntmall \\\ntn \\\nto \\\ntoday \\\ntokyo \\\ntools \\\ntop \\\ntoray \\\ntoshiba \\\ntotal \\\ntours \\\ntown \\\ntoyota \\\ntoys \\\ntr \\\ntrade \\\ntrading \\\ntraining \\\ntravel \\\ntravelchannel \\\ntravelers \\\ntravelersinsurance \\\ntrust \\\ntrv \\\ntt \\\ntube \\\ntui \\\ntunes \\\ntushu \\\ntv \\\ntvs \\\ntw \\\ntz \\\nua \\\nubank \\\nubs \\\nug \\\nuk \\\nunicom \\\nuniversity \\\nuno \\\nuol \\\nups \\\nus \\\nuy \\\nuz \\\nva \\\nvacations \\\nvana \\\nvanguard \\\nvc \\\nve \\\nvegas \\\nventures \\\nverisign \\\nvermögensberater \\\nvermögensberatung \\\nversicherung \\\nvet \\\nvg \\\nvi \\\nviajes \\\nvideo \\\nvig \\\nviking \\\nvillas \\\nvin \\\nvip \\\nvirgin \\\nvisa \\\nvision \\\nviva \\\nvivo \\\nvlaanderen \\\nvn \\\nvodka \\\nvolkswagen \\\nvolvo \\\nvote \\\nvoting \\\nvoto \\\nvoyage \\\nvu \\\nvuelos \\\nwales \\\nwalmart \\\nwalter \\\nwang \\\nwanggou \\\nwatch \\\nwatches \\\nweather \\\nweatherchannel \\\nwebcam \\\nweber \\\nwebsite \\\nwed \\\nwedding \\\nweibo \\\nweir \\\nwf \\\nwhoswho \\\nwien \\\nwiki \\\nwilliamhill \\\nwin \\\nwindows \\\nwine \\\nwinners \\\nwme \\\nwolterskluwer \\\nwoodside \\\nwork \\\nworks \\\nworld \\\nwow \\\nws \\\nwtc \\\nwtf \\\nxbox \\\nxerox \\\nxfinity \\\nxihuan \\\nxin \\\nxxx \\\nxyz \\\nyachts \\\nyahoo \\\nyamaxun \\\nyandex \\\nye \\\nyodobashi \\\nyoga \\\nyokohama \\\nyou \\\nyoutube \\\nyt \\\nyun \\\nza \\\nzappos \\\nzara \\\nzero \\\nzip \\\nzm \\\nzone \\\nzuerich \\\nzw'.split(' '); // Internationalized domain names containing non-ASCII\n\nvar utlds = 'ελ \\\nευ \\\nбг \\\nбел \\\nдети \\\nею \\\nкатолик \\\nком \\\nмкд \\\nмон \\\nмосква \\\nонлайн \\\nорг \\\nрус \\\nрф \\\nсайт \\\nсрб \\\nукр \\\nқаз \\\nհայ \\\nישראל \\\nקום \\\nابوظبي \\\nاتصالات \\\nارامكو \\\nالاردن \\\nالبحرين \\\nالجزائر \\\nالسعودية \\\nالعليان \\\nالمغرب \\\nامارات \\\nایران \\\nبارت \\\nبازار \\\nبيتك \\\nبھارت \\\nتونس \\\nسودان \\\nسورية \\\nشبكة \\\nعراق \\\nعرب \\\nعمان \\\nفلسطين \\\nقطر \\\nكاثوليك \\\nكوم \\\nمصر \\\nمليسيا \\\nموريتانيا \\\nموقع \\\nهمراه \\\nپاکستان \\\nڀارت \\\nकॉम \\\nनेट \\\nभारत \\\nभारतम् \\\nभारोत \\\nसंगठन \\\nবাংলা \\\nভারত \\\nভাৰত \\\nਭਾਰਤ \\\nભારત \\\nଭାରତ \\\nஇந்தியா \\\nஇலங்கை \\\nசிங்கப்பூர் \\\nభారత్ \\\nಭಾರತ \\\nഭാരതം \\\nලංකා \\\nคอม \\\nไทย \\\nລາວ \\\nგე \\\nみんな \\\nアマゾン \\\nクラウド \\\nグーグル \\\nコム \\\nストア \\\nセール \\\nファッション \\\nポイント \\\n世界 \\\n中信 \\\n中国 \\\n中國 \\\n中文网 \\\n亚马逊 \\\n企业 \\\n佛山 \\\n信息 \\\n健康 \\\n八卦 \\\n公司 \\\n公益 \\\n台湾 \\\n台灣 \\\n商城 \\\n商店 \\\n商标 \\\n嘉里 \\\n嘉里大酒店 \\\n在线 \\\n大拿 \\\n天主教 \\\n娱乐 \\\n家電 \\\n广东 \\\n微博 \\\n慈善 \\\n我爱你 \\\n手机 \\\n招聘 \\\n政务 \\\n政府 \\\n新加坡 \\\n新闻 \\\n时尚 \\\n書籍 \\\n机构 \\\n淡马锡 \\\n游戏 \\\n澳門 \\\n点看 \\\n移动 \\\n组织机构 \\\n网址 \\\n网店 \\\n网站 \\\n网络 \\\n联通 \\\n诺基亚 \\\n谷歌 \\\n购物 \\\n通販 \\\n集团 \\\n電訊盈科 \\\n飞利浦 \\\n食品 \\\n餐厅 \\\n香格里拉 \\\n香港 \\\n닷넷 \\\n닷컴 \\\n삼성 \\\n한국'.split(' ');\n\n/**\n * @template A\n * @template B\n * @param {A} target\n * @param {B} properties\n * @return {A & B}\n */\nvar assign = function assign(target, properties) {\n for (var key in properties) {\n target[key] = properties[key];\n }\n\n return target;\n};\n\n/**\n * Finite State Machine generation utilities\n */\n/**\n * @template T\n * @typedef {{ [group: string]: T[] }} Collections\n */\n\n/**\n * @typedef {{ [group: string]: true }} Flags\n */\n// Keys in scanner Collections instances\n\nvar numeric = 'numeric';\nvar ascii = 'ascii';\nvar alpha = 'alpha';\nvar asciinumeric = 'asciinumeric';\nvar alphanumeric = 'alphanumeric';\nvar domain = 'domain';\nvar emoji = 'emoji';\nvar scheme = 'scheme';\nvar slashscheme = 'slashscheme';\nvar whitespace = 'whitespace';\n/**\n * @template T\n * @param {string} name\n * @param {Collections} groups to register in\n * @returns {T[]} Current list of tokens in the given collection\n */\n\nfunction registerGroup(name, groups) {\n if (!(name in groups)) {\n groups[name] = [];\n }\n\n return groups[name];\n}\n/**\n * @template T\n * @param {T} t token to add\n * @param {Collections} groups\n * @param {Flags} flags\n */\n\n\nfunction addToGroups(t, flags, groups) {\n if (flags[numeric]) {\n flags[asciinumeric] = true;\n flags[alphanumeric] = true;\n }\n\n if (flags[ascii]) {\n flags[asciinumeric] = true;\n flags[alpha] = true;\n }\n\n if (flags[asciinumeric]) {\n flags[alphanumeric] = true;\n }\n\n if (flags[alpha]) {\n flags[alphanumeric] = true;\n }\n\n if (flags[alphanumeric]) {\n flags[domain] = true;\n }\n\n if (flags[emoji]) {\n flags[domain] = true;\n }\n\n for (var k in flags) {\n var group = registerGroup(k, groups);\n\n if (group.indexOf(t) < 0) {\n group.push(t);\n }\n }\n}\n/**\n * @template T\n * @param {T} t token to check\n * @param {Collections} groups\n * @returns {Flags} group flags that contain this token\n */\n\nfunction flagsForToken(t, groups) {\n var result = {};\n\n for (var c in groups) {\n if (groups[c].indexOf(t) >= 0) {\n result[c] = true;\n }\n }\n\n return result;\n}\n/**\n * @template T\n * @typedef {null | T } Transition\n */\n\n/**\n * Define a basic state machine state. j is the list of character transitions,\n * jr is the list of regex-match transitions, jd is the default state to\n * transition to t is the accepting token type, if any. If this is the terminal\n * state, then it does not emit a token.\n *\n * The template type T represents the type of the token this state accepts. This\n * should be a string (such as of the token exports in `text.js`) or a\n * MultiToken subclass (from `multi.js`)\n *\n * @template T\n * @param {T} [token] Token that this state emits\n */\n\n\nfunction State(token) {\n if (token === void 0) {\n token = null;\n }\n\n // this.n = null; // DEBUG: State name\n\n /** @type {{ [input: string]: State }} j */\n this.j = {}; // IMPLEMENTATION 1\n // this.j = []; // IMPLEMENTATION 2\n\n /** @type {[RegExp, State][]} jr */\n\n this.jr = [];\n /** @type {?State} jd */\n\n this.jd = null;\n /** @type {?T} t */\n\n this.t = token;\n}\n/**\n * Scanner token groups\n * @type Collections\n */\n\nState.groups = {};\nState.prototype = {\n accepts: function accepts() {\n return !!this.t;\n },\n\n /**\n * Follow an existing transition from the given input to the next state.\n * Does not mutate.\n * @param {string} input character or token type to transition on\n * @returns {?State} the next state, if any\n */\n go: function go(input) {\n var state = this;\n var nextState = state.j[input];\n\n if (nextState) {\n return nextState;\n }\n\n for (var i = 0; i < state.jr.length; i++) {\n var regex = state.jr[i][0];\n var _nextState = state.jr[i][1]; // note: might be empty to prevent default jump\n\n if (_nextState && regex.test(input)) {\n return _nextState;\n }\n } // Nowhere left to jump! Return default, if any\n\n\n return state.jd;\n },\n\n /**\n * Whether the state has a transition for the given input. Set the second\n * argument to true to only look for an exact match (and not a default or\n * regular-expression-based transition)\n * @param {string} input\n * @param {boolean} exactOnly\n */\n has: function has(input, exactOnly) {\n if (exactOnly === void 0) {\n exactOnly = false;\n }\n\n return exactOnly ? input in this.j : !!this.go(input);\n },\n\n /**\n * Short for \"transition all\"; create a transition from the array of items\n * in the given list to the same final resulting state.\n * @param {string | string[]} inputs Group of inputs to transition on\n * @param {Transition | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n */\n ta: function ta(inputs, next, flags, groups) {\n for (var i = 0; i < inputs.length; i++) {\n this.tt(inputs[i], next, flags, groups);\n }\n },\n\n /**\n * Short for \"take regexp transition\"; defines a transition for this state\n * when it encounters a token which matches the given regular expression\n * @param {RegExp} regexp Regular expression transition (populate first)\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n * @returns {State} taken after the given input\n */\n tr: function tr(regexp, next, flags, groups) {\n groups = groups || State.groups;\n var nextState;\n\n if (next && next.j) {\n nextState = next;\n } else {\n // Token with maybe token groups\n nextState = new State(next);\n\n if (flags && groups) {\n addToGroups(next, flags, groups);\n }\n }\n\n this.jr.push([regexp, nextState]);\n return nextState;\n },\n\n /**\n * Short for \"take transitions\", will take as many sequential transitions as\n * the length of the given input and returns the\n * resulting final state.\n * @param {string | string[]} input\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of token groups\n * @returns {State} taken after the given input\n */\n ts: function ts(input, next, flags, groups) {\n var state = this;\n var len = input.length;\n\n if (!len) {\n return state;\n }\n\n for (var i = 0; i < len - 1; i++) {\n state = state.tt(input[i]);\n }\n\n return state.tt(input[len - 1], next, flags, groups);\n },\n\n /**\n * Short for \"take transition\", this is a method for building/working with\n * state machines.\n *\n * If a state already exists for the given input, returns it.\n *\n * If a token is specified, that state will emit that token when reached by\n * the linkify engine.\n *\n * If no state exists, it will be initialized with some default transitions\n * that resemble existing default transitions.\n *\n * If a state is given for the second argument, that state will be\n * transitioned to on the given input regardless of what that input\n * previously did.\n *\n * Specify a token group flags to define groups that this token belongs to.\n * The token will be added to corresponding entires in the given groups\n * object.\n *\n * @param {string} input character, token type to transition on\n * @param {T | State} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections} [groups] Master list of groups\n * @returns {State} taken after the given input\n */\n tt: function tt(input, next, flags, groups) {\n groups = groups || State.groups;\n var state = this; // Check if existing state given, just a basic transition\n\n if (next && next.j) {\n state.j[input] = next;\n return next;\n }\n\n var t = next; // Take the transition with the usual default mechanisms and use that as\n // a template for creating the next state\n\n var nextState,\n templateState = state.go(input);\n\n if (templateState) {\n nextState = new State();\n assign(nextState.j, templateState.j);\n nextState.jr.push.apply(nextState.jr, templateState.jr);\n nextState.jd = templateState.jd;\n nextState.t = templateState.t;\n } else {\n nextState = new State();\n }\n\n if (t) {\n // Ensure newly token is in the same groups as the old token\n if (groups) {\n if (nextState.t && typeof nextState.t === 'string') {\n var allFlags = assign(flagsForToken(nextState.t, groups), flags);\n addToGroups(t, allFlags, groups);\n } else if (flags) {\n addToGroups(t, flags, groups);\n }\n }\n\n nextState.t = t; // overwrite anything that was previously there\n }\n\n state.j[input] = nextState;\n return nextState;\n }\n}; // Helper functions to improve minification (not exported outside linkifyjs module)\n\n/**\n * @template T\n * @param {State} state\n * @param {string | string[]} input\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\n\nvar ta = function ta(state, input, next, flags, groups) {\n return state.ta(input, next, flags, groups);\n};\n/**\n * @template T\n * @param {State} state\n * @param {RegExp} regexp\n * @param {T | State} [next]\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\n\nvar tr = function tr(state, regexp, next, flags, groups) {\n return state.tr(regexp, next, flags, groups);\n};\n/**\n * @template T\n * @param {State} state\n * @param {string | string[]} input\n * @param {T | State} [next]\n * @param {Flags} [flags]\n * @param {Collections} [groups]\n */\n\nvar ts = function ts(state, input, next, flags, groups) {\n return state.ts(input, next, flags, groups);\n};\n/**\n * @template T\n * @param {State} state\n * @param {string} input\n * @param {T | State} [next]\n * @param {Collections} [groups]\n * @param {Flags} [flags]\n */\n\nvar tt = function tt(state, input, next, flags, groups) {\n return state.tt(input, next, flags, groups);\n};\n\n/******************************************************************************\nText Tokens\nIdentifiers for token outputs from the regexp scanner\n******************************************************************************/\n// A valid web domain token\nvar WORD = 'WORD'; // only contains a-z\n\nvar UWORD = 'UWORD'; // contains letters other than a-z, used for IDN\n// Special case of word\n\nvar LOCALHOST = 'LOCALHOST'; // Valid top-level domain, special case of WORD (see tlds.js)\n\nvar TLD = 'TLD'; // Valid IDN TLD, special case of UWORD (see tlds.js)\n\nvar UTLD = 'UTLD'; // The scheme portion of a web URI protocol. Supported types include: `mailto`,\n// `file`, and user-defined custom protocols. Limited to schemes that contain\n// only letters\n\nvar SCHEME = 'SCHEME'; // Similar to SCHEME, except makes distinction for schemes that must always be\n// followed by `://`, not just `:`. Supported types include `http`, `https`,\n// `ftp`, `ftps`\n\nvar SLASH_SCHEME = 'SLASH_SCHEME'; // Any sequence of digits 0-9\n\nvar NUM = 'NUM'; // Any number of consecutive whitespace characters that are not newline\n\nvar WS = 'WS'; // New line (unix style)\n\nvar NL$1 = 'NL'; // \\n\n// Opening/closing bracket classes\n\nvar OPENBRACE = 'OPENBRACE'; // {\n\nvar OPENBRACKET = 'OPENBRACKET'; // [\n\nvar OPENANGLEBRACKET = 'OPENANGLEBRACKET'; // <\n\nvar OPENPAREN = 'OPENPAREN'; // (\n\nvar CLOSEBRACE = 'CLOSEBRACE'; // }\n\nvar CLOSEBRACKET = 'CLOSEBRACKET'; // ]\n\nvar CLOSEANGLEBRACKET = 'CLOSEANGLEBRACKET'; // >\n\nvar CLOSEPAREN = 'CLOSEPAREN'; // )\n// Various symbols\n\nvar AMPERSAND = 'AMPERSAND'; // &\n\nvar APOSTROPHE = 'APOSTROPHE'; // '\n\nvar ASTERISK = 'ASTERISK'; // *\n\nvar AT = 'AT'; // @\n\nvar BACKSLASH = 'BACKSLASH'; // \\\n\nvar BACKTICK = 'BACKTICK'; // `\n\nvar CARET = 'CARET'; // ^\n\nvar COLON = 'COLON'; // :\n\nvar COMMA = 'COMMA'; // ,\n\nvar DOLLAR = 'DOLLAR'; // $\n\nvar DOT = 'DOT'; // .\n\nvar EQUALS = 'EQUALS'; // =\n\nvar EXCLAMATION = 'EXCLAMATION'; // !\n\nvar HYPHEN = 'HYPHEN'; // -\n\nvar PERCENT = 'PERCENT'; // %\n\nvar PIPE = 'PIPE'; // |\n\nvar PLUS = 'PLUS'; // +\n\nvar POUND = 'POUND'; // #\n\nvar QUERY = 'QUERY'; // ?\n\nvar QUOTE = 'QUOTE'; // \"\n\nvar SEMI = 'SEMI'; // ;\n\nvar SLASH = 'SLASH'; // /\n\nvar TILDE = 'TILDE'; // ~\n\nvar UNDERSCORE = 'UNDERSCORE'; // _\n// Emoji symbol\n\nvar EMOJI$1 = 'EMOJI'; // Default token - anything that is not one of the above\n\nvar SYM = 'SYM';\n\nvar tk = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tWORD: WORD,\n\tUWORD: UWORD,\n\tLOCALHOST: LOCALHOST,\n\tTLD: TLD,\n\tUTLD: UTLD,\n\tSCHEME: SCHEME,\n\tSLASH_SCHEME: SLASH_SCHEME,\n\tNUM: NUM,\n\tWS: WS,\n\tNL: NL$1,\n\tOPENBRACE: OPENBRACE,\n\tOPENBRACKET: OPENBRACKET,\n\tOPENANGLEBRACKET: OPENANGLEBRACKET,\n\tOPENPAREN: OPENPAREN,\n\tCLOSEBRACE: CLOSEBRACE,\n\tCLOSEBRACKET: CLOSEBRACKET,\n\tCLOSEANGLEBRACKET: CLOSEANGLEBRACKET,\n\tCLOSEPAREN: CLOSEPAREN,\n\tAMPERSAND: AMPERSAND,\n\tAPOSTROPHE: APOSTROPHE,\n\tASTERISK: ASTERISK,\n\tAT: AT,\n\tBACKSLASH: BACKSLASH,\n\tBACKTICK: BACKTICK,\n\tCARET: CARET,\n\tCOLON: COLON,\n\tCOMMA: COMMA,\n\tDOLLAR: DOLLAR,\n\tDOT: DOT,\n\tEQUALS: EQUALS,\n\tEXCLAMATION: EXCLAMATION,\n\tHYPHEN: HYPHEN,\n\tPERCENT: PERCENT,\n\tPIPE: PIPE,\n\tPLUS: PLUS,\n\tPOUND: POUND,\n\tQUERY: QUERY,\n\tQUOTE: QUOTE,\n\tSEMI: SEMI,\n\tSLASH: SLASH,\n\tTILDE: TILDE,\n\tUNDERSCORE: UNDERSCORE,\n\tEMOJI: EMOJI$1,\n\tSYM: SYM\n});\n\n// Note that these two Unicode ones expand into a really big one with Babel\nvar ASCII_LETTER = /[a-z]/;\nvar LETTER = /(?:[A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF40\\uDF42-\\uDF49\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF70-\\uDF81\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8\\uDF00-\\uDF1A\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE70-\\uDEBE\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD837[\\uDF00-\\uDF1E]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF38\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])/; // Any Unicode character with letter data type\n\nvar EMOJI = /(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26A7\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5-\\uDED7\\uDEDD-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7C\\uDE80-\\uDE86\\uDE90-\\uDEAC\\uDEB0-\\uDEBA\\uDEC0-\\uDEC5\\uDED0-\\uDED9\\uDEE0-\\uDEE7\\uDEF0-\\uDEF6])/; // Any Unicode emoji character\n\nvar EMOJI_VARIATION$1 = /\\ufe0f/;\nvar DIGIT = /\\d/;\nvar SPACE = /\\s/;\n\nvar regexp = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tASCII_LETTER: ASCII_LETTER,\n\tLETTER: LETTER,\n\tEMOJI: EMOJI,\n\tEMOJI_VARIATION: EMOJI_VARIATION$1,\n\tDIGIT: DIGIT,\n\tSPACE: SPACE\n});\n\n/**\n\tThe scanner provides an interface that takes a string of text as input, and\n\toutputs an array of tokens instances that can be used for easy URL parsing.\n*/\nvar NL = '\\n'; // New line character\n\nvar EMOJI_VARIATION = \"\\uFE0F\"; // Variation selector, follows heart and others\n\nvar EMOJI_JOINER = \"\\u200D\"; // zero-width joiner\n\n/**\n * Scanner output token:\n * - `t` is the token name (e.g., 'NUM', 'EMOJI', 'TLD')\n * - `v` is the value of the token (e.g., '123', '❤️', 'com')\n * - `s` is the start index of the token in the original string\n * - `e` is the end index of the token in the original string\n * @typedef {{t: string, v: string, s: number, e: number}} Token\n */\n\n/**\n * @template T\n * @typedef {{ [collection: string]: T[] }} Collections\n */\n\n/**\n * Initialize the scanner character-based state machine for the given start\n * state\n * @param {[string, boolean][]} customSchemes List of custom schemes, where each\n * item is a length-2 tuple with the first element set to the string scheme, and\n * the second element set to `true` if the `://` after the scheme is optional\n */\n\nfunction init$2(customSchemes) {\n var _tr, _tr2, _tr3, _tr4, _tt, _tr5;\n\n if (customSchemes === void 0) {\n customSchemes = [];\n }\n\n // Frequently used states (name argument removed during minification)\n\n /** @type Collections */\n var groups = {}; // of tokens\n\n State.groups = groups;\n /** @type State */\n\n var Start = new State(); // States for special URL symbols that accept immediately after start\n\n tt(Start, \"'\", APOSTROPHE);\n tt(Start, '{', OPENBRACE);\n tt(Start, '[', OPENBRACKET);\n tt(Start, '<', OPENANGLEBRACKET);\n tt(Start, '(', OPENPAREN);\n tt(Start, '}', CLOSEBRACE);\n tt(Start, ']', CLOSEBRACKET);\n tt(Start, '>', CLOSEANGLEBRACKET);\n tt(Start, ')', CLOSEPAREN);\n tt(Start, '&', AMPERSAND);\n tt(Start, '*', ASTERISK);\n tt(Start, '@', AT);\n tt(Start, '`', BACKTICK);\n tt(Start, '^', CARET);\n tt(Start, ':', COLON);\n tt(Start, ',', COMMA);\n tt(Start, '$', DOLLAR);\n tt(Start, '.', DOT);\n tt(Start, '=', EQUALS);\n tt(Start, '!', EXCLAMATION);\n tt(Start, '-', HYPHEN);\n tt(Start, '%', PERCENT);\n tt(Start, '|', PIPE);\n tt(Start, '+', PLUS);\n tt(Start, '#', POUND);\n tt(Start, '?', QUERY);\n tt(Start, '\"', QUOTE);\n tt(Start, '/', SLASH);\n tt(Start, ';', SEMI);\n tt(Start, '~', TILDE);\n tt(Start, '_', UNDERSCORE);\n tt(Start, '\\\\', BACKSLASH);\n var Num = tr(Start, DIGIT, NUM, (_tr = {}, _tr[numeric] = true, _tr));\n tr(Num, DIGIT, Num); // State which emits a word token\n\n var Word = tr(Start, ASCII_LETTER, WORD, (_tr2 = {}, _tr2[ascii] = true, _tr2));\n tr(Word, ASCII_LETTER, Word); // Same as previous, but specific to non-fsm.ascii alphabet words\n\n var UWord = tr(Start, LETTER, UWORD, (_tr3 = {}, _tr3[alpha] = true, _tr3));\n tr(UWord, ASCII_LETTER); // Non-accepting\n\n tr(UWord, LETTER, UWord); // Whitespace jumps\n // Tokens of only non-newline whitespace are arbitrarily long\n // If any whitespace except newline, more whitespace!\n\n var Ws = tr(Start, SPACE, WS, (_tr4 = {}, _tr4[whitespace] = true, _tr4));\n tt(Start, NL, NL$1, (_tt = {}, _tt[whitespace] = true, _tt));\n tt(Ws, NL); // non-accepting state to avoid mixing whitespaces\n\n tr(Ws, SPACE, Ws); // Emoji tokens. They are not grouped by the scanner except in cases where a\n // zero-width joiner is present\n\n var Emoji = tr(Start, EMOJI, EMOJI$1, (_tr5 = {}, _tr5[emoji] = true, _tr5));\n tr(Emoji, EMOJI, Emoji);\n tt(Emoji, EMOJI_VARIATION, Emoji); // tt(Start, EMOJI_VARIATION, Emoji); // This one is sketchy\n\n var EmojiJoiner = tt(Emoji, EMOJI_JOINER);\n tr(EmojiJoiner, EMOJI, Emoji); // tt(EmojiJoiner, EMOJI_VARIATION, Emoji); // also sketchy\n // Generates states for top-level domains\n // Note that this is most accurate when tlds are in alphabetical order\n\n var wordjr = [[ASCII_LETTER, Word]];\n var uwordjr = [[ASCII_LETTER, null], [LETTER, UWord]];\n\n for (var i = 0; i < tlds.length; i++) {\n fastts(Start, tlds[i], TLD, WORD, wordjr);\n }\n\n for (var _i = 0; _i < utlds.length; _i++) {\n fastts(Start, utlds[_i], UTLD, UWORD, uwordjr);\n }\n\n addToGroups(TLD, {\n tld: true,\n ascii: true\n }, groups);\n addToGroups(UTLD, {\n utld: true,\n alpha: true\n }, groups); // Collect the states generated by different protocols. NOTE: If any new TLDs\n // get added that are also protocols, set the token to be the same as the\n // protocol to ensure parsing works as expected.\n\n fastts(Start, 'file', SCHEME, WORD, wordjr);\n fastts(Start, 'mailto', SCHEME, WORD, wordjr);\n fastts(Start, 'http', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'https', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftp', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftps', SLASH_SCHEME, WORD, wordjr);\n addToGroups(SCHEME, {\n scheme: true,\n ascii: true\n }, groups);\n addToGroups(SLASH_SCHEME, {\n slashscheme: true,\n ascii: true\n }, groups); // Register custom schemes. Assumes each scheme is asciinumeric with hyphens\n\n customSchemes = customSchemes.sort(function (a, b) {\n return a[0] > b[0] ? 1 : -1;\n });\n\n for (var _i2 = 0; _i2 < customSchemes.length; _i2++) {\n var _ref, _ref2;\n\n var sch = customSchemes[_i2][0];\n var optionalSlashSlash = customSchemes[_i2][1];\n var flags = optionalSlashSlash ? (_ref = {}, _ref[scheme] = true, _ref) : (_ref2 = {}, _ref2[slashscheme] = true, _ref2);\n\n if (sch.indexOf('-') >= 0) {\n flags[domain] = true;\n } else if (!ASCII_LETTER.test(sch)) {\n flags[numeric] = true; // numbers only\n } else if (DIGIT.test(sch)) {\n flags[asciinumeric] = true;\n } else {\n flags[ascii] = true;\n }\n\n ts(Start, sch, sch, flags);\n } // Localhost token\n\n\n ts(Start, 'localhost', LOCALHOST, {\n ascii: true\n }); // Set default transition for start state (some symbol)\n\n Start.jd = new State(SYM);\n return {\n start: Start,\n tokens: assign({\n groups: groups\n }, tk)\n };\n}\n/**\n\tGiven a string, returns an array of TOKEN instances representing the\n\tcomposition of that string.\n\n\t@method run\n\t@param {State} start scanner starting state\n\t@param {string} str input string to scan\n\t@return {Token[]} list of tokens, each with a type and value\n*/\n\nfunction run$1(start, str) {\n // State machine is not case sensitive, so input is tokenized in lowercased\n // form (still returns regular case). Uses selective `toLowerCase` because\n // lowercasing the entire string causes the length and character position to\n // vary in some non-English strings with V8-based runtimes.\n var iterable = stringToArray(str.replace(/[A-Z]/g, function (c) {\n return c.toLowerCase();\n }));\n var charCount = iterable.length; // <= len if there are emojis, etc\n\n var tokens = []; // return value\n // cursor through the string itself, accounting for characters that have\n // width with length 2 such as emojis\n\n var cursor = 0; // Cursor through the array-representation of the string\n\n var charCursor = 0; // Tokenize the string\n\n while (charCursor < charCount) {\n var state = start;\n var nextState = null;\n var tokenLength = 0;\n var latestAccepting = null;\n var sinceAccepts = -1;\n var charsSinceAccepts = -1;\n\n while (charCursor < charCount && (nextState = state.go(iterable[charCursor]))) {\n state = nextState; // Keep track of the latest accepting state\n\n if (state.accepts()) {\n sinceAccepts = 0;\n charsSinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts += iterable[charCursor].length;\n charsSinceAccepts++;\n }\n\n tokenLength += iterable[charCursor].length;\n cursor += iterable[charCursor].length;\n charCursor++;\n } // Roll back to the latest accepting state\n\n\n cursor -= sinceAccepts;\n charCursor -= charsSinceAccepts;\n tokenLength -= sinceAccepts; // No more jumps, just make a new token from the last accepting one\n\n tokens.push({\n t: latestAccepting.t,\n // token type/name\n v: str.slice(cursor - tokenLength, cursor),\n // string value\n s: cursor - tokenLength,\n // start index\n e: cursor // end index (excluding)\n\n });\n }\n\n return tokens;\n}\n/**\n * Convert a String to an Array of characters, taking into account that some\n * characters like emojis take up two string indexes.\n *\n * Adapted from core-js (MIT license)\n * https://github.com/zloirock/core-js/blob/2d69cf5f99ab3ea3463c395df81e5a15b68f49d9/packages/core-js/internals/string-multibyte.js\n *\n * @function stringToArray\n * @param {string} str\n * @returns {string[]}\n */\n\nfunction stringToArray(str) {\n var result = [];\n var len = str.length;\n var index = 0;\n\n while (index < len) {\n var first = str.charCodeAt(index);\n var second = void 0;\n var char = first < 0xd800 || first > 0xdbff || index + 1 === len || (second = str.charCodeAt(index + 1)) < 0xdc00 || second > 0xdfff ? str[index] // single character\n : str.slice(index, index + 2); // two-index characters\n\n result.push(char);\n index += char.length;\n }\n\n return result;\n}\n/**\n * Fast version of ts function for when transition defaults are well known\n * @param {State} state\n * @param {string} input\n * @param {string} t\n * @param {string} defaultt\n * @param {[RegExp, State][]} jr\n * @returns {State}\n */\n\nfunction fastts(state, input, t, defaultt, jr) {\n var next;\n var len = input.length;\n\n for (var i = 0; i < len - 1; i++) {\n var char = input[i];\n\n if (state.j[char]) {\n next = state.j[char];\n } else {\n next = new State(defaultt);\n next.jr = jr.slice();\n state.j[char] = next;\n }\n\n state = next;\n }\n\n next = new State(t);\n next.jr = jr.slice();\n state.j[input[len - 1]] = next;\n return next;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\n/**\n * An object where each key is a valid DOM Event Name such as `click` or `focus`\n * and each value is an event handler function.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/Element#events\n * @typedef {?{ [event: string]: Function }} EventListeners\n */\n\n/**\n * All formatted properties required to render a link, including `tagName`,\n * `attributes`, `content` and `eventListeners`.\n * @typedef {{ tagName: any, attributes: {[attr: string]: any}, content: string,\n * eventListeners: EventListeners }} IntermediateRepresentation\n */\n\n/**\n * Specify either an object described by the template type `O` or a function.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `O`\n * @template O\n * @typedef {O | ((value: string, type: string, token: MultiToken) => O)} OptObj\n */\n\n/**\n * Specify either a function described by template type `F` or an object.\n *\n * Each key in the object should be a link type (`'url'`, `'hashtag`', etc.). Each\n * value should be a function with template type `F` that is called when the\n * corresponding link type is encountered.\n * @template F\n * @typedef {F | { [type: string]: F}} OptFn\n */\n\n/**\n * Specify either a value with template type `V`, a function that returns `V` or\n * an object where each value resolves to `V`.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `V`\n *\n * For the object, each key should be a link type (`'url'`, `'hashtag`', etc.).\n * Each value should either have type `V` or a function that returns V. This\n * function similarly takes a string value and a token.\n *\n * Example valid types for `Opt`:\n *\n * ```js\n * 'hello'\n * (value, type, token) => 'world'\n * { url: 'hello', email: (value, token) => 'world'}\n * ```\n * @template V\n * @typedef {V | ((value: string, type: string, token: MultiToken) => V) | { [type: string]: V | ((value: string, token: MultiToken) => V) }} Opt\n */\n\n/**\n * See available options: https://linkify.js.org/docs/options.html\n * @typedef {{\n * \tdefaultProtocol?: string,\n * events?: OptObj,\n * \tformat?: Opt,\n * \tformatHref?: Opt,\n * \tnl2br?: boolean,\n * \ttagName?: Opt,\n * \ttarget?: Opt,\n * \trel?: Opt,\n * \tvalidate?: Opt,\n * \ttruncate?: Opt,\n * \tclassName?: Opt,\n * \tattributes?: OptObj<({ [attr: string]: any })>,\n * ignoreTags?: string[],\n * \trender?: OptFn<((ir: IntermediateRepresentation) => any)>\n * }} Opts\n */\n\n/**\n * @type Required\n */\n\nvar defaults = {\n defaultProtocol: 'http',\n events: null,\n format: noop,\n formatHref: noop,\n nl2br: false,\n tagName: 'a',\n target: null,\n rel: null,\n validate: true,\n truncate: Infinity,\n className: null,\n attributes: null,\n ignoreTags: [],\n render: null\n};\n/**\n * Utility class for linkify interfaces to apply specified\n * {@link Opts formatting and rendering options}.\n *\n * @param {Opts | Options} [opts] Option value overrides.\n * @param {(ir: IntermediateRepresentation) => any} [defaultRender] (For\n * internal use) default render function that determines how to generate an\n * HTML element based on a link token's derived tagName, attributes and HTML.\n * Similar to render option\n */\n\nfunction Options(opts, defaultRender) {\n if (defaultRender === void 0) {\n defaultRender = null;\n }\n\n var o = assign({}, defaults);\n\n if (opts) {\n o = assign(o, opts instanceof Options ? opts.o : opts);\n } // Ensure all ignored tags are uppercase\n\n\n var ignoredTags = o.ignoreTags;\n var uppercaseIgnoredTags = [];\n\n for (var i = 0; i < ignoredTags.length; i++) {\n uppercaseIgnoredTags.push(ignoredTags[i].toUpperCase());\n }\n /** @protected */\n\n\n this.o = o;\n\n if (defaultRender) {\n this.defaultRender = defaultRender;\n }\n\n this.ignoreTags = uppercaseIgnoredTags;\n}\nOptions.prototype = {\n o: defaults,\n\n /**\n * @type string[]\n */\n ignoreTags: [],\n\n /**\n * @param {IntermediateRepresentation} ir\n * @returns {any}\n */\n defaultRender: function defaultRender(ir) {\n return ir;\n },\n\n /**\n * Returns true or false based on whether a token should be displayed as a\n * link based on the user options.\n * @param {MultiToken} token\n * @returns {boolean}\n */\n check: function check(token) {\n return this.get('validate', token.toString(), token);\n },\n // Private methods\n\n /**\n * Resolve an option's value based on the value of the option and the given\n * params. If operator and token are specified and the target option is\n * callable, automatically calls the function with the given argument.\n * @template {keyof Opts} K\n * @param {K} key Name of option to use\n * @param {string} [operator] will be passed to the target option if it's a\n * function. If not specified, RAW function value gets returned\n * @param {MultiToken} [token] The token from linkify.tokenize\n * @returns {Opts[K] | any}\n */\n get: function get(key, operator, token) {\n var isCallable = operator != null;\n var option = this.o[key];\n\n if (!option) {\n return option;\n }\n\n if (typeof option === 'object') {\n option = token.t in option ? option[token.t] : defaults[key];\n\n if (typeof option === 'function' && isCallable) {\n option = option(operator, token);\n }\n } else if (typeof option === 'function' && isCallable) {\n option = option(operator, token.t, token);\n }\n\n return option;\n },\n\n /**\n * @template {keyof Opts} L\n * @param {L} key Name of options object to use\n * @param {string} [operator]\n * @param {MultiToken} [token]\n * @returns {Opts[L] | any}\n */\n getObj: function getObj(key, operator, token) {\n var obj = this.o[key];\n\n if (typeof obj === 'function' && operator != null) {\n obj = obj(operator, token.t, token);\n }\n\n return obj;\n },\n\n /**\n * Convert the given token to a rendered element that may be added to the\n * calling-interface's DOM\n * @param {MultiToken} token Token to render to an HTML element\n * @returns {any} Render result; e.g., HTML string, DOM element, React\n * Component, etc.\n */\n render: function render(token) {\n var ir = token.render(this); // intermediate representation\n\n var renderFn = this.get('render', null, token) || this.defaultRender;\n return renderFn(ir, token.t, token);\n }\n};\n\nfunction noop(val) {\n return val;\n}\n\nvar options = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tdefaults: defaults,\n\tOptions: Options,\n\tassign: assign\n});\n\n/******************************************************************************\n\tMulti-Tokens\n\tTokens composed of arrays of TextTokens\n******************************************************************************/\n\n/**\n * @param {string} value\n * @param {Token[]} tokens\n */\n\nfunction MultiToken(value, tokens) {\n this.t = 'token';\n this.v = value;\n this.tk = tokens;\n}\n/**\n * Abstract class used for manufacturing tokens of text tokens. That is rather\n * than the value for a token being a small string of text, it's value an array\n * of text tokens.\n *\n * Used for grouping together URLs, emails, hashtags, and other potential\n * creations.\n * @class MultiToken\n * @property {string} t\n * @property {string} v\n * @property {Token[]} tk\n * @abstract\n */\n\nMultiToken.prototype = {\n isLink: false,\n\n /**\n * Return the string this token represents.\n * @return {string}\n */\n toString: function toString() {\n return this.v;\n },\n\n /**\n * What should the value for this token be in the `href` HTML attribute?\n * Returns the `.toString` value by default.\n * @param {string} [scheme]\n * @return {string}\n */\n toHref: function toHref(scheme) {\n return this.toString();\n },\n\n /**\n * @param {Options} options Formatting options\n * @returns {string}\n */\n toFormattedString: function toFormattedString(options) {\n var val = this.toString();\n var truncate = options.get('truncate', val, this);\n var formatted = options.get('format', val, this);\n return truncate && formatted.length > truncate ? formatted.substring(0, truncate) + '…' : formatted;\n },\n\n /**\n *\n * @param {Options} options\n * @returns {string}\n */\n toFormattedHref: function toFormattedHref(options) {\n return options.get('formatHref', this.toHref(options.get('defaultProtocol')), this);\n },\n\n /**\n * The start index of this token in the original input string\n * @returns {number}\n */\n startIndex: function startIndex() {\n return this.tk[0].s;\n },\n\n /**\n * The end index of this token in the original input string (up to this\n * index but not including it)\n * @returns {number}\n */\n endIndex: function endIndex() {\n return this.tk[this.tk.length - 1].e;\n },\n\n /**\n \tReturns an object of relevant values for this token, which includes keys\n \t* type - Kind of token ('url', 'email', etc.)\n \t* value - Original text\n \t* href - The value that should be added to the anchor tag's href\n \t\tattribute\n \t\t@method toObject\n \t@param {string} [protocol] `'http'` by default\n */\n toObject: function toObject(protocol) {\n if (protocol === void 0) {\n protocol = defaults.defaultProtocol;\n }\n\n return {\n type: this.t,\n value: this.toString(),\n isLink: this.isLink,\n href: this.toHref(protocol),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n\n /**\n *\n * @param {Options} options Formatting option\n */\n toFormattedObject: function toFormattedObject(options) {\n return {\n type: this.t,\n value: this.toFormattedString(options),\n isLink: this.isLink,\n href: this.toFormattedHref(options),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n\n /**\n * Whether this token should be rendered as a link according to the given options\n * @param {Options} options\n * @returns {boolean}\n */\n validate: function validate(options) {\n return options.get('validate', this.toString(), this);\n },\n\n /**\n * Return an object that represents how this link should be rendered.\n * @param {Options} options Formattinng options\n */\n render: function render(options) {\n var token = this;\n var href = this.toFormattedHref(options);\n var tagName = options.get('tagName', href, token);\n var content = this.toFormattedString(options);\n var attributes = {};\n var className = options.get('className', href, token);\n var target = options.get('target', href, token);\n var rel = options.get('rel', href, token);\n var attrs = options.getObj('attributes', href, token);\n var eventListeners = options.getObj('events', href, token);\n attributes.href = href;\n\n if (className) {\n attributes.class = className;\n }\n\n if (target) {\n attributes.target = target;\n }\n\n if (rel) {\n attributes.rel = rel;\n }\n\n if (attrs) {\n assign(attributes, attrs);\n }\n\n return {\n tagName: tagName,\n attributes: attributes,\n content: content,\n eventListeners: eventListeners\n };\n }\n}; // Base token\n/**\n * Create a new token that can be emitted by the parser state machine\n * @param {string} type readable type of the token\n * @param {object} props properties to assign or override, including isLink = true or false\n * @returns {new (value: string, tokens: Token[]) => MultiToken} new token class\n */\n\nfunction createTokenClass(type, props) {\n var Token = /*#__PURE__*/function (_MultiToken) {\n _inheritsLoose(Token, _MultiToken);\n\n function Token(value, tokens) {\n var _this;\n\n _this = _MultiToken.call(this, value, tokens) || this;\n _this.t = type;\n return _this;\n }\n\n return Token;\n }(MultiToken);\n\n for (var p in props) {\n Token.prototype[p] = props[p];\n }\n\n Token.t = type;\n return Token;\n}\n/**\n\tRepresents a list of tokens making up a valid email address\n*/\n\nvar Email = createTokenClass('email', {\n isLink: true,\n toHref: function toHref() {\n return 'mailto:' + this.toString();\n }\n});\n/**\n\tRepresents some plain text\n*/\n\nvar Text = createTokenClass('text');\n/**\n\tMulti-linebreak token - represents a line break\n\t@class Nl\n*/\n\nvar Nl = createTokenClass('nl');\n/**\n\tRepresents a list of text tokens making up a valid URL\n\t@class Url\n*/\n\nvar Url = createTokenClass('url', {\n isLink: true,\n\n /**\n \tLowercases relevant parts of the domain and adds the protocol if\n \trequired. Note that this will not escape unsafe HTML characters in the\n \tURL.\n \t\t@param {string} [scheme] default scheme (e.g., 'https')\n \t@return {string} the full href\n */\n toHref: function toHref(scheme) {\n if (scheme === void 0) {\n scheme = defaults.defaultProtocol;\n }\n\n // Check if already has a prefix scheme\n return this.hasProtocol() ? this.v : scheme + \"://\" + this.v;\n },\n\n /**\n * Check whether this URL token has a protocol\n * @return {boolean}\n */\n hasProtocol: function hasProtocol() {\n var tokens = this.tk;\n return tokens.length >= 2 && tokens[0].t !== LOCALHOST && tokens[1].t === COLON;\n }\n});\n\nvar multi = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tMultiToken: MultiToken,\n\tBase: MultiToken,\n\tcreateTokenClass: createTokenClass,\n\tEmail: Email,\n\tText: Text,\n\tNl: Nl,\n\tUrl: Url\n});\n\n/**\n\tNot exactly parser, more like the second-stage scanner (although we can\n\ttheoretically hotswap the code here with a real parser in the future... but\n\tfor a little URL-finding utility abstract syntax trees may be a little\n\toverkill).\n\n\tURL format: http://en.wikipedia.org/wiki/URI_scheme\n\tEmail format: http://en.wikipedia.org/wiki/EmailAddress (links to RFC in\n\treference)\n\n\t@module linkify\n\t@submodule parser\n\t@main run\n*/\n\nvar makeState = function makeState(arg) {\n return new State(arg);\n};\n/**\n * Generate the parser multi token-based state machine\n * @param {{ groups: Collections }} tokens\n */\n\n\nfunction init$1(_ref) {\n var groups = _ref.groups;\n // Types of characters the URL can definitely end in\n var qsAccepting = groups.domain.concat([AMPERSAND, ASTERISK, AT, BACKSLASH, BACKTICK, CARET, DOLLAR, EQUALS, HYPHEN, NUM, PERCENT, PIPE, PLUS, POUND, SLASH, SYM, TILDE, UNDERSCORE]); // Types of tokens that can follow a URL and be part of the query string\n // but cannot be the very last characters\n // Characters that cannot appear in the URL at all should be excluded\n\n var qsNonAccepting = [APOSTROPHE, CLOSEANGLEBRACKET, CLOSEBRACE, CLOSEBRACKET, CLOSEPAREN, COLON, COMMA, DOT, EXCLAMATION, OPENANGLEBRACKET, OPENBRACE, OPENBRACKET, OPENPAREN, QUERY, QUOTE, SEMI]; // For addresses without the mailto prefix\n // Tokens allowed in the localpart of the email\n\n var localpartAccepting = [AMPERSAND, APOSTROPHE, ASTERISK, BACKSLASH, BACKTICK, CARET, CLOSEBRACE, DOLLAR, EQUALS, HYPHEN, NUM, OPENBRACE, PERCENT, PIPE, PLUS, POUND, QUERY, SLASH, SYM, TILDE, UNDERSCORE]; // The universal starting state.\n\n /**\n * @type State\n */\n\n var Start = makeState();\n var Localpart = tt(Start, TILDE); // Local part of the email address\n\n ta(Localpart, localpartAccepting, Localpart);\n ta(Localpart, groups.domain, Localpart);\n var Domain = makeState(),\n Scheme = makeState(),\n SlashScheme = makeState();\n ta(Start, groups.domain, Domain); // parsed string ends with a potential domain name (A)\n\n ta(Start, groups.scheme, Scheme); // e.g., 'mailto'\n\n ta(Start, groups.slashscheme, SlashScheme); // e.g., 'http'\n\n ta(Domain, localpartAccepting, Localpart);\n ta(Domain, groups.domain, Domain);\n var LocalpartAt = tt(Domain, AT); // Local part of the email address plus @\n\n tt(Localpart, AT, LocalpartAt); // close to an email address now\n\n var LocalpartDot = tt(Localpart, DOT); // Local part of the email address plus '.' (localpart cannot end in .)\n\n ta(LocalpartDot, localpartAccepting, Localpart);\n ta(LocalpartDot, groups.domain, Localpart);\n var EmailDomain = makeState();\n ta(LocalpartAt, groups.domain, EmailDomain); // parsed string starts with local email info + @ with a potential domain name\n\n ta(EmailDomain, groups.domain, EmailDomain);\n var EmailDomainDot = tt(EmailDomain, DOT); // domain followed by DOT\n\n ta(EmailDomainDot, groups.domain, EmailDomain);\n var Email$1 = makeState(Email); // Possible email address (could have more tlds)\n\n ta(EmailDomainDot, groups.tld, Email$1);\n ta(EmailDomainDot, groups.utld, Email$1);\n tt(LocalpartAt, LOCALHOST, Email$1); // Hyphen can jump back to a domain name\n\n var EmailDomainHyphen = tt(EmailDomain, HYPHEN); // parsed string starts with local email info + @ with a potential domain name\n\n ta(EmailDomainHyphen, groups.domain, EmailDomain);\n ta(Email$1, groups.domain, EmailDomain);\n tt(Email$1, DOT, EmailDomainDot);\n tt(Email$1, HYPHEN, EmailDomainHyphen); // Final possible email states\n\n var EmailColon = tt(Email$1, COLON); // URL followed by colon (potential port number here)\n\n /*const EmailColonPort = */\n\n ta(EmailColon, groups.numeric, Email); // URL followed by colon and port numner\n // Account for dots and hyphens. Hyphens are usually parts of domain names\n // (but not TLDs)\n\n var DomainHyphen = tt(Domain, HYPHEN); // domain followed by hyphen\n\n var DomainDot = tt(Domain, DOT); // domain followed by DOT\n\n ta(DomainHyphen, groups.domain, Domain);\n ta(DomainDot, localpartAccepting, Localpart);\n ta(DomainDot, groups.domain, Domain);\n var DomainDotTld = makeState(Url); // Simplest possible URL with no query string\n\n ta(DomainDot, groups.tld, DomainDotTld);\n ta(DomainDot, groups.utld, DomainDotTld);\n ta(DomainDotTld, groups.domain, Domain);\n ta(DomainDotTld, localpartAccepting, Localpart);\n tt(DomainDotTld, DOT, DomainDot);\n tt(DomainDotTld, HYPHEN, DomainHyphen);\n tt(DomainDotTld, AT, LocalpartAt);\n var DomainDotTldColon = tt(DomainDotTld, COLON); // URL followed by colon (potential port number here)\n\n var DomainDotTldColonPort = makeState(Url); // TLD followed by a port number\n\n ta(DomainDotTldColon, groups.numeric, DomainDotTldColonPort); // Long URL with optional port and maybe query string\n\n var Url$1 = makeState(Url); // URL with extra symbols at the end, followed by an opening bracket\n\n var UrlNonaccept = makeState(); // URL followed by some symbols (will not be part of the final URL)\n // Query strings\n\n ta(Url$1, qsAccepting, Url$1);\n ta(Url$1, qsNonAccepting, UrlNonaccept);\n ta(UrlNonaccept, qsAccepting, Url$1);\n ta(UrlNonaccept, qsNonAccepting, UrlNonaccept); // Become real URLs after `SLASH` or `COLON NUM SLASH`\n // Here works with or without scheme:// prefix\n\n tt(DomainDotTld, SLASH, Url$1);\n tt(DomainDotTldColonPort, SLASH, Url$1); // Note that domains that begin with schemes are treated slighly differently\n\n var UriPrefix = tt(Scheme, COLON); // e.g., 'mailto:' or 'http://'\n\n var SlashSchemeColon = tt(SlashScheme, COLON); // e.g., 'http:'\n\n var SlashSchemeColonSlash = tt(SlashSchemeColon, SLASH); // e.g., 'http:/'\n\n tt(SlashSchemeColonSlash, SLASH, UriPrefix); // Scheme states can transition to domain states\n\n ta(Scheme, groups.domain, Domain);\n tt(Scheme, DOT, DomainDot);\n tt(Scheme, HYPHEN, DomainHyphen);\n ta(SlashScheme, groups.domain, Domain);\n tt(SlashScheme, DOT, DomainDot);\n tt(SlashScheme, HYPHEN, DomainHyphen); // Force URL with scheme prefix followed by anything sane\n\n ta(UriPrefix, groups.domain, Url$1);\n tt(UriPrefix, SLASH, Url$1); // URL, followed by an opening bracket\n\n var UrlOpenbrace = tt(Url$1, OPENBRACE); // URL followed by {\n\n var UrlOpenbracket = tt(Url$1, OPENBRACKET); // URL followed by [\n\n var UrlOpenanglebracket = tt(Url$1, OPENANGLEBRACKET); // URL followed by <\n\n var UrlOpenparen = tt(Url$1, OPENPAREN); // URL followed by (\n\n tt(UrlNonaccept, OPENBRACE, UrlOpenbrace);\n tt(UrlNonaccept, OPENBRACKET, UrlOpenbracket);\n tt(UrlNonaccept, OPENANGLEBRACKET, UrlOpenanglebracket);\n tt(UrlNonaccept, OPENPAREN, UrlOpenparen); // Closing bracket component. This character WILL be included in the URL\n\n tt(UrlOpenbrace, CLOSEBRACE, Url$1);\n tt(UrlOpenbracket, CLOSEBRACKET, Url$1);\n tt(UrlOpenanglebracket, CLOSEANGLEBRACKET, Url$1);\n tt(UrlOpenparen, CLOSEPAREN, Url$1);\n tt(UrlOpenbrace, CLOSEBRACE, Url$1); // URL that beings with an opening bracket, followed by a symbols.\n // Note that the final state can still be `UrlOpenbrace` (if the URL only\n // has a single opening bracket for some reason).\n\n var UrlOpenbraceQ = makeState(Url); // URL followed by { and some symbols that the URL can end it\n\n var UrlOpenbracketQ = makeState(Url); // URL followed by [ and some symbols that the URL can end it\n\n var UrlOpenanglebracketQ = makeState(Url); // URL followed by < and some symbols that the URL can end it\n\n var UrlOpenparenQ = makeState(Url); // URL followed by ( and some symbols that the URL can end it\n\n ta(UrlOpenbrace, qsAccepting, UrlOpenbraceQ);\n ta(UrlOpenbracket, qsAccepting, UrlOpenbracketQ);\n ta(UrlOpenanglebracket, qsAccepting, UrlOpenanglebracketQ);\n ta(UrlOpenparen, qsAccepting, UrlOpenparenQ);\n var UrlOpenbraceSyms = makeState(); // UrlOpenbrace followed by some symbols it cannot end it\n\n var UrlOpenbracketSyms = makeState(); // UrlOpenbracketQ followed by some symbols it cannot end it\n\n var UrlOpenanglebracketSyms = makeState(); // UrlOpenanglebracketQ followed by some symbols it cannot end it\n\n var UrlOpenparenSyms = makeState(); // UrlOpenparenQ followed by some symbols it cannot end it\n\n ta(UrlOpenbrace, qsNonAccepting);\n ta(UrlOpenbracket, qsNonAccepting);\n ta(UrlOpenanglebracket, qsNonAccepting);\n ta(UrlOpenparen, qsNonAccepting); // URL that begins with an opening bracket, followed by some symbols\n\n ta(UrlOpenbraceQ, qsAccepting, UrlOpenbraceQ);\n ta(UrlOpenbracketQ, qsAccepting, UrlOpenbracketQ);\n ta(UrlOpenanglebracketQ, qsAccepting, UrlOpenanglebracketQ);\n ta(UrlOpenparenQ, qsAccepting, UrlOpenparenQ);\n ta(UrlOpenbraceQ, qsNonAccepting, UrlOpenbraceQ);\n ta(UrlOpenbracketQ, qsNonAccepting, UrlOpenbracketQ);\n ta(UrlOpenanglebracketQ, qsNonAccepting, UrlOpenanglebracketQ);\n ta(UrlOpenparenQ, qsNonAccepting, UrlOpenparenQ);\n ta(UrlOpenbraceSyms, qsAccepting, UrlOpenbraceSyms);\n ta(UrlOpenbracketSyms, qsAccepting, UrlOpenbracketQ);\n ta(UrlOpenanglebracketSyms, qsAccepting, UrlOpenanglebracketQ);\n ta(UrlOpenparenSyms, qsAccepting, UrlOpenparenQ);\n ta(UrlOpenbraceSyms, qsNonAccepting, UrlOpenbraceSyms);\n ta(UrlOpenbracketSyms, qsNonAccepting, UrlOpenbracketSyms);\n ta(UrlOpenanglebracketSyms, qsNonAccepting, UrlOpenanglebracketSyms);\n ta(UrlOpenparenSyms, qsNonAccepting, UrlOpenparenSyms); // Close brace/bracket to become regular URL\n\n tt(UrlOpenbracketQ, CLOSEBRACKET, Url$1);\n tt(UrlOpenanglebracketQ, CLOSEANGLEBRACKET, Url$1);\n tt(UrlOpenparenQ, CLOSEPAREN, Url$1);\n tt(UrlOpenbraceQ, CLOSEBRACE, Url$1);\n tt(UrlOpenbracketSyms, CLOSEBRACKET, Url$1);\n tt(UrlOpenanglebracketSyms, CLOSEANGLEBRACKET, Url$1);\n tt(UrlOpenparenSyms, CLOSEPAREN, Url$1);\n tt(UrlOpenbraceSyms, CLOSEPAREN, Url$1);\n tt(Start, LOCALHOST, DomainDotTld); // localhost is a valid URL state\n\n tt(Start, NL$1, Nl); // single new line\n\n return {\n start: Start,\n tokens: tk\n };\n}\n/**\n * Run the parser state machine on a list of scanned string-based tokens to\n * create a list of multi tokens, each of which represents a URL, email address,\n * plain text, etc.\n *\n * @param {State} start parser start state\n * @param {string} input the original input used to generate the given tokens\n * @param {Token[]} tokens list of scanned tokens\n * @returns {MultiToken[]}\n */\n\nfunction run(start, input, tokens) {\n var len = tokens.length;\n var cursor = 0;\n var multis = [];\n var textTokens = [];\n\n while (cursor < len) {\n var state = start;\n var secondState = null;\n var nextState = null;\n var multiLength = 0;\n var latestAccepting = null;\n var sinceAccepts = -1;\n\n while (cursor < len && !(secondState = state.go(tokens[cursor].t))) {\n // Starting tokens with nowhere to jump to.\n // Consider these to be just plain text\n textTokens.push(tokens[cursor++]);\n }\n\n while (cursor < len && (nextState = secondState || state.go(tokens[cursor].t))) {\n // Get the next state\n secondState = null;\n state = nextState; // Keep track of the latest accepting state\n\n if (state.accepts()) {\n sinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts++;\n }\n\n cursor++;\n multiLength++;\n }\n\n if (sinceAccepts < 0) {\n // No accepting state was found, part of a regular text token add\n // the first text token to the text tokens array and try again from\n // the next\n cursor -= multiLength;\n\n if (cursor < len) {\n textTokens.push(tokens[cursor]);\n cursor++;\n }\n } else {\n // Accepting state!\n // First close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n textTokens = [];\n } // Roll back to the latest accepting state\n\n\n cursor -= sinceAccepts;\n multiLength -= sinceAccepts; // Create a new multitoken\n\n var Multi = latestAccepting.t;\n var subtokens = tokens.slice(cursor - multiLength, cursor);\n multis.push(initMultiToken(Multi, input, subtokens));\n }\n } // Finally close off the textTokens (if available)\n\n\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n }\n\n return multis;\n}\n/**\n * Utility function for instantiating a new multitoken with all the relevant\n * fields during parsing.\n * @param {new (value: string, tokens: Token[]) => MultiToken} Multi class to instantiate\n * @param {string} input original input string\n * @param {Token[]} tokens consecutive tokens scanned from input string\n * @returns {MultiToken}\n */\n\nfunction initMultiToken(Multi, input, tokens) {\n var startIdx = tokens[0].s;\n var endIdx = tokens[tokens.length - 1].e;\n var value = input.slice(startIdx, endIdx);\n return new Multi(value, tokens);\n}\n\nvar warn = typeof console !== 'undefined' && console && console.warn || function () {};\n\nvar warnAdvice = 'To avoid this warning, please register all custom schemes before invoking linkify the first time.'; // Side-effect initialization state\n\nvar INIT = {\n scanner: null,\n parser: null,\n tokenQueue: [],\n pluginQueue: [],\n customSchemes: [],\n initialized: false\n};\n/**\n * @typedef {{\n * \tstart: State,\n * \ttokens: { groups: Collections } & typeof tk\n * }} ScannerInit\n */\n\n/**\n * @typedef {{\n * \tstart: State,\n * \ttokens: typeof multi\n * }} ParserInit\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit }) => void} TokenPlugin\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit, parser: ParserInit }) => void} Plugin\n */\n\n/**\n * De-register all plugins and reset the internal state-machine. Used for\n * testing; not required in practice.\n * @private\n */\n\nfunction reset() {\n State.groups = {};\n INIT.scanner = null;\n INIT.parser = null;\n INIT.tokenQueue = [];\n INIT.pluginQueue = [];\n INIT.customSchemes = [];\n INIT.initialized = false;\n}\n/**\n * Register a token plugin to allow the scanner to recognize additional token\n * types before the parser state machine is constructed from the results.\n * @param {string} name of plugin to register\n * @param {TokenPlugin} plugin function that accepts the scanner state machine\n * and available scanner tokens and collections and extends the state machine to\n * recognize additional tokens or groups.\n */\n\nfunction registerTokenPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(\"linkifyjs: Invalid token plugin \" + plugin + \" (expects function)\");\n }\n\n for (var i = 0; i < INIT.tokenQueue.length; i++) {\n if (name === INIT.tokenQueue[i][0]) {\n warn(\"linkifyjs: token plugin \\\"\" + name + \"\\\" already registered - will be overwritten\");\n INIT.tokenQueue[i] = [name, plugin];\n return;\n }\n }\n\n INIT.tokenQueue.push([name, plugin]);\n\n if (INIT.initialized) {\n warn(\"linkifyjs: already initialized - will not register token plugin \\\"\" + name + \"\\\" until you manually call linkify.init(). \" + warnAdvice);\n }\n}\n/**\n * Register a linkify plugin\n * @param {string} name of plugin to register\n * @param {Plugin} plugin function that accepts the parser state machine and\n * extends the parser to recognize additional link types\n */\n\nfunction registerPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(\"linkifyjs: Invalid plugin \" + plugin + \" (expects function)\");\n }\n\n for (var i = 0; i < INIT.pluginQueue.length; i++) {\n if (name === INIT.pluginQueue[i][0]) {\n warn(\"linkifyjs: plugin \\\"\" + name + \"\\\" already registered - will be overwritten\");\n INIT.pluginQueue[i] = [name, plugin];\n return;\n }\n }\n\n INIT.pluginQueue.push([name, plugin]);\n\n if (INIT.initialized) {\n warn(\"linkifyjs: already initialized - will not register plugin \\\"\" + name + \"\\\" until you manually call linkify.init(). \" + warnAdvice);\n }\n}\n/**\n * Detect URLs with the following additional protocol. Anything with format\n * \"protocol://...\" will be considered a link. If `optionalSlashSlash` is set to\n * `true`, anything with format \"protocol:...\" will be considered a link.\n * @param {string} protocol\n * @param {boolean} [optionalSlashSlash]\n */\n\nfunction registerCustomProtocol(scheme, optionalSlashSlash) {\n if (optionalSlashSlash === void 0) {\n optionalSlashSlash = false;\n }\n\n if (INIT.initialized) {\n warn(\"linkifyjs: already initialized - will not register custom scheme \\\"\" + scheme + \"\\\" until you manually call linkify.init(). \" + warnAdvice);\n }\n\n if (!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(scheme)) {\n throw new Error('linkifyjs: incorrect scheme format.\\n 1. Must only contain digits, lowercase ASCII letters or \"-\"\\n 2. Cannot start or end with \"-\"\\n 3. \"-\" cannot repeat');\n }\n\n INIT.customSchemes.push([scheme, optionalSlashSlash]);\n}\n/**\n * Initialize the linkify state machine. Called automatically the first time\n * linkify is called on a string, but may be called manually as well.\n */\n\nfunction init() {\n // Initialize scanner state machine and plugins\n INIT.scanner = init$2(INIT.customSchemes);\n\n for (var i = 0; i < INIT.tokenQueue.length; i++) {\n INIT.tokenQueue[i][1]({\n scanner: INIT.scanner\n });\n } // Initialize parser state machine and plugins\n\n\n INIT.parser = init$1(INIT.scanner.tokens);\n\n for (var _i = 0; _i < INIT.pluginQueue.length; _i++) {\n INIT.pluginQueue[_i][1]({\n scanner: INIT.scanner,\n parser: INIT.parser\n });\n }\n\n INIT.initialized = true;\n}\n/**\n * Parse a string into tokens that represent linkable and non-linkable sub-components\n * @param {string} str\n * @return {MultiToken[]} tokens\n */\n\nfunction tokenize(str) {\n if (!INIT.initialized) {\n init();\n }\n\n return run(INIT.parser.start, str, run$1(INIT.scanner.start, str));\n}\n/**\n * Find a list of linkable items in the given string.\n * @param {string} str string to find links in\n * @param {string | Opts} [type] either formatting options or specific type of\n * links to find, e.g., 'url' or 'email'\n * @param {Opts} [opts] formatting options for final output. Cannot be specified\n * if opts already provided in `type` argument\n*/\n\nfunction find(str, type, opts) {\n if (type === void 0) {\n type = null;\n }\n\n if (opts === void 0) {\n opts = null;\n }\n\n if (type && typeof type === 'object') {\n if (opts) {\n throw Error(\"linkifyjs: Invalid link type \" + type + \"; must be a string\");\n }\n\n opts = type;\n type = null;\n }\n\n var options = new Options(opts);\n var tokens = tokenize(str);\n var filtered = [];\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (token.isLink && (!type || token.t === type)) {\n filtered.push(token.toFormattedObject(options));\n }\n }\n\n return filtered;\n}\n/**\n * Is the given string valid linkable text of some sort. Note that this does not\n * trim the text for you.\n *\n * Optionally pass in a second `type` param, which is the type of link to test\n * for.\n *\n * For example,\n *\n * linkify.test(str, 'email');\n *\n * Returns `true` if str is a valid email.\n * @param {string} str string to test for links\n * @param {string} [type] optional specific link type to look for\n * @returns boolean true/false\n */\n\nfunction test(str, type) {\n if (type === void 0) {\n type = null;\n }\n\n var tokens = tokenize(str);\n return tokens.length === 1 && tokens[0].isLink && (!type || tokens[0].t === type);\n}\n\nexport { MultiToken, Options, State, createTokenClass, find, init, multi, options, regexp, registerCustomProtocol, registerPlugin, registerTokenPlugin, reset, stringToArray, test, tokenize };\n","import { Options, tokenize as tokenize$1 } from 'linkifyjs';\n\n/**\n * generated from https://raw.githubusercontent.com/w3c/html/26b5126f96f736f796b9e29718138919dd513744/entities.json\n * do not edit\n */\nvar HTML5NamedCharRefs = {\n // We don't need the complete named character reference because linkifyHtml\n // does not modify the escape sequences. We do need   so that\n // whitespace is parsed properly. Other types of whitespace should already\n // be accounted for. > < and " are also frequently relevant ones\n amp: \"&\",\n gt: \">\",\n lt: \"<\",\n nbsp: \" \",\n quot: \"\\\"\"\n};\nvar HEXCHARCODE = /^#[xX]([A-Fa-f0-9]+)$/;\nvar CHARCODE = /^#([0-9]+)$/;\nvar NAMED = /^([A-Za-z0-9]+)$/;\n\nvar EntityParser =\n/** @class */\nfunction () {\n function EntityParser(named) {\n this.named = named;\n }\n\n EntityParser.prototype.parse = function (entity) {\n if (!entity) {\n return;\n }\n\n var matches = entity.match(HEXCHARCODE);\n\n if (matches) {\n return String.fromCharCode(parseInt(matches[1], 16));\n }\n\n matches = entity.match(CHARCODE);\n\n if (matches) {\n return String.fromCharCode(parseInt(matches[1], 10));\n }\n\n matches = entity.match(NAMED);\n\n if (matches) {\n return this.named[matches[1]] || \"&\" + matches[1] + \";\";\n }\n };\n\n return EntityParser;\n}();\n\nvar WSP = /[\\t\\n\\f ]/;\nvar ALPHA = /[A-Za-z]/;\nvar CRLF = /\\r\\n?/g;\n\nfunction isSpace(char) {\n return WSP.test(char);\n}\n\nfunction isAlpha(char) {\n return ALPHA.test(char);\n}\n\nfunction preprocessInput(input) {\n return input.replace(CRLF, '\\n');\n}\n\nvar EventedTokenizer =\n/** @class */\nfunction () {\n function EventedTokenizer(delegate, entityParser, mode) {\n if (mode === void 0) {\n mode = 'precompile';\n }\n\n this.delegate = delegate;\n this.entityParser = entityParser;\n this.mode = mode;\n this.state = \"beforeData\"\n /* beforeData */\n ;\n this.line = -1;\n this.column = -1;\n this.input = '';\n this.index = -1;\n this.tagNameBuffer = '';\n this.states = {\n beforeData: function beforeData() {\n var char = this.peek();\n\n if (char === '<' && !this.isIgnoredEndTag()) {\n this.transitionTo(\"tagOpen\"\n /* tagOpen */\n );\n this.markTagStart();\n this.consume();\n } else {\n if (this.mode === 'precompile' && char === '\\n') {\n var tag = this.tagNameBuffer.toLowerCase();\n\n if (tag === 'pre' || tag === 'textarea') {\n this.consume();\n }\n }\n\n this.transitionTo(\"data\"\n /* data */\n );\n this.delegate.beginData();\n }\n },\n data: function data() {\n var char = this.peek();\n var tag = this.tagNameBuffer;\n\n if (char === '<' && !this.isIgnoredEndTag()) {\n this.delegate.finishData();\n this.transitionTo(\"tagOpen\"\n /* tagOpen */\n );\n this.markTagStart();\n this.consume();\n } else if (char === '&' && tag !== 'script' && tag !== 'style') {\n this.consume();\n this.delegate.appendToData(this.consumeCharRef() || '&');\n } else {\n this.consume();\n this.delegate.appendToData(char);\n }\n },\n tagOpen: function tagOpen() {\n var char = this.consume();\n\n if (char === '!') {\n this.transitionTo(\"markupDeclarationOpen\"\n /* markupDeclarationOpen */\n );\n } else if (char === '/') {\n this.transitionTo(\"endTagOpen\"\n /* endTagOpen */\n );\n } else if (char === '@' || char === ':' || isAlpha(char)) {\n this.transitionTo(\"tagName\"\n /* tagName */\n );\n this.tagNameBuffer = '';\n this.delegate.beginStartTag();\n this.appendToTagName(char);\n }\n },\n markupDeclarationOpen: function markupDeclarationOpen() {\n var char = this.consume();\n\n if (char === '-' && this.peek() === '-') {\n this.consume();\n this.transitionTo(\"commentStart\"\n /* commentStart */\n );\n this.delegate.beginComment();\n } else {\n var maybeDoctype = char.toUpperCase() + this.input.substring(this.index, this.index + 6).toUpperCase();\n\n if (maybeDoctype === 'DOCTYPE') {\n this.consume();\n this.consume();\n this.consume();\n this.consume();\n this.consume();\n this.consume();\n this.transitionTo(\"doctype\"\n /* doctype */\n );\n if (this.delegate.beginDoctype) this.delegate.beginDoctype();\n }\n }\n },\n doctype: function doctype() {\n var char = this.consume();\n\n if (isSpace(char)) {\n this.transitionTo(\"beforeDoctypeName\"\n /* beforeDoctypeName */\n );\n }\n },\n beforeDoctypeName: function beforeDoctypeName() {\n var char = this.consume();\n\n if (isSpace(char)) {\n return;\n } else {\n this.transitionTo(\"doctypeName\"\n /* doctypeName */\n );\n if (this.delegate.appendToDoctypeName) this.delegate.appendToDoctypeName(char.toLowerCase());\n }\n },\n doctypeName: function doctypeName() {\n var char = this.consume();\n\n if (isSpace(char)) {\n this.transitionTo(\"afterDoctypeName\"\n /* afterDoctypeName */\n );\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n if (this.delegate.appendToDoctypeName) this.delegate.appendToDoctypeName(char.toLowerCase());\n }\n },\n afterDoctypeName: function afterDoctypeName() {\n var char = this.consume();\n\n if (isSpace(char)) {\n return;\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n var nextSixChars = char.toUpperCase() + this.input.substring(this.index, this.index + 5).toUpperCase();\n var isPublic = nextSixChars.toUpperCase() === 'PUBLIC';\n var isSystem = nextSixChars.toUpperCase() === 'SYSTEM';\n\n if (isPublic || isSystem) {\n this.consume();\n this.consume();\n this.consume();\n this.consume();\n this.consume();\n this.consume();\n }\n\n if (isPublic) {\n this.transitionTo(\"afterDoctypePublicKeyword\"\n /* afterDoctypePublicKeyword */\n );\n } else if (isSystem) {\n this.transitionTo(\"afterDoctypeSystemKeyword\"\n /* afterDoctypeSystemKeyword */\n );\n }\n }\n },\n afterDoctypePublicKeyword: function afterDoctypePublicKeyword() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.transitionTo(\"beforeDoctypePublicIdentifier\"\n /* beforeDoctypePublicIdentifier */\n );\n this.consume();\n } else if (char === '\"') {\n this.transitionTo(\"doctypePublicIdentifierDoubleQuoted\"\n /* doctypePublicIdentifierDoubleQuoted */\n );\n this.consume();\n } else if (char === \"'\") {\n this.transitionTo(\"doctypePublicIdentifierSingleQuoted\"\n /* doctypePublicIdentifierSingleQuoted */\n );\n this.consume();\n } else if (char === '>') {\n this.consume();\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n }\n },\n doctypePublicIdentifierDoubleQuoted: function doctypePublicIdentifierDoubleQuoted() {\n var char = this.consume();\n\n if (char === '\"') {\n this.transitionTo(\"afterDoctypePublicIdentifier\"\n /* afterDoctypePublicIdentifier */\n );\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n if (this.delegate.appendToDoctypePublicIdentifier) this.delegate.appendToDoctypePublicIdentifier(char);\n }\n },\n doctypePublicIdentifierSingleQuoted: function doctypePublicIdentifierSingleQuoted() {\n var char = this.consume();\n\n if (char === \"'\") {\n this.transitionTo(\"afterDoctypePublicIdentifier\"\n /* afterDoctypePublicIdentifier */\n );\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n if (this.delegate.appendToDoctypePublicIdentifier) this.delegate.appendToDoctypePublicIdentifier(char);\n }\n },\n afterDoctypePublicIdentifier: function afterDoctypePublicIdentifier() {\n var char = this.consume();\n\n if (isSpace(char)) {\n this.transitionTo(\"betweenDoctypePublicAndSystemIdentifiers\"\n /* betweenDoctypePublicAndSystemIdentifiers */\n );\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else if (char === '\"') {\n this.transitionTo(\"doctypeSystemIdentifierDoubleQuoted\"\n /* doctypeSystemIdentifierDoubleQuoted */\n );\n } else if (char === \"'\") {\n this.transitionTo(\"doctypeSystemIdentifierSingleQuoted\"\n /* doctypeSystemIdentifierSingleQuoted */\n );\n }\n },\n betweenDoctypePublicAndSystemIdentifiers: function betweenDoctypePublicAndSystemIdentifiers() {\n var char = this.consume();\n\n if (isSpace(char)) {\n return;\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else if (char === '\"') {\n this.transitionTo(\"doctypeSystemIdentifierDoubleQuoted\"\n /* doctypeSystemIdentifierDoubleQuoted */\n );\n } else if (char === \"'\") {\n this.transitionTo(\"doctypeSystemIdentifierSingleQuoted\"\n /* doctypeSystemIdentifierSingleQuoted */\n );\n }\n },\n doctypeSystemIdentifierDoubleQuoted: function doctypeSystemIdentifierDoubleQuoted() {\n var char = this.consume();\n\n if (char === '\"') {\n this.transitionTo(\"afterDoctypeSystemIdentifier\"\n /* afterDoctypeSystemIdentifier */\n );\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n if (this.delegate.appendToDoctypeSystemIdentifier) this.delegate.appendToDoctypeSystemIdentifier(char);\n }\n },\n doctypeSystemIdentifierSingleQuoted: function doctypeSystemIdentifierSingleQuoted() {\n var char = this.consume();\n\n if (char === \"'\") {\n this.transitionTo(\"afterDoctypeSystemIdentifier\"\n /* afterDoctypeSystemIdentifier */\n );\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n if (this.delegate.appendToDoctypeSystemIdentifier) this.delegate.appendToDoctypeSystemIdentifier(char);\n }\n },\n afterDoctypeSystemIdentifier: function afterDoctypeSystemIdentifier() {\n var char = this.consume();\n\n if (isSpace(char)) {\n return;\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n }\n },\n commentStart: function commentStart() {\n var char = this.consume();\n\n if (char === '-') {\n this.transitionTo(\"commentStartDash\"\n /* commentStartDash */\n );\n } else if (char === '>') {\n this.delegate.finishComment();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.delegate.appendToCommentData(char);\n this.transitionTo(\"comment\"\n /* comment */\n );\n }\n },\n commentStartDash: function commentStartDash() {\n var char = this.consume();\n\n if (char === '-') {\n this.transitionTo(\"commentEnd\"\n /* commentEnd */\n );\n } else if (char === '>') {\n this.delegate.finishComment();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.delegate.appendToCommentData('-');\n this.transitionTo(\"comment\"\n /* comment */\n );\n }\n },\n comment: function comment() {\n var char = this.consume();\n\n if (char === '-') {\n this.transitionTo(\"commentEndDash\"\n /* commentEndDash */\n );\n } else {\n this.delegate.appendToCommentData(char);\n }\n },\n commentEndDash: function commentEndDash() {\n var char = this.consume();\n\n if (char === '-') {\n this.transitionTo(\"commentEnd\"\n /* commentEnd */\n );\n } else {\n this.delegate.appendToCommentData('-' + char);\n this.transitionTo(\"comment\"\n /* comment */\n );\n }\n },\n commentEnd: function commentEnd() {\n var char = this.consume();\n\n if (char === '>') {\n this.delegate.finishComment();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.delegate.appendToCommentData('--' + char);\n this.transitionTo(\"comment\"\n /* comment */\n );\n }\n },\n tagName: function tagName() {\n var char = this.consume();\n\n if (isSpace(char)) {\n this.transitionTo(\"beforeAttributeName\"\n /* beforeAttributeName */\n );\n } else if (char === '/') {\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n } else if (char === '>') {\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.appendToTagName(char);\n }\n },\n endTagName: function endTagName() {\n var char = this.consume();\n\n if (isSpace(char)) {\n this.transitionTo(\"beforeAttributeName\"\n /* beforeAttributeName */\n );\n this.tagNameBuffer = '';\n } else if (char === '/') {\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n this.tagNameBuffer = '';\n } else if (char === '>') {\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n this.tagNameBuffer = '';\n } else {\n this.appendToTagName(char);\n }\n },\n beforeAttributeName: function beforeAttributeName() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.consume();\n return;\n } else if (char === '/') {\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n this.consume();\n } else if (char === '>') {\n this.consume();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else if (char === '=') {\n this.delegate.reportSyntaxError('attribute name cannot start with equals sign');\n this.transitionTo(\"attributeName\"\n /* attributeName */\n );\n this.delegate.beginAttribute();\n this.consume();\n this.delegate.appendToAttributeName(char);\n } else {\n this.transitionTo(\"attributeName\"\n /* attributeName */\n );\n this.delegate.beginAttribute();\n }\n },\n attributeName: function attributeName() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.transitionTo(\"afterAttributeName\"\n /* afterAttributeName */\n );\n this.consume();\n } else if (char === '/') {\n this.delegate.beginAttributeValue(false);\n this.delegate.finishAttributeValue();\n this.consume();\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n } else if (char === '=') {\n this.transitionTo(\"beforeAttributeValue\"\n /* beforeAttributeValue */\n );\n this.consume();\n } else if (char === '>') {\n this.delegate.beginAttributeValue(false);\n this.delegate.finishAttributeValue();\n this.consume();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else if (char === '\"' || char === \"'\" || char === '<') {\n this.delegate.reportSyntaxError(char + ' is not a valid character within attribute names');\n this.consume();\n this.delegate.appendToAttributeName(char);\n } else {\n this.consume();\n this.delegate.appendToAttributeName(char);\n }\n },\n afterAttributeName: function afterAttributeName() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.consume();\n return;\n } else if (char === '/') {\n this.delegate.beginAttributeValue(false);\n this.delegate.finishAttributeValue();\n this.consume();\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n } else if (char === '=') {\n this.consume();\n this.transitionTo(\"beforeAttributeValue\"\n /* beforeAttributeValue */\n );\n } else if (char === '>') {\n this.delegate.beginAttributeValue(false);\n this.delegate.finishAttributeValue();\n this.consume();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.delegate.beginAttributeValue(false);\n this.delegate.finishAttributeValue();\n this.transitionTo(\"attributeName\"\n /* attributeName */\n );\n this.delegate.beginAttribute();\n this.consume();\n this.delegate.appendToAttributeName(char);\n }\n },\n beforeAttributeValue: function beforeAttributeValue() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.consume();\n } else if (char === '\"') {\n this.transitionTo(\"attributeValueDoubleQuoted\"\n /* attributeValueDoubleQuoted */\n );\n this.delegate.beginAttributeValue(true);\n this.consume();\n } else if (char === \"'\") {\n this.transitionTo(\"attributeValueSingleQuoted\"\n /* attributeValueSingleQuoted */\n );\n this.delegate.beginAttributeValue(true);\n this.consume();\n } else if (char === '>') {\n this.delegate.beginAttributeValue(false);\n this.delegate.finishAttributeValue();\n this.consume();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.transitionTo(\"attributeValueUnquoted\"\n /* attributeValueUnquoted */\n );\n this.delegate.beginAttributeValue(false);\n this.consume();\n this.delegate.appendToAttributeValue(char);\n }\n },\n attributeValueDoubleQuoted: function attributeValueDoubleQuoted() {\n var char = this.consume();\n\n if (char === '\"') {\n this.delegate.finishAttributeValue();\n this.transitionTo(\"afterAttributeValueQuoted\"\n /* afterAttributeValueQuoted */\n );\n } else if (char === '&') {\n this.delegate.appendToAttributeValue(this.consumeCharRef() || '&');\n } else {\n this.delegate.appendToAttributeValue(char);\n }\n },\n attributeValueSingleQuoted: function attributeValueSingleQuoted() {\n var char = this.consume();\n\n if (char === \"'\") {\n this.delegate.finishAttributeValue();\n this.transitionTo(\"afterAttributeValueQuoted\"\n /* afterAttributeValueQuoted */\n );\n } else if (char === '&') {\n this.delegate.appendToAttributeValue(this.consumeCharRef() || '&');\n } else {\n this.delegate.appendToAttributeValue(char);\n }\n },\n attributeValueUnquoted: function attributeValueUnquoted() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.delegate.finishAttributeValue();\n this.consume();\n this.transitionTo(\"beforeAttributeName\"\n /* beforeAttributeName */\n );\n } else if (char === '/') {\n this.delegate.finishAttributeValue();\n this.consume();\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n } else if (char === '&') {\n this.consume();\n this.delegate.appendToAttributeValue(this.consumeCharRef() || '&');\n } else if (char === '>') {\n this.delegate.finishAttributeValue();\n this.consume();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.consume();\n this.delegate.appendToAttributeValue(char);\n }\n },\n afterAttributeValueQuoted: function afterAttributeValueQuoted() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.consume();\n this.transitionTo(\"beforeAttributeName\"\n /* beforeAttributeName */\n );\n } else if (char === '/') {\n this.consume();\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n } else if (char === '>') {\n this.consume();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.transitionTo(\"beforeAttributeName\"\n /* beforeAttributeName */\n );\n }\n },\n selfClosingStartTag: function selfClosingStartTag() {\n var char = this.peek();\n\n if (char === '>') {\n this.consume();\n this.delegate.markTagAsSelfClosing();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.transitionTo(\"beforeAttributeName\"\n /* beforeAttributeName */\n );\n }\n },\n endTagOpen: function endTagOpen() {\n var char = this.consume();\n\n if (char === '@' || char === ':' || isAlpha(char)) {\n this.transitionTo(\"endTagName\"\n /* endTagName */\n );\n this.tagNameBuffer = '';\n this.delegate.beginEndTag();\n this.appendToTagName(char);\n }\n }\n };\n this.reset();\n }\n\n EventedTokenizer.prototype.reset = function () {\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n this.input = '';\n this.tagNameBuffer = '';\n this.index = 0;\n this.line = 1;\n this.column = 0;\n this.delegate.reset();\n };\n\n EventedTokenizer.prototype.transitionTo = function (state) {\n this.state = state;\n };\n\n EventedTokenizer.prototype.tokenize = function (input) {\n this.reset();\n this.tokenizePart(input);\n this.tokenizeEOF();\n };\n\n EventedTokenizer.prototype.tokenizePart = function (input) {\n this.input += preprocessInput(input);\n\n while (this.index < this.input.length) {\n var handler = this.states[this.state];\n\n if (handler !== undefined) {\n handler.call(this);\n } else {\n throw new Error(\"unhandled state \" + this.state);\n }\n }\n };\n\n EventedTokenizer.prototype.tokenizeEOF = function () {\n this.flushData();\n };\n\n EventedTokenizer.prototype.flushData = function () {\n if (this.state === 'data') {\n this.delegate.finishData();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n }\n };\n\n EventedTokenizer.prototype.peek = function () {\n return this.input.charAt(this.index);\n };\n\n EventedTokenizer.prototype.consume = function () {\n var char = this.peek();\n this.index++;\n\n if (char === '\\n') {\n this.line++;\n this.column = 0;\n } else {\n this.column++;\n }\n\n return char;\n };\n\n EventedTokenizer.prototype.consumeCharRef = function () {\n var endIndex = this.input.indexOf(';', this.index);\n\n if (endIndex === -1) {\n return;\n }\n\n var entity = this.input.slice(this.index, endIndex);\n var chars = this.entityParser.parse(entity);\n\n if (chars) {\n var count = entity.length; // consume the entity chars\n\n while (count) {\n this.consume();\n count--;\n } // consume the `;`\n\n\n this.consume();\n return chars;\n }\n };\n\n EventedTokenizer.prototype.markTagStart = function () {\n this.delegate.tagOpen();\n };\n\n EventedTokenizer.prototype.appendToTagName = function (char) {\n this.tagNameBuffer += char;\n this.delegate.appendToTagName(char);\n };\n\n EventedTokenizer.prototype.isIgnoredEndTag = function () {\n var tag = this.tagNameBuffer;\n return tag === 'title' && this.input.substring(this.index, this.index + 8) !== '' || tag === 'style' && this.input.substring(this.index, this.index + 8) !== '' || tag === 'script' && this.input.substring(this.index, this.index + 9) !== '';\n };\n\n return EventedTokenizer;\n}();\n\nvar Tokenizer =\n/** @class */\nfunction () {\n function Tokenizer(entityParser, options) {\n if (options === void 0) {\n options = {};\n }\n\n this.options = options;\n this.token = null;\n this.startLine = 1;\n this.startColumn = 0;\n this.tokens = [];\n this.tokenizer = new EventedTokenizer(this, entityParser, options.mode);\n this._currentAttribute = undefined;\n }\n\n Tokenizer.prototype.tokenize = function (input) {\n this.tokens = [];\n this.tokenizer.tokenize(input);\n return this.tokens;\n };\n\n Tokenizer.prototype.tokenizePart = function (input) {\n this.tokens = [];\n this.tokenizer.tokenizePart(input);\n return this.tokens;\n };\n\n Tokenizer.prototype.tokenizeEOF = function () {\n this.tokens = [];\n this.tokenizer.tokenizeEOF();\n return this.tokens[0];\n };\n\n Tokenizer.prototype.reset = function () {\n this.token = null;\n this.startLine = 1;\n this.startColumn = 0;\n };\n\n Tokenizer.prototype.current = function () {\n var token = this.token;\n\n if (token === null) {\n throw new Error('token was unexpectedly null');\n }\n\n if (arguments.length === 0) {\n return token;\n }\n\n for (var i = 0; i < arguments.length; i++) {\n if (token.type === arguments[i]) {\n return token;\n }\n }\n\n throw new Error(\"token type was unexpectedly \" + token.type);\n };\n\n Tokenizer.prototype.push = function (token) {\n this.token = token;\n this.tokens.push(token);\n };\n\n Tokenizer.prototype.currentAttribute = function () {\n return this._currentAttribute;\n };\n\n Tokenizer.prototype.addLocInfo = function () {\n if (this.options.loc) {\n this.current().loc = {\n start: {\n line: this.startLine,\n column: this.startColumn\n },\n end: {\n line: this.tokenizer.line,\n column: this.tokenizer.column\n }\n };\n }\n\n this.startLine = this.tokenizer.line;\n this.startColumn = this.tokenizer.column;\n }; // Data\n\n\n Tokenizer.prototype.beginDoctype = function () {\n this.push({\n type: \"Doctype\"\n /* Doctype */\n ,\n name: ''\n });\n };\n\n Tokenizer.prototype.appendToDoctypeName = function (char) {\n this.current(\"Doctype\"\n /* Doctype */\n ).name += char;\n };\n\n Tokenizer.prototype.appendToDoctypePublicIdentifier = function (char) {\n var doctype = this.current(\"Doctype\"\n /* Doctype */\n );\n\n if (doctype.publicIdentifier === undefined) {\n doctype.publicIdentifier = char;\n } else {\n doctype.publicIdentifier += char;\n }\n };\n\n Tokenizer.prototype.appendToDoctypeSystemIdentifier = function (char) {\n var doctype = this.current(\"Doctype\"\n /* Doctype */\n );\n\n if (doctype.systemIdentifier === undefined) {\n doctype.systemIdentifier = char;\n } else {\n doctype.systemIdentifier += char;\n }\n };\n\n Tokenizer.prototype.endDoctype = function () {\n this.addLocInfo();\n };\n\n Tokenizer.prototype.beginData = function () {\n this.push({\n type: \"Chars\"\n /* Chars */\n ,\n chars: ''\n });\n };\n\n Tokenizer.prototype.appendToData = function (char) {\n this.current(\"Chars\"\n /* Chars */\n ).chars += char;\n };\n\n Tokenizer.prototype.finishData = function () {\n this.addLocInfo();\n }; // Comment\n\n\n Tokenizer.prototype.beginComment = function () {\n this.push({\n type: \"Comment\"\n /* Comment */\n ,\n chars: ''\n });\n };\n\n Tokenizer.prototype.appendToCommentData = function (char) {\n this.current(\"Comment\"\n /* Comment */\n ).chars += char;\n };\n\n Tokenizer.prototype.finishComment = function () {\n this.addLocInfo();\n }; // Tags - basic\n\n\n Tokenizer.prototype.tagOpen = function () {};\n\n Tokenizer.prototype.beginStartTag = function () {\n this.push({\n type: \"StartTag\"\n /* StartTag */\n ,\n tagName: '',\n attributes: [],\n selfClosing: false\n });\n };\n\n Tokenizer.prototype.beginEndTag = function () {\n this.push({\n type: \"EndTag\"\n /* EndTag */\n ,\n tagName: ''\n });\n };\n\n Tokenizer.prototype.finishTag = function () {\n this.addLocInfo();\n };\n\n Tokenizer.prototype.markTagAsSelfClosing = function () {\n this.current(\"StartTag\"\n /* StartTag */\n ).selfClosing = true;\n }; // Tags - name\n\n\n Tokenizer.prototype.appendToTagName = function (char) {\n this.current(\"StartTag\"\n /* StartTag */\n , \"EndTag\"\n /* EndTag */\n ).tagName += char;\n }; // Tags - attributes\n\n\n Tokenizer.prototype.beginAttribute = function () {\n this._currentAttribute = ['', '', false];\n };\n\n Tokenizer.prototype.appendToAttributeName = function (char) {\n this.currentAttribute()[0] += char;\n };\n\n Tokenizer.prototype.beginAttributeValue = function (isQuoted) {\n this.currentAttribute()[2] = isQuoted;\n };\n\n Tokenizer.prototype.appendToAttributeValue = function (char) {\n this.currentAttribute()[1] += char;\n };\n\n Tokenizer.prototype.finishAttributeValue = function () {\n this.current(\"StartTag\"\n /* StartTag */\n ).attributes.push(this._currentAttribute);\n };\n\n Tokenizer.prototype.reportSyntaxError = function (message) {\n this.current().syntaxError = message;\n };\n\n return Tokenizer;\n}();\n\nfunction tokenize(input, options) {\n var tokenizer = new Tokenizer(new EntityParser(HTML5NamedCharRefs), options);\n return tokenizer.tokenize(input);\n}\n\nvar LinkifyResult = 'LinkifyResult';\nvar StartTag = 'StartTag';\nvar EndTag = 'EndTag';\nvar Chars = 'Chars';\nvar Comment = 'Comment';\nvar Doctype = 'Doctype';\n/**\n * @param {string} str html string to link\n * @param {import('linkifyjs').Opts} [opts] linkify options\n * @returns {string} resulting string\n */\n\nfunction linkifyHtml(str, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n // `tokens` and `token` in this section refer to tokens generated by the\n // HTML parser, not linkify's parser\n var tokens = tokenize(str);\n var linkifiedTokens = [];\n var linkified = [];\n var options = new Options(opts, defaultRender); // Linkify the tokens given by the parser\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (token.type === StartTag) {\n linkifiedTokens.push(token); // Ignore all the contents of ignored tags\n\n var tagName = token.tagName.toUpperCase();\n var isIgnored = tagName === 'A' || options.ignoreTags.indexOf(tagName) >= 0;\n\n if (!isIgnored) {\n continue;\n }\n\n var preskipLen = linkifiedTokens.length;\n skipTagTokens(tagName, tokens, ++i, linkifiedTokens);\n i += linkifiedTokens.length - preskipLen - 1;\n } else if (token.type !== Chars) {\n // Skip this token, it's not important\n linkifiedTokens.push(token);\n } else {\n // Valid text token, linkify it!\n var linkifedChars = linkifyChars(token.chars, options);\n linkifiedTokens.push.apply(linkifiedTokens, linkifedChars);\n }\n } // Convert the tokens back into a string\n\n\n for (var _i = 0; _i < linkifiedTokens.length; _i++) {\n var _token = linkifiedTokens[_i];\n\n switch (_token.type) {\n case LinkifyResult:\n linkified.push(_token.rendered);\n break;\n\n case StartTag:\n {\n var link = '<' + _token.tagName;\n\n if (_token.attributes.length > 0) {\n link += ' ' + attributeArrayToStrings(_token.attributes).join(' ');\n }\n\n if (_token.selfClosing) {\n link += ' /';\n }\n\n link += '>';\n linkified.push(link);\n break;\n }\n\n case EndTag:\n linkified.push(\"\");\n break;\n\n case Chars:\n linkified.push(escapeText(_token.chars));\n break;\n\n case Comment:\n linkified.push(\"\");\n break;\n\n case Doctype:\n {\n var doctype = \"';\n linkified.push(doctype);\n break;\n }\n }\n }\n\n return linkified.join('');\n}\n/**\n\t`tokens` and `token` in this section referes to tokens returned by\n\t`linkify.tokenize`. `linkified` will contain HTML Parser-style tokens\n\t@param {string}\n\t@param {import('linkifyjs').Options}\n*/\n\nfunction linkifyChars(str, options) {\n var tokens = tokenize$1(str);\n var result = [];\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (token.t === 'nl' && options.get('nl2br')) {\n result.push({\n type: StartTag,\n tagName: 'br',\n attributes: [],\n selfClosing: true\n });\n } else if (!token.isLink || !options.check(token)) {\n result.push({\n type: Chars,\n chars: token.toString()\n });\n } else {\n result.push({\n type: LinkifyResult,\n rendered: options.render(token)\n });\n }\n }\n\n return result;\n}\n/**\n\tReturns a list of tokens skipped until the closing tag of tagName.\n\n\t* `tagName` is the closing tag which will prompt us to stop skipping\n\t* `tokens` is the array of tokens generated by HTML5Tokenizer which\n\t* `i` is the index immediately after the opening tag to skip\n\t* `skippedTokens` is an array which skipped tokens are being pushed into\n\n\tCaveats\n\n\t* Assumes that i is the first token after the given opening tagName\n\t* The closing tag will be skipped, but nothing after it\n\t* Will track whether there is a nested tag of the same type\n*/\n\n\nfunction skipTagTokens(tagName, tokens, i, skippedTokens) {\n // number of tokens of this type on the [fictional] stack\n var stackCount = 1;\n\n while (i < tokens.length && stackCount > 0) {\n var token = tokens[i];\n\n if (token.type === StartTag && token.tagName.toUpperCase() === tagName) {\n // Nested tag of the same type, \"add to stack\"\n stackCount++;\n } else if (token.type === EndTag && token.tagName.toUpperCase() === tagName) {\n // Closing tag\n stackCount--;\n }\n\n skippedTokens.push(token);\n i++;\n } // Note that if stackCount > 0 here, the HTML is probably invalid\n\n\n return skippedTokens;\n}\n\nfunction defaultRender(_ref) {\n var tagName = _ref.tagName,\n attributes = _ref.attributes,\n content = _ref.content;\n return \"<\" + tagName + \" \" + attributesToString(attributes) + \">\" + escapeText(content) + \"\";\n}\n\nfunction escapeText(text) {\n return text.replace(/&/g, '&').replace(//g, '>');\n}\n\nfunction escapeAttr(attr) {\n return attr.replace(/\"/g, '"');\n}\n\nfunction attributesToString(attributes) {\n var result = [];\n\n for (var attr in attributes) {\n var val = attributes[attr] + '';\n result.push(attr + \"=\\\"\" + escapeAttr(val) + \"\\\"\");\n }\n\n return result.join(' ');\n}\n\nfunction attributeArrayToStrings(attrs) {\n var attrStrs = [];\n\n for (var i = 0; i < attrs.length; i++) {\n var name = attrs[i][0];\n var value = attrs[i][1] + '';\n attrStrs.push(name + \"=\\\"\" + escapeAttr(value) + \"\\\"\");\n }\n\n return attrStrs;\n}\n\nexport { linkifyHtml as default };\n","import linkifyHtml from 'linkify-html'\nimport sanitizeHtml from 'sanitize-html'\n\nexport const linkifyAndClean = (input: string): string => {\n return sanitizeHtml(linkifyHtml(input, { target: '_blank' }), {\n allowedTags: ['a'],\n disallowedTagsMode: 'escape',\n })\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f6b59442\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-note\" }\nconst _hoisted_2 = [\"innerHTML\"]\n\nimport { toRefs, withDefaults } from 'vue'\n\n import { linkifyAndClean } from '@/utils/inputs'\n\n interface Props {\n notes?: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutNotes',\n props: {\n notes: { default: () => null }\n },\n setup(__props: any) {\n\nconst props = __props as { notes: string | null };\n\n \n\n const { notes } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.NOTES')), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"span\", {\n innerHTML: \n _unref(notes) && _unref(notes) !== ''\n ? _unref(linkifyAndClean)(_unref(notes))\n : _ctx.$t('workouts.NO_NOTES')\n \n }, null, 8, _hoisted_2)\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./WorkoutNotes.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutNotes.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutNotes.vue?vue&type=style&index=0&id=f6b59442&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f6b59442\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6b8a27cd\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-segments\" }\n\nimport { toRefs } from 'vue'\n\n import { IWorkoutSegment } from '@/types/workouts'\n\n interface Props {\n segments: IWorkoutSegment[]\n useImperialUnits: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutSegments',\n props: {\n segments: null,\n useImperialUnits: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n segments: IWorkoutSegment[]\n useImperialUnits: boolean\n };\n\n \n\n const { segments, useImperialUnits } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Distance = _resolveComponent(\"Distance\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.SEGMENT', 2)), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"ul\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(segments), (segment, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: segment.segment_id\n }, [\n _createVNode(_component_router_link, {\n to: {\n name: 'WorkoutSegment',\n params: {\n workoutId: segment.workout_id,\n segmentId: index + 1,\n },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.SEGMENT', 1)) + \" \" + _toDisplayString(index + 1), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]),\n _createTextVNode(\" (\" + _toDisplayString(_ctx.$t('workouts.DISTANCE')) + \": \", 1),\n _createVNode(_component_Distance, {\n distance: segment.distance,\n unitFrom: \"km\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]),\n _createTextVNode(\", \" + _toDisplayString(_ctx.$t('workouts.DURATION')) + \": \" + _toDisplayString(segment.duration) + \") \", 1)\n ]))\n }), 128))\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./WorkoutSegments.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutSegments.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutSegments.vue?vue&type=style&index=0&id=6b8a27cd&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6b8a27cd\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-53c4e53a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"workout\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"workout-container\"\n}\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\nconst _hoisted_6 = { key: 1 }\n\nimport {\n ComputedRef,\n Ref,\n computed,\n ref,\n toRefs,\n watch,\n onBeforeMount,\n onUnmounted,\n } from 'vue'\n import { useRoute } from 'vue-router'\n\n import NotFound from '@/components/Common/NotFound.vue'\n import WorkoutDetail from '@/components/Workout/WorkoutDetail/index.vue'\n import WorkoutChart from '@/components/Workout/WorkoutDetail/WorkoutChart/index.vue'\n import WorkoutNotes from '@/components/Workout/WorkoutDetail/WorkoutNotes.vue'\n import WorkoutSegments from '@/components/Workout/WorkoutDetail/WorkoutSegments.vue'\n import {\n AUTH_USER_STORE,\n SPORTS_STORE,\n WORKOUTS_STORE,\n } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { IWorkoutData, IWorkoutPayload, TCoordinates } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n displaySegment: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Workout',\n props: {\n displaySegment: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n displaySegment: boolean\n };\n\n \n\n const route = useRoute()\n const store = useStore()\n\n const { displaySegment } = toRefs(props)\n const workoutData: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.WORKOUT_DATA]\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const markerCoordinates: Ref = ref({\n latitude: null,\n longitude: null,\n })\n\n onBeforeMount(() => {\n const payload: IWorkoutPayload = { workoutId: route.params.workoutId }\n if (props.displaySegment) {\n payload.segmentId = route.params.segmentId\n }\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, payload)\n })\n\n onUnmounted(() => {\n store.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n })\n\n function updateCoordinates(coordinates: TCoordinates) {\n markerCoordinates.value = {\n latitude: coordinates.latitude,\n longitude: coordinates.longitude,\n }\n }\n\n watch(\n () => route.params.workoutId,\n async (newWorkoutId) => {\n if (newWorkoutId) {\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, {\n workoutId: newWorkoutId,\n })\n }\n }\n )\n watch(\n () => route.params.segmentId,\n async (newSegmentId) => {\n if (route.params.workoutId) {\n const payload: IWorkoutPayload = {\n workoutId: route.params.workoutId,\n }\n if (newSegmentId) {\n payload.segmentId = newSegmentId\n }\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, payload)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(sports).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_unref(workoutData).workout.id)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createVNode(WorkoutDetail, {\n workoutData: _unref(workoutData),\n sports: _unref(sports),\n authUser: _unref(authUser),\n markerCoordinates: markerCoordinates.value,\n displaySegment: _unref(displaySegment)\n }, null, 8, [\"workoutData\", \"sports\", \"authUser\", \"markerCoordinates\", \"displaySegment\"]),\n (\n _unref(workoutData).workout.with_gpx && _unref(workoutData).chartData.length > 0\n )\n ? (_openBlock(), _createBlock(WorkoutChart, {\n key: 0,\n workoutData: _unref(workoutData),\n authUser: _unref(authUser),\n displaySegment: _unref(displaySegment),\n onGetCoordinates: updateCoordinates\n }, null, 8, [\"workoutData\", \"authUser\", \"displaySegment\"]))\n : _createCommentVNode(\"\", true),\n (!_unref(displaySegment) && _unref(workoutData).workout.segments.length > 1)\n ? (_openBlock(), _createBlock(WorkoutSegments, {\n key: 1,\n segments: _unref(workoutData).workout.segments,\n useImperialUnits: _unref(authUser).imperial_units\n }, null, 8, [\"segments\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true),\n (!_unref(displaySegment))\n ? (_openBlock(), _createBlock(WorkoutNotes, {\n key: 2,\n notes: _unref(workoutData).workout.notes\n }, null, 8, [\"notes\"]))\n : _createCommentVNode(\"\", true),\n _hoisted_5\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n (!_unref(workoutData).loading)\n ? (_openBlock(), _createBlock(NotFound, {\n key: 0,\n target: \"WORKOUT\"\n }))\n : _createCommentVNode(\"\", true)\n ]))\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./Workout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Workout.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Workout.vue?vue&type=style&index=0&id=53c4e53a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-53c4e53a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6c38593a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"workouts-filters\" }\nconst _hoisted_2 = { class: \"box\" }\nconst _hoisted_3 = { class: \"form\" }\nconst _hoisted_4 = { class: \"form-items-group\" }\nconst _hoisted_5 = { class: \"form-item\" }\nconst _hoisted_6 = [\"value\"]\nconst _hoisted_7 = { class: \"form-item\" }\nconst _hoisted_8 = [\"value\"]\nconst _hoisted_9 = { class: \"form-items-group\" }\nconst _hoisted_10 = { class: \"form-item\" }\nconst _hoisted_11 = [\"value\"]\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"option\", { value: \"\" }, null, -1))\nconst _hoisted_13 = [\"value\"]\nconst _hoisted_14 = { class: \"form-items-group\" }\nconst _hoisted_15 = { class: \"form-item\" }\nconst _hoisted_16 = { class: \"form-inputs-group\" }\nconst _hoisted_17 = [\"value\"]\nconst _hoisted_18 = [\"value\"]\nconst _hoisted_19 = { class: \"form-items-group\" }\nconst _hoisted_20 = { class: \"form-item\" }\nconst _hoisted_21 = { class: \"form-inputs-group\" }\nconst _hoisted_22 = [\"value\"]\nconst _hoisted_23 = [\"value\"]\nconst _hoisted_24 = { class: \"form-items-group\" }\nconst _hoisted_25 = { class: \"form-item\" }\nconst _hoisted_26 = { class: \"form-inputs-group\" }\nconst _hoisted_27 = [\"value\"]\nconst _hoisted_28 = [\"value\"]\nconst _hoisted_29 = { class: \"form-items-group\" }\nconst _hoisted_30 = { class: \"form-item\" }\nconst _hoisted_31 = { class: \"form-inputs-group\" }\nconst _hoisted_32 = [\"value\"]\nconst _hoisted_33 = [\"value\"]\nconst _hoisted_34 = { class: \"form-button\" }\n\nimport { ComputedRef, computed, toRefs, watch } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { LocationQuery, useRoute, useRouter } from 'vue-router'\n\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { translateSports } from '@/utils/sports'\n import { units } from '@/utils/units'\n\n interface Props {\n authUser: IAuthUserProfile\n sports: ISport[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutsFilters',\n props: {\n authUser: null,\n sports: null\n },\n emits: ['filter'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n authUser: IAuthUserProfile\n sports: ISport[]\n };\n\n \n\n \n\n const { t } = useI18n()\n const route = useRoute()\n const router = useRouter()\n\n const { authUser } = toRefs(props)\n\n const toUnit = authUser.value.imperial_units\n ? units['km'].defaultTarget\n : 'km'\n const translatedSports: ComputedRef = computed(() =>\n translateSports(props.sports, t)\n )\n let params: LocationQuery = Object.assign({}, route.query)\n\n function handleFilterChange(event: Event & { target: HTMLInputElement }) {\n if (event.target.value === '') {\n delete params[event.target.name]\n } else {\n params[event.target.name] = event.target.value\n }\n }\n function onFilter() {\n emit('filter')\n if ('page' in params) {\n params['page'] = '1'\n }\n router.push({ path: '/workouts', query: params })\n }\n function onClearFilter() {\n emit('filter')\n router.push({ path: '/workouts', query: {} })\n }\n\n watch(\n () => route.query,\n (newQuery) => {\n params = Object.assign({}, newQuery)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.FROM')) + \": \", 1),\n _createElementVNode(\"input\", {\n name: \"from\",\n type: \"date\",\n value: _ctx.$route.query.from,\n onChange: handleFilterChange\n }, null, 40, _hoisted_6)\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.TO')) + \": \", 1),\n _createElementVNode(\"input\", {\n name: \"to\",\n type: \"date\",\n value: _ctx.$route.query.to,\n onChange: handleFilterChange\n }, null, 40, _hoisted_8)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.SPORT', 1)) + \":\", 1),\n _createElementVNode(\"select\", {\n name: \"sport_id\",\n value: _ctx.$route.query.sport_id,\n onChange: handleFilterChange\n }, [\n _hoisted_12,\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports).filter((s) =>\n _unref(authUser).sports_list.includes(s.id)\n ), (sport) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: sport.id,\n key: sport.id\n }, _toDisplayString(sport.translatedLabel), 9, _hoisted_13))\n }), 128))\n ], 40, _hoisted_11)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DISTANCE')) + \" (\" + _toDisplayString(_unref(toUnit)) + \"): \", 1),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"input\", {\n name: \"distance_from\",\n type: \"number\",\n min: \"0\",\n step: \"0.1\",\n value: _ctx.$route.query.distance_from,\n onChange: handleFilterChange\n }, null, 40, _hoisted_17),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('workouts.TO')), 1),\n _createElementVNode(\"input\", {\n name: \"distance_to\",\n type: \"number\",\n min: \"0\",\n step: \"0.1\",\n value: _ctx.$route.query.distance_to,\n onChange: handleFilterChange\n }, null, 40, _hoisted_18)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DURATION')) + \": \", 1),\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"input\", {\n name: \"duration_from\",\n value: _ctx.$route.query.duration_from,\n onChange: handleFilterChange,\n pattern: \"^([0-9]*[0-9]):([0-5][0-9])$\",\n placeholder: \"hh:mm\",\n type: \"text\"\n }, null, 40, _hoisted_22),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('workouts.TO')), 1),\n _createElementVNode(\"input\", {\n name: \"duration_to\",\n value: _ctx.$route.query.duration_to,\n onChange: handleFilterChange,\n pattern: \"^([0-9]*[0-9]):([0-5][0-9])$\",\n placeholder: \"hh:mm\",\n type: \"text\"\n }, null, 40, _hoisted_23)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_24, [\n _createElementVNode(\"div\", _hoisted_25, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.AVE_SPEED')) + \" (\" + _toDisplayString(_unref(toUnit)) + \"/h): \", 1),\n _createElementVNode(\"div\", _hoisted_26, [\n _createElementVNode(\"input\", {\n min: \"0\",\n name: \"ave_speed_from\",\n value: _ctx.$route.query.ave_speed_from,\n onChange: handleFilterChange,\n step: \"0.1\",\n type: \"number\"\n }, null, 40, _hoisted_27),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('workouts.TO')), 1),\n _createElementVNode(\"input\", {\n min: \"0\",\n name: \"ave_speed_to\",\n value: _ctx.$route.query.ave_speed_to,\n onChange: handleFilterChange,\n step: \"0.1\",\n type: \"number\"\n }, null, 40, _hoisted_28)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_29, [\n _createElementVNode(\"div\", _hoisted_30, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.MAX_SPEED')) + \" (\" + _toDisplayString(_unref(toUnit)) + \"/h): \", 1),\n _createElementVNode(\"div\", _hoisted_31, [\n _createElementVNode(\"input\", {\n min: \"0\",\n name: \"max_speed_from\",\n value: _ctx.$route.query.max_speed_from,\n onChange: handleFilterChange,\n step: \"0.1\",\n type: \"number\"\n }, null, 40, _hoisted_32),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('workouts.TO')), 1),\n _createElementVNode(\"input\", {\n min: \"0\",\n name: \"max_speed_to\",\n value: _ctx.$route.query.max_speed_to,\n onChange: handleFilterChange,\n step: \"0.1\",\n type: \"number\"\n }, null, 40, _hoisted_33)\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_34, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n onClick: onFilter\n }, _toDisplayString(_ctx.$t('buttons.FILTER')), 1),\n _createElementVNode(\"button\", {\n class: \"confirm\",\n onClick: onClearFilter\n }, _toDisplayString(_ctx.$t('buttons.CLEAR_FILTER')), 1)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./WorkoutsFilters.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutsFilters.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutsFilters.vue?vue&type=style&index=0&id=6c38593a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6c38593a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, normalizeClass as _normalizeClass, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, createBlock as _createBlock, withCtx as _withCtx, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-19504874\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"workouts-list\" }\nconst _hoisted_2 = { class: \"total\" }\nconst _hoisted_3 = { class: \"total-label\" }\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = {\n key: 0,\n class: \"workouts-table responsive-table\"\n}\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", { class: \"sport-col\" }, null, -1))\nconst _hoisted_7 = { class: \"sport-col\" }\nconst _hoisted_8 = { class: \"cell-heading\" }\nconst _hoisted_9 = [\"onMouseover\"]\nconst _hoisted_10 = { class: \"cell-heading\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"fa fa-map-o\",\n \"aria-hidden\": \"true\"\n}\nconst _hoisted_12 = { class: \"title\" }\nconst _hoisted_13 = { class: \"workout-date\" }\nconst _hoisted_14 = { class: \"cell-heading\" }\nconst _hoisted_15 = { class: \"text-right\" }\nconst _hoisted_16 = { class: \"cell-heading\" }\nconst _hoisted_17 = { class: \"text-right\" }\nconst _hoisted_18 = { class: \"cell-heading\" }\nconst _hoisted_19 = { class: \"text-right\" }\nconst _hoisted_20 = { class: \"cell-heading\" }\nconst _hoisted_21 = { class: \"text-right\" }\nconst _hoisted_22 = { class: \"cell-heading\" }\nconst _hoisted_23 = { class: \"text-right\" }\nconst _hoisted_24 = { class: \"cell-heading\" }\nconst _hoisted_25 = { class: \"text-right\" }\nconst _hoisted_26 = { class: \"cell-heading\" }\nconst _hoisted_27 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\n\nimport {\n ComputedRef,\n Ref,\n computed,\n ref,\n toRefs,\n watch,\n capitalize,\n onBeforeMount,\n } from 'vue'\n import { LocationQuery, useRoute, useRouter } from 'vue-router'\n\n import FilterSelects from '@/components/Common/FilterSelects.vue'\n import Pagination from '@/components/Common/Pagination.vue'\n import StaticMap from '@/components/Common/StaticMap.vue'\n import NoWorkouts from '@/components/Workouts/NoWorkouts.vue'\n import { ROOT_STORE, WORKOUTS_STORE } from '@/store/constants'\n import { IPagination } from '@/types/api'\n import { ITranslatedSport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { IWorkout, TWorkoutsPayload } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { getQuery, sortList, workoutsPayloadKeys } from '@/utils/api'\n import { formatDate } from '@/utils/dates'\n import { getSportColor, getSportLabel } from '@/utils/sports'\n import { convertDistance } from '@/utils/units'\n import { defaultOrder } from '@/utils/workouts'\n\n interface Props {\n user: IAuthUserProfile\n sports: ITranslatedSport[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutsList',\n props: {\n user: null,\n sports: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n sports: ITranslatedSport[]\n };\n\n \n\n const store = useStore()\n const route = useRoute()\n const router = useRouter()\n\n const { user, sports } = toRefs(props)\n const orderByList: string[] = [\n 'ave_speed',\n 'distance',\n 'duration',\n 'workout_date',\n ]\n const workouts: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.USER_WORKOUTS]\n )\n const pagination: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.WORKOUTS_PAGINATION]\n )\n const currentLanguage: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n let query: TWorkoutsPayload = getWorkoutsQuery(route.query)\n const hoverWorkoutId: Ref = ref(null)\n\n onBeforeMount(() => {\n loadWorkouts(query)\n })\n\n function loadWorkouts(payload: TWorkoutsPayload) {\n store.dispatch(\n WORKOUTS_STORE.ACTIONS.GET_USER_WORKOUTS,\n user.value.imperial_units ? getConvertedPayload(payload) : payload\n )\n }\n function reloadWorkouts(queryParam: string, queryValue: string) {\n const newQuery: LocationQuery = Object.assign({}, route.query)\n newQuery[queryParam] = queryValue\n if (queryParam === 'per_page') {\n newQuery['page'] = '1'\n }\n query = getWorkoutsQuery(newQuery)\n router.push({ path: '/workouts', query })\n }\n\n function getWorkoutsQuery(newQuery: LocationQuery): TWorkoutsPayload {\n const workoutQuery = getQuery(\n newQuery,\n orderByList,\n defaultOrder.order_by,\n {\n defaultSort: defaultOrder.order,\n }\n )\n Object.keys(newQuery)\n .filter((k) => workoutsPayloadKeys.includes(k))\n .map((k) => {\n if (typeof newQuery[k] === 'string') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n workoutQuery[k] = newQuery[k]\n }\n })\n return workoutQuery\n }\n\n function getConvertedPayload(payload: TWorkoutsPayload): TWorkoutsPayload {\n const convertedPayload: TWorkoutsPayload = {\n ...payload,\n }\n Object.entries(convertedPayload).map((entry) => {\n if (entry[0].match('speed|distance') && entry[1]) {\n convertedPayload[entry[0]] = convertDistance(+entry[1], 'mi', 'km')\n }\n })\n return convertedPayload\n }\n\n function onHover(workoutId: string | null) {\n hoverWorkoutId.value = workoutId\n }\n\n watch(\n () => route.query,\n async (newQuery) => {\n query = getWorkoutsQuery(newQuery)\n loadWorkouts(query)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Distance = _resolveComponent(\"Distance\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"box\", { 'empty-table': _unref(workouts).length === 0 }])\n }, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(_ctx.$t('common.TOTAL').toLowerCase()) + \": \", 1),\n (_unref(pagination).total !== null)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, _toDisplayString(_unref(pagination).total) + \" \" + _toDisplayString(_ctx.$t('workouts.WORKOUT', _unref(pagination).total)), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(FilterSelects, {\n sort: _unref(sortList),\n order_by: orderByList,\n query: _unref(query),\n message: \"workouts\",\n onUpdateSelect: reloadWorkouts\n }, null, 8, [\"sort\", \"query\"]),\n (_unref(workouts).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createVNode(Pagination, {\n class: \"top-pagination\",\n pagination: _unref(pagination),\n path: \"/workouts\",\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"]),\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", {\n class: _normalizeClass({ smaller: 'de' === _unref(currentLanguage) })\n }, [\n _createElementVNode(\"tr\", null, [\n _hoisted_6,\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 1))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.DATE'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.DISTANCE'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.DURATION'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.AVE_SPEED'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.MAX_SPEED'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.ASCENT'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.DESCENT'))), 1)\n ])\n ], 2),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts), (workout) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: workout.id\n }, [\n _createElementVNode(\"td\", _hoisted_7, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t('workouts.SPORT', 1)), 1),\n (_unref(sports).length > 0)\n ? (_openBlock(), _createBlock(_component_SportImage, {\n key: 0,\n title: \n _unref(sports).find((s) => s.id === workout.sport_id)\n .translatedLabel\n ,\n \"sport-label\": _unref(getSportLabel)(workout, _unref(sports)),\n color: _unref(getSportColor)(workout, _unref(sports))\n }, null, 8, [\"title\", \"sport-label\", \"color\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"td\", {\n class: \"workout-title\",\n onMouseover: ($event: any) => (onHover(workout.id)),\n onMouseleave: _cache[0] || (_cache[0] = ($event: any) => (onHover(null)))\n }, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 1))), 1),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: { name: 'Workout', params: { workoutId: workout.id } }\n }, {\n default: _withCtx(() => [\n (workout.with_gpx)\n ? (_openBlock(), _createElementBlock(\"i\", _hoisted_11))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(workout.title), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]),\n (workout.with_gpx && hoverWorkoutId.value === workout.id)\n ? (_openBlock(), _createBlock(StaticMap, {\n key: 0,\n workout: workout,\n \"display-hover\": true\n }, null, 8, [\"workout\"]))\n : _createCommentVNode(\"\", true)\n ], 40, _hoisted_9),\n _createElementVNode(\"td\", _hoisted_13, [\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.$t('workouts.DATE')), 1),\n _createTextVNode(\" \" + _toDisplayString(_unref(formatDate)(\n workout.workout_date,\n _unref(user).timezone,\n _unref(user).date_format\n )), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_15, [\n _createElementVNode(\"span\", _hoisted_16, _toDisplayString(_ctx.$t('workouts.DISTANCE')), 1),\n _createVNode(_component_Distance, {\n distance: workout.distance,\n unitFrom: \"km\",\n useImperialUnits: _unref(user).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"])\n ]),\n _createElementVNode(\"td\", _hoisted_17, [\n _createElementVNode(\"span\", _hoisted_18, _toDisplayString(_ctx.$t('workouts.DURATION')), 1),\n _createTextVNode(\" \" + _toDisplayString(workout.moving), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_19, [\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t('workouts.AVE_SPEED')), 1),\n _createVNode(_component_Distance, {\n distance: workout.ave_speed,\n unitFrom: \"km\",\n speed: true,\n useImperialUnits: _unref(user).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"])\n ]),\n _createElementVNode(\"td\", _hoisted_21, [\n _createElementVNode(\"span\", _hoisted_22, _toDisplayString(_ctx.$t('workouts.MAX_SPEED')), 1),\n _createVNode(_component_Distance, {\n distance: workout.max_speed,\n unitFrom: \"km\",\n speed: true,\n useImperialUnits: _unref(user).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"])\n ]),\n _createElementVNode(\"td\", _hoisted_23, [\n _createElementVNode(\"span\", _hoisted_24, _toDisplayString(_ctx.$t('workouts.ASCENT')), 1),\n (workout.ascent !== null)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: workout.ascent,\n unitFrom: \"m\",\n useImperialUnits: _unref(user).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"td\", _hoisted_25, [\n _createElementVNode(\"span\", _hoisted_26, _toDisplayString(_ctx.$t('workouts.DESCENT')), 1),\n (workout.descent !== null)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: workout.descent,\n unitFrom: \"m\",\n useImperialUnits: _unref(user).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n }), 128))\n ])\n ]),\n _createVNode(Pagination, {\n pagination: _unref(pagination),\n path: \"/workouts\",\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"])\n ]))\n : _createCommentVNode(\"\", true)\n ], 2),\n (_unref(workouts).length === 0)\n ? (_openBlock(), _createBlock(NoWorkouts, { key: 0 }))\n : _createCommentVNode(\"\", true),\n _hoisted_27\n ]))\n}\n}\n\n})","import script from \"./WorkoutsList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutsList.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutsList.vue?vue&type=style&index=0&id=19504874&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-19504874\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-57ec0168\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n id: \"workouts\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container workouts-container\" }\nconst _hoisted_3 = { class: \"display-filters\" }\nconst _hoisted_4 = { class: \"list-container\" }\n\nimport { ComputedRef, computed, ref } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import WorkoutsFilters from '@/components/Workouts/WorkoutsFilters.vue'\n import WorkoutsList from '@/components/Workouts/WorkoutsList.vue'\n import { AUTH_USER_STORE, SPORTS_STORE } from '@/store/constants'\n import { ISport, ITranslatedSport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { translateSports } from '@/utils/sports'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutsView',\n setup(__props) {\n\n const { t } = useI18n()\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const translatedSports: ComputedRef = computed(() =>\n translateSports(sports.value, t)\n )\n const hiddenFilters = ref(true)\n\n function toggleFilters() {\n hiddenFilters.value = !hiddenFilters.value\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(authUser).username)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"filters-container\", { hidden: hiddenFilters.value }])\n }, [\n _createVNode(WorkoutsFilters, {\n sports: _unref(translatedSports),\n authUser: _unref(authUser),\n onFilter: toggleFilters\n }, null, 8, [\"sports\", \"authUser\"])\n ], 2),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", { onClick: toggleFilters }, [\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa-caret-${hiddenFilters.value ? 'down' : 'up'}`),\n \"aria-hidden\": \"true\"\n }, null, 2),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t(`workouts.${hiddenFilters.value ? 'DISPLAY' : 'HIDE'}_FILTERS`)), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(WorkoutsList, {\n user: _unref(authUser),\n sports: _unref(translatedSports)\n }, null, 8, [\"user\", \"sports\"])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./WorkoutsView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutsView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutsView.vue?vue&type=style&index=0&id=57ec0168&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-57ec0168\"]])\n\nexport default __exports__","let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nmodule.exports = { nanoid, customAlphabet }\n"],"names":["isMergeableObject","value","isNonNullObject","isSpecial","stringValue","Object","prototype","toString","call","isReactElement","canUseSymbol","Symbol","for","REACT_ELEMENT_TYPE","$$typeof","emptyTarget","val","Array","isArray","cloneUnlessOtherwiseSpecified","options","clone","deepmerge","defaultArrayMerge","target","source","concat","map","element","getMergeFunction","key","customMerge","getEnumerableOwnPropertySymbols","getOwnPropertySymbols","filter","symbol","propertyIsEnumerable","getKeys","keys","propertyIsOnObject","object","property","_","propertyIsUnsafe","hasOwnProperty","mergeObject","destination","forEach","arrayMerge","sourceIsArray","targetIsArray","sourceAndTargetTypesMatch","all","array","Error","reduce","prev","next","deepmerge_1","module","exports","ElementType","isTag","elem","type","Tag","Script","Style","defineProperty","Doctype","CDATA","Comment","Directive","Text","Root","string","TypeError","replace","__createBinding","this","create","o","m","k","k2","undefined","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","get","__setModuleDefault","v","__importStar","mod","result","Parser","Tokenizer_js_1","decode_js_1","formTags","Set","pTag","tableSectionTags","ddtTags","rtpTags","openImpliesClose","Map","voidElements","foreignContextElements","htmlIntegrationElements","reNameEnd","cbs","_a","_b","_c","_d","_e","startIndex","endIndex","openTagStart","tagname","attribname","attribvalue","attribs","stack","foreignContext","buffers","bufferOffset","writeIndex","ended","lowerCaseTagNames","lowerCaseTags","xmlMode","lowerCaseAttributeNames","tokenizer","Tokenizer","default","onparserinit","ontext","start","data","getSlice","ontextentity","cp","idx","getSectionStart","fromCodePoint","isVoidElement","name","has","onopentagname","toLowerCase","emitOpenTag","impliesClose","length","el","pop","onclosetag","push","onopentag","endOpenTag","isImplied","onopentagend","_f","pos","lastIndexOf","count","closeCurrentTag","onselfclosingtag","recognizeSelfClosing","isOpenImplied","onattribname","onattribdata","onattribentity","onattribend","quote","onattribute","QuoteType","Double","Single","NoValue","getInstructionName","search","substr","ondeclaration","onprocessinginstruction","oncomment","offset","oncommentend","oncdata","_g","_h","_j","_k","recognizeCDATA","oncdatastart","oncdataend","onend","i","reset","onreset","parseComplete","end","shiftBuffer","str","slice","shift","write","chunk","onerror","running","pause","resume","parseChunk","done","CharCodes","State","isWhitespace","c","Space","NewLine","Tab","FormFeed","CarriageReturn","isEndOfTagSection","Slash","Gt","isNumber","Zero","Nine","isASCIIAlpha","LowerA","LowerZ","UpperA","UpperZ","isHexDigit","UpperF","LowerF","Sequences","Cdata","Uint8Array","CdataEnd","CommentEnd","ScriptEnd","StyleEnd","TitleEnd","decodeEntities","state","buffer","sectionStart","index","baseState","sequenceIndex","trieIndex","trieCurrent","entityResult","entityExcess","entityTrie","xmlDecodeTree","htmlDecodeTree","currentSequence","parse","finish","getIndex","stateText","Lt","fastForwardTo","BeforeTagName","Amp","BeforeEntity","stateSpecialStartSequence","isEnd","isMatch","InTagName","stateInTagName","stateInSpecialTag","endOfText","actualIndex","stateInClosingTagName","Number","stateCDATASequence","InCommentLike","InDeclaration","stateInDeclaration","charCodeAt","stateInCommentLike","isTagStartChar","startSpecial","sequence","SpecialStartSequence","stateBeforeTagName","ExclamationMark","BeforeDeclaration","Questionmark","InProcessingInstruction","lower","BeforeSpecialS","BeforeClosingTagName","BeforeAttributeName","stateBeforeAttributeName","stateBeforeClosingTagName","InClosingTagName","InSpecialComment","AfterClosingTagName","stateAfterClosingTagName","InSpecialTag","InSelfClosingTag","InAttributeName","stateInSelfClosingTag","stateInAttributeName","Eq","AfterAttributeName","stateAfterAttributeName","BeforeAttributeValue","stateBeforeAttributeValue","DoubleQuote","InAttributeValueDq","SingleQuote","InAttributeValueSq","InAttributeValueNq","stateInAttributeValueNoQuotes","handleInAttributeValue","stateInAttributeValueDoubleQuotes","stateInAttributeValueSingleQuotes","Unquoted","stateBeforeDeclaration","OpeningSquareBracket","CDATASequence","Dash","BeforeComment","stateInProcessingInstruction","stateBeforeComment","stateInSpecialComment","stateBeforeSpecialS","stateBeforeEntity","Num","BeforeNumericEntity","InNamedEntity","stateInNamedEntity","determineBranch","emitNamedEntity","masked","BinTrieFlags","VALUE_LENGTH","valueLength","allowLegacyEntity","Semi","entityStart","emitPartial","emitCodePoint","stateBeforeNumericEntity","LowerX","InHexEntity","InNumericEntity","stateInNumericEntity","emitNumericEntity","strict","numberStart","replaceCodePoint","stateInHexEntity","cleanup","shouldContinue","handleTrailingData","__importDefault","DefaultHandler","DomUtils","parseFeed","getFeed","createDomStream","parseDOM","parseDocument","DomHandler","Parser_js_1","domhandler_1","handler","root","children","cb","elementCb","domutils_1","feed","attributeNames","elementNames","__assign","assign","t","s","n","arguments","p","apply","render","entities_1","foreignNames_js_1","unencodedElements","replaceQuotes","formatAttributes","attributes","opts","encode","encodeEntities","encodeXML","escapeAttribute","emptyAttrs","join","singleTag","node","nodes","output","renderNode","renderDirective","renderComment","renderCdata","renderTag","renderText","foreignModeIntegrationPoints","foreignElements","parent","tag","selfClosingTags","escapeText","__exportStar","domelementtype_1","node_js_1","defaultOpts","withStartIndices","withEndIndices","callback","elementCB","dom","Document","tagStack","lastNode","parser","handleCallback","error","Element","addNode","text","ProcessingInstruction","previousSibling","__extends","extendStatics","d","b","setPrototypeOf","__proto__","String","__","constructor","cloneNode","hasChildren","isDocument","isDirective","isComment","isText","isCDATA","NodeWithChildren","DataNode","Node","set","recursive","_super","_this","namespace","prefix","cloneChildren","clone_1","child","clone_2","clone_3","instruction","sourceCodeLocation","childs","stringify_js_1","legacy_js_1","doc","feedRoot","getOneElement","isValidFeed","getAtomFeed","getRssFeed","items","getElementsByTagName","item","entry","media","getMediaElements","addConditionally","href","link","description","fetch","pubDate","Date","updated","id","MEDIA_KEYS_STRING","MEDIA_KEYS_INT","where","medium","isDefault","_i","MEDIA_KEYS_STRING_1","attrib","MEDIA_KEYS_INT_1","parseInt","expression","tagName","recurse","textContent","trim","obj","prop","uniqueSort","compareDocumentPosition","DocumentPosition","removeSubsets","splice","ancestor","includes","nodeA","nodeB","aParents","bParents","current","unshift","maxIdx","Math","min","DISCONNECTED","sharedParent","siblings","aSibling","bSibling","indexOf","FOLLOWING","CONTAINED_BY","PRECEDING","CONTAINS","arr","sort","a","relative","getElementsByTagType","getElementById","getElements","testElement","querying_js_1","Checks","tag_name","tag_type","tag_contains","getAttribCheck","combineFuncs","compileTest","funcs","test","limit","Infinity","findOne","removeElement","replaceElement","replacement","appendChild","sibling","append","currNext","prependChild","prepend","findAll","existsOne","findOneChild","find","nodes_1","checked","some","innerText","getText","getInnerHTML","getOuterHTML","dom_serializer_1","prevElementSibling","nextElementSibling","getName","hasAttrib","getAttributeValue","getSiblings","getParent","getChildren","decodeXML","decodeHTMLStrict","decodeHTML","decodeCodePoint","decode_data_html_js_1","decode_data_xml_js_1","decode_codepoint_js_1","decode_codepoint_js_2","getDecoder","decodeTree","ret","lastIdx","strIdx","NUM","resultIdx","excess","treeIdx","SEMI","fromCharCode","base","To_LOWER_BIT","LOWER_X","ZERO","NINE","LOWER_A","LOWER_F","entity","substring","parsed","nodeIdx","char","branchCount","BRANCH_LENGTH","jumpOffset","JUMP_TABLE","lo","hi","mid","midVal","htmlDecoder","xmlDecoder","decodeMap","codePoint","encodeNonAsciiHTML","encodeHTML","encode_html_js_1","escape_js_1","htmlReplacer","encodeHTMLTrieRe","xmlReplacer","regExp","match","exec","nextChar","lastIndex","getCodePoint","escapeUTF8","escape","xmlCodeMap","getEscaper","regex","codePointAt","Uint16Array","split","restoreDiff","decodeXMLStrict","decodeHTML5Strict","decodeHTML4Strict","decodeHTML5","decodeHTML4","encodeHTML5","encodeHTML4","decodeStrict","decode","EncodingMode","DecodingMode","EntityLevel","encode_js_1","XML","level","HTML","mode","Strict","Legacy","UTF8","Attribute","ASCII","escape_js_2","encode_js_2","decode_js_2","isObject","isPlainObject","ctor","prot","factory","input","isSpace","collectCharacters","regEx","chars","url","descriptors","currentDescriptor","inputLength","regexLeadingSpaces","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexNonNegativeInteger","regexFloatingPoint","candidates","parseDescriptors","tokenize","charAt","w","h","lastChar","intVal","floatVal","pError","candidate","parseFloat","console","log","x","isColorSupported","bold","dim","italic","underline","inverse","hidden","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","createColors","Container","AtRule","defaults","super","proxyOf","registerAtRule","Rule","isClean","my","Declaration","cleanSource","markDirtyUp","each","iterator","getIterator","indexes","walk","e","addToError","walkDecls","RegExp","walkRules","selector","walkAtRules","walkComments","normalize","last","markDirty","reverse","first","cleanRaws","keepBetween","insertBefore","exist","add","existIndex","insertAfter","removeChild","removeAll","replaceValues","pattern","decl","props","fast","every","condition","sample","processed","rebuild","raws","before","getProxyProcessor","startsWith","args","toProxy","other","lastEach","registerParse","dependant","registerRule","registerRoot","pico","terminalHighlight","CssSyntaxError","message","line","column","file","plugin","reason","endLine","endColumn","setMessage","captureStackTrace","showSourceCode","color","css","mark","aside","lines","max","maxWidth","number","gutter","spacing","code","variable","LazyResult","Processor","toResult","lazy","stringify","registerLazyResult","registerProcessor","PreviousMap","Input","fromJSON","json","inputs","ownInputs","inputHydrated","inputId","SourceMapConsumer","SourceMapGenerator","fileURLToPath","pathToFileURL","resolve","isAbsolute","nanoid","fromOffsetCache","sourceMapAvailable","Boolean","pathAvailable","hasBOM","from","consumer","mapResolve","fromOffset","lastLine","lineToIndex","prevIndex","l","col","origin","to","fromUrl","originalPositionFor","URL","sourceRoot","mapFile","protocol","sourceContentFor","toJSON","consumerCache","registerInput","MapGenerator","Result","TYPE_TO_CLASS_NAME","document","atrule","rule","comment","PLUGIN_PROPS","postcssPlugin","prepare","Once","DeclarationExit","RuleExit","AtRuleExit","CommentExit","RootExit","DocumentExit","OnceExit","NOT_VISITORS","CHILDREN","isPromise","then","getEvents","toStack","events","eventIndex","visitors","visitorIndex","cleanMarks","postcss","processor","stringified","inline","syntax","helpers","plugins","toStringTag","content","sync","messages","warnings","onFulfilled","onRejected","async","catch","finally","onFinally","Promise","reject","processing","runAsync","getAsyncError","promise","runOnRoot","prepareVisitors","hasListener","walkSync","listeners","subRoot","visitSync","stringifier","generate","event","visitor","lastPlugin","handleError","roots","postcssVersion","err","visitTick","version","visit","registerPostcss","list","separators","func","inQuote","prevQuote","letter","space","spaces","comma","dirname","sep","cssString","mapOpts","usesFileUrls","absolute","isMap","previous","previousMaps","isInline","annotation","isSourcesContent","sourcesContent","withContent","clearAnnotation","setSourcesContent","already","toFileUrl","toUrl","path","setSourceContent","applyPrevMaps","applySourceMap","isAnnotation","toBase64","Buffer","window","btoa","unescape","encodeURIComponent","addAnnotation","outputFile","eol","generateMap","generateString","fromSourceMap","addMapping","generated","original","encodeURI","sourcePath","noSource","mapping","childless","semicolon","NoWorkResult","_processor","_css","_opts","_map","self","generatedCSS","generatedMap","_root","Stringifier","cloned","j","rangeBy","warn","remove","overrides","cloneBefore","cloneAfter","replaceWith","bookmark","foundSelf","after","raw","defaultType","between","fixed","emitInputs","inputsNextIndex","positionInside","positionBy","word","proxyCache","Proxy","postcssNode","SAFE_COMMENT_NEIGHBOR","empty","findLastWithPosition","tokens","token","customProperty","createTokenizer","endOfFile","nextToken","freeSemicolon","emptyRule","endFile","init","getPosition","left","right","colon","bracket","brackets","back","unclosedBracket","unknownWord","spacesAndCommentsFromEnd","firstSpaces","precheckMissedSemicolon","important","stringFrom","spacesFromEnd","cache","hasWord","checkMissedSemicolon","unnamedAtrule","open","params","afterName","spacesAndCommentsFromStart","unexpectedClose","unclosedBlock","ownSemicolon","clean","lastTokenType","entries","doubleColon","founded","Warning","initializer","warningPrinted","creator","LANG","transformer","process","processOpts","pluginOpts","atRule","existsSync","readFileSync","fromBase64","atob","loadAnnotation","startWith","loadMap","getAnnotationURL","sourceMapString","comments","decodeInline","baseCharsetUri","baseUri","charsetUri","uri","decodeURIComponent","lastMatch","encoding","loadFile","JSON","prevPath","mappings","_mappings","sections","use","normalized","warning","ignore","selectors","values","DEFAULT_RAW","indent","beforeDecl","beforeRule","beforeOpen","beforeClose","beforeComment","emptyBody","commentLeft","commentRight","capitalize","toUpperCase","builder","body","rawValue","block","own","detect","rawCache","beforeAfter","method","rawSemicolon","rawEmptyBody","rawIndent","parts","rawBeforeComment","rawBeforeDecl","rawBeforeRule","rawBeforeClose","rawBeforeOpen","rawColon","buf","depth","step","SINGLE_QUOTE","DOUBLE_QUOTE","BACKSLASH","SLASH","NEWLINE","SPACE","FEED","TAB","CR","OPEN_SQUARE","CLOSE_SQUARE","OPEN_PARENTHESES","CLOSE_PARENTHESES","OPEN_CURLY","CLOSE_CURLY","SEMICOLON","ASTERISK","COLON","AT","RE_AT_END","RE_WORD_END","RE_BAD_BRACKET","RE_HEX_ESCAPE","escaped","escapePos","currentToken","valueOf","ignoreErrors","returned","position","unclosed","what","ignoreUnclosed","controlChar","printed","range","opt","htmlparser","escapeStringRegexp","parseSrcset","postcssParse","mediaTags","vulnerableTags","isEmptyObject","stringifySrcset","parsedSrcset","part","sanitizeHtml","VALID_HTML_ATTRIBUTE_NAME","html","_recursing","tempResult","Frame","that","tagPosition","mediaChildren","updateParentNodeText","parentFrame","updateParentNodeMediaChildren","htmlParserDefaults","allowedTags","allowVulnerableTags","nonTextTagsArray","nonTextTags","allowedAttributesMap","allowedAttributesGlobMap","allowedAttributes","globRegex","allowedClassesMap","allowedClassesGlobMap","allowedClassesRegexMap","allowedClasses","classes","transformTagsMap","transformTagsAll","skipMap","transformMap","skipText","skipTextDepth","transformTags","transform","transFun","simpleTransform","addedText","initializeState","enforceHtmlBoundary","frame","skip","hasText","transformedTag","disallowedTagsMode","nestingLimit","allowedScriptHostnames","allowedScriptDomains","passedAllowedAttributesMapCheck","newValue","multiple","splitStrArray","allowedSchemesAppliedToAttributes","naughtyHref","allowed","parseUrl","allowedHostname","hostname","allowedDomain","domain","endsWith","isRelativeUrl","allowIframeRelativeUrls","allowedIframeHostnames","allowedIframeDomains","evil","allowedSpecificClasses","allowedWildcardClasses","allowedSpecificClassesGlob","allowedSpecificClassesRegex","allowedWildcardClassesGlob","allowedClassesGlobs","filterClasses","abstractSyntaxTree","filteredAST","filterCss","allowedStyles","stringifyStyleAttributes","escapeHtml","selfClosing","textFilter","lastFrame","exclusiveFilter","firstIndex","matches","allowProtocolRelative","scheme","allowedSchemesByTag","allowedSchemes","astRules","selectedRule","filterDeclarations","extractedAttributes","attrObject","allowedDeclarationsList","attributeObject","matchesRegex","regularExpression","allowedGlobs","clss","glob","img","newTagName","newAttribs","merge","_hoisted_1","_hoisted_2","_hoisted_3","class","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_37","_hoisted_38","_hoisted_39","_hoisted_40","_defineComponent","__name","authUser","sports","isCreation","loading","workout","setup","__props","useI18n","store","useStore","router","useRouter","toRefs","translatedSports","computed","translateSports","sport_id","appConfig","getters","ROOT_STORE","fileSizeLimit","max_single_file_size","getReadableFileSize","gpx_limit_import","zipSizeLimit","max_zip_file_size","errorMessages","workoutForm","reactive","title","notes","workoutDate","workoutTime","workoutDurationHour","workoutDurationMinutes","workoutDurationSeconds","workoutDistance","workoutAscent","workoutDescent","withGpx","ref","with_gpx","gpxFile","formErrors","payloadErrorMessages","updateNotes","updateWithGpx","updateFile","files","formatWorkoutForm","workoutDateTime","formatWorkoutDate","getDateWithTZ","workout_date","timezone","duration","imperial_units","convertDistance","distance","toFixed","workout_time","ascent","descent","isDistanceInvalid","isDurationInvalid","isElevationInvalid","formatPayload","payload","updateWorkout","commit","dispatch","WORKOUTS_STORE","workoutId","errorMessage","onCancel","go","invalidateForm","onMounted","onUnmounted","watch","newWorkout","previousWorkout","_ctx","_cache","_component_CustomTextArea","_resolveComponent","_component_ErrorMessage","_component_Loader","_component_Card","_openBlock","_createElementBlock","_normalizeClass","_unref","_createVNode","_withCtx","_createTextVNode","_toDisplayString","$t","_createElementVNode","errors","onSubmit","_withModifiers","disabled","onClick","_createCommentVNode","_withDirectives","required","onInvalid","$event","_Fragment","_renderList","sport","translatedLabel","_vModelSelect","accept","onInput","_vModelText","errored","placeholder","minlength","maxlength","onUpdateValue","_createBlock","__exports__","SPORTS_STORE","AUTH_USER_STORE","workoutData","WorkoutEdition","route","useRoute","onBeforeMount","newWorkoutId","_withScopeId","_pushScopeId","_popScopeId","workoutObject","emits","emit","downloadGpx","authApi","responseType","response","gpxFileUrl","createObjectURL","Blob","gpxLink","createElement","setAttribute","click","_component_SportImage","_component_router_link","inactive","previousUrl","$router","label","segmentId","nextUrl","recordType","records","record","record_type","directions","convertDegreeToDirection","angle","floor","weather","useImperialUnits","getWindDirectionTitle","windBearing","getWindSpeed","wind","style","_normalizeStyle","weatherStart","weatherEnd","src","icon","alt","getTemperature","temperature","humidity","WeatherWind","displayHARecord","withPause","pauses","_component_Distance","moving","WorkoutRecord","digits","unitFrom","strong","aveSpeed","speed","maxSpeed","maxAlt","minAlt","WorkoutWeather","$","nodeVal","get1","properties","val1","$num","isNaN","num1","getMulti","propertyNames","isElement","nodeType","getLineStyle","lineStyle","stroke","opacity","width","getExtensions","childNodes","abbreviateName","nodeName","parseNumeric","num","coordPair$1","ll","getAttribute","time","coordinates","extendedValues","extractProperties","extensions","getElementsByTagNameNS","parentNode","links","getPoints$1","pointname","pts","times","plural","fill","getRoute","_gpxType","geometry","getTrack","segments","track","extractedLines","segment","multi","coordinateProperties","getPoint","pair","gpxGen","feature","waypoint","point","gpx","features","PI","debounce","fn","timeout","context","clearTimeout","setTimeout","capitalizeFirstLetter","isFunction","propsBinder","methods","leafletElement","setMethodName","newVal","oldVal","remapEvents","contextAttrs","attrName","eventName","toLocaleLowerCase","resetWebpackIcon","Icon","modules","Default","_getIconUrl","mergeOptions","iconRetinaUrl","iconUrl","shadowUrl","provideLeafletWrapper","methodName","wrapped","wrapper","updateLeafletWrapper","leafletMethod","WINDOW_OR_GLOBAL","g","global","GLOBAL_LEAFLET_OPT","props$1","pane","attribution","custom","layerType","visible","setup$1","leafletRef","addLayer","removeLayer","componentOptions","componentMethods","addThisLayer","leafletObject","removeThisLayer","setAttribution","old","attributionControl","$parent","removeAttribution","addAttribution","setName","setLayerType","setVisible","isVisible","bindPopup","bindTooltip","unbindTooltip","tooltip","getTooltip","unbindPopup","popup","getPopup","updateVisibleProp","ready","slots","display","props$2","interactive","bubblingMouseEvents","props$3","weight","lineCap","lineJoin","dashArray","dashOffset","fillColor","fillOpacity","fillRule","className","props$4","latLng","radius","props$6","setup$6","setPosition","render$1","script$2","disableClickPropagation","disableScrollPropagation","useGlobalLeaflet","registerControl","Control","DomEvent","L","LControl","extend","onAdd","$slots","props$8","collapsed","autoZIndex","hideSingleBase","sortLayers","sortFunction","Function","setup$8","controlOptions","layer","addBaseLayer","addOverlay","script$4","registerLayerControl","control","layers","props$b","setup$b","layerOptions","layerMethods","props$d","geojson","setup$d","layerGroupMethods","setGeojson","clearLayers","addData","getGeoJSONData","toGeoJSON","getBounds","script$8","geoJSON","attrs","on","props$e","zIndex","tileSize","noWrap","minZoom","maxZoom","setup$e","props$f","iconSize","iconAnchor","popupAnchor","tooltipAnchor","shadowRetinaUrl","shadowSize","shadowAnchor","bgPos","script$a","canSetParentHtml","setParentHtml","setIcon","onDomEvent","offDomEvent","divIcon","iconObject","createIcon","recreationNeeded","htmlSwapNeeded","elHtml","innerHTML","scheduleCreateIcon","scheduleHtmlSwap","setIconUrl","setIconRetinaUrl","setIconSize","setIconAnchor","setPopupAnchor","setTooltipAnchor","setShadowUrl","setShadowRetinaUrl","setShadowAnchor","setBgPos","setClassName","setHtml","lDivIcon","lIcon","off","observer","MutationObserver","observe","childList","characterData","subtree","script$c","layerGroup","script$d","center","bounds","maxBounds","zoom","paddingBottomRight","paddingTopLeft","padding","worldCopyJump","crs","maxBoundsViscosity","inertia","inertiaDeceleration","inertiaMaxSpeed","easeLinearity","zoomAnimation","zoomAnimationThreshold","fadeAnimation","markerZoomAnimation","noBlockingAnimations","blueprint","layersToAdd","layersInControl","eventHandlers","moveEndHandler","getZoom","getCenter","overlayAddHandler","overlayRemoveHandler","CRS","latLngBounds","beforeMapMount","optionsCrs","EPSG3857","layerControl","_leaflet_id","lControlLayer","lControl","addControl","setZoom","animate","setPaddingBottomRight","setPaddingTopLeft","setPadding","setCrs","prevBounds","fitBounds","setBounds","newBounds","isValid","oldBounds","lastSetBounds","boundsChanged","equals","fitBoundsOptions","setCenter","newCenter","oldCenter","lastSetCenter","lat","lng","panTo","height","props$h","draggable","zIndexOffset","setup$g","setDraggable","dragging","enable","disable","latLngSync","latlng","setLatLng","oldLatLng","getLatLng","script$e","getElement","newIcon","marker","props$i","latLngs","smoothFactor","noClip","props$j","props$k","props$n","tms","subdomains","detectRetina","setup$m","gridLayerOptions","gridLayerMethods","script$j","tileLayer","markerCoordinates","isStart","latitude","LMarker","longitude","LIcon","workoutMap","geoJson","getGeoJson","startMarkerCoordinates","chartData","endMarkerCoordinates","isFullscreen","gpxContent","jsonData","DOMParser","parseFromString","resetZoom","toggleFullscreen","_component_VFullscreen","modelValue","LMap","ref_key","onReady","LControlLayers","LTileLayer","getApiUrl","map_attribution","LGeoJson","LLayerGroup","CustomMarker","displaySegment","displayModal","getWorkoutObject","getWorkoutObjectUrl","previous_workout","next_workout","urls","date_format","ave_speed","max_alt","max_speed","min_alt","segment_id","weather_end","weather_start","updateDisplayModal","deleteWorkout","newSegmentId","_component_Modal","onConfirmAction","onCancelAction","WorkoutCardTitle","onDisplayModal","WorkoutMap","WorkoutData","display_ascent","getOrCreateLegendList","legendContainer","listContainer","querySelector","htmlLegendPlugin","afterUpdate","chart","ul","containerID","firstChild","legendItems","legend","labels","generateLabels","li","onclick","datasetIndex","setDatasetVisibility","isDatasetVisible","update","checkBox","createTextNode","boxSpan","background","fillStyle","borderColor","strokeStyle","displayDistance","beginElevationAtZero","datasets","getDatasets","fromKmUnit","getUnitTo","fromMUnit","distance_labels","duration_labels","elevation","responsive","maintainAspectRatio","animation","layout","top","scales","grid","drawOnChartArea","ticks","formatDuration","ySpeed","yElevation","beginAtZero","elements","pointStyle","pointRadius","datalabels","interaction","intersect","callbacks","dataset","formattedValue","yAxisID","tooltipItems","emitCoordinates","dataIndex","htmlLegend","lineChartProps","useLineChart","updateDisplayDistance","toISOString","emitEmptyCoordinates","units","defaultTarget","LineChart","_mergeProps","onMouseleave","tlds","utlds","numeric","ascii","alpha","asciinumeric","alphanumeric","emoji","slashscheme","whitespace","registerGroup","groups","addToGroups","flags","group","flagsForToken","jr","jd","accepts","nextState","_nextState","exactOnly","ta","tt","tr","regexp","ts","len","templateState","allFlags","WORD","UWORD","LOCALHOST","TLD","UTLD","SCHEME","SLASH_SCHEME","WS","NL$1","OPENBRACE","OPENBRACKET","OPENANGLEBRACKET","OPENPAREN","CLOSEBRACE","CLOSEBRACKET","CLOSEANGLEBRACKET","CLOSEPAREN","AMPERSAND","APOSTROPHE","BACKTICK","CARET","COMMA","DOLLAR","DOT","EQUALS","EXCLAMATION","HYPHEN","PERCENT","PIPE","PLUS","POUND","QUERY","QUOTE","TILDE","UNDERSCORE","EMOJI$1","SYM","tk","freeze","NL","EMOJI","ASCII_LETTER","LETTER","DIGIT","EMOJI_VARIATION","EMOJI_JOINER","init$2","customSchemes","_tr","_tr2","_tr3","_tr4","_tt","_tr5","Start","Word","UWord","Ws","Emoji","EmojiJoiner","wordjr","uwordjr","fastts","tld","utld","_i2","_ref","_ref2","sch","optionalSlashSlash","run$1","iterable","stringToArray","charCount","cursor","charCursor","tokenLength","latestAccepting","sinceAccepts","charsSinceAccepts","second","defaultt","_inheritsLoose","subClass","superClass","_setPrototypeOf","defaultProtocol","format","noop","formatHref","nl2br","rel","validate","truncate","ignoreTags","Options","defaultRender","ignoredTags","uppercaseIgnoredTags","ir","check","operator","isCallable","option","getObj","renderFn","MultiToken","createTokenClass","Token","_MultiToken","isLink","toHref","toFormattedString","formatted","toFormattedHref","toObject","toFormattedObject","eventListeners","Email","Nl","Url","hasProtocol","makeState","arg","init$1","qsAccepting","qsNonAccepting","localpartAccepting","Localpart","Domain","Scheme","SlashScheme","LocalpartAt","LocalpartDot","EmailDomain","EmailDomainDot","Email$1","EmailDomainHyphen","EmailColon","DomainHyphen","DomainDot","DomainDotTld","DomainDotTldColon","DomainDotTldColonPort","Url$1","UrlNonaccept","UriPrefix","SlashSchemeColon","SlashSchemeColonSlash","UrlOpenbrace","UrlOpenbracket","UrlOpenanglebracket","UrlOpenparen","UrlOpenbraceQ","UrlOpenbracketQ","UrlOpenanglebracketQ","UrlOpenparenQ","UrlOpenbraceSyms","UrlOpenbracketSyms","UrlOpenanglebracketSyms","UrlOpenparenSyms","run","multis","textTokens","secondState","multiLength","initMultiToken","Multi","subtokens","startIdx","endIdx","INIT","scanner","tokenQueue","pluginQueue","initialized","HTML5NamedCharRefs","amp","gt","lt","nbsp","quot","HEXCHARCODE","CHARCODE","NAMED","EntityParser","named","WSP","ALPHA","CRLF","isAlpha","preprocessInput","EventedTokenizer","delegate","entityParser","tagNameBuffer","states","beforeData","peek","isIgnoredEndTag","consume","transitionTo","beginData","markTagStart","appendToData","consumeCharRef","finishData","tagOpen","beginStartTag","appendToTagName","markupDeclarationOpen","beginComment","maybeDoctype","beginDoctype","doctype","beforeDoctypeName","appendToDoctypeName","doctypeName","endDoctype","afterDoctypeName","nextSixChars","isPublic","isSystem","afterDoctypePublicKeyword","doctypePublicIdentifierDoubleQuoted","appendToDoctypePublicIdentifier","doctypePublicIdentifierSingleQuoted","afterDoctypePublicIdentifier","betweenDoctypePublicAndSystemIdentifiers","doctypeSystemIdentifierDoubleQuoted","appendToDoctypeSystemIdentifier","doctypeSystemIdentifierSingleQuoted","afterDoctypeSystemIdentifier","commentStart","finishComment","appendToCommentData","commentStartDash","commentEndDash","commentEnd","finishTag","endTagName","beforeAttributeName","reportSyntaxError","beginAttribute","appendToAttributeName","attributeName","beginAttributeValue","finishAttributeValue","afterAttributeName","beforeAttributeValue","appendToAttributeValue","attributeValueDoubleQuoted","attributeValueSingleQuoted","attributeValueUnquoted","afterAttributeValueQuoted","selfClosingStartTag","markTagAsSelfClosing","endTagOpen","beginEndTag","tokenizePart","tokenizeEOF","flushData","startLine","startColumn","_currentAttribute","currentAttribute","addLocInfo","loc","publicIdentifier","systemIdentifier","isQuoted","syntaxError","LinkifyResult","StartTag","EndTag","Chars","linkifyHtml","linkifiedTokens","linkified","isIgnored","preskipLen","skipTagTokens","linkifedChars","linkifyChars","_token","rendered","attributeArrayToStrings","skippedTokens","stackCount","attributesToString","escapeAttr","attr","attrStrs","linkifyAndClean","workout_id","updateCoordinates","WorkoutDetail","WorkoutChart","onGetCoordinates","WorkoutSegments","WorkoutNotes","NotFound","toUnit","query","handleFilterChange","onFilter","onClearFilter","newQuery","$route","onChange","sports_list","distance_from","distance_to","duration_from","duration_to","ave_speed_from","ave_speed_to","max_speed_from","max_speed_to","user","orderByList","workouts","pagination","currentLanguage","getWorkoutsQuery","hoverWorkoutId","loadWorkouts","getConvertedPayload","reloadWorkouts","queryParam","queryValue","workoutQuery","getQuery","defaultOrder","defaultSort","workoutsPayloadKeys","convertedPayload","onHover","total","FilterSelects","sortList","order_by","onUpdateSelect","Pagination","smaller","getSportLabel","getSportColor","onMouseover","StaticMap","formatDate","NoWorkouts","hiddenFilters","toggleFilters","username","WorkoutsFilters","WorkoutsList","urlAlphabet","customAlphabet","alphabet","defaultSize","size","random"],"sourceRoot":""} \ No newline at end of file diff --git a/fittrackee_client/package.json b/fittrackee_client/package.json index 6e88aecf..8656ae33 100644 --- a/fittrackee_client/package.json +++ b/fittrackee_client/package.json @@ -1,6 +1,6 @@ { "name": "fittrackee_client", - "version": "0.7.10", + "version": "0.7.11", "private": true, "scripts": { "serve": "vue-cli-service serve", diff --git a/pyproject.toml b/pyproject.toml index 0f265b02..80bad3d3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "fittrackee" -version = "0.7.10" +version = "0.7.11" description = "Self-hosted outdoor workout/activity tracker" authors = ["SamR1"] license = "AGPL-3.0"