From e0c2c2cf21d4f2cb88e179c2b5cb49476e36f5bf Mon Sep 17 00:00:00 2001 From: 4DBug <4DBug@github.com> Date: Thu, 8 Oct 2026 17:15:54 -0500 Subject: [PATCH] README modelled on upstream with rendered screenshots/GIF, docs/TODO.txt, screenshot tooling, t_readme snippet test, ImGui.NewTextBuffer helpers --- README.md | 242 +++++++++++++++++++++++++ build/ImGui.linemap.json | 2 +- build/ImGui.luau | 14 ++ docs/TODO.txt | 53 ++++++ docs/images/debug.png | Bin 0 -> 2778 bytes docs/images/demo.png | Bin 0 -> 14285 bytes docs/images/docking.png | Bin 0 -> 9665 bytes docs/images/drawlist.png | Bin 0 -> 5909 bytes docs/images/hello.png | Bin 0 -> 2003 bytes docs/images/metrics.png | Bin 0 -> 8533 bytes docs/images/plot.gif | Bin 0 -> 253265 bytes docs/images/style.png | Bin 0 -> 13419 bytes docs/images/tables.png | Bin 0 -> 14653 bytes docs/images/tool.png | Bin 0 -> 44935 bytes imgui_widgets.lua | 14 ++ tools/screenshots/capture.luau | 300 +++++++++++++++++++++++++++++++ tools/screenshots/make.py | 42 +++++ tools/test/scripts/t_readme.luau | 139 ++++++++++++++ 18 files changed, 805 insertions(+), 1 deletion(-) create mode 100644 README.md create mode 100644 docs/TODO.txt create mode 100644 docs/images/debug.png create mode 100644 docs/images/demo.png create mode 100644 docs/images/docking.png create mode 100644 docs/images/drawlist.png create mode 100644 docs/images/hello.png create mode 100644 docs/images/metrics.png create mode 100644 docs/images/plot.gif create mode 100644 docs/images/style.png create mode 100644 docs/images/tables.png create mode 100644 docs/images/tool.png create mode 100644 tools/screenshots/capture.luau create mode 100644 tools/screenshots/make.py create mode 100644 tools/test/scripts/t_readme.luau diff --git a/README.md b/README.md new file mode 100644 index 0000000..1cf0e9b --- /dev/null +++ b/README.md @@ -0,0 +1,242 @@ +Dear ImGui for Roblox +===== + +
xG`z9{Re7x?sz|O@d&V2ka^ZJ85?>EG^=>2c z#NQ~~d2LnyU;Uq1(A$Fr{(dE2>pq?R6(@Pe;_VeXj_*4U+y3YN`QZP=?n8f*l9Fon zq@``DR<3?>XwsP@$B!M}`#oP;>9X_W_TMKI`t~b)wBPZg-rJ5PvHM}&>-@UPtS`a4 zpRcx+dncaHdq}qB_Zs7OAIlp~9=824FRV&wy5Z{WkBz?{49^sQxbHyF%xCM}_D+qd zn)6yk|3pLT-$SzBMBeTHyuAKy&i9(F{4)ys>pz|S7-y+-r#V>vfYw91Pak%#JY@U- z^#31^{~TN6Eq86@XWglil?*|FzHH%bJ@4<{3(x#nApc*d#rjRcN}tVlKVOxzu_*nt z)TsHsc6;rC>2k-}bOhcppUXAZxwCuS?XTAaZ8#GyN^*AdUG!X6DrvKL|D%H|e_mCa zct7;fbI&(_i{<}cn);9T*a`8J5A(iT%c{J2_uxv}?(|i*byg>SsNX;F{nU>&=T8)y zGHAD1D?iV(oj%v@Y-zlJeA9-D1@_yk_uZ;3)>620blvjJPlUgmU8!*A^77_2xA%Vk z^A42W_f7n_c@h7Es>8O2 SqFy%{1V7O+3myVGjTa42@i`3KMT{|?k&KdHcd2eZPR*4+i} zpj;&Ij-&kHIljYxpB bsx3w$2^Gr{bhc; zzdpl5y*uA!-#usPxgS;h{K-}JJ8B;b-gA91e5m*9I@kAKQ~y8oulu!9JWlGuqnY(@ z@5+NTl#9LlnqK+2Xv3}Z)o~& e!pyY(zf-t z(Ze`XxBMFQ?`QHuK4iE4&fN29ZMgj351W$@{jCY!`@8%tXG4MbyW70qKifBJr`)RE zmTWuuhmP^%x{XYB`}fD)_t *vv(b17zpyTK{>6wS_3d z!*|>>KAc^7= nvY}s8P4hnBM-tVHEU^82-55 Bj%6AwYb~HocC!Mpr zLATwSA*ZE)y=C`zZHAWJ{7w!#m>UY%1>P}md~ZGUccS{d`wIV48w&Q{Ke&>?!Xgx2 zNIuj9mC5jwvte<;{+}D4*DPWHC7BIh3;v(!j{o~8eBaJTyDLk}V{&4?EB>6qx}&RL zz0_j!^^geuBpX!XIbSB?KQdc`hQ{FkID1vUbRkF(|I4OvdMv6;9aQA z!PehT%Gcf%e8+s~ugSjOd*9ptJ@fY9Tk8eQt=0_%_hWXHU#%&svfFQHvDH4IZr5JJ z%AJ+_Pp*!S(XO2R`D`C|dCTty1@^t+`@X(fEMHgV^JCld2eY@&zh80hUg_-T@~ZXe z7O^jOon6=a*4^}tB;$t1ON}NL^q<)w{@3V&^t)I~yR_s@GmP)bcfMI=s ;A` ziGuaVv+e&MeZKF@*TjeOUcUUHQk! OT*zJW*Ue)2mN@&a09M1v5VHNawpVM{Dlm_U&T2 zQ!Cwn=zRK^&T?Shp}XP+jQcFFTFNkjT2?K;r##$e4NiaM4m 6f@1*$7*Qw`o#NUCE%x|~VwlnW4E0-R%zs%cKUFZGhsnmx H+bhv&67V|l0TSrKkJzs{(je-JH>yDyUtwf z Qw+W)#=`kLhucmBj)|Dd w6*JehgkZ&zQxqS?%19pY=xa>Uur=n)q;x~}y%RsZt}rSEco zVl_T#xz3AyIdAEHJ+ALQJFc%k%wPZMvj5%>mrm@Gy}Wz%mQ4=qJMIGn zch}|K?cKgJZwLR5#S %sH&JgA}7Qg7y;U@O>-!nq}A5T9uWu8RclY^I&{n#bv7nWO{h)loJTK#)d z4f~CQFBO*mx?MBpWs&~*^6T{ihiacleNS7W7T)6{{VsODVvg<|-@VKn<$HSm>C_az z+ICJ$cz%++ 1e2Y`*LkX* zC|VkcCaizR_h5GLb_X|Rj`D`P?Y~V0-hmT5sP$*90Ik@-Eko-AVTWWH%$#;GAG-Tn zl;O}_c0~nHX$q5)+pS$yzj@<{IHdQ`TD+}6DIO=m+#~UNff;GP6ZW r3j z9{wAwzo$g--PdWLc%As|-*dq`7H?iLfNYle_Tb9 b)aym= zTco9e^78|WhyT79Z$JMqE @~%&E*&w41c&%L(16E7yLH#smV(PBfp@!S7P5od+YUQ^p8<`8 z r->=y2qIP<#H3O)0>(-n4^O*U*!gb$%6%|Z9ee~%! z6Hpyu8J#aC@2~@8$M@YIU%a1xdFQ@4{NMj%&HQ}Kr*-@9dpdRyi}-(@-e0q^@7b^U zKkx3EWo@@}9zV3VP~9*8_l5i3-zu}M?NjgVb_KPZ9`bQ~XZru^rvDkicYBxSt>l3i zGC$(F)c0@4&IDDkFJ}S;K1ccca0ZTY`4&hLLT;OZid^JQi8VM7L2)VY4tr6Zx#}Iy zdPrS Gc``Hvr5`RJXh#$V2`rjVT@^mpT7 z+j@ d*^u3!%89!?f&D79$#KJRD=2sF zE?_SUAgt{7jRN+FGi-+;Z5jC%hC{Lm>svs{02I*-E!LpO0JUDB4PJ19b=bk2qjP8V zu@`4wKe3yr%>}No86Vo2-FeIjb_Ihp*Y|a^{Qb^9H)mV^tyTbBr_04^33Glw(Nld< zpBY?fa(v$;`Tg^Lu5v8atV`*weim`*!LcV|pz;CK_-1e0t)Bo&wV=cR%KIRUD2*Tv zz5Co2rPu*A)yhGmg@ |%hwDtVEt`FDU0ws@&hyIrT`?7xa+j;B1O?)U9e{NokkTN*ogz8Vt+*ZBs zmhMzWhaJpoDhskU-!;A}XK%6f^(Ig=WOo63%kLGNPt5@tyw6gU;UV9Ke=ikYm%X>$ zzZ)C~2io>Ec!FIIit<=kuZFQt5Y+4d 3 zMcDuBy&qS|Th4pGalXF79Y#Khcl>)^uI1nR`r`Ke?^iDQ<^Gkg-7Dh!_Y3F61>P|n z=lO1R>)y9}_U~5hnq1X>c+1@9)o-42bCfq6Zu=d5@2~swhU)L`{~sMw-(UOrv;DfO z;;-s$|F5|BR${)%+2^w#{$%1PZ{ThHJzM@~`}30Df1k(i{d#G=-WBQd)>o|kOZSI{ zrv59P`TTZv^ZD&xx~l8 I)BdfGgrcI=HHk*KmX3PdHEOL$~^eV1WLB|Bi%nn*B6}HDn0*C zncbb&vT^agAEWCh_-uJ~ZpV#zH*egzcW>?MSFybkcRv5A;STH1dGk{(|HFav+cW$f zb}-AB-MRm3UVYK2t+VI mbQ;}o!|cA!4+nk zc=qK@psr1){)@;@+%v9ix+X4Exet`98VclJ>%RZDxOmsz-;3)DA5Xr&@8?hX>#w+< ziyCdM+MZl<$z* UH-Pf};$cDx}{n-&Xx1w!bVi_V426 zP~=#DUHKhfdXmPM9vNT>6kKG%GPJ@S#+K^KYp2(Rdgt}WTxVBlC;&A#_j5ej`Mcu7 zTWBHQ3M%Rn+8^G#Q?aim>cyqFcbD!}?3-AYtG>PDZo;R;jtWq&U;404QTW}*-jlMs zW?66c|6LXWs%{M)|9j9-kncYs{Z>`Vj@4!0{K4K jwRVQ%kqSfXaw9!teU)e${_jRsHwTA-5lUSOnfNq}@3! zb^z4=w?1&nI~7#-b3iJ97H9 zhCp~Y_%=A`}5G>F9#;wR=z%0|BgSu&Q6HX zSN3VQ I_3#_Z1Qxpzw|rxxUwm0f=t zdT8&>o3YcwIlrf+m&eAbVv}sOJ|z2K*CAWsn{VY+ub ;}4c)R`?*>`VyPrBvD z=C8TY7Tuy?qLI1m7`SmwqQMy*sb+XTkm(H%d>RZvTDs*t+OAyF2=3Wp_V)dRVt{ z 4$m6(~W@x_Wr;>m??u+pDj8W`^;9UpM*E z8o76|>PsVS@9g&TQU=*`+{U7G<5Hug?927Gg)IB>;L6cyr>4lw*>xjm=B4If@o25! zs)AQZ-l<;vep^G>9`ZdXnGpJ? @Wk 6=dgt9Q8^+;nUfb`z)`TFaPx{1k|Yj4Z=LsyCVp$UBE*!U>>OH z!3`Sk0ZD-JH)!Yw+*OA(-oWj7j&cT&5whU?X1~FGUPaxElld&*`W@7Q0X4uum7A=? z4sgv0$~FrR{d=N>T3J+qs~|1!GIKUuk+u-790AN!RPY%Kv}8|0n-{O}Tep&wULA zwY3@7S>4gk+HJn?c+2m&Q*~z^pK1R(|Nrmsf8YQA-2e6M^tS5SslU3uUOf&<&>p;C zyC2T;dsYAKPW<2P|9|d3_tHk;j{o9)6MrpZYpMS1nF$(RkWs(0J1u>3bW`xoleUkq z`>wls@=n70d3&Y3>sNcW{kH!l{{LI{|EK%IzxN${SSR(B_nNu(9ma=z1+fq73_ner z{_{Gc@w<Q`~T>^%=|&@*# t=szq{uu@66>B5_rdO{S&KCyZy|^75gkjA#DUZ z#XjM8KcCHe;s%Zw@pqu=lbPeYt?)Zg3^Wvc=Tw9Yt0I?Y@YX%3O(XHHnZGG!p1(V| zYy}tAphN&FnHV8sY@h_fd_nkKzx}_8@U7SFh2Aw3+)n}(Pc`We`3f2e_7^^O3*P~e zm~U}s^%aS0?~<8fcQC)vyYs&OLE~|`>NT-%zaIMqo&_mByQBY2&O^R}+=q2p-=)p- zK 2m@$C5 z;cZBzKXPcHRSsaom_cPXNPWX 6SJDIU-+9~k3 zDm;sWV*TN}$Bf_v0jl$G_!^w4!MPATPlePEZ~!%Uk)#FQF|>1ifAwz0H?vwXa8Jdq zc6a_CHbzjH@^{nb)yH1ky-{je!3_%h)g0fWx6gZHs&MD_^vBYZjo*EY=(ka3U<0Y$ zYk%jwF)We$wpSOtx~s0;P{6+7Snc0}@)ueSrtcUI)y}%?SY}%F>B6OZZ~J^$LHcTs zFYkdAR Z(7`*quogKBqMtq){9 ztTWV$GMlt>X06xe9W!5wm)@KDY2xw7Up);oukBFRw%k|vq^J6ynK6H<&kpr^6>yoc zd}d+(@;_;ZYY$XOJmkAB^Dg%Di=U_DW!^2l4N9B(eBTYT?;LNhzHZ-Y&GCI@+MVNX zbndiT9}qiSdr0zof|7ao8x`r=TLtVoQ)ia0>?sfjl^gdDuKZZ=e%Blu3)8v@tDA!p zH$S|$wMKQn?WK3k{C>K-7BAZR=A4%D9ma?IzUKQ)J@KGq0{g#7%PRV~K@ jQj;YWx1kR?a@Sn!DWMOi%S5JNL3zEsA!DJNozh^}H1e8GSkQSL@K;@^nxe^76yF z-=Oa6i@Q(0J(>3Tn@7;`eB(;Xp8?9>gT6da{?2r0@7zxDr4goX?~koJ{dVqdCDY>g z%l889`l`!2Y(D*XJ+uD9 l2blRyS^^+NOrk?b9yFGjF5Y{5+c&$4*C`3t3iPcG8C9IgxV~`3!RBD^_bXm}pS<(%-q#1MSMxOJCooCW zS)E|6@x0uy B#59K6T2F zVgR&M1e9*r!BbSspqf}2oCR8~Im#jFprJsY|NE*{VLoR{--8-b4m o8x=Rg6;b1=1h<_79YoV)kA-$JeVoq|IcH`;nKG1zyIq3 zcg%mrij-lsk1KzVE1Atv-f&iT>Ph{D6TKAfw687ne^ybG{PIo3lY3`(aD#@2t6!Sf zY&cu6{+;aMLwmotfhXG<3gX{AxZ {Wps4OT4fSm;{DH{sTgR+&j zS{i7APVoLA*@Wp2>;5IYe%t(HUTk>(9fgErwGQ3=cZz*>bk{xP+Yq(G{Ik{kTPJOI zuao=Z%OLO$R3dYHzk29ziQ|sL9}n&Q_kWkho!hU2RviOXC_DESr%m*!-u`6T8E4*m zYrq9iywV-zm2>YH7neTdJG3|U Epg;!2a%6|13neU*uP`FdeC|t1Rvg52{0~6Y-+n+TYzfd~$)j3ev zmoT?r{ky(UGqtt9C+w0-e=@PT;C^5$|L(2=@plZbTdIxS&QBM=eIxX(w%w9-$0h$v zWd 32^JEuRHwmQlQ)F1dA z{MO5F+2>Evx>Fr@@N<7JdsY@&RFGVAsQQU)>N~?vJ>dC^-+Qv}+}3s$yP@f|#k zuhY8oxSkU<5~*-!x#emfBOmeGJ3gAeJ0xrTF71x;e=TrMP3QlJd&|=-t9NegF Cik1cO@!o6W#aD`R<~9gq|g36M_+&2#x1vQ@8|5<~;XTvTc{wEy`Jy?#KbbY*ThzpLy|L3Lul6 <(rbtvlDFv?f=! ze3UHrPJOWI(B2ojCYFeSZ0deE@BXH|9sF@x%6A@e9kwl+%?@HR@|6~36>aql=Urc6 zb>hKK8RPROUMeJRekf=E!noo=+RM^r_T}I7*3MM9 K&v^`Z9bK}zOj>Rwf zq5UTH`>FWDJ=He5cYl)+es}Wqwt8Do1{HXBxxL!hv}&{RP3^a*UAI@x{V7r3`Dp!y z>36mD?}T%H?|xYWPH+3_cFeESx+8w>_>--B-o*Xf+frREw=1jXUT^GlW#c 3@S1Y)pi#6yH%#F^!fB^>GsO4KO?>fZGC;=^u7by^&hwU#Qpr3eP^ {9;X}{FFz4iPF$6|Ld=al#EUTU;j=Z1%zz?; |8GpJrmoEr3;VEwLQ%Ygar|?26kNX`e;MVc< z{ %sc zeg3<@yRvxZ$AQ)6nBSQ^9XfF+&HMfH{(1jz{>w~zeDpno+9%M6W5NHe&<@P`+moNp z{ge4mt6AQLAz1Jo13S<62TecLO*K2XvrK*wxclfY^KS3t*Kf1GZrjZt$ncOaq4)QP z=HTUARy28Li6QKD # z>1SoI)u5rLH=1{5*SBAO^X%EQZrjh{=bu!3*!A)Do7|79=az`SV>mRIS9j{pj<3(` z6(!!CHOg!I?Rum
oi@#fA_FM1HOq)B#!OvnN_iruG zzYD2gTdlcUcP}+MBlT`?HK<%yxU(?b612$W{Pz7&tv#{N?(G&lCNoFs=H@RBmlAfA z%W_!P>F$P%!f=;AxV7K1^yp^KW5qG>09s!uRdIig)*Wz*=J)w?`{wHBJ3&eqP}qS6 zFRTyACX}NtSb_GR1>Q06`LW8(0oALZCI&R18DNb|aIFApae;~x_7}Y0SFL)s?j-9w zCQ#*bv&*V>)^z{Hub0Q^nTfue{Qd9G`bN(8+Lf~(zxM#SVBNY~=PmE$efehp@W8`+ zcXDqu`?FR3{`3PpMlv^hPPV_;&VuxU9pSwfb1pwvQ~djt>r|U(X71m<{LBP}5J&mL zb2{27w_NX;e&yTy@ZQyxC(~r(w@mcXn_KAr?fZk9f1l*~6}f|&fW^J9Z|$yAxj$3u z&S&mZt-C=z-a~WmT>AEmBW!nB`l^EYDZD3T9@-VLb}uyoHxuTHUOU54-ctSKBe*+I z{_xzThx6t)hrjKyv@qS2ei76m?4Mt^@%4>si!R%h*(xt@1}(c4e|La!zvb2G+Tcb% zG#v`Odt6l;pX~uHi`myz9fMS`Euf&EO#PsbjF+{2tGoQ-ZozE=?{>fY{cW+;|NYl? zZ+sEgw0-7&Wl-!yZoYN9@!q~UcQ_8!{&CJKFaBLr^mv2%y!~hILBikk`7L8by*rYi zrMV`~8%pkN-yZz !U9p$cxMgqsn zvzF9)=WBibeT<3!-=de3rQQF{J-h*8@Y&Ytl)pSv+N$e*em!=$_9VN#`wo9dG;QA5 z9BdrjVlCYETSePhjsN?)`gLC)9M_-vGKwh$H2 n#4u4q`=K_(3(z$hkO^L--U*rjh%e;ZsA7PbkK~`xwxyE!gt=9wB@?& z(3gA{yWRd-o$G#3GF=n%cH*JDcg6c;?spW3gZmDLVs{vqt&82UIRcb7);#>CH0_(y z^e0z8cc H8>tULo!j&@5y-&3EY#~8 ze0D^yR00)82j-=L<`qCDgL-F@MD@-fma{_*gYXdT(|e%u{ )P_6#MdtW)4`FCe;H#}c;di@MgP`9kIt+d>ce*J2* zc_^q?3$B_KK(k)+jqb4DIk%y}-|u1iw&I3@{C^M4s<-UzS+e(vO6AvkQ?<_C_P-Z? zotKaA` |i^2KgZCmx{`L5Mvxo1j>cb`_?ZuzF1lTYlO_|7|VKj-E@eR8#V z^5wVEFW0_eO}kS)Kk$zxI4w+VtG+&^@>BeB-tXT&Rq@HcJ6QR8QCF`2>U6!5vjyu# z-<@oSv?aEOEK6AH{Vcv+ck0PEEAOtiyi@&Mhxf%g?wPk^wC@<3f^x;~Jr)T&o?BN$ z?C9TlHgSJxM)^ZKqdT`7LA6dpL3;G^<~Oe%JXk6He8<@z@k|y*U%B}Gc;y~R+Bg^& z>(7qT3a*k_1zt3;hoS7-*_G~p)s*88sN4aMvP0?thVGW%Y1g|z9ca+nB5)T1REBbt zH|)hVfX@M+uguZB^Z%dod(iMadxLL#b?jUIf6cQ&`WZIdEwB#-*H8>O=6BA67P36t z7kG8<#5?nLcAd9xP;RZ>e5=)3;m-C;FWv^}^A fyXKVAUJ*?pAHO-g5e;vhkN#>D$&vl5Ibk zFiLzV6oANoJ-k=@{&7&_bnohm&Bbr+@)*T9zWZziwL$V#?=)xM@lL s}mF1m$SW>YEV6F3tF+WV_gAzL#*&S x28IpQ$eY>VyW0fbF)+Y)w}JM(-I)8I|93)lV(KcJtqcqd44$rjF6*2Ung9iyOiKU& literal 0 HcmV?d00001 diff --git a/docs/images/docking.png b/docs/images/docking.png new file mode 100644 index 0000000000000000000000000000000000000000..d1fe2b7ecccdd2c4dadfd88d9f8c98c0fa6617fe GIT binary patch literal 9665 zcmeAS@N?(olHy`uVBq!ia0y~yVDVvKU~1rCVqjq4oLMEoz@XaU>EaktaqI2fz3WxN zqYgamU7K2c+-yxw=7%P6%MB0pl 8a4>EFWwVM|N|iGYNaj)TZ!63H%oh7h?98K~R|r~p32A)RyL|NmOw15uh5 zXlzz=kAZ<9f@dN#14D-lgk)f72z5KhE?@J(b^9}ace}@rKhF3W&%ogD a0UhjmvaveU)}ff+3eLZnbTb6UHH)^Xvx5!Q1r_E-1GVMb)uGM zCmBwhd}r_EJGUqAe0Fuxx@wRnzeCsK>udeGpA~)JELHUiXH`{J-~6QJ=O@JyJ_d%4 zIsZ=l{PDQ|{LV`;eeQmBiAPUt{Kd%N@Px;@^-H(7{;X*k|D@}kl-L; `F^kZ ze% ;^Ed04zd1g?UJ;=qMPDtKV0ht})_@w0Rjh9w!xjr*v?tObz^!{+B3Il_H<;ygV zYlp5LT4%RX$Z}$P_VvCKj0_EX-Onws&k8@jp#RGg`PJrIZt<%ZfvgPao1+z UNyoYsJM53icHze!BJw^Y_&3=vv6iz_7-y2o$h QGAJ!Cda~#1=iSk{H%<88=JP0}FMWUi=05d5=lt*Ai@3dI z`A@06`V0b=SCyWhZI{1SHv8B=8JBZa_xBsu`2YC$aP3*~bD3|>Gdes8>7G+=_v^_v zX_K?UAEvWS+ S BJ-#xv4Bd>Gw z)MGwr5M_Mfr}Gz|*}U?JKCja9Q@_j4ZGX$FoIdZKfF;9*H79nyHZv*uWG|Pe|K=9= zl>aX`f$Y *=D>iU`c&wsmH z_O_(!edi~Tt4rL@HM8@_?X4;;UE{rZNu=CO53jr(TlD*5G>QZ)gZI>b{+&Ge{i&$; zU!L48yKD2`hfC?XR>dbvk(e3#o$C1g-!tEw%-nE7vS!Dv#qRy<%qGoJJ(-=xXZ`Z7 zoYy~<9ofxln~jghOS$+R{hqH<#P-)h`M=-!_gsDI*Jhl5qVhN~<9y8BT!S>DiNg1v zD;F^cSYAB;#HRY&n?LWfi+8@xnyCDyy8cCUVKbY{xf9>>4T_q6r##C4e^W_aLN2ws zsO^|fiof3 0Yf9B`=XG)c3yYq!N&s1Li=5MrsW$FDZ(j9ZUs*AYh zZQjntptRh+$dCQII{(x2IV!C7R#Z6kcyM^s{03ctY~$zh3#4u(C%J)|r?7Il>(5 z?l)DKpXI$-<=-ERyJZ+$&TR OzK~r9u${!$f2ECnj$T>+9>w%f)@B zd}E!+ti;YBV0pT0&gAFk=TCP%_fu}&x;Zg3_SBT}zg3OpH_1@!m{VE7%+zoq((8#y z-2S@1UtV7Jc~bJ%e5UQ*(vlZ9_6qNJy1w{%KHu)HImxG%v?k|*)Lx!9r{c+z_Y3#3 zignI;VmJSuuT}m38 P?pD?Zw-RPsyEln3ZEu KxK zetv#_bn2u(d+XlbSHJOfHS^^C8U{sM&lG_ysP3P0?Dh5a^X+P_Op5q!-d{5B|I(N3 zALQmae&>|#p3`1Ff0l3G)*Rj0zUwjsETeBsRxWaQA~Adav8Zi}9G~R8HMUe@cj?>s zGkZ;{wv@}cW#`tZAuCw({`(V|dX4+`Cx!V_n3jFFGwywIgt o)flRNuzpINq?*_hQaM>U_hH22@PJg)8f$Hi~`i9P4luW~`{ z`kT6-Yt@#*mcdgxdF5RA6pHfp@J_iIv@vnZ-m~}bP1P&ni?)e5TV0v)r03_+7pd3h zR6Q30 ~L=be~+x7fOLw*0I ;o%hK%_XI6LZ62lcwd!&j z_cF?M+=|-P+`cZgeYIsw?&tQ^U)|2lP*q}|$lNg}I`8k1{y1UF=)0>oulBtsyYA`S z^&dY@oSZK@vH8Tz+5Q_EPjt#Wnq*nKA=pE{toYvAzjFdA+Luqb_fx9>y2qayhFC?D z7uPo(7v|n3Y}qewU-#+B$ptey_j5MReSgxh&UeYiX@89Z1T43A&RORF?*04s@7^g* z6uzm=1&tsjc9(O#%HRYfs+|5p()Cuolufq{R2CF{p6-5+zrMciKi_WcZgus#ydS4q z-)eJ6LsJAO7O&i&Ed1Zc@As*h^G?QWuATqSPO+%xY<#k=^h9Q*2OTc9SRnUp#UD zQ}cKut9Ds8K2U>6z_R(=I L}zI{T)@M~03$Pq+0xJ_}B$*EWF)FS8x$?BGPUHOGYy9Q?;`{4s^d zF-%O(`6rcq6IAXtoG>)2@7 50leKR!-Y_h(Z*b)wiIyuMiM&cmzU=YA7^YR#c^JZ$3G_=(B7)zAEy`OBiO&pS^D zS}LWN&c7gFsdW6d ;YtCsApX@&G z4f&&`SY#$<*_VIwe522`9fz;(nalm{9*en+3!hT@DqG8+bIpQX{0{b;wAn2!dnM8m zTr>S*sPfI3hwYS??=?+copC$6@_cs9=ZTNs+8lkDrNln5xcU5(o|~70WGqwfi=W!( z*wZ;@)8E()+k-vSx2Mf ajUF!Z%%_V#1Rx7LjR6e(E{)A`s+p1sKY1tLEE49nI zo?EbawP?=1>sB$jPx$SXW)>bk@o_KPex57&{9m#nP9M`}W}R5v3`&(Vk1P=8XQ}^V z@WNe+RsOI3j`N#7i&=bRP&$6&&(>+ZCm1Jg-WSi7wfb&%^9gXW&?y3y(G#0b2wH+u z2{{%yH{(1Rc zYi#+vJy&P2zpDM>xPB6-K5Oec!8lFYGW@qQTdG^ZcK`4e5u2({+n}{n!wJtLhkq{E z)Ksf^^0!Ro*&k<>*DnNVbK%?2bV71v(i5MF&RhAynHip`6g8;2`K|rTc*QE_?Smtr z)`JUQ$DF9Alh=zdFid2IW<>!@m={oe5Ag{o48R#0R5pOZAVGKH=lJ~nwX;A~jp@0k zw`zX>zWOrt<_WI9b-h)Q+cr9_zQYO1u^loKlU@2E1D^c3+5Pweq!8_pnF#72fO0rE zE|iOUP8fnJJ_Ru2I5bNu9q*8tXq^2-X8+^)PM{vj#Lcai|1MmW@0=65=HLk~-*rh7 zH{bZ4T-Ta*Z=2Hc)p1IU%0(c5xST6fQs2B$wJ2<(@15OF>&<4lp8IsaXS%I${q3$f zHQT?K^_*}7H`t>4=3I7~xVfv;yyXAv6Oq@YgP-(t&RLi7^49jrF-4_kFQ*>g25Ovb zo^|-@w!Mm5Pug1k1hLBV4o|#Xx+5w@w|maL6DQx?KKbYU&rhlMUdVvbO4!bwIz`v2 z4?KKU&Xi+XwC2K7_r7{PP!mqjQt7za#uF Ue)8PP<(!ng z!uIW=Rxdl*UHFvTpER7fd34^K2a(yX=c4@n-z{}2n16Dk(_E)r*`DDCO6FEDfGh(A z-Ep12(;J&kfC3cEMG8Q0gn>d56yjhjWk9UR@+Up}g+YP!qF)A@3?PXCLV|KkLd26F z5gQDTt$Fc=6_fxJih2w|wFk%=pSM3h*Z=6h_fbnS85D;g^~pUa7{QqY6z4r4RUjGV zq8@nMt~5LTUNq+O4` cM*HG|Ift&gW;Jp0+-z>-=`e@w(5o zkbloUyZBvS%(DO9kF)Hqe$NhUTbKScmbu{sqnVJU@5w(e@Bgn}Qt${=UOs9~mV2Q# zG5Et*wfCFn7EC;G^8SVgPnj4dGOtlClKcC)ety-nE0#YGz3iH^I+jt{{3-ign;$RC zJLkMwf5v5^@STsWpaR(aNzIS)|0Opqe;&$o_bW24I(I^H3VX4e-% L!W}0Otx20q%f BmqEP?7_VNO62fhKtus3;%OdxpoqX?H&W6A4ex@A z32+pEltbbTLc+CT#2&bwKqNiP=m%+qHy{}x#XG2kIbZ~Cs2Zl}Di<+8CL|^*7bVnB z{LIF1z^g+h;TrnT@5U9G^MXDfnYH}6JR78(@w*ajzdt(a_Lk+9lm6v`)49WwFV&wP zwx8CYbNR-6W{7n!zn^oTzecra*78^LLBm=~>}67x$EQ3o&HrIJ=kjK$FF$4e+d%zL zrKCPtzL{&uj$*dh`}UAx*&=4GyPeIlcc2LkP*L-DV)6C0=0&?!E#8~|yhuLq)2x%) z-|b@R)F;);fwRbs ;2A0Av?9Ugvsm8tivr>PSs-`Re7x51`tjnDf}?*4QhlAEn< zW8Pj|>>fVxvW{om=Da5={^|xAMZ3xbI%U8f{Pu6=ob>ba=4LP4d8c&itBIFqI~=sN z1hv`0rAbWn&rhk7dC%4xU++}$b$r6I{$&AZd|8QILcnr4|8o`luF0Kq{$#RMmA`*- z-VN5W50JCWulfFP&L7ddud^LaAA|bxjcrj?C#cg63N%O#RbmH^Csrw^$95)xCXsCW zPcS-7d|b-FaLox^_<<5HxVXnG_V8xfvdX|JM}Gnr(CVr@ZaI2-fpiPsEE>Zw1+V zBkIYK+sZpc=k2LnmR|LK+oNm$&6J-1NxEkc!07OVVRh%6)2iXqm2Y1@IlKJs@)MHv z#S@u9g@{6tm(ueR#ZB^Q=T3CKH}ZP-y(8ZE$BWqhNi~j5*F!A8t&S_5b5gDzQGWjF z+05TMeRJ-qoKO#Q?3ubX=HMaEa&tzAIc>Q?_ic)9S$kG}U)s|%XV=rk1>pFYp;9!d ze%FfgPeSfY7y5bYd8JpgpNax##2Pf9qB5~~_4y}0RR?Y)er#W@DFY6>iN jpSFp z*PXBFr)c}>4CCgx6$@S$ec;$N@gX}Xq#I5|9@)0(Z7GAp69!Y|=WY7~F0J3p!r;Oe zU|B>|S$?}?&fd9BR?skf6mkpHDzTa E8@zV$LY5}UKG@jaCq`1-0PXz%>Q$(iXQFmImf+zp67>I2i@OSO?kpC zv?uKu>&Z2;u&}-qeR86Lr`x%!XWQ?kKjHc)(OrIB#Ci>v7@M%_XRj`(?}fYOJYX-% zleT<2S7q<-AU8L^yPq`e7U=zZ0&d#eNPZ%cZ+^aPN7T_;P1gALF8-Mpj%OON-})H= zYYA>xdT;m2y}M4_Jo7Nixm$$6g>OUm3Cl0FOZI)2*oGda6-iI$FFye`TEKF9N;fDQ zIh;MQ^Wk&znkp6s0ZWIc#I=udl#9NValQPJENZiQVthw%Ca5L%%EfPk?ITB{FVFUV zk1Tv$Z#?nx*D5VlNIXxz?PVA5r}t*>;Rk13&&_yVRvP&P+^FlA6YwM@Z_>~EE0xvv zoqn-r!(5h$*=+KAUk6Uo_xLdD;{(fB0ceX@eXh(&-Df902A-Uq{%*5H(IZ2#_v 9kNj6t_#S>Xmxs!)ni5^BmVSx(7~g5T7~Nu4Sd1Q<=VY~W$uG?%?(-}Ywh8l> z#PZ2Giu xgVdLHU2KS(|MxtCs#I*LlgE-EZ(W|bNSEQ z7f;SszYl&QV!!=CHxDGsc>a0$vVJmmzL4d|y^_yc!_TW!oPDsk+}7(8D`%XsoDD22 zo=jSN*Z5@b%NmZ@yDB$5j!wM1+jsu`U-CPRQ=Zg56Bm1*SF}S4Vq~Y=xeIImOS}11 zt9!oRH)Z0);O#ZXMEw4!vVvVxK5?>t(;2fbIqj=M?@SN6z$t9I^he!{h4RaoK=KYx zTFjpEZ~yIcZV7vj?6le)w@x@QgCr8-Cl*UoaJ^h-yy2>C>z5P8>}SdzHLg2-Q2E89 zPSO8e;QB(qvUqbKsBg6(?a7@F>HojkfXcxYGO)=VNF@s)K_wJQbEzTM<=j0#McMi_ zP3fkexC^y%LFs(%iOwy@D?OKZP6|JL$E>JbY56-VuuBu%Cl+tLYqN}ZlKFZ2MJHB% zQi2wqr_2}JuFgs8p7TR*@e{qiAEwRy_r7YJ6j!M@Tk)X-nx7|o_nrR#%>3` O_J!5h{)5TIy}$3R5n6AWa}t&2b@T^f31cVqQ)kHr|h1wfP(wLJEi3n z%vIYCU)6f&-C6%O*nVl#UjtaIO>yx{d;LFb{>hnN8a5u@#2+sG6Ixt^KapXZ$Bdau z!#~VoiBAC+Z)LKU#xw}b?d}F1lg!V5@qv`5aZh6Ioq8|J1ZouvShlB}{1VrfU+n(Q z{Yg*d5qL6vxn{~A+cT1uA7kB~x9 jmT%==-<@t`RP<`v z`2~k8Q@$^O*IQGLZ{NS%B4+KQeN#Ma&U~KIHt&|Aa3 {QnO8Xv*E|# zt4%lAKvB_f;^+U?kHrq 00c=4>T5v09NDsWAXttINOwG-Z zhp=@aXO?lfKY=biG7GhU^aPGcY+iY2rLZMf-!X~JD ~)}_EYP$#zU4?T(|d?n eyTtOmp7A_uqV|JSIY|Zv1_n=8KbLh*2~7ZgpW9;q literal 0 HcmV?d00001 diff --git a/docs/images/drawlist.png b/docs/images/drawlist.png new file mode 100644 index 0000000000000000000000000000000000000000..ba4c5d7d99ada88081feb3b1b0752b0a8ffb30f9 GIT binary patch literal 5909 zcmeAS@N?(olHy`uVBq!ia0y~yV60(aVASDYVqjqK=boR%z#w+V)5S5Q;?~=_+$ADc z{~kYCZT|aIx3346A;*m+qLVtBK5-;5bu}ok<|=VH 3oAVYtx4m&3&1V8zf-!oV ` z%U7*hbufP7^{Mi``xb3imh=tKuzDL;`{QBz*&gNfTOJ ?f;9IhA+3D~fk9PhK5n6dJHf_QAU$wLEZ)5qn=FoLbktM}pH}}>4p6Tpbm+wF2 zgZ5kp_k; y=lKH956t=}7Ovh{!nF3qo%tT^O(h`{{nFB&bqcFLNnia+ z lZ8%0G$b5~58^zfm=;niMjlcsvB+kJ2-%D#V-?d1{U z2|kWiF%xChHI;zEM?sd0_2rC -x9MeU@hLR5kCzOMkv8xX|@D zwPIgG$t}IP^Tku64;meu*n40j3zy{o9~F!*x42rlTFzYWzlY=Tj|skt(k;qdQ9YKT z@}V5hxUE-tFQ3)$xIasYe~U YJlwbI(!y}jJ@Zpv z#HufjUN6V0`tzvwud_EI46=_uIA!ZRO-5qdqZ=pO_X#}_|G9jRM*Sr76Stq7{Uq3O zY1NG6QyUg9Dv_`>yT79-EH1IG@a%z^(d$=P8)fA>OHbfGbv#vZlg5)pD$i!ji9Z!he67Ly{nNvT9w g y_e@*XwI9Z z6gsI(u-HeeYy#gU&$D`S?mP>Akfkg-`ITVt8IiIHeOH%Wem?E$uPeU6OC}wWx!fYV zBsunF#bqP5DYonDAOD!J%BxjZuK0{#*@QmVrIRn(mKQwDTP$(BJtSgP?#CI)O&gj^ z)@aOK^JkIvbXk*Wg*6^qmwpQCvsB}-_BdX2X<~EPkyVr3O#1j&?wPsga@&mLFCY!7 zvM=XJm^?N)ZN2Pe`c}nf61Hy?WVt<$&z_dJqi~MGV{0{u@Vw$Ph9x%~t;8nvHJ%IA zw3(lJb4KzDkZvVe=a~NFm9NWhNf!4=mrdwXT{1b=;%3dUkBN6)PrVHl{JC`UwWYK3 z-h%_oZI8XSisA7EiR>?D#9LYInQZ*zdux>OGYOM73bK>E)pxJBa_893ZIe@1R2n!* z6!%D!P3W7sbn>iwk?NlxXBhnNYkc;XEAfnB(hWzev}u0#cC>~W^zmn|F-`7!c!=+k z;o6ctnJ*LPl$z*#o+Fi1_jJN>nZvEJOOm5rKIvP#sjslcWAa+b;vUhm34NJM7k}I= zQ)0Mj^P?4}$$c9^+LxD9_0G&Uef;CX=g*r%dM(+wtUZp;xpeUXXXP&!sl2l@k{4`f zF7eTrduCqqnoJq_Up0Ok*$j_sfV>l6^;30g*t9;A`?KI8uHE0GBdspgoIWPw42n^+ zmnlz0qi$N*r6@-jKa)^;qaeH4Q+@vqwwEW|HsqYSSP$~n ~ zl4P@&Gb&!q3G>~Q{B*|R&mae=&h5$DYtYAkQ)F7Nr4_%m$MKL$F9QRb@@h^j+fa1o zV(|?}t7Vh?>OKmUe7+m;Nl5#+j4j9{t(RYBZxp=yV}ftu#~F)nLyT&Qw7$^Ge^W%P z-*Oi(*eJ=Eo$PmOzH?l#Jt9-vCc7kA>m^TQ5d%n{ QU};mp6`Xk`;N<2YBe-m@0-Hwv=CUh4ao zT)R}edQwzU-@L gV48Q+>WoeIc?^HG6;xF>x z^r-x#H#$T1rAKn7Wg95lp1I`d``#v}a<8ge@wDsS2w}lZ-Ck=IWHZ&E2`$Fz(9&S@ z8MiGiIrv3MYP?a9{p_v2*4tdzf0MHBWHzB<9#9GMbLr(9C$;9}-0BN`n34oe@Eco7 zTI{y3F`HkwB=Al^-VR8vPIS2WInAigr2QphFDL`HE_v*GS|VoWZ5{p(cXZDxK9ev6 z7Zb}r77E@iULR9-;l;6uY97uVmTaK(6Ll$b&Uusl8An!4W}9|yR{j!Bn>Pn{B(lGZ z@UyaeFJbcDW2>oIA8T^oEs$8C)xNrE508~EITZD6m5y}r6+UZ^ $ea>7|d!rz` |@3D+~6-ZuihtxTPZ1-gV%oL_obr9TTl zCmX%=<7btW(oI3R&n(rRwHSixn2&pRD}gJIg(b7>?7f?xe> N{8;cFQ25P zDuAUomz=X%ZUL#!F6?p>)9AkXM)SZCnYk^pTbC&R*`p!7oW mZtae$^rOJEkJ}R9N;<#yX%*gMvwC1j_uL1)m#qU{i zzo(aVa~aRNJH{y|8xytrdTX9&JJwCCKh^z7y|Q_a?>!y)i L=i*x#vfA1XppadmCmVln;ry#x!d;IkK8vt?lc6Yk zY-+D{k 1|P> zJGZf9=Hg|?c2;aGeyEh5I<@$o&Gk2y>pq&RiST&6tJ*hxFC)WClS#8@8-1E} YG?YRfT zRs3hn*s$Qz)~eD!`SsG@53*le{!eycTYS{fg@*&z@00p{MEIMk_ngbis@-~g-b|f+ zXdQDx$jgf0;HA^Ir1k#2uu$Wv(vM%S`Plj0_Wmh)v+HZwOKo4huXk)t21mV`X>?RM zZbsqk-`{TEeQJDHw0zgIGlgg8zhAZM^v)HxD!<=7H!JG+rfQi PP#ZozEY67YH=GTRM5}<-jW&DmTA9tsiZ1>;K386ZZcMpM~$= zb~pO@kDKT3T#uVw5ttv!S9DVUu)B)y+-DPAly^Rx8lF70`ooQlC)P$kUbT8|a@~{@ z9|RiumKY}_Y--_qxt2vLw6d`Jj&lEz^Ru7t`nc@a$GdCRCE7JuFJ1oaE~zrX3UB@eqo_!&I@Cny+$i{-TL`EJc;?}{Qdt-v+h>?UUG8YJKGoa zjF$p+=0=L@P4&x}-S&CY9`k!sKD=1`QNBh%*27_U`SB}PEZX}I+-fM<@z8k5mzT4R zKJ$H_rdt?a^Kk$F(mxeXmicbmWMnSx%zVkwN-^z;X{Yye%YPr*8`2Mcd(#;i@>WOU z$P0c2Sq@F{n*GU{E1z$Szh(dP$bU_Pm(y)OB>Z`Can2v6CCm%c5*$C>*|~0dJYR+C zcVYh<`SYH -%%c -AaRH~s%KeZ{AldFw7W8eCYO z?=?YsU(4S7V>-K!8z!lIJYLaURa)AYX1ns({|kE!FU@}T$brLt=JU$@Srayt&Hekh z|8My|yZ<(yX2#!ql0Et6vr@l8&qLF6>z?V?ztWtYR-3+rd2RBAr@j7qx3_8+{JAL| zy!%Sw*Mc +Rlb~_ zdnZF%znov<#M1Mt>Lpn!@7?+Mcp|@zg#5ksJ_T70)#v4({bt> 1`F!%5h(xt_T3i0hwHU2F>ck+@rnw0JLT|$Bb^-% zOjeafkCskP64x*5lbbtZ-a)r))5Gp6ccY(IJeU2?FJf6@k@Ys}H?O%$iP!bOxfA&^ zir${Tu%z;Hj8MTjTi@!o_50s_`1QJ%zgAz*^ToBf)&@+MR5urz @VE2a^>G&s`pJ49i#T<&;QST-K5Wzo*okH;8kyS|DCjccJjm zk(PG3zUlWI3mAX?N_xLf`tO_KZM)x>om#H&VS0|SFPfY?0#via%DH2x8P^_k=yz1`FAp+L*B~R z+dX{bU2^yIkB6 UAJ~5yWd&EHT~lHYA34%hJDv>Mn_CB z$=#KHl Cpk3?HND=Rf) zjZ9xn`tovi(P3WBsiEh1rQhW55&Zn~qlfC(?`LOkElz)PSo?AQyeAjeZ1Z40P%k1? zm3k@n|MR*J3o9&jnq$PSESkY5+coLlDR2Fwc{Rtj6@~tJboAV(nR%8c+=)xsx%l*qM-tT>Jc6RQh_se`fcBB}eH-7%X@)G0Z z3wzy XekV&hE0KY*usE2=Du$ ?*~t8-Mup zc(AXz=ev7F`Kbwtp4b0dB)&2^zo&9t^=p~e*KTjm>8yUc^~QI8m-qMObtk&)^1hTg zY29QC??;^_%a$l_OKNp?Q436c7c>3KiM+WF#ddq0omj<>jo{%Fsy~{z^RJR!V5? zD##cf@_-)Bc9kP!{O{$9S#51>xz`?*yWUz88$O%K!TP01P52a<`Cj){K7F{PT{R-u z>g^g)wXIc`0ynXn)cUXZCIM=ky__RjGwa!`wCa;H&40XIVshH$`MX44`*j H@BfP#FZ-m`x@w-|J`bk9_nzgmI#{jk(DD@ywq7c%@^8gO z-vEud3irP$%G?f<6Ej(tKH>itG12Cd34R(&g EWyS|D_t}d5+n$PVeSK4_ zUqN=s<+zs`FN1#m-4}XEIs5ATFW2^RJ-kqD{dZBB?aMgDxfA9Z@hi=JaJWUcuT9JU zU)}eM4v+g3 FVdQ&MBb@0Lj!vZvX%Q literal 0 HcmV?d00001 diff --git a/docs/images/hello.png b/docs/images/hello.png new file mode 100644 index 0000000000000000000000000000000000000000..54727b992d6425b081cc929205e9efe6bbe222f8 GIT binary patch literal 2003 zcmeAS@N?(olHy`uVBq!ia0y~yU|hn$z;J?tiGhJZBcJIz0|WakPZ!6Kid%2*?$3MT z!f@c>>XppuQcW%s`4rdf4Q6R#QoN@qDk^G{8GPX`_mj|1TAA+zCwyY)K04{@sc${U z|6ennm;XgGs;0Vq@|%Aq_ik>z|L5yR!G!Pkeh4xou`86J5e+w7_tgJ4b`X4a?49vp zgPu3-HzeB>%aYP1+HQ2tO_T^d{_fecXZ;^C{*|oG|5{-2 -ZEl>0U7QqzU`WxFeXP2YWc_vcN4lefOBt@@w$LSDrBu!d&Y*@~(v zE8F?AZ@-*8YvxApo)bT7cbSXLx%u^7%@b=O>%$s4W!txJU;fTyyL;-Q(&T?<^!93g zPLEDXmnc2DPO`th|7`H~pH^nV(#P`Z8jhSZSk-;^>({TRPkVnZjZ!n~xx3>3${Uhy zZ#QNi`}_Cr6Q3=wCTwysFfRKz{f|z7MB9znyo|;~2~bc3R=g4WAJCF0k@Vb!p)Ijv z?hVPdz{EFoKR#YRzrTWe!cMiYB=(NEHyD%D%NlMlcE} ^>Ph z@5KL&zw_nt)!#k;dGZc>c|wl%Q9iDY*z6 @q5FtQM%*qS^fIBp8HDRgar?QPT7FsH|Ol%>6IO@OTNx^XVc!#(JV&2vE{q2 zSD(N3_QIMA`GP0j8JL+^TmKErf8)d|Vy$qQwd Liq&X?SH zNK8Y?vir~SnX&=*qWzuNm)~6!xqxBM${YGZ2!{w;JG@~y!UrZ4cHgM|`#0agIrRwN z5x$Mg8=c=cyb-V#u;%K#`!U2%Q+m7T{iS!lO|w0^uCk;veA&iq+t2LI7pmKNK2Mah zek*MKSIBy!^P3}i?>Ab{t*?lB<5XYkv_xrl$)348=0ATPCuUuhT>ej?Gsos$#$DY_ zs fPE?vHRuk^kPbE7Zz bL5<<2E#^3JZ^Ac6w?5O&XK-MyFY(3 zC(NI8qjT$;7)=}F;V6LWsGUOuv} =|{cNrJ!lxYhwl@!Ey;-r9gIgr2-CXoH3u{t4$X1ZM!PYl|c#Su9va!N4 zVvfM>`gQC2xT-$>cvZUG`_}X8bM-Rj+wbe!bWKbrpkwZh&RE@z)_?xx>45AJ1}6Z& zH%CChw^7*oh~JwddEpz2Pc5@OzV7=Y&b!@OU-Ir4l P&YMf;ZPm+u_uPGOvqZe+m#)O_3fV`?S 6=lw(<72hZ_^#xXn$Bc=N4Z zBHHUs)%phG8(V{trWe)D_vK4I-5dMF nrxWow5DIjn=;4N7A1ydwSzJb^af| zarE}aoHu5b6>Fq+pNP@_ct~Wg_)3NEH(ccwygoNcPiS}Q;f YomN#6d(yEJM0+ryxwy_U6$H||ZmW!dUI=XRXSE~`A2cf0-gDsGXa@Z>j- z^bfB2ZPvGvTcq>%o>R9|#pd3OO`HGxNZ#T0 xBPHg{>EKUFwt# zaD91%Z^fdLB=(R%tBuU7H0Iu544vZlra{X~z05%rN!hecSqH(iqkIYSNBF=63mT#I aU4Ma}On$smP#6OP1B0ilpUXO@geCy2{Li-l literal 0 HcmV?d00001 diff --git a/docs/images/metrics.png b/docs/images/metrics.png new file mode 100644 index 0000000000000000000000000000000000000000..bac5bb95fde1853d31aaaf3d3e2a9b0f44b0477b GIT binary patch literal 8533 zcmeAS@N?(olHy`uVBq!ia0y~yV9H@&U^3ufVqjp{vU|Zl1_nhLPZ!6Kid%2*+V-nl zFKtLXdggYMu(kn@+a}$P6qSY#PJJG3D#ETk9L;yma0V~)R_9V_C|HwVeDsgD&og@s z!6`krB@(a9TDPn8-Ola%<{xT4T4Zrq{_5txWuf8Mf1a%WfBrjz!y*4QObh~n2;|_x zh=k_ mT!6$uD zf8UQst}g52Jwx8sO SJ P17&@5Qx?hJN-|oDz@&&!}jOt2VUPVp53M|Wju4s$sevwh4)vj z%Dr6T@_2Sb>+Z-O=TFS)jJfqB_1xd1tJ-fQZHy?ByvT3==Y!><>-){!Om@5t`n@Jf z^rHCeRlS0;dlsF1yYm>AU!Ebma#Y;s+UlDS%k-41V)y<3_xpA5y|3qEt_t05+U#bs zqwtQ<#S>O9g)TlYFR!tX+Ak5mSFHPJ(S(kFZ_@35U!MQ3 ?Lznj^@6XBpzPVBT *ncAUUS}T*b0t7P*e&A3U1Z8dhUT- zb@$OE!N6`% bih+N>Ykj`ZI7<+ zFaMqV{*yglKe5R9)jy}E>$CeZY=l<3m*iaD@XhG5;MKqfZv@v?wdo#TpJly%!Y;kp zcD;hVEWf|$`M8z5nf=?%q;O{Ibe)NNuPJfOv0c>s{_x%Ujo)5w(psc%7COE2#gpm@ z6Ll}X6I@&6zAZ~WztTVdN#S-?u8tR9^3I>UTXk1i>W;-bxr?l2&+p}3_e)#zD($%P ztlejoxH?|wu+R9?_2R+yvmzH=qKd4YqRRr#OI`dXt+S}1f5(;DRf^&lH_n&MPX91j zE>zxH(#AlmNGAW!s^;BskKdb` ot@Faq}0`?rJ=A$iL0Rl zCBRp7Fde8<+Vv#zL~T>j^-Ic8(|6ih$MzohC74^I_xj)ZTbGYKV7^lBSMfO2%x=wU z`y;x+rygtX{E(}E?w+WP`;2-8g+)rY7TWec-;=xNjNa^p(YJNp?VI#?|Luvw!TGOL zIXYhWbN|n1F20}^e`R| R6 zv1wOLz8*Tg=FnHMYw1sJMY~P!_Z4_$ Q_`EOZ5@ZMDN9N2ykod1^t|R~w=H`- zO@7*iJ^r=kR>r+6(=saM-K-W({2JMjQBxbX*XxDc#Ru;nKFO9n-?O34<+1RF=N%a} zE>9=DPiEboQ}p}krNt5Df)~H6cdw~c+t&Pjt97}4zE*R`I eQa~Rb$?< z(CdHIeBDgG3oS`@5sqF|yynTi^~o+G-$X7RW9}A`SLBeJH`&feW1qEoq3g%wj!W!^ zmV^g>@8984w&L18xvcwhqpKH$J#Ng`l`mXb+keeHCgHVw;mh6U1=vIL{{MUTtMNm> zpi79$$A}-IOoFO^IE7yeJoq8V${;8j$lwx!D1U1M9(I%$AMJns{*mC! z8J zcHQ!^#H_ovBDwjz(Nkk#-+6N~HgeureO$AmYQZh;o44{k9`jxZyb S)=TgWldjhtUYyi(kjRMp~+ckQ76sZ9x4c~y&K@+^5s(UjnZEn zvpz*nz5D&~((BK)1mEtM7PW2v?w$z$|4H#_GyLX9%va*tZL>k+@45I#mU`xIcG)i4 zyzkF>*Da~a`O7-Y)-9cOFulM0^bPUn9U0RfGpveJv~)I=d3#{dk-QbRRJOc%KdUsT zd{M6K@ud99^1SJfle4$)ua5m)rgY0_rp%2JmuC5sD}H@&OOlWJ(7FC^M&FT#ioM&H zXVq@Ad0B4rOttn+Xv*|wPip=1m$KfM%D6eVI& FN-HM%x)*H%k^tH`_hE?sfn%eZdUj*Rod7rI|u%RBt)c8U^LN5&VHFI%7I z_43!~)u&&rbdi2uQ8F_-) `_=M-fw~oHpz^cnj3Jt#c2(G=geSY0q19z9~{Pf>y>-(BI zzS+D}-aFZByY=_7=7b{c<%N9354)b-IDfOYJa0W)zQLlGw|Aa-QS=~yU2JPl+q^qp zZ@sqGe|S;yZDOClX1{#s79W?#$1jG&R(#lZ-OlIb-JNfb3&cvX?FqMicR+KSi{*#q zsi52=Dgq0BNQR0~TeLo|mWQD|(OZP!%{h4Fh(g*t7gd_|87%x0@~3>~H_u=HC8W ziCN9l9~-hgP!QZ3_V(@V?eF*gKWHQ>63D iyrbk7>j8j=1UV z?d|LL)y0Zly#2rC-|q+F%KteT)Ncvp_N-Xk%V6=odeK|Kt)5&54)&j$YrV*d>%cjs zTTegSn#SBM6UuU+Q;CZKgtQhhD4-xEE(Z3ljJGR=rde)vdJ;9~38RC{=jDHQi}(0? z*NJ(Ae>mf1#ig+5WJlevo6q~}_xH^8`u=avj^AAw?@IPDbYz^oy*+ JFIsGpp)<*a3 zG(9Ea;F8|?B0PToI<3n!g1XnOZtS^LZtE)I;PU+MoQ!0bW_Gcur)S+;{QHqY3M;EX zV7kt$4TYME7?iXY&9u_eKp`7&=yfni**&HqlOh-tc X`Px4x zZ~VEqF{ZRL?0)+H$F5f#iX2?N3tn8VxujJxtNHx(-t%{rX59-aKjrM;vR(Az@})MO zZ-a`Neyz&Axsi9x@5uWf*KU09vPM1sdAIyYUrqf#6^o9WxiJdfO>$X(`tV`rM5!|m zG#@-JJT>> 5OBVyf<1aLhh>2pO1YT`^#%T zEp@B%2D^m+)4UgV1a<#=tWR8F?7C%RG20|&rK&TFi^cmgHZ;xd%~-D+$b6Df@b2H| zF2|209k>4_G-p+8weG~bJ9pleycxD`ZqU5yy-5m|3X9n7Zys9X|3X&3=J!Lx2{HnK zf}$5I^OrO+Ded~*@y)9D;+=yL&&rsPQV%FSaWN=WZE&vKUhMJVj`)rbZzDf8yV-qa zR;v28@Xqe)zS}?UTz-1}d6f2%DMbQ-&O2R0Tz |opOa#?WgsoeX4w|gI7{U&trQ}Pv|z~EDkF8(G{ zs+V=Bt*cUAylr~Vi@)=YT}$3{MO|B{`BY(1ThaMV*5=>O-JIs0Ti*ZTZCgUhr0mD{ zzJB_BWbZv;)1@*lUzRxUR6hRuNdMxMzpk8RbI)bZPyZ<_JGtDxPAB{7#pr|0`=$D| zq;}6;Hl?{^mU@-mHUIS;Q707^DQQWExjuity~@#r_bHo$%Uo-51{V<+0$0K2e;>B@ z*6Sr*)69(3s|j|Gx6an
$uZ|ay=sIk4HYeff>d-n?? z=bie>>icE)oY`3XB<`JGUYy (S_f7 z%I?$*&nk_yq}xkBZarkSy#DxljU8dq^51{>Pt9Mx@Q%Ww=TfKUYKMiooW4Ch+jWc9 z_Rqfm`{D!FcZkXL-KrIBy>BbXDroyJ;N7Rs`NuoLa+l@kF6s@Pk@>08+ojo>XH{N$ zqW`9jrjEQXFYf3G`o0M{<7#qa$yv9Oce)o-%bp*r*DADrdyZAm_H@9zlZT^Ev5SS; z-VMKd;z6Tp=i}u{w@;n+`JZRAVZ}$=i$7dGPJ4Nui%ThMo+~LfNm3U#cvEqJh`y zb-w+`_{Ga2XgWo@Urk}rxw+inQVpqW%dWepV1AFKA=v%P;(q&`=09Jy_F3LM^jz@q z^SaA{41#}W``iEibM)p9uIGp5Ca?NtrYt3MgXzG{^5^?%e}CJ#;QIdK$;H)q-%kp! z?web*ttRZoiDd<+e^wNmpLws*(DCnT_51n{cV>Tb*}SnM>}+1m$LV)Ay!K#~HctT+ zK+gB}{9JcB ;w_UbyC<;kknk&uo=Hsu?q}^DKjs*L?ny z9U2WCmp ja zGM6W#@#}?(hsAfcwaS<8Pg7VlyYEG?<9rdNC_D4o`|4*;WWLDukGTJrtwZC$P35ZS z3-!Mr)gM=iGQC+nbNS0330uE}n)`8x2R10Xm#kSZSx`5h+b?fJSTFb9y;}|)-8VyW z-fqvQmAT&^KT+ErscdhzbEo`GBfUF|Pb7zIO^q*|Il2Gk-?e-9pIMcCy+Yt(q*9gc zQ~mh=hCvq&y}NU=ciX}AV~4&UF=vneld7|5;=#uUPxI8Jr|?xiIsSO^CF{7rpWU7A z>VJ=ZI=%SFR%WGJx{KD=eSf|@&aQMz%!NaZt`jTozIHR&^l?jTM<1_uzsX|TMF(HL z?iG~XEgAZLeYZx(i(i6&f9BU!-@aJnsNR2W?X6Rizl%3^9Lv9?6}{-=+Vdy1weBz0 zo4qGiDe9};YEYU^Du0*jewx)+CPL&+q vmaP5tEOC(@!KSf2`fvS~Zn_Cg;0zb89Zmzw=SrenZBm AV_&?uv%GH__p2V)H`6 -Lrfhd;7tydq?kn;b#Z6I-2Y}&kMi(Eh20=`A5xX$_^#x5)fIH_~dK+~V#J{G(?2?rO%) z*-zt-_Vo*Pyl@iSJMGi-_5UR_GZM?+J#oAJ;IqfW>PNGi_5T@(UHr6lN`BD7@2&59 z@;k+@1^pIR|8M;1@k?p@ooQM3Syx1T?!J3=mHxE&4_~W#99*V%yjXqz@6VOf{bhB< zw-h8?yb*l3OiAkI6@iPEN>)GSAJl#Jtz+8#&GUb6b-F6Zti<)Z`^EYC&$n;)P2;wz zEXliScJRjhZda4K$u3)}U8L`O>)E?a+{?$EU*Ntj&?RyD?&5swD7}nF2Npe8xAuXw z%~nBQo0($wUh3qRb!R+&cV|`KwC|TdNn-mXR}sFVgp0ZE+^oJeM^uX@xYoqyEsT50 z?9;TnSbe^ddikGog*kqCs_OIZU$@<`;#I}`RV~ZwU$5%xnq|YV*4srkq6J*8Les_b zhn%;PS(Ku_3qn$c{{=Z^fs4z|cXqv)Ie+?F^)C{Qpzb?30lZiSt)@|1e$ks>``74~ zJ$}AJY5rDrmy*97YR8tJsZIVhuXpL+Mb}P+KKb+PcKye|8UELQcwhQ>ec7wykCW4{ z{Z;CCA*p=puas*^wqS1kM3FgVM#uB--uN(WZLOe7NoPl2@5HX2M^b;TM_XHIeR^VH zR f*_>(_<2jncXT9?7j2jTZh=T50`cyygmPEv;WiN+cmv{xp(I7 zu5!uFPkFM)Ma0D -)cc)!OHld@Y{qpPUpmdOa=UgK5C8gry~{kMnJA&*fH%`s-t| z?Y`+gPr*MoAGpUf?Jhp8*m>v2A-m_lwX=Q(9FY;!m5~gIQ2Z$GZ?hoT+GDlc(_{TR zj>s>#6}tVYep824vf%6=4W~}#iz+PI@HIwLLtzo9#D|QAMfD>xwbimO57^hQtM1 )&G1t`T75vkM;TcpMU%B zSNHLo5%>M#-)FDemy2C|y{i8Ax3|^r>jS >E@_PBU$^ZzZ6mS0&fbw4)Z=lA3*O3ph^_g6n*t@!X~`^Wa=Pds~f z?tJ~0zwn9q{;U^Hk3wC4=9Sgd^`CD%!7JVWUrAK%?5g|cEz5$B`fJ72rLCw9(-Gei zuvJfR?w^Bq-M{Rzv9YQ7`t|j#j=bE4Z!&^&Yo^VdlRdXuG~QHt-K+U8RBcS&8kx46 z8X8*v-Lajg{PmBctJ*F8syRJexbp6P**~oBZnT{Y-`@H5`W^j<$M4gBC(qT$c=Xe_ z+&aDM#RI#0kKMPVdY63Sz0%5_QGS1Sw1lgWOwm2nMa`>CWG^1n=JJbq`RUd2vPaQB z%g$XteXM=QMwaCNO?o$PZn+y@eym<~*P8|N^cPLef1$U5H|pPWvCfRU^ES-tICfuH zHzrN-q;+4$BioCo<=8ULZ&AJVDJ)>R?!`#usNd^%ePrbFlY0ND;EU9TT?H=DlQu`V zH1~gc@Z{Ski|<>NtWNLlU+LJ@*%8LFyUyEWpJ&yyjxgD|vn!@WW;c{gkN?tFyf#{? zYUV82xqTTQjH+F?l Pgr%i6B`G4qz&%D0LZINp^OQnt6=cBx7>B(!d&^qio$-SYchDJ(d0 zc%sFDB~K45()-`1cK>D0{|@iUwcBL)=I(Ys?Xu-ny!&tch|^J7HEA0Cx#w$-q!!q} zO^IYL|I_#M+Y-Un-kK9d@3c$LvAjMQ6*aNr(7ySMwz^TA*Cur^UA&vxd3OnH*tkmr z)aQeAc-id&tjk}CG5E<|{89N^%%b#n)Ze)BC;AN5eHkBkJ}vLcC~)FnP?|L}HOzX& zwt`cij%8k5>zw-fc EJ{!B(`aXiDK@wNFWhcQIOgotBZPy>>(C z4Z}sD?=#H!B!ocCx^MF`a$UIXEzCl9C%fG4-zf?bEGx;onz(xB%3F7pt2}#;i3BnT z#(v4T@j&6}#!bigb) N=;Ye|Oc^Xz0khD7GoY@Ib5!qf3a3^}cGZhK_kwpxRvc z0yDVMhnDG}-q*Q~Ulv_kSvGWbgw6f7zCde!-}yJ4-Y+bEe=f|3{Fj$kqs!RwB3@a_ zp7E~_XU?9MnQR%`|NLN6&N^eEut-|!l MOWgG;!bRr$V- zxM%VU?rsV$S$22l!LK`?L@^0md}?PASbF4a>Q%;Dz3+9l-8p-5ac>cO*4d5I7+k(= z$X=e>@U5~b5#)BITc2wWZoYa*vKu_22_6@N%rAjk!wiC7JNX#; *c-Jdl@}}&S zMnlKCdZu5#S2Zf;MGLYDT=ea6lD65LT{(NJL2z-O 3!_WPR^5v~zNMZP*UvRx0cz3rn@!oRwMh5)om+Fc6&ATmpPJk8Le;c63Z(YF z^UmgW?%uabc{3f~D(f*Q?Rq>}SI0)=7Ecy~OUb?LkN~iAE%Fcpu#hIYOG)_gJHHHg z8ani9Z|y(6aH*{mH~+7)JY@#K*yk)?igQlt+Pt{^BacBaHeDpDCRxussJiIF_tXrR zSs(8*tdYNXa^aoHnVsj;ByW4i>^t-OwD~^ihUT2kXG&2X&u*mNi{IVBv|;~um*QZj z)6>l=XYReXa;vqtgNwM-sl87-;(Fe*CH$T*%=_+KulyU~Ij3#E^{xDPm*I`tqTOk3 z(hVJ5FZRfW27m{>pkrE)k*z>MRtHf3vU=ang?2lb4m|zfyz{xn%+CUh8~j|v Kk n#$8Z^MmsUT_a6oUni+XeTk2*ot2R-jQpD9^w zQx9`twD@;%=ho`Hx93 c>%k7I4ICiHS-XgUW7?%;W!bIi+(?dt zmrIk|?^Zovyb z=?gOm-n|y^ZsP;rf3}kzo;=-iJ_h8w?W$HYE*;+=FV^=W;X0$h#j|_Wts?d%h(GUM z;TyzIR#5UT;nlUfb5}2BSR;1v$hGu`7v`;E?#oiPs(9O{#gt$!c$ecO3%IK&7`tlj zw>zk#JmB6$hX#X;?xL3q@5sL2(7%RZ!}X49^BVS5e|8aRkagdZB@%V|!`qGfrML1P z*rzNdd8+oMiNoy}V}_j0b3zxp18+0Td1!larc%~qk%q;xb9WcGl!`RGbu%ec$$e6= zaO2@7wf*l_C^7I!2hNXTgg8VrkijAdGmpGgZj|NWIlv`2H(%rXq{Qr<>wcW~GHvMC z*Ym>1d8eyLL$J%1-vRGVUs>^1e7e}26SmuAW!_iS)K&bFV=Oq Ici!E}?QXJn^0jv{41&3~d}c;dc7HfK`L{> ls z(x~W%lt>H$fzUz;GBAub0|W6gVq{1JG{THLKfcxlT?ATYfIIgfjo`r~WGyHP@XKOY z=L$)=m_;hY^^g&76j^Ybf!qOc5Ptg*Ll)rT1j9J=(1I(NaoPUg=lxw83@Kc{{Qv*U z7G!PkadZ`7n8Yd?$lxIs;=-s986e2okU~gsi@yuwgDta^xKJmRH6U#TD0$%Of5yXC XifpE>W5{7(U|{fc^>bP0l+XkKGQ9ep literal 0 HcmV?d00001 diff --git a/docs/images/plot.gif b/docs/images/plot.gif new file mode 100644 index 0000000000000000000000000000000000000000..02dacc92d107dee336c75d1579ca8983df19c71b GIT binary patch literal 253265 zcmZ?wbhEHb+`;I@`29Zv7Z;bPn7E{}o}7V;yu7@Ek*|WWuObNfDH;1InfNK2_$izE zDVzGMnE9)k`Ky`-sDV(Ry1Kf$MWDJxkh*1%hGmeZWss&-kfv3zmQ}Epb+EQgu(nNz zj!lS;ZHSI-sIG0Ou3e}e2!-j{hv|b*xPe2sp+khBV}y}ogppH(u~USxbEJuLq=`$U zsY{fpOSGwLl&Nd9nQOGUYqYsrw1r!=g?o&pN34}cthGn1wP&ogXPk|VtBq%zjaQtF zSG=uvysdYFop*wrPlCO@y}eI@y>Fs}Z=$1 O3{ zifd4cYjCPtaH@N7ntMo^M@X7SXqqPorF(^?dxd3qhh=z&XZVC?_(Wv-Mr8U%X8J~E z`9)^=MP>U(W&1~G2SjHF#$*S^ *1;^)wfKYyDe12#`epo_& zSYm#7VnIYwK}1qvWO89ta$!_TVN^;{bV^ZlYEcXb700BN#HN+RrkBK}m&9e1#AlQw zBqStclqO`9C1jQ*W|bvol_zDDCuNr>XO}1ERHWooq~=zp gF;KYALH}Evs!UuWhZUsHmuIt*mRSs&A{VZ?A4> zuW4wnY3!(N?5J((sB7w|YwoOX?yPU=Y-s6fY;0_7>1u50ZfxytZ0l}n>uzrAX>RXn zY42(2=xOQbZSCl7>+Ego>TT=lZ|~~w= RavI(_Q28PlfEm_B{Rj2Sa$%$zx6 z=B$}BXU&>5d)90am@{Y2u3fus-@g59GsEZ4pa1{=&+wl?@jthpYe=xOV}PrXo&hr> z0|SHNPZkzt26+Y@1_lNOP&Q%U_|K5aDdVwW!NFz@VXc@G8x|gJ7f|+^ 3P1pzdbv*t@!o5v%9zF-(0P_jm;); z%E!mY)os2#=P&+z|H5ML`Fyq&M; Uv$J`$}J@iqELLt$X7^`~$~|`^`c|>0T;u*Ev(>NA3J$#z3#BhG%iih0>$2uh2c`G>>gl;PuDz&OFI bGCllK*o|w?faOUxOo9?&Y7x%lc-F!S%H>&f=w3vM>o;djkUEpU76f2XT z+WfXWtv|Hv<+IuUYF7$OW_WXG#uT2Y7Y|yplOpB%3)r+?loYACq}K=Wt$ML&i)hz{ zg@05}y;w43Q@eCqL)fa9%NAKy2`rh@ruAycJSmn}D^@JKmAaDEQ1HO&4afd#y 8F9SFhI}VAFoH;fPrFn~f*bW@`(J>|FI`^948Uw_C1+Wxw5eBaK^o zv#{mrx7#1IX}{a?WLmb~x;tJ^-tK&}?e)9eAC5`q?Gjw8{eJI{XRF`u`*ewW;@&@O zIv) 1==V>9lTikNz> IE<((<*N?X$MqZd> U&hc&tdm-KN%i_c#j|Yzh1vn%n zmN53HZxBdR7YXNL-E>I0OrP~QN9(`;9@E&04Gy&%o>tsZrqL~@Bv|I}&@LbFj4|p* z6RW?^Orhx!2O?4@w#GKJi-lcdFO_-Nt# %3UHe4)d5_X0*C=;6$HdQC@6IsH#3YkHeE5 z_O}9u)wl~zcBg&{U959QC1#_s(t&2~**Z(Niew%LdBw|fZv(^mX%qM@je@3KU9?m@ zx6@qYz~SjOuMb(Jeeh23^PVwF<=NeYM2^Kr9i` vyTE9NB1WtP=5F;m~eUHpn#v;U37 zqUjeJj`M724L#E=B;=9oG1)X|Qd}?pmIb$j-YB+gSg0WS#=(Wn;~1mgie^65+nWAw zUtV6-$RKC7B1-aDVbl7*2jw~<7*5rE=nm0f=nt|D^IvUc8sPCLt0BRSXSEnh#u+6x zo!cxXAEY*ISv7T4PU @G+$6}7!uh|=~NtsDU6!1j}9AbO7 zf_p{XS& >=wPF!}E^gkfN%$&Z(%kOt~GbHXAN-2mLQuBzAfNyTO-+CY`W@ zQb~u8s!p56S}Nj{o*HnR&+gc*YfRg+3=g!}1|_!jSMe~03mmmoYh+Y0dd!^^%wV81 zaf{moW-gmxW~&VuC!cYh-s)q`sCnfehv1YPmYEIi@_94Z5?7pMJY4bmyvu>^sEFz5 zH6Crp@BF^^+~}>q_lzTvfo#nQJ03B~ylE4@rN)@dF(W D{W!#l2aKL0OF5E{fxpbjsb8KhnKV98)i ^rfv&B)C^Fa?ZHgDAyPfCA(l^!=X+FdFL;8#WN=Il}R* v zyBRf)Eo@uGd3bV_bEB=D+>Lpyf5OW34)C=&_8L#=;aHQwuB_%`DzZR%Ld9d3-Pz~% z&tClDwCrRigJ+4H8UlM6Bm O26pC-gLIC6>r&}SsZwNS?(7@&%KHz66 l417zf&vM?~VEfwnf7N5(M44TGqzt0;{_s7r`#vrFxv*wp*ZR_fl4tkVzV43S zoB88U*5wN&|G#bgR`X8!JjXkU#;f-(bbqv#|NhKePASXBl)2+^&%5I{KQCObXIFPo zqR_##Gobe8^7^OCt7Voje{;z7I?VLrK{jiLGrL4B=To;T2A-hFT=rs(LLBuRC!Dqw z#CUyXIe5JB$@4~$3=j1W5nh{lk`tQLcht(Ca7vlL8}iM#A%WXKqWOq 0TQjkH|i%I^T J60MS(x;fsv*HUr%Z0j2q3K z9zFpH{4cf|i5u`1d33Q}ZJl+ZZCeU!_fjKy0iJ$_ZoSJL%QbwhF7Qf67&$ZW9X`?B zqtX4psQt(n#zPI SxhMo_&FB!00tLQD=(KCC8 zpXLFsZwI)dJ}}8$U~pszdGI0qX-417j=n7`0>nSC?LWZ#!hrws1kUQR{`!or#)?X| z%FcZ=CS2M+q5H;!%^Dp7mhD0-`$ZxrMpsO{IipW1vqfg6;cxRvDktlOBPVIBEaR9u zNoQu3_RUEKok_tzCLR)>WV*Q5 yN)=Vc=7pKDD8ErFX zC|@zCxj9|u^Yl{58D|eqOa5u|fAh>8lP%}|oc2d(=A@NIQ#_|P{ *UYKr zJEz+1T;Qp>KqzZEZ&jb{&i qbr%+(hKcr5Zgxky8* zNGq#F@6{slS^bi;CQ5rPQaiO!zpKD-SF`b|#im^o)PGJ$lU$;1wPeco#ReTqY*sC4 zI=)2h#S+n7i$hPPnys2DWi=&4Yhl={r4e3BBvwvvU$r=P*8=Wm3v4(ST2?OO{IxVg zYMFP{g6}VuF>@`?*IFLvwft$ua)z$u<*Syn{pwDwT2$9HKeKCLRM+B||5?lWW-U=) zw#@P5GLy;`?>Sf0YpqZ`wftJf%4eM`J65gKJhk$~i #ki@>!W6GtXj1>D{soz)$_&IEVW#-A!^OBvNhYX zs!w^%JfpSd+^b1jxmI54S{?dpwST1fzxFkg%-1%&T)T&B-9D+c2TrYx%Uaj`U%mEq)(WB7%P0O?mo2qkz ^>SJ3Rr0@=Y}eXk z#JzcU)~3n-yEZ9EZ#2HW_SLVojl%0RZ`*4BUM^id@A|8Z3$r%AHr~<^wdF(QmeOfk zOsXAxs#p5Wp08THUVZj@$7tKo-z&qV7X;i+4XR$M^JVLDsckG)+Z@BTB~)#*zP&Ev z_L|7w>${~k#Ae$RYp=;#JuOFj@=dF)zc+6`eQP^U)OPmljk1$BY;fLjC2NQ9ukAd~ zwiR-1-}!3C(_5RL|JwX=)fOk|?ZVwVr)us@k=&7X+HukC^((VyFS#8v#e35V?p^s@ zJ3VHuh^pQk^Ll5T_HLcsyN=!5wdU)t#;lz-r+2%o-f4DwwT1Q$@9aIkuXkVP+%rja z&rGj9MX&dSb?@1}de6?&d*)Z~yz!rV+pX;FKf1Q>TD|?@>}?maw{*PT&~@6dr`qZ@ z_xvr{3*Sa>bgkO>_4h(= nSH>z`2fqR z1KYg!MQ87O@OrPE@ C)2lWEV!{@L5v=j_{1b$H2^olBXwxSZK;eP@yHn &7F_k@YP9OPmT;=oW%{Dgs&)6Q=W3rfM!_t^DmvlC) zTYTnZ&zZ9}rsr$6U$i-U@6R@QX8Y4JHfQFXb>DpU>Fu-k_ncd}%Ied^GaqcuJzHb) zqUPYMGv|KftUbQR;b!yM&o$?^*_`=lbK%Oa(^HjCKmBvwO#H$ep9_4sv$)<`eC^r2 z;nM{%*}a0jmOQ?v7z-}S>28zswGckLSM={iwb N2=3WsgKK^Ir6+c@8earc$4$b%d zdnK$kPwe!xtCwa))n1LWy*y{OO~=j|rxwqceRyur-PsCXuIA{T`MLUPm!`vpm2*!1 zoPGA@wOrY&e;?bV%g&qLslDU#oC@0;>la<$)j6m5t@fUo*IHt)wC%mt@%H+J-dWvu zZ#4hC5t}=s>F>-{n%7d#-k2tP#XFnw5_<;wEYBd!&5xksjZ%Y?;R& z<~}gdyJc4Q*p~OP)w(jK1CMRxikJ)-9ORxHGkfAP@3EWQagTXVPVaqUd-sXoysH80 zE(h5?JskVgwDxJlxr