From 9c617dd68384893471b30b20c37296aaf61fc1d0 Mon Sep 17 00:00:00 2001 From: Tongbo Sui Date: Sun, 30 Aug 2015 01:06:22 -0400 Subject: [PATCH 1/3] part 4 --- images/Capture.PNG | Bin 0 -> 7344 bytes src/main.cpp | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 images/Capture.PNG diff --git a/images/Capture.PNG b/images/Capture.PNG new file mode 100644 index 0000000000000000000000000000000000000000..fb1991c20001c3d6498f54088d956d11b927dc55 GIT binary patch literal 7344 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 literal 0 HcmV?d00001 diff --git a/src/main.cpp b/src/main.cpp index a51deff..dc5a5ed 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -11,7 +11,7 @@ */ int main(int argc, char* argv[]) { // TODO: Change this line to use your name! - m_yourName = "TODO: YOUR NAME HERE"; + m_yourName = "Tongbo Sui"; if (init(argc, argv)) { mainLoop(); From 3e3804862d4c462ad6e754a65603d0e1adb69c85 Mon Sep 17 00:00:00 2001 From: Tongbo Sui Date: Sun, 30 Aug 2015 03:06:23 -0400 Subject: [PATCH 2/3] part 5 --- images/Trace.png | Bin 0 -> 42484 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/Trace.png diff --git a/images/Trace.png b/images/Trace.png new file mode 100644 index 0000000000000000000000000000000000000000..d6177002ef107ec055ac3da514b05b9bd29bf595 GIT binary patch literal 42484 zcmb@u2UJs8*FVgRql}}-42+^8B1*APlqw)Z1*HTMBTc#}MY{B!=pZn$P=bJz5TzwZ zlirDnlt>c@oe=2|dM6>}yP?d?`+uJIKi~S+w-yBM<=(T;*=L_!etU0_cOV*EznuJq zgM))hOH=(W2giPX4vrrgKmQ2a5q>DT4*dARD9HLw8 z2d)o3)-?9u;5bst{{ErC6=%)Ck&e_-zoGAIF-JP|TEHl1a?3)d{F00#$;#HnwmUNZ z8G%cv*80zb_kY%w{)w~pIL{fR-|-dM&EHIgoZXLJhWxQ|=2_&Em%(*SKi>2Wee%l5 zs_)C6nomUf9E@Yv3dFs@v8K>05xjLUaslta+Q>!Bz1PD+FnZ}85CmujZ&JC=?8&8^ z6EFioOp`aM7}oyhDd+dT{3UqgZoz)v{c6E#68C0pDEvkB{R?$nm~r36fj!dt zUQxIU7cXrMz1@4}eeOvljS^g$?7OOF#5W;@XOxruRu6j7o#D&Q%A}Xccl%{NPy$^K z<=1!*R)4FkDXb2QcgrJ}yDSJ4ayRwlM&Dhp{*6+=4^1jtT7FdUu$mTa3Uy*^W*u6& zdlXz(;naoX&60c}%Aef>r`JPkl#q~2QGc9=#9a~rZc)9Q99@|9t_355-B~?uI42#PN943s6HP67kOFbnj}1X-KScdh zbu~Cdn(O5LXiei9E%{OH2{{|Bp%rZ6M4kY2BOe%{6xX6QZ zSDoJz==&eSx{Ie}U)p@{9~Ar8j+%?;Pw_KtN1`RimP?}7Ju^FH zoa?VeoPL)ktp%k;rAochl25C9DxsbkNErXh>s6=ndS|}1X7R3Hi)>2s8EP6YjHb=Z zA%{V_&SKyO+k!DULY&_xImMoMw@Fb0xJ+(~tPvSS`hrNLmgu2ysrWu+r6LHeJwgL|X-BiITqJa$M~d{NKx=b$BbQ^u|#oMkdC`@fQjs#-MzS;F=q}zrP4x=4JT&-aqTIel)uC zMO>lsYeTmIB^i-m`aOuEf8aRG$1p!@bQR6i@v6qqV)Ms(#}*E9!{o)sJF`n}Q4RgyLuE&&ZVtCbpPBRD%yivl=gGhr zW{b7fPwpLO#`Zx`t4ZP)6cggoP>ruU+HN-arz{V6Zzd8vvr5bHGnY<>T|Rbz>NY)5 zGUEExB{^+So#(Lp@3(CCAFweS) zcM@ExZ~VRM1!D<#Vn)s?54C6bb!?EUS*$RG|3(WpT+B_s9N}ur68&J^CE6w25Q-r5 zNyftwZ;H!N6a7e~nmhjI-EWxF42F}<_wCt$Y6JTe)mt$l9S7dGw^SOb{u%E4ie73@ z=68;LHb5tzzrDLN#Gmz>kS08FF)zvpoH2d)^=sdk6OBmMqvaNHe(!6d0Q=LHg~Ife zfGi+;uRJ1NV7=^TJ@I_-J^w>{OThc6h=jH0>LkZ>ax2DLATrEDo_|WSPRsy#knj4i22KP=Y!a`?u?Dn#6l=B`d~w1bzT6 zKUS^A;(X=@sqt-eQhHp?Xu4ETpFLJZPy2xT`RIZ)UAd%de#=wssaxx$O2?kuoC|D2 z@)ae&HX``ce-(Ndd6GRSnIcN54%o2p>N2oPrjB4$=Ip@W*t8q{tIv*{4w%hX3p+vz z+8~*h3>uge2y=C0h!M|e*&mq--JaC_Ck`SMQ&)4J;SfG8C)K$kI|u{hZ1+vAo)P+>)N@i@3S&io+t|g?7sva|PdvToBk-Aq3k8jB#kNQmS&cz^8g;ZcZjJ^hl$>@C;Q4Yl}RBsIBvNDPQYFlX)6A_4L9E@|DXZOA{?-NjU zS*%xIrtvhIRAbKz7vGLC8X{=gnWaq`;buOU@9GwTSpqzr@0?CREWIfzhrS^}nxKm~>XG`{1y!1M$W#A@s)V>z{*$pCec$huY#karV&7manYU@l~sg z-z+{{R2lkSoxv8Y&gAvN=;&yFr?RW&3AhkooUhaKi-1%C0#WQrR`ogVhOCg)Z@S=~ zl9bzkj{1v7jlv-OLWSK|qs&V^AcpG#-S|Y357Up2)w*EjzEpP?g&WWE?zt0#ld4`7 z;CTsRQKhEx`9?gk>Jr#SqsLbo2P(LlWxZo+P z2WM8ZTtNPekZCEE3g+iSd2yB~uFfAqKbO|5NeBq2_%{gnOf{a_k%RcHm$V=S)zQ2j z`k+A~X1$#RV(^g}g3>D!D?@>wsFRkypZ5PXCresKoYv)`0-G17u}(?h+RDkkHz85H zm#l$|Ec`D{4I@ifeVVaAg?>u%4D>(H5@AEYO$7OHyc)pMn1!RuJ0RK zFDcc+#eP!R7+hH|#glYRgdKo=zAqF&Uuv*qWhj)j;nIh;NEpU<5^F&)PggZFmb%ia z4CPrfCDRP&;3G&tbj@jg*g z`lo4-$yOnvW)3?>Sn!ks$=Go7BS3m;PLo0 zU-q~BQ)Z9H4^X}8_Ve;iXJ^}{c6zli63`VRKb8hF6OvLT3L?C}OupsHGRlKbDwE5t zf&=Cr?r`mC0Hb`;!hZmd%DZ%g*^JFV;p1nyYZ!%buG9rrR(Gd$U^^F7X~Qe8vzr*q zt-5&$zkG=Yi(#%}1r>Q%Szis1{zY(#sf-?1`Jag*4wxs-#~?kZ4`?mE7f7YqsSNGb zPnjA!2c)d0Wu_G7X5{-|6n)-%lA9`oP&QOeRivqj?j?2|1D*Mb|TWRLQc=yZTmtOIEeVuxZOE=z@dj*f> zF~Y81X^6l)mNCR$m0&BJ^Vk`EyH}zPZswapE~VXaFzh~+kVh)AnnXa(KmNGEk7v#R zY@Epp+GtQ?(DLxJ>G-9)2RrhZ^-w&eo3*~2C-#oE7**>Ju`@uLm;ovi8qnWXGcGY1 z;%lbcpT?%|bT=4e-k;YqB3R^xm$CC9XMexP)LxwU{8 zi_#do9ddZ=jwlIHWztV+uou#@KlTr+?2zxXFqD;BL1~t;6wfa&ver78BDgN;Kbzlh z1h7IIBpuPjrB zNMX63-nKC`OqS|~yFU1`ckl9fp5E|>e@5Y&ytodeiM}wZ9qD4f^;YwKV(qWzU~w}i z4?D~w+Eg~2`U-4D>t79&y7pwY8wI-g%86UB9k0W`ApIM6-Z$SMS9r}}Sap~hN*A6n zgQtEjggdsoRxQ`L`ZCIU0x7(x)S`#hM=eiTaJ?{MdmzDQpUxc*?fpZO=-30dTcfx_ zb#+N@4FY7wypL=7c?TP8C|WJ`~hW%iamzm!`xhN{Ce2JjM6Van-_mvInX zOIib-HD^>!e`%z$mJ`RKVBoXPMu>6J0`0rvq!}$KE{V~+A{96jI?!!Tesr6FwzQ;x@T?Pr((RGucfZ3o4D0@HJ`1zkRx%J}!S;y|kkPNE3CUC6RQ&JopBdSOmDVJ?O1| znW0VIyh^%pw4gsV02J_voVytu0UupXx2#-kQ)QIIkQsx0VCLkBydcU^#Ii=f`fR($ zZQXwghz*h!`a-m7(xMn9c22>}vz<$+dBC^J!|T>4lVP& zfFt@Yv1SjsGQRha;p1y@@b8XsffE@UmaOWwq=33Y#Hav^aWqf$T-ru2Wdj6ePpdRg zON?^??CQ5}nbYm&`dkVE&a0SV9?rz$8Ru)*M^0_}Q_BLY zoV6LsztCCR+kP}J_nw4`DI|U~p4+)AwRLPTuKUr7@CSic=7`~GBT{baLC{Mx#BfN@ z%;kmkEXcx#yK1E9^t{ej22C}^LiyfvCT#C(z`1m~@r_Z+`VEttOLQ5p5?zaZNRzTV zj2e6(3#+=8$<}7^$u(Z23jEfr9b#bvz7XFQI05W3X5gws1)C%Ggi1*UIS;X%MP325 zvA#>Om~vA1kr%F;O*4|4Sx5O8bw=b0?}0T0BZeH*xrNy>U0}xZB{NoMYM62=4YUr^ zldsxu^CSJwTf7QQwK2^L9h*+B;b!ag>vlYjd=e(B9$q|;<2e;9y@pb5m20AZqJ;9S zMfE;E1Z6Ec!>_sx{{qsU?s$HPRE68y3(5W}zrw@9kfvT;lOPd_@Lfkri>ez$ z>?U+`sys4sRDCYmlji82&?l+9uJR&Q3Yz=Kl!P+Uk(1Q7gj2^6OEnuoTWs-9bcK_* zhBoMvApCLct)BbeF3436zsh5+ky%KOp$)vG$vU3Q2r*)`gK8$)46ByfTzywCfsD1v zBQEf*Wj_44T3b*Th91FJHQWHAmkM@xNDJK6TOUr#{rbgpXhBruF{QwG>n_i&mch6o z9{0>cCUA59&-)$fdPZJ!QnG}|pSH-DLHwZ8YLMsVM6u=6MqKr2t6=Mt(zqMNYYvU* zej~LbwdR!GK=SZ_J64^1Z~3AZZL||Rk_E(cm!FxvkNGwGx2x3VKCWn-gqHEy6+x_@ zBG=cmETm@veLPV|8X`|09k=?7v61%fol1|MtaEnpP`pSrt5Sk(O(kS>de%!NTu=B# zpuF2!n70Bgc~s$$J6K3F(dsMNKoK8CKRNQa_Y>UFDncBV2&P4qr;9euNJW&9Y2Brg zHJc+lPVMT}39pk63wvk7mcjk6>&-!5H7r*2$kR6^VTU|!df!6pv~rnK@6X3%oaB4Y znu=ihQkS7Y(_l;0g{l=mL%&y^FH7CDl%SkEeDQ8)6M5~m2a9$h8l&hjF;%ibT8-Tp zT%~}@sl{MCqjJX1#eZuOK38Rf#ZLr*wmz>gXF9kMciIjL54;{b$(v5UeDH>gBobov zdLmu+jD7DiBShVq)AqHx1i9CEsm^|>OA~*A#n{iRZ^HXU3zNcW{=%d_2s*dt7C0|d zv*tHO%Q2=YWFlJ2xTS^aT+(i_ALRIjZZ6jZe&wK3*uzVbj};vrjQnwQ`b+2~ z2DUEK+PiLlNO5Q0;P-GZk=5+7Gv*yJsFpuwt;@rl>Sp5`b8HG;&5fTzJRj0l`X!6H zH)=MdR5#zH3(~)ZwE_`TUf}p8rNkb&^SvT&=M2I^A0biVbFal5;)FzuDxO-mTs3ew)ABh7bRiBr*B^RG zYO2UM5}gEYv29bIJ`$o#K#v(Q%tcc_m|PR`S<}mkXv2w2RopO6@qXHyJ}Pc#sv<%; zFU{8$1A0bHhGgEZS_nc=lQ+!VrqdTTV=SpLZSeKNT@JEdSTgBS7=~V63YOdCF)ECYu^`&~CHMl3FKHvwu9_l+p)Gq@+*vP$+8<~pwAlan{<%89 zyFm$ABx^&9BHYs{Q8L98@?l0LBJp=Wa4u zEJRlPqX3ZSsq@$*^zo=|ErciQZujiQS4A{?>mFVFZSpVGje1ADSTiV_pDr1 zAO~8Ibr=u-^ySNbODLAuBc&P6@b4eKEj_Mm9>I@>f7;JCl~LF7#~`7?$_3|cnjMF$ zsqqz)9t|k4TF=o+Ow>NcI0$dM>_b_L!WEuJ2ST#_PcOH0J;jI!W8pRK`HabzZ9sAf5Ch)%Gh(-xSsg4L7D)6@1U4VpZ#W07W!QR-t@ z`iF}=BBs_aT#nz2=>rK%${0Zb2^{Z=OkF+mA`&jT@%eS&id95lN(sqOGS$1QKPzep zk9KFd`hf!r3D)xikea5z2-o~`tc2CfO*XV}_(Y;hXJFz1(~TJyK@aDYV+nr*KTb+2 zc?3I--A9#UW-g#IWqT9(k*>|rAH6So1EHgodEV$6SmdR}B;0`TZZ!?xn5X3T6h!b6 z&8pGRG%c~SD%A0IFY$VJAtr}Xzl3fyl=k%KEAEuU=Q@H5c?%95T?gHwX%mf~K;T{l z#fvArr@l_d;=G`sY409Jp-15%4Zf+@4qq_LX-u+LHyAMt$Qy{+z$$aZx@;96VlDOIsbZ`JQz_rh66b-U z$}_5=hmA3+B`0!KG3$dq zh;L0Oi#b#>OlzzgrXQ#{SD)-#fO!WKB<%2viZ?;z;WIRbu0{GH!)|h8)!FAxAUlQ# z1t*z`3`_dg#5r%8FSvS?P-1EKIp_*-&w(} zGD&yzy7pOKb>cuUfU~Qb||ZE2-?^2h5Z#_MdHFvAuG&!?q7E(_$!!t{!_`;UuAp01JEF!RJ`mdceg%No&>UzpB-ZH>bxflxuT`9usDb^2$&u?c6D zJ9J(wbQmKm{XKnFV>7jEacErF;pO{ZaUN>T{4CAWXDph37!Eo0WYsFlsK6DBX|n6w zw^Y8OPP=gIlm8icbGOs3^UPlL7QwHoZ+cumF=WEjU%_sroW7h~#u*yt&M^oLUvlbH z2>LwCZ9|S#jT5Au{)x()>FRW130r`uD&@S1xEGI@SQQC?HqDfOWSXIH=q~U@mcd{L z!crl@Y3|n}NdJ$U*yZcOEd2>V!oI>q=DTb6hk5r6k@u~T6j<0v$*wCCLR*E$nZ6I0 z00Z-^@CB?mF{<5>JUbAoM|x>FPO3;j0ok9aLlnx>D&qPi!5;R8?~TvkXYj=@Bv3Lp zXE-P}s6E2`nnlx%d$d77z(8XNF%ss><&X5=aGYl_II5Z=$Du|0N4-47*5@|-oX%(& zq4YY9rQ>kpqE0pPeiHn*qkD?H%1mm?`0CpvtqGXJ7B6lHRjf)-vF;zU`XVBK@;kx# zY{Lg%fTtv0BT2D9G4%LZe%IMgjm+tmnLa=QB&%4dcK1N3E?XgVJ!|FTPIsSI@-8T@UFC^pv56xn&$;kHPfzWllSgdM z1i?J|#%*(r-3{qI=|Z1YTHaQTi5yy=1KqDe1%JMzc%Jv2U_1pB=>n>_n*E?l|{-gCcu=48l`r-G-qb3uhPyRzJFC;wlIP1{WZ8q$1Lz*W~nDynv?@XN|zvPX*UDQ7E^>d(z77^0eAUP6y zXjoo|Q)u|>nWQ+!WeutUbwnyfP)(VtM|vlF@15eI)k8^D=anemL-}34!8j#kJ%h+c zYIVICmLILkv@Eo+tOI|2ghu&_P{qPK5&ICLXePg}$lk}X#!DxJV9KIzGlUej+8v{W zzw0OXj5kV9?VVTqdKBVQedSEoLEUplQf?t~M_sOn+m@DoAb{Vc66Z?Ex#y((!AYpl zsUYPfg%b>^?~jLs^U?q!e|^+yR-x#;4b%9iplAq-s|vOE@sO(ReJiE@QS`qPujjB<{BWH{a);8`mJps9dl-;skV+qYyx)m3&dV2*D`fWPh} z{;n(gLx>95B;URU!(-ry;#505aGNI6<4&ebEM!`IB5Wt8Iya>V1N+8)G!$OxZ2;K#sA7+T zwSaM!^gx;)-Gp&cJG>rt314B0^A{!EZ;Z$JQzaqj1rSraHuSor|vsecIml@(^SH zV*v^f^U@JoOvyRgg2$~>YOLn!n^a2*?n&nf=%Ri%J)E!QE7=_D-5No1crvga{P&Zwi{i$) znt;$~^++BOyvaE(RGRIPyu;-W_vMmt(Bx}uTM8)A34rE$8#lVs&eLsU6x$=t}a3COGr#a#}5r^ zq{L30*bfmjWaRDFI@aaU@%_Dd9oot6ORjKY+Qaz6BpV;AdaE}{NnE7q^hAwji|Vu6 z?$LGS18AIJG8lBPWiT+WVgX6F2%OdAj6U=_4O+MZhe?NPney%Lv6 z_bVja=KOAk9C$qmHwiffb#Up9`7#aX@j_iHT%7*mr(fXQ5Nl@Eg2sKFP-j-a<6QXP zxE+tpj&rpTogTviHV8PJ_qeXYDu1pXZ8ddjVaZU0^=?1yv?c0av*LA>FDbO>OL}Nz zjqu?nSSP{3JRUChN-Qe;#H@lJ#|pegYj0=TfD?8V28It^^&&l=G3rl1q#V7r=={|Nj#NKnrIkLGddEU1XPcCYwK;ZBy#qH>BBM;E zY$fjGU9KyeXcKvoMJA3Cs=S+_l8AMI+Yh^t{brI1FChf7QOS+4%DKNEhS;R2`Yn%r z=PeE-Fs3}E%Vnv<6xl{m%%Op`*{cH$3z5l2QMhOilGcQzwtO>f_UYllAdzN+W{ba+ zXHgtZ1Z3*rQ7F@y$ce@Ug~wQ}!#)UV|H;)ZcO(}sp;c8wNTT#fsQcI5)cfl6`taHV z!naqQdR~V0RxdW|{crDzNYNX%gpb-~JOwxc$EmDedQOB=&f5^3kmx1iM*Cfuaz6X(%ZOr^E0|ZhaKkSFBCz;KH>%l?PN-W&q08xk-d_d*|ML^`h6fh7hErG z3)Z`F!uVCCuDu=?aBO9Ckp5j`@l7Q&Wf}unM$BKH#gw1`rh9}lg*ZRWH%GgI9~6?~L-l2io`agE+Bd#mdR$GC`JM|p&a^d1=)XU{FpEd1Y~V`f~6ONYJiov`n&!c{ULR< zKu*HzJG0ztJ&%gLQ{b&f+uDPrjjm~Q2W0h_w`Y|LTj>So z_fG+V2$hF{fA_}R5JUNuzE@dtm{SkxAIDDLh;M>MuMJTQ;uP+_aOXD$Zyd=`CtcMd zLd(Z4_}`g8VH^Ejy(UCn>8B?4d zfLeuh9WV=kzvNwq0@*pXgQ=sh#VAmqh$NgcT`UNU^6@f%lRBDi7amMUbd^B~h~LZe zxLR_&dNm}64L`qCs8g>F+6q6X5uv*IJvbuG`gVN-G%1n*)UwR>6>5yE5{X1gSC%>J z=jj9-Xz96;=JXAb9%DQ?6YnScXW7gyqkotC*nyps?#fzw<(Q)C(dVr)MZT8md?O*F z5N#-Nsk-5l7-ee#k7x)-YjoZTk`^haeL?a{gOrskfx^32{0iDhs)3syk}oS&h*Bbw zykcLU)^|s*ZJ}w28o_^7O74|$?h_B{m(;5^5kyv0{vbk07&xp71Fe2j<4Inqn8^+1 z9*sJ{H`mkzWsk7z~ zG@5|x_Y6i}vE2|#n9K*2PGIDJUiy1VN11pivr^bCxi8^C%=t8PQo{M*X^ zV7*jAH>FqHjFj;hcZP$NO?z>d-&qeexz2GG1PmAU{etEJ*6ZJyp*ufW-IHgD7;F5^ z+)-Wi2Rn@{(Q)OKFq&i0MRIY#iEKJN#WAI3M6oTZBUn4P5RTVFtUUVFt!J-Kz~MdwiXuWMMlzi<#>|cZ$1*3{&y3`P z_iBSVz?hOI{k-nd>pWg3pOP9d(a}dSu$epKcBn$_fm!{&(A#BPn4DTkpse!d)pqWi z;J(mX07;;>p%kb=fiq}{t~JI0QIh{EiL!8g+1;9~@4_a!oC%Hj7p4Lyzxr+0X6C{L zWT#_yw!JD$As5(=u?x_D-;RjHT%>=Jr!H|4L?!&2)NZ@TE}e;p*#=L2XdZ*D*+Nfj z2X6yxjhL3|??1l5N~B!15BV0ZK<;T z7#53JNQhF#&dpx6R*1q$f#ziY@mNS3&Oka}oO-=q@J-iwSRBHdq?ux|yo#OqdtQ%4 z92npF7?tgP`Jt0z!PDaBCkwhGiWq?1838s#{|>)Y0fGqEWjg_H&P_IFcUrtli*z&klN zdE`Be%}S#CJWt^o&feXPN(CfD9E$cF`hWNSN7SqN&b5j-?4e|B02G7S<@-N&{=W|t zu7|<7-m6?Hh{zF-ZFX#+>qw|PyeUy*IB9a!<@?KYJ*BP#yTQjOQOx0B8;awFwS}^O zTxg%ThGk_@sZPM$$k0t+V|=qcs`YlxUH}?;2?o^xYNQC!Vq2QTYSEEi4xVB(Dv?+@SyS(sJOT)OGtu+MN{5P{8K|2y*Z8g4Kc|JH2cqA*1nfgi8<3xyN(S~qOMC`b9tQy#7T-bE>WJ=9F?p`*&% z45SpB1a#>{xhzy@JcxS1r^>oqC96snhJDD$VOKPA9Ddzo7NQ>1kS-DTY*P4#W5O#T z6A5x2w|H)}Rg5?@7wfWCxXdq+hOxQjSCSV@(9podh?cesgE|$fV5wxS`aF}f5`^Bh ztqI5EbDZGZgIG^-UE=gT1iMHH@X*Jljf7xOhDDP>0vqd#Z{|yI?D{Gb-R4X7^u9(` zL&s(GVa*Dq6BbMapk@rw@^m{fd%uystQD|-w-j3O+$i*#sZy(do1ZjjB^lf3OAzZw z_Oxh-`A?nQ+x4}V??`$aFwF%*(ra$@5&)9^kL}NBVg5&ZJ?z!KGDogt~||p z!5~BT6DKMOx1^Gm#FE#-Tmv64_&c5G(LI4G%2&{M-!=ZvRWp9w4uvN%$9pbys57#= zmID1_%Q>s5tD;_$o@UFsN40sql)A~==jYy=uE$o)qynjI)Trto zGl&e)mQq@3W)n56(3%(R+)|t&<#CUWC>Z?bh9Wlphy|kxUwl)Zuc|Xd;SRMFQ_f*U z%GU)ngTt&L|zi&!0tm;*-k=XEOFDrymx6PKn#U6_7&>FD_qnz_qjzhkmk zAvQ6eO#Ahpbaq zQC1EBS`bn-B2Fv1kA43X>|TaoF@e6h*5>BfJ{bwd01%N^`K>sYk}||zhKus71-E=7 zDbMCPvM1ax9XYue5(_w@%AE`>nm0Pj)7!#OcfB$=da#3yRlzKBy1R8Pv6`Ow* zjMKO)eQtDA4AM9T1h(t5edpZ#9UL6iC|$XTXR=Ya2st%x`0N0PG{}@AsO&b-6MxKH z{Q;kp{dF||^r{sQh+@FegZ&<7V~?x+`MYzYvkqj!N1|Fw#yIm0ZUN6?0wvm~b=B4g zug567044hD?CdFW3GvPM1w_GXYkz z;0%oa{VV2?3oBvl^lk^T!&80Q6HAEU_|iRY+J_IIR7u+|r=-xqF|kTs$$8qjjly1` z{R5ErD2a}DBpLMiEg?5!uvo1vvV*@M+Tc06)HrA|R-&-5umOnAy=UKinI={GM0h40 z1H5IGmPmAj<;G~soMrUjUdO0Jq_*H<6XE@}(=#^&kKIq{_B3U>p0^v7JsZ|I%dfM{ zRhunCA{C3)TDQ8mKn(j{n#)W!79E+pZJ^Bt1K6A6?@t3jn~kA>h3*_v4JF76KoY`j z8(SNg!+6FUM?H;Ngs@a~ht`vT{+lQdu=`)nzJ+_`gfRCs7Ap zt3(J9o^icdiYjaPl zL@8c}OCFXe@GwJBq#+j=GY%3vm4E}V7hx5j!F<2D{$eG$0stYKNf1(QgO89E{`b{4 zB9&S`2(4$dCMB)T$S)+gxj)|;p1T}xDRG2!;X)!(HxCtG^sZ06+HYk-!n7pY63+w* zp}RAqx`3XBfx~^&p)A(I#Co3A{L|gg|CnYv_vW~@!Rd+~o7J)wrT2m2m^KVIz z6Q(tVM;sgbe~zR9 z4R>OYB;P5Z^(b)h(`Z9P(=Y%Yas!<{i{C%>_3hi*SRfbLwE>+y0LG9a_Hw7S=?OI| z(7NwL&z**wV4_S-_X!c5cQX-JTM8{mMb{;4(b*(ml9v9g0msdQpW#({z8ls5TWc=V0 zX)mwgZCPNgC7GC*CD!8&E;prEUfIsC+uAOu+2g!rP+5XN(=pI5agUij=tB+ydWB=I z0#KaSvz=^6bK9rZqSVm+Xxy!1PMo^lv9F9K&lXqvA8#lnVjlp`w)i`f3E;dl84C!@ zBO)f?q~ydz<;UMY0>Z8#3)#u-JfW7Cvgh?q%mEZ7Om5`B{L=Z{pNx;M+w~QCbtONtp0rIJq)O-1ewJ7R{@=nOzW1fh1K!_1{($@jpu2s5 z5z%b0->Gc73{qC=33L42i%zlwBEaFBYrs-SZ2{~m zzu_>!?&5a!?a=fx$dvu=G5?g@L)?(K={+BKH`s2ind0HcDH#Mr7c)YHOHOyzf16+Ne zWgF%22t- zWUhH7fLK@Aww(OOt0mjJAVOI(8pYO>Y9$SQumbwO0gL(ZkF}g_ey)`PAaujQotyM* zijFcnH?f=e^7INyM!RtV{o;Gaq=IJhf86Q+O^i}~+)WZTv+dfyy#hot$Nw1@Zy#Q^ zmENu%F}{QJ2l~L2PVNV~kyvWmM-7sBLnSHt{{t}pu!v`k8@?#Bjn+KY=AsM-0@;YU zrq-l4Z_Ls)kOtAzhtP>8zPspFrM2fs|E+ZajquY!i=Q|JwFoa?MqsWAMROiG)mvy6 z@nt$QGZQGHuVnrvZGxobH^5Ca_7|w{VUG9rFvl~zUXmBvr1;}7a)%Ww|KHm9<2mY# z#&az5|2iZG?^=A5p@?P4O!Fq-MVmx<#j`51X30qxV1yIwI ze|9cw`|8%5O^v|`1}=(u>YoAs1$me3Lf(g@VXn|0F>OSl{WA?cs{0Z=PmK(ZNn`3d z4L}RDn?}8~*XKpqqK-B#X$Ep3K#Lln;CQe=OCw1q=~$NN+O0^V^iOeY1}}|*a#Mda z-uo9s4j*>mWz)CFe&K3a{zOX^MAA>rn1eQw%1y%dg~`hcqrSW|$b)6>&{PY0Om zYCzFA&xTbyryP-r9<}TmVPk23|iS9l@}Q&hcY@l&|#vAb@{ z^OH`~o!;@3F4{4tlq1G%8a1*XLOkPIwk-9AJ(Uw*c~oOHfu43V+)$By^p@Yk+Dwn2 zqPu#}0UZnEO}efK%p?P4q|DL|?U57@(U(jm82CRJdL%+Qr@@R4|HT@)2WEfT1G9e+ zqsUgIgDTJ>#n#$-Z(A!xOC2Dkb~dAf7Ff+&Dc%_w@_=1;Z3q|Omv{P>`KeRZ$--r$ zLlkvFvBOAPqwg6=QTc{7Z#kbYz`S>Atcd?gMM%uS$1_8>`QWQMRRJ-@R)t2hRf5A= z{((NdbjK9-T2=?$8YYSzdnm;3b)Yqgyp#Z&RfRLB!eH|TI?z_t)DrhXKm_dUSk?cP zfECd85ND2xK7}>=(8OcWKWexP#26I`{FS<2|G4i6ryy$fok%9$@w2MNl7lB$VMVXvep_+ ztF0f5u#NbmqCJQRIC&b=#uGd{%KJJu;O4425>RG=v6&)0jobC#fF=wMd4tP~H?9_L zYRih#5jU2w{QPq3xbiSuX;5M6rKRLFHwcoPbXG_O6fb`a{yp&fF6a~<5|1<2hKQM! z9YLD(cwKPTuJ!Ck+fIIqYZbxw^A28Byk+ObYgOv<>n`Y-f1THBIqSg4>gBkQSJu)^ zUqsYo&NX{mbw`-~Lfo0-Bf?ExqRWT=afZxyR%EBv&I(*M)mdq*{$t^K3UID?~t%!q)1fG7|FDN+>-QRy`zAkszYRl0J=-0846T_f9UrDB)G+Wu)3_!BVBW|J2$*NVU*G?l2MM8>v>XP?+Re<-oyT*y)LX%I97Kx23fHsDxH{lQ zp|bA}{g3JKmDjHyu>dx^(=NI~vx0x)(#In0>go7}i?!bAb~-zkI+C+U7mKFRB>y;N zQkt(w?9uMhL7y!U=8`~DoKqK1JEFk!&$8}+4^-%t_R%<^N8I{^&K`aupc~9vtMfS*df}PqgXZ^sb4ZnbW0Z&E#BI)h|P9oLE zi+?eUc%&`BDiMz_jEK7thR1>)K&60@4Se=~#Z>-17!fMX{^&#@K|%M)O|!ZWodF#w zDgfe7T{CCn-hFHGXqu+dyJMOK^KZC!qp0V^S5IIIL4AEnpz9f^Oah^TAZvQ@A1aIIH;MOdBmfn@(B@u2(F30lVH~~by?v)-i7A-TB2kCXJeb6S zV{Uv8?t1|=EcV2mRj@AxzB?=60xJ*d6;QeDN0Loa?@|LafJ3hzQ8+Zg`PCuv;!d-J zPlW7X!G1CBM|*i4Hp3xa1FEc#!9ilL0r|st6^5S*l!c!F-%Z@8_xXI?`+5eYL8C0O zTd6Pr=Le@`9x;5N^EcJgAJlxB|J?lCSV5iRn?L+M{q;4b+{M$a(AY>At>#D8g?r4! z1OjX=9;(<4T>Ofv2F4EX()VsbcNjTO*v}=rn845Gpw#u%9Jc9PH${e5aaBu*g9(pj(^Oj9qQ(!})pN~LdKEs3KAvR| zo?u!2`P0VSUnL{}|G13H=$aMOI7(B&F_E5sky`E4v4(z^)EYhJ^v*OFO^I0Qi1PL9 zsIRlBP56Rvy_q~a&<;P2+fwgRKOSKCL99UnQKb5(TSxU19JdTzLI3Bg6sRJ3CcFKC zs>hZp{v$FkmkRI&sSTKdX<|QZlgi9IN6q1qK&l<$XGA?a$mBn2Rc9nAb#^AV_I*Ul&-i1Zct_?HLV-~Lh#m>s;^@V z)_&EN?d$MeXy&CWUuutkix)qLJ&wsk!QbHeYAwKdqxF9a%Z6sg^4`9Za+fcdYpL%7 z0zl?tt^-7BdH(0?DcF~9e6YJ!T#M6ku}ZW$`QC1>;bqx|_%DUpld-b!3l~PHV8{f@ zSq+KfK1%!fj28!JAgiP(f-WteF`-k5cqy~t(bk7e@0fPSW^LmW1dUa3h`5-0aMDc^ z?@t}3>QQ6G++XD=lL%m-ozycc5qLY*7S2l&swxN6>r2E~aGx%5nhigFGq&c8(V zuE&={iyhO9Y>3BK6Zo<9euD!2`!RAvWX2Kb0(1!ZjwA8ofl|_By=(hIqP=a+@#TMzbEC^& z!1r%2eJDxh?{%a$i5d00lV#0@V)ZOvi&+Sm(2Nxp5auWLvLopJ_~Pp8ylCRM&vX z`iprec%o7BuRoSOz@ookh_dI=HPT1>>6x}< zZ7Vd*&=qZp`_ew}%$i4|^y6@fxQ7I~US;RTD%$yYk#?U!0^Wb{{er%@#Ivu%Mjdx0 zIDNXG^i{onETOyS=~n*yT4Vm(A(J{0ToR;Hpfc$LxBuB=fSU2QF!BU7Q0PB1Jw{C7 z+KSJ2QKm(i&nGwUMSVpnIL?3@iG|VwIY6R-izr=07caFG0>J`bkn1_uF;qgHLg2q* zC8$9IMt~r{ecY8jqb$^UOX>CD&qru#B1kCx#h^L3^|&u!b^vLDE7z`$$#|3)d#h5k zG>Bs&VnPtnT>yiGLKT)u0;Sk7lFi2kF0h##89ckxR`_jfT;BYYo>jLf*&S@0@17 zk*%+$zT(}0lAOP19~0cW`grgX!KeV~MLTk4=`Z7x`|1-w_3_X$ldE*9UPDoHj!%43 zfls2q6vH!tNm%oH6LA)u`JrFGe&LBPZs88-!rEur8U9o++&qFdys)I8H%mEPc*9U@ zm-_Si9#`zI?<>KEDgrN4q2@yqp{^TOY;tRIfXA?f{||LFHGacN7v55IHX(ly#$u6j z58?LvpvqU*54PG>WDjmlCmG>_F>g10-Z8N#ijmc+2VFU}r=prx4`1!G9YqQd56wMW zvVD5&AkmoT%MAs>WKc7FnfEuuoB!Q4<^N8DzTQ!=-t(GM)X0XNf!!(uPZU8L@+}8X zz(W+$)OG+|2(zCp9s)T-kR~ntTq|oF0i`9toS(-^x!Vs{-vvDiG2(W8FHCCPtCv{e zCN5n{U5UHvq*_fUMCtAlJ44eTFQmmk1tq*m=}6x_UnC1JUVeP|?x$i&ps&^PbbEOh$kdv8O@B0rjgO5bReKX&lR;wIwL4QATr%(x z0M;6&LygSYz`5Vlvhssh6}^hoKVqE1D?nerSbQs~Ub~2wJ|}8bQO-_-)P3F1bHMag zv9SuRU3tTGcuv4f-+LRsEWAQy1&3+?mAhq=fPWAwb-+|E)NrPPmtL&wh)NRwyAz(2 zBz_4dW&;wHj!8#JdFC)3)re50ka7E2`kOM^*?nC4b>eGcnRs014aaWnuCw&qcKR{Y z^f?uA3ZYrK@G5adIhq?9ep%}9_A(!tm{LFdfEQj}#Z6kziC*mU@3iD(ia53Nt)mTG z?Vir`(TOSgZ?w^w+sb7nC9`dTm56BN(cAzd(ND=ZpCd5y&V*%J{uXF|+q33$CZ6Nj zoFf=XTS7J~H<>L1|4O@SjCaP7enqidsejBoxj@D3)XlkznJ=^qid9N%Wll0$T=TV( zYpyH6wm;^VV6T?PjWpcYd38!gwd%E@e!vsXG(~VLabG_Rx z9+hh4IhVHMzoZUwo_o7H7>QvIW9H0I9H$PuwAXz%H#Zatx>`Yr_+E9WashOsyilzO(ej za%MU*u5*qNCfz>#@S+KBnUx~uOdI_?8fd{Y0YXg714;aZ6JTGQBIx068MB#MT_1SQ z`aA)l*``Vju^<(M@9_ELtX`@5ZAAEt?NTxzVEyY4WWjb|&e)cOjE) z`_L#}b|j*tS$iiz=(j)(|BWEFj2FzAcfhXjmXzmd$icBuLHi~kWYu3|inr|UzKk+( zog)`t<+Xkq#BAU?gMI@+U07u&CS_dp3YOZ#v+$pPm&(hW%#{(OO&HI#@zd%_06%^g zm>_hQPmhLvr5CIOn}hm$k8O(0+C$>jzrHDn4KJ? zmitmvXjJQClc0+%&H_E=mhqD+GK;bKyC6Fk8&pU7c1L zWi!B@fx!7y1A=ZEHmB5U_aqpx00V&(1D9ZFK;(GWe^tv~S_{V|#m-+I#JvBztH8GO z!ZU9btK?RQE4t31nNw@LrVophBtuf$0V`q3?4im4BLyubU3z8+1gxkn`bb9N1>EF! z?XKS&SIfXinJmfs-T=4}$d#5sks)=?QAC5pC3P&z?UeQ{-dy1NOE?|}izE??k|*zw zS}fm0VQ7t0TJBjA<+W|ki7PCXTno+W=oWf0*4CLJDzt3TOZU%1GGOFk-CkV^ZZ+Xo zZFp`=C()u_B-s*RMXC*ncsS2KiMkFt^@3#85NZ}w>p+T7+6ogFCs~Z37_QFw%gz}K zTQ#Db4kfDtoU>=buzQv76kVwiBeDgz`{}4d2EK#J6J_PcS9+paUfY28$%IWln2e=1 zXwg0w7Sxwqkd;)iTGsHwni$2_=M<5I(xd4v&gp@?kCv-U3^mPsTa@7uD2Ox!u@Sml zwRx@Y(MMg=kKtMEmC?5c=2}3LTa#+%tWAVb*O+LTR3|I&W(Pp~UJ_(CZ=jq;7_*eHru(fGcdLQ)J0uvCI9 zyL_habaye#`stCSB-p#&pqnys@Kvx93p|h?7>TzfaPqpF81Nd}?Y|!ze7XAQs+NY# zx&ARQQl|YsZW;m|1hE%#rywSR=ulGMENd1`xtQJOsAZB-2HZa>KuDnF(QZdjT(Fr` z3X{IQv{#5^ZPE_2c79Utspfv*#FTYvUp|pR;yPZoB_<)eXj{_~yUm%Ex|E8~0D4TRxw#_zBD_~Nr#$Cm zxc5sjKFMeNqmu=lXFF~vhPF4GZUvIo-E8oRT`eGY-Ve%SfYkxo?PO`<6iMzd!9P26 zwBibS#P{Xb6dnKGeP^QtR=pK@-${CfWMicH-{Z`G<~RdVfL~zyRFU|I<;f?e6`~&n zj86IdcB!ekZnC5EtWs#hV2?nQqtihjUfs3+z$zEpo**?3kQD}nl@j~G3ZI<--%Xrv zM}{WXhTA)v@V7oQ{Sk}}Nc!qoNk9l%fLASScIF_xrc^$Sd(Fg|5q1A7%>S4$|4FV` z0j%b;ZI5W2Nr5TiFGWLtE+T!)Z_VF?Flp4+mqpnk#aF)kiL>!a>IhGH zB4R6LivDjIuy4}2|7WnaOc!^Fz8=En)T%Q*l(DOY$drm*a{7e!>Y;8#X<`=i)067^ zq{|ZV>NSalX>5XlOtX1u&eN^-jLPAG`?-8p|DalJQ;!mV^blb%%Wc@e`2`5WAO8h$ zvyWTtt5|^x_P0sF%LC$??e#g^>IV$ZVr!=}k^T8L$wo`_jJ~DrC?^^*%wWm2c?H~}QRQUhw*%jc#JF%pd<9$I zQ~pfJRrpK@txfvHMr2q_W4K`4e|Y}8^)U`D3hQ+IPD4q;p11q$pzr;ve>ct#yF37( z5R30ZwEg#k8drQ${dUlG?SH#!2@Qx)&2?f+W=Bkq^?I_A<0ogGRdr-;l6hhO&9^(# zT0_n{+nL{rU_1QZO;HAe=Q=`YeNNX$dhNuI=OK9p&A->9gcC6Wl!8g3ne)9haFcG@_7kT1;Xl(Fd z-B+ZKcyHvEF=2e7(df}Y=J^R@HewuR4m3R2s=#?ye>bs&Rgy);w-XC3SJDyw+BV}T z?hB}qbEcB>t=eQ^?%`J5pG6~#3M`jK3M>Z?UzMb$0tbx$9oqt6=%a}R$Y`f^1KzAz!2 z2Bo74K`jC5JQj)QPiWKA!KCd`#!cVWLoj z;?U?$B>+}-jW1L)Drm-o(SSlE_` zjZs8Qmw22wuDTz2BfO9{o776%F~`?=-$8O8M-9+Y1FfEUfKKo>>}-X29N?UO+o8kt zc0pds;qv9NsT$MckB^4wl`I=dUtv7%3JSn=OH(pFTT%d2{e6o9W?eBv3L6_hX_bOz zjt34rmOfq_tx|R-bp(Z$gun87U%B6IK(|qyq0^*H)vIds^)}dgPzDK4fWTOwcRqke zpN+H_ba97)WRwUDI%G%xPp(Uq?Fm&#qs!WKvAX4Z}+SV6|CO z6o8fvdo48s*a~n%Qh>m3HRkCn@=RUqd1rIk7SxSL=n6n3nO_eDl~YFuvV!AO&(ke5 z=ir>7;eq2_W<8AxO`0anw2R2R z^nQ$e3L*${64YY?Q>h4nFq<*2CxyO(@9{@qrI0BUU3Uv3P1$KF%0 z7-O%_R{wvuZa{RN4Q$zz2=c#6^QPfYr>=cV&arbEzS5v+gfwt5|NetK`yCs0RY6k= ze&257zx_kSuJg0LTo0)xP!D?)_LnJiaG__vq$ z!!jzy&|@NU9~3CG`AvEGUt2_}oUB!J{#-v(vBK`l&QpDu@jex5x#RS*mrMjX>xK>diPT(*ag5KaJM8y>Y7;w`GVpf|iVf`Z~zx?=Jc7w(1ypn2{d< zehKr6Q|LTEXbWP83q9RqcqjdPu+A+*v9XpnlqHouuNu&p4({xwJO(dANr6|P5QqyG zlInT-c^nEOVC-7+%XNZ2`7T!g$s+_+uCNA}JEbl@D3s*o4aTKERgNGQ&mx@2Y0-TiVBb$g<3n4U zNt??!Y1d6MjSh|$H3m;H3ZkDrQvW*NrVWTHDNp0 z;}zGhXzJsqD3`%RpQv=fj+8hI?`B)TRfb@w_yRDTl$)(RAf}f5bDH&1Lyk@SrQZ!` z2nG~MY2Dd4@j+2_oeUmBfS8h@@Xym^_xkYg4(lba^_4u|Dr`O&m9V#amjyTff=eWA z32bB6x%XScd%HmABmbIawMDB7x$^a+kK@MgjtWXIz1vwEVo_5L!{>h}lij%vFVP$_ zS9mf&G^v%>7uJ+SLVI?{&~wg}MSS3WJ7*c*nN%I z^<%%h__5Zt(XFwc@^R$sFu}Fz>y|;(Cu@8oyaJr#2`;-s-di;hzDSRUvLXJU?=`TG z0yao907^b@r)AByL6v;@D^*5D8>mBqr(1Lj^x)p+KqB&|?$ikILAl-6dmj!V)_1|P zWW6b&H+$9q5%d%L_UThT+hd8n9&5P=57CnP3N0p6*mo=)A%%ec;gfjxO_lWCu3veI z_FYQ=Y%gK)XCNz;a6EY6j9q$notA*wcJv5TEX)Gir*yws5*WSlMx##9669(Ef-YD1 zu4EbSY!UZ7;j5;*=@@&|hu7$jL9ld zHqX-SRa$o7zcd(n>Gc}DsR509;JOT;dq6JfzyrYOg#Q2Ty@LJU2(fco-^OF1-?bg_ z{$)Wf9>0=zATbYkCsTlo0sZ8Letj{1(VQ%=aO z=q+;h728BZQcmrBrYml z-Q;xqYGW08IS0JK!w+VAAf!{_9`a1lrnE;k&`iB2kILsQ|*?RxeuSnfx z6kOaO*=PDyp!c9x!;*AGU5G=4>F6lNwZq#Qe!;Optz;_KtO55*X(`H#I8CJ|VYpan z=1$%&2$dFuOJJ4M9bNd~!dt039bTPv#4=mmiUb37sU7VaG_j1*63AYmDHxWGSpTTT z2s0kEn|6^D6d@&$Zk`a^`?~}NB7Wn)sz=*#9S(=*95Ql1Z_e^L_-rywDaA)sR6Pd| z`MKmb#p~Lt`(?>$#x^)*w>C(>t`G){{#s!krrwojzc>*K=aBX<PkoihmB!e-Dypy1RoV16@q9GuQUem*>xrETyl5B( zu~<2bt;U}{TY>Lk)c%q6hxN7MQP2^}T2tuN^1R{mB0lW!&qydi`4mS6f+cf5^#vQW9{(Ms5C zImG_dRMPQNri-hyaHUeeY)5Pnd|}iKGf1w!X$WZT*)!#|ig=o-3YBM+_yykt`&oAt z^{|uigZc%}IDJd~IDx8EU3V*0@(q7Em*B(aenhT0Zvdk>9A~sSv~RZ;A&&zd*>>F2 z6(n2?>by~5tHn8U{u6h5*WQC-WQ&ASxNGeDUwX2^Bj4dz8$ht5b04Z>+!_ogMBXib zM7++N%IYh3TuiL@?`l)YSS+1#3~*`OSR)`cYR232rjNW1_ z4*;LykdWsaXf&hHy1Do`_g(**yTML88ol?izLf09)FToz+dV4K+cyD*5!zk;qmt22 zwF~OpQA>;1o=yp!89HDs1<=djXeSPIzdoUwFrz|Od^FDQ2zHRp75ff;fNZwBWkn7L z1Khg!WdLwceLnuvVJZ~$b8&PhAn0K+m`>nRn^piP0^ddQW?6f6zw^`k!9(mSAObvR zf?VTO@P6*-Ycz1bh6hlha5%rC-u`Y4NM#)Y{Q||NDh}da*cMnzzQf(@oOUxVQY=;8 zGKjya8{KF)gypdq#131GB2?99cu-b7dEsy;x{e|#LWY;Sy&vUxACzcuNrv|6UUF_* zYx&EXBnLI5#cZL~&Dyj?*Fa`5vs2vOr`2v)2*+ZhotmsTT?zHI1HCR7kE%x)0TQe# zb?}YK)TmVS#(MfFLub4c)D>|0$`^SAgE)ZA5qzx@p=CE&q$`SzdbqurA{bw}eo1)O zs34}b$gnm`op7x4{54;nzWL5i2JYiAW;@~qMupL_C7!V=V6X$&>9h9*6}w*EgW^x& zN~C%BVp|4l1Ja;LZ_%$;T4yT7!t2lex6N;K3YyO>PvPdI)21pKre!_r%5*FWt(+68 zpbSSF8iW(jADx;JL=j2-#O7$-U&IQl(Azl*B=Uaf`oOW5rQf z;dnxKFexR%JoFK%KAy$++{mtd{(t~Ec4gOGxRh-W8tA(Gw;Ke-!8RdaZvahxQUC-m z7btdJsfE-A90AIv^*cLt!B4(~UDxEHDzC6D#dI<=fZxRR{{@BZ=+^SB_m~f zDCeX&n(cI_ResJ!xvFag)9IZyn@crw7bo3n4NdziirXUkg<02)!}c`=+Ohq^ zjis1|P8+vi^F8shG$*ofu(u@R&xQ<(1z|}0T%Pf=mWR1uiP8G!v8u83zU=aD&ggK0 zdrkf^W$~j^dL2_1wbz+l1t@3yvYQsdiCSKVE|KDiM>o1vxnz7VY>27Mj!19IB|#c- z9(?1205VY5K9w%`C#Lf-##3TJB-u&CMe)Pe5xi<7C13TaD>@aU?k)UL>gn%-j0PGD zEYEm3Z;&Y$-!Zy3RSEG9r@=5)?t+P`fg`zQAB@)Ek2Q)WYA8t$D?cXBZjcQ5a5 zC^jvIPWU>hmJh1rALM3A-~!Mdxq!Q<;9hqyX@Kx2`~wgY;v6 z9z+p3`ze0OGu2?|Xhxp%b3Vg-so8S`+$dA|hg<9R6a(S+5rq*Q&9$Ym&FM=UDqJBZ zZ~V;)%}&Nu9YsqL6&el22qjfwf@|>fS_=II8LLjBCcl;bcrJfIQ!V5Y3;z<{$v#B+uSrc96h=HvU!M>1G}BoYDc|bRnyu&D~lR(QVu zG!&Eeec=By6Mu?-IFkI`H2&Whs3d)1p=|RK-6aI-eY6GJ#^lD{NT@?+R3BUUtRIfd zO}96%%{Sjo_6Q$j(6)2hX30YeEJyg3>%y4B4AMqa#xL*A)$R4{tr^0nDS-s(Pr!`-IF9vIPGyejtJL2qk4S}N7mU35cn;0iun+F^Rvbzw8ZBVi$Lpq^m{VB`A76YbvA4R2QGc5``N zUc2j#$W_<@eUXX&9=%KD##>>_*Mx6%jjXCf^KLpjgw2Zj zhQSi84%F77p}?3qlW>)pIeH5P3WvUlq%T2ngsh<;@A ziAM2=CTYSdy(Dx6`b$ur&sy6yQsTm|%+=z4X_po$9?X#~tsG=5-xAj>68m__n2sgj z%vCLKKQ;IYEn4%_oS0`bmHWaPtqpD|aBk;%V`Z)%3hmjaAUu*Br%}=%YnWIbyfM&r zyBhtFc*0fljtpg@U%Bh5Cc2{IB4RXnFgo|3PZ`JFTGED#(<45fC*#Mm{O+OT8Xsk2<9souC)l{2>DktI1j?B|fk z-}KW#@dsgJ@4huEVJ2Qa{>dSJFOy!XAo2H}h(csr;b74)`%Kt;+zNQ|iht%k$;W8( zH^O9paHn%Ypl+Aw7AqGJp^E!@eXt{%L0IK;}LB8^ZRel#89vYopUuJ@z{!4s6?C~~kL+1yMUAa;HTV>EV3)g} zQVq`wG9@O=CAg$U3p$)|n-#K}kcdFL5NjMvNRyL|J_b&QGPb??P7ymwGAQzeQX$o| z6zPtu&80F8@Nwgyaj!McKjyjJKX7W!pCbNl{B|xvfC~{xd4KIdk*52j{9KhAE`cKo zFJ!imssejgF36`pG+=P?vt6>4fx~ng11uC+HmY5Sv$^hs6TZhT4;WWOB^1fyTpaqf zE+TwUsGQW=`Lq4&4rinWTOVbmTCDf0RY(rFkGxiQ;?X$f^BSwY{l`aBe$^RW?t>OM zZV_{xrL%3N)w8}+KU=w!yOfG;)=sb9FdtJal5w&`sxDkD>1L>+B|c@59d@r+o@<>h z!ge{FrT|j&;I5g{-NCqJi%J-G#{(F7$u~`5Q)akhXPv(M(}80N5MqqAK4F}oi#8H~sS zEldceTx}=&TYPuL@fGI6jP?fRgSV(gB>3R>hE+C<5>#n6CC-nPik3bdlp#;XuO^KSO#Ts+i43k?qMI3k&y;(k^W^c zuV0=SFJ0;s-Cz^p)094%KJwz}(K%b;W0+b0n$?Ee?a88wftPBHfqL16Qy=YV8Z>iq zM>$p**q2iz(`HH1X3?en>xDacCOPwHtSQe0bR-8`+^JLR&ttIT7Rh)X=OmpQMU~s+ zJ8nMdzu(x=onNdA=`_*sQrN(<5*cm=@w<@~RDTZLt+H|EtAiIzh#suC2$P}tQ}=*c zl=p4bpG_pyBa*P)2XrfRPHWop_roz1FV<4E7(SCVaMNW^uTe9#tIJW-d=iVCm)O0j zvRZO2QKv+K*?A&NShj!s57A&ks{oZj=To;b$BT$obr@_WR+w7%vf*0k1tfIclBZjV zYe1tL#84k7M%9*g+7|~=qE~FV`AXDsB`-|RHl}YjbM-3>!-R~XgL;X=B7$o}mi39t zd16@+C6%XtkwXmqA`V`7#rjxB>*I*qJK;nF-=6Mh%ws#V2=45@22(nz2>vEP67hi@ z?V=QyQf~s=8*^dmCU8F2s17W;P?}58%zZLJUX5<{%fmDy&9S?+MOwW|{TEk9`Jw1Sben6Hg_(45jV3FY1k$@`Nn8Ipx~G@ zVxEPcgrg*ctXp>&ZSyx9B3PzcLKe7+BC&iH413h)h&CjT$+$sdMb9=zeCg%s;TJ`P z+bfFXOKF(?7Tb6P;_hUVy6EtoNB+h8x9T`u13cHY642`2)4p7tB2Nm;DvxpDZS zm`{i(4e?PC&ab8=wLO)O6=vs-POI^ba1dvTZzvt_ zPBZOv@a49nwa{G^_K^?~Aob=PO0OMO-pneGquznFZN%6MusPga;Io~9H3wuYQ`Zjr zp&ybi{&J0}vMcY1-P;K{=QhV_MC38@#rTA|-U&&!QxU5lIr0$iI2l(gn(}syZaCd& zc!S#bS;RpfJUCXW?;eDSqWqDZ9a^$Dd(^o##j&kf;zUbmuN6VJ!7R~mr8Lep30$Ks zFKP(tjcei}#x1j%x7{ZZf#bY9RLWljQ8YV8>F#(OH_`TnR&PP)s5MnoPMWQ`8tz&~B zfhY2fFJF62=hL&eR3ipjT`bz%C7N`+{{#s;hjV6q@^OtdiJ@G{Q`z1q(*8EGF`(eQ zZ`VMN3(pz8aB!(5WK6AHAYUg9;0iLr>$Z>8?JU9~xvh6rT3V5f8CLaJu7{EoyEVRY z4wLzsp{GxpS}(l2lvL`af)Lewn0QqG*`PZKc!u_T&*b;`>4SF}SPNrSB}-?WiF*wM z_UI~xrWc&orv&c0w>y&F1f1V`$|^Z{`V===r}Sgbk)CD0a65{(KdFX_bzQCTjv<4w zS(|Zkl=04?mnPjsv84kL*)vU^c&_wCDUb_#|Q?b&@s!|Q0%sb zGBXSGclTHCZv*s6LxWhkDCX38TDtj&u}3WwBWbdyjDec;R7>&nCC8YR9>-`QI7vIa zHrz%a&LH;^LP|oni*M`b28$zX(p{~(9p99wQ^x*04$5`Rg>55MT$9yzxn^n(b;cG< z^B&y$$x&SO=88qyL~28W63yr(6A6sA8AZK`JFV51LJ3@@_Pjl{vpV9Uds)plQ_5Gl z?Dh!D;nH(8dzjlKoC6}txK<&g;oytJWeqOxa{?|=zqP(I(`mSX>{-3q9~!~OpsDx! zuzW6jpltABb;>%SZNl`dVME-zjI=cv=poPSe77}WBJYH{c$V4L+dTR_uX&&2C4)dk}=NI{3X#ONl5SFWGlB$6ASIUv>fea3CnTOAUxJe?Lzd+Rt0;$hh2?wp!c6i$+WvfjSDo%$RKwN0p!hsE z@+GWLuls%SSMdivx4w!t4^}yVwBzA1h$pPh3ZlM_*`8j~N5We)z z`V8Sy2V)1@Gn!g*^L9XFC7b{7HH`v~1`^2>r_$i%beNdWgyDNuIWVGEaq>x_O}}@_ zg1D6a!n@VDd_v&(k=5;SO1OSODaG?BqwtpEVrS$>nR?Q*;3rD+ONS)YtzJ;i(Sufj z49v|d1@BFDd^u?xCDj@#iGJ6FL&|J83F{FqH|x2EA4Ou>RwcGvPF3t|H%<4{FtE-` zNnd#M>Xto+Qc$MM?II`Cq1G<)OSWO99gTQ}SXt|@VJ$6V(R`@SU!V}{w$bC|uPx$Oe@IhKIVy;>F6 zaAuZdv;iN%%kn(&342rCY9~e3&0I0NAP3WasZjGhtB(-j#X~7Lg~4=*rqVuSw2N#&$-1Q_|9At|1Gyjb;- zO(1{c{2}~vC|=d;cs%&^XN=~93$NI1Zktr>Z8qG|s=Ei3V2YmN#jG|hnZnI;WOK$o zI`@(;g;{RB2L1Zna*ahSz?0|~A@y~$B_RVJ3d_OZo7ta{21s5@ym1 zntJqnX5Fsocy=tGLFYg$xk=uf4(`yA$CW{vqXSu4iO6&F&+LBHYWptpWGSj~a5@(9 z>i>t?8_cTWJmNOgE&lwK?-IwI`z7C7AHPlTl0ZXekac?T0ZJeKGuxd;y5B6(irnL~ z*Hw-pyO`e@-7i^SwsxOnC8lULA=r+)PQPOYpM3D^-?HvBuLW3}+R{c%TMkWf%H!^e z#LC+ste6?YGNA9d_kC79R+Um89%4L=d$fP#oY%CWcZ2FcZxX(}Rp}cK%Gzz&!V;nS z#O;S2-=;uj`INdE^3o71b9-v!ldKJijpN9)7avo%S> zs^*eM_pG6(K!o0WyCMI~c>k4U`70~;zeI4X6ah{clLoq7vzx)w zNs7pKa}}N&rb#NTd_%Ntk>9D8Tr0ZbPjQcMn93bftK?M=&1CCa^iI?6A7wh@mBO>Q zXKK`a_zk<7YlYBn%v-P+)qt>E)JO`MB4VA0-(ih2A?+M6{JvVS9EJBh*RJlX}3p0AnlJ^`yt0wVlP;(xDu0eeW`+M!8DmIo0-F7_H%nLMM0yrFi8S3Z%^ Date: Sun, 30 Aug 2015 03:13:51 -0400 Subject: [PATCH 3/3] Update README.md --- README.md | 228 ++---------------------------------------------------- 1 file changed, 8 insertions(+), 220 deletions(-) diff --git a/README.md b/README.md index ff04fdc..1e4469d 100644 --- a/README.md +++ b/README.md @@ -3,223 +3,11 @@ CUDA Getting Started **University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 0** -* (TODO) YOUR NAME HERE -* Tested on: (TODO) Windows 22, i7-2222 @ 2.22GHz 22GB, GTX 222 222MB (Moore 2222 Lab) - -### (TODO: Your README) - -Include screenshots, analysis, etc. (Remember, this is public, so don't put anything here that you don't want to -share with the world.) - -Instructions (delete me) -======================== - -This is due **Wednesday, September 2**. - -**Summary:** In this project, you will set up your CUDA development tools and -verify that you can build, run, and do performance analysis. - -This project is a simple program that demonstrates CUDA and OpenGL functionality -and interoperability, testing that CUDA has been properly installed. If the -machine you are working on has CUDA and OpenGL 4.0 support, then when you run -the program, you should see either one or two colors depending on your -graphics card. - -This project (and all other CUDA projects in this course) requires an NVIDIA -graphics card with CUDA capability. Any card with Compute Capability 2.0 (sm_20) -or greater will work. Gheck your GPU on this [compatibility table](https://developer.nvidia.com/cuda-gpus). -If you do not have a personal machine with these specs, you may use -computers in the SIG Lab and Moore 100B/C. - -**HOWEVER**: If you need to use the lab computer for your development, you will -not presently be able to do GPU performance profiling. This will be very -important for debugging performance bottlenecks in your program. If you do not -have administrative access to any CUDA-capable machine, please email the TA. - - -## Part 1: Setting up your development environment - -Skip this part if you are developing on a lab computer. - -### Windows - -1. Make sure you are running Windows 7/8/10 and that your NVIDIA drivers are - up-to-date. You will need support for OpenGL 4.0 or better in this course. -2. Install Visual Studio 2013 (**not** 2015). - * 2010/2012 will also work, if you already have one installed. - * http://www.seas.upenn.edu/cets/software/msdn/ - * You need C++ support. None of the optional components are necessary. -3. Install [CUDA 7.5](https://developer.nvidia.com/cuda-downloads?sid=925343). - * CUDA 7.5 is recommended for its new performance profiling tools. - * Use the Express installation. If using Custom, make sure you select - Nsight for Visual Studio. -4. Install [CMake](http://www.cmake.org/download/). -5. Install [Git](https://git-scm.com/download/win). - -### OS X - -1. Make sure you are running OS X 10.9 or newer. -2. Install XCode (available for free from the App Store). - * On 10.10, this may not actually be necessary. Try running `gcc` - in a terminal first. -3. Install OS X Unix Command Line Development Tools (if necessary). -4. Install [CUDA 7](https://developer.nvidia.com/cuda-downloads?sid=925343) - (don't use cask; the CUDA cask is outdated). - * Make sure you get Nsight. -5. Install [Git](https://git-scm.com/download/mac) - (or: `brew install git`). -6. Install [CMake](http://www.cmake.org/download/) - (or: `brew cask install cmake`). - -### Linux - -Note: to debug CUDA on Linux, you will need an NVIDIA GPU with Compute -Capability 5.0. - -1. Install [CUDA 7](https://developer.nvidia.com/cuda-downloads?sid=925343). - * Make sure you get Nsight. -2. Install Git (`apt-get install git` on Debian/Ubuntu). -3. Install CMake (`apt-get install cmake` on Debian/Ubuntu). - - -## Part 2: Fork & Clone - -1. Use GitHub to fork this repository into your own GitHub account. -2. If you haven't used Git, you'll need to set up a few things. - * On Windows: In order to use Git commands, you can use Git Bash. You can - right-click in a folder and open Git Bash there. - * On OS X/Linux: Open a terminal. - * Configure git with some basic options by running these commands: - * `git config --global push.default simple` - * `git config --global user.name "YOUR NAME"` - * `git config --global user.email "GITHUB_USER@users.noreply.github.com"` - * (Or, you can use your own address, but remember that it will be public!) -3. Clone from GitHub onto your machine: - * Navigate to the directory where you want to keep your 565 projects, then - clone your fork. - * `git clone` the clone URL from your GitHub fork homepage. - -* [How to use GitHub](https://guides.github.com/activities/hello-world/) -* [How to use Git](http://git-scm.com/docs/gittutorial) - - -## Part 3: Build & Run - -* `src/` contains the source code. -* `external/` contains the binaries and headers for GLEW and GLFW. - -**CMake note:** Do not change any build settings or add any files to your -project directly (in Visual Studio, Nsight, etc.) Instead, edit the -`src/CMakeLists.txt` file. Any files you add must be added here. If you edit it, -just rebuild your VS/Nsight project to make it update itself. - -### Windows - -1. In Git Bash, navigate to your cloned project directory. -2. Create a `build` directory: `mkdir build` - * (This "out-of-source" build makes it easy to delete the `build` directory - and try again if something goes wrong with the configuration.) -3. Navigate into that directory: `cd build` -4. Open the CMake GUI to configure the project: - * `cmake-gui ..` - * or: "C:\Program Files (x86)\cmake\bin\cmake-gui.exe" .. - * Click *Configure*. Select your version of Visual Studio, Win64. - (**NOTE:** you must use Win64, as we don't provide libraries for Win32.) - * If you see an error like `CUDA_SDK_ROOT_DIR-NOTFOUND`, - set `CUDA_SDK_ROOT_DIR` to your CUDA install path. This will be something - like: `C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v7.5` - * Click *Generate*. -5. If generation was successful, there should now be a Visual Studio solution - (`.sln`) file in the `build` directory that you just created. Open this. - (from the command line: `explorer *.sln`) -6. Build. (Note that there are Debug and Release configuration options.) -7. Run. Make sure you run the `cis565_` target (not `ALL_BUILD`) by - right-clicking it and selecting "Set as StartUp Project". - -### OS X & Linux - -It is recommended that you use Nsight. - -1. In a terminal, navigate to your cloned project directory - (`cd some/path`). -2. Type `make`. -3. If you see an error like `CUDA_SDK_ROOT_DIR-NOTFOUND`: - * `cd` to the build directory, then run CMake GUI: `cmake-gui ..` - * Set `CUDA_SDK_ROOT_DIR` to your CUDA install path. - This will be something like: `/usr/local/cuda` - * Click *Configure*, then *Generate*. -4. Open Nsight. Set the workspace to the one *containing* your cloned repo. -5. *File->New->Makefile Project with Existing Code*. - * Set the *Existing Code Location* to the cloned project directory. - * Select *CUDA Toolkit*. - * *Finish*. -6. Select the *cis565-* project in the Project Explorer. From the *Project* - menu, select *Build All*. -7. From the *Run* menu, *Run*. Select the `cis565_` binary. - - -## Part 4: Modify - -1. Search the code for `TODO`: you'll find one in `src/main.cpp` on line 13. - Change the string to your name, rebuild, and run. - (`m_yourName = "TODO: YOUR NAME HERE";`) -2. Take a screenshot of the window (including title bar) and save it to the - `images` directory for Part 6. -3. You're done with some code changes now; make a commit! - * Make sure to `git add` the `main.cpp` file. - * Use `git status` to make sure you didn't miss anything. - * Use `git commit` to save a version of your code including your changes. - Write a short message describing your changes. - * Use `git push` to sync your code history to the GitHub server. - -## Part 5: Analyze - -**NOTE: This part *cannot* be done on the lab computers, as it requires -administrative access.** If you do not have a CUDA-capable computer of your -own, you may need to borrow one for this part. However, you can still do the -rest of your development on the lab computer. - -### Windows - -1. Go to the Nsight menu in Visual Studio. -2. Select *Start Performance Analysis...*. -3. Select *Trace Application*. Under *Trace Settings*, enable tracing for CUDA and OpenGL. -4. Under *Application Control*, click *Launch*. -5. Run the program for a few seconds, then close it. -6. At the top of the report page, select *Timeline* from the drop-down menu. -7. Take a screenshot of this tab and save it to `images`, for Part 6. - -### OS X & Linux - -1. Open your project in Nsight. -2. *Run*->*Profile*. -3. Run the program for a few seconds, then close it. -4. Take a screenshot of the timeline and save it to `images`, for Part 6. - - -## Part 6: Write-up - -1. Update ALL of the TODOs at the top of this README: - * Remove all of these instructions, so that your README - represents your own project, rather than the assignment. You can always - read the instructions on the original GitHub page. - * Add your name, computer, and whether it's a personal or lab computer. - * Embed the screenshots you took. (`![](images/example.png`) - * Syntax help: https://help.github.com/articles/writing-on-github/ -2. Add, commit, and push your screenshots and README. - * Make sure your README looks good on GitHub! -3. If you have modified either of the `CMakeLists.txt` at all (aside from - the list of `SOURCE_FILES`), you **must** test your project in Moore 100B. - -## Submit -1. Open a GitHub pull request so that we can see that you have finished. - The title should be "Submission: YOUR NAME". -2. Send an email to the TA (gmail: kainino1+cis565@) with: - * **Subject**: in the form of `[CIS565] Project 0: PENNKEY` - * Direct link to your pull request on GitHub - * In the form of a grade (0-100+), evaluate your own performance on the - project. - (N/A for Project 0.) - * Feedback on the project itself, if any. - -And you're done! +* Tongbo Sui +* Tested on: Windows 10, i5-3320M @ 2.60GHz 8GB, NVS 5400M 2GB (Personal) + +## Screenshots +### Part 4 +![](images/Capture.PNG) +### Part 5 +![](images/Trace.png)