From c33f99044c6633308b9b59c30e67641969b63e80 Mon Sep 17 00:00:00 2001 From: jeonghwanJay Date: Fri, 9 May 2025 01:40:51 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EB=A1=9C=EA=B7=B8=EC=9D=B8,=20=ED=9A=8C?= =?UTF-8?q?=EC=9B=90=EA=B0=80=EC=9E=85=20=ED=8E=98=EC=9D=B4=EC=A7=80=20UI?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/landing/landing-img.webp | Bin 0 -> 26764 bytes src/assets/landing/logo-white.svg | 10 + src/components/TextField.tsx | 2 +- src/index.css | 8 + src/layouts/AuthLayout.tsx | 6 +- src/pages/AuthPage/SigninPage.tsx | 132 +++++++----- src/pages/AuthPage/SignupPage.tsx | 318 +++++++++++++++------------- 7 files changed, 267 insertions(+), 209 deletions(-) create mode 100644 src/assets/landing/landing-img.webp create mode 100644 src/assets/landing/logo-white.svg diff --git a/src/assets/landing/landing-img.webp b/src/assets/landing/landing-img.webp new file mode 100644 index 0000000000000000000000000000000000000000..c78c3d09ecf17c5187044c4f26687d1315970df4 GIT binary patch literal 26764 zcmY(qWmH_jx-Hs`2PbJ-dc~z8qPwwo01KF6Zx}mkULVJ}Ug4k4(cI z6oD~_gc$jjS3|O9RbLxEu@dJz?(I9Hp8fE}9D? zHv*=qXc@okuc69JO#TA&yVq~VdukA(3&Acbk?yIOr!_`Op${(@lt?|6PiZ55SjjXjZVw%uP@;yLWJ7VP)vZ@ zeT*X@u;_kdv=Zw!CPO1uw$Ea~;xwPwAq_eH0kLAH|8YPs#n~`Xf|eXHZb$T^pbL`m zIOIL%DSrXP#Jl(J?Wc9Y4B*u=UJ-Hrby_I=>2Rfl^sEAQDwlCzK)F2cJTH2L5u1EM zHKpSigDiY8xu#})8H>JJ&;Zbg`(pvS)kk@x3qe7tPn(#iU0Zh2(o|7+6|-EqXFJv4 z%BbTvacSITi&-vX=!yooVsT_zQkom?IE)74;V!~6nX&m0IVy%SN}t10?3yz;U#)8d z_6GJS5;S?D+PmRTv!zEBsgwmop~xxR7}`$02;~cTqLd9NLf^RHU018?BIcTt5dVEc zAX9Q8nz`}4r&k+!Lvd_RhbSaCKEH-Fl!I7**CYUacNh_@ z9W;Kn5D=yyBF@$p16`EqNe8EO!{Bnf>pDb9AJI60VrcEUk>bb^mxUK$rh zOQpe(AuFPb5%IjucWBu32WR&FbrY`UJV9`ii9pY;04v^YG=wR)!<1+7C9Ur(eDvFK z=8*MS_T*zeC2Yw<^6wtFExaEK_=19}nXP+^=RV}=?G_6lEG#`AXqJvYbQnlI>Y;ea*+u{{AP@cR9Lf6g%3KdOscs0!)$>xNDr4U0Oy7f z+}{wlw@CTm-{>J^1aQ;Fp@?OVx?pDiCIaVl-Jo}%$c8b234I^vb!l-*g$HkFjPQ?; zYMcsWK&~GTVfo+@C#RnMh!5xaN-8Yu?rQz1dyN|5=AdLy*iBo75Zm7F(w8&nxv@`5 z?3}IQPgnr<-^WLm0<^05AMw3C(ACA+kY&gcu2k-et12k(IUrModR(T%TSm@2C9O&V zM~An$N{dL&ENfFT;qm&8tc*2sC`V?NzrfGc7$s`vI3M0DDuK5Ez6O^nM+%u1pK323 zey;Jsaaa=BAFO6ucoX-xm$LT@`^QQGTvBahF%kwMZJ<68>2i##dlYM;PCQkSAI>9ckerwR$v=W^Ym zw?!Z+m3kmXe8I-yaoo7MNZr58Rb67ap%gG}Z-t9Nz#8d&MfOQJl=n<-HLeyc9q5yY z>A#((+5;6)9C0KbJluM6=YQo(^lfycv#Ek!TPx8ReAoDK0G z!4M~q{p7qKy^*}XWXe*N8zMcv5DXZr@F#I8Nwd+}>Nj?L16SzGH}a3GyRuG*1Tttp zIM$a87P7DSBId&hFAd1Em;ku}*{5{L%lBp;5GT~ss9v|ZL16MyQA&oO>gc9tbq;ou zpbN}OD-+WKM<&krLLt_&#tgtx#nYiw$A>dQmp6tcyomOV#uZ!&%FvNQP<5K2wh~Pv zweEwn&ACRFDE_|yeNF2?tL^I}RJJ%gJZ`up;&W@|M+fBPmfrgWgjEVyzojGQ z)A^1Z7h@^ zx16A->ioUO4gZ`;UezQv|7TbcX3Hh3NvjbXhte$MhsLIrhYY-P$5BQIV!oXrXElIZ zgr?H5YbS$ezosY!OV3fni`}VjYxMPHzz!SZb%T^5j=ZjyTluf7zn-qwI4RbB|4hz~ zY<7Dv#y7Vo4iA-)2Mj^Sw^yb8o}!eAb>Xa0gF{|I!wpw0Jv7Oz>~GG95nxdq_mt^3V$ZoY zqZf|mmTeA|z^*c2{D@`yhaq0XH!@pSWQ#Fm9!Jqbm8)lannaV@myvA#{44oI0NXBm zVRd=4*!;7w6CzvmQVbQ0`6xbIYk7eX45PLFC{DAskE?e9ijd-%7Kl+?S*=(V7IcWz zcu>!FJ7dIF9+9n-xg3KK6UWA?y+%j|M0`^RcNEc*dwvG8Ap}nbXm$kGdyYi(-xeC| zfe0Un+I%Zq;vyK89!MeVn{XLqo4?_}EtbRvz_0~kX;8H#xsg<89hY;&KEg!HBrZ7Z zcoFbzS+Do%_#2Cg?@ag^z+^Iui@3GAr&Abr{P!qm|DogRC(f<^5O5ys05l@|U2Y+n zg8#CEIi5&m5oUAUzo^c~Stv&`K%>Ri2M-dxkO%Y+>wS+D)T21^JpZNzsr@4XI-|po zSIK*qjZ2uT6ML0WGk6+_zLVbaRAQc!0k5mJ~tG>u>d!L?WmG&Yf{K+r# zJKyYD_1e|*ys#(M>!BWfu;d^HzhM!m;5Y!cu$sgz(yE-1oeHInQ1p-2UQN}lkdeRN zP?jDo*DP|F@3oYu|FJc??9X92z7Z3ypLkxgq!Mub1W+n#>HW|Q3$MpWS}h2XQ;{i* zN)mmg(B=vFTcCyYtjmn8)S`pn;WrMUl_tameCDv{Fm}5J@Jr$?VEGcSb|+O1P147& zyc&=WB7l?ZJ%A} zbHbf9n(ax+Pm8Ya%%j`6cU(4wqSq)VDm2u)bytx!XBwU-#f~dK;X(**@rXw5VX8R@ z9ZCm?GQfzKyRE?S&C>Gtr2786w+oZ9eA(v2C`u@~VCz>%6^FV}9eSJorPwpGQR_SM`vHty+_WMN*b^iy~ z{ihar#(L~quhw_iUmbv=S$9%`ucEI+P3(ICyUZ)TW=m)_d*DrPj*SKCk4pJ($I2cg>e9;V^U<7Y3G zr{{j$CDy_QFYtN+`~q^c@uJQJaUu1dUuf6Hwbv>5c zB@ZpJ9e|l5?&A{ke{OC8gO@P{M*D?gBgzlRechL#cSGjaL1J4VVeH&1^iG=afW2k40)YQUe9%E4Cs^UiPeZ(BE}iz_u+d=dyFZRwD-)vF zyk2j9!$du{8zIa}<~m^Q(=GzyL^OibpGKv?>V-C@?TSqDe_|UPBr=j~oj@_2PDEc( zYU0^5a-a$rjS}!Mr37LNXN#Iz3SRHy-0rCOw8}Zqo$UWm189Yf^)GPX$yfUW*iLTl ztp&X7#)0^Z#BkajjMtzV@S=t}d1^?Ef|iH?SS2C0w@!+EzhsNhI~*&3)O)i762k{k zEg>}WXgNUQ9r91?-g?LY6)g}cnUMx;H&1zh8y6ZH1mlpJK4OYR`V7PTGJqwxM%hKY zaZeq-6qaDOu*Rhu@6mzDu@cLGFB=)a3=(iq6ifk2s!*>9w%;S z{n?W)zU1c~br_YQ#VzjB((~56xps^UGjT{1%tJu~sK%PPN7r{>LBCh%G~03)=_ZkK zrG*i>MCYmW0NqIc`gPGG=zpgn!46I4^Je_pWrT>qCB%!squLfoz^5`4g|{gH!D235 z<)}V>`gpZr6x>P7+A1PA$5IW#72N{)5uS!z$XO4N4$3kyPs`=nmzOp%^mn7f2MKyc z!7=W#{B>Cyft&UJWK8nTJ`UWfj}z1E+esGc^Ar(fE2*J11!oMau8J*pC=wQ19e{N1 zbi%M_QQP0-Kl=mjJeM~E2O;fkOXT^SGuHqqid=vg z!gs_n8dCN0$xuTN_TWxa$*rrNBVo$~C7XmkOQG#H;4*1b>=y<{;#6e-^0wH|u-sBDw+ ze8y(ZG!kL|LDFr(9Bb7v1{XnIE zjy+d>m>}1+tV^t*3oNaeFJx_M$6WcC_f?2oG|lsT08Qb|gqM~jB-ZV1A)Dx+) z2go7-hKB!xR{F~*io6rh)y>3=~Ln|n>!Un}w13w|kB&UMfS znxbY=S?y>Eg11Q@FyOq7f|HWQJ~zjd;MhHX1h`QLN5FX&5I;T;PG&!hB1bSLG8u^L zpc0nM^ozz7_pV*)1m||&MJ9~xe~%+9wOtkhtfE`V0epMt9-nliyK39}u_DTAoYw(~ zi4sK&fzR!k6ZC(FYc@hCM9+)OuS&bhe@B#0uY{aTC`BdoICh#L7NUHdoJiWRI(?5n;+6h_!fR127N+qhD>e z*w6hh|HN*BVN}~jYZJ}hd2~Kr$}io~zB#na6W>C`FXgpbgX%$euo$LE z`@UdDi~2kBtn?j#6si}$>$m_vLY?&7GOZ#ueG|4vCE4V`(*}&83jMs&>o-TbVBT;I zPn_VlQgjKY<-a2Yif^cvrHx-N%CB|(pj=ynZTDKv)aw|iGLjq0djB!=;E)yae2&Fr zHBg*a%4PI3Nr7yYmyB=FG9t0T07x0yOVH@J2{w0IvbK7R*2Axy`am%Bb)aE{E(zI< zf%>BOT;-*_2gdxXk}BLiMjGwt*R&->p2x7&pybwO;LzXtHEHT3pCwQXOP9$@cq%aP^!2Zc<>6@k~%5;J_5tdWgu`-f-}FHq61wP+{in_R{3= zy3n+MHpj}Sc-Zi6#fyDzF@K5@=Vog{OreySBY zkvcH&GUnec)wm%)X%FCeJS1p6jK8PJ#C^-gil2}WU3>iyysJlNl&C%+ix+fj+EI_b1hIu$HBk!WQmiem2UU{*A&%qyhWA1Equi4FMWeVTf zbNROVj0-+E2xt$g-;Zb0eVEp0GH-Yr{OYNvhLnD!mGY(&yX!X;pe#pwe};XZ64z2A zw;Qw-uAI}6~&J$678`2|zd^N%!I7@qZ2QB%5K zpP}8Hy)6;m0e?~160wfx^^bq$nKvwq;$F1Y!V!}nDRi%&zk;Itez<<+@cP?qAyRh? z+UFKsA8Mf&d12LplrM$gp1tumaIdVJh4t<+i(QWdkEX3{)#I2L4@8g9Bq6KA&O_-4 zAG@D2Pu=kN22I)b&fEc19Y=*urNNz8~vld?-JQ54gcJrrsy!uWUgnijkfpn;MJP;6O ztZXOpCxyo@kx8;>`v6bT~@@u%`Vjgh^_!4?WRzJX4HXx5okNYB)(2NMiR zmv0xbSnR$uEKLk>3XlF-G~?}C>qj?+mN{MRJ;2OPp3jjUzAAVM^13j1+@as1Ts_;7 z=7rR+exPz>%{dk4S<`PLBICt`EG#vBG}?TolGbkXGTrhexIpx6yBx~yma5y?svx$C zvLi%h`57P^#5|1k^Id!eIQO#XEV-+5Brf<#<4H0;Qw@bP?dMS!&&2i;>mxq+vCU-z z&~F-wvCc}q7RQ`=%7H_Mui5+Jh;5;a?qyBYE1I)0jQlO$And!#9!vI`w4aUak9b(O z?$bmpCZ(4@?zqKO#=3IC-~Mh>a{%z?XHM>k-WJ`c(DjUGwg$-scmMSKXT#&(BenX@ z#ifX+?$r|{6+B)>^!ukh6ZU#-pYiveS-1~}fkfk*m;D%y|2lhoM23)rs8BwudH7VK zQg#=17I#d8PasQJ;X)iSGR28Xc)FmrTF=`Gp(Gwl60QYLv%imS@hhSI6Z1yzVLa!>z}j0 z-CRZK|bigwNWCPy?AA!<0&iXs=`Jv;H|oAge~HYI&l^sul>o6xiqn>tE~^p%xEx- zFW=#q&p(@m29AgQ8tYpn{$TDheZJ$Q$dF5ZPn9uYrf|Pt>^oXm{uq?9 zhL}upatFl_pPwioHa&Zq?R5m3n%9}ClM2}*^k!6))B7wK++OUS(|P7kBZSmXd&iXC zHdV|4sJw<^Vy=dH)EzxuN~O>~*(>sRypWRNanVd&wiaMNraWCmx3q$Os>rlO0-e%p|8Q$S<_XPH@VqHV5 zrX4{4#uM@Lqhipe9Hc_q2fU^Ou9x!pIk#F(;yLQOe(A*lYi~mMEY2@Fd*_t@6u#l3 zIOI&DMdfreV;D~bCsUYRzX_=28qkxyM;3b(UP$hG`Qvu+&`RR^kV7%($0HiCy57K! z;kaxzEH3?ON`bg8WrY_{56||YBWWVRWyfjfuyUxzD4cCcD2-LJYx9t+l!{DM`p;wd z5W`=8WC9#4dNc^R2US{dasQqv!eZPL#!mG<&a8-NF_7{I=RdsGR1|J^?2!O|@!RkK zG_zB4Pe_e8F8I(O(WmG?gT60O)X+N(Z&^bKl=+YdAOC#So`j&4;x6H!|@(@G~eJwYu%-_2ePEyQAU)!@Z8mjmn5 zUXOh|*HHl1J)7q2{ea4s}Z$-M40Hh}7d8+D7~2`NM0~2BgZ0Cj^u&lz!iBhc zk5&g^A$x+}6SQxmrty|MA75}aAF#lar1HN3R2gFg;=?WX5o$9vgd32P7dfnP!|b2P z@n}plFXmeH+HPmQAw6NZ_OBtOBa(C&jA1`Q5eW~o45Ws(A!*ce$-;Zd+|9?Xp(8qg zS7YNCU9zofx{%(u-dE0U39g4UF2JvtUzx+Mxu#AvhkvT{Z=g6D$z8`Gw4Qo8fS2r; zgrPGBP6;D!Bo@+BPLQCDQ`pJX5s$jMCiSSrWWeIU+7TPX?QJQ8d2wAQ{9*}3*Z=1h zw#H_A-=qg}bG|9J(~YyIzILD@mV-E+UQR3APEBp@!S8{9h-SYm&MLkd7Tl_iPL_*S z0t#*m0-c!Cr)!SsM5*FAOQ~lSzX#%fD9q3+A2VHx)`C%3P%Fs(M{mgXCEaM-2?uyIa!V5(NfjWC zVhc*ObT7PcYl%d6U_$HNB2(b;@QuWIilVCRaXz6r=@2naI*8Uyms9!#QibV-% zBV0T@kukB^9fb800)V68#qUGqNqCemxM1zKGS<*)vmGbcHp;(?S0@JJRUhXGm8p_f z$nbNXO-JnJ?_{`i55AR?7gx@Hqi~aeDREH0yZ$l5SHNu=^{DCN0c?R3lb*ABIaD*7 zV{M@VX`ojl=?aMe)=mu{>hX)dAgZO!aqbC*1>((|zq!k{IZVHP=nW}-rQIzJz|6S> zmXfw}33N`bYAIfD;h$ZkRU+0N6@iT_`=c;*w3faP4gN#Jh7uLjc0;RmQ9bV8P$BjE zVkC&F%C}UR13fYi6}H9(hFftGTZ5xgfWc)|O)=56G}}A!bBY&>z}Fh25qflcj{#c1 ziM9!l?QkDKr?SmjxZh}?wr9H@6*bzY+aACr9~}b^Ij^LQuA@q&cv(p9ZNJv0LruC* zM-p3ZP5cVHI7>Bem>xk1&_K8oJ(v0DV!96p2y0+qf)M&7PG*cC?ywRs8$Ge2=6xvO zg>&SCM}r(#(vF($MhS%U?9x~A>Zjy7whu5V0#qTz04|~BI9oC(UB8h@s2kx@q{Q){ zNK%5v=6a~@oqrWDuSNjwSuMOdpRMC)-iYHxh*=!3;>;-cA}zN6X`Hj1;iQ`XV)uAz zt%5}-#y~{ozmk>MA4%-I0&|M6pQ2DIj~@crQBPY48*p}5IZvjA@`5Cu%ir_@FVb{O z{8pNpK$~yJbmD(2(4WibnhP)dTRezyp2|^90$P<}Bb!@zVPa@%8~N&Thu+yK8AM!Y zsiGdodbAYGblaY@;y}y6+FLK00jTFbO2#2QziK~;k}K@^on{@wl)}?C@-pEMy~7=u z5_@2hHul@2@}qBzKV<{MmSC^VezIZy7=#75_eJAUUS2(aWj&<^X~P|rJJzlr^=8198$F}(+^YQ^dYU1({W_}vbi z(s!QU6G|9U)xKGaqMi%JDSmw6M!HKQA%&TIOLL3^&G@=p(@_mWx4hkh4K1gy6r6U; zyXf8u54uXQ$guRAZrm9(yi~95Q8{vfBK6SK%J-2S*rT$hh*M2%b z`SKB}6pj5njp!^M3Fsz6dZjiztBoXXY3r2N|L2 zw17qEVI>jcJHrpF5mdFCt`4k>IB}TP^Elc|_a3p}vWry5VVvb07gZZZ(oKS4dbG-# zj=WU4NM4)2`IWU(d)_M6PF&&4sZ^P&i61j2j7zS~)jb62V7@fYt&nI9@kiuBR^2kpt zfi>$P=!|g3FQ>EWaBj#}jOuKdCp8^yF>-k=Er4+nA{3^|2~N^7E^l#pfWo$xDd)P**Y zMx>j@65jO)N6A&gFRcPYqB-_@p-0j0)q{k)XW#egyAo2>PTjla{XUV6Z3d+7Mq!); zG&7~x%2YNWxfOakqo1&niWjXz19afii}>D$y(%uLgRNU`S%|BE%u?U$d!Y@&WjAX! zlzQ;m(WElQ0jp=~?>`CN$oOE(L=leASJv=Vr^*d+<1;rRMHCE0F`kszuO-Tj36qz% zAaScE!<4%2=m3{_J+}9adZf3IA$Mt#-n30yPJ1s;H9RI(suf_wFo#6%VP+2^DiTo!mX&5 z(}7=phY9o54q=AzWtUE2tA=+-(#8Rs)*v?$o(-a0%Ft<;W8Y$V6#g}P*~MK1q`=Wp z*1p{VqNEo$H_S1NOTO3jLSqW{KtI;K^M!laL!)3>^q`baiZTAD1y)!Sb{SRer)iJE zQj3>j*z}#C0%?=CwJiE5o!4KqHezz9Xq+cC0txvU@ZDc+R7OCU+_hUm8+z z=;ckYHMN)Uy;U0@#YDbom(jyg}ChBFlWa5TF({UHI zekSF9u{pm#5hvM0PE^(2dJw~pY9GdWnj^}sd@PnW7QUVO1PZO{bZ+7nQ}C|~bbCFX zA&@d(i??e;D&z|o?1g5?ud0N&Usw(k4YEJNQbyO#SQWjlp3{kt4J1QIWu#Xiz>h-8 z!G=}O0RtQCzyK>(f^^~u>;Cb)y1`MGi7@C-Yc}-tg0}6;aDx$A>gbicU0Z4Sod<`o z;3B}A%!;C~JpM&x3c5V?J^Tg>9-PV0a-z`Jp*L$qoNbX0nN>g)cIo*r33Xh4{Z|Fc zD5Me0M;7FNjK9|DR~p4bq!QN7VbVJuc-c7b)|Zu)>Ff+0!0zxcoW0cUA=WG!Ern5z z_-)<3`_W1xm9Y0bbs7BQ8LZy+BJRPX3|dDX8o^(A=9uYtFJhQG(dnrG> zHTpllO*{n$n7@U;tu47MPv5I8^WM$P)!Z}fus)N&IBX~fVl5j%yL-vsUYmL#0dKnn zZ*&g{Px3c5zm!*@TF`#4+~@E+!|wFVmaRk4qL;VR;JSb`q6nzbEBR|R^a1`nB1>yC z19D+CgY|^<7@&Rr*qP}+c0~SrJ(zQ6y;E95MT{Zb`I6vK98gRc_IP$1fBi*}6Z$al zOQ1_TwSMnVSR}+08`b3h9?IJ&v2^Vqa&YA6#j9)LEUWTf$e7)~^<8_~U&(Brr2{4G zuj)kc#pPj^18t7K#kP|{|NmE9a7ol$GssaA*0wj(^kjHpp%MZHAqhFLVRSu!4Brm_P}Us-`zkIVNh+_5LfvB?B=UD!kJYSiUcBYut;O` zafDDd2~_|3OD?FSajEiI%1M^xGaAJ!H~WBPN5br?K*5b7=3**DBdm@qmDz zr3=CGi_~KUJ$vrZEi-D<)r*pWHqRK}T!H zqyUo*pxR#gz(+bEB{B0!@4@MG;YDyi$`QQE5DB~HX-+veeP6MHBqfS^LNJ|pv~(<3 zRg*@R?5v~E*E38&_ilSGNcy!5#yaW5pxFWZ0lDTv;21sg7U4gx(M#6vryO{%@0ie} zjb@Z~+z8X!YM-wc?+ykA5y`wijo!rmdKP$|>-N?XnC61eIvK^i`-!K3cz&hx$7-z$z1|zLhw@wZZR-E``Y*d4HN3FT1kZ%P#lq&mq7m<1jgwbiv zZ@ve4jOTK*LP^hpai&H|tg~*0<20T99Ufg-s64NS|7iSp%umuPZlyN}`IYM%h0L!7 z1rJFhRaa#)yRUw&ov20aoh-;V!Va`Ky-T(KXDt*^M`C+woDoqu;e~5OZM=1w6PwI*-tzNEqo-qySS)YIDzs8XNz1EcOd5wrmtzkZmIl9G{ zB-?6+pSk~Pq0+M(%5u<$d1sRJUsv#jk1wfBZj*xJB5z2pmW#(f7}Y4KFX3q|`@;$Xr+YTReAhpHe>)ppJ&b(KxFd)d(50RecXDrK4IVK$;B4BseH~Ni zlorhI5lCsPFNj7qd4da%Z*TP%D8l`G`;Lz9>MIxAatLMa(Qt{FyE>}H`nHWo@sZL6 zttoPLn|Ky+gVLZ`NbuMx+A2|h%6Sgazb~Ijf8tc|Wn?ciqX%n0)D^jiJbwgXCIs|opE~KrPv9)SQ7m>hJR%S{!8pzXup7bj`o=s z`SRxj5@FhV8F_wp&Mz4!DMt(w%GqUe_!uvN{adML6#M z@MM3m`EVVz+YHi%uD3d-dI@EGXnp{6cK}V_c6Nly5?wU{hWEaikSF9}m>SP@p2}Fl zBeS}sop(PzZnliuOj=LwW_x4(@wr@y#uCm9KaL`7Rj8d~4_i3!3Gv`qps$}v^kCTl znXD$3bJv`oYOOvxK?j!iM5lL^z&&HAf6ewxLJyk*rX`%;1!l*_pys=h%Uogm8~EGd zLSpT>q%RH@h4>KAr5ppVl#0%H8tWT^b^gS+tdl5?kE8`e-rocPF22X?Dq7j7QaNOf zgt+O2SpK}Bh@8SFXPp$@+mYbWlZ!05mp{6c8A32SK;l>9c!+6bkJ&3P)Mk-6AyF23 zL!!rYHkNVYKZ|cZOMHuH(Z45bd9!rR8*(z$oaDu>H)fYuK@u3&3ExI$?g^^mi@7PR z!O87=KsKh9G0}=lGoMQ-@zzj5`Yr0Nh2Niy4bO>1e1{Rbp-GF9I}}u(e9VEyjhm3n zskTEp`x+g#D!W&!m!Q*)g>(#I#3`CK<;CI&&}*R!o#6Mz-BB=qrxp9X=cH^mSz9fS z!<79h2nfrbLEmbdauJ-C8oSBQB+=peBKg1Neg119^~~ytPNk1S@DI*THxFToUoAn) z;J#nPqs^D$JDL?A#g8B)I_C}-myg&S8r1hG9pXws6zvQWOu=~IE$j6-WYWLKw zIp~g&567D*7wT77^j3c{eAmu?y}i;%_sc)(tGdiDELbZ3pW=AB$Uuzz zvQD66Eo`uZe;sb}hP5*zpyCmrN?2i*sr$c{{dX!hHtD7aWnk<(* zFJS#w&HsVN1pq)}RbZc|eGt|{HT616m>ZAX`CQZ|r68U&bUy0Z^7E+d``@D3TVEH9 z$P3jGr3P2b+ouG|IpN*XEA1u$wV(z@|HKU)emm> zaGLgdO()4M+lZBoJ3l0m@AO8U{7dszL<859Kk}-g@@4cvCc zO=`}^C4_j45AW|!RaQIX}9@;IhJFC(~Mo^h}L);UK|Mkq$oyhZ^jNJr8IfDB^ zk?Ju$HPc-@WssmYv8{ZyB3j+KWPp>J{kv@n0ss?)Mfj3Z4%5uY?10bz*`IGH-$UuuOwP9w@P`UfLqh%P%o5cF&OfN>OTFgj>ih|toabETq0eAkLOPj< z8B#$0ffz*#F}IYLAuM4^xa>vcW!uW9^(j`03iV66#Ed>DL0}AA0SHjA8nudZHQ_>- zOOc*$};#4W9A*bq3Cn|V8xuUi3>NA-Q?Lc zd9UvDQ&o=f7kH>)2(5~=#QXfJ`RF==FH=(jNXcSC*a z@@eFaGeq~{-6#T zkV0e>RDrx>@~dWH(xJ+xr_Q&_7&7Q5R(3F|Q%3fD?j(Op&wRKcx+9KjjwX0R!LH1>|X>gD!jq}NVx!h-Ku#zx$@d|g0DP_ep zj?o{ruS#kC_pITwH5Vu1r7uTa)BxF&SScc?^qbwk5KRnk)x1xFpS|IkvbgMLVUwQ?XMvyu!0ITmR}W7Pv+I$DXs>Ev{W|Us zzIO%jnBQin1VvgKE$1AUE()}QYf~@RHba2_u4k^sptiz!&vIg%kp#^nlJ})jx0dQ2$wcm49>8hX(T(8*W{uwRu?Si+PE+M z%5>x5{ZQh3>Fd4BO!})@3U}?@rl@0<*p-eS>Y8t*m&rx5T8-&G!^O=>Stxy5dTg(6s_4`eLBnB39{ENL zVHlsgm4LG(?O?`#JJp*2KsHAE*er^8BQRivf5JN7Bw#UbN^)ATqC?8YAhF(VSlUW|D5zi!r-C!iNuamvYBz$&~@2*2&@ulMii zY4#@T6zwcC!TAPN6rD6}eGRKW5_fWCFe+r^|G0N4?v)o%^sksw{=y|~DgJyHNx>q=O0y}~b)GxsQo8Do>Guo}s4|l-(pTy${Jqdk^F8zsu z9b)}hupIQ9L(H$EfV5)GOGbn2)9CQQqLmX<0e(em7FW8q3AWFnPTt72TcqGwx*B>~ z`u1eU2`jT}$0Aa+HMi#O zZfI%FB1`z>hq)(XEx|MQzY>hTgvfFWK;Lpxitdx7Ei!B*+VE3L1<(P%DF`KKTL=q2 zez4NA>ve(Ls<`Kc5@v-+DESyS^l%E>`IEb~eF6UZ-hx;W1>cO^ts@`({`C=5)1vAB ztn`$R@>kZ)kKv%{p?IPz`N`ka`1KfIy@s33D?2QGR``P})sTWM05fxw`~3Il=lP?u zws@KoVeQumPUiO16J_S{5kU1%W9#%ht-M}D#m<1xq|(RMFR|g_3-q!ivKAe}H)@k) zab^LlS(1i1-lqnQ+te}1)`i7+Ur!CoJw6-KPSDQ?7rXz&Qpw6I4Dy0xcRt8F6M`~5 zt<EqAlhzsPqMKjp7Tid9Y3Oo*(6=qLUOad8xne_J#_W@IdeSDl2-{%&0)h@XK zvSyru-QN4y0|1}>Nm)Bo2wJnOgj&i=gcCEJif$HpuzolIllPR%S%|E4lSj;L489!; z2?J1lk8jb}1$-|vmG{zq>_m>N(;rDHX6sS9(FmTu#(s_s+~l(ZQvXf(>E)tq`|t2K z&PfQ;;=j>Jq_rq5{>bYg({fN8UtLbS)Ay9e_WJw^|6C&>_Z@31bqXxlwMcSAN-A5$ z<4RVy`QEtU7*iw^?ZaDuAQc9D;p&1iCOye-zd&?dd`89+1(LbF8}8jBw*#cTpOGWp zWQlWcrH2*mWqOWwQM2g?X=eqjMCOTCM@=3<1YZR`MM6X`($s-xj|h!_j_&q$kvCvj z<_7Btq#)bYh{nowmn-OjO?XU= zmf0`cw42@MhfW`kzIL6XuHVxWK~*!7b49W?Yj`i-C$SZDw`w>nJpbDa@1Pj^bfzwV zSpR#>1}=W~CL~dbF%JuiD;ztX_g~iDdlBq(|Fh2I4ryRn3cM-48#8dFf8IRG#ejo& zFoN|{-vm#S@iby;fa~0QmNSEDFKrwd*HYr6F}}tD&q8OWffg8rtzFZ;yo1Qk|UZsyva5i$Utr`tr4j#XKy(Qq;Lg>v0zO z>{Ow$-QgN-qc!sLrk*YMBH!2>Q0owNUB&9nfG01xwKmQV0V<-v?^3SB2P$Sr`x*?J zJ?XDMVbtT_a0QpOM5NWDG7@ZO&CcoVHC{@O#aOdTuq|PpAK}b6k6dTTrMaGda;*V7hk00N`%>9kXTLjKi=uU0DHg^Xw; zP=htP*gW;SiQiVsm6CD+$t^z%!j;($C}F|D>|NXDI%PvDa3li_o;2Ws&oMl3{cYf; zsd|F9HVr>=*3Wk>uAsk5`l|FxtQW6conhr~WBI~YvHbfO?}X|KI%xEdPt5b=$+YF8 zdZ40NQXABIi&ekhMXTO)1Y#M`Yx34bw4PF=>EjvFUA2vJ0=N8rw*iv2dNt%YHgSeF zuw7%QaTck^i$Tz4mlNn`-@Aj|0^e?t{R%^=u@&TwL<3%G84Gh1)mF&V$Lc-9NKs5z|C$;LlKKk`ZCzp(3{vZffTLEGE-&FzT1rBB zOlN}2^GUGU#C8%*qD7)?$6}HNs8MVJ=In5xjJ! zJo5~|?f{dmFE3O(Q+QR+v^rB-5X+hUL$2e`9-)Fradv0uhzcf9GN^fN2mM=;b>@Y6 zt?-vH^&SHPVyUz1GkGw&h2UdpcOsWu>MN(~89Xd(N6%h%t~=TRS$d%8fw_m;@*Jbw zgwW}9aDV_Bvu87u*|{<>NF0ue9SpcQq&Uj*GhgNjs%P)-G6kty>-Pvtt}%0)^)(;V zb{Xn>I4fDXxj-cP57-J+R;?Fto46n-%UD)rdd#ii>XG?6wJpj{#%40wnf;IFa?m2# z7?y1=OKu8Ue>z|TRIO?bZ;@tRwa;TiD_WmuX{Hxw3&E$PZZ?69)&%!QYvwL(Y1?H< zDGzrkEX>8SAv|%IF&4EP16m}F)(}3Xm4b4kUpQskQl>8wse{B%@LiWPfdd57dG=*n z!1*!fjzlm7rD2WZ0|Omg1phE;Mk>(#I|Np$G1~1PanB7%kwH_Q}3Z3wRg-I2_}wPs2fPJxPn-`jpqbV zB|ImG9rD}Pyl)aEj!R9_18amn58P)vUJsBNWVGt|Z{K~=f+~O~RXsR|ZuI8|q->Ps%}eZf!sUCAd-Mbn$!2vSCaZ*(^7h`e61`yJ3L{g_>jOBLQK|~ z#~fK8q8;9s8hbRkh>n8eF8rwBM&%nJ2sXKU3{B>xeHBeND{S%uv4v&8{});le(ZuE z!Hm9$?LImnlZ#Mx6Vm=DEc8DbjpI%4XZFb1%K@M#W)O$c-rX{E|BjPvZlw~4N$kPu zO{09JVh0}AdM)DuAF^$D+{BCRi5h4tiZMy1C@LJ<2`)#s)fSo=A(?vg>2|?dW{WW+ zIt-TgCRKbT>xjAx=PwT0?uEW1=`eT4n^edxhrqdpid9p$Kb1!QYSHEdUuL!`*IKeX zU-_0bMa7DQT==M{Dk;}4nzpvZWv1`!HvCMoB$`e(KT;=XN&pdNbW4DLEz(ZNp83sc z=Adv1&#T;qxQV$49AzASIULl>;FN*|b2yc_YfOC{EV)it`d@tICLXjs{y_Px0>2&+ zO}_Sj|NA$_3eWJwvf4LfzlXhCo=iy4&u^d*LLY7Cx6NI)%(UfUzz_T>ni@RodWDx~ z*sWg<;@ht|W{7nU(3BRP0ob+k_aQx{i^gv9!HrWkB~lPCw_%Bgrhid9DNBUIDoZGd zZdAdphvnaHE6<0zZDkQmw2lwoh!pPj=Xv$PpFn4+ywiFc4klwB)IkTg9GYNaz%Mq} zC5Rvd1){S(QZ(@LYrpg)WN+Xb5^ekFHU{(}dk=s4UrfCXSA$#rg=9-%+ASNe4VfcA znMjBg9kYUCq4dQpUs6}atp@wATv~A%8_9$77(6>521fhOFvKpyOn_8X71 z%tieXM zqp>t`nhj;-tb)7_1{o$QW(Y+Ld!5y>U~#pm%QK#VETgn|H9AiXqud|qrqaHE6_a=k zL+D(!Ojj#LtrRpX&>tU?V#u`+qvAc!;oSGasFPMdFO55+S z{jGk!(ZN`TfB-uWA}RG(iWXIaY}*HQX3O%tGST)YZU59KJ(d0D|CsTGrooSTD9=tP zgJAZT1pmNIfR_*?9Pe*1#2BRN6#sjC>bGhw8FBZ>d39z_WdNAf17Iaxf~nu7K{QJ| z1{2!M-J-O0iZ+Zt1=Hh!t@0%%|8Gj|1IcX)#Kw5*W}0OlrB7Wn*~AusUWxmT`;7Oj z=c0-9Sv1Pql;msaXYf?(0=eXFq?_ry37L?)!^WoZ*B%8s-=*qbzj$%2LC0Vc-Zfl?)=%67eIV}6s>J^F; zWY)za>1i@D4x~Kdm!;UqD9TMwJO_?Ny@#U4izZyk0lRV z)-U!iM!6@GMSCKrWW2Hq4Z%bw4C4?m%h03WPBwoYXozsW*u)erm0MR^0as+p%<*xV zxx8SqkYY&xLD_4#{G`4!#{wN&)LqhC_;+Oql!m*%G@SxJHOM?}lnN+zcA(wl>-}zv$(Mumv%=UPLT8o zl=#SxJt<+CD_XSV$7&@(7&WC@R`xDG;oDMYIKF_stX^;Yb&u!O@T1WR=G>>hgZOaq zIj;yxfo^|qh6+|>=ZY{NNPrwX+jMTIO(~c(;10VeK;qmw3D0!B0bz>=xNe_seyi4p z2xh43D+Z=schr7d=RC<5haGJ;u5Y&xplk5L#e~TY<=s1P5`)U3e6v>Lu%8#v5z3Z( z-du;8!Fy)4GjZtqi9(sONoI2zCtOX55bgpRbDLPi&lOo+l!!K*X|WmLZ=@QfdMs5a`ZsyG{`GbiDQyF`_pkK{24Q>3re7O$; zrQIVUPt40|fv7=z02E;js6BN`f6^(+0jwF@z^q_DQBP?gh*{7rtom1|Z~B*=qo_D^ z&=yJfAUNfB%-p3HaFh6I%C5POGPmJjk9E#c*{PnWMOz}d>;#b2~ z`JKze^xUJp|G7HM)j1>h0%M$eY zK!gTba5HZLoXVE?76prAk3uR?D%^aScYo)+_RI1X3#D>RNkE1zup}>#>Frvk8jaNF zhK2qe;Fu$X?7F60z;Z@{?LPwyI&_@*x8V`?!NVP|$I-SNnTp_aI~U4l)}qqCr#>zoI-y3%?r;L~g$&qBW6p0u4X?eLhsIFY> z#<2Z9SN(w;j+=t_>Q!1IjWa{Eib8i;T2dc z#Fzh1()eB!6|3nlXw7R2km7|~1(}Z*;QXf-1bjXaFw=86+)kmBlr892ElGI}Db}1d=Ioul=OZ(E}BNBrAsbga3Y1G1ab? zd}X{;f75h-BlprYRoPIj*nWMZ<-71%^h`P57qn>Y-$;dqw}mBM18_b#D8r!NiKZ8n zUel&mj8N-e19s(aqCJ%qTkLCogujlmK}{l?c_fb>NX|_R=M8Of!V!5yAjjoS#bsBC0KO<^))+ z5UHFMp!}67u*YzxEVtB^cxew7%xT4+{om2L!=Kfj-*z=!|8$}g?~O%)_3-nJpf62t z`=gi^ueAMdC7X}5brc( zt;deovz*vvjtRJiL22f9YCw8x`2w(*ev`d60Ri4%n2d8G`A+0+M$$L&O6-S?h@Iur zsCPNB{TUr7!h4@xpa(JL&O{Iy3d0xeO#0UJx}nL=L<0ix@hK*N2h>o8d(J%r0|1-D zA|l9v3i|C$le9#=x!|*-5nXf%DDF6HqQqC7de8)a9Mi_xVqd3C{x93&z=k z;TjYHJW}u>c=i96ughUYzBG_gU`!K6Fi&Qg+KDy*<^?9reJlZH;EoBvzjr_fM^s2h z4o8FOjAyRVK`;|`3qcU>m0CaZ+RB~}iWv-b_L#rbWrI!*lFT7wX$G5`@iP)T zE>Un$1!uSZtp)2!nUswTGoU?VHVKzJ*rI7xPG=#{fFY6&J)IVfx`g3oX}&?DY?gJ2 z&IZ2qq6+ehQvxGF2xofhP!VcC878$Hl3dsJ1GyN4mRRqTxh73oYdDHo&2*|@XkIb} zJx|iW2LHpQ`|#*yxbUx?-p63&BUCM?z^MDy@@W`R(^wDKnL%_b4x+Kcq0L=ol^z2lsbFe zy8!FoQkRU*X~=S^-eUApN~K8|;$#_XrDFrrvGf2x=cCqIva~q=f$W)+MlMbl_U@G~ zVIiA|%xhTXq;=C+q`UlR#DrSzbYI*cVYo>@@2ItvC;Q zav`_0ec-&%<|odjT1^zsqlsGbAC#O*#<5MfB-6tULu>k*GND~BO|vBpZT zJsPa_x!iOfLA||dSY~2T3Nm91mjiLU9d78F;Yj&()0`;sdRZ#2o0Ziyu_|O4%~!2p zzG^Vz7-UKT>q)}-3Okf)&WxJ&^)l=+-~cDsNEy`F2E{8&apk1+gGbpBe=N1L%)xBlPM?o&2;4LN>We)Ey19L!I3MU zE;rEOA5k6hBnhJ}fvX>u$dF2*aP*p}?Q3q6iyZc9-|5SEO4`P%-}wm+!)KcnuVuHl07+2{!>DqQ!?@qsxS- zHwmGryH8!db6=RfqLApyAMfkI42Fm8 z`=T4`8LC$xR&1Y^v~?W);5{^`(!43Z7dVeFO9NM=(>Gt{bRMGpb{<55I)J7Rh#i*Q zJvbw7ia~h`5>J*;1OyAUc%O$$=f9H;2ZO)4K^FZdD}zhfWwC}R7tiLh-{MZ?K`Vk~ zN3;WDxu8`KJLA4$yxW&n+tU@j0THX>pFUq0Mn1kJD z;-a7!Qp$SuBp?Ay(vm6)dxtsGI>U^~*YMb^LwN)CFefwIbzjFJPQmL0#1Dj>wDn#U zC6w}v)w!nEq4oGCa<)rm9cn(Yg17Z)|Fd{6qCyb7*c7Z3QhlMliB^!GV>vIkzm^vq z_Zwy_BI~sW2q4HlTgCxOu}owBDtq8H-$&!;S@s?4eSFlMG5u0?;4h9@XM`O1!mPjv zU&3-EO9-GZ(uDk&+(;F~1J1aVA|W%Ep0=l`{yOedWAsFF*9_wBhmYLR3)uO4c>U2U zZ?34jTFI@?n)8ji)$K(*OK)LBeDw1eu`_F}YzKOe=xYdxt;ykggl?kmc@|7+f72AP zz_jgQj^R@CkMdN}bJ8_|CPWgT4=xx@n{UJJcc!N7zsbuACLKw=I^%HXnMm$GSZ4p0 z?@?D(6CR{_f#mB~@??u`oyMI>o|rezyj(JTWlg_b6`oosv8iY;G(DpWY>l;{2w>1B zk>?Z5szRUO=D+~^DL;f6aPK-m7xp)0G+8pi8ws0#t>#eMLw;+HeUc8)9>e>ge5g09 zyNA-KfErAH|0z&AKg9Bzf=>@YDx9oUOf9dSD)qsnP0>DL?=Hh*;(v-!M3r)&M# zTD_%pIRS7?R73}#rc_LNJGG?hzsQs$=-<*Jo;#+jdgsxxA+7x%is=oZffg5sXuHU@ z#$WdWB{Ya3`d29EAoqgimr@V1+`#bz2;;Noz}&CQas06O}0(L0VcS#cX^Y)J{_h|9Zng#M@p=gn~{Qk6N^|O z#zd7tDHhPS)54aF%=&({^@LkoCLslG3X1-hJ^}#Q{|8HrBSI%zLI0J4pJv=3mi!N!iH|7sTz!d}KW&bo zH`R;`jJIp%$+?hYCYOZt$@z>$#>}bw0K}HW^uLG>(j8wlWTFIUzO4RZbguK!oz3C4 zB@m}P(ueBL9f5M{#R8rW=0V2=W8=6n*2%}1#8t~N7w3tVA#QS>;{}M#7yEC&BA@{g z{S36=-ns|;G9c}o#nc-tCdOMErRee9wS%#v=5}cJLXXZ#pY(iOxH7M}H2f%S3-hlu zd;q14Smly5AJOweEiRYSmJdgZ!cYlmo>(4|)9L{RtjkQn=gi8yM$hNn)J$WOIm}|(UkD3#wdr!h8!wT z84P;?rq1{r{G$MJc7aC`TSyItQdk+3HW)PVEMeWbmVJ&$^xhdZNBEZ`8~=dJ?N>&^ zC(42bsEbYt*x#p<4d`Z9;^K!If|`L#j@F@MoNeC;U!|Q*pIZeO3f0AEj{h7z@2;iW zTzXLA`+R{uKHK)Z$Ap)+q|32x#Fk);T(Azaa<{q#9s%h?a~x0fiC1K@w5@ye#SMGZ znTd@{$!yz7eyqNV#kFoXp11Ox7I_oXk-k(pn6A-mY21>AegY;xN4#n~96Ve<1NOqv zkf2EypmJGi9~G3sBGo> zJpbfC8(RlHE0=x>IIn$Lw-M9)WV4kivbEb${S^%9+r#E`g34l>wg(imzDeHb494Nz zgiS5k2U@(OrRnXkl37LIoK%<`Ms*%b4Fa2@Ck{TnS%?+B)x!rXu|W&(ME@>*kzmA4 zu>Q%OtMWf!Mdwobk|TS61`!;})wW-zR84lR{+zF{9*9R`PW7;Mck6|v?hVT@P3_{x z7a)?-c|y+G|EarL)4Q|z{3^Dk$e+h4U@i2&$m_p)(fS@$WG70Fm-v@2b82|*1n+19| zqDw8mg$5QN-t3BsNVyX#gb7j~N_(}y`I!0JyhwL<1$ERA?ojCRFF?{(2Cw)ARRm4{ zK^mCGH0TQ3yu|Sw;C%I?BvEQ{0Tlrr)?&BEEhk{mci>3Y&^9d5JmEvh!oBfuaVeB3 zR$!?HzIa5--HNg$rn>!IkwUs7kjl?BetgIne>}F^Mql_tqUo*Muk8g|tvvLcIoU9L zfdb^#2fYHVADOI`6YwDT3LDH#XwXr4C;V?`4ZL-}vizqx-J>4G_rsj*1#6|Y9d$^@ zI+xHIyNLYq$+Qpgr%}Ak2<)7KG3B4BYR51o;XRm0pVuR@lwVtn;~iit@`tr*UL%z9 z6PZsNVYPlvPrzVjr|#;HpHL2IpnWOfAt%6mWp1OAhvtyy9&&{fhRP!T-UfSZTl0C2QkF0xMny)WR(+S# z{*Bsys!LNx*G@{na^SFcWE!D&Z!gQ{^$Yv;bszu$L4Fg1bS`A%zL09B3gGLGY4}3~ zocScwre~Fxm)i^&=XVrg#|jP#+FflO@IKe1T}|SyH~%7*B^aBZ7m!t;NZY&1du~Rl zEh%6-_c{{?g#?ZWusAzJL=ywzp@My?C)hr$@n%3A#`XR`koKGE^b%^7-3FPpX{Qbs$ zm6m1`9ug}W%T?J)j%ouYrEMlj>BTP8Y0d6_vp0ZjMxeq;2XFi5uuLxsEn+x9 zzO;QOT&T`8TbmGQ@9pXADJ*;F004IUCsF`!G-&&k1Q(yc~1Nf$Yw7r#6AH~X1D zxNhhDD$CI!_@wU4veJwvtni1jh=fgktx<$%A^uvDmf0Wmm?l`W!pBLqgf({4f4M62 zvf$oafGYaGH~*X+eloGEGK#-VfB>3Aue@+BZ^6_M?z99|Hv4c6xCgF8(l-lkVeg8GiXFWi8gH{>hD4CsR5`m4OTSjn6U>Z+l-U=s(B)(QOI}McrT4#}Q0000R@8a8i zB(-LY?q5}ZkUkKzKn+)-(cx6YgCjI3JNNU5T(~s&zzAVH5cdwDsqBl>4kfNOz7v(~NzJ!0wBIkDXQl*_gYmp0A>q+XXx z8vRDjA-eehG*y03wq^$iM_yC{KZdn|)aCFK&zeC#br#4VWL~gwF1g_sX8aIt)VEpB ztB!Fgf<8?md{zJejR&SA&MWk?jHmE#`m$$RY}90PR6C*AW_d#Gr|yTsKFYJ001@5|NORivr|(J zo3y-MuTr%^yD%cgB4{wk0b~oo^ltRcN2HvWghC7~C4%VlV9_=bgcZZA5d5l6_F4b{007pa55fNZd3tEo?%~7s z5VcEsQl1F?&+^h$%U7Es?Q|s&aTCqP&xm8nGS+$Z>d_*2PJE^3Al)I%rWXsvKyOg6 z-uODP=(I%&dYiz33Ug?}q3krnUbSGNf<<7WM<{bx51|y=FujgW2HBjxM@HD0000D-qlo$LdM*si?_3PI4t`6kXN#6Gh=>| zVeJ11#vPx##W;ZvfUT{;!^?45x`X)S1wLe5v=xHME9pF)pE<*{YbK`OzyPVEoW+Ap zX{xZ?il@npf)5Km@#N=m9!2BJ!o;L9C4RP7&cz5&000044!v>gRzUODX~sgitotNB zA|g|v0l~(~x{~8(SbN@BXh3?F;%ZkRYJvf8wLJ14+FB(=kfoiM(wG1M00000QVRtJ literal 0 HcmV?d00001 diff --git a/src/assets/landing/logo-white.svg b/src/assets/landing/logo-white.svg new file mode 100644 index 0000000..0e9ef90 --- /dev/null +++ b/src/assets/landing/logo-white.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/components/TextField.tsx b/src/components/TextField.tsx index dc67479..b104722 100644 --- a/src/components/TextField.tsx +++ b/src/components/TextField.tsx @@ -82,7 +82,7 @@ const Input = forwardRef( ref: Ref, ) => { const wrapperClassNames = cn( - "flex w-fit gap-1.5 border rounded-[0.375rem] border-gray-30 focus-within:border-blue-20 placeholder:text-gray-40 bg-white", + "flex w-fit gap-1.5 border rounded-[0.375rem] border-gray-30 focus-within:border-red-20 placeholder:text-gray-40 bg-white", { "w-full": fullWidth, "bg-gray-20 text-gray-40": disabled, diff --git a/src/index.css b/src/index.css index 691f1af..64a18fe 100644 --- a/src/index.css +++ b/src/index.css @@ -26,3 +26,11 @@ ::-webkit-scrollbar-button { display: none; } + +input:-webkit-autofill, +input:-webkit-autofill:hover, +input:-webkit-autofill:focus { + -webkit-box-shadow: 0 0 0px 1000px white inset !important; + box-shadow: 0 0 0px 1000px white inset !important; + -webkit-text-fill-color: #000 !important; +} diff --git a/src/layouts/AuthLayout.tsx b/src/layouts/AuthLayout.tsx index b8c486b..d944e18 100644 --- a/src/layouts/AuthLayout.tsx +++ b/src/layouts/AuthLayout.tsx @@ -2,10 +2,8 @@ import { Outlet } from "react-router-dom"; export default function AuthLayout() { return ( -
-
- -
+
+
); } diff --git a/src/pages/AuthPage/SigninPage.tsx b/src/pages/AuthPage/SigninPage.tsx index db592e2..94790e4 100644 --- a/src/pages/AuthPage/SigninPage.tsx +++ b/src/pages/AuthPage/SigninPage.tsx @@ -3,12 +3,13 @@ import { useState, useEffect } from "react"; import { AxiosError } from "axios"; import { useNavigate, Link } from "react-router-dom"; -import Logo from "../../assets/logo/thejulge.svg?react"; +import Logo from "../../assets/landing/logo-white.svg?react"; import Spinner from "./components/Spinner"; import { useAuthForm } from "./hooks/useAuthForm"; import { postAuthentication } from "@/apis/services/authenticationService"; +import LandingImage from "@/assets/landing/landing-img.webp"; import Button from "@/components/Button"; import TextField from "@/components/TextField"; import { ROUTES } from "@/constants/router"; @@ -35,7 +36,8 @@ export default function SigninPage() { } }, [user, navigate]); - const handleSubmit = async () => { + const handleSubmit = async (e: React.FormEvent) => { + e.preventDefault(); if (isSubmitting) return; setIsSubmitting(true); @@ -97,60 +99,78 @@ export default function SigninPage() { }; return ( -
- - - - -
{ - e.preventDefault(); - if (isFormValid) { - handleSubmit(); - } - }} - > - - - - - - - -

- 회원이 아니신가요?{" "} - - 회원가입하기 +

+
+ + -

-
+
+ +
+
+

+ 나은 + 조건, +
+ 나은 선택 +

+

+ 당신에게{" "} + + 줄게요. +

+ LandingImage +
+ +
+
+
+ + + + +

+ 아직 계정이 없으신가요?{" "} + + 회원가입 + +

+
+
+
+ ); } diff --git a/src/pages/AuthPage/SignupPage.tsx b/src/pages/AuthPage/SignupPage.tsx index b93af0c..967c58a 100644 --- a/src/pages/AuthPage/SignupPage.tsx +++ b/src/pages/AuthPage/SignupPage.tsx @@ -5,13 +5,13 @@ import clsx from "clsx"; import { useNavigate, Link } from "react-router-dom"; import IconCheck from "../../assets/icon/check.svg?react"; -import Logo from "../../assets/logo/thejulge.svg?react"; +import Logo from "../../assets/landing/logo-white.svg?react"; import Spinner from "./components/Spinner"; import { useAuthForm } from "./hooks/useAuthForm"; -import { postAuthentication } from "@/apis/services/authenticationService"; import { postUser } from "@/apis/services/userService"; +import LandingImage from "@/assets/landing/landing-img.webp"; import Button from "@/components/Button"; import TextField from "@/components/TextField"; import { ROUTES } from "@/constants/router"; @@ -20,7 +20,7 @@ import { useUserStore } from "@/store/useUserStore"; export default function SignupPage() { const navigate = useNavigate(); - const { user, setUserAndToken } = useUserStore(); + const { user } = useUserStore(); const { openModal, closeModal } = useModalStore(); const { @@ -35,6 +35,7 @@ export default function SignupPage() { const [isSubmitting, setIsSubmitting] = useState(false); useEffect(() => { + if (!user || location.pathname === ROUTES.AUTH.SIGNUP) return; if (user) { if (user.type === "employer") { navigate(ROUTES.SHOP.ROOT); @@ -56,21 +57,8 @@ export default function SignupPage() { }); if (response.status === 201) { - const loginRes = await postAuthentication({ - email: formData.email, - password: formData.password, - }); - - const token = loginRes.data.item.token; - const user = loginRes.data.item.user.item; - - setUserAndToken(user, token); - resetForm(); - const route = - user.type === "employer" ? ROUTES.SHOP.ROOT : ROUTES.PROFILE.ROOT; - openModal({ type: "message", message: "가입이 완료되었습니다!", @@ -85,7 +73,7 @@ export default function SignupPage() { }, ], onClose: () => { - navigate(route); + navigate(ROUTES.AUTH.SIGNIN); }, }); } @@ -115,141 +103,175 @@ export default function SignupPage() { }; return ( -
- - - - -
{ - e.preventDefault(); - handleSubmit(); - }} - > - - - - - - -
- - 회원 유형 - -
- + + +
+
+ +
- 알바님 - - - + + +

+ 이미 가입하셨나요?{" "} + - {formData.userType === "employer" && ( - - )} -

- 사장님 - + 로그인하기 + +

- - - - - -

- 이미 가입하셨나요?{" "} - - 로그인하기 - -

- + + + ); }