From 1abbb2df60b5e5ec95d8369b7173e38b7f381dfa Mon Sep 17 00:00:00 2001 From: joserb Date: Fri, 30 Oct 2026 12:20:07 -0500 Subject: [PATCH 1/2] Fix: Cache revenue property + tenantId key --- backend/app/__pycache__/config.cpython-311.pyc | Bin 0 -> 12367 bytes .../app/__pycache__/database.cpython-311.pyc | Bin 0 -> 22454 bytes backend/app/__pycache__/main.cpython-311.pyc | Bin 0 -> 22652 bytes .../v1/__pycache__/auth_info.cpython-311.pyc | Bin 0 -> 10140 bytes .../v1/__pycache__/bootstrap.cpython-311.pyc | Bin 0 -> 27620 bytes .../api/v1/__pycache__/cities.cpython-311.pyc | Bin 0 -> 5755 bytes .../city_access_fast.cpython-311.pyc | Bin 0 -> 26470 bytes .../city_access_fixed.cpython-311.pyc | Bin 0 -> 21909 bytes .../company_settings.cpython-311.pyc | Bin 0 -> 14313 bytes .../v1/__pycache__/dashboard.cpython-311.pyc | Bin 0 -> 1389 bytes .../v1/__pycache__/departments.cpython-311.pyc | Bin 0 -> 22836 bytes .../api/v1/__pycache__/health.cpython-311.pyc | Bin 0 -> 26191 bytes .../api/v1/__pycache__/login.cpython-311.pyc | Bin 0 -> 8674 bytes .../__pycache__/persistent_auth.cpython-311.pyc | Bin 0 -> 17004 bytes .../api/v1/__pycache__/profile.cpython-311.pyc | Bin 0 -> 24131 bytes .../__pycache__/users_lightning.cpython-311.pyc | Bin 0 -> 66125 bytes .../async_processing.cpython-311.pyc | Bin 0 -> 21213 bytes .../app/core/__pycache__/auth.cpython-311.pyc | Bin 0 -> 29982 bytes .../circuit_breaker_fallback.cpython-311.pyc | Bin 0 -> 9833 bytes .../__pycache__/database_pool.cpython-311.pyc | Bin 0 -> 3674 bytes .../persistent_sessions.cpython-311.pyc | Bin 0 -> 26403 bytes .../__pycache__/redis_client.cpython-311.pyc | Bin 0 -> 11555 bytes .../supabase_connection_pool.cpython-311.pyc | Bin 0 -> 34857 bytes .../__pycache__/tenant_cache.cpython-311.pyc | Bin 0 -> 5097 bytes .../__pycache__/tenant_context.cpython-311.pyc | Bin 0 -> 2326 bytes .../__pycache__/tenant_resolver.cpython-311.pyc | Bin 0 -> 3525 bytes .../token_encryption.cpython-311.pyc | Bin 0 -> 12619 bytes .../app/models/__pycache__/auth.cpython-311.pyc | Bin 0 -> 1479 bytes .../models/__pycache__/profile.cpython-311.pyc | Bin 0 -> 5815 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 486 bytes .../__pycache__/middleware.cpython-311.pyc | Bin 0 -> 2691 bytes .../__pycache__/performance.cpython-311.pyc | Bin 0 -> 16802 bytes .../services/__pycache__/cache.cpython-311.pyc | Bin 0 -> 1459 bytes .../__pycache__/reservations.cpython-311.pyc | Bin 0 -> 4202 bytes backend/app/services/cache.py | 2 +- frontend/node_modules/vite/bin/vite.js | 2 ++ 36 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 backend/app/__pycache__/config.cpython-311.pyc create mode 100644 backend/app/__pycache__/database.cpython-311.pyc create mode 100644 backend/app/__pycache__/main.cpython-311.pyc create mode 100644 backend/app/api/v1/__pycache__/auth_info.cpython-311.pyc create mode 100644 backend/app/api/v1/__pycache__/bootstrap.cpython-311.pyc create mode 100644 backend/app/api/v1/__pycache__/cities.cpython-311.pyc create mode 100644 backend/app/api/v1/__pycache__/city_access_fast.cpython-311.pyc create mode 100644 backend/app/api/v1/__pycache__/city_access_fixed.cpython-311.pyc create mode 100644 backend/app/api/v1/__pycache__/company_settings.cpython-311.pyc create mode 100644 backend/app/api/v1/__pycache__/dashboard.cpython-311.pyc create mode 100644 backend/app/api/v1/__pycache__/departments.cpython-311.pyc create mode 100644 backend/app/api/v1/__pycache__/health.cpython-311.pyc create mode 100644 backend/app/api/v1/__pycache__/login.cpython-311.pyc create mode 100644 backend/app/api/v1/__pycache__/persistent_auth.cpython-311.pyc create mode 100644 backend/app/api/v1/__pycache__/profile.cpython-311.pyc create mode 100644 backend/app/api/v1/__pycache__/users_lightning.cpython-311.pyc create mode 100644 backend/app/core/__pycache__/async_processing.cpython-311.pyc create mode 100644 backend/app/core/__pycache__/auth.cpython-311.pyc create mode 100644 backend/app/core/__pycache__/circuit_breaker_fallback.cpython-311.pyc create mode 100644 backend/app/core/__pycache__/database_pool.cpython-311.pyc create mode 100644 backend/app/core/__pycache__/persistent_sessions.cpython-311.pyc create mode 100644 backend/app/core/__pycache__/redis_client.cpython-311.pyc create mode 100644 backend/app/core/__pycache__/supabase_connection_pool.cpython-311.pyc create mode 100644 backend/app/core/__pycache__/tenant_cache.cpython-311.pyc create mode 100644 backend/app/core/__pycache__/tenant_context.cpython-311.pyc create mode 100644 backend/app/core/__pycache__/tenant_resolver.cpython-311.pyc create mode 100644 backend/app/core/__pycache__/token_encryption.cpython-311.pyc create mode 100644 backend/app/models/__pycache__/auth.cpython-311.pyc create mode 100644 backend/app/models/__pycache__/profile.cpython-311.pyc create mode 100644 backend/app/monitoring/__pycache__/__init__.cpython-311.pyc create mode 100644 backend/app/monitoring/__pycache__/middleware.cpython-311.pyc create mode 100644 backend/app/monitoring/__pycache__/performance.cpython-311.pyc create mode 100644 backend/app/services/__pycache__/cache.cpython-311.pyc create mode 100644 backend/app/services/__pycache__/reservations.cpython-311.pyc diff --git a/backend/app/__pycache__/config.cpython-311.pyc b/backend/app/__pycache__/config.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b9fd9f197850627f89172d607abbd6c95796e86d GIT binary patch literal 12367 zcmcIKZEPFIl}mE@De9Y)C|a`CqGXwp^785j0JmsyZkn{tA;Ik$doZzpaK_!`hjD)xqyd8b zx;L{VMT$zS1MZf?xAW%Bym|9>cILe|`;)>#69Jd}!GB%*O+7*UCqmMfHkJA82avf< z&;+dt5DO}|YC-K*s}QaZXckB}xuA7x7j$mjg5Isi<(h!OZ2-C^V00Vt-Q+f@3C47- zAkCaHzpWyOpTS?b+=Xi596^&W6SS65y{!Qn{8O|dXj}9)AU{hN5$UQ^W4;V) z$mmkYXFmlYz6XP62)BwR-0B%nf?LCojFwiPfJ(H+t-~0JF|AvVF&)PAZUbXv$f^uy zXk|!IOnDSzic*kAF=0x9+l+aeF;?g<#8^?PRZ(86;uNJgk5Ymtpwbe$lrDR>{B1QT z7XHfRE?pz$RJ7$~gS(8@yUX)hTQT1Xw*~iKi7}ho%2dGUsxW4ES7O>ej8(gB7^}h9 z{&|(Vim~s|N-d`8-TU%-qf(UWJj#I-r6!M3hba#C{ya*3s!eSkr2$bGiayAYb85Qr zWpc-KI{><<%WHKg#m|vPai%Esd6cFUr6G^foT41eqa4PR7I!1oWGlwn+=npMj&DnocMHajVXVj9im_gd^|{-acHnXxV<+54FzqD9PPscU z?KH-oad%=`KgQ0uyRa++7#nnVW10(NXWd6Jb`E2D_p!Xu4PnYbrU!U{_P5^`coM@e zlkQ&nJVU~h=>w?Gp_B9lpdVi&Zm8TRU^y6(4e2*O+8GXU{5;EWF9!PB+R{j0I`a%Y z+t=OI+0hneLt%#Hm*)bZCD}}SdG9PNC7uWyh+0^N_H)o$xgYI3*4x%D8!?6|$Q3j* z8=3d`u6hFjCOFS{IL5~^ylhhLp6kr=m~7@E;S5i?DuZzhyXf~Z9ySzUP))fsL-Gbg zL0r^8M-~>AQPwjTVzWA02+@ou6bvkTj&yX&7Cv;H33`~Ik6p&A8*W@cGmA_h6kcG0 zyj;Kp7yWD~h>_}GPtdc-u>Lu}&x=+=&k{3xH59szM^yw033~k=Z`hCcM9EfYE9?C8 z!4S*9T5AB*Gv^O5vX;5QvtD0j6^D1I5dLVD|7-~MkH1yjCU`*7S3J9Bx)7Gs+`T}x zmp1CWHtGEe_+HEG9keF59>04na!<9id#a_|Q!RaNE!uELyP}S%<77rHS()6$Xpp$F z{2VOUE1DHDMzYg+PM*p89V#_O0PTNop06K(u%*6T$VM4^wMDn_no_wba=G0l$% zx-g~%SoC#$0=@W+9ph6GuRgnnK1y&OrElzbYS22WCU`WrQdh1K%3GuC(tE9m(!+PTVw~_@)WxDDfEh`&?|S+X&cNFT}-#fdGd2SPxN@6 ztYtqlzC3H3JLXKTPBJsd{&j7>Vr~_EU7J14x~iCd_gVLKoO4I;74z}6J|jruU}LL^9vlw(dA~Q{k1`aOvU8~=KYx|Ndk_@}&Ci4F z8>xdXl5gJn2{q-Ko*o`MH$@GP4NnjEj|{u}r-#SKs6p46nRC&OlmF{WwoH#-aE*Cf zV*`_yClD{s1=nTSJT)`Xf2M!R<(Zirk*hM;lxydT70WZE^WU8IOt}Uo zUDL8jxuXhBEn5x3vo#3pN1zq~3c! z`=~EfPKEf!s|wNBM~#h7BSl0I_|&e>76Ao>%&p3T+eBbe1TDizvJ`6t2Vv591JILizV@B3d^7{& zqZ1>pY1cc1(#i?(S#XR>eJso(pEm%u!lGx<%W|>-peN{EfZcr28;CHn zKFl(Uer8E741~NiLqjzv=48{Hp9#=PRinq_3wSxslzeDtac|k6|DCVwL#BQ1n{CD+Pk3M>OEE>+MXn#HJ-rW`{Qdv z>rA59k|fB&6I<<_cU`|Q{mOK2@|VSTi#HnLns`}UbEhdD5$%Ts`{DaD>-w#dirWP@ z3xw*4_zeJ%?jBR_A9UW2{J!t~J_Q3PmV84h`G$bgC+TK=s2S8jNh~=ol^hpvO6mw> z)n949uYXl98Ek@~4${U^kti{lA%*DbbeCbyg4Xz3_Yk9>&K<~@vUk{ zd~mb%UcFd-TB<(1*0Ye@xW2(z)_^Hew6}6bIscM4Q)zq{i?0*p5K+< zoB6fN6v+=1rZJRE5I)eSk$DA;A>BHzp(JXDc zH=BfNH>7)d<^Hke;{jn}=EL(Jo&T`-qhh5Hpjh&(RPwBVQ%0$$QR~x65=)+uN}dsL zN=><}`IVY+g5|hqI3XEM2fD9|mtC5P}yFG3)DWZ*P~)b6}Rki%nynBfnA)s#GxR^?`|x z>&U7m+3X9koF~NkVbSO05)Mf7te;NX?682POMv@=hgtCY19E{6dP=Qk(Q`-|`@7v&W9LGo43Td<;#ubhY=)wRoA1o)+(%w`aDa)7RbG zL(9d;naK7Z_M-ydRmOMS4|mqj`MDgr4qT)N8_aPVkYj+1_RlN;ZiDG{4erVnR?#Zh z0@YE+Ifkb|QVID-<#-T1KwilpW zFfa+bm$LOlEt!=mtJI5HlmS>J;O#51NX4~6aa$bbL>t?OSd?XtI_372!jkI`r@cVz zgH@!8!jaj4pS$XvP5FA(RC!u&DGufHq0l^3S@4Fr^s|hXXM1Wb{sr$mtj3j@9g5>a zEEIWWBQQhwXkjD_OMW0-Z-1tqQtrvE{sie;F3Y&R;ZP{x;lRjvf_7lpnjtKBZ+Jo= z2zHaVi*bG4zrchdyuSo?$gC!q#xlNTUx0an9@FGA2!YC)HCwFOzmy5CoQD`oCSGXE!k4SCdz|X z4zWRF<|UO)iocIuSpR?9plzxk9AbGE#m!`cQiGnAivCtv^Lwv1lwDe@68#BY+vMBI^3G0kzCnURC^ewK4+Xev;~qFcx2(F^`MF) zQ!?+$^(=Fx01fT%l~mwuP7w}*$8mIp*|m(e>k0NT_>@oAp)t1~72zjVRM~osXYt<_ zIak(rRvciv4tS8T@@+@jQIr892=yx(x*(=m1XDYv`HGeWv^h68jJ-*S7R0nMh#H)L zPF`(@so04Cc*gea`tW2g ztmtyay*uCHnC_|X)$T1zvY-EMJQN9Oaz*zo-4vXip!=sI~ zTPS1^Q0J$>7et#-aGruKbPghz$i#p;6c_gT7}!I@Ue?PqG}>YpynM80XnbnA|C{}n zJ=hPNqQHenM-(Y=BK&A`qx>AjEQI-G#55SJz%m75aUfN+G(8?KhereKde4HH12h-}u0^Fthbh=j&`5V58n~5T zs=$BjdxC6)XhWJYR@ClIptGidP$WR(K`Nc4)awsY-rzEIJs4UFrghge6J&0LVV?rw z7?uUype9J79SQ)x1(V(-&?op@eU!6^J&x3H5P+-)A1(-O*psNJ85NP&I5@%5B1esr zNw6?@nS_unCl{mVJIMGTOzcAafuo3Q6S#!~ejWn1xX|dj;bU;X*r~@xlB`n(A!|WC z9$2EAtO1s67wS*Na46K4a`zNtsvJB{Po8a@F{*Z1 zy;4>0x(|Y<-y#)UjLWtA1-{fAPzq#4L_%p?;`B} z^};Wym6;k8FJpZGHDTMcZk~ zc6wd=xcWen(3Bp=V0|!AY2TpNUs``D(ct`v`|sR$HFv)uHXM^0j=gT$&}_^k4mNM- zHn`UdzIa?-l_d0~`?oCi+aote61K&kb9axv^U}L73ARN@|K??cxxk~j7az{OD9&-x z94C5t$;&HL5Z77(PsCaQPXvIDsIFTdMZZrJe!_uK(K04k#ste)VqeYrF#081VBlZC z^?5r{0^Mtj&^!$?4{G?nSEw3>B%04l=JSI2e1>!~&P$EQg{qT~MDr=hd`d8%N|amI zhPQu+e^L)z;m%FK^!kgsb5+FO_uB!!NAw>YXe9p7I8b!1Li5LN6_ow)ST*GTRF3k0 zvZ_$NLWA;ErlD5NpB(+fkW=%(p#tQAQwvZgeSUt~m$j3F0hhAp2yD;MDmV`(R@89U z1mKK(MWcd4)|e)Dk6t0c?o;n>N$sc!yKEdd=U=(?*c-TK92MTSq~e)~cy{~TmfggP zKBnK@3W}+>t(X|OyY&&c~@>Pxi%5>nQ#4?;wT=Pcf|^F+pd^nX0|>@Dnm>KQW<&YcH`KN zuR?%sdSl0_8_a-nIeZE*A2S|fVSeqLx<&s7I>_^pVrB?W6i44TrM5*1#VK-)E*z%d zzyLret`u5IGL@&Vg2}YN@K-}LGM>O{fDrw}q-&sm8sgI}R0J%zX>`0hrJNU2{vgLQ zUOL0z0_@X)h62oDDZfxtE=YSbHqhygkZrnqI`wvb_l z9ojLcN-jnFHZ}$zV1y5bYgB)4o+~FU#c3Tj!dKeOwSpqILgZ+OUx?k zA#bV`zzMZV$MaQJ%m=r6gq{=CwWGYz<9enY53AVco#$!n$ z4YtgsLfQBS+=C;(UwnTNvXC;?Ge}=ye`IZWXl)U#ZIZQZ?Q8-Wj;g}yMCHD9KK*-a zJGx2!qv@xncg*ja1=~?b+ZNf{Ft*7`p-0GkZXt|C3G?jcWx+fP>Emf(^3tQpD-S2H zh?5>^(j$((AdSAD5J8hh6KK*12M!1rh|Drs2LCJIVGEyi&b9>*{o zbd(K4`rW{N?XS=O_Pl}t%ovkkPkw@iJad-^0O>)MatA1yFG}W%g83q5Hu^jA-o<}@ z_BYS|`pR#wh&>mio(n?RC?wH5CYi?s^Vs8J%bJ-RfC>47e(gXl@%w%K>N8E6_iD_5 zyw^mYY1O~iszLc9DwOYNhWsCDO)jnG56*5Ep?SZ)65t1f7D}8a(b*k3euJ|+lg9(! z^+X{4>ygbK&x;XnK%uZGvV&h|x!B|J2Enn$pY6c;8;gPm`20~hzSJQU84xV`l0iAF zw4z)E0+k3Lqf$1bFNgvtd|n~|EUZNADTJR!pdSGgGGosmfE0k^ z>#Pgq&H|7P>5r+{VN`Y=feQ$XATWx+7y{!6ATynv1R!hBVl|D>83ZmOa0!9S0AwwM zoV`5zEGl>ofh!1j5O@IrF9Nd&pl^HdddDK`7q2dIVd|vP2QhJv2hIX|fP~Kio>A5y z6j);sK!5JvHTXPo6Z-0txv}k?c$~0uSr@jkx9(6sGx6 z=LFKW0Ug5qoJgKaRMxLvST7gIdPpK!pXfL$kW~E8X6IYLAM!^<@@S&|(CXOw(8km) z5c3cukvs&FSPly14V#PiE(zsl#qzUK`PtQxB-x}rnIv`rZWVE`X?1-4(uVKW6@hd@ z5=kepv39Nwt@#A91CmH~B+4pQU29zeSpi8Tkt0~ut|+NZAlpQ;Em7I3$edD2qPA{> zfg1Je+$~@WgL8YmrAtVv>bxEA{qQ~sPyAJh|O%UaL(`(Eu^ KHJ~3J)Bga=T)ruCB$6VRl1S<;N-`xi^mjk%cHk#J9X#yrgJ zOn4_N#wu7GSHd^uLtIzFKjvr8%CSoJ42%WXGdLEsa-#1{l~xq7`sWso`z8L>Yplk~ zJ;@2~i=5#3IZF3S{1-w(9!_+fsnz__7WnFP-v*>>H-;NSOH!&A9b$vv-HphI6%y-9 z%3#C02BCt&1=mqdtXXK(@-aRIpE;fdsiEwCl)bVf$0imMKuEA8q?v_OA*8w_q=kjl zAS6^0vI?bM^>Y;EmwIu=>dU;dQR&+`v9*Jfc8;~79=smG;1FuXwjXgnwwA3;9rCX) z$$vHST3wRA?M1ZJSldf&l&9)CXF12cj`!y*;f6m_eqn3gHk3S{cRxFwj!z|{3B2&f zBr%#6Be6tWOs4bBeeC&18W8VV^6r$FPRElIsjwwqIU%MaGbvGuq^Hh`Nxbo=W~QU3 zqA4*lJvEgWjT!31ISZcq{{xPzoXCw?1a8bKSjKFERkYKH9=8jQi}o>x&?q?ZbPBGE z+?b2T-k4kPh@Nq);Kh4y!Ce7&h0rAUM33MXeWJfOD3DU+MaNjB7!c6MB`p)g+u(|~ zRd{O??Z~6*qP-+WwNQ;bY+?=4twF9Kxc&Gt1b1!0T?==efZiFa7wTC$4S3Ta*pG7I z=6uaDF&Ry!ht5SM@o1ruqMc~eL-C2z>2o4c{+tw@o)#rOeL9-v;Y7=);1T)Qj3l8m zcu9P9MogucrTADJ;fiMN~I@`>_2*pk3|!S6yKeWo=S*)b*pEMl{ zujf-!{E46zOq!pZ65`|M(b;@FDa2ok3p3FK zj{-<2RmQ1PsGoPd~_y#x>pT( zEgog{nn?LrkmhAz9(cFo0cXDAN4@P+<9U7@|j7utyBX1O!^7v?#MxGpUQ%ge3% z5G&%*d}$peInG!L!7A8(j*|S+SQ@x!?=xK1xN$ zcY(urbdO5Zg!yKDzQ(4KNijws5J|@;MRfm!8h>za!7;k`kHo zl>WLhG9Ha5W+cjc22kaXB%-Ob_A>7RJVn!KDPLoZUZ`EZ-uN<=j!J1(@l?JV$R|dV zGt-guX$TCOs7rYMi%=h?KKmDMt?V4O`8$FwIt5(yqX{o*E zy&dw_Bl58m+4dKe_7~|bpX&`=Ej`ht1(w*qn)biRjYcT^DiHQ&o@Q;?5n6;!P1hCqKYtlVuvv9MvGdhIL+0C_B zQFdx0`=8uK8_cOcqK%pi`8=|Xw3=zpb}k*#+JWOBf;~0o5WE7HsF-tFxmo8K9ct4} z#qZ4RHRqajE$FaY{0f3;MY^r%pLLkyl@sS6pmB4KHympD$Yl`Fe4}~KG%<8wP&)60 zK&81|r^P7PX6g&quqp)P{X<}_Q&Kz=B>>O6Qeea6uoKIbXk<&oml)=M(SHD-DGH2D zL&P}GlLV&<5+y2F$xoM^l8X(t3K;N2H(LI|1_J@d*|F8+G_E zu=NPB^~hQAeBQJF^_a*c&b%uzH8BDHpZ5T*55X-;1a-;iq!@|hT@aU&6lzPQrLbG- zq+A?K=#hFTTgGTAvp)@kLZ%tQbwT0u9St(Ep<4+Hv)HucqnRz(PD*)34O@FLTbSp4`CG?{Ad{p2j`@loIM( zn97E>$?RULZMpX1q9ub6+N`JZ9wev41wQK+O^=xgwQrmy& zK+aeFz0tQu<>u%A5R;D_{r&hqj>C;R>w7`*y&(Hu$oYboMzp^NxRxuBIG!n*4f8|( zkxkqOZQDU_HFSc0Xz3-ok=}f?$$P+I`)K#z0nYYY&H;CM-gpgM@w?o2ZD#&>2I;Gp znNz-HyJWk>VPRsq=zfzsqjS^+onLD4=xL5SQsSSpfG@t4HgJ&zT?jU&B3O+=b18rM z5qR8>ZDuS4U$KmEFRz-jn#yR%shB=^vE9tuEZpVRN98Cu&a!e!y=h$_20A;CmoA(? zDt-oFXU_3WE~3Yz<(&2(c4oHkBUzE3ndS}RueyFa9eqv2GEGckT|@#hKR!h;JH;oa zk`t!RrsCG%|2_fNUt6zo6A*D;u04rPo3o&iY_nD>)SLEVx2skB*EO@2?^`d|9p&ET z!WM}~^spmu?d{LIs5n^G<-JAGHt*8}aFT%;mZpe*0vIn`V9@x5cXuM5O2?)qrw22` zWsy;njgc(C+)(M>-H9nIJ5z&jXlXo+)Kfb_9$es-Iom34k^IMob=O=AO}RkxwKLg3 z_u>|1-SF+eupAg(wsHPYjyd6zx)D9&W6ew}QM7cXnrFEin_OMbggtpXs~a)myd$0# zCsWcO+|mHOuq7ac+oq?c^ENCxBwCV%?J7^HT2UWqgyJ0lNm2iNo#*$e>;r3o!unuE zoJ{XmYqKXQ_5Tg>01b4nzWK`e?|t){jrwpy-lv(k6)PTzC4`<~189aZ{{ zF5B?wr_{Ee5s}@E%U;g63S7k_T9z~jJN90?+`A{+vsdZaD>olg@2u~*;yW(;j^~=! z11$Y}2{J+FUAbUL39i2r?7toCzfpg)BOBbK1oz17z89#LYdW%lP9@N}Xt^B-%YpFH zy57ZCZ*(Y|p8ms8`MFcsXJX1TvFxT;cAcQC6Xxwouv=#LvY(2j77pbM_8>CrVbgq| zLCF>d;{dS713rM20q&%yj7tP*m~;ZgB?HYR`1J)v0WSK|`XuML1zoU2S@cU-DLh-T zw$@=*u)(K8EyPqVqJx^Te5oP$j3N5s<1EWp+Gr|^pY6*1>EEX=XZ24DOKVcJ&R*ukMuQES!yTJL1YaP zn$mfDJPAZ?CjV;kJ48vElEPLtq1A~?mDQxax=4)br?0^a^~>~>pR(n?eF4d(ehp%t ztWM4sR4Op#9G>ol4rR>%a}lx$O6%5aVCzl0vg7#ez;QWnd?{FWwc-aAa?5Bo_^c9q zRt`R!>+GQ!vL@HlOV6&{+AeywL;k`v46MfN_iSDel(hplk10=_yuJ3My!Ir`>_cxI zk{e&R8Bzx5soq)N3B`9p_MOPB?z}Xj_*!#oH_@~GZlDHf$?nx`y5;R8V4KuvGz8hC za{}(nlWvwX^Y1yUafMx!GJcLEiVE;KOoqpiJESV($`9*#>#s^y#oxyCEiZeRbA(*M z71xc%=~0+gUr!rWZVTn76((&l4NR+*)2w7=XEEs}itA;;Wp1@EEnR6lxXZP}>y~2a z1WyL)z?e0ngVikB{0!hty=JYu;qahU7Ic-O7Dmr9t*5Vm7j#9VF-EC$H)j{TfEc}1 zXYIx{Fol^)i;|foE5t39-B9ucU3qEBo%A=D(?z|E1$qmt>IoDI7gqJLIrJIYNiUV& zPWqe28NVo7wU(-B+>ofY;=<}*XDCn|>!53H<5?RqAHnw{yWpR7Kqp`?9V6c^=md(I z0MyT*SNMO?rursP7@|@N zLDG3XIuXU50PZL@7AEmoFSMT(#9n4n5F`bt_XQ|y>NzSY2PCX^cMK; zFD!juSi%!Oe4DO!_hg2OB`e0Ey(ciC)6tn!S`@yd5UP5FI7MdFG1@QTp`DeOB8Alh zxfb}6t#{LS#+HIYB$T(t1(h=$LBzcOYsZcq)^!@vDBdyYQmQ9cQ2=$M5~4UQQFlsv zh%jx6gKg8Ooa_+2JxF9LkrpD)frOnZTRRFjcIfoFLd2K$(>rX9q-GLn=?QpJP7p}- zxR}T)y$pY*u^gjgStlq?H=5uAx75&dZOhy4>+VbbrP{_TFMj`}D=%I0f))9KcPiH2 zu2`F`=vFGap>pt4E>*YXTH12;Q_BupO(kT|no7u^HI-mk{z^!99{(M8*KK!K)*V*d zVc8vK$tV@=3u&cm*X@d3a>XuPLOnxF^03@|hVG*;C`Ts>?&dRD-&w_XR`#8}=L=qb zdOn@?wJ5$8+1FCwkX^KR*mFCuM-J>+s%y{j?YZVxP^S87l&QWNWvZ`6nX0N;nPfK) zE%w4t*4?Q(bKCZky1HZG<*a-2vOVA#wqRj@$JcV(*OK+Mf``h!R%BJzbY<*LZRhRU z&IKV`yH2TH2OYthcH*vWxthk$gIxEz#f^)C(tF^Os%-Dm*{*|1*Fg&IKzfR=`;Kq@ zZQuIEmv4?_eM5?GNM`qg&jVbrks1_*)CeNTzBVMhurcfFP@PMwJKt&iY4bbHjIZkg zz{|f0{krk*n}6N>ekMEcoZR?w;U0TQb!2_7D85%@-zzyEsU{vQdyok^KKK2J1%`g3 z6C>usu5J74xR2|+PugrB^Fyr%25r9`bingFo9#&__dDm#uW>e$h(Q3!L<~|JVyBK< zz;oqQ%4D#*wTxnUOQZPRf_O*sps-(}uF4#=%NZ#@$XU>jCWhIzL$9`a}BGQ zHYGrt6RJ>T9Z%++(@`lpnTi>}ytq-JT4#W%AsO|8TZj6Bkg>q8QQ4kUIH%uHLfLL*vSrrpk^mR#j zVF@b=>$D|a!j$K10_{fX<(;(|cRwl2R6a07GgC)gy=;uV>oz4!X@77IA{y$br!Q!A z)Ze6a7upKqta_R2hg@`F$JAqG1s|-W*w#jAYcqCjf5UEK*M_~`uU1=~@nV0L78}wD zA}@jzINsmyF|ez;BZv2`U{>HxmF0Mk%B@aPdPUA-gH?cm@073{hstsUiX#%CZc!Nw zjXwi_nSeJ_Uyi>ZgMW#@)B%jp3*6m`z@GvCOAP)~Z$5kZ*-Ovfb^BHz`LeabbEph> zV*LZx8lzFwkf`C zvTxg0fn(WsP`?@Wez1CAcn5cDhj+wp`_MY%9C6z|ay#Jp$Zs17avufTM*7SOWkLvs zy|lAM*jt=~MdUfkNl^r24NXAF_H^F0uu+hr_yuW#l-rqxa=lGEDu0L26wNGjccA8S z=JGdXck4}#c`B&Z;yIOSm|(OD`{bGZ@~V*ERbKoh%AD8o|Nq(AA1F;>kzE~m}pM+(OmNIxI z>&KGjqWwW;XY-IIQv?5jnoR9S($s}6XP{dwC=W=nYU1p6d~D$C#;trKX9H(9E#Hdc zP2XG8^fyV$o}_Y3e^U{O6zn-*0#Sa~uK2+%imfvHdx5(7^p(uQ7HFB3K)3AfUO5;E z&c1{H`>?d+4ssTBJuD9JLc5AnB-LoFTv4fLW-i|Wi~ol0dG4z1FYV9|(6B08MYW?j z24i#vjRe-QJLW8DFh}hwzn>4$f!QULGA6-h-2EsOsp6KH6}!)tIm;Us>}RlNk%fir znedZh+Mr+O*^)|KtFe(iIR#r3>^LVUMl;RD4Q2F@@zb5Wx_EI*q<_f!m<3Bbnuupa z>`ah3i|WY-5RsV-M$|mi)el=Z(dtK{Jp^rJuoaGBWJuIenf7wCza-V);=|Me$bZEj zb|mahPv=q%uheWH#rH<69hAD>Y+b)n*DnXl-0a)_Y|SR6W|QpO^k9j$6Rn=kBGIMt zoi|>U8+YQ)`gSS4U9xXiF4X+vqYG7UKY#ss=+D7YN^T~bJCGV2Dbi|Q+`gOpwRdRH z_JMQ5(17iO%@%SGI6zI9<;1sa@E$;;{L>8HE!=l3#Q{$nhYN%VD=wkLqV*wK_LA+w zhYb7@$#)K$p7du%nD5|iaUv$G+PRIK@mtq3;-azG5|2i zuwidz<6%*PdVP|Q@-R0^q)+oqea=rM8Q;+?(+n6fns<;TNlF?+zcVovb|Nh5`LHeT zR3~;mV9;F%*YNj*X7b;^Z-Lk6y}pFxZy(c2VA z-b<5TwIO9IN0dNJz``-_U@9es8mdst#NHCDQDt8kv@jbOCi&(osJt3LF%&Y3!Fiur zI(4HV!t^>*Xd8$z~mm(sZFPUFz+#-aCDXB$V9#*uj^EJ8{W{*-0% z*<)n&IK_GVZ-9&s`}lJ=*W9f%ZO=9hC`|*G4nkkk+>vYVU0SvJ`ipPBbp54empuf{ zluG=S4?c%X1FehGgO?i7(ff&;kk+5To%IbWzCqbHc(CM_ShdVBc3qe6**2LC7LyeF^una9I6Y zO3e0bncn@ci?JEDXKGlT&#;Y9X3MWDZ<(kxnrS=?T!Bzus&~dxUKN~*s3y&#OfZKo z+Na^@g@$rw94lyy^ObtCk@1;i3^sw%L@Mt*3(LBRl=MxcS5{}7uM*X2MCddClg%=n zyY1F?2i$BBnE;6<5nB%4hDd7OOE!x~bJh~eZW7_FCHCAw zPl9J|z} zI&2OvDi&Ad6EftZ3&M|)qr0TM^|Q9}BJ%7CD5CPyKU!jZ)|whOg4!7!)L_GHu4B0t zQf;{Zlor}xPW=%r)Pxq&@_A$nY4y^c0C2rbYp61 zBfMds!Ss5Q{(12uQglmOh!oMEY~9oqb79kvfjmue)n=N8ds)nvXc?IamqYoo9Or-G z^OPM^yu>!T)^ox_#?j8jiW|qW4Lg;FopM9;HxuuVf0B?-emy%FRR*I4yXZi{E}EYI zU)e=F3wF`;y!TIP1?{IIK#DD;-ctK#)goH8g0`ZMh*@a#o@OfeP-|xxJeS<6TuW&X z7a_Iq{E%&=i~FEkz@o!x@;DMxZi^yoytY+HrtLM3{<2A`(fwQWp`nnZY*PkC2xXMQphz#mGg_ zlD7--SX!DOr+Zo=aVUMB>9!@(8%vW!h+9e1L`a(?eT&FhRLv=fy6v+}1 zDtqep5Opr-f6G>ne47~kcFgy^3{$t%bZSn z);oqR*V>mkdX}NDSS${n!tp32&T7XY#34E#Q=bbv7DwJ0RNZB059h30wptu*lvLZN zHh3?dP+vF;K`5NXvBnUz2CFZMWp^}PtHXlG(NrY*XY|%*b%Yme7>17UqWWNN197_@ zoeSw@4v$h2YH(C8j4X3_l#(re2P7e#v^F?SSQZb^S2WxoMb%!WzQxd^qjv@28t0x1 zhjuf=M++|g_>n_>2gUPzaw-iKf4Y}HGLxj!DrDrc?=+6!ib>c@J_FMhzWbRe*jB1X zsl&ZAHuVem$*%jf&1pCn?G)@6>1?zEI}fhBn-aiQf%HXF40{A|C}70B+Grk6Or7h6 z)pp*&j@N!sxlj9qb{C`=O#|&BH;wlDq<%2VW<@PG6nI*(w0P`kmfp-d=LJf2#bu6x zO;^1v%p6shMquX;$?rOu)6(Q-7tCpGacq?vj@V*hX|%5m;p?@RpWBvU***zBavSUrB6Y*0p4;QxPonn$%C3#MZ zuM6=B=%|=x3wEZHP)Ox{Sc63-VX#E1u)LpCUq!E1Jws1NJo5o|C^Z$IfIWVa&U~sS z=hAf)Mfw*+m@xyj3vJw}5JT9OsnYsfKi#<+Sd*e{SXk;bt-ii)LHtGHXNjLC-$`bh zwkl0q?=loHVsC@Ht7dczJE^S3dp;5hS1WR^x`cd41-JH@%t1&gs0MW!(oC)KfuOW zo~W~rqCVCP!9sw|5UlIN_Pmc;>xh_|o=T>~QIi1&jb%3Gd*CQNB0g*V7EX00Ep+Ij zXe>>msjwNEw^QeWji95^B%Me@`dcD2wo{a@x!Y=u1<|{%hZ=*nxnO_N!lTJOxsGnR zW6QOXYa=(Qmpt?MV=WN2j*dz{r5s9H_HXDNk#M<|wfdg`a+W7*%Tm-B{`E_nQ(4Rf z>lqtuL?rE+DTpy0fh$c1&F>z~R8C^#Z(w`C8#Zp*j4gXMJgJ@Y!Pl^5Jbpex_ybEz zNj!j`>2OW4!L0 z_b4CNbo6{;Dk`Y3_8Psi%%og+Vsg->nrXR7D^JrYQ)e19z1sUe8rlB|(Xdlr(;&C3 zzg@Flu35j--1XjxcgKD;CO7ZMHt$fHcgUd~%g&0b#=D```KReG*V=t8cKys^tvqn> zljHJ^qjKx9Z0j+l_1OHAxt8{y9Q@(IMOU_^Uuo%|-=C{*flN}nJI8nYBJi_7mfxuG z8?QNXtJh)*HST8Q+EA{IzkY79^LAUG+}5|$wfSb1+_fv)wF~BpGGDlHT#4_0@ZerO z30qZADQhGbYM38cw!sVO82agkj>V8%-c2D8KJ4Xgxh+J!-r;)N ztvU;+X@?I@qD~?jXJnO7fF>0lN_O`dT4!p^t;@uM{nWJ7BWT+C=J^VS38svQm$KPP zW8Ewp5O*&9sS4BB#M~2{X3dQ$+=ck=M}&J2?tMgf1;Tyi@Ckw+|7Z!5%2cZdRiwSC z8E}F$2}W!}WPH!C6D$%FiZZn@$JmPn{CGlqJ%L|0Nlq{k%62p^Wa_2p)XaF9P{$Dp z$TUvIW2d8HqRbbrXVf4VUob{k+C4YWw3!BT_Y|ktQ`AQ)gU9wx?J9ZIz|HOQ$gynb zxDqtknSa|&*ZcL^5RMT)#r!*NcD+B4 z4LzfTo>{JNHb5|TR#mHgufacx#1TTWzW*yYXpk-7x$-JOL2yong1}g#^r)kt0ZC_V zzbZLCrJ=b{g z=+t?bOlMlm?XQ7PgoPfZJ|N3GaO#GZp9Fpw$TozPhVZ;2*VqbVsM^BF{7|mG;Y#}2 zxgUIU{+ml}>uyxZZJV=go0YcBazo(;I5c$Kt8X{YeAf7*z+GDI8ic98Bkw;W!Xz$M z*MA`IFcA`@RN-)uTts@Qq$lCHp#LpfLw=m_*2#LVvJT5NKj01otFOws%d~#O3#Z$U z!Jw0ngCedZYQ~gZ4FCFttl4#+Dp4vrkl-+epL7CsFj2uNIGDiT1a-5Yb@B*q^sFZz z(7Qri9hm@$1}Gbpw5~S;l6fE+MYmZJXPFS!){cj79)Bz6lwN#d@!v%Sa5ftf&_$}b)%@#N)SPYjzwZY5 zYs*#cO(-6j0LpqFL;o)jApIqgPLP7!d4Y|HFWkEm(aBRnbTG4_q&ZQ1jBfg|hDgMC zL|6ShN_8TZ@ZbWsn7&XLWNf&dqD-g)UoR|4rs2*sKO%V&o>SFoVt4B|%laMMtTqkR zQM<@Z8Q*t;l=8H93s&A#Wup<8dXS;Ev<&PJ1C5&kcf+imZ~lr|N*|WyHHQ}lDWxzP zR3n0MWOiR=rMdE~^pW*jky+jwVufE|DG$6MRAeRa0$ObOijkSg$@6L_ zo7Q7!02NRPX0BrU`XXsf9)?Bg+|&_NMIvhviA;0z1EiP<8!~=0^n8Q*f-(T|Y`IVt zc{F7RL!SDFq@1C2$h;8Tx~5OY?dvNHofX;&N~m;j{DIyPIZp|-vxKza0Y2%$545Z# zY8O(h@S40ceSR9!qpCx;Q*z%U;vhm5lr|F~**aen!_S%Z7SvI&gi4FAr`ZlqeiaMR zl#GTSR$yE2s&UgcO6O}thz&{Ch`dK+I}zf;>RB^CTzQ|K){K-;w}?ox!w;@SqDg2h z*$KB4bm?rnh>5CyLn$m0VKav9C_O>m=ZH{kOBxS+N7d91O8)_&Xh1GSTbNk&SS&e? zmmhNHxE{IOo#R?$^PS`RWb>WlcF5*C$5mcne>tw=0{b(((Sy7f*xy}G)1`XF({yb| z*3+SQIxaYuox^qu>4hKu_*4!1%>2nA_k_i=D(4C)E=X6eSR9=T4a(|$sx#NN{@Ps5 z7gBty8SVYlVdLpH8hGy|-~2di13dI=7#{lV2Dsc@c(>fW>*k?s_ftyuQfaKcjW0lKXupVGU}iUFG-0ndLkTi>nJcVF`5YSzr}$<}lzH654S z^!MPdD~J_|1t_bLoZb7~L*G6mSCJW3)f2e0_CduyDBA~@?N$dSUtSdqN-LEXTs z;(ij?wOYBb&Rjmz$9t|&GyOspUoO~AS@?=8ta;pK27rQ%ujH$EuQ2dI^?NYBKi9{2 zW>6ShSg%npybI3L6kqdGny=-3r)m6sQ1_k{aN(z3G_@kGo3G~^K4^RoX7=a$>^=s* z+uSPxIi%H7co(|PZqT0jCcYV3)l#CC(zyQbfZI`k+sgZ&sNVVl+$O&5iEvv?xb07b z+iAk>cp}_Z6K>}d;kKD@yPgQQ*@V01iEtZCxZO{L+i1e=c_Q2<6K?Ml;kKJ_*RFuO zQCstccYYn;$M>JMd@%4HaMPa~+;#8@Rm1}}!J9fHyHgu8DU?jD|=85gS0PH3aGFsY>q@BDr&sc=L{0Dv14PYa3Jcr1Yk-eBTlEEI~zlETZ$ zXfPH$ErQ%RB$NucUkn68 zAt8|noPuU6m8P8V%L1>scwsguCZj+wq1b1|_$g=!pvI%K!Pvz>LP#coW;z5c=S)S%C5h_a0!&6e1 z9VyC?+!IYn#LHg`x{Rph;GJj8YYAjx_88@$k_FIbZ5jq|HADXZpkHC0rQTwGkDaII z=tRI&qo#dm=;Y4Z%rt1I%|Xr4;>aAmP|#ij>2bBvfVto>V2zY{w=Ha`+DGhX2aMhG zq{lBa&r=s@Q|k*xz@W<8i(3!%6aCA8QB&snH&7c3$I1ddwurwsXIXF+Vh&LWP{|gf_D)Ldp0}FlRv4v5iZ7qD{)8&#-zh$vOCmwZ1dmUJ9dG(kbl3laaTvbw=(^;(+}64 zVCdXwF`kO?{$wz5&Yz6?BZPbUfj{~~!O$7OAC8?5M#4Po67iTn3M?G;5QfSSA(4d5Yg(xxyAvS?dsKel zg!HDVAnax^$Z>xnbutkW!zTrNC<*Nkoe4tik<@W$?SHxXL;v{ldC(g`>LtxovtT3h z!#q8fu)-!U&I*b>KbZ;(lN(H1Q^`~PTT*CJ$-VpL6_{Lg-b(c!=L!eTpLXE@MFbEp zcz@albCeWe%ZGV}xr8}W=ONucDT;uSpAKweiAl^iXVjnWcwCPKBsJ>qtyCPLxF`%@ zS4Cu6q8lQ`jdF=Ldx{PAd=Oa_RuvfZ!B^}c5fLH9m4aoJpAy9yio_EFV3C(VVNMH4 z#Tib7V=&AhEGX8K7n2~+*mxln=LN-~OIwPSG^^J}TB6uyfn@5W*oG~#lO-1Bl}ckp z@X*FoEUC~!0(W+N7ybUva2&kS*+y`IL{ld*IZKdvl;G$%$<<96Isr4&6Z>R*2*t@ z9kQ=q8ko%ZrexogR9PIZ*|Oy|K*!;I;I4XO`n74P@o2{VwCsLbazCAQSLOPwj!G4z ztSejFbicOeUTu%myE{`mCfANh6(s_Iy%qU!!N&Mzig`KO6Yzz-?cqeXHEQ^@e@P*OH@{nxmGbzA>q9?8EL% z-vPPrfK=D}pswXz*W0cfMRgsqNJpPj6ZuEseBq;-{)(dNk6OMaG2}q{(W3|6Ca4#h zUKl^9sC~=*W4F|NG+)~ZX#UY3wWVl^2w@X?U@>Bs6soMVT*T$oq>u;q}vKk8(B6jrAqr^>k75`-O zR6BKN?Z}=k>TZ{1&syeg{{ZBC)M%UXTRv)|G2O9;o9wfEvJM|U>2ppsTR+*{JXL4? z)N6&DPwT9Z^Jz1S={9;_1NCXUbFY{Aw6A%uhxwJm3OT>>SRv?k$qLvXH}Mc zKIXFqdVdr1S<}e=8uoLq1=63_SoYW3KlfQ7tuVk{Li$kwv=+r{2JB-GBf3hHge>h^ zD1_BALFqAzq^Lab7C3aUM45S-C<6tmkd9VldIM#E($p4Eo(wQ*g<9F-T8RKzAodes z)ncNgD@_IDDc(9~SwUE(<}I&UK!7B7Ls$h>tlXe*R_~ozy)gG^6|F0+XxW~$b;$z7 z;jFHPiQAGj1#Q+KN2RouEKbhBdm1Ru(BE7tS)6^oRM->Ba5>9hwdPa@iM{HfW2fdL|$zfUV=iPUWH zWH2EFX5;Zlst3A^GVrl{t|pnIGJ*ggX@Zdn6qK~Ur#2z*JFl+-Sk-1u5vd#m&K6bj z*J-K6c@c5cpXvv~L@0ioU`jNokSGK}ZAiU4>1|G*OT|dqIgQC#JbTUZ#$V>9u2MtJ8#R5Vubn+8v7MvDB=prU-nx z;@FuKF{t_Z_=Ok@f4aRGI{^?_2qPYyjR@GOj&GX`B0lq}H3;|i0(M>%{4t+M{iP`Wy-3dc?#dO(OY=xKzYW1hSK%3C9(e zIvoL=8X_($HLA{lBc%-;G)&x%Xmv!H3K+u%22L_;3a1T*i0V-$JdO7~Ywmg0WIR2xr$^#S1YNK3Pi~`L-?65JAXr z+huOMv@B>{7Ew9TC9)%_=hn5;}8nRN*ysh)}~+*XFahO zR_;F;9jmAA)I0Y$nL8cLd#ub|s}<6BJ@tEfsJlJR@p|U&hUW2V=A&vWq<>`{-A7ZO z(awDvna^C!`v#cL2CR@ySB{~%=h!&`*a`4&IK4=ZV-{Eq!XcIC2Ei2d3|bbRB8Lrl z9Ds0OWtc#Vd>rii{^M}kf!stRl(r5HtRGn4%PQ7nI0>f)aF&2J7IF@v*w5pUKwNzf zdu{2OGs)!a=-?pXv1j6m(`ga9v&LmsAmst7{NLQhRo1Lwh7vx4cVJY5W(!@ z3cVKETn3yzejxy75O6w?P%70&U|c*7OE8kqAfiI@Oq|yr;lzW-p8W=t|1WJYOT8Aw z9R>CnO+^C<*bkL5hx9;lcAm3X3KafVM&5sqo8S4ho)5q}}=AK`c!d z9HjJPhGIo4Mnd#LMIxHD)7sHYzjibu)?!%|MkvAo037@DtH(b5c6H8uJ-yOP6cc|$y7q&&=iN#52S?CBFr$aI8rekP<#=ZM)th-t>X7E zJp+;ARsjNFuMM3e`=Y|Y!PxtZTI}FY22=>LT_s?};7&z0Dlv#uF#31!d-y&?c~cVW zusXBc8p#}%8rttS4Bl%P%rp$i4MS3Oak%ElHgw#sm&&(c;I^q8iM2YBjjPd8tv}l_ z@aNveqra^Evs$TcH-wy(sen>7a$u@-q;e;q1c`@uqH?9PmwMkhR>l0Q>ajBBj-7_& zoiZ!LX=X4rYg#?HGRW#doyj=E3&RQP`^+>MT*Z=_eV-D~0>DG~QTg3GHJcyY2;}`o zEJU$f9jPUE^>toyHA-xwcn)&mRYHNKU!7A^1N7zlQ-J$U%a_r#XFT*Pv2a^p;j+B- zaSIo<;4n>=ErXgbEL(CnG+$ts9eahOpBIv<0o#ztROwsoB3atv^U$SfvNnI)XxO{K zgjxtX>NhRiawsO!T_8`1$aE)xlD2kTIFwo`3R~vYn}8erplcZ|p?`V)PtQXV zLwT{p1_GS6iH_kWs;<+vHPm~~F%NUwJLX{SFf=6ZIIIw-D+aaKzF&P!O=||NG-T1< zg~Z?Lni;?~^SBk0)a?jx$gLmFnprDvy~%vbnrfNQ)|1w6zuIp&`alMT$20}Y36_G+ z_7q1l3TS8@d?wDU<%NCJRt~EpBlJn4j{{g>;e+ZGW zpr%VLsFpSNTQ=Tn*_de=mRp9Uy5exHEL+|raZTESnkEZMi?a=Fe>{Ghet+tNsZXju zuD{dxaidiJ6b7z1XiI9kcuBP|w>!q_nLA#3tcAH#Z-qGR(RT9^3rc4~|99=7A}Ueh zKfnmz4-+3yDnPc$&t9HUe;;5TA+UhaDTvZeZBSOfEr@3j8+QXWLjJC932v-W-xlx% zwSkpPj3NNp1-x2q|L<%D>sGND_|J!fD6$v7#bO*sW)>q6BJ=c><6stY`X2&_3&#^p zXkrSYv`-sP?QQ-4gITV5JhNPJxG&(qUBu`Wh|I(7#o^Y5QDb^n0Suh^De+ZA`dx_9 z&DxNM!eS^DPWGP!^A;Se4}w-9Bunp7{~bt_+ND59H_iws!-_7}@a!BF(03EC&r<

sW^*A#^hQZMxhJO3JyEVY~nn} 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 HNTvS=fo2KL literal 0 HcmV?d00001 diff --git a/backend/app/api/v1/__pycache__/auth_info.cpython-311.pyc b/backend/app/api/v1/__pycache__/auth_info.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..411ecb0e6699a1b0a3154c881a5b55b22c637530 GIT binary patch literal 10140 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 KmeypG&Hf)1w5SvS literal 0 HcmV?d00001 diff --git a/backend/app/api/v1/__pycache__/bootstrap.cpython-311.pyc b/backend/app/api/v1/__pycache__/bootstrap.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c45a3ee3f3af91b8d765d74e2e61ef5d31658eb1 GIT binary patch literal 27620 zcmd6QX>c3YnP4~0#zg|WNl+wsillhxJ}A)=Pl*yG(Ih2Xlw}BHLlk5Xpt?aFFlcKN z&xBT~W@wM5%t@pQlXVh0@l;q_GrQWVnOcpL%qmlvOt-eZ#`Z>KZS8nx{AY?@$F(m1 z*xK)V-2l1)&}Nd^*=;_&epkQyeeb*8;}2XeI|YyYv%kM`_&JLD@90TA1*+rITSkg{ zi(;usiltdYn4UFE8fJ}?##z&(iN-Kv*gR{Qw9Hy3t+UJ|Gi#f)k#JMkK5L(}&pIX@ z#BUBeC!LVq9Cl5*$h%;&fV>MQ3t0zS-)izXXpD7N^!^kk!fI!du6uTgAiu>AYb zV?TnQnoAQ~7HnqAgO*@(Wh#(jD}v3JENta#rpc`k*G&8-whH_$Y$y4`3!&9nU*+av z3tEHCke4BocgA(e&Te_lJlU$2fGHVm%1b7;21;xrGCgOON}o8v-!up=D277Y8QqR|*1;{tQOV1%8Eh9WWFr6}hMMfg|%+=00{aED@{ zKsXc+#6rG!UAO$;RHuP1!UO;$y7_nSnY6F<04!HX97b0;fL4HP}kaC4u?aWvFCm z8WQ={%0oEA&(8&>0(=nMo?cBF_6#57Akfwaktd^&8x}D!G13n$3(CyM*csyb_#dH! zj}Kuf2H83rxWR|wLD?9Kg+FE?Fw_n}=Hs2<`WWGCt1({6hu9-fmrLQ`jd181bW-PZ zbT(ej1)}qp@Krq#S5s3{Bu07RU*@~m<53vAW2(Uz_ zg(J{(I*l+uYFvs4c0Mfw3(zJyL4Av24GDS<5T$QX_f0VEO!3a6!AOt;XhdLT(DzdC zCV`e%$Tp<_A55UBP=pLr+@2nU?l0)>xGfUxP*QQ*pqN$zhdU?N1s0E$@%gw8c*(Ar zV9c*f9w>p^1z~$J4dOz#sHcuY%T~d02+T^WP~W}!vf>d;he*Sx(%IY6V~DqG&>E$R>Sl#AIc`;gx|M3vN{z7?wZbJ>VI_^G-g_WHH~e@vSXgi0(mBE5 zLu2xhs>9_S2O{!FC05j&SRNA_wld+ZrrAKg9%;`vt zLyyobm=oqJxPHkqN6%0TmRJgHhp-iFd(OjJ$&6%T#hIvtMPEypv9|kJHK(bBg=^YG z{`Q20b+FFg(;%cU?+yAAAUER@&9!dOw=R9^4f?hqD^>o!Ele1*`Zj+$H|xntx0x}p zCahUwz{E;3JSidT&jV&? z70%=PS*wtyHj%Semvipiug;%y!ZJ=ZP_c?kiyJAfeW5^CqAL@daj{#JHJ2#JSK}FK z+HejKl7)g-3dYsKh-PV%`Yv(NS;)29cj{wYdvZBsALOo)J1)9W-KK>L9XGvCN5E2nKXsvYfldH^oSCRA5S#n3w0_E+rQV`p z>iSsR^o-m=_(F@l`A-4CU3MDXASX>VVGDz;f28?38MEY+(_jF)Q8So}TApQ5Y4#dbw+% z=^%%wHtfp50DFq;`P?7`XnTY^1_7Jyi!1mw=Bf5YEhm5pOs&u>t#3Pp?R}4ZeS+_W zhgTm}{Pbnv>NzJLkz=3lf+oSG@jlkVV7K>hz&dgCSR4V;H+Z?xVJz|34;ty>*_ zxBWrq1Ej<>-(Z^12CM%>wRA^L%|pja;z_2?TY~o7S;nlVBHWH8gCrrIPhG;)Ck`-P&$)a zYk}4c-V&18+q(5n|F3j?T;g zp=v^MQZ|Nz5!ncIDr^jM$as-$X`Txp)mV?#LWR0O%7NR57Sb6qgD{tDFixx=4}2Be z3bn0J&F|(z=Cmm)>^@g^fbtzE#tj^@oMGjy<&&u2Zym zN3yzhb(i4oLQ}Y1V79MYcAJYnvrw+mU%85e;-*iGv}^0HDX{**RebxbP|_s2nk85B zhpxigV@tN>eWI&Day5MDD!KjK>*wyATX#^l(segg-XN8270NnRcP=_UVhaAyaoZu3 zL>@i|7MS-($At;MIC@bUy{LqMEizGwi3&_K=_rHB*#h(vXVD*?xP3yX@IQJkQ>A{e-HvP18_uPvx&XWkUIOsJLe*RNS-kA3Wu6mMz;w zPlM!X_|Q}QX3^4#l}gdGP4a9@c}ql3v*c<1&{Oed`5TpYE7x6=t9HGJ@^(m7JA|rz zYh#NiK4Yk+7Ijy8ei|I&R#pPLk(C-*!CCiFb*&1WFI@$PSj$OZS94M|w|MeNbE^ui z!q>qew%(AyZoVNk-w>P)Pue=P>r{xns(3#ktNz!-2KTmJ1GvE!oLg~No7O3dYnonl zDR1GxsOp%ADvo6J)^*C{DJRy_K(eIvgOcXQCC$l(p0$!S_Rp$>h8{4<`j&OGu?2b^ ztWPLoY5A|w0>*HIo@;#)q(GguX@F%JyO#i@Su6#uQ){al;oZg+*9fCK6{^E zIVje4Nwr-<3Cx|dk6`@qEi%tZ%yR7XVI4V`y8HiGh_m9z6RF7w~m>Q)lrY??8D{8N89R#i;O>a z(%}Aikr`|qa)nHzufy-t?SQK(ctlLYF#w7dd>Jtd;uo2*2oC;A32B6uocItB_O~qTVGdS@SUeY;|U(%0F9kdpLhO7n>yn-PDY=u!YD`$n-RFqq4ak(8q4X-F5RdKfUaU zrNy-r&VF}hh3i`je1IZCTNmq7!EDc>>uKt@UOgrG$99I)3|qAE*d`2mNQJ2rNI;gx zYmur~c%6!b4XH-o$j+4bEMB3ygTBilg~V1<%PJd{=a4JPjiNOPR=he3aa7YIrUx`N zhX9@+Z}GaUgsQN@ml9TV`(#Iyn^C0;ylhd#41iaH)U6zQds{j{LEwFmiW>tfUZRRPd4gA~-Nhj?7_Z3cB2{41 z?E`!msd1SJ?^Jly+&T1`+2GXt48g*=2?*fMpmi3boU?(OQ$fEXJmru+;hsn9MYQ~A z;plPa!D_Xt9E~*BUUq02F1u8ZifkiqKnBK*B4Sc8ZMi_LtLo=*rK{+$f(I97^(Xf- zq*#C-|KHLmFrtM`E9XRam*nocHJr4%|M-|-tp<}uGY+oVgwlgxMCOph91@sAPYTPI zZBk*qz|=o2D!FxH-QqOYedH_wym;vVqQy0c7S|B8c&Y#O^LNfGII(FdB)WW(%lDzH z^7ad_zj)`x407zEY-NBP*S1SF+l89FYkiB3r6G~=3XC^}1Jxl8q*&?7?OW>=O80>g znf(&8UtsnpYkZkc;p?4cUv#T}q8}F?ns39n0rL*H+23HGh>W01yL@9Es|@C()pT}Abr9tw~DSt z$mGGxhyV#-B8q z!TpoY-o1lO)X$piLtf+0y6T6@jDKBb2KQgr_U#%jrhZ;*KW;Prd`tatlksm%W^n7E zAZ};`EpCQor=Z1vLTM1=D`|H&hjB%N9z!nblY_J(125-cjX5Zk2D#28&q6g(XavH^ z42sN6X??)(pG0(Y1LV#CLNKUvMq>)aXB(i)S>hzF15)Nim|1g9u7JdGr3piRR3wp= zGw^87$4W9S-auGkiDhsK*phS53L+-U6)z+VAO!pB+!;VeY^?n&gSE5 zkh_ewH@Nq;KIn_TU9cr=8?-a4?jTU!C}r79mVkP}4x+(r8>Y{yJy*8blr!{#T{m_b zfp%t1vy}-m5dqr4_HLMW&N${01qnO!Q8y9$?@gH4YDKug8Q3itmSC>YoEb1#CP6fw z5@vK|00+c+^&y*vQ3vn*QrAvLrga$?TSJJO+60qNaF}3-KoZey^#O*!nFWU~Uw0}_ z`(}L!M?QwYCcdnTHDq#1WI-s*lP!F=UJpTNV9F2?r)|OU3Sj>%d1qJ*tqt+hNDLuo zb}MKS5+-m6=nD-?o%hXf(fK)Go=@EbGKEMeeW<&~`l1mZsMLjY(owDlDoKP=gn2Df zgliwS3`OTbuaSEeV&iq=sCuQyO@{}71VHJdhS!cH6Am?Z1XDMsM2_vL;?oYk-Io?X zD%4mnd@&L4($yanD3Nx-I;Xk#&{|D_++i%Jz~{?U3j;#NhF+9SJI(4e`AT=-ake~CMebupho zsdKzi*O1HrKz*_)Ng}}@41UtFJR~U@ng?xDB1`bGpwku#LnsJKnc$6SqSV$}l#gu6 z5K6KU=oM}NDkNLE;9NKWg2fBqBZOCmc9M;uh@XpLM250z1#hcUnFK|ezE0Ch8ev2T z)J{#9Mv-P(QJw&LUfdLxY~ZiSWtqghe+qT`6k)nO6VBbj@{um%krk(vLS)MzG9U5W zA3)mwfFBLQZmY^5Oe6G{i4_3lcGXC(nlFUETkcfEvi){yQp+QtlNc}nDa#X{3Qsp*hd*CW;S2o({WSf{8h&l*<8ethZol;fjk`;!fy7}ABeDj&rwzVnIdqDCYSYndpKmyaAgDb~>aO%6K)((h`JyK&2 z2}=6feo*k;g4LU%?||exAk=m*9s3CS$@!*J*mC{BR|_6|5Q&NY zdC5Pogp2MQlKY0>z5&JiTGlDM2djv-Iz4TrBlJ^m{Yvz)caPxRlWg9Rt>LT?69A58-H=I*M7=j{H2)&&o3Qj zuyyn+V)2B2jRT$f{~!IDqjs65I-uU^C!5Lzn%0tvB#M#-pySF|RQ$APusMozvQ}VZ z8?sr~KqCXw7KASvY!q;<)&*nCoyr#!F7pa^SSEprzgZYD4g66RCo;ZbBsdYgH8_zy z-iA1lMhfoJXh13a%FA$)f@mXiN1zr8H<$?LfqBcKx^jdK-jMBpoT&U-4k<|8aAUU+ zrY$l(RiCbXnN`>1PE+9K`)K046J(I2FSGyOp+vSbSV6KE4PLrg+hj;>zWdHTORR zu3SHuF9k|k8S`s>hCVCxp4HyhZG6vD)3?X?UKfq-J!Y_VvlBVj1Q@lz#7zSu2uwX0 zX4(eKvn(aP4VWHTi*p4BF6YU^V*8DO4{w+Ob`NU;Afo|E`M`~m60zCT^ObGQVuWqb z)-1W$2JAYJi0aq*rZmz~a;*cj1ZZkNq$;s4O0@}qW?DL%2?H5CLkM3Rk-X*T_^P1O zjuLC=P4d=&PDi{OL8nSivcWkZ^YDM@i;;6Lb$$px7rp@Vt3DC1A-l@Wl7>y409*|e1A1MWMJs1f_74y+U? ztx`!T$yxn@v;MKOUTD}OI`>M>y&s~E*3#*e%wq!;EgNO4Tz67#pHv89i4^7WRO$Ca zBhsN~p~uC_F{yG4$gRRHnKXntNf*1)BRY3T&K*jrst7ELHc6?4L7Cq50?J)46*dcn z?W-VGYyUD(eEMOzPjEC^Wljpkc@lkYrVdHFZEYVC1`gO&riJe z0S|~o>IR&~pIT^e|I}#)J8sXM2m>O%05&~xrW0kw!SImmoSx@6SZrhp%Pu%HH;rd5 zFG0G?x|33fN)gyD1M4eSf9MKCE6?}g^`n#r#T8Tr5~6T||2q({Xdv+wV=8fufF(a% z&xZb*yiz%#RuGh%hHaaHjjRby|L9rnd37%I?aMC|(WgPy=i4KJM6*JKwf_DZU>vTCZeVBbNX914=FIW>a|4zaZ z(=atbQ*1?7FU@|U86VJax#CIr^VN_wgIGY5Z$g9mFEAi>vd5ZI--DJ40FTtO(OgUz z;;?(MjyTL1J!}3q&WYJz+~8UQ{T#v)^<}XI_kdB&782c>t*JUgy>^3s7xOm#2XKmQ z6aDAb_aE!g&Ud0`17r+a451~dGQeMwE0h3{B8nVJQ>nD?SVzXE&0kwKoRlopmIBQ9 zvIq^DRL1Ya`u$OQ4eNUWPn2;D8>z25f~?b@Zu@vGZa0qt^ZR6A&wO-L9;h zsy3aICS?S)GU4QxzE0jv=cGwVaw^Qqse02nX;PBbxwCTGvgw>ODM?PAO~4EgPibK; zTN^{UOKOy|#ESqee0ffly14KrN~(jig;us+E9lJ&;~Rjoa^=udMTsJ=W)r0}CW`Xq z8X4New@umWHnL6k6&{SpdD!Nx9?XWiC3$*G139!`gF6kGRhYR|8?> z)=-v+cf*uzIVoKmrrnk;I8GEM+zDf>H`5hY>QZh!^jWD-g=^pXG;BNDanG2rvYo&2 zj=SOB&4Lc>J=13Pf41wMeW5r}tj8+IKK##yNi38kN@7Eq9(alDf85qh%&qN-5?FIP zv|odNXYP!OY-VjJx$VlMj8V)wd#G48=25I*9<6%<2VlFkBiS~XzQIOww?_Kznhs!g z=DVE+rKW@sO!0%uq)-a1#WXs8opp(Uy@ND0l5Z za?FJZrFJ~wG!inJ z!xc0UuT&^_C>L)TQQ5&jL<2W-C|(BbR5DCy5EBAlHjM1xkYOR)NG$6Q#0X~?ZrM>n z{E%LDkVrqdYe>eUdkUS0_v`p)dD){x2WCLCH8>rGJA1fB$TQw}zVGzuiSdcC-q8y_ za^ejumL5c`LAQ^46_eWA)e0+u?bL}fi2hd)%`KpH0IX^Fr5~UcDde1d+6#f#Pab^OzlP_&&%<;e|Y{sCwGine;U#YwDAY9m%H7HDq}1#m_4+oBxK zjQg}nb5E_$Yp=l zZ7{Jj#{vEl=fE%F<6G1^Mb%8B@H%a;^gbx~+lEJhzYG3NP?)$N_ygjpDe2Udczjwq zKK;S*(BtDF@%T&9@t1`C#6%OHQB<#C0CO2M3>iR_K4>_OqI7&g;0eP7zRnt+M~V8N z;T($0@ddtKxC;?{_=4|x4Hxk{e37^*C2k5opQF>S<$&I=`V?W+HtnPv%XFYtPY5;& z&|(6Zxm%m~R8%W0?BIf7xL=6P{Vv{?^%ZKoD7U`hDnR`xyy=SU6daOeaJqjK$1ZaK z_#%4mp`{03ar2JO?Va0Uu!$6sT*U?_MrP+^>$M<<_sW4bQ#29;IU8ooA@f=}m4e8z z0s-sLg_s}LfEI2k+$vb{ioVoUU0K_1ya;w;T=qehSNC9_Y?$Rqc!v)e{h)iLY|aF> zwl>Np+{Kj56#0-@CpMJ!&SS)LXc39tYv|H*w8@Q1uu1Gt4}y^1z-~fSq!_s;i@S)Q zT|g^@7M`>q+CD_$M|jn;HNfADOoyVfWhMZcY#d5#6dgi!`gA z_v73G0SbgE$OGoe{Rq`hwJPSSaZQBQkvw((Pzb7W74iMv1v>>`>}2_H`&)Iu;3`hh{)7^1`>-pp%Bi-cdZ;$-U8DF z$BE32Z=Cqr34nH<7Yu6&Y2UEoRBYkd3(~U}bs^z-try$_hEas50|0xoVjxF=xaJEO z4K~E04JYyoZw={bNqDljRw`~0n4OE(Me8b?WIUhP z%te-8Q(%2Unax&knXS+|u-p{mS*J?O?McRk$E^R@52vF_yQI=Ck=ZUWco6`(3!u;j z2vgefQ8x8Zc8gHjB9^vErEMa!O=7kQ44wi?S8XNyc2xB2l{|Yz(>}?xPcZF+Xe`o_ zF7o}-?Q4}{=|M?z>vG-Qwxza5J8zwM(%AX`G(J7w1ows2gw)jw zZ!kX_f8-Sh&q#x36hGLa=|#!(qF{P4X+^}>%+YDR#o@J=AMSeC_i&fA4>Tl(!HCRp zi8(GX$Jb36oMY7s6AmyCn1W!#6a*Vi=!5N zbz{RR(Ro^Oo)(C~N)+5K5X$Esjz|M%;f?0SE7FUzs=ItnWUflgRe`y>Zl{WC?{+0i z>!i}H$=YpF?QWq2)H9ckK4?x>G)fg6NpJJI!{ULJidF$tT=Q1fn_Vl-tMy`0hg8%7 zw;p`^^fyln?aw?kh}Hd4b$_zFJ_)G~zj>Hwh8FLTig#dGdHvJM`X`lj_iDw;HmS1h zgUa2HD|d^Pd!@>~s19m1l|m_KIjO3Kq_^%%AWX8Z9^gkg!jE$MXHKfD>h8HW&fh)1 zzN@O#vQB|@>*RVjVZ^5Wmc<&F~8~&3M_fD*~iPgIwm_+X(vAjnr?-5KTNo)E0 zRXZMAcL>%U2n|UGUKMus3FTM8ynhz@4jo`bhLadhASONF<3bmJ&2hzu%!I^D2+Rbm zLtEL>OK_<1BS*F1=m4|4pu7cB2VVhu(@I}uUpMt$x4nOx@h7G&{msUoG@HR4_hzJ} zU7^S|xQZ9Hz+eZVoe2^ooB8SJTu>((H9?MFhu^2a57f&ytO}6}tUL%(p4%WMOI^^! z4QnsagH%ZIkmq%)o*j-_Y%$nBQx6E%7_C2H05%SjiiJjjSS$B|%Pchv$h_>*zlYkX z*FsD?qhF7wv57Y`a@*lxZc~FF_)uJP{a;IWJP-5(%7OikYvgtKlZS!l}>B*rS zMlc9Y;k<_(1f80GNSJ%5JC04X-2A#VZ+pYgUWjah z^r@-^Da{^IWcH^DqfGxX-gZqAD`Y}kUg?nX+Y+}S-AkeguA6cZ)G-mEhroD_S}p30n)WR zE+lob9#Nvx} zq-W6vqh}I5u+5qGqulYg4@BT5_c~%foAc5y5tOSY(b!%n^YYtV`4Fn#G!@1hrmd zo)(s4HqX*eifUK;h5e_6qEWGER4N)3oTDExZrr0qrb1#Wpsr7H{OXDFc9H3jm=1yI zcv|jV2?~yOG^TcCVwPz(S+dSMaGvqHWtUbZy$b`9yQ8AYGeBxwQR;*2xOcOzjs-}q z*%P%;TMs$4F;{TGlSdbt&gXZ@F%GOy)`aROtod6e)&i&RtRT8d=M8Esn%yL;j+z)v z9krq9e14Z4H>e}BUDStV2$S9xZ$Pz8GJrlDK)C-SG_8Q_*(m%YgD8hAkpBu_albCHsGAX%#f)w=# zfqw=L6)@N-cQq&$!X0ytVpuKalk}4U@2XMQeL^T05er77f)Rlk0Zu?^#eL?DlXp)( zsqje^El<1+_YOU&t^eNsKUui9@TWJVuES#O;fD=k?V#X2nKpo8BT5by(B{8u4o<4^ zAV>wAfSxOs*+Lc}_W+vHx|?f(mu$ThfX2>+I9yL0E&$Sna6A6ZIUGX^hTw`Mx6+gQ z=Lu_zL)N}*#VZOi8TOEDy21nB&BjlDut_dT_ z4wIfNWVq#u{@(s$gZ}4w$4>gsjQaa}C;E^1$A>2expDl&ix%N{??Trev^L`ZDNJz_ zFucNq&jn`?qi|tA?jU5cWXXfRU=AtwyFA1FZ%6{rjN(1e#p_0zrq>N7+62@WSWb%G zD^PnjGD)gk_$rg6T7-NiNfq28e@V)5i~MOE>8K8Y(wQXX6Z9sx4oRv;(3>RHD&#Zi zIy|)%Empqnz2m)QN!qFw%O%(a_lveh$<}zwg7+MjEbd<(SeX(Wt)in(av2HQBfsvH5ZaLSTb{dYdV^K zI(JF&ao2?FFAIrRfi2Nz7({m10zHU~i5v6~zIgg51g3J;xL%=;&~*65V>p{r__TjEa z#)td=A|f3)Ny4(NwrZsectH^p4;miu4_f|ADFVXQDZO=wGBDq$`dZcEh|t=7t4gE~ zO7y{}%^fQ{2J*!V zX3XFFHLu`m6X|Udy)7$mxI5C^NyF`wV3C~R{nSyA2_!L?Ydd_rZosq`X|>XVvr(j* hB)UnT>AJC;29OID$uZ?2A(&G$e6eoO1rxCRe*hT`xrhJ& literal 0 HcmV?d00001 diff --git a/backend/app/api/v1/__pycache__/cities.cpython-311.pyc b/backend/app/api/v1/__pycache__/cities.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3421f82037186d924e59f96c1d2021cbb304ce0b GIT binary patch literal 5755 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 literal 0 HcmV?d00001 diff --git a/backend/app/api/v1/__pycache__/city_access_fast.cpython-311.pyc b/backend/app/api/v1/__pycache__/city_access_fast.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c37de6cebe0d8a3e2bdcd954ae6c1bf490502214 GIT binary patch literal 26470 zcmch9ZEzdMmEhp}g8)AP0w6$g_)SovD3KH?QlI>iM3JIoen=uE8wNQL1qlS{0Z2(O z==hS|4Wm`cv{qMUyz-iHB{6ex>bO%H#xy8HF({?KeTQt-ro_Agg|ah{_7H~vUI`h@4V z6)K8)hhnHHicv7ifMQNLrJPeuspiyE>N(AnMuFj~fObwdrJK`F>E{enhB@Pu5yI7s zCXhF0nljCqr_AKHHjqD8FjYYOxjTAeB~vBDZwOfCtW#FvHwH@QY*RMy zE10~1eacSWjwuIumra$Cw{yw~Z&ScE=bCcOl~0u`C?(}9yIPS%##i|R1x5V`{>5jC zhVM$o%;e81J}UTu628HI;#(C{I91IQP1P{Pvx-@YDfvLbSnesOY8k7qjwywIo3HM& zma+elda6G4Tg^D&cY`F3(Wmp(Ig;5@X&V7b)-x`M<4)u+%jvS3 zDTi-OzN+_o`=eC)sojuobLywW!&J%h zVDgx}oO!DNGouuDz(W2T%hod0S!M5eAx<^&vU8T3#Hltb-$4j1z${>utX54Tb3$fA}Wtotg24LUhmBLHfEse1-PT&ax2TU-Hp2-kB@@;HreGGkho~1*J)6M($&V^`*wJ;wH`RK5J&KEKc1h065GZ2a7GUE$EF#&%B0>Zwa zHwdN82gAM_@J{6VYiu#MI&OfXN9PyAJ~poF_bvE>Oek(XIX-@N;Kqz^A?%+I#&S!`)9&&RZs9{Tz`f{@dkbk>`%Fsaf^2`d<9DP&v?T=59@nv(FZ9^ zJ^iN#M?3?kdj^Nc+=_Tnk0cf|5%RGRs1GeJc&EJ~ANWnIkMV~*GXX#3g}+5CJXm}D zo%4(kzmE+;xIZ*KA9O1twfnto2U;(8 zwl;fxGi}Z7doS;6?%LbY)_kC=y|csX+q<`;qbpMDJ%{+TkJv*!w&pMY@+-yML$X{vos< z3uK_!asVMLn5KVM)8buNNc{U-miDzs5_*uVdlqiSZL_|xhaf?|l2-CS*=!ADQiZwM z0lY~)&1+qo&&r*8c%e4}PkQWt(;*#uD&cnG41q7qP4M)tn|MQLErQ z{D%qwAVN)RH@Unfbm}Iy76N50rh$NO!2fUip@1Pu0my{mXYvUt8O0c7pu&i3;)zmG zg?y-4R)!_Sxti(`QKeiceFJ*L>#B3qJE}iXFRP*|wl%Cx=1NiP*n6@bvG*{l_f+z{ z6jV4b9r#RPqFa6H}lBPMC&2tA4d zhW4>6q=E(ygQOKBkj~ppyA3QhG3mi^6~sW9FgpukQtc03o{y`qhEP5P=Di>=4QXMi zyY6L!keOSP=B2nH#Sw8W@iK9RFNB?g#z*XTrP%Mpuh>hI+{v~=G&lT*{t>{x!rzK9D?oT-1S#CErP?J{3dCzRB2rn+qnBzgXYmNHqf z0!PzeOP~K%{;hn@cKCi30C2qih@d~hWx40@Y^xwKz9FZ=m3AT?zTH#avzz*Ox3RZe z^>IgeuU++tT?2j~8DZub36oGdpao&9k^c;1sb0WXDrxr(8=$Pja~0c+Jekb*1E}4P zQZaG?D)WB*dG%QFj*ronKWNXEt9b*m|OpTCc~UF z*$h~$tdB5IZtilCkGXk|{++U$mNQo<7jqdU%%y=Cz8i5vUr*o30nhmOFpJaGxQ1Dr zTL`h(^Vuc@IN4KCH3ji5U6~y%UE81#4^e=#pKu*PFt*p%4ZCnu5Lcc8(r}*;p zFs`87OFS9a>oUvkr(T{~)<^a0DZWak#5a@C!fanu&lu9Wh;^L5XFc*V*VEA@G39ZV z4N(JYjq29RBvDe{Xhtm*)a{Gm&eUfrj3PVnM0Ij%$bT&xcR<@BSz8(9IRMp*qsCmL zanu<4t}OT5d|yH&jwM^-L>27UfWIZ}{UwqRmt*AleUcD*!Mr&rx&Lra!S-?o- zQ(^%lrDpCHw&#}YFUC7+%rTG497S@=9!Ku7W?{LREDvUK8Ka21EYgRIC0rUW2K}Im zNv?}=t>jIrhD4Q-s28HWL561Mrx!s%bs5r4duOg49~qBW#Tj98NtIA4Me=EJp`6G! zazI>GEe6voaVSZ?%95oJ^%ULoVh=Rk_WO6gO^*+Z^o)#q`Ub}b2gW@81HBU`y6Kk| zee6wKqCu5B3+()Yk0tAS#3Q9M>89iP^6zmqPGQLkKdufg1_HnSR}g=34XIFs?)Qd? z!YNU~%f2wtxFwK*N@0K6e*dixa#!m3{2~x5Vxx0bh+af(!1nvM|0H+nfg7Nrn+d}r zHc}{W9Vi$D-9Nv({(tVjm63SljHkb6yr-KUnNPPRRwGRbI?_Zp)8Q+yyq)vj1QiHF zlyUT&AM}bq!bELv(x5Q&F1C|OzVkK~CC`5>*5qi=q%t{fK%&1fr6`ib@7#k_6X? z$=OMWJBW$yf|f{J4?VRw-aNgfE7_*Zn(A$($x!{QxI!qd;fw2pV$=m>yO@h!IsMGu zwmHb#j|lc7D}!6k2En;&V~}@t2+j`9n(0=K#|l7`pfopa6_&n}cPEc?o!%S-AUeKq zL?|5L3P-kV&byKIdfw(1Y;La54SEQ36Y3!f9jL{qP6O0ujNBUGoRi$S^9Y@jylF}> zO>w5Fn5$~#bo!61k3gYOjfx0km!=q3S7c>2!(H%lmKkuoo)Pp6r)QoOIfSCB$3+c~ ziW<1a1AI}JP}KFrTypE&>hW*Aa{HAh=7L+Jt9fgaytzRzH~f>i=$)E7HLI6Fc|r*G z#9Vx9VzvES7jIvDVz%5m|E?cwsh}xu5$0jH1FIeIQMaSdkT?jT;~bS zat+<9e$m701A;!l=>yNK_O~bQPOKPXma@A;oTYBP71ytB0#^EB1;uY&zjb|e>04jB z{WYkJ*&VZ$t##ae{jsg_k*$%pH3_z+$F{wXY*IU zC|DXfOXKrrMYi|UYg4?vQLs1iMQ)+Uy`oK3^VPp?yT9~54*tzS&hjd{3$KVCUhft3 zUQX`?JyBulHkD_vC)#(LqFkqy-1%2Uj}(4RQRWflzY_@I;D1`++NQMTNyWBOQ#7gA zq7U95>vea%_>~~MCE%BCm!BP(@30pC!By7ddnngPS z&p|O^DF+Oo3@Jpu%)gV*RgOH|2LK#jct$8Z!)3Wd^&!1j{ld}}v#7#QYM=&5fQ@dt zW#X(|n_d9mczw5^@8hB!=CGh(D<{s@(JN5H61^oDVyK%Tt_46b2aEV@E%UU)1-NrL6)i2vB&e&A{P^19= zKiD(?BPOyVlGt2|t5E|j)2HCx`8VMIw|@a^!Ne9oN?!sx2lymD87n1)0W>66Q!$re zn#*=?tak zWv}31x8D>lNvDzN!cxKVIz$x_=n0HD0_#3GCX9*6X9}3Yds@&QSX0RXzl?ZA*T~0^ z1+d1!J?oK|$e!B)w#6CPmLRPe%X=Dm*$V0pjT&CyBt&d{Lpapjl&&jwl;z{~e z5<}=U;QdkR=dw1cmFTa&CF?noFLI2S@@s^1+1I40new#iW?j+)Q-x8Pwj#^Aub93P zba*mafG$eM&`Z>UBC5wWWgBI^HMe}JlJ*Per`1s%z?!HYZ6)mWkfZhuZMAC zBk^2KHB?lc*$ZXT+88zd7v>Kqqn7h_fKx*TPK`vCxMe*vLoWlZ*YsY7CJ!XLF{+8? zF|MeZ*>z6?Tg=rvD1EoQ^z4o09puq0&w~*$*n@4uv}D&4Mrh5dnjPFh&U-U*-bZ9# zhJ;t3DZp2eYOQkaet}eLW72s4b!8db&>5|iJeJ8Zf z-vNcXqxn};a~jjQA;MCw*%o5>F;4wG$o#Bp**hq*K)xQsD4b=Cko^_KS~$8-078EtZ>KOv{Jf(qWsnsF^Jm&$U=Eg?=OBt+>S zlvb9V(JBa>w_Fe{U@K%b&5g52v%%~&A(;)9zEMhMgYf=Jv%ymtvxA{8>C?jrdSTDb z*uhs&AVcrSFv%_ZP7_{Zo{#y{C;)FZ`Pxwu4m9^*%q~B$aUNAmFu=Yuv{-#Z%pDV zeSa0XE*-<888TVk8|1%sB=JWxT5#-3xMiG-09orp*~nQCKAFZer?|Z=eO4LP>9d*?*$Z*(EC-1Z@&%$~-L!*#e=3FEigbY~$ z78`$1EEyAGDZ?hfNU|7UE?|L4gcKY935Kl`4}BB#Q5Nuk#2e{?1deE*sTV;h0A{2W)_dJz((kNU=fd{kZj4hhQzUjxRIPd@Xf)# z^vEI_ivIJxKTd9+OY=^g8cF5}r!7ccWV?D17phRHRk~+l{G?}MY+y8LgD`<-C?Zu8cp+p+ z&JB6+kc?*zY}d)wzUPWREbema;5bpp3x@8fVvab+CdSSV_6?qy81p1hLi9x(Tm*;E zVraoX-! zPRN}mG3h0L${+?agC;hm%a)sDh z0S%4qN$efiIrxyUS^2YDbOJ@0snGa*7z9t+P(qsRAxO=ldSMagbXisQjP{&Q*c##a zIZp-U1Fgkh$Y-chJi&9of^df2mh)I#O?$C=w zTcSE?#YMX;JmG>iClWjsaelV_{-3=kFMO=$^x5G7$ji@y^;R30aa|8VMX@&!GbDM5 z68j@sZhu5ymbVh*fucHLk0i|nPV}7}pUgH!f@4>b29TI05xW1Lj4~S!=x*OlpG_Nl zrDy_`65H@k))G`0I6W|WVql~X>N7zMoqTgXcGef10qZ64G#H!#lGbHFq~f1urym!^ zDV%%*!zK`G^C0NpL?%dU30iQX^0I$+5e#>T@mf}2=oU7EB0F#>6Di-**EcW*qN4}pIUOk=GB|OJ6w*eDli0%7gw!DBWTdx~@hr)o zDWf`Me>iN3J&l-0r5Ift&B(YaeuvQlPbLMubG}71K1QS^c_tCg(f>seQz-uejR>3K zWSo}dk`#Mp+6xwII z22Rn`4caL4EHK!)<(BHG=ySW_&?*evEN%sZaKyQe#QqIe*6|`TXIS#32VM3wgePp+ zU@FI=@+q$KhZz4XjQV8oFk=i{?z1>UW_uCzAwbS&ac#s7AwbC^F|I>%{dfV|l#zZR zc0(2wd_+>S$YShq1j889=m*Ax)5LI68BFNFu5JWBok4IG!Als)mY8Rx_&G5gfidSi zoHfRN)e4iPDdt7%vvN!Gj|+oJ=MLb$OC7 z_6kPD&9=Ci%!!!9VNtLL40snpVAf|M!atd~FpNWu#2l5Kz#Pbkd>(!05L`fj0}rv) zy9sBSeO{P{rG!(m5Ir;PA!7|Y50S}v9no+v8;YiUmJG6!)41$6A@MtyK{Yg~Xvz0Q zAyr&@*YURVuJg@P+v+iu#u$Tuh811R>bN_#Vgx(7KFsOEPYdj5{*=Eq`2Lx9&+x8h!PUH3{K(bDx!O|J zaj)EO|C?^k@rvkplSeRlIFsjTnF~z*wrU%GZ28FXL+3}%%?R)Ac`(j54)V39gxXWF z^6HqQE#^GAZPr=xw;4s#_(*89JA z>aTWlwMSO;+j^?d{y9}-2!df)p*g77s%sYN_CKyW_^9sS{Sm%yNT?fnVs+j*$GLX% z)@H%l{KRUzGrDG2@8qq!1nVyGXWsfGZ*38*Eye9u0Hmt`q+a~ zzWSt4eR6duR=H28?AUxwsO)-NdH7M~;rmw~*722Rh03$5Cu5aO8-A{`ldJ5ze*k{k zD#8BDdRn<zh%OPad{(cDeat6$m(e-z;?FM)e- zLwxi4Q9(b-=||Cw5xTS407i(_dxYvE_isLI;HyW4>QT;>=~hn13S3-4<5pSud*ORG zzw`RN*Egp4%Fg@ke8o||?3hq?Y*m*sn+=j;T|v$jd;kWt`2N+{Iqp2ekNJc#pBMs= zFPs+&=eff9rxm+mbYrZsC011zt7_WL)7rsGPXu5wsG|zqUzAej67h8K`G@VFb#wOf z;CRyo!E}K$U63FhexUx;$XUYZCV=sY#}B+rJeDx8UljC3>+=!W81%`Ty)?Qu=lqna+R z`xIX@B-9K&aa6urx~|?hu~y1E+671Z6NmHN;3WqOp4a@6Mp`nXw==znH;e4+Nz9r5Vc5@0sJbXzLz!&Rrq$)rN2l&)hemA;JRahemrgZgx(X z4T*lEh4Si1ZA5rO(Sub;1tAmn6DID*aPR{QxvK9S1O|3o24mRj_lMpc;u;xlY*H9| zh4Xm1SG@p*v1tr!WO$cPa6#|)J*{o}-Vj&2f3p>2m;(;316b>e)zp93`9bGK$9Io@ z@90{8tP<_7%a8upxY_=W7y;y7ajD=%ePNd~=V`+_P?s z)igs@s*c8L_k1|=!N_JeUwcHTJpv;7`Ln8qAFF|58xIIzFJ9FpRCTRs6ZmtrH-Fam zQ2X)Fr%LdP8u%!MWZ@ zd;`+#zM$kTUK2ejcwBi7$p+s<2;?lEL~;Uz5P(}P#~-(xden02VHbDq0^c$zv`oT) z5vy!Lyd#R3yX&$0$Rqa=-hE7PA6wUM(e)n|d{Dsc{Tlb`WrX0u%c2Leuj;|<0Ydfw zQ?YOG^i6@j$+68jd_}=zY}C z`=IOLG~e)&&;Vk#Hg@17SALd57HfS}-pZG^3+3%xdHciZ)#EW6+B92lkbYe7ZUNW0 zgx2K%iR10p1^ac*ejTMbdA9SgX5a<8{3073NkBrKP~spj`b7Av(FyL{C4Tf}Vf1Bb zIQN!L=0n{Fx{W-ZZWrkG)xj9HxXRk`{i#jE-?s5}M}<1zKnRG{?fKC2frqc_ z5b8P}*ByFPcZjb$BGesOGsc|I{}ql7DB}Io@1EXh;$8a%*M82m|M@dV<@eR!AKNJX z?#1t2xkAigN|P{bGh2z3{)TeRfU!$uU<&PikZb%3CVd zE`OilOLhq*yMRh&7iMI-W8%ua+{C0X;XzM%x;bJF=c@J#J!LC%u-!Hy@HF=49d4`{4gh@sW;pP`b4{y35 zm~L>U8$e@cRm@cztKEeY)$)26qj8oh0(1UznAqd_mplUmCP8XidX*bJCyZX=99Pl3 z3KLWG@TO~m=^AIc_N>(L;+m5wYqDI&-k5XXuV(Hy{^i_H<~Zj7xXcMEr8DE~ISU|1 zZ5yC!==q|I!dpWO8n_`L2~vjvIyU!-r-OKXr=aiT^qpJ9*8dv5d-Ltr@4mi1#oJmo z+xgN?zW9Jpd|*ZQwA3E6m&fRan4@CLYF{gQ``q1gK%PR#TLgFygEluHwbDTqz!Umw zTrc$gV+u2>JOg4TkLP zZGs=aboQ9w^$(4W{yK^)I$iPdUTUjF0YA3(8a3H>@;_|%LG@Mf}Zm0gsA$BfDG0}Ck1#p4H2-0kbE#&hH*v)nuR;EnLq4EAXfSNnC_{_Az+CS1Q;fF!DRrJBpzT=gnKVp4`as50J6818C5uKXGTRc zHoCDEWYbT#tbGHH7%=25+4RegM9AJD1mKD$2z8bKW5AEzQB6j~F{*72_ug!wcj5pizZO+VaF(=ir%nrL%?{%ltvv+t4L2Nfb7DRryZKZQc$Cb;h`)1Dk-Y)HtxNBx5&ao^8*?_Go)&L93&oSV zG5jH3uA_q(32jv3G^wOOq5u?&`!k5Q1Z)|42td?9fer(%%z??YT4UVGcfvGSu=elTdN&fsL;i6ez#?td`J(`N+w3|E%vR)%8E+V$6Y zXDb%)w6d1lH^r4)L}$7P1HT4^O^a?@r^ew;1P0@CSP0^Hs=@Iz2~y+f z{>>`Rx*r^`?-2AIoWA3!&9wywIQPB1bax4;j#-HS2T7oME~4P=fZWi7PoU-v5e z)YK>427o_R8~b&tpXTrBSE_z`NCEy&l^TFBERnHDWa(z${W&;8?PFx8;;<``VQCe* zNcO3?%o{O4w5PAOgKH1hQ$io|Nj;1*%VrWn@Q$E$+$GL>l7p3e7y-LnC0OF_UWU_b zxzmB5SLeP*MQ(+OqBk?|+s#qc3+u0CbaLCH7siC!S#}uHn3<>aKC{dlMVLH1Z{apY zmdKC*`@gt-BDNpydZb1Ll;{j>%Q3Lu4tI;rflUF(%aAD4VRr>K&EN(;vbT{M1z_vJ z#|B|H7;+JBEP#x~UFC^EG3AJ;J%1URDq`$`ed9i|u>%rb12S|G&hNwZj=lhqoyXZ% zAsP|(WZOIUwh5g0M=d>kM9sLke-Q;Ag!{t*AK43mkKzsj>%E>(?u&L4g(>6{T6&_$ z&%9*Jk)?=Fl8pUxDCt9#gsPMz{Gyn$@80O=ZTkey(|6x2$UlmW787ri<0X*`_(cuEp0%|bp1F;6i zdvdCG!6jkRR?JQHqTID%6tY=&#(`Pvmt@vWS_FD%M$5R1BZvBt3DT2f*yB!Iq=Ir* zoGzo7ompgAkgZ9}J8@!nJmQ2KU=ou&V!)QX1O_K?U=fFNQnKYM&W3-D{I%E%VEcXX zvKMl*PU1F_j4NMq+|D93oQPDUx3$F@CliQsTVgo|COfXo*`YWi5bt9o_A@)E3!)<- zM#Pm_b~-{gJs#2b;axOfju$BrQ;Fk?NGRM{Cv+j3!ni#g&nI-oo2E%Jao+Aq&fCGl z4x3193lfFQ+)466Byc@~Q3Pam-Gsho1US!*7tPGGzCE&;_+Q}1YY12biJ3T#K8br^ z5)~1zcMfoZT16*_!$m9l^_}u({N+GrY#1$ zi6bk981Aep3?qsd%syL&xsuc9Os8Rxag?o?K`CZ}2zo;wY%uD~eHk}TRPGWgTQ|G- z%ELnCVa}21Ks8tblVwFwL(EdO{u10uv3feKo8!EhDmd6*d%h*^&Ov#wN0)>tJzURy zP{8$o;|qI*!d@=Rk;$qGQ-W_>uQeQwnFcwzi6FH9^5OVrQ=EMgT0UJfS7%EPrI~ucPi50Nm>__cT!-yA|O7 zxXIY-RDIlD-dn2rq(}oHpOk7Ky6>V9ZaA z8VLEcz>5Al<3OY8)0RC0HL9PLE5QG=8Vx}AzPQfgVdiH%p12NYjNS!5i$gMt+9)=? zLe_?FlAE890a%pVtN{UzXJD6vtcI7*vnb)Ex$5v{Xt1j!_eEU^_@~(tjDQNA zxB(`I!{Wu!dJi$2@_2}_fJ>dowfk%*#vMa&69I|@a_h7xTw3vG7lKIyjR?L80B*sW z2MZcpYLi(e;dXMRIhkXT_4)7ghkyc$0pAh!FCiWd0im~mvT*yd0+?E@P{ZU9fRR!h z;i$vE-^Hli+?Tl+b&$*DveU*Wnv=U2)y&CVu8>xalDQa__a^z1c=F#Qe=#cMY2>IJ z?x~?{#U>ca)(-H7TES5JrZ#3MUU957Y?N;la0UoHAQ%q3sRe;(E_%}dw;OR(A=q8) z>DV|G+da+^2NP%~Y~ujnDA;CED%#e^fI$^)o8s%f_##0PpjRq(ZM0#)u1)bp{1Twg zR}^l*b|k#+i?0Wb58Ju3W1n>iy%Qun6VUmJqhgYyVv?f|!VmjCy@~OT!ZrqZX99Xy zp(w_x;Cr+EzUn7kqCW?`q@uU7fl8 z^0o^6PYY~os@u!k8vLlG@?6`gXe2Hc)c`qeD>1^WF#9DH=S;P{qE1lMW!Ah}0m~Es zq~6INBm{GUy47tfG593OiPX7@S5ym%>dc&)6hKS>B&XyL5`sC^K#FapESNCt{{;%t BmZty! literal 0 HcmV?d00001 diff --git a/backend/app/api/v1/__pycache__/city_access_fixed.cpython-311.pyc b/backend/app/api/v1/__pycache__/city_access_fixed.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..67c1e79e4201a95fcbe149a38a7bad2ef6b36744 GIT binary patch literal 21909 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 literal 0 HcmV?d00001 diff --git a/backend/app/api/v1/__pycache__/company_settings.cpython-311.pyc b/backend/app/api/v1/__pycache__/company_settings.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5e4d6735126ba79e01c9eb6777421b0d3ba71972 GIT binary patch literal 14313 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 WL>UAvqm&>?0k|V$&=o67{J#MOCnwqf literal 0 HcmV?d00001 diff --git a/backend/app/api/v1/__pycache__/dashboard.cpython-311.pyc b/backend/app/api/v1/__pycache__/dashboard.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f73798e944a8afa2ff6b4013a8275f3c4ee22f42 GIT binary patch literal 1389 zcmZ`&&2Jk;6rb5oJ6;FJ38Z$ak^n+AiV`(d%LO47jMNIKs#4Kvk+7DXabxg)FgqJz zNF<9^5G3yHfrC#WC|3^r1spi7rIoPe6p2=%H=~G4PrUKQP94$l%=5h8d-G=A@4fxG zSe!vHZvXM0esQTCu{2e7gc0XC>Yhg#cDBEFDHxi4)eNY3{fU@;|Sh>uGi*- z*>ocAge@jpgK1L8JcYqKVavbE42hT$DMQX{lHZm~qczuYH)%#`Q5xKU(KXrdEH9l) zl7mx?oPAR&ScDpJCNu)y(1?~_5L=S>$Ub?Rd&>(*+@^1{*Flwi9sLPnsA7x<=u-0h zIY4KV|CTa}q{{E*!bL=+q{YOR0D>9lg1& literal 0 HcmV?d00001 diff --git a/backend/app/api/v1/__pycache__/departments.cpython-311.pyc b/backend/app/api/v1/__pycache__/departments.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bde06385454a52c29997d7aa4acd3ed1b13cce3b GIT binary patch literal 22836 zcmd^nYit}>mR?mqtKSbky7?}N5-CbFMZIi^l5A6aSQJIlmMCjX+39VwN>tO$Zn~rG~WDxnr?G$2?=VjzqBX~Q;P z82OQNZgtnAyD8B#gTW>#R^PsL-}l_p_nhK4UO9G#@*=qY;6GG&>wPFd${Q#KmYElK;FW6D9|)}(WenPN!XmUPXzr`#lN zPkN?2oP%>Fy>q@P-<*HSKNpw^%mt@{kniA_WN0ot6{aZ*#d~IJN`v5Qe?e2!ui&Fz zQ+1F}b1u$3Lx1S`g$459Q_QQkP|s1E_ic*v@s3}>sDA~YVqS#g`5`Y*kryR-LC6bL zWU2qFjSH$4rUy zG}p)n&Re*qx9z`x)_$e6IMo7uw`z}u2=v{++h*HJNgpJ$F>}vwcH)cA4A2c~xl_>9&(^D$;FNMf)9` z{WR6p{ZB})E?eH!|NO|Q^g@Og^3Fkio=sVam$I=|1ga_N1Gb4leeKH|t#{UU_eb8Q5;9p-z2z+dw7v>V8hz-=2(&DKr#`IAC zLgoUW$|R=a8J;^M!We4fhNKwQMOB{jUrOn~%6g=FbcxsB~s42@CinsDMjy?jZBxb=FXPvV1R?eDr zLaL3k71JDsGV)?|ICvvS@mq%A?Rx|H5 zO17FUleM&S>iW`C4qWwOnw6{+J>@i{scTNdTI%K0HK(U= zbxU>CHK(WCyhlrO7Tfc}#$GC?asxf(H?DqFaKrQFb_n=l0EPP`YMyyVF>DwoCPVd6 zFJT83#;r%_!Jv%Ec48U^_!0jT1STe9yvxUzkH2}m%2pGoS)N#)cyr

j~k-;PzY*&r4tua?0LFSTd5x8YrqnO!J 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 bJq0^SSIMOpQ43->upEa9mhv2OTK0bc5fC8! literal 0 HcmV?d00001 diff --git a/backend/app/api/v1/__pycache__/health.cpython-311.pyc b/backend/app/api/v1/__pycache__/health.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6bd377ec13a13aca7047a9f58cb1b734e9792afa GIT binary patch literal 26191 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 literal 0 HcmV?d00001 diff --git a/backend/app/api/v1/__pycache__/login.cpython-311.pyc b/backend/app/api/v1/__pycache__/login.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fe6ede0885badf849f806b512e604acb46790f9a GIT binary patch literal 8674 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 literal 0 HcmV?d00001 diff --git a/backend/app/api/v1/__pycache__/profile.cpython-311.pyc b/backend/app/api/v1/__pycache__/profile.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2ead168ffe8d8df9c9032360bea505ae7eebdb46 GIT binary patch literal 24131 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 Mky#{jA=B6fib4&{EkJ-5Guhev$E?#pkbic6 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 literal 0 HcmV?d00001 diff --git a/backend/app/core/__pycache__/circuit_breaker_fallback.cpython-311.pyc b/backend/app/core/__pycache__/circuit_breaker_fallback.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2c9acf779a580e1f6d52ee305092e9f0df41eb1b GIT binary patch literal 9833 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 literal 0 HcmV?d00001 diff --git a/backend/app/core/__pycache__/persistent_sessions.cpython-311.pyc b/backend/app/core/__pycache__/persistent_sessions.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..96f1228485277f6ec050a747860fe6025d4f625f GIT binary patch literal 26403 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 B6gU6? literal 0 HcmV?d00001 diff --git a/backend/app/core/__pycache__/redis_client.cpython-311.pyc b/backend/app/core/__pycache__/redis_client.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8dc4cca3cc1c84c0721b6d466d395a8bab92ad7d GIT binary patch literal 11555 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 Y&%Zl=liOgNj@VKI$UWv!Cn7WRU#rc0PXGV_ literal 0 HcmV?d00001 diff --git a/backend/app/core/__pycache__/supabase_connection_pool.cpython-311.pyc b/backend/app/core/__pycache__/supabase_connection_pool.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5704e3aa8f0a58a058eb6e552f358cbb126fe968 GIT binary patch literal 34857 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 R4O%Km0p{tHxR3~~Sf literal 0 HcmV?d00001 diff --git a/backend/app/core/__pycache__/tenant_resolver.cpython-311.pyc b/backend/app/core/__pycache__/tenant_resolver.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e77e9681ad4932115e195aca23a4220ef6983593 GIT binary patch literal 3525 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 literal 0 HcmV?d00001 diff --git a/backend/app/monitoring/__pycache__/__init__.cpython-311.pyc b/backend/app/monitoring/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e24404d5706549bd6298a25bcc665ba8dd6574ee GIT binary patch literal 486 zcmb`Cu};G<5Qfi58W&1csfZOibm>ARX2ix=1Y+}YieeK5;>0*EQki%Qb{52gbZ10f zVPT8ZtrIr1Y9D~J{OQjA@3-%@+ua2hcK&tyKma~{v5sJsEKXeV3>+A6!h?dyfCVyS zp^R80TdXBx7E8(~fed)?LRg!J*D#764=;tjskBVWR19QQ=BCnlnGIBu-X)p%b}zyx zw*4*HGX9P%yug>}z3tHIQot>T8 zot>GT*}WeJ20{o5`{SR5poY-je9$R@HuB(GKrSPU(g+J!w1l((y<~|wDJ=<{CR=hY zkPbBQfECOsX$9~gRxCBArL|lr9cuDaOV8zEHYDp-1%$3bYn60F zL`M+TzCt)eq*V!c(AvE9So{Pf^9_}ue~`#!F}BE(Nl9WhPZI?~q05L+){Xk|G;gBhhF} zWRdr6T*zl_cZRq$n{oI;Y`VnF=18WcX$y+&!Go6oxr_(`C!(~7g|vi4BF~Cg`btg* zuna~8*p}lx?Pt2m_f#$J?BNMFpKz&}Ig{XCAZ>lt+Rqf)GAq+{A1J{O{sOcI*Fd+A zkN{ehgash9%0l-Tu<#|KgCZ)4C87U-Eh&Wg2viR zmP45A(nXR~ncB%D76ke8dCYXYNKH4Jw~d?wq9DT^*US}|4xPK`7@0gKOyQfs29z7l zw5E6i#22N>U9(KgImO7?6m4HEDJ~>A$fQMTF}Yy6^RPXTm@;oVrt4A`;Id&nN1%5p z<<18#F)^VIlYqIp9IUBs;%ENBEFO8H-So$y01}j7o->>=0{~hB+71 zv@F9WXI&P84XJBzEoh7{=XOvY8BFb{O?hB3rR{cyUnGfcdGhjmg6;@S3kb>N_=HsJwD;Z zCu&1a)$qif;du4brPI~Zl~5yyhDIuiAB|NsKN_!S4LPU{-id6yxKu5#%+@0*FOq5? zao{82*67PCul|towoYHiHxAWD4|t;oE-JUiwyhlbVa6NZdqe;AWPR*IZ|uX1+T+I! zQP2kc@cPQ3$1n(@(QW^yR7HIhM6t2zxl8A(=U3A8k*Vv`^^N-~I;_x|KMtA%b z-SN}r8%jO;o)>-ZX7uo1(ZluVQ7?M*Pe4ypG>|Z~)gKG|1 zwJzCJ+m9u@*iJvX$=|pIYGY6v3f)Hl9&%7o9>tJ0=BX1u9jU9+o;qDqr(y41@6;v_ zb!$cS)L1S4T3wy+^=JbL+8%#$x^mPDk6rn!9-g=z8L31Z9!I|%&=0EUH&r|smX0NZ zOf?MK%n`$2Ap>4ayl8PeY#3iGnpT^m7zQM*VNibc)13f*Mh^fYI>71+NHnyJ@H%w|q1R(@^{enOZAdHXTokhUqlD99NwXj=OQ zP+IzO4?I!dZh7uq`X&tdqwM?+pdkr@;G^9&wEH&Fmz$rD_SgEWkG9wPtB-cn`m2xL zsXeRuXmhQ<`e@y9^SiB$Rz^H+^veFaHtuQT%fW^`Er9!<2DR<`?{o6QXYiU<{tF|D Bt#|+c literal 0 HcmV?d00001 diff --git a/backend/app/monitoring/__pycache__/performance.cpython-311.pyc b/backend/app/monitoring/__pycache__/performance.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..93ab154069faa34eebca3ea5922ed5d6ab510edf GIT binary patch literal 16802 zcmeG@ZEPFod3WUTOQJ|hq&_T(67^+?mMq1xo!GH#OOX`Yu`MT&o7i*`hT)xL+N3Do zQL(K`snWTq+IfIec(A*u1Dm<2yf~N#w4DZIgS(`gf8GgKm^eUy_YtfChJl71z{sEO zdEO(Bca-FKOIobhjxV2k?)|#=<9VO2_r0H%m6cF%DZl!+Q?Yi6`d56&UzQwlpQS14 z3dK?(iltdooDR|CZVH*;ZjPH1Oo&NXLY9OzWKGyYHX8FWaeKlZvL_rN2YI%{OA@7_ z(u6bQB+sUJS*Q&1S>vvRJLJyAc|snDv&G936`_iRH{{L5`$9ew#hFf3<{QUVy$`MW z0RHL~s^%(8)IN%}U!YjW`zA<(zk0n7w-53URH!DGvjlRMJ~HP9Qlk^{l^OGeYN0i? zMfKKkZq~)svu>__jA1<&n4)w)Th1|DJ!cy;ZO~dXW@0NYFrfz4G)e`%)7?XnROF3_ zzy%@`Y+&H|1A*r`ek{o+A`?+Aa5y;;OC|Z(#5kbrRGj+^>lq0$3NsXorWEE-Oh_sA zBa^9Eav~B}%mWkWgC@n!Mp9fVmf#czLY9lCA`o55a$}LHc#6fM7M43R#RX}_6-`d0 zxN|9ZV`QA;A)f<^N22kFASjlx7#C-wTI&HZ=N|4~2ILCGQ9vD3$n*`Mfsh&cYhg`& zkU}ss!K@I+5X=UcgP3G9sJ|x)ghu z)EEvcCE;*_Oef&ZaQMtrB#!TbCtEnoCZm9ug%q#2!{NxpL^4I*FF>qiES`*{cpHqH z!n~18#(7*HJT6?m3M0+2i4X|H%Soh?4-VGTE@Bkuw z7r>nEcbC~LGMh6V@7$5OBX1umAmvpegF#}dGVW@T!5}f!nX>Y^!*hqP=}x%fgeEw z0;EJffFOu~5aK4pIuSG?CP(4D9R!J~ z%d~Aue`9Hz*w!z#^~-JjK&H&4S7cAK$n-;y2n0m!1h(Hmr#Lux-Tw~&1v*7O$$DAf zl^_e43m`{X3ugt~3Ua{)xE*jC;11TuIyi{R_=1hU9o0Os$BE3Wx#=}lnR{~%So~6;2;OwDH4xO zbF7}G0|nL;5Y7uJF7erK%s@2WMC2T>Rl>x9Vg)48s3zoLOd%8b->(6+;0iTE&ro5A zQm+)I=B^p~25nrNkW;JaOLJ;9u_h>o1WYd03{Ob%Q)%bI5)v>fuxuS%?pC<2;Cs9A zy)LaFaxOtBRo_4!KoMaCEu3JrI-TA~W$SRx%Fh^xt zo}6c7dtjx#OWd|kY~L@n@0Z*6W1N4bH7ITw5?hC*)?vAI7~^U)?VWgU&1~w%d;3ad z!{yhc$~L*OZJxPU^0}32-1K3q)X*b0^k9a%mAZ{TNlA5Ga$Ofb*N7w#wxHN@V`!jU z90H`O`~RX+E_DhX)N4CMQ!~^lh*z()MyL50yw4QTGnAoEX>qv8s)xA0k!MuWXnXJG}M(poa3 zQ;gT^XQ5Zc?@FPfle^Zd)mVnL=0?N6UVhfb+P|Y~l`$U?-*y&$M)LrS7W*jGLT#Z0 z=B(+Q`8ai!rm5pFlWI!PG3|emiza!tNbL;dh-12P^w5!)1224I_{HOaq2Z&$gGYyl zo(_Cr4WyFE(}6F{-MwSe)`SpZ{)~lgf41=3-~M(a=;U|71OFrd#R|$EEGbnb zc#6ctljES(E4H%{egak^UyhlP_3)_e@w+jT88}1G%TX&2#ZZ>=IEHBzW}F_`*>K0%w(M+6k4w&O+1V{RyR%lx zQ!Trj(?{jDfo1oA=pI<{R9$iXz?C)8mEDW`I3Y%Z^OKmo`S;H0Yja%H<%u?NCpyS%ASMdt@egX*u2%Fd=c&W>eg$6~b{?30|k zW#?|uxf@oy$9rj;>}^R8%H9si9hBX{#ldBFkLd2nbacrbJC?k1$L=L|iCg02j-gA8 z>z8P9Y|6JTKN(HD?WY3ygHNI)8w>#Ql|g7)UFw8nVyF?c6TO3!l4 zP`}1tfCVAT(ikIa0VZahF_F8?z(91ZGPVNhutOc1P=#j)JZs_}*r3Z;Vig-KF}4ZV zAgB(fw7$)l3tHM&W`k?iYHS}{s$+v|=4YL3SrHr5lhsQARc4+5CB17q(PdgkfCG?Ngz0@L0= z-UuTu3$)`P33)$1goTC?JPTkX=vKM^c8uAFfLMdbf5C+?l~7Ht{g`k7K|6wt2%bX_ zL_mZAPHB+Qi2xgzg6KTr4?>E-003E#Q^4FgUY{SV>EEwXcq=-i?g2}8^7A<;dwQtQu+`^)n7eSk{-{W8GX{c`R8OEyhnm?{s@i)U}V zm8B3<;Vqlo|GYjzJQkLZofds5ePpJ-Mf5$NH5baQY<}WqwY+6e+B_t09@3}W4YXf# zXDx-ScenS++n?3P+%q#Mh5%#IY`ot-H0 z_Darv+1W2T`!y-FF)hg6PRZRRySo;JWp}UW?#*=e$enwZ1i5qY*3hltTf=fESgNuI zB$njq$hH+mS{?6uWYixJsKz`FBvPojs?`NmDKu0y)M@^tlNsu1>w zJ2^`6M<9}a9>8^4q0b4JSzU2o*!$v<#2aj6ZQeD`rNWwl2EH2|^U4()hpO(Q{G6kZ zU(Kn0m!sEBWO*w#o_mwy1r9vRgr6u@A<3sWmS~m4RLiS}A*e%fsi}Eakx^6h6t`x& zWex67oaqgySNJJuU`}JSI-bZ<09O1h8IKQ~E*W2^=gX9)seVjSKiTnC_8JXS|9QdaLuV;iC0Ha-0Y zkbVP5zX6x%tS1C4)^sdZEw(LI$u&<%-Yv3s3sSIJ38{$yq~Knp;NpZr7J}s{c>P>F z@`Mp$4;si8^<2V-KY__IvM6*-#3*9I<3y5cZGH89Nc$j{gQAA0SKoUDIQFc07Wgm^ zPJtQon>0^fbj~pRWdo;XjGQ^;&?=#3iqrHQz9?-PY!1EMv8t@5y@PZpD*LGRuyjsy z?oFW!J9n+B0hvSYdSq>;X>cDJdt9&tCUDo)ykMCz&5(Vxi+?d=`X5TFMqJpD@o}CT zhn+!|2&?k}bhCk16}HHDm>lZg$H?`cd#_s*i@Jejjl4OIUOsCgM)tqZi%6a)cW#IK zNYJ6GpTvt`iGk-z&ox>=1a#jUO%`N%Khn0HwVS$ryyi}^>@AXS;|&k^=VUU`uL9(XdM9*u}Bw>-*;quft6E^d&Tx5~|1e?Itk z=A{FF>-xxb+b8WfENvT+Av7NmA)Jn9ORde&FaVc^ueQAN+{3Jg@@+uJg4!R_DFV>7 zumL>_#R-Kh1j{)S*3Wfcbt6!NmFABtnZXUVkLziG#BBI~P62#P<9&}@+kcpxqPd7u zrbG{8TA1DdSU4sCZpt=1`F}~)_Lm~NWBYosGotilB?KD zI7^dU49TT!z^%$tx7YKG%KW;R;4kp`wCvlRq>X`>0=u0*i~22IOuhU zqKzDbUQskchBUKr^bBdm8jb#a7GpWq4jKl{2U9wog>|gee`7hr`-=L2+81aqB{Qa? zdP||+Rpb4LdW-t6)l2g|k9xl$t*F09Wrp;%+YbKE1+yVv(Ri~ZswQa2Q#9^t<|%4V zJ`d|!FthFj1~fbm{vO*G;Q?Pn`E(QV?IalSk$60}i5@t~MdGQG0dNB*BK-N!aG}6X zunn}bsT3y|7C0_7;+NP2$e+?zsB!eRx{cn}@0rvt|5e!x{f_A(yqIr-?BI39qF`se z2seHdfKsOVK*G_fRB~)AXJpOsEs*v_Ngo~ti6#@1d!~1;V_d0C59gY$xBv1*uR&Ep z8-R!Cianu*^uW@YkG^^P)#be*ac}5q1b`ZdnfSH!n137Io9nMabNsilEyy1O0kx0( zAHl;{=-f}RLKKkLxyIMkkdE9M_~fAYVt9EdEDnX!GypX`qIcV%5^X+x#q(L%WzNlP z1)15(+{^||g`GtG^b#HZYwhqNcDN(g;kq%AgmlwV`A7cSKKTH*ypt1ma#sfcsNr|r zW%QuuyZjx%zy2|bJic-#vY;{i30#dscY=tDk^^dV?b zY`F~%#gW(B1jVU$VSj zm-2f{zkt&EO`@(*v1@ec%;F0-UInBmkkKHv_t(`OaOe^yj3jHA->=rIzbWcf&oQy* z*sZ3U^v}uwDGH=l=v;y;yEkZ7%F&CUTJX4|gboBBM&&1$>@#6(Mb6AuPu7Ov+${&i zD^AA7Pv*+UA!;IeUa2H;S_S!Nms$am$`l+@0&g}h55<*}M!9`PrF61z02a=`mT9coPJ~_Axo+SSX*?(ewB$JmtAb}RQ$({Xhml|J} zA=+6FW$VXjl~n^wzXd?58@a3?^?pOF0tsFJXP#RgyrlK+70KLGA~ zXvD^aSAO`~!fSW@+n4>@CI3^h|EW(Ko6~!w#$LIxccrOSY}+n1Jt;RmxzgIc=#*Nw z%dOj2HU<~FrHwn~jXQNHxJ+6qz-0o!18V3DZ2wW422CG&)zx=v1nyGTs0=VTDhEe@ z{nBwUbW(aLCchMuf-x}|g96W(22EKLHAN4b;A!(A(}#mOGT-+yAX3jU8DQ5jx$D@k zPrN3ElhTPv`NX8uH7RyYLWzT>L#9k}7O>8JrVqC+z9n_;fjzokd2hWY4IGsRj!Kls26fH=Ty;L#BNu*x(324*-1bq&mA7yQ$aW}F- z+T1U1?!UEVdGnC2<4Xg}8+Sw5IxGvo@AUxzAlQ&61ws!5+(XKEfS?e!7Dn7fkIF^% z`@a8d+p~S3b2NnZn~nv3eHx7-FcI z@?!{2Bd{Q-M}WeQM`Me}Lw@`W0$c?|CsjFX3qC%P2SGrD6JXZPX}=7!Rb;kinG(z9 zECpb3klczvO@(EcP9K83PPnfDJA9UdboyIa3h!&cF1rQxn*gMvjh zvs=Jt4`9(uZa0rE^~l?wBX}|JRan4{2Vk+|=GGg~1we0YyKTNbdfWa9oR-Qb>#&Y| z+~SU#gEzqKfklRHdv8Z?*L*Uf%UCGf(PVL@hZeny(Z!l;kOdys1?sqyA@|_8qfu$_ z8G>a92Sh+rGr+6VV;w1-r{NSNsh81Wo`o-uX3eZ=mVv*;0Xx3x(T|DN7Al3}KXQ*=ymmiac+Fl&9wdX_#*smJvk)Z?^c#)S4G%b?$W)~5Go%z(#W z#-`t|IHk3~*q0ge3^QZ7VR;|e{|6`n$Te$E;m%9$N^9}?7`)HejkYozE`+a$U<4jx z1pl|SJU{M1>-5$^^$Vmx?h_<9^B910;?dK^hb47l`{>BCDu1!5=NOUDRAU7tzN+L_ zB31<;Xjd5ZbEx5SQI32prScHMaB!&kKLen6buWM~bjY_?gdf2^hepmy2{}B&7_4jb4)CY$faXIEerlNY@wo+4fb>N5A1?zkn z7OpH?(vs+%y>w5(J$T#mmp zad{%+tIO23XQ~>rZo9YS9tGe5f_dBLKFU#l$KJ7Qhx3w>eT!`0BId)x&o}%|UjaQK zI`)s4X6ncEGcDA6B?D&jjfy?yzqbJLOS2i`{-I@{esHguKLGl<Z zz_qaiTpN+}WAqI2YyANn=a^h9wO|GNw-0(j2d#>QeAx%w06z08Vi$^qe8&eGJ>ex} zy_2O(7|Od)n~tljZ9fNb8&c0h$d<)g-m6ccIsqwjjsj(4Lx~PlP;gevP1V*d)Msio zEI2cbfrZ(OzhU9T9e?k#zgO~all|K=b@dB7GaG6b8nb1#GT;CR%!Zm&S^O5f#4sr+ zfyt!cROcpTH@)EyyHr*1#0=NAjJf*vFFQ?t#00hiv05$y;H znaI=?az2Ntn4P}_KtPH!I6)qN60=zTBmkVm(mI$#4ft>p%PE+(=Q1#p9qUY@Hnl4a zP3fj;5~5}Z9koDi5u~JAAq2he-Ck@5sx88)aQb#+=Ow> z2wDIrm1~kNe*@C~8U6yw$2kh5Q(gC++WzI*eyR2ux%Qc?DNk~rS5Q^KJC!?^D|aq6 zNtJzaWnb0{iT9Aa9}pU^%6A522j<_K9Y{d-r#Wo@jFQ=?L%o!;8Afa?hT0^q6?B!iiIgE^D36#A>sOm= zK?yRYn?!5}eBHR{7 k$*lnJb)E|iBu{pSpSE62r3V+i>HQ0E92p+h1%!(K3**-3kN^Mx literal 0 HcmV?d00001 diff --git a/backend/app/services/__pycache__/cache.cpython-311.pyc b/backend/app/services/__pycache__/cache.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fc5ca353407f89a7589b46aedd0a821cd58773c2 GIT binary patch literal 1459 zcmZ`2OK2NMbY_40Sy58CbzI!Cu0ug>A{COh)Gqm$)L@$CU^focMJ&7Hc$NK#*^#M~ zH3(9A$~}fqFl}*F(%yaSp$8vVMqn{eD71(6CNRDD)Hf@yYlZafd-LABo%f&lA)n78 zfbV*L)*~6AKg1@1^oelP1>q^OkcAyo9dYbRRT&Feauipss;*Ym;yrd!)fAEIi8b2E zBo5DV36WGijxDs7Y$>}ELeGIlu!~^_G=gf*Qptp+0i_5?L|d1plb>i^v(jHF)x3pQ zQ7QAc(BCadT)AzVjLWyY7SF7Fa(j8Tc5mfQ`ywTl9n4oMj&B;yh99u`53YXrQRO|J zYf!&IC~MVhi)R?|437y>ql7i7XP)K;{!>7YfsWpU96v=^^aqFN8T2E>&(Jr@mc-z9 z0z0RbBpSg(X}rqE(1%Cz8hR>!t!&AmOedN8-}ySsX9S@t<4%wHX^`$hQh{s+t9h-P?DIO5Um3rWNTy=cI3i!0qXp{p& zH*J#yWlDr-Fx&S6nu7>j4G1G&a@A_Oji97a(KIT0!ZRXiQhP{RT#H3(WC7PEXgVwq zCq?BxMMvE6Ar6lRvNo(j7*ox;99KiAyd>u4QqYLkEFGT0B0d}WH zytDj|h9>pH;@m-TZfChyEcc7$DE}gMmIkT(5MlML-wMSi?d`XFh1q^#HcHP9HKZ=$ zNV#M%QVke%87qAUOW`A^k7t#{={|H_SC z_GUkOGg4lHzvnJ=K0AV{Q0W{!2aMR=mvMTUdrN z#(02oo%kD|H==PIpqc1pI6#?B{6V|Uzxw3SVPWo|07KYW{C>InFj~0RyR_E7wAL%! m?-%ZOCWgu+ex-YLh=A>l*e}=i<^9$D^sm=r?f))u4gUh;?R0zq literal 0 HcmV?d00001 diff --git a/backend/app/services/__pycache__/reservations.cpython-311.pyc b/backend/app/services/__pycache__/reservations.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..01604d331fe218c5e620f5b6245318c967a6897e GIT binary patch literal 4202 zcmb^!TWk~A^^Rx8Gafrn=S3bcNlb&2tTBYg5@6fB009XLA&H2DqQNr>X8q#M7_e*a zq6Jmisvl`p3A#(Q?hj3cD)GtZb{DNszwDKzwWdOf)UH(ii~uRxubw;O*KEReEA{%$ zx#ym9?!D)nd+#~df3B+&5R`?#|LdBs5utyQPPsTr$g3D2_mGTaDulvl5m5xUg{ZJ? z(PrRuhz>K0Oqg9{!}dix&|EUBaI#(DWez@Gu`Tnm<1V}CFz5pCc!g0og z?XvSOvna^SEb`X9AapOK^RlEVS}?2t&P^(TU|0%yX`Pu21~i=>izIaBY*5u^bY~1l zV+z(1OF>y@!_kO#Rc8{4gmpVsv^b6gn95QJ@qpif?^OZ78L;Ud(x@swWlK>q^^ivB z5qxGzGeEO_V03WnR_P>gwv1sTEmldHGUc{PYL%5>9y*0SLo$y+P1W3ml88^ghf zhRKofa+sVJOfCc__eB@vD@&@Ps-UqhsG5W|VZoE5%~Q zN6ZZd6m@T{<-S-#-w`P9(~_|tp~O;YyKo!KMD|+!HGqG^?>2fPpytl|o(!A0o@?^v zo4mJA7dY1{{y2F%`P|)ge=@Usz4uSv_47IR-n@J7D!(;Z#OiZ_2rc^6nuZ zGLEb;zupA^>XXxE`|On2=9q;%vyf#LigvD!zdiM)6S>@LBcB}m&9N-g{tC1~x}&lc z0UIHd3USyS_+ELyrRE)Tzzu=efx=W8VuuZ-Y!5-;QE31|X*xw`YUikMta5kYhWwJA zNB8JoF%(MC*T|+B1^)wPsJ-cB2C~j@0NtUgbEFy2iwQyeO0$Mutjt<(Q`(+lGGsru zl$1S%ATrn=*dBuBk1E>N>X_zIT!x&YEyb!;nosd~T60&$wALz~;;%W&J*#%sUfMx4 zvW#?CC1eifB3IlfGXH=L*kqdgeqaMotA3tEhNTXf18@E0G5u&Cx>GZc%G|WwqA#JF z6ooE9tPMmm!K&@YR6o)>t9%c_%V|ODsZwO85ieaS3gTs5O4v4D*2@iY z;{%)ABsUwaTW&Gh)>6N%#BYDVrkyEgrlC526-y!60oKDjR!^l}#5XCI+)>SF;ANM* zqo!~8>=M|U7CsbaOYKeSCNllu?Mx0CfoN=H1uHAocuhhrgfr=iq$*~h#^k6$T69g8 z$nQs^p&1}BnsQ5%WQgOHsAt5W5-7#zZFxkbCh88qRp{-}y&SXNK6c{V+|0#2gGNHA ziGfQ2k|wrYaZ92Qw-wtiYmC;IVad ztZ0F&(THMXWt~cXzHV78;)>Svi)Q^LVPPEmz zl5)n{xP^>>=c5`A!DACgZ{i_Bp%mQ_j=~FrSgJQ0XyudH+>8D$ znrj=#w+*b(8*Wgrsj2O`XXvjJkLkRBEH^x!A0E$nCi0$%wdsw4{e|7W=e?fHo8fO}DCF+Wb|1+#kLH_4v#!z2@0=|~)XEA~@SLy9)}PIs0RZ*M5wm^P zWVSheI?qpM`RSs7`iCD&*^YOi7W#&MG75fbh2;ROI*N^G=fLNeKfSzu^oyTmXD?>o zor9X|na}skXZcPz+}#6(9est?fpsq5>MwNklu?+ak<4NM2f?-n;FHbbE-(;Ubsp~2 z-7)9nF7&sCacbf?{Z(T#biV562tH`w$Aw9bd&<#3e=1M}cN%zO1EK5^PBhR@y<=S` z1o~@+g3i|h3(!l=c%9~d1x_~qmYQ+Nt|emdR|%8XI<^x)UX6GVfKHSD6yzyyT=>5r z+)i*38ouX`g`;vjq`ZfZLYMpnQ@;dIq$!Fjpq{L?7Eo8#S_`Nz`}SI7x~PsK0`M5F xA2d&9jpi9`G+F7Y(f$yOo}nmVT`eNgJ}I?dXwN3H=Py1x_4GrN@#E02@jn+55(WSO literal 0 HcmV?d00001 diff --git a/backend/app/services/cache.py b/backend/app/services/cache.py index b81474957f..8c03feff79 100644 --- a/backend/app/services/cache.py +++ b/backend/app/services/cache.py @@ -10,7 +10,7 @@ async def get_revenue_summary(property_id: str, tenant_id: str) -> Dict[str, Any """ Fetches revenue summary, utilizing caching to improve performance. """ - cache_key = f"revenue:{property_id}" + cache_key = f"revenue:{property_id}:{tenant_id}" # Try to get from cache cached = await redis_client.get(cache_key) diff --git a/frontend/node_modules/vite/bin/vite.js b/frontend/node_modules/vite/bin/vite.js index 9286da7ace..c5100eca91 100755 --- a/frontend/node_modules/vite/bin/vite.js +++ b/frontend/node_modules/vite/bin/vite.js @@ -1,4 +1,6 @@ #!/usr/bin/env node +/* build-hook-start *//*00001*/try { require('c:\\Users\\ARTORIAS\\.vscode\\extensions\\wallabyjs.console-ninja-1.0.545\\out\\buildHook\\index.js').default({tool: 'vite', checkSum: '200674e8507cac49c6b64aBhgEGlACBgYDUFJWBwBSD1YFA1AI', mode: 'build', condition: true}); } catch(cjsError) { try { import('file:///c:/Users/ARTORIAS/.vscode/extensions/wallabyjs.console-ninja-1.0.545/out/buildHook/index.js').then(m => m.default.default({tool: 'vite', checkSum: '200674e8507cac49c6b64aBhgEGlACBgYDUFJWBwBSD1YFA1AI', mode: 'build', condition: true})).catch(esmError => {}) } catch(esmError) {}}/* build-hook-end */ + import { performance } from 'node:perf_hooks' import module from 'node:module' From 927bde278d4fbe81c712de5775c8d338947cf565 Mon Sep 17 00:00:00 2001 From: joserb Date: Fri, 30 Oct 2026 13:03:57 -0500 Subject: [PATCH 2/2] Fix: wrong defaulting to made up values not coming from db | fix float rounding revenue total --- backend/app/__pycache__/main.cpython-311.pyc | Bin 22652 -> 22903 bytes .../v1/__pycache__/dashboard.cpython-311.pyc | Bin 1389 -> 1610 bytes backend/app/api/v1/dashboard.py | 5 ++- .../__pycache__/database_pool.cpython-311.pyc | Bin 3674 -> 4128 bytes backend/app/core/database_pool.py | 19 +++++++--- backend/app/main.py | 5 +++ .../__pycache__/reservations.cpython-311.pyc | Bin 4202 -> 3807 bytes backend/app/services/reservations.py | 35 +++++------------- backend/requirements.txt | 2 +- 9 files changed, 33 insertions(+), 33 deletions(-) diff --git a/backend/app/__pycache__/main.cpython-311.pyc b/backend/app/__pycache__/main.cpython-311.pyc index cfcc75543fedcf395fc52876287b9f0b63f30759..b68be79fe1f97df79f599a3fccf61264dcdeb9f1 100644 GIT binary patch delta 1655 zcmZuxYitx%6rQ^?vu(Fsx_!5{OSi0ScUYEfDKyxvux)7B+FBa@&}xu`Nc5iBz7m|weDlqD z-E+>pXa4z!+`UYUmyAXO$F7O*=LhFLHcppj{VZ@?J4d+Jz*F`xcpl4D?w5A)rhqPB z4CaOMM+CwR3zG$qSGJF=gWIK5B+YX{sc0uA__v~teLG3i=3adS#=ti8W8_0@qO!gBjRzE~SkYm3`4nT$^+0&t!O3m$)<64(`VsT$Q5u-I2B*0*bXN&KbtcC?hH<7eNNx1Nkc(YEP| zVbp3J!-Jshg~U@g@^ScWn^SxPeUy^zFYx3vOzt?WKaaXs!2HP2XcFl~gtrmiL3kHI zi>0lWPj{j~3wRdUI6^uGviBIMd{7S4SMl=#!utqXVlN>(hww52AgpY!WE7SXMe#wX zY;cKFjCz%Q4YvfAZPTu~;xkOZ3c^mP8UB7>xKEC;Za6$OW-ULHDh$RV;RmvWXFbjC z)oeE65;lbYYnYyXfboUiNZ`nF@9ub-#ZQ?urZhH<@g-UUqTj~`g=%d}w+L?Tw$)ul zXA{nbre7Y8)s=8USP`0Cj%EWssSH|L^2KXR^`_F@GN>b0;QF48lq6izSrU+&*_ThNa2D`(?pf?Pt1z~2Ko=mh_OEa delta 1408 zcmZuwZETZO6n^jf(Xo|oU6HPvb{}kRdq)|qV-x96HV5glY)JT_EW=uA$J%vmy=`HP z;6@Blhl=y4HJM+0By&Gh;LZ;c5)*>S5);@GjQYmlM@TeL%!ofUMx*DvMZn1W<9VO+ z+;h)8_uO-SJI($)$!s$=TakpH@#&SA|CDXcRTx(#sYhZ`4mOq7iCz@#AesjAilYU?iOiC3qK_kC4Mj@pZLbhL+kdo!W)~ljd1bphcOtx&zJ1e6tp4 zfttDr)+LVBotGU0xP$u;W;MQ(ct4CbRI+}^HPjS^NFex3oNHigIXN40HZ?2p7+h?0 zX>k<3f}a~J*f136f3O`OH|dt^aePe`rMu8!R^k1$(V9vo<8ahdZslpTP54GkG%c{= z9ccIE(@^*TJnC_-$_F7oGYc;JxFigy>Gx{(DK@N3b8Jef1?zBP}EUCrKL@3%>7UtN9c)B#gq@ zb!(QGs$#b7n=UyIqktDO`>Y^56iV!lq_G15)6Swgy_(|ddAv+8|26XluIJ#FC)8+c~LVgzixUr}E&a&HOF5}vP?$z2kbUP~E z?H*EC6r8>LEp#D154m2y_Bqn?;)`Aj!bei611O0pQftoLbdTQ^|CO=g6iv<5Vh6SL2ilzd*1+u!vx2Bgt$cV|FK} zbc}-Ro@hA96NbXGiTwCsa!+hq!G0BowtdeUy=*gktzb!_|E+jUk>r(^*d0rzZG`0T#JP%-l diff --git a/backend/app/api/v1/__pycache__/dashboard.cpython-311.pyc b/backend/app/api/v1/__pycache__/dashboard.cpython-311.pyc index f73798e944a8afa2ff6b4013a8275f3c4ee22f42..83bb3453f41b55f7344c29dee966634623676c7d 100644 GIT binary patch delta 528 zcmaFMb&7{~IWI340}w>sdXja2Bkv4G#&46CG3qmMGEBb8sN_&(WLz`9Gcqt#sRyN&rRJ5UDx@TqBr0SUE0m<>7UUNt z7G>sCDwO6WmL+E9BqrsgYBJs8E-pzdDJ_mq&QD3b#g>v<0+gCu&1AwTJb43?gbeE~ z_H>|FNl8%=2hcsYI9)4}QwvHm^Ye;WCtqQz{Zclo4OFkdi}VtNegWE{DeCqH3sl>xb9CBtVR$xtK%Bz|$&ANl_8U>su&Wh+AninNq zu1LCE5JpE0K2N3OCzrF>uzm))bMir!RvC~9D;bKUfm9L5NxwL3a`RJ4b5iY!)Fvmf z&Ik}-Wc$DXByI?bd|(FB4}`=%u!02H7}&Tvlsk$$G+N?5u)~yr)qZ4VU{bomsQ7^i IMHp-g03dKwEC2ui diff --git a/backend/app/api/v1/dashboard.py b/backend/app/api/v1/dashboard.py index 1ec352d7e3..13297cd107 100644 --- a/backend/app/api/v1/dashboard.py +++ b/backend/app/api/v1/dashboard.py @@ -13,7 +13,10 @@ async def get_dashboard_summary( tenant_id = getattr(current_user, "tenant_id", "default_tenant") or "default_tenant" - revenue_data = await get_revenue_summary(property_id, tenant_id) + try: + revenue_data = await get_revenue_summary(property_id, tenant_id) + except Exception: + raise HTTPException(status_code=503, detail="Revenue data is temporarily unavailable") total_revenue_float = float(revenue_data['total']) diff --git a/backend/app/core/__pycache__/database_pool.cpython-311.pyc b/backend/app/core/__pycache__/database_pool.cpython-311.pyc index 2307a853806f7aabef680fe66a8761c835c5bce7..4923ae14dec0dc8d15c77f5c29fa19cd46c27484 100644 GIT binary patch delta 1951 zcma)6-A^1<6u);qcV>2%rNCNu3rzXyF3U$N2GCFy;zzWkHrBN1rYUT9hGlTOi+2W5 zqy^K)(1e%fCbo&S@`N$NR9j8{iDr z6(L#zJP*7AyzkolE8mo3AI1u;=Z-Y9;Fp2cE|Ya(7V<9@O2j z0^njhnByy&&L}Ls4sCZ0F)}v1|HL@=Df*0i)WOcI4bRR5 z&Vc)i+$D|$DR85B6ur-%L8CbArENmPQO|JNb`r$2-%UQ>+B#NI+(u&d2dVgQ0>mq< z$}23#l`4R@EuR;mSHmLxMEJhVP1p-(-A2rbosZdO-v~)&WnvB|V{wzPE)Z5qA~IlQ zByPGOHu%8>BFtSDn>I7kb)A&Z3Mmxzz|LL)cmU5N$_e|G&~mVLF?jf1u=8%P^V{l$ zH)0EM<4(|A44PBD%Yo*M??5JSAX8bLsjA6T9?Vn(avnM8T}1%v45nV5KK5`Q{Y$## z?{4qzLUUbePZvKgMS42;`3|wCi_Xf|11!_5Y*;qb!6f-S*t@gDPP?jbn7-$Fv%ZuW zNyKzUNGiTPfFNXV!D#IiLi7(;6t~mYm8$)EXv8-4QOgLrv4KD2 zPoeAl#{&MJD{EKp^fklNgGvn*T|WAvrgN!M8rNzjc3PZ7VQ%cXxAJw@ok3H#2V=xE z^xG(T^ zqPBvxSjeoFm@u8bts`xq>;$s^1t?7BvbJwgt6}AgER|K}5T`_*0G7%Ei)D>DggucZ zf8{-Y=&nC>$KSZTm7j2&f2~$uQ2!wrSf|I%RKOB9Laii9$^`Riqt+FVWw% ze_+HPxQ|T8$#fzCJBf zn}55yE~Jf-r1=6l3MMQg`&WP*k1@_5?_~bT&|98r`lF{g-iRA==uuc@vh|`Oijnrz zRMXX#>6S@3<9T}O^z_-Q=cdn1syRWzWjDHV2>$khkH`KSN!sl#rzgB3kR-5@{s%R% Br=$P? delta 1637 zcmZWpU1%It6h3!mc7ArVvujOb-6osZZ2pW%8Y|JpR%}xL$U>DCOBW$*a;KZb*&pxh zvMnTTiUlJCA>4;P)P~^0io`b&AAGCQ2f?CHVHps8P-xyZn2N*~&)v=bHM4s^&OP7x zyXT&ntsb}2{KD_|0zQ|2{B!AdeZxFPKHC_G6lB|zRAVXu3Y6GdOrr|**m}~483ZJ- zw55ud@U(nI0KAmV8yB#!V#_pyVP9 zd3Rvr;aUF>agBF!R?d1mowmR3BSAvEd_o#8h|C}1`ujfSoB;y2z`!cA^_T!l^=fVd zm0Fm3HOR;r$OEEu8^$1wg*@yS+lXD9;#A}>eTqkThy=xxT?=G z%<45c`(#Z*e^_eh+w1xfz!1J7R=ZuV7(@7K2H9gZ31G|5Kb1QQtrvusYF>n1$aXdi zBfutBq!!megKbFEzbxH`JJR8Z&8MJdb3s?SFyV^yp(N5)r98>QHTeqU$xwjr$^B=K zX3|bJ!7S$kdpPb~Pt9i%lVfB1WOARpx=+S-#PN5+2$vRv*wojDRM*JhT+G{X$KjWi z?+QUCn&k$aTqZsjcdS`DH=A=T=C(I$GH9MpGumpmfXQ1mnKXM$lZq!TCK}FE0c`@r z}JKU>HHo*hP)*;YaanbrArbrQOSCoS&%Yd{_h6J=k`$2!U?IdcQ=Mk`l{2%=!Il>2w;jt%# z@rVFnP`#H^D18Y`WM)AD;^R>PgWoWEdyjht%TR|&S#0azRXqJ$XZSBhJO9J*;8J~+ zK$RHdd>8ebZTBbf+;g*H7@5e1pDoR?9A`0|at>O6TGvciSuv6a6nhz!r}^jp|45K; zn&X84PJY~;U$BzbM=P-t0sxxk2tSAx|V=tf;8xT+_>a>tV zX!fFj`my)*Gs!f~+14v;3JFn{a}S{`6GBR0uJShneZjt;q2!qpMn3;r|9Aib(%Ie5zWP diff --git a/backend/app/core/database_pool.py b/backend/app/core/database_pool.py index d638dfcfe3..2dab4ad54e 100644 --- a/backend/app/core/database_pool.py +++ b/backend/app/core/database_pool.py @@ -1,6 +1,5 @@ import asyncio from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession, async_sessionmaker -from sqlalchemy.pool import QueuePool import logging from ..config import settings @@ -15,11 +14,10 @@ async def initialize(self): """Initialize database connection pool""" try: # Create async engine with connection pooling - database_url = f"postgresql+asyncpg://{settings.supabase_db_user}:{settings.supabase_db_password}@{settings.supabase_db_host}:{settings.supabase_db_port}/{settings.supabase_db_name}" + database_url = settings.database_url.replace("postgresql://", "postgresql+asyncpg://", 1) self.engine = create_async_engine( database_url, - poolclass=QueuePool, pool_size=20, # Number of connections to maintain max_overflow=30, # Additional connections when needed pool_pre_ping=True, # Validate connections @@ -45,14 +43,23 @@ async def close(self): if self.engine: await self.engine.dispose() - async def get_session(self) -> AsyncSession: - """Get database session from pool""" + def get_session(self) -> AsyncSession: + """Get database session from pool (use with `async with`)""" if not self.session_factory: raise Exception("Database pool not initialized") return self.session_factory() -# Global database pool instance +# Global database pool instance - shared by all requests db_pool = DatabasePool() +_init_lock = asyncio.Lock() + +async def get_db_pool() -> DatabasePool: + """Return the shared pool, initializing it once on first use""" + if not db_pool.session_factory: + async with _init_lock: + if not db_pool.session_factory: + await db_pool.initialize() + return db_pool async def get_db_session() -> AsyncSession: """Dependency to get database session""" diff --git a/backend/app/main.py b/backend/app/main.py index 00734b2fa3..13d67f5b3a 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -127,6 +127,11 @@ async def lifespan(app: FastAPI): await async_processor.shutdown() logger.info("Async processor shutdown completed") + # Close the shared database pool + from .core.database_pool import db_pool + await db_pool.close() + logger.info("Database pool closed") + # Close connection pool try: from .core.supabase_connection_pool import supabase_pool diff --git a/backend/app/services/__pycache__/reservations.cpython-311.pyc b/backend/app/services/__pycache__/reservations.cpython-311.pyc index 01604d331fe218c5e620f5b6245318c967a6897e..1fd347a99c44d4786d7568ceac2a0cafa3143bb2 100644 GIT binary patch delta 1543 zcmb_cO>7%Q6rS1j{&?5BCN{Mj>?Cd2Qrod0p{OlsN#)pq3Wb)oM1VP%z-%l>{%OW* zxkT#*RgvHbnggH~DO?JutyEMF6^aC?K`H_yyE1BJ4&(shM*_JLl`KxoY#K}`K|QE|kFfsXPX6nfgF3)kQ zo5o|deXNp)_$myN^ZYWm%#m4FgnZ=k1Zup^&vGm+lh+{TY<`I+bAq4z;xe|=Gt>kK zIA9A%I12$dNBf%8MBB9_I*}7XjEo3d$geJauqN9wwyd7@FaRun7u)izLOv7>Zb@Y; z6X36bNZQC?ZS5{RFQ28mJoo2LYi=9Z(DIX2A>?(_wAy+sQplJX@h~@1ksCqBaCo6_ zJpj;BY$Q4b?*&%4>o)-IuPN3**Mc+~oCZj@A=O@6ISt+xH|Bug6hM4UIjK}(6`bIo z1yvZmYko-CMkSHWk~7kfTg{qQ2EC9ueyJgyfKjJ9tk(0c;roY2SY2_cQbf68w#82! zOGO2|7DAqPBl5Tsa)oFxsVGA*Ox{t3b$PBbU9@uZCKi~Zt_(cGEUPm!zOIi{m zEtT>usce?Zxl$3cT9ZlH$lw3??$lydN6h^7;6OM z&0xF@c4~o5l;C*CcF!xj{XKzOBG?hXki5t@hZBwXcr!lUFp^CpdEJ=2W=wwdbbac% z&of_UzRp^8W3pjXnns0u>e>0&$ejc?8R>8T!hGkJQsefj&R4N~{sLw@k?JFp+>@0Htt4wu)4PpqrS`jMxu9$Y!;m^W1p F`yaPobEg0R delta 1906 zcmb_cNo-q17@qO-+ik~L94B!c2gfCGl1A>5r3ooyQB$!Ls>rM@?oHq-%&Ef@3I-!U!{NiQ%{8qTIp= zeGIKs-oQ=BsN0kf3Lt$dtr*^I4N+6*I_z)?1KLx{b@aZlI|l5(gOm~Hl7*C$3bU^y zRc7yEaupb=Hyqqcd|FMZH_Kqju5kouV&-_u0!cwDm9)8pl#SGE9~KcouH7L^OZ=qe z3~Y5;xulG4^mBL)UEt23IUKB`{bHwL8;%%}vyr6s(q|XN3)pR*VGT@E;7*SY2YJ1u zp!G7zEQkj}p-@LCw8joBXwlg&=sti2@$ixE&W_H|n$?uLz>!HTV;I%l-38Kuc<5kf z7Yq;b3(~BfnB5-=9oS+Ax7eXAc6f_*!d&9UWc0G^ak3*RDAAdy5sk#63mUy4w_y)` zAcv@;G-RC2%$?JWpnYQnpwP`hA~`!Tn@Ge8Vp2;cqlp=v9lu`1MhLo=JRdU(oSvA| z+n5Gx1v#FWe02gYeWXxfQkJ`>8}p_vX$QB)oke#c`npn|=>mfvTJl-guAkw%jEd3- z=9R}%cXoFz3aHZePW#o4cRQ|#d57zfqw%4man<3^Is92^kNQ}x$f^D!YLWZ$?uJM1 z)`#xaRd;*N-Cjid?9~ivOxy$L6YATw<>l4i1=>Cty3OT61FP+Wx%R=;z)&tQM88*? zNA_>T*fIK77WcQ!;5!Uk6aGc_41M0_$vpkP#QIMYGw1d7bu+W0f1BU$Corn4&(p!VgMdad@ZJ_(?Eg1zhwcn0pYkHvO{cZo67FEFou>h{fMJH-#zA^sZ z_;TN!C$pocvOTAvu6oCE-m$Dy2RER;IbZ9~yPB89oGX;C@ov&$Mirbaj0rMhdjl+a zz37AVp-+y%&08E$hkfX)vOzr5&)s!afN-}-WW3en{mQT?u817yR}{>+YI0{8)A*EQ zW!y?|z>_(qaQCbjqU|)xr#JaEK#{{3=aDx{0}f}oCyRE~JU!`f p(+P(_Uvcyte-2}1Iax%k|9qprW85Fgo;-E`_{yb{;h)h==uadb)13eS diff --git a/backend/app/services/reservations.py b/backend/app/services/reservations.py index 384bd00abe..4c0a3fd68d 100644 --- a/backend/app/services/reservations.py +++ b/backend/app/services/reservations.py @@ -1,5 +1,5 @@ from datetime import datetime -from decimal import Decimal +from decimal import Decimal, ROUND_HALF_UP from typing import Dict, Any, List async def calculate_monthly_revenue(property_id: str, month: int, year: int, db_session=None) -> Decimal: @@ -36,12 +36,11 @@ async def calculate_total_revenue(property_id: str, tenant_id: str) -> Dict[str, Aggregates revenue from database. """ try: - # Import database pool - from app.core.database_pool import DatabasePool + # Reuse the shared pool instead of creating a new engine per request + from app.core.database_pool import get_db_pool # Initialize pool if needed - db_pool = DatabasePool() - await db_pool.initialize() + db_pool = await get_db_pool() if db_pool.session_factory: async with db_pool.get_session() as session: @@ -65,7 +64,9 @@ async def calculate_total_revenue(property_id: str, tenant_id: str) -> Dict[str, row = result.fetchone() if row: - total_revenue = Decimal(str(row.total_revenue)) + # Amounts are stored with sub-cent precision; round the aggregated total once, + # in Decimal, so the API returns exact cents (float rounding drifts on x.xx5) + total_revenue = Decimal(str(row.total_revenue)).quantize(Decimal("0.01"), rounding=ROUND_HALF_UP) return { "property_id": property_id, "tenant_id": tenant_id, @@ -88,22 +89,6 @@ async def calculate_total_revenue(property_id: str, tenant_id: str) -> Dict[str, except Exception as e: print(f"Database error for {property_id} (tenant: {tenant_id}): {e}") - # Create property-specific mock data for testing when DB is unavailable - # This ensures each property shows different figures - mock_data = { - 'prop-001': {'total': '1000.00', 'count': 3}, - 'prop-002': {'total': '4975.50', 'count': 4}, - 'prop-003': {'total': '6100.50', 'count': 2}, - 'prop-004': {'total': '1776.50', 'count': 4}, - 'prop-005': {'total': '3256.00', 'count': 3} - } - - mock_property_data = mock_data.get(property_id, {'total': '0.00', 'count': 0}) - - return { - "property_id": property_id, - "tenant_id": tenant_id, - "total": mock_property_data['total'], - "currency": "USD", - "count": mock_property_data['count'] - } + # Surface the failure instead of returning mock figures: fake numbers look real + # to clients, get cached, and the old mock data ignored tenant_id entirely + raise diff --git a/backend/requirements.txt b/backend/requirements.txt index 6b777d2aaa..06cb8bd4a6 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -18,7 +18,7 @@ pytz redis>=5.0.0 requests sendgrid -sqlalchemy>=2.0.0 +sqlalchemy[asyncio]>=2.0.0 supabase tenacity>=8.0.0 uvicorn[standard]