From 01e2f60e779d108a6687d066cdb30222e2658641 Mon Sep 17 00:00:00 2001 From: dinesh Date: Wed, 13 Aug 2008 15:09:58 +0530 Subject: [PATCH] Committing create_dep_tar after changing for dependents handlings --- tools/Makefile | 3 +- tools/create_dep_tar | Bin 50678 -> 58419 bytes tools/create_dep_tar.c | 79 +++++++++++++++++++++++++++++++++++------ 3 files changed, 70 insertions(+), 12 deletions(-) diff --git a/tools/Makefile b/tools/Makefile index 141eb326..a03cc9a4 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -6,7 +6,8 @@ tools/doc_extract: tools/doc_extract.o ccan/string/string.o ccan/noerr/noerr.o c tools/namespacize: tools/namespacize.o tools/depends.o ccan/string/string.o ccan/noerr/noerr.o ccan/talloc/talloc.o -tools/create_dep_tar: tools/create_dep_tar.o tools/depends.o ccan/string/string.o ccan/noerr/noerr.o ccan/talloc/talloc.o +tools/create_dep_tar: tools/create_dep_tar.o tools/depends.o ccan/string/string.o ccan/noerr/noerr.o ccan/talloc/talloc.o tools/_infotojson/sqlite3_database.o tools/_infotojson/utils.o + $(CC) $(LDFLAGS) -o $@ $^ -lsqlite3 tools/run_tests.o tools/namespacize.o tools/depends.o: tools/tools.h diff --git a/tools/create_dep_tar b/tools/create_dep_tar index d34281290cdc57dfc7a9b1ef3177e6f55012d27c..7920b0b094cb1221023859ec5438b01ecb7473d7 100755 GIT binary patch literal 58419 zcmeIb3w%|@)i=ENIXj1)5J(^aB1Aoba8V)QCgKH+KokT871ZG67;-rYge1*5LGaOf z30`7E4YbwvX^YlARja6NtyNKr;!}$Dsh8S<)mmD$9tyQsvGTOky#N22nZ5Tp38_9` zzwh^czxUm+GqYyathHv%%$m!dnR89$!ZU2!w#*ZRTq zy^c7%PawfAyyVOH5S+QdpNlxYy8!cLJbCb)0Q?Ey%{K~|uZcVNy<{!GUXMv%-qg6f zys36lQ)6@cnzBSo*;JJltVQ-S&si#IDF@TIc*o+UPR8Lq2Jc9`e3)A;C_Nn7c_&(nsmY;cY z;gNEIJ6Hz}fICS0hiTV1P`l{4$OOPW5-)Yd=LqG9&gd<}8^xQ4cNAXgF&po2yrp;x z@$xCgJ4Sq}elf2`|2JDv+j_5JAj7CD>gTCI=%`n=~Zi(^^Ndk4PT|>zkx75 z*J}7j3bbz5@Y@=G7%tP_r(u)dzh%U~r(sjx&6*$U71Mu7!%Ro`OuT&9J_s+=@oW!- z9|G+D3bqtazV%_xR{^Jf>BBc6ym+hQ(*6xWOFKcwE4awII|H9~tmqb%ekd%~6@U-@ z*uZE$u#br^G&LscrqMc1wqmjPs+Q(hB3a#*jK!?jS*v5`)x{eV$-1^VP1T7+UBZer zHa8|Mohnwhrmn^VT3YLxJ)owkB~j-=%i9xcV-3~KwM}(xR;(U0$h(GIXIQcMi@>tB zu{qYBsH?T=>zmpW4c6-FL~C1PbF$t_B-@&6R<+V?t7&MnTHBKetGyXkeWle_SKZXq zQe#ywZ)rey~@oh#S5|`m6ccvy{xk88$q|lYE>xhiKe=`R;&JsHfYtV z*JOacMtC9@u^4l%b-b#&vDvC`tE)qB&6?_1b+T>^)Eld-txi@WYd}%rOy$_4_EQ#Z&j*kg*6%DxJ{j%+#7(D*49uhpyLJj) zRPYMA=)mUEMMpc2E;_J|+H zTj`<^Cg~Pf)*8C#w63Cy&hc8h=*-s99bs8F(?#caD_wMkchDV)HcuA~{4Toa?7mJH z9nRf!F$`R3VaG- z4jcA7DsTniDB-&Wo=bQF;X4GLM;JB0+Hv(tn;w9%bMA7FpOvayc zFKBquLUHLb>*1q>AS&X-L zY`a6@-&28U%MDwTLs?!HJlWfwQik=sqHxgmrf;8H>Xak8tJ3XsN>fik%FfCI9hC>{ zuF71798qRjot68#Di3tdEp>?=MK2FZB%0cV*4|lpu&eSQVx6waeN0jUf}NG`YUr1M zx&T3f_T252EPQLv2K_vEh1)N{K-o!i2f z?q~AFV99{>PN>W3vJ8dGK&`8CKV>z#zIh>Dpw_aFLcE`xvJwWRu7omkp zHTh(Ke0Ejl8zCD4YV3ybgxdE`q|)b>_JMs{0J}zEQ@n2r`vc5r`QIttp^mE$S?!|& z#q}MP5_Ql@T@0MA%0ooo`Zu5lq&`ce-q&&UzVzfj3?wi1lb4{P?AW$`VX1?9-1CJ) z(Ac>h`${{{PC?HdGo551#rtU>aURsywKUZ=+v(Vf8rucT)8TbcY)eYh6!=B70E5YB zCFPONp>aG#2?8kt8CZ>;0#&i&>VsDD7?ZqjMl2JkU^w|G?|-6~G-+}(g>#7fGb#N8 z9akT)^44vHGPhUKE?Il8K+#H7I*=}Eo+v9bib+y0VGPlyr~yh^CtALhP`CDugs7~8 z0k$`6&AVYW%ppr1q8=(i7HK7NU-@3ZU+)%7`W;P5&}< z>=25@HWRAW+}=QU%u0XteyJ90=3)d+0tza;)T*riCTnSKD~JvXn&!u7%QPoY8tbH& zdVV1Fb|lfMe}+1#T0kzua4!}yXm<>~?NHnf)jA=dhk6jF800}rvNl`?PK8zBm<I;9^i1v zC)DpDBjWbTL#!oxk3*Q$V73-9P)=uIX=*Su3!9z2y>cImd2c~Sex$A`OAoAfzKm$A^SSWZs5l;vPJ8`q8>I@0Do3g>>43gq1W&Bomv{XNFzu*3 z2>8H>l?U^#?-7%O5@36j{#R*cd*y)&aL_hIM6@AR?jj|kRAMEfDCxBlsStbqf;3($ zmQLzK6tPr98XoqO=$rTHPWFNTF_x&VIX944*qD=ptONU~Yh9A83I%_aHY&MP2Ow2&b}dE6yT3DpECzb?B5-jo7A`{XG0cHz@^m|x zVcJ2ivgBGn|4>+7E~UApRG@AWq8Ow?bJ>DaegivbRj^bKKoL~;VGBaUIfSVfZ0+7N zAcrm0>g39URMSDDCR*ow79&N|HCL4+M;E4L)JBC4)JwGIj(N57MW_{H9n;aWWYN@q z^O0vVuDO-thP9$J#5|74rs?0ZRazbbg^I?>!3g!f2`% zPFHij_b(pjwX`pc+B;6SKW+4$l=hA4E3Fr^WT~&(#_Im8D0KuVp|seii4LCxXVkvj zl%*pMvI2_rN&V?VaDAQxSub=}ic-HqaF9gAka$K%1W0_hZxS0bNQ4cED|?fOXOJ*` zb5UxtX&d?GRc7uyJPEQG;QW5!}hxO9Ky&S+0O48M&CUS7V1#KJ+GNe za=@DRrLB37Zw>ZZ6SdODDQ%PKN-j_9-5hmPTw-wX**#4fL)H3|>bsv=5g2=t)P8CZF7oALnmpXZlHr42) ztD>lHoj4s==lWU3#6$YJJ-d-rRKl*M`JIc4;n`jhrO+L;8bcUS5$$}w<3%*3+|I>O zLBK+bq}g7P>-ma2Up{@JUX$+&pq{RZTqt_1@@=n>Hb7u8jAd>oEG!3^@XdCp^ju}S zx|Sl=?VL@^yS;+u9^IIj;n}%+OC(Se%I#V#;hg`#FVd2p)DScU)5S|kp*>fsZn$eH z;=r`fREw@*`%zuU6z!RY{(11kXfjY!FzoH=VVx8GrIYTekb-$%CXHm)I@@sWX6T^&@7U}5My)% z97*1ppEeN8tN?19@H6Bv^%KrTpb4nvSS36S6)h=y2o^KQGxlD1QNuZ@@RTw*bsEwb zt98v2FaNs?Bai{<89La-FGZt(qM=%q`}U~l{$S^9Wa*$M_(2i;U}yf`V~I&^0R@zd zKZwo3BZ1UbksfU>y;)8mOTQO5K}47NpeMR#Yf&+DpDorkB{|L*!D_Rqd#^ML;@-o0 z(^=_WcXckRM_%5Yy3M1VDK&S4Vp^+Mq&3PJT)<|a0(b^vV%M;PQXQopqd-^~prZ?; z=QXr`NF$>PwpG@4l+j=RBz8fM9F!8Mc%=&|lRpa6eHgBIHD8tQM2R?L8b*Rlc*bFg_VWifNc&oVODJ^^YQvj)>9 zQ~5G|4cfTpVF@`TcsMYz#jL87ZHbGGDRy3ajzfV-gZ9i;>OW;d6C`y3EDc)gkkoR} z(o>c_AEM<*%BXH_539+|si{*Gme7Am+L!bfZy~;On?}A4z=_+ELsEGGdsI5k)v$r7CKV6PsN1QI7fStAP&IlE8ki(h`<7&V6zJ>b^t+Fx zETm;1H=b2rz!3Iq-XP$#?t7rCFp%O1eUsY#ves(i~>FWt7cn3->2KIWMv;hB%xv$q`Wor0b!=xPDgWfM$} zA|Ez-4752&KFF!73{cx&;xJWuFV^Y3j3kZY#YhGQKUf7O6GkH|o-vT>%bdZYLJ}?b z1g+MP5?qZNGZKx#>|9N(7h_-vMHU5G;BXbfvE1cYF`z_i#jp|2FiB14MA?`wLApZh z$-&fXh)ElNdxO}s`d-bJO!IRqmX&0=-pppOx*>7g=4XcQShzh1TibhNIF!?LQ3S;7 zIB0t{j_m7^k-eq8vdS6|n2>%!7D&vH69c?JnS+W9@b;dk^?Qv7OvPhZnS|1`8J8;6 z@lN_uZ2G_irGbHEid}%v^!v;SscsZ#YUiI(BlTF?EYTDxJC#acMt)fJq6el#s+x%X z)++p+%$oXE?^;x$!>Tu<=4?P?)pZ~vW+~+JYR7P7pwF7eg%%C~HVcBOvqh=UZX{qu zPQCeoG4H8~YQUGe7Rb_6a#O$lEz&>FEW&P?B_WhlzCYc=GKTcZ-$DWDZ0&g#HR!sl z`H8-dsn0z!+`s??Q}#loIz88tdVP!(^u9e;0!@?t4rDZSEoc|fTdCR9IlxT~k(|&> zrT08@G?m9?9;CWeF~!D`=~-1iEul1cJvHLTB2KCf?mb2-Zd#&Bjn3gd+iV3jl`#_@ z?IrvDr$k#EO_f4OBlTU<1)zDc4yo?J;7I^itYpA1QxP)};pkF@@^7b}Lv#Ki%}eGV zEG;$rkT4nIW7^D7YJTVJVnnWAJXvX9mNi@$uT&@WgBa-#(i^<4=BO~zMMyE-tjrG* z=*1bYdK7tUA%eJP9~A?&ACQv4&;%da^^)erDwHcqkobUfD?lq2mB0hW2lpO5-4N_`PBBWLM`FFjjB z`^gqoxR}{Mw$wU!A33_`f0meQA#=dk7ENZ1kWpiCJ;1!-4^n@NP$}|ZJ-I4`2Fs?LZmLkvFl>a$Sc3|S z`E`EY`iE4__jPnoik_1s$hvnebgz1q_7hEwJb=}|j^`olfv$O=?{P)TH(WW|=*&g8 z1Acoa8T>=*=b@?#zN+z%LWI=lDUNW-kmgVpAFiWDr1)5)D4JGA9~CJ%CH2)kOy36s z+8w{aY{t4*YAn<*#4f-ztU~Md+Zb(03&Bz?hT&Lg#bQbB`obHOM)|=<6ug$hgC%O& z=St~2WeyX;h<(p5fGe}Q8cp4DzT&;c3aV9=Lu@q@y2z- z6Wb6<69Y>)vczP)b6jCLkVi#snV zEkY*1Ej?cg6|dKQUS;6b@j}JLm+Ac`7&@`L5LN7dgktxuYpEq%T?8JC#W}zBdPpQ? zQOK7}l(yH|YjMAUAXCHvOja#3EYO$~R|QWNK6thPOi zNUTw*yMu^#fFo!<`aMu^Fi!O-T%jU%Gh#0qw~m;Qdf*RKaUZ(>3Mx0+kjO2IdLxxG z1M8I1RW98n4bCHYkq~6r>M}*2D%Ge`6Z|s}NYI-zqf1EVFLc+Z)0O7n+4-fE1-e)R zB>kCjB-E*x2HR;I`PP=e<2RI@fiz`d^oBB`Y2CvFEprj*%Qyf79CW^1g5Gl@w659z z_fBE2I>fMSC&{0#7veriKuxOJ!aPr3Z^f$Y5&Odn^<^p<=z-dy?X6 zWTAvm_$R*-BFO7csD*=yltgul zG6vkcGL+3oqQ)E3e8X3T5M z*r~W9h0PTEMEVq_Fny}$@09#MUuP=WlXQ)$g1hwgkNsh@+2Nm6I_}xT_X{&t+9d@% zPc!Exw*6Ey?EOC0Lh8*^;U&uSodzjb|NS2DTd+IQB6i6}!ntM%tv?;UAWCtO%$N&) z!^(e(@_f?H(Zm&Ao0ys!{Cjf9?R-A(k)`O!#H6sBCs!!uV^mohs7->FKD?XIAKk}) z*Du|7)HjCInSIbL3ev^bze36@-wHXa$QM!38FKiL%g$XlWG(TnW>vu(*7Y~iN?i(c z(bM*<1KQe?y(K*;>YsBDgV9$VDW0yP)cn`D2HQSJVCv{iE+@R;sIozlLX#xlBpEJA zlC|uSPSiaTyChSO8$jV+^65H~e^Y;W69ZHRt6s9UqNX39DONP*U zo_M&nla*TXvQW5}tBJHg-rCX-^IcVcd*vFQWPcqfp;J;HNLewtSA=SWgHDGy>hmaC znP?U$DoXe3(jUDeR1T!BksPQg5E9?ZJtI))z1)L=HhV9(k6emPqq1j|+dLO#t)4+_bAJh4SJ zkhMRTI%qnSQW8*;Yis>tnH}L9>k`#tGV`ni)3G?u(KzPU?8@X5B{t(?Q`Y)oOuM}v zHrR-H@~AUx)Ot#>@#w<%|MAM&EEdYw+i0JkI zk^wrjO*Ko~Kn!UAfZDz>pwfaG!(9Mu{ZFf%6;uc21w z&&_*8#xkadWnrmuGRd{lbcRPl4SHCCO^B?!hxW>6JroP8dBF>q;pn{o{3Tu0+0HKA zwmvz|TL1KTFyOhU3okf7wFutpw(S{)neV>b)XOjS^sL{K3t`uH@b59(pX&+T(332k z@>lk=ez_}AdcO1nVs-q)KJkw_Qz4)@&rQ5oSOWCfcY{l-=)SnT5-L_6eziT7r zv^;nf>Ix}h-n5459|B=Xgl0kSU3Ko^xp{nyNe-RzX3r~K9TN#+yp1nt`#YqI^>L*= z;fz-?xTPkdc2(g#7c2?R?u4vFT~l36GPJCqP#GOPcI?>1*s-HewrU!x+oH!>H8s`EqtIEs;AU8ww)S11zsHPRQ}rKr{>HNtSB*B>Z3TF8BI3SMJcS#j}puhYGg#r<-`N} z=&^~>IiE$Q91D5Hx!3xZva#)~J2f@YNsFdMCtXNNlP+v;uC1$wi$kT2HOWb>Z7s=` zs#csyjf%w4dZZQ2qF{6xBRc`~w)SR)AoRTg z*X0gJ-A7Q?T)nE!Dr>8&M{Q}Ysk4@zbI$2!SI)&r|6>zgXf)Y!5@gG<>f50j$~6{; ziFrad+E&+!Bf3#!pW;L(Ku6V0(Xlg{+M~y3rDO0CSle}6uDjZ8% z)$Pd^p2PK0X{noAqOH})a55p9JZI^`g*m9*k|Ps=y2LEySlP<4Dy786HtJ@kPFTly zHktLVcDY7BqZ-9j8`Wp2qhDyRYg;Q(R3UYjfq;Ttg(K8HisEy&lBTu=I%N3^h{j{i zMw92*E8C;>!j5$Lz!1qn-GzC1wihcla(EYE(9E-wYJ{uxb!~?7dxUQ zT>)J70-yHuw6r1|GPY2z{ct0I;r-mtZt&+FBPQWxI2YfH_ltOM!~0FV5956n@6YkR zjrRk*pW+?d<+w-TEyH^%-gEF?hPN5-7xCVP_nUYh#``SZpW}TS?+184#XI;`q{mx^ z_f)*+;JplQGu|)ay$$a-@ji_AS-d~T`!?PW@P3Nd$b1UrKXcBUlcE!Fb;&W&>19*P zrbQ<#UEbcDY*)~vsqF%tfFr^G7xVvWss9>+idBj?BsZS0b*uJ18ZO&A+o5@i;R#vX z^r-N@gnNbl#D=XO760r26Thz8ad|I^c~t!LJQH8|WweD}@vSfcivE(j9CwFF3|FQ9 z5GF&#N5AU0U!kD-QSpmUH1VA5OrgO^i+}4B6Tj~n$DKx_qMuT@A?pvPnfSSA_vBQF zS;CJU5LVnhT|Nu_}1wX zO*NeY`?30YVbctaL-c^yo2C&ZV_ zDPqkn7)w~Y0ILfvbU+!9)O8v zjs0T`7i}P8kiWeq+0tee!;a~g#%7Ml5_K_j+URj%zO1JZYZ7|H39AHMi3!DR8`Vu% z5cjC)D?pOyo&p?2jMH(`gAOBHYi;ubsBb|U2rX-*nufZXl`1suhssqaF9OygSOd|k zWw7FaA(6B$@MDCb4t~}TmRmkXqN_9cfd=I2k}ZL-RV}OQtlLm#Wn! z8q-46ILW%r5BKz@b^0PYTAf6VzF5za4Y8W#RtkM{Us1fx#5xc6T%<>GIA`6J8ElP1 z_0WiQ&DG1B>S8kTO14$ktigP;G`PKExV$BhYMeBVl%-)BvbhXQ6z-&DS>ju9J zj;#@h1fU1PR;>o*sv#P!WkQBVJ_k{^flRAvV=uy6tuNyl1&SzK)Ul>&%wu@j7Al-F zSxVD90&PN?TR3heajR3P(y50Co3)vN?tsN~oUHG|ahw4mJJJeY*6H|TA8`}^W`%kCQ)ChRT9^g! zIrex4;3;3;-q=*D{??YqdC$B57ZJ_Gtx@*1ccXg&zRs7o}I*I*hCgSEPx)*wcx+)Q9O__z)O3{jjN;Ua|Eo)^vSxqfi2aq7!^-zQY$_!N-b5t)_r5qqh(gW>?CazOvsg$}vC4tY#RTO%Y z3CB>et2zG+&m4p*3b>`dp5XcikO>9On9hLPcq0m`MV1qBu43F7^A}cH&Xj8qJb*(G zfxqNT>OswSWA#nd@r0F?Z-0x*7=sX?K;3B8$u=u%n7s<=LSr01ocBv*4cFnWAHE#@ zw3RhNN90O`+-?<9F-1BiKM*54j?fW>fe2wTQb!a?#ParfO=*-4FZRL(y;uiFB{)&N zx=!OCr6WoeKKh*YRvmS;j+)@75n53lKGBV>s%~3Z*9IMpwik1(GiI_ILt$cYl~ro< zq(W%Sbm$TNA#V4|8mARGQ>%8Wm36ERI>n7)m4^k#o5ivw+Ps@4G^PUN+S_2On%Y-^ z=4AUPQWA6B*y^P8geJih`$LI2!;MKLf>+>PN&%y z3a5o`42HLMij_6bUMV3v&YDmN$A%$1m|ElSgX z6OzlPm7blPSZfPPVymjGt`%_xAyvd-xP)GBLdPTYW&nevW#|PJ zEAqhC5jNO>cEpiN?>ed&3eQS@Ol^AAGRL>InC{>Vr?x~B&-2BVoJtXISL%e zXfzt6{0@A1dgP9p#RVeE&bJv%;miD=j;Z!iKs5E%yLti0antAtG3J z>kzd(Yngzip<9q+dkD#fx*LY58}uxD=;IPlJEYOF3q)z%mk;@ZWfziPsQVHK_%tvI zw1LH{r)8Jf6pGg$O$5yoV6pRM)?rUl)U}+Gl$=h!x7KReI?Nr?YT4yX8R||BsaaKv z;RlS2J=sW)AP;Kt@}i>~hM>r?c<5o&Ldpb+w9uBxk$tArF$zf2ei4Ms2mKn$K7%<7 zw>LxxuLewkvjC5AhNvveQ(0(L>e5gXwKHF7rvV*0W+ox42@F41AEmpT&(S$?=39W- zZ4X$5yiTcudC2IL^aucs*H?ryJEd@+of0VZ(VL`qO5sqTQwqC^htKG+ol+>!DSZm5 z0h>3MCn3|JN3V}kikzucD}9s-Iwd=! zk2+CQTLE%uebkSnB<5!K?xTJ$F=u3_^-;Ho2xn${ebm<^U>>-6eU$1A7iRl?)Fr}u zi3*WEN`+jcLZpvUA(yBS>7!K0i;2n2u`hz% zr`_RgO8*X$goo55*I0HoEgt%vA?VcrT_zobGX$T7R#hh%Akps7f@&D|fm^^5#=Stu z=Bl{X0%N#!KvMxw2h|Ft2FOXYh(iOX40^s^OyU z0a?-?t>l}PWsjF8K>QEzegxFNdl?#MG9=yVIBG1^?FGk8?z{DxUGjF z$l2MFGm>WqbOl(bTrEt?)k2*sosV-&K0tnvBHvmdwM9csBL;m5A0qG;G}m3BGJn2G z)KIX(vX`htwTzW?I^c3-VrCc_v2F={=3ZCkd1^JLTsfbk>*b>Id003;f?P9u(!);g z(r0#k^{kkSAAY*$P2;6+^*UHg=>32U7J>fW8Q?fs4v$ZRiA*N592)0Hmc#v%0~q7l z&_tq@i@^2}doMzm(T=Y;?!E96&X%^G#|3S)^=zd$j5AM?04KY)uBmYqDu@nnvr$f{ zS@~RP33cb@h(*D;lC(nItvRczVLA%#ky_Zq0kH=)47?P)7lC&U?^Cvm6jCilWX@Qm z&T<$a63a@pJ;7!$h5ZZOm*MB)wGw!Iy1)={ypljm3|QsB%|YcnhLq9Za@sJ@vX3QM z$O>L&CET8Fk3k^${OnH0{X6_z99O)i8D3a2x2H*W*6k=#$15nQvOPnwY0Z&UFX zmp|i(Road$@|Vls&(U)Dx#dWFQhA6i#~ZZX2!;0=v}U%ef7J+8wWI&xK=or*4S%3| z8j3zRtX5Ha&>BUg9<;`Zr`w$wt^OOr(pFUd4xI#6R6Zc9K2}tC`+Q$3Dk{8>6%`fH z*NTdY>0?DjMf9D=I3uj};Xa(dUYait4?hqQcWxR2H&VPFqnqPeRgG zRFopqR#a3_uN4*E4&29z%6(E2eXXdxCNUW+Di?_effbbo2}oN}Ss1n3JI>LsF2`_${G!n!cjaEE4^b6%{JiTTxM(_E%Jtp1lzVglj;R^S8ZMzSv}GvApB%~#BJN;2`2En1*rZB}aVOsMVe0rvF^|?POZZ`x z<7Hsj0~C}TA_iMStss~7`Oz*AdZhJhyw`x<1X#YjdUQ}j>Eo)2&?`)%ry+dJakx8V zsGar=(~b&NQlwpb5LEM8tCJ1N1RpKKc0;!$jjo2U_T8I%)#x)X zYV(WsYFK^O%RFvpvai8K>jrsCD!tMKi2AzoYLHHh&n zvWjWQLgZ*2m9eG} ziR$pcnnGl>y@@r=UsH&b+W#RT{+dE$oK~d2rVu$+2c@qmL?+s&ifYr>6e5%Dr==u% zttmvN*zZeBa7`gH)qYS!Fl!2t8Me$x$M|ask<&2Gq2S({LS&xZDk0vQLS()U@zxX~ zXXy}cO(C*Chj?oWk%jh^B9d8Ch@7MI8dy_^EViE$5qqyG3^;BEV)|NBV66_WDMTJi zTT_TU#iGz_3Xv_UT+Et6hVM#1uKOqu! zC#~V~HOKy%%>-BB4WsKFkwz9Pe9XW7fXzh2c@b|p@E-Mu-ybCYT|?Z^5dvy`NJRO9 zP$HFruR&B$;xDHtFfSosagzT0N{>3DAfjSOw5-81$J zHfa#21@8}lSMTxKW_VF0|LIB1Z8mzpgJr)eDrMRv?tJ_$(sN5uk(Be#RT8U^>0efW zQzRw#ij-WpTQq^C`ieA>?p*5#+iaxB*o}9f}w%834=gpNTfWhS+gQE=t>!@Ch%x@c(JxLKEf!41( zZViZVlhjD_5eOd|MKY@xa>poLSwK3IZ*NbKWnW~AZb_{A8`zx(f@8C>BaQPRd`i^W zR$4Hi%663@Tx^&x)683~qYS6uz9;*1#fy9%#Y@X{yT_}-@ERp$SD~zKw=+tbWQEkA zP`Ar`aoJ4F2vj~I=GBq|5=hGHzv;N|gL*bL9~VhZKGGRc72_jSF&wGVAL}}Iv{a|R zDya2nsWYFbI@6@~PseJpUTE35b{*(jB_@xoMa-w(-eu3UZ3^%Z-U1ZHatNXHcY>Ei z$+AhOtW`eI#B~EqIVdg#aP~xYGy)O(Fiiwj1Eb`ki`nTcY+N!>?t-S zp|mPyK&Kd%XH3YHve&Tm_CEXUkTfRJ`_a9QyA3q6urpohV_`bYg_;aSkAdttAzj8I zd?27{^e4>uB8}fLW&%jh!CNeImFAGD4Yl}zN0UX_z-RwNl@2BO^gE9GXGrr2q*2B3 zpSrGEVl1|Mn#2A8(`EcrqqLTO3KH|bjR_Bu7o+@j=k=-@a&$LYrB@;L6}(>~2Ku%4 zZRxwZ8>}%0|HE;=4F1JBm8&yStMZkt)pB`h36SREeVa6(fPq>gmsn%!5!^u<2+r5R z7eOn=EVVZWjK>sJ3e58@_c`t;bVb~FsY+pTdMOxCRiLSwbg~$~A~Y?ej8^NIX`r$U zFS(zjQJO5@u9~K1*>{Dc^^on4@SX|QZ-TW_`JEo?`c)WC+!<0`m@{^?G`z2BI9bf^ z8(#}?z{5pDlSjiPhS5ux;zJ(A_d9L^e7KKP@wp|P&nTgVgWCy9pe)F;yw?KEpv-#rs0qa*dRX-KQD4VL5z$LpPFedGDm$c-#QO;-ardmE^qQfh ztomz4Va2UVjMsHQT35;y?%yk_q!{_GS;hQzjUAi(RYa`5hm{#jDywL~py9`NdD+EmpP({8+IKyK z-4CG8oy{r(GfV~)yBV6DqpJE0ogY`_XNJyCuGGPqVclsf6V4&Qi8^`fnAn4k`z^eq zr9)q$!^Mmkvn^Yy?VFW!lxzpy<1mmKJrvSO|96uoU945c93}u=lfa!}B4gO6^l*#e zk9h&>i`PX2wrkrP!!oQPw`H3h_d;;w#%`s64Tj_B(>VD0l2$;n7^Ao^>kPL__6-zh z%0VvQRb0s7ZoD1f@`lIdfpjhp8ZMav>z(BGvx*oAO?=pK9|1A$I#(h;lTPf%h8RWO znkKS=dWmfK{6g^|k41Rjq-s1quch;O-SF|-jn^xo?eOS;{X0dEw7!CuKLh#S9=+X$ zo~ZNpUTs2W^iEiJMygof)vTKQ@m}V(dHa*FO&0g!?x<;C^KI;~SL*rDuo*RoCHkRm zInJocAn1;oLh$483rL6$Z=(tb{#DnfeCqO`Cn1OQ25KEs43L^p7Gh{%Wq2W$i zhDJEb2<2NP-V}#B`t|t(ZUc%n)HStoHyEy|AoG&%;kZ2n_`N5qZqzQ(bMxe)KhAa>seLhLTbCTct09|zGj@!;_g`zwx3yxZ{Z?H^Z5zR9tPd>`Hs zn3nj{7dbj&-|xuKfYAr>&H)OKlZ=#)>-QN|>fxEAhX$(8x=+_H>4P88)t^HfuNzWl zQS7G_57J-!11yq&2hXRBgc*C%a2Sapr2%vo`J`s2yT~UsyIgjPz}^zzXa*|ksEhqG zN7jDH?8kWj9SnK=g$!Q`GJHvsbd)jtFWJJEw$hP)RK|Ww5hl@=$FQ>pgn4{sWJ_CP z+_K-)=`9S9dBTPvdIY2x{KhaSZjp@yZ|fYk7FPql(z1W60|MO$_BF_v9Q&_|H~9|u zA$ACXH_z!XQy&L2^|9eO5?d8MHaaX8hM#Cqcj^bVJRIC;6?(^b@F^=xv`A);<2@R) zshdVBhLJ2iW>h28NS4l~%nTw~YR2Izo^F=1qOD2?*;(>AqPq!W`l*(kqmdif4-CxW zGHs~)3SS=Y7qRULN*s#v4&DV2hsTeY|MBVKj5p$_0rN4Mh0gS`T7bSXZ4M~eCn{!S z^tZ>ctq9C`o@peOR%hz;dUQV1Fq6E`^zzQ0?4&F;j%!kyI9Y3=p*Rtf;xGZVN*AZ- z#FtYSv$QS}y>;P9S+As|gyVmN9vV{eXceWbOP8|FNU2m3H!2CVR&@@@PGpHeAiZnw zz6_c?oTUsxn^E+r_tDSVZCTnNjMSr&wyc{Gj&&?$A=)(8TuykCS^g;9Sct$;FS|oA zCexjG{|?4H{-qdSpU(LDOvcxzGrm5^cwHZi^$=bkCbKsx-sC&(2`Cd&Z5}XFyf+x$ zs)O2~$vH{~8?-2{(ZL2SO0Lqu1}#dyUyg=34y@UCE6(J~%e>A9=O2QznnG+!=e)_| zEK{OQhO;-b_il6uuBm<}OC~|2&ilcx0f+x)-ei>jADX1!_Zb?N{ZN+81Yg1XAQBy8 zOoYMUG)``tupd{MAm-R7QGCGm3<@XVYFE*=ESVh;;{v>4tOD@-oyzL-CaW@JeL**z zz(l!^^Lh4biZ7{sjJF&Vd1g;heAQ4?nR|x%;`j=C`j}}yf=X`j}0oq;fS%RQZfeAeN$FM zSbF0F;3Q;T@3k&t3KOB91+{`vX?SzSz+FvMg%411>~F+=4ECKG_qc(f_b-@!Hp@YFH)lLwzFds$y%O2 z&)UfEnYL}+jE_4Zs~xLGpK*JIIyESJgp(~R5-rW;`fQId;~{|0vEz*w1nhYR13`?q z|9^5?Q0)~xnZp8aujqV05e5w~=bXY1Tnf-Npq=F$&lKLVr!0q8-DfW%QYiZ&IR1&J zP|htDaLtLQ&_G7>#8Z~TjX(pJw; zjmBjSvdyVpyU->Qlk=Xn6F}nh5J)I9QZR>HyRE_IYtt}pWyV-^Fzb&!LeXor2Fmd% z9%r{pL?qHGM48rr-WJkRmGEdIkZfcRI)ku|RQ;FDh%3$)n3GeOTJpwg5m#f`|u}(itWy~2Y9~q8U)O4<9 zNGV}yI-goHN1XBbi$s5gcMAyf#4`z>ZU}pLryJ6uqB)9K(i$SfJ3ZW z_2O+<$~a^aK8}0o2J~^rgsCFVmH6w*wi$E6!&!U=!m@3BZr#qaX8@+E#ypE}j93xo zQFgsGdGN>5u&jX?QRWkm)3t2d9CWuw;`^j!G2z*GPvdejDr$~=PdFke_*U*fsf(kC ziR1%u#7@q~*u~dKNGn<`rd{T=JT`Na)}44)f*udg=O7y0lOh194FmR4$y9f34hLTz zc=s@F$GWx+G!?yR>GY;)dX_#|e+t$l9sA2zRfvMo|KwnO^S|O?J+}Lg9b7OlJb2XL zA@)$4*RX_2t$_niMG&f;_EJ{mMdv)-3J*SM;K>8$7o3(Gg8Y$j)_g36;^Y8saakG( zyQAE(^0As{3E&&ZkWAvB7#?ngT}3EJJ`dbMln%)bD6qrsz=6cG0lI@!qOAD^Gr>FC z(16x;3{o*>pl#1DV2a!lh*u7hgOr?u3qau%%y;t2K$&#M=gu#nd=(Mm=Vy6hF?U0d zT`eWSp?>ZO7Wg!L3Wa6%X}OuCMM1sQVdQ64`_y)(I>v#Jo34}Wbe-fdN!TUDfrdQP zkglFVMm>X#dh(Qd^8FkIwK61KD?_oOWEG^VrVuE)Vo){1(ls@_Z>5YFh)OaP4d|a$ z7E}EkrI0LBKT!KnNtEnvUp!c*+3C{fqzgXK$dKDt`ooB3H2awgF1^hD1@*WuVVT*y z^vvd`mqTWK?u*L5D$D<`*VSP*+b%PW`pJ?QidwGgAdLW;XYZCsbk@~Ct7csdfWyl) zI6hakY7DsgZWcx9b^ZvCUzSNqZX-1}7%jGpQ96+Zi#2l%9vP$&Y=TE=5kNW^d~|yG zMst+xSwqmMO8g|gc^a(~Xntc%?Jrdx3Ott0dmOb(XuMX3mnSUAmswh|fxu&efks5j zI@VY2X}L7K{|}lv%XmPr>EQ}FWzDnEz6SgKL}qW$ck$(>SA#*G>NEO;!G0E4fap1p zd#PvXWdY;q*Ee6|LwW}vMhn5LeWvcfxAm^Ff!RS`rVv<)Iq7*Fn4YCvmUvqJeennP zMN%@5+2M~tXvo5P7iQmoA3O+uF$)L4|J;O$!8@Pp@rJB(@V6J*=N$-HxO!Kv7$P4l zD^zp~*ShSI@{(E0O5*YI@=z9-AcEHoh9~HVPy~UTq=u~b`jSG{0j%=&L|ZwoGAfVP z)RZ?)mwSzx+t*COG4FD@8M7Q)Gn?9ReTiUdpnQ2FuIdPeXhJPD)lFWCvhrSQ4a`c$ zbw!X6YZ|!Nx2yr8T5{(vyqHQMxUmIZEObCZ3%Gfv=ECIlMR|oM&I@ zR-L`m-Qg~HxciyVaRuF>6NVgc3pT7==~gX_yE{V17ltMlx>a%aZg)rA-L!d%ThZZG zgpMt6??FK5n1V+_V+%HQyPFhrpWD2-DwGY44i}By|NntTEgTZYHy_RhKevvOwU~k^ zg|f!*RC_qvUKz)B1j+Lj)RBhV$+A_FbU~g;nl?(9{C=BX?FjG_hbycui=g9nSgHd-0B0 zjScRyZg-12&z(AJO2ZqW2?gcxj?m1!P}zw1<_#NWOfMG^g~?`{9G7G0iL zo6*Ge6?OgAN7H=KW=-=&Gd0Z@UWBGqP44>-KW^KNRXeNPP2o$*;@uyGbITfcZrtfE z+!B7~nzDGj+il;m?BZGBQi&`n1MV_+)3o@`r@J@B-GWV
5*(~iwAZsT@s&=|B?X3EWJF7diq@Zd`_&fwI*tyXi-5tLF znzDxW)jMx+3!d4z6SZ(mVf$3KFf^_pd@RX@PbzDSZ`@hFd4t;#4_|plIJ!7kY0o`wq8=)U*JF4&Prf??fmJhY^+JN$bKvbzhan3Xm0XW}kn@Grk#HXx46;puwS83EO1|ZcvE<2S^SNiH*DS+ z@3{Z%_(r!N{2JtmyARI_HzA8?bS3VxczAf(O3LUqz*_9wyb+4r>6UMBOCH`dqrr{u z3>{yvZqxDMocd)|Zaj$PmO$ktGa9Opms#O~W${fY()gBH;q0=NJ2yY$7CakwKYqh4 zd8W!;xD%yPIt;lQ>aKwwIzTZ#z3G`v4|hM(?Jiih<@k8qjd#zQ9=~GOj*V_%_vW5o zUKHo%WpQ`otm)$0>E1AFdP96esJvh&D%JFcH{uVY5=}0Ex?g0#iqL4-xb~{| z+>UM(-H_6iId&q!~SI*VDilw(614w1PjxL&p|^NVAmL z^hUR2Llq>2G6G%{!3J1P)ccR7&e~KprQPk=u?m0Ok9N2V-33oqH8#dK?AkKDG5$=| z&hpThf~tpEq1WDl60O>VU<6%UwG(v9(F3}h;z>Spu{L0f37CB{AM4Y*i|F48||Tl9Cb}<&j|~Z*vY8`XN|P0w(Xk2f|fuuH)Q{ zw53drhXb-B0Xw8O*u5d-V3cPK%5u;}SRG-xlNvsY7pw6MNhaP*M&jX}X7@9m>2hr= z+p!&v`M@qSiNNci$-d;m4gl*eyc`p~1UECWiRWcIoG=_No)_!f)K5IG#<{njc-~>d z0y`XiUO+Rw4}J8NC+fNhxExCH7i$q!u!<+HE{NvaC#Pf!Z8~cdwOE&70 zKU%=?&73~cn0Ovt?=PN*(EEx%9M7x3lY@(s55tr3JU>{{Pdv{J9;}NQ3`$*6BLjCbL)Y*OLH`rc?$Ad~|_QQt< zdT#B5k0~dfx|!5ZJWtEi^%KvtE?xb^^B781Kk;(7q@Q>m6WP#DJkNQI>?fXwH~Nd` zfs85rr002x)B1_$d591CC?}&|o=E7AKF<$y_d}mM|Ig?ro}2mmD_?HHAJb2IZmK`C zpLp(uAJk9&xVil7KGIJ>80#nZesfQJW;=B-;j%iM8&P$opCv9gV)tirxQV*2He+;s z<3EY#_UFlc$ZFDa*K>dI+~<5sKk2!#`Ivs?8feb31Eaw#L{z?m!*US6$(_N{`1_Pq+uP zFFHmJ?&s`J58QUyUp%))_SbiC17m;X%{ zcNz9)W4LFKD@}(hH*WrWt)F=A;p?y6aUUL+9S=vJd*Zk%of&_)@zK}uxtPH_1rk~ zramYWv&H5Z?+~{R zb3dYYS)yEr_!&MqV8@F7r33yrf&P-=6X&J;YC&4A>E^Yhvd=7d)KPZj>NDDPO=^=a z&%5*J2VET%*h>tG$p#C*DY069sE~U!%^qOy_b%{Bp=mkp{I%rBtDM`zF9EGl$DsV5 zwLnqHlr>}}rO4Um!SB-L{1clbu^~e}gpZQ2q(e8V{4U)}*uEex;rSAlbm%U^Yg^~i zS*(NUo~QgS-9Le6kOY~6GR5g7+Dj7di$?fo8kg?RmEWcNj`)3C!tbhhhwdMg-=(`k zvgG3uUMXQohwduncj*oi*?nBXgH?VUy7|iQ(!E&xJ}%))RJ=p?GUa#a@~5jls~$LQ z4dN1(UBb{AT{+`{;-vd_1}@>>N?6jN`#a@#={_Oy`0^5dQpxDhmFT6_f#L zJZ!nm5ncOq3D1?Vq(hg(Nmf6)H;UiKCCsG*)(5(s%J0(MA$}hh;9+IpFfJ%B;Zr0m z>Cin@`CYn~h~KA6_)-<`(2Xg-OZU6t_i+h7sNx;Eo0VUFIpibp`?!P;sCb9&UzOjb zTPWq?;}RaG%F3b3VF`6ccaivgT*8Z0yhHaq<#*{Wk@EC$2``nfq(k>Y<#*|Fvt3YU zgp(@Xp}Si7UAm8m-=|CXQ5Emd{l4bk`CRu z%J0&>L;SuBgs}@)>JHtF%J0%$h2efMZ-kpAEa}i~ReqQ5t>X9T5?-(39lEzGze~4A z{5~#Wes5*{6<7IPd~&v;+37M6E|IXLLwAhwyL8VIzfYI&0u}GjJzM!*x_9QJ(Mf^T4;Vu>L&|RE`la zbzrzcc#wo89lCkS@6s(7zfYI&WEJnwovQpU-PPjvaS30c;vKqcmEWb?F+5!c!s{d~ z>CnAV`CYoNh~KA6_*E6}(EWw-yL9cMbh-jdSkei>b(G(wdy4pdx`bz`c!%z3%J0&x z7r&27IIiLyx{b>3(!E3cJ}%*I74Oj9sQfP7t>X7_2|uUe9lG0;-=(`>{5~$>4^_NF z_ao(Z=}yENM6iqrPm-{tL$_S{UAjxf@6#oGfr@wNUZngk-DdIoxP)6&yhHa3%J0&> zN&G%8VV*vwU8j4C^1F0*iQmU1{Dz8m=)S4^F5Ssk3k>Fs@DvG4I&`Ngze{(M_7+c$v z-=!N9zb^yf%T>HXce(Prbblm%AD8eGD&C>{l=8cDBS)vpKzM+JB^|oi%J0%G7r#%J z@MIP5(4DIMF5Nle_i+i&Rq+npGnC(@yITA{F5xRwyhC@b^1F1iqUrJyj!0P2q3bHY zOLvC&eY%8CQ1K4k6P4ek`%CfrxP*VD;vKrXl;5R$UrD+QgzuNIq(k?+%J0&BRs23( z!mp`#hwkgj@6ug6I-M@zD){ z-BRUu>0Tv%UtYpjt9Xa*HOlYOm0y+#^jU;2#Y-9J#+2Ws`?C0bx`ba*@ebYBl;5R$ zR483u!beM3(xF?T{4QPoRPkrk!wDk0F9YG3DnAb0la$}3TP=Pcm+*2G@6fGPewVJA zC;7O9A5!rS-G`OmrTa(m`?!Sns(6R)pOoLFD~HSi`bCiX=1!M8LQlfW4WN1WI?pgZ z=6C7&4Syb9ez`9S#9L*FwX3j$5^l0hxedmL1)sXMR;#SJC0SQ?`t13WlGSmm4EsXM z8mbcwR$1-ZW+YZF&MryJYWx;pV@q=y5JOyBT@&$@r?n}GZAaKCYn91i?=l?3ZbVdz zoHHz|Yrv(e{E3G${@`%}43x8?282MQdR1c$7_=Zc{*(zdm2!Ck*gVUJ6)K?CEpLzG zP*inu948Vr*xJ5aolw-U{JM@oUA~<6?`nuY=3)F=9z_xQG2uAQYrL9`Qu}B6i+)Ep zQcR4mL)oCRV@&Bi0Oc8jzXR~1Zd((8$2}5J_|4;J&+%|MFC*SO;LQUbzvVNG5Apa; z!TZ;qo)+RgcD>_122Tb2nRq87Y#?6Z9RS_|;=z(&jwf=H7Uu$U@G1j?_23(^X8{PW zg0FducL4%WABAt^W*nPFEp0%U;Y&VzFT(q&#%l#$EAT217UT=iisQw+P|`dKyhnjY zc?>;_d5Fg+iPzwZH1(}cBJs!Y?b3K;#Wq}2fq9sT4B%}H z;7xo1mypf%X&}m@_YIB5vYY%mzR3ZP`ZA9p{cQwLKH|*;-ps?`Js7~N0A2;~3=Kqi z{zu`bj!ADW@a6( z0q-r~vHZ@EAX1esw!0(1sac6Gyva{KPB03-yW( zUq2=;nt?a-UQA+8r_E#ZGARSE76s1sW*+0^QCH(<+|%E)tUsGZ0ocUxNVf44@6qR# zJ)obD$r9%IQf3l}Kl_1qZXluY(hU@oHT^}D2Nq$*BD@YS^Fc9aGgt@AQ;SOaavypz z@j;jNoN!o6PP?sO#hLb5!HNUzu!5BqX>S#rMMvzag4uG=eqhHG%$@-@&Vwb`qCHgc z%mwU|2g6w5p?#wp77LI5!h=+W+N#l>D43<9 z?1qAe3QYT;VAbQ%4k#F_A9&c_6^xY#JZ#qr#tH%+wqFI05SZ;$!9@a_KVj<#;}th- zjm&`A3;U118&QRY<(yA29w+8St z`LiFJ?(rL9-3s^=4<2fL6|gCP8|8l=;GjG|0Q`!sKa?jkzdI0b9_IJg0L-3I;_m@$ z_J$HZV36Sw|5LbTFDK)GSGI^AJ8e z1HJ&T*+{7eOG_J%Niwlcv|#4O*XfX%)L#xDbG_Bjx)$-rL; z*w`mKG~Bul@NV!UK|3_Ux(%>tzgB37wJ8JsK44@2>`C zzjnZ8Zv^3MHU1Qhzd^$nYWN|*QM7;dWW?uhYMZ?mgkJzW;D>5Y6X9P1HvJD_{-}xB z(?pn80h)cAg#QNE?3p5rbMW$v*8FjN*)sc;89y4Z*>6a=46xZJOPH6!n*Gm&7Xvo? z9|`j}JI!7k!cBn96NTsBGGKl{Gkc$j|L=g=e?n|n^E~TY8lN8`sqY^GHhV{i{{mpM z|C8{m8vhgE68{f?P5(U98f@*;@m!!`{HK7;UM;52#Sp^m$00mS4JqVfJ@H2aHv6U- zKUv3{`Y~I>--q2GehjeLQ%C$S0ycYN2(Jfh_T&-1Pp5xUr+*5t*|*O4ZGg>wRKomy zSF`7k@NWQ{y-tKb0BrV(5$0ss?1v?suZBooeU57QRIQ(>fX$vg;#UAR`*jH~23#B{ zub58%j!xeK_zu+XS%gEd?|{u7LZ>=xdqKA7uR)FrO3gGXJjvHv7Sd z|CWw7?Rg(yv)`EUIF)OeJ*$L=0XAm^2#*HLXC+?J=Z({R__NW3D*>DR#l&B#<4Y08 z_y)jce3_5_A*ti9(&=vmZ1zer{Wk!cef@+V1#He+5Pkx%*_%fA$AHb=Lc+Ys$?PR0 zya%w^GfMbVz-GTP;d~6~&7Mxe6Vwpjx>n0K3$Tmv1G0kA*@r!|0h|5G#J@n}->&iN z0h>LMjQ^sJ=Yl2maR*?thnVpX05<0Y2yX#w&T(A+fWtT} znbW6Pt#qbXvVIw>ZC|x&tzl4k&Rn0q0nRw@^s_5t1|l=#_j$>ptm2h}EF=fAz90 zGkyRAEX{UDbDfuEQ2pCJ4HfME#P3Du)7ZE^(i6i=BR^K5h4fgh_M!v7ePFn#ApP3{ zCNT4!doSCExrRPHUM@uM9i(m%*Wup9ngIoRVP+?22Cg{;8oaMku2l3cGBn36V`na0 zH2d_0u|;Q`aen2J*pky{sv8Pft}2f4hV8U~1S)URip{M$=k&AZ z&#}1SwYjCD;>?BfXU~aEEt@RIQ&Akm(o*()BYX97T-+Z_7*oFv!W%)WllWv3j58-; z<@aK())w3X;YUyLvd=v0Y_wVFNRz#yUZrkKN5e6f&!J`E7eRf3z>U?csg7X-?wZDc zj8n>{A%>fRW7rTJlaDm!Qaqhk|7!1a9e7u4YdqD;jfNnL+&_*x7K2i#-yi4Cfa_Gj zO5Dfq!t-<{26kuQ5-fGetvu0&% zhi9z`CRWwj6HI=i02Tl{&2^nM#!ea4`ue8!L_?5(mxF-Ot66TTUtjhSrx?L}d(9h2 z<Z8#`;1>0O36S#cUDX2@twQuQL3XC(bXn`((34g)D!<;L#{ud-7ExM|O#KyY zjmfl9HG*pKt@_?##bWp#tjlsZ$+UFTz}lt8JuW>s3nHYw!SqGEOORbC4c91S65P2WPK-Ixxv zjE2L6=^WF$EU#$=eqYU4R(6n9Yev?%o$}Y&eob(l0O<-wtNjwl}G|wS4)Nn MUW=jO35-_$7X=kOegFUf literal 50678 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 diff --git a/tools/create_dep_tar.c b/tools/create_dep_tar.c index 8247e57e..09c331c6 100644 --- a/tools/create_dep_tar.c +++ b/tools/create_dep_tar.c @@ -3,23 +3,60 @@ #include #include #include +#include #include "ccan/string/string.h" #include "ccan/talloc/talloc.h" +#include "tools/_infotojson/database.h" #define TAR_CMD "tar cvvf " -static void create_tar(char **deps, const char *dir) +/* get dependents of the module from db */ +static char** +get_dependents(const char *dir, const char *db) { - FILE *p; - char *cmd_args, *cmd, *module, *buffer; + char *query, *module, **dependents; + sqlite3 *handle; + int i; + struct db_query *q; + + module = strrchr(dir, '/'); + module++; + + /* getting dependents from db */ + handle = db_open(db); + query = talloc_asprintf(NULL, "select module from search where depends LIKE \"%%%s%%\";", module); + q = db_query(handle, query); + db_close(handle); + + if (q->num_rows == 0) + return 0; + else { + /* getting query results and returning */ + dependents = talloc_array(NULL, char *, q->num_rows + 1); + for (i = 0; i < q->num_rows; i++) + dependents[i] = talloc_asprintf(dependents, "ccan/%s", q->rows[i][0]); + dependents[q->num_rows] = NULL; + return dependents; + } +} + +/* create tar ball of dependencies */ +static void +create_tar(char **deps, const char *dir, const char *targetdir) +{ + FILE *p; + char *cmd_args, *cmd, *module, *buffer; /* getting module name*/ module = strrchr(dir, '/'); module++; - cmd_args = strjoin(NULL, deps, " "); - cmd = talloc_asprintf(NULL, TAR_CMD "%s/%s_dep.tar %s", dir, module, cmd_args); - + if (deps != NULL) { + cmd_args = strjoin(NULL, deps, " "); + cmd = talloc_asprintf(NULL, TAR_CMD "%s/%s_dependencies.tar %s %s", targetdir, module, cmd_args, dir); + } else + cmd = talloc_asprintf(NULL, TAR_CMD "%s/%s.tar %s", targetdir, module, dir); + p = popen(cmd, "r"); if (!p) err(1, "Executing '%s'", cmd); @@ -32,14 +69,34 @@ static void create_tar(char **deps, const char *dir) int main(int argc, char *argv[]) { - char **deps; + char **deps, **dependents; + int i; - if (argc != 2) - errx(1, "Usage: create_dep_tar \n" + if (argc != 4) + errx(1, "Usage: create_dep_tar \n" "Create tar of all the ccan dependencies"); + /* creating tar of the module */ + create_tar(NULL, argv[1], argv[2]); + printf("creating tar ball of \"%s\"\n", argv[1]); + + /* creating tar of the module dependencies */ deps = get_deps(NULL, argv[1]); - if(deps != NULL) - create_tar(deps, argv[1]); + if (deps != NULL) + create_tar(deps, argv[1], argv[2]); + talloc_free(deps); + + /* creating/updating tar of the module dependents */ + dependents = get_dependents(argv[1], argv[3]); + if (dependents != NULL) + for (i = 0; dependents[i]; i++) { + printf("creating tar ball of \"%s\"\n", dependents[i]); + deps = get_deps(NULL, dependents[i]); + if (deps != NULL) + create_tar(deps, dependents[i], argv[2]); + talloc_free(deps); + } + + talloc_free(dependents); return 0; } -- 2.39.2