From c55ede5c2e58cf1606856d7d546bfaf7b377dfaf Mon Sep 17 00:00:00 2001 From: Bradley Crusco Date: Sat, 29 Aug 2015 14:23:25 -0400 Subject: [PATCH 1/8] Replaced TODO message with my name, added screenshot of running application. --- images/Project0.png | Bin 0 -> 19398 bytes src/main.cpp | 3 +-- 2 files changed, 1 insertion(+), 2 deletions(-) create mode 100644 images/Project0.png diff --git a/images/Project0.png b/images/Project0.png new file mode 100644 index 0000000000000000000000000000000000000000..62f10d779355e2ffea059f5ac0a6daefd4af9ff1 GIT binary patch literal 19398 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

rd;D@jYIBqU~*lL!zf4pF&ttX(-V{ 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 literal 0 HcmV?d00001 diff --git a/src/main.cpp b/src/main.cpp index a51deff..0bc5aa8 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -10,8 +10,7 @@ * C main function. */ int main(int argc, char* argv[]) { - // TODO: Change this line to use your name! - m_yourName = "TODO: YOUR NAME HERE"; + m_yourName = "Bradley Crusco"; if (init(argc, argv)) { mainLoop(); From ae05ad2a8e8e41e7a2fe425c5fe83dde7da805ac Mon Sep 17 00:00:00 2001 From: Bradley Crusco Date: Sat, 29 Aug 2015 14:40:31 -0400 Subject: [PATCH 2/8] Add image of project profiling. --- images/Project0 Profiling.png | Bin 0 -> 56574 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/Project0 Profiling.png diff --git a/images/Project0 Profiling.png b/images/Project0 Profiling.png new file mode 100644 index 0000000000000000000000000000000000000000..37a16a1a9bfba7ab51ac8911f5e2e4cda169b2ce GIT binary patch literal 56574 zcmcG02|Sc-_pp6QQamU^%F>fiWZzRyNtPC5uWV(R!3<(BLOi7i532CVBj`5 zd+H(s0}F|Pfr-w+2K++MT$u&_FhVY#Imv)%**^hXu(;?M=`k=A#c*w0V+F1`J((B96NZ@%XDO9N6m*6#jb4 zy#boAt7RU5Ux0W1`bg^il$^6Mdfs-@sqUL2&zxI5%R7VS zZ)3f|3T_T(-(lrHBmG(xhv$d#))MKGeW=>RN*e9h6uFhfGXN&HZ>&gmY%*{}Rr?lq zjAeHwcrlpF``9x0LjU^fYDX~(LTSlpy~Es7f#rxRU|vpMguCsG=trv)SJ6FMxJ!F4 zc?J(xYWv3zke41+J=9uG)kb%v2WEMJIDNQwF@6S~1zJ?gDmi)A(vRL2My|b&e@mta zs!Qy1{&WfT@@90)8S^(YH;|oi{P6~+*4-wkah@uBd(QR~=JxlGJ(b~Y;p|QgKX5xf z{Cx1Mfa0bLx=DiKSPffa*3Npa@)_BHoi4+`m;ZVor+b(CCR)C!>4pB`heQvgKy z&tZRT(SV6Evtsr>h4(FzuqpTD?*7nLm7bVItML;9XOV+O-l=);{)uxnP>r3S8Mh?z zA`yubF$YLU>kTo8_HZMqb;DhTD?srpM7zf)bI=F~|cyR$bO*rdht z@H(K*=|0;q+I>oFfX43F136VDN+_?&G1`*0LtpbID&vxO%e5Qve(uZ*y(EY6u9UjT zO6}7V1PhtnMzzmg3S^kLSD-VO)pGm0myA)&Y=Sr?$IZga@O6R7$F1T-Ke7_nNwp`5 z74*=R1IMTR;#`G5bn*JxbpBF*qZU|-uEv&IBP;*8`h?sC-JhW z1_zVVl!tos?oa2>v603bs{-QT*)_p2nn|q_|HtR{Z?oyC%*(KL6X?z5gHR#GkSJ~TD$1vn zeUQohI7@7|tA9$13MZ#VAdWXKLMnj?Q%QNn1yk1-fJNK2xm*~uQD~J>Wn;9Z&Q!W3 zC2yg62kEEyw3He1a?5ToFdW-2@u-n&Jlqvk&Q`tevBb3q3itRO@e8`o2Tm@xWk}aG zA^wo@t}dDZl~y{`-Lw}jg>ya*BqhNL17*4I%!{6(^4lbNMr%jYDn4j0v=~rS{^~#8 zxQ32-;L%gp#z&^HHE-_Ks`u@8lk#m2b^8Z~==Sw*VDlC)I)Jb~i=UGcm&sPh?+QOQ zdqW$V>qL4sYAeLzOAnr*^ALFh*M_zn*nv-FK4L`KfE+ z!+VR?EOqzkXHV%*9Cy5PiRQcaad^ywnU6(EW2J3%Ahzpwh>oR}8hhQ?4hH+A+viF^_~a+J^aZo`RXV;YbvN-1{>0i>@6S>vkTNbzHWaJ) zfPR`WeJL`ueq(uVdVC6Y<_>6UmKDC&Ox&x@45@fbe{%-A=neX2pUlX0rO#6h35esv zb)}uxRjS*$@bTHPlYf$!@J#{nFZg&v_mt_n{B7}So71Kyt^zm%-N#+~A|&(U6$ZFe z{9eTX3na46Cc?-ED{xvotE6ATRo`1CubL?Eo)56ITc5qMWA!^QpOjlpLH5xA2vxct zFN-3Qm!ysdZpg-m%Y6du@78l6ZP$bQhjuV9*963GT?3zxnv=Th+g|}eJAa<<>vx8+ z2>bQYf%8~vZt?KlCpotNJCPLU9v!ml`!CtzcSCk%A8+demx~8|doEi&7phAgi8sM$ zP&Nu+)QW*&yUob~Z~5RkdFc;;ag@?B^Pz3{`z?|#P@5EC#10dknKBSD{#( zefyPKL59ClOj)2`0Ee4unW<*=mAJ&Luhi*~1>|Ym)DoR_$c3k80-TI5Xwf$o$hd5M za&AtBw{=;d;=RSQ$fk+YyjS<@1n<8pA)clGb)d1x9js6uosGXMXlp3x!PJ7p)RYu& zIMokMDRb``GEP@d*v0}FAQnx8jy3I5(WsE-9B?cpD7I=2X9O)<`jH80)GA7lyq;*3 zw9-VZUGgDF{=JZ0f9+#Z|4M`#!7to&r5XF4CD|pifbcdYottlTG#{GJOKP>tKpa6w zpT>uHjJMbtd@6%cL4HGT>tDsme;FzQ3LviGyYpWV59nA2W9o^E)l{@!)w(UHO*r__ zJ}2uy6P-V}Nh1PgSZ}fxWwrHLwY718Q?$K-3z2*T^&@U3yNHvmTSe)9ejY{icX?@qGiq13VSEOY|HV^$GnfTFh1l*^`GY+Uu(u&N1yodk9?p;|F@@8CHAGQ2Ui8 zg6V^BazCvFrJ|4N!v1qV9;-6Zzd-h@sK?sik{-&bWW{?L1yAc$o5=ZEPrZF7!#ghl zaS|&=9vk`bhJ!|o#E8LIgSMl+lfE{S`d%jv($}eEPX^3en@C+FEKxW9hD|Mj4MpM8 z*_mL(W7v2fv7&zo!6MdPKb+UVO(It=l+-tGJvJyMRczzg$L6=lg~#0G0zrhE{3UNpkN3)d7#=H1iD66$ z9F?)Jch{k<3@6X*{w{bgFdI8CI{u#oiJ97q3*_Nccz4kCag&Oe;LQO^T9+Zx7hg5w zL0+3e7=FcZDIYGw*#(GyoVv$^XUoBVruCNrFDhVdA}8K-hJc3TcKowz23R86fyI>aU&s5S@bN)HH2XZPk_ z%DI^Hr_B8l4#{oujlhN_F2_p?H|!WWdh!d8Cf#&VG;_b1!m0Q=8D!OKV!%{sGZ(z3 z5VRSaK<-_P+1(Nww4!6&$isw5c%Uu`ctnpu`qbauDJD;z3YUw6vDQrSLMFc zd`eJXU;mistxt@83(YDO6=Y1~G~W-i>4$ciS)heQHw4M^GV*>&wsT_=|E$YT1-ESC zJ?NPgbNS5=jRRNB@TkgB*@=SZ(IOgS2rO;QeEHCavK1=_F`S5YU^#CL0rOhccHgZS z!enCq+S&PAqwVic+hdBmRE`&Q7M_O*94+tCIv8Ui=fl-bdlM<Vw?U~>u3%C;JxZUDoK}jyx zqoZulVehDXe)m7bMRBEXUPT`O-BdI+JXv`_FMXEL#!fehEjT#Sz{H`6>~K(3;J(HW z${UPXj5CZ2G5%{XPNk~8YR(9J{v_H@Yo&y&6@z_kOO4TqcaK5}KEAtazv?GB4C(O= zP=YY-L1WCR{p!#cygUQNuVps_KWPO9pd|77ylC0v>spo_ca*KveYPjpAOP6vxavw9MZ!eHI`(*bB z*Vd=eg`mN-v&-V^aY2c(EPL5`L<`=kfGj^D&@!{tUQrceiC~Es3dZ?%#i(#D9Iph@ zn-tSr;r44(LY0G0h&FEAWo@o24B~hYj2);zpx+ZE?HmTU5a|4pGaGk5U14DSk(2?% zDZ3;Vs6s^LvJcV+=})9cWD^qd?MeN`gZ5}c+F*`MBoxg^j5pDq0PN%gV6D&w#YE2% zjeWRCj)-l{)#0>C*ko=_9OZ$A*O23+Z=SWP^p>`j?{V43t(fJu%!=_-Q!2;UrZUG%}8X$&*8DO_3}ulSh`8tPWxKOPt3`T1DGE&acN2O((og@7Cwz4k|!m#f=APu5`r%8VHCNq@FTn8 z?CoWn9!JF`K!P@7|2E})xtai-5Ap^q3}6$i%iO(kjML9OtQ#^g3fO2sUr`;GWK6X; zkRFhh)>%7%Z3-Y0&?5$%^H(%;4PxxoER@pt3_^t})B7F9ZC0J@MsiH#S7J)D(|SUd|(=(E!Qw~06N@b4m3j#P|pnM5*?5*!2D zvImy3pFK76QFh6#o6(|LlNtWbNZ6K5=<*KL6fki$3pTBdW7*5_>~Ef4-HX^;Q!|M0k)m{!gqrH`jWe9ok$VoIPKJY zr~jqnk{h+IHtdJAX=wo#1@8tzz5Y^x&86` zwo$ySV?gpAddnGt*p1sKbSleqOke5tU-0^hWt(wYtxtyVJVJ5XAAS)WhZ|j)8)mQ- z&r&?`w{CV*_hRa4us6>Aj8M~wD?ok*#kctA$k!(*-IBa+Yq{+rl-=l}};hei#LkxlXVpmt<}V zqkvGD04z=~Y7I{?j_CR3DeR4KKgk?nV>zMk)22HNk)gl0-FS}2LKNP=AgE3uPtS_+lad}BU$GG+SZ-mriX&I$hvxik1R$TWJG}nw5bG0D_U&h6Fa$LU_C>lxBPDt_>?s{J5tm; zbG6BZpwU0KiyDPpi6UcZc>1I=xZeh#Axc*tv{11zZ%BBYAKXy2x+(8<2}O@y|6p%F zPOH#A55aO&@Nr`BqOxDjTWg}A znaQ7yVz$xAb%Fyzny9;61do{BATOa-^pwv&kt1wSHv;z{*Udo@a_*~k!9uk7ioSCB zwFeLr;-G*r0jKI+B9}^6o3D|p~5Z$KT-jp_x7>p_5^6J>E%R^L?+8sY0XMB)DR67posQ7C-& zF1~_?zFA6kun$g3t@djmE_{43n%cX^)hAsM zzmkd0*LGVRX&=DbW9z??vRNnHOPIDYPK>czV@1jP%tJ>Y;G>=6E$*K1jRl=axy_R< zInxe9cf@=YCw#^0X?AAb#s@fU0nO+-%j!47ib8WwEDIviJp~D6dQ0Ia){xD87V+FD z+fRtiP}}^s5q$(!+vuKpHorbrVus;`V*Cy5gZ9Y+Ae}YRljNC)lZ>{z8w%0aYGo^* z#Oxua2oJ5N4u=@eiW4(8>fweU{{;Dxfl?R>wi0`W;6h(R5-D^VrGh>yM$<3$Hjadx zOy=n#GCiPHQ?$rBwzPP%5qyzCwANYnrn1Wf*KM}ZD{D9FlaLTp|AH?yR=%pMu+JB{ z-jP7@wixivhP`Rl84lhY5=6@nY)V4loPKsa*sK>WlY4N@6;o+~xaK`e=oTIfPt}Md zS)a$M^x#+fd_p>I)@|@4YIfY7q-~|d*x@?8P=-3O+_Ps)#48gv{MM8SbLdR;-U2Az z&NJVdg0iri+H$oKtE}vW84=@C?fH{a;Hs<{$)KC`HESa4pqFFc$5vJp0vvEHb70_Y zDadIE>4&oWq~#F(&|mbgW=e^VadGQ=nnsIcIUAo~xiwzQO9r_#F8&IcsY!JMdt`ti zpj#P(Y3T78FdSA~eoE9(Rk{yT*O3$=XF1n>uD&>bD#iCB{htblY$}9F8E|=~->5ui zOmAAMyD6e$c{8Wd5$<=QHD9f$MB3CY>yti)IuKa0PCBDAS-oaLAL%Zz9Hxz!(B8_r zSLTk~`AYnJ1g3U#S!_ebujdTB%@(_%gQn6qDH!_v9YaDSrK%xlq&lA{24CGlU94#) zQ_YY1;?LWYd05UlSzEEK*x7n8g`C3M5l{7~t-=myS^kRW!>&447aesj4r^k6cq z%Y~S3;oE{;XgKy_KKrc0w5mA_YgStb2tL3j7I(388SvtO3$>bXS*zQz(@(s(L#?K) z*caY`ksEz;)AsNo+X?N?6_+d@ zq80x5yb785t8L6)eXb}>`&c#kM6tf1OmHn+&XRGQS;O)g>X;?BpYt0Ja?nIxxuc}b zJf;8rIW)ho%A*f;-~)WEpv5=pIYsT zq>l*U3M+kUZ7VK{=G;!8So?cuyi^E9N~E0|a}q8 zd9!?4ZtBFS&OnUbyz2I<-JEp$M+{fWtg~d(33=o;LXpoLte#ImmitvNq>~X9WQFzc z>cT9yF`J&*!hPZO9=SvEP=m3=2#00{qr>XY^wn&6_@K(8untleCcLvOSqP z#-4I&_gHuEwtIYhS+hAPM$2CB%+XHRxHq*Gx!QXs*xxFxRok-vALmA4C<)xHW+Qpe zBs$d|ddW}Dx8w{89fPQTzu7jag4VHvH&Y4TJAcGU+3U1cT5#n3cRHzu%9 z6ul=iW&M2U9Rk1pk?Dt556>ioAo%x7-j1bk)jpJX#Q{3LbF7asJ@{x)&0NQ8q*~5i zz}VX1(YI|<(-m12eb$Gm?(#Htp_|&##^4Xi_yE)lNH3B zy7aVruZDj8K_qr;poXHuxw^3*lDT>4tEoPLl^C=ZdTek&fW?vbxunb|A)0l2f@fif z@sjUh+qtq9%Aw;i<*ikt7pZr0dh-WI_Ua7unk<<2IiG#RO{motJFJ{QhGZ^|BN_g| zjm{3fVUr=YAD~{rC@hJgyJR^w!k@{cZq^?TiYd1id^N=d3X+%;L;L8#bgt1Gp52UT zvYs@5UX|={;zp}cEaaxhr52PL9$!-DR_vWylqt~dk7})_mQveP$3m@%hh%l8-SFxe zezR%3p+P&tO5N~MI){%~#+gws^N>QN`*wVg2;{QpR(drS;k;KM!bzoIPR~l&)a_5p zx#vVCMqA#utnhHQ`ruAliVWrc)njHyO=kl~4vG1o2DE3ieb;Bm^NmPP84JXTbxkMj z%YGWPVro^NEQV~4Y0QE5+tTq|#JcJ=W7Ou^;Rj=GU~e%Szas0Z1!KSQCU#`C-Xz0kYP9RF}?UiR$XF`&*=su7l8cx^9##KFm; zwbU|;c>Y6_UY>PzX-1d%v|dK*y@ywKf6$>g7Y1zx4WwHZv4#V~ROm#>uVhL~!#1HmJ6$75bIP zL4(82Z08=(P8@9vzgjrk%#l~?X|&w)k=mYxZ*6>bQdh7K8Pp%fK`LHPm0zq5H9mQq zuF8v(EEVoPQI=YBMIlAcM*q3}u`D+amWIB}4Q8iBKdwJmR^>1{YfpHT0|thHBm_Nv zeF{r+D`~wn2KZ9L^wtVm_vYj~dUw@otKA5Ko+E_}Inm@^D)FKE`@_0#T87~(Yq;xalncfZj(o)i<##hsK**Lk+@RAh@ z{TDOld0c{r8mfHl6ViWb8uPxoJt07g9qMY#2m}-)oOoDk#WOCD7f(*#=X^%_=-~5# zasfjf@S^-?phMtCV)0cVK`{87zWR)BqH;{TcOeidswh9WRy5`Bu?!?HPlYQWsrNh@VOZ?X5`lUnfx)@sh;t{E?Lvvv_%to1#G=< zV9<_=!J`4^BNGazjl)69{tbaI$i5rWnSt%LUhkff{rc%(f;F8iN!H@2t_|{RbR(=e z_*F=oXbp*K&_XI!i!9Is6_io3tW0qIW;bOsZCxI|czeY6q#OJsuc_lnE-{4@??1>Q z?l55ve0r#+&9Z~}#q`{pkW-<%t7>!i1A0vqug1}=z-X;}K0e{)iOLO=8>IFD1$QCec@0(F4}N zIvDJhBuBd-eDZhERH#KR{nP!_kI0HC?910xG<_g}x$FV<>MQe5r1HgupP}{M$&Zlu zM{(o);XPa=L}hVM>eamr2C_@>Vk#W2&GKX(^AoG924I(RUO-vlhtwlm&#=1B0N#11 zsX=J=`=zFhmwFXCX<$~Uw&(nM)nrM42GN3b5|UnmOloqoWPP8E_szwNF^X&l)(Oun zawX4Myde7f?S5#m(q$u=w7N^3P8qM+QIS|1g2+CU2{VLsSwBxiv>Q_S`xW|Z(v#Mb z#qNG+xf$VO#;ks$eJ4r%P0ies>$)nvM|cna^9(S}2kVl$^x+GBnO;dYG<9k(5A8k- zpF$_mNVx-0F(O^auVXlh(1%@=AwQt|--h)q;W3e7s~B{QnjWj)n*)^I*4C*s?uf~^ zmE|pdyO!DakA?nA=&0uTiD6{khdLl&Gpy~>{hkYm?oTt_Dc+9mQ&qseVk`0#KXCOV zH(AL7OOW-SiXu)SY(@}v0qFG=`bx=&g-fA7>jNfU6jpX|f=v-zcWn0XFPqW#Z( zRoWciQU^{``UkA87Sh$X^1qW$o0{0*H zfaJ#S^B{Y0dKZA_xDT2hUdT?-eS-Z>(qSHOv4yi_SfCLj%(Dj$A90gg1nQSO0dL~E z*sE@Dht?@#aX8kj!`a`nLO`}f=<$DXnfJn?atIImp$v19Bl})46RH@{#U~`R)~8Fz zn-n+}wmD@_*~%fef2h=13Dfa}El(Rz|2EAsu^*Dd%oRbIvkwL|5pT6M5*qEKY=*Sc zF&zBu4l0kWe~h zXdv|h@+)u_164p%R<&%BDKtdI&^;MKmxX=$=ulEc=Gq+#B{A%zAR!#S|G+~3;&T;r zlzjE0hr3u^Bad!Gu^oB#9{aSPbV-fLt}{%uV(y?HC#U?8+&Taaip?qA$cD)&@+21$ zv>|`eNs@jcgnr=enzW3k3>UCg^dApgbL#=Bl} zBAr=&Sm$VVh7&8u38>=T;IJxoyjwAum*4c-=rA9SbKX8}Ps86KtY+OgL`lNqzmJeQ zl4ix(&0-5SK#1$W8>31ya_7O|^hYaRbs~rtFC0s$jT`i9^>B$#13{)S+az1Ebt4u_ z$`IT!{2jecH2V3(a(>rPv;6qTfOr;HbKDp(kXBU4F0%{6K5wY4*>;k8A{3n$FKVqH zbCOI=*4Dbnb@FM(D!V5iH(_OTy4QGEIm{CH%kKov$7i0{+|7ik&cCXwQc){wSyr}s zYeqq3P%NszDqXX)1j7nVrlfOWW8~PG)H}tQ)GwP)$U1W@9qoskUaR-hRkE-v6Mw4D zuN0J>dLT>xG(RH6fmLKOtl)L?p~1AeJlNPZU6m>GqjNHtla4-kD^$VUt@3>rT>xm; z?^-`j%(#o!Ht{!Z6jJPveNy)LuYN1enGGMX-~~<}Zj$y&$hvRulr!MFG){5?!;1_t zD;&ukF^`$mSD-(>*KpV}sNRizNy;3T-5zHKDQpcBR3B2i{MQVeI#|WNBq!s^w^c?w ztAe$_b$Oq*DB_1MsAV+c1=O8QZnL1^SD7Af(Gjvl`Q2D_Y=# z`R3BdXQ8e9K8FQxL9@5R$e)rBo_yGs5=)M!iHFEQoHkD|gMQEM;yj`QwUe5OkZ+J~Qi@N2CvTJpo)?Zrm-YL34&!B37TA)Pu(G6W|P zAVwms72CFX+3j5#3sjg8DIHuRd!b77UrB%}zE9hM8S&E3vpAXKcxmH=yK7C}u@hJM zfin8i*)N50)9R6dEJlYmmpK0do8W{nc?H-PBSO_O6GnU~cgSgRu?x;Vp2G&0oe2?;_8{vgMF!StdjXMYp zCw1|Jv;Cb~RYAy<{VL_Q%8=l52C6s2F2O0*h7TYfOKb}o;Kqanj?gp1S7sbutuK1L zp`>yJb*2t6+J^B9x3@$nE75$h$MytD+e))Q&rUhX!z|Z0vb~2&!?u?GWwT0OQ~9{o zKRL|yP_$myZ%wO-5`svy65c4z-BGV_k@5PAW8rSBQ8V^grA((d+iQ<{`krQFA{Pe3F7O`!EaFEvIL~x}RkDY1@OB)HrPBRIx9#7eweYKlP|M0~X+CDdLRPx2m z7dT9WAm&s9Y&bcRp7ph7l7WS`do<5f7q5#b8g+YrJgZ{9L8jx(2VQ#d9zkSg;9T$B zD7>*vW$@6@QoOvKh8OUIAuWC1XcXS0`W9vDrq`Cxj+_Vp{QUvRY#SlF(;#*ukO((( z@qwL<;r_*Ovb?xe>x+GA$px?6MDgrUbX{B!`?%#|dCvhJvptNqlp*@jp&@(aA3y-3 z12E^`xk<|bF!$izy_=G@ucW?x=ay3r{pifxos?&Y0 z8#stv6MD|1F3&mnmgh~0Cu_QP_q}7U;vvQ-F&o1OTjz9pQnrFs<*g!EqjmrF2oG@< z=<5F({thtrQcY5}r(~*?o?xCssgp{xL2B9XVtd{$BO!({ErssNroCH zau)qq0Yh7xA_9#ot^n-QOc)tNd2JPK328zlblUn66SR-ywTCXEoefHu@ zC$a83hixLgZ1bywBfJow@16G9kKmzbdCm3n2~xCHQ%opYZ^{t>h0K()gx{lg4P)l} znLa~e4UA<$4k9q%|xN3CrrTO38hfB=~27iw+D~sH}1C(C-sQdIRSE`_E zSGaSktPpyO-Pc68dNDtmZ?Z@m$YQ_+-xE__fb3moi12A6IbFv2@Q`|0Yn zF646<=*TkLLMbvxHmEaqdnO<0mYp+O_&d;xFD%)d_Q7aZrMY$CTaUH)Adqe-_=Um_ z^u4jQM*#ZcyN0S_7lO`#$6l3g?Q_)Ys+ zu&cSzNX*Ty0*AF3(D^(Yldr6+k##`iC!MY+^eLZ9LA5(i(@VF0}uz{=kv{% zY#MFwvtIJ!N04GO>)WsOX0?>|E!F3nX<5+a^URGLMLNK(OXzzW#|wK8wD`ykz&3nQ zkfj(OBYWUgY-^W}=v$ac8-(9~09@DNvm0-=g++irr9S^1!bE<&x6uc9Sk@PDdH_~n zg_?@rf_@sA|6x72ViG;y&j%+O=q6bRFQT^*RR4SG$b8)^*GlS0rVK@E4$?)@x(2+y zg|PD9kO#JzkH;tNdCZ=^QI>hwK~e)WW7m~=w(X8+28OVlyf14ihaV@R=FP(38nJ=b zZTwO*3<=2k_TDkm>ZL-k&@Y{COMgXr zm>EqK6+RSE7mBZ2;Vr6HO1{eb4B~hlslQf5F=LnBl9GiD6TLC$`|#V zc>ZF12&h&zCF5pyT-MQ@3r|HO{IAKL9(%Qn*Im{@=V?V$C0aPs_HNN|zV)Bc?Pg8} zT`k-fVl^-l=i;SP_74o4tVP$bK(BG^4W`>bSZ&?nn)!w%F@0dZ`gSIXJYU(O`-Lq>*rD3@`{v$;iR^^3+C~g9rr$?1+B!b7RsbJ_ zMY+DuKL$_Rn%|dRNQRJrCtpM%fmxk%NVz4jhX|o;itGgXe9a3-2}8XX4C@#43wF1_ z%*JClS)f&VUppX8!Cz(UqORWn=79l6Qsfr<4)4Kn@y+9v*^F8Ch~z{ereB&-WqNf$}b<|G;+dB?H3?6?OL#Cbb6{`nv4QcYxP8fXyMF zKa&r3^%dwEKN;VRtI-wzlrHo&gl^qwc~?Q7M7(_iXFiIfwxa!Z`K}9B-bvmnNY{g**~-2`e*jD z3E+q*(36S@d2;LN$?i(DbC+ZAhlFs?`1~d-cRMVu?opJ(vhXhnt@tv;_+Vp=*lU`$C$W7pJp0 zR1Z8Evy@=8@eHo7?(oRHv(DY32qaV4p}f`4TIDtIAB*DA_dcy`hWt{hb}DCSz%)7c zo(SS0dFwwr@b;WVE&#(*=h}ya-E7zIfwIld*q*F9ArYT~(WaG;GGS&3p+Kj#wViJ4 z)MX}sv=8xNKQHv#Y|uKBj2qs8a4ydAH4)q>{gJ-Qi!peR(#~qD@N0>7J>B}cc>mxd zS&hkkF(GmR(}{S4MfHT=AbBEd;Tj=YT68)KDMMQHNR#zGsigRaTYp~fuBXL)tKwN1 zE)Ub}Jw?4YW(DwR*2e3_p>n>{=I~vEK0ByS#9Ts~j{b5jyJP{R^%8ceo+hKIv|VdL zI8KAv5isA zMvC@_9#Rn3m={_`Jn?*CI%ey)~Gh(q9AqrppToK$ywC|&c~CyxI45XDq30{d4?fnXFUvG zEBEZ3329*u?p|of^|48!>HgBChyd33whN$jT%HMY6wrJMjOk}W)q!fWX5HzIj^%}h z{5`lX-k*6|%1r`VVRTT8=_}r;E@8f;t^y+ydDoSjAP831}M&c;EXqbQ_}Uc`bKXvOKJBc z(CBGZ`U-WZb4P8NL=#siN}@n!AI_;oI*K1xTGg^!&b%bkkn(H)XpkN15`(gM#MTnr(v)bkldQ^4YbHXh9CGH-cxu8fX_DRREcV}q&(mV8+LfG%UMRW2U5BAafa zYhgG-as0{TxsVvsd4_#8=dQAsa*-Bg^Z)EQfB-gC)L6D7nW_(>${Q+~u32in?P$$6 zd;kQ&KYMTc0(7PI2=9~SD`4a*Y*;TV^dxU_sYSLDSU5qOVuYzbplVpFVK1|GXwT$c z&i7Q@9^3=%c@*mB8Fhw`t9^vycgykQS}*(+Q)z8K4&!T? zr_p|oimIceUGce?5QOi~$o(&z*!@7K{NZ0J$jFdgY&(AG!QNzr0=ZL0l7@Cxi7QTo zlk~Il1GGhnODog=q%D5ySARjN%d$FfHH{StUqmG(90W)A=LGMMPLzH!>XUDoaewPe z{SAKwtAG89FLeItx35pyp;AWcuXN^Hm1yphHTkPCzHQ#|)%Mq@uA@ln=5Lpu?^IrC zp2u_@{nrP7cxTG|=W)K?mNze{1S$Op;p?5B!2E#Ae}cG$^ip5I7reiYx{c&- zvHcCuU(Nalbhf^}-<@ynXm{aT-eMQqIXhhx&}Qlf6fS{nI&C9d{5+zXk8Z6m&lr*i zGSbt1Dtu>*$H0AM%^v-gJz78ulgRo$r!j>r7~Mrq?sWhDDw9ps{af_^p9uIHj6cu! zGi8fjSd{+EYQcQV&s_c&!6-`k--}Fvvp>=GSF-jqm>)#(KS12VG9lRL;}mM?Ul9E| z!fyrqH$Z#u`-StR1-g&!&(e+d_XbXUX-Xm#kW#2<6#3(MBlnq5_t{&w)NCkqG$ z%X#m*1oEjH?*G8G)uuWayiK%6w^W96+}YWg&|B)J zv8>q8WTuOnmbd5H*4@Xv|JiKH*O3=I{Vk4GIID~LC_4ZY(i7(JRnOu++Z%W=+UEt*HOxFYeHr~UeYxrRv2&+g95(eKyet}0_ zhgW~uUVe4t@OrWZ+)nP^x1h;sFVG=#?zJ+Ck(jLL61SV2IjLadXPH~<5M666UNUN%ey_PUjg~RNs_SP ze3R1TE96|5aV|`NztRb$=n-KzWBOdLSd9Pg(f*X)(JP|4!q-gse1yUI@|uyeUS(MK z7moySoZ3%e*BcXoJ!E(JqzOe1bpT@KK+{zkpAh~kj?tF14_<=aLF)JIllfv2|B5co z^j{hu{ehQk{C2BmM#;LyV8cgUB<`@p^UZd#Nw#`|EY}TG1zR|&do;|2(N#Wk^E3Ne zrFKe$K{&+Dys0L?Wm2z+gwBgVimw}k{DEG3WFOEQ{1EKsVZ%J!>ugb(tE*COE+R90 zKg5`3JcAFJZnURMLHKc1qldV@Bv5{dPWdei8}!=Ci$@8-j;i}=Gp}X63m$^9Q##{k zUl=TC)&{Z0#J~1@eDxFF0JYV~m|pN`0ab>u$7-+oSmeV&H*Az%-p0n)8<*$9{8+H@Aw{aJ_K72xp~L` z-JiTTe`jZ9v`dEndmxl~v(>jXova~**JXv$gkGJUtVR;S%U!Bj>%>(1oxhjl5f-Sy z)vo1uhUfhKq+>E4jYAdO;ISbH2jg4QABz5{mrX2${2|op;fl7F9q-?9&oQ_tM6QN| zr{aQCRy@#4LthzAB?825%0L5scnWx=p0krps^chOK6iPbV^Wa`)3kJAa*NcyJyE~s zd_-l4T*VRBxz5W));6r1*V_GQXAUX^7iWG1_&1Gf_bUzm&NcBr zIuidj&NnyY_qzYrhGhH2{{#`h(riuX8giifzjS+k4fL0@{x{M@Tq!-caPQyQlEg@4 zO`?1LIX^}Unyee#qQY;i(ze_6Yxvuf{%q$?SLOZeDE-nC`Va2PZyc^|*XX*^@7#^w zI!(Zf{|O@CA?7W*)!JbT&-{13-miiFa@PMU$c{UUTu+bjf48YyxoI;OIp!}BH^YmF zFXr$6B3`#*B*q>(!>|_3Ln;u0o?%k|Iqv;`8n^FM+RBLh<=0_P$czFKs9MK?kk#nC zL`~!|^tlZ)koWcW!iL2bAb_v#51bx9(Y85LeY!)jLCpSh7SQeIjKlXp+AKNQu5(X8 zVM>OtBG5H<8Wix{7EG3zk{lcud0K>=`*mWq6G(vpS-ngko(zxb0&>U?!=dr{3VrQZ z*Y;NCUndV2e@wM+a+A!BoNHel?P9_>z9Ss8ygd$U4>}d2WcNRW#M0v7&j%RO3qXx@ zP`NhH&1EWAW(BU?%2uzs)XaaetXZO8ytNh_GiF%Y5AUCKAOy!UR{{b zXOsGCFhE5AB{{yRlw}xPr35xh<$vwNLy`!0Lo~#PAR+t*P-tG<(vF|28lSTP9%-w^ z732Nu8YDNMzRFa3x7+VMry?kzxQa=R??wH+iY98K6Emi%x~a>bw|8GY`TfpcQ|n)% z+yL>_(XMXbI2qme-7V`U%X^LSLM*p!`ezDe_4$M%}bqs4%>kU_&z|WU!>%J zAEo{;g5flCU6f0!Xh`)ivwA)oF*c;-CuZ!D0m?xyLlG)KvTNIfeT&oo-=fmX4y6|M zkw9xv>yTKC5>oneo#?K_{ykC_`?P$-HSwoAK<_8_9sDI(a+Vp>!#$515K}A?k|$1s zt^-SJN2OUu6{~%|6pU+iejEu@h@uFK=ONZ>0!FPbG6sKL{TlQ6Tzt|7Qbf0$-k^hz zy$k_$JxzUN)778Y1y!;>edd=LuCdcVnj~#(Wo{GXOC1CJGWFT^k^Z$5Hkg8amxRrN z-IPFQQ*g@dtHs_(pXucWRY>r?rh3F9;q$LQa(zz1`TeYn77hUk>q?P}tcx01Q#&h} z;!F#JG;S_0U-T!aN{hWTFcl2HnauAQkYFwIM;efs@6EO;zb*%66=5Wj4k01G81P`0 zM)3Tp_~CWyv#KgNGNk)f8V5RRuJ~&3y=2Xwwjw3?OscX#hk>T5ZC-z`{rT^~tsVo_ z@$vZL@F8-XAH10m!CPDQuPPvK>EesztJINfzh0Zbn+Cg4USo~q3>bxyg=Dm4=6q8; zu%tZvTw1u#7VIUv7w0owcZnu|pH@4u?hS4e;r$(tx9X2l;x?ieQDaM?1^3;E!9o!? zCzm^YZwT;^tQG=ibCwTfTk-B(>+)28+p(Zu8#Ib&5*GbTV2hvWQOZNQ8Vn@o|C=i4 z|F;B^dN`Z77%tm2?uR|1O9|hCyX@P*woR2i-*>VvCI0I@OrpHKwlpIV(yEoD{q>-d za8t`~EgvF6FXovr4t3G!cxe-iqDxD8M~+DapR}<=KXBRuF9Py=i?q;0Yjs)N=E z2-^z6*52u@;}BXzd7901rSW3lcCU7QFHk>I0@}cm&xZ1~7MI@41zSxeayw$}n#W%{ zzH`USJj?9k#e-t4%5Bg4GZM+f67piQBCu_66R{5LvwS!Uv?}WK1d~_C<9p|Z>j3EM z@tz={I^LqF}^=}pMZi!{SJqMW8B-O^9fR>u* zg=j4lun5OnGyO_RU~#|^W)1!Zrqqpv)(Rj^Csosi!ftw?e5Sf3(&GEQ+HF{&#a4TM z4I?biwI-q4h7DRGlPFO)sp&k8UILEjIADBIJ-2bDaA38?kJqGDopaoAiEx{lov=L9 zSErE12apTpN9kYO^NkY?=e{Kd&Ka_r6*suo-;2l>jZ*0I?weFV`OXwCF1PurO6et2 zrQ&F>P?ly3Z<8P#>z5>D`Y&RY>e{`g7 z$5y%`98&BJN_(T$225yP1pf7?m)&_%->UvHg$MSRFcsg>#go7}-pS~mE_d}Tx7PSB z@C+rwEyM6)dmWi$;G)yUtm;AjTBnvGI%E2WuR(KdIk0=J97s$=`>0B%}UnrTNA!ZYl8XS%LcFc!_94(F~@c`g6fztS2K3>TP?h$W@k%lCS6`D>z*##A?7e> zs|ReyKc)RNo*zQ%?ru(1kw#&nO8~A5qwMQWf1SeGpWkO7>yVIaQXV0KW386$vDo|i z*{iX4C(CPCp>}}S_(k%F`IeNFknc)ooF&e60hCZwRQwH+iM#R~`y$vPIoMDO4PPTNsB5iYGH>YXgDS z=3+%4cLbb9tJP`r_K#4l>9Od<_9)qSfT4wieKa|5$`iGqCRJ$_j>`yQk<_0T3?o=f?Hc!Ft!!G(hDe$zA<2z z^7Iy;qc^usF8DgwneVH%geYsT8OtK=@tojVVsT~WxscYS{6Z_88yT%bqkTr$py(*# z{LD33g6Mug)h*9x5MlwnI?<6sL_@}T-zLrQNt;NOGPCb02VhDL5}KOsTUYpc)CF&y zm$VHpWbJF$1`G7r#7Q$S%c=|1Nd-y>ue>eH}dz z0ZEDzJ16g}2!8N#^68)av+A5lrc1dNFnCk4q5%iB862#Lu3GBMy=0&&eJy>ZH~>T? z6Sp=oJM3!#T1I|Bqj)}0{f^Rijl|`V#O^;)m8E$Ibd`E?5_g+~jTuR=d$jLRz*UK|1RbO@>zUGJLo@1DxZ`nD@iy{}!0eQL@;0X+klK?XmYvWAVvo?^FLv>z7%-E0GYUZ(h#k zmkuYO#@zk~C#g2;C}EeVA(jU(p=oH|!un{v;W5~)8Pw<>v3@_?kNGKZe9_87WAmm} zYim5xK63+;-=!n>I~p6PcH2w{aFKe&t)$L37KC%%WrbekVlMx~?T%d?A%GQ{k(_Kq zPIk%g((s-36jpXW27Ax>J9&_BcN@?a;vuETj6Ww_zGawyYs|0dG?ThwXM8X=b5#&m zze9ZjzA@Jf0H z4QT!O&b-g9KkB~{q0bRM5L;{uSJsaZfv%d#pUM1xSDphb*Z)|||4-$)|0)*C4f@udS7cyI$rU$hMFdw|5U#G);xZw>bc1hYv=rD;}JS zy?w^!Nz$AX<;P7h7@K#n=94%` zlg!`N$+u3x&p!RPrX4J!E$ZqKYB&DG$N1H}ZkxfxA^n#>L_0fFAk})wA;!@OmdA6# z07QBZ!2e^og8;%ES&H(7&#{iH!Ru$$_(J}SQG~f$%Q*mzShsxd((Em>j<}X zl}bd*SR~jcYv#;AXMJgd$J=SXc>5c@Ui*`RwiYyPzdc|LmoF9Yj)2aORw=TQ7A2Jx=~1%Dc<1|I%D4@>`LaOGD4 zneRdqV3wxOZ3XGm&KiHn{rDFFhd&wgSF8RS%$X0O+x>1VwLfducZ$}0@ch7B@ZA4g zUaastxCSureHq@3t`KB}3xob@y~~CjKy^UFLe#E|UmD|o^RIN?Xb>0!aDa1K`@Spc z?B+xz7}rMr9*v|S2OE}O;dkQ;3!UM_>J3j6HjBV|%`_C>X&G!IsVnxrP{pdzJEk|+ zbE+PJH7W^AHi7DRNRX!XRTS`YNO+l_LVA!4knY`;JLA*>r`&+D%^CQ@#2oVXo0sk` zpuXTw#}zqayfRb4V^h7eE&70p2}#ZlhroOvT_58w{Y7-W5;y>WIRpTm=3vy{ymOzP z4YHr++9&!hK&uT`JWaduEyW~LVb9Bl#ux8I6%9|jSLJu)tM-~?B^-AZa}Kc+c;x50 zeZVlF&hK-L%5_%h=nUL~rnp}j@m@2iK@92$5+YmT_NG(b+hbwM}viwodf<|5U? z(2X1=>TJ`2(cVObKU-wXSBJplZ;!9rX}fwW#`5)lq+OV>WEOSBkRH}Ha$Ev?A?o*% z4i?m^&>U6Lp#Db)w?jdT%67lLX_SKK~uYQcWasclE^*(I`r^u@R;7yI%5l&26O zu_|rnrxgd&Gr6rd-n2({b6f8-?4L9q=S%I4V5#l-<-d#Lb^aqhF~_a}pYN)&LsYkX02-)3(u2gKu=t;`jR3m&x; zn=Mx^2*%3G=f2mV)ynHSm7FVIn(GkvI6c_FM0OEp`gesxC^JDP{%rO~ml@{_mn-tV z`Iy(^-2|9v=c-kvH1o&XY<#ihtNSnT#E%0o(u*9j%)giNKu2^g$gxp{&h8C+tjTqE z*_h}_x_s7bvDLco46?OnbVnj?UaF)14$VAasjg`3%VX^!7V4)PbR!sxZvgHCTXab? z{zLk_`+(yt(L3HtZvka9k2SjA0#je$=E4dBs8g6fqdy2t13$tE0j$P&Jt)0f4G7At zHbu`px$jEtY#V0ZpD@d^#m`S@Ei(rXSeE$DfjYl=mrc$W+yAG(2XQD>;HMx2P)nY_ zk4>3O7Ymt-=>E$%>93NIfSj6>YU?M`T7FJc`&G>I&lA)BMGDzpMnnJV!ueMtf?1|F zWbp>D@z85uKN<8_tDaxmmt?Z6qYkUp?LVWBH}e^Szm2_zSU!kQ0kP_B>c-%DoR)1Efm{A+7x#Y_u!YSZ~hl8>$g#MR;5X~w{Oo~sC1nh!T z2D8e4ozQ4n%i-=OvGnGMy7?aBh#{y_y_v9A@wsw5ZZLQPV zl66)ZotRg1`+DHSDH~2q(~kq+Zmuo)Bra-+7l4Be9Fwoec}i&~&gO$OIH&+D4uQgw_7wVVcGa+%DFjF#%lqPKCe} z1wk1f84w!k?dS;ccv?B(YHi7|oWj&}qys|V5`;u+Rv!-xiwernIkh&+={s_L_b-Qc zpSlk&oUu8^eu}XG$7%wOXjOke@8cZKIYwAGlIQdGG|U$va{QT2%RJk-B$t2MX+<{k z6KZlWEf7C95`Nvi3%>I;^!b(OeJ*EA>irn^4bXPLqp7>mr{~>TpfY2(5n4VL%ti-e zL(&F_;@hUwB)Xg$T|@HfFyZ{CP4`0Ci1uyJLGi2`O-4bjs>?j9?y)cf$r*1aeHs7Z z!NlLL6LfUd1bjcg+=Ndn_Djoif||Ju>yDPtab^r(2^Wm z$g6beELJIO_M+G?aX$`%b_(pJ(MgIV>SnsaOzrKOqlQr1o1i0!h{{;^e}BHxLiOV9 z0x<(;5u19By=ho=_T$7`+_U}NBK3aG?fC=%e%@LKVi1xEzT3S>7NO+$%%pIPk=jY< zYc>Tj z#!7Aug*^*uuU(;v7%9*Pg0LOK)@jf&zeOD#`w#D#ETLG*hR#6FsrV-TKiFoN9QkIo zT7bqxCq2B*tf_x(a-88Nz4^7hiIF)(;DP6@rhFoDg~wpp{&{%t1o-qo54|Ns)PEP) zg+05%$)TWPyYwK&~_6We9S|JM(%#j%hp$;rUY z?xI&#xO%hFD!C+b?zq!?fiw>-Wi_Vk-=iT%NE|JMC>cJ}n7-3|_}{%xRzJ#k8Y3z7 zxjOBHmh%4N2Mg)P3)7H0@n9SC$RU4k3V)_9{Ecl?UibcXp?7fjB=kvgQueC;>1ROL z7(!UMMxFdJ)PE>BXCGHn(kVcJ`F6E!2ee5$_BGg7uXRMr)Y^-$KOu08eN3!v1$j1G z^vIFowE3HP{+NCHm(lS>q2S!qF}MZY2%Ive-JYT>)K?k)3!!#su@F%Fz_IuiJ~dk4 z;>H#I^r5!J^*(`G4$Vnw0`=xUdAmXM!vUAT^H;@5e_lWMAEi5*#&Fz0yvlNUA793M zrKbpU!hPP!O80)5|HHY1o^cc2o<{~2rE$DCvNj#T!Pq~`x;egsn{ZxPF|SqH2CZS# zjxO$!jk-RRR>`UE)jq0HN8wz}I@Rf?^g94oqM(@sg%ho$)>&#aTb zO`G9ssGBK^RfS$DZaS$OX*}o zGw4463U>>C3OoP?cyKTzq#RK7m#YaC@Sm_*{cGrgC7wI9X)P_c?pfM|@c*(l@4u7v z2+|hRuJkPbOEiH$Ef<`hl4*QzO%z@!iP>HwBM%G93V|IdK1Z)|id3!!!lCzrEwGYu zfBXb^f;sj{^Iq4-oS%eV3F3U>P_pp|{S+wvDjx!0WnISf0%x`j1l-{@$rzB4eKZxb z;_IciY_T|S!j=GV?7nD+j=3x+S0cJ6!Fkl1(lLw_UHrH8H9P~ zKF(KC?XG^t&`3OP7EHCD;~Y6Pn0585c5Q4w9~fP@C5w}oKfe-trgWB5-Pm;7+=76| zT=_W5_zSSdgXKS#MjHb#kHT93(PYnviN0Y`^x1%o08ZNWB&c?JpH^5Gn|REmUUwJA zJ-dW=kWWl=h)yLYX1oM3k631m#W6oM$Z4eBv1Jlw~E(a~x-nnrwL%wCPQ^zMw*+ zSME_xEh|LrOI)PN+qLsqdx5*1lrKQkTS#jIUfqrzVe0!MyW&ogf?cK~vT7$Z;A$CO zw3{3Xb?)MjStn?MGld^M`8A&>PACwj^El;<|C*!a$G8a$8i~1i4wof7eJJLB02wMg z^nT`<#5N+ppLs-=8Iv0Ev|Sve-sY1oTO{3Ol}?-pePV z+5?*E-2dVqe*z3J=PchN{~X(Zvbo(Fd1E&YU2Kn+*{hqGKv+i0yR6V;wrwPufRtKuw zUe`y{>0iK*b_mvsK>VJ*A7x4Jj3WnVNj@>_9DWM&4#%#(Re5$yi{v-erPIM_zQ@S{ zYe85#(C-QYqPoCG?|8t%h%Sok@1D>il^2K@s<&#}E=DaC zxNdKn48R@US9%L{R=Bu>+gg7K^1~qP^<-j)MC^uouecgFfJ6y89&#l41X;O&&BCye zZSn?9DoK{~ryF|zF-Zb)JHE?%VDa@|-?=5c{ixv8ttSW;A6L{K=kW}8QEd$h5Nqp} ziHRGUNl;1kGmO_$8;?~36?!1&$qlp^F$4KVAP*5bPx}`(Q)T}ggRJGC>(~jD^=<=T z7aFIuJJnMl<@>f?t%bimf#QxqXoi|3(jKHvCVzcM|`C%7Q&bVU!Eyw%+PV%bK=B2wJzq1U~r;vi}8vwg`LAYUik0_)Nn48Q`S?I*f9Wju`B<9VGb# za5~|v0<#AK0yT!DKL3Zupkh}}*xypNfbF224J))%mwT{euOKHxZen<+*(L3Ra^A-@ zMKg`&j<7*#yBDd$=y0u$5 zVspMCy?I65)hYol1B6M5C~wclswls7OC~nKQvTRp?@VK`G*0_fq+L}w$oJ&!s7o+w@+Zi9g?+2OLpm&_^!2(w}Ef!?JbNauPsqm8DMm2jB`B1$9gr#ten*k8K z%B*VBzJKa6+m^JM3jj5kq}N|)w%B{}4v%LYi(z^4xlTUKKlbe+)KKA0W(&7o z8%`Q9<(9PN!{#fJ261kn8bYs3#au-hJEtg9@=c4k|ARE=>i5x#61O@P6|%NI5A9$O zAF`q+=G>?GB#|DqKA?qljG=s}Hk`tjY(CO;;7AiQFWC2QP4S#)J1{A#DK%pt?f|Zr z5C4uf4{|QKmTsy?BseW~t=ozyNt0>EJM&n38x&+!)I@Dq&UL5pml+@bw7$5+^IB3C zQG3HyrY?PR=F?o0rV0=p?Vh>avghQ^BwB6l1B0%+C_y{8Jsf=U>S+riazt6NQVpYFM7M}@KSDI?pM#FZ@ripFFl|DV8B`MYa zj6GVVTm&{hTBG|g5ajl<{-^#an}H+AKTKnhOL3RdAUP|_T29IoruZ~-9v$@y>P6per96`ub+@Y|e! z2&$$9cxvi1b+9_An0Tka8i^U$|2}Agx6l)JOHJbMtdVK1A_I9c1K`!79eh01nR+etzDeH(7)A43Nnje8Z zIh**+7%%;_2(?t(twk{@*93J-EF%L-O+Kp?<)UobYG0!IBiaKBp;$U^ zQ?+7=uClo|kM+gGL0?5qAwtjhA&iB$Xv2QQ&;55<@W#*H?Z0<2hT3xf!;=BpLi{5p z(89t0k8s_*28I6_2l?D2T~1~s950KI;8YbJ#ho+<1&1UhVE9ag6$b-HxCrIlhh)n5 zKqF|4?7{oFhJFj^{~tLu$e?ulp_|Lai^4y0m`2i zkcbE+C@95J_i&d1wVeM7POVZYP7tt$K4vW9zpf*c&fOczYhsXLG6tq~elb$`)9Yn@ z+QZSik%5fQH={b2#%7>tFt|{sH!{$DA5v&mk(A{^Fpy$tyI#3VA5|=0)xQK}DP`O1 zIoJS!Z=i zk~u+i#K%zs@IY$Je=z_ zM0n$P^OELr@~Zx;)U=wJSBG!&51m02^4r1J^n0!R1d0;@z}@6gb9uz z^JmV{N_kdZ`LDZ@=f#H1@~gQZwZ7_hVH3YeOWvfMFn7Ge#f#x{F+ol+=jQ6opsF(& zoT@rmxcmRe1fXA9+u~1H2v61J7XQ-Yv9QslgQ+J*B0Bsnb|&eegRsP>A0^_5aq=;o z6r%9iDly`M>wPo03L;DTkNjgtsVPjgpBe%6+jDj$d3PN(1$y&}zH7C9-qpMhEBZMh z0S*R6MObTc>oH_hI;+DS?XZ=ox4h1VUWw(Y!qpR@c=k0{>{E{17xH zEy;+u;xj0gJue(Cc8ouzcbwx1 zoHIJqera@U6l$P;i^Y~kU$^TFuis0c2-hoO@ymh)ns`d0g*^Qsh&Qha!&(ZxRtk`o z&lwD_ezf|4!QeB~b4#LX5_#Xv#lWB5@`FGjx=bRpnVf8moMF4&8FH?5@vs00d9qX;({nDJo>E7JsI`1*~W`BqM2cK5A zF7r%J=>V7^mhI^&5)bR0&z}cj01cwx&+o0CTI$(O7^|rJgb)H%h@c1(;i74y(JRrD z-TR#Rt&ST4O#1a4w@pS8Gz*kr24=@v3_}Gz=@<6iM5@N?eXaZt`bLbeqaEG!RRF4f zMV>e{@1Rg#v-8rZ?F`j%nQSk|0%2ZSree&Cg^pf95}0Eem%6;gwk55E@7z9fPlZkJ zh>XIDf2m-3IX@}XZ(Fs^=o?h*Cmzj4U<)OzN`=4*6boqElWLekc<-}Nzwe+pI9`V} z^{cOAgAI-yM4i3SWM#M1bC1@bvYlA{1lLz60@lLsmZ&AwbR6Fk7H(_=?>$4KH;yQo z@P3HtithLUT&LRSWtzfX@&}U_@L_*adR_Lvb&~Xu{8e z83o(Wp9RwCfC;f6*$3x2#bs+Ncl^vott&N77rbJ}-=!%*lvvtV!%Ex1eNR!!wdc&0t|$|F|<8Z{D47Rwtyeq!7lG`{maF*Jpmj zeVF;}oO|e(pOOzwm3VYbeo*`c%P;XHII?d;1193W0bG2?=4oGFc=BI=YJ>!h7e>41 z%F)qGir)RI&o|I<@|NvY>HsT_1rZZ}@hU(ssD67pNalUNgTQu6{_1 z18w{Ff)80RS6|7+)wCIq@9+2+<2P{ss-M7{d0E)eD8}{6q+cMAo{Q9LFyO&xkUm@- za(wrfF3=0kyQ$<`|?_`k)# zFcKp*@YbR$^5vVb?+Wp<8#2l{Tgun3q|ZGbZ=yvi@q4+?>P}Wt_$P$ONAYJGep3A( ziE4O0?vh_`LU&P;Yq4A|sycTl+{9Iv5@1i$;jy6~SB5s%e3}$5?hTFpI3$Knk|hxU zLnu=pS?|UlK8ON!1^F1C%x$2{eOH=_$+zXu^uBIS7)x|KR9WGW2=9l}uEWN4ZVvCo zY!Lo>pAY4wcb>)9tXb+Qi22--?_^peBufLGx=Z68a(JrF12kCwxPmAE(t{5T+qyev zJqnNT(#KJe(%+hpzN|c+%f~qkYDoc}0@FA7`_~t?MNUR4jQiiRj2#f!KDqb!B9yo+ zG&9nYeoF?E<$BQ-&BS$gg>ub$>e z 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

{S6Oy32XpL;C)}f6ITJjLG_-xZt-^dV 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 Date: Sat, 29 Aug 2015 14:44:49 -0400 Subject: [PATCH 3/8] Update README.md --- README.md | 216 +----------------------------------------------------- 1 file changed, 2 insertions(+), 214 deletions(-) diff --git a/README.md b/README.md index 3d9de45..e6551e3 100644 --- a/README.md +++ b/README.md @@ -3,222 +3,10 @@ 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) +* Bradley Crusco +* Tested on: Windows 10, i7-3770K @ 3.50GHz 16GB, 2 x GTX 980 4096MB (Personal Computer) ### (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](https://developer.nvidia.com/cuda-downloads?sid=925343). - * 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.0` - * 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 7.0*. - * *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*. -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! From e908285e7d170064f64c207e116beffc17ae33b4 Mon Sep 17 00:00:00 2001 From: Bradley Crusco Date: Sat, 29 Aug 2015 14:46:31 -0400 Subject: [PATCH 4/8] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index e6551e3..24a116e 100644 --- a/README.md +++ b/README.md @@ -10,3 +10,5 @@ CUDA Getting Started Include screenshots, analysis, etc. (Remember, this is public, so don't put anything here that you don't want to share with the world.) + +![](images/Project0.png From d85149ac598fc1134198c3c99bd9e3ebdd35075a Mon Sep 17 00:00:00 2001 From: Bradley Crusco Date: Sat, 29 Aug 2015 14:47:56 -0400 Subject: [PATCH 5/8] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 24a116e..cc80629 100644 --- a/README.md +++ b/README.md @@ -11,4 +11,4 @@ CUDA Getting Started Include screenshots, analysis, etc. (Remember, this is public, so don't put anything here that you don't want to share with the world.) -![](images/Project0.png +![](images/Project0.png) From 9ca0b9051ba80104796680fb4a24cffbf0ac8a33 Mon Sep 17 00:00:00 2001 From: Bradley Crusco Date: Sat, 29 Aug 2015 14:49:35 -0400 Subject: [PATCH 6/8] Update README.md --- README.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index cc80629..01d1b01 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,6 @@ CUDA Getting Started * Bradley Crusco * Tested on: Windows 10, i7-3770K @ 3.50GHz 16GB, 2 x GTX 980 4096MB (Personal Computer) -### (TODO: Your README) +![](images/Project0.png "The Application Running") -Include screenshots, analysis, etc. (Remember, this is public, so don't put anything here that you don't want to -share with the world.) - -![](images/Project0.png) +![](images/Project0 Profiling.png "The Application Running") From 716cc1ef11957c6919a09b606d03484a69f82153 Mon Sep 17 00:00:00 2001 From: Bradley Crusco Date: Sat, 29 Aug 2015 14:51:28 -0400 Subject: [PATCH 7/8] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 01d1b01..bc63030 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,8 @@ CUDA Getting Started * Bradley Crusco * Tested on: Windows 10, i7-3770K @ 3.50GHz 16GB, 2 x GTX 980 4096MB (Personal Computer) +**Application Running** ![](images/Project0.png "The Application Running") -![](images/Project0 Profiling.png "The Application Running") +**NSight Cudo Profiling Timeline** +![](images/Project0 Profiling.png "The Application NSight Profiling") From 5f918210ebc10f1d6e822a5eb147c4539afe3220 Mon Sep 17 00:00:00 2001 From: Bradley Crusco Date: Sat, 29 Aug 2015 14:51:41 -0400 Subject: [PATCH 8/8] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bc63030..b27bcdd 100644 --- a/README.md +++ b/README.md @@ -9,5 +9,5 @@ CUDA Getting Started **Application Running** ![](images/Project0.png "The Application Running") -**NSight Cudo Profiling Timeline** +**NSight CUDA Profiling Timeline** ![](images/Project0 Profiling.png "The Application NSight Profiling")