From 94cdbf8aba12200fde5b688e3da729168cd19d5f Mon Sep 17 00:00:00 2001 From: Shane Date: Sun, 11 Jan 2026 01:39:05 +0000 Subject: [PATCH] wip better? --- etc/gitweb.conf | 6 +++--- etc/nginx/conf.d/git-http.conf | 5 +++++ .../gitweb-simplefrontend/assets/custom.css | 18 ++++++++++++++++++ .../assets/git-favicon.png | Bin 0 -> 12608 bytes 4 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 scripts/gitweb-simplefrontend/assets/custom.css create mode 100644 scripts/gitweb-simplefrontend/assets/git-favicon.png diff --git a/etc/gitweb.conf b/etc/gitweb.conf index 5879fc9..310b9c3 100644 --- a/etc/gitweb.conf +++ b/etc/gitweb.conf @@ -22,16 +22,16 @@ $home_text = "indextext.html"; # [CUSTOM] #$projects_list = $projectroot; # stylesheet to use -@stylesheets = ("/static/gitweb.css"); # [CUSTOM] +@stylesheets = ("/static/gitweb.css", "/assets/custom.css"); # [CUSTOM] # javascript code for gitweb $javascript = "static/gitweb.js"; # [CUSTOM] # logo to use -$logo = "/static/git-logo.png"; # [CUSTOM] +$logo = "/assets/git-favicon.png"; # [CUSTOM] # the 'favicon' -$favicon = "/static/git-favicon.png"; # [CUSTOM] +$favicon = "/assets/git-favicon.png"; # [CUSTOM] # git-diff-tree(1) options to use for generated patches #@diff_opts = ("-M"); diff --git a/etc/nginx/conf.d/git-http.conf b/etc/nginx/conf.d/git-http.conf index d15d203..ef64d2b 100644 --- a/etc/nginx/conf.d/git-http.conf +++ b/etc/nginx/conf.d/git-http.conf @@ -20,6 +20,11 @@ server { try_files $uri @gitweb; } + # Custom Assets (Favicon, Logo, etc.) + location /assets/ { + alias /srv/git/assets/; + } + location @gitweb { include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME /usr/share/gitweb/gitweb.cgi; diff --git a/scripts/gitweb-simplefrontend/assets/custom.css b/scripts/gitweb-simplefrontend/assets/custom.css new file mode 100644 index 0000000..6168f37 --- /dev/null +++ b/scripts/gitweb-simplefrontend/assets/custom.css @@ -0,0 +1,18 @@ +/* Hide Description and Owner Columns */ +td.description, th.description, +td.owner, th.owner { + display: none !important; +} + +/* Optional: Make the project list look a bit nicer */ +table.project_list { + width: 100%; +} + +/* Fix Logo Aspect Ratio (Gitweb defaults to 72x27, squashing square icons) */ +img.logo { + width: auto !important; + height: 32px !important; + margin-bottom: 4px !important; /* Raise it slightly */ + vertical-align: middle !important; +} diff --git a/scripts/gitweb-simplefrontend/assets/git-favicon.png b/scripts/gitweb-simplefrontend/assets/git-favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..d768023953ae98647e1ad3c2608e2ec566d8e484 GIT binary patch literal 12608 zcmYkjdpy(c8$Uj0HaTxah!uuWiDD^a>wuKgYzT8ml86?foLWwi!bHx8oHl08C5Oqm z95WpmDQXppNDklI`}6%B{@CMjzpneb@B6y%`?~M@Iy@J5-tyEAs2mgmf$TVQ8fy)K z@X)q@!h(Pj*^>f34ho&Yn%D+s{rDIXrVtdOy)c^{xKF5GEO;zq?_0~B7URSI5opVM z>4kw75mKhahwoJu@@pF!{3984-cVm@RI%1)YH@MH9f`Kc7wuG;_t%6)l#?M-yvi`$ zH*Df}{Tm3)7Y_%TSH#VerhAywj1aHezr(gTDLoE~OL5C{w`PMb@?&*u3~#lVajNS5mfOANNpit|!r%s`c9s#GeOAYKkiWY& zjK@Ag6s>wpA&QF<>#efUd_e;rnJc}7C~1QT3Qkw-LW0wB#&oB%ge}CWH2DxV8TL6) zGn4m2RojXo|8A&x&~5w5lM-FCssWO)giE5!V?RpD)Y8j(KJ%_thgpruMeMfoyl~2I zqms~~Y8B65#NPdCw@_|`#=jW7FT9}fN!N%nox4s<&^kEPPPY3#RZXwTcwWvUP&AoHsa={b1H?Ed$v|&UZ zz(KV&-If3mA4koItEhyF+e*gHrH`eE2VE(huOBd#X|P?#sX%R>f4F@OGQajl%;t_o zU5SFm;_9RI1%Fx7MkWv+>7dz8m-27P3lLwZN)!?%n7LH1v7nu3XCKlwi@tJVw&aWMR)C`=E zQ9&RK=vKtlktbgci}+`esi-oy$AZkKzuE6h*~Hia77OXMoR;7Py`BPr(Q00pL|%Xr zKfb;2Y!U;rk|7Xgidw7}(dVLGooZI6``G3}7|b`Lje{7d)f+=D1WT%@TpS$mAo4`? zm_x2qlHtxI1q$j)7NbYKEnIwMa-7~BCgJbiVi@sL*3ThKBAv~(p| zT^{SB!1B=*A|&qzd;~(OS)Da0>r^Iv=l*s=Ru*UjvKQGLuChRGgoG zaE|O|#`BveSOaO|@LY{%^@t#8r9-qDeISlH*q|5X_D~Q&*(xsv;X1fnHEi;HEA=P0_dn+2*$i|#{;y;2k&0?VH zz}UIAooQ?X9ZCv9cKQz3hW!oU##6UO{>Q`zn3mUnX6N!Q@%>*W&K=x9DH*3a|I6ghLe2uFE#bL;|C1@62QcC5 zX0|B7tM|xB7E?tyNjK7i(aRSoK@~k)lA8^Rd#DK99Ziz}hw75WkjTwA-pko4hZ+@& zVi}B{kj|f7I|&X4-My{&!Jdn3e_|J|Qt|f)4l+7Fm(^{`FKiy=33I;FO6$BkUW?kd zZf>42GHkOY6%kZ{WDGo%%>qO)!4$vM1);!@!q^3zxNwYas!MgS&7|UckHxQCjTRiXb?w7S z1hRWsDKVOY+rPkK$~|~KQl9>PQoik3PBDBh6`>#qOURi$ZIlOZ49Y7ek5zLUj!6dU z9+EbQ&2KvnX^o!tmQ=7#Gvu$~c`3n}TOGliSY9-4hG&1Q`$sQ4AHZPD<;7V_m##LZ&H;q!mrVeMUrXu5A&XCU>;hn6F> z!T;Umt;q9!O|dPAwvY&UID0mT*F51Qi8S1!S5YN0q*EqtyJ1oxmilGoXNX3@r3`B@ z-fQI$dTb?p?y-{2D8>f4kcrsgPV)RPB~GxAFxQlNuaPiYJJ%K}^Q)Dg;F{enucpNd z(;R(r0Wb7*#qn441=!V)^{@U9hhx9Vg{$(eR~s7%pDrOQ+Mww#K|i+O6sW?RNFzRN z9ahhu6?-yXjKrTLCmKng4Lgsmdbvc_t`s_yNJ%rvPahK=I~q8s+y5iTuzvsRL35!W zrPs4K0`0A_c^=uFqH6S)ZX{0&y3^`0O4zX_CMK5Kt`9D;biUPwmx?brMQLZyG|{*g zn%H@cnBRfY)yF}9PW>e_D~IbAJkR!iRBH2P6D|Bl`s63p5AU7U(1b|1X4IdaAMk`- z#BJ0uX+t&K*$G#F?YznA0k^0lFJH-95@aR3h{wdMygN^fBkj2>Tf_*XI#9`Nf9Xmx z7@*Pasx#n<&POKb2`KrxfT_ZWFcv081WXAWk{Dt-93sq+KfCnWzW#Skh@|F?Bb#`* zz2oeG_GMR921DL%e}g^5V)KT%q(nOW6OO4w-Td#`c=y2s#8x^l3)X?3p`+vZ# zc5LC=^OMv5dfjCQj>J#29iq=$bDaNQrkK}e6dl8`-N~|SVpqxIKP!X58`VKqLfM$O z{xv*&=NadDY1e!*LfY`y99W2?QtHOIslUyyekjDl&gXqw!yavg+$h@Dv8J+mQ{D|z zuKYzYr_paeG+QzKPR|k zL=Sv4b#q7^O-nT&l=BxwRycZzeE zlPY<{Pw}_f`>go6dQJkty*M3m5N^tFn#5xG31xM z_aG2<2Lc}jYyzo>$B^FdFrOH6uFq4^5THW~N9Ml^4Y_CUwE|oM2>gj^TF&0K;=03I zf>eC4AwQRPXrGw5<|2V0qPxD(`Iv|wl;n)8y=0M}A`G}_%Uv%{mWmO&Ps=-xn&~3& ztZkj5glU=!p;awrR(v)#TOGRnBU?kfjP?}{_G2FMjn~#QY9Gc>(v<1~@{5vp6Y-zU zFHGGhS$*(UP_7P^*!uts)$W6rzL8Fbcrh4V-98R+9W1km%bhMesAG37DXlB-ewa1B z9!I|W!rfa1I?uj}HV`op`Coc~RC=ML*PdGEdym>+}xAkR#nJ zoi;v%&EBD{`Ty4#@XJ2ZQ%?o@);+sj4;s>kG5zL$?9yEdyzp|b zi%L$V7x8Rj>2YsR$?HivD{xLc)0Na&EuI< z&Yn5o0UBhsceC%rbK42k3}ly{YjA4!R!0dZJbkot+4Ty6AX!dbw?k&pSOtCa?r*TE zlcNV1wQlXK_@4G&vpYw8b|e(M!bJJlde)N#y}%4-K$FrNe>Dw=IOFrRNu0b+HcuAI z$Kin+i9&n#xk|>L86Rc5lj!9?bP&{ZEW3IT2+D3moW+p0Lc57MjZZ(0+kTqCIKg7Z zM^5X0mKHowbIWelNf_ZU>yPmJB!fZVg$ekBk{LBM%mo5>S7lGAX_eF_uY{KKC=?F! z$-MlTMUnXMf*BvfI@*ni*0h~*;)-Up`8ed0NM}u5iW_<3oq6s%cH{V(yD-tFR0p9R zQP5NX<`ci&wBY6;wTfVMk2WWjBA1Bd{aJ)F3qUAKjldNe>TaF;vUIagvW$q^4zGOxASt^2b#-Tq`VZ zjs~_&qhgj0g1rxD1B`ExZR+uaOuZKxLx!YZ|MR*pdFn?U9fIf51#qHfS+&X#vJ z%g*rFrHB%t?oJ;ISe!l;Inx1vYc*G#! z->O8}NN{p!8>*KhgF=oZS3he$>O$x!;b{_ld4MM@@^-_!&#mp41a70EZgT!|-l(RD zC0;j^SED@l;~}4)LY6KoZ4qR}?KM^62u#JKl&-CKrIn?m!?%YtIu-DV&;)1RvX>7Fx+zK(D3JznEMrA{rrPR z0)EQj>-vrEd*V(ZjbYfzD=C|Uj$YSft3d5)Ce?;A23$(P=8L$L(TfUgRF_ z-z`YjcAQRiGW>P5t$pvjrObZ=MFudDW(TNLo^CVEWeS-=izuYmNDQxnjgZ%%+wR0q zW=>ZS@z}4d5gpEH@8WvK8e7IiYg^l6M`DUS+agEIJW18y<9@NH(&yr|rz|(3WK%Tw z=qyev|L+5^DHRu|W&Zb(06r+iY4NObyY;~4i;M@JxEXCKH8M2~KMkwEFAkdIJyzD~ z#=sFD#BrOqZ!gXKzQjOgq~Q{ls}WAhZ+p8Tl5+;13=+6m^$pGNiG zUb83WnBRZ%-v?0<@?P2dw9#68BI;T-+ta1sFpr&o{yFJ6Wlm3dK>-WFQ|xI?xK%t& zL~9lt=q*rM0KT2pr;+&Qj5V{)8pHi>SWF}|qi0%a;c8WDcQ25~PABf`|?>>d_;8-HSM}59DKSL>I&m*lQB) zQm=Zy{74%}K=^&HaF~rV1vjX>i~T{N;i|rc!NUT7Oco=I!^K=5#~Z2_oP#dBY!|on zjV{oV@S~OvM7k==sG0gpg|{E)eUNTk2Rt~ZVGvg_`nG>(2x(DL8H=A;Z5H$Wc%!!< zA^iih@M5;ASoX0xza=tUS=f0`X;6oBjY|OcD_3#Xqi?ey&N9nQ&Qi|NmYxfspy7Ec zFJG1gaqc!bPNTHqex=mVP+x7UD}ldykt;84_2XBodQ@G?*6CZQN%^P2Q}k!tsggeG zTHl}gi#|W=q~_k^mZXeze)pvBwZ3I2v43PF{<|Dv{;6fEOu$HT`sCA^<~-NzeLvP; z9sPIo2>a^Sxw2Nz@P1Jj_it~S3s2KHLNoW7}!L!&=Wwjk&91f4$ z*YB^joX$*|Si7L`ae3T30+zSN$2EL{3=6ncN+J6*r+eiJuu>e|SN#f3;wK9W8*Zmh zj_Qk-Z<$7R(|$jSyEFo&|ECiAM9Jc|$Yl;4sCyU}r7dNga4fOvQbiW;T)4yRLFx7) zxEX0X?sZdYVIl%sro2D>$yJg!uH^TZcb`BAVGqxmYUy!Ob~m;sggcp-`jcNd;x9W?_n))Gr*tY`xC2m4k z>mA{iN2%79Txn&)fE%)CnUf0hIaT~glnQ^qhaI>&9QnS!>f4N&(TV>Y8Ka6tRlAJ> z;BhF^gi34)w?0p2H0Aa3A+Q6h45O^Wx}3+gO!%>{2RT2;)#;cGmR|7xa?x6H9ioOb+RNyz_ZVPI94g04u8&l~7#vd^zohFPrG35>eil z3wb(;Nf6)(d%I`-WAJ?7o9)i4Y}1T{kHIC2Q+fp6A&>aB*8au;>u2n(P3W%pLBcF! zuRU-hW)**)>qet5B*^pU?u`2q_X3-WXX;EET^}v%r^ z_|48eXz-EW6%eTwd{9%EcoJK-kNLFDm-AjcJt>!@(1`=j`5>g{3;i)fc%g6YIi(?S z*=s)vEwC?QC34PP(#k<(NYDHaeYOamxUq4lMRY8aET&oh>p}Gs+Ro;DXYFRI2%ArF zIBb~;^C|gD+u5vIR?v5a_c;`g6$h%YW!Z$iQ{dct7kyHhlkB;DNVB7oslc1{+jRR; zMhEMW!u7lD99cpOBuI{l?^&y#h2ufod~a0oA`V&bTDr-@a?9D$LD{GEQ}r$04JsI$ zxB1&pcd}s>L$~d{`&lg3QX=nz>W0f`;E-E(rwZ@$0Zg=t)h%Z=1vL6OG{<;SK71cC zAX4~tRsGNw#$3~o@-utVj?=(4pb0Pe7W&-_WiT!q{c?dl5PM9(&O}X(td(nwCBdEsxhvQ;t4J60 zyZ%W@p3Q`$v)@Bo{jxg*nkMyHOWN|tVuuP9eLwTGZJ$G0@}ZZ!k`HWbhhOG5bz)** z@8*NAUl+H(xR5DVc&+>Fo zijiKKsz_uBYUV0e)N*k_lPgTM6}tivmqE<%zt_jkNS%vvaq#kw8y8h%4!EAlQ-gF+ zRLaq4B=oFwQw;FrJi>pLTI@tbNJq|EiZB_mDBbC=id<1`BJvX8)9hG zv&Yn-8oa|q7vmLz-#xBt&86V5`F*o7 z!M=tbydM8T-`&48k!27{Bw%GUBwzgji4~94(DHcKDct>IpL#L6HS1BjNNDb1&m6Mg zEb5EHsRK)ooDyAUEO*|2bW#~vQmWPs9G>3#zG(wuOMA5O9>JVvf3@cS;jmLySsn`Q zDu*%$FK+z%>qLq}sev_2G_Kj?J8Ww*(7&`|gHz-=35DHk^_D{hByeoG!j>Zb@nn8; z-VNCUPJ}~(f=z#Tla|E1jqd&vTh2Uj&UG5dXy=Rv;t;zAvaf1<8ESA(G zzC){KfD_fNopHnw=j@%`ac{bNJ5K1$X__UOCCT$}A_RYaqk_&bJ*IgWo)ehagM^A^$(`>QxwoQP`?v43DO9M@r`?V~tz05B>3fTYhhDCSVwwL=OGa*P-;xbRg^L(ml&soyX$mh&U!YRb|aQ{|M&!cK60Q47YTuLD0#CpV*5QpULDl*Jdw z0<*|NXtH??FD$<}O8vCA2?rq<>k$5!x zdZW?tDPi~FnqE#EIbX+?@4I!qIY_pFfjRs- z$UM*QbK$92lqhd)ejN9@>@PO);gbow;N0!J9?1j_jPlP3N0xuc&Tn*Sp&_V0hkrsA z;)WhdT0M#5u-;j0X>jGwSXb5V7gz`aixxX)m;Jo%ebUnHQ)s|FP#*3SNgutB!}3E` zPuKOkcq<@9>g^DNBE0jDC3?ST(QF%5tFBm-($s7Tz%FplNZDtm@!VfVT5X>}T(b11Sms3Ez}Y&5l)sEK+v82VUh#pen=CK( z-bPCf=VSeE9^du->wl>asy<4ou9BsP?D@i_+wKv6;rKSh=SP0;?YSZt41#&)vvTD5 z2cP_>p&EP6VRbWw2bTW`1vPETX@M;BbEj2aEHgwXbnH3AY&&65@@vXQ0}Ub6RYLQ#-e19YUX*9RaIAwUSZ5+%6--|>TYjcG@kIz?tBs1dpV@KL!-!Rz3`SG|{C)IwqU2fX#3e}GaEk`xpE8l3;F zy8bOQkOdgU3|{eN;E=kW-BcQcP|7rfF@{K<>pg~_^Eyiwqg9xjgEG>;HqhrGOFNK6#2`ycxb z9)$7C8AV*jv4`Qe=}vD7zJ1h=vaLK|D&6j(hg@Ru>U&FCUB?b-x9JHl zTmt!tXAVvN@wlYz=0FXB&_2e75_2!CL0Ff%%7XzTeC)@$>1zVm0U;h|9u7QWJ+SWk*2%mEO%I>ryVizTZ|`s5*=K(!*8;;07Tp|lH`ci* z`7@tsFa;9wV5-VY=*4-w@e7Io18li7ue?ytHD0ITrC+5hJO9}C|MEd8Mschnj|+4j z4`!ar3(bFrXnVY)6CK$?z=feKrRL%^bWYth(&T-GsW34~#- zuj!`6Iw>FG*WVE}<#@a|a_Te>h2tu_V{33O{K?+fg@{f9(%||*#DrvYY>%??M7vvo znAwVk7n|^Y5!MFy?oMBV3!P{Z3KxlQ|Vyx-h;w82?^>vwnB#dL4@u{DDid$ zsHnqi-o5x$T)Q;sw&)Y!wWNS7_to-71%u`iche0ME;_|ZbEl{VX|^q~pw&M2+3v zYAaFOJ*md~m;FBeHRqy8m#%At5tSwqBeE`KQ{>Z5kr8HbGO6(7p)}4VkX9`!-OO`&KjE#=@euN~HM|QB z{otNWu~t&?6ew~9GZ~G(z7P8SvbR`H(*pY=nTtNdcs}y>f%x5@vp1r|H1kV%#MKt1 z*}^TB30;K|mzC@pw49n?cNciuXJ{!HE04cr;M-|y8v?}dk$H^T&>;B_y9MMgyyK50 zDnfD_224a!B6h#E#FYaLD8jj)rz_|&w%pkVA6`Dm*fNdyL!8aKb9xFKNis#if23g6 z=E2HK0I@j(o({d%pg|jrU$blj6puBAn0WeCenRy^&(X5!X9~xb6X=0OCUxH@Roeo% z@*ewe+mfaMNfkptw8Pf0c@lHV;dI`fX`Xxc0`h1PsXGxMbwiE&_Np^+d5`1l=>!lo zb&kBs7%(|#{#VYw_BCLL-bIAZG@m1So!-4;CWS4FI;no#^&r*Or2`}5;*_Oa9t5^? zr$hJYLI?Y)tFg`RFhV%A=YD98u$n4OGOJbxyMW^gd&ArQJtPapKXOkQ6D|SsHo1pB z&pER^^PX)mqH*N)`V-!BVA`?z0c~#R0r>W?mC|z!;K|Lc9(aJ?{F1$K{)0z$G?FvK zlTfWsBtXWawWaMg8QI$6T>9SgJ@Oa$lD>e~Jge5J$au@uvEP?%V13SC)7GH)DQgiZ z^XT?k1|*hF)U9^4OcG~LKbuPX_7SWjzw9I0NqrZ9|8djD`InISy%s_@rsc zf`YUi&rfC&2O7y_jG*`Wv<>Tkodu)6F>>!3q#bH>Grsu2FFW!H$`sUPJss`Df-~b? zd<#S&kX#wRBOXaAY;+W6f;gqZr9^n%0Qz*0NYmT zN<$JyzEg}VtZO0*W<-6<;tjrez}L3;B1pF&`{upnJc4)VJ3N5_!4BB*-zT2(PZVVK zWB3$Iy2c|4JzKV48ynO1qlfNT1gz(%%8f@1c7Uk(vMUr79FxE(`xTmL>%`Xrf%(W( z3Zw7dTVN0f?qI-t-h~*S z9)2_pJ0<7ugr;@4daK+Q4sX0`xoU3g#-Js|QuM??nhimb_XYBT@%gKWXN6&0;o!5H zCj8w5AZ@9lPqy;!;8&Mf1cEeBKQ~~|x9MrH=F3zndDJKrJrlH6DDN?oaU?k6aFD`_ zRP@T;TSLI7bg?q|oky9fr}T1sU9M!a;LmcL{Y3$aC(uI*3?l;bc^G`QA0LQncnvZ) zclU)?lJ8nf>s6?`lg{#tN8jMTSq;)M!q=O~cV7be9S8)Q7bDE}JX z2|}lzDWoMG3fR8*zks9+beU1)ZkjC~n042oiNT*d=`h)3(N{xWamZ}h z5lg-hkSBc!Ku931#!JOF^9HAb19MdJ^U47+bjA5=D!Y)CLZ1p1Ex!VM#1Q6`9IzE^ zAR%p-nBO47_vsEC*?;3X@aXenaVVn=lMtv+?7St~U z9g@M&ztjJVo2Yo#Z{r8xe|7pbJen_hMr}!U-y0l_k8f@UK@B5f$?43ntsyU*|5LJ9 z$wCPJVxyEUYuQy-x9uqACU+cMWKk`Z(~gG2RgSa%(D8^T1j605zRp9(cGMet2&R#mz4M#;TCwyGxW<<6I%d489WnsNGSo}$D%>z%ax=8IVXP7 zc;=4M{4Fm>&qa9<(|(I58Vd0|RSsa15ncgc>CU$8I18j!@#r*(9Z3A zd-oYlWceU!#%AN)pB1$~n>Sm@S#d*wL)MOStwK@f7WDASpFGl_0QSHsf-Bgq_n9tu z-5wkOp{A};d-ci%-Bo*IOXk3|yd}P@on0mWFFBBQ%>*e?3DErLG3Xo~TEosEk z7z5M$01u00CTZy~Y||+&uvT`g=F9EbC9=3E!DAJmC>&>xKcAI?|BVo)I(YQ(18$I# zm$h^_Xm#s^@}$+dmXYe}8;>D!%jqw%*BLEgh>D64XzwuX znfGnyjPga(&lxUH7q0NM4WB!%S5fE5QHj2kk=;EcPYEi}u)H(v0V#>)6nAaeGh;l{ zE`x>nbTj#qRHLB9v6d6ZJ6A7B6^OVI4I(LN0cfp)y{<%qXv${@6){X=(6U&p003c} zlR#_E0>}+(1S!|W43L8LA4F^Q8B)_~2m~=VZ>x*dw5%>xfQ)&94oE;6BB&h%hg6^- z769jyRE!&NCwdCPH2DY)Gia*a69z*k3J^&|PcfLLDIkK&O|_b#bGH~**3IlgBk+RN zwWvA*KBJ4(hoT~i#ridV69}?hBL%NriIN0DM)yd;3wPr10R#dtHWBc;P*?(lQHzQs z;I9iK5DG6qy(@8e7lE*3h}P2SW)^g~l7?Z7+8)vV_$~mwJP6v|Kx<-n0W-op!L5T? zAObiVL5j$L3O@@Vok_99xCbQS@ID6P(g{Gu0J0P;LG@lSE+3F(0NI-0pzDj)%tRs( zXXOC2@17@a6hJuDN#4Un)wD~Q1cI(7S}XGa6;1&l(yLBPu>BM`W#;xrSqX8bN#0x^3Kx+ws4lbh6@jJ}>mC>3yKr#ZTZ(}0& z0wU?r5}5$B3CE6|Mq-C0JC~T1R-|MA})%Ks24-ooE%sV4x%k z4k9m@1$RgQk;>gVu8pjSdhr_mQE(4ZwUY zN#3B*06>cd>RfO@YX*Sj1kg?QWv|F!P52wnY!z+jcjybp0VdKujtnV4>1n`R-o5^y z%9B(xAf+O3yW*@mdBP#I2Vk9T0oJ+sLdEPqQ|A^TB=CvjqIkvmBO7j7`PB`A`c#11 zoYiV32i+R-c}|D~chHHFr=EGm%Z60ACxEc_i3$|q{}>5(PR1*FWqV<4hxr%crfF;4 z0A|h(iJb;}_OdJu+OM=KhmB_wpPY!iaK5>)u%zWJ=sXJ`HD9WOV2|*{;Qc~N=HUjL8i?f?UJ&+#n?|n6&$^v zzAlJT`@62P5jFfhF~6E3l~K1vIiUqlhe7bM#3?(+R0(^{og{gd<(~fX@iG0OfXJJ_ z0wQxD94sXZ)y7&pZV5jsuy%m|K59lXa$@q~p7qTrN5yc=lR0czHwy{v{W