ࡱ> `!4yS   ȽXJkxcdd``d!0 ĜL0##0KQ* Wä2AA?H1Zc@øjx|K2B* R\``0I3@=CX6(Kmo'$^G;"xZ]h\E>f&n6?$6IVZ[T0Ж⦥Pڂ(B"=Z0}iї9Ξ{4]N̜9s9މאJ~VH}n< p.:P ⱑ,nCېH!?n &UZ/..B oCJpU-Hqm6`Zeۘcc j{xzwoޏfę-?rH&Y;.pZ&e1+'7_s|S_s|S ;Y\?==3?o uH7걨мa%Fcmߨ"`.㖣͊`7:\&-YL73D}Bco>${B1aO ~4iO {j NsE9(vver! ;݊1*ΥmzmƤ5=c36.Amy<+\; ݵ.:t"G^#Xsѥ 3n_AyH0J?XiH7 .b͂KW?*G-&tHvZ^^mkzQՏ~?$ V:fPld]kg>S Q/\sd=p ^16>8> S嬻[ skR/'\(߰uWԗO+w i+ cPMWߔ3 /s)\Jwc B$z:ߙ 1a6BG/$ωu*VXlVJcAc l橺,6uXY?Cy}¬vnnZmZA؍k6{_=T#XR#g*-AcK zU~1 *^a&jAz!O5O`xݕCj}E2L͋نR);#7AC,wGPrܧ} #@n#-NCn1w"}b4Oy񭁎J|bBHa{HLqQU]n~6#5{1ҦCYH#5$BfQ |t)1>Ͼ%bsLbzI + dwv;~8qJ),+p}w/d-ghiT X߫ cP T×#D4[4֟KYVlw;(z 6PY!F6_ĩ@ ~bJ6}TuV>"9޻D@&cbGݝpw|\=, 韝{+/#].Aw9ap}-Kz;jo2/bzC^-z81rWh#x&bcL*F31Zkh|9!rш;lSGSP/e6)5Ɗ+='c2Ys 7@=L2 Ao_lXAd(/EP!xZ]hE>&k$JZ^Jkb\Bl֠`iBBM*ئ}P|*CA*/svNNvn{.3g|3Upkz;(j*A\ Љd.؀nO<-}WMU57ERQϹ\V-HI~F.粹*Lk t yae_o}ӵHhFk '=\b7X ꌶrבceXfdkokof?/_<i2mQ~?xK1ŠYA C(OY=݈vhGs1=ELcj{!Bƨ   ~ ~JSEs>!q6Czj,e2YsIJ_qvēŰuvmukmSjta-ZB2sٹ]H cvj 5ihU3ǿ]DG2fupRNt4t [x-Q`ۂt]x4x9VQQUT0ѽH =4!0y*ivwye t ̷̧Lͳ lAMC,XܡXr;f!5D~#@n,vmrbm ѷn Kn^r[y=']b4Oy*bsQ{xnbgU6?-u Ut*6cyW ̋W8ӽ~%UF W#fNr)Ǐܐ\XҘ=gS鈱kk̟O3k; cb"c*v$\:Xe &+!ЮwzF!#Vys 4:ꁉV@&3}&U\Kg9s_(_4C ~EΗ&rG9r|>g{Qpet ;^=ۻ8/.8z 24PZU~|1{|ӼB~<{qnP;Ι9J1F`-t%sBϠ\dTG#~|\Ig38Q֡9XrCT{ wqP]y*pɘf23F QLdr0\zt8 u"mtXlrڝB٧cwf:]Jf؊5l4ӊ%dblb"0` & / 4?QCL jJ|Yϙ9{{:3;t;sϽ{w9w*؇TtE\µj@} Z,jd`%ٳ6hCiG yUSpYMW"9 ~)Ϩ܅`\6Wi.ca$/뭯߰b ͈={Ļ[#f v!^v]:rLꂜlPM}Mgsŋg[BF-'o)X16H}@)nm7ҷu& ߷a3'i~2DyBm:${Bq~FGDX@S*xWc)ΚC&e⌛Cx'|/hSk.`]oڦ/oV4f?cmٌ?}(/2k=O=ZG*Wl Y Hgyar>#"ɌXNF:4mvs=y{\,[OƲ'ӺNHUAiYr~[)Iү`mVv߶5u[31&Y/{1 K|[t:V[sIhH(K]˷%$>S?:IXY>ۂVlHo2):H>ϓ%;hj]x =fLO ~F3?"#?,Â?  ߫B&\}4fS_ZƼvE[5R__k|l//w۵?lg4I?m'Ƴ\OW֫ȵ Yg웼t+; E4FO?zt`ʙ^"# :Jm8)tzw=mUiͰMx-Q`ۂt]x6x9VQ*QUT 0ѽH!=t^`XT\! @2 O! ao gَrGYvrCnGC,w{ܡXre[Ɛo; =܂4OG(8h*U*puޫXZ:x}(Wgsc2|Z>:=^*2/^sLwcW1/^-mp9˥?6sCbJSZVIcIc M#R1>̟R;ӛc?8'EƢyבCz#>~*v$\M:mXe F+!Ю w<k9_G~bW`Vedἢ5Қz+I޻/w{yDr}Oa"Kn# 9tCS3n=B){8Vvnzηwq^` \qFehSZW~|)|Ӽb~k y\wlݠqw3!sS Ecʍ[ J焞Aa888z3bq%q]GvGvXr` r%EBu=yo&cX:¸:^W20:avFA:Ͱt9peO/yBubf#~Rw1lRme-8XIN)^Te7xZ@=[)ňl4[C`(/E9!xZohUw\k$O*H!Mrm?ZJJib&^RhZ xR@C"T("E -~~")"ęyݽMrל{L}ye2ydmm4Pp"P(qYHQlnA(hBz u04S0rȫbu\^ZZ.oFsUH1.yUPOca%[_8HhFYna7߉@.ī3ˣFαsޑٿٿ\ڵG_C:a~>xۋDJa `/֤Q9nvhέGx_xi}2mH1%S ~'?Y`{մĩ5FXI+ֈU90"1I|."kӝS_VۧNIs:}2ֶ,R>2Ɩ֑cGy_Ekk:ryeǖ5N=/fZ^ :{Z7ECXPяecl({{Z7ҩi궈5Qяt+d61IrO)ڧ%:뼱:ay̝ jJ]cκnWU{=Or4woLbS8S1Ti&bJ5^g:&HX.e7&:@d.%;ޙi)PO?oM>;oT.&HJLo9߿7>̙Pgrד5uVм|q 7~q>:bae5VLLW);Svs q{dg^{Oռ 9ܯ^IRkȳ;!l(|_o;/yUy`:[VYVeb SQ@<C;0 Equation.30,Microsoft Equation 3.00A$>@<C;0 Equation.30,Microsoft Equation 3.00#B803@0<<0 Excel.Chart.802803@0<<0 Microsoft Excel0 %D803@0<<0 Excel.Chart.802803@0<<0 Microsoft Excel0,E803@0<<0 Excel.Chart.802803@0<<0 Microsoft Excel0-F803@0<<0 Excel.Chart.802803@0<<0 Microsoft Excel/ 0DTimes New Roman3|dv 0|( 0DWingdingsRoman3|dv 0|( 0 DArialngsRoman3|dv 0|( 0"0DTimesNewRoman,Bolddv 0|( 0@DTimes New Roman CYRdv 0|( 0PDCourierw Roman CYRdv 0|( 0`DCourier-ObliqueCYRdv 0|( 0 ` .  @n?" dd@  @@``  B 7s('          42$4yS "$CX6(Kmo"$2 Ao_lXAdT"$*PsL ]kT$$"$[)ňl4[C? 00 f3PP@87 ӵʚ;2Nʚ;g46d6dv 0ptppp@ <4!d!d` 0,4<4dddd` 0,4? %I> R Intel Integrated Performance Primitives for Intel Architecture Small Matrices RS@666!J+CA52 ;53 OG5A;02>28G =5?@>?5B@>2A:89 =0F8>=0;L=K9 #=825@A8B5B 0D54@0: 2B><0B870F88 ?@>5:B8@>20=8O !?5F80;L=>ABL: "5E=>;>388 8 A@54AB20 B5;5:><<C=8:0F89 SummerSchool2003 (11.07.2003-20.08.2003) 86=89 >23>@>4 23CAB 2003b_'" H;0= 4>:;040: 1)0:0O 1K;0 ?>AB02;5=0 7040G0. 1.1)@>1;5<K, 2>7=8:H85 A @5H5=85< MB>9 7040G8. 2) 1I89 >17>@ 181;8>B5:8 Integrated Performance Primitives. 2.1) 7 G53> A>AB>8B IPP. 2.2) @8=OBK5 >1>7=0G5=8O. 3) 'B> B0:>5 IPPM. 3.1) ;O G53> >=0. 3.2) !>AB02 181;8>B5:8 IPPM. 4) @>3@0<<=0O @50;870F8O 5) !@02=8B5;L=K5 E0@0:B5@8AB8:8 DC=:F89 8 @5D5@5=A :>40. 6) K2>4K.ZuZZZ 0 50S x! +>040G0. 17>@ >1I8E ?>=OB89 181;8>B5:8 Integrated Performance Primitives. 7CG5=85 =07=0G5=8O 8 A>AB020 181;8>B5:8 IPPM. 50;870F8O @5D5@5=A :>4>2 0;3>@8B<>2 >1@01>B:8 25:B>@>2 0=0;>38G=KE DC=:F8O< 181;8>B5:8 IPPM. !@02=5=85 ?@>872>48-B5;L=>AB8 @5D5@5=A :>4>2 8 DC=:F89 IPPM =0 @07=KE ?;0BD>@<0E PentiumIII PentiumIV. =0;87 8 >1@01>B:0 ?>;CG5==KE 40==KE.^$!!'!!'! $) E ( n @>1;5<K.  @57C;LB0B5 2>7=8:0NB A;54CNI85 ?@>1;5<K: 0: C9B8 >B 7028A8<>AB8 <=>3>7040G=>9 !. 0:8< >1@07>< A@02=8BL 40==K5 =0 @07=KE ?;0BD>@<0E. 0:85 @5D5@5=A DC=:F88 =5>1E>48<K. b Z+Z -ZZ$ $& Integrated Performance Primitives. @8<5=5=85 IPP: ?>72>;O5B ?@8;>65=8N @01>B0BL 1KAB@55.\$8 !#  )6!( IPP @8=OBK5 >1>7=0G5=8O. 1I89 284: ipp<data-domain><name>_<datatype>[_<descriptor>](<arguments>);H ?$  $ !!!!## ###### ## ##x>Small Matrices ROI  Region of Interesting =5>1E>48< 4;O @01>BK A >3@><=K<8 <0AA820<8 40==KE 7 G53> A>AB>8B: ;351@0 25:B>@>2 ;351@0 <0B@8FzoZ  -Z ;""d 50;870F8O DC=:F88 IPPM 8 @5D5@5=A :>40 =0 ?@8<5@5 A;>65=8O 25:B>@>2. int main() { int k=5, i, c; Ipp32f* m = new Ipp32f [k]; Ipp32f* p = new Ipp32f [k]; Ipp32f* dest = new Ipp32f [k]; unsigned __int64 t1,t2,t3,t4,t5,t6; double to1,to2,to3,min1,min2,min3; //--------------------------------------------------------------------------------- . . .:G D $w L ;O IPP =5>1E>48<> 70?CAB8BL 48A?5BG5@. if (ippStaticInitBest() == ippStsNoErr){ IppCpuType cpu = ippCoreGetCpuType(); char* str; switch(cpu) { case ippCpuPIII: {str = "Intel Pentium III"; break;} case ippCpuP4: {str = "Intel Pentium 4"; break;} case ippCpuP4HT:{str = "Intel Pentium 4HT";break;} case ippCpuP4HT2:{str = "Intel Pentium 4HT";break;} case ippCpuUnknown:{str = "Unknown Intel CPU";break;} default: {str = "Non intel CPU";break;} } printf("Load IPP extension with best perfomance: %s; (kode = %i)\n", str, cpu); }else {printf("Load generic IPP code"); } //------------------------------------------------------------------------ . . .X)~$ ~~             X ( 50;870F8O <5B>48:8 CE>40 >B 7028A8<>AB8 ?0@0;;5;L=>AB8 !. for(c=0;c<100000000;c++) { for (i=0; i<k ; i++) { m[i]=(float)rand()/1000; p[i]=(float)rand()/1000; dest[i]=0; } t1=GetTick(); //=========================================== ippmAdd_vv_32f ( m, p, dest, k); //=========================================== t2=GetTick(); to1=t2-t1; if (to1 < min1 | c==0) min1=to1;. . . .j=ZXZ$  'X=  49! : 50;870F8O <5B>48:8. for(c=0;c<100000000;c++) { . . . t3=GetTick();// 15@QBAO B5:CI85 7=0G5=85 B0:B>2 87 A8AB5<K //============================================= ippmAdd_vv_32f_6x1 (m, p, dest);// 2K7>2 ippm - DC=:F88 //============================================== t4=GetTick();// 15@QBAO B5:CI85 7=0G5=85 B0:B>2 87 A8AB5<K to2=t4-t3; // :>;8G5AB2> B0:B>2 ?@>F5AA>@0 4;O 40==>9 DC=:F88 if (to2 < min2 | c==0) min2=to2;// A@02=5=85 A ?@54K4CI8< 7=0G5=85< t5=GetTick(); // 15@QBAO B5:CI85 7=0G5=85 B0:B>2 87 A8AB5<K //============================================= add_vv (m2, p2, dest2, k);// 2K27>2 @5D5@=A :>40 //============================================= t6=GetTick(); // 15@QBAO B5:CI85 7=0G5=85 B0:B>2 87 A8AB5<K to3=t6-t5; if (to3 < min3 | c==0) min3=to3; } . . .4Z  +UC+0%!*PC*4.*/ 0+ 0!*//* !  6v803@0<<0 @57C;LB0B>2 3@C?? 4;O Intel Pentium III 450 MGz. 6<  (  803@0<<0 @57C;LB0B>2 3@C??K !2 =0 ?;0BD>@<5 PIII 450 MGz 8 PIV 1.3 MGz.:J$ 'H. . K2>4K. >;CG05BAO, 2 ?@>F5=B=>< A>>B=>H5=88, DC=:F8O IPPM 459AB28O =04 25:B>@0<8, <5=LH5, 2 A@54=5< =0 35%, 8A?>;L7C5B @5AC@AK ?@>F5AA>@0, G5< 5A;8 8A?>;L7>20BL 0=0;>38G=CN @5D5@5=A DC=:F8N. !?5F80;878@>20==0O DC=:F8O ?>4 >?@545;Q==K9 25:B>@ 2 A@54=5< =0 90% 2K83@K205B C @5D5@=A 0=0;>30. A;8 2 459AB288 DC=:F88 ?@8ACBAB2CNB >?5@0F88 C<=>65=8O, B> @57C;LB0B 4>E>48B 4> 110%. A;8 8A?>;L7>20BL @01>BC A 1>;LH8<8 25:B>@0<8, B> @57C;LB0B @0ABQB ?> AB5?5=8 2>7@0AB0=8O @07<5@=>AB8 <0B@8FK.B$  T7s[0<!?0A81> 70 2=8<0=85! >?@>AK?8$f3$ ( /   " ) / 1  ` 33ff̙` 3f3f` ___>?" dd@,?nKd@ u< t@ " d`  n?" dd@   @@``@n?" dd@  @@``PV    @ ` `p>> &'t(   T   "r  B2? N 0f  0ff  6?0Qf  6?0Bf  6?0qf  6?0bf   6?0f   6?0"f   6?0f   6?0Cf   6?03 f  6?0c f  6?0 S f  6?0 f  6?0 u f  6?0  f  6?04 f  6?0 $ f  6?0T f  6?0 Ef  6?0vf  6?0ff  6?0f  6?0%f  6?0ff  6?0Vf  6?0f  6?0vf  6?0f   6?07f ! 6?0' " T耼gֳgֳ ?"P  Z"1@075F 703>;>2:0 $ T,gֳgֳ ?"`  R*  % T䉼gֳgֳ ?"`   T*  & Tgֳgֳ ?"`@  T* n ' 0t "  1@075F B5:AB0 B>@>9 C@>25=L "@5B89 C@>25=L '5B25@BK9 C@>25=L OBK9 C@>25=LMT  <޽h? ? 33ff̙ !8=85 B>=0  @&& (    T    "r   B2? N 0g   0gf   6?0Qf   6?0Cf   6?0qf   6?0cf   6?0f   6?0"f   6?0f   6?0Df   6?03 f   6?0d f   6?0 S f   6?0 f   6?0 u f   6?0  f   6?04 f   6?0 $ f   6?0T f   6?0 Ff   6?0vf   6?0ff   6?0f   6?0&f   6?0gf   6?0Vf   6?0f   6?0vf   6?0f   6?07f !  6?0' " Tԕgֳgֳ ?"p  Z"1@075F 703>;>2:0 # Ntٕgֳgֳ ?" @   `(1@075F ?>4703>;>2:0 $ T ܕgֳgֳ ?"`  V*  % Tgֳgֳ ?"`   X*  & Tgֳgֳ ?"`@  X* T  <޽h? ? 33ff̙0  d(    0#. P   . T*   0'.    . V* d  c $ ?  .`  0+.  @ . 1@075F B5:AB0 B>@>9 C@>25=L "@5B89 C@>25=L '5B25@BK9 C@>25=L OBK9 C@>25=LM  60. `P  . T*   6|4. `  . V* H  0޽h ? ̙33 0$(  r  S " `0  r  S <# @   H  0޽h ? 33ff̙  0(p(  p p S ڼ'`P  "PpH p 0޽h ? 33ff̙j  (  r  S 0'P  H  0޽h ? 33ff̙  f^(  x  c $'p  >  0D @ ,$D` 0 int v_add (float *a, float* b,float* c, int k) { int i; for (i=0; i<k; i++) { c[i]= a[i]+ b[i]; } return 0; } int main() { & & & & & GetTick(); //=============== Add_vv(a,b,c,r); //=============== GetTick(); & & & & & & .. } >0nKZu$jt,   'H  0޽h ? 33ff̙x  ( (  x  c $'    0 @0 ,$D: 0 l :;NG05B 2 A51O : 1) >1@01>B:0 2845> ?@>F5AA>2 8 87>1@065=8O (ippi) 2) >1@01>B:8 A83=0;>2 (ipps) 3) >1@01>B:0 <0;5=L:8E <0B@8F (ippm)  nKw(nK$  '###!#H?"H  0޽h ? 33ff̙  `X(    c $R'0<$D 0     0Z 0@ ,$D' 0 xd @8<5@: ippmAdd_vac_32f_S2 (const Ipp32f* pSrc); P3 nK "   H  0޽h ? 33ff̙    ~  (    c $C'P<$D 0  b  0t  ` ,$D 0 59AB28O =04 25:B>@0<8: 1) A;>65=85 25:B>@>2 Add. 2) 2KG8B0=85 87 25:B>@0 :>=AB0=BK Sub. 3) dst[i]=c*src1 [i]+src2 [i] Saxpy. 4) ?5@5<=>65=85 25:B>@0 =0 G8A;> Mul. 5) A:0;O@=>5 ?@>872545=85 25:B>@>2 CrossProduct. 6) dst[i]=!C<< i (src1[i]+src2[i]) DotProduct. 7) A = sqrt(!C<< i (src[i]*src[i])) L2Norm. 8) dst[i] = src1[i]*c+src2[i]*d Lcomb.0nKZC0nKZN0 -KZ0nKZ  !!!#!!!!!!!,!!!# !!!$!!! !"#  $`  c $A ??, d  `  c $A ??, d  H  0޽h ? 33ff̙  P(    c $+' <$D 0  l  0  `,$D' 0 R?8A0=85 ?5@5<5==KE 4;O 2A59 3@C??K >4=>.@* nK! *H  0޽h ? 33ff̙  LD(    c $d'P<$D 0  H  0޽h ? 33ff̙  LD(    c $'P<$D 0  H  0޽h ? 33ff̙   LD(    c $' <$D 0  H  0޽h ? 33ff̙   p\(    c $l' <$D 0  r  S ("   ~  BA ??0 x  <A  ?0  H  0޽h ? 33ff̙   ZR`(    c $p'P<$D 0  R  s *R  s *CCx   <A ?p` R  s *,x  <A ?0 ` H  0޽h ? 33ff̙P    (    c $d'P<$D 0  R  s *R  s *CCH  0޽h ? 33ff̙P   P(    c $H' <$D 0  R  s *R  s *CCH  0޽h ? 33ff̙0 @b(  X  C    .  S \. @  . d:@028;L=0O ?>AB0=>2:0 7040G8.H  0޽h ? ̙330 0h(  X  C    .  S V. @  . j@!2>8<8 A;>20<8. @028;L=> 1C45B.!H  0޽h ? ̙330 Pn(  ^ S    . c $3. @  . d:@028;L=0O ?>AB0=>2:0 7040G8.H  0޽h ? ̙330 `n(  ^ S    . c $dd. @  . d:@028;L=0O ?>AB0=>2:0 7040G8.H  0޽h ? ̙330 pn(  ^ S    . c $j. @  . d:@028;L=0O ?>AB0=>2:0 7040G8.H  0޽h ? ̙330 n(  ^ S    . c $0.. @  . d:@028;L=0O ?>AB0=>2:0 7040G8.H  0޽h ? ̙330 n(  ^ S    . c $t. @  . d:@028;L=0O ?>AB0=>2:0 7040G8.H  0޽h ? ̙33 0 n(  ^ S    . c $z. @  . d:@028;L=0O ?>AB0=>2:0 7040G8.H  0޽h ? ̙33 0 n(  ^ S    . c $. @  . d:@028;L=0O ?>AB0=>2:0 7040G8.H  0޽h ? ̙33 0 n(  ^ S    . c $@. @  . d:@028;L=0O ?>AB0=>2:0 7040G8.H  0޽h ? ̙33 0 n(  ^ S    . c $. @  . d:@028;L=0O ?>AB0=>2:0 7040G8.H  0޽h ? ̙33 0 n(  ^ S    . c $. @  . d:@028;L=0O ?>AB0=>2:0 7040G8.H  0޽h ? ̙330 n(  ^ S    . c $. @  . d:@028;L=0O ?>AB0=>2:0 7040G8.H  0޽h ? ̙330 n(  ^ S    . c $,. @  . d:@028;L=0O ?>AB0=>2:0 7040G8.H  0޽h ? ̙33\ xp^RЀ3ÿ lHbP  LPÄ!1 4axĐ% y@( XyT0cH!u10#3+SrRIp101"X}" 0e(#!dԧALPC> P`?ȭ0;Am4LQ@0a_WsSጩWbWs?o?ݦ_}wI{y_Hf&秕(&d)0\b @>grS!~Xy^M˅V:@3 4_݁%9yB`9d@ ;TN`iHbq3t0)0)0LPcg9e@>t 7T obIFHe `r1@Cg=^!?+٨}fE^L?zrWM`Sbg7q9ӏ颗f|:ἁ=W$;%9Y•!Xg<`=U*+C9=W($j?PU^ xp^RЀ3ÿ lHbP  LPÄ!1 4axĐ% y@( XyT0cH!u10#3+SrRIp101"X}" 0e(#!d@> f? `H<An}e?@ƀ(F Y~_Q3MAΟ3^Mr]ľx|nvv 1S 3$}q ᛙ\_VZXX`gr 1p01M.a {5]?,na:ׇJ?[L JϠ0E`9N` IPJd bdf1J@ŸxA&3HA@2 ~d UXRY,D 9yge/$Wh{6j#%r;P=" oCJ7fFFfF`c^&S~&)BءToo1OP4Q-<ŇG QB(((a^ RRRRRRRRR2 e8(P(gF2ex (Q&LF2LjPԠLGE2e(u(F2e( ( P444,BYr.PGY e9 (BY Q>r(C<%(\aSٱ k;E3|?;jQy{ڃ3|*s%:#wz}ҙx@U6\ 1a+ "Om CnG]_)IG_(7>:7Po?=2s`]T}!h'}>}ё Z ]jYw9{[ o?zǻ6زm]k7'ׯcqosŽvHqu|3[g(ųxǶ+ωfN=\l_mN\mqʤ|:a }lfX߶#06A+\\볛0dP,-aQ+h;vLt?&bK!%ľ7, }KO]g:Q>%gQg,ϒNo6q=6GhfM (%XiZ4O9F3j Ct>u:s1ٵn 7~hE+v꽊Ê`FU̮0ˬG >eLÚC(~_ B` ,!l}ßTԣCLX"L ׸-ٺu][nٹvdYjBDqiBi@Yll7fh<Ău"E |&;$Zc+@D6n&';щ|r-WvlYcvqƝDDTӗo,K-0رe6SLjTWB3 챊yk]9yX69c)ec[mPf爫M-d;>\V{kdm×s/b>A~.S<JƄ~5bj*Kum-lu "44vFˤ g4͇YU]*`u!t=_7{{/ ӹ f?Sb/`a/8#^N `[+ {̧g S@c{D$^n5R:!4R`j KD .B)9ޔQ54aҌXӣٵa>078mgǴB/bl<ƲB頸={yR܋t_F=xMɱS1Ҫ a>B/JCDu_xڄ/t #Ψ1+քRFQd(%3 ̷&!浘ϡg*=tl%PE6_fd|u |iY+♉Y iUI% XiRQ8H67QX)lQΚ.vFѕa p%$uz<ha(0ц?ŧ2I(jx|\%1k4髨[|帯_E^j40V!K+ xQ]a%H)0fy4zUqt5pxe.d?:v֞Wd{a q jš8l!9!Ψ;cҵ`ڰMʑOو" i%Ҁcߐ+`kT#UQ: =(E#C0iA9v^{"4 [sd-!˜9$; ZM*|(_㉬T3؁}/~<=lzufrTLeBe9>v-؈G-ajņc%|-!|^6}0:(;em+[d>tB|8-uE۩pXbo #{!P[UKB& Z5V\'-3[}.VMpcno%y-[,-,܂aC , -†-"nEa-0na,–[UXQeosJ1>A+S2~g< `]'BgKKXBgTY}SRo1_k7x&AEzw]tx<[ӽIsБt)|zthPFQ:z/Q u/sLGuehwБtsMV">+DyLc:6>>#QB_c>V~~$dӑ/1[tF#t q]R :2 ˨W!V!J 91,<%٪ ?g1[].Qࠣ鈇O Sh-BGB#xAak#,*$*#t3l3AGEȇCg:ᙎG3 #$D^u #Xl`܃E$[9(b:cᙎd[3OL|;(f:(~JxnV [8(a: TU)ڴJt2L_ ?eQ^ݲSAGWJtG9ӡ ?<߾Q鈇g:?b!tTH`:d LGe,<سdJ#"T|":*xx.{JD>|T1+AGQ tt݃gAD<{4P1qORNHDA~4S\:̂V@W{^g=b)Qz<=S- {hy,5V-Y!C[Lwh1*RI}UjJm>zР- =>\+{5rvw#طIcPc⽰0$P M|IyeCoOtp4%.<ӍqӃ6m/0Ox=$) ?m1h\7T>Sk6|C&Kt\sؔ|M D+aS*1;N{y`xw[`^Ί$;cYK̷ykaЕ/3!,?눧HO }wVh.v t.J bp/Di@2$>-S:Ӭ&Gw*Iq fІ HI܍Ƒg B'(_3ojk{TÿI252D9ýDytV&_6n`Η|: pAS"l-r^ž{YJW9x_5$]};i{iN{6xkAZs / ?aTB(_Nx/xi fϭ:BztV%}XZ}S|Ö aw9{{UJox9$~Z)z44 ޢs2E$քMx7k-bN?7{wAwoN E3^Wx.}t6R(GC׿X}l/?ԃ׳xy>Gr EY4P<%Ӊ{#wנ|a|N"*`&̏ /9` fX{~H}3|Ƒg :pbs 5bRK / ,)0~t6Z vpv05j)&g;%%Ҭ4<%Ӊ{#1ex+ `* s_Ԇ$oFt ۠hf gpA{X5߬5wW/G $JU39?O+v y@Aۮ?V8l )F⺷ҏ@VuG!)$1)6/-W\/B{S߈n3b_r/?,l~1$ok/A=' {Lo ^z?rBh8}ktiw^ 9'.c5G42pbF__&PMgO>I:,~J KB3'g o%1i قYX[O;ipK֦dG1L7Q}Y:$'i@a`6IQri#5֬5wX{n!m*u>[mby|i(_;nK(߉Yc-+k0Yu TKT޿55 ZYK<gNXztV-Wgm:Mbz hڛ29,.vNف7PN؝bϪ?cf+bwڨnӴ~1Vbo$T{D@}-?`!fՃyE[Nuikk!k={#家gRs =Y\>GJȗ W1RZz1}Sw/i(Zsi8]4,uT,u_6ܯ8ܧ9ݾǞpeރY=$ܛDr 3YN9K<)C9Y){| == yCNgwB6?p?j깛 ?gFA ,ܻ0|p/p##p$#͖>'Ms٤>pOI=9"gQWX_=CC(zm}蹟/@Usf깛M=fڤA ŒÝK9W,^(= o>WY\>?e3x^,?-꧆$Uu+l  ORm O ~ Zs[eWOktE&oQ;!BXX̐ ȇB|Hܲΐo@:[(Aѹ|A=۸iV&FO'/ 꿶ؠ3'ׇ;"6n~}c&Q{?m@6 iؠ^_%>oNߠ0geBdh6_?#$7Kg$/NזmbOV(k5=۰D5'v[zN"* /v t^xj@rϞ~V;s8/!ZtlYkm7o[׍#Utz:x(oA H_ ^a13ϕD:;O΀?)}`zSzLڽi|M'RN7'OcUxOdC=x~"O/i/&@Zf'Niiyؔܕ6Gz)Ҿ+__s ϑ%ҒW|WiҐvG8<<*(9u G! ǫu13}'~me} sܧ3N {/]Ú=f{ *~i ѯ/fx,{,'$~f QsխҁYwdBǬJ2'Nѹ jQD.=V:^`4Q*+G_q[x třifF#Mnɶ<>dF ,;vrB$ŏ2a lX6$ /KKEf ^XcWUtty3UWU]_5Ư|,,.?xMnv8?e8wWg((&IeCPP(((!^ RRRRRRRRR2e0*(P G2eh1(cQơG2lZI(u(QLE9\i(Qfdu%2e\y((Q|E(Q,EY(+Q.Ds(\y/\r(_v>}f+`3aY4—=8˧2v~youeÉG~op7-vKjb0o- Q?t=BB:LIOw7^:Nr3s GzR?O&2iZ'}zEuzSX{ǏwDlXݺyu";WȞ,lXU]ܺ>:/StEPtrҲ;oG&'V龢t"LtO~̮!<{j<(17E(طj\ՠQ# 0B"wCc:ч,[?tƏ~7ī{ĽEף"{^k|3{g(ų`ֵ;ٟV'{# }ۜV U Hv`?'Vca ~ۆplMQ`oϩ!ciY ۱߄Z}F;\a61_پ;#}jXҰ{A陮^T|k7+eQbY]-TjEЬPz o{ẅ́r1?Z^Km!{/bLr׷O>[K(]>ϰ0e.xU*]Sfcil؈OMsZψjB )E[R?Wf3\^Tӻ(IuHMW*^M )J%HJSto{}r|*%_i;ٮ>%O+}JMc)JE=iHM})o'^_}?+J^L+}Wj5oU ^W>6|5Mc_68llvvK/]v岧aT]#ǃk4vQY}Yb^ρq4D"fqzp6qm 0ʛƘɁ,!` XL*QL4SjOr8 !PAVvoC)^MFkѩ^2HMc~aBm6]x/gb o]rW RsW]0~}}X[w/K8p8F0غut=vUMp[.6`m9쳨>ۼ]P55c(W ވCif CNzoҌ(?,@>*Nbw<&а}SQE|(ZcTU|PVmP/]t`vvҀ)^fu> )c֬N9Sxim3x}^X_*`8[aB)# ^HP}]Pc\Y`( .tӂl _}CKloW3ѺVZ{Cer?$*iBBIS4V:hz+ҦƴMA '0 [),_XbXCXBe:=ȅ`ȆlxRekXnh&FHN"ԂʕYG\xt_ykJ*{[p!ɖѵ=bx wWF-5F m8j:3Qg8# kyVLS1R ̨M ʑOـ"J iZoe5򜌣jF:VkYG_wXt>yrl xkx@#-1sStВcZLQk0yEylՄ)nVٗQY#7yG٧j('JURF|/Pb+hl<"lS36$;:+o4c,Ǘ.+-l ;{ѱE9į,ohbxM#Um‹3bPq(ڲch Icdy!|ɪdVdf }_U+!ٸ0ݼ6rm|6a66ny6a6m l†l66n6al3f6almV訴7]nK?SYJ3Q`]%gKKHXVЍ}Z.a4Mj2/ |·_ya:r]t2\rl_E(g:?-*t ?ߙ`GEG鈇g:F`vX%t<Ju7EGoWF J r?_UEG(gd|/2luG|#tq0lBG#x~ak#$*>OUEG(g:nJt ?4V/D>t:t*]tT2LGG} b:(^g~?#ؐythsKq}~a.6@/M>z' N Pji.GÕ*r1XG{C,b1{a!H J~Y4 r/+ozvhOc35 HfS}>I;m0Anfv KRIC %o~9yŋ ֮9YV9Vr]|S{c(W4䘣""|t4gkrК=W Gc$׍#YO| Z|W ך7h4A0^˰b6R8 `y?|I $`~ u aP|;)X3<]'( !h9Xc{Wp T&ON-[fC> -&%׍#YOܣB'(_>fZ6o4~wM}t}D;܋%Hg\~-ܵ}wۂ@N˳$yم`2w/Mu*6}+$ޗU' o;-x/w>x'&`Ukve'~ F:-u2㽸_='xi<{ȶ#~(-x?%WHg;߮eAX~'مPe^[ߴ3wH_V]; e{EN?>M{k[f޳Nx6S{yƻ7x„Bx<w>D:> [(⇕zz/pva0("{w+wwW|j|!yV;71OV)0E_7X0?3 ̿[fb5"967Gz.'mhMI0]@ܯ1 ̗b>W`xZ0<%G$% 0?-»= JdHF/vv~'@ug?BHlI>Fy&, +8#`~ 1'eم`/Tۈ8ėO>WnU}%Uwkd K]z(\ ك_fE=]?~zM`.#5iG} ~`bE_~}E:P1Jg$ԏO {r\POc|u&̳ k+2nwgOz)'qse-M> UL_z,4_n~ڱQO#:i#֪5{X{^?"U#t}KZړ9Ei(_'n5ud :a%*m&+YoVJ K'JgY"ꌭKyzANQ=YM^~vW'@KgSF HF?'YN֍{sj)XUk@J؝6-v -vWJaL;bQPeE9/퐏`Aۼm'7֤kx ^+M _.)Oiz//uOQ=({.K'7U]}&FJKݟ?\/@/{/pߎMټ=zDu 2Hc;-eZ,uft>WKK)M ;س {A[ܵt]1})T $Y-wm} $Գ 9Ԥ=sUmM}~6imM}J{WSsG-=w9c{ (T>=?pg=v5C"{S{siܧhz_6-ܓlR*3iI{_=e6=E=ni*wط,=w삻I=3 dpp/H;ܹ''>CLlmQSޢ޷s)lQ*f=Y`ސ볒/ dxaoQ?= !4-snfyZPsE^Pg՚=Oܢ.Cy_+S [o D /_ s{cG3^lP*d=D>7E$9/ lPדrh ӟeӜy~vʇ: Gyު5{O5Aav6#Wϛ7G1 ] Vk5u<wϓP(͗ mۘLQqkzaωjM|yF^"{|WӏU<{j46  f7zieV2W`o7Gzm8uM@m1|xDORyJgK_qϾ)oJI4\"i{I'ʟ{s'?Hk:m?'or n1]wUxQslY'1__̐dYY6%l˃SHm/-Ć@D|`;ɱI8@?.,aِ /KKEf ^XcWUttF3(Jgk_vsgz5)BءLOOc@h ['y.ŏ@C xB"bR2r J*!(CQT G 2e$((cPƢC2e"$(5(ԢԡLAG2 e:y( (@2 e6((PP4,@Yr" Q,AY e9 PVBϠ\rgQ>r9(W|^-zv-ڎe _vzsAN;fm<%7^4Ps~ W&f؊h{SHPz#.BǔqFQ?[l?s`]T}!jWׅn[m|(_UF=gv_2g+X<^>ǎwuDWx5[mY=ܼkͺMbO[Mӆ5 O|ќ/~[~2SSw~c?16P=LCfåxCv IH3tUyF)*F(-O5հV(1Lcu>x[}0q쓿&^#-@kmZ8C);۹l:߃϶U5Gf/$=s kv&h`[~s}N& <M*؁fJ3vӴ]qR~QuKOC gQ>%x/F+q^du?[RcKCBiT^ 5o=5hy,E콘?f=xаY, \Fox s+RŰ2Kc#&|jj2j?+j; %\~mC_Z\ɞnZP w!M4&ga5Q\z5)_/$+ߗIiLW5z|uHg4>+9%+~v"9%oV{%~8ۯt+9{%2ݓ_՜MW6{]?jI#Gֶy89*]|庵WʞF`oXSMEaeMx=&Hv Obajx(og'hI4,nV&cI3llE1&{T>.p\ȑp/@%Z-q& Ӧi{6  VEmvSm6][LAXu!vt]1?L]; BwoasV ~mݽ,= #H8]/[B]`rϱq]@z賰#}BϢYa%ޞl(Fl̚PJjZgo!%4&_z#V7hF r!n: {]0;]a/hؾ)a>1*^T|(7*g쮇W2zi/:_)c֬n[쭉ŷ _r=H#(ҳ{oJ|V|6, ׳7Vck>PYVlkgè_HKgT:[f:o>̪z=?޳V#PS>4JX]cm]Ս!? `uf3p@ZlT=E-Ę k!Ye\Y/)8*f(+aGi&upe~W8GbaI' ^׾^ F8Λs-9_` l0E-a 0漬^޼WGVMR _82 a"kTz N/}DZpz}rT,eevj;Jl#0bC1bf3Ƣ1|– S0:(Ҷ-}s޿\: @pTxQsbO#} P[UL-[4i<;/עPlwg:JᙎOK 0Owf+X-p`:bᙎV|1>'Rsёt›UQ\Oltd:JY>.?$* ?̧3[]%#鈅7݃`܃LG@)0۪sQࢣ鈅g:޻_ؚI |tΗlrb:ʢᙎ۟l3y.l5ՋEt3d:>: S(tcQ袣鈅g:3[E{HUUDU"<xKU1ӑ/|LcnGb#tcW%LGSվX2lU⢣鈅+|T1ޗQ墣騊g:b gA8<.|P1tFYzT_;W%~ 061]V6WsYDv*(=uӆRݦa<G+~ MLwh1 +QI}Qj# wQ "hOMV1J4\x+\M.&nhҘX,°d(!T.p`(x˱0(^lv!R | wE}!ყ| ?+\chm<3'~>иn}_5hbkFTA EIqؔ|XM ) ld'ǼG`~oZ07m0K`/Ί$cY[̯>n)8IwQBb@< P"O%܇Ev wc};m2!w:nݪ5{~!o0 /ݸn}: F:-1]p0ԇ]xk&&^"T:+^ ㍇mᮍ2w\%x.^{YBW9x_9(pv<ӂ>~~ k [f_xBnR'3K4s2w#l9ӂIBztV%}HJ}O&v- <x/.>$x* ޟxsPRoih. +wI'Xݪ5𞍽w;ذ +4޽;&{/I/1}aYxΟ}TY/?׃3xy>f2R@$1Jծ]yD|EYd`$0 X0o՚=?W0÷`޸n}0)6'7Yz|n0_,0_j\i0~t6B 83Mt Њ3|^ݒBiF| x$S{+1Еx+z9l1* s _%ot@?n s?&,)Ĝԗg+?61 󿉷n32_|/?tl^ՁVj:VEݭ}^7/=w忢pCfFktY巋^a4Ń P KШletC~ @J;Ip/MP?1ġL B=m#(K[068{ڪ>ߝ?Jdm*qOpe-M>!UL_z,4p@n~}QO#:i#֪5{X{A?"Uv#t}KZS9Ei(_'n3︌d :a%*m&+YofRIK'Kg5YMi{MV%Q_ɓب(Aځ&LN/v?7kv꿵)|w%i,virF}^5byܪ5{~XN_}+W'd|/PdE9/cAۼm'7զjy ^'M _)Ojz//uOQ=(SY^S\kt2ޮ۾ |p#OcVxml^{^Ӻ_Ak?-`3:~ 该 ' { ܝ{`z=-܃Z]:>U4l,t;6{mY` }zž*ǶצGppPi sߦ>=w)cUkvEtno2p:ស糞{ }IA 3Sڤ_=wM Գ  }FžD}Mes?2h{M֋}; I=Nn՚]p7|h i;r8½@}t};gI8-͑ޘ=-;|QF! .^1޶Wa[6V3OiArϿ fy|A]u?UuV-2gab?%E[ۢ>kC>|X!YZ >W:'Aɽ~|zA=ӸiF&$J\_,OaA'*_O wECOMs}*&U{?m@6 Yؠހ_)>!A=2geBdh__[1fl V (egd8nK*WdR$J \O?>W8BϪ vǠ"p8Ok[fцE^fn޸n}:14 ;Ķ/+?5PtZ:)_ !}tv?r_?)ߝS$IJ&( Cύ(#}-cUD(im]}_B# C%moI <|ПQi1F|ʁ&(JD]"Qj-c 7w8}䯖hlaD5tBfރFWE=fLl3\~}QCƲecgٔ foup[ [?k_;|0qǏ>~}P p [z47l75z7ch/7VjGeV]QO,>}V<'?~Vϴ;nw׉]uSY׵BPfjSSP~%gh{g5GQİK)㏕%L0xZ(_@?Qx |չlv7l Vo  $< (Vm/AZB__x^YOJQk_xKZVsΙlv榳ow9;3?5sOV mx\&7EtU2cMψ_:(>?J%%RE((E((%((e((((P BBAePa(QFD2e Xq(Q&\2eJ d)(SQ.BE2e(3YCG2e.<(,@Yr)"((KPP,CY(+Q>r(B4(W\%l|g;,Нr<T7}d3k)n ZrNU1'p`蟋 [1n/DT5~^ 1%n="(l=߰,>KؐSǴO?{>u 9WCWy;{sW? O}Otv:iܸu˶-GvYYٸ~}- s0wCK ޴>gN+;}n|줦λo -t]Q:Tj&:\;aǐde⚡-ů3JMQ1 oR.ThPb !u1Q|76ؑOxxHq].ҶA\kmz8_~J\cۺMgI'yB/::8pm\>mX0{!xI9l5X#06A \ ے?s2ahZV7VbQ2혦-⼍CNODC kX1w/=)jExs\m2+k t߲//Z4(v5 *owb~ B]ľ`a_d3#]_;wd/Y\gɾVY7̥FvŔx66؄wMs_3 %|P)چuݴ`JB$EiiLZDq%뵤|dRpR%1Y_KW߶W^?ՙƫ#x8I_WrHW2HDrNz"[\c߮ҙ\@W=b o :nЉͣg\9عrtvvJǯXnU!4aDbeMxPOv3ba!h}3y9QYO%ͤ.TKQFq!Cekю3o6E)Xrm6:j3]hbp4<= XMfEbCt+=B^rj7ݡ+x6ÞY8:u #xw= a]`rϱqߧji]ne췰-yoqk늸 yJ1ZVgV GJil Ufޤ15Q`\\?!Nb]kаS9Q2ɨyYڨ\,.SIZUiIY, *X頕RQ8H6WMh&lQƪv|5pź1$ tc-!L3BPa6$PGsC_sb%*ƹ{k79TIU_>"K/Xf^Uܪ7 ^"<:W΋"ԂܕuYJG5y܅|Z.G]y++ׯc,ϋp7pm+}FLb0㎡Pi3a8 sD-oSN=E-ĐxnkZH8h>e4j_RPyOAI%#GY`=J5ބ m42F+G^ 8i~/ G4}x@Shj)cI=l ƜEaUMd_E<RdܸJ or=$wMR~(KQy 4Ub#V6+֞bք1qL ֙j0c,×.+Mm 7ѱF_6^Z0̥ bSl+N5g(vk\w_ T݀) | &cY3L'-2[}.Wf~cv˵qل ظل ˷q+  ۸ڄ-WVJl–ڄ-q+ [avb}Vs^RbypjܗPB(>X XB"ڣT4;uZ4i.4d_@9$o)?9\cБ#鈅/`gQBЄ/ӡ ttq^^(X$sLGugX-#鈅:1[|c"ӱA1|(\-t%[y>lwg:ᙎH 0Owf+X%p`:bᙎᇘV|1>'c:bM(WAVAǏH 2%,Wlt|qΧ2[]-#鈅7]`\LG@)0۪}Qࢣ鈅g:5lh'*#tF3Kҙq^ LG,*|Td:*ᙎXtP0 =v.f+nS: >bޓSs0w!i8.=,J/r|s_7N4n8 `OVݟQ/% T.Lh /@< PKBp4w.:'N[fFD ܍Ɩܧ B'8V"iki{TjßP$ɴdRp/p^"Jp/sɺm  2wy&/O ke^UmޗK7Ux޷wu;}ɂwO9yh1ݍ4Ɍ> !۶{{tm1+J Rj8wΗkYxp{Av=ulW&V7lU~N]Z^#Ӄv?LzK [f޳Nx [ོOݛla{Wོ1x/o1}A^x}Xi/VkG<KمŒbp ($SU(AķZ0_aS8G̓Uf W-_sQ ZDZKҁKx &~7BBi/ǸǀSllFuCINw9~cfޏq8i]VyFlW{Hܧgs;i8Nf:2{]޻=f$TJU|(+A]M<wx>^ڛ ”&OLg^,Uf٩L0'$lEk_(|X &PuOxÊ_o՚=PFLv9Opg tytv64V o;P' _?-cpD $ 5ﲟn#ߋʔ N _r ?/{迋3gZnc l^{->>wz/ipК=pψ/#atK7&MD#@ >{P]_Ky p,|7UE &?o w|=R{0~Q>5a}brߣp_/[T~hq{/ o㖖Ukveҽrnd>=?pg-v5C<K K ΧI{%Hi|o.,*32 [-&~߶犖nܧQGq;=,-w삻P> D pp/H;ܹ!Ft/1b 3YRZ&9'LwޓX&U/(S^ ?zfTL\b1_o)򄺙=@*PwiBݏyBUk@>~ y:y@@I,b/Ðe_$Z,Vȇ*)KX-͑ ?׽^|H>Ӹ"IFBI?縂HfU>\B//v?t]{ Tu?pLZ^W;,"Zr{["> ~=/EC<wϓP ͗I?Q?YLÞ՚ ǥYH $I|W&<[h7ncc3z}i{x|ѫ1_7Υt;uMhy}_b 1D2dBa Po<o $/.0G}wY<7<~ \^$S҄C-!1wآ~ٛO 8LJou`߫C {+/!߸0!{a>-/Oz㸱%*biћG˲Ǭrt`]1m'O9v1E$v)EpҤy޺_͟y߄|0vߟ3d^~T\hv hTjJWۘns;obQdɒ+4JG?DvU:G9zw&E0mOvqTGdz-ԁٹߙ<5` ʏ?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Root EntrydO)Pictures;Current UserSummaryInformation(lRPowerPoint Document(CDocumentSummaryInformation8Root EntrydO)=uPictures;Current UserPSummaryInformation(lR(_tCVictor P. GergelVictor P. Gergel