From c1e80272805d14240fac37cbfbd68f4c2ddfb966 Mon Sep 17 00:00:00 2001 From: DanilsGit Date: Tue, 24 Jun 2025 23:40:52 -0500 Subject: [PATCH] fixing before deploying --- app/(auth)/login-gest/page.tsx | 42 --------------- app/(auth)/page.tsx | 2 +- .../dashboard/_components/RoomSearch.tsx | 24 +++------ .../dashboard/_hooks/useGetPublicRooms.ts | 42 +++++++++++++++ app/(protected)/dashboard/room/[id]/page.tsx | 24 +++++++-- app/_components/AsideDashboard.tsx | 10 +++- app/_components/AsideRoom.tsx | 2 +- app/_components/Footer.tsx | 16 +++--- app/_components/Header.tsx | 51 +----------------- public/parchat-logo.png | Bin 0 -> 9045 bytes 10 files changed, 89 insertions(+), 124 deletions(-) delete mode 100644 app/(auth)/login-gest/page.tsx create mode 100644 app/(protected)/dashboard/_hooks/useGetPublicRooms.ts create mode 100644 public/parchat-logo.png diff --git a/app/(auth)/login-gest/page.tsx b/app/(auth)/login-gest/page.tsx deleted file mode 100644 index e5b3a5a..0000000 --- a/app/(auth)/login-gest/page.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import Link from 'next/link'; - -export default function LoginGest() { - return ( -
-
-
-

- Entra como Invitado y Únete a la Conversación -

-

- Conecta con otros asistentes desde cualquier parte del mundo. -

-
-
-
-
- - -
- -
-
-

¿Quieres crear una cuenta?

- - Click aquí - -
-
-
-
- ); -} diff --git a/app/(auth)/page.tsx b/app/(auth)/page.tsx index 24568df..bd9c650 100644 --- a/app/(auth)/page.tsx +++ b/app/(auth)/page.tsx @@ -19,7 +19,7 @@ export default function Home() { Transmite tu mensaje en segundos con tus compañeros de trabajo, estudio, viaje, fiesta y completos desconocidos.

- +
Ingresar a una Sala
diff --git a/app/(protected)/dashboard/_components/RoomSearch.tsx b/app/(protected)/dashboard/_components/RoomSearch.tsx index 1129f7f..7ad1b70 100644 --- a/app/(protected)/dashboard/_components/RoomSearch.tsx +++ b/app/(protected)/dashboard/_components/RoomSearch.tsx @@ -2,42 +2,30 @@ import LoadingEmoji from '@/app/_components/LoadingEmoji'; import { RoomIcon } from '@/app/_ui/icons'; -import { useQuery } from '@tanstack/react-query'; -import { getAllRooms } from '../_apis/rooms'; import RoomList from './RoomList'; +import { useGetPublicRooms } from '../_hooks/useGetPublicRooms'; export default function RoomSearch() { - const { data: rooms, isLoading } = useQuery({ - queryKey: ['all-rooms-dashboard'], - queryFn: getAllRooms, - }); + const { isLoading, fileteredRooms, handleSubmit } = useGetPublicRooms(); if (isLoading) return ; - const handleSubmit = (e: React.FormEvent) => { - e.preventDefault(); - const form = e.currentTarget; - const searchValue = form.search.value; - - // Aquí puedes manejar la búsqueda con el valor de searchValue - console.log('Buscando sala:', searchValue); - }; - return ( <> -
+
- {rooms ? ( - + {fileteredRooms ? ( + ) : (

No encontramos salas

diff --git a/app/(protected)/dashboard/_hooks/useGetPublicRooms.ts b/app/(protected)/dashboard/_hooks/useGetPublicRooms.ts new file mode 100644 index 0000000..d1c31a8 --- /dev/null +++ b/app/(protected)/dashboard/_hooks/useGetPublicRooms.ts @@ -0,0 +1,42 @@ +import { IRoom } from '@/app/_lib/_interfaces/IRoom'; +import { useQuery } from '@tanstack/react-query'; +import { useEffect, useState } from 'react'; +import { getAllRooms } from '../_apis/rooms'; + +export const useGetPublicRooms = () => { + const { data: rooms, isLoading } = useQuery({ + queryKey: ['all-rooms-dashboard'], + queryFn: getAllRooms, + }); + + const [fileteredRooms, setFilteredRooms] = useState(rooms); + + useEffect(() => { + if (rooms) { + setFilteredRooms(rooms); + } + }, [rooms]); + + const handleSubmit = (e: React.FormEvent) => { + e.preventDefault(); + const searchValue = e.currentTarget.value; + + // Aquí puedes manejar la búsqueda con el valor de searchValue + if (searchValue.trim() === '' || !rooms) { + setFilteredRooms(rooms); + return; + } + + const filtered = rooms.filter(room => + room.name.toLowerCase().includes(searchValue.toLowerCase()) + ); + + setFilteredRooms(filtered.length > 0 ? filtered : []); + }; + + return { + isLoading, + fileteredRooms, + handleSubmit, + }; +}; diff --git a/app/(protected)/dashboard/room/[id]/page.tsx b/app/(protected)/dashboard/room/[id]/page.tsx index 9293c2f..49409e7 100644 --- a/app/(protected)/dashboard/room/[id]/page.tsx +++ b/app/(protected)/dashboard/room/[id]/page.tsx @@ -5,6 +5,7 @@ import LoadingEmoji from '@/app/_components/LoadingEmoji'; import { use } from 'react'; import { getRoomById } from '../../_apis/rooms'; import { useRoomMessages } from '../hooks/useRoomMessages'; +import { toast } from 'react-toastify'; interface RouterProps { params: Promise<{ @@ -23,11 +24,28 @@ export default function RoomPage({ params }: RouterProps) { if (loading || roomLoading) return ; + const handleCopyUrl = () => { + const url = `${window.location.origin}/dashboard/room/${id}`; + navigator.clipboard + .writeText(url) + .then(() => { + toast.success('URL copiada al portapapeles'); + }) + .catch(() => { + toast.error('Error al copiar la URL'); + }); + }; + return (
-
-

{room?.name}

-

{room?.isPrivate ? 'Privada' : 'Pública'}

+
+
+

{room?.name}

+

{room?.isPrivate ? 'Privada' : 'Pública'}

+
+
+ +
{room && }
diff --git a/app/_components/AsideDashboard.tsx b/app/_components/AsideDashboard.tsx index dbb8879..59108ea 100644 --- a/app/_components/AsideDashboard.tsx +++ b/app/_components/AsideDashboard.tsx @@ -22,7 +22,15 @@ export default function AsideDashboard() { {!isMobileLg && (
-

Stacks

+

Equipo orgulloso

-

Info

+

En las salas puedes

    -
  • Información
  • -
  • Salas
  • +
  • Buscar
  • +
  • Crear
  • - Únete + Unirse
diff --git a/app/_components/Header.tsx b/app/_components/Header.tsx index 908b98c..4b3891c 100644 --- a/app/_components/Header.tsx +++ b/app/_components/Header.tsx @@ -1,10 +1,8 @@ 'use client'; import Image from 'next/image'; import Link from 'next/link'; -import { useState } from 'react'; export default function Header() { - const [opened, setOpened] = useState(false); return (
{/* Mobile */} @@ -17,62 +15,15 @@ export default function Header() { Parchemos - Invitado -
-
-
    -
  • - Información -
  • -
  • - Salas -
  • -
  • - Contacto -
  • -
-
{/* Desktop */}
- + ParChat Logo -
-
    -
  • - - Información - -
  • -
  • - - Salas - -
  • -
  • - - Contacto - -
  • -
-
cX#JFINaT(xVu9sR@|*ckGtXy1&X^{ad-EBfA2SVGm~UC zGucUYc4zZsHx{5KkAX^z3IhX!p{O7O{HLq_u>&&VKZy+UrRJYPaaGWBhk-%E`;TE^ zvU3Ul8DZUl@=`FhhLEaOT ziDw27+7ZYu{7TQ_fB?2T0!QXz_h2@+gg}aG6s-UX`Ov)+q}y5d4_!AMDdpxbJt<^P zQx3fZX~zU7@MYi;#8a7i%vP>Mu&wG2q<*h*uad;3+?bWs6;yL}So@FO7OHgWj6r5; z17Hcpewa#9gVy`|F|hZI(d6o1!G*a`l~>P-A7lkSv0Y<_4I*EE0YuO&DyB^arG^;E z(h|ul4c8Q?Wu`p4EmimCVcW#?k8Odr)%yqu%aXD6aa*uj(e6(VJA=0eYK5QHfNmP~ zAFP%HeqT?qkh0Ct6oQ)yDB470Sge0ux1)^&d7s_R6h!Xd*rUl3`;`va!>}rP*E+R7 zt?|}OT#%Y*>Dw2Hu%~k6y7ZN&5n~^_pvue0N=?<580R`|-*>CkjSG4`cb;rxHlQbuhZaESu+O7R3Qb#GWnKf#K}Q`-YU^Jh(yW6)R@$V zi=6B(&}m*QvEa9NMdc-qX-ioyjSm#z4-abv0W`Rq#nZS@1YT|z6}qTJ$C7OK*$1-9 zE`QhFsEIzh)1|fOf~Vb8L!PR|iRl<1A)~rBT>~j*^y#L7*P_kD*mkI3bt^d}l3RCR zit;BRi7}puitE?GA|n$am8O6$`?r@}Ztn_61OWgw9OriOX<#NlXlpY6L%fm{F6GN# z{zBv`22~%%z3QntA6&d}<`dntA9mxb0dBYPtioVRV;H;j^vVcTJqV=oJ#WJ)uj|ob zV%`@mo<@rZTYb>d%^Q1!D9iNw^=pEn$}Eai6$AfY)&tAp{w~`-`ZK4F(NIcI-#2V z+91}S+y+zr!E0^a%1v+t5Kxcitzvl=@AidQ_vplq4 z{|#PsP4@YI@jPFwEkur1SL^FhFUeqW+kpN>HIXcGR8SE6*)bYbYWIgxZG4DTW*}*_ zKs5C?MTSPmG(gK@oL@RG~6a z_aR=K+=T}CO+wC&JI*a}A3UqOF`-;!I+3D0TwnQ>#G+m za5?YvACY@*D8qw9gayD>TV?XwkDA>|${})+ve5`Pd2WlpY@;rGWIn z0}SIK#13?2Ujz;(JJ;Wk&cvOb(r7hL6ud@>^HO7#mKVs@yw3M?+TN?Yyh4$aH~=F* zHj7f^rd@vwKHe-d#{*C)4h>Qh@Ml%y+j02~(va0HsfAxEu5eJBE)+`%$d-7-IeKQd zlWhwu{`T3-8|7okoLb2UlesW}aMvH8krP4t<#yc1ST`t>`na4^Jg>VLvi!7WI90IM z2z`4}I?BqSNAsDZ3Mey!1^H{w*NoiPvE~8OS+NSg4P}-FlQOfkAYgZ66XZw3b@8_m z@(dQucIZI$eM~>^`;(m~volk+vG*k7pD2z>#pu1vBNa;pZ4IU>=)t;br%Oc`@wXdG zD{{B(sHbz74%haGVukzYl0liJ%&*IH2g?tCg4tj5fu2b%E{xPCTMnP*CkzY&)PuWz zq@E!hI)QO=z$ro8Hyt%53m)W3ur$1SRs`MBBPt)2`LtdIjHM*U6njbLoZ{k8`5sOS zyj;89F0QT#3Z~ssjjOR&pC*fK^oiHjE(mcM6|@WjW~F4PB9+22Yz6o76M!&^s@ih3 zs^_1ZApyl>Kim~{`Ukuy>y6}dGP=%tW+upvE5&gZ-OpMpo>u2e;7MU`;akHrJd)Ba zDs35fAbL=i_GeQEN~JF}ffe23pT8cDe*7v&LZM+XXKId%j_`YCdF9vNVdcgmJOtT( zfvbc2w?;BYFpgxe+Lz?*2d~*tJzu`)J{}Crra~II=_ZO`@J*fQ+zcvOB5P$mU|gD` zqAy9iI;UVo=+B5dw3LHauWlGJVDHT+W@n;O#Kh z*{UKooA6&|3pfij(DcCpKSr~>Co}i-_M!vCjQvqog(Ifhs+dx`<60+HO^CZncH^&g zmNH(D>;&%4b-eA=LcC59j~XM5C%nV;-aODju6)(pI$e;cw@rV}_W8t^$02A}E^UA@ zvXqW_&<5Y4#dzTfj>g_zcCfV72sX{6r{VwH`Sm#Kf$3#9+EI4d%_OKLh2$!gJ?rGpCbD-=kx+|1$)R<%r%}ljWq8K512=jDbhvWt~Xyv z!Ffn2hP;Gwv=qmVWX@a=FM74cd9UoVgk3I|g8fW7YYr3-{*!RxPta2FICHfo1-~$S zi;y8B|LmidJTTSsX?FB0tUAZQxDr*qvRg1uJ3*RF@r1aYQQWjZ*|%9sQ442KNfkTx zB|K>GV#GY{K<$VR^NZECJZn?oe@nruH!}Q^2QMmCe5?ct)c&b|JNS&uf!Q=KNH_B_ zI~lc4wv$QW3Cr!cSLcatjA;zxeOguBEX3AA1s5mJaO`z!KAJsf2f^QHv&P{r&-(^! z!#G%tlWRW)*g;h^rT!?O^=+)nf9NxsTBh=Ltlac7RIPGo1Fg+{#|(BU);!pQaX%v<;b3eJXNF$NBqrCs@V-?Np@0~~W zmC`y)C-r1EHNTviO7uohteLhQxb1{ZZ&qS{O1{Wa{m|u)3#kzg*%Zmip>4nY)jAcIV@=l}E){Wj%kU`vxARjQJk;!T3TK2RcuO)-67w(s$LGW!8;2iQL;|%>jd{ia@?$~XQ>o{y z&3}*SG-$$(EJ!{l#(R9kSVP2ZhLm3@r|l@jDzdS)+ua#J9I0rydLo4uF{cg;ak-KS zsy#a~XH8HD4M_?V4Y%Fg`b)}&9!SC99=DaNFfZT|bs=#7& zPmQleV}Z8Iv(ub9@Uw~`O|?rPU$-eGbq&y1|I%ZYiqh5rwgc|xFL~ev47iIlm2AMT zq#D@xfALZ35ec3d`c8rJ23rNWVj|)WB9#c6pjZST{01zXd$7}-{o*`E&8~OAwRge$ zQ3Xl%xZ#)152!d3xVWcwnpHtoYPEmdv}gf}tDucRqrjCHVa=jzsxm*D?`iMu`|U2q zx-vACCQ=Ibc_kR{fh0#$NO$Qd*D-t=#~DbN1zm1|*QXoprdz>5PLHFa6r1gCn+&|? zkFFCtrv|6|U9Tq_=aBCoch&QZq-hvgST3-s`=}8?yJ<7M}422ZvV(|DO$tcEq-x-F-0X-*m6-d7AxaZ*KhONz-n?@^$c>B&H8EY$4j^`sO>ViW8$&38I$99b2vpU z^4o)?4}5e5$A0#_HS^|~sE%KVFIkxk;%jFgZuR~9vdcVLREU4({C%m6LuOm7d#~wB z+lxp#av0(_^N7y_Te`@HvL3}SN*->0Axs*0DcQw+{+$wCfoIeS z%4zY5CRrE+K0@Nj-19na3~;Tu%^b1{$wtD>8C^!WqSc{UQ?tjM=*7~{{Rb0=3Mvgu zKWm@l(}?A8&|`qAk9O>^8plAZvX4<|9>Eq*$0lSO0Rw0gHLqL09&NaoHQGVHL*Vpf zQ|VB7R(TR=XcB=-mRn_?4K^H}{g0JX)k?$1euktOwxxq|E{eKNjxN~)?gq_x< zVsY)8|8S_fIwH?`2``GG&@F#!KqF;EctQj{G%ZoZ7%bG46bM-rm#-o?Gqz2Fi*a9) z61ns4uSOi+IL~w4r5ryT#hg`2KB#zb5;%4%7!gKzbp6m4qBCt53T&rST1y^ci8+6H z6bF1>wpNoZ<|-{EF8uI(AwN&X*b($NVKDJt;ZO{BGoN3L&t%vp`#(#EjI_J~{EJ|+@IG<;hXEjQ-c zqA551ZP1vRno#RIg$aP|1tX@FCH>zFK(sl!u;RWehdWXKc}SIw(bbS}om;U&DL5x& zeN*-}04NIGxkdI^YXU27s&>kYYFFse6O)5VSWf`b(v-=L0q34)<474Sepc5LvmkSz z-}FClM)0F?*yVj|>(+l#-%!goaA)RT$E;2md(RGi$`X$H)g1rnkelGXFJ>fmZ=(BJ zIS85BPNH;0%$Gz5KQn(Zao#l}FnG#~Hc)Xxnin5vY{MJ2g-<0c)AjaX)70_OTR@fp zXSkV0gvLOk7M2#keaA3aknE3*%eUMc&5}PqAm@0#e%^LCo?3F*!6D40z;T% z3w|Aqz5V9(*d_nI4$4;0U~-$Ul*&V92f@VC$DL{w8d(qQTspn$mThZnVm)*ARKIyB z1%em%A;#>5MDlvuAY+%*8oLjz*2;Z71l)_Z@)`zk&-%-LJWEFq-YZ~#1ZWIvLZ3`vKlj> zsE|7bJd~Nb6zJ{GEz+RrKS!QET{t^oV#K9DW4HDEWXu@hb#&6x*WuYCpt}ErI#PS+ z`=Fa4;wQ5D$ZxIRv!uT@aBI#OjY=H57_BdGXGBQkt?&8vSLm1 zIa9m3t>p{F9+eM}AmobZikaf7c+$lmUZSMZzuW_|$k60c#x3%ck)Dv&ZNkrEWB|s# z#%dZG$u^}scH+x#+(|3f406)qCPDI;%GmQ}L%$rUL>~J~6;to9yjeP#RQ=ml(E{Pu zCwxNPv<21Y^mJ@3TgmaW%w&yF=mHS3WCM)JO>}j2K>&@(d|Sls+WA^xBg_Tpl{C*c z8I<&eH1(0Ou^Q#Hd3a$=K{S*U?NKu$xzI9m5RK5Fjg5q_#SOxx+%|#X#<;%k&3ESIEqiB0<&b-5ZgN!U(ba|v#rkB+@h7TvO$Sn<|MI}Nrs=S{41 zS(!tTfz3iX`vY1!ui?emL?VQFOy5x8h%x*2ShhC9;{w@q+?D-D^spx|OKdblE6>Y= zVZT~9cw)2$!IZKi8<0Bu6@0agFg;&dn-A<-*rs(A9}y=-|FD01d%G(gdN>ns4R8)R zb1!BHB2S#bexH&Xz9Ki^V)?y)7wCHOr~aJ~Q^V@#@^VWI|E2E{R1YyEtpgD=5|4*n zj5=Qhj^cU8ky03W&M6caNY@(b#d9xW1GN%?iHz@{PfG7u)aZ$B;J5Y4R@6@R%g2-8 zQubYXTv=XTzC!fB8$zt&{k-<|eYTSkpK9yCqaF9te4Gw$a>9xs{vZh_QkI%@(WJT% zv2d-n4y7W(-IOTX1XHuTj#GGPQ4L1T`&Ts)9|l)S1%Lh&dO)nYI5p5+b0M8H`aA}r z4%JKoshOXO!0O^jVc?;RNS{T&sJ&}g$z^KR){jijdR3oZp&KB^PT>ju$ot;6UhL$k zt)=zwBKaeV&$70;^GFz=VgLa(xF=(5JWA>Excr2 zn?=eD_jsHmF|aITAk-DFCJ8>DIzI@WJIL-gr%Xg53C8p9^fAA@1p>CVwIvfA0*;ay z+P#!{I7!NIZzZjtE#Zp(NV5Qft)z#{FmO*hNEI0Lo9fQ$?cB>>35mJ{1pN*UnDR5q z>>Vk40Dg8e$>qYE56z$Mtaf1YmP7R%qH01gP)kHQP$^|qHe^&P4=E*1UA;6lHH|$z z85y;hy!zt0A5DMWM0H&6(tScvZkhgCqyPXnI^;Tw+B&&#i6<%LOhzegeVA}*B zkWWZMIW{hh>{|M1QRk9jI|~=R6GhuH-Q<5O0-f|@ry5G+zjl7`XyejWM|dSryYTM0 z4*r>sc3k<@0RgW9Io!4+R#EvuH@DyZ&00fmo!%Ck+jJ=c?%Qaj&-th4uu0@(G(Q2l zM{x(s<=njSp+~Dn)dPH3=9NhpqYsbfG=@7ADuE8QF2*Q>UE1nQ4O3S#mv?t}+IOCJ zyx~kggt2Uk2&N=4*pLmL`AF_#Yo7}v=q1rm7#p|1IEXrTiQ z;=QfWO*D-N4)KftaQl!1_Az;FS zpnBspm>_8;!PmZh9{o59L6WIK91iwUOwA5QcDZ*G9`3xWqMGG>ZBtEpsF%}#%eHYM z9B76_P=%*Io|hscTts(#;|u=@gPx3Ti;``ja6)P@BbcS2@MC~zBc&q@rb1Qf*O=~qXzsEeeg{T=x*g44J%<_y; zQxjXV^Pq=#5Q1iZe|c!Q+SW^y1qPZqJLfI7hej*_my!;dVe;7j9iVIc@R8UiK^MZM zczFF7m*pnJ#swzwmp0DZ%nDTbyA{X~g*@p_D^YSXu&82%0nV?@=iQdn0(D&Y24oN# zTA&qq+D>Gte)N_6rJKW)qpw2pA4~I?a?DIRYy`pA+KaQ;eo?!^NvQ_(*Us)uR|LlXT zi2WT(I842_ww6w{_AH8%p^82z^bN?V&;1<;8d!QFY&p7Hc%FN`zMh1qXInyOS@uM@aGBVf+}_S|_=YXTiNp%7&wIZ9ge0ZjXO4Sx19AmmWe{ zU7dX4QLy=Zxab`*aBc&}O4CX2I=Ox-woc|~Mt6{Ff%fT%=6ijShCoub&fLZ4z+GmA zml75}D;olUri$@>PyYo-trWiIRpt^OHTSl!>f!HG)>CD@cQ2K5q|mqRAcI&Z`ezM* z{zZudMWH%Ux{>wx7Xi|ik^o=W*;vwp>Oa$tOQS~TZnKVAiFwSqI|(oXy>cP(FW4u?=%VdPs+j2z^cO{2nP>|w0w z5Gkza7Ge5wx~-%}CQxZi7c4xfdMjgNdGUhrV?%C(1fF#$N!xrdW%XM0m_gEC+}ti< z(spW)ix$~*&0XrdVg|@@Gfe~zMglc1PhR5glvPg!i`J$sv z{afRdS8{*<{kB#kH)cL%%Gjz*ABbSrs@s9fg>@!>D7wN3dI#c{ui-b*a%4VNOIb&qN+*GRZu(tbULD8EZBo!Ss4X@*-PA zp3qI;Da!KbmwX{6Ws}|x*`{Jv7GO3rMfEGTmK!rzzAluij*=scy@d}sx;yX4>xd7@ zg!GlooXLDQjGx)Qy~z>KY~*9%{+{#U+QRh#h8RhLl6(LAu66h_Wn%zito=e^ z`2@M(4r*mmG&4SB00YuvW94M&N=K;G+mqR=~u+PMA_J>(Pf6H61OfV?b+ z8rG1=SG9xUo6!xTTA(f0aZ?{*8?IIGYL7D;W)NP;rcF z!Mwc)rC-oi!hf@zG_>iEIUEQqPdVOuH3;(Gc(oZH*}GTUIomq8h%cX}(tN2Kq5(gv zYRD7bq7X7MaRG#iJg$AR0~5NhpmlXFsEcOh#hheuxECMD$d2!cpa_*hv0*Uo_Jas@O3Ot%%#KexY~EGE;sXKw`TP4m9$3-6 zpAnc$1X*&|mZp!dT4~$xsk(;$fVD5fOd}82VbI{ONt$~d8`G}C9Ork7F+O!%M2sV^ zXWMlCrBMV;ugteCD>Q?9hel0fRV zHQp$e=100amyuaxBgp&dAEi=sTImVV-?*oPL0=PB?46y(@X+st<&>9)?b7eb*F7JM z`Mg-@5($YBfzc%vF3whG2&baM(ENJu=I^1yU<6>lMSsMH@|@fQWbH(-rBHKEcMn*D zQm7f*(JEzdJJ9KAmT^TrO3Smwu*GylY^2-0ph1r>v~yzAy}W13?Czki4J%q=e-0zr z`W*gy=)T!IA~AIW(eZ8)6V+Y}iLxA(lDUDbRex)4Zf>8TtY9>*(#oGX>GrqUQDDy}d;-HBkE>=F{7Y+S3u$RjLwzFaomu>dJ3F52p^@(n@7xar z0o-7py1+ov4Nz6CsfL7l{;!~ch4S?{HB4I<|MRN2jVMeCRyRA1!-lw1L7v3{`-su@ z(R4(r7(G+SKXm0jsMPwUdO2~85Sfaa7{=JU@XVPHHDqbmd}|wm3auqqEoG^r8H zo&-&bjgI*9J3l`^W+!}Hyk&N<1HLSFDFajUJsQapVRk>QT7Ntx;nDigSLrbH) z)@xTDmvtndb9+z zIg`jRe69X%D{U)F5%|m36h-cZzc7DvIccx>v1M2oHMP3k03vs(B5=ob;S%F!;NU~s ziqgsXzmhp7w#e}r@%AYXyX(F4pZ&vt6tOpLBJR9@373+Eq$I!B;;^^=vDIN90etf% za~U75(=`T!%<>vw%;*W#-z2`Qz9fc9NEBc)e}q6FUyBh;-4I24^k9Q2#-XEWR#y%u zn~U2wqoLy*bd)MC!{qE8nB*N2VfB`~}$=Ez0GyiFYf{w8A#cRxoTFSg^j08T{Wr85l)bHJMr|)3E;mn9Pb! literal 0 HcmV?d00001