From 0189d519c6a92b36399b2e0113fe18c6bf3b8800 Mon Sep 17 00:00:00 2001 From: mitchellhansen Date: Tue, 28 Jan 2020 10:38:22 -0800 Subject: [PATCH] . --- Makefile.base | 3 +- main.cpp | 117 ++++++++++++++++++++++++++++++++------------ make.sh | 5 ++ nRF24L01-Pinout.png | Bin 0 -> 35835 bytes 4 files changed, 94 insertions(+), 31 deletions(-) create mode 100755 make.sh create mode 100644 nRF24L01-Pinout.png diff --git a/Makefile.base b/Makefile.base index c43e477..b8957b2 100644 --- a/Makefile.base +++ b/Makefile.base @@ -76,7 +76,8 @@ endif ifndef F_CPU F_CPU = 16000000 endif -CFLAGS += -D F_CPU=$(F_CPU) -D ARDUINO + +CFLAGS += -D F_CPU=$(F_CPU) -D ARDUINO -D ROLE=$(ROLE) # hardware/arduino/avr/libraries/SPI/src/SPI.cpp: diff --git a/main.cpp b/main.cpp index 6b32e52..f7bffc6 100644 --- a/main.cpp +++ b/main.cpp @@ -8,15 +8,16 @@ #include #include #include -#define CE_PIN 7 -#define CSN_PIN 8 +//#define CE_PIN 7 +#define CE_PIN 3 +//#define CS_PIN 8 +#define CS_PIN 2 #define LED PORTD2 #define PULL PORTD3 #define ENABLE PORTD5 #define DIRECTION PORTD6 - void uart_init() { // Upper and lower bytes of the calculated prescaler value for baud. UBRR0H = UBRRH_VALUE; @@ -45,38 +46,94 @@ void uart_putstr(char *data) { } -const char thisSlaveAddress[5] = {'R','x','A','A','A'}; +const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL }; -int main(void) { - digitalWrite(10, 10); +int radio_number = ROLE; +int role = ROLE; - uart_init(); +int main(void) { - DDRC &= ~(1<<0); // Input - PORTC |= (1<<0); // Enable Internal Pull Up (Setting it to HIGH) + uart_init(); + +// pinMode(LED_BUILTIN, OUTPUT); +// digitalWrite(LED_BUILTIN, LOW); -// DDRD |= (1 << ENABLE); - DDRD = DDRD | 0xFC; - - PORTD |= _BV(ENABLE); - PORTD |= _BV(DIRECTION); - - for(;;){ - RF24 radio(CE_PIN, CSN_PIN); + RF24 radio(CE_PIN, CS_PIN); radio.begin(); - radio.setDataRate(RF24_1MBPS); - - -// uart_putstr("hello\n"); - _delay_ms(400); - PORTD |= _BV(PULL); - _delay_ms(400); - PORTD &= ~_BV(PULL); - - uint8_t port_value = 2; -// port_value = PINC & (1 << 0); - uart_putchar((char)port_value); -// uart_putchar((char)'\n'); + + if(radio_number) { + radio.openWritingPipe(pipes[1]); + radio.openReadingPipe(1,pipes[0]); + } else { + radio.openWritingPipe(pipes[0]); + radio.openReadingPipe(1,pipes[1]); } + radio.startListening(); + + + + int i = 0; + for(;;) { + + unsigned long start_time = micros(); + // ping + if (role == 1) { + radio.stopListening(); + +// uart_putstr("Now sending\n"); +// digitalWrite(LED_BUILTIN, HIGH); +// _delay_ms(100); +// digitalWrite(LED_BUILTIN, LOW); + + if (!radio.write( &start_time, sizeof(unsigned long))) { +// uart_putstr("failed\n"); + } + + + radio.startListening(); + unsigned long started_waiting_at = micros(); + boolean timeout = false; + + while (!radio.available()) { + if (micros() - started_waiting_at > 20000) { + timeout = true; + break; + } + } + + if (timeout) { +// uart_putstr("Failed, reponse timed out\n"); + } else { + unsigned long got_time; + radio.read( & got_time, sizeof(unsigned long)); + unsigned long end_time = micros(); + +// uart_putstr("Got response\n"); + + } + + delay(500); + + } + + // ping bag + if (role == 0) { + unsigned long got_time; + if (radio.available()) { + while (radio.available()) { + radio.read( &got_time, sizeof(unsigned long)); + } + radio.stopListening(); + radio.write( & got_time, sizeof(unsigned long)); + radio.startListening(); +// uart_putstr("Sent\n"); + digitalWrite(LED_BUILTIN, HIGH); + _delay_ms(100); + digitalWrite(LED_BUILTIN, LOW); + + + } + } + } } diff --git a/make.sh b/make.sh new file mode 100755 index 0000000..ab12362 --- /dev/null +++ b/make.sh @@ -0,0 +1,5 @@ + +make -f Makefile.mk ROLE=0; avrdude -v -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:main.hex:i +make -f Makefile.mk ROLE=1; avrdude -v -patmega328p -carduino -P/dev/ttyUSB1 -b57600 -D -Uflash:w:main.hex:i + + diff --git a/nRF24L01-Pinout.png b/nRF24L01-Pinout.png new file mode 100644 index 0000000000000000000000000000000000000000..44bd99c2c2a53ae02e59403b2c957e4b5f653517 GIT binary patch literal 35835 zcmd?Q_dnJD|37}taSo0ncvQpV2;gEH#Je9JE>_dpMSL7(lc1W@vvyhR5 z$R;y;bDYmZulM(_`1<8sob!0xAGiDcwy)RQBic~^&IKBF8W0F{K}%EPE(ip{fI#5K z)D*xsE}p4vzz6h!nw}a6RQ~lEEM^(_pUvwQ#>@DLlb0{n!x5zB@WjrMN6Qua!11ml z*5Rppm*aI1hyrA&d+(M_Vd%%Is$eM?t3Z&711C6~(%`x{kkpkByD3d;OgZf$Z!Z z+uGVHDky-tt$iM8B_}7>*4C2AJ-xlXO-)VBEzMzJ;gJUAO{+i1RaKszo&nDS$Z2Up zLPC=>tE?<6<~O|`K76>lyT7)!_6VaQ%+ETzuzqrKWoUE6ML7HD=wxVo;dE|xVD)2* zk>2m$zt4n)PfkenjrHrB`?Ft>x{Tps~+uTsEx~97PMfZzu8tX@!pIw~E zhljP(@vIDVuM!eU%S-<(ZN7XNe|&J1Ta?=0-=CI|Hq(~C%%q{F>g?){r@?|qQPVbbMB2}suJiNr>+0zuH1wXGoF=5E zd;9oAMn=Yky!p@F}y#Q&V$zczBiA{LIg{zP`S&s8Cu) zrs6~6XVn|8UcG8<>1IKSmbX{_>Ye?NQ{m(8(O6e!k9AE=OJ$&^>*?uHKx_4VZ?A8z z|MKMv3WaiTaOnKi4B#*2O}nLqyE_e z>q&@qm>8Y?_4^kT z3I*JROeTi}JopI$MTKf!QR( zKjnEZ8Sj`ut*afaY5^1Au={UWj(ta#5(Jh-qfGfYpqMlA2F$TgRU<;}zuuliS6S?L zb`W&HO&5c2pU;0gEBI|+#UQGpp-~#>)p^~9a{znaJ6Bz+sd) z7|E(&YOxB_F!mi@Uf@~#|9e)Yh8BjrL)6k?wX|CZ^^c7Pexf`7=|OZv>SJV!-l2wJ zE98|*tPpyP0$3^%-h;4I&i%9)dd1Hz8kWkbhpD3a_jpt4g0B{E=u>N8x!!#Sw@gSH zW;%#(+`09w0wDX0{5D-?y_W8-c9jD~szJ2182&bMNgRx;1K7d8B}x`)BGkh38JPW$ z>{$e&vC{vYh;s^|T3FZ^@2wP3T`XW>p`I#@qo!bMo%Twmww?nqBk9=Up0WeNy%oW_ zKACv=ZAL9Iad*?Xqxcf7#r=wOmk*2XUb1$PiXdv9x2V+Y>Z?_>+QY-C&=;3}{`jFp z!#JNXMCln^Prvexs+hdy;2>c1Bc&Qu6hrpmvIXb7BY&po9gZA-dqE&e z;Eugh6d)y^B36*%2dJj(A*{20g8Ubco1L4V6PN=hQ@p1V=H?a__H%&<$qrpj6)-HN z7ZG)7)2PZ;wFqIqe_zm1^?k^<{rD{{%A$z;86!ytuqudgsuS`atmLLO$3I7*E21Bd z)E&G-Z`mjRU-*w0&MKkZ(4ROT|FHo@y5v705f>Yl^Ghda#D9fEOR+h#Vlc=o{m`x+ z{-?4okyn8Onnev8Ia~Q%yte{+amAT;r+F{9m|nmN{A+xsgQH;*mnRto^=J(PxwS$} zg2v)A2bM)J8Lv1~NVOhbWN6^IJUIkaZ(flI5WfoBy+;Zy2qr^?aMP`>ua|D=VaQmx z4*i5-yuv^oL%L;PVoP^cRpFXJdHeU8_m_dkBO^I@ys?+_grM&$|9<`J&vh|>Y_q!l zs=Qnnii1GEG>=P$B!y0BI3vS`BYgDZ?HG(M-9^m9@4uw8`pyJ`GQi;oORBKMUNM{RLP21S?ypLOZ(5V>*z%j2r)xZv!=MlWoCEQq$6M*3;a>F+r@w__MCDPwY|vLTI-_ent!=^qbQAo%kz> z)Dj~(7~nd{`{iy*B_ZnTDq+t773FdX#DyAjn4p-wly;pHZruSfs0!$*hp)&vkJF5P z^%(p}@$<3&blrd!$Gx9NnzQVW2Ppd&mJ~wSm&b2B3%O1|(7;=uwL$TpTj;m_kPkX8 zbk}eg^^v~V>dGZ55F{!O2YVcMvq$I#o7*bq%9UxlS;SUAwXB8YM5tT?|XHe)Q{;brV9nHkz&omwZRQcmr4(<$tXn9^3doqxIcOJj{*f&*{U#*t^qm z?Z)o1We?q8}Q+%0ErH2_(;Bo*m5+@*?tsaI@ z7q9q1-Y>4~5&qv3GYN@UZ(ftTrnA6Z=ijI)x;zOd*4Cq+I zE9L?s2%<%0nC%R51`ADxtLfT?-B1KWoT&xSF~-b(j+KsIgX{7|M0muoxp|lUR@7mb zL>7_bD{f$l28PQ^t%>-}JRt#w@P9WE1knwDOB}eiV0wf&El zKXeP5Ct>*?ZI%dH6J|AvMCB&W$As7l&+20UslOtbT`e}J8!v`G0*lHnGpVDvoCcF_ zfzt~SSxtwQMh}f*>n{2Z5-A;Wsj1bdxj_ownG9MXfFe=}mr{NbAbWcsT0~dBUy&PZ zIVi{9&*f+;{?1Vo!ozy$4*17QgV*m%O0Mf2%~ieHP!3~|wuQFFykd$~rREnCQ=Ww| z6()z$FccA~@O`S`v9V0t2X+4ws{lD1jEW0RvazMoI>RS_sv*Iar_1Ffv9%<@3&h=7 zklO?O&T?*vbXur{ErS(AK#r|D^Vx%z=T`Nys+tthV|&N0hqdZ>)_FI6m^(!DtRh6kHW20S^#btZsAY${1lP?YlP4SSdsnWTN(*qf63WwB z=i0y_Q>Ujo;*)Q=B$EQ@bTP}-Spp%D(6njX-f#!w>)izY`*?WIrVIEg>}5HWY@~o~ zWKn#VTY;dHlZE0mDCMy?+LH)?9a9UUw~d+Qv4JeLW&WgNZxa)0N~!W@7Dy@uL!Y+@ z%t4bHzDJUV3ZnzX;W(OfMMhr61lR!1dy(Qp{DA8{7|#{Qd*T({8jrb0?zlo5nG;48 z{r>GdAGc@bCaoZ<<0dVSb!|9BL0Q?<+6|~V(#vp@B%DW3D^UrEkI9(hY~sDQrzoa^ zT!9kh+=DMh3n_&;1lmxz4qNGjkdO!Icv|m#&v{7ZhHu9@+9mKNH+%b!x+*7XT$K8) ztd2w)r_}3;>3jN+!uGneoeP-_kz(4di44-WQ<{tS->e8SD-qiLqZ0^}?$I#7y(O{m zS&9K^op?=9*ZN~Ta`m;8Q}dr(T-3mQS|d_UQBf4K_!Wsg^STbVcI#ae<>>b|<~U|S zW=X770DRTEsbR-pZQoYB;yj`VqQgL$l~I3@6cofu_v{=4e;l1$(^~uS;Y$wj(4l@> zrG=h|6C@iDCQf_9zSz3kGwXp9A^)M0}g)JOCAcO%4XbRx`OROG+hm% zh2_L<4Det>wb70@+xpqf@`_X2q}Q&O~FKxrG=Hls{2o5rG@QN zF~KP>iDMgqSx^2mvI|8Hb3O&f`4*{fOf{z&CJp-Wb1Q8MGOvU00ujy&zM4;T?ewhy z&wcqXi5Os>Bc~g1hg!toHH^mBt+l(Ze8+d&GENl9$Kz%Nk;CqJhDF@EXN-j-^4q(! z1O>n*hRO%9RNT*AcnV9x^w0;B);b}Hf7^?h%CP0`SWBP{{}zscQiU9OcTDECWgUi+EMN! zi_g9XM1_qnI18p;l*ein#;DFmXq5dB!*VwJ+|^t97KZBHQ2e|k)*KLc*FiGv+_Vmn z%mF!>)QgM_)6(*exBkqU3FhuwYtXT-hk2^OSDV@)EnS{Hw|L;w`|r&0NFACi!kOU0 zWi{mRiRhZVHu@9h5`2}yzx8gud9?Rp-iu6&{je+dnVltR8vU=Rh-jCHo3DL`|1&-J z7!jKZ!3dTTh)vqIZqd6F+Q)9{8uN{pO4_wm0)j(rPkwvAHB$toV4vE@zEhPh4`U@N zzV%H;4tueCj+@_mVxNo|nQB9(;?Bl>tBPn|)fb4adLhsvsJmxJx6eqnA{BLR$>*D5 zMWwp@>Qagn*`yO|ChZBhb#JRgJ>mL=Vag;B=iW^Tc%6Y!%vEvuG@=#L@Kv#@IB#3d zva8Gj*omef^heJ7bAb{MxS^L6woP-K;5{9;j{FX`R_mQa!jZ%Hf7Wj(gbq!EQZmku z2&>*@=8_BZh{p+1XM8uO*T;PHdHf3wxnJF&uda=m^{7+go$cJl=%6cf?&E1NAtt;| z(R(!~6c;tKpK8^20uJh7PB1omNg~y^Sf88uG`eCpw?*)9V~X=>?NJ&t>&LHCM^qds zEEkh)f1-x624-9P9#rT~?|7`hMPM{^oq;NqrWAt9Jt^Fn$+9A7txtM~9^MS*Z z_o0Nt=9$EG?5A+b$>zzNxBT+v*6&*K!B9(9-)xO!Oyr)~PY#~hHP!o)IwhYwRX(U) z)J^igBCo^r&g`&-qwe0&Ei0T*oNp(8fXPPIMdV;@fXQ@M(v{BG?&k{!ii$q;WB+9G zY&{k}%&=M_1=z+IQHIUM8qnRm3&f|!w3;Td|D5*)!fCS zL@HEe6jN38lO^y!{M7KTG z@0;5uw>xP`T?M&5u^mdN-#0Z^PsuKV>ugFCobZV>KNLO*^5IEuIm0f#ZuX_UP;T^- z-6a+94vli0qq;}yv9F$)rsk16feR;uzI}UP4#AVpNN7)tKR%()s&r@_t}h5RX6A<$ zxC0-6xRjF{oHM_-4^N67tit*3~@&+{@F`mZnCS90(uEm!P&<-PzJPfHsUMxJa4pm&j}R(tWDU0^z`gPJij;TsSry4CMW#E)U7OD|4$ zZ%wIu^qZ{nJIGSB_H|bqg>VkUT(ORiSCV+5uRqw_9L01^@{fu;zUh*0{GYmD%|SyL zAw?OVyhq>t!T-AYmBX~;oSY+iYl{nGI3Vq}3!veK!dwkzd9lB7pFj#&>{MDzCgH5{ z+299Cm&))+!3fokRD|*>yR6bg`ZKl z=KCqLT^E;PV-?kMQkXr;@b+ZvqQppM^y*2M&-H#|xz=+^#ds%1e_;BCuhZafzpZCm z&prkhEK?>BcsiJ3bx2VcPe4>iWmIYc#Y(_>jP<{4%Q*?LU4euE5{r2t8@Ird?#qyrh=cbb( zOi`~h+#l2}Hp?zXreX@VHvxw>Ff=rbzkP+<5E}u?2v@>_p$v@h)zax^)Q#)-^lR>? z{c|qtJ5#%XV9fjJM(PLjQQz&yK5-@o>FTuz5ITQfc86Ms*J@i{TTn~Jl38qu+E>Vmxx}vne-AqBRC(;}t zh;DiK_|YTL{+5Yv4?Sx;b`~=`Uc7j*^XK(VeposUZRo61MuS4e(Qofrt)(k=JQC3y ztVx~|J2JJsE7Ikpn`zJA3-GxA-B8KQziito-9x1=negQ5*Yi@9Q6HloNveM1<=QH@QpNk5BwI ztotlAGfWN+*R5*J5zIiqtBjYrjt%X+W8B^n*s%Xh#@*f4MBeQB$38Tw$&G9D@;oJc zODMX(wCCEFsLL(Q8BVjFGK+N-(WiB_f5`;7lF+|?nu?@5#Wj@7CHTY@%Bptuc@y4$ zySpz$Hoh$zll6;ir9_JsJ0mxrZRgCSUL$rI3QJ4uD-2|>zm z=>t#IN2pi@>y&z3uLs`MeKe$Ov{@-9P9?Bu$ADb+Qi@@zfl=wmoQ~SdJB}CLvw%}> zX!kd=cANjoI1bfBaE*pc71mF4)>xtjL(C%Z-y<)&xg3oskDyh4G>A{4WumXCpcw77 zh)5pK$NKtB3IqY2R_U1J4Ejen_b(JLWMnSE5%&2v^w>9e{G}UWFAbf?6>8y0LDJ@=3q z+#Yilp)6b}QX7x+e$FXSa=bl-W@wzwIdhH034)3!$P)_N&8lSXf?-+5qk~S&CigA) zDoPd`8d(W=fX;p+5+AWb^#=SSB|eiu65CRwt`VIAXLk*04+wCwI-7s!z20ziginMk z>kcS?*0+=tot&T@>kLbUZSp>EChiW2fBpNWE!)N{ZRm`?#|IyrR30kSc0u?@K^#oq zSYn>#Sr}xlO@ha2AXLYkY<+KM`n<{4xEH-Z{pf>AZQbhBR52d6H^}(g0y6B(W5JUA zdjLS{z5Ci=+L%D{S+rU}gwW>&VMJ?npKd1@Ms8sji=qMPQs|&V=kOYyr;Av>=)G;T zoVxhTOv8wcWyRZ!pAKB^d$CA{9lz9sBRqz_sb~h}pp|_ezc;_`t6XA6U1~fQnquq3 zN%$+rG9+|6?($c8(?7p!Jtso1$ZpjI%O7NdN#1`Y;@%#1e0nHx*0pi$eIHttp{{|m zS|spj(l+MbnL@sJUXCyWU96X$;>dDyM~=qjs~|--_Wb*oU&4hY^vYIV0I=Y1i&pGBC1)NvwoK zm^^#N`9wckps=!OD5`!Sos?=khJ@DO4f!&`h+bj2FdD@6~ zJJ-<1kTu7gc(ZG?Md#TIhZ^>73-)cfQ3pvzu4eO~u_PvtAX?ORcKk&K0SY)E>)2&4 z#(GL!iw*aeO%wqU!uuYTz=zBbYjD%7Kh>kERc$RT(s9+o)=%GQjkYtSwVmFZ{L`e> z_BxcKq9V#$jY_k3%?8oP&D> zl;!o5i9)h39Sd6g>?oB^;Bg~4=E@X|Jr631W6Oii9PSM>XvErgZIBi0DNks96r`ex z`t3X{r#)Gd>D!RZeylG}I$mEZpMszam7O~!sAQL~9k3Jd3P*qT9^PzePD)y_ooyh# zAK|RH_9VpdvPk}K#sJdowFn;PGD)hpApzSqfq3yi=eWb!`NjTn>`u#od79F5o90xq z&O$`c#;xS?Y%lOtez`Zh!IH{gizVT(>VYSQf@lD}wF}w3;e6>ddcYtqI80M8wTrnW z?SVX}w~g-bA$jW0UUQnZOWnv>t}r@@o>(^Sx}OxBaC$PUOzXWA^yoUbY#sJ`FrPDQSt-v^Ch*Qa$61fV(JuV0ExhM< z^GA7;@>SK;NRrHTPn@yd+SF9n*J6$#fn%ouhm*7ynPW=!*;hOq)w|2B?bj~n1-FW| zX9FNoRC=v?LQ=e^zEHCRl_2`&ov*sDSP$JAl@O{zIiS+JnkGCZ{;0efyN^LiO~5ZIJ%dR5`KzDJkE6)ulVUrkzRAHoa9v@( zCmrYz+>Yiiu8VyZ%HR@b3cNK7KlOp^&hJ!-E9@45K<}gy)VRX8n3PxF^v-(Jv;sZ z;iSfFvOZ1goB5(Bx#j;zaM+SLT{+uedsG`e_o$HG@DL$~HF7)zS9DnaH~d^WwAfc} zh?Pn$+9XaGNVNmD);r>4ETxi1>#V=v9y4$_W1WyIwoUgVvnod)c)b~gD5f(f5}e>+ zN)ZI4PD9WznwcS8Zgul_mnMg)%1xZPQ$>^@Dd2^XonuqNYZ%xgXVGrl?CaYK7>$>= z4WExXg0K7;UKT4lr6B6%JxsNKCJfQ`^_6O3J46<<8<iE45 z^_;l@*SFLLv@vS^ZFkprObm$2E6_9$!r=={0INqSSW-(sUiO455f&(MGNY>rsMH#9 zGd7LWn?XVX*xc%hm7Y;vTXLc<`a>`E*zEP`8d|2Mk6(TX-hf=p+1^=b` zL_eCdh zA!3~|T%g3q@WUouNqZ(j8x!v;E&{)7bHLP|NxC~rL?U|rld(mpx}8~`OR%yg5f0gB zBjT74`k1dhhJ^_PTAQF@ld!eV${$yEbe7oiC=|@1{;2~$NuZgeCi%U%y)O}G|7xL} z6#nLbu&Vnc1V&;sELIL(zTg*xil#8XY7-W^4NSJnXXs_RcN3=@rUn z|Bm2*Ilyr6_@vd4T*~V#L~R5jj$sIe*9Yn#wzeE$skTJ+-uO->2Vp=Dq(CWOxJzqT z8b&D>{(?lYf7O(P!qjEtME|W~t3o0ae}`26iAY2i(`FG2iP&A_>V~cMIj$y85Bo0c zB|=@*u5Mukp9qSmilV{T6-xNiS*OwJVemx^4KqoB6TCyX{Bihy>ZM7oMs_V@7@5>> zjgk57V_h9|#zdF_CU{E-{p`zoJBbQfs`0`uJkBwc|JY>EOsz4{BD z)x=y^wB{V=V5gm$9>$Vz)l_*OiFiYZU91jXua7fgdJ`gCf{MR7Y%>(zA+@63!g9Rn ze*xa`vpGC}37m!zmq(jlgwY-!Of)Rh2xttoj-S}l=nJWFY)qF4?+(oe zZ%365<=BMipw;24Q(cuP42b0f`;8)lc+I%s)la`iv7j7f5|YvAC)4SHf!j1PRc8Gk zie=vld7rs@*y5Ud@HtuwdmvaSpZNNm#*s*9=729hv)GF(S9 zjDaD+@UPHYvD2nYmCpdkVImcIvpGyX)@q&l5RFwES8IQP=R85s#*7(rg*3&r%@)eV>M z(um-H41+YbQ8=9-a8KbQJPot45sGB~%u^uNa3$|OtvNkC#g9qRa5_4Zpo8@ZS%)p( zFTB3XsygW01M!0674k!|$F>m)ekd;5ze) z7Du3Zk`B|ym&-S+DkSd_ACuJuO2%1_ji@xqcIL)3x|og7iK(=&sy1n;XVNk;|H1AO ziwLb5zo*Jv2l}T$2zu`iZ>o9)&SPnZ+a|vi>Ahf zwh?Q>Qrxt*-VYE{e;=z{g*AKGCJo3BG7+}QPMgXDq*q{#h!9}=jh$MCA2;T;j*_MW zx_8yanXq6GBcw+)wWR4M%O(7afGy#3qiLVR#HUkG9&qybf%W7tBQzoNWuf=re4Q+6 zg2RnoOSfrSSRw_&lnieg!WehuG!t2%oW;IWCd^tY4eo+bSFq8$*%{Z_(j#pRgDa&Z zu@lT0FzMRH#z2pgc>puee{28|YTg&Pi62Q!V5V)?N~Ql!idbel3q1#!^=|X#IEIK8xp0N0PMw zI6{>VulF*;^JYddB?C^sGv}NcWcXYWQaIDGSR6~N1OHxMN>)5Q;2xgUws{cQ6A&eK zdp}#Vn1iT?PQE4B-cO03nS6RQ$S_!N6;~3HAR&=P5pD3>8}1cS)^Pg>Yr7qw5S$`a z@TLE56HT2QRY?y+-Vq%D7`GnHl+Rq&$EbYnWX&YZ10&W#-?*(9wRNz;6Md{E`^-Ry1m1+zK{ zGBzvqU}NLK{sEu5%NI4Ol(2ghZ6o#*xT_V0sUFDs$IDYwFkzm{j@>nR>mk>C0>v+% zxGm=3XP%SH7RaR6-#o%ds3nnn8_VX9Ui`x^-TL1$X(#gvDw=8QI&U9rs5HPIj?C|~ zea_{l+L$speXfbI+jyLF=1O9yq|PQN|ds&zV2*xI8%8SBSsjiG~r-tOzX!1R7Q4%d}$bfnB1MjymVg$0I_bCW{Q&IKif{j z01a50?K@Rlb9!kBcMIPR^wKNB=z4-CkES!p#+d~U#&$WBJ`KLiGaKe#^H=GUjl}m4 z)0pI`%iO+d%5q0FJyvcS%9JCxBv^%R2}45VnclD=EY7s3s7O(oJ{M8^PUSqxPg|1+bO7Nr?*o<_U5MEb z;uA*SW|ZT#ugyVbfAsiW+iR2gKq%wIX8_nNV`s^($6rQJ-HdkpA5{4hmFnPd_#cm3 z6ja(EJmW)7MtlN*_@SJ+5BlOf6T&Fd0&ihq)Phro@LTRxlm2gS6 zFWakdB=e7uG|W{i<{BgbNg63(wW{T_^y9Dl%c4(%bLW>Iz!MYi2nycsDxe_;A{oQ7 zGHG>XHf(RDZg2H}y*1pNW^nJ-O=K$jTg!kC)l&?tDX&81cwZl??BZ@YWB{NIQXL&X ztmLJ1gP=vHol5jkaHcqubDKMzae2|`Gf?JQOu>b8Lv3`{dF@q@P2l6y=Z59Kn}0`s z8k7^{le`8V{A?MBzvyiV9UY;Nn@VXhiLA^dW(R9>wwf35;fGTg3Zy7qW{Wwgax&4| ztm&tIKuIDn5(%JYR+_X|T|i2-9MQMgQ&cx?w^ivG^f5%_>KN@4Z|W$f%qZF4Jo~7^ z_F1O#*AK5=laWbcDQwT|@9im$qB0Eyx~qb>d=e&DDU{K91_34@e%(;I0k2$ms#G8* za0RPy6F^ja03`U&J(v%5#Hfnv5h!zRD*s&@?2U$LK)6WdStHu>;!}Ebsn3mJ5a-o* zxm$-6eu|jCP|2fSs8GoQSrW;dAPN*>&@QNkPzkDNpo3*QQjREp+;^F}b`T>o=k;p4*pcqm86(N@0qQWzK+rGrRahg%=M zbRy`cB1&XH)n#hM6TjBaPIR2Q0ZN5@mXOpi*#sD(H9~6*25>PRR;&ys^~9|kXsjp& z$q_w*r(u8mRSVfKoAdg=N$W+rH6|K>=A%XDm`{h-j6S&Aq9T8brYDL4wcW zHOit9+~&PDW4EyxHU^EidGFr5OZXrN7e+tj-7M_7lkBx2K5%7ZLhfOU@X}1RjP+Ug z7gApse^ypeARoJ;ha!6&d)-H`Sd}0$HS~eEb;zK}F;fZEcVto}kfzlk7ItcV>hFD` z_w+S^R)61W4dQ5cXt9a+ z2<-xw6kdgxvMmK=y5FA<%t5ZX-T#D&!tJTEq!V7ct^ZB3AS}$0K2BA}q)8Zj&iXIo z@qh3ls$Zi+53s*DZ&`L9Uo&^vm~3jp<6w{SZBBGNS`~kN=@Jc5!onxP8#B@l&#zR( zn7kJBTPzhPK!LcNcC@#5^xS;jX(EtcT$$w=H;gdQ%~DR5)mdL(JssIQntt<>iDZCqj7q4#7pO@*XCZyZx!?jE?V21eAbtk zI0m!$e0s3Zl_VjYWa-fOdvB)A{x^J8A}?jiTIek$SUt^LHQYW6xnX`5y7)R2B%3|) zCi$1RNP2PxTz8c?#vqb7M3+c$C06pZqp&;TGWL6JdrZqekmy)&_`AAaG}Ft$&M=|N zr##m$sj1&0&Wl+&oA{j`qWxO^yMi?4tJ__F9@IPaJG4QU4{ps9)>VarhQQApN@vEC zBy8fXS@^uwEACS$hI>f!VL8dPx|kgKC(R?FeTGdqbaD;lHJT;nuSl9r^!u}(v~9EqlHd$s4|eB3!an%doA-00)h&4uh{hw9MW<(MVhUiwaBJiD{(y6}>Ny0~~5 z%0+PmijCgMnK8M&dE{AcO@bPDz~M9c7>fJnhL?ge-IlSvMO8QIrbH<5&|rH^KzQN> zuqhlWp}MSma+5Z!h{ltnq*dV){p@U;E5FcJ(j;uom}u9R&rl8b`NJ{^Zpr4jmigx3 zEdtu7dcU=8wY9Cy z+-qG->I~{+yimN!I2atPB6D`#-L5mb64r_SsLo=QU~j$|T|D~$#{X{2>QG^W^}^*u z<6)I;%8%6VFULC|?{Yj$<;iPT2fN(yu{wFqS~I6UrLX1`eQV#j&4y10sI=c6TVf%E zaVjWXKfY1jwpp?gWaM(A?U$dgIQo?PBW(0>H%xA_d|CR||6neTg2`rY3dABk^s-7~Kt{%luzx{KRmd62P}X6UHNbx2iT!|=rQ zMKZzCi4>8HVTB{4_#XMqD*CssTtA}kS-t?(E(!kQG#_S|m*D$L96`Dpzg|LuN7P;-?f(yz`r3zrv9No9l~dti+WutWSm?j#Ghg& z&&0-eKocrBJfX~3mHg3{WtU6I&`$1pZp<43L!){XE~32sSh!CkuC|pG@h{^pH4pTQ zqc8aaFFM%&40(e2xdhFbgrGl%OhZ}t=is&<_n7#%6E1|2+eaUS=zq#~x8pSYeugS% zwaEtMm-yz8;dTP(OP_elAd3P$tM#47^9IWevS(g?si!KCYW%gy1)v_kF<5pl;oxOG zz{*Ej27XQC17@Wr0U#|Vdi&=Ec3_qjnEYs`x!VUH8iat?u(Zg6n8Zix;d#fbA=~!U#GYXN`xatW6cj0w-`9v{sP01O7twU(48fgd?+)56ku^2?~ddLsDk&Z2#?eGrt~cq9B-wFjFL!A)t)ldRQV*cIFb@Lp$n zSzBu6xG=4yqzXQE%bYVcgx01hKXpyyP{_@7rZ8Z!T4nfG@$BGDPe<#JNRn{)x;^rl zJCz7%tZs*;^2u7}#YNjI=YXrBV2OGj5;00Km>!y0Ih=i1=>C`6;`9YPOVy}7X!d7u zKbhf!5V<3@5(=;G3#F7u&oACeJw@u++zh|9D4CZaC|}Fv1KCJot0xxQ!qi0PH=2EX zMk_N8Tt1$W8Y#6gcu`JZ7BK#GNnNn0-ZRld-^Wdd2(`9;?vOBTZS4m^-XB>ZI^JzE zS>d06Jb`aXA~*mPi{Zl7AnUTKgDtjQuI;c-B{uPvbqwc`>>(-Jz?vKmlwClVWOM4s zoSWdetrRhks+31lKTkb=*J_jQ`sS_yd3_FM7ZwRw8Mx9bzJY-ntcXlR3Y4^I-;Kqi zR3~+QpZz5HZ%>_`p6&kY3rb4e3qTR{%=&*86YPhbG>Yu z2%4<2eR5bH>#kLV1j}{o^CHOmVp834yq?`Cih1kAYZI--EAFVqac>$Y_w>vZ^Q8O< z=V&N-vVd#Z|L}7lc&XD)QjF!KzT=+yg}O(#|E@rM9D(5--#SGXbTAAUC+bjn%2)^! z4hh?^cKy{Qk4Pp|ilQruG`e6hcqHQASTb-vx(<4VNalG}2ZcCc$n*^iq<(%kcbVpf zqaO49feUp?paN~JgI>gF;}bwEf7hrFDYrUsdv@?eZ|6JfU*Vgi9Wq^gl$*l zIHb%vkl(q1rFy`?+T29@If-*l=|XnSXB9H(GM!k({7((#CAUWVXZgjRmKp4Vri|qZ zwbKhWr~hzEqgLsJTaO!V_7NyuBhDIZKa@!!ocXJG$~gCf_kaNP=$FSq?|9edyA*dp zwB48S3sWmO$;~%|&Sxmg$@_u;j!SKE{Q^WBzgIEc>mXhc$R2z_Dfjc?&~D+|5+0K1 zmU2MPa~nm)@*!LZ{PGmKIk2+fMdkoi_M^fpN>gx>L#}$XNuK7fUl%HwDgU(~7mAQQ zlnPk2=h-|YPgYoc4pOHScEtfoMrva=1CI}TI23$n0wP@0*-s?Ye1CoBZmI(LcfRYh z3Uo^iT^p1_hfmJ_n0_1EfHiqzq^bGzL*!72w49@DYvy$p3`<{WbIG5#@87xq`4N=s z8;c$iskkVr(9QOQ0|>m7#=u)#gtJyB4>B(uRP7Q1SE_|$uarkI8;#S5a(;na*-i2{ zqjMi>-XB45-3;BD)7^|?kC)r{^NNM_X0ATTVP0-y<7ZHiq47^gGfH8!ZJl&axtWiV zY3g0$3Awo%X?|~QboWcCR^#(gLjcw-a|Vi>ZD=~rVCiDInoUI{C7#lSWFp z4tp)C-!NFK$e2kGl9(ykq6{CuQ!}Yvr0zJN@9fDudgaE)`S$n&rn6_{vy{H)LAAo- z0C~;=j067(_BFD%k~4L5JyFX{_n_SOcJ>ZQM=SFngZXI zkaY6O)h>_s`3K7tArW_4k6#4vWy}}FA12@WiIX!A`mnA~J&+Or*TTgAaLRKcu4{`H z-%+Ta3ICl@DQpJoW?qu43>n9aoJAM@2l`0Il>N#2c_T)moS2xkjcJ0B)#CD{Z;IM-l`#At33rzpK{M3}b zOri6F_P&Ycvu;Q~)B0QIGB=hNeGd!vyU-h09TkP##XssVW1emK_2{!Qguj^pjpgsm z&ZFn*Z8!Z|9snG2#*wED^(3Rr)h5J>`6OuDOJTQl4;2;be~g>FGqRNci3#Yg-1ov z9m=bI)tVrIlErb!6wr?q?Nm3vs;pIi|CVpt&}i%bo>2xI-PM;79)2Qk zYL(T#b?D0jZwlDh-Pc6bRz@7Ri(p>m7afOgA+KW#0p9tkW9(cFIqcP35ZPF3x#({7 z5Y=YKMRra+iYAw$ootOh1U1#n<_@vt7n=p&cq%L{S!q80oK2BIHZv+7X%*yv6Z1!@zjd}bHX=Pd>~a>!YDvpj z?|B?d->;hwDXe_sHpDj$CcrbIhqvSzh^vx45}cb{E%42w9rZ`MMLUMboKMxHAcx;O zaS8MZZ6lev@3ull0)Pb0{NtztHfDG2W;f<+L*%YAWN%AbxO$^3XB;d>mi}6{z;L_aYx_ z8YNZ;&HIU;U8LSiU})fTaHC*x`&&O57{Dw3V@e7V2x~H#O(3xRk%ro6i7VOcb|Cf> zRo7LyzjM6r+99b1IR->JJ<1%5RX(@F9G=^C(nB}Ix452NS9)9 zkaUrIG^tI~tp0JcO3kC*6Qq(#HEQt^9sfKvuQ1W5nVe5mTS|JxhBPC?5Px))xkqx)^)zP=| zvIoj)&P~yX7yIj4UhO9Ax+2AgaR-#9o?B=(Kj@?@E$J9M~oQ+OJD|oRZ5t+$jkklE0cE2 zy8lqWly)Iq%65g3(Vt53H}iWMOU{@jTMizhWT^+vCu8m@)`JcHPoG95dL{eurpY%R zCf#Vb0n^3o6Jy+_v}ci~EPxv8ESR1>V)VN&bQlTRtoXEoh<|c;e6asP>`?aVKs5!v zXimJF$3%R(hZhihl1(7L{b?!oRA*Y?NO1UmsPHS_3e}`CnQ87sk*yyo@Ii{ig4GYIl|@&f`N|6i?3jI~#B^!v-?dK8@)@VYCk{8;9{xX? z&N?ot?`zvIFu>3uAfgA<{WRBce1)ID>+uFobkB@&!huJEgmG z-h;pA{hJSS&e><5z4uz{y6@#(4ACU29BMCylttxrhNRYa-Qo8i7xp^EG>+Asplg(b z$6otHPj;&%nvRT)uEdnyHhsPOP~J44SlSMsKdLA=z`kX%4ZV0R#_={Bi1nFnk1eR& zr1xV@=6TG1Iaq)ta{#ExP*;~Ir8DSOaaczcotMMD>2yQ0N0yhNg1V+R8TD#e{dh2| zhue=h*1;_Hb9pw`(ArfQ3mFAHSx?V)1_V`=r}+@Di6WOI#fK(x?g60v=M7GIt!vrK zLLB35D>7Ec;9lk=WQ}2N zqrj1u+*#9=}sS%*q)X~sUiCXX!YFSy(GHMqk6?A zZRPF2k94wHwcKaME8DV?KfR%$S?y)b|4ZOKn^9bZ9Rua^@Ttx+hkmoC`DE!QrDam) zKyGYp9Th-IX>Ly01C{x1;u2?mJXeB-2DPqJ0lU(S((MrM zxuEJeVVzda9jmX5A|^(4&sshVH;ooIR7;(qvS@SL>k>ogEQgJo&C(v!%}=7LF1!MR zh=ogUo3j{vbQ4y1yke|E@d;C3qmU}m7ijJx_n^F=)vv#f_1pfN&H?l*S)YGtjtL_U z3}m*Gz^Q)ciEt^RK?w`z|5{-IM)F+zj+(!^y5{|6FJRGzmvsI~cg*KHK^h^$cDo}9?arus?AG$Dgb~d%} z5EB+YrVgZLjy^8TM=-{Pg%{pzfC5}a8gtpVlJ`2k*wP6W#nT_5h{x_#;F|I&Oqg6k zxCAff)aazwBqdv(vKKiS+eLdCeFm?&89q0Ab;R~E8N>tqM}1a8@tm#jQye!%!2Cv1 z;(K99X@uO1a8BAf84*R=l*=YRY#$SQ9!CzD2vB&qZd9I7=fHssqb1`I~hlftq4;b;dBfT zva9Q>MA_dzyfPC4!>hQx8bWvgcx-tV&p(9vkY|mnsD1EsvS0XX5E=RK@XO-li|AJt z%Wf-61ZqOtm#3!>hWLTy54)sf^VKi>W)TPjzW~p1cq``<+SiA6RyIl?1=}>5{bCBREFmN&F7ZFn z+-fs*(v{(Q1%Rp@nssJ4s)O+5Np3yIq!W-6Yl@U8C^`C4`Pq?J_{}%;W#0Ur%f5u8cRFTWXRyw=UMe4 zJ@9fXaTBa)KUaTI5~sRiId5+XyjM@=ok!u11hZm~lNI_^SJ^<1=I(GBk){zDq!+QT zH{brnS5b;tUD%j78_l?C#y`$a6c5%|l(`?;pbMj%B8pGn^+dqkTehBM@~DBai`}^lNH{ z2bF0eNucKWN5-jfiRqo=qBL-e==5bkCh>M$KCkIo2TxY&OFUHS+AA879dQ4HcJ#SP+xQt4Pvav;@m1jAp$|@g9|>C&9zD zcME{9FO3(dTKFM(VH{{Dm@J?9(Ja3A%;dQ16Rkr!opkV~Sb%;5B_Q(IdaJ0Qen&!* z?+X{-r_b`<`%PYX)No;Yw|`noYR8%M157HMAs|2{5i2ui&?@Fe0h%!B`bn8ocKbI^ zR&w>P=7O=70?o@MVxA&T`5Miy+)($yWOmQ*9@)*1jSr32YPT=FX%jGn_g%lA_Hw>q ztFN7Rl_f#+vt*KI6M~VfX6a>**O-+FxriO=)hO(u^(bCXH%C5B0Ce+Mr|)hN6{Xa@ zHZuZSB2O~#`J4OY7TY1kC=g$-4T9!P2-};=9|{J%d9gpYGbtzLE0uRp&xpKD8UxNk zE_dXS znSDdSelwiMCl+5{4b#*5J?|NA*fBE7zHX&uSRY#x^ob7lVm&cU+2B%t|IJK@qOGp?duU}^U;N`@zW`51m9X1cMGz{X+|wSH}#A1R}Y zOxLoedYW(mr9`^P$~Lm55BlCzs9FmcV=yh>zBeQ&8ZCc|Fa<*$_#}JyZ#Roh{0RD9 zNjq>l%D>mmNUpTQaqA%`VqCB&QZKyfX`EE)*D07?cL#q+eOvMZZOov!${U^=z6g+d z(W;{<2+sFi<$5<}&m#GXMXSbefoI3NE2F%o*OIO3aH||aV5pf=LQJ9{8cH~7iAwPV zG!R(iig82HPAih#FN0SbS~seO$I2B2g77&=FtdSsR6(izk`(ydVM`^vzc_)@C{Ta; zA0q>$;b1#K2K*5_UVa(^u$L#GtvSj6=@O4{ z{R5HZR>XTsijEoY*@L=y%2Kp)@ap%s<;mpgO*&djG@R!Szop2r0w>>hqEgrmy zyL)%w8b~^Z;!Y9eh1cWGOD6M81EUXXW?EfKwNxD*sH=i@2JxpYaIKHT`Fk*IoZ?LG zawGqjtLH6hlGcQ^8GO5{BhrM&#Sq1@>~Ll5QkIZMefR&Y%bYAPfE29Ic>C$_iL4iSmJoJA_ z`2qOz%fD|`);voYLQ`09J&n&@)MUqdo|Wv-p8UEwtb-rl-t(=n$l;0VmzaZl;eZ`^S2pKL6#?7n#2WVwI?wIaY8J{>v z5%Og|y!1|)kmb~@?#leyeF?)IRo!DV}@W(v?+F4S)y-97f(slT{BcIIFx003hq zPO;rg$KbtL*bR~GSsYj7aRl4t<};s{mi(L)vk`yn+A;vSHH5n~Acv1PP+R&^$i!)& z!k4-15XYju=4LFLC6~4gS4|;#sreR^UhIBlk;zE=1=ovc=2hyjDiSMzWpAfdE@B67 z4bm_M-+!PRP|W0$+OMAq@H@#_WLJF9(of31J%m{{gxi9IKn2FcqGiDAQZVXus<{@K zV>5)TMxfo!G+uN8;dRYb4N_opL9lrf8j|fXzQLotymfE$L%50WV9-}8cgye-eTdzS zIYzgjN}qyZR!7G{pD*C0Q294=@Cc69Eo)5pfKa|KZSHAs`;*y6EnrPihZK_CGjGwo zwO-mKtp!ZYB6?uaE7SkV*l%W-0oHsHXD}bUYemY`s4U+=hVleBh1x4M7-XXJ{Ai=k z3LbsLSgJ-`@%OPD@0SO1ypfFE1;OyeuWwH>%fuGh;fkcHa0bBY0JsvM#A6Or37wU; zBr9+LOPiZN6i6uY;67zMlDiuQQQ=YKeQ%b;{)Ya+=5a}Cr0Ly=kkS3Qz;G-rnXjpN zfbk<&N+58yN~P3^PJWEpDBb0{DFpkqCOj2p*02Ip!o>l%39{!TBz?=+FUPEglr}^x zsE>BY*eO)ujuNo1-UlyRDnFekH4Bust*vi&s1AiQvxVl`;uYu2udLonF=V$d zWICqsf3g3PL^z#804?R4hN+yrj7QVj+ZBUlPtVmDf_h8wKi!Y(r8Em_5pw9Pz5a z;xn=*?>lA3or~0Gw8hf5zN$yjlHImvke;|XMm}r(rMG){NRGhV`%3?aUSV^MwD%Oq zY(*Wv($?OcBGPpKgM_lD-7$Nj*&34lsfvv7cDO<$5!^ge*Op}vQ@i9LcP*mX&jdA^c5UEACbly*}uh{evc{eAZ3 z;ec|Vcnw6ix|+17W&|q$p7m>-f@<$(_HjNorw7sLTYE_4U0>|f{wHqs86;s|b8Y%} zjS1iC0N+tw&MXAPUph{rZpNd`4V7E6d{5ZY`yrewOd(Q1>7xdNA2BmZ+1?5nAv9hR zqj2lKSS{jMCn-8h`0zqav$oaf3xTG6`Eda!>TSSP?K%yGPwV-G7EbSOnnZ5erF;gY zP;1>)cA@MIw{r9m3}Y;3YGh=zi5c5yd%I%8!`;`%sHF-TiLyX-P>$Xuik0J{xIBXo zhX+XCBtPR}7URMPMnuKik8)RpLzCeFxU6UhCxKudC`z!59YVGy?P69-O9M)Ir4l(= zn_IO876 zByA05^`F7fVZ-4!!Uk$4h~qcg3dNjO4>K}jDFyS-8)9&lUizen?@x3`#0FM{eQ47^ zIN*&O2XL&vj1LBzZU&TmFA88?9eS8`O`ZxM%M`1AO|btEi20B4=+@ApiLcsSxw zGb!~1Ro_!Jc=8|mev8SRfvzsw5a6`V!br1AWG*QwsiH?BL#rJ7^7?MTt^#$%E=2(0 z_8aV*_Fp^9BYP}>DqJ?+RD>`-*F)u#f2RSxl7J|~@Cm1CqK-W{8rI@pB_DkKU#q8a7>#YK%m?2We=Mj~LtRUKFhxUb?|gliU{O{%cMF@pFF;4;dZ@JYl~=UbYw z|2&gDe@5f$hhKbjDvaH<8g2Fnh!C(Y0=$Tgz}| z0IG$<8BZ#_aP%Xm0@P2b@X6*j8q!<@gpFWqVuE>W`z*Iz9?f zRkgLRpPXcM7NdU69Xy?X%7AIEecSm`xqG>Kf^M2>T1V%uoD)7!6jt)z2l-~*Wm+Q@ zH&-lF(guuPlr-1ci22zVVojlT$%&1fOpBxFt!p$rmB{(Sy<|8i=PwW+dXvqEx5IyF zd2ff!+c=c*3yxgtFsnPE?r)|l_eij|Wa#5$K7g_6e)*?VLE0!geJcC01E^!>Oo{*H$GiTecHEnKoz5eYL`P&Ivcow zKViJYLyFm?qXVjifct%Ht*FZ@VUAB%5vDu~p*Xr%SFG5Z+my(WTUX~sx{BCN(h0iI z+I=lQL%Z?#eyT+NPGD35Ca+vAlC%wAoo-gVlJ@m;*RucK%3y{Pz+!P~P`61|i88QL z{iISNT{i4?BB`3b6|xPsgpQmfokAWRUSC};Ri~C~>FKGQ-0wAB)apdp0I7HazB8tK zcU^!*PRV|^EtkX`ve8Ck7WvWGJFUHNH14G#wt|iixt6DPC<55pQEI@e)u8cmdg^$p zuM08)RnTgrH39)A#4p~_WoH!8s_llKsflGVxkoSm>SFx=16d@z%cmrfm%03Is8bC2 zp_3r}a5se>gS_jE&#c*f^ys-_>jZ)9l>SzGZ!p&F`b4Q}uA4@)|K6zl>S~5`zfT5@ z$H;%WaRn#LI5(&7><_IuiurK>4W^I|9`|Iiu-pk@(H$iO@2C?=HY5$Xno1IRNhJl- zLQ75Xlg;rYvnGEryLY0R@seP2TaO+w-M9B}9tqLXe!*T{_=jI{+lXWJSfmVZaLW{6 zqk!djyz`u@fb6m2x9o22kwd)DR$Q?HBnDT8MtaBKq-c80+Ti`hlK{HStBDt{tWWTR z#S<8{Q?2`B)UEPugxhn}3uy|&(lQhSW7lu!WQJ6pElfjenTLEBkDjyG2_x$VT= z^Ofu9dx|590_sl`mpWx@_|>R=m59AtLyjnrkeD%AvWqLjV0qIO!U6glISf@;qt9;_ z5+-&H&}+hpZ{kdRSjwbK^&VrHA%l-Vg{t@;lM=6M!H-y%`ho{`d$}aT7LRdPG*%i| zV^Q3CcxMvN&7d3#%J-}abxFw_8M`v%`hV z_o~xAjeTm)^=LQAN4iAoj!awB<7(TTHMs$N?HnsLG8-)7p`4@$>**WI|K@LWRJr~J z8_!h@t{~N2S^32%t_|sc>W!FDB1_DZ0~GB)EHjVhq&OxE}N@^iDYF{i^o{He^Qhz zmx$fS<#YFi6_s}kH`@!D#K&w|Ytt(|MxcN(=kEw&UIkmhy87$qYu1bH+|Zu}ICiyw z=2O%hlRz@u0$r-JJGf-w1N ziCiJIeUpionRdB>8DkNZzWjVezdE$!jWSo0LVC{k8o%G%jQn+5T3R}#G3em0xZUlI zc0eC8Q_3dZo{f1GnJAV z*coKzSdd6#WY*HUH>*YwG0YklcBF=2OTr`});^YQF3YF!6g8diqw5-v6dxe(u~`!q zWGIY=g%*U_{NSWq*rnAfC zDUp2>@@6z9co&aQ2g!=HO1`=UFG3Q}Xl3B#%B2B<$yi43ZKKdk9*?blvi2_%O~FVb z^lkXx{!Ces@e3eS2c(rl)+5&M2EZc`o<2x=4_u-d$j4YM3$lw6f5IqiJntRJ)SlTtnKgaQ1?^Un{|U(a@!SX6-}h@J z;uKFD3B=n(#;)i#*}09H8RYa-i)zk3|2=z~IKx?0+8lfG0bjV(0&v#_;%Q|_Zzn+7 zU0t1MHC|{l?dSLK$|P%YO0j5Bs)zCj62W^I$O)~DjAUCP+ptjcEa(gE=|W)pIt>0Q ztijOQ5RwGcW}zIMgv>6dkj5)AxJe(F!JvM3o+!2DrA0^g!av!v4{b_pY+o=Cu#E)< z=M%_NGmX8IFEw4Ed}Q44iBv=1UbjPE@ehg?a95M(*d_9_0{x_8=zdWyO+yCwPiDLJ zTD8+;iD;=bw`a}OiurPK6MIru~0eH0_JBAAA0URJYp8klySePskW)- z7!rh9*nE8xJ^VklK49cISMF@OA&1WvMK1H+P+?ItpjSYr43w$u2~))z3JoBEVr({6 z+ZbYX9-1SK5C76*-ui`X3=8gxLVY%{pi^fnbo#?&j<4?(=u4^*0EE@Iyr z@}TPL4%$R=jJviQGs$J^!SO{P4q_PoH*@6n=OFC&Ru;^+WcxUbLhmPX3RC7rLV`d( zQRU4L`V4Zqa6bG3iF$E^xIhv} zMIRtlOXoG8{ic>VPh=KNe=p{r-Wv@#*=J^EzEp#rzElFr4E03v1cuc723JpY4o9(< zM55-IPkb^8AY?Kg$5a=0`~o(_UQE6v0*w1naIx9N!b-6NVMX@^>)O#B5V;&#Arswpv-xF}%o%UgnbY0IS%t zep5}vb}BLTJ(roj6L%j~tdz37-Q(6*~ zbhMj2ZpkURpL`n#ZyX6>stXMyfUr|q6rs?n6L|9Cjys9;tyNsO>ENN3>2>zy3u!;W z&SF(Qb8{_&-5MoTo~#nj#ebf*fM4Z=fAq%a{nXGCU(_rfiTRbZ7icjivjEde}c?9YELG+6XiOv#xqZ#X5hY+yBvyy0#<^M;tJ6i6R{Y zn&N-Ea4cPIRdKs5y+|TcdI*u5pv^9fP`>iqxa{!xKJy72XSVslo zn0imuL4%fz?+d zOrOHQ!lfC`ZZ}RdfH`Zgw&oM!Ek5>4HQ7KWw8nA8VyxSD~wSB z+uU{^Sm-kX&R}ux!=CQhyz7Yzv;N=Y0-R`XPmUm`Lb2oN6&3l3IMRjc)vddB6)n^a zPr`l8{*!N!<+Zi<@N=d2q~Ioai4qHZ`cxKQP+3wUt#s<~E7okME=llV8c0oqdpRsUcqQizdeN^6c+N z9q#;V!lE)ya0FF7#7Z;j~RSN@Tq9`c!-yPPJc?$s0_D#TS=d4 zmS(bbc;)dEOXP=QT7O<3{2}5;+P|+LrjYl{F$%iA^!=)?>fMsEiISWFebj11u+p3) z$Os;kelVGr$xk5VJ)i&QVw^{p!tTzkVusj5ahyJT$lCBDSj6i%v~uHW7?s0SM*pd( z@-l7j9nI~5_a18S_q94z3R2gXJsrY1<#SI$9SAU3ke(N6d^ta%3`^OiIL#DIW3oiq z#?kN6oPIOasCl7DgYV`lb-SnW6W^#@CvUtZoK`F@`7^$f&|ub^*pJF=ZgrTDU}XGh zy1CwEPc_6WQ5ODP!_m&{@~q%s1(FYz1#?x(nfso(?%V!s;62QbFT?Z`U*KEQTve3tp|}X@flV8Z&+f<*?y#&nl2A&K;b^hM42Y8=Kv*~@q< zhF%8-s{_AyEze}@^m~3iy~QH$+qucovF$IxC$(HqiyQQZISitv4J_vk>|zz{Ff+|g z$&A2@N-VUkPB=pqRi?Q1>uL7KgMqtU4bRUVDqXhZOOq)>w`Y{@o;%JIk|7fq_^k00 z85Xr-!SZ_J9VTDa=o01zaSw|AW#R(}vO|Ii;`KYJS@h$`mU%2oNP^uPQ^)rA-`dX7 zEt+N;Wxf}lDR|!8{;?%)h!JLU;LO_HyE)GN$hgKZIO1ufhR zpNfy~;8zw^jzKrcF8gCuzyPC!41d+knr0~duo;{n+EM1p9 zk}rH0l^1=*qWKSvE)E;6-C$?Rp|9U^;fwmwoFHH9HyOU1^Q^BTvkr0pzg610xMbeWg`~JZu_~ssTj_gNn0tlK&Y}S7l+8ti}9) z&!GxesP~mDsz_5^e}h9;%2sO5H!;>WgVffSSBP9Grslmj$k(>F@drUuy`>&o&%kz}#o@uu#8E|I1hx4%V+b zzx5zlh0Q|{C-eJXx@Yo#&k1D{x!59gQieeBh96B`=5N(rAzL{j74>eQr#3Tn{ov>? zGqlP~-d!0j;7W`f8%_M_u1^0`<0tF9dGo>^lZMKxUPVd$bkEEjyTJJDKO8*V4B2$m z*~aQm7?gIA;ple#=o3Bxu1deAuAzJ$uI%IWHjtOL+6IHDH9vuDqzugQ*OFGj3&aOs zb_wFxBcC38XsO%BdIDhce*u53(nI?ERJ{|vd9hEaF67hqA1OIlgi!H;Q50W!z1}+A z*uzD7#&0oxMJh$LC;nzX`NGnyl$)QD`>9f|zhYFPtNp2$`B>JUC@zgiL&(rl%gQ#j z#wnbIkEYHvKfNLAnH{suL@j;cb$hib;ZOuDok*bK7lXR4>8{RVR9sYlQxjZY;@(zo zGpF+@s7nl5n*^`E$%Nl0FSh!5$lmYlgPS2u$}(AE$CxfI%PZ3fp7N&!e8$5Jb9!A= zwkKAhT=O@A%$EFeiYSX(hb%26Jy;a_Sh=Vt2i#%(pV)+~hm#sinxoS2hAl6a<;pRb zZtJd2&Cn!GYi|PtXSrPS;GF((7Zi%JEwv+wHhW>9KsOc(RweFwoIiK zHN{Z;#qaA$;zit@o;pZ%y%PAJP&^$(EqIu{=l^VR)q|nJv){Rh9 zaQ!Fp28X?`o+d5N&it*9U3ebf0NZKavAaC6AmS}xbUm52 zIeTEn&CvM54p`Vu!|20R^rarxR?9xa0T%0FVO((~pQmIAYOR@v+Qt0X2P2{UpjZ9- z1KJ3>F^}Nh?JILe%yKbN(aw-@CF!aM>9msL()reyOOvbRnw;+@Q_qdh^b!nG-U~n6=MVf_Xm{swS*ko$fJ3o*Iadc$r-FUFMp2t18F%Y@)#m;VSg8%sMK?yUX zt8mI_$?~rm$;+X~|8X9xbw3ScChK)fDI@CCq$nLIk#xY&8#G&Jo-m3UPk#V^wB4G} zJ6KwBjGyGxv3Nfk9+nh;nHOM88jm3~C5dA9|GoV93fP0A!$oc&76tAi4HoGlL{9-> zT9FhSsTInbgi#)wRr>G@k?|3Y+uxDzb}(_9WaGNlx%=)g=R6F7yf!$hj4E!7cu*(o zzoNx4{6neA#rX>3$edFAMcb+JwnH@i#{Oyfn6M|{W95H(V4Mnv%Ucnmb2PDb9+vVq$|k#5jhrj)`} z)2ra!f2Zv}#!72KLop&8L6^i2Q6N?^Y7RI_#-ndCcK`Ovys)46pFVx1?)gR3HE2~4 z#=S>YQ3dv}eWIfyyK2;M?1)pSlClbUR+=zTV(i#-%$d(d2*!l~eh1LJx5~=K+dmSj z5{O{7q28#fS~aIOO)pQU@F*jgVG z-7XlU*+7o+_#E*D3Oa;E@ILtFK_qh#WFsZYrAfQUn*yuYT;{B3TU2^IEXN`FOp->A z0&BpxH8;s?VnlF$A0p8mm-LxX)kpy~TSIXC7+ZxiS#_fXI4#EuM&NX*-8w<8s?*)` zt~)G;P#ykaVFB&PLOEdZ`N+m)@F!Q>e>G(icJ(+J z-%$S#`@3_m2AV%d+W`kQBSPJXPv>-{1D&M~V}=ISvcr}Q7q7w4H-$?_F=BlB za|h;`C*!V^jtY*wKQ82BdVEis9@c}?n1^NLo6OIm8-!nZ|6U^$B8|}_;3+b$HB3HS zMm$s`Nx<*~>s*i!x|e_1M2VLQ=L$DbuBvUzY_rbz85fJOJw!gSW~36L&ZvKjR)bE- zW&xEzbF_fcYNJh|O?{mQhO4NlgiHaUR*Xt~qnIh{`gcnG4WKD3h$)%;rvEk~Ty5#< zVsgiXG(@%N!D#ilOL^~rj_pvx`GKAjswyo;J5*S9M2xVZeShZY3{%>xKV%*~CS*|p zMmt#4*hDiu2#^kdlcssh)L~eI?j>EF?TXmJw4KxTHVlk7g~wu`v4y2G8P6*VfQaOT z!4;Y4+I(WBM4M9lv}Gm)WV!k>-sbH}TKcl>i1kR#lMnBJ(}Ibz#VCRcIz&tMk9LT_ z*MPkaC#(#fSAqMpv7PiDjb2Xau9)z;e34*$MVHp0HT3zfP=`CnqiJm*bxvx8rOms5 zQ}w(Yp<#{ehm{sIOMlp!>d4tvs&1c1pAgXZ9|80-Vt?Dm<< z5Yj0>+*+Tl=k$ODEbH}dyKm~6 z7b%T!=}aL@leur;>2CT!XSb)pW`7&X{PN^|=f3yJ4ybb4+&bZ;f1rfPyOG8}1aNgi zC0AN#!K->DT%r%J*62W$Ghl{l(I7c~Lcqgs9-;>Fa47riYs0hJDe|^EABc{*_szBc zvA{85!~eCs+(&hhz8=3CBcu;c(k=WM#|$rg5Fd|Op9iW87BwsFT_X6yVcXj_akLu^ zX%iRT=QpDtNCSyC7P;$>!UBdZN0SbJzWb6no$)JIx9?vcMJ#VaQwEwl4>rV?hNhLS*ipZVz_OhaAYe05J(5g9GVp zEaXL`8;gs5Uaf#(xm-m%K={X|ete36ILePom{F0NwkipfB8I0{3`%A(|D6Z;jHI{m z&he`Sj?6#E1gu7v%ATsb;3C_~=N>SK@#j6;@eq4H z?vW)SK5qR-n5%9>7|fR8<16}i6kq{k(uwes<6|bgGl~0*d$+OK&|3V z)w4im04&QVReYfP>2u70hN{>K+iBQSr<)44gixu%ay$cZ7m?XP0b$Y@`W^*KTC`jp zzT@I_soBomE>Emfihtw7ylBtG9|i%_AV7s!n*q7gh`pVN!8$Mo9#N4j$24H_J0QN6I#GdpUTa*MxPlc@4Ui|I*Vcgs) zTLfGE`qpQJoMtNaWUTR?;V|>dcK z)h%yak@uXckq>lPC01o0(0Pf6$3y&?H0Hp=qh#BZOFGV_gBZx;wJG^l6KKaiRm%*#9@|wht?rgo58i*roY1M&tY| z>kCt$okmP;L;_hBtyX!dkDW5Ek8B?@dTx&7ues&>pX3*4-E2e5z&2#dL8O9XCgX2<>w5w(-c%kp zMh_r_idaods9!cM)7O148Ye$y;`JbU8V#7{05P7%B%CG4X$J4b%k+5QpqH509(J@b zE8pVvX4fNf%>1kk`ZkfLDpV?{<7btrTH3{H_3PM2R$|#~Vz5)#yMtq``@X`S#?wsJ zn?}t^l0y3Suuz#6+Kt4^MO55Zn~l!{7CK6E*?8&#ye7e4z)W_GAW5{>QQs$SFUE6KS(6`7rG#WS4#bgGO3@e{ffGup9_3xHiZ z)!i?X*IyeR)2(u|cPGh1MUI&lI{w2)2`06^MFOpAf7ioEim86nGMsTU*wHe(+drYT z5;$kJvTkGEHIm?4o#aSJG*854a5|LFm>lU33JD5M4jhrf8Ly|xP*|gR|5UI=Nr_)* zQb!}Ph7f_l`ky4l!rY~q`n4HSbqj~8arwJ8<|X!`a+iLLKGee(guN@H;=qaa&_JDF zOy=!Nf84=A`h%-#+LVZdTEC(bf9ylbOc`F~_ea4;5M-JrU|7-O=q3W9`(xF;DQ*|& zuj5ZU6|+TiHdO(CH!H)8J@^@Yg;NB$!s%~L=SW#5O!4HArp!Jz?SCgh1f$U=8cD|D{3}s%G z_orn{0<$)F5p+MLj&sbhbxbo81}xDVAZUpU*keYp>7lQZ-coytH!Uq}c{ZeYJd9O} z^l-5$ILcc5ygMjBa3nYo`>zqshKV^OJK!8&q|}G+1zd>}YdGl=s;SQanpVAbrO4Bg zW*R#lq^1F(s>o$y4JqoeT3fYYh-;|ivrH<$B0#)4NDP#|BV(-;)>(Rc2lOXqn+~~I zX92ZPT^BCB=rDkee;=DARS<^3KZhO%|Y3k zP0f)87SNJj3?qEKw07K~xt-Xd#`}5*n}-kV%Vbw(cktMju1$W3umIT3#VyI*H`tRb z)ghvKU=4Ud2h6crm>rnO#1&{~`5HSPA>kg$G86heHU6Ul@m)AkJ_OL^666Y$ae3H_ z`J>upOA{{|yq)>!sPPyKnv<3T=_haJr}C`XIPRBW%9l9-*T%`viLcznllUMg+rQfI;3*pzPo*-r<}APymW*J*EzM zWg@5Cc+fHgf1!C=Ttq~fj7_T!?L`KK8i~VdQE_v_DgE_tX>+-e@asiAL<-94G zV9u67DwnVtpPkfDl7Rk*_p(z#o{U^TQFUfauys=Wy)B7`?iV6em{F#xjM97Pxz@Q^ zI=`~ElrGnC9?stAW1xo+Hr|7m5nGyc`Ux{{#>_#8ZT z;@x;Y?$&GF8)^Tkj`em4Df@X$Ri%`QP@Lsig|$4_oAxi*@m7+NxBe5viw4lnI_65H zu0?L6T15fLpw@)=Ds3qhh15bK$66i6an}HPI9Z5R?9#&el)FtKqW(69Ql#!Xj)P_W zDSzB^1ibn7o7L1gvgtzGesedFD0J=OCh|NjJ-;6A;PfoM`ZRoZPo6>U-a6!$=Z-jYXi=X`}S0l@#!w zF}fBVp(p%3kHO>UeA{Q;)8MO4iXG2G&yV$t?2_&H@B1yYJV9nGF#gfBZLlBWN@>;hqazqTrb>QuERLYh4Ei;G0gZgD#+7!$rIktyL))~d#H8d0m?AkL*TO*lw z-&f6?>6D_yk5@rqGh`j4(+lT0h5idy63?^?*?^q#+dxr$Mlqt;4>SEi_X#P% z95;tQbXF#Y-Ed=cF6Lvfh=la)=%aw1g@qq`FV<5N@I`HMnTGC#Y&y9)lRzti#A@qpH%IX@YmV`URtLV5WN?s_4Xkbx zj!U*ZwPU`=Ww3?1zt~Q`Xe>!lZsOoZ`r=W|v-$X-(1M%0=g7nmwrHHNoKo#vdTX3S z#jPh+?Qdpme)P6cmzS4>OetR}ioN$v%JDEZ&c{`gu3$@7VasMvz6(%Y;$XZ(gpw`Hnd0 zsT2Uy0)EyD5SLCb^3c_iFYg#@#%~CtC}M{%%52wE0;S*TDd64C=WVv%;I*t$Xw#Y? z=+ulA|6_t2=zol_s=K*qEj}jszUJJ9RcZ+DyI^P4lSOG4i^&^NQW9Ot99cU%!whGy zcC>EZPFQ{8_EwsBIm6~T`%$4O9^9dCEEtqjEfMs4QTRWUkqk4%Tm-%73nYFWqCey+ zFw>@?)5BN0^X~_T zgYdPNK)R#Frbgm+RGJt^yh-;sWv~pLCgN%|1e{p_Sl|9?XcF?cYK!4;Uxt+aD^JV= zov==bkcv>{sNlvQ0tv^=mjb9iEFLak8JS=TnJ10>-fBP{9ZfB=Qh$4`p zZpmiNF5r|sIr9f0wED|x5W0<`@CpR;^yn=Ipohbccg`#39Go=9S5k321GF-& zd|F42%S3>0I`Dap@>kg^Y5A)H_l8*SI_JMfxM&mNfs^b;J zsToCDEekyh5-fA8O=6?At?(+CN6X>J1l zus=UJS#~s|$Ts;dyCIGl192CNcN&)E*in_qPZ{qPUi|mjiQm|=Myu}FzpzXsu8BZS z!LzK9{b$KG8vuF%^T|!G8Z_j=dv0^D-Fne=`F!}5w85nJG;J+gnL&d_Te%j)vm zx3BD}ZA)&QJIW*Y>Tu@Q>HI-&&!^N_s!Uo(vFm?78j;B&@ag)gMU0dAL zL~f($3(J;8Flr`%h|T7iqiD>sWN!$#(@^fv+wY`fd-Rj%K63y9sR{|vglq`XQQxAc z6{O_n_ZY&;3UaMq_DMA=PDhQyyW7J-uQgZMp9ptG*ss${a=yPZoT+a( zIJx`t4}L>|5|0`3Ddyj|osQX#gPUb#LxDb&Gw=Ea&pf|onZGUyBm5hfH`b2$s$9@U z$yGl*tKrCZVRmU?f&&X}JAT)Sw&oKKaxXre`mgD9g%r@J#&H*caZ%to;d%LY&8BUM z`}-xfJ@|$EwF(az?)&;)IR@h>7}3bwn~Sz2W1KYWIVyWVG8kl;{s55JwCzjd_J)0M znJb{{+%4B!>s>=wy!C|YcM0N zgdD&1>Zre>yFMqmDI#!9NQ#p=U9MHPJ3M%|)2(19&398rYMwpSIp|I@R_Uv>~JPKTw2&WA+*(034gk+9yHvq^mh6uD07vr95zjNo2 zeaw*q9YjEnhn`y9NKXoQpc;cYUk zli~PPWu@*BQm6mF^*AgQ$%=CFv$OEhRw#iiaXiJjS}-i-YE-m&RJN7#rO@QJhg!uO zR{BXrOknh0tv9)~?h^NZ{VQ9hJySeBE8p#a-b2lK7sIY5umKwfPg|afr^vG8rF%xR z`);^q^7H&-cAXs#Ot-TeJy(6JSGK793%t&}QFYoDUde4S9BfT@7r)FZ0N!-IDDBWA zMzuAZv#xD*ShjiVR~Gy1vu}Y*^iQviis0s%vCM(R#MdHva&XeeFOBcaD>oFFykZ01 zZLW|tJ)&mT10l|csINa7ftSnrdNi`?9cjqbO4!M&wd25CryilxU(Fwulrox3Jq!%Q zXKa=bT?cmY-AH+!$+AqbptJO#6tE$>b%Du>R{0R_tXkl`BNaY=ALCV0oX@)k*jmh5 z#|FH8T|sMl#H9t-ezFE!zWd02$B|WA-E=n|ILzzt0C=sC_LiT=@!t?Wu1Ggh=)`>e_f5`BWS>b{CA3@V zPnZ=K_=J3T@FrspFDLMN_bcy2zcow}-!TQaz3#T-;|Rms|34pL@ZPlG+W)N!(yaM6 z7=78?_?1iiUE4I*3oWd^Q4*P45uBgqcS-hcTF3}&Tm4cMTcNjQ-Us=pq`&5jz4||5 zX9z6el)G^0%9MEpj5j`PTGzUL<1Rnj2klFh>gxWn7woWp@#yk` zWBbNA2RB>JirpZ@9r5WoOM8JA^K1~z=aoPHYn$|(Ej@C7-Wf^uP6l34z|=8| zbG5ohG1G>gTXIV{rQB}VIT~kJd+fOC54@jzLAP{+>-1%5i& C7PEH% literal 0 HcmV?d00001