From 9301f7cb9cd965acbe43d9cd1143d4a44ba1150a Mon Sep 17 00:00:00 2001 From: Vomitblood Date: Mon, 13 Jan 2025 20:08:15 +0800 Subject: [PATCH] asdf --- .prettierrc | 2 +- client/public/images/cry.webp | Bin 16704 -> 0 bytes client/public/images/logo.gif | Bin 0 -> 45401 bytes client/public/images/logo.png | Bin 3246 -> 0 bytes client/public/images/logo.xcf | Bin 19230 -> 0 bytes client/src/components/Generic/HeaderLogo.tsx | 33 ++++ .../HeaderBar/NavigationButtons.tsx | 35 +--- .../src/components/Pages/Home/AttackItem.tsx | 5 +- client/src/components/Pages/Home/Home.tsx | 17 +- .../components/Pages/Shared/AttackPage.tsx | 15 -- .../Pages/SqlInjection/SqlInjection.tsx | 156 +++++++++++++++++- client/src/pages/index.tsx | 6 +- 12 files changed, 201 insertions(+), 68 deletions(-) delete mode 100644 client/public/images/cry.webp create mode 100644 client/public/images/logo.gif delete mode 100644 client/public/images/logo.png delete mode 100644 client/public/images/logo.xcf create mode 100644 client/src/components/Generic/HeaderLogo.tsx delete mode 100644 client/src/components/Pages/Shared/AttackPage.tsx diff --git a/.prettierrc b/.prettierrc index 794bbbd..5189c3a 100644 --- a/.prettierrc +++ b/.prettierrc @@ -5,7 +5,7 @@ "endOfLine": "lf", "htmlWhitespaceSensitivity": "css", "jsxBracketSameLine": false, - "jsxSingleQuote": true, + "jsxSingleQuote": false, "printWidth": 120, "proseWrap": "preserve", "quoteProps": "consistent", diff --git a/client/public/images/cry.webp b/client/public/images/cry.webp deleted file mode 100644 index 1c0be824794b58b0ff8be341f70779cc45645ec6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16704 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 diff --git a/client/public/images/logo.gif b/client/public/images/logo.gif new file mode 100644 index 0000000000000000000000000000000000000000..45eb0d93ecf7274f11d688f92050e3d84e2f29f5 GIT binary patch literal 45401 zcmc$`c~sN)p8x;JzGDIb0t84xfUt)h6*UV>K-7R}QBeb;B5na(P^rxZgiXVuqN0XH zL`4mVii$P~VHGqWDk`?Y6)m+vX{DCZUwS*!aqi4?dgu0jf1h&*2mT@FBz*FCJ>QSl zGcqb7WM*KMwsdi{ z^Kvq$P$Lz8+4q{pdda{`2O|TL1y`0?I(fWTA=eR(02~d)nMDtpnDrIch3R0n}BFFFAGh;f_Aj0OKIUHA zj@N@be|WkvYq#Wckz6K|aJcsqdI@Nxw-k$rR$fkU2kn|?YL2?zH#wE_kq!eMc=n!1>~rv+U_#O;xmceO($<1Vy@|_jJjCYcQhpP&2aa{Q+H0V zq-gu-=KB5`UYYyKo@Td>^<6Rd#P93Q+?!P$L$&z0>49rNs$`Nh|6rtolKMz7>xYI{ z%}K&keLbkU&2Hwl=c5NKQrh4|dy#tPWeXd73OTHnSyBaZN>Q9(<3LI=!rUnpT6OpS zx(5LvvqJgf=plEDEc6?6BhB)BxD9j6FtToAUtF*-AqjfsAuCm*jM|YqHssxS5`T zpk#J)?w|eQm$>~Y)o3@RBDugVBVNq48@rK$oe`2q{o1=>=-mo0MY;CtFXXzXM+5H| z-bK09>G~6GZ?#Mm*#^f~Re7GFFUAL)4#_Zxw`9E=Vck-g7uYZJY=qc*Em+)R#x18h zxFJ9vcuVVK+Ag1)&NYQzD&qTI*XpiD9X^P4%G@s%JHoYJ<#jj4b#Fjil+(3@i!m-j zG7{mUrC;nqiy6s0?Cw!8!aj~Hmf8)S4(r5mQ+x}YG{iOz=1_fU6q>$?R_wZ^$gjZe z1o2`g)W=X=^W!1HqY)_ShAQZY87&jHiJeGy1qU(vZ=OQ zunda!#Did)Y7HO;J8^uiZSui@V!IG*y3BUVR1*j8ogxyM?#v

Byt`+^`H~sR0xK zs1ch*ER9pzq+Uh{Dwml1ZFsH};`cQtvmuUy3J~CduT~={qoBN1TT*BmD7aFMf|^b8 zxNuR(0M{aN43Cb!0Tn|C^MUdFK4i85js~lRJh0Q0Z`aCowd`n&3s%6!qVYzFQ&9`h zJ?%P&nJ$~LH7qmEEp(KnBd`K`waA}?02UYnD8P2dkV$zqX)6A;LJ$MK9? zJSPm#7zu(t2xp8^R3nySM>xORT(9iK!CQ}Q8x^RnlB=Yb!MmUs6LuUH{ZVH zv#Ua{#rO)@SkJHmzp=Nt>iXP3L1Uh^N)6j+4D-z$$+b(Q?(MT1elHiuTKeTQqW1&HgWnuFtd?*kq%`+2<;ZvFROxH549Q)CeJywxDVQoT;e8Jxi~Z7GLMqS*LF3 zbbVfe#Js^qv(|(-0gdIS!cJQ2n7PT?ci45)te1WpPj@@vL8z9&*U%Lcso&zA1Mrfw($iaDfG1h=D zTcgx8qy}<`>x?2eQv|Z+ZAuPQiR~)<_eV^!SFJV3!*0}i1XQqRVBMpg7;I#yL5xjd zN(bI4(FrY_@bQmQhb|@VwrYCQ{Nyf79PdC~oM;Y(0g=$uvC719S!X`~Kj z+Wb;>QKFh=dAMGTJ-%~kcR?v~sPDY++@7U&T>$>DFx+cfEcV42dhRu4xO+%?e&is_ zdye|sWixL*`SAw8M4u$*mm%R6xN<;m53}=A|JzhqrpLRki_A!&RVpqV~$eStjF51%6G?>uTf!$hRNBIzIVXh?9-Z%Dd`L=yfDOgDQ0 zCN}+tz;yWv!Ea!?VS@=x{}Y>*Vvv0fc1`oGeuva+Tbch4IQ2J3eQ?n8zva}40keM+ zRX^p_{~M(K8A3JT>GjJ^CPMvVJpGhS|64GPtbYU6UrhLFBG!K;vzlnL z%|x3DWkBNjr7zqWs)w$z=d*oHw5e=}kWVQo)U$#hs~J2si+E;vdl@vRN-&aIYKEY` z?JCcIE`m6euB%kZn%18rl|{7AtbWEVsfpYp8x@D$W;g`Ye;@i|;r>#`m|9hTTjc%+ z7gkj;e=MmTym;E8YMf1jE+j{l@!3ZUadrXMPmk%unJLK9#i=NGp;L;ya<%?^poL|@ z3QfY%te?^AqHimlPO4yafjWfw@{w!XEg0WgoZd3jkW^!tU$I8~RW$WS@vFd|xSSI5 z(V@bD#;Y1e(y0ILOPQxMU@iGAt*~BUJLcbuE}#d74sAY zGZW!K5Ht(m*i&_e7;+diDQ_FtvP(zUG2|yfhla3N0D#oHATPy8>g2v;hdeZ&asU54uC*fSvP7UL!A1!~Ibo2Qr&r!9 zwx7osfs)H~r4sCRof-gObQTL6V4&q)-cj_FgZbHo^%|7Rqe*>gCiF6kIko0y0qIjJ znFVif1Vi=ZC4)|uAH;KAZVvZ%I%Fu{@z8E~mK)far-it5#tgI(7b0V$Lo^hEt|Lk} zp6}_?!0$p^VQt&6gRL2z4tor-Jpp;Ocqz(VA1lY^6U%N9B2q`f2s>p?U+Lqvf#Br& zW-tWpXJm3Q{sGdyX~wRx@d$?vpDoVEc&jN8CuP9<`SxL{?DlKC`X{f=<5EFc_GPUD z-Q)mrX;R3S!y_GbTP8rczF?|9#(Vc-X%BztrtubY&bG3i=L_S-xei;1b5LGtN?R}U zq4PR2?@kfGJsn=c13QWDZlFM?z@etbp zmR~811=$^P+_pL4%g#V5GIBD9Rp~3UF6}Q`6yJuhecc6Qsd1=m11hKMqVts63}w#i zfX;068^9OG@&PwHHz0(r5U1d!4%bs<OfZNg^+j)z&?TUeeO)yT&qkXcDgFuOvJjqE*FG* zz3mm)o5`14y9gP?K<0ewChO9qnm?{_rk)n?9La)X)-5c!U$h>UP1(<><;*!GfKo=) z$rg=pb0Hp@fAAv4mXQiycP&;zqhgm1)y$EKq*0a6Ns;n;!a+ThlbnPk=~Llp>cQft z6ih+|XUPE;&%YP@%;K2|;!DDG<9ZwsqFh!84bM2w{bJ_?iBq zHA>0ZDdKbfQ9R6h%m5E+(co^1U^H)W?NS&xaYG|^J#jr{fED4BqCqb*8X$91Pp?9t za@+)L%wmx?>D-xzWP`{|DS~-t_ZM{z+_Szcm=0&mO7cICre5&6l(yu_kq3+s7Ia%z zm}?lJFcHtSg_Y#`?VuJe$xgNas>R5;3Wy^xa_z{yvF&05gq$saWy*EVAyo8IgM@Uu zVxhlWj9Ds|SX3lHsi^?OQbvI~D!0tYP<`!S01#BZ7_*L<#|=xim{Ah$T{J%QV}mud zdJ^hF6U$k87TlLF{`|XJBlrdi+)v4-Sf!(&g&fV})AE2K(25UxB^HO|G8&SKWKE8A z1W&g)!rAhOFt9}>vOWJ!;qY<&JLz)tur zyf&K-Afj|LwJ@PYYpD{3+jyplF)Q&9o1aGfqFdPOx8P6N?yU1a1OfjI6HQr~)_`imie-$kL9%TNvy!bmQ{xg`^d-5MnG>1>jeI^V1f53}>kZb-H zYMK&FQ=DnaGyhDYdA9D{r=jNg#+Kiy@!I9qKaMtATigD8y7|9C`ITI|H@2ep?3iaA z_`rrTx1>8a5AVsh97))6C#z&2V8h*pgKG)kpPFAUc28OQ?9Gdyv2`wd?L?FRm0Phc zs~$i-yi>ou?-Z%-(l$q=De96+tv6bwE*z?5pKgenib#t+wf^X0$FR%!v1fW=Ik?@j z<(D=~`$(3Y9g4x?5u(u@4P>Zx4gv`40~O3N+On@UNI& zZMhCIq)xhvn7e{P-I@b-EI)t}<34}sDG>}Uvwl^%Ch*N@ zjUvL(am=@m;&TIDy_G{Cx-1($c6xTIPJ)JtUKe%m^1nG3N zRvY)o&mR{!oO$Q-4@^a*cg*uPV%3R@r@?{3SWO|!L#0Tg*+!Is@r7uDD z(Q|?;3s_^Zj}(Sor7n_`uYp?&*%XJWz>!)o;pYvs3{&P~H=G1TlEe=8TOwvrD8-?2 zG5VuZQDio4V{#~uu}~?Wqpw0x0X6|XlV_hTKtw8~&V0T!nXKh>b~~|GHRjQ#M5x6g zh~r0f_rf1Q*u?_vj8X+6_BpMzl*kL3=F6ybzZnOO;XyjzTg%r$tad5e$orU3x{f0~ zP44m=r9i24vE?mwu73<0Bb`dl>rRO9cw>lODtD?FGq&URGG(7Bq?G#r%v(?0m+>*# zJeY{|P#C3i)cl+VJeZ&`US}W~At|T}Ab`|>XFPjl zTx&HVc2ew)b$3Xglpv!8T5^068l5dLYcNf|TkuFgB|_A8K`2i*=J%Pa;rmEx2%`!e z+Dx%LJIb~wXXSO?N80b2)R<>%%wMTi!n2fO2p|9;coE#;Y+LSoWdTX820C_ogNbaE z9g%A}ML#zQ*2*^20 zgi1}|AmfD+JZX8&S_%~zQNb~PDVSxWqgu26}|Jstik@TcFqK*-(`@pAD!N^eVvaOdEwj)Yy=DRw@|AtRu3N1;3+5Y7M)q8uI z71#&?1PjDb!D9uVM+ovA?}d$u%(_*OnXDBN0_X}RoQntBGYd{;71$_26c%(10FPzn z=2Sp34axK333?;Cg^`of0$rgmOrpStyNZ+W@Dw#nl^|ysif*!S4~z?c(BS%oSP&f@ ziU-e0kY8_s#u^La^w0}Kvg--*SqjKb75bW*7in%flS z@Sq$8gf2u>;?bv7m^M9D?e9Fy#I-BvwMJB#3K`4-QcKlG zs3QRSwG$Rz!+9yd^)W+NfWmWx5Pvn;i3z6S!87%cIZ8o24L5`CTjapAyud&B8%r1^G+*5bpqyIifar4{5GKe=Hz^O%JCmZ9REI@{;Q8TOc~DqbeYE5#(#HhoWgfsdcDw1hHoUi zf3eY)v${1q&}rzKJEs@#riX_n^u|#_y~gk!Sqo;!i95*;Z5dGmE^`h>*v7!u$S~G6 zW?4dRIl~qT^{ZrvlPxbN-o%N$5&PbrlvsjRB)`F4e*^Cfab1L-@;Z&9*myIgJZ4&NYxj!;wL zFSS9oS3T@^>at6`nzp21t^OcA{(M*;s>w<2nyOqmuCC(7s?tt0j_;SI;Fj9sBz6T%Jk;6AbY!J{?R9+XtP+8Yr}a-u8b%u@i4aF zpFEN;Sk`!8C~E*>wux*J%VZmvQ0JkTvS_E$)TaFKo^9HE?`twG(zmY?+(ng6C3SfW zwfYKd?@*u%Y(pmXaQ~alKpXYwgqV%FBFHSD)f8z_&h4S*Y;2=ZTWD*Ukb$-1ju|`H z_rArG+`lYWNjz^cq-d&Rwh-gFd7_@jC}ruv^hUio#+}#kvIc@8wR%4 zS%EL@T;v)Gw0Uh7furq?B``H{&P99DBV`3^{5BZRzVAfF3?*D56-vXB*R zcVe)=gN6>E07wsj#b#_a9EoBCk;D+!L1cWf#~f^|&Zc9bP-AmksA5rfLn)`7H|vwm z(X4oUmP09)335H&kPdb}Rz4eQo0+_LfnCUyN@r70&(UHwH4s1m+7nQtHddBK*x%1+ z(xSnhMqj{;Qq99%7J_wz$RSDrt5aD5Aw)to9o}h!N+cYh;{b#&{@tzaj9NmpgNIz% zd|Eyhi)0oIsda?eSu}+=%DhpAU*C|?gWeccz=qKpd^dP(>7wS@9iK37o5r|iyvJItsgb&2yd%`R^D)xLA_ZD^Mi@;X3t!v6)5}drq{B9m5&De-=%pZO? z-!3?;Uq=w5=smc7E7)+`?B;<2iqFK&F6I#VZUlK<1)=Dcg<%yrqzY1|>jbMKE;M(}rYnXD4=#_;Ot}#*F zrX)aOE?0+yizroBy|#L2P4-(!Z(|y5+T;P6&y>>$VRRT6x6`J ze8Q#*wW#82+zkVamZ8aOzi5Xqe88n0XG-`&EuqLDr5Lfe;7K;2Lcq2=t}jR!tS0yA z+o{L-n1uST335Fo7zwp)_z9#>4f)b%IRQIkP(Thy$i?SY$%A^e78L?0ZHToAJfg#G zGeVqHjk(K*IM%HKm^&1NOBF!uZYz71RI`ywhp2StkPb%xWDRla*aDr&Wf0>q@dk|@ zK0SX)gO<2Y1oKP)p~9QRh`Ey-^k!sE)KYWAW?nx_uZJwOtva+^p*5Q&kXSYgESf~& z?)2EgWy3Uc4}k{h$Aq|Li}!lQ4nLc*PSh>V*1{{Hwid@JFmehDh{6C!J_~FvQdT+F ziv|E8h|Htzzi>9iOfR75R7qv6MOuPLEy_PKQ5$6;!j|*rMVlv`s3h@NCa=+?SNwXb z{hMCl_21|f|733dn_=<0`uiunUz1+(2e9#*Veu()Jmd5K&l<2PH~;4~;J=VPem8;t zyaxPdAmr~%;D0hS|I`QmT?YPNQN-k2{7K>BQxy4K5B|-$Fww~Gw#C1KLrj2i>sP>_ z1aBHfo2S$jEz^o`5&Nr`jFxE&p>6#=&lz~9O|WiDT0c$Uk_?&mIcG^KvE$G)^D2I9 zGDKp(Gvj4ZnMjmp>6Y-^{ll%2Q=H~iH{-)WP;y8}P!>O~Hm#)Iahp!OIH|*zoj=!i z@yCHuGsox(9w;+%hT|OJ`_UhthUJ^ng`6k0^M9xgoV%o~E9!gn!{CkbFWshdH(5H+ zc?EQ_^Z5&$lyn)9ozZ#k{IZh=-HKd#%FiyzD8RCt-W+`)zMeb9PmUz91;_X0uNcN! zoXdMr-c7BBE^2vjR)&u%?ODz)t~^7%3{NBSB=_TRHW`RzYfoO-H_eFBuCLSzZ+m~+ zl-o->DVWh1TeHq#Mv3G0$}h8XpChd28}OI9UFs@13uZp5Y(o2WwMe=HMy9lKdKq1d z^nTt&(9OumlJ*B@Oz~y*_cmGZutiEqH_~l1&dlqe8a&^HWbMkmFGEGpQC3Omk}40;aM-1oHZFh+5-(UY`s?SB%nPn3n?lKyK$J)!}CM7%4b% ze7mOCg)TIYb}kyEKO%W-&B>8oZlNj(#$+37vE>act#8TCg8YrpajMRoH>Bys zxRPiuU^D0}Hj+}AjPlrfM*A89#tQ&2MNj3xrcW7sPvcc7GMV{&a#EBJNuZQqEr}-O z6fMJZT(VS8^PJDb7y-aq&sT#F8phu^oi>RPGfroJ==0VEf+F3o2t+L84!M9uDP!v2 z(6S~*^6XD5MH+yqG-rd$TjKK2`}G6dmFcz1_J!=|?SPUG63aNK+4@*EfDXf}(YYd8 zp5yy#acx*Qoyi8kAu6e}e^=>d;=&1I0qeeQyv=+eg^ltrZ58rRzyub6<&xuiJN9&q zN4t7-u~>INEMXTllewl_y%5=G%Kxzhop~IE(CO9QN@=6ICkjEx?Sm=|bLV92g!==E zpA<_er$C&y_lj;!`=;aBITqo=u@60#-yO^8>wNxBf?_*zIl=)XkF_=jTjrm&SS=zToVDbOD4bufp6B}_TN>$b;2UaQ5ZIC%&A7yW z-{*gj+^@6x0vv)x4}AQ(M~nSHFGm{q%8Y_83quy5CzAGR`i7auG*wa44; zFN|*tx82=bA`@gA#R$ip&Er3R*xVwWo>U-a(yNfmd2OVD2dzIGfb2G&)mnBa;K2zh z+?FmW?5+_WICUYzs+D5fE6DXzBw>^ICoF~z%{n(ngNm;(kZvpCw&&Tn;KVlD=_`5P zy%yr8*CMM?)+D$`Ocg46RLm+8Ln)qORD2hQWR;ccj&8)xn)=G&@=#mwC|{m}bV8pN z>iX24W^32iBy*lHq=BPyW=I4wmlzFtaoBSky+}4|2xOL_lG?|djt&{3nxzZ4 z_;z`uYk&qB$?Ra&`$8%8gj`8jifsV}vOotmzevjU2`DLAJ4~}UX@uG<6uH#8{iX9K z#rB~A_`~TbPFxXFTs(o`U3xmdn*x~qneA?lucvl>xZ z`_R>u1cOd&G6@(O+$=rFF2w-Mb+R#E$jHqOsw!p4rF-G#7Z*&wD_fH#f$aVPaHtrp z4b}r;pSy^h6jkzgCCB;0;ex_38iIwax2O~5Q0U6_SR@<4KQeIOhcSRx&#>{Zfl`%Q zcn7n-4nC@YIYQOz5nXEjF2w+x%mTmw09Gh(I(ci5EWPFya{xy-P>`Tw95c8&06-c* zxEo^b4cnzi3cJo92R8F$A6!RfpE*X?g0njY;3+JKO&745%9lCWYLJq?{c$>~*_u%R z5oSoi&*g)ON&}c=!Ygm3#B!S&8Za`gMzjc*_C5v7?oFCSwD=aUYk7KcCXPcOSru>u zG-4%F$KZ`4V-yl|Aw#=X3dkP6rP)3RxgD+=!6uJNtg41Ih@hw^j?fWQtej)5(&u=G zfzZ(+k9AT7gsf*0Xk zx$>#SQ9&3LAV4fh-#{GI>>0Zi5SO+PsCyO&_fjN}+LTPJH#y}MRV$@qlh&76?TjE_ zR9NrG8b7}Hi<08@mw5VScpwAnqgSYdqKVV1&G)U!liGa=4^r*9@r~#|!6?cUlt%y4X_smJ?7tcu{|DFi z4`B3D4E<*q^bf+XKeLDSuK>`0$nyO^FzA_vX4692rzHBXb2t7;`}b2G{WKc;PXh2K zduxA{25f@SdnjTTcJX;JlCbb19aX_f#@f3OD{upv{5PVN*HQ~|&*h&4bZR-@3IG_; zj*!=Rbl(y>Mnjw|jJP1HL+dFs^>hF=Jh%kFvlR1z*}g8E<)yhWluzC1Tgz&4!HdC> z2?}?8Efm(&WFuD?_FvnO&*M?jjcakSC@gBM45)CfL&8cz2qN7e`16=+{0|tQsFVgF z(oU*#Ko`A%1VIS}?7tpJOPS9XuLwfn2TS|_w~+v?5lGDPM5q)TM zv>Kd9z?+zu1bj#f6y836L>QRo!A z1-WN-x<43-F2a+2eaX#^UtB0+NkC5WAPW&l-g07=3jbj~05W@!H>+zIOA998pE*eG zie2$^g6SM%{lm!;wK#4>!rAarha3zU=AT~ZV=ec?VHrXv4C-i684j0HY%H9mO9Z0$ zcRk%OUsNV4=^48SQ`RT3SQn6_>M~{=JNvd`3%5o9D%W(l`ih5ZU~uvFO^7hUUAu9$PMUc-9p8 z_SD{r@$bbyTXX#+k|y^=yJ6n8^tyAmTb&oq6B%`rl!Hwt2h0xy!Tz*ql&&EA7TO9Us^` z5r=lI*rbhOR4bY;c?vtdb`Gy7qZKeJH%Ypuo%0jp=Id8~C~Y1h6+=Aq+m6yOo`r4a zLOfT@^SP0-t7~!eq2D0riwmjqo_4|-hTXs)J@~vYo1_Z z##&yT-#4~oh2N>S>OE%jY3#xQgs;Z+PT5!BA3%lg=$9PkoJP4VMh;7a;5iYxR$7m9 zb*(?a)kiNvx+bDJ^W7x!rW>!bTYb4GqT09f=MUE#0e~n{gR$L|BBvnV3m=?QtjJ7| zS(s6b+ayA9EA5C+(x{t+72!f(72La$HH$ zAWY`QMERitN2msQsy>2qEvaB3d0c*cNY|gm$fE#BW}TvB<8rpli3FN4qL%wHVvE*P zl;YKjiqpDa1l33}yU+j1zd#M~tOVQ1qK-bUEyXQTY0J+kWdR-Ig<;I61UXOUrR~pk zGOBS>*^}U5{`{GwHFlrN*|dn*d_t{(QWuirk(gc(mC{DE60*Gp!ciDjH7T5>onZu8 zw>CdT9G?zr4@y>pm!)#;w4*wVw?1HIQKor=A{@r&=O-c|q>FqgjGtaWA&(&L=vM|l zQbSyt#iU9K+a;8mAEp<;g@70>q~#1ND9N;K)T{&E?5A*G1M6eBY9wci+x zQaX`srq9x#;EfWD$)!M6u#hYkdS?C8llAqceF=&PL^l8wK^xj-dAAc$W7%RCN!Ta2 zA2pQ>wdRYl43@~`kAbL2v2(*2#7rdzJVSxSp_QVj7!H&u(7A0>$?PjR^`X9<-kxWm zL6ur7atI6goC1bSfXp!fh-}Wz3!V6$$Y@~!0s*>yA!!CThd-tIU=PlW;rhO&hP8;^Op}$S=_q9bi+VZkOV+jF&l{6nrYKid zPQNp+W#tACsb&{}&Y9;mk=x7HSZDIvjy_Ppmty0{*HgzWTKPHFtIKZ%w~Q0dE8(++ z8suhVwfpiCv}N?}fwcNIa$Hrx^1B*jcox`3XUti+{>M83(_%>#CC5Fx3Y*5~+72kS z0fTJZ`ikb}11s|agdp5?ID~XlygDq2Tj*DxSn{5$7>_;hiQT&x=@xcDSo|3rSlZPDnLeTB9s+oPftoQ^M9@EIfkgcAaA zKh{r={3#FwQw?b`?2LZo}QxV;h(`&)4Vh z4A5v%R_CE@TPJg;gQ3AgkmMFjKMU7CG3%iL+or%Y8BjBgpomDx^bYxs&B$#*74jE5 zAwdA5UWh68$9>KVS;xcPpkQkCs1gNaF=NxlEa{HaoXF4ivW<`+3OJpQIwnB30N5U8 z)LtY`tFo$T1=hP&~ccu!rRNcPBB;0`yfRDo2mdJ3~wY z%&vR;cR7PomqNq}+7)^mH$;1riFrO z7Gl`%F&d>$(Yt*iryZR#81Zq=(Wp=m=+l!7ib<95{}aRGAGDVIqn^ZXeI@_XPUv4U zB>usK_~-jd{%%hEOZrOwrDY|*ZG-+*UjLsFCjNLc^nZ3Her+)M{fOep{B_X-RH7wX3y&yDU^E0+!@4{m}PTgxXiM5`A zP33(`57XWC((WLBY3+hto`>nF`L_>SQt8TN-12%GBqFH3e(`9<J&Q}*z+lUu?)ae-g!B;mPyf1q%9wD@8N_J9*RBXyLu;lSf7 zkIFR~LObHk-Z&Y)$S9Y1FHMVIdNt=ZvOzTZAzXxqf->s&L(N}1SUs5j2Fr<^-I zGb5UR$d(pz-}uNOmbl+>iNVu9!RruhWlz@ltbj5>8XZtEL75EpX(;%`(lO2Vv{D5@fS9s!w!K3*GYZrLUy z=S5gvA`^>jL-9#4izqB%{Wm_c&%@05^8N_RIZUZ*gr+by1^)RPJLxY5N`ZZ`)?(u* zo2XRfcjMiNy8r96@p>+25Z#B1zb!8ZNN4 zWc@N7*y4IUjP}%be}-MP&CwPp9SK7EjUHiz_(JT)SV*3MVntjQ=}a3hNsj;8x|h+0 zK_?+X_3bQ0I>c5TyJr^N8G8U3#(X(0KTCJE_1G0P|5z$zZ5Mk;rkumzu}g|to#^7z zVcsE{{O=)JvsFry{lI}Ahf46J3Yo3!+k&S7972)$wp&XkdTbNN;*BfR4m*P4PPe4s zdiWFx!wGk+^&}yUC1c>Ll*l>t9P5u#`zaA}9;M#-(vRSU=O*@rIJyg@H zwTgI?Q@T5;_A`~i{0PuVOMMTY!-}Q(UF+XYqvpl5Xc>*n0k6t!wJX(}=tHW3?6iw; zrrL&cyk9!CD-Nj)laMpd+&%U-;N*se+Sr`}h&4T#rWLWLgWMPLOUvpV+tZdFQpk33 zw%4q5)`y+1!jM{6hf{Lg&A05nPgh+koiObntz_lqMLoCa#78j3(iSe#63*?i3Zi zVwXu~XRUfxeYw?ND27K1;hcb{E~hHmeH82yYo?N|P7TTEWRTpX^23}(2jKxmunloY z-S+}O#j7Q=j8*tTmChxRjrp1kZTzqxM|ka4-mJai1T#atdW2U^kWO+P-mvm!P7ZZ$Q$id*0!VHM$NZ4Od;7U>2s*gbs*xA&7NDv6 zc~&(cVTa6#Mn%o%wGfHNeTvS;6|bZJV120~obH)ef?nD@(-M0)+-olZn-ajiB6s5j z{*YL_e&XSsy&dl(OgEpJM)D)2r% zQ}~ZMk$-WK$bV%?6ER--H)4e6+b5gy2^Sgi(ABv14fi$4~F^Qd&gqsuFbyiv)41C;Xw3P)}S-kNkKQYW~Gb*)Hz+U3$t z;zGA^x!1taqK>t^>!Db0}(9#sYE#X@u(!4ZPc7wyeb$ z!*B}mi*_k#6+_6B7D^$xt^(Zc<`rO&puJUUFnNEiisQvnx#q10Yqp0GGVpi7C}|6m z1H;qRY@~BNEz+&7%eMfAi(#?=IEe+abLTS)?AV?oTz7C1H|#(dE18CvcCR(C080gn zwYZEGSKx3k+9(1Dm8NuYe-{-DE0mW?&1cC=7X)S7RzdBmRT&_#y^hKOCl?y2S$LK)zLN8mD&h&er0K!MMQIdOi;#{5Nf`u<%qf2{&E0-T0#|C%7K${?ap3tWYDdtajl&+)Q{(QER1^# zKVP|7H=}-3AnRX21a-RI8-ACIQ9i>LvZ`wvJ8ZY>)BA#kRDNC5QiI=upld2ko8@9g zQre3{9=`3CD^*odJ9T5Uq9AbKvs~L#XZyoO&)sQclJGGAwa?+NeB@3u!yLrNeDY=Sk!>12_mAR4M;6otJw%)Q3IkPq793R ziW(3VEwxDq7!cc_XwlN1fYj2Kw!vCUdo1(bJ)YO;c+T|cnVB;)&viZg3HkHBxIg*+ zzDs=R1UO^RedyhrYS$fgVJAz^+J+Itm31?4r_n$6FL7E|Kl6@D?62CMO}(gf#XDao zf9j6vJ{eHWz)9?oxjM1;FCIK}n$44H5v#*Xg}7X<5=AOS{!qbD(J3)hKw%3>0b>&N zcde!LAa;RNnMaSo#Awv_J{>QgTNeE(8mPc=N@u*4h=P!~r-5M1I6A`)!7{pgNv9>) z>O`fhB1+(NQK%?b3?TxcnuQTF3R+z*DMN#pKPiKtfJX)JYcuPl_yYO_X3eaL<<3C1 zj;h%uRwx6wd89SwQqv0%u0;B#fEX_ETbY``C*ppLSwmKFVCxILmI4VO*ZCqdr_qQ! zsG1y{CoG@eXsn8xeoWd)MP1%A6Ct8l&X{S)6sh;d2XM15q*|spod?W5N~ooARO@3NAm@^^CytM zR$g{&PBl)d^{Z5jG$W#;HbuNIMC^31fp7^0{Kse+QY68xpEXgMbt@RNG892!eqOxG zg4@eOqPT2C+@iZ>TV$9Yj~B$gErw>gt6T*-9^vG}VZTBi6i3~R*a@_@acrPSsl@Xa zwrZXgL?(vz6C?cxS?-;frB=TcZ&%9ku<08i*pju?O z2aoRI?P6?}lOksq7aA!>GwzAhq031RWVJt_5=TvheEowfpV6_)?T?pMC9RGe;nP0q zcHrrXaO;K?P7MYl616bn`aB7Gx!B~`E`|F>NIJs5;o%EF<;%?z&hLxn`nMx$KVCPc za01LGUQ*&J&)F-NW9KV!urwikR)%28V!Xphm@Hc^)mmQ|RuWpZQflIA3_#0>5b9yK zz4yThztT6kNh{(HK3+Sl{wsN{=43s3C!uh2#F}iBRZJ3 zPbk`NeXiwPR;;pOrrOC9;bs;0hvw|5$_mVKzF1H;FEB5(YRyzGwNDgRLb&HxI7)N7 zXV`J_`#tzc4`meG1yLie|T_h0xMfEA4Z zD{6ID)?O7e0@zm9z}1}%r0J20I))GzPKG^a6Y?kbXRj6Py8 zN3Dp_97jb)`uC2iaL&xb9J)mB-joVs4xVkzE%%p4 z(R&>tMmSJr?Nlk2D10GCmOy64ndF_Em|m1-2p~ip3#7m>dUBEe`3=Q#D1{0Ffl*w& z66M}TjwdDA=L;hf63SrS?>CC&81E<$7v@Bi-t(EO`WeiE6H$6D{Lo!VIf{~*UP;KD z6;^KiEbp`mXrO~s!5vD8@hDIrWDx3Yv7_d_Gb<@?q2TP0KwPwL&~I^_OyjpCrAgqP zwtK@ZLL3K-^uD3x8ZmWk92uNN0b<98EaT-@Pg(5>kaL$#2BOn*Z{c)pca@IIpXo7C z!@}z@r+A?vg&zE?&d7ptKpy3zOuc7udzc05UI)D37bk?pgiNIen*D4zrGS{6A{TfV z47Da)c!~}L#trFveNAKIx7>ohW-4_K(NZHW@~uvs_ma$C8|Y-02Z`Lp#y(P0boc-| zWJvzZA)KYyA1Lmb>7Vn6{xctXcRrn5;Qi5Tv4EJnBL6BOJ#{>m{HB?IhaJ|fSKz`# z{55{trcNN|eIg4_^-l1-8@XU$geP!b9W|pORwaLKcFN{{*c5rCE37IU611ay-tPCn z>IhoVSu`-$+CIHlg4*`{Or9VVPL1}~H)e6DTg?z>lidJx&nY=(-Dl6ay-TLPQE*<+ zQKTuA4+V^#qgE*i6Z6Xg%x~ZpP1{^Y^lI7zt@_hm32iBr|HDEFTEJctIn4pu#=v_6 zQ<$zgtt#wE8H<$&p^n;k!~;CsY8~J4h!uKL{&+Qy!*^_x!kwAJxJ_J$2Rp5DQC%~o zPOI|Ilpqu9_~dv{FXhvMzF#x`Mq<+G=#?5U%Ch-{TR2z5|8J0Fr12PoGJ6}qRHR4k5{j-E#D zddBp8T#g`E3PE_Q48KSWh-!2w3vg$sWok}lF`BFC-G!(P^~}46-ZO`Ty6IMifyD;I zf^IOO&;Tu|Ej&>meAoRb=T15Y=CTlETJlqOS5z(5h27Z0s4y{ zI?*d+;-f^4kis!#`XtInDjNnsu8@LCDR!^Umi~nI5e&>0pu4(Q23=IIaBeR` zY<8Q#i6&33^$j{unEX5>}tJKKmFI?P=ob7-)`0(MENH`g7Z-PFhWFC;ogxTVDSZ*HGl%y>%CpJaroU70h6SV9>QhnZO6N3i^JQDKsjB-^6LIx z3+P~6%GNQkve}?bP%!{Q!7}PYi;ON{;D$B$xA+u~&tl&SX%Xc;o9MncMTiYEZcGs? zZa3;@3UbCJlIWOQM`@_w1*gYx8>x?7P{!K80ziNtH95aG1!%G}xGk!vJAIGUy6Z*z zF<-`8Wr%q0zp*v{9y`7k;{WY&`nP);|IlUn)sn{VC+hy!-lzYo0P$~6)UU=g{`iu{ zYrS*-o%ZG5>Wsj)#_yk~|89BlE1mJxiTW>gaxc{% zHOcGPyCzyTH^nM$Gr#HB!HjiVKgXmaddr~H(y5We z7?2$6#+8Y$1QO^;X0a)HlCIoO=Pj~mVh(RxcY7 zhXo%zH3fd|rEyzi2<*>(cK+v(*oJuyL#r?ePHu&bbH=>5hnTZ##xDMl?YWcYb>)LS zjIZ9@<{G@B!RLBIB-TQ7+brCWHh=R7r*Gp}o1z@6MunM}Rw;DQ_jElO!y2MqRv-@+ zbPiy>^iS3M77ld?=bxG+nw{R|#3aJ^Q62XOza!H_LNBn>o0vy%N(D?gb$2NAyxtD> z+l(U#9BxrYaITRlHT?nlQUj8$%M7!)ZY{L)1GWJx7tGckpcpB<+s?=Cr9%|h)-jn1 zzm4r{bzg`B3tW49Y;w<_QjQUVEaXCvXH^T6+;o`+84Lm9f*=kV za{2GJ@xf54&Ikr6#7{xUK+02uM^|>b90qBVB|-68@*s{*gkbQoFnL_~Sl+$FLlkIk>{}7AGM{fyS z5;KS0mw9i{>CO7_{*T`8)<47U1vQ`|Zs%(xu+`$; zJHC1KK%D=L!d`qth2Yb2-+pOEBz{H2@OFo>`$W~P<$@UiNJJa<2b^h3r!KhLnx_78 zW2@v&Y;TwGqNCQW2Kq^8&svyc`kwKALV;?+dBGdUp2mH7`Z%xOZQyfw!%xfX#6Fji zKP|ofd~7Q?j+O_K$GKG&^u`|nzSHzE@b9Afe3uTZJwXi2+EIw}SJztqysHqs++cDs zfYh8)EjEX!L}3f&-z#gvlE(Nh-TJbi0x&jJX!@p$)aCX}hf1>OoV#pgP70!G&MV@C zyIRC2Rf1JPV@-~Q@v!TgarpT}6S39`^PSe0t(k2il_i+T4da@Gl5rTrSM^wX2|s_z z2!B)4=c(3Kt?g<+@#^_Oc?`9H2*K}-yx|Hkfj|gxY;P-bzLAFevTDQ6CPUex105*A zl$@}KK`b!G?Tb3%GduGY*!JwOscf@N;`&S4Ye~L&kHy#OG;4t5O~V#!FtzQ9I0=E61$vHU$-- zky^oFOrlVcSOkK`vQJT$TGoYC5G{{ZreSEXGmZ})!4xOMYM0oyl!|NjZ=K~MIHN|- z`w6Qq1dm_Zw)V^#2KwV}lMQDFBELt{aOt+gO>eLC$tq&^UaMV+LhSz<@36QkkJCFJ zD_4h>lCUd9xd>N#OZu8e=|k%x54P{03vkE3oUTpvg>e^a`<^!gU1Lo?cV+ znX7>dEe%k4v6?H_pn4-=*Zad%Mc9?43i3fB%yXSyLGDR{etwFFE6~}die<1sDR|zT z7!_Awa_lg`LrXvTuTNCF;kmU zVyv5udOep}bUe-2Y_D0dU~?4~8RSsN~|>)^hBw$tm@ znSym2K5q+!Qv$OtWfqxKw_Vp1Y~8iQq^i7se)&qxNI}g0+^)2!Eqa>M`PEzHSKY_c z&mTF;%v7~FIo|KrI7Hs09QcaiM!B##I4$TY{NvTk6cv2kdy!uu54&!`%=sM8**FqV zII{EXcZ*Vn+3RnXdOYg0KFCk#JZb!y)QT_`Y_ih(e4C?{l^#Jbhz6zM#Nd5SX!(P_ zRjin5j0e3o(I-r!PjXv^3bk&H0vY3cdvnskp1l!Dtfyz2^|pUS!f2wmv5^j@cT+M_ z`~ynqgES_lwVF0R!HDp`RH7~SJ(9szZ3)(9Dh&6HKII! zMMOuU-iXk)g9qKWmcArJqi%D%Q4Z5|$x|cdI;KD>;>HqF5*%45?ni)M0JZb3?Y4Ng zV%b+`V31ZZK!=*A6*y1S1Um9Tds+;!YvK59~H2x6pRT9wlPgD6Slh zM(K?6w(7MN?9o7F9#Qa2s|gL(Y1Ie_NNfjfZk@s0*wM%s^k9p`dL!5(O~77D`MQd* z09GR)Y;R_oR*L*t>8@67WK2Qw;L1)Yy{9(S*|BmgjI;clN>w(I$~%SSxOB+ z+D86hpq+;gT&d+D+};&mPR1s`r!Q~BPc%=lBS7P!PD|bI-VQ&mmnz7r~+g|Mn56HeK^tg-I8Lp zTe|Oxez#4;WiMQpz5w+(XNktct+B)om7_>(>~mRHC@-5`BLl0SN?HHX=RC5hqs%!g zPhR#z&#d$t;wRsKyTm1XPZON_FN@zDv2hL067THEmc9EzZ&U3#2JBoA`2Z0u2{ebu zsT4X5lVE^CIP#g}>!B?j2-MSnea<~%$ep*AIyl>9)Et{r16{iubpRP7G<|#HjLFI8 zqp~^V3&p?i3*f$iJo=CZPgp($`>ZbnODkj$Peqz%ojTA-R1K{}3Uw!gF@jQ{sOgKF z-@OAAaJWNhJqGx52?G-=GLa*HJeM}4t9rrb<8Ms0(PxJbMn~~Uh%A^NimU}1Hwar~ zFmK#=0Kxp2R49abxf@YOA|T{e{Xp_OQb znA{^I*A59D3`g~4DnbwXrEd1GL*1-9v+Op|I~@(B^%CK{tcR(ppPwFI_+p9(+Lh|o zqr-JXA$avX+}a+9(_!ENguSKQ9z1+7p1OIy_wGAx1{-{{#T>9DR9p3Ju5+6e=Iy|M zDkf|Q_bZzhY|YN_u-V}5!d@mj4YLxbqV*g40#fAYM5>9P9t7bE#LBC2S59v~WyFSY zArZJ{5=k=9tOZwR>lBWMq-M{jHi(l}oIw+QjT3W}eYtN!w{Det%nCKJVuj-ue*WvX zHXZA9RSx>9S7VeNKgTngW@{z`Efzn)RuGUw!Ys6a)3p+znpkvkaR z+daOLl`nl^Bp#?2_}tin6-Tu)Ekt!t)Yi&WTcrL#foiA6I4Us(;&^m^UqHk0>gm!l z*C7L&vmL0|$~*0JPWD}ZdN)>#@}fBm-rjZA_@_-A^9OT%RjYq%68!b>8}xSo4A>ug zNngP7*elKMwGG^tn%zt8`h%z4|EVa+Yq<6A?cV;g54r!0-P@N@l0S0J{e2JM%jw(y z3~Rln(7nX1S4Z8K3f(Jt?q!DLpE@b_2hr>0#{d93^%s+1S3bhgxn$B(>ye1@!qjv@`#b ze`0Y-M6w%M*TDs0(-~I$AvW4YmMHyxDF-utWzeA zx|mahU|%YbL3~JNqw)w+Y=K! z7$Zdt0>SA(q;t*%)ZFHl&%J9%MFDM9prCrW5&D*f(Mt@`gZFcX+R}R+mZ;J!eq^c? zOr?PAabBn#tHM3MdpPa_Ihqbaw{UbI-=i{#(W7igmq$%qx&eV(`~uYPeIY@|MJZ); z1JaM82h-lsjH_Mqr3wWK#?kS>P!Y#M_stab5|(ybE4Y0sFqE*&CbR^z_izzN2nY}# zL0w!m8}VM6+J9F)M?UC}1{G9Xc1#An^CPlJ+{jY`$r6IMEuAOJeY158shV2rPZ$e&C0b8i`>tZ|C_10SSKB^bqckQ0>J{mtce2B4u zIu{>&hnQi(Cc1-v!X5fxiJ5fNlUc{nW#%SvEX_4>wk5DoVnOvCZGcxya3wEN)EEFl} zxb|>w8k)fPe}Re_CasbMobS^#e2JCWyv8(3{eCOxaSG@CJ2bz=uiH7e|I_2aZfuAkI=899b9`XZkQkn&2 z_3(fmDMps(MJTmH-05ceP`4RFJ!kQZ`o3w&5Zx)^`ik@i85sLwMcf-isB?*FIc!&4 zxJj?rz9p^v!#dv-NrMsRFux^()rQN|MOP4^xFuIk6G}uXru%qPg3Ocd>7T)5{Qxwb zZDB|owD}_nxWC?8w2QOy(xS`f!oE4T`ph6y|9}hMn1IN_Hsd6t3de$t1D}hHnP@etx!Kq8{$>6(r@?150!cv)F zu5km<5cgy6C4C=9Fh-SYOQ}7UzJMG#CbQZ^S?|;5CtO^WGo4Glb)l0WXfQs>AB(3+ zZ+^6HCHddfv$Fs=^!;5|;LCB^-y-7Q)#d&mAHJ%jdMzyS&pze;H}j!Nr2@3LS2gSh z4%7n9zJ|lKFR!-$p8nR_+Ir!96Hs~jn)3DsH8)@(>>nb)&&KY*X6XBOb+*45l?Cpy zufXqBfcUla@c$n6`#*vr0EY+v;tKSOQ$2l_s5~v{jog>s+SXz@Vo2YO8!%?-TW)PA zU)~)x+$1k^W2ZeRpxeMmk~ICkBI65U`@tyqB85}}uX1wYx6>9;@G6Y6D6h@VBb_B#loJcPxDu$-zMh1UCrMr?08)|zyr@4#01o%Hzw zsda9gIa_YBmb{<3+`o+cL*l(taUGR#?DO;I{RLGV$sv8ch-K~L&LUY?+Uy|OnP;6?mWP%&Ko!{SiURmJ89_+Z6;=4TwSoqGj=}E6Qz_P_ z0otLIyGZZ11L=I)jv-#0=e`_nzb6kz>ZKX*BMAJ`X=$8)aSAscGcUzvfG|`tp4X-X zW(Dn73b2NQ!f|C_e7DvJ*G_R@goPr$m9xlhP@cH3hb~7|L&SjXUn~QA=G-Vku;xh7 zQZ5(+;>b|>c_1)-!w?sSI|%c#at@CeVhFh}#s^?$)j-i{5v3V~;GCFIpRW+wxgalg zCkR?6ylaA&yx_&u(B1{&>BOERPmC6iVI~BjJHM#!T3LeU|hwrQ1zVoST*QJbl#Ah@2+pJ?Zw4|j7kT{ z;i=2Sg*b9m(4JC|VvK2KxO%Uf+#mPhtyajbF&77D~kW#2%0r8S&1{!+{QUr4pPSN|l9+6bZthC7! zZ&428B88#tg63X)QeKVf`)I-Xis_|pH87`aL6efUPe@K;9|wKrV*cWK#ETG0-K>&Y zVpjoUPMGiBKKY_R97!KNh?%{|cRr$rd9%Uj)iwzDq4ruxid-324{P%2Y8`Wo2@Xu z+Y@_UZw@AtaPa~rwa#Mp7u(-iHY>;X+ujQo&E!7M7oY%j;G*JOIGm zG^>5mr!^$vI_;QMpk~1}U0Fc=a9M)%Gyk_i zN_YAty0H|7C09a$Wwm3tl?=os!`-(#OHO7?ZHn`J0Cl(M;DYl;=)<2o-J4Zj5Bos^!Jo(3cUKO) z(?!1l;M`Jqg`isu@BHLRHqvcm-pKs+@KPgYO0QW_$M^BXqkfx=`1=g>{{*tR&nf?z zlO(`Ez4d9w1-R&u@okfTqnqNIx$pQvV?U`uLOk00aF) z=f?l5C9vPeAb^2teq|uKzd-TK&f9TX5)-*ssB2TQk8;yX5d+r&28z#9rF3zO5*{32 zpt~Zv!KfxmGshJf<-%VXXw_~puMguy;kMBhJxhUMoN|D^YVh!BfPuc{w>0w|BI`56#xC6`z1~JnGy1@ww=ud+-6L zzaH_5OwFGvI2HK?%Z2lyU?T4=Iw!6y`YKNF1L;u?50d1UDdrmXh{nY5wM2xd#rpjw?)Ks}whX!Qy zI5Wk>`uOBoHPo1Cn`smL8%V!HN~0vv&sAsB_#6e9kW|O9rV3h(z;w&Eghk|I*{w2@ z`yQ!S;mJjTm9+Qq=6>9gDY4qWIDv!2c%m&^z& zo3xo7!o>@$oQ2bRW#h$CA`j(A1#!VBcbO5s8}^l&rj9U>A#)^Pq6V8Uwj11YEgUnp zkm{x7=tlH01j+1h1q_h`Lcl>ip(uz;7qOhSy~}tGMnG}-J~%c#(Mv4ilzWE5Xo#A= zdT_79GTE?&O=c4zo^+I*hk+Mz`#o~Io7A*g9UTJ36$lL=XS?wh8u!4iBm}20t-%t5 zp_dRfOTuD2wMIGcpaRCWAgw&{gY9+TBoChyVzC9H?XdezI?wdt4x&Z|cShsnN}8Vi z)QI+>6N^FgR$wjXm%WUB|I>9+px1>>H==hmN>M@iBV02fvXNnBMOX|_(tH^Y6TEYe z%!FpD=;@gEWySq2%aa2u=SF;6Iq?tPu@_?;BB?XI4hyS)F*z(j%46uAlbyFvKAJrK zydJt&qRaZyqPPz&lMoB_oiAnvIX7l!0H?qEQsqQGp-A;uHm0ibu96ntzEsdEzvfzC zE2*MIQ94w2xIG7kSOJ_lB`G<&CWg9Sw8$EKkSkyCnJ@)dYB6;^O>mgcV!+9f8JM>} zilv9fItwR-YR_63q>{C_b-eF+X^UL_%a7m3P>Z#&Kp_J&^=IDGe#FtLD{o-FyA5$Z zpi{9}JoL&@)AI-VB|(8av{Rjla*hl4PvK$WXB)KIqUsZUV&qafgxt)5`{#^fvMuAz zJKK0Y7l0J4yZIA`D_j$KIT#%WRCX6?qw<8)@C8xFNn@*H{4>WZS5J?-$Yy)L*#@qP zi+=ac9-wmV#UM^tV#A#;=nMQ-3aAYe4wpoH$7W$gv3bZ2>xqLA8tG6 z08pIg@O7yP_OlHUCF7rD?YPBMx^#?e=s$wrf z)qhpRvLDo9yZ==c`=INkDmDtJVpcDnX6E>^bt$QxWAeZ=e#$M`-#0w?t14y-MTqsE znSXwq;$s1-T`a8>JqI2r9><6*is;X2D|QBt?@9bR%Gdu5y&|r?lYU;x!!_>e@X8}A z-W+P;?*LS>db=u~`cf5>l?Uw?8M)w}pc`B>Rj5x}qZbS;_iGGkCOkIca}A2bt_pe| zHIBMUc!%9@t^YFOY$5~2JJGC1C5@fIWfFTDry#h9H%}9Ce^tedx?@9=8L8+I-DfsL z%n!ZEOTwyG0@0+4J^q9vNvh7s`)3QTWC>U9R=TzUU3a5fcrrP5Rl>x1=r1j)M;{GS zmrhIm+;a|>Yk!a-__o<&JT@qOyds&}4EMKhNbTEluVVSLbBe=qY$m5%P^zGW@d~-G z8TGa>;2LF#{{?)16?2N?Kt5&`;Wc^bQgTHUZ`r|co zUks4HyXP`H=JcOLpO<4ezjb42YY)5>fnFK-Ut!RHU^^c0@V}y>|3E*;?OQ{y&GFs4 zckg51=l|!SPe1+ii}Bkpy;pyH{pOo*pZ$6g{Bh>DwIDC=fxnvd|0f*#zfU}`{tBSa zyMMV28kI=5`JDn^vZ)+$=+hg0{*K4Psp0t(=C2;;<>#MsnjJ9{G3#r79zpZQR(J#PA>vD^}w_#CSbMG^84jFmjGe)3R1H6c5$cptEx1XY+fc&FEvC z>~_&FPtW6M4?AuMH=q364}Z|5;O9BPgT(%-@XOkoFgW&zU;KH+z{wNmh(4L;m6AW3Y`pVAY2PnOO5*_9 z8>i>OpdcNHrmPpDeHYByl(=K42&_ZsG)G{1e~h6x3Teb}A#aWtE2-P}Fyj1os|@lF zK@@8^rc->EPg*h}jgy`jB8HQ~>Lj=Q8Fexf0>c6nHy;i2Hf<>lNJvuBke1B|ZzbofOTGD5q;>2!CQ|C2Y$7Y(gT_I236z#~_Rj>h&O?O=Gq0SC5ft-n1;`IW2)&K)gJ!{k!TEgUR(_+W@}! zE;ie0a?(Hv%}^SBm~Nq}Fk{2cQB(v0>{nS4#gc-8v)GxXlkvVcrRWxSpaPfk58@;kOVqj*PW)_yrAor_4U z1NsH+eG)ixwWy6rIV2U(MfR06SR`VgZmzvBJQ+%Br9(HeRbER&F{?%JHLSEW@AP*}8^ZGHZHNktr;PbdN6LR?ND zmVFKGUjW|o#wP*9M!Lh!*%$^>Qjt-T*VT%DV|!p)4j0%(+7@6$F6Fc%2mw$aY>auL zL&ikpl7IOIwTBpn`|89I!~Q6N=TmNZlmYDUM#7BS^62u#z)rlTK*cKkdW~&PaFH^A zXZw@TW%P+#%-N^UNRxzqyPodKrE0yDCD)1AQtnt6(N6@3|~#x{O{aq z{##J|_y*|H9?-om%pbfE{+A=--z|@OMTx(EFg$Uh)Bl&h&e8mj9}fX0JpZd4CJxPQnKVm!^-b<+-IXL&EW37I20Yxk z?nqU-D=loVotl`AK#<=~A)W8PeZVvEy@VodAAX9G(7iGnJ*%#oM%LOTtg)!_mg9a>4#bm-6p_ zzGXNtJY~LF$}D$^nIy*NHjLX4!Hr{Kcz<;Q8O^+sd1#1ra@u#0@j>Q>N{`)Byb163 z%;Rb@Z_;*~Yp$0lDaES0Nt}RovBjqjFpm2Sm)z}V>&!Kp&?5;Pe!$Jy<^<$U)!lx_ z*ikJ?eBTV1;#ckASA_U$tmsgSxi$gqEHn+e>SUd9z71TEf_b9xF4|{Lfeq!GoG1N*dJnZg*!4 zF$P%64W9E8a+F9siwl&GN%cnWtrm%&FNGrpfy@{&kLE7m4$z|Y1?q^cqeKBIpJl?p ziG@Hk0Hm|?A#Peug4@lDyb34|W;J@C0u5;2PY|X=hh!ozCNvBKppzY8W#j#8DS`Y*eqI1FF?spab$E|t+DO%I4v?N>g{UI8itRHD6yBX*08H1SJ zBC8++C~uCwT>M7iAB)@2Kzy9t~YL|85rpVS7W*+t0mHl8Xs2p;$?@1zgg? zPZmyp2%|*R)mVb0vEiw^u6BhYYFl}+UCgaRWc`$SWG7ZV5WC*t99qZog- zfXbasMm#5l;nYTihe(b4u6aQS_La(cI06L(e3E}0dnrAjR-nZcJQ*9yiMGVynpf%?`TUqGr)1w=x63RIuEPhpJ z@%A1$?R0NUwzKg_8cNZHioG)rW<-4)!6)cx>X_kJvY1cN>Q#Z= zK$V$I;qqj2jN6tbZ0wvA@U0U+bbn!6Qej=|`_1h8Yi@?0oM}I^xINFuJFvH=GBfkk(r^)M!E+Fjlb}i|9f!(;Yf-R`d`Cs;?S=z&@BZLF znJA%q>`#bsy{ZM{c5-hWUAhDPW!;xcH&tfVH&9wQ?B1k^PM{T#N#QTqlvZZTTuhdu z*Oi?GRv7NO3GO?YsQvp8#ntPq0G#X0xG+w9b?xEyc_m)tl-;YV`$34!29>`!4J&EC za_&lLnO|5a`Z(&!+u2L}vO<&M2Y-!c+GMWtLMu|+70%bA5Nq~@Vpr8okZU+*dcHx9 zGwTowG+zX5^mF^fZ3Kj%vB9ngz^hegqUbGsG8h>z0g6IS|FuLInA7$iH6X&YU@DNK z4K-}f@9k4e`~Z{)cbk1gq^h;;S6o*v3HFbaXU9AjwMUU_yH%yhymjN`C=RruKeW98=+>TaYUh^utEw@p^bqGxOJA_M zsQUW}k=L-MSO)2;_FMMd0QlwjMA)y?M+K-a=&#g=27^#A_$wvwrT^=t66oXU_P1gn zfPBlAE&C(s%-`yP|5HY=KQ0FTv$Fz6sujPzjJ`s?KPU|TtxfFZt@O&3_kKSs0NBKC z8V7z0dw*N~_A)E*TUGE6BH!PQW4@Zg1`?US)dPWu!2e((6L{|b_6MN8mcJ;0of6$= zZHc}5aku3GoAVp}8ev)WlA;gGcU%rR3AqA2%+oDcROYyOR|% zKPbD~B4*&-78EKvhk0^73cGNmV3GHsC;gJ`#hIh@iCz^o&z!ii{gu=*$x(1>$BZufMbt?Ve8LDcxKbevigS?-t94i}_vgH(qdlbR5u=pI8BuUBL2#lKOShYLGuE7EwCTgm%F54AB)xYpYF zDGb&$FmCN{#LcDq@aBS{6QA8M3@*}uLEL#1$mGZ4}y-K z9NL#+;-OFK#`}oTR@n*e?I{D4u(i7h&7o^`1Hm`6xf-lXLNkVT!cc?=sNvB0^D5a) z4NIM)kM|L>!7$wRXfJJe`zUA1b*{kLse#F+P=xd*r~$iA4wtVGSC3bqJyCQy28okFnCeDdf=?s`Y{qZqINtG{ zKlH1oEN=}2Ip_nDfl(m3f_8Kogrw%_!)~Do-Cu791ydC!|9Q$G!0AQmhYp4`HdW1e zvD&QiN1z0;dfwFpQXDmJgo#13BRIf&UTQC3+|WssXWw~%SB}IEX@RQZR-l9Lc9K<2 zV^2S=q=@Nr72$^g%@G|uHU8Y=rnxqTm;fTd@NZt0E+EBBZc7f{u}2K}&Kh<6(vy3N zN?jYdj{E)J)Co=KjbcbjNPz(q``xi+@BcKCfSOS-I#DgaCL;Up`iS1P;oa0iZ74C! z0CKF(eJ?7;q0#`;{&I19gw~Z<&4sfp+>KY+meA<&vfi>L{Cc}N6w_Ii0*of76zJ|| zv$WauIKc7+A-Cz^-eX*3o~+i*nfX5U>bQEVb{sdLSGsX{*twMnCQ_wc>GJJX9LFFh zWY(+vMMg|E07*SIc#zbnSTMw#yJ?4qL^NSU28C0bR`vET2E@;g6K18H`CcpuW_g#% z=}Bo>@aV8Qt7m-t1~)z+vkAj|!6S$`Ve-7(9qd38seu~5=mDu}S78iwT2mGfP10_J znFvy?G8@ODMrgopF7+^f^GwB#9=;sSWFNC62Z$NizG>4h4j(V#0B6HoGs^<=1CF+v z*U#2G8EN}c;7??rQw#XmCL)~8<)Qd<^S7!*m#ez&tG z#E76-)xEF@+@@*?JY2X5v)>lyPrYBa@5SS^L;5u4&Jsj`P?@1(sPCZPZ1YW3tQu%r zc^bHUqRRZ4?Gc9#bjje6S|7K4S`%}2M~mQ>b3ThJp>FLqTtEGM-0T_biY_rc4CT*% z+puaaIc@Weysd=Y(t9+E?P4de{>N`1<<2$>TIyBURpOOb9FFL#@IidHKP#N3c#dtQ z@E{rQ;V)pN^F``hnKx5{3ZFD1@G zPAHQJy!mqRTK9w)bHVn)(6ox#LOdso^%I6ZS=rj`bg3Th99%-e aeV+f&@3u(2`$={6qFX=R8AhQ%i~m0w+1Vuk literal 0 HcmV?d00001 diff --git a/client/public/images/logo.png b/client/public/images/logo.png deleted file mode 100644 index 3f8f898fc26b8c38ba15d6ca1dfb5c1598781475..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3246 zcmbVOdstIf5}$jMknjkJFT{xC3bgAJTUKeRwYfkL*a}NQMFk~7K@gFsSU`bXM5EMJ zl&@M{5!Wi(uJUT}6CaR^kFtxdvL8~Eio~TVf)GFg0U_CQ3oVVH?$BSpWczNE~=(=%*|3P9FfaBih5m-^as)P;82ej9woBFl~Rz{)OIG zNn2IJslRxxw0lN4WF4P>&(qT`X2NIwQ}0;h%|8^<$MqFuji2aMeomvg9ad9*eMJyA z$W7RfZTwUb5Wjz{`Xh_kVV4_AcJ-9?JZf7&MlCxWsdEC~^Z#BvWBTLHGhs~=rhe|= z9{A$c8`D$Bk~m)htrh@GCZ+_v*LTbB6m{6f+?f4YrJd`?$~;8JQvh{c5&@}HNJe9$w@Xhd#x|vF%+7q5D7GvX?R}o|Op-T_&|8H(oubS$znPl#ped@zQ7)fc zQqmSxX|K4zvRXLlyXlt#_8s(}g=^P#`6kKRZJI)#_x<=`#Z%V4+|{{pRJw=!vg}^V zhuXH5wx87VS`7oR$9q$uTd3|3YKvLeM_w`@U@AB*v<^u@9CL;Dip>Ddj?5pHm@EAh zF}d+RzMkABu03Bc+i=lNgjkc}J(tIO#Kp!&Y={SsO%ZG2BR(M#qT{0oFCSn3pfu}= z02V4AncI@Yy4HH%4JVe{sy^PZXQxwu>a0~p4N>HxI+%6zq*ruqKyOTV@`cM!KEHTo zd#fg^Y?r`m`jmu@c70d#Ea-pss5c;c=fL~_Qhh*4gkakZUy~r$uy{Cz{u4YlbzDH% z3c*YY?j+du!EOwbx3dWLOM-sjA%UJn;B2Z~KncACkS>O)LK{#?!GV|tR;jRq^aop{ zm{thy^kYJ7%^+YqPHVU%ZwH5ZD4=*eOSmeAF)sm^gRKE}Q>MTxINi>rwvO?C+01_E!`o-Ql1SpSFe0XDcV>8!*kG zV5;8!E~B}Kb{4Ed3Pp~Z$ATzE(~;f<7*XXLbEQTK#YLQwd#p(YsPbdq|Jlt-2~jig zWHfyWy z%NWO-WmGVLu&Fjz(=3Kt-*XBvfXRSN?ki+yibT_n50p3*8n{$j@%@s5rI`f-11whn3VC>i^HD{i%}4R9+138KUM8R9R;}2yC?h zJtsosIz@Ubrlv7QX*A6Tb!1fM!(~Mw7oO;3?uEIX~)C4S=EJ4^&3~8u~+MK>3^U> zQKf-Uyza2dw<7cTN}ay0LHY+8)PNd9)VT1M9#dx5{-dJS@TPoB5_wIIBSa?MKqa9b zcllxTmLHPx`ucCoO&n)>FkaR+E#Q#x?&<{`^2~1ocg>`yBdR`HlO*{MrbGTbbgZ6) zo+>|rt}dWZw+2;7M7=Q%diB=RQ1=Q8qeeX($Dna~h0YHPiOa4%6>4LA1}Pt+<58^rUZ+OWdKd2EKwha~=pE?o5Ps9&#o53Da$8w21EToUZ1ntu z3=A8HQ&+_TNXi<{8qqIpM%w_4%{Tm>F0gpN{$@)6hXXN!Vh&KQ1tv=GaVZ{9 z-70161rEUe%GvhUkfpi{edke}lOY(uyQEJY4Z8uN!u1UwfDFJ+sZTh18|8BHyNdKW z9O#V&h6GE-S;Z8?B{RlgxV5pKMY4hJK$d%j1juIeB#uSaB)4je^*AHhs4}klMde-9 zpe{M^F!U|P{+%g?8b*aIeHc2AVW^C`b#~6@)JbE2dMLI92Y{>6xxYx1QD~zAD}x4v z7+QXgV+4-2CJ)B2T))eV5(2FeSfkhwQ1mNs2U298i@4 eX$Q8QdHRU~xz4+#DUs9A0DzCDpDf>9zWsmAS97@l diff --git a/client/public/images/logo.xcf b/client/public/images/logo.xcf deleted file mode 100644 index 7fd220a2e6f88532ad73dc629ed47f6cd65c72c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19230 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 MGbcL`Y(o_DZ>~(W#Q*>R diff --git a/client/src/components/Generic/HeaderLogo.tsx b/client/src/components/Generic/HeaderLogo.tsx new file mode 100644 index 0000000..3702651 --- /dev/null +++ b/client/src/components/Generic/HeaderLogo.tsx @@ -0,0 +1,33 @@ +import { Box, Typography } from "@mui/material"; +import Image from "next/image"; +import { FC } from "react"; + +interface HeaderLogoProps { + sx?: any; +} + +export const HeaderLogo: FC = ({ sx }) => { + return ( + + Logo + + CSPJ Application + + + ); +}; diff --git a/client/src/components/HeaderBar/NavigationButtons.tsx b/client/src/components/HeaderBar/NavigationButtons.tsx index fd2528e..ea12b95 100644 --- a/client/src/components/HeaderBar/NavigationButtons.tsx +++ b/client/src/components/HeaderBar/NavigationButtons.tsx @@ -9,14 +9,6 @@ export const NavigationButtons = () => { // atoms const [route, setRoute] = useAtom(routeAtom); - const goBack = () => { - // TODO - }; - - const goForward = () => { - // TODO - }; - const goHome = () => { setRoute("home"); }; @@ -29,29 +21,12 @@ export const NavigationButtons = () => { flexDirection: "row", }} > - - - - - - - - - - - + + ); }; diff --git a/client/src/components/Pages/Home/AttackItem.tsx b/client/src/components/Pages/Home/AttackItem.tsx index 31773a8..edd9aac 100644 --- a/client/src/components/Pages/Home/AttackItem.tsx +++ b/client/src/components/Pages/Home/AttackItem.tsx @@ -19,9 +19,10 @@ export const AttackItem: FC = ({ attackName, routeTarget }) => { @@ -29,7 +30,7 @@ export const AttackItem: FC = ({ attackName, routeTarget }) => }} > - {attackName} + {attackName} diff --git a/client/src/components/Pages/Home/Home.tsx b/client/src/components/Pages/Home/Home.tsx index 8e3c3b3..930898a 100644 --- a/client/src/components/Pages/Home/Home.tsx +++ b/client/src/components/Pages/Home/Home.tsx @@ -25,12 +25,17 @@ export const Home = () => { sx={{ mb: 2, }} - variant='h3' + variant="h3" > CSPJ Application Attack Simulator - + { > diff --git a/client/src/components/Pages/Shared/AttackPage.tsx b/client/src/components/Pages/Shared/AttackPage.tsx deleted file mode 100644 index 054d762..0000000 --- a/client/src/components/Pages/Shared/AttackPage.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { Box } from "@mui/material"; - -export const AttackPage = ({}) => { - return ( - - asdf - - ); -}; diff --git a/client/src/components/Pages/SqlInjection/SqlInjection.tsx b/client/src/components/Pages/SqlInjection/SqlInjection.tsx index f871058..bb42469 100644 --- a/client/src/components/Pages/SqlInjection/SqlInjection.tsx +++ b/client/src/components/Pages/SqlInjection/SqlInjection.tsx @@ -1,21 +1,159 @@ -import { Box, Button } from "@mui/material"; +import { Box, LinearProgress, TextField, Typography } from "@mui/material"; +import { useState } from "react"; import { useNotification } from "../../../contexts/NotificationContext"; +import { HeaderLogo } from "../../Generic/HeaderLogo"; export const SqlInjection = () => { // contexts const { openNotification } = useNotification(); + // states + const [passwordValueRaw, setPasswordValueRaw] = useState(""); + const [rePasswordValueRaw, setRePasswordValueRaw] = useState(""); + const [passwordErrorMsg, setPasswordErrorMsg] = useState(""); + // password strength meter + const [passwordStrength, setPasswordStrength] = useState(0); + const [passwordStrengthColor, setPasswordStrengthColor] = useState<"primary" | "error" | "warning" | "success">( + "primary", + ); + const [PasswordStrengthInfo, setPasswordStrengthInfo] = useState("Enter a password"); + + let newPasswordStrengthInfo = "Enter a password"; + + const calculatePasswordStrength = (passwordValueRaw: string) => { + let strengthPoints = 0; + + // logic for calculating password strength + if (passwordValueRaw.length >= 8 && passwordValueRaw.length <= 128) { + strengthPoints += 20; + } + if (passwordValueRaw.match(/[a-z]/g)) { + strengthPoints += 20; + } + if (passwordValueRaw.match(/[A-Z]/g)) { + strengthPoints += 20; + } + if (passwordValueRaw.match(/[0-9]/g)) { + strengthPoints += 20; + } + if (passwordValueRaw.match(/[^a-zA-Z\d]/g)) { + strengthPoints += 20; + } + + // calculate strengthPoints as a percentage + strengthPoints = Math.min(strengthPoints, 100); + + // logic for changing color of progress bar + if (strengthPoints === 0) { + setPasswordStrengthColor("primary"); + newPasswordStrengthInfo = "Enter a password"; + } else if (strengthPoints <= 20) { + setPasswordStrengthColor("error"); + newPasswordStrengthInfo = "Password strength is weak"; + } else if (strengthPoints <= 40) { + setPasswordStrengthColor("warning"); + newPasswordStrengthInfo = "Password strength is decent"; + } else if (strengthPoints <= 60) { + setPasswordStrengthColor("warning"); + newPasswordStrengthInfo = "Password strength is decent"; + } else if (strengthPoints <= 80) { + setPasswordStrengthColor("success"); + newPasswordStrengthInfo = "Password strength is good"; + } else if (strengthPoints <= 100) { + setPasswordStrengthColor("success"); + newPasswordStrengthInfo = "Password strength is strong"; + } + + // update state + setPasswordStrength(strengthPoints); + setPasswordStrengthInfo(newPasswordStrengthInfo); + }; + return ( - -

SQL Injection

-

SQL Injection is a code injection technique

- + + + +  Login + + + + + + + + + ); }; diff --git a/client/src/pages/index.tsx b/client/src/pages/index.tsx index a651a8c..da1764e 100644 --- a/client/src/pages/index.tsx +++ b/client/src/pages/index.tsx @@ -5,7 +5,6 @@ import { Home } from "../components/Pages/Home/Home"; import { SqlInjection } from "../components/Pages/SqlInjection/SqlInjection"; import { Xss } from "../components/Pages/Xss/Xss"; import { routeAtom } from "../lib/jotai"; -import { AttackPage } from "../components/Pages/Shared/AttackPage"; export default function Index() { // contexts @@ -23,9 +22,6 @@ export default function Index() { return ; case "xss": return ; - // TODO: remove testing when done - case "testing": - return ; default: return ; } @@ -42,7 +38,7 @@ export default function Index() { >