From da4b1f86f4b5611fd7d6c7781dfe3e9a673a68ad Mon Sep 17 00:00:00 2001 From: jmjatlanta Date: Thu, 22 Dec 2016 10:21:18 -0500 Subject: [PATCH] Added command ipfs object get [hash] This will display the formatted data of a MerkleDag (links and data) --- importer/exporter.c | 68 ++++++++++++++++++++++++++++ importer/importer.c | 75 ++++++++++++++++++++----------- include/ipfs/importer/exporter.h | 3 ++ main/ipfs | Bin 565004 -> 565324 bytes main/main.c | 8 ++++ merkledag/merkledag.c | 5 ++- 6 files changed, 132 insertions(+), 27 deletions(-) diff --git a/importer/exporter.c b/importer/exporter.c index 34fbfd7..a8e8941 100644 --- a/importer/exporter.c +++ b/importer/exporter.c @@ -70,3 +70,71 @@ int ipfs_exporter_to_file(const unsigned char* hash, const char* file_name, cons return 1; } + +/** + * get a file by its hash, and write the data to a file + * @param hash the base58 multihash of the cid + * @param file_name the file name to write to + * @returns true(1) on success + */ +int ipfs_exporter_to_console(const unsigned char* hash, const struct FSRepo* fs_repo) { + // convert hash to cid + struct Cid* cid = NULL; + if ( ipfs_cid_decode_hash_from_base58(hash, strlen((char*)hash), &cid) == 0) { + return 0; + } + + // find block + struct Node* read_node = NULL; + if (ipfs_merkledag_get(cid->hash, cid->hash_length, &read_node, fs_repo) == 0) { + ipfs_cid_free(cid); + return 0; + } + + // no longer need the cid + ipfs_cid_free(cid); + + // process blocks + struct NodeLink* link = read_node->head_link; + printf("Links:["); + while (link != NULL) { + unsigned char b58[100]; + ipfs_cid_hash_to_base58(link->hash, link->hash_size, b58, 100); + printf("{\"Name\":\"%s\",\"Hash\":\"%s\",\"Size\":%lu}", (link->name != NULL ? link->name : ""), (char*)b58, link->t_size); + link = link->next; + } + printf("],\"Data\":\""); + for(size_t i = 0LU; i < read_node->data_size; i++) { + printf("%02x", read_node->data[i]); + } + printf("\"}\n"); + + if (read_node != NULL) + ipfs_node_free(read_node); + + return 1; +} + + +/*** + * Called from the command line with ipfs object get [hash]. Retrieves the object pointed to by hash, and displays its block data (links and data elements) + * @param argc number of arguments + * @param argv arguments + * @returns true(1) on success + */ +int ipfs_exporter_object_get(int argc, char** argv) { + struct FSRepo* fs_repo = NULL; + + // open the repo + int retVal = ipfs_repo_fsrepo_new(NULL, NULL, &fs_repo); + if (retVal == 0) { + return 0; + } + retVal = ipfs_repo_fsrepo_open(fs_repo); + if (retVal == 0) { + return 0; + } + // find hash + retVal = ipfs_exporter_to_console((unsigned char*)argv[3], fs_repo); + return retVal; +} diff --git a/importer/importer.c b/importer/importer.c index 24fc431..d58cda0 100644 --- a/importer/importer.c +++ b/importer/importer.c @@ -1,8 +1,11 @@ #include +#include +#include #include "ipfs/importer/importer.h" #include "ipfs/merkledag/merkledag.h" #include "ipfs/repo/fsrepo/fs_repo.h" +#include "ipfs/unixfs/unixfs.h" #define MAX_DATA_SIZE 262144 // 1024 * 256; @@ -16,27 +19,48 @@ * @param node the node to add to * @returns number of bytes read */ -size_t ipfs_import_chunk(FILE* file, struct Node* node, struct FSRepo* fs_repo) { +size_t ipfs_import_chunk(FILE* file, struct Node* parent_node, struct FSRepo* fs_repo, size_t* total_size) { unsigned char buffer[MAX_DATA_SIZE]; size_t bytes_read = fread(buffer, 1, MAX_DATA_SIZE, file); - if (node->data_size == 0) { - ipfs_node_set_data(node, buffer, bytes_read); - } else { - // create a new node, and link to the parent - struct Node* new_node = NULL; - ipfs_node_new_from_data(buffer, bytes_read, &new_node); - // persist - ipfs_merkledag_add(new_node, fs_repo); - // put link in parent node - struct NodeLink* new_link = NULL; - ipfs_node_link_create("", new_node->hash, new_node->hash_size, &new_link); - ipfs_node_add_link(node, new_link); - ipfs_node_free(new_node); - } + // create a new node + struct Node* new_node = NULL; + ipfs_node_new_from_data(buffer, bytes_read, &new_node); + // persist + ipfs_merkledag_add(new_node, fs_repo); + // put link in parent node + struct NodeLink* new_link = NULL; + ipfs_node_link_create("", new_node->hash, new_node->hash_size, &new_link); + new_link->t_size = new_node->data_size; + *total_size += new_link->t_size; + ipfs_node_add_link(parent_node, new_link); + ipfs_node_free(new_node); + // save the parent_node if it is time... if (bytes_read != MAX_DATA_SIZE) { + // build UnixFS for file + struct UnixFS* unix_fs; + if (ipfs_unixfs_new(&unix_fs) == 0) { + return 0; + } + unix_fs->data_type = UNIXFS_FILE; + unix_fs->file_size = *total_size; + // now encode unixfs and put in parent_node->data + size_t temp_size = ipfs_unixfs_protobuf_encode_size(unix_fs); + unsigned char temp[temp_size]; + size_t bytes_written; + if (ipfs_unixfs_protobuf_encode(unix_fs, temp, temp_size, &bytes_written) == 0) { + ipfs_unixfs_free(unix_fs); + return 0; + } + parent_node->data_size = bytes_written; + parent_node->data = (unsigned char*)malloc(bytes_written); + if (parent_node->data == NULL) { + ipfs_unixfs_free(unix_fs); + return 0; + } + memcpy(parent_node->data, temp, bytes_written); // persist the main node - ipfs_merkledag_add(node, fs_repo); + ipfs_merkledag_add(parent_node, fs_repo); } return bytes_read; } @@ -44,21 +68,22 @@ size_t ipfs_import_chunk(FILE* file, struct Node* node, struct FSRepo* fs_repo) /** * Creates a node based on an incoming file * @param file_name the file to import - * @param node the root node (could have links to others) + * @param parent_node the root node (has links to others) * @returns true(1) on success */ -int ipfs_import_file(const char* fileName, struct Node** node, struct FSRepo* fs_repo) { +int ipfs_import_file(const char* fileName, struct Node** parent_node, struct FSRepo* fs_repo) { int retVal = 1; int bytes_read = MAX_DATA_SIZE; + size_t total_size = 0; FILE* file = fopen(fileName, "rb"); - retVal = ipfs_node_new(node); + retVal = ipfs_node_new(parent_node); if (retVal == 0) return 0; // add all nodes while ( bytes_read == MAX_DATA_SIZE) { - bytes_read = ipfs_import_chunk(file, *node, fs_repo); + bytes_read = ipfs_import_chunk(file, *parent_node, fs_repo, &total_size); } fclose(file); @@ -76,7 +101,7 @@ int ipfs_import(int argc, char** argv) { * param 1: add * param 2: filename */ - struct Node* node = NULL; + struct Node* directory_node = NULL; struct FSRepo* fs_repo = NULL; // open the repo @@ -87,20 +112,20 @@ int ipfs_import(int argc, char** argv) { retVal = ipfs_repo_fsrepo_open(fs_repo); // import the file(s) - retVal = ipfs_import_file(argv[2], &node, fs_repo); + retVal = ipfs_import_file(argv[2], &directory_node, fs_repo); // give some results to the user int buffer_len = 100; unsigned char buffer[buffer_len]; - retVal = ipfs_cid_hash_to_base58(node->hash, node->hash_size, buffer, buffer_len); + retVal = ipfs_cid_hash_to_base58(directory_node->hash, directory_node->hash_size, buffer, buffer_len); if (retVal == 0) { printf("Unable to generate hash\n"); return 0; } printf("added %s %s\n", buffer, argv[2]); - if (node != NULL) - ipfs_node_free(node); + if (directory_node != NULL) + ipfs_node_free(directory_node); if (fs_repo != NULL) ipfs_repo_fsrepo_free(fs_repo); diff --git a/include/ipfs/importer/exporter.h b/include/ipfs/importer/exporter.h index 58aad67..395199c 100644 --- a/include/ipfs/importer/exporter.h +++ b/include/ipfs/importer/exporter.h @@ -7,3 +7,6 @@ * @returns true(1) on success */ int ipfs_exporter_to_file(const unsigned char* hash, const char* file_name, const struct FSRepo* fs_repo); + +int ipfs_exporter_object_get(int argc, char** argv); + diff --git a/main/ipfs b/main/ipfs index 6fce399b8c4fb1d54aa15bd1230aa898629bfe88..388725d29245360cf7c8e78a168f94e172a8e205 100755 GIT binary patch delta 94790 zcmZ_12V4}#`#*j&yQ`qWAswX`0V}8|Dkv!Ep-EZr4&v?wsI)Y(wWU?2vA zp@Wx%C;ru1alLKrgb+!kHl`XeL5?KtYG;IM)J=j$&5-AV8qq+bPH3i4BMMKF^+N4D zUDdyuN>0v}mq_iSJfjQ-&hW%v_V8+khHeH!!q(~rJDb5!6SVHCu)$#Oto`kQ@DZ6* z^ONE>S2q-|=;0zqR||8BH9fqM>lWp*X6e2G$3B^TUQVwTMpGT-)z!MXcn+>+NJC-5 zVaiF%rjS&ZB)O=zbHJS&lEGv#n9PYU%yXZZ%$YXRh{Pu*OUwb2x%WAnOI`VK?HF3! zOOAAQr#tJ&NzQ@xM?ATXTjv{chO<9iO($mPx>dguE{h601_IYdelUvuZp ziTBEX05n+=D@>MjJCil`V+h$kM1XT%7>v0HIG5!?FVFt3;3O`X;w69O;*#9=zpNzA z3a+xjL!C4C1vM_?rPQ->LRR5i>|c2EepZ59;LT!`Xqv11fxDI7{Z+oQaiQ%tZxi1c@&vRgJGN-_+xi&OK=%m2%Ogm&< zVB6y)pQ+o0-cOPPyj>eUcZ76FVg($7g9p{dGk|+(nY-TB9$q6+#$C2WImyGkJ({~3 zK{F?AMRmh&@2#d0Df?96*-5+-jv}wE$h$%}hLV1LPX5U|Ea_UFyp3N%3)!tl76rCR4)Q7=U*{Q| zW|@1?Hd#$LEdEnI;1l9@qLyUHd*8A}>iXx$zR~naExEOC8eLLL{?@kz?O98{3KZ+)`UP=Wut* zYRX;x>V)pA!nY$)lK6zjuq1JZTGy7uB9j^Mk#?Vzm;3orhnn)QekHMN~4$ZBTydXgL0T&|5hFr?jlzPOrlM` zmnR1{rLWe>-vqX%?egWTfn8~3b-77UD;jJkj|=KWPgIw82L%Yp)g?J)h==@7kRx4P zO|B6T}LMr@?!*K<3;_hwsIu@``LX`Rm}JVgs~OxxcTE92ioU z4&5iW3mHY%pOEkO_w{`y{!jfvc`HU+UbPcW$k#*0(b8bKYrP;k`(`=x9hRrpA8G$e zLYb`&e@ODp`t54&MX4iCC0nIK)#SzvTGFl60vvBv(U0*Ce0eR}$}yuEP(wZ4`~lL$KS zwS4SjKe=a=Ih63{mOD1|x%BQx$&*YTm-n79Bd3^H_ z|2dI-XxL{-+-FXFQj%Dtca4Ku*Z87HE@&`Eo7bhoir|BXEJpREt)9z+qr$yh z{}l~e`DBmcmK0awA2KhpHF+w385Pj%%rg|8kC^C@2nxCz4@$o6pC{tG&Zv%S2+yZz z%>#GKkE24|z6Rgu7pDzHIrmb*3D~U`zhjFFUiTXRzdV-QcFC<;hR{Ke<V&4x0OGUe{Oj*S>QCywZ(AlQ_ZzJTln9gTcavo0+j603$z%T*|yh@ zRMrK~vdjf7cLw;jc7My4qrC$MbH%E`P!;7eux!rFP{kh0bz8;JN89DWtr}!Cg{?gN z(}%<&1H#B7k5O)`0Z6>LIN7?gqViQ`vc-pOmkcSEy2<9j7!7uofoL*sKBt0}r7Ex< zsye=EJsDs>3U{a-MZ3HwK@JILIo=Pjau1oU-2sgY{UD>QIdeIIuSRo|RSw@El*d=GVS(2$akrr*`Q=(PF45l`G zX=jb&nz;@6PznW(nauYF@3kGgFB(QS{?DQ&=U$x2Dt-T0PHE%gTas7`73j>x*nGft z4dUp&2Z7scquu4~HXiXqCGh=Qr*RZCPLJE>t4q76x&MLDBuPZCH1aXinR=Pza(*=+FTNUEAOZJ7W?KguO{wVcPBm(L0;lz z%b8n-alSyCbl`uPtqj{RbK+0noYUtbkk8rrx8UT~>n(|A)EPm|02cKbp}`i(U`fI5 zNv!~L%D2W`JLGJ^(oBu}%)9cm*aT+>o+suZ#1;|Cx81raABv4`Hyd+>x=Z0ztz~z! zvhwXNYHj&W6i21UgN}i?utK$C!~9^YbytpS>rU6X%Kh3lY)J2dW5ybeuj4GJlQzV- zP^}=o{LH(f>Xn)k^K4yR<$|^*|Ap8es(HT^3VSQG*mm1R_H5U%O?ysyXSG1JiimKh z3T&%g)WktP9qcRDbHJE{X&}o*&T8jHN4m(X+xdFW;>?`6rRWUl;2Ib5JrPWl+UmQ= zXW9j2@kPDKx{@c*_hNWuP4*dcC703b{YGA)snC3 z#!l{$ZR<5&X{uFoZUQLf->CJbaaV(j86#M&It+lkh)GW9tEotu(MOR#nx!*hWX_G@ z?3|sPg;w|@GTAy354DTrVItrRlVzUW+hhyd5fl#YshpgdPB0P;A>%?1)x%s(BMuqn zMu1+9IzzFgWA2EtPQrM_W2*Au=|Vn|T6-fq%_yIi%m?6Nx{cRy7194~5gKy4ow#S# z*a=XEXd)La!GNd*)tno~*%p-m6KWLDLUZC(Z?aWp$UG^ zg1YZirOVfA`AS;8$03UNar;p52QV(=D|-ypoMy|%1Zd9nMiLcD~0@8b;=!)W*07)Gl$9RB*yWi#Uxz?@lu&8ZDy2 z%$a)=Llz&9^?qF*!)5ruIua>WqSyb5U`B@sKRua&NjKAGyMQ4TqL##)IA+jJ5B#z9 z(f_@_m9(Z{ES6dq$YR_ScjXk1dL}5n&mqh8e91TBv}}nBruR?D8{<0H`3e#k72a+J zwT+cU3jbAhi;tyue!;@gTTYL^Kzp8)liRnZ?kDBN?HhX8N_hzN9pq0ulIFz4$T+?5 zSo=u=xh%(YG?TvafsRv&t*}+65P@F#PF=I^bgd!hbY4v!%f4N%P|rj1n=WI?*}}Bs zpqgZ(ytMBka!+>Y7flM~??oM&y&oTcl29Aw#uFQr_)Yndi zF{|Ss=rJ1owR~x8YjQ&N7?+P3sjti{g_BI=nmi^1$RVkuo{mvX8PC)-fqem9KwZ{h!Fji@dLvQJ>8hxHdFOpYJh(YW9 zbHYTwANFWvhF0-b9%B)rRWT0UCy$sIPAX;VL~r9iTEVXr^D@MqlDAH5FzghksS$gD z(@og$h7D9g>09~}jV@~RGjHh?8vUN4%D=O7PotmF=vU>0N$~`|Xwq0Rps->R6{zD5 z`N@=V7g+EPeO2`oTYQ{BkNG{H-Pri}wWrot&9kSbpDdd7Y;=?v} zySPb<#0uAa7*5C{xpaCv(oJ@n5lkb0ms`x3L=SC~YtL|(cg%34>yeyQSN;pk30g92 zW-x7`CC4IZrzJPc3?`*=k6GUGU8Gj2sfM$H$snZSNIez*WmadBAitb7l?*DJF#Ahl zzw{T?k^0kQ*ST8>#;>`P2qjZK_H{LC69i5sae`=@_nDlUHGrP_QQncYirkTVWyg@8 z<-F{lJo8rZG4!Y<@u<2){7s)%$_qc3|J>*?zrKXA@lwv*O9rDAi%ecaWws;o@D)KG zB@O>yycP1=6+LLXR`SCYYiWGGZ2j1uhUd$_e!Pgfep%R3{*jPb@{LatsM|m}eC0Mf zgf)*B$%nz%mM>hNSOPr8+=z~^TGlhtSOE>4VEqY`76sUT#& zykOOz_F7vIx@NN_;*2sbSeCM-M@sS6jrQvCw475^2J?BsobumpWJ9efQw_2 zWZ1^fd(4MT*31Iz11`zKHteBZiG?9Q4kfhO5_!>2fv$dwcs0#^fmzU|PRiD(^YV_L zyvV-7KYrR&lYA?iw~j!~-rqWnoRNoZn?(i}UfO1=;W}fg8l5bF-!UblG!AnLqxaP& zu5+fSoB;s8^W6*sH-LOI~(0ob;BrUX@9)oLm-6))r1FYb4SyYVt|8aNA8^LPp8wZhb}e z%Cl~_B$mQWw{r!GHw>-rB+^}yD)rf&J(LWS2i>=lUhLJaBb5hU z40Agw_ju6O<#SN}HV!#B+Ss~gagD!?P7bpC^@9|0Os;^u-Fx!2An)p!*pkcFPPB2+ zf8=Hl8)Il5{_t7Sx9Ot6=Fmdt8p9mEnJgL}8|U?YfecR~Lx-el;c{00;jG8lsOZWV7#2Y59)UXG@ zN~9-v)1A(wi4+^jdj>^ ziToUuinkQ)E#6z24Sj(^_H>gB&Ae9_x17OC#ZTdAJRIoI%zInB`9QJFGYLnZR<}kz zY)Un8w0 zWOJFRxJ<%adzU%8kj~W5jSX=j!&(mRCK~R}82#?-1*$VaGlnPTBRND%<{{ZZOJ*Y( z){Q-LA#t=`R~GF`>X8L(s4M9e+a*x-DvkqVLIu1Uhh$`tt+KXgNEz`g*<1l9M1((^ zI~OL}!NE8zAVB$oJ#;0F$(PL6jf9h2W^yAZd=ep6eh;m_i&gwkRW;|H`p{K+=0b zFLftj{Mzg=5VQkQcb4o)mXl%1B~S9Hl(l{gJgnWx4yFBBOL`(XyrW7DLvoCkj7D;T zmNX$bMN9TW@4W($K9MbFqdU)UYKQ zc22{VYM4#Kma!&&=m(8TS#5vfUw?a|Xh@8_S#`FSdojZ$-kK3i)OPvQ9RZtOO|7@7 zY@k1h&&nRf%b0r*eVTiyVdpfgd4kHbX;=#l<7+ucMr)WI>JwON4dXK*uow;F>snxK zH7r`g;xvpexWQ}RMML{(Xo7~NX;?=Mo1tMQ6-!(UtrRW!DUv<4{<|M<+vddF{mx5jmG_`5*AGQxRPI3Ry6s6ij7$P zR%9wERX%S;>}k-d-_VjR?UK!N%Mx>+WjMmj+E)T^<2CLIe1Z;Xzye~32Pc>Z^WaUwR zf`x(oN)|PcB#{qU)Ymko0 z^U);ViF~JgI-N|AX!JCt+FVjp12#%N!q`-)v|UVg5Yk?GWhQ~Osb6pAw}$v~`Wo_u z3rS^{e<3;Kk}~X9@{d5SDT4~hFSW@grRIM0St{07S|1<ek+!q4 ztPA7~ZMRg(x=3bIZvQfIB;*@b<0|o|LVwoqD)A#DSn^d8M{=0;DhZ>l1~BC+IZ6hz zg=M5EY$|0W2;gEF3A10^U#+B~M7HZHnV~Ga#?5tQ@^wg-u>;qk@7|A9Tqj3q@D#S| z2B}Y5^ksK$kWl+ceO1*>?YU|{HuWZg{*oQN2?x$A_imCyl0$=W0&b7Q@PNjiV|(t9 z3{+mryCj#CvYmHHXN+fd_s9azK53BqsU_xYOl_1(-5nx}DZ1q{BguWnG zMcU#qv-_94K&_HD#8V<8lsW?S6zpcr6fiMIO=GRA(R61zTUD=BxA>Z!{Udnwi0!CG zH_~>q+2rbUDcQ(gSEpfQF$=My>&P{B)Q%R=h?#7jJ>5VSD&aL~XF?7s88zvBLM|%9 z9q184jn`NcBOTzD5z5Oejpd+fx=dkT7-K%1w%>+{x>fc|#Qm0On{vwvz+ zUviUqIn!<~PtcO|iBb1^Dx2+0>w5Hgmm?;_k@`GZz@gI6~ws5aRm&mXzG=Kg!ep0YF-nwgw6mb;K(=l`zM-rQL0_tyyjWAGK%`9B7u z#L<*T6tE7#J%=*;b)kDovT@LUwU<`#&^>U+uB%Z~%(Fp24 zmQ8Y_%Q$@FMia;d*1?^wCttC9?z9mpVRbxcti!~%=v`-wux^pgDNK6Ds~Q~t#b5JH_#vW9+iI<+6kzVoBOSXLeOqh0E^^oE6kYO0%SMhJ$kmSC)6 zq#`vbRwQfZ(V#qF?fj{iyX#0U6Z0t9JSP~(&4Yq*zsun&o8(V}f;vD6-6#XVwj8}Z zx5${g5G(i;^V6i_TfD8DXTSN=p2p+DA*da0L;eMG3qaGq&r$E%GNauT3HigO2BG-xBJV%Gv`i2E0Aq9K@Mwu3k0&kF`iZRFTeOe301cCdiPbdd4aKB{oE0lTEh4jb9h#-80;;M}V0;ah@wg&0C^+a^?ysCppDoDVL2mo>8%=Wh^U# zeo5Xizet)-CMrddv<`9Y*%LAe#tHWzIOS<|p2c$ZpeaqZ-_t|Q$>A{T(2Vva?b(`U zbY6{S8a1SD4;Iv%u5u~tuIisT#dG`{>TWC8(dP6tv9kOqw63kn{wSJC?MsrmwaIQL zSmS8gfvjOuqfynVY-cno;3TWniViXE=>nN}W3*upBz^X=nXPCmvYHjPqTT3#F6^T= zv{`igF;pZoSZ)k`WL#uI7Kz5mCwTeX(pYXR z4Q{@-6Nm}MGeyuU!Jos|oM1dt%!N*H!hBug5D-pq!*U>&)(N@DUL=uIdBoQj>jt1n8<#Oqi$Yl z3EZJ*!|C_TbFDabISw%$t>7wS5~bel+3*gu^MImw)yQN-;*9i-j-ZatG+Lx1$oP!I zSRE+?GO7Z(POd;I>hBLVZJZvQag%hJb3lCT;+1L%G=SE~Z3huVLR!iqJ5pEj7wgy& zU8|gZ(vc3gUxi^0;@Ck|cBBjJ2Wn`e4s1y$x|SSZp(gZHGs`g1AIMO}H;IN(@{D!r zLJyLEnNu=4b+MA1OxN0x4_NsJbg1xTwZI;@3U%11-n0SviLL037KD+dH->TyL49a< zVf|+U^EVPV_ER6)S?CB%RdDG`3&>2iuP^N!^gDGB%6tg))XjiAHEBLS$9Gq+(h0U#WlwBA?3!Q$=QwO_b zb0&yU)sM2zhtd%=CXb=n!djypoVjfYf z;P=9gHMT3;I0Ccwc~&}t)+c+ES0m^$f|cl!Q8dKCtpb8`iYW%@koj!KC^~^`W#OY~ z3)hrWm|M)x`4xuXA{Zh*ZB8lEM$_>)r(;*g&;{hKGCYl%C?>2Q$I-!LA+sM(uXsh( z6|jdxM?w!rL+=O_(5G?TEfeS-fy`3&PKGXd&N@z^M``_eitAK5g%CwqG>vAE2B%#3 zT;y{ED-NvC_PKEoyVIS6kS!h@H2T$(&w8=zSx6?GNgLN;`I*#>dblV`CT$=D-{I4$ zHTH%R7xuYSn}evc&Z>pus@X;*tlCW4horN?GieZ3ne%6&jlN+gX42!di5vTJ7ChO; zTxZisq%+HzO+#s*EBk3ShQ3qm)oeuZd!^nS+KQ6PEOj1T=5E}|BQ1#>7!wYv+g0}> zCT3y&$z~~8)Wbgwe%SWj!5fISxP)%9?(B|59X4FuF&pCiCW$S~Lbd$PT(aqMTHlF% zn+sD}7E$nsPP|O9c|Iyk0>E(yWz}1iTSO9{jLliPYy?fiDRn z(Fb3>rdX^=AAkbvUk&4YV3iuy57+@I08hSDs1L|ZEyOgf-8jyvlrrtXiBL1iskBqE zraC49%d$$%b+o$5Y@uUM8)tX7mh_1%EeCWMxlOJy%ZTy!2KzvQ$FOOHUP>uVZypEJw#YR4iA=+*Rx& z9jl{aW*u`=F^i75s+d*BT!7WKO3PIgF1~bzi!0dcmDE2gy%6O1mnRw^@i$KdBH{Crr@W9d@O>NB)lzkysE&l= z1SOr(tJShTABmmx$8ek1E>3i$wVW_tC1@4A286rQa$af`%;oQn%6X|(@RuCxoAXku z;IBBAl=D)n;BPqACg-JA!QXMLQO--Pg1_gOU(QPxFSWjZ;Ariw*&A_%=cRL|5pJww ze|%PPY z(Wbj1$bOwoI$2QQG)NUE8_9K}4SkjM})w7xPM>>O6w<^_tqBkTO_z}Ce5$r3h z$tJK@vuT@PVhH6X0i-x|7C}@ygdbu{9)nSeM)R3_Xr&nn22G7|HBfd{kvqls-)FzDm#0G_DMO( zdmpY~@)HS*bVS4W+6&lz4O0)$OQdgr=@#?fB|oo9THVMrHsdI5=iB zKT4;#m7<#(b30%Ihs#rHKCPsEEdChIE4Q-V$7n#zxQ{TQZSIfJ1fM=lQ`chg94nF1 zpsRZ@>RobpRnqFVl5IMMGVwE!cV&8@VS1Tt8m5=&05IL+-gn8Os-)EoXM4Sm(|C{J zRiqMW=)2?~_VaN%F8mfhjmUikL+{FTUZwq|(bU{pNyk{+2`rE^*@P3+i?*ANLGc zK4!DeP%9NjvKnV;F7J0|>0ZLs$I9rd*{#tovnJ z9lQT)SEv_DzlronHWPd@nz73`X&J_)-PzAqXmvV5SMddcl0e0uw)l-TxJ|uj^lxnR z6?B=7@5!6qm!G4_*VW~Heq#YwA>Tlix91-vpa;aN8uhVl<^EJr{eQ#JEAnXi8@t4H zQZ*fWP3L1hmu_WnvCn1}c?;|NbRawcWz?s736^l>KTGV^hp zEvoC)1qD8MiK-9wIKJhDjZ;)Fs?gyIE4oG9s?de1!65eYb-3cWRV&tUAnm5ZR+2d( zI5oZ`Avlenog^WVu3P<#=hO}T06F;JGG&r^VemmNW94U5R<}dU^#;8_9XIjJy{X+M zo~t+gd*i$2K;1X#QRMAmGwX2+@mbE>iNaRhq>*SYU)@3zDPg+-=tf;tZ5GE^#4YNN zSF%v@!KP;NEy&N&bMRO09=9MItxYfG2boNn>Z9(CZkyw?4(nIFp@wN}G@rX7`MS z)0+P%&7Sd{<}KFmIW3_+FId0}ItLTM7cc0qln?5!uwCw{+GZ+uGk((5lVpIRu$BWa}y^bEXZ`Huw)x1-C z)heCOp@z;Qym2}Ff~ojAKe=p~#j1M?ep%JBImdN9$kjmh0BRz5b1qrugJG# z2qv3vb62cZ_MJDvxsa863k}gk+E#Q@UJeD>#Xp1Qo`v7V=_GOFZ-j#kMP_6W#^VxJ?A(gt#XXkx|lUXgI;LQB$x}U=X-t#ls11tkr z+)v%Z5wri}VS@RZEw!9)dZku#{^M3>pjw?2aeuWsxy4KI&Z}p0sh#c?u2T35fv!Km zJYrvtYDbPd{tk=S7=NKTTGU#9p(lyE0uv_7=W3kmA+pz-!pTOG?!TiSHJGnxVZP=H z&d(w>bQ$6Li|)SDOx8G1@EG#f%>Ow10;uNfBsicuD|27oIr}Y8ErfM=DNvwDTrBv@ zRtv`f*ze@>E5FI+8;HaJ_D!JB64UC%Kw+uVC^at4(N=Hs=JX+(9wb~O%UG{qVSuwo zBz&Alsdf~NwGxJ^V4<9R!hQ%5O37X}tDbOxyk_yCLItgPkTnYvZquL=RySN|%SWGZ zA)mjb3>U5vGMrs(ApGjIY46)n0>gn+i>+=b6dE7mYk8d4>ql6f*q}zjNDPm~jf7^z z#GW=1_$x8r#=-`Y!45SR1_rn}t4pRYpA)`hx?-;{aI9`8)FIx%#1fkb)2Y)8wyTM7 z+aV?x1^MV1gsrjPvW*df$<@Q|tq$5c7!I|kGlxjwFdrc!g%AwmZz3^vyk@tW3a!JR zN_@4Y9#M^a3_HZ<1}Nw~Is5De@+;lyWp1m~o0*yk{+>oO&Scy=c@0^<-TV$+26;bX z+06v^teXxR_c*s?^?6vT?Mc^YLPvCNfv(HX7ofXUCx51rGq8z_{YfV+(nwuF%GXKL zG*SXcpXj7ikks91b7O)-%nr0E>_rM;4_I%RlEKI<`>Audwep1MmbirUXnkij`FZ*v3T;dkCvlFe^yiD!6yW=sQr59`)b@bD^mpY5ixdxL$BWr5w!cP9ea#$=g}XvSXV zvV47JyLg)0;rmW0m`m_2{cKc;x}{&u6MRd*Z3pWM8G+;Al^V5K% zJi#?@RB8TGrCEC?`@ENsjjg5c2ZCpVYB}f#4le>umv+oYWfj5AS4r-!doa%rD+CoBz!sdJA=N z#+lq(@T@cPt!y1tHe;NgQ7W6)Tkz@mXd{YN0f*KXAn_Lx)p4eB_X-lbIOQx7KAdtC zi8GwC7m3F_@jDXETzw-Fkvy>;i8yw@w=g{`y@L0+sB6EXc>LS5+-Jtz7u-v$Gz2bz zwGJBP=RwMOBWCh&k9(xj55Tq>kt%u*&D1V#ibo;mjg%P%`Qe&8ce8wjP7eXSJLI#F z!4@doos;vXS|+FJ(%ZP_W2%V#HPgRw$(}iHs;iQtG`k9yjIAOL*CaP_$*`O^c9~6J zGfk7+%q3ko5!WfC@mx}{MisD8eTD7=Vj-h7#Y4x{rq~NIo47`My|E7F61ZP!uzjyd zL_(sBOZe*&Zd^ibMY);;Kjm4)jQxa0Ew`wSIke*PIE0~@Xm-+0jhM`do?Gz=3l3id z)w@F)X8@blPsmC75CY}B_>5)A;?4CyPpY}XyI|%qt>ry~Yv2{U&+D)A_~kh8RRG`m`U~z!>v$eqn>7q(^)Z`Cw z`e!O#Qt7X|t9H(F`h1mML#?wr8a=BVjJp%~aT@pTqDFnqiRx(_Cmz*^M(%lgekjL@ z^EE#LIS~z^x=LKB5u-S6J22(H#9PajrW zEe~QcD;|hi?#C_<6oxzRx$U>{?W++(IPt&n?XPi~ zfuqHjtr;w|ZCwxK-|>w+qH){yHGa(i(Fj24`n*qHqS7;cQGy>aKd42S#axC66KTW^ zwqOWWd!MkNp~5CIhW#;A7#I0^IbYVDUJR^qS@9)(p|ZqCM=-jn36tT zSW0ks`|ku{AFgQZnJ6r)Ip{lTsO)aS5kXI7;3OegB=eN@Qw53Qy!Mw2!HXy?$+0;@)y#0HSMrZsk2x(Es$=?1B>u8<@S~di8!IXzD)SQ z=YTh_N9}u8OqM<>#;=8RkvXsLy3$Wk`@dAZOF7XV2f*75(cxIDq%VI(TRc4QT7SbR#^#5`dDxyTOY32SJ; zc4gEG;S*xVaAO5=DqutwcG(*>EOZ+?C<|Ncmf~VDm|w9)p9tA@tu?H_;6Pwi`O zQJEoIlm$%qL%>~v{%eF=HOL#K-8xh!N;~0uVLPrfhpk8O*0YuCg)U@}a&5h^gYvVA zABA9%%wl_g6-+cTjyV(vCc8zSbDL3X*x&*bW+~fPAhfe@uM%VHe9m4L2zBiTYiNtl zna@U{0bjgs6t0k4O4uf0k|$jk!uoaQ?%ib45#bCjR$e$FG^56w%y<-s7~infM}-cK zo8}`hw*EXbDX0^>dlV-O&sn`=!i2!zuW@Sg`MK zcewNsOmyHTERsoidJH=vzQ?*OY@p?}+3b2kT_ydB(2Md*1Z8NV_gIf>LKECGntx3Q z#*yQ?YeGNT)^W>q;T*w1<@p=Jd~#hGcvC2(w6VS7^q25EB~z6n<$|+_4*;&*7pCL3 zM4t!3C0c{9<_{5{&C243!XA7tpmcd87$tI@4SXgTnA=*tmATVSebwydK9IRRhh8RY@f><*aJnP}&}M_!?B{|n z%C`DBqLi+jeJ=PAyc>V~LOAB&KM+wE--w3{2cE}XqP6=BU~~QvzI6Wq8QPp062sl_ z$cy}fs5@i|l*m^?3xaF7X|IL0E@Tz^-YAZzb@G|3lXzC>b(OG7M}$aH$$V>zOR?eo zv9{RNZAW|fj->^^{jlGa@VC2$FPNjV7)o1y!CE?t4ch1kF(eir{52qMSuU3@zC?u^j0Ii zi*GBS_l=9{2i^m@h?B_o>=hIM@B&M?6oxWwyXq zyhPi6%u@Zp9mv}Ii(iuM?7F{rA6LLi1H=}Dwm8Pt8^v+7{&FQFNQ@#>KEfQEi(X;y zWNHP!VpQgbuYXoA)m@v91YFyoe7gv2o+nQHQI-XevWI=R%`-3|HqJI zcTi~&CJrO9XEkGP4m;FDnA=UA;C4hK_&nALJ{L4X2#!>FWZgo_*_m*$0}VN#c-0s2 zk=O>MSp)HN5nsBTY$7HST5mV=j6@8_DUTyXFG?eJ@Mtt@8=0*caPU+UVQz6c!7WrH z_;k|=J}opt$Pk?nl9(5#?i>}6E-$l^mB;u zK`6g@poS7NQ8elr_rQ;|5*yIKO7^0a_{6cS4n*2vWsOE3T!;PBTEvX;hSg~!hT+0b zhc;pwnaF->Bi6$;$kQCV%wl4IZDS*1#3>H7JfYqfuk@ilM!5!#=x`qG-WGgYr43bF zP7w#yESXRxz3uw}T}8W^J4UL6GZyI=WmF&0%_XbX-@FKJqX4!w#P0>!ihFQ( zbDj8LXqn-Ufnd2BI5!Tq{ox3aFSv*`svmZtP#pxY&CMTataWn0O0uZ$C8DA=eoPhL zHv0dVHq_R#|LYNK@SiKPbx>-IL)|(b(iq3MU);FuxzcC6*w7JkLC#EZoa8+FPc`?s z0Na}SK%gtDoF_J>#wkjZEb(uF)}5#X<%qvmZ+7dXDtQNBTW9>vfo(_xFJcG$&VgFK z{Tlx;=MUigwh@YxMciM_`Tk*5lNGD1Q08L+dqlDutsS8v$)S?0X8JaeLldp zC7!So>!8&BMU3$8(|ftf84s{+AAX(0_786;mQGc19jfuWaDEx*Ur_mpMJ7vJl}sm1 zCX~w%?&TJR9T(46!wKq?vlzEJGUco|og7!1{2?~8a~_zjW;qIATU0p2&np>MM8{gr zmT4+uIe-?UZOSKi#CrCPho-5FVF25rx%=}=xRYwdw;ZSP+5l)uqZHd?vAxu@;|P`E z2C!{N4Jg&#!2UD-aQ>s>|L_ljfta1;{5G6_QknBo{DbsN9i}qc0&FYx z0Hb{Oe-x`}d|%H0k@FAzmtRNYzexq3?=NgWDBr#k&v;}NbXE-?0ND0VAkyfIMc;GV zxe>44_Tzib0&Kg_nfLO!azb!bb?X8lT;Ks0IHD}5Be_W=k$vhX^&*dydwx-8N1ob&deWt6=sp>OBeSWAuXQT{0zoToms z)#n2BxlnyBQlE>}=Mwd~RDCW}pLzV*E#zYr`9yuLQlFoy&(-R4t@`{zedepruhr+b z>T?~Q*h^Y{He+yz?^PM{ol+Dkl?pW`4<9#bM22C^s0?L!11XfYOCCFE{Iu2s4YLEg z4x2bCuytU_w7`aereV|4s?xp2&H_DTLgrk<;D&(-!!m|}V+e_8I>Qh+SNW}xR46GE znn^wZO5O+3&e8aKt?PEFMYZH{xY{VOCEKOC`0+RAa zS}~R_+#xNc6=}?QrxZw5WSMd2JDpl>8UYn&Q9qGJ(I?!?vfhd3(qfhNgZot zkLIt`@ZU3A2Uf953dc6I&Th%OZDTMjpMQ!8CBEjM;9Acy-cdtl!tP4^(weP&P-SJ+ z3vCnMB_E*%0~$TmSLw}I#%?Ljd*K)^b|A%^5gd_-`6YN)1P`XU(sphXE8Q)*dlil1 z68lrkKLzK3gVy$#*d8eY%gm4WNG41}7x$oH;*QeMebQGo zyWor;=MMF3e+*?a_Dh`uZVpASGk55RGG%-iKYm}Vv=}x`BP#gs-x+NChq4>{r76Un z^*$gqqZLEhk^_=|wU47vK{Z*y0jUXYn3f%onmRogqP+z>3%$FoZ4FppiPVig9m1xS zAohdUmnBjN>CX0-Nd6?8-7b+P(wBo+?}O+@^Vo`mk|!C(HXM{X@obG$M@4dcQaTwh?Fk4iIr?Lmt-@5j-KF}E2%*s*SoL+$go zkI!ve*tMgQi}$JixCqSee#Bccf?aVvI2G@qe>WKX4YtY5>6p|PLs!}{sUI1@ijPS# z2=<#}Qb$5r;&G`1@n`1aQb3)+>^J;P=E7LiAzrca&uhzV0vy37HOHml^hsY9c0y`e zb6Fp?75UoAd$Um|q*3_r{m2Q)8%Av>P-pS1S}D5cp5AO(sk8?Tvd2lO9a+m(oRoUe z7Yo_#lhXBO_j;*?;uC=V!Z%pM`2?bGn=EycEbVO1QAfOR-#`duF`%@zW4+j`Q&K2i zRtBAxQtK9TR&klX37ybjsDVEdDKQmS`rFXYPoo2@Vkb^Z?)ZY~_GzhMjdeX#m+ftl z%=?TK`_W=mQG- z?YxvnUvyDAUXTtFdc}n~U6KaX{H3#M+S&G}iA}#G4Ip*dsY_BN*661$OOf<^CnjBy z9+G6Wtr5>-2jmkYi1n2xV~E}57FbF)^2CEGAWHX z<1|C^qSrgH3D=}Hj!&Um-UdPC>cMRDH7OC-=3iZtk^-Xlzd>6&fNi)j_X3)eeziUF z8Gb1U4dJ{y8+Bc3h^y)!UzgHx!Ckl^ou;=v*tr{05(clpn;2|1u%WjkA6&1I8sn-Z z(nE06w(FL(h}2LLZ%fV;4W*w=I)z&y4a%h!(NkhEx{<;nWRPr~9mhw@Fp%!n);=Nx z&aW)j1?gE17owT>c(aLPpOs7Fsi79Dc1Nn0Rl3+fx?2o}Jez?Oyf%nV{~AbHO+x)^ z5kr9sA=%g+8R`%zy)F^5y@_PNv53K+7`potnjJu-q5vZL2NFX?5RoE+iD(ERhSU%u zMuZYWUMLY$@nbyx^@&(epOB&kM2y27yY5Yhkd9S)egw&)>G&;(Y@A_~wj`vWEfFf( z!G0XlIEIMBjZY^Np>at>bV?>9qAwBraT=9BfKaD_FgT1zc_VO6Gn>$|+4y>J4l(4- zg}twdVEBfRQiTYm+X%@kgM(#6D7p!~+i<8Ha^-}?J5qKgs6aYGPgzc=3U?9=G6Qu>6U<|Ok2@3e6q^vWgaa|zP zg$iX|D5>a1MW-H=q~euOdQVE627o^RI)ka0Jsg=1r!-)k%X=M7XW+e(T5c4~;*PKA8znEm%r$*`Z2^inDo zU7%9_MabExlwM8^W#v?=xI?o@-hGt#0ZQ=z%!e@gkdnB^F!mUpKc%AKHI*V>Q#4L0 z82&{_|Ak>m5W80wNP(k3{f&V57$y$y_)~oZL!OU7iu?pash>b2`~{L8D2S!?1ZoHs z3{IhfRh#cgRnwEJ!- zl}Luv66hS14C#j@A^RwP{r{*$ijKj?afw8nl7zC;kh?4iGO6xqzg4Pcz$k7ouz(85 zBWt1l{~TGS!%ubiwGMyM;T9cYAET-t*5Mf)UeTdVhkxtvwGOM{0Gns)q{BKI%rXS) zgvL6I)?s@cChM?|4pVhFPKOyfoTtOZI{a9NYjwCzhXp$PU4>Z&!#9DB|V|3V2huw8JfJ5YO7^xE`>2QV)7wB-Q4p-?gUxyoX z_?r%Q>F}TqPwDWI4sYwQLWlnVX7M@^@gs5^I_l6hKR8mg(@04xi}ojSlVbGgrJo&N}qg z;k0HNeV-29nm5r1WALk6{~uxJ0w;6z|NpbQ%(}(QZlwCgD3KJiuH73Hq03OZQM0#M zw)Qf65x#wEhAt|_EOC@%Byu-Pp(vy1LTXkwUDTkIB7;;e>Hm74_xrQ9X@8HuN1ZdT z=Xsy^xqQy&ob$Qt3}tv-;-)=W50`kU#3yymk%n!t*B^fbmu;8mYKkt?yC}L&JAOmt z(S0Zyq01;5rRP#KM%PgExK25WXu8g#Xs*toXqm2}=yko3qRse%4@5P(-S3EY>LC>E z)8i>Rs;d#Drd+Le|BiiO6Ycl|^eo+nqV~FsqV9SwMQ&X~(GZ>TC!$=PMNx&$q3BUv zMbUJUKZizh- zXG^SfpT8TnO^e-Iw&R@+I(}{s8??(7V8ubv5sA|=7j_K9M8%V0 zg||D7ZYX0b=uBWdalFfvOFckI=KU|J23z3w@M9k4Soemhf{2gI=O{;Bo0Yz z<%x)nnmk!Ck#UI=61#3=*L2lG|NfaR;F08PiIcNYC!MVtr+NnRx!4H$Ke%%FR5ZD5 zt%522MW;ib3%x`%)fV?nQ?3%-47wF`3F{jb9aY?fPnjSFsn9J|Ty+xN6#7i)e9?3W zGF4Qy6-^h+8PInRY^XQ3u(j0wG@CncZv5|&^lXX!90yczD?18GLPX-2#BqtO!*WfMk$2J=^IYBnC#9GZP{HQx~If6D9LVs=p4(?BOq5| zst_4giniI4H0ja5 zKSf&|d`h%UCOd2HXKOXBMS8olTS=PL6l-E^tB*CZwav2TQ7g8J>YkL%nxL=J0~=$t zv*z>ux{RbX{d@FtBr(~V0fBq4B(1qQU*pbg+knjN%8F^ur+;H5m(`ipls{FtHMPu5 zva{Bbb;7M)+>&G`Yf=;Sy(BcEr8>}A)&i@8dWg2x2&+@C6>fF@^`dW*n8pMByH&K+ zjC(|nl-SB&$~w1pf*2PX({8EzL0?}(Fj!OJ?lHI$aKa==diQ^mxlvVKel8})2cZrWlY}x%K`pmvOn%YTx zfy9X647s4b}}V@nq;>_^p6r-C;Oo!yQ8Ahujh6unN`kV z?XGQj8!_lEvC}jY-)|$@I@xa)oyW1RncXle@Q^@j%6eS1miV=#^tVKREb)P)^xrLQ z?I5t)Lm$?%wHC399g>5fLCt(rJQ zx6uxV?b<%?h_r^uN1}g~m=4p0_`m63J{*=^E784lmBTi&owXi^%Xv!}kvJx?OFJ@b zZTqQ8PIgP2EwQy`{w7|-!XpyLEc?-E<{IQmJHC;O2AWf1kHmh7tgvY@ae-&y!Ta^2vTW58$ zo!8~LHn=m7i{gekc+>*-g{T0UJ<*Zt%dez1{@8vLTI0>n^{Pj+_5V8A&Ix>xf&940 zOY;|0sMpd;P{PDU6_l}iH}&@UDiuAGmXn`f?p4#yQ%!PrV z8u-ggD@$`n7kJfQ4N81t)Ut*JIL>NiL)6<#wNz^ws#IS|9tu=d4fB2G!$L4`paO5` zs23Zmc@6PMr42eWN*bkp=BdVFWw*?~XP zQP{m7a$~rY1B>>e(OBv(i7?)1`m*rK5jL_k5SGzE4N(d!TZWo>a}t5G1ao z;A&#mAPDwB5bcMydDY8}3Ui7I|EqnejqHIfjZ~^%MH-clE>WN2GsX*j+}x<{Bup@nJ`I91YSe*7rcsAs7aWX)*v&{NRZlc7D)jnu$}4>8wI(XnbPh(( z3yn((3NgS|w?;RYj|_}1_R;zITI1UO`=hZ+D^Rh<)T`>J#ub$~gGZV^RtFkW1$}By z>i@8B&cHcUZ+f|v(KsMKFsNatr&6XRz|6I00uYGU+U)(dWHf({x&*@se2 z3gWjR2;Gh#aywd*U*WyqH_lst8O57hSdvpd4qs8n9~iQMO2AW$awYE24_<0JH&ER) zuiTeY>GS3nmgCK|Qe<4+lqL?fuBjix>W`)<<}S)`Hx*NBw5@4@+K#luaA35v1aGgY z15HO472!-1d6@EgkvEouAe;|NufmU&g`26=yiub|?pHGc&B$8KYKG%J3PzDqD#{N_ zn*QEs#_!9SVg3bj8RKou@=8l8N|9|lvIQ$C$5<-hVPwPUs(x-pr^P`eMgq9x4o<-2 zkK>FPTgA>eJ=$xUm-qr>)T1rv6sKfd)SCW(u0;iPz?>GQAGWqA_Z62u;A4}6Es}=) zfkI{DE>us$;TScwxp6YH`RS5gY+gjC%)aEjM+yUYQutU3DjCP$)}X3SqN>(ew6eLJ zMO&L&XVHe{YIAcuXoMM_YvS(#@Og5bEI(LTPSs{P++6*METL&+9D0_*_)HVNkdopJ zm=U9%#;v^&{+t9gm;-ldbjqvOTbOxoLkm8u^VMejG($X0R2lfO#kMN z^O}JWguet*;dMTR@%bprN_-rN(N_pZ7t)nOn(6xmcH?NN-70M*%)(1d?xhsQmQiU# zeK_(D_|#VWZFG)}chH#n)UFQNRq9PSW4-jYq}pe{kzT7*N2#RclsOSGE>=+(T0>!Q zEx8NGj5W(4eZ2xdb`ix_Gx4mo2r7X;Ohfpl#oi>gf$B}8>^p}UlcyZDrv}!Z3_6An zsKXBLsM2B|Qq-T6DQZgJNagxz^1iRMFi@gG8D2Fb1Erb--`K*6$_lkG!_1mB;K5Cl zLHOp3G3AAozMNc){;iY=i7?qrVT8kXscL5WIG#~Z!Rz9(GjYn88ST-t(UV)qW1gCv zS1JjuATJgT&hgL?O!cSi$zA+uD`*gEqc6qvGKIZ7c z%5h$`?HqK;F8FOw$jhG9k{vC{w^uE0rCT&_)H3j1E7O};6;0#Kk;E@srg}%0RE#Uh zL)-VYR9{j_@P>i2+jO%DL*G*$%C!GLPSI%W08q0^FMocSGVL{)@OBY8+mxU-o^F-e z)(R(oY(Lo~@Rbl4?D*mjkUvcLr{M^x5ZWJ^R{z<`tDZUwy>^U}qbH2fNis4GQM1m% zWS+0)!X)vRF$v-V0;7!tr&?o)8k2)#8^Q}9v4t>bU>ftv*)(*Poo$BB zs_yppnFq?S|^l$IB(AI=UKKfjzk+KvAV zA2?6qFh(o!WfjPdKb}JcH&E5QvSX!5^0{-0u$}dqJ=HrXGW@Qwd(YUFU~Mm@d4R|x1{3UO@rLgg+=*ZzdCS^sm!EvsZmwunnvk!(HGeH7UrwR z&Mhx|fYxd(^=dW>OKc%0iER`HKQ<0yCaj_2ajj8a=)+vOhCRKB9Kla1J@h%!({d^* z3P+X%)Hmm%ql?s2|H&)$k5ik_!J#iG-PGkzQI-vTJaX;{FbaEag%=+h0#5!cwS)kXJ4}2cd(0mZ@liUt-}f9 zY5aM{(?m=fF{HsCUK~T|Kb!CuSQ|$#vDreHg#cl^A4z6U{}m_2&pW*`?>#S&w4VQ6 zh{JM#GDh(p8cpP8r+@rBSsWrZPYVuP=SM{0tplTb~=k!t!Tq}aG`<=0&I## zV$#PYKw&Ya@O<@o8=5{cN=B;Z+wv8l3b#eE$8^`;ww8fsEx4d9Pcv$1TXPX(23zGg zKdw$-9y>t=$MG&4KA)m66ig#x!r&vg-sd)`t!i; z_P7b37=Vmv zYo}+Q+vq=mIqk@m|Md99t`y7n{B{_owPPB6Q?8zAH#)bdFwbmfNl$BsnoXiQMXD%F zOgG^R6b8c-#t^Dhx`tSKow9g+&lAz}4nmcD{9N-$zn-J`8hcCQ$1kqbp49 zs>wdDa;*9$aK1_Ok~m5i#O4gycfLAE*096zGGTC2oie6eAoZJf0b04)s>^Js_`8%R z{GP?C!6NTdUdgic0vWhpQr>&tw+w$IL%fy8`TBbQetX&)>=WCIm+9@1{;g%b z2rBZOrRG5e<0h|8xx&^u@HKLk)25)#VOG1yYByPhen1Ilp3cS=DM-hxUQGs(p6rOcQ^_!^8?L51T&5lYiRcFK z7Jtr!vnY(th7H{)@K%iWoBJSNbmYoX0XsWVKNZsrpgkQ6OCIo*2XLQ;7KVKtarHvA zM{CtVxQ?$Nci{+yp=t^fuTdCVjRJTXoqCb!rkNL^n_j$#yJq!8sMR_$j3PvjjK&rC zMOJ^TM{0Pzaf3gQ)SLb zHLp{yTGRsblb=gXFDJ?Bh>pS6g zn7Qm$A5n7PLrM>BqcHIih4GIYq?q+reM1H{CVe}Fu}`g(-zjAW`NVu=HXBmO@Wpg1 ztxm09y%_m+AYT!7=xRAs@N4oFMW~t-`LLCr*_j&jV(0RlF<#tDD!}yha%XDO;?A@U zP?651YISEcs1%#{QN>u(Y0HX9ywxmID1MeX@ie#2HjLpPhNtq{>Bvb z9fb)KM&k52xSOhuy}{PbfxJrWnIz9FB)~ z3KBv;nzDYPFt(4v_|FuE_fr@-K-n``{XH#ll7OFom(-$&nvt>xoP9)#`!jj6(I{r3LEHr6bkTT`JVPE_rHKm!b;w zT-V&fN*XWUcctAe?uvFTR#h&#YFDdVGR%H-1@a3Y@T%ikxL4>cF3nfVyP`XgMQa=GDtz6gumHCc z!dd9rzo941=nE#C4cjysGm~8A z0_ce>xq!|6v9#y_Jl`nBOZ4gZc@Q{A8F zM!6@W$0EN{N@6k|mz$KAOv*x}#HY|tw8pC_3{9gj5Zy*maHk2sr7$)z9bsaL3D@CS zI?uMpyP4TG*qtY8^>}w#gr4pWXJ3+a*n|m$yq?VLo~K?!YIGL}ttZvp3vzq)P;0tl zMR}95eIKBF!5=A%|3qbB!YwK)#0Ku??zE%^dlvdf(Jk}?JuAz-`Q^D-Nx!&Es`Nw; zQ>Dp0umC*UL#p$34^-r5au`8qt%(bJSYzsV4_*^j_n`Xdq|E68^wLSd-dgzHRcZz4kzGpE1N ztFS~xdljh1dRM4fy>a^jXWahYa%Fh9H%~P*#ZS2`Pffqfl&)U8441N~ZGdj&R;a&6 zq5Yew5(TAv>s4*v{uOleQ31>ZzH%HVwFG&i%PCjP zgmDul@ExJv(>48(YBL6FJKgJ2pIxE8My?RPzYS%rr!Zl{$XmwGMyjD#ow}mCR|QsF zDPw-#m8L%yT}gX5_0^T=rsuDcGg4oTN_=QCZ$oCDPCnucpTe?I)mWz0Fb#i1rV)g= zi-gSq?gQZlnL2!Bo;ix@&nxK&Q|kQz6eh`&uNvdaxnDhd6%u2ntQs;g=hU*Rtd8Fb z|A|k~dbQ>%o(48wMbp4mWDD-3Y$1dywVP?io~yc>_%E?NWNiO{ZQ@(9O$2t4F~*LX zbTzrDqL%J4)!%DUu;-nBbslDrB}fVWWD3BO7M^A{n3T;(i61n1j!_sqN$J={TutKx zM^;U_PNn73HSN)>vHHGpEuAZ`6{_@#!T^@tH?P4qy0BoJid`c^5Q}k6<>+#s`urNR z^`O<6!Mn3Y-OBA+rQRvvZkyZ9%E}tPp%5NF%iC+L3C8+h2+? zido$)`7sCd!I=584{m<`*H>Puru8)sZa4SE)q;AqALfd3Jk3zYucdv+{yt_XVDywq|v-;JB6)aLCl^<($STj4j{rK8cC;XY_SS*DFFr$qI& zo65z9U2gMG;77PhzyM~8DU2MJ$dfSSdT0?(@{jISjtZp030gi7>9r_r%e zKldG3jxJMA^g{;vIzw>WhQu?~ew;8F3Bh&7ABS(!=g@{GDKxEoh~CFd6FLx)exq~M zYO>x>ZV0{G&s=}2zsUIkQ=7x42)Z5fZ9nw~a+@d4>X&}%5RBqaHih#*crry%6NabI z=g>3?6KnAre7fn)udbs#cSY&w@;sl4Uss^^UdMAb2GeyTaT6EUG5Y%C*?Zpgr>_B4 z;Mc4}N62mLH@G#c+i%y6##tYjjim5Vf_OkZ8WV06@>wguA|xh|h=%@QDs_y)=qU>0 ze^VHK1h0Cg(VGLft;-7nPI!MQuDW(y@5Ag&v%BAsFJJZhjuUhQJmluP+Yd z-txyjs0b9`n7+7`mH}t#&pY<*1@L+)ZK-s5V8lSQW-w=asNs@ zDydLE^_S^$cYkYOy#TWi%uxTC6b51oC=W06j}D-dVFpZMizqR&g2HITe146>@aozM zem+1d_ssyD_6G;x7~Ejaj28zcABvX;!q*4J*Oq2=*R90^Z!nANV>e(XdF=+Pl97Ql zRz?@7svFdb8&K5`O}osRy66U8Q^&(+e4Fw4F;ZnUJ$OUi)%55M$*buJ^0u9FB}^Fn zggl>KI;Rd)GvPP{jE3XUFS^2nksT(}mnQtiWKtUjsu_dn2`?tEQv)#*KN=WRpf(P| z5iaqmPX<+}?*>U9og6f(I44gn7>rxMd3Zdf4i7fBEdCsfqqdja)y{k~24UCs>Y&=Q zec>RpeOo>V)q*9C!A}%Me?m{veZ4PXN{4ORph6Xx0Dp0l9{j~vA;gHFdnk!PJScvL zqsV?rj2xgaju2O@w9yL<#^b#(T!el#nSX7T(o@a75uF81TZR>b)&9Y%K?QsIbg;DU ztHHDpg@ZtRFz;UX!b$9qDdbO6hzUc-&1VyaPQhiGdD=MTM$^LSH=5~s7Rrkv5j8Vm zf(%ji;v3b9o9N_FpWcWm;70D{lQ&kV2{&228kl{PRB7H#X6=gKh_&l6tX-kM$qV(< z?|4Q_bzO85+69V=2Jx+6soW-gQ|*m|*I*Dw5{}S#3PV%P=VvL5%rKv4B4gv6N?g}e zjKYgT-hgSryqnG4VBgqEuW8t#n|*4<%~->6t9GRN+0C%cgzjEhzLQDl|HeYCE>lSCWru3RAClG`(n~w%wfP4PXgW zuaoI~GQy6aB2UF{R(o$oTNhC7*b*c(uoc}rAT_$2oF!Hmmk|mhuObX!Au?i(NqC*Y#2Y4DN9CI7JcPH=a63hA zRL$_1N#g~Nths#q>LtvW(YGjL+=Q_j<8ZsFlUn7;!}b19)f9u_@gXMvOG7Hu@*x3S z^$n5DRALCOJf0kCT^7t4YEHN%LutL{{r$JMng^6#_5H0}xLS9c88t5qvCc+w{1y&D zHNK<@1ivzEK`1BHn?vZn$s~Zeza3SRhnsa%*bSP&49ULrq0L z4^TzEH&!N$n=tqT`NR>#m)!Tnt8BMo;m`G{Q$umzoF0PU`ccgRq~|PIUb?wWSIX0F zRnOgu!}lAxi=Hq}gZOGbKu%vpH}&DI_vZ%+x_Qk+w;egdlba)FVg`l5 z+2(T?`O|2(@Yrqs+Q%(w_H7lTbD=5WH5>tR@l|!3(zhY|OD5yXRIuTTZc{73!%L0Z zIBKy)m2G z0yT_2OJPu(&of(KTaHuV*V}O~UIp*K6@u9=zj%i^HD10WPc6O!PkHaa=v2?%iSdcc zOVsFVyg7&39lsr)SD<$BS#X5Cs9d|NnRi$V^8C9|%NI;xCXByCmOP}@x;tn?Kj&`T zuM6a=t#`;Can~KZG5q=t-WdLP2P*ussrGydL(AYJ&5Q!|#GU*!PEEe^e#|v^T6QN6 zJq%Fn3Mz_T=Xm)}yitj#)zx?5x+TYlt^c|^{l@%(EDY-}?&Q~M%-w;SJFS}lbMAtV z)y9WBg*i~0HXmux^+;=A%@WVuW#wCPm$@Z+^e&lBo2vV&@d$O&1k7b}t@4svUQCQ-_E5%<86Q-_!lF9(=Ut;b?o+ zuDjLV;b#0!8eX7g59jf_YIucueYmxXemdM**N2+{qK9LERAGQ5ey1X7_%0jH!#6%0 z{qYA?D)cAP0-h>k>nKeXm*ZcHN6f;qQCR0Kq+}$L@paVN(X4PL!)7 z_u|cfoN;QF7iEJZ^@vHu=7IQhuQdtGg+&Z$u=~w~N6C&J1s0lDb=7+8fAH$XKD>Hq zUgZ12deXlWZ+VWSr#?9O8 ze03@tueN#B?3~K6c$4Y}?072GF{~Q6^^{kPi~X(n=2;}IWeYLwnfF1|?ol|(YI`d|39-wmsgbHCiVNdXx?Pd26RV2=lF`$*1TLi zEczl3w{p~keAJJU8&;_G*w8O8Fnv5{q5YE&~=W%_A0g~4SMh65&wnlR32Im$?!WnMX6NOp zdAO1&Q5*8$<8$Nb@eKHjPtQR2pbM(d1!^-=qjNH;;_E4lyoDbMOf4Oa8wjf~{xQm4 z55Od}!6Zg03~e-@O&I0Rn~(|bAEW$49_RW!4{zR&tWYPBIsQInh<{39^fL;BpHl{O z0`_Wn-zz_Vv>yiw?|k7kKRnsQ@ks16g?tOUKxzS9)NjbA3!}}H28x<~M>WO6q#gO) z5FYW-;X9U}qqNVgkjv2zI5pnzjl~%;67R|Ta8;U9o;ONW`9_&%X|MXI%mY3QnKk%B z_*C=C#X_GS?Z{VA;ON>jQBWZGIz?di%l20i-6$Ou+XoV7E2+8MIwSHuQdX604WIV1MW!|iN3;wKJ+eczkW_*8x(=K81 zhfb20#B_XDLRvw-Iy|zQnm9^5gIwLziIHmjC>$I)53-#DMn|;s;(7KiDGT@)O7c^Dw zm!!(su>_OXu}G)N*<0w;38;kNuwZu!osntj(7Inr zdKU-IBI17u&(73SN5j3~mN#&zkxZT8vvp{k1?_~n(q(zJvj!(O>P95jZRB0h^))Jn zQ-Vqji+gDO$vRYD_*&s{@XQ(<3E|s>C(hKl1*m09cC%k_xTPLi35+pJ-kS~N%6nSr zmkQuKMBm^6-a&ZiEWMj}7~k(q{7T{B*82RBwqAoh&~;lAOwx}-*Vj5feGv%!y(9jh zb-(w~3gNqjN6yh1V^LlFxf7Y66m0*GIb_;C($=U+t3lj`#CbY*6dgx=AvPJew|E;2 zvMuo4mU(yKuC}^w(AG7>$#|IHpi}9JUO4RSn3o8Tw$r(VIKB@-Ba3x>XF%5Nfvrh; zJ9NE0Z~?n-Ihbqjzd-3}ThZ0RFAyFC&pR)@i(UBD!V@}Yl&x!KqCLCmZ{hYz@7V}9 z7c$2myqR;tf1$V+?zP;5uX+oe(~<21!aW^z`Tb~Z82WT;hpdIH+uD;!I{ij&?f#@w zG$`(GMmn9MmM+kZi)_6!!jc@6CO7?4w}Pf)kvzM3Ix-e;mF+{8pRPK0GP=vfc(LG^ z3j_ZLbXPa#9|(7L(?d&by#ilB*X^zrSR(4`bD*gi$p_QjgZsItd==v(Eu3&#Z zh(BoEuSF(9GOS7EUazZN)x6IO3%bqapVjF7N6K0Md=z@9O`V=JT za_IW%7m?!DNpTT9qzsdt>cb^`ELiEPGF$IK$))T`D&^<@qm*c0cGqPHH!9j!XO!Ez zw2b#-e!Xy`_0cJ|OYGNi%3YEY)K%p)*9a~V46ToBwso;z&*syFN3^2?&F~Lkyh^ZN z4O%^Pyb%Z0(@sD;q4gs>e4l<;MO z?YfFE{ua>S8wCe-jd6kwBkK{hP8_tZdr$+ye!(6+gs>Bm@S}pAx{5Ga5uPR3uWJa0 z1g{W`Rsv_l1#c1@AF4A-V16q*`C4%FRy`EhejDRI1mj!g9)NLp7~@vRMdx2wJH`NK z-_E$J;A}mFF#i6~RPYADF~;sY80QOyZ?g7d+egiLP_SP+u>NMm?qd9;<>W5?_Cu&3 z{v464XA4FvX|+}(7%vm7bj?^>$FtW$I$>@7+iqz-iw;57J&QV`^>uZ3==#ng_dQ(N z|B!B`BV9I*T5>Pr$%6g58aN{%c)sAoy=K>tk?^wl8jE{%xBuFD4gCnZZY`46_jDW# zs#Wru;>u%x{gFs0 zjE5KP|DUZ<<5z^abP5KF!(Ps&t7=XA5cXFvjtchc@q|N_jCTkQ>5YUv4=_F;7=89I z%}f7foQfe$ZHLwuG{%!=XT$_wCOGz>o{Fi){y(<9MKGKPsD^?^3ij(h zz!_1&PY90wk2jyuhuF(vi$8>=?HhCz{#q7QQyXjDq|n|oA^01?iHG%2ECKc)TOSwf z*5iY=-UE{d$5}X8>kgJS(De-t_jq=fk96uFw@w+4rm2aH>6|BwZ+#>j6g)w2P>%=B zh)rVa>4IaEbVeoiD6walFR}PDdcq@U!eqv)PdlGbPZQola@{8EfUdU*;_f0$MBIdp zbcq+4!lhgzIHFTfc19w^_%^|bkbe77)TxSbk>HRX59`dR;70{R>mv~yv#D%8OSoO9 zJc=f~1zESszbEOxp{WV~+BS*10e4$X7>_zRBGb4OpWukzNZ9i%<8r|mj*rn%5d4hb z*t5FtV>r(}n$2IXH6IUiM{p+NHv|XuM#7%w7}wNVr#x=!Jv6yxzaqJAOOHX<*RpJJ z*AL499UMy!8?K*v9CMxjMJ{fFq+^YI9JNq$7*7$bv|}P24#6)9hSs;n=ciP z1sLWTQNeFm=JWLSF?1RDGMjG_4$ZT|eCB&<-3)mGmGKMyRj^-I0cR!_uyqEOG-?{O zu2_k&@e1=xg$K3cNqBKCWIRByQx72=7Mv?MtgD{1b!_|;q!Z^I-zxamz*EvtsGkh;Ya@|s{gRZZXkhq&7?m~K(DP<{_ zGPkyrc9ZA~6#TZ}#8PuR!oG~HcMA^dxs&RtQyLcOx^+4Oy1qIEm$SRukxoqv>UK|4 z%U3Wi5R8@+c10LJE!d^!0%s%y&ljAC=-p4_DlhqL*nsr9mD&njU!|heTnzqr*i0Qs%(J>qVuxbx^7Tp2n-uW~6L z3J&SHgw<<|e-VtrC)ZPW)9im1o&jB7%Y)+XPNehU$eDs^<)NhPYm@XwahG%VotXW( zMs%GRUd^8y1ZNxEBSg|Pi_hOqs(LRe6jfjQJ#HXR{Y>1u=D zU_7oC9}3~ToB`>inwX90pp}qy`+iT7{uP?KqeJf9|EPa-J$t_*R|dj*b2H5mds8YS zJf_E2VXBG0#rR>t(0bKsOf?&r&k&Apyq=0C*`th?3%2X=gtG;|D>z$kBplqx*53-o z&TblxbaK;9A-Qf-)3J-KuW9OSb~gm+bflFYKMkdL-eFuQ*rPWZyovGHTAcDM3ZDpB zx3Kj|`fX?`JZ-_yfAni`GrMyjGY_-z&!X_i`;4y;jD-|9Be8`so&Xu^#1@@8op#0_ zF@Ib*Hg?nDMa3AuCKxT7UQb-H|?9V3Y z**^W%bX%Lo2PGSJDl<^IPz_hEC3gGd4f|rk5y5W3*ad0e;C8ky5FFI_nWNqVlgq9` za^1Q-4_#kV!s2efxC`rzR7&IvF6D$^6h4zyals8oa#f-AD%@7J?_l$DgkyIJbM2pL zYt*#8WxE5{7r$U{DYjP$kAu%U7e2mbAGZj%>pst+CgC{ay99^zc*1Ho<7~l7Zv@VW z2_7dnwp(w<%{WK)9yXsNJX`m{6AkTp9<$1pTF)u;l*9Esnz*VpkLDW(ePJce>+QRzQ(>1zaIK>^N)A7H#w zaQuMIz?HrISH_JB*-2QpdjWOr4oP)Y*<9DYh5GIn>Z$86*wwA;z0md5HTxhJ6Om#t z{oqEfBO>^7!8kVws{~u06pSm7*}!4J9q+U1I(~LN19vEr>(=Qm==$oU4sj`q#GTS9 zFWS1E<3G&!OTm`jcb{&8yUC7_q&K*qYk`{^FQOJbAnTSoI!QkWO|@u{G;2A3+N&#J)WOK(+Et+2>eO3GlxgyanT;p&5GGRD7ua4i0E#jqoN0hcIL9b z;iBWL0}6kFYAWE&V}nVeJ)&oe4vJnOIwU%3<DJ7j7VgyTUdBKR37#)Fq;r5X z68I@;8c}ZwPMo8sVgTCDWxPYMNAG$W6W3u#>gDXqxKSCU`keWgxRTq@we+8D=mlM0 z8zSd%F^?mi+7Qv>=hHGK_&LGQ`qn;ZS{pWBD%`147NBXKwv3~Ku~#D;5&Y?C=L>8d z&)*M8LqFt`p)NWiy0KqxSx`@#&hr1WO&37d*QOvELOnVb>C~p6&U%H~bRpx(f}!=i zk=ST*Ww(e@C{i5$xAl3vFFn#s&W<*l2#La1m!nE3;}-jSLRe ziE(?uN*^NZxtMWZ!5*Eph^#MRd}pn78DWp$idySx!of?~x=L_R9|F#Z3Vu~^^ithz zv8~s?#?E%6*B$@gLf6;NPF$@}KX)(ZmN|9xV(Mr71`FZAf}!;^+&0Y+o+ms3P7kQ< zF1DW_+@;HwP?NJ5KQ9=Eg>bguRf4niA>hn};H{SPEI5Az&bzah-%dMU3NInSXW&LG z4Uv$pChYFP))xwP>qCTNg7G&V#yZA0yC+*03eMJL%V6#7#dxA%bPM5#;Dv(m#>z5V z?|)4`$vcksU|wJ6M|*QAXIFBap!KvTY?nIRmve$k65P6aIg0mO$#{TZk3O{A)-en3 zs_`-;=U$m;R{@`!<3&eAPt^lg*xLSU$jpOT-669SnrfY%G-dj);#!D!hZa`DUGD_1>;CD!oN()vxSi<;_G5mxaGVWf z9ur(7IMz>ht0wdQZ2nZOd090IjSOPEKyXA?17{`%GhQngns2w=$b6e{r_NeQUT$K% zyVgq?VK<(tQbUgj#xWxt6`YO-0MuJi#_n6#`fS0t0k8_z_S+bD6KvOIgtG+?5S*>6 z3C9GF5FBId9>z|}PWyh9eBa4<(rMp>L-=7#s`vAPaT)<<#_ncZZTY@CMSn5|V^fXb zgbyS^>8#h_#(6K}-GZIEjIiI!_@rPA7Q(JP#*Q)ED=vM=IPo#=AQ(Nqn(89>O2N?j z*3qa-xPa|Fk`UI_uy@!;GRCWtrqAvA5V?up$N0a3q4km9FsT(YpCUY3jMEU;Q}z<( zFQ4|l2Hr!Zj9(WV(uWAU#xVX!uuEsH1@=#5yhpHKmjP$ew|G*o|0x(+_MlI2!Wm<^ z?(ruu7z@zW5WdQja-1&-A)WO)PJ#F=#=R~3S-Sjnv?;oP`E|mh3-n5GM{qgwVZw1H z!Hq+$U|b>?NA(Tr`F9vUA{bg{R@yGjh~XJ-PYMUIKG6YeS~Ku&sE>+!gck`O^0AscWycfUEkak+Rw#!#&Pe3bj>=nE-ZMY zU_5qSPqU5ShXp70>%+Kfl^IR27cCrGS9HhD=`izE!f}}aH;&*D#vcpD4fQvHvwvfJ zKrkL^zlq&nua*}C>K+LbedqC`Vf`w68xB8 z49B;CLxNurjCq%^JB@#U>vh4Hya?lGC(Tj*Trf@~gPSrwT#K_dz}j;L2u@Ib+_=KAmkTvYj>X+-${%l%U>IxPA@(e4L1eWGPA`bE*M|8e?S z(IL?_q9dYz6dh$9P^SbqA7Tfs|Hl=Ih|Urn7d=$8{b9B*6zvur6zvf`!^$susc3(I z@?W4-wFQFgaE+zMvwl-wzOkNj61CaFbVw4vJncdZuW4c1`vX(eI0niT+S@LiA^%?T@nmuSC08r>Z^rgLiCg z|FyIG33he+_z*PpaigR?QuKUoSHFk3kD>Y6>jLI?3dbtB33uqSH{lN57-88u3oJ7# zrZX)U7o_r|-S+I_b>ViMwHXJ*FZd(DSZ9DU5`y;#PPEsD!R;5alVgIh6EaRZFg^#D z_Pn*rdKbQ9g0lq2w85^9Y<+`Zm#!vjkKlU+d-Ne-9e)>X94icq*L$|EXGbn(4^sqN zdVwDIo~^gTc?l35M41;DNS%5Su?J9Cy0OOGNM_!MNGH z1qCKPz}@5d!V-g0&GMR=xRHHquo7-er7g*&nX#KV;WJ5q)~lAH(3_bb7LJD`Tk$xk z#dw?-xYaO9x0`P}>t9>`wn(l!oG*p0Z#cW;M>HQrI*kjLuG)$wS--(KQ?Q${N353$ z_As`7q4OQV*#sKS z7|TrSr$HwOhBmLeTh(}8c$~{q^2?q}1uI?kF~&jgV-&bv7^(*5$QIMBg0r=Qu=Sgw z-wVczZsZ|K9{v)BJqVdvKR4R?k=pJAo)NP(O3iviH;LJ@-*h$wOF}i%qRxDP1oZuk68tj>0tMGyOpg4*WsgcsmY! z<43L2bjT-EoloHGJYlFJl^c`lxCF-x)%LOFFz$4oECl@eMv`6&AqJyHRi;jq1 zDmpIuUD5Vq>@P0b4IRK-u8s@vi-F?_u5noOMWSP(uNAG1v%}j(yF?d@&KCWs=#c1H zqNB$f@^5;t6p#>u4@5gpZ~e>ev_CfcR=2L5=_LD3=6G0}5GJ5$(xrD(rfz-9qa(I1Ppr*ej! zqO(Qshjvok`Ss)E2M4yN{<*9>pzB-K{kQR^!H0C-?wPqFDENPZv6g&;Da195t>*}K z=^+N+&UkGtt^&@83;tMe{C1tOA8Yd+Y`s^oTRV2rtR*;O64wN?7U68cJp^L`B>MW-n9ke7X{mO)wfjUy^N!Rvvmz&zu+$g zW6}K%*yUyG6N1qxz!|Y@#%-SF_QbOFRQf9sdjaz+gkvTB&epN;c1XH>QIGQgEEJtB zdaP)_=to2cMb8u+6}?DwO!R8f*arIR-v+*ekl;d+dvbCDb)_B8)u*=W* z9KonMFkUiee34*iou+X&tc-bI;n6Z|*6Br(a^@q12X&wC$$JIk`%Zf&tST8lDp=`_ zghLN7o+TJH{{eN0k72x0FtqNz3RmEf|8c?=Nx)M=*gMq2jCY^*{sT4!#~?dkMA|3v zh-^BAbx8ENqU}#`x>K}A^o5qa=!-4=B-?kj^i!;RSbCDt0d=_ro@Rqw82;MEga@L_Z=rVRV{OGxWZ__1tAy1iQNDN;Nc{D~*%x063rE zeoYPW2*Qr@M|5|16602a!@7#F`)S7K3&#E!I5YMP<0}M1>s1jP%+cqAcP5BZ4> z=2XU|f^ls@*d=(XU~I|_p2pUZTI|>d>!9Fw1qbyI;LL>J-GZTY+Dx3~&$5@_g)3dN zuby{JnpFL>-{^(*`ufds=S4c5rm5=$7GuQ9Gg}O#u@{h85KNPFf`xtd7jO~!tHv<0eEo=UMtwC9fbXYKN5^SAsiCC zM{vkkXT${`7aV_{*J=FV51nRbPvfSe;=fYG@uNP3FBgo86L!yLd}pn-;~*|G58{HX za++>(&~{DJDoKjYPUQz3(HA+-GArRlxqX6P45A{o2uD2=C_=4f{Iy{8E^ua4@b8wF z)wuW$(;4zQ+uNVz2B4v&hjbWGz-ai3H+k{6La1FNCDiZWPqNOX?qsOTcm?~5KI zI#&P2Vgi!uPL@-k>pSWF-*9bzKss+k%YLJSyO;4_f}!aySQq<`%$v?&b3AH>xr2V- z$BbFQL7jCJIPxpwj)Eh)jBxNb#yxATs|ov$GVUkXuMZIp3BFY@Zeacn92J}=IBKjj z@3`GP6`EGt>?&TY=79sh z^mx&6(UV0h%@vv@x{;R4@Pz{GVz64YOY|nu9?>}wbDZ%nf<1a8;jrNJS=Ka4I5Q#mJi*ZXcVqbdFgi1?5{}p3 zPtwdN_%^|~ZUfFtoMh`_%gae@U9)iQ^EdNHgu8X0zi3Gn{IXzZomqh;HJrk~)%~s{ zg!M+)I~0DN*PNz;@nZC;dUlQK z^ptcQ;!LJpgnFj;N$;8&JCkW&q0qYf8uV)9EKayx5+c(#!il>z(=wrMokG4N=P;gR z8S6fTo#!&1E!e5Yr=)ibyb4KcnVKbMndqqKjiM8xw~DsE!1f=D4$Wr$g_U3QZqaek zzlzSDW9;$0<(2~mD&ibgD|NS~{OW4&t%I%=(BupMl zk@nm#4^}Vv_4XZ`y0X+ z3y*>4y^a0ZC2aq;aF?!X2sa7AKM02A*B$*`*uHVNwvsj)z1F8U#;Jt$JC!BKx$AsNkW3 zq4hL;QHs46n~xOk(!0n@MDRGl5#6paa9r@yg5!+sz1hhe!DtUzy9KWl>}Kp2{FY$c za%@7!@-lYvv0!L@>qLxO*HxVGqa@%@fne{*7W}v1Y`u%H{c5&8>m}|)yKdK%tOa)w zoUL;R+plHoYiq6N5_Su|Rj^y{GEM}Ks&&$?8La(+9}?`>InB~LrcBjOHcS8aOSJQ0 zRd?(xfv#`tgv9G{@rsuSsj!6LX7jjx3C12bH>8bVyjgVytg{7Y3C3%ogoA>w7mQc@ z2-^p;le-1u#gXQ~Y7pZR!FZ-X*fp5(1i^T@!&u+QcuKAHq2}owvlc+o85xu_Y?bJ! z=#8S)5wzum>Ag72>h|8x(A0ZPla}kqOMY>nkl#=cwSD1xFdj1bYR? z49*ln;5+tV90ULnlGrrBcp zuHbAojl(o$r`~5zzqavjk`&ZsC{xEB@X~mGZ5yc`G4XPq;21lP3+^sB&d#$l;9;;Z z3?{0wx`i8fk6@*%Gf-FoS+fplW^vHrP}^qooi{v;ht($kalVoTTmuyF&D^R2QG zZ-%b#oOMa<&s@lj!bE=#EnR|p3WnB4Ucu5el>6m2;aH>2rBQb) zyoJN_vqX<=^X-lpy_^}-Np}+6QbRXSf3Of7u|R<+ee#ldP~vqrmQ=ORxMcf z7M&11NOa6@($m!4i*=K>^=zg~U|4t5R6^G`YTRCK?>k7RJ(gRSwMDOG3;s-Swyq`| z8p+nb3J&Q*z<5~5_;10`dRhgBK_PR;66*k#IjJ-6W87JA;y%67ncnMPFN5|*dfhf$ z1zleo;zjK5De(ub`+b1oiaV)@A3zO;E6HDYrSOs|hU{4w2K7z3yAsiGu ztk$=|5y6GEP7aZ^y_}r{1>1F2dtjGfE!d^Y2xkjkBp7eW5)KM}OK?yhYM=h^zjXct z$#oCaPU!j$Rao4)mT~Wdb=id|B_h}@7~O!vGh>2p6b#MRKNZ}vdxX1mRtH)YI$$9w zTBa}VfQ92>UDzT0+NL2fNmQiq)3i#?I$t;zw~myxBbI~Lgy9?jb7YI@Cc)?tG7XdI z$HK54p=3uyOm_*!EpV7-#snV}46Q%GTc(ce(Oiqv<=hQ8y)J?q`vZ(K1!G+z>=b;V zV5iRNgo?y3LPdHD!w3O$_{H=F!G2@v2n!x27~M|RQNcdJQ7$hgxI%D@%X40g?tOf@ zzW8EvuhxYZV_jY(CT^Y884k0@a0A{Dj4lJ#&d#XmN5XtdLO#PnOiINivD8p|FI z306Am5@5gJ^cCD;eqBa5JdUl;6&%*pz!`DDT?NO->BE<#cNo|g+F55Qy)8+PO41J} z>8X~kf2CfC$Hf~n2ncGk37h@y&;^Z&KE(JM!O@3wDt+~| zE69APaNJVsQqP%LjO4nN8Vy}vrJNJl-Miurf3@6|I(`!4uLa{p4Z^|6jDHu5dzD?& zJLa~i=F60*T!x%2I=GZCOWKN#h`vyCcp0a679A7aU35b9Rn@wQtDe>F2H4eY1F2H*zwUaY?O{GQzHx89yc%dvD;3*nGx| z1jpv` zcSKe&9xFJavw8q~B8;aC#!S|uo^iYa$#pBc4!XX|x~kco{Z+24OCO?A!h$an9M)Mq zsSSeNf}zd3<&A~k^{T$OC$5hwBpov{vN=2-a3PZgdvsPWVD}cr3k72#AspPw_-(=1 z5*X_b8Glx5eW+J@$MX+E(xrZEIiC{^Ut?`w!MgQp`ikD^Z3ZR3l(;_cpB>Z%`RePS z_%<%~A*9ne5Z|U(V$!sK#CVEer{2|@nk0CkV7G2}8E|$DTfZq7H-reQ?TkMbtn^&M zLBab32lXz(q0ia6!D_BaNVmHj$0Q-xDHvMk;o+|R3pVc|9M>Q)cR0UhJWwzyPT0MZ zaiL&T{0hR~GOnn_IfU(T#xn)m^<2W)f>#O7*1HI+@7ekj!MMD+lC1YK{jdMLYppYE*VXl$u;(GU?g`r- zn#SW9$#b%}s}y&*;=Beehzp)5IDUff9-ZXEpBHS`yI`$D*WjMUa{b&j*ps{?NgkbZ zEj6xr12ZpwDL7ltCG2Uz_}5zNU4%n+#%ZtDj!8FJI~Y3z!?zpfY9~lKR}*q>_7?4m z@VVOmb-mbK&w7>o6=B1WufD!fXL7NxNU=&g`k*#J!RrMF^$_69xZoPW(B}6a?81K( zo-pPPPfK=wN-$p4=?gE>c8puS!94)2%?*R|nO`bAqN`x;@U&-qonViyAso7p@oj?f zmQla-j(tiXsl&3Xxr53qy^{5K(P7b3Mc=rJ)A5IE{pz`|xdvu+$66G+zWxkf#I?#; z$88JiUHwqmh~SQbBf8yn!1hjTeU)Il&LQj+JXEk#&jrqm3N923t&hBgKPiiLWjEuk zgsu(D8(JAr7bncL5?ng>ddvWk?#x#R$Aob`$_@5pyg@K#(d*MY_Wcr)x-|SMchNVZ zooiU{x6(!bCHl9uobFh!2lcOKjGn*#pMBaHy1qVDmvglqLOMUCsqRmmCs+%{%1JmV zxLPo-1_l5}1aA@?(PhAyF~Kpx&^mJ)mVzs|%%4v?Codtv4c@d)-mDwaJ2q|uX}0}l z+diZhWZl71l%&T(Q$x4C`OohbO!VVIKSw$>)YAL(2REemcDS$me~sMOdrU({An)L>{((11V>ASfz~A_8u-h+qg(?Gh2!2A38!GH$pc?Ft%&28{|5 z=utr2U{I8ZQ96K$TlBlP-~WS7o$ov6vh8ARQ^6AWzFYtTr? zU*E-f5#R0X?_#?F{m<}!54n3&TFa-vaQ|jFXFJ}f*v-^iZg(P);ML#YrIeksyI*vFdshv!hO20(%2o_^!=&A+lD_|q zzl`q7Rg|-Pd(U;{#(ByQW#}{&%}a+)qS_-D?eZ(BSso^)D;`i_x8_liJe9ILD!v@AvEJA3?LD{DoATXzdsq8%j`CxabJ?D>u(m z{ugCuizEBex(6%mp$M|ozI*X&EALC$xs;yOc&F9dtjz9vhWm1<$I9$L|KAf=W^Z)= zZ8BK>ch>XsU)@#UMcd#U8l0Kev)dXjrNO;6&UCw<{>I87W%vB@<-~VZzKyc`NEq$P zsUNKT2<23^!j+rnDL+Tq*$(iJ)_vvPQL6nYNy_h0PG-x_^5vhb_doWQD_psGzPWwc z|3`y2ub+K)mwVYITU$fJ*X&Tbm$e@zXk+EJl!I*9*?!k4A5Pir`q^$yQg6rd;Fo`Y zaPHK=eJ%1=8)bB){lbVt`q#W-{cn!6S4F(Ew)+Kz+J#`Vv)_TrH*CP&IJU~X&+D~! zxLJ1oISt!}M@P#2B2Gp;F5+ns-xP6G#Lw4u7`#!t5NwQiTg1B}{xRYff2(~zJ4W2g z*&nCi1Akn`1;IcH@y&Li&c?AV=E=AQUxV{C)_yxKY&AcKlV6yZWM3NNeu0nvg7TW{ zcK$EVpJ27~|N09G&%ds3*t4}@Ps_wXHu?#a-FJUu-LDJDvF_J}fz;C32VAYJimqo; zc7Fo+a*^_dl#AJRzFc{*4g5#SmDzTc?$uPFd?RINPV66I{j2u&-|G68CCj<@l-=L- z=lWqNzolWy>z5XrDoeMw{_oM?_TBX_3p!Z&3(7%ut1rhoTKNacv245Z8ukjCzUkIR zs^bpoZ2JYTE!H9)M`5krajN>?YW>f|N^u^C6|sB?uBx&AQ!!z=VQ`%`AQ|HK#$zRqT!}M8 zi`;+}*Kr?KPKS>f_eZ=G(BW=Bc$0#nIX=Y7>3swRg>X#5Y1hF&HLk=td_6AU`*97fOsvR^435+O2v$(W%Q#8fXN}#10v%dm z1z{Y4i?sK_@e#JeL$H!B#$!cZ%*47p{1$T<=(_Mn>7a|VU&HZ~-9R-?Pcd)7x|Z`x ztZT~}{GC?`7nQZdx|*y@$?o;1OS+DtgRbT3Cvy?kXsqj@CgLitgPMkQ0n~L^S3b>C zJC{6FdHdI&E_TY%L038Du`X{aU|rX=85g;pX{Wa5T7X7t?FeX={vlX%*Sk1}{+&ou zeEZWu6Z=MD&FGteHI?s5tT}wMu_o``i8X8Q5v=KYOV+yVhtgZ&5IbMHmJXVv_Zd#n z{v%G~vUPS3bGRce;NM}*%Nvf1w2xos9{@a035?HB+SVJ9Y%Be7pbr zZ$m-zL%L#34C#$EA7n7rM3AvqGe9oG$!WHO*I-TixDEUH9;MI!1r#*XV-eOAk30^T zjZuwb_*0y~d$1;YGx5~o5= zZH}X$GoY7YowvLi>%8QxSSJe?$eayajCHneIo8>{0uFT^Zz~0z!21U4%w2;GJcgXG zYlU^Dt_#))x)ZR@%nigkB{$j}209rxkq$ZwHx29b+YM^xyxV-N6K;=VooHKvb%t#< z)+w|NCA-&Of>Tpl=uqT5&`zw=Ji$gg0y)m^lwqCLX@_+_rx(_Voc>s6a7K9h*I$Bj zG?VC{b2c+%PS(uP0Gy?nuXaw(JcD&sCXaPGX03O9cPZ2u`%7?}bLa~N3SZDcYq@-j z)0MVCllN=@t+a74)=C>kV6C*#7i*=B;aDqeOnA?K{<|H}QX4ZhAWLmzFiUL&537Bg z?T}w1$ZxNeHr~NnX=5AKN*mv3`}1x42AllnzZ*acD74tbAsTNT+T#K~5*Kk_tdRE# zZGVAnf1di|%dvu%XN45f6KsQ}F)AH~Y$eNO%VWZSRC%H<8W zQBW}Nf3bpjo4;>IgkavF8&)pw$ym9(=V0aX&ce#&y%Uqm8wO8NP%!UG4KU00coVi@ z-XQo`PFwq@GP%58$k$l=PMOfzJ=j8Q-Q)jX3QDo9^8wERHfW5MV%roe#r6QK6x%kK z6x*N!PF`m_)D@Rvru^rBZwktp8ibWIH4-al>LRS1shL+!yiDM)&9FHsU0Gys1+8z$4plFA4v7#L&V?{g6!~sbQb8tDn z3n%cyxDr2$(;V0>NwnM0Bhc;Nz4qdRK9ge|@cIby)v_okJ zhT<4L$J;&s+-2_8;UYRD@s&7*Z^9XTKhEK2Z~^}f7xDX8$qxT?E`9zh+Tmw9DB7Xf zW;+6kcIb!|?QlF+w8LPmXopIiB)Q>otYnAlH}m+_$>*#DyeaNR9-1az7EZ!nj+2M6NJ0^7lMSXa4s#JbA8 ztJ)v2{)dMY3Ja}p4Aw=}eX%a8J`L-l>d{yiRZqZ`T=F>s>ypsfSeJx`cT&(bp$l<2 zle3@K26!3PWbN0nCTp+8nyg*GnykGEGg&(fwo-^aZAaiMZGeLsdk8eMwK>*ox^`Hz z>EgJC*>!!eCX@A(pY^vF2Ei~2noTwiYc|<*ZSb7!;0@}}RH~b>rc&Lj_9fQ;DXghf zc^tgt+THC3)xOZ+m+wJ8!TO$aC)U@L^|sQVuPIw#`+6=2I%9o1cf9)ZZQN+$D z{2xm}U(cnmzMc!QzMi|oyU8zk#S5|WikD*L6|ct1EB*+(ykh(N|7!{gEDk=g8&F_z zOH5#K& z_!%53u=p(s3M~EvE3o)S>;sGa5j$WT&jEZGR$lSRSb4=~VdWK1F^7Qyi|5cmfyGr= zfyGO(3oI_}z*?-l;?J=1ig#n>71#gFc364Etx9&UKLr+dqJsj9kHZQq9)$Pi6XU)4 z#M=I6+ri85-h5)bH=o!$bT6a50mXDES3ogNDW4eUl~0Ug$|uHq^NDee_PU?j5zu9* z`#XpJb*$@9+t5MRp?1N#4z;J+xeoPItm{xmVqJ$i33DB4@JF01v+GuG`P_g0`yIXcoVMcc6xue=b5wY`~7CP{1NlPxcIQS zH%^^V@`b@b3WYPR!x)?xWxfIjXPeVF|B(4c9Gha!;>=X@Q#h5abFG`a6Ti&L?%koZ z-{lOmOPf7u?e*M!^7kwMjJX9)KW+ANdwskAsPg}D3+$EbmY6O%iSu}(ISjN4_H=b{ z=cL^K1~=nacXJjeyO^KH>CWagxC(E>MZAxDWc&_RcC-GiOLouqWLGO3Nr!UmW($-y z$Z><0;KV%Z?=o|({dThpS}nQQ-uwVg&NRQI_LTVpZ~yy7a+(!((xLoM=7#$);0$v| zoSJ1$$Q{k@E3wiJq}rR^)%UhT9n9`B^pexGU+o<3@7_-GyuI89iN!%h(@* zKjYXz<^?#{+U$O%EsdYTn{bjR<#!>4bVu9Zw+(EAIM4cHa1oEiNjwLa_p$9C!YTK@ z;&<>>9GqZYulB>t;VueA3QZf@4rGq74xMo!ZXSTkk1~%^{~qRtm--mO( zN)CgkRp1`1#6e%%U?YwVHSfS_{5?($v-aOKvOAC;Ztf=cGxx>mlfB*JKaxU*0WR`( zkNHPD<~Pz_bCL~kKTe%uUWRl1&6{ztbOS-KPh%TzJ>wnh?H-%TA+Eo>{h)^mBW-~G zxPZ^aRi|6~4D~SmJ$I0>5z8)u*m_PS+&yiwF`?aL5 z`+vVfRWDk5a~!;Ej>}8UgK;`!z{wPn3@{64Ua$>r)&`r*cVWM9fWHF|;KbGDMc(eG z$dfKdd#>8rH{vk;juq-OwR?~$m^;gCFbr3HYVB9z_%`!HxbTU26|SWJ9-O3q>)(`a zFAQqFvJLuMA&BoVUxcf^Hs6JFJI$})plIHXD`{`KKMx7*$KlK_>p!t%|N8rv74D`( zk|XdUF0Qur4{&O&xpB;H!2P{adI*lh>A#srV?V#qKSbByO1GolH+cKkUwoVu?x#bn zv8|o?f(B?}UWaS;GjErhntxLNM&_1fwu5PR&62;tZaDRm-CiH(&_8SAd#q4FhjKg) z=iQVbKfnwP@PqZAhconlLff~p{;#PWe~7ib{lClj{MSnLWzB4llWlB(?s8jmAFM^> zhheQXKVGK)Rk-{R+kURLKg_(inS1>G5zunyf2V`iIrqQml-j%51`XVALf%?6y&cvf z?I+@N7wbPp{X3bjP&>XURKflJ?8kioYccpG8lbDSZ@^k|{!6Si!1rxoJE&F5kH%V2 zyaLCMw(-IXDQG3~IauqMKY+C)`%4;twbiS!7FFM&{wzw~#Qmz~kC;|hZ;x3JJq%8z z;1+E!9f1j0i@k^1fYrzEQhP7!zX)p?@;9-T#r+g(J={76utTMVaNXm7Fa@ozdpy?i zy#ALA-+b8+k(yMb%5mczPF9%=2*VXdOI5rnuy)T938%)4$c9MW33v zzX?n46YTKeSZf*e$65>OOmF}C(`rwb(Lsws&Cv$8+YbIk?f4}e$LqY^%PPj%!%t}s z?y&9uqyF>EE!`izrO$t@3e?pV{5{aRKYg(l{27I{&d)Tg1%BpxyB$b2v)_sr;T(QV z{a>^l*n9|||5|h8dpc7cb#_Go~6tbM<7j*vUq;|^5N0c%a3-dIbAjKEqb=n}Ov-Zdcwt-W&})@nX4 z;>-fO!8g_4olWvP@S)lna2M9HKl`?0hqKoIP^=|$!oC!=;!dSDxYssFW3B&^#aiZP z5q2x+ly+#9w#T2TorQJk9%?(3w)QY+OF_#4{0?g!fC{YW{s|g@S^Xi_Dg$?F`#Lt2 zHK*;rw;f!EE!*Ec{{Nzo_}Mx%YtJETWdroUN~b>sE5`mTwYRqZmtf`Uhgiw|C##ZW*vEq@$pz;^TV-=TDQOdr&EacumSJU2EEJ+)jr7l999DL z8(68)A7BMn|I^#OF+H}Ay)pend!`TbonxKYV|Pxqj(bQt;@~uMZ>((VBvyL$`P!by z^J!SQR=LVbe@<8)D&ZW=)nj5UJoenkJ;~#O1LtfU+?onp4_3wm(v(0_fex`XOP7F0q z#)Xs2w{+w4KRv(-kJF*}u{n>+Pcv`8sj=oAI6lt&GtT_p+`PN(aGvKxM_hBEwV%-4 zJ^ubTo&xu9C>^RUwGQXwGxK3U!DKop2Xi)#J!=C#h!bnf%W(}i_&!#|D{1m}Z+C-5rjk5DyK*a+XnSH6 z-@&0W9KWKVAjSGe+a3pd>;~K7s`t!2v2rI*#R`9%h!r$>16B&;B6AohTk;(`DB*zVL3~-l$fWW(9`9w-nOrZJJ<% ziSvv<38&p$jMDf2S5qjyY8%YQNd|Zl$8cW#@mjSnv+X~^aoUSG!w&3og5ANGk8Sdw z|E(zG*nu9nfKSFn1~?OExPb}Y?tLUdrr#AoI+eF9GD@Bal9l$7%fR-n#n zSb;(BV&(j7!wUHMUhRk25h?qf?O>X?pmOZugY5JF2nvNZwm||bcBn$_ME_J`B?MiD z6`wZ4+dawh@7s7c<4ox>4}!nYzxZ`%&*G;w0N1)M$2q(Xr*Mt8yMfe3yMZ0FD+=;k z?4k`zzeP9fZAU=)iU;8GaFliEL?O)vN8>8oN9{buLvWthY1==9Gx#N(!mH(`*8jtj{pbG*EBru*!mH+ke{YXj zW!`)Yj^V*L|BAIw#x={#vvG2{c>#`HW?tf5di_0Tg?H%?f7bl9Hh9t;>tj0uWJL2$TpmL-Zt2$ukAqo0`sBrT=VfbgDY@sp0!WKiCfJ# z_6=>o+-+8`<>tKfsyjCh|h?4V#Jdpo*wZn5m(iA7`#xs5WE%frij0a_=kx1 z?_c{swvYIPT6XVOLuwU*;Jk>hjQIM9?~VB3h@Xh~*?jG?mzu5i3>HhuxmqN+?BOV;_+u1)q z->~hH-17~4)al=@We^E?dkZ4m_P-OmR1${}R6*u;c%0z$KHGG`zP#hsoz%IDXvJu@lBm4aQDNU2yr>@mHoMPnkM?%Gjxs w$BvtP>E)9z9-lp^VWU<{_FLAl%O8&ZKRZP?|7GB8MT16%EvanS=&9`g06IT!Gynhq delta 93383 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� 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 Ss(s*J6-Tbj@4x@j+W!L=B$99d diff --git a/main/main.c b/main/main.c index 525e679..2fdc626 100644 --- a/main/main.c +++ b/main/main.c @@ -3,6 +3,7 @@ #include "ipfs/repo/init.h" #include "ipfs/importer/importer.h" +#include "ipfs/importer/exporter.h" void stripit(int argc, char** argv) { char tmp[strlen(argv[argc])]; @@ -22,6 +23,7 @@ void strip_quotes(int argc, char** argv) { #define INIT 1 #define ADD 2 +#define OBJECT_GET 3 /*** * Basic parsing of command line arguments to figure out where the user wants to go @@ -37,6 +39,9 @@ int parse_arguments(int argc, char** argv) { if (strcmp("add", argv[1]) == 0) { return ADD; } + if (strcmp("object", argv[1]) == 0 && argc > 2 && strcmp("get", argv[2]) == 0) { + return OBJECT_GET; + } return -1; } @@ -53,5 +58,8 @@ int main(int argc, char** argv) { case (ADD): ipfs_import(argc, argv); break; + case (OBJECT_GET): + ipfs_exporter_object_get(argc, argv); + break; } } diff --git a/merkledag/merkledag.c b/merkledag/merkledag.c index 2f57aea..37bf4bc 100644 --- a/merkledag/merkledag.c +++ b/merkledag/merkledag.c @@ -42,8 +42,9 @@ int ipfs_merkledag_add(struct Node* node, struct FSRepo* fs_repo) { } /*** - * Retrieves a node from the datastore based on the cid - * @param cid the key to look for + * Retrieves a node from the datastore based on the hash + * @param hash the key to look for + * @param hash_size the length of the key * @param node the node to be created * @param fs_repo the repository * @returns true(1) on success