diff --git a/data/leaves/auxin_growth.xml b/data/leaves/auxin_growth.xml index 7d2e4a2505cad67faab3e7529b001139f985a52d..3ee6e3c8a9ea08eaacb5919b32612ba879f9444b GIT binary patch literal 2223 zc$@*R2vGMQiwFP!000001MOQ&kJ~sBzUNm6zAl>PLlmV!cjmI#(_*lP>|6!5McYD4 zlp)D(dw%^E^{^$IrtQ}B4kif@BzCb_EPnN|swg?nzwYzQ+o`fj3;i-92+usF7e$il z)ywR^-~RO!&VK#+1mm(m)U%~tme5Y->UiV{{}J4ng4G7N@OkPptw`jTyFQN zj#p*zUat`>G4o&)CVyLRz2AzRN4ZDXFYt#Ek75F=R%u?R#y%lIfM;L7c;53ymat^4 zO7pG#-Z>#lFuf?UqMUg${W*G<+Th+N${hI@>Oy;kNj5DQI zCs?gk4ynq_F^KCmfVD2Nq*M2=n>BkKnYOY`mMc|{T?p{C&;qJbo6{MWaDrTsYSfc- z_rR3)m?mnYG_bbr4s180F1NN5Wtb}$i)|?vhklm`V{Ah^UqHOnW^foV^6h$!_ZQ04 z#xt$T)!`y65JlS-Utw!;8y-hYWR|XUZXmd+TB5$Uk8Nll|rB#zwBt3dY= zs|}R>GEb`;`md#uZ%Og4@6~Ht8+~eRkiC{ctt3N#Z>Z&}DqIBz)DpFjhdazQdP95Y zn&xF(ur)BC3%#PQ+zwu1d9BXBnZ;dflN(o02DgZ~PB-zmSX^7Il6kC_%WS*9N3&^h zTs_cH=`QN*q-JL-0G6+1w2)Ps0ro6i3e#USrf>sP|fIbt20{m)t!lkLR1{%@H33VMrTuM4*U}aEdj=MFic7u|_!})DI?D zdx{VaBi34@C?o-&VvR&dV9wjE27n@+VhtP$LKZdFxM}=+Hpw|32`We%R>Bb_j7+f? zAQAe6bu?kfH$BeB?J*Q!5d@t%h%Dn%VnGRFn9**xU_6YXDYO&F7q~qW@R4vaEf&Ji zxDD+SgaXq^#EVb}Oc9MaIBjrx9fzV5xK9NQeZO;$p@>F7G{qpHi1SEvvBij!U=sBR z3MdIh?;pVdWmEivXmAnmjx0X%BTA>(g9Ivg)NwgPArAN?{|JgWp{;)mQNgE$H$dDE zNK0l&1VHRbyM-DdXcV@YAcU+3IdF=-2r)SO?a_t2g7M=i{(0Wiz2>8N3fojb*l@92 zR;u2c9-{kvXg=q1rPF1)kahcl3s#VoiX~k2z=w#Trby_;TIJ?hZ0E4C?4>$Ut-)5? z#~g(|KNj0o%KZ@XTXa!^1DJR5R-mzVd;;8j8*kq{nHWoC9iL;8D0v!h@5~nbek-)m zO?Pn9-BC(kyd>}MW zpuP98KfMfFWW&9fpf?TF%+ff+?T&;vv^Leq4@ndZP0fw1zOObITZlw@BC(L0v~)ov z0WAypPKZQpfx|YTMMkYci_A*b$Tr!!bZ8+6v&ejlj6XmmEExY2iA0YX$u#u-IgbL4 zqELJvJhH_S-%TxgE9lmg;!Zxnt%PRFG`);kWZ@0Mxyi+VTmJPdMScDtx!93h46aRr zoU=pJo&YqE?8%fTVeOx6_+#uWya#2DYC6H2j2f6wX#hW5K ztP0%|?dez#NdTpfo-^(LR0%uThe?KSkqrN3m2eWh|MUhgx-%b&J3BdcFO6?L7abD! zoUQGhqq%7`AI<7jyPa-Ivgs{;hi-cJ%c4dQX)V`N&SK21aJ-RI{{4((J_o5g9>5JB0iWA$~##dK;f}|2jgt zDD&YD7e0gzbZ2l&CZ7ZnWHlkgN1>uERP>BZJy!UH6=O*7ACXP0g@~L%gj?_NTK6uGOEIqjMikPCYp1wI~x+Hd7y4NAA^Q6DkPF@n>TH6(Agnweo@z7W$xHTv*+tS{vRu^Q;7EU7=Xv`hRa?~ xh$WYS#O9!J#dyQDdACOc$TVEB~# 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 AdjJ3c diff --git a/data/leaves/tutorial3_init.xml b/data/leaves/tutorial3_init.xml index b44d9f078ccd0c45c647271cc5cec5b573eca081..6ef2316e1c76fa543b0e708bb9f275a9b3e1291c GIT binary patch literal 56897 zc$@$rK;OR~iwFP!000001MIy^liXIa=eh4sLDQblc|Y2!x;JC98f%-yo!-*2#FRuU zK4c`ND$S>#;|QDs1mlOy&~+us3UhnWb}JY{A|f1q{PBPM<$wP3!~0jiJ%0Z3?$gJ= zerG51-K)osKYV)o?&D8?{qFzykN@*^`R;%IkN@_U_m2-hzWVs^;qkBEegEr^U%vnF z`1$W&zW?9pS@i=DYv#-(J1?%P$X~+aLV; z_*wqf<$o`?@bLNbr+@tL>HVkA-@W?n;r(B~`^V4kzCM2UJ-_kGyZ`rbd0+c8w{QCT z_|LD~i+z543-9{j@%{Uczkb+W4Bqwe)7!`U-u33g!%xdw9NpEYU%$S8_wn%`@7{j> zxxa7cw%#o7eY5=(KYsfB_~q+QpC2DT!hhEOt=;0AFJC{ud;8><^Z3tSK7Ib$e#Q1X zw0A9Ued3)zeth%G=f@x4{d0M%+~5Rn|Iz~F;ir3Up#{$ye0MbTb_v6`@A}uU2BN$U zZ~u=cey8^jAO80C;m!NUk3Wqc!QvnN{oUhxd1l^x{keU$KYx1vc6oc)zpQ*SSC_`% zeE9s+23-oN|l;|KW)o_*`*$MSN-ixxSjvtm&ecV z=ET=N;=3Pz{P_6g%TpQP)BE=izkGRoGiQ}=|3>?^BYlUTKL7Ibr=K1_;*IfFx&Ak6 z%)pS7GbLc6#JoTSG`Hvr- z_{abI-J7qUzCQ7Wub*4Ckm6vyxkP{D;fZVf@=ofCPj8<{4*e~ySb6jKODhvTe|Y!h znfL$g^W($c-+ubX$9vy*sf0eRmC(e8SvxH4_I{sv+lR+5pPo8#+S}ef{_ybo9haNm zx4qu9_s-kj#o!Oq-rGvck6)g?!Mnc8zsui!D$pK&d8!_3?Z%t0?|yl6eNgOt8DAbg zym|cb$M?Vf^SR1H-Z@t{PnAF8O?Q3J-yS~tZ+?Hb^R|apqW=Bi>ytm1yzk3+58mJ3 zoxJJE=l|`~f8_JqH*cT(6CXbP_O5^HKR&$wLT7k8AT~7?R#_h&{`vLkI_&e8$H)HF zz2<`AW2=q6{`%?HFPm!Q{ksqAU#CcJt?8FmV7>eJbE~L-dwl;ytSxWF^0?JUR8&2c zoSv#`ethEJet6>FKK%N`KYo1bA3y*6$vpkf_NjY%>c9Qz;lqcgD&khNKb0TuD)9cR zUU-q(?y2AWoqOsZ{Zs!Kp8Ci5#6N!NH$?yDp7=Mv|8IY@&*ZPax#!;CpL;`i<_&M( zeeQQL@jtukf1ZD@br$v)>GZz5l6jrW`MXzFGlIW<=Or|a@|KrDZ|9pJgZ}rvRKK=Uf?ZfBamk#Y!JM+H%82xg#+R588U(T8`mEaXu z3w83**7<7Aq{*qS_S)Js`H(I*SIksOQe7^GshE7ZoVQc(QFA$G;$-C#@=Fvq<*56x zHMh%^<#J`JwdigyPSwQAm-pJ)Fqv32KW+OdQgF-V+HYHe=Jsq#Q_TKyIUC$$t?J8j z^8GJioZS?YCQ{muSQc@#|ow zB{S<<$s>`*fG@IHl=b}7s|M|}D_Qlnlmb0h*B);e#Ghe3AkFuEBBW$eZdhN@K z?CKJ-b?sU0abnu(qsn->ofdvcDoL(ft?tX4+H-q3d~B3wLiLQbpCXxX$pKQI zRo&s!9$9%1dRb9g$*8GPUZ<9!YFf_5n5WqOpYHxzN)EmkDpHquWl~P<1IM~t(6kh7 zlu56)Ah~?v)V{x*Rb^;w#f4A(_-^Gus|R$q=UbUsV|*a@(&VHM8#LZ7rFx%g(7cRwY;vi^(ob^@mGq~C6|`kduiJWgeSX< zJF<(Be9&*NJQWTMkNTopaVCQ=7}$ez)JH22~f-PTi1tj~3dg2%nSjLHkK7_TUUh`alNy#AtgXTb zL77-W>-*~R1GkQ{m21ihtrZ0+^dh4b2tH@!9mdQ2Z7G6G^va*4ed1m<+tdI&c4lfnZ}n3vnPaaq+9%GsUnIAxKJ{U%lzmBg7&+JK(mwU_wuPi>I_g@f5=U>p z%r^h?$=*v@)-Tt(qMVcy!^x#(CMW%_(M`T(rID9kH%}#5-7L7ZfH^ORQTx1VK zk+1)9inpgERNd8byTr1CaHjprx|N0;XLc#SB`H*0v)g{ykZWJKly+3=9veNk>hIXD=T!qkDMyzo$eQ^~)7@O_^_JQ@U8{Ky&MNbLKvE80ASFCc> z)gH36EWnGOlCG_i!G5bjFCVvM`c~5Gibe^&zKCoeJ=Cgf3%s-i>y9Ko87y~I-K}(5 z*243{VT!iT2(&QR z%7RPEYQIfOsk)pXouez4+lw;nFRBB?OV(TJjCKqg<)$RJ18u3O+Ch>vHH+*GTwZRi zwcsVIe^-0ijV$$^Q$84yO-ty&v-aI(RU(iz$#F6+FXyft!lmeP=<8Nn__5)XS%}NpNxGcm>m6FJT?$G3 zrsaa|2T9Q?3&|=&u6_)a%feH)^-H0nJgrni%1Sp1d@sheO|Vf}h)>=u6UbJzO+hz- ztg`7_Fb^_*ok2W`yxe|Yzl?-i2h$!nRYbSuyL32QAT`Y!Y6fsa*reD#`4o%=A*i-EHLOk;xjFc>WUUOxiR5O zlhdwEOUuK3N9-=2Tk+Jk{@X5iblI<2qaJ3YxGeqTz>T_5_3IWKb|6t(pRe3WwnjWh z-%)(^X=cSe&xK#B`Bn{?ph|gi#Cq#SG4GTIq%2+S634{}j8_-QNv7v%l=EI!4oGgBIS0avdJ=E*d^yz`T+=6zMK%(;+}9FwtG1WhYq4mn z^7)XTGz^lONxGe66$VHzzVihRsVsqtz}=UVsMUT|JEzK1zd@Nl=AwkgwDQ|8qk zxvR5NsvYhrNye&|FQNak^JYVd@oK3l^_r?3!BGjjlOn@~4evmUbWe6_t?d}~FSKOM z(I%VvF{6?>sn;!^ORLl33f6uyGe4i`Ll}vwHQ^=ceh)!?_FbL)8oD$k9L^4#Z(m&0 zaffAIWBa3#TScWrr3-|28D_RN%OqWSD|on`k*$n^be-DV3axycpdGIW0i;*UrDc1c zbD}nQxqPF+WV6L3}d@iT~=1O(YLaD z?ATk$=GAET64PLBSZ#+YY~tl?6MCoBve?`8!ZLKtvboYhC|ZANI~ZEVbTRAjeDm(l zEu%ge3I}JkM5)%d46M6|Jt)^hrrlI$cMG8~=s-Lzh@241t3LqUhaOGSFNg$mMs+!Qs{%Vk&Ed#o&{ukz+PAX*kzRTs#u z5=vzm1xc1px>1^7Q|t0sg`-?d(9*)PTL%R}$>NF^mWJG%u%?ypYMDDMoU0adF)KOe zEyc&ualN%wkyXbidEJ_4-ytnBM)N^SI}a_-l>yewUd!QXJzD5lz_nH|DnD^?0-6Xz z$g9PU?t*m=lU_-70Er?kn|5^f$~3mbpks=+r#JdBIc%p!)FIM>fYZAc&5T6W9plp7 zcf?JWvdZgHpD=S4$XA)X_SbEdw@Y2$O4czt0hCtpr7kft`B-##Dv@UEqa|zG^^)px zRaU#pXrvYNQCl&~ShH^sW(tDUAb=KE1UO8-`s;I`1BWQfSfb~fuYS_HMzg_@*?_Bs-bXrRTh;)s(H zY}neh7B97XOaK0g z^!myvvmBFt$)(OYWw#+b;;up=)CFQJC1fP0UCBscywPk5=aXe_s ziayUftGFf>U0?dz+0;@=9RyKtoo+c^LhFJ0O2ZW&$C+4BEboU3AzCiRIkCzt&F%owkyb4d9BpF}n4T6h6xtG%ucXs+YpmU4VwI ziEcl$@|Tdguo)64!FsRW#g-v1n`QN<2QGGmRtpqYYEkn}>p%syJnD5%ZhO3jyn}70 z(34aDJ5WKf)$m=UMNkw*#~qRiBQI2OXR6T5Gm3>;YrOrav1<#ohtDh3vo3>qJG$|frgc@2 zk$F|WKS>D6ft3+-br|iv)hT|;vOSC*Yo>>22|sbFi^NTod9!9|CoNFzOSakyK;>`S zN{j02DzId9$+>-0*B9h6WGYHTn#i8?XV-`VurBgidthQ6C=aKE1IUAB(om^OIcg8K z;`?^o%KBON)5`9uquyKJ7Lry@Aq=Q+m`YL#;fhQ_*JlVbX345mLHaS?DpFI5^8N&) z<;N(s}LAB~#yIr49ZmJrsp88poTUi<0pFwNSD=N}!QL3W)lGjC+TEt(VuB9V-s&E07 z@HwG%IoD-VUDA=WTS1WX@)HYn!sy0dVz#lIZ&koDI=-H0cMmaUQ4>~SgP)?)dYk3OOK34V1z4&RPO$JAuvUi;_Gm+G)687zh7H6s=XO9cf+qc`2i3Wv8E_2!kxDBeTeY z?&lTgmtU?ogY=a`qM~l!VHGoLUI!MGEqfVyWbOD3I=qYs&858I##!BQ-b%<;aD??Z zS4w^*p%*U`XTe=Y9T+rm_fBxKTJa++=*vieJ@BzMCI5 z;S%W{Ht~J%9cU>&P|8K1=;PoM?m=$bFSCm7)}>lHb8BO{EjrKc$wD5FW!I*muJDxFL3G;$KDXWg^g&exbX-~uJCMO5s| z_`t1oR&FGmz~1|4vt2u=7SQvc%J$KX__}7L$AFl7r9N7c4OZ6jOsYiPP?c(>ymmBK z#we)TmZ*c$2UD09mmfsF%TTkL_v4phxeD15j@C`q+XqZx(GhJAM^qZrB(XMLjyCD4ysoX9_st!l+H$k6I`qS983PTt zg78>>%{zvm)+WG`e$`U60#ldR$sDbvsU+j$Z^|M;RLG{bWOr+ zs50QfBKQ~eLTP@5xml&$QffG?Gdgu#kJj1TFYE^ovSuVo^+%W ziQ+C|kVHIIcYC%yacQB7$>6{!RXf|K?e$O;dW=%9Pj>EhXrm~79i^A-vqKT9uvNE{ zm^z@E7M3s;7a4QGn`f&_S~KL@gzozXt zrNy&yZZ&U>`xz|2o??|Zm}QpR;rdxLUA%HHlXG6}pS`*U%r5(3T2XZJj>Ae{5fiO1duTiSX`F(P*vUjMki^^*~)`p%nx! zYTY>m#MD7$lBTrmy;hU?74#O0*Mg#=tfH3-Mw!@YWgtrFT2n0&gI0yow_|ctq*?0m zsWp0CVCVp9; z_WW1kpKzE9Qo1W*%^+tju1tnNUEI3}6i10ok*WjarUy?edJTg%jxFtp-nh4<$$jr;{@fbYCaXJE2-@#qV7=hMy(w)Mj*c>Le7=>4;j2f(cWX zCTjmjRIl*dDwip!Rqe;Mi~Yc*IxR)nYl$%RGS3y)aIYg|xYqclWhB%-cyu~#qR{Th zm97QRE~g`W38<&`iHl5zm5PdDDQo;_RLfLV@{x8ZfZ6BN)9yfr%PG-MG#j5LF5kh7 z@pm_$8{ee__>@sVXmcIsHo=9)qn}Q*x+g<>!H_ka3CfDVuQs3z22UtQ{T4>rBbN| z(>`O%#dT=aWF-Vg#Oa6rb6j)-bk{Rs(YtOfU<;S1?KA3v9+62eNRh)%Q#w7Tr~8GVjflhq-FCy6xnwSlau7mR6K9V%BbC9^09uX3Eys zMZaXATfLrrmWGglQQDCRp{vwU?a9UUzRhX)&xvG`(^@-;`Lo^BquLQ^a6@hV!q!pB zpjJ1Ws%32GomEN8i=oS~gcsc)rHE{a7Yf_r3GbBz5xJ$XI@WvTc6SD))fEbmld2UG z{$%K|P4RWn%`?TGHjG#igrL%$aTb$bKsUnck5=uj)4nk~jHR`{;a+gGOS-Be$Ez%v zL!LS)O?sKCGdmL4SVx(+Har+zDwttPqaYOnd)>BaX4{Ts&Q!E_*PgVl@!|Yrl*Cal zr1`N;Y!6D*Riv$CO!Ee(%hze|ul4dKZ~Q~54vs5a);e~H?QX5o4ri7f>Cu-2QmV;R zGQf;}y}P93C;57D-0ZaPREoAlE2B3JqTOlL*Xx2XA|GOvdULVWQa-M-_gU!=+5$L@ z_D_6smEWJ}G^DyN!i=^KY8`Gi0FbqwDQ-sJjPXd)Dt3vT@v3dB1(&<|bX&eW5&cop ziL#h{7e9S z_sOuEo@AaqdofAIWf|qBAdqV%MoU!rO((Ji?SxKfnYEXFSx8wa?Sb1ZA&mjau!POkI7lv{X;=dFqmE^E_K=J0tnMt0PDaorAXa zYtP)0{ZczRf|j2oyR0SIi>~j6et%cCU<-8l(h10?Q*%BNzVIiT_Jgy zWRy`CXvOEeRPsKrLolTyoy2lWe|ck>q6Ae4#&zA33#~(0x`@SzS=}0wTD!p|L8W$N znrQnLEr-C>uDf2HTKmGwmTiG)%$8#zX+`iu7rz!+W36RWTF;}IW?WTbqccq`k3LoD z*mF@zuVVz^bn;|U`1!J$U}&{1B|+t(g5Qo|?Rs|Z0#jG1j!9b@q&RgsF)3t}(tWeG zWmf<*0`OHqnREMqu?u+$J4E&6Ne38~W9ULQ(TPg?cBn1W%~lXq<;{tFN%w}3=S|n2 zwlJ~1YM#X&bw$0n(w0R;v7{*k9mao_Ut8voLct0}`%Cx^n=37s8ZBf&rXjsN6BECz zf~8d%J$Br-JippW&;%e)nYhJtvXNPgQq{Whn4~bjxBa#ffmXKs^XNAbk>TXXg z6qlMnsPkE;0h44R-0`kL>WEsfdMe#rRThg{xNwmbQ3u~x^R({$9p;v;SMFmu;e}+S ze4R*Sy5Xu}+yxV=Ya=hi$Icx$I<8(3`g6w}w!1A=m*;CMRr+#V^#6>mEfs2x>ywNq zf@;a2r^y);o|Y;}QEn^lKZO`y7)t+@AWS5~_ExXsG-sh}8BCn&Wt zTKV<0E+*POUlJKH<+d}+5NN@LOLA2Tj%0IjYyG{OljshQAmlDTWVn4+I>CxLU~ulvW9&klM@-@1Loq7+oe1+h*Sx zvQ`#jI#pJ|lr9aWh*M{yomGVeaVTEe+S$!aKac%PGs?ZBpeEun&1grE&p{a~MHV`B zppUIq3BlM4f_d5MMx~)=6;5%7f{PM@Qk}UKjy0vQDi7%ri--UZ!%Qo-LP|y3)*>t< zJCO`hj=x3L(Dcz)YdEwAt{`U@8k>NXv_ki-1Sozfr)EJx<^2itIM%V(HBPAv-b&h# z(y+73Me6`2vQh)VnA;hmRVkGsJ`a4LEo$AXRx{d_5UhRJq{!>oXwh8BM!y>$qZV0? z>q@jD-N9%9W176Ko^KEDDp)sDVsyz*=D6$NOFY_?Og7N~HCxF)qvX|yv&8awqe$FF z<={1~6OGn3#W;iORux{+#h+28v)S?dM{ zZcHMbXgDd?9Ab`F7A8Uv=8Cd(Y1KuIaqQcjRT8HJQ{a|~mAES^O@wAVK%bS)tMX{| z{<*>CVRKZnRyR9|Im$Y~$!hXSssn^4$9phVOHOJTf9w*B*p6x;J;R~)b&P}w~yYrxZhW+9~xA?$1rEaWLZS8t#a7S%b>P^L&V%#YZCsD>*o=mTJgDDWzpGa}{M z_9930`^n53msBv?)sfx@IV>w!%nROp8iS9SYw9x+>Z#CY8~8h07XF zXJT0LvR##L(Wf~gxWvoe5j$BX*&BWE9~fa!iduIYKaM= zAhbvh=UIeA`H)pXU0<#zYX+mdo(N}jBKa&}qw6T0U8aX!Un^G)1Y2n2b`W`!2uTJl zt)ukYYln9-S~dOJo-{W^k#kYzftlw%ux~PsC^~0@6h=2Bm?qucLwH_&jQv`q#gvj$ z?bi)vC>9D!%jWcSU#==`e*|h7 z`*+t)G^Ip^z?iyofEU28Qv5IrKsxsoa#czMIAPrNuAt6##u|MdF}v;3OOoYv3lC8n zFdYg}&7|BuxsBLp*^(^8~c&gF0GvX3)yp7CbZkj+J{WYcFPPyU<@^CMgD^? z%Tp`bH%8a+&Fgl%@mNi|A!!u&oE@h1QQJ_-V;e_x8)%^+jaGV)MbbqwEWK&t? z;Kj#1{Rym&Sjy+{-v$ShPGpxvEH5;Nb{Z+Za4o7b1 zxHq~rU~8~K{{m-e6J2@{bBI#&pcp2luEYiHQN|DAf^H)r6jzh$;25T;oIlR|m5s`B zxab8do?%(#7r%Ol8{HPm$-H$qLR%3LQGJ0eJ4YAC6IXP{n~?U5>4MFEicSX%5Ou-< z1#9tFmDs!@66tB^A#0WPyc9#-e4)j5(V+}lrR@BW#glZU$^{}b)wOwAE~vVLSD-f? z^(F$NPPvU0s#te|maj2t^;z3lw6J-FovBqJ5x{g<%4RRzdF9E`n({GNQvc z3kRq}AFAj?8Ku)i`$?Csqt*1m>Nu5>n(|WA7tzjE62D^@>XW&&*i$-Qw?jNFN1E7- zB`wtS~NPVOcE@obegGgrdgCX47U*#sOT`zXyVKLl^x~44%ytIRTh2*c(dKJl< zyiAuwQ6uX%9Kp3niDBJ@>7ekJjwSbF!zkMWnGbYOq#U}os2yFF#3Bnjr52;u#&w%F zp|RAc_MYkvjaD3zb#Wq+2t!g!NH$T)LlrxY?(HkPm#8ZrTjg!y(0G;6h*Hc%T%dd6bj(dSZF86a-@8tc9@%wbd_2coB$<4#pykG1p-o zvUXAqmSmM{`_QliX)1L(U4m}yZK(+ODvzLKE_2%jyX}(}h$a*alU9Mf;;ddWa)^-3 z))mSN+Atswvv-BjdPRx-b9F29v#4b#jg+DrFQ%k_L|hn?xu|v|k+yHlGE6&qqjq%? zWtlMUP;1pF0=Kaaf4d?`H*F;zV;z!gqRgSb!>}s<w*BcsvZ4t;GoX~j>IoUuhiB9tyik@lG)-rIY-;o*j~at|%2cS_rmgFb#xN4MywyA+xW6IjWPE zH74dqIp%d??v&@ck6X@34oW$p`4P$8KR~G4x_)|U<=S!vi>G}sO0}|-%3wHXP0(ha zr)8fY+^4Lxo|lfi8-IwagHq~91|_Di@SVce*$_wBYL-as+WM{iC`z+wQ4Wc#@V^$Q7W^=*Z4a;2 z9d4qpZ2h>okktdqsSbfGk^R@|iwT)^IQq%jBWtf`ZRg_88?xZkf)I9@j|-aH=)?h| z=uUOtDAQUkom5^DL)m4NBTsJ8HEy#GrHR8Ex@cQpBNr^I)VFq0A~u}K_i193X{u6> zPK+@|trjHHRIRpRS?!nGL6?+=Wfa-qeutunt-V8Ov<8&8HEz);y-hnvj&2=48NHWnVV_ssS zE~~a$d|KG)u5}BcsJLUoe7yX&qE%V6%r-g8msw(~G>X<>Xtp@-$59Q+L0AyMywp#l zV6~5$v+O{-E8-%;@}G~q*4vw< zjcHlhD$VKayzfmNS(a;1YI_c?#`dA3R`Nm!82wxmwusYOnc6AUWzjh6d@AcSQOE1L ztx0NdqaMJfxS%YO$OLM|uj`VJCB3u)wJ7BV%1YjGf&tN~A&5%S;ve-|G}MZ2Iy~1b zozE+RPFA;oYIRvKOHvlBbJ40x+fGFDon@qwrZC;PRhlE^dZ$%WwJiOC7l(6QY0(nA z>xfXHE{CYQJpo#d-LWXF1|2szWg(B(vCOi{-BT7bwc(W&F7n1Yw0Z8PenN~fT3hXw zmW%C7o8l%LmD4nl9`G9@feXn}d55Kgazt0hsO62?H3pSsR-;o|z0|O=m8=)|hNcP< zuBLVC4J!F^GJ$nwAbn(|uY;Kh2Y-0ai~pT21113qg>GKml7gQbJ+4$FJ zGC@uv8rCy>U6jr>k6N9ECZkAhKIwMw{OuX3)A~rs$qdme6*5Cy^2&^O)2-N?0O3cG z=B?2gr;Aj@Vno$)Xb8#?koa+SuJ+`rl3^(9XSYO3tHs-CTa_;Hu}fh|+y$#T&@N8Z zZh%2U){Uq{FR1q8+X|t;snKpJx}kxeiYin@J9P+IhFP^fC`Y&6FGC=)Yl}*xLTl~A zGCz}UO$${J8IrZEebO%Gjuh3tF4vhS?da7W7oyYbhp1x`P_pX&#D*$%x|r-CoLVHV z9pQCdy(sMxWWd^I!L7P@QU&XtO0;F+Zj&rlhZHY^(!CYyOuo}7R|&D*t^#a9 zD~p*gko=h-7po0cua4q}Rc+B0jk#lwMa|7BpNc#U=!r~Mlnqdl({>nwrAaBx<7OXO z*E!H38>MifxR%y|)C|!n`#llww&QfvjV-b~q`kdJUaJ8tszzhY?1XWfb)x}UriC%) zs!xwq?)mcUWQK^h2yE$~BBFj^7Zjv8gDEvsQxGecID{3VR%<|1?U#j+wDnrAU|}rx z<0l&Rap5GD^g;T(M$|oOb50L-%;1!`A~|xxmXV}W>#H*5>Np@LK1FK5)9S-eQ;)h% zUi9T$+29eB*1j#Tn_h>?<&?1}a(cFtC|l8-oYFftyY>F$dP<7+Jdm!Vur+gCr5+@O z!LPGIpI6>sOZ6_V^7dA#e=MEj*lEbAq=gj8@;?qxv~UL0=3RM;WB$|5qN**b#E7HI zQ?w#RYaW+oPGSFztDDr^bjeZ!RTKrauKkgPTe4K({=!pNx}SAPOW~$FtpKVh@h|!# zRUpmUh>1d(>bF;w-kHMF^D{1C9^SgCDxcvpIa7N-DH|s(_ERwQ3+O>u2-T>=&&4it zCe@X)ClV%R-5zmC>rI*Z*2;@LjP6L1@}=LMJZoAFk~FQhdqP(9MT;u;tJtd$*rHZ) zWd#8UU{R|FQwKjntVon%hXV8(XNMr6w4rQelo5uprxJ-K4oSnn&r9v04Zc?EmhpMT zqp>Laz|{2yW`Lzr^;zOq*wM1Ni1$*^Vl+!x5FRZtyR2O43M#z|dly-QDfbccU~ZYV zRMWZ;<-kAK%Qk4KPOB0jV?z}otQ8C$W7ZCZz?44piD4n=1L@m^?+M)hX zE;WMYdb9p<9ad9W$rklOQ|XXsfwJhll0-N=4)#?LB)D>pYbTRBA|so2kZ1KFe0#O35$|L97v*xw>9DD?iyiv!(QCW4ICas(IJX;CJE5yN4q?`!Oe_*`9Z@L| zV6|(MG=5%NwfYt_nPz#~(rl-y zHFa`=D_<^X#d}6My)iN!8J5jyQhJa})mQSW1Sqm7MeX@f2a&av8d2Ak&%{QP(n{l3 zHXZ^r3S%m6&BaJk<+2>ZumH05V)3h@Hq;t6*9*F*PNdemQvZRd^h_^db_J>yEKXyQM5TX8ruK-l5S|2{{SRq^_1~K?iqf zAJLkyD(o4Z3Y+ZAhr5B;J?Z)nF@9bZRjpJXTAd3w%oS5Br?s>=ksa!`*Me75R&2AH zbobavvXDtymR+a|)JmS^9F_KVEd|)&KkRg@OsOvN63SxPqitubXu>V{eDRXg4NB&9 zN6B4pDOcs)N$*zrB5-l0(`eU;sg56)Q?60PSgd+q*Xt#v0KRC<)iF_1`f!Shg6$@z zJ!*75h~4*Ee&$k@Qhj;qVoP>*572s|)@hu%{xbYit)Trhl=@~x1Z~?ZT4r@^0rsIU$ar z%0;=zW%m+1&e94h_NiDn^fS_2G!&Is>F!_?rCU|&;JIW6ASEl2+-5~o%rh`0Do-3Z zhrX~F-g;d-Uh8Cs$Wjq;8m)nIyJE^^6MNczwW?dZ1ddC%|bzCbndh*Nd6b?#XA(zG~a8`ZIx(-!jCsXeb1kmYp%R8Ys z)oxksWwoeNDU~gP>mHo0-K%a$Y-NiOhpUG7{|TX$zkDxO`!fHZKRmvF|K-(3F`aLp z^V5$%etG=b{*3AW_wV!n{o&!KkMDkb_rt^2cc0pOTXg;H;mhNjhtH1>^M5(bx^f?X z`1!H@CHLKO&vNZo?>@eLyj<||?kJ*DG9mi<@cF05ugf)Bc{t6QlFO^_A3y%|^=Gl3 z`R>*GhYx>y`|w7t)?aR~e);!8M^~=ZYKhj50+Kc^%yL#2b zt1Wllz9>%6x37wl6};LGR=7e-DD-N=SMje&qNF!(KifYZ+E4rsxixwbUUS93t2NPE zLxEQX4^6MS&8rfJb4-t)roH&v!~0jiUES3B;`W}tm;ZW+;P2&khG@1unq8d*626IM z?`1LkZxYS*xo8$avG3tkM=>5S@&iSZuM~_n(Oq;#*5Gk~1IUl=niQ@D;5Vdez~p z2G46OF!;TZO9_f5I>u9?+8|(UfLT|JjHwVf^l%R&mtMH1H;21mBi%`IsTE~?I)yWy z`4L~`@-ZfSbHP^=ALEu^=FFQh^QMH6YVdr=qdZbnXJhbHi`TVB25?-90XNNj*qiEf zwpuzx0AK$)>#GzC#apaSF`H5u>Ma+idFSPwsOC~OQM(etqtJ7XiV0^u=H7}E2rLDR!&fO4QiLUs z4Oq?CLDA!YBY}z+jYkG^UW3_Pw)WptyY(`+J0h4b8(Yb?H(|oY$w4@@_bO`zuz=tGbtSAa8t0v=~kW^BWeh*B$m4NhF7_27EQ*t5i{PMM~2E?y)c#JIt`**lx<2?L5Gkc#}-c zRFXYOJC$*up7C7u*kswtuX4gG+{zcuv4yjDp^yrg3LTZD&SNicIhW=`qi?fn3Kx*s zH_<18Vg5ADJkIcUUgb6#)1Kq0yh+@lmz|e)j(E=Cg}NGg&2e>!=R591GY$muRi=IU zNF6(<7{f(W^!k7g@gnAOj(#4O<34flW$cVFBVy;?IwOk6f@!i8es9KCF&|ngLv5ri z88CPH%&*cZpX{NXx?LAj;tDOuzi;By%~}Ab2-CoQvT+_4NVw>Cl=U3foV*h?INoi9{2E4$bZM_|LpS5A6iXGK ziI5Cl0mrsj%oaq%6fB2Bz+8$khKKw0M_Z$`;Hwp{aBLwPw|IaV;(vnx4E8Lci;L1? zu@2bjmoRaAPNX=!!cIS7r=PIXPuS^Wj3Nxh;YKUs?#Uvo&*fuF*t9lVLM%-;&6fCP zoMv;HIBc*^#N*!cSO9}*Z%0~rK3aJ$z|YF{aABl9gH^20_+D(*9KTu)4a#-3B+f7C zCUFKYs@G>JSh24P+*jdFHQ?snA-u{V^0^@3wO~drm9M}c>5PXyf~GKa;z91qp-@v> z)`L7=JRQFomx8&orR_8i9pZ*89?U07z%y| z4{zPw7-q&hTYPV+JkrNi0hZy}$9wV4h=Inj6y{uC4xQ1vb-yIW@A2G-{DK>N1ZGA& ztDWU40*9iA=Sx^yB#hgH+>?YLyM*BRP#Kzxcs@j*Q2ASr4bgRtBzyXBvjX*gGG__V zh{$HgtT<=yhlU~+Bp|x3;v~M}u&Y+S0;aZm0i(%c%Y?BQaf~0`p#T$?wvfFLZvmtE zqF;B8EfRP87-5-pATaI%!%iH-NLj(e1}+OC@0}Lu1o1JL2rwLKausf^pa6i;;2baenzKBSuiZs#6N>@yratI8lxSopG z-xsWPF>hn%Rw5Gl;;{qRb-yKol=WtX#d7zT)&*^1MF ziUMU3V>Gbf1jD9|Rpc>SHY(Tq5CK)TJHVGWJOfa`rqx!j1^HQ`K;W zMRo|zL>WnfL5j%d>tg8T<8j?N`PruJCLYf;ZwgqsxrA-b4lfDi7p~zMYyX77gh7f^ zsEQf3V&pm2b#OeR$9Tk2^;iuDziy0Dyofm8%s=C4#-E-AK5)i}vLVdAV?h(#yCe5A zA*U(fj36QLGbSV>V}!E04sQPAvANN26&<&m_hpDA67A(IP~?bN(0kNiLcuc61W%6A z#6zSVRT5@7+sJt4$V_QS<2QTY8iP( zIk5yYUKVM36&FF(Vx`HeZ%&5(UL9P&!=mS!^3cJMU&ZfAnd%K)UTp5qBi_hmB1?Z` zd?Z{}rk!Oa7p0yPq2GBoPwH_n!<%wc8%r_VE!~)K-jmIt^B$kJDvjZ0kvYqXoF-B; zR&^OGz<@n-!9zQsL{r$2XsSCebEGnd12w=sv)6F5?lDbfe{A%vOCB-oyHN-e631bq zpqHj`1jKa)9JlO<$mX5-5KhY3Hvv@{QsLDP_e+SX#HBgLqmBIPu}$`sHl2v)-!?YU z=Cd?52r`N|3i6(tpoAQD?p65J9bNmdvj*R}2$RSeJcPVSyZ}qpr$f0#zOF@MnrgWf zS@M%PjlvfuB8RVLECd~6-z!HM6X5LLyBRFZ6B#_8QP>-!EaTKN`$HR+ur6g%o@6e6 zW|(@w-ZkK;IXRX<#3By!ECS^cGR_koXNVzNC$+F3~^~1irT7GZ3Q;-woJa7i?neD@1ICCgIEv#Fb(pu!| zU<#T4O~j3#SCVB8E`rtq#}_MUU=oZw@^zG2@d6odETcfXbtr+vf^;Z7cdekeUg6kq zTp2uBY=J0&F_zc}B-DJU(YX)t2Ki%7~r%OQ_NLD=E@ z9$R8wE5Z5juLPLC^Z{OQvmG!LfNoN%QA7j9fJQalrOH)6hunB3S;jdcrlL=IRH!6AYp>Dmoa<=f2VW- zuf#bIqZKUA@zbFwwy;_D#3|kSySjWeRr)vI_V7Xl+hSHZU`2%NIm!zk;LQ9oY~p6v zPZrs=2%$u7c)+PW*A@;3ojDvDsL^a0VFGadmJybx`tMShK3^N4giA#%TR=y4W{fkt z+%dAUva%;OMeStIQ&k*RycE85xz`&mg}dp$9)o|!&-l=Ze_Xdx zIZq;Ya$Cuk(^$i06x#@F-Gb1}iecw?b847Ixl@~FewpiDyOXKeWC)8^1UfPOh&NV_ z6Eg0xj@6)v@k+b%wirH>kzB-6o4w)KN6rQI@Iaw^L=@n&QdlV;d$WQyM&S`aM#&Ep zS4Khmi1n?*k#0V?>P=fq8DDPYlk$mt^R!8 z8@P#VL5Ph~zE>AGtj2L43A(;Z|KhLhpl7Oodihc03!jLa7`%(*kX z?=_Z#8Uu=P0@&mu_B2#}6;p5IR}UR=rHxOLn@qJ(3LF*EFAWUb6EHM)3nN;~2FWPY z8F3(xG19Z;_cFx_C;qA2tAUu-`cKL`kNXL33Cb#Y9O^l}&QjFNtL~Pw7 z!&Fc=hou-=U1^1#_>UQEUk@v6YR5a*ojrCJ+z%qVFdx^Ni0|i9zAk?RdH)13Ke$lPCD`*wQj?NuxOw zkY6&VnR)JLfUsZ)i;FNq#j{ckN_>0nbPy(OSqlX%ZCHf_i%mSRGf(SLFEnshl%CZ# zdHI0ekf_`gZlseXpT@H&=oEzC6~>j|BC?`i5%c$*Wv&!Yl9(i5cNkF2mf8_&La`iP zXC6y>PI(PJJ4JgdDb`+fXF1H1W4s6Me{dG+aTXePY&h9E#_|~6;ut<5ER-7{1oZDT zOSlug_Dy>E;44>4$fzAn7LC)-Y-g)nb(I&Iitol9@^}a!Q)9} zJmD8n97=iyg?>%%Sl+7v^YNvYR5#t56pUxr|ny^b@Av_k%^VrmTu1(#J0O-!P zi6tCR!NK1vkY}->F9;e*>Cmj1?N&>tocmnI%;en;ikMm&B;O(65}Tile=8&1BxA`Y2U)lQ|S4m)+Xo)G2^K?YXibW;U!QJ%)nYSs3P>5hU}FcgW0kr%gvy z2E!sFc;4=8gs?0<7X6mj)lCVlm%bIbJJITfdsuFGBT9%Oh-1fa3x#Vvqd9SPld(|D zj+-RDLcZ59E2FJyLKSe!uNHpwQ2T?t5|XN!>h0NnCS(U&r{M~mU9|Qbw*umfSi~OJ z<#@OkjOT*czn~G3W$jv?zB^Qg!pkBr-yJJAn&XyA=Ru$OKWHjIf~`F6H_Nd#z)BhtlLV89r*RsoG9GX5z~1;(1c0E< zm`75GN7_-rGNNGOE|{Xr4k;5Y-SAa+uX|j^n|5+%dz zAl?q`jQEiRhi5e&)mTIn&+o-dj3|%HVow-&I8|a52qMy{*%#A42wQ)@JL z+X?S@5ATqRa81srWJWMo%(!(21MTos_xD>8<4T^@cAR?_z5Mc_TekzNo180#Nc?|6pG0%+}Jmcv6-GENP4tYy)LHXj<3Wy3DAlMGY7 zO{Zb1?j)^~$Gn&DRga7zAK532yDx-m#>}-UOYxg$WqDROJGSSzbYgXUb0|NfY-IC% z%Z3*C8U8f-Hy+2Im0?6kDs!wtAMO^#VF8_r#b(`+;K2$KU-if*X17je!{Y!pF#6sd zDsod+YEhD|pVS%BS&U*6pSL_J<#1#I5av6675jJ=72$<^U~MoAT$Ca6=Fl~J@!JRk znq^4mv8+LXS&vK~&+dizsz(Nq$60*A!Bk;HawyNb=B%(`1Y_b(-GqDHZ7e3tYt+`u zhiKSJh6_FPU+C4YOoGoVhO?F@qvv*J@mNq+R$$;Zgu(5O7xixEA_yWvks6DWN?SOl zk(|N2qI@V?uEedEjq?I5{yW%!JzSlH8dG>L2u||ab4uJW`^dD_B=>p6n^vQa-CV?jjKG1NYBW1DQ?bjnN%Y8;h6AHZe*yh;2wno(QUb(M zyF6et;sK7GREoz&?n)A>aSG{%B;?BE-C2e|1#uJwC9?zjUSii1*du^(#ExBRoaegM zGjPK*4hV-rh$Qm7`bLMNjQopyEdQeVbxv6(Ya_|Ulya6iCF0dGZd`(4t}pU}3lAz8 zc*IsS?d6@w=JhppMd$~^_7|)OR}Sre>c)m>VD29Tc@Ah)K=S@jj75#x7D$#(CsuL~TrVQmHX&#zVDldA4!~$f zaGk~68AEB@j>bC{lc>AF^6Ff8BBDK}LpO;vZKc>n@A=F_%Y=;{~R2bLP*BpFx( z3E%9oo?u=%4%{>Q95VnOr-%J}jTy%Cvzmp5hn-z`g~SaIPUrbmL>nVFuA<`r3(^G?4~gM!clhAhCi773n!0YAik}>q z6CCJU{LS6DpI~D8B<{*%sa~|o>O^#l|vdY%tNZcAUmE{I2N#T!QO2<%xX>% z_g)zdwQ`Ne#_GDaigl8|er8Wsi@!Yo@D7h>wr}0DdbM|3$hyL%Fut0&KrZ)MwX%yQ z;!!YkugReY1gYD4y~>L27I|_euU8y(?SvyA<@YNo^ylR8{DF(z7YDx}#3UpR z|H@4bJrg`7;97tQqK2V^#Ww12?!IiM^9 z&y9G-#M98Y6FD603=%YcCx#;)()Z7q@V`eYendgWYvI%b0(IS5#WxFRP@Ks})@?*e0Iy%o!7=W)=5xtG zZIInr0DqZ#AMD3N*+Gafa|N?2!})m%U%6u7A{KY0T$mylh1G5u@rPZ0z%D=KgDcx` zCFvM$D~7`o^os-j92>=A?Z`7v942Afk9#dX7tuT>FoCl?BBd?zu7c$j9qS0xLAf@h zI3Oa|b(3|I&~|Sl@;oXN0aYeKjdvf}e7tih&?0I_e1a!WVdo;a?LVo|e=IDwe;hOo8z`mZR z1-SpjO2T2<4V7Pgeu;HJL~j;TX1ay>pDCa-yUJJ|b9sE#-mm41yHCFpq&NV;>Y}n@ zo5c(p@0EwP_&`La45F}FKGwtDIY_LF>wUh{DAI&aPM!kTHLVnlgNaWATA*-GRwg*4)TpIDaCbe{`I8>-|_~21YZ6 znx_Xlo8iO{K-yVdpzJvpx2ObEcudPkSe$hEW9tLww&K3xCv@&e-C?IPY7aFrGP6u@ zbFhP2-I00O!5JpL=fs32^aI7of@PEza##|+_u8}afM8v>Ts}-+D^RZm zGkCP@g>kGJfLqsRqP2coKEx@WCMjdoM3zFsace|;Kn(1b#tD)k;U?~k6c|2(d_QdQ zJzM>-doz{~mdl4@!G*4@x>j|n*51gkm&u$)em&yh8oBT1@eD(N$)MV2Po#?v%Ic86~Z;W3BEK%7ta!WJG2*m6$RLsRLyk$9X&MG2I6kY z#T~6RB)%Z-#UeJf?8GGUs_n5;Q@>IA3sZ@=8PQ)64gSr85?4SGS3s7*%C$gS`B znV{M{d`Exr9Z3Q9tHLCW4O7DRCN#@TTpb`63W3rNrF}g@0Z~S!9=nn9ac!XNB#htN zkQ1V+!N9X9IxE*MXn<_5QFGdwvCC+xcs$gwkJ=j9KVkB$M(J1}Hq+*?E!S=2R6JT-FM zqaW%WEhw!+;UpWY;yI4;(Fu0|$#LFGXc(FA zR{aZxC3woSYx)C%*KVE99#k|Qj>zwFWDlmDDa|UAL63HT9*`mqB&K1~B1>r0?AFCr2!nzHR8Q4uTXQpUR zvP4b1EJ9po3cRpFRRG)(*s{}!F*=H=rfe6L5wGt8&#Q0;>KPYsaPYT z2ig|W;nY)yR@h;f@oWkQSv#aW*7?Ko6j7*&!75ynr^pw^A*@51KelZa`F|O`fL!Ia z4LN-WW3EG9iv%}`Cd{|)>h;Qr?caOk%dV6=^R;mQ_KY`eJ8L<|^i!91hQT;t;4v)9 z2Nx_UN;npq63TXJ;BGC?LYS&M$<)9b9+#Tu2l(p_43VHHNr7SQ@x6&x4z{o?2G$99 zzbSH^z^`J5<;~s835zv_^{h6476k`O0)@IAC1eY`-f$WXOlDTGDgc|K^Kh3nes%xc*aqEl!!I)Vg4!3g1(Y7e9vIBlVd{`=cg<~yTqT3o4#BftI zggAwKmi@zyge4CVGGh=iYvLRt@d}TfF%z!vQsxWemMdT`4XoG7fr=d2d@Qgwt{br! zCSxkJarQLeZ(is+_UC0eYn1i#xIimBtVPaD!YNuRoM!QC#+`!OS#zN~9FQ2(63}kVD>u@TTnWqpB zE-crDSdEjU?c2iAo~0||PUrc>{4-m8cG1LHTQEFLW!wQzzZkiI37wf)7X4c-@?`?%8lumMS0m zXz`Bif52syLmaQep3O7Y)*rj$jd{D{4S>x(k+X|sjR72xW>&hQ7{j_FSPp1Rym()! z@_R9%Bel^YQz9UOF>rywl{7*b!ojlH@rq4WO#WAPW-l&O#0JFaZfjSzfekp)3XDHQ z;#o$#aAwtl%F%?~KYL^`HUTByZ8~^TP`3v0x!NSe3YgQlPpgr-)2oWg|omC9ByFQq_q{XNZ6$) zMb(0U+=Ada#!z(AaE3*rE-W=IlWVvDWyWMa7ABMIR$OD7AG^kSIjjJE@rgfMt|6A? zZd<`U3qlM#yh6q+WX$E64`B4Nu&lbyGMV|Vhn@otZV>^RY5>F+p5 z!`-F_9*4P+&1EWY(T>$zO6h8B>u*E%L?U1j(Nzw!=JoPugX%`)7o%vI62=1rzhhF5 zp^meSjDr;Bgjv)&wuSvYutnshU1jBY#Mb6xF*#{nu2nagTW8NRO@tHXW1a}}^f()S zFX}U~(>FrLvgeRyP#dRjgi&N9J6QHcLfKo(dpp!5<*9Nm$8OzH*={*pJatI32@R!K z7N*&O@-oMLC;RiBg)=&aEMBfh-7z%6JZ!A3OLRRNQlDEOu=_`ts46 z&2|*xV}NSv&OLu#av0qt6jgpL@ql`2PXW3W` zm2hmh+k~vdV;3%Y-61A_RU`C(%#$qHPLg{WfrfJ}PH;Xkxd+;H(6ZpXEW3*X2W z<}ky9ANMfM-p?)yoTu60>EPW;Ubl!Yw4e?U)aEoG_rSXqM!8#_PasD|;A$|sgAe`+Ase6`Gw#u5~3LFLS zGD?GFE_+e7Atw&UbT@^~@A%kr=wd#0$9kLOEB!}@jaYVP86&W+7}GNGbVijrk42>4 z@nFX3gy#wY6+`llVo2fm=hV#>kOn8U7`^c&qYoDhje?$44HjvK%zN6$^^YuuX>SGxdnK&j=ZIED44wG9+`iMzq5n$n_lV zfH1AwFsJc%Pq_{j+6LDFI0Hk`r-WF9WR4|&mW`%kY=`y@2j0iyK#VWnMX@6Y&pvUT8?olB%zk4> zOT@Nkd;oG~&^v46lKBtxT^byMgCDVB#jr0B7Mv*dM{ ze%_w>GAH{sdd-OnS%;@S>y##L_U+xi>g>T@aA{kx6D&w_D-3>3{I( z9*hDgSDY~rCOMH6)DA7(vf!7$TaVQ4XoMm?ta6lMDPTGAGT3(~OS9@NRufnu1Vnj9 zUhroAYx!>Z(rXmv0pY)4nAIJQ&Uv(^Sgs^vEsUfYk3Ez(yn8@$Fp?$~<$kal31eg&$UT1&B@Oh99z@Ih&U4h!>=L!Q+fG zXH0rQQQm?gH-!P(^?p(<+o9*3_dXBtJ|Ifh1)1OqQats7Y-gn9?;eU-!@zIMg+4HM zf?vfUgy%@dtjC)$gt$6{xbpnV8(v5pD}z_pomVoGx%G?mC-PXgktYi{)MbrxwY8tE`+RmuPcv8rNsbm^++b1(uuRULS|I zK5>xYQI6=t61ec-&_iAdDr|Vfudr%{x9kgfEP1x3ZHg4(gj=N6S;(_~M?n!o5B+dh z=#xc3xu-`wO5rn~H(`N;pVdFZ-I}1hcu3g)dz|QAZ`ck9-MrP;uqMLkej@T)k%R1?6E1-vg&YOuR_)W?Njx_|md!`a zj{YH+vG_9T3wWezRhI7Ogv^5p%>D((4XlLkameaXMk8SpmbmUfjBPNiW`1ymQMW^X zlQM+*X#|~J*)c#Z2zBA9KiZ;Vq+_5L?!h7_X%2rhD8qT|wI}u}uaEioSj!U;8{JG( zt4pU2JNPAKNR57Woxm`?gm)kCY*kUfD?x(_m%Ga;zCb;ULBHI&&iBD`42Lloe99m^AB= zRpXIW6J0qrNaL0hBkjSNSp|E7DmbJ<;0bEFMCAOjJ2^X<7u0kqENh=R^e_`9=60vM zWm@)}%nv^BH=C_8`RV|q;!h*LZQah;lshOC&fgy)V`{~@&ZtGcWAl%J_-J#7g$2RcHf5$PK^EA>Y zx!%m-ZrZFzqKikOOQ;9u-gUVZ%_PD}w-I?J9yg)_m`!VN;?5mCn|mRmB{0N_nO;~p z7j}H%$^mIA9tkNPsV7YDPX6FA)w-JsWlH8YbNUm}yD@2HELuGiQrJG79ia_YB!P;((zzZ712p~|(#5+UKf)w6*v(hVZUbUfBSRE(QO^rlG;##8GQ@n`@cs}=h*kL|u^ z3D+G@XwI^@T1B|DN1}>HqDtiX6%thvE)L?c?l8{URRl9l;)VXL2&SFtzl-sBeO^5q zV~^Faa79qD39^`d9Sg}iCW*VeqnWvL5sb9TgL`}xy^tc}VGB-RuhBIJ#H!mOUki8- zoXHxI=kYwd_Z(4NcVa*V)+WZaL`5V)MU;3&a9A}wyT@u2$yOd|RUT`Kz!C+hx^XS9 zbU;k6ORiZ%JDz$pn>qDiR*spM1-M_u$!blkC5zb}2W%B9n2I7sm2rNRBONCJf54|8 zU_E>NY#$K4>-Ni~DJ6euP%Qf%;joqapm;x?m9eiC`P|jAzA|S>6u(09UqF-ZYmDjv zF}5zRLY@jJ6Q9T|ZpY0S4_w6MCsaQPg)`1~LJ)t&0c=G;c*R{s#nU}lf43N0 zKvH4EUMb-!H6827DK^bLOih@|t?ZhMQ#{Rz3KfCauL3K9i0tYZIP&mx_nb^QqH&9f zw9{buy_jM-9Ur`|w{^Q6tvGo)4dN)Y^ z(A0C3VS+?9U*M+#x!l+2sRQEFZd0r*-EM2pdKyh(wA*%(?Sm}avf#qB@`#C7qo^Z@ zg>Xf%O2rbR2F~dmr;OagNasN)GXDxX!^C)S?p+sFAx;0_c#cVS7{Hv2Ou>xm7}*{>-gg^YEg5RjT;M!l zE06im7GCY6a{ucnkjy>K^kg+Ouz1v$p zAUko#6EPj!`CYBfyt^5$xpbJD%uCa}BfJ*sTlq? zu<<5_bmHL{77oZxjQ&{kq08GG8%uyNJrDX2XRR)=u@;AEz8gBoFhhnUR=kIbGq=oH zkBzmmyL$?pxW3KLgAWe~)3W7y`y63Ob|S8~z1u*J&E^V=5EXkjMsNpDxTF4t1p?o1 z;c(*6!_13Juz+ZA_LXClVe|)&(drff<_#4H*_~#L#v@$zleL%)6I;?2M%VBGkJ&qM ziBO)M@2vraL5)PNfJClvpb)WD6_$*%LM^4*PG1{dZ(uO5rfA z&+=_o_9?2HS!Fg2Is@N|@^n-~A36Jd0&5&>e@m|x%4+!aX#pTQ-fBoB# zK9z=HWPAbUX^h?+IeM{Y3+xBW8lKpPAuzq7@I|zoI5EkhA53(ts)>>Ajuj~K>o&`Y z6j3~L>A^CuSe!=03q+gmE)aH#3Fd(@;*qh9m7@uBA!52Ck{==}4aS2>Gd^!iVIc+o z>$a;0bYVOESzMV~mV09oB9D|}y??*T9!Jdn#&Ma$g?~h-cSNXn^gPeU#EH<{h|t`4 zFsZ?pt!hTG{{JKIZFel$l`FAV5&U0Uj0naD0l&*&V2lj|en&vgI187;tFm7h)lPu+xUH5DJH(9EM*wVq*NThaRgN zelV{~{Br~FckqPwXO91Ecz=fES`NvzocESk`7+efmr%5>V870)*asb;@<*LvbIf}Q zcegTqu$hm)3?J^=@^jsVckqOFV(jb^Qf6bt0_MH!!2F(TL4Il2%Ke4*!s5J7e!5Wg z<7RLP`7Hdw*eI6mOtH#P0{Z#V+B=iV6iK|M_Z6y7H|Q7B_+bJ$O-3C zAuW{S(O6ijF@0Ep{P5)u62<_ngN6HmrR@VoR(o#G5rMGheG5#Hd04>nybb z{c#EESg$&VFMW;$F~YWc>>%*LZlHeo!)+UvN^wIzX19cV=nv}HF~cC_LyuO+8zNY) zvI32xJxB0HtJdWbz`8*{ju}-wSyAH7?LFa7r8?;e4Fp73vailf-!@#cz6!qdLde zcsTo!P`X+|BCCW%Rta1Ek~Ww1<$8VQ?*hU#B7Yqz^|&mGb*?eRktX4uNjT{*aqjqm z_L}2MHOHZyG|_)3>TxrMizgtvB-bic%Ww3@iiO^`lN8$E@2-_LdL0tjMEQ( z0-L>r`8~ACpCWOW5Ll2SveH1to=}e95t_ zRQTG5j8Tb;wosT#HVdzEpHHF5>)YNxWq2|EDwe`EHPt^%dW!i`9~^$eYMnLyYD|cU zr&h6g2E@Cu0P$-dS7ISUNPMEtV(JLHfNysmikY6fs#v5*4Nhq}{vN;E^_if8B z{5CisvSD5NKY6Uit`U*<2ob{N}O@X z-T^C@cU0CYO1>ol)X4n5N>mcWdeZt+8M3!cW^A7MA^hTC4d+=D_ckSt$?%>Fh0`Qt z30j<&>fWBI^Z`|U%3t$vpHN>)@~b4E7<>DMV(1~cM8exsG=6#GArf$W_2mx%9KOA= z*lx%rmDs0pGnZ8Q7zw4my%s#Z$?O*iGzn)i6ze*KNgju#Gsh_<#3LYx>Co^&A2lvW zG!DP$O4N7`A5uvzocfR2KpTP*-%l^T@;9X%qF<^0rq~B9WRh5p{rbYIG8~Ueyz>F^ z1PI~@5QJNB67rBGiE0u?X?SC^FjJ%g+^$D^}~PipbQs@2;;9(xV01t zJEyp-^dZdRw>O>ufqb}y!#pwMA&bTTHoQPfOk@h9y==}N^YsFSZxeTFdgG=1G7U`q zIj`+95eyqW;cUHpkSvcA$PZb7dxrQ{p@H!&YCsC<wt*FNz~4er7GcSS^05;{rOQ3~NXk)^Pf#uva}?>{_b` zeb4{W%LIOv{4cg`F7a|iT$Y6YR>LP%Kcs&j*hv;&i!_Wjsp@b+jbZI+n1al@H~w#rL9pxEDVJarn}P)Lsp#y&6(` z75BEa^*uh(@+$EC0?aS^W%9p}S{^q~C}hrv#4aCkjKse8@S#{PaiLM-3n{$PLPr7( zSv?wZcs1nkD(w}5)Ay{!O5o{nyvn~!`TLzyl?&KEm#c zQvB8Mo|E|BhPNv1B{V2rYvKmu9Dejlze-N1VL^-G$~T6)~4LuDx-5PSbHHUX%xb|x?r*X56tJ3xP#uV`%lKvuvGJe<@4-15ljlf|s!EsuE zp|ExRa$GIN>e!g#KnwH4kQA;VDO~gBJn=Fp(N{^|NM6tcgMXDL86hSah8JB()7B4~ z1r`Sh$6t=G(DWf(E9Z%EtL0;@AN$6OX%1XR69^aL*x;4hF=kP_n@t_c6#cPZk+Tk*QhN8nN@h8w9uZd)DOI-DO zr?&OU?;W9SbnewDWwSw>jj zlb2G<>C8cqO~1_Kg~FI3j<>PGFo{)&!c{7XH>ogYG-50-j34gRct8^F4QSlEjHwf$ z=CJDK&f{h9Qm;Avk8C`yzWd_c<`N5Dhh3X+i&W`DIK>YyehAe#`-~?k;evo_cqQuI z292fbg7mQ~^(~^P{2~#>VHFTwQ5 z=2qKV9~)fht@QmqgI|b8gBmjh!W1v8BqaW7{0@G&=HlIE{E!jG<2DO#xllY><2kf# zzUAH%lL9Z6u(aQW~ahaf%magBo9n@e&?>Nb%^yo%rEH;@}A{zmVJiA;Sx~ z{Tj+lk20|y*V#FZ-_!7#qptP_nn zRKhOE`@+Dlv~n7Yk=oCfJ>QY0e_XIBR(Fb(pgzb( z0rH2?j_>zyKxm=(xP?N|7BSX&)rMfF&pR+@J%laH_AgSZ$8FC-m$G{7$mV( z9$>sKk01I%@zMc?vT_!7A1$PD8*Q#W-lLF$uVyIm3lkRNH8%=5eHM<o8L%8Eft@t4^b2y0FaOU|&N zs3w1W0RTUAY2qd5*rW#IW=hC_wU7a8Ap_Rp8ijwpEU+OW2VF3-Z*MoitMD(Q%S}JG z3+^{!$e}Ia1}cRPhvfs&Kb}6~2gUDL0|G-?M2m}*knCz9+0{a6CyR5^^%lqe=l(DM z<6r;#|NDRZ>pwhh|G8hJkaPMbZ~UL+3Qa$Y*Ko=lRQDAXd^zA6QGVPffgP8%9F-?c%&cW2uc0vygB6kVOyirsbl+MTI=P96#t+$3I(` z1b#Tx;om2248=w;;ao9pbaVLBX}pIOZ!WH&a7vh9BgBtacr#e&_8k7r;vs&rCH%mc zsr(lRa>ZJ8;r20FY(MaG4)tF~2Inwz|AOW081xv)aH>QhnFnI0n5fc+a4!pDj!@JT zpm4J>mhcP3TH=X7xQT%wc@)C-8HFEP!XGv?7sasKL1AB+LP`OIGhGThgAg0~hQt~U zWs4ysF~({p6n<_N{lhcp*iI|9hzV(Ev3CN5BBP*j=-M9^8i?tc;qMEf0WE}GUI-U> zA>50E4@*Guhk5t02ncd~R7&`F507w2zM}9{#GGsjCnywl5p#Isa47oDF@q7}otSu7 z{YNQe=}&ch<~C3J`d1(5-;e*=zW={}J*;qkv#+1&YzMVQ3bdN$pZ+&&=A-}1Km7x~ zHhBK&ANb`2^-tdNf%M`gKmJeu&;R-V{g?m!zyII$e-1CgjOD-mbE9khQ~ThvCG(Ge z{kQ+?zy9}kU*>=Q+kgGXzyFVa{kQ-5-~R32;g9~(uav;73?cL{;U^8BkAL{{G1(|! z_bV^-TX1cKC%|`NFPV zY6o`h?fAm3v3fdo_OjL;+K64vp2~3M|5E7c^HiwZg^s?UYk(Ya$6weTwu;}eOBE^G ziXGMhcp%LFwPA;~^ca$fKLuX?0H|8{#xvk z<}{9={}g!q1)iLN=h)$SXqz0w^}8Zlx$t# zWih#*C&O7}(0T0%dbS4+pA4@?I#{IJ-~bsw=D%Y^;)Up`LP@ueEsSM`r^-i$d}MnF zL+lCC-YNsqx?_tpPNM!Ca%Yu+XV~c%a_q?prE8JF^}Cg=(4`u636?bm+MkBZZliaW z8FH2xVqRv*7kn~i%9*!5wl$FeSaxU$Xl#Z5Iq1$JgUSe9Gnn|g@XF=FD=#7{Tc27g zxGd}{ZiVlk*|WkplN3E)+D1_RIyRv;|70bw@VU3okuLRCH+P>DiKMBZ>pP z=396HFSP~YtrwmE(7Ngj%|=0}KL_4fUeNho=vkdL57n;=FAZ6W9mjbidR%xE9QaGo z%cNHBgLhUJbf(BnV)uA#<-GFfTH3aC#xnksIj|~cIY#-Kn$Qah?Cc&hWY%>}l(veW?+4mh zPVk7Gkw38c5@=Rm^TSnYUv84qx(14*@`DTXr^ubQ`J4byzRdrd+c#HL0ai zUUtC|<#FTh&taFRx7GZ}I(B7feAc>XYt)%qUY3^tWTe{}F`mT)cv5%v?T-D$13SLN zoxbYbfV?;Eis8ChS^ez7_h+;+w%pAp+&%JGhsXnNFYU&>1Zxt$a$-?b4DMfgKC-YA zKTnF)-wPQ}u9VF^cL9;KaNHe7usBvWyrR0WL7JH2VFcm>k8Acu4pR}U-*@w zEEA;Px2~YGu8^~cH6M|QQ+jj&OAkfneX*vD47jqeK)X-r!J#Pg?D)uvzXEOOd2*{_ zcJ_;vwJa>kcw932bI_fYMLDs9Gw#fJ0XdDcSx9B?B_~*)bzOMLSsGQd{~Uf^U7VL( z>7BcdpAC~9YqGc-@yqoV=Y=^QwIuKM8%t+}p=X7WJx9i~cb5ULN7p!|t%Nd?ab55) z?i#Do{RD;10wbSqMmguRQrN+hA;BwIx1L=t2%Lx`Xjk#9wbRRx1F8tt%)A7zXH@C9meQ-qzl+8_d88>(SYGO*^2VE&Ti;Hr; z8{}sfoQ9kS{F;#O-r_b(B3l@LlG*4!5&0}G(2uWAYn{fOaU3{e$(zqFFxpBwXd_*LKZVbkQDvm%mBayj_36dLc`Gfi zR0J3DK`8;;pLgf8>frPAwtc~q)_9h?IbX_-CL&LJ`2r+aY+==rHF3Hhe!hp1XZ(%? zx}`69q;n(g?H9m7FcOIg zy(-Hzsw@3D^n42=o%r#2?G?rVzFM_m+6o`nf>hQ~^s*L(`zdpA^v+jT&fqJk-+RoZ zZ2-~MH@9XKW(z48q+qvCE~g1S_7$Kbv-`)n6m;qIsqE#4<_rtbs|icFzdpq)p0n(PPd6beAXMq@dK|n{OP!^KO)p}L-O7LOa+&AOF82M z{LYG_qzOOvc7crqZzS7%fNklZBPjv#?I|0dMTZo}&-eKJ_*x$FJ~GtJR1958rTW1P z@2BAP)o)*3K3@-L;!R(f%XN`YUo9Fo4|$uW$I3m(TJh?A;fAyBFxMV9XGNAz{%sRl z8@5}7^6q9ctlTh=CIWi@{XHuWJV^$*H(dPqUI`lY`N&OQaUXuU8R)F!Q2`0wKEL9X z2gpdI%Eh@sm(xqwdZqN+5~&16)}yob$Tz;*HGSDKD6M4QJ=n0au(hnUh<*@lUTb)F z6cT%r3xAIafPW~X82SWAObKoC!oDk@%sH3 zRsxt!?(5V@U)eY#&|LBYosdR@q$9m*+P{}Huk{ea!pUy^3;jU5@23cQvC)Y^XRfEd zAvtON(9UJj#u+QJZc)t`?oZalryHIoH;w+Y#f-kPF{;%t=-xV`aXr^0@o5?*&e(-9eZ0ZLd?UT&5I@^E9+IMYA$$a4 z_h*ypb%&1QA!KJ{@bvT^)$hKWuU;ahtQ2>wFVp?tJF5=y1~dBA=M82VH=Gk}-O_DO zVp_+@Kx4gKbSRB#NgX@!teIelyaHR5F+p_QWCMlr{d!HEN0mBuXK%FlU`R(o0TqO; zaR*w~X`FG%aR0{Rxl`caY4X0*D1V-hx!XSQjLN#6JP6Z${=CY#@Aq}j9b}BN(BOf= zCoei=_jWS)jC7$6H6h>MEma*~+YTT3x#c`Qx24f7w~7;HSh*W+s_FLTkb0@%$`0Uy zwpo3o!8Ytn3hyN_Cup_Cx{*-PG+KH5IRIUA%JUT`fCD%sgNN;Uc**AFtJJjiWL>Wh zl5oELc-UEOWbc%cdl+EyUX}5vw|A(a?VRcI(VktnUazC0+n+9W=W7jM6{*6R$M;B)p5 z7Z|5%tt8wzRZAo*$v*^0_ti1XhZipAB7kw{1DxTE1d$BHnJEh&SpKt=#nElKK9g zvyDRy=*o}I{gJCa3*zfgtGq1$^y&3`n#5C#Wyu* z5~G%`Bdf*keqOF zwJkt+DcIh}A+r!KWcw7Ba=(jLWH5c`@D=m$8+XC2DY}K@OEiYbfhXb zgSArx=xl+?m9B^MGGo{*qErNNtwQVlE_~^(d^*3bUYuR`st8{@MKJzuk42flay{S! zqi@j$`Xa{7l3hh{rD%~y7UUl<~glp&bD$+%OnpF^sS5@ zgTcq1vD=YFQ(0h7}abc-K_p~h#w>_UTNf+F!csdbm-%yV^e7BUa6Xv zr5Y^d{&vQ}IlfALL+-_z&mm>lFrXKwgj?s3qze~wp?-L}kDoh%AGm#O_j$XZ>vv6h z->_AMpnf*2n?qtQO65L!Fr)WY!SMYcvPmsH?_Du~HiutD!BB?#^dE31@D5*pKe|Kd zaCU3yyLSvJ8OpjL5EZ`faRA*6-1!&I{y}dW(A;?0++<$5S0$9l9^89p0iw?S$xhuv z&;Y;s@~YwH3It)H+HI>qNbgHJfSZEj4B-LX(Rabo?Ev%cq}yZr~lSH$fh`^Sj5@s&q*9Z@u;ySBg$C6qX0i##wV{ zuX?GA5qRU^x({wO=5{+<6Z}X9{&~`(O-JxHfIjhXgPcAd^8K_ja;I{$aQ|)3ET##r z{?L}>Dti;j+sbZFm$Z^hVECZIaA)vInmYUbx8z}=s+QARGvq8_ypEF)q;P%6XOeANtVa~Vdh5L@X&&xH3^<-u*h`}o!&Jf^ls^CS(v8AeC4vUi0guVlb; zVR(=kQ!gxR-c&vTWEs8s?03H6sFS41d}vWp#2BcBKOt-mIa?ZVS?&wdfct^tgdcTU z{3LFXadRPCuLzcfE00tV?84OGD*O^e??$C=(Od>^aH+?eHgE3L>|!P30!zN{ z_XQ*qhSEj#k_Ay%UtXfUgk`D#u5{VV_M|i59^o#$58PFLig)0zte@6cLEZb3)Wk2X zya-F9b=+_4xli~3-B7QQug~Y<9%MrNjdMRIN#!ZxtaAlqqv*)WOCecfa{>DohZUyde zL2tgh45layS6qV4TaW@Z9#*axfVOMtHi9%4yd6R~cMPrqKdsy_*j?^oTDqi>?14Wd zbU$#OwBULSmMH}JH*Sh{|8Gaj$e#!cPHcT-^X_PCibzY{yx>7c)GffVr^Q`Nua9f5 zY^aK#72ezutr+H&hG?~fN)O&xuPk`tlRB z@C(@vUwNSj?Cs^)Lb*Snx9qtc%eopklKCUM{t90-@7;t^cQ?y+!h{c zGo-Bxj+uW{dp?dnrnWqB8$BOa@cGylH!kd|Tvzl!UIq3F)KdLPU>ST|liPg1u64if zJUz77<$VVUOnjNpZ%oc}hi``q+~-lc=H(z^mS3`24mnA!m29Po9>9ZL73rgjX}s70 zyoy+~McS=xl)qiP@dVeg5C4yol=5Y~f&*R%o0s1Oa#)gD%<5kWZF1x(P5OB4CZCCc*8;*D>-<>i&=m2#8?m6Ck#YcyJ9lcQbH?AVO zWw$p>t(WV4?umPKcY1b@J|D&& zVR-GZGj5$PW@~MzWrtT%dXO8tQFk|)@-;kluBQ$z4!PdsvbmbIoYTSA=W81qYrHN#r zMqZ*q56lYTZRC9}UfB7NkhAdg+SRM?u|k3)5#!B|lgoaAR+z3Bm)ouVXy= zCuJ_1_s_H*@q-CJm$`(aiv4zA%ZrqEdxm64AS)XJ1@622pnH6q zZ?AYy&kKt@dc)}f`cC}7(o%=-dId4x$B#xa8W#o;H*aVe)>W3FD9CQPwUbNd?FY6C}!M`E`rRakb%#$3_8$j2%G`_Z1SoS9^keBvX zO11|8_Bx|X`=hz@GX}l$^lAd(I}ub+Nek(>*bH*+1E>>#t{PfO2_mq*BK4Qq{0bM& zWo6o&Io+2>!tU?w2>LVJFTo7sXsy_0dSou#CIRaZM9K8v8F7x4H~6$0KDt1X4h+Bi zDtjf*LA5o}mhI4ELB4;6-}c@z0q7*Fs~}u6-#fMz_MwM{3%&QU=?`A0pQG1j94E=D zoM~Xj^9|NPor_;h6m@T>s{V?IE9(%V`$FC54&R+4sopqn1H%D9IR9jhU2Pb%4 zBAo^GK7hU%E)#%<5aIEJV4h|~n{}t_6JkqS34C7#1KsDlQwtow1GcZp_++t+oBbY` zR9BKS>JgUo070HE!OI!$p34KpiqdY4!Wx6HG!JAJdjR2CinvT1B+p`!6I}GlQmc8O zz;2z)WME6BZTUea-JQQvKgYeNnjwG?=w;i7<;VKj%9~K16vXcQ-J{SUJb?RJ-<9DU z!{NBTSM8RTGX2;v-ET~H>u;P8B=L>{jq66V*|QHyeZF{|b2>a&n89uZuCv-LnML^7 ztA_mEY_K#!_fiEz(g!^mw*&7GnvXI$dr!uO2sGM^pk+_^(V>e_GUmx=zcQOZNYtKfn2rKA7UKLgvu*#&Sh$N*uu^}N=fwK z7R(cVzVUm&cBIoZ?hPi)I};hINzB5P8EB)c`#qWN3!ZE`zuA2@j)Q!e&85vgoHzead&GZ(2 zwsoomma{G_q(DsZ(G}iHYRmPi)n#=XE0z2ETG+kAd)nu07;#G5)qoTE#e%qbOI3hz zWed9CeZ2_m=HWyWgy0YklHkp^nfFeEGto)_bG^gv>kVOd4)^E7x+*vX_?0Hsw0m_% z7An3pTWu}n{xsd4!?CxneBDhwd(p}F+IaIc7_%)jnFQnVpn>0g!&S%LRY_;|d^EAH z#Ax12MUSSA2__oa9LjyB9Ci^+$S_{LZGhqTeZfK+MpV4Chm;@Hby zZ{Vx*+0=$-I2-IWHAzTo@dJA>#q2)f-7CQn1fQi#9+yL`&~8c*q;;e$GJ*$ppgW7x z1fTQieF5=(gfr_Mq1x$8PWe;LyOLmu|M|VCEli_Wpu5 zL<*$)Z%DTlS1(1#TYxUUalHa-1S;%auBmU9F69$}Jc&V`5cE7SyK84k1Ar)7FF=sg zS{LgEAfPA@Za|sfE9V3*Ckjq*twYQ;3n6p-K7I0oHi+|h#Gx9ZQuXmX#*W{Js~ zklD%|1_dm7zwzfb<6ol1gK^B+b-~MfOZckq?{BOh(QU;Yu45(UoOPTJ#I?@{@PeY7 zBd-1gw304fY7uikLw0BJH-z9UA*Y%ShZf`oo9)?ZidW0Dg$SBzd4S+qV`OjinX|=< z(}c>XFJ9A{tvnaRvaZOe_bKCp2i8lBzIWvCvHQnr!P!4{YXBO-I`8Mqi1y&YaBo2G z5LoxlP946HXgN{Z?44$FvX!e~*|54Qufwu?E74xi*1A)qe1B9Vz3lKaj9zy*Q&)xvMBJ(> zo`Kfx?kCU(j4PoTzT|y+H;Lv^1WO6GPC7uPZ8felm??-4G_blUc?S@DROu4gHug!4 zY_Eb&Tg_Q`fNPB<<-rYj)*$RP2znYw{SCIk9FGk5GOkc`9akK(!F|tw3Y45RD*q8?gv@RgC%KqF3)L#udm4*I9|F3wcgvhqiV7+ za~1=5z;o7Kcl5kPro%hjd~MZ(U}yAES|?ctn(n8}Zeb2*#_Xn+BILl0YJXB#_flJs z(n4ZEMko*9J1Y+9b8+i^(-Hw#-woQjoyu7ZR~o=W8&=*2kjMDz03NV?dHRmeE;I|$ zjXeV?ps>=@DC2{ci`$uhS-Rm@`}7MxSH92bO3YA^&67(`mT_6moO82Oy^o(x_+|3E zC5Q3X49m853`DZ56W6E(jmZ6yO>Ke?*b^7W?*Q^5mw4=YZ+v;{Ll4W&FG&7@4&Kk< zJF5=qS##g91b=@KhW9tiUMowk7X~dmy`=I);L0t{(*&PncOy%qjisfntTae~OQj)d z5vBJV25xEoWoLNZV3;rjH5X4nkn<%-K?5E zLoMCb0Z95_GsfM_U0UOd4cU?x*NQ#5%NNQE+vWh|`uyU`^iTDH7cyF3GEb8;na?|D z;Q5KsZ_F$0=H-qSxWj@`5O08u)WExKk5gJH?p!atCs*ECZn!4I;Y#~;V$U0oue*RK zHNm9aMn_DvQVua$!UrezEI7y}1li6bOT&=7<}56>S=0ak79waQ_F$XH&C8FOIqma4pbKmA5j|uqG?(&||94(EVJc zdzBZQ71VNY@ihS<+A1AcKNZ%Ax1d6X`>kbnE|+m-Tsob3$n)@}Y4g%}v)o=t=A#Tx zdZTVz-i2?9lYxi>0PCxJ$lYxnP0|mVmw$n7Gbug@KOMsF0-tLZWVzZ|W|FeCQbV;L zOm6;)_@f6tM($w_?u6G@0+Wjt3;;IisK=fWg&NP{K z$lhK-sW0R@`MFv}-#@?9P0bTd_~qP_mr?$(Rw{c(yG+Qq7K(E@y7HYV6eTA zGSCdmOzz7(kXw{n&+448=X$OKg2*q~J@eL<6t5IzuD{`ZEhTb`a*%Hb_AOH$CTQ7c zvseovue4RvTrAygDpNNpFFam)Jq8cEyUU^}?Hob=-R`{ZN?v&Kbl0p=#2ro&dFy5s z>Pl&h)=Ihm#JVSW$B&#Ns^@{t!&WK0YL<_iD~l{E&nq$97gr*n3BcY7=x)YY2mQ>= zI{r1o&ylr1}H0UKvm@O zAc;Av4%7)gaSdUb^bK>iz2hLOIR-48N21w-1KiEXi_S)rX8;0>2bgqcKmLV6v{Xc0 zYY0BT4`%$()9A!02*L6)nvRR5%!R`&W7DBrJpyA?Upbcn5cp=!Af#ZimweTFSD zz`|$PGNC?z@GM1~LGJ=z&?VA%G?Q(b+*{3bAg7fIX{3CAC{FH0-WL#xuRA+)*?5#_ zDaxBix|&y#zoq6#_bF-QZsgt5(*Z2LFiB;gwJ`8z@;3tgKt%8H#$=MlfWM7juS0A+ zz&!vl4Q~h@=G{Br5N1m&H?C6F2fY}#BcG}BR9x?2aOAa@=AC88->rA*?&A&@l;ZK` z?C*h9z%Rwks-)6N?S+L0*DQ?jK7xH&qfE_uNAS8}Pw7?9&u<)X-ErLEf^_D1E=Z6i zk9~r+aJN~?e`TjH*Bs@3nL#k)SKR6<2M4y*xraRN);@!Teh_YD3^z>uhRXqfSl@`lNoQjtAStgT@=+6;zm1>!isv-p zcWhA|Z!F-zyv?Gp*%7e`>Mz@l6nJ1MNp35y6MV;@?dU^|d;-S3ev;72fQ5a~w!4)d zz=xioz?`7u@Av^UA-CUn)xb@}bv~`xrO^q7!4GNKylRkhvW4l15~$su`*aU+mT&I` zyU^oU)|Rd7R0o2xa65=aAFSh&TZlXV=WS`~?qKIVp)#4Az3rg7?gS8M}$sb^qaz6;& zM;v`A+@F!2^$h^R3-j*b1~JIejY%yJ#v5)eJ`dA!m-3q1R0V(Ibw4)}cepUQiimc+ z#+BwIo3lPvUTW$mDCGfPz`ex}Ak1_wB%_+lf2t2hdr1&iYZgx{?$tn`5x)66?Zl0T`wSA!t(wqFccpk@pS3 z#+Glxr=3jO`unXUiq@w9;6BmO?ZiC@BV zFV@N#fiOPAfLqI5WVMy+8d~E)?)UrLOuXZV=NnQA2Ju&3#$a3H4=vYgexXnXz=KLx zaE?EJg!>J61mab!pLYA%L$ZZ-x?ofuY&~~7adsvjh@W8ZnOYiZ4>(xhTiY$NG?%W$ zRC>^~?}p;gJ61giBM33S2=&Ay3aU}N8h>BhV1P?vw<&3hO&LDZRPXJ z`YZrl!OD1oFuNBF&`3VeB6}gsS`XPe2!U&~+^^)^YWx81tDoSz_nHF)OMO7{UO{>> zT&f|IleIO-+X(86pf{y^3=YS*J|boBC77_lN)4-;s2zF?w-NL@#G8WIlW2Aourh82 zs%#w(L(Q2MYA}_A55OxUc$i##q^~UGG${NNY_(!bwPq}^>=A}kTC#B$KI;<^n}V<7 zhgZ^l(;hL}In_j1=|{v;^XL23o52jFY|I$V@n`IQMCa2nEJe2o)wvmpuJyxxbwL1gdTbK6vp+Bj9YCwAQR)VrvsVt zgF&YC<#L?RJ5c+Iy*yCwF~e5)m}Q|4WiHJP@iu&3b$IUpTn(bQdid2xtfhTfHt!yp z&{EO4dXqnxz;(y*TqX#QncP2|;dXgDtZ{EPw_ma>WOFE%@<8~|EyoY!j>U!Z@g=8Y z4MAA57d)hhcCtBYnDELmu<4U0#9heQA7JneLLYtrrRy7#$u=)=LAG^fS@n+92jz$R zkW&{fbxNvpddt-*3-jUrwU^Uduc>t>7!>4z@TMD)<9qsMuF90X0J&09TmMvfZvbMc z8T2|XOdCl&U=x*j6{N=?kOtc{ZTslB6*sp3gqCswDW|qxK@p>^mVCHvc za@7gJ1GukSaL{mu-F!f;#|&3$oE9Q_@DP_#L>wV^fl0pwY1nG5ztC=dL@etn;`+ne zeM7hG*5v4uq+%0(JhlQAHY=QFGhC=0210VbBa_{k{Egq)PUvKg!2}?^?C5xH)x@qJ zzmSR0s3LYBKb-Kp*eFB?_|W3u%{mAvmxX+yS}{BjGs$jM-nZlWhO4`29h;h0H>k~Q zHUwE{yp4(^4=z9-hII8m$4~kVn1({GzK2`4Gixc%D~-!Z4d?-Y&c=cnK({gi8-2?Q z>sBfP*pF)c#{kv`il4l|XBi@8f-gIp@(9F>5R9Vi4L~T2ywa1_1Rq?0y$a!JMZF_9 z+<;9ZJ8kY}5tuGqj?0acn(rg%dRRS)c1KWG@GMt7tVT&KoAs~+GA-QCte?-RJcz+E zDYEtbOh-^~+)&TkEkX0z)xz}T74A0XY%_p;#~Q|!n)VBAhR`xBm1KkaYh4+7A>yoj zuY@~-WfHYx-R<@PsjO^g)xQwI0|?Jrgk9={)xF^zz;U&ZV5_ljt&wzD9*73zzL{Wl zUvutNh+FmaKFlOlgtV1Vjs!n2TYFAuYmB!0=($vuQ?kGEIbVob^(6shJ(d3XO*7Ot{V z^GbgZerNUZPF&2_xz6$z$8D~r&b+twP%G;^wt&Ro0em)kad-IIcJV2GpGIjINSjk< z0|8jr{sRNN51?;?B$)%y+ke9{YyFEI=G;4}9NGk|)~$ln8|n4{DPtdi*yP3CBXGC@ zL0_A@SK3sP))j7oe1DZ8yOsIbywWrFju-a8?ke$VuaeqI+CKECa9+3r$AmxVO8gwW zv*6JFcARAB;`*Kgd~J`Pw>GY7>XO!p!C)!nK7%NC|MG9(q4%B3(DgIgYQRk-vQXGl z_{r1=d&P0WmtmS3jp(I{-d@w5T3g$)tdBF*o9{k)JfU|Px;cY)*#3oA7PHNglxdxW zL`{hBzNl<=>vDnV>^cX(&?w!Wj?=!c+_enrNH0|L6?_2RS#j729_Pt^rqD>7go2wZ zwuFUOc1p1%d64qiBw*ss3*?TVg$DL>N??0yjy5r0SF;iPs2BEg{K^=Bh{<1G4)8;I zaoRhvOoeON0V}l+2=A*$WSZo!I)aC8(;+-w>O0t>4*!ylA4KL_wEK+H2}myjs#l3WG_6Rzdr-Yr7aEDLo! z>k)i}pO+vu5%z114 zk+#vty4F>VZhDZx_}C*&wDIIZ#?8_Cdi^Qw-b7Ei;L^@17(O__XBATV0roA{OaX#z za+GN^@fiu0YOpnhvIhv3F$OOP`WEZZxwltoPCJ{`5XwpmJx;{;omH|spQB6&X6!Of zaP8kqITnMrB8Y9zY$1YJ9CkT#7y*{<$AIq~1*MMc}Lfd`K_cy2eUHRF+XsYZ)g` zf-g@}91foO7InV9!ZnLdvenJIR>4T?CYUJoKMx)do}|PazU)shW*xX!oVPklmBY?& zA@}8eA3uN7!gBD?4=xO*KJaSO?7d?UTPI_Jm|HO1hEJzw<8tr0fb4a5x^=M1R_ai; zl|CS-h513^a+V)5qetF9D0vWZuPMaV1|T6VGy{f$iSIX{yZ^cCzmV6zKu){jv4an| z*#d-A60KuA1Im33_w4TH9YAywfdjWM0CC(rZ=87KTYYy2RT|Kqf)epkMYM7y>9$CMY=y@v1u%gvv| zM-zO0|Mk;LG`a$3fZYnlK4*Hl;N&@Z zvgR%iHU-@jy^EG~1331U3(Lsg$hNa@+U%&;5wHv>KUmoBj_AoHw7a3QtL6;wHOZ1g zCSl*jR2CU>TP~M_me*Fpy~X2 z`0-$2YxO(sHBYIbr+Fdqic@)TdVSvU?m2h8As-iAHS6?6bjXZtd_7W@b*VF!MnAoe zp9@~4lX>;ep85IO%yn8s^fKG2x3&ni`*86D7viZ*0=akk%D5rjDx19;o#_V(UVp)W zH`fdG!HM-+V@B}6=}T>Vq^c?Iwp=J?wveZxq7MwCvb&z66E*zI_87$Li;M6ow9_@^ zZ+B>I!b_4bM+*zn*1>pMxFVA< zJ-G2S%?=ChGLyAmc|&{3N-100^IRmYbO$YH<-R*;?iS}g{(LR}2)l0xwr6+ih73Vk z*d9&Dzz@c2ZgEaCdWSR07ka~Vw=`#^ou?P^2ll&vg~w6m2YPFMZ4_qgxAxf?ZR zJ?PHKP}8%=mD|19SRWi+uQr^K3+}GfeLaeds|l8M?|N^28aeCATRzYVlt(b%WZ(EJlO2$ z_U0^e0E(}t4&LzD_MTwj0t>yNFz4oebr-&FZ|=*1;@(<-LHO0|MbcJDL_%yP;_D>+ zek9-VbNFC_?@)gjqR$48P_60nR!y}`Mb=RZ>h1SL5wW|QzgJ@X_LCeqlL5Yvwzdu+ z3-HR_RL<~VE6eT8b8jBFDU|tYwCF(2VA(t1NJ>UTD-#%2yWfB54(IO>^zK!G07A?) zquA>Z55&5%XJ7G?a=#35m-CDhfCp}0Pe>WAz_eLq2uPR~O1v;jP7fXt-|k2gfW#E+ z1wv_7RC~upwF<{|rWBxH4^lw4I@dDcCtcx%$Dt7)+elkU8q5nx8unnj<85<3Ux3-) z5E=AcS`Ws`Zh^X$KJl6LLG+c0qXDjG|0WseP{9@Et^8cZw!62me@``sz7L>VoWEHb zO;dZH;4_ClV)05k$XmMzDWf)~ z;j%7F%`hK`#Ja;d7k@%r+CDi+Tt|g4Jcy_pZ@}h2o)_MLPu8PL_Z4)39CC%LzN4Vy z7|Ez?t>LH?%j>FOY9=rDyMXR*&gC0^94K71B?Z|l(FCTnu8Yb-MISsMIti>fe21>u z7w3v6*4o|&M3beJO_=}L43$?-f}tj9 zQ>wh&SwA_y1`Ky>X5>_W&W~dUCG7b z!uQSb*bUAh&k!Ez%F#-_lChw?n0KqxQPQP^4rIj#$Jhy3gwsvfkMRg0ypE9A3ZWJh zTG|l&fsOjlA@p*Dryx9z@6k{lEPiV>teXW-Dc6b)7M8>H{~pAk4@6vX9Le>X%x7{o zPSq`M^-KY6gYSicC0QQ8=j8~`=y^H9Feq*)=dGNCMygzx3_|0?JjeyT7@@P9WyO!L zw*#dNj4YD9E9aE!2g5qg8O-nizB0ilE>+ieR`a+}bJQ<89Y3TAlr8Hezcb{4t=b6Z`H-Ry$SMEYy zG}m(femk1o-TWPeVdj{axPcYnU zno>WP^1>Vt3?I}X?sE=v2y$1gyBc2BO0K?IdzCk8*~7513_&q^5Q4rQLO$1YZl#Cd zh@ie`uU>JgmxjtpVjIwdGS2>F!cIcda=l-UxZ`=39e4B&(7x6)M{2L_weG=sbl2?$ zV|}0Q^NQFF&mqACpSrdL4yCZXiX`4EJHBwYran!a^Z|Z2iPt%N=w=^>hT>(lOKoQz zhg4wUVw@GC`_`-Mp68%6A6~c3(?NSJy|ip?9huwu*g_}))j-0%ENg3)Ps zenO-~AW-GCw-6un{8=m)dF6wR-;%z?}E%JnQvtfL#s}|bL6odQs zpWB_k*&FH;I0;x-_3cfpu-R<2z{18e)ce8i_gviXynF-jP(JulTRI29~;IfG=da?(QHXTWYS3mbW)eZKWg(2ATA8U;%2|;yDSm5 zYCg+eT_RaZScC+~tP|msKIrkBq%M&G+m#F`3QdqRT%dM%TmGU}bn)tyv zrrG`1Arvp@aP*)_hI=0pw6-- z4?2RGX9S&*>H)|@CIih@XYT>l()OztUV=5%lm{{BRIEbN5yrQN?bQjXwAHxHO1<@u zm=>0FSX1IB$5_7wp>G#r_>S1CPV!;aQS!C$pU;UEeKCX%Jh? z#dhy!LgJNr+ckR1gIuOe0Or(lnRh;DgPmhJwhg!LXL4Fu7fX};ypN%~p&!^a5VMm~ zy}4S_@RrmHbvGwfmOjQpHQl`b8h1N%2N1+5f!>&*akgH+-QH8IQj+pY1T)+h{N!$k zp3`&@zR&Ryjn^G7+PvW^z_zkK*rHG$L?O*lnB4Y<_`_AGm^RBL)Vnw7%0262baorV zJgo_{Cxyuoyb4Z~7pZNfdDL@(>(;!8+N%G3^mx*I%FxGj5aHK+lXNRV5DO<Z!^knj4mgBZi`;%{dVv$8_9&U`Ry&Vjvd_=Ywn{5BYI6+-A}IzE|Lz(-|^Sl z$t_o0w;Ws__Quk<4WC;U;sl@gR#F*Ox>UBxy_15h)2albk{@8#3lAJm?j`gFa*^^@ z!xc1zeesJgI2|DO@@^8079e2_T?e#iCTnAn)IP5_a-|f*mFECS&yxzoz(H~uQ z57eotkI=fa3;JN4+TGE0Mo@bL`U;=D>Knh=t&j*5SL)2#52Sm34xkS~oE+V$m5$&+ zvAjIH`ADaCGAp^*!tN(Fs9b{8k*LDF-_w82L-O}+p zKmUD-VJv-#)8=EG3)#X3wAC1S@DRIadbe#&F0Nz!A;EFQrjubMDE{D8uZ*qu)oZ#e zw9drxL}RDBr>FA$20VFK$4R~@RF<@NN3O=-y3K|RKo3$FH%|w*P5Nh_0rv-(E?i2& z7wz;4S%lhsxSVd)6Bch=$s4ap4>ikX#+pEZmD(^(rRu?p!BfP2U3B1~_8mmz7lUn< zm&i4@T}ho3mInp{-7dX+#}NG47`X?#xu+zIOBv9$l6nAOpMuDE@4bT%(?}xcyfg3n z+ueLN0p{=Q0n^tidK&FTZMzUOv?be>R9$+&*swAohzWfYI7Mf+sS@o)u)c3=Uk-bq zhTlEXlT8l6`TcB+#%4*%*0Eb_2Cr1Z&y+3QPxjm;9ki?JID*oLMl>eNhPr$11_f81 zVk1cRTP|*t-lGt6mv*8Yfr#(|-rF*$_eLrU$4115W#DZLoqq)rgz8q+d32XTp|ZE; zHCZWdr^fKWskQX6hmK1h-6|ait7>=^*yd8l+qn4$cuQKVWaTQF@23zr*hvkgrR?ZR%lpFZIAmGF#YlHhRE6b+7dP4qxAp zv+Jx^vufZM0BmhqX{pK6!ofM#2!CMg<8JBT!uY*@>thcZHwRPNIl271m2Ym3?t}6J zx1-PZUKFGO?;Q~0;ms|eo8|19kx7`XC3?OpLYJ2kx|5+{e%6u9ZuY7uQfsqbRPJ<*}qgde`wW^~*(-};0A)!%Pn(=@jf_x=mgZP5+C-+<=<*1=STUODeIvrU|I zp`96uq27QDV3d;60|0&Up%Z>b*fsnP zAg_Mjd-XesYZkpyj2wPsoAz`3ybQr__;t;aD_ge-LAU*;jSCCP3l~>YE~V&$M|c*z z0#tVc?h3Nw2|o1q_xjRgSm!Lo!aq>k|2cp@`got<-h1H`A=v7;Vw(xO*6b%2YVbm~ z`wc+1L+`$#4k7p92ad8=wJP0Ph@^TAuN%K1>I3edbVGE_6M))PjOXoh+}y^u0tFZ9 z=dj%;jf-2Nzh(a}hZuZuP_EOYBxSb@G@GmwKh0?6{tR8*7QM{);R)Xni5J<#3^{Lh zRgr}gbRg6Fd%x0M(aX12(<%|My*gO=2O8^-TQSYc;=uvtd2P$l>+E|R zsl08;X{YW+J-zF;_AwhjIJ#bhaMxhVQ|OItthW8JSGJ_-PA(L%!-NmsUY(bwJ@zhJ z=c8%~7~o#@L}FY?04!P_9A2B^@7hPz=alf_q(52xOg`6p#YnKf&&g z&NF<)Z$QQ|dBLrlNKIFSWL@r36Z89rx0|DP$pc4^u_rG)^iUDD?f}>1Y~A(;FsF3C z0Z24U4qc9}yZ7MW89S&p_qD(e(*P-#>Evj-WelJ{#BIwpPCN;k9)< zqSoG~2NNVWMt|qdz3xpt`x6>2KPbBys90DQGNDz{ZYIy6oTE25!Lc;Gph> z&`8$qvgT%!a2rFNENw3ky7U^38z5XZ>p+VdujJ#aCU{WCxjVW{2(sreh+`8!rOisv zq6t@eqjMpCa*n+U>0X57(pMHCXfMvVIRxu9$hy>48S(x&-R;re2!dC_?m%;3c?m*I zyNS_8nO0temLISJ-5nirnJ+?kKP4ljs1)10Q&TbImG4^#@qTD$1$;=K+3aNkVDDFRQQfUvEHc1wL)N6 zIhKqM(CdrnbMR3o1d5Dx2=Ug_D~V+#rI!KjZ}N*9qR)O(&{r|xI!L#dQR9|v6f;p? zN{J>)sobB1bTf31KUV^TuBHf+BxRAUobptlrWY$^v8*uMe}B6hI?Lpx*FDW-lmfK0 zwVTE1Sn*k>zzg~$0C9rveS~`mGL5|~*=hoUs+!hyq=`$quP7$n2Ho*fnw%VU(9bR; zd)HcPbwC8`^1s6Lq?PIx=yaBEbTgkkHIDg}5tv{(cp9Z)F}4OtAMDxBa-4&oLRN z`<@meFrQ-=nsBM@<2+xsL+W?iJeNa*l>({ttx~w(lq`Uo`0D|+hV4Tkt+T0<;EV^#lwU$`) z;1Fw?@B=t&lHzr-Ts<=Nm5XjwEh5dju)#{TUVN}^qcF#xUxG*69gO|4AW=$tn_Kn! z*+RQ6O9&6j5yd$Gv-haoqj0(c>7~3?c8BT(m={JM)<^!q3HDmV2XxYDmiZ0fxb%?o zZp%2ylvm1^W9vWO$Iz=0g9$|Gt}ABOQ!I$P72vfE)7EA(`F?B5?a~2gg784@48w8p z8pJlcpb7Cx?;p+ZWO>*<(+}v5yU@3fVolt}MV zcNsSrbQrDi&Nnw%CI7&e`!9&Y_AA~eeRS*eoF)+2Nvi}r2)UtcR^-k?d1ZG-3CZpc z-n(^rH#Bqzg}aW{Rm#m?Oq(BNuq^ASACTz>YNI~|(9P4uiI;-?9J3cDFsvfBN_Dp> zi>8$uIEex7$6&Wlm$S!ezQdH+oe9RIhEaGof=gGJ0OYI)3{p#UL5l~q0vj9kX{V3HK_(IveG%I>HgkN2(`Pf z`&-->wbcXgs#Ss9mUH)(#s$z8?rJB>qE8S!i;`|U(jm;*r^YZ0-Vfi{od9Npl}6b0 z3Z(n#jCSvJ_sxKJhs%R-gs{9y*{YcbW(>OW614kMcTIT$kmd*+&Tw-;w7hxKSPa%Z z!_a2N5AbsV;4k#V$>`A8N1CrsNNG-7dpQevp$Rquw=vso^khH}rK`=n*;~q^`J8T+ zYoz8iu}&-x;Qn^3re2D;SW0#lCgy;41oRSxy)TH6$-)LdBx>>zw-K}nK|jIo5R^eV z`EY*N%zaCgRxTzMXrzz(5S9tTPTV?T?|_hp{=T$M=Vk~Y6c=@{ReX z(=q0)+p*B5kSnKjfDfj0>R#+NO-CfXpOI^0^;Lj)_nZ@WsoF=|U%vkmyBB*O6nC8k z?Xz|*gO6@aD|TBE|H$j&FCi@C`x7RGUW<4&mwd0}T@RNbnGxE257tU#rSxhpiSMr_ zYWHJz1mQg*>0zj&`XC&_Tw4z^{b2d%ueb_L?laNVJ=r^k|LkmjDbYc$Zwd0wlzI_z z_W|o`?dPfO7B25LstpVeF0`4tk7BCp>~q!F?)PB23433C=;ILU>5E-v>)7@Y_e#DA zr?gNVMa!`ea~r|42%$V7s9iG;C;uDTtGSvL7m_<_zMJsD!`lmxGkfuQT*(x`XRne9 z?R|F!$hi3m%mvrYl4?1S?u(u)!i3;au8k*n zxB?Gpl(Msr%8a~l>w#+dao>GOy9N7fI&v}10J{#8YSGQQ)q%4p=t|-92RESGuXow_ zcNfdv@LfGe+A8s0(+o%~v~qI^v(SSG%%kwRBPg9~K1v&L$z?MuW+{B7zLEFY2-+>! zrF@g^?jd+Z5ah+mJCnd#`|?6nk6Qd%k_WG_%m`+iLvT35Z5UEED>b%DaGeivO_SO- z`+W$#67fE&CSN{u&0i>KY#-oO4?1jrv4wmDG}HUEEOjq-2N1O@qm-_$RbVLPAnWd4 zKIN4UvDVA*K?BC!*t?uU55jKY!ovn^w%wv0ITzuTyK`pz;23v5_WUgjeQU`^tx%-R zPLl8=i>b%O2s|LQxfwgUKpuQQ!&mg`6=)<|??B14GLr!YdjjBDifEpKPrMQ#8Y;OO z?3+~-vT<6vxk>dq+^D&19#*o89;Acan!U61 zdlX79NlG4uNjc-@O$XqGZ*fbOnzGS-44tB--rCZ$v!DjyL9Q?Ip;)o=GQ?teWp9QG z+k=GA=OgDic9t~0iTXu{C}h~HcPX%P>C2#zIPb$(M)**Bd*Agu^s3c}?K$2$;cNq- zb$gpN{m2hU`ni`QdBRWaY%Ab3{2HwzZ4EzQN(=XFtZ_yk;MXe>*W+KW&JTy2)D(uJj>rT8dJVZB7mD)L5d5#%T^8G@tTeJ5lba`Yg z622zzGPbQRaxPM9k%hyhqJ{52ChpGuZm4p9kgY>_-Luix;V!zhC*5?&)*WTAmKffL zu-78K^6$?HmXoYH$dK8q9MWYwSu$1=)0OkNniJ}Ms+$|MzY%mrMwc(LYi(k$dTH$5 z*Cb0Ty$b5*Kgp|ECItCB#^x=BR?T0zZbE4COjSDuN(2L zoIp7vZw^8zuyWIj3gLsd#J(NlGbyx7N^@QHdX<_7?M$qhc%czug8Cen2SIq&C4KEW zq3?~j1{ng5nxKc`%tiqyki6_Arc6)b&#l?tJuX-8I8ZzB8~2t{8-OUU9QVYv2Wpb%{4SQ_d&mK&&)a=#XqJmJ@=F`d?Nkc=+6F$!rj zx2RrExXw+yhTj8DhwvPLR%UY6_4lLG$G6)EmMPv2qviuag6Pb)HM#ABVaz$<(!p?B)w+wJ8?b9{9k|{EzF!U; z&n=g&gczuG&O#po#Rt7B_g_CuAqV_~&T(8$Qv{Z+P8g6aEj33YO?ba;;Qs5NGl10P z+HlDI(u>E?WRRjkY}t1pQCzFCX=tXrSCmHu9I63mstf&8MJc(*(tEhS@#qCPmZec(|h zRk4oYv9@`I(8_Pj092g-1J^b_a0-I1sZ^QmW&p0#Q)DSd_iHovR5yQSE%lh|vvMp$ zo+tVLFYju1+q`w~|8o_^xd2ZTC6NSn&aDL5;;seS1W4L-z57YBNxxFOEO|8v1Ny5; zYA5z%isI+6Bj(YyVFL#nD? zf!lgM1+cDaZYQ59{lFyxRZs_z&fuz{oewQH;z%Ci;f4tC`l$-mL#&D_ zqplEowvZ1k&BeC8n|SevMht$cY%9_WN_2k@q4qc!Iy2m0*lsY0_{BY57L=J*7y=JW z->Z(gL1>AGcG;3^hy8wNGGi4@H@J+0yyA4_(1t_g#H&fjQE$l>xd9Q%X1M6II33I@NZnDqCNYrDPjLF>qdU z1GsSV>_^Y{y&-jeW_>3wxS`BpSXwX$Br|nwgCLCnh|iqg`TnJF_43H)*Qd4gVGJT+ z;`x=4a*JuCJ4=4gw@0{iheA78Rl9{t3ka#`icV}$x}53nkC{y+T`}}*ln240z|c}2 zgu;!xHu3N?Nh4eof&tPT6G~@YKaWATR;`54c*6Xdt!0fshbR;K=@VXo{LABsZpIByU^~ChMnuJ(CDvXxOSQFfhF-`1_XgH z^G1%|c^Saa^g&GD;%tUdS1u#9L5;78-%^?7fKz!C^L4zRi;`6;y&`uCYK+T7rK%eY zb4=sCr^O9*gfMgZw5V9YehjgrCN~JdN;6wR)O;n2UtJswInbZkP*2H&?1xbIK3tC> zT19`G-@z%&SRGl@R6-s0apXd=u80!q^awUaSY{G9Ek-aUfSD7}On(1l47=1_CuW4z z1D@JSv2AZkqQw}ZL^rikQ=IL73^h9e-#bIJQdek|zmXR!f9L#;CsO76x`Rddox~YH7&Cz(rRYK5Zu%pPoks&XQ=r})HOISdX%kT7`S2gO!YAEA)KHlIa?Ro(>|5Bk>x|URK{7qnpiFh$3 zOb(+a5{v;B3HAK|+R#?)eW6()x>k3EaPc{gAz^@-!>S>`z)8jq!;1*L-Y1ZLF;yf_X&@%DKU4?N@~eCd8Qy1IffkCrW`VzR%i zpknGuGK=T7ap@i?ex3YdSR4gn@?oX`U&b%Q0UPwa4YEP!PZ&k_*sc_tLYxUJ-;1Hejltbd!)q3iIf0!Sy3q-!PzdwB;5b-O569EWAE5DNrTyK-Uc|&5+LjUF?rtv$2$Y=E|C1&I5qv(U2E) zll>)AOdWjQ>#_|y?fd$sP!QJk+dSo5ewzJ(5YvG7qu%;1G|+J6_?CV3#aV7(C-Vx< z$Rs1T2Y2`>%~&; z_ZkBEsd8K+qI#?X=~n>M$*Yb}mgDNNp?s~;%z<)83f<7m7)mJXv zS&uGGtw;;dfFC?(CDuq1la^AkZ*Ka&IRZ+H2VinoJ&!^aeHnw^ji0Hd%XvLcls`3| z?-AeheSPAzcmP@)$h@2cfOw#$pjzpMA5edWE0UYRjU36y;t}$gCT7Kep51^2`W`_Y z-B9kB<^)4Fd04CMC`d27!G9v73ouYsjo4kp<^xZ+#|gql9~fxyEgW9hS{tuxML&?w znMS&DC4kOuI2+!e(9H2>hr9L!2Z(Xv@RiHioDA?ym`FP4j&9f?{`w)9S=)BeV3ER2?t=2qCIiQ(W+$vYq8_e+Z z)l>cQ{^9QUbo}!4?%sa=&-wc=AMbyAIzR9H?YsNi&l!@Z4-emNem!Q0em&loU!Q@z z{q(>8zQ6tSbkvt{?K$-?z2(6-_g_E%@`gW9U(_3)^UK5I-SM$L^=*IW_K)M+p74}E zl8^VVeM+%Q`vYGdzrOh3`f0x6vA4e;Z$3Z#{_%M8{xSdL)vy2I{?qrHPsiK$8LqGQ zcejt_aRniTN8}XOljAIREP} i|9SUE{n_33i(UV8G3=jzD(~n2|M?TGpG3qR@dyC_DYu{i diff --git a/data/leaves/tutorial4_init.xml b/data/leaves/tutorial4_init.xml index ce3d7d952d310bd6c88336bb7c2bce76cb701d56..b6137ce1e09b80472e47b3303a84a3e3dd9cf12f GIT binary patch literal 47851 zc$@$oK;pk2iwFP!000001MIy^liXIa=eh4sLDQblc|Y2!x;JC98f%-yo!-*2#FRuU zK4c`ND$S>#;|QDs1mlOy&~+us3UhnWb}JY{A|f1q{PBPM<$wP3!~0jiJ%0Z3?$gJ= zerG51-K)osKYV)o?&D8?{qFzykN@*^`R;%IkN@_U_m2-hzWVs^;qkBEegEr^U%vnF z`1$W&zW?9pS@i=DYv#-(J1?%P$X~+aLV; z_*wqf<$o`?@bLNbr+@tL>HVkA-@W?n;r(B~`^V4kzCM2UJ-_kGyZ`rbd0+c8w{QCT z_|LD~i+z543-9{j@%{Uczkb+W4Bqwe)7!`U-u33g!%xdw9NpEYU%$S8_wn%`@7{j> zxxa7cw%#o7eY5=(KYsfB_~q+QpC2DT!hhEOt=;0AFJC{ud;8><^Z3tSK7Ib$e#Q1X zw0A9Ued3)zeth%G=f@x4{d0M%+~5Rn|Iz~F;ir3Up#{$ye0MbTb_v6`@A}uU2BN$U zZ~u=cey8^jAO80C;m!NUk3Wqc!QvnN{oUhxd1l^x{keU$KYx1vc6oc)zpQ*SSC_`% zeE9s+23-oN|l;|KW)o_*`*$MSN-ixxSjvtm&ecV z=ET=N;=3Pz{P_6g%TpQP)BE=izkGRoGiQ}=|3>?^BYlUTKL7Ibr=K1_;*IfFx&Ak6 z%)pHk6clmeuyH5q$!!J+OW3AnI^Yz^?Z>|rDoiF3d z!-qGIKmPds*MB}&dB{8G>gK8PXT0gI5Bl4~NB_<5?{?ny&`Q+5KYV@i=aTn*8SlaS z`@54jJ^B2{_^

2^wpNO^Ptymtn`iP3E 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 diff --git a/data/leaves/tutorial5_init.xml b/data/leaves/tutorial5_init.xml index 076374b38c565819fb295585e7e64a1bbe5edd6e..7e839809de4d499427cfc598dc84cfff887b5e80 GIT binary patch literal 2230 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 - xmlFree(settings); - main_window->UserMessage(QString("Ready. Time is %1").arg(mesh.getTimeHours().c_str())); - + if (qApp->type()==QApplication::Tty) { + + xmlNode *settings; + mesh.XMLRead(leaffile, &settings); + + main_window->XMLReadSettings(settings); + xmlFree(settings); + main_window->UserMessage(QString("Ready. Time is %1").arg(mesh.getTimeHours().c_str())); + } else { + ((Main *)main_window)->readStateXML(leaffile); + } + } else { mesh.StandardInit(); } @@ -413,7 +418,7 @@ int main(int argc,char **argv) { // main_window->Init(leaffile); // Install model or read catalogue of models - ModelCatalogue model_catalogue(&mesh, useGUI?(Main *)main_window:0,modelfile); + ModelCatalogue model_catalogue(&mesh, main_window,modelfile); if (useGUI) diff --git a/src/VirtualLeafpar.tmpl b/src/VirtualLeafpar.tmpl --- a/src/VirtualLeafpar.tmpl +++ b/src/VirtualLeafpar.tmpl @@ -10,6 +10,13 @@ outlinewidth = 1.0 / double cell_outline_color = forestgreen / string resize_stride = 0 / int label = / label +label = Data Export / label +export_interval = 0 / int +export_fn_prefix = cell. / string +storage_stride = 10 / int +xml_storage_stride = 500 / int +datadir = . / directory +label = / label label = Cell mechanics / label T = 1.0 / double lambda_length = 100. / double @@ -80,12 +87,9 @@ label = / label label = Integration parameters / label dt = 0.1 / double rd_dt = 1.0 / double -datadir = . / directory movie = false / bool nit = 100000 / int maxt = 1000. / double -storage_stride = 10 / int -xml_storage_stride = 500 / int rseed = -1 / int #label = / label #label = Parameters for new chemical / label @@ -125,5 +129,3 @@ b3 = false / bool b4 = false / bool dir1 = . / directory dir2 = . / directory -export_interval = 0 / int -export_fn_prefix = cell. / string diff --git a/src/canvas.cpp b/src/canvas.cpp --- a/src/canvas.cpp +++ b/src/canvas.cpp @@ -645,6 +645,7 @@ void Main::savePars() Q3FileDialog *fd = new Q3FileDialog( this, "file dialog", TRUE ); fd->setMode( Q3FileDialog::AnyFile ); fd->setFilter( "Parameter files (*.par)"); + fd->setDir(par.datadir); QString fileName; if ( fd->exec() == QDialog::Accepted ) { @@ -664,6 +665,7 @@ void Main::readPars() Q3FileDialog *fd = new Q3FileDialog( this, "file dialog", TRUE ); fd->setMode( Q3FileDialog::ExistingFile ); fd->setFilter( "Parameter files (*.par)"); + fd->setDir(par.datadir); QString fileName; if ( fd->exec() == QDialog::Accepted ) { @@ -682,6 +684,7 @@ void Main::saveStateXML() Q3FileDialog *fd = new Q3FileDialog( this, "file dialog", TRUE ); fd->setMode( Q3FileDialog::AnyFile ); fd->setFilter( "LeafML files (*.xml)"); + fd->setDir(par.datadir); QString fileName; if ( fd->exec() == QDialog::Accepted ) { @@ -713,6 +716,7 @@ void Main::snapshot() stopSimulation(); Q3FileDialog *fd = new Q3FileDialog( this, "Save snapshot", TRUE ); + fd->setDir(par.datadir); fd->setMode( Q3FileDialog::AnyFile ); fd->setFilter( "Image files (*.pdf *.png *.jpg *.tif *.bpm)"); QString fileName; @@ -910,6 +914,43 @@ void Main::readFirstStateXML() } } +QDir Main::GetLeafDir(void) { + + QDir LeafDir(QApplication::applicationDirPath()); + QStringList plugin_filters; // filter for plugins, i.e "*.dll", "*.dylib" + + +#if defined(Q_OS_WIN) + if (LeafDir.dirName().toLower() =="debug" + ||LeafDir.dirName().toLower() =="release") + LeafDir.cdUp(); + //plugin_filters << "*.dll"; +#elif defined(Q_OS_MAC) + if (LeafDir.dirName() =="MacOS"){ + LeafDir.cdUp(); + LeafDir.cdUp(); + LeafDir.cdUp(); + } + +#endif + // for all OS-es. Move from "bin" directory to root application folder. + if (LeafDir.dirName() == "bin") { + LeafDir.cdUp(); + } + + LeafDir.cd("data/leaves"); + /* if (!LeafDir.cd("data/leaves")) { + QString status_message = QString("No directory data/leaves"); + statusBar()->showMessage(status_message); + + return LeafDir; + } + */ + return LeafDir; + +} + + void Main::readStateXML() { @@ -924,6 +965,8 @@ void Main::readStateXML() fd->setFilter( "LeafML files (*.xml)"); if (working_dir) { fd->setDir(*working_dir); + } else { + fd->setDir(par.datadir); } QString fileName; if ( fd->exec() == QDialog::Accepted ) { @@ -1395,8 +1438,6 @@ xmlNode *Main::XMLSettingsTree(void) } -#define QDEBUG - void Main::exportCellData(QString fileName) { #ifdef QDEBUG @@ -1407,6 +1448,7 @@ void Main::exportCellData(QString fileNa if ( file.open( IO_WriteOnly ) ) { QTextStream stream( &file ); mesh.CSVExportCellData(stream); + mesh.CSVExportWallData(stream); mesh.CSVExportMeshData(stream); file.close(); } @@ -1416,7 +1458,7 @@ void Main::exportCellData(QString fileNa void Main::exportCellData() { QString fileName; Q3FileDialog *fd = new Q3FileDialog( this, "file dialog", TRUE ); - + fd->setDir(par.datadir); stopSimulation(); fd->setMode( Q3FileDialog::AnyFile ); if ( fd->exec() == QDialog::Accepted ) { diff --git a/src/canvas.h b/src/canvas.h --- a/src/canvas.h +++ b/src/canvas.h @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -162,7 +163,8 @@ class Main : public Q3MainWindow, public void startSimulation(void); void stopSimulation(void); void RefreshInfoBar(void); - + int readStateXML(const char *filename, bool geometry = true, bool pars=true, bool simtime = true); + void EnterRotationMode(void) { @@ -199,8 +201,8 @@ class Main : public Q3MainWindow, public void aboutQt(); void newView(); void EditParameters(); + QDir GetLeafDir(void); void readStateXML(); - int readStateXML(const char *filename, bool geometry = true, bool pars=true, bool simtime = true); void readNextStateXML(); void readPrevStateXML(); void readFirstStateXML(); diff --git a/src/mesh.cpp b/src/mesh.cpp --- a/src/mesh.cpp +++ b/src/mesh.cpp @@ -2065,6 +2065,42 @@ void Mesh::CSVExportCellData(QTextStream } csv_stream << endl; } + + +} + + +// DataExport +void Mesh::CSVExportWallData(QTextStream &csv_stream) const { + + csv_stream << "\"Wall Index\",\"Cell A\",\"Cell B\",\"Length\""; + + for (int c=0;c::const_iterator i=walls.begin(); + i!=walls.end(); + i++) { + csv_stream << (*i)->Index() << "," + << (*i)->C1()->Index() << "," + << (*i)->C2()->Index() << "," + << (*i)->Length(); + + for (int c=0;cTransporters1(c); + } + for (int c=0;cTransporters2(c); + } + + csv_stream << endl; + } + + } diff --git a/src/mesh.h b/src/mesh.h --- a/src/mesh.h +++ b/src/mesh.h @@ -388,6 +388,7 @@ class Mesh { void StandardInit(void); double Compactness(double *res_compactness=0, double *res_area=0, double *res_cell_area=0, double *hull_circumference=0); void CSVExportCellData(QTextStream &csv_stream) const; + void CSVExportWallData(QTextStream &csv_stream) const; void CSVExportMeshData(QTextStream &csv_stream); Node* findNextBoundaryNode(Node*); diff --git a/src/modelcatalogue.cpp b/src/modelcatalogue.cpp --- a/src/modelcatalogue.cpp +++ b/src/modelcatalogue.cpp @@ -25,7 +25,7 @@ static const std::string _module_id("$Id$"); -ModelCatalogue::ModelCatalogue(Mesh *_mesh, Main *_mainwin, const char *model=0) { +ModelCatalogue::ModelCatalogue(Mesh *_mesh, MainBase *_mainwin, const char *model=0) { mesh = _mesh; mainwin = _mainwin; if (model) { @@ -126,14 +126,14 @@ void ModelCatalogue::InstallFirstModel() } void ModelCatalogue::PopulateModelMenu() { foreach (SimPluginInterface *model, models) { - QAction *modelaction = new QAction(model->ModelID(), mainwin); + QAction *modelaction = new QAction(model->ModelID(), (Main *)mainwin); QVariant data; data.setValue(model); modelaction->setData(data); - mainwin->modelmenu->addAction(modelaction); + ((Main *)mainwin)->modelmenu->addAction(modelaction); } - connect(mainwin->modelmenu, SIGNAL(triggered(QAction *)), this, SLOT(InstallModel(QAction *)) ); + connect(((Main *)mainwin)->modelmenu, SIGNAL(triggered(QAction *)), this, SLOT(InstallModel(QAction *)) ); } void ModelCatalogue::InstallModel(QAction *modelaction) { @@ -157,7 +157,10 @@ void ModelCatalogue::InstallModel(SimPlu plugin->SetParameters(&par); if (mainwin) { - mainwin->RefreshInfoBar(); + + if (!qApp->type()==QApplication::Tty) // only do this if we are running a GUI + ((Main *)mainwin)->RefreshInfoBar(); + if (plugin->DefaultLeafML().isEmpty()) { mainwin->Init(0); } else { diff --git a/src/modelcatalogue.h b/src/modelcatalogue.h --- a/src/modelcatalogue.h +++ b/src/modelcatalogue.h @@ -41,7 +41,7 @@ class ModelCatalogue : public QObject { Q_OBJECT public: - ModelCatalogue(Mesh *mesh, Main *mainwin, const char *model); + ModelCatalogue(Mesh *mesh, MainBase *mainwin, const char *model); void LoadPlugins(); void LoadPlugin(const char *model); @@ -54,7 +54,7 @@ class ModelCatalogue : public QObject { private: QVector models; Mesh *mesh; - Main *mainwin; + MainBase *mainwin; }; #endif diff --git a/src/parameter.cpp b/src/parameter.cpp --- a/src/parameter.cpp +++ b/src/parameter.cpp @@ -51,6 +51,12 @@ Parameter::Parameter() { outlinewidth = 1.0; cell_outline_color = strdup("forestgreen"); resize_stride = 0; + export_interval = 0; + export_fn_prefix = strdup("cell."); + storage_stride = 10; + xml_storage_stride = 500; + datadir = strdup("."); + datadir = AppendHomeDirIfPathRelative(datadir); T = 1.0; lambda_length = 100.; yielding_threshold = 4.; @@ -135,13 +141,9 @@ Parameter::Parameter() { k2van3 = 0.3; dt = 0.1; rd_dt = 1.0; - datadir = strdup("."); - datadir = AppendHomeDirIfPathRelative(datadir); movie = false; nit = 100000; maxt = 1000.; - storage_stride = 10; - xml_storage_stride = 500; rseed = -1; constituous_expansion_limit = 16; vessel_inh_level = 1; @@ -187,8 +189,6 @@ Parameter::Parameter() { b4 = false; dir1 = strdup("."); dir2 = strdup("."); - export_interval = 0; - export_fn_prefix = strdup("cell."); } Parameter::~Parameter() { @@ -205,12 +205,14 @@ void Parameter::CleanUp(void) { free(textcolor); if (cell_outline_color) free(cell_outline_color); + if (export_fn_prefix) + free(export_fn_prefix); + if (datadir) + free(datadir); if (D) free(D); if (initval) free(initval); - if (datadir) - free(datadir); if (k) free(k); if (s1) @@ -223,8 +225,6 @@ void Parameter::CleanUp(void) { free(dir1); if (dir2) free(dir2); - if (export_fn_prefix) - free(export_fn_prefix); } @@ -252,6 +252,14 @@ void Parameter::Read(const char *filenam outlinewidth = fgetpar(fp, "outlinewidth", 1.0, true); cell_outline_color = sgetpar(fp, "cell_outline_color", "forestgreen", true); resize_stride = igetpar(fp, "resize_stride", 0, true); + export_interval = igetpar(fp, "export_interval", 0, true); + export_fn_prefix = sgetpar(fp, "export_fn_prefix", "cell.", true); + storage_stride = igetpar(fp, "storage_stride", 10, true); + xml_storage_stride = igetpar(fp, "xml_storage_stride", 500, true); + datadir = sgetpar(fp, "datadir", ".", true); + datadir = AppendHomeDirIfPathRelative(datadir); + if (strcmp(datadir, ".")) + MakeDir(datadir); T = fgetpar(fp, "T", 1.0, true); lambda_length = fgetpar(fp, "lambda_length", 100., true); yielding_threshold = fgetpar(fp, "yielding_threshold", 4., true); @@ -306,15 +314,9 @@ void Parameter::Read(const char *filenam k2van3 = fgetpar(fp, "k2van3", 0.3, true); dt = fgetpar(fp, "dt", 0.1, true); rd_dt = fgetpar(fp, "rd_dt", 1.0, true); - datadir = sgetpar(fp, "datadir", ".", true); - datadir = AppendHomeDirIfPathRelative(datadir); - if (strcmp(datadir, ".")) - MakeDir(datadir); movie = bgetpar(fp, "movie", false, true); nit = igetpar(fp, "nit", 100000, true); maxt = fgetpar(fp, "maxt", 1000., true); - storage_stride = igetpar(fp, "storage_stride", 10, true); - xml_storage_stride = igetpar(fp, "xml_storage_stride", 500, true); rseed = igetpar(fp, "rseed", -1, true); constituous_expansion_limit = igetpar(fp, "constituous_expansion_limit", 16, true); vessel_inh_level = fgetpar(fp, "vessel_inh_level", 1, true); @@ -349,8 +351,6 @@ void Parameter::Read(const char *filenam dir2 = sgetpar(fp, "dir2", ".", true); if (strcmp(dir2, ".")) MakeDir(dir2); - export_interval = igetpar(fp, "export_interval", 0, true); - export_fn_prefix = sgetpar(fp, "export_fn_prefix", "cell.", true); } const char *sbool(const bool &p) { @@ -380,6 +380,19 @@ void Parameter::Write(ostream &os) const if (cell_outline_color) os << " cell_outline_color = " << cell_outline_color << endl; os << " resize_stride = " << resize_stride << endl; + os << " export_interval = " << export_interval << endl; + + if (export_fn_prefix) + os << " export_fn_prefix = " << export_fn_prefix << endl; + os << " storage_stride = " << storage_stride << endl; + os << " xml_storage_stride = " << xml_storage_stride << endl; + if (datadir) { + QDir dataDir = QDir::home().relativeFilePath(datadir); + os << " datadir = " << dataDir.dirName().toStdString() << endl; + } + else { + os << "datadir = ." << endl; + } os << " T = " << T << endl; os << " lambda_length = " << lambda_length << endl; os << " yielding_threshold = " << yielding_threshold << endl; @@ -434,18 +447,9 @@ void Parameter::Write(ostream &os) const os << " k2van3 = " << k2van3 << endl; os << " dt = " << dt << endl; os << " rd_dt = " << rd_dt << endl; - if (datadir) { - QDir dataDir = QDir::home().relativeFilePath(datadir); - os << " datadir = " << dataDir.dirName().toStdString() << endl; - } - else { - os << "datadir = ." << endl; - } os << " movie = " << sbool(movie) << endl; os << " nit = " << nit << endl; os << " maxt = " << maxt << endl; - os << " storage_stride = " << storage_stride << endl; - os << " xml_storage_stride = " << xml_storage_stride << endl; os << " rseed = " << rseed << endl; os << " constituous_expansion_limit = " << constituous_expansion_limit << endl; os << " vessel_inh_level = " << vessel_inh_level << endl; @@ -486,10 +490,6 @@ void Parameter::Write(ostream &os) const if (dir2) os << " dir2 = " << dir2 << endl; - os << " export_interval = " << export_interval << endl; - - if (export_fn_prefix) - os << " export_fn_prefix = " << export_fn_prefix << endl; } void Parameter::XMLAdd(xmlNode *root) const { @@ -565,6 +565,47 @@ xmlNewProp(xmlpar, BAD_CAST "val", BAD_C } { xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL); + xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "export_interval" ); + ostringstream text; + text << export_interval; +xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str()); +} +{ + xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL); + xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "export_fn_prefix" ); + ostringstream text; + + if (export_fn_prefix) + text << export_fn_prefix; +xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str()); +} +{ + xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL); + xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "storage_stride" ); + ostringstream text; + text << storage_stride; +xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str()); +} +{ + xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL); + xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "xml_storage_stride" ); + ostringstream text; + text << xml_storage_stride; +xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str()); +} +{ + xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL); + xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "datadir" ); + ostringstream text; + + if (datadir) { + QDir dataDir = QDir::home().relativeFilePath(datadir); + text << dataDir.dirName().toStdString(); + } +xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str()); +} +{ + xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL); xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "T" ); ostringstream text; text << T; @@ -1119,17 +1160,6 @@ xmlNewProp(xmlpar, BAD_CAST "val", BAD_C } { xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL); - xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "datadir" ); - ostringstream text; - - if (datadir) { - QDir dataDir = QDir::home().relativeFilePath(datadir); - text << dataDir.dirName().toStdString(); - } -xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str()); -} -{ - xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL); xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "movie" ); ostringstream text; text << sbool(movie); @@ -1151,20 +1181,6 @@ xmlNewProp(xmlpar, BAD_CAST "val", BAD_C } { xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL); - xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "storage_stride" ); - ostringstream text; - text << storage_stride; -xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str()); -} -{ - xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL); - xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "xml_storage_stride" ); - ostringstream text; - text << xml_storage_stride; -xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str()); -} -{ - xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL); xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "rseed" ); ostringstream text; text << rseed; @@ -1471,22 +1487,6 @@ xmlNewProp(xmlpar, BAD_CAST "val", BAD_C text << dir2; xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str()); } -{ - xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL); - xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "export_interval" ); - ostringstream text; - text << export_interval; -xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str()); -} -{ - xmlNode *xmlpar = xmlNewChild(xmlparameter, NULL, BAD_CAST "par", NULL); - xmlNewProp(xmlpar, BAD_CAST "name", BAD_CAST "export_fn_prefix" ); - ostringstream text; - - if (export_fn_prefix) - text << export_fn_prefix; -xmlNewProp(xmlpar, BAD_CAST "val", BAD_CAST text.str().c_str()); -} } void Parameter::AssignValToPar(const char *namec, const char *valc) { QLocale standardlocale(QLocale::C); @@ -1527,6 +1527,27 @@ if (!strcmp(namec, "resize_stride")) { resize_stride = standardlocale.toInt(valc, &ok); if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'resize_stride' from XML file.",valc); } } +if (!strcmp(namec, "export_interval")) { + export_interval = standardlocale.toInt(valc, &ok); + if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'export_interval' from XML file.",valc); } +} +if (!strcmp(namec, "export_fn_prefix")) { + if (export_fn_prefix) { free(export_fn_prefix); } + export_fn_prefix=strdup(valc); +} +if (!strcmp(namec, "storage_stride")) { + storage_stride = standardlocale.toInt(valc, &ok); + if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'storage_stride' from XML file.",valc); } +} +if (!strcmp(namec, "xml_storage_stride")) { + xml_storage_stride = standardlocale.toInt(valc, &ok); + if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'xml_storage_stride' from XML file.",valc); } +} +if (!strcmp(namec, "datadir")) { + if (datadir) { free(datadir); } + datadir=strdup(valc); + datadir = AppendHomeDirIfPathRelative(datadir); +} if (!strcmp(namec, "T")) { T = standardlocale.toDouble(valc, &ok); if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'T' from XML file.",valc); } @@ -1733,11 +1754,6 @@ if (!strcmp(namec, "rd_dt")) { rd_dt = standardlocale.toDouble(valc, &ok); if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'rd_dt' from XML file.",valc); } } -if (!strcmp(namec, "datadir")) { - if (datadir) { free(datadir); } - datadir=strdup(valc); - datadir = AppendHomeDirIfPathRelative(datadir); -} if (!strcmp(namec, "movie")) { movie = strtobool(valc); } @@ -1749,14 +1765,6 @@ if (!strcmp(namec, "maxt")) { maxt = standardlocale.toDouble(valc, &ok); if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to double while reading parameter 'maxt' from XML file.",valc); } } -if (!strcmp(namec, "storage_stride")) { - storage_stride = standardlocale.toInt(valc, &ok); - if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'storage_stride' from XML file.",valc); } -} -if (!strcmp(namec, "xml_storage_stride")) { - xml_storage_stride = standardlocale.toInt(valc, &ok); - if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'xml_storage_stride' from XML file.",valc); } -} if (!strcmp(namec, "rseed")) { rseed = standardlocale.toInt(valc, &ok); if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'rseed' from XML file.",valc); } @@ -1869,14 +1877,6 @@ if (!strcmp(namec, "dir2")) { if (dir2) { free(dir2); } dir2=strdup(valc); } -if (!strcmp(namec, "export_interval")) { - export_interval = standardlocale.toInt(valc, &ok); - if (!ok) { MyWarning::error("Read error: cannot convert string \"%s\" to integer while reading parameter 'export_interval' from XML file.",valc); } -} -if (!strcmp(namec, "export_fn_prefix")) { - if (export_fn_prefix) { free(export_fn_prefix); } - export_fn_prefix=strdup(valc); -} } void Parameter::AssignValArrayToPar(const char *namec, vector valarray) { if (!strcmp(namec, "D")) { diff --git a/src/parameter.h b/src/parameter.h --- a/src/parameter.h +++ b/src/parameter.h @@ -53,6 +53,11 @@ double outlinewidth; char * cell_outline_color; int resize_stride; + int export_interval; + char * export_fn_prefix; + int storage_stride; + int xml_storage_stride; + char * datadir; double T; double lambda_length; double yielding_threshold; @@ -107,12 +112,9 @@ double k2van3; double dt; double rd_dt; - char * datadir; bool movie; int nit; double maxt; - int storage_stride; - int xml_storage_stride; int rseed; int constituous_expansion_limit; double vessel_inh_level; @@ -143,8 +145,6 @@ bool b4; char * dir1; char * dir2; - int export_interval; - char * export_fn_prefix; private: }; diff --git a/src/pardialog.cpp b/src/pardialog.cpp --- a/src/pardialog.cpp +++ b/src/pardialog.cpp @@ -43,6 +43,11 @@ ParameterDialog::ParameterDialog(QWidget outlinewidth_edit = new QLineEdit( QString("%1").arg(par.outlinewidth), this, "outlinewidth_edit" ); cell_outline_color_edit = new QLineEdit( QString("%1").arg(par.cell_outline_color), this, "cell_outline_color_edit" ); resize_stride_edit = new QLineEdit( QString("%1").arg(par.resize_stride), this, "resize_stride_edit" ); + export_interval_edit = new QLineEdit( QString("%1").arg(par.export_interval), this, "export_interval_edit" ); + export_fn_prefix_edit = new QLineEdit( QString("%1").arg(par.export_fn_prefix), this, "export_fn_prefix_edit" ); + storage_stride_edit = new QLineEdit( QString("%1").arg(par.storage_stride), this, "storage_stride_edit" ); + xml_storage_stride_edit = new QLineEdit( QString("%1").arg(par.xml_storage_stride), this, "xml_storage_stride_edit" ); + datadir_edit = new QLineEdit( QString("%1").arg(par.datadir), this, "datadir_edit" ); T_edit = new QLineEdit( QString("%1").arg(par.T), this, "T_edit" ); lambda_length_edit = new QLineEdit( QString("%1").arg(par.lambda_length), this, "lambda_length_edit" ); yielding_threshold_edit = new QLineEdit( QString("%1").arg(par.yielding_threshold), this, "yielding_threshold_edit" ); @@ -101,12 +106,9 @@ ParameterDialog::ParameterDialog(QWidget k2van3_edit = new QLineEdit( QString("%1").arg(par.k2van3), this, "k2van3_edit" ); dt_edit = new QLineEdit( QString("%1").arg(par.dt), this, "dt_edit" ); rd_dt_edit = new QLineEdit( QString("%1").arg(par.rd_dt), this, "rd_dt_edit" ); - datadir_edit = new QLineEdit( QString("%1").arg(par.datadir), this, "datadir_edit" ); movie_edit = new QLineEdit( QString("%1").arg(sbool(par.movie)), this, "movie_edit" ); nit_edit = new QLineEdit( QString("%1").arg(par.nit), this, "nit_edit" ); maxt_edit = new QLineEdit( QString("%1").arg(par.maxt), this, "maxt_edit" ); - storage_stride_edit = new QLineEdit( QString("%1").arg(par.storage_stride), this, "storage_stride_edit" ); - xml_storage_stride_edit = new QLineEdit( QString("%1").arg(par.xml_storage_stride), this, "xml_storage_stride_edit" ); rseed_edit = new QLineEdit( QString("%1").arg(par.rseed), this, "rseed_edit" ); constituous_expansion_limit_edit = new QLineEdit( QString("%1").arg(par.constituous_expansion_limit), this, "constituous_expansion_limit_edit" ); vessel_inh_level_edit = new QLineEdit( QString("%1").arg(par.vessel_inh_level), this, "vessel_inh_level_edit" ); @@ -139,8 +141,6 @@ ParameterDialog::ParameterDialog(QWidget b4_edit = new QLineEdit( QString("%1").arg(sbool(par.b4)), this, "b4_edit" ); dir1_edit = new QLineEdit( QString("%1").arg(par.dir1), this, "dir1_edit" ); dir2_edit = new QLineEdit( QString("%1").arg(par.dir2), this, "dir2_edit" ); - export_interval_edit = new QLineEdit( QString("%1").arg(par.export_interval), this, "export_interval_edit" ); - export_fn_prefix_edit = new QLineEdit( QString("%1").arg(par.export_fn_prefix), this, "export_fn_prefix_edit" ); // make a 1x1 grid; it will auto-expand QGridLayout *grid = new QGridLayout( this, 1, 1 ); @@ -168,199 +168,201 @@ QGridLayout *grid = new QGridLayout( thi grid->addWidget( new QLabel( "resize_stride", this ),12, 0 ); grid->addWidget( resize_stride_edit, 12, 0+1 ); grid->addWidget( new QLabel( "", this), 13, 0, 1, 2 ); - grid->addWidget( new QLabel( " Cell mechanics", this), 14, 0, 1, 2 ); - grid->addWidget( new QLabel( "T", this ),15, 0 ); - grid->addWidget( T_edit, 15, 0+1 ); - grid->addWidget( new QLabel( "lambda_length", this ),16, 0 ); - grid->addWidget( lambda_length_edit, 16, 0+1 ); - grid->addWidget( new QLabel( "yielding_threshold", this ),17, 0 ); - grid->addWidget( yielding_threshold_edit, 17, 0+1 ); - grid->addWidget( new QLabel( "lambda_celllength", this ),18, 0 ); - grid->addWidget( lambda_celllength_edit, 18, 0+1 ); - grid->addWidget( new QLabel( "target_length", this ),19, 0 ); - grid->addWidget( target_length_edit, 19, 0+1 ); - grid->addWidget( new QLabel( "cell_expansion_rate", this ),20, 0 ); - grid->addWidget( cell_expansion_rate_edit, 20, 0+1 ); - grid->addWidget( new QLabel( "cell_div_expansion_rate", this ),21, 0 ); - grid->addWidget( cell_div_expansion_rate_edit, 21, 0+1 ); - grid->addWidget( new QLabel( "auxin_dependent_growth", this ),22, 0 ); - grid->addWidget( auxin_dependent_growth_edit, 22, 0+1 ); - grid->addWidget( new QLabel( "ode_accuracy", this ),23, 0 ); - grid->addWidget( ode_accuracy_edit, 23, 0+1 ); - grid->addWidget( new QLabel( "mc_stepsize", this ),24, 0 ); - grid->addWidget( mc_stepsize_edit, 24, 0+1 ); - grid->addWidget( new QLabel( "mc_cell_stepsize", this ),25, 0 ); - grid->addWidget( mc_cell_stepsize_edit, 25, 0+1 ); - grid->addWidget( new QLabel( "energy_threshold", this ),26, 0 ); - grid->addWidget( energy_threshold_edit, 26, 0+1 ); - grid->addWidget( new QLabel( "bend_lambda", this ),27, 0 ); - grid->addWidget( bend_lambda_edit, 27, 0+1 ); - grid->addWidget( new QLabel( "alignment_lambda", this ),28, 0 ); - grid->addWidget( alignment_lambda_edit, 28, 0+1 ); - grid->addWidget( new QLabel( "rel_cell_div_threshold", this ),29, 0 ); - grid->addWidget( rel_cell_div_threshold_edit, 29, 0+1 ); - grid->addWidget( new QLabel( "rel_perimeter_stiffness", this ),3, 2 ); - grid->addWidget( rel_perimeter_stiffness_edit, 3, 2+1 ); - grid->addWidget( new QLabel( "collapse_node_threshold", this ),4, 2 ); - grid->addWidget( collapse_node_threshold_edit, 4, 2+1 ); - grid->addWidget( new QLabel( "morphogen_div_threshold", this ),5, 2 ); - grid->addWidget( morphogen_div_threshold_edit, 5, 2+1 ); - grid->addWidget( new QLabel( "morphogen_expansion_threshold", this ),6, 2 ); - grid->addWidget( morphogen_expansion_threshold_edit, 6, 2+1 ); - grid->addWidget( new QLabel( "copy_wall", this ),7, 2 ); - grid->addWidget( copy_wall_edit, 7, 2+1 ); - grid->addWidget( new QLabel( "", this), 8, 2, 1, 2 ); - grid->addWidget( new QLabel( " Auxin transport and PIN1 dynamics", this), 9, 2, 1, 2 ); - grid->addWidget( new QLabel( "source", this ),10, 2 ); - grid->addWidget( source_edit, 10, 2+1 ); - grid->addWidget( new QLabel( "D", this ),11, 2 ); - grid->addWidget( D_edit, 11, 2+1 ); - grid->addWidget( new QLabel( "initval", this ),12, 2 ); - grid->addWidget( initval_edit, 12, 2+1 ); - grid->addWidget( new QLabel( "k1", this ),13, 2 ); - grid->addWidget( k1_edit, 13, 2+1 ); - grid->addWidget( new QLabel( "k2", this ),14, 2 ); - grid->addWidget( k2_edit, 14, 2+1 ); - grid->addWidget( new QLabel( "r", this ),15, 2 ); - grid->addWidget( r_edit, 15, 2+1 ); - grid->addWidget( new QLabel( "kr", this ),16, 2 ); - grid->addWidget( kr_edit, 16, 2+1 ); - grid->addWidget( new QLabel( "km", this ),17, 2 ); - grid->addWidget( km_edit, 17, 2+1 ); - grid->addWidget( new QLabel( "Pi_tot", this ),18, 2 ); - grid->addWidget( Pi_tot_edit, 18, 2+1 ); - grid->addWidget( new QLabel( "transport", this ),19, 2 ); - grid->addWidget( transport_edit, 19, 2+1 ); - grid->addWidget( new QLabel( "ka", this ),20, 2 ); - grid->addWidget( ka_edit, 20, 2+1 ); - grid->addWidget( new QLabel( "pin_prod", this ),21, 2 ); - grid->addWidget( pin_prod_edit, 21, 2+1 ); - grid->addWidget( new QLabel( "pin_prod_in_epidermis", this ),22, 2 ); - grid->addWidget( pin_prod_in_epidermis_edit, 22, 2+1 ); - grid->addWidget( new QLabel( "pin_breakdown", this ),23, 2 ); - grid->addWidget( pin_breakdown_edit, 23, 2+1 ); - grid->addWidget( new QLabel( "pin_breakdown_internal", this ),24, 2 ); - grid->addWidget( pin_breakdown_internal_edit, 24, 2+1 ); - grid->addWidget( new QLabel( "aux1prod", this ),25, 2 ); - grid->addWidget( aux1prod_edit, 25, 2+1 ); - grid->addWidget( new QLabel( "aux1prodmeso", this ),26, 2 ); - grid->addWidget( aux1prodmeso_edit, 26, 2+1 ); - grid->addWidget( new QLabel( "aux1decay", this ),27, 2 ); - grid->addWidget( aux1decay_edit, 27, 2+1 ); - grid->addWidget( new QLabel( "aux1decaymeso", this ),28, 2 ); - grid->addWidget( aux1decaymeso_edit, 28, 2+1 ); - grid->addWidget( new QLabel( "aux1transport", this ),29, 2 ); - grid->addWidget( aux1transport_edit, 29, 2+1 ); - grid->addWidget( new QLabel( "aux_cons", this ),3, 4 ); - grid->addWidget( aux_cons_edit, 3, 4+1 ); - grid->addWidget( new QLabel( "aux_breakdown", this ),4, 4 ); - grid->addWidget( aux_breakdown_edit, 4, 4+1 ); - grid->addWidget( new QLabel( "kaux1", this ),5, 4 ); - grid->addWidget( kaux1_edit, 5, 4+1 ); - grid->addWidget( new QLabel( "kap", this ),6, 4 ); - grid->addWidget( kap_edit, 6, 4+1 ); - grid->addWidget( new QLabel( "leaf_tip_source", this ),7, 4 ); - grid->addWidget( leaf_tip_source_edit, 7, 4+1 ); - grid->addWidget( new QLabel( "sam_efflux", this ),8, 4 ); - grid->addWidget( sam_efflux_edit, 8, 4+1 ); - grid->addWidget( new QLabel( "sam_auxin", this ),9, 4 ); - grid->addWidget( sam_auxin_edit, 9, 4+1 ); - grid->addWidget( new QLabel( "sam_auxin_breakdown", this ),10, 4 ); - grid->addWidget( sam_auxin_breakdown_edit, 10, 4+1 ); - grid->addWidget( new QLabel( "van3prod", this ),11, 4 ); - grid->addWidget( van3prod_edit, 11, 4+1 ); - grid->addWidget( new QLabel( "van3autokat", this ),12, 4 ); - grid->addWidget( van3autokat_edit, 12, 4+1 ); - grid->addWidget( new QLabel( "van3sat", this ),13, 4 ); - grid->addWidget( van3sat_edit, 13, 4+1 ); - grid->addWidget( new QLabel( "k2van3", this ),14, 4 ); - grid->addWidget( k2van3_edit, 14, 4+1 ); - grid->addWidget( new QLabel( "", this), 15, 4, 1, 2 ); - grid->addWidget( new QLabel( " Integration parameters", this), 16, 4, 1, 2 ); - grid->addWidget( new QLabel( "dt", this ),17, 4 ); - grid->addWidget( dt_edit, 17, 4+1 ); - grid->addWidget( new QLabel( "rd_dt", this ),18, 4 ); - grid->addWidget( rd_dt_edit, 18, 4+1 ); - grid->addWidget( new QLabel( "datadir", this ),19, 4 ); - grid->addWidget( datadir_edit, 19, 4+1 ); - grid->addWidget( new QLabel( "movie", this ),20, 4 ); - grid->addWidget( movie_edit, 20, 4+1 ); - grid->addWidget( new QLabel( "nit", this ),21, 4 ); - grid->addWidget( nit_edit, 21, 4+1 ); - grid->addWidget( new QLabel( "maxt", this ),22, 4 ); - grid->addWidget( maxt_edit, 22, 4+1 ); - grid->addWidget( new QLabel( "storage_stride", this ),23, 4 ); - grid->addWidget( storage_stride_edit, 23, 4+1 ); - grid->addWidget( new QLabel( "xml_storage_stride", this ),24, 4 ); - grid->addWidget( xml_storage_stride_edit, 24, 4+1 ); - grid->addWidget( new QLabel( "rseed", this ),25, 4 ); - grid->addWidget( rseed_edit, 25, 4+1 ); - grid->addWidget( new QLabel( "", this), 26, 4, 1, 2 ); - grid->addWidget( new QLabel( " Meinhardt leaf venation model", this), 27, 4, 1, 2 ); - grid->addWidget( new QLabel( "constituous_expansion_limit", this ),28, 4 ); - grid->addWidget( constituous_expansion_limit_edit, 28, 4+1 ); - grid->addWidget( new QLabel( "vessel_inh_level", this ),29, 4 ); - grid->addWidget( vessel_inh_level_edit, 29, 4+1 ); - grid->addWidget( new QLabel( "vessel_expansion_rate", this ),3, 6 ); - grid->addWidget( vessel_expansion_rate_edit, 3, 6+1 ); - grid->addWidget( new QLabel( "d", this ),4, 6 ); - grid->addWidget( d_edit, 4, 6+1 ); - grid->addWidget( new QLabel( "e", this ),5, 6 ); - grid->addWidget( e_edit, 5, 6+1 ); - grid->addWidget( new QLabel( "f", this ),6, 6 ); - grid->addWidget( f_edit, 6, 6+1 ); - grid->addWidget( new QLabel( "c", this ),7, 6 ); - grid->addWidget( c_edit, 7, 6+1 ); - grid->addWidget( new QLabel( "mu", this ),8, 6 ); - grid->addWidget( mu_edit, 8, 6+1 ); - grid->addWidget( new QLabel( "nu", this ),9, 6 ); - grid->addWidget( nu_edit, 9, 6+1 ); - grid->addWidget( new QLabel( "rho0", this ),10, 6 ); - grid->addWidget( rho0_edit, 10, 6+1 ); - grid->addWidget( new QLabel( "rho1", this ),11, 6 ); - grid->addWidget( rho1_edit, 11, 6+1 ); - grid->addWidget( new QLabel( "c0", this ),12, 6 ); - grid->addWidget( c0_edit, 12, 6+1 ); - grid->addWidget( new QLabel( "gamma", this ),13, 6 ); - grid->addWidget( gamma_edit, 13, 6+1 ); - grid->addWidget( new QLabel( "eps", this ),14, 6 ); - grid->addWidget( eps_edit, 14, 6+1 ); - grid->addWidget( new QLabel( "", this), 15, 6, 1, 2 ); - grid->addWidget( new QLabel( " User-defined parameters", this), 16, 6, 1, 2 ); - grid->addWidget( new QLabel( "k", this ),17, 6 ); - grid->addWidget( k_edit, 17, 6+1 ); - grid->addWidget( new QLabel( "i1", this ),18, 6 ); - grid->addWidget( i1_edit, 18, 6+1 ); - grid->addWidget( new QLabel( "i2", this ),19, 6 ); - grid->addWidget( i2_edit, 19, 6+1 ); - grid->addWidget( new QLabel( "i3", this ),20, 6 ); - grid->addWidget( i3_edit, 20, 6+1 ); - grid->addWidget( new QLabel( "i4", this ),21, 6 ); - grid->addWidget( i4_edit, 21, 6+1 ); - grid->addWidget( new QLabel( "i5", this ),22, 6 ); - grid->addWidget( i5_edit, 22, 6+1 ); - grid->addWidget( new QLabel( "s1", this ),23, 6 ); - grid->addWidget( s1_edit, 23, 6+1 ); - grid->addWidget( new QLabel( "s2", this ),24, 6 ); - grid->addWidget( s2_edit, 24, 6+1 ); - grid->addWidget( new QLabel( "s3", this ),25, 6 ); - grid->addWidget( s3_edit, 25, 6+1 ); - grid->addWidget( new QLabel( "b1", this ),26, 6 ); - grid->addWidget( b1_edit, 26, 6+1 ); - grid->addWidget( new QLabel( "b2", this ),27, 6 ); - grid->addWidget( b2_edit, 27, 6+1 ); - grid->addWidget( new QLabel( "b3", this ),28, 6 ); - grid->addWidget( b3_edit, 28, 6+1 ); - grid->addWidget( new QLabel( "b4", this ),29, 6 ); - grid->addWidget( b4_edit, 29, 6+1 ); - grid->addWidget( new QLabel( "dir1", this ),3, 8 ); - grid->addWidget( dir1_edit, 3, 8+1 ); - grid->addWidget( new QLabel( "dir2", this ),4, 8 ); - grid->addWidget( dir2_edit, 4, 8+1 ); - grid->addWidget( new QLabel( "export_interval", this ),5, 8 ); - grid->addWidget( export_interval_edit, 5, 8+1 ); - grid->addWidget( new QLabel( "export_fn_prefix", this ),6, 8 ); - grid->addWidget( export_fn_prefix_edit, 6, 8+1 ); + grid->addWidget( new QLabel( " Data Export", this), 14, 0, 1, 2 ); + grid->addWidget( new QLabel( "export_interval", this ),15, 0 ); + grid->addWidget( export_interval_edit, 15, 0+1 ); + grid->addWidget( new QLabel( "export_fn_prefix", this ),16, 0 ); + grid->addWidget( export_fn_prefix_edit, 16, 0+1 ); + grid->addWidget( new QLabel( "storage_stride", this ),17, 0 ); + grid->addWidget( storage_stride_edit, 17, 0+1 ); + grid->addWidget( new QLabel( "xml_storage_stride", this ),18, 0 ); + grid->addWidget( xml_storage_stride_edit, 18, 0+1 ); + grid->addWidget( new QLabel( "datadir", this ),19, 0 ); + grid->addWidget( datadir_edit, 19, 0+1 ); + grid->addWidget( new QLabel( "", this), 20, 0, 1, 2 ); + grid->addWidget( new QLabel( " Cell mechanics", this), 21, 0, 1, 2 ); + grid->addWidget( new QLabel( "T", this ),22, 0 ); + grid->addWidget( T_edit, 22, 0+1 ); + grid->addWidget( new QLabel( "lambda_length", this ),23, 0 ); + grid->addWidget( lambda_length_edit, 23, 0+1 ); + grid->addWidget( new QLabel( "yielding_threshold", this ),24, 0 ); + grid->addWidget( yielding_threshold_edit, 24, 0+1 ); + grid->addWidget( new QLabel( "lambda_celllength", this ),25, 0 ); + grid->addWidget( lambda_celllength_edit, 25, 0+1 ); + grid->addWidget( new QLabel( "target_length", this ),26, 0 ); + grid->addWidget( target_length_edit, 26, 0+1 ); + grid->addWidget( new QLabel( "cell_expansion_rate", this ),27, 0 ); + grid->addWidget( cell_expansion_rate_edit, 27, 0+1 ); + grid->addWidget( new QLabel( "cell_div_expansion_rate", this ),28, 0 ); + grid->addWidget( cell_div_expansion_rate_edit, 28, 0+1 ); + grid->addWidget( new QLabel( "auxin_dependent_growth", this ),29, 0 ); + grid->addWidget( auxin_dependent_growth_edit, 29, 0+1 ); + grid->addWidget( new QLabel( "ode_accuracy", this ),3, 2 ); + grid->addWidget( ode_accuracy_edit, 3, 2+1 ); + grid->addWidget( new QLabel( "mc_stepsize", this ),4, 2 ); + grid->addWidget( mc_stepsize_edit, 4, 2+1 ); + grid->addWidget( new QLabel( "mc_cell_stepsize", this ),5, 2 ); + grid->addWidget( mc_cell_stepsize_edit, 5, 2+1 ); + grid->addWidget( new QLabel( "energy_threshold", this ),6, 2 ); + grid->addWidget( energy_threshold_edit, 6, 2+1 ); + grid->addWidget( new QLabel( "bend_lambda", this ),7, 2 ); + grid->addWidget( bend_lambda_edit, 7, 2+1 ); + grid->addWidget( new QLabel( "alignment_lambda", this ),8, 2 ); + grid->addWidget( alignment_lambda_edit, 8, 2+1 ); + grid->addWidget( new QLabel( "rel_cell_div_threshold", this ),9, 2 ); + grid->addWidget( rel_cell_div_threshold_edit, 9, 2+1 ); + grid->addWidget( new QLabel( "rel_perimeter_stiffness", this ),10, 2 ); + grid->addWidget( rel_perimeter_stiffness_edit, 10, 2+1 ); + grid->addWidget( new QLabel( "collapse_node_threshold", this ),11, 2 ); + grid->addWidget( collapse_node_threshold_edit, 11, 2+1 ); + grid->addWidget( new QLabel( "morphogen_div_threshold", this ),12, 2 ); + grid->addWidget( morphogen_div_threshold_edit, 12, 2+1 ); + grid->addWidget( new QLabel( "morphogen_expansion_threshold", this ),13, 2 ); + grid->addWidget( morphogen_expansion_threshold_edit, 13, 2+1 ); + grid->addWidget( new QLabel( "copy_wall", this ),14, 2 ); + grid->addWidget( copy_wall_edit, 14, 2+1 ); + grid->addWidget( new QLabel( "", this), 15, 2, 1, 2 ); + grid->addWidget( new QLabel( " Auxin transport and PIN1 dynamics", this), 16, 2, 1, 2 ); + grid->addWidget( new QLabel( "source", this ),17, 2 ); + grid->addWidget( source_edit, 17, 2+1 ); + grid->addWidget( new QLabel( "D", this ),18, 2 ); + grid->addWidget( D_edit, 18, 2+1 ); + grid->addWidget( new QLabel( "initval", this ),19, 2 ); + grid->addWidget( initval_edit, 19, 2+1 ); + grid->addWidget( new QLabel( "k1", this ),20, 2 ); + grid->addWidget( k1_edit, 20, 2+1 ); + grid->addWidget( new QLabel( "k2", this ),21, 2 ); + grid->addWidget( k2_edit, 21, 2+1 ); + grid->addWidget( new QLabel( "r", this ),22, 2 ); + grid->addWidget( r_edit, 22, 2+1 ); + grid->addWidget( new QLabel( "kr", this ),23, 2 ); + grid->addWidget( kr_edit, 23, 2+1 ); + grid->addWidget( new QLabel( "km", this ),24, 2 ); + grid->addWidget( km_edit, 24, 2+1 ); + grid->addWidget( new QLabel( "Pi_tot", this ),25, 2 ); + grid->addWidget( Pi_tot_edit, 25, 2+1 ); + grid->addWidget( new QLabel( "transport", this ),26, 2 ); + grid->addWidget( transport_edit, 26, 2+1 ); + grid->addWidget( new QLabel( "ka", this ),27, 2 ); + grid->addWidget( ka_edit, 27, 2+1 ); + grid->addWidget( new QLabel( "pin_prod", this ),28, 2 ); + grid->addWidget( pin_prod_edit, 28, 2+1 ); + grid->addWidget( new QLabel( "pin_prod_in_epidermis", this ),29, 2 ); + grid->addWidget( pin_prod_in_epidermis_edit, 29, 2+1 ); + grid->addWidget( new QLabel( "pin_breakdown", this ),3, 4 ); + grid->addWidget( pin_breakdown_edit, 3, 4+1 ); + grid->addWidget( new QLabel( "pin_breakdown_internal", this ),4, 4 ); + grid->addWidget( pin_breakdown_internal_edit, 4, 4+1 ); + grid->addWidget( new QLabel( "aux1prod", this ),5, 4 ); + grid->addWidget( aux1prod_edit, 5, 4+1 ); + grid->addWidget( new QLabel( "aux1prodmeso", this ),6, 4 ); + grid->addWidget( aux1prodmeso_edit, 6, 4+1 ); + grid->addWidget( new QLabel( "aux1decay", this ),7, 4 ); + grid->addWidget( aux1decay_edit, 7, 4+1 ); + grid->addWidget( new QLabel( "aux1decaymeso", this ),8, 4 ); + grid->addWidget( aux1decaymeso_edit, 8, 4+1 ); + grid->addWidget( new QLabel( "aux1transport", this ),9, 4 ); + grid->addWidget( aux1transport_edit, 9, 4+1 ); + grid->addWidget( new QLabel( "aux_cons", this ),10, 4 ); + grid->addWidget( aux_cons_edit, 10, 4+1 ); + grid->addWidget( new QLabel( "aux_breakdown", this ),11, 4 ); + grid->addWidget( aux_breakdown_edit, 11, 4+1 ); + grid->addWidget( new QLabel( "kaux1", this ),12, 4 ); + grid->addWidget( kaux1_edit, 12, 4+1 ); + grid->addWidget( new QLabel( "kap", this ),13, 4 ); + grid->addWidget( kap_edit, 13, 4+1 ); + grid->addWidget( new QLabel( "leaf_tip_source", this ),14, 4 ); + grid->addWidget( leaf_tip_source_edit, 14, 4+1 ); + grid->addWidget( new QLabel( "sam_efflux", this ),15, 4 ); + grid->addWidget( sam_efflux_edit, 15, 4+1 ); + grid->addWidget( new QLabel( "sam_auxin", this ),16, 4 ); + grid->addWidget( sam_auxin_edit, 16, 4+1 ); + grid->addWidget( new QLabel( "sam_auxin_breakdown", this ),17, 4 ); + grid->addWidget( sam_auxin_breakdown_edit, 17, 4+1 ); + grid->addWidget( new QLabel( "van3prod", this ),18, 4 ); + grid->addWidget( van3prod_edit, 18, 4+1 ); + grid->addWidget( new QLabel( "van3autokat", this ),19, 4 ); + grid->addWidget( van3autokat_edit, 19, 4+1 ); + grid->addWidget( new QLabel( "van3sat", this ),20, 4 ); + grid->addWidget( van3sat_edit, 20, 4+1 ); + grid->addWidget( new QLabel( "k2van3", this ),21, 4 ); + grid->addWidget( k2van3_edit, 21, 4+1 ); + grid->addWidget( new QLabel( "", this), 22, 4, 1, 2 ); + grid->addWidget( new QLabel( " Integration parameters", this), 23, 4, 1, 2 ); + grid->addWidget( new QLabel( "dt", this ),24, 4 ); + grid->addWidget( dt_edit, 24, 4+1 ); + grid->addWidget( new QLabel( "rd_dt", this ),25, 4 ); + grid->addWidget( rd_dt_edit, 25, 4+1 ); + grid->addWidget( new QLabel( "movie", this ),26, 4 ); + grid->addWidget( movie_edit, 26, 4+1 ); + grid->addWidget( new QLabel( "nit", this ),27, 4 ); + grid->addWidget( nit_edit, 27, 4+1 ); + grid->addWidget( new QLabel( "maxt", this ),28, 4 ); + grid->addWidget( maxt_edit, 28, 4+1 ); + grid->addWidget( new QLabel( "rseed", this ),29, 4 ); + grid->addWidget( rseed_edit, 29, 4+1 ); + grid->addWidget( new QLabel( "", this), 3, 6, 1, 2 ); + grid->addWidget( new QLabel( " Meinhardt leaf venation model", this), 4, 6, 1, 2 ); + grid->addWidget( new QLabel( "constituous_expansion_limit", this ),5, 6 ); + grid->addWidget( constituous_expansion_limit_edit, 5, 6+1 ); + grid->addWidget( new QLabel( "vessel_inh_level", this ),6, 6 ); + grid->addWidget( vessel_inh_level_edit, 6, 6+1 ); + grid->addWidget( new QLabel( "vessel_expansion_rate", this ),7, 6 ); + grid->addWidget( vessel_expansion_rate_edit, 7, 6+1 ); + grid->addWidget( new QLabel( "d", this ),8, 6 ); + grid->addWidget( d_edit, 8, 6+1 ); + grid->addWidget( new QLabel( "e", this ),9, 6 ); + grid->addWidget( e_edit, 9, 6+1 ); + grid->addWidget( new QLabel( "f", this ),10, 6 ); + grid->addWidget( f_edit, 10, 6+1 ); + grid->addWidget( new QLabel( "c", this ),11, 6 ); + grid->addWidget( c_edit, 11, 6+1 ); + grid->addWidget( new QLabel( "mu", this ),12, 6 ); + grid->addWidget( mu_edit, 12, 6+1 ); + grid->addWidget( new QLabel( "nu", this ),13, 6 ); + grid->addWidget( nu_edit, 13, 6+1 ); + grid->addWidget( new QLabel( "rho0", this ),14, 6 ); + grid->addWidget( rho0_edit, 14, 6+1 ); + grid->addWidget( new QLabel( "rho1", this ),15, 6 ); + grid->addWidget( rho1_edit, 15, 6+1 ); + grid->addWidget( new QLabel( "c0", this ),16, 6 ); + grid->addWidget( c0_edit, 16, 6+1 ); + grid->addWidget( new QLabel( "gamma", this ),17, 6 ); + grid->addWidget( gamma_edit, 17, 6+1 ); + grid->addWidget( new QLabel( "eps", this ),18, 6 ); + grid->addWidget( eps_edit, 18, 6+1 ); + grid->addWidget( new QLabel( "", this), 19, 6, 1, 2 ); + grid->addWidget( new QLabel( " User-defined parameters", this), 20, 6, 1, 2 ); + grid->addWidget( new QLabel( "k", this ),21, 6 ); + grid->addWidget( k_edit, 21, 6+1 ); + grid->addWidget( new QLabel( "i1", this ),22, 6 ); + grid->addWidget( i1_edit, 22, 6+1 ); + grid->addWidget( new QLabel( "i2", this ),23, 6 ); + grid->addWidget( i2_edit, 23, 6+1 ); + grid->addWidget( new QLabel( "i3", this ),24, 6 ); + grid->addWidget( i3_edit, 24, 6+1 ); + grid->addWidget( new QLabel( "i4", this ),25, 6 ); + grid->addWidget( i4_edit, 25, 6+1 ); + grid->addWidget( new QLabel( "i5", this ),26, 6 ); + grid->addWidget( i5_edit, 26, 6+1 ); + grid->addWidget( new QLabel( "s1", this ),27, 6 ); + grid->addWidget( s1_edit, 27, 6+1 ); + grid->addWidget( new QLabel( "s2", this ),28, 6 ); + grid->addWidget( s2_edit, 28, 6+1 ); + grid->addWidget( new QLabel( "s3", this ),29, 6 ); + grid->addWidget( s3_edit, 29, 6+1 ); + grid->addWidget( new QLabel( "b1", this ),3, 8 ); + grid->addWidget( b1_edit, 3, 8+1 ); + grid->addWidget( new QLabel( "b2", this ),4, 8 ); + grid->addWidget( b2_edit, 4, 8+1 ); + grid->addWidget( new QLabel( "b3", this ),5, 8 ); + grid->addWidget( b3_edit, 5, 8+1 ); + grid->addWidget( new QLabel( "b4", this ),6, 8 ); + grid->addWidget( b4_edit, 6, 8+1 ); + grid->addWidget( new QLabel( "dir1", this ),7, 8 ); + grid->addWidget( dir1_edit, 7, 8+1 ); + grid->addWidget( new QLabel( "dir2", this ),8, 8 ); + grid->addWidget( dir2_edit, 8, 8+1 ); QPushButton *pb = new QPushButton( "&Write", this ); grid->addWidget(pb, 31, 6 ); connect( pb, SIGNAL( clicked() ), this, SLOT( write() ) ); @@ -383,6 +385,11 @@ delete node_mag_edit; delete outlinewidth_edit; delete cell_outline_color_edit; delete resize_stride_edit; +delete export_interval_edit; +delete export_fn_prefix_edit; +delete storage_stride_edit; +delete xml_storage_stride_edit; +delete datadir_edit; delete T_edit; delete lambda_length_edit; delete yielding_threshold_edit; @@ -437,12 +444,9 @@ delete van3sat_edit; delete k2van3_edit; delete dt_edit; delete rd_dt_edit; -delete datadir_edit; delete movie_edit; delete nit_edit; delete maxt_edit; -delete storage_stride_edit; -delete xml_storage_stride_edit; delete rseed_edit; delete constituous_expansion_limit_edit; delete vessel_inh_level_edit; @@ -473,8 +477,6 @@ delete b3_edit; delete b4_edit; delete dir1_edit; delete dir2_edit; -delete export_interval_edit; -delete export_fn_prefix_edit; } void ParameterDialog::write(void) { @@ -490,6 +492,11 @@ QString tmpval; par.outlinewidth = outlinewidth_edit->text().toDouble(); par.cell_outline_color = strdup((const char *)cell_outline_color_edit->text()); par.resize_stride = resize_stride_edit->text().toInt(); + par.export_interval = export_interval_edit->text().toInt(); + par.export_fn_prefix = strdup((const char *)export_fn_prefix_edit->text()); + par.storage_stride = storage_stride_edit->text().toInt(); + par.xml_storage_stride = xml_storage_stride_edit->text().toInt(); + par.datadir = strdup((const char *)datadir_edit->text()); par.T = T_edit->text().toDouble(); par.lambda_length = lambda_length_edit->text().toDouble(); par.yielding_threshold = yielding_threshold_edit->text().toDouble(); @@ -614,7 +621,6 @@ QString tmpval; par.k2van3 = k2van3_edit->text().toDouble(); par.dt = dt_edit->text().toDouble(); par.rd_dt = rd_dt_edit->text().toDouble(); - par.datadir = strdup((const char *)datadir_edit->text()); tmpval = movie_edit->text().stripWhiteSpace(); if (tmpval == "true" || tmpval == "yes" ) par.movie = true; else if (tmpval == "false" || tmpval == "no") par.movie = false; @@ -624,8 +630,6 @@ QString tmpval; } par.nit = nit_edit->text().toInt(); par.maxt = maxt_edit->text().toDouble(); - par.storage_stride = storage_stride_edit->text().toInt(); - par.xml_storage_stride = xml_storage_stride_edit->text().toInt(); par.rseed = rseed_edit->text().toInt(); par.constituous_expansion_limit = constituous_expansion_limit_edit->text().toInt(); par.vessel_inh_level = vessel_inh_level_edit->text().toDouble(); @@ -709,8 +713,6 @@ QString tmpval; } par.dir1 = strdup((const char *)dir1_edit->text()); par.dir2 = strdup((const char *)dir2_edit->text()); - par.export_interval = export_interval_edit->text().toInt(); - par.export_fn_prefix = strdup((const char *)export_fn_prefix_edit->text()); Reset(); } @@ -725,6 +727,11 @@ void ParameterDialog::Reset(void) { outlinewidth_edit->setText( QString("%1").arg(par.outlinewidth) ); cell_outline_color_edit->setText( QString("%1").arg(par.cell_outline_color) ); resize_stride_edit->setText( QString("%1").arg(par.resize_stride) ); + export_interval_edit->setText( QString("%1").arg(par.export_interval) ); + export_fn_prefix_edit->setText( QString("%1").arg(par.export_fn_prefix) ); + storage_stride_edit->setText( QString("%1").arg(par.storage_stride) ); + xml_storage_stride_edit->setText( QString("%1").arg(par.xml_storage_stride) ); + datadir_edit->setText( QString("%1").arg(par.datadir) ); T_edit->setText( QString("%1").arg(par.T) ); lambda_length_edit->setText( QString("%1").arg(par.lambda_length) ); yielding_threshold_edit->setText( QString("%1").arg(par.yielding_threshold) ); @@ -783,12 +790,9 @@ void ParameterDialog::Reset(void) { k2van3_edit->setText( QString("%1").arg(par.k2van3) ); dt_edit->setText( QString("%1").arg(par.dt) ); rd_dt_edit->setText( QString("%1").arg(par.rd_dt) ); - datadir_edit->setText( QString("%1").arg(par.datadir) ); movie_edit->setText( QString("%1").arg(sbool(par.movie))); nit_edit->setText( QString("%1").arg(par.nit) ); maxt_edit->setText( QString("%1").arg(par.maxt) ); - storage_stride_edit->setText( QString("%1").arg(par.storage_stride) ); - xml_storage_stride_edit->setText( QString("%1").arg(par.xml_storage_stride) ); rseed_edit->setText( QString("%1").arg(par.rseed) ); constituous_expansion_limit_edit->setText( QString("%1").arg(par.constituous_expansion_limit) ); vessel_inh_level_edit->setText( QString("%1").arg(par.vessel_inh_level) ); @@ -821,7 +825,5 @@ void ParameterDialog::Reset(void) { b4_edit->setText( QString("%1").arg(sbool(par.b4))); dir1_edit->setText( QString("%1").arg(par.dir1) ); dir2_edit->setText( QString("%1").arg(par.dir2) ); - export_interval_edit->setText( QString("%1").arg(par.export_interval) ); - export_fn_prefix_edit->setText( QString("%1").arg(par.export_fn_prefix) ); } diff --git a/src/pardialog.h b/src/pardialog.h --- a/src/pardialog.h +++ b/src/pardialog.h @@ -55,6 +55,11 @@ class ParameterDialog : public QDialog { QLineEdit *outlinewidth_edit; QLineEdit *cell_outline_color_edit; QLineEdit *resize_stride_edit; + QLineEdit *export_interval_edit; + QLineEdit *export_fn_prefix_edit; + QLineEdit *storage_stride_edit; + QLineEdit *xml_storage_stride_edit; + QLineEdit *datadir_edit; QLineEdit *T_edit; QLineEdit *lambda_length_edit; QLineEdit *yielding_threshold_edit; @@ -109,12 +114,9 @@ class ParameterDialog : public QDialog { QLineEdit *k2van3_edit; QLineEdit *dt_edit; QLineEdit *rd_dt_edit; - QLineEdit *datadir_edit; QLineEdit *movie_edit; QLineEdit *nit_edit; QLineEdit *maxt_edit; - QLineEdit *storage_stride_edit; - QLineEdit *xml_storage_stride_edit; QLineEdit *rseed_edit; QLineEdit *constituous_expansion_limit_edit; QLineEdit *vessel_inh_level_edit; @@ -145,7 +147,5 @@ class ParameterDialog : public QDialog { QLineEdit *b4_edit; QLineEdit *dir1_edit; QLineEdit *dir2_edit; - QLineEdit *export_interval_edit; - QLineEdit *export_fn_prefix_edit; }; #endif