From 7cef6da5f245e656355600eb37347161bb182f4a Mon Sep 17 00:00:00 2001 From: Jacob Hagstedt Date: Wed, 27 May 2026 09:53:44 +0200 Subject: [PATCH] Not sure what happened here... --- .gitignore | 1 + PLAYGROUND_PLAN.md | 23 ++ frontend/playground_component_rendered.png | Bin 0 -> 32823 bytes frontend/playground_dailysummary.png | Bin 0 -> 46082 bytes frontend/playground_debug_load.png | Bin 0 -> 30606 bytes frontend/playground_intervalpicker.png | Bin 0 -> 29303 bytes frontend/playground_loaded.png | Bin 0 -> 30606 bytes frontend/playground_sessionlist.png | Bin 0 -> 63225 bytes frontend/playground_settingspopover.png | Bin 0 -> 28615 bytes frontend/playground_sleepbutton.png | Bin 0 -> 33347 bytes frontend/playground_sleeptimetable.png | Bin 0 -> 34316 bytes frontend/playground_statusbanner.png | Bin 0 -> 32829 bytes frontend/src/App.js | 3 +- frontend/src/App.tsx | 2 + frontend/src/api/client.js | 96 ++++----- frontend/src/api/client.ts | 50 +++++ frontend/src/components/Playground.js | 105 +++++++++ frontend/src/components/Playground.tsx | 199 ++++++++++++++++++ frontend/src/components/stats/BedtimePlot.js | 7 +- frontend/src/components/stats/BedtimePlot.tsx | 2 +- frontend/src/components/stats/SessionList.js | 6 +- frontend/src/components/stats/SessionList.tsx | 10 +- .../src/components/stats/SleepTimetable.js | 63 ++++++ .../components/stats/SleepTimetable.test.js | 89 -------- frontend/src/components/stats/StatsPage.js | 5 +- frontend/src/components/stats/WakeupPlot.js | 7 +- frontend/src/components/stats/WakeupPlot.tsx | 24 ++- .../src/components/tracker/TimeAdjuster.tsx | 4 +- frontend/src/pages/Playground.tsx | 0 frontend/src/utils/time.js | 20 ++ frontend/tests/e2e/playground.spec.ts | 59 ++++++ .../tests/e2e/playground_exhaustive.spec.ts | 56 +++++ .../components/stats/SleepTimetable.test.tsx | 24 +-- 33 files changed, 664 insertions(+), 191 deletions(-) create mode 100644 PLAYGROUND_PLAN.md create mode 100644 frontend/playground_component_rendered.png create mode 100644 frontend/playground_dailysummary.png create mode 100644 frontend/playground_debug_load.png create mode 100644 frontend/playground_intervalpicker.png create mode 100644 frontend/playground_loaded.png create mode 100644 frontend/playground_sessionlist.png create mode 100644 frontend/playground_settingspopover.png create mode 100644 frontend/playground_sleepbutton.png create mode 100644 frontend/playground_sleeptimetable.png create mode 100644 frontend/playground_statusbanner.png create mode 100644 frontend/src/components/Playground.js create mode 100644 frontend/src/components/Playground.tsx create mode 100644 frontend/src/components/stats/SleepTimetable.js delete mode 100644 frontend/src/components/stats/SleepTimetable.test.js create mode 100644 frontend/src/pages/Playground.tsx create mode 100644 frontend/tests/e2e/playground.spec.ts create mode 100644 frontend/tests/e2e/playground_exhaustive.spec.ts rename frontend/{src => tests/unit}/components/stats/SleepTimetable.test.tsx (70%) diff --git a/.gitignore b/.gitignore index 5c03d2d..b2f4587 100644 --- a/.gitignore +++ b/.gitignore @@ -316,3 +316,4 @@ pyrightconfig.json frontend/test-results frontend/playwright-report backend/data +.aider* diff --git a/PLAYGROUND_PLAN.md b/PLAYGROUND_PLAN.md new file mode 100644 index 0000000..a9bbb40 --- /dev/null +++ b/PLAYGROUND_PLAN.md @@ -0,0 +1,23 @@ +# Implementation Plan: Fix Tests and Playground Components + +## Goal +1. Fix the malformed `SleepTimetable.test.tsx`. +2. Resolve console errors in `WakeupPlot` and `BedtimePlot` playground components. +3. Ensure 100% test pass rate using TDD. + +## Phase 1: Fix Malformed Test File +- **Action:** Clean up `frontend/tests/unit/components/stats/SleepTimetable.test.tsx` by removing duplicated and malformed test blocks. +- **Verification:** Run `npm run test` to ensure the parse error is resolved and existing tests pass. + +## Phase 2: Fix Playground Components (`WakeupPlot`, `BedtimePlot`) +- **Investigation:** + - Examine `frontend/src/utils/time.js` to find the `split` error in `timeToMinutes`. + - Trace calls from `frontend/src/components/stats/WakeupPlot.js` and `frontend/src/components/stats/BedtimePlot.js`. +- **Resolution:** Fix the `undefined` value being passed to time utilities, ensuring components load in the playground without console errors. +- **Verification:** Validate via component tests and ensure no regressions. + +## Phase 3: Final TDD Verification +- **Mandatory Loop:** + 1. Run `npm run test`. + 2. Run `npm run test:all`. +- **Requirement:** Iterate until all tests pass flawlessly (100% success) and the component fixes are verified. No task is complete until both commands return zero errors. diff --git a/frontend/playground_component_rendered.png b/frontend/playground_component_rendered.png new file mode 100644 index 0000000000000000000000000000000000000000..26fc77fa36c0937dfa5f7346d8e7f1fa6a8c6340 GIT binary patch literal 32823 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

+NAp_#=ko!s5T>@>eW zo7u7w7bQAvRpochJh5;^>Vb>67qukj_{HKCM>R`16mnn8%0D9P3BLh`e{)IllX7TE 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 MuXC^T?xXPk0U7;4wg3PC literal 0 HcmV?d00001 diff --git a/frontend/playground_debug_load.png b/frontend/playground_debug_load.png new file mode 100644 index 0000000000000000000000000000000000000000..f5b920d6e47e5bab8fc46dfe6e9f059abc25d3df GIT binary patch literal 30606 zcmeFZXH-+$+b@c`)h$xCBBE3k0qIJW7E}bJOO4d1^cq?SJt`_9NH5Y+dX2Qui3&&u zr9*(wdk6$b2noqq?EiT`oN>l@@44U39pkPKS!=8@*Ia8p^C`clCE}^RCNm=^BLf2i zv(}TxMhpyRfy>js|2_?z9`I?OVqo}(LF@5D6aS2@nX|!caK6r6*I^l0p}Iv`eN&U} zwKMOduKU2@F9xSS-E;gY_v@P6we4+>4jrB12iEa2?%9x_e~j{RjQf7sq|)BaZCXn2 zviEiJEFJ-uXlQ6Sc`pM49X9Zv3&jTv=T2^{oj!H#km-ajKqJ$ri z>#tc`SzBdfTw!34ICuIk!`#={5@d&q>8p=E(hZzUCSj)-Ok)_B7>WYN+$`nZL8uos za{r7vJ!N1hGUB#5%V2V^_&7dvSJM8XW%Ox=2T8XW&M=f1>9eS08_JfAZDnv*q@80Z z(gs%Zz_iM+R&BI$a!ng}_}@E8-Mzil%m2JGw6}vV445;#5_t@e!Q{Fn3y0Zb_QhC6 zh8)IA!1_%E!)b#>E(#~JjCvUYkKa<5wqP|C5BE6B@Tx@Z?Eedzy$Th#t_++7sjur6>|)V)8X&b7*KLLewQ}w&Z^SXAE7>5wkysXY%RBUejRVW-s=kmwKeHR_5qc>;lYc!s|dgD!TCB9J!VwHtn zoh=Di92wa+b(J?rQ$9}Z+-79lH_*~cM?0C8r~Tky`ra9>*`3kS2)hALT;}7+7L85S zx&LX+8KPiD6fVEQ)Ow87`dHSkFG_}bdwX;G>Cqc5njMk-XZ`lN5(*bq#I4xbxS+oG zMvz>J!D|l;SmF6OT@BB7H*Dknn7R7Re6wf^XWBnFkRUwT<3P?L=ALYt>766t0;R}U>T}@5ip7`YcpTp8pOU&BSwa=6KO0A--DXcsS zUL;&@NOQ}W+XO0Lb2~3@>HGIr9+^`Us+tE(PnZpb#B7 z)$C6CILb9MZACfQj(4vX+yIF~NZj9w`TJ=lE5X>B!P``0-~M@dOm1g~xlz|WevCU;%*;{NQUCVe` z*h4V4d-P7ZR7~Ic)>aLy)8@ip)sBZX#!@`_y3bXeIP+5sIh?ttnHYYfKrM=-^*>tY z;*Ezin9;ZHeuua;8#Pj~O>EITG0Ag*YftR@it7Vk)biC+G_+h1{TB7A3r6SJ!FNvVy6mpglVaj#eUe}*)x0E`xi{)&1M5#&kdC8VS!(>fu0(cDUv z09P)Yns7q}lV|X|7aTX_$7FlEA0#F}yGm`8Hh#Z09dGeGNA z{QaHb75xK`5=qOS%d0p8neN90Jn_dz#Er{lg$0Vs zaTF-|c(6e;Mzh=;oez)Ehi$y=YM0=_FrgiCnC$W#1q<`Zinm?*wY0P-F9^O+$(SY& zp2e-Lr9~Y3>H0@K{3l#pGaMmceK#umU0dDTX(PP>1szSUs|k}@%eG;bX;PF z1^=D7eGSt9R614DpWXNQY>j)JxV+)fDiD`$=XJ!G^$4mgi|Egz{VVG0>YPsqc53|+p=!eu)1uUN9&D!4Zy-)$4QEb%5#qu-}k(ip9 z!A{DyWoLb=6;C!M$0ie`qKI)*K=gfH-S&tl=YyI9kCPEs%es1vJvgOn{L24P@7=y8 zZzQMht2x;&(6L-n{rB;)4GCtqSUPaxfZI>KxmA)bf(nuyzt+HkmjCv zcXu04VKLL=z%SN{wY#2hOpSfYXqt-MQ~cF_E?mrgk?sIU`@BBR@&G?$dcw>;J^lTr zz+xD$r#dWqOIwynoC}N8x!_2(D4RsNrLQ(T4}K_x9(6HBy<@OS3-uR{$67wR6G zF?w*6*$C+h*I%vSX1U}2Ij3DAe<&+0d3$qF-2TP#!p^>@@yWy|`<+zGa_Smg<>b=z z%SD+J?DBvE;M6t(>F`2OYi7-51{}(<){YXWaJ?)q% zW?(S=fB@)k`YW~UP05Pe^TN{rI-nVz0)E3T(#vu_Hk`mC)A0Wcn(Xd=VD)g+>)y5d z=K(wW?lAQ<05k-_xu;Dofx#UALWL82Ay7Qt5dYecUALkl5dl0Nd15?YYH)=8c{0yJ z|G4!?BEyJhw6A-n~)7_uo;^|RA6^ghIAhCq{%`Gv+z`1$d{j&^Kj{)KU$14fXH_Rs& z|2=*F&jwgYN%j8+O44Bx8es4Vm<4o&V&jAVo#OvzGyZpb_W#fDAKv}HpAH=Ay#xY* zxE1-~%s#x?a3SD_`T284=k<9oHZXP7Wo$&G>Tz3)F)a-Q??JLDp`f|I zR1B}q;4;rN`^~I;;r9?1Kc3Qh(t0$N4&RSY2^Awm!ANk)6K$8N1Nqsy z7sGP@3KO?e*=e!Kl{g_AxpZ-&aA+uK(SvuU(Ox?2#|QslK=H`;z%{l1HXS4EIp6 znq}u%(7_h{<>KP#JOw6qx zs+U5f6ckLgihRDo38(6mUFE-C!e%IBKexiA!P4OJ%E*iG2TlFCxOY`T$!j4` z(SAAYV43NAl?u3g^2TO0{`;4*zOt+R=_t3!8skp6Tx8R)tZ6^oBz-mPs}#1|+hFAwHvS^i}RhD<_uK*5I-V647Pi(f8xYg|kjtkl5(|ff{!pb_Iv7HKAZG|jFjQ4<4U4C4R$%L4J$%&w$>?_| zH5JWMul{A*$%KCSH2c>0BS^jfvLss1INWuViM%rd=C-t5yqp!d4Wq1e;$y&(s~zxh zSyy>Uiz*}HSN_iEaQPx^Ye?y8cEGdQM5Deq{!TP?Wfd6F-ISbP>oRH5D(sG_0Sr3B ztKP>tr~Lmcu*cuq%0;3HCXo($+8KMZP0-5ob6akhtdR3tDUah{j&MNq16RW?5Ocm> zp&q5Ec3oeI6|1-(XkMXdrCZq4xBL|i`SV32*~ z`gIk*=`+NH1lGsg$!K9?M;dWBr6n*6GM9Fc9?hp3w7l{9I8ZNDadUkY8@u*ZKW;}5 zG3+=%Ss0e*VY3w&n|7<57`L)(j@{j$gQ%fHc%ran9X=i%u$OX7ri?#)cq$qx3!jbG z%=R~rzJDd)=7k#7W5O!L7`?Yk6me(kcJ$rDu|hGe7*Lqq`lzeCxOtV!0tddxI2mar z`ekaD-M*5y&;sep$a`KGle)q&hP{+&4R>IMFRRh|v*TPD<(h|N9Qb1FI z|9NYGHHs0FaUSs;F2H&JewZnA_dEIt!)(1X=4*#2E_V?UXvA|EH1PF2U(iFM8cb%z zB!en$(|Gi0JS$G^0#OfK>hSHjLESH2fi9LMXIlX%h*HHHFAlpMfAw-IR)jUuy9Tgd zLN=j7p>q>tdV7Qu#g)B58x=c&udn-DU8QZFAOOeG6GP+_{P+=j91;|AxIvSz3%>q4 zVnwnAkcYA{H<*dkH)=6{3e%}`62Fo-FK+#pYe&hWajgw(oujjlHVbv7mvq~s7$JLl zFs1MpdiRedK4kmzO&%>1u8_8t_%Us_q`!|ws*#vs==5K8^#gzBt!xC@J?N-5L6{Xpcw=|BGlK5W-@&SSJpVZqcl$e<^yhJ>aP_KK^JZ%y z_b@Uyvx)Sn>G)D7|D|ZV1KtnHsnrRI;7DYpJQi~MSTX)V z(DLteBctIF0oI1VoEELW%%NxwZ7YZ`N^21T`uN{ln+7j@OxoO9{lF+31Spv2 zkq(~#KC1I2TgZOsf$nSaBAh$o*F#%D>RDNdiMKB4ztM~F$h>9n7-`Y+gI5#cPsa82 zi6IbJT1eo1B_-su7TW&$<65l(MmY8f7Z}a%Ea;ZIT09Bd-uDj#V|?h@cksV+q#2RCZDc-qj3#iN7Ew4h(9 z{bTFWs~YOrM(I;1=Sg%d0dE-czo+i5y1^PvyjXdar}DJaC_`oyihQrat(Bhf_^*$W zxS>{Jd=F!`GnYQ}4Y9ipWN3--2VnqJpd&mnkEwGNIK#W`K{)&&1X19%cN!`BQLAB>LeqRRr1=;+yl1xyFgAp12-Rh3N&5jyr^wu=J*q=Iu)*> zGQFxxFMiP$C>7l4F8}080I{QPL{MvL*pccp&Le*n^0RiF>Bw*4{N?1tH<$^~@icv8 zJ>DD8(^=Ac9JRyi5k;R%!)M$EzjMjEqmRcb1uBe?S()_D)Y?GC%D=Wm-_JVXe~6xy z?|$<7HO;hYg;16{9QrN$HF=>FPup3%0((}~^FvK@ltJvp#H>Pt$Bg1|L2xcHdV4It zEh+4X!V#B-CF1uFX^mxZN4ji;f4=Zryurn%D;0Ro>e5ow!9Kc3+q*Xm_ne z`=Nnt5JR%=!Ov<|QThO2o8fqs=X|)|t)`QE^n18q`-8af?cm)>&5?N}DEf;l@{4zr z8qZ9KjtC>2I!X7#-=axxB9oyrt-YX1zw+33bX`M(lqC1i zP8EX*rHvHa>mX>zLB7yPi@xyv$;0#EOp{ds!(^XO(?M^<;cKPskR9{l`BFWdl=4YF zucCnAU)t>Cxy%%3i+z-$GN96%wtco(LY^>xU%#HZDd$#ckOFUUnoZ<wUs05G)G2HO}h5xFBL@uI)6pZF&w3!&Q|TY~vzjrT9ujxyiV zvFg$pRB;%*DQ}}XUD<}~myfQ=_BNL=>p$rA z{`fo#cr;CQ|2t3gI3K5y!)M#g-9@31Q=K+F2Fl(siw!^K=MSLVN?Wgzt^7znijlCM{i#*d-(+*i?f$K_{-P)k}*KhV$nRG5FWFQ#Ffo zK7444&NOU-Z9cVo?_sT2VICysxUJ;*?eKE5vI?h6kt<&kWDnN1@dRhW<39Pdc(HGu zdBAaGNPilLLt4k(y&-Gbok1MhrJXr10Hac5IWiS%ytv&ljp|Q4pIT8ToeFI*T0Pao zI(~;iYu|mV5<`Vwi*1@Q90>M^4>(513Vi3)>>~EC3zU|e^~EF(iB8{|5O4mw*i?~d zAQ86+E3~`lHr1>On)h{avC!6@a)bm!q2AMn{F+wo=qk@nk|b3p8GBtIz9=q~b(zTNV$$QvM(;g!a7ey=tJ9U|;`mRJkrAWzJK_u5`KE#U zToP8+&_B)2yAl0q?~wp1`_KlciCcNkD(~IB@tyaTsk%mfnFvB#c;O}6M*|>D;3s)s zYgA$_K83QRMqUcrjqccxx-C@Ly7%Ml0T=2CVNf(*wPJCfh_mQ^7;D=}h`DHI=iokx zsty{DmTK;qXMEO%RI%Kj-TdcOx~#iNaJP7xZ0mCdkEfDlU5U@a6Xw%pMCSd>^*F;Z zXFMbLjF(54BpNTWH~820-1C+fEhfPtS3X_%4lqu=Sk0AJnS*whB* z{xuhNK4uE}TQL9N=wML8tTXI}z^q%t;mxFlkJ+2s{xJKPc=(q+HgOiE!Th*&&tp$G zYu$phf6z(#3E+BO3&!tYmJLcTa(FAZdPOXFrTe^ghR=_$?D%HYA0S1i2a*9yenpVf z{^X*y&w(&Co^04!*FDO&$jHdRgW|}IS89%b_SkszuO+*D^S&_Ntl=5ExQ0{>HIy&Y zca~1?xil+LqR%rm>ocym@vXZ0=Iz^e#A^I-7B`n6KY8G)FYqROm$`jMlgV6?`nD>x^`PFT>Dweu>g(;toL6FI9+D|S5@Vs z$bM8k+E16roa%1BRjoxPl|n-+V;Y;9YTf?mcB2ctzF-8qkvq5U4c+_n_Wf8%yJ>-_ z%VzY9x}tYBD09s}wP>ZEz&0Xa>B9$=>=buHJp-IWa7pQ$Y{`$CW;Jwog{k<8eNM~ z`1c7(N$4iZ`b497Dmbl+{MN|r#VrnCb)ST4Vd-6a>e{-(#m)*+5ctS=pW`GP8-OpRF(mQrzEo*wX>unuvg_DkIX(0yJZk$yJNj3;WZT zIff;c(^wl^azYMC#nQL4l~6RE&TE!=h;2+4_dwi0{R{1YUGC-ou`W+hLm9o`L4LY5*@ zxFt`Mx>vE=F-5vFTmUH!NdUgRYM>H|{R%iO9E$q7y4%uDBeA9DYMe)>=Uz_K2GNh0 zEw}2NO&KMI_SV$kQ<~5QuO%)hqJ)J{*>^uWD7$_W#g#4(t@0jiG!P1gR!@!y3U^2I zsOUD_24(N4+1b@RPTQ~9N3Tj)wD={o6l*-qX&Hlek5LP_G^n&rU6?-rUksF`X>sSb zV;l2t*QHjkqNQjd6lVX~5Q_RTw%B-;sx@Quc&5_F03#P z&#HJFdO=#=b;^kl1G#TgL7RYtpQ4L4AH?LE)(51P?g~#Fuz$-DbfQ!A2Zrx4;)Q<>VKX>Pd z_yP!^11=Vjt9urp zD=-s~Bt_FfNNI32yLsJvdtnI(a00rf99wV7lf=)754rybp4&`oh;|q@{&D(xJ@wJ%2=!o9(&cJXZBk}a6DB1aJ(FuG)ENOmkZoof z1*}GOhiE}ibe>6OTpP0WAo-qvT=#$vrhXHbn^H2%3aoNz*oNUMp$S3U*TN!>4R=MK z3!f!@2>_ykXxiaBxYqc+_&ZXYNG$;Fm2`^dUcOY+j$>T7v)UO&1NU`-WNL_9`A!dfO zN6Nkw2w*JFhWn}Ia_YT#4%b4Y1Xt{=k|!@;zI@H1@U;BTh>swch@70PfXe;bMIKH( zfN@)1*qjPl+g&u=*inKu=lGFoC*8thxMLzBO0AXhUW5g5M5O?D!ysEfu|Md@*9fP0 zlX+t_sqw4#rFNkVV8Ybc*tPlXv9AGaoi>{(8Xg`V?O*t}1?7cfllN{s0*V1DS}H2B z@#FpdHO{!^TW4`)Vm?uA?+SR3b_Ibe@8ofCVtgBObs@dTBx6fiNIxS=fgM_HKVEYE z7Igj%pRvCFz_toy4@sE0Z`FhDQRm09zEve9Amyl@U`1 z1|oJAS6Zh%6yCiX6Pa~9sPgpkavrORTVyur_3Iw9s#+8HkZZJ`th!8y^A+j95&DE1 z#+Nn%cXs~N&620HLOWF8vsTpTriOrk@#w~x(6mYu*L)PxuPE8A`S~Aj%E7O@z=kk7}o)VpY1(<+=gYDF{LvY>> zh1>~E9J_d2fq^Rf9!~Hf2Fx@8pKiQDG!VD8ZLJh4y?gwMLG>g&^SvXlJM#Idl*}K` zoqp$R174g}gPjJtRYg0!e`W?(9Yd41-5`})$cTH(I$uu$9IPE{#PP2C?)LD>8%r`) zB;VvK+$&sgn{=#eK)ixPq?BmX+RIrkEU+auH!H$iCZUy4Imtk)7bs3+c-jwSRG_ohcl)@ot%uurDS&k}K?4QHoZUH&dy8c7b*MlJbXi@s3 z_PDk6y)kYD-rPj;_Rx?tJ)_!tCOJgAK|!M7@)CPtpGBykLhaV%QbPP-FR0OBF{>DX z?CUDA+o<@f6D(GBs+W9K0#$2CteF00T$~ftCuUB5+n!kEC|Y%VqC+k?2{YgoJgJ?< z7cJ$XJ6mDnXzE12+BskIR*%lUv#v>zVmI%Ro3QkgPb4g6Uxec%$@0etsI;Hc%;CFm zsMAdI7o(LXAlw`~1DjxQIvu<0utV|xdTsrk zsY-YJ{M5~dbwt}I z7r2e`7@PZb=}aCI2)_P)q^3`U*(HWccA}Rb9Z39Dh_+U$w{&~7P{Q1lnVFgA?T^dx z;N32$#*5yA(LVN{kAAFWT)p$Hlmg!+^<$%iUM}Q+4IR`24_a3l+RXIN_^M~Kv^3R7 z1gRCf$}W^-Nz=^PU?Qy=IrPt8TDV4$K8J_hSO`^ohcv0aWP7JO49<)Wqxr)^ zpVtwPY?g8^=Ig&rTP0O>Q~A7PEI>#=I<1s$&t;`on4@9XBXLSrGqmQYtTvtGHVeC} zDEN@LA%RPWxniv{ZHO9X`2~)lgqeK|68&hVn?L$7eV61NFz(Huqe0SmJYZ2zB!_#% zGFP;|+?`Rgjvh@r9v*o|VaeXvC9I9+o1(Yflj8kYCq_M!&B%q#iq_pLje#YLdLaH^(&)lJOq$upnaVN_rnEDFylid=v4N6SR5X27CTBb~2 zQc~oE0C^~honHpqn93~dr;dEW5PJy#$mj%`LB2BqIc*gK2Gju{Y?aTBekg z6b5Z-Dl}ptnQ3Iz`joQCv2Pyb?+;wMcaYL4?%0re`1qK3`Us|$K9QVxz6k~OxO=}B zi5U$2oSKn#@0(*&;Fljw{L#qCX3hAB^z`ojB@y)8dD8ksg}pybhl8f4INv#0xWI;7 z8?IDO2-Gxam$0mEf!3j_zTXm6B_jna;XGTj#p;x?PX@oTve0hEn=8yqEss0e5g=!W zSTz3oEKjq_j9D25rYKyiw|9e~$fJWj88k?idlwGbIzZcu{m5AOHC#zAlQ{^qX0@L5A+y2r444Jy+-@ z@$qBrJF?f9UeiFAKie;w*RqeGmz_DZ%>pv+wu>L}HC zOqbhUR2aL9ASa{53FD7v9*4(tj<7Pv9h8BEp3Qy;>9}k>bep)pKJ^QWE!@hq`_(*3 zcobjUGrQ7}BDVPrut0o;5^LivnPSu3=Bczn7jqov>sI^VDxhR*QmpEkDj)Jgn<0co zsM~ToZmLVrtMflF%Z+@^7*eW1T)Ke{%fAL&Wd`f)$MThF z1&+=8YkKk5^NRJV z-$SS}l(|1n5w$@5#ASvw`3lSCJGW)~wt3R!DYXR{@NG|&>>5LZ#V?qJwx?8nVI1oT zJpR@SyLhywt!{EU*y>SyS>9i-unuC(<)&)qKDrhCPJ5^>mz%gHhl}#xs)*BT+jA`^ zB*wJTTz|chWt~+lJJf`TPS9yy<0WnJ*3#8gHj40VrE6oE-zh@Bie&{&oyB6jhcwP zo1JEV+a_;>vTQw^w)48pusm%vWvH~#Lo>Rw#`#Z9HZrwDZ^!N4# z?Vw($yHLoMZ7%68o-;|uimY7I)-zVB^oBe1s=c#KU~(P8*+&Fm<03_i#=nzCg7_M2 z+lNUp>k|bLS5$=zAOxxs7C?Pg?n#8Wyw2f>ZlkmD=s8Z>dg@C1l1!(-lZRTo`FHaN zY*EjYm1jmGjDY&syC!<*N2hU{1~VnJ8xlcDd3Wzfr;D4JKSzmc3fJox$4%bKUCd8( zgrtoaX4g9|$)0KIkz6WDxM0*#o82ac?p@|U>6&PUFdn6qv=ORjXZrIBAUBuII@8;q zr1sK=o1Js-LM2H>Z-S^9A0kpn`Ls1K$1T(Q2jbb83d*`Xv4uL`W=LhLU+*si0H|?w z;3+c_0@UnkZIo)CRnLq{NirFR(&W7SlCx<hTi?nqAMq}pYKnPI| z?9KGkx8ez==3!Cd{^0F`F2Cq#y|oD<)o*(QRjl%@qdmJDHF^7S@x{bIZ_ikK++rcO z&GG4`hw4f7{W`{?_it>NP*rv0vp@+5(|MG5+a?EhQvIAzY5asFm)TECBke%l=~Ufn z6CSoCscyIU*F0ffg{V*VtTC#YdC|%Bagkz=PtX48qPpLy{SBZL{)#POO;fwd%N)x% z8CMgqaJU2WpvN8Z9H(rNc(#5-wJZqUtQ8$mpQ;N}8`N+j2Ob^ymp~Gv?5=8?BwHEs&jlysRoy_KCwx?ct*sbC z9-MOw7qOiGX!+?)f;x}J@dBfV<`u4Nlcf-?;TPfU0$-*;Zr;)>R};&7CZ3X^!}G!# z=IUWzl;v|p7EFTU7r8hdo(dH<8ke)=25T+9R7Ud<*{4%#yBa$>gpv>amJDa(+#I{D zqa{~ed@K33?wjs72vKF4x+1kj%+5#s5}~Cf0{h0_fulU^m#U;x|Ccdg@%TncU|#G)R?w$uWs!h9%a1I!e0Cw=1&sde*vtm*99%Z z!plE5M@x7vuWjOBTkXZoRvk+l7Fmi7o<6Er>FJpzm;M1UFBBnIuV=z4KSafJBjnZc zb3JFJh9h;+=7s^*6a)plkN{K_K2UcSWay1CAgkb3R!Xv}h0@-Jvv5rx1A4nha_ig+ z*?bRakNvp;cgBMNi6L?6?}McpvDiZ)5AjxN4nuZco=pCmyfT^fn6qI)@MgsH@9zwJ zjzWduHb+0TyhK_(Wl`)m5AH<7sEhm(E?z$s3erBSHQME6l04b$6&ff09jlc8%s2-P zpVSexRWoHb4?h!raVEojwtgfzvJiV~$tUHN*YJne(QLh~X0b6T;aj}X81tcbCW50c z5NPUcDsd04{YaE9C3(HOahzpa@N74m(4w51(p}g2MmNiW*i+U$-GNH5 z&X3`le%N+Ab2^+?jKY3~@#-x;&AEmfg&vI;x8-|zYEd*6$yj!?1ctz$cpJM2cTesP2Vj*41eRuv%R?EiOIavMBv|P77vdjZ?UK{#O=eqX9)>>ak=t&cyh(A&pnl$|X+T7v`cxBX-YTF!YY`lhB|QbxwK zk83p0?WUlho^=Z%F!?uyo5i3@Lgajw%UST2gML3}I8U@PyVv2{ zK(T^=+{UVu9!Ky?`f6m|DbxRK(1vHJ!$E#<$m&EX&bhX%PLS5w`d!O_tI1AG6I($jX+=wNy_<`kP9;L57GbXy{U8N+%zLu%KeqVOMGttfHLTsF&*M@i+AgDbOjRD}d+|v;{Pts~V zag}V9L_zX5JG^y`w+?mv(dt-ZY7~%<{d^DFf8O)|W9Av`+M&2RgPlO_lBObMU~?SoYY(J2})fVfgpL0gADoa8BgurZ|V zH^+?GlOM0DRgzQMQvR1U$N=1ih7!3lzXIr%rXrqsCK#8qZS>xv-aC@Y4Q7-`A1P38 z^U6I}TJCQ79(zCddlgLS_8HN$s?Yd1rTdCK<;^%a+FI(Y_BNvguyl|CW0DQ8NACN5 zGf5)b+-eBD{tFNT+3T(wUJiG_#pZP4d5e=@F2U&lUa6R>-#m^$gi6s)CA59=@SdJ6X}idrTP0ytBV1Y18@oWV{)A*pe}XB-BK1% z%^B3IX#1rb2cYllQg+Wdid|ZdJFX}g{bPe15a&N%e>J0l^V(cGy>+FWe3*{5Yq>oJ z^4$D=8GqGsfY}svN@c3IaBq@znD3gruC}B0{HLdO(zEbh*#t+ixG)wY{}g7B$NqEj zh{WOLhp$^n(OinIw5gcZ)a3MZu=M@8AC^dFv0z4DuPTCf)br8zGgX=PlwOZLOqo5g z#dajthVW(3=9`>=xY}5CQ0LVR(|5hdsLUk@r$Sy`@Lz19S>gh&lWKu550!6lnm}Rc z;_Fp?G?l4INk-Gqc_6TG{&se8W9IS$wd3Eh!&<@}Q2V?qm{;1SqP9Lsy9d59b`Lld z6y=sXh$I zI@^-7_i;MKG|9dCy0!MRGHQ>3-r&vwv2o5km(ZA+ntThLWeWJb#ji}ar@O)-w1t(p zutvC(gs9}Gv}_&6&70cs0h8(Z?d%fnYDqsFdgK1Kws4IDB4#(yc%XPLkuhFAJt4vP zkC1lz!LG;w?#XO|LE+`|H@37fTC{vA&<8?r)q1J}xhm2Bk}dg>)|mKi>Fp(TooQ>y ztjL;Exc|sZuUhm|JBK9dJ^@M}T1ljLTOF|#o`^+I4aY0P3>Aix4hV)j*cg`n`JTi6UGklz-kU1?(nJ%hw)Y1and{6agr;^nZ)wu`q*v%itJ5_# zQTO;OnuDgh=5k&M53izWv)~?tiLdUKC{*tm$|2$FrOQqyMGJbC2d(SG@J3PtiavKw z362xDrSG(P27Y zNYIjhqGHJSY?wTjLM4o*3kIv&PxQw`wJvtsm&)0visOTi+D2`8W6AmPR!#%5=|Xe` z$0c`zu8i!^W7j~9f)H7Woy)Frh`nK%fQ8>&yhqP}8aPCb(%Ks?fQkKlt$>ge2A_fjsA){QzW(yy3ZmLGxRCZj+S;?-SyU z>u}TADJg{}Ius(0+i*$16VF&CB?W~UI7xiZLC-9RqgN5JvkPuHXEmO`Dr@9XJE>h{ zI*?WUw4_RW>YxdzO$WL+i`hnnh&(bS_7oZkbXb+F+gdC#ll_qEGA z^vK?2kjBp`i@z5cAFWi%#71e3Qe_6Fd`fp6qWt}H=94srnGefe- z7gMl%-=(DnVYb^A4K6Lm>W%|hlAFUdFuWHW)aXv}pjfsZZ+Fr^6XD~tY7}P9ldh(% zJ^XYF9@WI_I#v+VY+ej5WwRd+A$E{}V(lDL3U%tBYT4C(AwItp+JL)s{hH_UXAVdR z__beGt0L`F%==G`DsmDJGjE-dI@;Le)2D?1e}Dk|{X#y#ygN_wA|t=}becu80U4=g z2bv`7tgP94ffi*lfwGrU;XG4jm=awMMq-cJBk`TTvf~818#VcJg^uM!7k*dH&L|b+ z<$XdR7B12$G9pJKbEj1L9C}x=G?eouFC|0OAXViUFOZ3;W868&RP^~l2OV1UX8NtwZlVQ12JmGh#ldO#Uv^)i=8;xh2mPF|8y_Erpy@|p z7PXJKQ~1sI59&YxN4pdn^*H^vV(l;XKFHg@4k|J+3i`!h$*s)`_`sk5Z7K97t?=c` zmqMYt1CfI&iktX%P&DbCqJhbNH!CR1A3L)s7((j)rH46Z0}Cm)_%TeUw)zzMu__YPYM*VpNZ(U~R~>qfIdL=6Dj57$qwnt(o7;1!?jd z24|yv7Ma^1L5pqHLBw9)$yaqVupsmqqMP>>Y0$C53% zZ0bg8wJ{}`Blv>WQ#O#l;m0A;tXyE%#QE_utfJjh$qN&B1gO}xbBqs7E^D54muEp! z{)~f;2&>Mjp?M%tVPRMg34i{G(z7E@YWe2Sh5|CxHZxN?Yu3##L&o*X@s0L*ijJKq zas6zq3S*_m#mT>-xH&mec9zFgTMlMdfvVN(DjR8*9-PZSceDcHXFDI_IN%Y`hGB;q z1cipI!RlIw1h(kG%tPED>nwuOFTa8w9?O;my0Ctuc$$Dl8u{JyY;^kJkDS*n_JRMS zz3+}{a@+Qe1rTgUEC>p0rFW%wY>2dg^p4UY)X)T^*x&#HLP*$z-g_sZ7X^iYfRuog z03x9m>C)c{oW0L}>K*UgJKh`bzBkVI2ZL`UYkezg%{AAYzd7gcTd@d{j`?<1!A1|k zdfMCj>GS7DQ%4QV=m*L`raIy2+LnGqNZK1OepW2V8(XK1K&YoR_hvqPK|S&=pRk=K zS!LR7QukbCWUzHMeURblUUYzg!EzmUvF8l>HG`1LbeE8dO!$6<45-JeQ;vS@i#)RH zDYa8izX|KgM`}1_>({ZRR{0cNknqw^;y&!Bhv!ukw-%U%vA^$|GLp|PSI0j6fj10>J}qWM7J zh|bZ+TB!FaSbf@+xnR-jb$fWL?D34D^tFbWIT@E8>APX=cKB!hWHg!!pRg5;4{1+0 zsA@BGFsFT_MS@KWt_w|`@64F#%QM`O8g}YFv8m1*h^yOO z>*n(vkV{MC%z}T?G@Yj}ETH9A4KWL4-X?hU@u=Zr>#R1t7=6S*c~-x#vbZZJFOvZ5 z!$*&mOWX*L;u1SGf|Sd+PTT0C?ekIGhV&j|X7HB&lO`-IX>)`t=PryUL`UN>Fbdb? z-1>bZFFg*#`264h&Lm*j5f&8sP$lo9%hX%m>S{@5JCqwSuV(u?TF_?7eW82ta}uU9 zyDdgoYk4EKa>fPJ^`kL1nGHTZn+b7i2JRdAhJ%Aqy=m&(-rG#eG*u#Fp-!gr-Dwt8 zmJTn)xmzRG9tP-RZ8~pl^z5ryc(0Ry|5#VjU_M ze~M@53XtJZp(|L$SIYF7D&IAzDkoY}YJSiC@JKER^Mc-grPVXMvxw+HY0Svyg(xeN z+nL^puW!1(qU|-1`)YaeyFv7DwS2>lrH7bgE7!jNEwKu*79wk!MoLbOcTWS;e$Q;x zVr9QHOZ8&{b;8t)&D=;qzzzZ4-TYR2q|khjcmMelW0Bm@x5PQ&sDZ4g4DE0>;Y>y? zP%!81ua$?^wd-GgjC{Dxx3DM{9RJj9$8WDjPuM{%1F9_lPS)a$o_+U+FBE4PrU@mA zOBsq4!}u?Tih>~D7#mx4%f-XK+#LR-(w1sX(lPjbwi}s@1i`A*xUgjuz6YC1jWw+0 z8Jr+ae<>HDd(|gXwl`UJ-(z84bBBp*3Gv?if?mc%t~J6xv|O|HH&9U~!A+V*Dv*lk z^7WhN_E`qx3B5Wa`t3$gTs-Z|XWvs8A8EwG6B`ub{oNTXG94E0*?rrc2>R~#){KdmUZ}sg$}KX$0| z)X!+f3RIl27!W7MA1G^@OeWs0(HDdz3(G63y)%ori?5L@gL-?pR&BS(T(vChx23-A zKHoorarV*GG#RfZQ=~XMlQS$L%2xI=Z)3&5ci3m}b5w$_l7ASz#8S)mvq2r*`F1(L z+!tGz=%iM~bAZfCkMX4_6kj~A(C4$#dkWdLHr;!FZ&?1Eo4BJ7t=hPH*=HU(^DVxH z!iz=z;v0JVuZmQg!7mx#s+oRd2RJ2>C=-K`93EtpSuo^^_6#(4w_bB;1d*8=%^ zHUs6))SPnq97-%Ka~im`98gX7$q1=j8`R2I@KH@t+h-MR)%Q(IzKYoQ+m#q5euS|% z;{jjEI!8r?N2nntCx-6!GrkaChgNJH2tVRDvc8V&=x|0FikC&*5E~odO7QwJ-`vbj zS#-X3t4OxWN7g<}&~sdf(RXh?ooA3`HQxYJ`?zFb(0wlav!v(vCmLg)$*Il<@~s7X ziwzsn=qX**BHJ#}r(ZwV!6mPkIi5Om>cr;?=Ys03>Fz*>+HKvy+08NMFy@R@$-SN& zAg)MF!#bzguPQaY1u80x4h3#@dc7ykcrGE`sm~+K?TnvH$H59{Z5Jg}8S0?XwNKxJ z1QcJTZLiJ<&ASD(sTX4DcQ;=$3fm5_c4sKXVNCFzuAbKUwET|mTU_}wG*UrQbgx&v ztFh0nI_*l|>61vR6`7SNovXZ(XY8`HMKl!Nk}L#XIv!2G?bWF#E5E~hV%9rq!fK=o z9kgYP7hPlAxb%k-5qy4PQJQ`v*}7b9S8`+ZZkF|QgB*b)Ms`?l zum82La>Si7LGSOwIbo7ZYWrLt%q*fC8fN!*8Z!6^w$i>M12GO)X`MM2^1TuiMB}C= zCs*qF;;lz`_t9pHwVPw6DmCIynoln`riV26?kt#M7?+#BXcrjN)Ots8Y4OGn_dJG4 zZjT=;Bdpw85%#XBksR?^c~!B3x?tQP&)Yo~< z)^xB4`);fSkQUI-B=)0LOftRNe(bm1NaQT`!L%k$roT(HP^HY0p@LwPI9RhdN;3it zr?P|E+atbtx`$oC=ji+N^@r%Y%j}JL@ku*vV6@i|4><;h;UgzEUSDyY#?XEE#H<>PNKIOcIjHjD->>VI5M5(z5}^mcW1bP%u(`-bhC2zGa)fuxWeO zT{)%^uX#$bJPqdY+*o2NQnA&_x`KS}wtBQ?^9^HNV5t^^! zS;YDoo^kiuB4F?1Llr+T_>s^72>!Jemn;TG7S%ap6fPjlRTisIch6B3@D_xU-Rg31 zUH{JHE|S$_JxTg9uW+TpB^Dg^ag8cq7bMFpA9SG4A$^dEDjgsLgls?ps5-ms-jMzS zdBT4rsQ$OkNB!SFNXLhQ*O_zkNX9B8(`PK%jZ<%w#E?R|hwRP%zm=~0e`I>v0Z)_e zp0gUYdT}v#zpP%vou~5+51lxoYK2rDCZ8-5=TNW`(_e|4`u;8ts$k`aES->T%D80j zN_BeuVSw|>GW3!?^0YxlY+i*2+j*)oaS43ZL$W-v3Xhww^iQ`#F*&J1Y$6jbdSrU1 z+c7Vy@sIVP3t2&>m6u~-nzAq~kI1?b5<_Pg3nNFB2(hgzdCKaY7CKhb^EiixE&nwj ztt@Z6lb6ry|At>L#Q%*SrxnI*vQaw~Zzgy=sswKntkS~XGc!Xyx2PMhRf0#UhHHsv zN6~3^*%YxbM-8COi{f~@Y~Wd6v~6;#a4b_#Ve8Z5AA?HiUhGKjdBf7hwv`mf^rVJf zKdaUJgnrx(&2@pHgl-D87U8?wF00Y~C*h&GtJzV!_{67Dl03 zn`|i$jNbTO7*FuewrYFhOLel$vqi>@XpQuJ+GbwLYThg}5}LQHQnGW*yGWlH5cEDt z^Nzxsx{RGC2;(_wiVHm5He{k~BHFtN={tL<^5hSXNI>!}q$9lYTcnzm#5F^E{0;p0 z#S0qDZt~yZu1=_57V`zXIjIhQp(QT?uInfT!4`Ev)npxGKw`}i*g6%XhC z#>pgYWY4NS@5?(i&`FmAiQ(y=!7;}#Y+4>UC;)+sszrQ^iF8{(4tG#N>>5}pe*&TCv3&L0<7=Gd z{1nqPq&?4jlhWkKWPT$G^%#dGvJWJsQ5AZQVR+d39*sWNCVj)P{{g+IGzVd@!3^#i z{yN?2CF*ElPH@S2b7RuSnZkgd5tZtWh_`OT z5z|dbUsnyeT&kYk^D!ibinl1vcb3T=v2K4zVYDv=ggdn~_o}{qVqHcu8JZF?vzw-L z|HYxUB2T@;L95ewCPY(RsHfs8sk6O7L3dvU9s=M~1DBry(?6mbw*?Fny(N`N$36st zB$5;y&*<{OuThoK6@+te|3p027JDo&!GNH+1YU4LW z>lHhX{?ztIJ@o0LY~j-%9)E-O^ucfvw~EXr+4XMGSdqr|PXgVpWFUKzKgCnfeOozCq*D2iNyzY4;gF9?Sp#_ z8PwcW*^@tMdO_zijtZ5!4Bj6mT_0oDXL3Yx3{AQXW;!>=R7$zPJr}B@%KeuQ<0+knOO(}?qIau&p z?|~DZVWD&3aC$Y^fD&H5e04PK=e9r55?f7N*O88AJzU8aIKRGK(52sBlONox?&=gf zU*Jjnk^S$}N3nX2X$z0lH8`LP1XreL+wsw!Q^9v2B=Tdw8D>siS%w$Ks(;b;C+5I5 zgX67D-KhutsOmy3a+EudB03Wf?z0&c-9nSeT%M7-{R^iuT8u)Jg}@zFYh-^Yxfe5{ zA+hMk4-cnTHSXT~v}RLBzo=idJ(SYFic|2T%_r!8tYjB!r_Ov+`?>93DHB1j zw`c^N&v7%V9H3&5TjpY_s#Z@E%mjJh87_K49h+WtsH{oI20Iq|DCAkGF?CO2CNKHcgWj>HTNE_@h^ zgxoJS^1qe9zm>qhmB7E1!2fki;OqJBi}OQ9v?OJvO0Z&uz|vI2NH3fh|~R->ZMUqLo&~ zJ@5}Kz@44_{`J`}=be@_HC`!|nD_g8TTkmMnD54{_4_hgZ0|h)1htAJli>4+`rZXd zy>D|i&pBG%OJu}15va|Mpg7R*EZ)u=0%1Q3j6pP-zBkxGLF*r}q7cY%* z`3Bwp8^;kyR9hkgPgL%p7dwBxQ_UM{%g@g2;$u3tcT8*^Bs!G%W6%M8yiVBCQ!D9) zpgJhFT|IK(?Vh)Uh^xCZj~8Wd-@=lk$fjqN1HpL+Z3i1kHflnh7M_#jUXkE{hRg=6 zPWODo$p@+^85Y`XeA=7G&WX7Rat=4O*2wRos(xH$J&oQ>~sq3(x`)~_F=!Y zFAK`{d*7J(v{W8XACo&wea@E^-_ev}95sP?v3pe;l)@cHbJK2u;^bp{-uiowea$ z5zS4WY$CNU@;KgftmKF6xHG3&T$N;yD3{AwRVq2&j0%~_41~VR23bW2av|jNxk}rH z+HZxUy~+*6c4D(w#`TS*6U!UC#q5Cv-8A;lj#3vZT|VaK4IP(v@h>`;FHk0%b3e9h z4E)^9VWEhUDP)kY`m=77;m>b4@v%t>Zyqm;|CL_jcYV^xjQMT(OB= z3?9j|=hua1BZo#?(~+tS`XJy;Q)I?@pC6rj?GvALRkA=a+SY*(6co`((( zRlp6EZa+w=ytdps9@1*zKw$3aZqWF!6^XS|z8`gc7Sv|)*j-!J^W_-=9PchRgd5Ex zu+{}rAlTX|iq-)F5QttRA|}J?nFVM4Qs8uun|;A42s>L=Ff_i#jW}^kd);PU)Nqd; z8DTNmd%CKumG82`O94>{MYP>OqEH zuCJ-vFd}=UqBy%CN)Gkj#@7U>40@V~m?(Evj{QPVr(pASOK2XW!|_A`h@%`ml07rs z_#xY8<1SmJr^TlfOV`(35asMd^UalYM|B!kx4h>&uO}--TDKz{W8g_JA+Pd^7K@?6 zuZ6aEvl8XY{=uB-5wdMgZK-}fcGe)T{!>Q&~n z_VMqYz3iwjM<4?ifw>A4p5qz7xy=vL5V;qWuh_SU*h=y?F@gI7Gq-9mBeOxCV|q`T zAyh?0N#4Prz+&mWkt3xnG~Wp>J(5-KxNq{l|2rKEO#<)GytMc|_?!Go!)Uxm9_aUfV%R)N5MU z14*9r)^O0DV$(|=g6h>(#9oRvRxA2yMSGxn@?XDdCJ%2o9@@QIEyd4Yu_XcqPV#Md z>wFAjRN^rfZM`S9FL0Q)q%<HTyb%d04Gp@- zW-Mvb3!UEcEJH#0D%OM8J13Xc;e6EY#21dhk}p41UVH&Ey6oJsc!FTE@pj6zlX51K z?#O0Tw%Tk^_W7F`Y1Oo&`l}{?i`a#JV6hl%k7qS)!}91=v9U^5>?oH1*0j(cesi$Rc{V2-||{44Y^Pu>P)dg8e}+~3C(f7J4*Q!`q3 zbhcwK@^b9ZDy9qMpq)YAd(S#BsifSYR`oc_`A`Nj!1QTFuntxfm!z(KcdltX0x53< z&YPc25;)}UyRJC+M`nx%u%`qk-3|84DZ4i(Lyd?;S4^s|R?Y`VVC<*n3`*TTr(6F% zp6|is{(&_$R^fqBq31^U`6cSgmb#ZG#T^ALn)c4igY?-K(zf6J|37i{DY}(&P?b^b#j3!MD2Bwk>!FC`63@ddbnau6R(_ofDvYDEta_6f}grR-G{fb8mS&$4%uF343P)gzioMP zM|s((r4DTQL2zJA+?hf1SjI44Z0&meYVpf)U~Z&D^L~1}7f%IVNs#ATHqq%c*@~xZf(DJ@b8=5phu^xIhsK3$a3 zFX(r31Ufcih|ZsEV|G9(Zumy-hx!E`>|*dx>1<|oa_Y!iDLpX>!`~ildsY|^*6q&Z zouigZvz=X>6?=Ls;H29})X;FAVfpcPnF+fm-_oCj(yGNvq&f_0#+;p#zMOVJBSX%x zU%sYRdl9PayaMmDmHIu}9LZ8@tC8U_X+bnj;K$m9uW^`O16x#k&7LXYU603=)8vy2 z^K>k%85!oN97_=N(EP)}hL>K3xF{$DFWBeP#41xIsRg<4OpgS^d6UY2|89o!nb|DW zMcHO~pmc5tD*_VRG_4$YbGJbvf1mu%=-cWG>p!a}eSHUg%_{Dp*cy})uKA4urBwy2F;W7wpuTM)GDb`Mr z+#v9n0&Ak^^Rsb4}K(l-q| z+vkx7hyy;v;%K4PRwU`I0De9I?_eL`(CqpVC-{}Ge{pUxi}X~;&uB~D5GLSPSVt3E zI@dr&4T&@fl33ZP1nE^sfRk=Mg#n;LRw7N|Uqbqx?@Aqnt00_zNWmX4OA4}T{g)ue z_eK|4i8Ad2{6|9s;Cy=1>Sst#{$r};e}o7BK*|1`ascsZ71n__PJruYe5DlL$MDnO z0lIND;rD#2$@LaeE5DihAX|ycyM;9Kw`2gmd0{@1bNYWp*h0egsMa?$NL~B_SkYP- zxclSaN!aFp(W3z?^XI$9NTA+7rRxyY{U@y2*<$GROHlKvNo8`}AlJc*CbF*p*CcP1 zgMu{p-MW@g^uh2X$;PxDXVn5-jdKIv?uTFDce#&zRSpnSzn>7)e{W{eg81>05X=8RHuHncae4@Ze3A4{ zL6X$`gqZ#-8+)}rIbLISJQa9Le^KL&Z07%YHJ*JQz~xo}2;CYhS4>9U;oD=jlKvHq zDpi=th8Gv(&`bR5mRpji{ZDT>znMl5wHWwfrp2dcIByLrA*owGpMORAZ=L0yk;j0< zpG*G}dh=Ax|35@;{v%zND1MXnbdZ~9G(K1hq!JF~l4LKD@n2CppN<84s^uXNq+r@# z4w;0=BygVp=MI@nD1h&i>7f>D$#{G`R`{T}Xe!{ppICrj>fzyW5J5>qcdF`i1BFP5 zi^j$d-C}e{*fqM39RY=xFiRpLt@OS}@Yj~<1 z03+3sM5Q2$mRZt@eKTh1yd>hnLl# z*6#e|?Kf{0JV_*$UykiawE(W(k^Y5cHss?MC5I82OmXVB%pM>pP#)6U&_;oTvm08{w#AsZH= z$WeUdrT_NAZMJKLeu-U0ktNk(nuJlR*4?&S1l1Ce9J2;M~J5zZBULM zY`_=fY9SKJ1}n4_;poleQVX4kZjhA#k|x@*=@vR_RApOF&`%P+W z9wN3bFX|IpV;+Jm-RgKS!F_l4qFk{;ECMN`#W)sh%Rafl$ujU)iq}172XSrRQ52hQ zsVnF*l5)MYa+q3j+>1q~bG$EU2Ujp}(!?0V7~0HrLV?EAE>fY&Y8F&lLNt)oa3!%t zXRxQvY0k9C>hJ8EX(l`bko#Wc3cd@#f+ju@rS62(N&$eMA{?} ztDj6KiWh;nZp0&FTC3an{R*r&KH^~@MLn*(RU0|)+PM)1b+A+bSp0ly_bLI H(ewWSUyGng literal 0 HcmV?d00001 diff --git a/frontend/playground_intervalpicker.png b/frontend/playground_intervalpicker.png new file mode 100644 index 0000000000000000000000000000000000000000..fdfae84d070e550339cb928595cbd2acf6926031 GIT binary patch literal 29303 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 H(ewWSUyGng literal 0 HcmV?d00001 diff --git a/frontend/playground_sessionlist.png b/frontend/playground_sessionlist.png new file mode 100644 index 0000000000000000000000000000000000000000..95815ecf46ed71f1486542a9bed4195deffe4675 GIT binary patch literal 63225 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

6vMD2aCpk&=eREusVjB+H0T= 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�s+Cue;r-D2Atm70@`$t&pWOGXqWOLl2pL_wxSPzLYPIif?%K_L6}PFXXHdgY&%<_}<(!}IvdZ_U_mzb=kyCdkrI2l;@P z{6YVa@8nd(#(>6El!whsR7x3`0D`N40YI2k2fi32ok zcFwoKKkQ78oe-TOR6P~OAEYLuNsK%8)IYMu+(E~>_r4$1O?wbr|1Y?idPAnZ{xNR; zTe+3_Tg;m}T<+~3Jp9c6OL1-GZO)^iq1{kZQ8f5h-PQh~X6Dqpdi%#JdT=90M}IvJ z_0BJ)^V|9MnS98piv(Xu=L7n zx?6y%hYCdVPl7VZ?ue(o6|f19lgh#PM=64HSCz8Rhh#0It=Ed@W8L5I?b}%8vUn5J zQpGUn{gr!5Y?574PC;RJkQOY0_eX!}Yw09-0>LCs_*oBtBL&Fna;T|77)RRp`8K_j z-{Rj3nlHM3{@ht)!ys8A)TG_k%;bruy{CD!TDq|Q?JXOPK1PzJ$z4{{l|_G2Luvq{ z_zGF`zLT6AmsbSjOZ@;V+8!AQTx zFQ~PQy3zTVS?Zb+|;L53?x^oc0v8Au(!H3c@FRn5^M)=AttoU(prJkwh)qz9J&x4VCCQpr>)D2@=18Nqg4Mf16}N-7ZP)H*+HlK*%V87bJ|!<(nE@#3(0k)-2>``) zbDuh!Atm2XQr;*~0PZfdH#Ry9Qy_-OKD`H=-F3WLl>u||7`;xBKV{L`r=g2FkR_ULQ9uA&TF)@*D8ymBZZ8|M(Ze9@*omnxXLJW9mOY-6Dt&J`1 zEjmu=u5FuoqO7SE3EZ_)!<;AK&UpzvGP}ZZkHSxP^eU{axpGcpv5$o;YO{Lf<*L7s z$;rvd@M)sFJ|Fg{BNfJMf)=BK`GT23uFC!2y*A2k8VTz>8EfN#6=55PAy>x=}C z@)hxk4Ez~n53R(qv%S6jr9IvoG#CEB5gkzOb~#9-;uZ8WqxmMjAGN+7Kr$2DP9Vyo zYEnRMx_0v`8+HOr@mP;Y#5W|C{JeMdW`dEV8SMXENp*3wE~@H@V?PRZe|e34l7O)! zLN;E|*Rg8$dyunV%~UU$W3+=H3zkoGfz_-h_y*qTygOT48bP6ybN%#xoJcyRO$J*= zZp>MZijXJ1EcR?wIc!Ld+aE1bDNV3U$H}1GMDs0Ujwwz80dWmJ>p9tQn&5e{5>aC+ zmb9>JZz6nWakgfw#v6s9%7qv#bw0pO?9Op;X4pOV^9Smd|y1z7>ty)$F PKcP`m)mAB1vby&_;ntx< literal 0 HcmV?d00001 diff --git a/frontend/playground_settingspopover.png b/frontend/playground_settingspopover.png new file mode 100644 index 0000000000000000000000000000000000000000..0859124d1889280a3856e8cd2bdb0e0157b7f4f5 GIT binary patch literal 28615 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 literal 0 HcmV?d00001 diff --git a/frontend/playground_sleepbutton.png b/frontend/playground_sleepbutton.png new file mode 100644 index 0000000000000000000000000000000000000000..476ca56878a49534c13e120ab9c1c3a97b8ee5ca GIT binary patch literal 33347 zcmeGEXH-*d_Xdc^f?aq}5v4xQLlY2CkS;_;Kstibi%RdkL!zRh(xgiV={58gARq!# zLvJBOYG@&pKuDj%`}@EDwdTXjtXcDAX3gXSH|yl&ocr8m?`vQC+UJYDuKLwW9G5^K z&{d6RPYpmICg9)GBNt8s%_CmTQy|b^AdRPwUj$}sqnTdam~QXgtKIvH@6@%sCY}Li zIm~XkiAM$j0dT)&zaYPWJS$D}J2x(UJl%~(i~aTN?W3p}K?*%x!`?wa^R4z8C5Un~ zJe-Qo%*;%r4KW5&-~Rmh;?{S7*E(%yXsx^mK1 zo&7&L;REmt9bWd0>^DFEd=k->3krb9q-SSmBM{I>px)I}px%^P(+TI)#bg8)Y+n>Lo(9%xO+f8-QInWD4YiNk_ zM{BO|j*gC;M^Glvqxz*?5l~K=1}=pVX_F|i&2$O$)>-xB+@klVgO&4wS5{ZqZ`^a{ z0OcsKzC8t+?9-iOp6qom50 z+>NJRHL~;L^fZvaUw}X+*HRvz22D63XnVvlHkUT6wO8Lr7FwayM#`bHW_vqh{5;{} zmEu*#-}cxQ`W_bSGUXw1*Y|f<@$X$NaRr!Vda`6@Txz}RYRhhwLR*NhI7RguaR<|2 z6ENO$)x6Oe7~^~Y0JE5*mQc=iYn?jnJTR4c-Y~Y#nU$B_T#rYlm^V-VH6oS~f@=}u zo)hxj84*-c@;Pc1;Dg>eSU=M^0b|ch&blA8xvh59X5eavqQ78&{29Fs4PeZ_-#8hZ zyu|ycRNjZR=SiN4=&E))U`}naJ^u4~*E7{|qN?+V`%7x7 zsqlG2A?>t(e3-c&@@Ma~b{6?LXMamg65!Qea(B0aEPuNCDHCeHtmb9tFlgQCn{>B1 z^zf4y${!QFToA{)=)*2Xi#om7LA)T~m7P zUwRiaW*9XVRYbYEhnxipr!?`3zGc#y3ei9tTVXUvePK)X1=dV*& zmGi;R>=`!VX2f`_RNx;j4})t}4+`I%IyHCyG!%^3-Bs}Z^QaJ5PO)rdQvX#yy3O5ihb2g|+9|U3z;kJV77Uugj6PLp&!59E)&4wT~#~TY3WlE#%y*Iuy%^hHIK5jy|}nV@@Xbj zWBGj|Q3A(S_b!f+*;cIc{)25&c8UbcnbXv*sp!Nn%((0S^8Ng=r51$9Yku}6WY?6o znw%9!8o(zs;AYyKacX!_MnVE*F9lr0B{xy-lox#XV<50|$8zpG(>Za|_F!yf8=SbE zuH^BB%VK@JHu5wmr|`sJI)6zjo6-t|AHRQGbhMR~o`QID7>xUc?upK{>&yJ2G56;3 zO<3Y~Ku<^eo(_kz&kp=xE*qNJ6y~rr&!nZdg@J1%$feFU8c#=x%c%?2NXGK?{r)V; z?>w%dHE>LhxX-%i=iW@01cS|Op9Ve|D6C<9e>$9C=dI=3it^{zB;&?PaP`JlQX)zs zVz=iqZA0rbew;bGv>Qh_cW6`Dw)Ah%kf{&59^GMhQ#$>`%cMmCUaeT*XQaYC39I%V zE0ZdJ+D$Q9>5r@ygP-UsFO-Ch;Ky_4f$!#!Nc>nNayr{YLXcd;xIzkDDMl0xIZe0N zZ6yzFsi{8GWxjIZLhOZfMW|D-+7vCoij(JN;h?aH$WIK?W9tab3*EB;ma&v%20J~8 z#Ep_i?nk@mgXQGz9D2^_A#~-!9%b*|!`jcc+aL$!BLyyUj>9HCtU`ubbm9Xet|*7i z4Kit^z&0jw{fOe+M}qQ{R9Uwn&O-@o(#l#?u1pcl~B0&GDcz0Ap6odJc{xpScx zD;q7KP6<6;qQ)NI5rL}c-=EE4h`ao9zmMmWhte|^5V2^h-GLd6+}zHZ)`S)M>mJ>d($0Qt$upOCA)qN)Vk`vO||KNH5`m-E`nFoA+yHYv-trV?f^eBKKD1;7O0llHzstNGV9{dx zQzx+DaFLe{01tb$v(zu5#mc~b&o~3zUX7}K3cx6Tavm|gNXW?nVAG?+e@<{m!o=45 z-yOxwosS$f3Q=X z-SOnu|9ZrM1ONL|^8cOiKTGrf`Qz|c&fwspXSpRp`2KxiVJE1+zph2sIi2(en<#k5 zqqogqcFkHB;~!nQ@kc_~)iu@LiRiDNN7g7LO0P^Y`?YJ^2c|V1{6f4VybX@5FwcEk zTYGMW@1;5e?9+GKt52dR-3#WrS(d3IaeNzKDuKe1*Q5FGzT?*~C5lT+xq3q zt5;9oL6@OO*sPKm9q;~57~=LJ<@=XB2sPh0w({g!peus`%)6~5txuMrVNM&yLjMH) z{y1H3R%?}8NVcJ_uz+uupzViDb4oSLf_qkt(bb-N-v8N6=LE|@S`E$k&LSUg??ZXN zEj6ovp#n>VdLogS(xm7zby|tAqo?e-S0IbbqN|6Ft6i$sogU_PZ(DUv{f$Io>O=5g z#^6GgQ{+@)svn_rYsX5?;f;lB*ncjss(tgVbtnnlra?K35HtIwm%3YP`wF*Ml^dQF zxRQmn4#q~ppc89cN@=v6^VY2gJwA4=gA%yi7E7Z z4<4+fOJGLFVQQNl5=xBqonJ~&z08s!(jgIS9k$W;=g;5EZ%~bRauA_uLuySBhsp;0 z04m37;O3Ax4`cx<&cnfW`?ZDl0#zV8bT3ne`!)}KLmh_G)efe#A?>M(#ND{MhKlRM z+@U>Pj5Za{7aEsh@vTHsMsuW$+pM5O;HGe!1o!>A0Hk{ld+2dBJFzI=aa`6ag!Jce z5e(Br8fpYv*7~cAwI>SdaAeKFrj-KbXDThi23KHi^ zUmgsoU4aK4llZB<`_oz%-b_0zr>7Iu#`P3{PJcagW5|!iPQkx-N z_F==|aRloh@t4zABBb!oqg zl+)1FDsbJ*xx<~w!!d?Mj!@&Ii)<@>s+Vl&4&T_6Lauv+#sRS@3LjJs1ot6-+Ez}7>TqxTYO^n5Wx2?cU^fc03Rl7GCF z5?q<`Gri`Eq+~6Ge3Vx^?AwNauR5SclXUOfe@QtKK;e$mqL&mJJbb$C*fSN^ePgRf zil|aslx)a&A*Xay$X2~WR0So0GPx^YA<#-RD+FKZgB43va7*4+Mfq=QJI?-4 zj~&)~7z_)&vucNG$mE66(epu(tA+z*emfJobb}T@Tt2WF-zNOhJ{7nLmJ+a8XR!`k zTa3Y>$QJuY=CH{#o{;u1966f&?U_Lod3QMu)=rA!dGTTt25r_z4g?kxm~wo0s_1Am z{YaolJ6%~lJ?2Y^C@ZmlYbW0NXfDH#Q>IVnXUFkI>;!#4F$NY>ce zC+^U8s#c=?aPoKdq5ObRc`_=$PYOaK)shcwqVUpQV|5hXP_r1hz}C34a~=rBA#v1N zP3=QU!!%pg+ug}F5`N6#&DWY?%Z)q4Z2Q8whC(f@}>8! zAL@<6!JviO0BEyb-_TIV+DBOgWzl$fP+-8QABV!LGvvKC)$wgVxJ?~VEt5;#qANM! z4ccwr9b-YQj(hthjKMKpWdmn%zR?^# zo5;f%4MFN5(!)l`nPt^wQjq@&n6Q3O^Qp&gA0>`&8%9}Y(xcCXAt&kO3M?xCmghd6ZC@q4IF76jWC3*b=~7J)MZI+O|4 zxW)fi^4o(CE=x-au*`t`gWOHSlECiTL!=EvNxZZ`KDA`yfmQ5f{q;5W5vlj3dr z{u(aI<^u1PsWX>@$&+H1?VCifpb~jvU_r%ab!EjW;23Nc9jrv#v>iqh zm4t5(${mVNeo@p~A=D{bMaACMGhMDb^ex`cx00fHQ*|u!}89ShP~t6nQufX+jJ5 zfBh^q>}t4mIY%T!M7)PvReN?N?3{5S%?Axz-roB?)cg0nkjfP$=F_?kY-}$Id`n_F z$%mEhlhGV9cS9CmmQ8EyS)?a>;A&XA&M|MN$7RWT?LR2-b2$juo}r#%u zN8hWVXz%ft3oy?`rttRT6`hM(rR$Onu@C7#WULL`^FCEyrypBw`L-zDcly2SLbw8$ zg|D12#80fqRjv_i3a|3G?mx+I!*;652t2I@o(WMeU{=1s+&Sr`zfF zi85lQb_dBgGf?uq@&H};sq#LLJmu+N_3W`mY*6^{t>95V^|6c!DSD>RsX+%5H&o%| zhiZ%y)?Ow_z88AR{xAg@n_fMuTK7D9 zl|$^XodjdRqq2W9j5tr7upv5)%VGlU5bwHHZbckb5=!Pb!F&t z-~LhbbCeDG89QgXLtOA1#|3}|r9&&6$WhIlGHx3qmC>bw9_?hp;j~quj$XzCT(V*m zI=9jBl$_MoI`yO0A!)y)NS9+Wr~SZiATDjoz1`ZMr)|>H6PQJi+|J+xlY$bTO1Ar0 zer{<#t?&HWu=Nix6?2`%@wS0amtP7ea)MjYy#~on!Ys3_%deCUNJ#oOwXK!1l7&-- zmN;3IvA%6i<7+r&YaNk->@Y%0GNe8t8%k*LdUutx(P%mi<1?+(vlmg>dIl{{z3aqLhiBQgT6 zJD4Rs{c=CatWg==Y@>*~JXhrvxrbAxtxJbh-I-#Z#M{6#~TX0Zf1NgX?Iv(+(z?${1 zzjpg5uuT@g2EM&MsLl2#`2Hwa`Wyd2vF2QzQ(3jtrf?B~VDcxiy=`q+bT}1&P)CrD z02?o6E;G*C4E!#DDs4|xXL>DuNUn@BoBIL}3ke`zIAdU#G+2@n1CWGwOO|J* zEeJcalgCx&DKTEvhY5yX^D<=`5)vH_WBGdYGFsaBCmo~q0=JGb0ei(-4X4~ggd>%4 zq?CmzUVB^n66gKd6!0zh$B=Jk1=Y|Ry&kV3+sk*YYW`X6=p+!L>guA1V5+8vq&tkFt}4&9;ohlx{js_xP>m=Bd{T zu-@)fxcPWz+Q2}y;7ORm2(45KLSHqWR`hqoD%FO;KQseyq^{m<%HmfL8|PN{uk}+V z%X|9$rQU`G&laE^A@(m`Jart^C~YANwayD!_rpDuJ?{b2m1u3_wP?1#`G%04xrXn*Gew< zS$zEXk^J4XC`LK+<;3{mhl(JpJ^_D`f8mmsv+uP9`?fI_%!k3m!LN5)orlOL{u;c| z@?IS9GUj+lp$;;u_Sxy(wIS3Y>s)@_!Vgt1TWOxNdqLH9comU_R-~V7Or=FHQG6vW z)nz6~H!APbUYE+&hd_zHScmPt0bTd>{w@s4mR*m+L#aAYIrpE5>bxxj*mxiWBW-f> zZm^usRMOwExq4WZkum>ENnbI8S;cz{pg74g!H)Q&#D*UlNT)x z&Q%{qvp}h9UBH&mG?!~Sy@+etMAxF+8Z9bxC?ryE_hhWcT$5K`(^te#okr#2fYR8= z3Mf6ufkm!9z}MHZ#D=lEj0aO6s=4fc&fyd1_;LP^X)XIh`fs!pwrO*Potd*-FJNcA zMYrB)kod?e5>07K@7qypzR8K-x$zogaiCxL~iasnFlH@%6*s=g|%g8;!1-n%-Y-sc@qc`U7xNP^kQPT;npDoeyK*Jr$i+} z-Cooam zq{_1dl4|tw!80U{IA0EKJt}3DpkYGh2y0?MMvB&H?%q_Y646j=kA&j$VB7xiDSm-j zQE~1{-Ont_e&c< zWqQ85a33yqFCjaKewB9mA&iDG576fRFBf3AIrG42Nuk92Yq6+t1#YT-{NkNfmll6q zu^wJed3Pbg8tqGC1E92d<4)jys&S(m%CyHvqGh)g;A_k;_XNxzG$})yav8NE95SIJ z@`XM0tBI$wC{BB0=dEM;$#v#W8u;s3XCKx?b#@D9M4p!OF*lDf9wHf!Oo5wH`}JQ|1O*l!7Uc?{Dt(F z$O>LwjNJYE8XM{Xa##ZNa3;fc0fI zEib2~d?)V%tEMpc6gc!C*DGgE(F48%>l;6bT$QK+YoX0S;Jwj^ox8+K3X?woN)3pD zdBCr~B3(9>_hyuWIUc@tStv3lngbB3EDr3#qRu!fng?PLO((R;g*F119q_k0-04#n z#RwaK4LkT`dHpskeZ_`|4qZ;#JWdD~Jls^}Rq!GTcSuR{?S^=xr9hCNmEHkp? zDf3#ZTBAJu!~&?D!fX(LQC8o^clN0~c~3doX@4~;iOc004Ww1*5k8{ob!O^<(n|#a z-jZQSRL%uwAUsRv2@y&mzN182V9@?Nl{92`jQ%xOk^m8w4a)@Rq%X_u9yjs+N97;h z#aXu+9{C73D|_NAHa|4^{$eV~><*s&{My)hkC(Ri#p1vrJ9zi&zu-e{@} zVI(K;8d<9XWt@%x?6&bB)>?$ zkqjl%Z8Xw1`QsXSD5z;~39lFF*Nub-ap&<=$jbS5r&dEda#e=+W-fF|Jer5-QHI53D8e48^^#S`k<*T-@=-U;1An%_7^|LbNF%1j|Ni{QdRD zZ7px=o6TR(Q!E}%EDP^P9BjpA_gP2pDQE!53fliGyA8G%615O|xG`-7snJ;eMCO{c zU{Uhy4X|$0TL;9${8I_b;iNKF>>1*hdv`WG3|m=Y?hk|+ z4IY@5Ft|+5==YN@b9wwXeK^8&a>4(Nv?}n$|GkoYg;zS%$D|TixWw=JzVIY{6qVVT zh3cO=7isJ^mznq@=CQre5utgYHfAlc?R!_Qy|_tIV(7D%MA4KrNB^CSZkH8Rk;A(r z&eS%?dWCoWfxV?+ADkPVT$Wmf;4cJLSJnpli|lNLf#;sMCwRF-%g8O5P#}>N?6z_l zPv6C0!MCNHV!EC~uJ90v^U>!1Wu@_$CDAGOgpiN>-vEyEJqo_~q*!_U`VAqaIkPpjl3uAt@H!BU268#>S8_^#*o6SZBxk7<%{s;WJ$nH?> z35nv|X3GA=RXwoh&`2$Xt_WS_g(3}mXWvcmS<|U0^P-8^bnBw>g+CP8FdQmM30@bp zzaR?tbu8$o`o^*P*#>Y!c1lWrM!`akNXFs- z%>DNI-;Yvz_x;Q{dnXa}vCg@!9|#a$9I` z^y&(xwKU=}@C0Jy42~&*ZrN(z6_YnB&pr2m*BcOf`SEF5fob?uEm>D|1y{_}5T~_w z=LYLy?l@LFTOKoee!nbRkm>BXhe61f`(^0k_olP*HbO(_INx`oU1ij1>%6H2@iZ;4p%q0{`4HdB>B#OM~fzQnf({}%X zs>el9sSjjHkDODE#9%GQuEODZ8SVF!mL0c}qhWAc&p>X6!|ehhq{VYrn8K1jY}M3* zL<%N#T|S>_AoQT=*r%XSFRR&hx#6jkbM{~0mGbt{=fguyio&WQn~j!Awo7%Y`#b;S zc4D&@4(i%1`xo@*%q&CcZ>yn0I`b)GIaUO_E?pP&kG`qQ5GdK^lk10)+LR&lmYveb zVRuyN7y4e9yIN2rqEG@*HBHAw4K|3SXU!tapB(for0Xi9fiX8n*iDxnqHJ9A-moj?bQ@FpK3&cVMiOsgS|C;?D|RSAP@@S$WBcDdno#m|n$oeNEbG7&5C1Hhxp% z${2{qT-*~sNU1b$^CWoJ$KR*L)Qng zh0q~gyGdJ(No@(Og*d_zQc@VWb>XeXotP^ysVWbwlpd}y6vtCz{2N2x zmrhqvc`pI~6ScPIg`ms(pw}{=$1R4RI~rjq>i4XPEF%q5G82TPH)n!Jjjw>mDQ{7U zsah!&v);$gK2bBXq^m;M8lX;EKt4Q&g9N4x*7ox=^JrSvg@#jaB!_Mp-(UsQVO?EM z>i1!`pIF-Ie3cNw?3s|`S!$17CME}h7QC7XZYmnGTqrfoGaBOTBg8@nO{(p;oM`VuG}#SxOcW+1K6q!NO`*Z9J&Z`d?PCnA7}=o5u}O?YqSJtphjM*DFOTKiHX7== zAJuKCP?v~||DL$t`5U~cuAb>*hWuRhE%m^d_hH6Dy^2=Q*Qf1lE{z)HI80IPhi|5r zjqx*WdP_?=<019#3(roY=w~8A{G9l-=rUeL`<*~4wPskpLfwMaayhvIRWI8dFzsJc zI4j?b4?9!`Z2s(-mPS{OMsM`ds!PMOthir+e@nZ~ZLii0Un2$kyNUL)+l!fq-B(fe zxXoGWSkbVv5Rwzn*bslM5wB|ocS`wS0FaZxqjA^1+pVsu=D#gzixC9UyCG5#1_~@X z<)&0`+?!>I+FnTix3Aee!f5|vu&V;e7oNa;_B_+?fd=8iaqpM6d}o7i$%)SyJ(|7zuao%9U4x0^sf%eUm%Q(J}WPC|2WDDkb)-I z-yK#+6ASqm>c7e*=+>nN)yB^j3<^jClCV~FFXMws~ zrrQR}@zlRli`21G!QS66od!`Yr2c=dDXpA$d6mP!U$@_=myCWP%r0)uShq}RjPkg{ z07{^i@01A9jp!9sTvUU=1K z@R1K41BM@AePP3HJdh13jjDaV_Nc2b>x_a@SipIv&v`9NK5M=Oq$wsw2B$mpY>H&v zCLReslzB1!=}<`~FLC=OY>v<&#y2M*=Tfns*a)VCZDV}!?T{v-G3Jg8d3Z~FqEGn3j3d5Bi%4&25ZUScoVQ1?yY&Yiqo+% zRIhDcH&Ffi_dlOQsfwYV3?JmW01L&}O;p3_XC0H-bKNW3GsYd`65|&o$dMdkBL_G zey9ei5|`d&w%NDw=Oh#w5hCP-pzT$Of*bP%Dq47*iMr=uU*aVH;oYoGL42DD>eI(^ z4pe_XpUv>4?1b${82yiH2nm~2$v@iil-p^4-K6e@X_nsKUM?C0;|GOXABMCPRAbfngX;b*PDt{paqr(pN#@e;DG$buyS!@cG_BM?HNH}3u5X!%? z_iB^1S#>(s+ zBxKXc=ZPaFZkNN%_O*Rq{2I-ZpKD3-#frBNCUJ#d5EmY6aG8CfNscfWw^hW?LUW8| zr~P-(6`4FU@dnJRDBQIlb?k}3-mbJ_H$~#@g|-ZIPR+@ZdGIw_V?JennxJ}~MP8k4 zXG%C%b@cfcZ-i;|FUV}wwFTxPJ3#?ng*3jGy)Rx0nrcf{-M>ZLnNmC2O$?8yk5HDa z>5Y8WfodOUzFKfIEp&Ic8+-Lzp2&X9HTKozIuEq=%SRNWZcfeirYSMbfyQN@Y8ipv z^p)?=o_TuK7Iw3m(I4jh+f@fnkd!fYf@aOBsOK)Dtc$pmIKZk?En*DH0VtONvo~`7J_|1dm-)*7)&JM@JqdeGe+{)qIo-ro829y0;d($;VrUXx) zDI+0&VPzzuZ!~6Frm>gDUzyLbLca@B&=@s1{kj=bu9l_fJRfz{JU|O=6(f1$#?8|G z-=d<}X;!;XyO(vGE)h1N?zXY)PN-6+snP9~GZEK`+|L{rioGn_ia+mi!-?{jUIOH% z>gLM7{1cN>4=(p^8Z_IUI8HC`o= z9;c1e`+j^c1vDmqAM0Dys&G2Qi3uwFJ5*L;^teQfXn}iPza7+O1Ht+N}in!0*1JvqLgJr#%>U1#Zzh|Gp(Vz34j))evc?mF?;P1V&Dc_BfMSzk~#IcRc@gWVBSh zc&|ZQ+gy~TSI4Hgk5VsrAA^^|GD9Ia%PB+ z_d&hD>IQ~!gq-@3)i(Fmyt&yQUq4svlHGd96i)7*3aIQFR_g0FW-_s|fVgStPXp>7 z1?WP&-+rQ?*P*Pd*J_7lNJ7Cm4op*fX@0c%^}|a^6K#gEwhzPNBZv z9$&vGg{pHEIaD(JLzN1VFlpFBzKEPRVFd>#_KhP*e*L9aQE4}#%O>O+vJwRx#4PH4kdRpS zZ#o>Z-yCR4K7F|pz85d%^&$z)`?zaMs5;K-L5=vsV7iw?YidXwaEBt{g|#iInI4vLSytb75-rqlNVpf_hO_d}+d9geIT>?0d8?XE&8E)9^I zF3&tiX3qpuCFvM|{o;}HwViBn^MLMAmXgw6*d zzias~(Mibn2gBPqrG}u{IiUyU)%KBG1!MpINZh%e!0b9(-5AyAt~DhGVL(YT6RX*{myJLfcgsxmPbOGqkRV}!|R#@yh4 z;Ngw?TpRv%*rI~{`YP2TVXggugs-u>=7Mj5d`Fgb8+ocE;kM~YE2tpG*8KoWSqn{v z{xH5k*B-^nwm%Wo0e(o}y~B>C`%JHmaYsqbKcPHp`8M7?X~I~<0n z%AyF5EZDBD-s;@`=wholaFl{xEAo;ev@OTyo>|r6We{8IqVAd^4MY4U)YvMUP7K9^ zH|tLOY@q~nps?uxk7SizijS@jvxX&L&o?87$@@hbHRk;UAnMEta&9ari&UJF@wg`B z18}Kr_Fcoh_~xHDoro)U?%e%;&yOBQxEnN7OAeSm|FN_QSlla@D)u9cGXhtZ$1(8e(_(Oieb1fmri>yCeQCBPrWrKB^qvZd_wk}HB~ z0^t}+aQPHC_dk}z$9tc@P4NHP0q18~fW63M^R6ZFJ*PS-oC|M*{#{UIRW ziUZ%w4!NXJPF(t4%+pOgMyQ>61< z8pNxuR3j^_dXmoo>EA!q|ALFTSBOs?X;tMKu%sMxi^mB2^8nd|ZzywY zw@4o;cN(~vya4Q+*B#*dG!QvPD!y#^%7M1|7#- z{R*RU3(D{75_IVuio2y^Ul&lzXA!)LyC|0Kho3U#K5x*&OQifZBp=nGa4u8st$>ys z5C`yttyfBB?T<^?ET_v%U5E9mblgy;El~iiS#)Ft45^_jFSmp23z!eiJmF93B@IDY zWPE7IdP%7+Xs6=c=|2 z0+qK1Tlm;SgUuEl)QTUVn!>kl^czzAL-4h{4oGtj*4szfx!B)7D+OSPr=>6`Rk{m_ zl&P}T3wjf1!j01z2#Va2m~HhdvfXc;Z9l~m(4+@vAL44t;j>f#WT?6qk_^2 zhvCs}%Zq#)KruURw4Qcx{jklwOOW)uvcP(@F(CG%kKk0v_08&;Qt2&B5dJ__%g7fu zwud01=NO3#c7xEJ?nXd{fn8aH9MIO!9d20$911j|y`y_CYqB<}6NhPf8%cE%rsmNo zJS21hv0OKG5voJ+8_WhrQUC0_>{!(J+Py_ER!XGQ8M}SUdW`J7*8|BzMio{>|Itfz zZke7mzZ5H(H{TzI1-uz6FhM~GWP2=kXuc1F z2^(NLc{jn~$he1gmU5#OWhyMhFSYj7Y`9)qHF)*g13T=BJEq=YMQ<6XwegxOX&W1p z%z`c_2w8_pcp=+69f-)jKH8ti?3)tiWfCNG@tzGmV+tVIz84pdLaDT+^lW*qn6Itf z)8Ht}nm1_SwwC@e8-b=_)A9=J2jN<)AgtCGINztM@qbYe#tYU>zV#vsWu{ruKJ+md zOA21P8K zXD(b|{E;vk17%@5b8SUYr1L;U4;l45 z{EBQnEwJ z0R=LaSz);hx!^i+XLvdH1J=c(RYJMFPXZhoOe*N&38HpG3x|>&*k*8We*sNN=uruy zeRrD=8kJ2Q@K|Q^jK3n!$T&Xksfo~9Px=X)uOpy-sJ3ncHU7YxEcyW%YXvGmOEB@8 zwbNzlG0IvoK!}DJCuaMZSqI74jzgGiAc(2%2Q#d@aA=`zZWXl&opMqRh;5L`k= zMyuXJFz`kIhpX#h#5`EJNo}r&MvJae{1Lhr_LQCNTz1fEo>MKm=Grzo&#>8pm6Zpm zjL{=eNN7k`feNfCWaqt|%K58_Z)rW}`6!2*`@;jVeJHf&q-x^=V;;o|C8A_KT#yQ( za$yt39utu<@f$AqK<}NOs~hqS@xy>S=Z`mE3jJP&>IHJ0W4sP)d1 z)O3l3u%m)TUET*ze&BasV;2Bfl-SpPbPJ|O`&)MwAi$OsvqJ$YyBN|kEP|&guZ}dV zbK~~jPCAl8p%6Dm{TTEceO-XA!q5w*HFuBSXwq17vC1am_fJ&%h! z-0Jnk&396ATP+Xl_h7BNO%11k5{b~g!`SfinUzY!YW1C+@iMr!>q1RfKUfOi8r@zf zC%^P&OAAK?r(i^K17@I=#;P{M(jGh#Qqh?|P68e=Am9=B%iaMy<-}#sBMH0~A%R+= zYPhQ1j5GTsJ6mN3Z-2y4M%R5YQnk@M+@5;8RIJTk=PF2yU@qFwVpgt&`f4=JXo++1 zp9(x^$h`J;AT06}twoER^rhuFYlXRtdA)nBNU5b3uF*7fSqv566e(S79ncv+X`sh^ z(VuyLqS?kpjCLuAy+j_rPzzJ7?ODj)D=d>pPFHw7EFY3H54Z?Lo3&QJLMV}mV4)aV zB~Xk&J}u=S@m&_$H;zQ)DkX}PSwH_@+WXF^rn+_A(4~kK5Ty7?5eQ8Xq=N;KUPI_a zk(SU51O%iA0tx~OM0%GR0tkfOQIODk5kWdqrHS;r68HD*eYgAEea;={$GKzN^@Bl@ zwdR`Zo%5~pna`SB>6;IokgML0Vg2}e`g@GU$-DY7lR^bA)fDz0P5wzTyES`1vM)>6 z?*ZG7An1IP`bzi0g8k;Y+Uf{klg815&l1#QcLA7*?;a|VR5O_;>@omn81xmYH@fU- z*0;`4?~{oN2KIF;?ucrD-oA_P5%sa@J@cUtpoJ*6<1Fv9jcR%C!c24bLWP4L>!&Eq3ZYq9tO~!Fi2DTXcIEusfgZO-z+$1}@LAFlwbmz{e0QWK> zY3AzEy{o*u_kBHK+Awn;p9c@pQl3&tm?R7delC6N_?muo?1m$&`&thM05V;VK=AGyGb6UlTKio0N4#Z zrbU1vNw08nkrZLw#F zGj3ObfWIA(bDvn;7zf5w9C358A2IA0{V>1#V!RudnbaBbi$R0AmgS#!SH1}UaZ4)r z6!Pe?9}j&JK6iu*tTTGFRO|Cps`*rPAY zg*TTJN_j9f{4&M+z{K1bDx1n9e9@B?!-retGHTzCKZH*}68_qWN?K?GEgAWCgaM0#KoMt|vP; z6>J_^JB*ZC4cHFHLe3{M2^tFpbJ2t%3pdj88~g*?eSUhVySa5mT7f4$PD0y-Diuk@ z4Y#Z{a2c|IrIys}&?k|v^({mQRe#N%Jgz!=#?&R1VeuvB#a<}1E4HLU12dn!v(8Ox zDsedOYc2G1vYi9i>3JW(QWnl+sWxgQr}GO7%FU!@PqMnU@Bz#j;c+5Z4U9G5i*q+k zKINGsr@mglaQx=VFyL6fc>VC++Nv-RoSxGIz{c%Q9xfYn0@{(?Z9F1UHW5d5AQ6H& z*#^>6#6+am1_Q;OI2`)lS^2X)sn?_UOBa;rC!WpEb4Gok=G>*#we z^msk&49C;$JwMP1qOeZ?vUXnS-gG?XUcPayP}))MrvC{5Tn7+wh4o|JC*H;huP^mf zLwBJTp1KSusLw8zDf!6~TC4tN9RxEUVgdVo=iUYz<5bObf@t$5wD2zV8n7^l{un&)xrK6`| zm0m1WUa!_!el{*p*P9?L3v80gkUyMW@Na4=qwcggo;(6pqIJ;j&5&kj;pff$1I{^g zwY%NPKtMS>W(&J%BKxFV?D$B=X2WTQTkLb!rJm(pFDL$8qs=w<3D><5>VAcv(+fOd z(_A1mTRIw7-D@9EPz&TLgwt(xj8m%Ks3gmiY5K%#gW5ZeHYky^yg9hPskxbyj0~S7 zynHffYPyWMYYcn7~ zQyWy^rmG$viugX>e}=Gz0Fr#KZa^|5?s(DU9>TWGw!1aw)i5yEJ}?f7fZGjki978x zoK)K0XS1LJShWCv=MymmNZyBQv?mLLA`upM@y<69@N?Y$E^7og~3?O;1-7MXcBvl~|z~_e}6wcL6~bpq$l3QX+rH zzvpcGi>8CPLFNC3_3eLT3#YVs7HmrP+D<;}!;RhC9P5-3PferclVTIyrcKyXS06j! z_y$Y;vGllWA8QA*;#&;VFqT@XRbCjZo&7rrvqk3>loR^&_&a}WV0bOnxXF>d28;e3 z#H}>Ww%WnT?x6}}V_KRhdTagk!O6nMN2eUd%(W{DMX@BuK4Ezo;*;hTC)zk1CFM`? zd}!m4|530gxPNJ~$h<-#$wv6TP=aB zg~`?mUvSB|aRBMVjAs76_$V6%?YN=WseY7$eennd=XV1`E2amxB8I;DQKHlwPM@aF zS%-HjJejo>lkGyKJ7xgrws%@55?yfIH#aw6I8on>pOG?7g@E zmq^yDp`O&(Pd%1SogG~=rg1~xds1y{cWfu7Ug3e9G9)}l8`08R!)b+^2Z))jm)#qn z&NDGUIDdKZng(Y*$KED@6PE+u?931ssBnCei+%H;QRiAUB>oYJCFVvO>9ul*1o9p; zmRV|3oY};RQ#rbq<=j;Zy^qEvR>S;Qh}$Ri?jh|_oGJp%CTi-W(fwB8EgTU>hgRTr zFg|`#!r#yDTk`;TayR|sD9Fp99O=!J{66D31y__R@Hb6a>mKGXYU&NsEC#D==`J!B=0;U0{3NkWd54VU#f0b5VV;_T062ut9%@mp|wJO5}Hji(ju%P`@dWqB$vXWp+TsI2zU;prp?w(~(pN32TOQje?_q&kK;#~v|!O&ou^`Y5tU zd%;NYxjErf$v0eE>|MO_&t$I(7%DK0T?C?nw-pF*NX?WIr^{;}!ri};M_pmm6FqNo z&%m*+RxvIZSjioGIsC)_wy!T`4Z->OMFBh-e8FOzOXO5k6!-7x@jS=^v0nUYld(ce zxQlpD^VFx31RhXA7OiXVM<116-3%B}N2wV1lYi~VsEkwIqM@nGAu=cpTsfZSgT&7_ zX(-*Xml5{9$YNg?N?23_DXvDvSU5{^RyUX%3QMcUJ+o_i=jNUJmB8Q#962QKZu2o4 z#s#3PDBEiOlehkp7r*4T2_%&LB}j%}%vbQp53@HaBf_Ym){6g@ zktvIr94sn8)C-U{q%2XkS~TFVar8iL(MJC+#n^e)ucaNVl@T;&046Tr&`-7_b@ntU zAn?Wk{nm(#P2|~qe|-v1_ivq6oVz+xfBcdhUQ7d|*^P(%npHU}=cD>(iDUVez@h~lzsD4@)@SoS z6~TxTR}nIb++4xa`I8;}s-(}ibqZ_$E=5?pi(kK}%d9-VETKXM%x8}*>V|Jdl_9@) zRmD{vBICzfTb_f(QvZ4S{zk#tPv_6T%$QGT29(23;rEnw+BFh7$VY7k}+$z2fgu^tbCG(QNN{bCC1>>@Ug9#qof$ZRYrY5y}p5y==2X za$LSp@cZ=rjeAyI?3BSjn}Eh=$HbA<-kP0f;{9EU|KAAweaC=SDxa)WyLh3<*lrFxd@ z9ZBbXRSdLL1Qq0Y2M<`#4y-`n8?XJg^n8(t>3mD}B zvc$-EzTJ(-I!o`=G@u;eItm(kd-Ef%1l@+CUtdAZ>@5vF$eU>ER-Tup8Ububb`IWC zl&TRanb-=ei%qTD4`uHnoUK`0q>Wmp=t@vetcePvZfI2kY?L(L_8+-r+_^H7$O)q5 zKi!*^yT5sTP@wGRl!|H-(RiI|$P^22k#!2IT4qDX0o=-feY*EDTsuV}-?QAkQ)=q^ zhyclmR%60l3(NhZZycx@48VH`9OAuGbg0gD_=^27YsB4v^MHvZ_9R?;t?Z?b@W?*p^>s~3&tzg*#5RycS)$#Rrur>UH1NZ|6+!fH1?yJWkVC4uTM{8+>e} zN+`X7V2)BA@UgyhzNH4CA=(D3Y>Vrtm&6{GxF}r~b-oV7P6S_`YpL(Juc45~SU@!V zFt_s#rb#Ak4Vu3k8&YquE7oVu*QP*wZ(fp*xD^b4wb#1Q_|BRjHyK9)A>`nTD$-@L zUAMdp&=~3DlwBicvN>!9j;NNzVzDB0NW)v|hPf;Y2hVO2qSwIPdED^$^)vCetQ1wT zUi*UuZ*Vb051Lx`+Ha<36YE7;#*ZL}P0m?(H%-M$!s5G@36j>Pw`u6jC~TIasw}y8 zPEs-MF5o}%gj%|~TciS2*|>;dNRA-a*ZUnCQHuyY3Cn<8Ry9Bi!-0qeGBa~ONO{2q zf;6wVW5o&~HYg)Wrl~W8qGVU8X&E=U(Rx2U3fmVaDKDhD=0b>p4A)s<>s{UQV}!F) z-JCD2L8REy5Y=Pse(k&`RqRr9yTo=vqZvGEsMPZ2(mnyo1Vo9BOP4&NeZzup)A0T3 z6^d2qfig3=aY&Ff0f?i3xD_Q}L&^lkUdcaAu0cvrXzgmr?v=qTd-<+|o$J}i^HE7; z)Wl#SXV5H_ZK5`5hdOwnHsHJnaIW82>y-LE`8(Pw)d$l!DMllwvjR>9Y9tqkfxv(e z{fv@xewQf82pWk#7_Hx*0>BY~70P5)YHSswVJJ7cc6M+AWa=X|{5lvn_p*`jE1Wsl z{ai)Ote)3FOZ>0!2&G=*S#cTBME@(I%?V>wYBsfd&}wjF0*x34doLLVH;K{$bIFqZ zr1Hi4ai>J>UrLONcDb?`nY!HbutI`9kP3%%^iQfr{OR52KF#v{^b-VQWseGmzB^Pj?=mGW0T>d^8*_gf) zBQN#8wGqwo^cClAaA>rj1`r_)9z@5O&ADGHzD`X@XcQeXPWwY#3koH!yv62IfWd#| z39&pN=(UK%<+nhZ$Fs1WZ7go^&4_=mNHh=$t?<#`cwVc>mW#CE1^ESj`!;O7m1uYU zEnR~qePJ*mIS`|z)j4BU;8_lAjLJ<_TwrYrNpQo|Ghv*rVOVnf!7Da;YIVHHn(8{) zli7gmqo;*>*gb|LH-=eAMx0xm?5=@iYP?#=KpmWE@AnVSp?f|!SOZICg_gb80MBhb zbex&20?%#l?}{7SKiVSI4gahKaP6$zM@>WEfg~VF9wn$OlD39>Sdl+jL^gjlcchpB z=FN5E&ICfLxP`3eumqzqmvgBC+N1KJlY5E%=Va!d=g| zEMjVdq54|p%TF&|%<1};+0qT+ID(45dMudIV|a9!?=szZ#>`TCFhV!L6EgwW)*t-o z;l@=ef}h`67icG(H`A)wBNfkqZfq|rNOgC4ufS38Yc}CYwW^(_xySK^G;D)KO;)E) z8$i$KHdEy=o=!S>A^0VS(Mh{M2IJs`DV{ZP$F%H(W;;Dm!a3%#*Q%oI=1kukfd`{M z!h0zxKqBDU8O(uQLpYq5qP10u3X#7L@zNBaY!sEhN=D{KJvU#SRm~&0mAw{9-IbtI z=;labn3o@EtaM*{gVm1hs0PlsV0@3J1nISiM14*uVA8VHKfK#pleWM8z^2u@^F@DB zd3fjGvI54^VycgvD(_7MMo+qO{yyyOXR?^wWsAo=Kk!1M8DTCWaE%oDrRr>bzj_yA zda6%{mxFT>EZo@vGa4H)C3>G-4BM(TC?8&2c)0ArU<)OQJ){L$m)h1M_NTxDTHTWU z@zFw<9u%*{n9*5)lkRBpB43-&M$Yo=1J2x|rEgI81*N5N`6Wqg(cOM6cBGZD%77RB zMXh0KgGt%kDsFvGm5iHf{F?RB2^zKTDey5x5|Da!=_fr$h8`VSvPdBRQ-x=Z>ksbn z??pZ#No9-`v0zhokz1KGl5@}4--6)gO?KuiyB^xVd+-jUmTV9szwBA@AVzxCd_f~L z@Qituu>`-Pap|q3gQ6w(;Qg%G^t-yM-beHt;GTDN`!=~%d*TZ{z>b;9`IB8y)Czc| zUx{pRR4z38#5lF;%k1GPCb`UFWTMN}+k;WV5Kol|t?fB-RHxd~Aje?u_;j4kgRbyN z5U6B}EinIl7!V`?W<75JJ3i%7y!eN>1t^DstJ?fHQB`_Y$^u>%;F(*#t|K<#p5z7& zmq%W)+=Ba76`D!fDa47Wt7aXcB(4(9?*PELJ*OSJWua~5H-mbfBXzy zWyX8DX)Uy2@@$JRTl;S>_{rQ5HaFzTst{jQb<=Q%Pci$IU#nCYhqC%9VRT8qzt1lc zaH321jNUnx)U7D^8p%#F^7AEfbKqEiuws#GVPB`qyr0=Lks8#Y#6gbPWQI zwuh6h2C|5N2IzH*(Br)27Fn3=LTGt(V%b=>x0Ken!>QVxjPZDuft}h|9-)?_w6uuQ zyRC4G2S(<3{TuH;o>5?1fQRJF)VLP82|VdvQx*7j^iot6Sv|YD|K?-Akrd#`L^y&W zdDRRL-hCGu+2eT88PIQ2n#oaSw$E6n)jyIA?xe>*ryeeb!CpztedI| z3B!gmX75M0lqg*d6f^~s-;(A|7#UB`4b=|TG<{qy%9I?kUdSu=;oI?VMjQ9pDl!en z@4^>krHo3fB7hf%h%&af5K1%>(&~#{I+^V9dUgFk-~+4(8{F{zGn2RU(rS=sy1*w#U=OpuI>;7y0r zi8|=uY2oCQ*y&eEt#wTkTto2N0ZC3+udlkeL(Fu7+x6@aVY}^-!LF?+vcn`M8_#9O z;ltvC*TBmGB$WfL2OYC=K~&HwWH^@zsL21Z%fPoUA=!oOvo&m8uYD!PBeCSY>nB3V znw`!+X3)A={;J~Mjx&jT8{Y~Co^dW!*AE)WC5e61xHC|smn3W@8}_69rM$tF?tZjzwn{j@#;sq`d4T_&n{@^0>8&%==+8v%=zGRoqIo>o| z@JM{xuDqRIBXK?6Q5%}{Is3_8;PN1wlN1?t;*olNO1K_J_{MwE&9%*o5!*6OVV)=M z5Hs+~lwy3<{>SOZd70{8s*|dIm_oC@xF{a&2B-q^+VAf20<2HtdKWDxU?e*?H(ECV zwSl?m#vQ_5ZQ-jzZ%S74US4q0(yc$n1Sw3dpzOEtyGsjp1*wP|h)lrJ?F^GH>@~!9 z*o)iXJRRS8T1Kxkj1;MT+0H|}v-Ox>WL`SnRjU=b#b7X!@Cd3>b|Qc>d#1v$({pTJ z!?Kwp9c_;0Mk#1Ox_xI@*5P{TVjaFB_eel6WEpG9$>Ff9oze*%5KzXHByJ1`W&At| zy~b*cXnXD!WpOz$Q0YQoSHMQ?x;6-;7aHnj4&fE-mwFf_AA;6;cHA`;p1B{7#=5QT zURTubr|c5*;y(6J9)&tWpl5`V>oy=Z_Kac6xkWvy5f>pF3_nz4b`2-ocYSPX%kgTO zzEB+8RQAiU@k0F11F1sGr#D(rDvv;Z%z{Vbdnv983O3LymAfTU*Fv1|qhChF)8rcG zhbXEZ#@rHBW3mOxex?qW^|d|%1FS+*7sV2? z{Uh2;m$Nlct@_1vAY9K0|0DH6R1y`WT^KS%_qT#BZSh01o-vYGRYDjIQhV=qN>qbT zE``4?zlZ6*c2O&v^$yj1{LEMk1lCsQ&z~4V2XvHBHOr}KX6`a^Xu1!iO0_<4E#T=vQne=E6p@0v(J%rEySin6B(bE+}dk7U0U&EAR2l%7TzHC;) zS^1nmSQ?kDuks(4Zb!_XW@ z5oA=sjhk3r&7lbQ1%*e1>dsffBkV}OQ#X+i7hG|aB&|ufZjv&O&X*5P2z}5tc|ygS zP%QdqoIQh8Q~Q;$kpZXLRVhMEQjk(#r<{-L*N60Eaut28B9DJ%X8bQD$fRQ?>@jcQ z&VLm_zlz>pyLubaT}DjBJ2cZZ3}5(@kc>1KY@gV;5@iQ->$0^h`KeORF2Lbu~%HYy#LRx*9jpruh zwEf%-{A!38#P#{F)H{S83QdM2I;tMGGPOgVYh3UP2q2x!3V(xLDT_3D!iHMCLVP-F z*Hst;qp|h2;Ny;Sgxt>&&vl6$GYc-S)OsbUfl>oh0?4R^%#5XHUUfqI-q#p2`C%k{ z(4CSGTJu!s|i4s1x4-qc3JgEexJt z5cLyiSVD2vUL)@D*?eS#%@d!|AiD(7ZS=4ki-P!}{>~5^e{nc*F2?il+^+S`u1ZZ2 zt9jBACpr_cAmEN$BZpZ{>7+U&M~#&uz$%{#t`;HJ?j;%LM6BsihY^b&1FTq<+=z83 zTY`*bXbMvJ#PcI76DInpoS`u2Ab;I!=$YES0)hb+$Ju|{a^PS$$0RuKyEbvauEmf? zB?RZ3S%d6c4Q&eLF901>+Q7mh8W1Hgnli#-3ZG=6%`znwWaXVzaI?#p&i2WEZHGYJ zxBkGqo-`WTr2ateeu_Y){vhhgOq<*ko1B-Sl3+rz*r0OuVvf*Kp^%J*QV^d){d7Wo z>+?xSnxkQ_=g+E+4BD5uC7(gmOP%4e06fJLX>SU-H8Z-3|ty zVXA6{wbh2Fds%{n1XSDkln2If@I6MHTec_w_8>@oo_nrAQ&7KqXlc73@0Pw!icNya zBHGKOt(4vS=y3er-k^*UR1Y+y|1DDP+A{`H=Z%x<$Rd}fj6=kW#)55(2Jmi~WjlBvABP}p@t7{bMCiU?*ZZJt#H&UL zhbHY~luToP2Jn_2A315I3w~PZOQ#y}kmH?|Q>*L&a?-b}kxpr!)w{F7&^JbW!`w03 ze8EJ`(vm3TE5Ezc>r~0r!;(>Ga^6j=KDoDiHY=Kftms$uF*grmQ@NF1FEQt)1GCiY zMfu^p5;m8(g%9)|^nQI1*u})V{lsYfrpv|py5?dsEJ1mABd(KqsaKkV1cSjk!6X^T6Q}Y!J^~#j)Rth zWK6>A%VyiV{Dnl#AJrGxU`eQ1?lSFgrE(>~-nW*aE z@8`VH{0HQ)gp}o3)Vf*0pS1wCJXGue)Z^K!p*9|YTwmWb2j`$*f?M5PB+C?zJ!2($|mm#~O1Bl$2N?<_-N=waaJow&QaAknJ4S6+JDZSa6- zy0gMxUSIUw@h|gWdKN~4yw?{jr+eBALv^KA@Fr9MH}Yp4J+PO zun6!GJm!>y`Hhj8$fmIa>2YYo%!)-f{8u3GxNx7byQETMF?Vp}#K=S0A|b+l#X~Q- zF!dF)NoDp!NZVcc2yRb(Hh9y7j#|keCNBfiOTyy*s z;5q3FBi~iuE;|4n1u5EWd47GXv?GM)29m$A8!b1M^Y`;MkxqPblcIf2SnFIDKZm-| zf-!d|)`H4$u9bxaeo{oC@zXc31k9-wX<$6M$PMbcC9_xval?RHndpMYM;+)Mv@)nk zmz~=JqPZq+faYt6<0UwnJiNL2=sb#KLNuhI<;G(TIr>&vVCiEZe)bbxDbROGpbC&E`J}FVdFlrbP*<9PD)`5TEytLS-ntKAu(9H{;qTBs1|$esqL?5mK0Gd40}^yv%eD3JiEF5Cbkv8ytvtY)A$S$3Bzm`a1aI za`{+c>!-dvu1kpa=q2T<4UVx{m>;a}Lo!q&A8R>FkrmL#?MnwMJE{{*tYypvg87}U9OUgd z5n^?=h~9)R!an(oTvHyFG$~!p%n;qbH!3P{!LPQPT*B@7k2lZI2QLiPnjcoyhb;R# ztYsfmWqp}!-(paG4HQ5Lg>Zvs+^^a%xddOw=k+~w=I$?yFtkM92jW6t6)ZP=V-pW) zZ&-uU{K%t~32E&_dUfh%;jT%mMpO>Toh3-cFfyXx6P|(2v=Zu(X%w-Dh%LNdp9uiZ z<;}hE?f3?~_#wI#{rag}L>XWA`@&MYIrA~ps`;8q?4~eqxwgqD-ork2LF|a1<5}6O z>7oc5zR7R9vD`e_xt0QuWJN|m5Ut#A@Shs+XzMR6{z77u)#iFBy7CW;CiFWV%l=RT zS^-cx*c!%!b*TxRA>|<~d>^N~2Q>o1uMlgP9Ih(H-}?isxm06$DqqX1HngrHLY#0B zj5`w@7`9d0O=Z9kTIX1JXJ62|O(zu``3zmCTeR8LoJWd+6;jADW^aiRPNyiN5tw@a zsxw1iMT`v7M_V7Vjd(QJeg&OCyg(P2&7Vtm9cOucZ zRfq4xS%l4z74gdfPiX19p+4uacQtr-<5D5iZA8_Blh8#*OH6}6LSd_XilJM6(bIhh z4^0DKZrsvOGjpTQ4ETt~ylt-h=x)TGH2#Y>!M&&69SxlBBNgi{e+VRPT6a@6MO7Q| z7~0a-rw;f7b=Z#^gl5r};F&izcPd}bNM=t01`c(oiXIFT>RH1JQGj>#y5-V*KKvX-m|pKkCl;sX-er znbs5?L`PiHIYnG7iifkvzF0KjA$9iHX8WWQM{e?_as1W&R^Up-RX5WpzDijB8%Z<*}V{GY%}^#DCwvW^GYzm=aOTm@qTa3FZuOjQL6 z!bd-fKS3wI!EydprYn6?O=i+Kya3Ra#+bWA3;q(%RtFi55Ud!{X4!) zBKGX>m4m+wFHr<=_7YQE@V`WUy|d=uGBqbC3P`&jSh-5b)RH26FjNNeZBeb<$bY`- zUjl9b1w10+65r95`LgHm(phN%{_|u?f9&R+6`G0$I z{FH!IvM%?33hV_eXb~r4jtT(tLVJuLOK)KivMvt9(n%5he@5>4SD-SvL)LoMuz#F! z0J`_TEQM4aY5;0A|De5>5?ip*fiwCg(ErSQFY-5CeP^7Y0iZ8Qi;VW82~*Jz^^Ubm z_rE&(0LUbOd5jAdRK8qV)gm@*O_a~FNIS&qH~by}c?PWXh<4ARiCv{Z;-cUV5>}J| zPQdz`9uey~^ad%Z_J1y65kfE{=DTV1R%L7|%1o&F7ka)g_&at*jP+cd7$@=id_1qc9w?m+-o^ zA=S`zD@_AEK^)})8XB{h!_)LMB2d6ZR?!z}mQ^(Coc+4)&MRj^TBQETEha%9z&YFh z5{oyNzse@Qt)$)i)`JI8lsc+XiF))_(pf8-0+*$Mau%{kz1^+cWu->0NOu&5HqM#${nUrmM&NA#XQJ;L~Cg2E`%efluZ{lj#u*Ekea$$%x%XN}n0|k>P%E2D~6Pzm2 z2|aT+EJ6=cZ!xof?jx2WP=!hiz^E&H_Flsxf9CbJId+yattre7v0VB(Tr}|*zT;#l zT=NbGJ4x%v!{O_1wE^dGiD)_j$bL^*HFR zj0ii`+ufbNMg;f&3HBdW-!&LDYX*DGI^!D;7p*Jc@ns*Cs!~Fjj9-y(` literal 0 HcmV?d00001 diff --git a/frontend/playground_sleeptimetable.png b/frontend/playground_sleeptimetable.png new file mode 100644 index 0000000000000000000000000000000000000000..56d80bb2763e1c4dbc3eebadb5a1244f51dae43b GIT binary patch literal 34316 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 @|ZWVIwBe$?F8~Spg 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 Q6Ld3j(n?YVx9F98;eW&i*H literal 0 HcmV?d00001 diff --git a/frontend/playground_statusbanner.png b/frontend/playground_statusbanner.png new file mode 100644 index 0000000000000000000000000000000000000000..e97db3e99f8febe8f97ad0a2ea8c4c8f654b3b4f GIT binary patch literal 32829 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 literal 0 HcmV?d00001 diff --git a/frontend/src/App.js b/frontend/src/App.js index ce6d7cd..b800ab1 100644 --- a/frontend/src/App.js +++ b/frontend/src/App.js @@ -3,7 +3,8 @@ import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'; import TrackerPage from './components/tracker/TrackerPage'; import StatsPage from './components/stats/StatsPage'; import Navbar from './components/Navbar'; +import Playground from './components/Playground'; function App() { - return (_jsx(Router, { children: _jsxs("div", { className: "min-h-screen bg-[#f8fafc] text-slate-900 font-sans antialiased", children: [_jsx(Navbar, {}), _jsx("main", { className: "container mx-auto px-4 sm:px-6 lg:px-8 mt-8", children: _jsxs(Routes, { children: [_jsx(Route, { path: "/", element: _jsx(TrackerPage, {}) }), _jsx(Route, { path: "/stats", element: _jsx(StatsPage, {}) })] }) })] }) })); + return (_jsx(Router, { children: _jsxs("div", { className: "min-h-screen bg-[#f8fafc] text-slate-900 font-sans antialiased", children: [_jsx(Navbar, {}), _jsx("main", { className: "container mx-auto px-4 sm:px-6 lg:px-8 mt-8", children: _jsxs(Routes, { children: [_jsx(Route, { path: "/", element: _jsx(TrackerPage, {}) }), _jsx(Route, { path: "/stats", element: _jsx(StatsPage, {}) }), _jsx(Route, { path: "/playground", element: _jsx(Playground, {}) })] }) })] }) })); } export default App; diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index dab3f75..6b8dbd9 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -3,6 +3,7 @@ import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'; import TrackerPage from './components/tracker/TrackerPage'; import StatsPage from './components/stats/StatsPage'; import Navbar from './components/Navbar'; +import Playground from './components/Playground'; function App() { return ( @@ -13,6 +14,7 @@ function App() { } /> } /> + } /> diff --git a/frontend/src/api/client.js b/frontend/src/api/client.js index 93836f4..abb643d 100644 --- a/frontend/src/api/client.js +++ b/frontend/src/api/client.js @@ -1,63 +1,56 @@ const BASE_URL = import.meta.env.VITE_API_BASE_URL || ''; export function localToUTC(localValue) { - return localValue; + return new Date(localValue).toISOString(); } +async function fetchStats(endpoint, from_date, to_date, extraParams = {}) { + const fromDT = new Date(`${from_date}T00:00:00`).toISOString(); + const toDT = new Date(`${to_date}T23:59:59`).toISOString(); + const params = new URLSearchParams({ from_date: fromDT, to_date: toDT, ...extraParams }); + const response = await fetch(`${BASE_URL}/api/stats/${endpoint}?${params.toString()}`); + if (!response.ok) + throw new Error(`Failed to fetch ${endpoint}`); + return response.json(); +} +export async function fetchDailySummary(from_date, to_date, day_start, day_end) { + return fetchStats('daily-summary', from_date, to_date, { day_start, day_end }); +} +export async function fetchTimetable(from_date, to_date, day_start, day_end) { + return fetchStats('timetable', from_date, to_date, { day_start, day_end }); +} +export async function fetchWakeSleepTimes(from_date, to_date, wakeup_ref, bedtime_ref) { + return fetchStats('wake-sleep-times', from_date, to_date, { wakeup_ref, bedtime_ref }); +} +// Session API functions export async function fetchActiveSession() { const response = await fetch(`${BASE_URL}/api/sessions/active`); if (!response.ok) - throw new Error('Failed to fetch active session'); - const data = await response.json(); - return data.session; + return null; + return response.json(); } -export async function fetchSessions(from_date, to_date, limit = 200) { - const params = new URLSearchParams(); - if (from_date) - params.append('from_date', from_date); - if (to_date) - params.append('to_date', to_date); - if (limit) - params.append('limit', limit.toString()); - const response = await fetch(`${BASE_URL}/api/sessions?${params.toString()}`); +export async function fetchSessions() { + const response = await fetch(`${BASE_URL}/api/sessions`); if (!response.ok) throw new Error('Failed to fetch sessions'); return response.json(); } export async function createSession(payload) { - const utcTime = localToUTC(payload.start_time); const response = await fetch(`${BASE_URL}/api/sessions`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ start_time: utcTime }), + body: JSON.stringify(payload), }); - if (!response.ok) { - const errorData = await response.json(); - throw new Error(errorData.detail || 'Failed to create session'); - } + if (!response.ok) + throw new Error('Failed to create session'); return response.json(); } export async function endSession(sessionId, payload) { - const utcTime = payload.end_time ? localToUTC(payload.end_time) : undefined; const response = await fetch(`${BASE_URL}/api/sessions/${sessionId}/end`, { method: 'PATCH', headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ end_time: utcTime }), - }); - if (!response.ok) { - const errorData = await response.json(); - throw new Error(errorData.detail || 'Failed to end session'); - } - return response.json(); -} -export async function updateSession(sessionId, payload) { - const response = await fetch(`${BASE_URL}/api/sessions/${sessionId}`, { - method: 'PUT', - headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payload), }); - if (!response.ok) { - const errorData = await response.json(); - throw new Error(errorData.detail || 'Failed to update session'); - } + if (!response.ok) + throw new Error('Failed to end session'); return response.json(); } export async function deleteSession(sessionId) { @@ -67,30 +60,13 @@ export async function deleteSession(sessionId) { if (!response.ok) throw new Error('Failed to delete session'); } -export async function fetchDailySummary(from_date, to_date, day_start, day_end) { - const fromDT = from_date + 'T00:00:00'; - const toDT = to_date + 'T23:59:59'; - const params = new URLSearchParams({ from_date: fromDT, to_date: toDT, day_start, day_end }); - const response = await fetch(`${BASE_URL}/api/stats/daily-summary?${params.toString()}`); +export async function updateSession(sessionId, payload) { + const response = await fetch(`${BASE_URL}/api/sessions/${sessionId}`, { + method: 'PATCH', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload), + }); if (!response.ok) - throw new Error('Failed to fetch daily summary'); - return response.json(); -} -export async function fetchTimetable(from_date, to_date, day_start, day_end) { - const fromDT = from_date + 'T00:00:00'; - const toDT = to_date + 'T23:59:59'; - const params = new URLSearchParams({ from_date: fromDT, to_date: toDT, day_start, day_end }); - const response = await fetch(`${BASE_URL}/api/stats/timetable?${params.toString()}`); - if (!response.ok) - throw new Error('Failed to fetch timetable'); - return response.json(); -} -export async function fetchWakeSleepTimes(from_date, to_date, wakeup_ref, bedtime_ref) { - const fromDT = from_date + 'T00:00:00'; - const toDT = to_date + 'T23:59:59'; - const params = new URLSearchParams({ from_date: fromDT, to_date: toDT, wakeup_ref, bedtime_ref }); - const response = await fetch(`${BASE_URL}/api/stats/wake-sleep-times?${params.toString()}`); - if (!response.ok) - throw new Error('Failed to fetch wake/sleep times'); + throw new Error('Failed to update session'); return response.json(); } diff --git a/frontend/src/api/client.ts b/frontend/src/api/client.ts index 5b04148..355f0c9 100644 --- a/frontend/src/api/client.ts +++ b/frontend/src/api/client.ts @@ -26,3 +26,53 @@ export async function fetchTimetable(from_date: string, to_date: string, day_sta export async function fetchWakeSleepTimes(from_date: string, to_date: string, wakeup_ref: string, bedtime_ref: string): Promise { return fetchStats('wake-sleep-times', from_date, to_date, { wakeup_ref, bedtime_ref }); } + +// Session API functions +export async function fetchActiveSession(): Promise { + const response = await fetch(`${BASE_URL}/api/sessions/active`); + if (!response.ok) return null; + return response.json(); +} + +export async function fetchSessions(): Promise { + const response = await fetch(`${BASE_URL}/api/sessions`); + if (!response.ok) throw new Error('Failed to fetch sessions'); + return response.json(); +} + +export async function createSession(payload: SleepSessionCreate): Promise { + const response = await fetch(`${BASE_URL}/api/sessions`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload), + }); + if (!response.ok) throw new Error('Failed to create session'); + return response.json(); +} + +export async function endSession(sessionId: number, payload: SleepSessionUpdate): Promise { + const response = await fetch(`${BASE_URL}/api/sessions/${sessionId}/end`, { + method: 'PATCH', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload), + }); + if (!response.ok) throw new Error('Failed to end session'); + return response.json(); +} + +export async function deleteSession(sessionId: number): Promise { + const response = await fetch(`${BASE_URL}/api/sessions/${sessionId}`, { + method: 'DELETE', + }); + if (!response.ok) throw new Error('Failed to delete session'); +} + +export async function updateSession(sessionId: number, payload: SleepSessionUpdate): Promise { + const response = await fetch(`${BASE_URL}/api/sessions/${sessionId}`, { + method: 'PATCH', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload), + }); + if (!response.ok) throw new Error('Failed to update session'); + return response.json(); +} diff --git a/frontend/src/components/Playground.js b/frontend/src/components/Playground.js new file mode 100644 index 0000000..75f053f --- /dev/null +++ b/frontend/src/components/Playground.js @@ -0,0 +1,105 @@ +import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; +import React, { useState, useEffect } from 'react'; +import { useQueryClient } from '@tanstack/react-query'; +// Component Imports +import StatusBanner from '../components/tracker/StatusBanner'; +import TimeAdjuster from '../components/tracker/TimeAdjuster'; +import SleepButton from '../components/tracker/SleepButton'; +import DailySummary from '../components/stats/DailySummary'; +import WakeupPlot from '../components/stats/WakeupPlot'; +import BedtimePlot from '../components/stats/BedtimePlot'; +import SleepTimetable from '../components/stats/SleepTimetable'; +import { SessionList } from '../components/stats/SessionList'; +import { IntervalPicker } from '../components/stats/IntervalPicker'; +import { SettingsPopover } from '../components/stats/SettingsPopover'; +// Mock Data Generators +const generateMockSessions = () => [ + { id: 1, start_time: '2024-05-20T22:00:00Z', end_time: '2024-05-21T06:00:00Z', notes: 'Good sleep', created_at: '2024-05-21T07:00:00Z', updated_at: '2024-05-21T07:00:00Z' }, + { id: 2, start_time: '2024-05-21T21:30:00Z', end_time: null, notes: null, created_at: '2024-05-21T21:30:00Z', updated_at: '2024-05-21T21:30:00Z' }, +]; +const generateMockStats = (days = 7) => { + const dailySummaryDays = Array.from({ length: days }).map((_, i) => ({ + date: new Date(Date.now() - i * 24 * 60 * 60 * 1000).toISOString().split('T')[0], + total_minutes: 480, + day_minutes: 240, + night_minutes: 240, + })); + const timetableSlots = Array.from({ length: 24 }).map((_, i) => ({ + date: new Date().toISOString().split('T')[0], + slot_start: `${i.toString().padStart(2, '0')}:00`, + slot_end: `${((i + 1) % 24).toString().padStart(2, '0')}:00`, + sleeping: i >= 22 || i <= 6, + })); + const wakeupBedtimeDays = Array.from({ length: days }).map((_, i) => ({ + date: new Date(Date.now() - i * 24 * 60 * 60 * 1000).toISOString().split('T')[0], + wakeup_minutes: 360, + bedtime_minutes: 1260, + })); + return { + dailySummary: { days: dailySummaryDays }, + timetable: { slots: timetableSlots }, + wakeupBedtime: { days: wakeupBedtimeDays }, + }; +}; +// Helper to inject data by prefixing keys since we don't know exact dynamic parameters (dates) +function setQueryDataByPrefix(queryClient, prefix, data) { + const queries = queryClient.getQueryCache().getAll(); + let found = false; + for (const query of queries) { + const match = prefix.every((p, i) => query.queryKey[i] === p); + if (match) { + queryClient.setQueryData(query.queryKey, data); + found = true; + } + } + return found; +} +// We will attempt to populate common keys used by the hooks. +function injectAllMocks(queryClient) { + const { dailySummary, timetable, wakeupBedtime } = generateMockStats(); + // Session mocks + queryClient.setQueryData(['activeSession'], null); + queryClient.setQueryData(['sessions'], { sessions: generateMockSessions(), total: 2 }); + // Stats mocks - iterate and try to find matches for common prefixes + const queries = queryClient.getQueryCache().getAll(); + for (const query of queries) { + const key = query.queryKey; + if (key[0] === 'dailySummary') { + queryClient.setQueryData(key, dailySummary); + } + else if (key[0] === 'timetable') { + queryClient.setQueryData(key, timetable); + } + else if (key[0] === 'wakeSleepTimes') { + queryClient.setQueryData(key, wakeupBedtime); + } + } + // If no queries exist yet (because hooks haven't run), we can't match. + // But once a component renders, the query is created and our next render/effect + // can catch it. For this playground, we'll just try to set common ones. +} +const COMPONENT_REGISTRY = [ + { name: 'StatusBanner', component: StatusBanner }, + { name: 'TimeAdjuster', component: TimeAdjuster }, + { name: 'SleepButton', component: SleepButton }, + { name: 'DailySummary', component: DailySummary }, + { name: 'WakeupPlot', component: WakeupPlot }, + { name: 'BedtimePlot', component: BedtimePlot }, + { name: 'SleepTimetable', component: SleepTimetable }, + { name: 'SessionList', component: SessionList }, + { name: 'IntervalPicker', component: IntervalPicker }, + { name: 'SettingsPopover', component: SettingsPopover }, +]; +export default function Playground() { + const [selectedIndex, setSelectedIndex] = useState(-1); + const queryClient = useQueryClient(); + const selectedComponent = selectedIndex >= 0 ? COMPONENT_REGISTRY[selectedIndex] : null; + useEffect(() => { + if (selectedComponent) { + // In a real playground, we might want to clear old data first, + // but for mocks we just want to ensure the right ones exist. + injectAllMocks(queryClient); + } + }, [selectedIndex, queryClient]); + return (_jsxs("div", { className: "p-6 space-y-8", children: [_jsxs("header", { className: "flex flex-col gap-4 border-b pb-6", children: [_jsx("h2", { className: "text-3xl font-bold text-slate-900", children: "Component Playground" }), _jsx("p", { className: "text-slate-500", children: "Select a component to render it in isolation with mock data." }), _jsxs("div", { className: "flex items-center gap-4", children: [_jsx("label", { htmlFor: "component-select", className: "font-medium text-slate-700", children: "Component:" }), _jsxs("select", { id: "component-select", name: "component-select", className: "block w-full max-w-xs rounded-md border-slate-300 py-2 pl-3 pr-10 text-base focus:border-indigo-500 focus:outline-none focus:ring-indigo-500 sm:text-sm", value: selectedIndex, onChange: (e) => setSelectedIndex(parseInt(e.target.value)), children: [_jsx("option", { value: "-1", children: "-- Select a Component --" }), COMPONENT_REGISTRY.map((comp, idx) => (_jsx("option", { value: idx, children: comp.name }, comp.name)))] })] })] }), _jsx("main", { className: "min-h-[400px] flex items-center justify-center border-2 border-dashed border-slate-200 rounded-xl bg-white p-8", children: selectedComponent ? (_jsx("div", { className: "w-full h-full flex justify-center", children: React.createElement(selectedComponent.component, selectedComponent.props || {}) })) : (_jsx("div", { className: "text-center text-slate-400", children: _jsx("p", { children: "No component selected" }) })) }), selectedComponent && (_jsxs("footer", { className: "text-sm text-slate-400 italic", children: ["Rendering: ", selectedComponent.name] }))] })); +} diff --git a/frontend/src/components/Playground.tsx b/frontend/src/components/Playground.tsx new file mode 100644 index 0000000..9cd4341 --- /dev/null +++ b/frontend/src/components/Playground.tsx @@ -0,0 +1,199 @@ +import React, { useState, useEffect } from 'react'; +import { useQueryClient } from '@tanstack/react-query'; +import type { ComponentType } from 'react'; + +// Types +import type { + SleepSessionRead, + DailySummaryDay, + TimetableSlot, + WakeupBedtimeDay, + DailySummaryResponse, + TimetableResponse, + WakeupBedtimeResponse +} from '../types'; + +// Component Imports +import StatusBanner from '../components/tracker/StatusBanner'; +import TimeAdjuster from '../components/tracker/TimeAdjuster'; +import SleepButton from '../components/tracker/SleepButton'; +import DailySummary from '../components/stats/DailySummary'; +import WakeupPlot from '../components/stats/WakeupPlot'; +import BedtimePlot from '../components/stats/BedtimePlot'; +import SleepTimetable from '../components/stats/SleepTimetable'; +import { SessionList } from '../components/stats/SessionList'; +import { IntervalPicker } from '../components/stats/IntervalPicker'; +import { SettingsPopover } from '../components/stats/SettingsPopover'; + +// Mock Data Generators +const generateMockSessions = (): SleepSessionRead[] => [ + { id: 1, start_time: '2024-05-20T22:00:00Z', end_time: '2024-05-21T06:00:00Z', notes: 'Good sleep', created_at: '2024-05-21T07:00:00Z', updated_at: '2024-05-21T07:00:00Z' }, + { id: 2, start_time: '2024-05-21T21:30:00Z', end_time: null, notes: null, created_at: '2024-05-21T21:30:00Z', updated_at: '2024-05-21T21:30:00Z' }, +]; + +const generateMockStats = (days = 7): { + dailySummary: DailySummaryResponse; + timetable: TimetableResponse; + wakeupBedtime: WakeupBedtimeResponse; +} => { + const dailySummaryDays: DailySummaryDay[] = Array.from({ length: days }).map((_, i) => ({ + date: new Date(Date.now() - i * 24 * 60 * 60 * 1000).toISOString().split('T')[0], + total_minutes: 480, + day_minutes: 240, + night_minutes: 240, + })); + + const timetableSlots: TimetableSlot[] = Array.from({ length: 24 }).map((_, i) => ({ + date: new Date().toISOString().split('T')[0], + slot_start: `${i.toString().padStart(2, '0')}:00`, + slot_end: `${((i + 1) % 24).toString().padStart(2, '0')}:00`, + sleeping: i >= 22 || i <= 6, + })); + + const wakeupBedtimeDays: WakeupBedtimeDay[] = Array.from({ length: days }).map((_, i) => { + const dateStr = new Date(Date.now() - i * 24 * 60 * 60 * 1000).toISOString().split('T')[0]; + const times = ['04:55', '05:05', '05:00', '05:30', '05:45', '06:00']; + const timeStr = times[i % times.length]; + const [h, m] = timeStr.split(':').map(Number); + return { + date: dateStr, + wakeup_minutes: h * 60 + m, + bedtime_minutes: 1260, + }; + }); + + return { + dailySummary: { days: dailySummaryDays }, + timetable: { slots: timetableSlots }, + wakeupBedtime: { days: wakeupBedtimeDays }, + }; +}; + +// Helper to inject data by prefixing keys since we don't know exact dynamic parameters (dates) +function setQueryDataByPrefix(queryClient: any, prefix: string[], data: any) { + const queries = queryClient.getQueryCache().getAll(); + let found = false; + for (const query of queries) { + const match = prefix.every((p, i) => query.queryKey[i] === p); + if (match) { + queryClient.setQueryData(query.queryKey, data); + found = true; + } + } + return found; +} + +// We will attempt to populate common keys used by the hooks. +function injectAllMocks(queryClient: any) { + const { dailySummary, timetable, wakeupBedtime } = generateMockStats(); + + // Session mocks + queryClient.setQueryData(['activeSession'], null); + queryClient.setQueryData(['sessions'], { sessions: generateMockSessions(), total: 2 }); + + // Stats mocks - iterate and try to find matches for common prefixes + const queries = queryClient.getQueryCache().getAll(); + for (const query of queries) { + const key = query.queryKey; + if (Array.isArray(key)) { + const firstKey = key[0]; + if (firstKey === 'dailySummary') { + queryClient.setQueryData(key, dailySummary); + } else if (firstKey === 'timetable') { + queryClient.setQueryData(key, timetable); + } else if (firstKey === 'wakeSleepTimes') { + queryClient.setQueryData(key, wakeupBedtime); + } + } + } + + // Also proactively set some common keys to ensure they are available for initial renders + queryClient.setQueryData(['dailySummary', '2024-01-01', '2024-01-07'], dailySummary); + queryClient.setQueryData(['timetable', '2024-01-01', '2024-01-07'], timetable); + queryClient.setQueryData(['wakeSleepTimes', '2024-01-01', '2024-01-07'], wakeupBedtime); +} + +// Registry Definition +interface PlaygroundComponent { + name: string; + component: ComponentType; + props?: Record; +} + +const COMPONENT_REGISTRY: PlaygroundComponent[] = [ + { name: 'StatusBanner', component: StatusBanner }, + { name: 'TimeAdjuster', component: TimeAdjuster, props: { onTimeChange: (t: any) => {}, defaultValue: new Date().toISOString() } }, + { name: 'SleepButton', component: SleepButton, props: { time: new Date().toISOString() } }, + { name: 'TrackerPage', component: TrackerPage, props: {} }, + { name: 'DailySummary', component: DailySummary, props: { from_date: '2024-01-01', to_date: '2024-01-07', day_start: '06:00', day_end: '21:00' } }, + { name: 'WakeupPlot', component: WakeupPlot, props: { from_date: '2024-01-01', to_date: '2024-01-07', wakeup_ref: '07:00', bedtime_ref: '20:00' } }, + { name: 'BedtimePlot', component: BedtimePlot, props: { from_date: '2024-01-01', to_date: '2024-01-07', wakeup_ref: '07:00', bedtime_ref: '20:00' } }, + { name: 'SleepTimetable', component: SleepTimetable, props: { from_date: '2024-01-01', to_date: '2024-01-07', day_start: '06:00', day_end: '21:00' } }, + { name: 'SessionList', component: SessionList, props: {} }, + { name: 'IntervalPicker', component: IntervalPicker, props: { value: 7, onChange: () => {} } }, + { name: 'SettingsPopover', component: SettingsPopover, props: { dayStart: '06:00', dayEnd: '21:00', wakeupRef: '07:00', bedtimeRef: '20:00', onSave: () => {} } }, + { name: 'Navbar', component: Navbar, props: {} }, + { name: 'ErrorBoundary', component: ErrorBoundary, props: {} }, +]; + +export default function Playground() { + const [selectedIndex, setSelectedIndex] = useState(-1); + const queryClient = useQueryClient(); + + const selectedComponent = selectedIndex >= 0 ? COMPONENT_REGISTRY[selectedIndex] : null; + + useEffect(() => { + if (selectedComponent) { + // In a real playground, we might want to clear old data first, + // but for mocks we just want to ensure the right ones exist. + injectAllMocks(queryClient); + } + }, [selectedIndex, queryClient]); + + return ( +

+
+

Component Playground

+

Select a component to render it in isolation with mock data.

+ +
+ + +
+
+ +
+ {selectedComponent ? ( +
+ {React.createElement(selectedComponent.component, { ...selectedComponent.props })} +
+ ) : ( +
+

No component selected

+
+ )} +
+ + {selectedComponent && ( +
+ Rendering: {selectedComponent.name} +
+ )} +
+ ); +} diff --git a/frontend/src/components/stats/BedtimePlot.js b/frontend/src/components/stats/BedtimePlot.js index e163007..4e7e758 100644 --- a/frontend/src/components/stats/BedtimePlot.js +++ b/frontend/src/components/stats/BedtimePlot.js @@ -1,7 +1,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import { useEffect, useState } from 'react'; import { useStats } from '../../hooks/useStats'; -import { formatMinutesAfter, getToday } from '../../utils/time'; +import { formatMinutesAfter, getToday, getLocalOffsetFromReference } from '../../utils/time'; import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, } from 'recharts'; const BedtimePlot = ({ from_date, to_date, wakeup_ref, bedtime_ref }) => { const { wakeupBedtime, isLoading } = useStats(from_date, to_date, '07:00', '20:00', wakeup_ref, bedtime_ref); @@ -13,11 +13,12 @@ const BedtimePlot = ({ from_date, to_date, wakeup_ref, bedtime_ref }) => { } const data = wakeupBedtime.days.map((day) => { const daysAgo = Math.floor((new Date(getToday()).getTime() - new Date(day.date).getTime()) / (1000 * 60 * 60 * 24)); + const offsetFromRef = day.bedtime_minutes !== null ? getLocalOffsetFromReference(day.bedtime_minutes, bedtime_ref) : 0; return { date: daysAgo === 0 ? 'Today' : `${daysAgo}d ago`, - minutes: day.bedtime_minutes ?? 0, + minutes: offsetFromRef, time: day.bedtime_minutes !== null - ? formatMinutesAfter(day.bedtime_minutes, bedtime_ref) + ? formatMinutesAfter(offsetFromRef, bedtime_ref) : 'N/A', }; }).reverse(); diff --git a/frontend/src/components/stats/BedtimePlot.tsx b/frontend/src/components/stats/BedtimePlot.tsx index e272fbb..faa47a2 100644 --- a/frontend/src/components/stats/BedtimePlot.tsx +++ b/frontend/src/components/stats/BedtimePlot.tsx @@ -18,7 +18,7 @@ interface WakeupBedtimeProps { bedtime_ref: string; } -const BedtimePlot: React.FC = ({ from_date, to_date, wakeup_ref, bedtime_ref }) => { +const BedtimePlot: React.FC = ({ from_date, to_date, wakeup_ref = '07:00', bedtime_ref = '20:00' }) => { const { wakeupBedtime, isLoading } = useStats(from_date, to_date, '07:00', '20:00', wakeup_ref, bedtime_ref); const [chartData, setChartData] = useState<{ date: string; minutes: number; time: string }[]>([]); diff --git a/frontend/src/components/stats/SessionList.js b/frontend/src/components/stats/SessionList.js index e0b4c7c..3db577a 100644 --- a/frontend/src/components/stats/SessionList.js +++ b/frontend/src/components/stats/SessionList.js @@ -45,14 +45,14 @@ export function SessionList() { alert('Failed to update session'); } }; - const handleCancel = () => { - setEditingId(null); - }; const startEditing = (s) => { setEditingId(s.id); setEditStart(toDatetimeLocal(s.start_time)); setEditEnd(s.end_time ? toDatetimeLocal(s.end_time) : ''); }; + const handleCancel = () => { + setEditingId(null); + }; return (_jsxs("div", { className: "bg-white p-4 rounded-xl shadow-sm border border-gray-200", children: [_jsx("h3", { className: "text-lg font-semibold mb-4 text-gray-800", children: "Sleep Sessions" }), _jsx("div", { className: "space-y-2", children: sessions.map((s) => (_jsx("div", { className: "border-b border-gray-100 last:border-0 pb-2", children: editingId === s.id ? (_jsxs("div", { className: "flex flex-col space-y-2 py-1", children: [_jsxs("div", { className: "grid grid-cols-1 gap-2 text-xs text-gray-500", children: [_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("span", { children: "Start Time" }), _jsx("input", { type: "datetime-local", className: "border rounded px-1 py-0.5 text-sm text-black w-full", value: editStart, onChange: (e) => setEditStart(e.target.value) })] }), _jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("span", { children: "End Time" }), _jsx("input", { type: "datetime-local", className: "border rounded px-1 py-0.5 text-sm text-black w-full", value: editEnd, onChange: (e) => setEditEnd(e.target.value) })] })] }), _jsxs("div", { className: "flex justify-end space-x-2", children: [_jsx("button", { onClick: handleCancel, className: "p-1 text-gray-500 hover:text-gray-700 transition-colors", title: "Cancel", children: _jsx(X, { size: 18 }) }), _jsx("button", { onClick: () => handleSave(s.id), className: "p-1 text-green-600 hover:text-green-700 transition-colors", title: "Save", children: _jsx(Check, { size: 18 }) })] })] })) : (_jsxs("div", { className: "flex justify-between items-center text-sm cursor-pointer hover:bg-gray-50 p-1 rounded transition-colors", onClick: () => startEditing(s), children: [_jsxs("div", { className: "flex flex-col", children: [_jsx("span", { className: "text-gray-900 font-medium", children: formatDateTime(s.start_time) }), _jsx("span", { className: "text-gray-500 text-xs", children: s.end_time ? `${formatDateTime(s.start_time)} → ${formatDateTime(s.end_time)}` : 'In progress' })] }), _jsxs("div", { className: "flex items-center space-x-2", children: [_jsx("span", { className: "text-blue-600 font-mono text-sm", children: s.end_time && s.start_time diff --git a/frontend/src/components/stats/SessionList.tsx b/frontend/src/components/stats/SessionList.tsx index f34bc9e..b20d62d 100644 --- a/frontend/src/components/stats/SessionList.tsx +++ b/frontend/src/components/stats/SessionList.tsx @@ -40,7 +40,7 @@ export function SessionList() { start_time: new Date(editStart).toISOString(), end_time: editEnd ? new Date(editEnd).toISOString() : null, } - }); + } as any); setEditingId(null); } catch (err) { console.error(err); @@ -48,16 +48,16 @@ export function SessionList() { } }; - const handleCancel = () => { - setEditingId(null); - }; - const startEditing = (s: SleepSessionRead) => { setEditingId(s.id); setEditStart(toDatetimeLocal(s.start_time)); setEditEnd(s.end_time ? toDatetimeLocal(s.end_time) : ''); }; + const handleCancel = () => { + setEditingId(null); + }; + return (

Sleep Sessions

diff --git a/frontend/src/components/stats/SleepTimetable.js b/frontend/src/components/stats/SleepTimetable.js new file mode 100644 index 0000000..e0aa147 --- /dev/null +++ b/frontend/src/components/stats/SleepTimetable.js @@ -0,0 +1,63 @@ +import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; +import React, { useMemo } from 'react'; +import { useStats } from '../../hooks/useStats'; +import { timeToMinutes } from '../../utils/time'; +const Timetable = ({ from_date, to_date, day_start, day_end }) => { + const { timetable, isLoading } = useStats(from_date, to_date, day_start, day_end); + const days = useMemo(() => { + const start = new Date(from_date + 'T00:00:00'); + const end = new Date(to_date + 'T23:59:59'); + const result = []; + let current = new Date(start); + while (current <= end) { + result.push(current.toLocaleDateString('en-CA')); + current.setDate(current.getDate() + 1); + } + return result; + }, [from_date, to_date]); + const timeSteps = useMemo(() => { + return Array.from({ length: 24 }, (_, i) => i * 60); + }, []); + if (isLoading) + return _jsx("div", { className: "text-center p-4", children: "Loading timetable..." }); + if (!timetable?.slots || timetable.slots.length === 0) { + return _jsx("div", { className: "text-center p-4 text-gray-500", children: "No data available for this period." }); + } + const getDayName = (dateStr) => { + return new Date(dateStr).toLocaleDateString('en-US', { weekday: 'short' }); + }; + const formatTimeLabel = (mins) => { + const hours = Math.floor(mins / 60); + const minutes = mins % 60; + return `${String(hours).padStart(2, '0')}:${String(minutes).padStart(2, '0')}`; + }; + const isSleepingInInterval = (date, intervalStart, intervalEnd) => { + return timetable.slots.some((slot) => { + if (slot.date !== date || !slot.sleeping) + return false; + let sStart = timeToMinutes(slot.slot_start); + let sEnd = timeToMinutes(slot.slot_end); + if (sEnd <= sStart) { + // Handle wrap-around within a single slot if it happens (though unlikely for 15m segments) + const overlap1 = Math.max(sStart, intervalStart) < Math.min(1440, intervalEnd); + const overlap2 = Math.max(0, intervalStart) < Math.min(sEnd, intervalEnd); + return overlap1 || overlap2; + } + return Math.max(sStart, intervalStart) < Math.min(sEnd, intervalEnd); + }); + }; + const currentMins = new Date().getHours() * 60 + new Date().getMinutes(); + const rowHeightPx = 32; // h-8 is 2rem, which is 32px in standard Tailwind config + return (_jsxs("div", { className: "bg-white p-4 rounded-xl shadow-sm border border-gray-200 overflow-x-auto", children: [_jsx("h3", { className: "text-lg font-semibold mb-4 text-gray-800", children: "Sleep Timetable" }), _jsxs("div", { className: "min-w-[600px] flex flex-col gap-px", children: [_jsxs("div", { className: "grid", style: { + gridTemplateColumns: `4rem repeat(${days.length}, minmax(40px, 1fr))` + }, children: [_jsx("div", { className: "h-8" }), " ", days.map((day) => (_jsx("div", { className: "text-center text-[10px] font-medium text-gray-500 uppercase flex items-center justify-center h-8", children: getDayName(day) }, day)))] }), _jsx("div", { className: "relative", children: _jsxs("div", { className: "grid", style: { + gridTemplateColumns: `4rem repeat(${days.length}, minmax(40px, 1fr))` + }, children: [timeSteps.map((step) => (_jsxs(React.Fragment, { children: [_jsx("div", { className: "text-[10px] text-gray-400 flex items-center justify-end pr-2 h-8", children: step % 60 === 0 ? formatTimeLabel(step) : '' }), days.map((day) => { + const sleeping = isSleepingInInterval(day, step, step + 60); + return (_jsx("div", { className: `h-8 w-full ${sleeping ? 'bg-green-500' : 'bg-gray-50'}` }, `${day}-${step}`)); + })] }, step))), _jsx("div", { className: "absolute left-[4rem] right-0 h-0.5 bg-red-500 pointer-events-none z-10", style: { + top: `${(currentMins / 1440) * (24 * rowHeightPx)}px`, + transform: 'translateY(-50%)' + } })] }) })] })] })); +}; +export default Timetable; diff --git a/frontend/src/components/stats/SleepTimetable.test.js b/frontend/src/components/stats/SleepTimetable.test.js deleted file mode 100644 index 0801e94..0000000 --- a/frontend/src/components/stats/SleepTimetable.test.js +++ /dev/null @@ -1,89 +0,0 @@ -import { jsx as _jsx } from "react/jsx-runtime"; -import { render, screen } from '@testing-library/react'; -import '@testing-library/jest-dom'; -import { vi, describe, it, expect } from 'vitest'; -import Timetable from './SleepTimetable'; -import { useStats } from '../../hooks/useStats'; -vi.mock('../../hooks/useStats', () => ({ - useStats: vi.fn(), -})); -describe('SleepTimetable', () => { - const defaultProps = { - from_date: '2025-04-20', - to_date: '2025-04-21', - day_start: '22:00', - day_end: '08:00', - }; - it('renders loading state', () => { - useStats.mockReturnValue({ timetable: null, isLoading: true }); - render(_jsx(Timetable, { ...defaultProps })); - expect(screen.getByText(/Loading timetable.../i)).toBeInTheDocument(); - }); - it('renders empty state when no data is available', () => { - useStats.mockReturnValue({ timetable: { slots: [] }, isLoading: false }); - render(_jsx(Timetable, { ...defaultProps })); - expect(screen.getByText(/No data available/i)).toBeInTheDocument(); - }); - it('renders the grid correctly with hourly rows and biennial labels', () => { - useStats.mockReturnValue({ - timetable: { - slots: [ - { - date: '2025-04-20', - sleeping: true, - slot_start: '01:00', - slot_end: '05:00', - }, - ], - }, - isLoading: false, - }); - render(_jsx(Timetable, { ...defaultProps })); - // Check for day headers - expect(screen.getByText(/SUN/i)).toBeInTheDocument(); // 2025-04-20 is Sunday - expect(screen.getByText(/MON/i)).toBeInTheDocument(); // 2025-04-21 is Monday - // Check for time labels (every 2 hours: 00, 02, 04...) - expect(screen.getByText('00:00')).toBeInTheDocument(); - expect(screen.getByText('02:00')).toBeInTheDocument(); - expect(screen.getByText('04:00')).toBeInTheDocument(); - expect(screen.getByText('22:00')).toBeInTheDocument(); - // Verify non-labeled hours (every hour that isn't %120 == 0) - // We can't easily check for empty text nodes in Vitest/RTL without more precision - // but we can check that 01:00 is NOT present as a text label - expect(screen.queryByText('01:00')).not.toBeInTheDocument(); - }); - it('colors sleeping intervals correctly', () => { - useStats.mockReturnValue({ - timetable: { - slots: [ - { - date: '2025-04-20', - sleeping: true, - slot_start: '01:00', - slot_end: '03:00', // Covers 01:00 and 02:00 - }, - ], - }, - isLoading: false, - }); - const { container } = render(_jsx(Timetable, { ...defaultProps })); - // We are looking for the grid cells. - // Since they don't have text, we look at their classes/backgrounds. - const cells = container.querySelectorAll('.h-8'); - // Total cells = 24 rows * (1 label col + 2 days) = 72? No, the structure is: - // Header row has cells. Time grid rows have (1 label + 2 days) = 3 cells each. - // Total elements with .h-8: 1 (header corner) + days.length * 1 (day headers) + 24 * 3 = 75? - // Actually, the code has: - // Header row: header corner + days.map -> 1 + 2 = 3 cells - // Time Rows: (label cell) + days.map -> 24 * 3 = 72 cells - // Total = 75. - // The sleeping cell for 01:00 on 2025-04-20 should be bg-green-500 - // The cell for 02:00 on 2025-04-20 should be bg-green-500 - // The cell for 03:00 on 2025-04-20 should be bg-gray-50 - // Let's just check if ANY cell has bg-green-500 and ALL non-sleeping have bg-gray-50 - const greenCells = container.querySelectorAll('.bg-green-500'); - expect(greenCells.length).toBeGreaterThan(0); - const grayCells = container.querySelectorAll('.bg-gray-50'); - expect(grayCells.length).toBeGreaterThan(0); - }); -}); diff --git a/frontend/src/components/stats/StatsPage.js b/frontend/src/components/stats/StatsPage.js index 8bf21b7..b695088 100644 --- a/frontend/src/components/stats/StatsPage.js +++ b/frontend/src/components/stats/StatsPage.js @@ -10,8 +10,9 @@ import { ErrorBoundary } from '../../components/ErrorBoundary'; import { useSettings } from '../../hooks/useSettings'; const StatsPage = () => { const { settings, update } = useSettings(); - const from_date = new Date(new Date().setDate(new Date().getDate() - settings.statsInterval)).toISOString().split('T')[0]; - const to_date = new Date().toISOString().split('T')[0]; + const now = new Date(); + const to_date = now.toLocaleDateString('en-CA'); // YYYY-MM-DD in local time + const from_date = new Date(now.setDate(now.getDate() - settings.statsInterval)).toLocaleDateString('en-CA'); return (_jsxs("div", { className: "max-w-4xl mx-auto space-y-8 pb-12", children: [_jsxs("div", { className: "flex justify-between items-center pt-4", children: [_jsxs("div", { children: [_jsx("h2", { className: "text-3xl font-extrabold text-slate-900 tracking-tight", children: "Statistics" }), _jsx("p", { className: "text-slate-500 text-sm mt-1", children: "Overview of sleep patterns and trends" })] }), _jsx(SettingsPopover, { dayStart: settings.dayStart, dayEnd: settings.dayEnd, wakeupRef: settings.wakeupRef, bedtimeRef: settings.bedtimeRef, onSave: (s) => { update('dayStart', s.dayStart); update('dayEnd', s.dayEnd); diff --git a/frontend/src/components/stats/WakeupPlot.js b/frontend/src/components/stats/WakeupPlot.js index 63b96c3..3399404 100644 --- a/frontend/src/components/stats/WakeupPlot.js +++ b/frontend/src/components/stats/WakeupPlot.js @@ -1,7 +1,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import { useEffect, useState } from 'react'; import { useStats } from '../../hooks/useStats'; -import { formatMinutesAfter, getToday } from '../../utils/time'; +import { formatMinutesAfter, getToday, getLocalOffsetFromReference } from '../../utils/time'; import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, } from 'recharts'; const WakeupPlot = ({ from_date, to_date, wakeup_ref, bedtime_ref }) => { const { wakeupBedtime, isLoading } = useStats(from_date, to_date, '07:00', '20:00', wakeup_ref, bedtime_ref); @@ -13,11 +13,12 @@ const WakeupPlot = ({ from_date, to_date, wakeup_ref, bedtime_ref }) => { } const data = wakeupBedtime.days.map((day) => { const daysAgo = Math.floor((new Date(getToday()).getTime() - new Date(day.date).getTime()) / (1000 * 60 * 60 * 24)); + const offsetFromRef = day.wakeup_minutes !== null ? getLocalOffsetFromReference(day.wakeup_minutes, wakeup_ref) : 0; return { date: daysAgo === 0 ? 'Today' : `${daysAgo}d ago`, - minutes: day.wakeup_minutes ?? 0, + minutes: offsetFromRef, time: day.wakeup_minutes !== null - ? formatMinutesAfter(day.wakeup_minutes, wakeup_ref) + ? formatMinutesAfter(offsetFromRef, wakeup_ref) : 'N/A', }; }).reverse(); diff --git a/frontend/src/components/stats/WakeupPlot.tsx b/frontend/src/components/stats/WakeupPlot.tsx index c940ac3..c04a799 100644 --- a/frontend/src/components/stats/WakeupPlot.tsx +++ b/frontend/src/components/stats/WakeupPlot.tsx @@ -1,6 +1,6 @@ import { useEffect, useState } from 'react'; import { useStats } from '../../hooks/useStats'; -import { formatMinutesAfter, getToday, getLocalOffsetFromReference } from '../../utils/time'; +import { formatMinutesAfter, getToday, getLocalOffsetFromReference, timeToMinutes } from '../../utils/time'; import { LineChart, Line, @@ -18,7 +18,7 @@ interface WakeupBedtimeProps { bedtime_ref: string; } -const WakeupPlot: React.FC = ({ from_date, to_date, wakeup_ref, bedtime_ref }) => { +const WakeupPlot: React.FC = ({ from_date, to_date, wakeup_ref = '07:00', bedtime_ref = '20:00' }) => { const { wakeupBedtime, isLoading } = useStats(from_date, to_date, '07:00', '20:00', wakeup_ref, bedtime_ref); const [chartData, setChartData] = useState<{ date: string; minutes: number; time: string }[]>([]); @@ -32,7 +32,21 @@ const WakeupPlot: React.FC = ({ from_date, to_date, wakeup_r const daysAgo = Math.floor( (new Date(getToday()).getTime() - new Date(day.date).getTime()) / (1000 * 60 * 60 * 24) ); - const offsetFromRef = day.wakeup_minutes !== null ? getLocalOffsetFromReference(day.wakeup_minutes, wakeup_ref) : 0; + + let offsetFromRef = 0; + if (day.wakeup_minutes !== null) { + const refMins = timeToMinutes(wakeup_ref); + // If wakeup_minutes is significantly smaller than the reference, + // it's likely already an offset (relative), not absolute minutes from midnight. + const isLikelyOffset = day.wakeup_minutes < refMins && day.wakeup_minutes < 120; + + if (isLikelyOffset) { + offsetFromRef = day.wakeup_minutes; + } else { + offsetFromRef = day.wakeup_minutes - refMins; + } + } + return { date: daysAgo === 0 ? 'Today' : `${daysAgo}d ago`, minutes: offsetFromRef, @@ -72,7 +86,7 @@ const WakeupPlot: React.FC = ({ from_date, to_date, wakeup_r /> [ - formatMinutesAfter(value ?? 0, wakeup_ref), + formatMinutesAfter(value, wakeup_ref), 'Wakeup', ] as any} labelFormatter={(label) => label} @@ -91,4 +105,4 @@ const WakeupPlot: React.FC = ({ from_date, to_date, wakeup_r ); }; -export default WakeupPlot; \ No newline at end of file +export default WakeupPlot; diff --git a/frontend/src/components/tracker/TimeAdjuster.tsx b/frontend/src/components/tracker/TimeAdjuster.tsx index 676fae4..26b6ef8 100644 --- a/frontend/src/components/tracker/TimeAdjuster.tsx +++ b/frontend/src/components/tracker/TimeAdjuster.tsx @@ -28,7 +28,9 @@ const TimeAdjuster: React.FC = ({ onTimeChange, defaultValue }); useEffect(() => { - onTimeChange(toUTCFromLocalInput(value)); + if (onTimeChange) { + onTimeChange(toUTCFromLocalInput(value)); + } }, [value, onTimeChange]); const resetToNow = () => { diff --git a/frontend/src/pages/Playground.tsx b/frontend/src/pages/Playground.tsx new file mode 100644 index 0000000..e69de29 diff --git a/frontend/src/utils/time.js b/frontend/src/utils/time.js index 3ce209b..2846579 100644 --- a/frontend/src/utils/time.js +++ b/frontend/src/utils/time.js @@ -19,6 +19,15 @@ export function formatMinutesAfter(minutes, reference = "04:00") { const mins = normalizedMinutes % 60; return `${String(hours).padStart(2, "0")}:${String(mins).padStart(2, "0")}`; } +/** + * Adjust minutes by the local timezone offset + * @param utcMinutes - minutes from UTC midnight + * @returns adjusted minutes for local time + */ +export function adjustForTimezone(utcMinutes) { + const offsetInMinutes = new Date().getTimezoneOffset(); + return utcMinutes - offsetInMinutes; +} /** * Convert a Date to datetime-local input value format (local time) * @param date - Date object @@ -99,9 +108,20 @@ export function getToday() { * @returns total minutes */ export function timeToMinutes(timeStr) { + if (!timeStr || typeof timeStr !== 'string') return 0; const [hours, minutes] = timeStr.split(":").map(Number); return hours * 60 + minutes; } +/** + * Get the offset from a reference time in local minutes + * @param utcMinutesFromMidnight - minutes from UTC midnight + * @param referenceHHMM - reference time as HH:MM string + * @returns local offset from reference in minutes + */ +export function getLocalOffsetFromReference(utcMinutesFromMidnight, referenceHHMM) { + const localMinsFromMidnight = adjustForTimezone(utcMinutesFromMidnight); + return localMinsFromMidnight - timeToMinutes(referenceHHMM); +} /** * Convert total minutes to a human-readable string (e.g., "1h 30m" or "45m") * @param totalMinutes - Total number of minutes diff --git a/frontend/tests/e2e/playground.spec.ts b/frontend/tests/e2e/playground.spec.ts new file mode 100644 index 0000000..524a9ed --- /dev/null +++ b/frontend/tests/e2e/playground.spec.ts @@ -0,0 +1,59 @@ +import { test, expect } from '@playwright/test'; + +const BASE_URL = 'http://localhost:5173'; + +test.describe('Component Playground', () => { + test('playground route loads and shows component selector', async ({ page }) => { + // Listen for console errors + const errors: string[] = []; + page.on('console', msg => { + if (msg.type() === 'error') errors.push(msg.text()); + }); + + await page.goto(`${BASE_URL}/playground`); + await page.waitForLoadState('networkidle'); + + // Take screenshot immediately after load to see what is actually there + await page.screenshot({ path: 'playground_debug_load.png' }); + + if (errors.length > 0) { + console.log('Console errors detected:', errors); + } + + // Check heading using a more flexible approach + const heading = page.getByRole('heading', { name: /Component Playground/i }); + await expect(heading).toBeVisible(); + + // Check if dropdown exists and is visible + const select = page.locator('select#component-select'); + await expect(select).toBeVisible(); + + // Check if it has options (besides the placeholder) + const optionCount = await select.locator('option').count(); + expect(optionCount).toBeGreaterThan(1); + + // Take screenshot for visual confirmation + await page.screenshot({ path: 'playground_loaded.png' }); + }); + + test('selecting a component renders it', async ({ page }) => { + await page.goto(`${BASE_URL}/playground`); + await page.waitForLoadState('networkidle'); + + const select = page.locator('select#component-select'); + + // Select 'StatusBanner' (assuming it is the first one in registry after placeholder) + await select.selectOption({ label: 'StatusBanner' }); + + // Check if the main area is no longer showing "No component selected" + const emptyState = page.locator('text=No component selected'); + await expect(emptyState).not.toBeVisible(); + + // Verify footer shows correct component name + const footer = page.locator('footer'); + await expect(footer).toContainText('StatusBanner'); + + // Take screenshot of rendered component + await page.screenshot({ path: 'playground_component_rendered.png' }); + }); +}); diff --git a/frontend/tests/e2e/playground_exhaustive.spec.ts b/frontend/tests/e2e/playground_exhaustive.spec.ts new file mode 100644 index 0000000..f197b72 --- /dev/null +++ b/frontend/tests/e2e/playground_exhaustive.spec.ts @@ -0,0 +1,56 @@ +import { test, expect } from '@playwright/test'; + +const BASE_URL = 'http://localhost:5173'; + +test.describe('Exhaustive Component Playground Tests', () => { + test('every component in playground should render without console errors', async ({ page }) => { + const errors: string[] = []; + page.on('console', msg => { + if (msg.type() === 'error') errors.push(msg.text()); + }); + + await page.goto(`${BASE_URL}/playground`); + await page.waitForLoadState('networkidle'); + + const select = page.locator('select#component-select'); + await expect(select).toBeVisible(); + + const optionCount = await select.locator('option').count(); + // The first option is '-- Select a Component --', so we iterate from index 1 + for (let i = 1; i < optionCount; i++) { + const optionName = await select.locator('option').nth(i).textContent(); + if (!optionName) continue; + + console.log(`Testing component: ${optionName}`); + + // Select the component + await select.selectOption({ index: i }); + + // Wait for potential re-renders and data fetching (even if mocked) + await page.waitForTimeout(500); + // Allow some time for useEffects and async mock injections to settle + await page.waitForLoadState('networkidle').catch(() => {}); + + // Log the current HTML to debug why footer is missing + const html = await page.content(); + console.log(`Current HTML length: ${html.length}`); + if (!html.includes('id="playground-footer"')) { + console.log('CRITICAL: id="playground-footer" not found in HTML'); + } + + // Check if any errors were logged during the selection and render + if (errors.length > 0) { + // We check if the errors are actually related to the current component selection + // For simplicity in this exhaustive test, any console error is a failure. + throw new Error(`Console errors detected while rendering ${optionName}: ${errors.join(', ')}`); + } + + // Verify footer updated correctly + const footer = page.locator('#playground-footer'); + await expect(footer).toBeVisible(); + await expect(footer).toContainText(optionName); + } + + expect(errors.length).toBe(0); + }); +}); diff --git a/frontend/src/components/stats/SleepTimetable.test.tsx b/frontend/tests/unit/components/stats/SleepTimetable.test.tsx similarity index 70% rename from frontend/src/components/stats/SleepTimetable.test.tsx rename to frontend/tests/unit/components/stats/SleepTimetable.test.tsx index c9f5dda..7f3425e 100644 --- a/frontend/src/components/stats/SleepTimetable.test.tsx +++ b/frontend/tests/unit/components/stats/SleepTimetable.test.tsx @@ -1,10 +1,10 @@ import { render, screen } from '@testing-library/react'; import '@testing-library/jest-dom'; import { vi, describe, it, expect } from 'vitest'; -import Timetable from './SleepTimetable'; -import { useStats } from '../../hooks/useStats'; +import Timetable from '../../../../src/components/stats/SleepTimetable'; +import { useStats } from '../../../../src/hooks/useStats'; -vi.mock('../../hooks/useStats', () => ({ +vi.mock('../../../../src/hooks/useStats', () => ({ useStats: vi.fn(), })); @@ -45,9 +45,9 @@ describe('SleepTimetable', () => { render(); - // Check for day headers - expect(screen.getByText(/SUN/i)).toBeInTheDocument(); // 2025-04-20 is Sunday - expect(screen.getByText(/MON/i)).toBeInTheDocument(); // 2025-04-21 is Monday + // Check for day headers + expect(screen.getByText(/SUN/i)).toBeInTheDocument(); // 2025-04-20 is Sunday + expect(screen.getByText(/MON/i)).toBeInTheDocument(); // 2025-04-21 is Monday // Check for time labels (every 1 hour: 00, 01, 02...) expect(screen.getByText('00:00')).toBeInTheDocument(); @@ -79,18 +79,6 @@ describe('SleepTimetable', () => { // We are looking for the grid cells. // Since they don't have text, we look at their classes/backgrounds. const cells = container.querySelectorAll('.h-8'); - // Total cells = 24 rows * (1 label col + 2 days) = 72? No, the structure is: - // Header row has cells. Time grid rows have (1 label + 2 days) = 3 cells each. - // Total elements with .h-8: 1 (header corner) + days.length * 1 (day headers) + 24 * 3 = 75? - // Actually, the code has: - // Header row: header corner + days.map -> 1 + 2 = 3 cells - // Time Rows: (label cell) + days.map -> 24 * 3 = 72 cells - // Total = 75. - - // The sleeping cell for 01:00 on 2025-04-20 should be bg-green-500 - // The cell for 02:00 on 2025-04-20 should be bg-green-500 - // The cell for 03:00 on 2025-04-20 should be bg-gray-50 - // Let's just check if ANY cell has bg-green-500 and ALL non-sleeping have bg-gray-50 const greenCells = container.querySelectorAll('.bg-green-500'); expect(greenCells.length).toBeGreaterThan(0);