From 47147c3c658b205cc4fdc454b3f8bb6ced060b82 Mon Sep 17 00:00:00 2001 From: Chen Wang Date: Mon, 6 Jun 2022 08:50:36 +0800 Subject: [PATCH] added riscv logo --- articles/20201009-create-clang-riscv.md | 2 +- articles/diagrams/risc-v.png | Bin 0 -> 23827 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 articles/diagrams/risc-v.png diff --git a/articles/20201009-create-clang-riscv.md b/articles/20201009-create-clang-riscv.md index 062b44d..8b76813 100644 --- a/articles/20201009-create-clang-riscv.md +++ b/articles/20201009-create-clang-riscv.md @@ -1,4 +1,4 @@ -![](./diagrams/android.png) +![](./diagrams/risc-v.png) 文章标题:**制作一个针对 RISC-V 的 LLVM/Clang 编译器** diff --git a/articles/diagrams/risc-v.png b/articles/diagrams/risc-v.png new file mode 100644 index 0000000000000000000000000000000000000000..8175f629c59c80aaaf567cf2db910b973d7a3d10 GIT binary patch literal 23827 zcmZU5Wk4L!vgY9K?hqol26xL4B)DtP;O-6~xH}2%ZoxgcJA=EsyKHms`>}8L2Mjbb z-F;5isj5#7A@bkAXvoCKAP@-ctE9Lh2n1sV{9KO+4SYvmruquJKshLaMM34Gr2D`x zu%;riA|Oyz6w1?gIN*0ATS*NE;H_P6Ur>EEg+?HdcHviX5oK518h!~qxY%9z=Fq3I(v=D;p-;%$xMkFjS3tMoZppXQy6d$AWI}gU<8>IfBRxY zkwKYI^2pGB!Z)#3xWFjJkzO%k;8U7FAbAwvBf^xJh+9Ygc2<~(u+UCaUzyo}&p&tc z#Vq8~k$^x-(ZCddKqLY2z(@BG_M%|t!IL_$z#)C<|NQAWvsDNi7C1enX?!u{JqRRB z0@_>vIfH25W}}i-k`@H=^&aOgM|*oubez=85IS&cXybxHijq)o=LY>j%*6#hC)Clv z=}RUo^>)w_^?wEsWdQ^F0sp_x<(iI$n5*u4KPkoy1>IDXvJjG8$ z5R(vIT#ZSI`twf?XX8}xr}b#JuNYzzTV5+ol$qSIgFGK*qH_HH*PZ`Z3R;>D6az^+ z{Pm+goZI1VE2(DtBXbvantt_+**tbTd2Xf#-4{hI0?a&9EV(#v^ACPe)Pb)nZoZxJ z!e0rrsi*2NtAsYGV5)rOSZ&%W$`1+8w>)@nuPkQX<_M%83%u+Fjkf5Lz{N8th~<}3 zk$cU|d};cw4TL7Bv;T2GbVc3*Q9cK*jirl!Ck^iF6&aEz)Ni+5TC%q>{z z|BZr|+PHph8@41VU0Lz5fBugHqUGPr6iN4!v8}20b^mj95Xkn+-tgvvy}oV!aFnFB zwH;+c925{~z@^n;-$HU6!;`e=00TB!(G)szyB~g5UOeAzBdYBSRTArgdx;WsY0X>w zR3iRQFyDfCE0Qnt*_^0fZ2w@|J4tOmQag~jP}r}(i2dJTB&J3T;e@I?htqLfTzlq3 zZZx9)mjk4cl*)8wY}q6Z>x=aT&6Fq@-y z+zuF637C=}_Zit>ccMXY zPEo0tC+X}$-tP3;+F|Y6EFQuAcNRbQ#wf_K@lLYE^azf46Th;(Xnd2>{QkvcVCc`q zVDYcsFX8XavQTMi-&Ot+&3|Csd8OTX%$Q9sy^bdQ1pD831lA)@^XEtl48kV!waOWq zV@$#};`zCdbe#4TPUDA2p%>m-`{RV;<`a0>4`)|Jv`G@Q9H1^%2>m}#I$(jDX z2_n?4Y6c(HSZtUnIyLp9qkt;bV!UjgRWGz)QlRlSQ*?50XgyZn4A);}RSw*wX@9f2*w}^Y zi>A;)cjXjDc>mlVRrXdNu6V#x;hgN=NDG>TUpP6w*Vc|0Z(rvbJ5@ixDp?eMR7eO- zIGhu$|9ymhRBiGw6qi150~NWgo@z+z^()2PD~dYTcQH(xQ@ne-qh1+@Cn+K2omX$xJhyKw2>gmGUB{% zo(nntwBmhU$fmcG2$|)Op0R)tuAnB}?PALznuZpc{5+D%`xgqA0Fs-F&mZb;_o#cs zQ9+~O3WJLM3DKGFxE0V&3lON^X7`HOJ==L0rdTfpscduw$bi;FU8Zppu3BS0YmrL_HJO1OfFnl;0_xI}EgjyeBD}%I@1y1@dxgdU}_2zY8 zn4IjZ^(}jEs|zm>rcpoMGz(6POwz!7}4! z%Dv=uf)mpYYB0F36Zc8Mg*L_^?76GjLT{MnG3d`2!td@&?a0j#UfFL`@I#i9xlhB&I4szGfm zr%PcHM9)`;3b^JNq;0(|gdq10h|$QLVx!bbQSqAT^(xxZDZ8ES2qQm z{p+i%m<{W-aQAS|<>=R(MICt=EB=%gmlD#jYeNwq&D^zgD5*FCkpMW>{9vg>-22)&hYqG99c>W<--O&OwTorl77IL8o2p zW&uS3wzi6(p81Ul1|k?=9yjifqV1;YRdPr=kQZXNQA{Kpwm186i*~G#xJB|zaUbE{ zKQ&$rL)cxe$yyXuIV-t{LaF04Hzl(KkKvy@1)(v>{NX&ANYs@O`~=R<6iC4&yNJXB zC3L?oVG>$mga6P};5(hwb?)la(FRZ#%L>$^xj#^o4Y}Vqh+$yesw6=Nq~pMTh{ws( z^xf0O6i{&0sIOzKn-3Wq{DTetiJ*hg6n zV+yzs*%^^7{t1J-{`d4kUxClz3vI{djn$`LC?XC)p8ncf`yu)6de#fUGgj&9g}?BR zQg>Wqp?%tPF8Ad34@=VdKrS-igLXs=CvLZ!eR}qWLfYF_P#Utaqx|gmjpaB>S%n;` zbde%NSzVb7E5-X|ql*=X9|2Xzid6}8=x?XJi2oe({;Qe_SKBb{?M=k0%Q%4-@ip1j zL`_CXDgW_5)7}ZIcxPkV%oj;&7N-!S19*nY<|Cc_+5RmK88?=`i>}x~2N!335aGf%W~!~_Z^rJ@=&mgusH}p;rhgFI|K4R@zX}IvF9J0F zicrs%F1nIQXe#3D!3GgSzVO=d8g>5L9EUQKu95LbPW4VP>8H#)^ZE$H!;W|G(!8h_na?>;d zM)cH=JOErC5i-KWX)Qs8tIlYv%%0GQarp{6Q^8J50p>kxsLO?HNOF{+W}>-YIT7)? zF9SjH9FT6>j;m&IFkxYryI~-yPYgc5l4YM@O+koyh#+q-dL5sgj}8rk%0$TJt`7J~ zPR#5u7~qey%goJh{4lz1I2#7%+Db?#EY-}ytxq~ohs&Z8h5CdHsW%p&9)!AdOA3C8 zj0#fTIce!o{t_Khp8VRkQ=5fc7_L+J62WIz+)oy=dJDcgEnch99h!&;RtyTnDe&Li z&^wshOwMx{+sNudy}idNQ8>`1yaw|&)Sb5RnZAf*QQz0hk{g3aI(iwoTD>;ILVE_L zQ?LIKf;ERlkw|&4Xhx!@8LrsnzR_~q@ox3$MJAgD$OTMv(?t}t-=v_ZM=(quL7RMX31;ot`QnG zbS?k^y_f~W`~LYZjzA8lm$Dgw8HR4`xsC#baqIGIcM!Q7Z@2`ja4?sP@*D! zw@4(?CVzA2;8q0DS&^K(ruO)$sdUVKa&QeS+Wm&utJ8Omxp~8uNGC$ICZdOlg){!C zaZm00N!hsDti@2NnooU#MTNL{eipO^juM%y@sR}Harn;Kq2*5xq>w1;-5hRgiPt?6 z5C^I6v3|$+jNwPuUx5WX+bW^QS-NF*xsx)+wp$G=Fa2{3mRm+^XB>K{w)M$y!r*`~ z1PXBI@ppmNewr_^SKajH&;bj+M|sa&O71bnuDyIM?71XaC8ECF7R$)J2n7TSX#7xcm7F!75%_aZ>M# zq{jG8a-IHqRh+44cfUmI+{1g`*H{KY2YiP!ZpB#ENZea00(@-fIYN1yOv=ov0ZPsg zsdGD{L&2><_5|P4sPHL4q3VX*oyi2rD`~Dz z;d+i0#r#sj_b=ROcruUFWYVZ#2(-5m%tux%icv90z8X`kpV?1X?cx*{#y)n}^i-p$ zS&6h3U0GQwCGM%V@*X#ERs+u+SQkH~!pLPrt5l#&X^e`q^Qjyj!o$?+VUAsa=s4)KwAtj^|ck z)Ro1)md7Sa3C&Z!S-w(>MrY3*8@2QZ@4nM2;p;n=essYZZy5bWLA)k(BtO2>FkaH` z@tRdaLab@4Jr!bWB(SKcUwTsiQ_6+h^|!domu<0gQBrk2=Pd3EkU85*xD|rFp|DN- zxt^6y35z3inpaAA z_eoMPa@sLn)6@-qQwf9-{LcAFUOcT-7=NJ4j;L$6E%%P-u8uB$8v3_D znWsY_vnkn!(?rkBHh~vK7^Q38LbPga4t4pAiE{VHN^A8s=#vpb&tn|;WY zV?5f)+fVAItpx(QK^e^f1OZXz5YY${O*`YLm&f?3*l+& zOwrUuuginUYSYrBS3%`AAsj9UK=_ zhC$nFOvFGjG`}Sw^6zLNl}5gg3UY485jAUUk%R=kskucSaFYP7!iOZIuBvUKw0=&kO%Apy0W zPC>^@TG!h+Lxf!5u~E|zQQrdq|7e5Eg}iROTfc2w!UXkhmqaL;=68ZznwhvIeBL9! z=Sj?-tjCNhAm$oTbrC#kUwforSYyw>Aqq=C_Ey2`5&^X?@l=yzPz1u=MC)Y|cLY3Q zMdjNo!<>%OsPwQPMA*G=KPZFP$MXs@Xn4;Goi&=Rt3YA#AYq(XHNKA7b(~T=8kz}` zPDOTPR6GZ`wsF2XDj@-p7@4xiOGe-NgiogOE9tirT6Oefxt+U--Po?u+eN5FEJUGsy#? zYhtE5A*@$PCUau*irlNSK$JCq*hnr;lUG%?hfNZcm>LFABmT3@_@;qnl8?5e^P{e% z`!Bqm-g#je4a$^C)XT@Yi$gh9d7c6Vntg`2w&5OPspM4d7pK$9^d1yt*cF=`%2=sO z+%!!wAaWin+MRl0?s5iPZ7GJ1*I9gnA}G^e-X+YRi%2;|T6kEu);jf(ZROJcJ{%0I z*`*-lbZ;%S|E#6#_~p9-hdEhM$^wWa%0eh)WWlFjZbv)-ji?qME=H|F2pvsM)<;2G zQBzA>Ge8l9Ca(qgxtVLmP7CFq`&-NQJA%B%p*jE?oQ~PY4QE?m+MnI9pJnPS+gq(n z)qsKF6J!J|pmPL`zl%isoaT~_NMR_*U4nd8x$bzPQ8JA97lmb;N;&rTy;Bj)>TS_< zgf_}5UK!mjr|_lV)`eba*8=h_iU?ImexMp$cbA>3Jo7Xt(!y`KKi)}3$6wi`4}o@O zo+2ehB{fM+Ls4-tfw4UkdqzyrzHx$o8VQOq%Rap6z6IB% zSCn-sk3@;PjLwim709g8I%F?>iCX=98x%m5H2}2X3K1dRBAjYoVquW7J-yQUy*5*! z`gKFDOb^4x#lThsuNG@?&RkV~-GBkTG{!rSDHM8z0m)=lrf%}852H&BEeyXsc1laC z;aBgSJcZ)W@1NF`n)W!)uhizZ3t=)`SXVLR|8~q;=($;9@xC_Pq(83!xB%#ER3bog z0Z>4iuC_A@g3f1C+{;NEJi4RI12|Me?ZwZLxTMZ@EQG-e3p+NuCnWcIH`~J~_+;&; zIG?yJxsjw0IpAVceY$pI=@Qg(n-QTdnLp; z8JYN{#$fDN%5r<-M**3oylTdS=I9Fo3aH`~a-acpY9ht4T&Jw#Xoz$z=Tpu=uuvUj8x+Gzy`iAvu)R}>W%N{ zE?Q*L!-?|wp+@xYej)LR#*g~r?z_5@i_ixhk5dw#1-j~J{obS2q;hdi&hOcL(E{%o zD((#j_P;9CYgm4)^|gkqCjAL@OHE7AQPo-gL8@;9{#S#zm|01HG%aRLF%&`)Vd#^O1VSn98sC($fBduI{M8Y9b0-y-pN@uTNQm_-rCA zW!@)qMap7X+hd}LtXH}>>(Miv(#$`rE$GAAk{2j1xG3j}oQ2yl;9HolOWxH5PK_EW zg5DS)ZCWdKkbyTO%0FODs9JoYQ-;DnqfOcBR0cmE&byD__tjpa&>fQez0wCniJp?- zMWD?1aQ_3^*Pr$dzus569TxgC z!#BJF>{4Dy3`eajyo|P6aSNd$@|t5u%(b?(ApRAc&?tQyW-Xx*{n30zf5w)&3acf& zW8F|) z3=7N=Z0y9D)hsz~aaengMejt}9h1!*9pW#Ft=6E&Qo$PdcA$dudf|S-yc$!O5Q6Vj zTaa8ZUy|EH6j~F#)?2nW4RECd{p7`kmcsS3i0d-aJ!rSYgh4g!ulwU6Q&eWmp%U!} z9|QtHe^A3OM}j{&oFfEm+k8>MpF_hS8C~BdU1o4sRSAzoh|J@Lr`~uKr>bZR+YS_6Sut^pZ<%za{kPv3G>c@x$@j`9JX6`cWRkSu z7A}~uLX!4cZeLY(29NhbC_90`n77yFV|v*pZWB^G5zo?Tz>P_cw>iM<=v|{oKC3@; z(`YVa`_4_`r2vrE$?mFvda;%(oCFtr?xRlHp#tYPAzMc^GF`LjJAP??=0$Po)@QJe z2aUxOBc&ViR5YlA_d};5q7B`HsDPi3&Xcvn>u{7$gLz2aED%K%MaB&=W$U{os&~N` z1gLlR$Y~D5UJ@zzGy9-Ce*lOIS$L_?Abd}Y*h4YO)^afbx=VdsLn+X+^S3|fSY)-I zrd}ksH6(47N8FFMrvF{1>*7DtKt*w=iHi0_ObI*3EEY>owc!;U)7fw<-R(niz;dwv zgvHeeG{D>Goz$N+j?5L%#kbTPSKuN!gRRNF%196 zAft}3%k6m)3i7XLn|FKJ5c?j5p{&1dt^(D5Y&v}F8TXen+^dtD@xqJFid~6_DqenO zn;TcMh&6Jni_8lCIR-zg5l-k)ZmyxCt{+&gXyibP)mYTU34rwJ8jQvP_haYF!BN`P zmgl(G-(%VM0m)A}N~%BAPM-!eR{>6&O?4nDas? znu@fb;3Xy`DcES?;HgAS^Fl>AvPNCYl^iW!yTziz2;+mm7bl9mCb{}7=vYC3Wyco=@zjIlm!b=IbX$AQs?(;A!c=;?P!l<9CO(Rx3|8i*NmFZ^RW_WyVA01rb~##tq+VKm4)yelwGh;GmwcUtsk>S;;qo3{7KH1x|w zYxqx%3xM(Ze-E<@gT+*xi}X6!t9W#6a6kMHt~NDJn3?{Jgs!s91VamFtGlKb`1yiXkw6s{NTIFJuh`wnB!D4N%QYk1gS(ycgN zuoVXU)V$vt5Y}*@sb~IV^>Pl$A^ehUgET>ncy)l6=JM^fj@!mi@DylsEo&MYOTBtx zt}THix$+U|GS=S?O+=RMy2LJqySTTn`v~yEeSVRbwOU|OQrM?yY z?zmVYANi&Jtbg1HHGA}ZEl}?V)v<7bUW8T+0wpuT5Ch$qG1v~40l=Oc4SI#Hsl44>B z7fSgO?nF*X&+4toC5Tel-Sa z+_#MMF;h8u^ggETWeg}{UH_Dts_*ZFn%$qz2d1bly?MjE;qd9DsICr9XKnfiH)2zJ zzvMZDU5`d76M+E@0R#CPu0Zmg0?MA$BZf{bz)Q9#W?ZT}^f)Y*l^ZTPFE6)_JxJc{?32q_eqem!r8{~>_Xu|v{(%XNw3O>>G{|)dh zavMD5+f(w+9G&yIUgRsbAZbq z`4yon1kmpFDoI`B`8!*QCayNqUU{cGYMbMC-}4Gq;X)1}rTL@O8YQqk=Ns zOu}CTx0Mz_35`)qoAs3{%F2S@L%?z8Yl78PI!>5p0KfjzkoKjYGzWLvT7@#5xsM_; zjz9+QuEq51F}Q2U((PMRI(IC_<`H^VU+L>k^YR<;VUtP?ZV>Bgv8mp_R`@dedI=JAvx}wQ3cwcmA@3`Gf5rajVxXRHlJ76AC)?T28fioaX z%ud!LAftGl!4E@+nid`NE`R=2N({&%K#Jde_H;e3X7}q1NzurAFAu><6!(hK%_1Ok`T_Y{q-Ac4mR)Qda! z-cg~XG?6MvU_pl2eS05!l{^k2Rgf?y>!v^zKlb~_o%Q_)dhZwD7%-Ibn#-4&!ggj` zd!)|0tnEB92Z(yT#v7?SF>fEiZN~mv@WFf#X-|w@adRp<>BaB%waQ_S6oxYo@>U}!|(LmoLRNWGve2xp?kT>*_kM86j5B(QSCWheN(XX%KBr^>Fm!{oabEfsFOWUq1cK;KS z8?2T$@PcZBzb6lO=OfcP zH@c3OpKb*LQq9JM5z4j#%w2$p<0x%ptrKRcU0TEu#F|75BYwZ;=BaAyvpXG}kfhXC z#?m4yHo|VYDf&e39!&9R8Ga*>IX2(#*H=IZ+~n7AG@EVU?TZ^X=W|Z^6ISTDA|MRz znD_aIoxY1a#E`qH+hoEGsGpG(u3$ovNb&p|r z2AIN~p(DcpnIT*0cW@CRbw)+UlTe*9IiB$L9}y1y05odjNx+r$+@F*)jT>%=X}$T; zrYbb6VjaM!a)6HkfUh+>#~HU%R0L6Be78${KCJwVt%cduopUHf*~3;aVC9;KlqX#w zZwe#T1FA20dlmMRUmVq+hoSBdK}dcl+G|G9IAhQ^Zt!g$TvP$9AIX zzjqJVlhJGn1}OJ3y)$nrB|PZ36=PU)$mb-7o60sN8BE<=04Q!!PLt=DO%b3=&QkvL zr~U5iq81Ek$<8rk(=&>XPngN_R0s)#Rwqj?mSpn^+s3cv8PD^!#A&}F{W_z*G{QwF$1~Jy!y0iVyU$-@uO=~uNGBatQXxv2f*-idMiVx^ZrC;@| z*V<7E@w$B$baeUZT?!zKaZYXsAR++4w=tldB8Jv6+vA{K1f+JT#I?PT{K0y3j3So5qD z_VX>cnxWnKu}yAiwR~5r`F(;3awa}}l=kCP1-SmCMNHxEFWs+K3I4ih_<&ylC~QB* zylo~>`ggD)^N7r}B&l_FRw940k_YF)0uLp~tN5L}Fmah(@_fSXVIUy{EYI|#>@t%>A*{E$?baHW&qSEY8$?|I zJ@&>ZvQ9${o&CP;d3k?XG@DXNacpcBx)@JzBuu5gxkwTLIaA{5t;Z*D;LZk|jCfP%6R>L@+ zU%7FCMx{zfQQMSyI0jTnbVanqYBb%{@-*1QYuBfVHrUUQc=N1~&MfVF(kuFjO5yR3|ppd^5J<-33NC_~DSFut$HfL@SgOfo&nbl!s ziB$JGR&}mO$GR6uVneBxfuA4TJrc_FZ46gVCj+_WAEwos>M=(8>3AFjuliO?$1CPV zuuneZ0!F;i6rZyi-G9UG-ahi6MPY!WPilT~*wtnD6^F~1zM3gQMAY-UZsl)sAU3!C zJ9#-kt@#yG>ooF+{xGU%+n{B$QgE>ZHT^F-#$s7jr|Ixnxzx+};o4=h?VRpX6hN9c za0N$E;%rO}ROCJZhosBs2LWK2ogXlLivETwJwFHvw>ZSNjNI~zhZ|acSq-lRn=6fR z!bfZ_;QL(CL_Pt1#y=t9A~6`BUmv?>dlk%npO1I$K(&?m3B{PvJn*iYenI}A?8H;n zQOzLB4zc;-R@%sRQo@-38kgfo3E**-MfLg>CV_{hY_6+Dl=VipCr&f>TnCB^>IcB_ zBH;dH09kq5yPs-}LJ9q7+~}(@VKTf@W71Wd|1q4hJISJ1^Y7hOcSSuQYE-!iku7+1 zfUlsd8;=@*^+0`%*t!$~o&t=UTEn7PcQ1g2DZWU~@LX!5sJ2_5R3pq^@`VAsz0C>( z5G3cW#HVE(leJ-`jk=2|8S3ENlA{YLZgbWSq^-tEG-Wac6-d^@^z}$p?p$OwTCrS5613vT0qq9E+ zjk60WdS*(l!5&)PSxbf&g}$5O++5F5FhorAzk&AF%pGes%H~rdXOIa~cHyZ2a(Wlw z$n$>MrZEqL>QeRLF{`-};-N%jD~DL?m>T|}h8o8jFRLHwShpBwtO966Kt~CcDk;vk|X_e;>>2YC~Rq2fxONGx;G6hk)VmdLq6LWuCP!hM(k#RKRq4pvZMuxZy#{A#l;DJ1*kms;_ z7Na~V?G>1}^ry#u?MweG2~vlquXhySGuS<_WBttkftIHo5TSTwmCd2k-n3cfWLPpR z@H^q+Qghc7rSvoY+p}}wD2}Av7uQO#9>ls;hXEf(7$*GHe2BT7g1}s>*e%TVCZiIt zj#523e4zYO8%A!uhh=&o|0xqUSNvP+XfKVo2xEd%a?~R3t~HeBYXF>Q?{s%HpuAUc zP7s2pH`a52odp*R(;#x*@bKrDoZmc&xB`nRn!8}lgDCN_J%B5(a1;0@GuRg)eIL(v zBrL2ztlP8!tz>>ZgM0o%KhJZJIRebyo9a?E2zx{o$+7c+P8p@T!@*!&a{0jLTf_KpoRvyM`4zY!*Ua6~A3y=|*=mTu zuaIVBPx~-mCl`xt#ubNwNOLV zH1U?^|LEvQq@*oS!ipU(>Fn(XYxEMG$i$8l5_RL_|M)ywAN?B9ooZh+T%jpm+uDx? zKuP|!B|4z2a@n+7osT7Sv}9o9OiC%S-Mx+@(7@3GdWh{W>^j!2SreL#e$6V(Sxf-; zCczWRk+^AjqFAu3zDC=jC`i)rs?gTa#!0RE!`;L;tC&3risNOGE{;*d}-OttezFnOxD4@jiKm)eJkYu+CLhmHc zsedJKq`NL*;#7|Sb;`i$w=d)@!xCv>aT+zuTqq7DqT-apzHp=C0!S;-Dx7>z*HJjT zOh2>6>LO3PJ|lcOh=OH-!~OF3Ah6i9`R%_Jkii9s#xhNpYZ3L(B2x!pm&dk%wtow5 zXq@Ity?~288fPHu8vvb|ph@QeZ%inPwQ?kBDl|E(pNu0;;%CH2JiM;t3y)|1XNeto zvb&Zbz?&WaP%W$RC27$9)U|Slmn7x6YU^*59)H&bGv_*n6-ZkeO2;!p>arU~a9vG| zWRue=EszXN@D%WdT9#!yMOuj|*f}}MB$h6~Ih=X<$kX-DQ4~D`X00G|?o`0L97&2n z%ITg4SP}xg#Z)8j>WIHMBP&Kexj_!Y4`>ojA1 zaQCcvX}rS>4A}80$9!>q>=W8+1UQ^nfOpeD=#QUq1v*08d}PlR_B-!>Vkw^DfoTUm z-pK!mFM1Q5onTi=6A)ug}Bu{@&%@XVCw&i>n6~P`LO!i{}?f ztF0L(pcE!S=L-hPXawEAjv2(~qponewu`mS(K19Q@YkdLM+*d9J`!HKtqx})QyTc> zUNTerWa}9>E`oSjBE@fjCw^CL4 zYWrt#VX53VMnZw_N`Q}%K{t~w`LfH;he-hUW89pKYBB}VbBwdf7uA7Cf!lGMt`?{G z&QPx)PZDCZ>}D>ScWfg{EpqW5F9Z*0x;zF)zmj;2YikXJqRB&|sN@N7z+6*qyXV0n z7iu+9)Y>c5^35CSsYT(rlP>*#3hO#fln*}E394KjN=^dkh|pTN2)n_Fi&H>s z$qC802t)qgWT39&EEL-S8sK_5TnrjW^hLPsq>!CmrH$yWKFW}mlS}QTcrnpk?;qF7 zqA!IwAG}B+IUhF*-GYx3^v%Owc%AMSs0V7$Ks#V(=mwY9eYy6FU41k5F)OZ`YH3-r zR2X--r8WZkN3q(vsku!iZcFNlH*&R!`0UftmL8`bY#Dz4F8y4py3&{pY;njSe+L2` zT}?C;R(mwVYp0$d#g9u?SJxiyoOlrNtjeKz6y8!hj~QZU_Zzs`}W>i^l0V z-9$U(f{U-h^_ftnW{=yKyBen>Zm#q>=-Eg%X9?KOk$(1PHK`zi;ebRF8M#EJ-XEf$ z^T|?FF5L8ZI}cV^M~SA`u!@b}5fT54M`&tzZXyTjtTM)EN%ZCO=1pB(uEQuct57h> zm*Rm9y)!q2ORtO~?_pwOzygu~`st-W%8RKK}s>wLB#vQ8# zd{Z}x7n(jz!I*6t1~C@eo4b#Ry(ZdY zHQH+0h+X*g<I{jbo|{_ z(@(OCOpgvK9TW?nI|OL+gm?M%_i16r;rxn1sBv_DLWx~D&!Q@?NO)8Hz!}R2luS#* z{LTimydEJnMDgi*((7uCK1EN`#_RkZ0~)BkC`Z`5JOaQ+ zYp}wL+-WtFcNYA4LhW~x7xPX<``F-%Hl8DUo2>WUHeyq&-cIl?x36$Vb>%8>cV>j0!hrM{Xzk4p}>8IhcU=#vAwg-}L%#kiZkr$n;=Xl?;o*_jj=+ zU2<7VK+IaZM0B)eoNyDW9Sm_ZbFo7wNb@ z;~AEb+3<>U5xMejxRvWUw zN`U{kgUyR@U8XmGC>6keE``zWF=^-VW$PctI708^gyc;ob z1MxHc84M^*4AJ4QVmDD7ARXckPUGM1&cc;uKJTknU<3e$(qrV%PD(RtO-jXXyJON) z31106_}*tQ!>6!1&=TahB4lahZ~H4Y^pGu}JNF654iUud0|sTO0Rg~nV|Rhb&xv|y zj&0nEa|-s|b7*A<`6Y#D4nRTblvbm*D6QIF`3>0hUP!=giOtxUy|sW*%%iZlcztdl zQ(==cr9M)04rsS@z4P|U1wQbP@p%XiXH%$9qT0$mIztYwA?4a0Kht3*-;Fv4ri*4W zF}>ssV;aRGtQxz%GOpaMP+YIQB9Tua-d z%m4*i7+}OaZXPp(8u$JR;1NK&yG;NQv`Nj!B@BJ$A0W9UH9p}GWL&ZpXy1Q|1OC0i z-k>nS^1Dp}BEGCU0xqc;7@vP=IyW{IRNz@VMz^OywDzcxmnws^7a`oWY!-rhC2t;p zE=h|xTLl>7X3QRX8uJN6fTp>*5%4CFD+w+Op^jTZYoj_**-?O+cZ;N;H>iG z{Yie6FcSfg=ZEb5VyZz_zS9)@m4KH5pel(W^JgBq$lGdg`MdLo=zIw8KW>-ZULCCT z^*qJS`~!9XUV00P=Zs-d!Ep4*Lo>^h4ph`AXp$3=^1Rsio4_MQL z)esW1?Y~_veszD%xY#$}5f&fI4QmOH)T^3db(|Hs^Z~TBl^n%cds&VCtk9tUrR~sRloSc#J(}hSl2_dn_ z>zC-)09Nu?qeTEs9(ZCZ>A?JQ|ZvtA)_-yr}?5IOl%z%ZzrUm+;|}ByQ>7 zUknSvb1e70BZawJo>aKi|PsY_yPjbN=r&f zNl1fqEl5a8Nw<`gBC&v^G}0w0%`Sp~f|Rl}5>hS#0s>2jAl-LX{oUue&)q){=Nx9{ zoHH};`+mP4zjiHIv%%CObUwAo1B)o8!}+0E$2X)ikRD3}AG+ZU*Na4MHs!u zyIJH|eD!4oOz~E;O&hcEnfSdBOU12SrnG?Uihx@fIo33;YpaEsgOVzICb$>zuH?bv zSiL-X`z?+lhv=UyqH%nkt1^SXl;Dz4Y{#)L2}?;nTT+&)^l#LdhwY<2^QYT8r=J4_ zO*tc6s`>rga{^Tj|e-$9!EAc9V08~k}=5+s%0>lvoh`g|0q^Ud*z}Cxt@2@Vo_{iKlCp!x3ddAj<)BF4<}{(7UojnAHE)9o*W#}n zCZ7fC*>){?9FdeAcWOFow-jsiJQMrq{JB{n+V7=45f6`Vo;SyfiiA?31DlJ>rPFj> z9}f-SRtju;&QC-hTVzQ5$-yD*`bjr|w%cb0KG*5|eR)uSM6$*?I!b{Sew#O5p z&cP+$Yf}{5+`a%cl{f5rSrQL|I`*FejI)gLfq_V-Lm@?%uUJehOIR`Ig*jr@-J;OC z56&xKx`$&GaLxZTymd<}N1bI`W=o{rYbfnT{b7;Qunjfi6)xNsKMtWglFS&tfjNUj zb!z{&L>bx;R!Qs8w?Q43wm`~MdKPLRSO&QZGV%vKFTcpbc8CWEFLWz$oM4BgJ^H|y zqe!%K{gqZo;EAw#Afkb`vj2>(VD)!|1{r4)lX6w3)x(xAT;d2;k=w{KR70oUR514Q z{8)Gm3y@wF`(G1t7C!{dJX+6T)G*4Wm{F~|H?U61w8Jcx&Fl+`X-r9DaAF#M=q-*| z#{u=>A8=yL2{xgis^vEhW>^(fV7)CS+I5AF9xBZNBprQp}2(QCn_6ujhn@XP2x*)>k4v%&XLg#aX)_*<*o!X6G}Gw0Y3AYXLJ)qCmLof_K%}Id-L_}R zZK7q632)3Xa*~*5b_P9+w?4|;2U*r-8Uyv3;v0`1<+yp4b6-?uc>g+ z@Lp|z>WeXL6WrRo?@oMt_iD7G2D(4WrcEj}MW5;HX5RxhhI& zQIOYGf^uW5g2<-6cb4I@inh6qY#q!AZ21BiF$)h1BoiLGZ_=+0H4B2(8hBWQYw8^9 zc6OhCmQzff6$j<8jwZ(t`c%?R^P`ciZw>JjRc-&?;81S{lG$ z(;WMXfxw8AL4W1`t=m)qgu1Amkf_8`i&sB-rBZApC?qfgg%Ll2nOOxXNHFh#JMR>c$aZDRTWA6Y&@^C@7wYi;DUKCo zB(z_Fw`68P>$mA7ufT3bFJK3+EGNbGUsStzvU&Adf~K+naeK%W9MvKQ-r-Dio>mR%lupWc+~bq$Je3s;TL2*5Dr?6*wM%PPAE6-*tMGGDs0+Xnx@ zicOT{7-HJUe z$((p$+VYs2b>SJ4`i^6#%QY}fygp9;8I#YvhPBJ~(>6@CIt#EWme6q@iypm^kQcq0;H zq2>LQ|M9zhRA~s484*o>k%+F?$tP(qe-b01lZwsXp>v%W|<8 z)iaxhn3`@EBz1|>!?QA=pmaw(>C!~PV4?xwN;tC1IBlmj$@vYTn#TPPRMfJhxSfC` zm0=Fpaa*2g~_P5R=rad(*KpV?t1Y#`1jy4zaL zmAMp}u#al2198FDT(GG*pQ>wf*BF8}H}HVw;xWU@uIwWXK0u@b?5ean>WRY9w^fzR zcVvqFz*=xZatA)z_)2o%te5d|TjK+@VBHUgA;Un+urg6ZtqOa;)AIhbzkee;`}moM z9`!x>U&pA*MYTdXJ$q_McHtr9=^kyCjK^il^k$KbXTXmqIeqI%nW@1GW1p7YX}Yz) zNrT`G#@&=%C5WF&w|eR091;|aqMAun$vClrF&AdEy`dq%g(yCK36o!&F<4hE{au)u zB|K2r)4*Z;VRLY3<}4}3H#|c(D*!x`z}TWh9NQKieCgV|`!?cHMlo|fTSH*ib-$Jy@kepDRm~y)A9DUHySp5I+0DdU0w7Y*~f{w^nA{H+;ARiDO}F zoWs&bwrgvlpN^5@{fLhYI)r#jD8i5+uz6?2_Zpbp>0OXf)v_JBit2wK=AIa`{heYfFUvc52;T3~}>!l|I zJxN94HU8u|4bNtN0@;-D2fMtG#a@6uK;|+Se{7TMwm}?KXXwDFMnpm4uCmIbZvb)T zfAYETEaByP~l}q3hoJ2Uta8KINnFC|9%NPAO>x}5`n49LWI0MZ?UWtlM0hXD{dP+bg55s=Z#t zqpM^<^#UxtlR|rOjDoKF;Nw_5_i@^7G!yrLrclPaScYLt& zg4G8*j+diPliK@09<1e8l83HmybfOK`jt}Y=)gu$+`$jxprxO7^1x%YVNKg)Ie+iq zK22MIsvl$c~6p8TymOTv?YyU|qtCE8)U357YKk7B%?dzMt<+Jpk zO}fR<9=q2i)GNzIMf0h}zDn5|eiWi2bYL3s@)`h$nxf&jyNCH(bE~Zm=M6}W;lR6& zze*}*z-&{fl>hd#3lN;Y2a91T5BYA8<)-hLqroIr=}8~&XTm#iVZ8)EN`->JQ1cFZ zwJD7)U$`-pz(5+J^}a-tVlv#hxV+&~E7t(l1I}jjByZ%kOTDTXjYrzA2#)=`wZFbL znJT$Z>q*@vl_yNpYizpL6plYA;45Dw3k@(77b^!ht|Jm*j;OeHAZsj+RC59!XW~L^> z?ma+NOvyfa)UBg=18|mxPuGr#7VbWoH*eWF@oEZQ0W_drWlG+`($V~ZlK@{PT$KWM zZo?ul`D(vNabvtxqB(-Ca=Yitb}wQ(nm{VP!hf(a+U&*?Qpp~Fw;Q(~2ClbxFu1is znbLlQnr7tVbMMIwbeuAV{c3Ry;)$&?dv2wRpLldx`@I&qQO7DV;O_?ERdhCSQwPop z9fb#al|*!OB#LUI?xpPNQ&Ua77Y`-NO+6E>l|gM-MGiuUWoYG1lwf9?{+IYT!! z&b<+ZD*gRis*UHKi!Le+YZi~4TbrL|ov^^|d-Oe0-eqDHDJ`#QXL;Z@xrQhh=NGj5 zfdVT5JV2%J?RrFD`2)@Yz|RBW zemthlv`cER*2YS56tNCrU9*mS4@L805pyGyNYLi@1VL6sh=ZF9_#hr{DuedlfoClvw#E(R3anDLKQ`}wWK%(u2<_rp<& zP_WLR{e5DVjN6Rr#xsB*=Qx_Gj@Ss6t{m?UXF!g2L14e+=vs%~z$;JWx!mzks ziMi-28x4R#ieWw?fFPN$e#ft#4MZO&Q}d31qB9<;K$-V2AXZqX7BKTGY<-3hiA_jJ>eJc`>rvhTAvVtq&;MciNrEdGH3j$k@gnz*~8MDi9`l z(%A{%a`AC)7*Ma(U(oOQ_teuQvv30aM*fF^F%HiP6;b9QL)Wgz*dELQ2~}^*BOK6o zPh)~Za!l{z|6|cgjEz6$s@$QW(qL zpNdQ{b+llj54)4FM;W`EqzC(hlQpIRT;Yb2pu8c+)}wM{vUNx8ge|9=wia)7xogtB zgs}t&Wo1!_?+m;Ja6yu&KJf#Dsw;;03joj9z9>&O0@&$NmrTAybC@_M0*EHGc+p>n zYs{EwVv)6X0EHRTA(el0XU{y67$aF>RlWo=ka#uUIv5s3^w^Bvm8aD{IqCsO()pSu z+QBTEPu*6Vi2w?K8B=gM>6Q5NWbp4FvzpZ}ppIh~^cHGJ@#3}*VlCIbEYcB-Zk-=( zF?v`Y%#*|XLM9ZJ&eQ-_cLeeWOC6x@PlyG^33DTG;6JoAI5U^>AJ>`$bgGwM@jlD7 zt9E<}AhwkKkL&zzh@<~}AL9}19|r!gm_6BhNr9dmj6_{)I5cVRHh2&tIJFk^9i$<8 zn4=k>VhEa|4J=WjYDc!$)apxGFqr9%bj;uF_?$NrG3@IW- z800VDT9?ff)kPKISxf91H~8cW-^-5