From f52f813227ec720981a42e9bb2034da6f54cd596 Mon Sep 17 00:00:00 2001 From: Marco Craveiro Date: Thu, 18 Jan 2024 22:41:19 +0000 Subject: [PATCH] site: add variability and SDMs --- ...stract_models_detailed_representations.png | Bin 0 -> 38948 bytes assets/images/ac_mdsd_mde_application.png | Bin 0 -> 58701 bytes .../ac_mdsd_problem_domain_decoupling.png | Bin 0 -> 18583 bytes ...opment_domain_architecture_development.png | Bin 0 -> 15167 bytes .../images/cooperative_tool_development.png | Bin 0 -> 23880 bytes assets/images/example_feature_model.png | Bin 0 -> 32083 bytes assets/images/feature_modeling_symbols.png | Bin 0 -> 59010 bytes .../images/negative_positive_variability.png | Bin 0 -> 8189 bytes assets/images/typical_mde_application.png | Bin 0 -> 18902 bytes ...ability_domain_application_engineering.png | Bin 0 -> 25148 bytes bibliography.bib | 367 +++++++++++++ docs/acronyms.org | 2 +- ...e_and_the_software_development_process.org | 387 ++++++++++++++ docs/mde_and_variability_modeling.org | 488 ++++++++++++++++++ docs/models_and_transformations.org | 10 +- docs/towards_a_definition_of_mde.org | 38 +- index.org | 14 +- 17 files changed, 1276 insertions(+), 30 deletions(-) create mode 100644 assets/images/abstract_models_detailed_representations.png create mode 100644 assets/images/ac_mdsd_mde_application.png create mode 100644 assets/images/ac_mdsd_problem_domain_decoupling.png create mode 100644 assets/images/application_development_domain_architecture_development.png create mode 100644 assets/images/cooperative_tool_development.png create mode 100644 assets/images/example_feature_model.png create mode 100644 assets/images/feature_modeling_symbols.png create mode 100644 assets/images/negative_positive_variability.png create mode 100644 assets/images/typical_mde_application.png create mode 100644 assets/images/variability_domain_application_engineering.png create mode 100644 docs/mde_and_the_software_development_process.org create mode 100644 docs/mde_and_variability_modeling.org diff --git a/assets/images/abstract_models_detailed_representations.png b/assets/images/abstract_models_detailed_representations.png new file mode 100644 index 0000000000000000000000000000000000000000..cfae88967ec6bfb2c92c290c04fdbafd89fbb390 GIT binary patch literal 38948 zcmd?RbyQW+*Dice6a-0?ZYk+b2@#Nz?w0O`LnCsK2BjP6?uG*>-61J0-Q9T?{_gvZ z`;GB_;~U@Kce=-ROPsy;T64|$%x6B!AbHsjXeb0I5C{ZKQbJS_0(mS2fgt1}KLTHQ zddo8O@Rxz~2T{oV!=E2bxls@Z8AMX_ow954&Ky+x#X2d{0Zl(;D6A=$w(l7&UEmL% zUZ-?grsVNpGo5jZIh^VVx~)>Cc3&R(cbJ$8zkGWmDG2{~AVsn~lJxe`PE!0Ch)e?8 zzwRh3U8z59s+{$zJ0$Y$TcrSZ2DhSx9Wed7f}BtXLjPSoda^|PaPe8#*A?mEf=r%l z9^v5v`Q`s*Kf*#gW@;+rVt=S0&qG7$6fWF-aN5zBq3fcfbxq_eANSoCN)84}2n&u1 z(bqRiA7Se2b~2Ue{YGv>Ds<*7pqCZ%3%RQNQ*5+EUO~afR2fX1Sb3F>#=KOCtKC}F zr-mz?VM`Siu9LtWZgJcBAr1ayl%mm5mJ6-smWJb#uVH*u=WQ$B?+?f;vqXDlJFewB7riJ=jF{s3?knTt<6$twiSGN#(9lpA43_m^lrd5< zH%R^>-(zEAzkMV7RbmLCu&dXGTSD}Omr|Opo2#pD|1^d~Mi$Gg9aXSts;XwhsTpf) zJ33d7M$v55)KtHD!;63*CYL&Ve4JEJ(4Mc{QEvFbYBrD8P&^>v*hFM#D1zVa$I`Br zi(}>Bu}^IrIUfltz4%3F?}pQ-1U&fq zlM6~)Hqt&|YMNDLEq6ISe!S`ChKPlQ|Jd(S2rkC`od-El+4CfCZEY3&v!kP<0w4Xf!oor@H{09W zhfK#&qN1WN|6{LS#Y9K1tggO#`BGU~xeP-}N-8)wI5INQHSXEnF6ko*y7sWAvaA|}Bjczd<8WF!T+Xbu*?k*z^X(h% z_9SXhu#|-v3koW|p<&zlV0DwX*VIzS6!J$E73e@ep1*&qXhvvyI&DHfEfbU59h`>^ z8yDsN>NAKU`b+DKn5ReB$)X=CW=dJ}$cC)J$S65dtS(;Ygcsw0KK|uod z;J&~0FefISubTVA0H*OIj`7;{nyay113E~g@a9dCj-t}B(mkSHgNt5E^)E6tJv}}7 z2m6+mrgsq0+S*!BKquR%7b^$+@LM#Qv{YnvR=09NG-3kf8_CFM%D!%iV?m{SMfjod zv`_5!y@P}f3uCsVvevM2&uxt_H zJr`G!MlCFQuu!=}N^D6D4GkqFC247CEiJ8W(!|6>gZo=c6i-6CGxX0SOFn0^>e{n* z;{}HS7$FL@L^vUHzbWXbVw{(ss_5z2@2Jmri(z45q2g9-ZR2L=Dt$%Y<#|CdV$_8m zmFA62jm=wJ%)@e;PP9+k?tI&co+wOK<6B(|F2n1_-GfkMW`VVA9E8bj!={Q<4e#dP7_8y^rqi zCR1XTV)$$pniaHakb?p_Cdb}Z)RwxQ%Nkyt9L2{!e9~+c$X{9Y4Sel`C2UNCcB@iJ z(s8cr`*$XXDylX`d3Jq+IUAeK7wa3IXL})&C2=)en66e_{6a!P0s;c`^o3sW%R1z{ zGP+bD2UC8~SsWnqjuw77SzPid8 zqf$LSUe#ML9UMGeP|#4Y)c`Jf3p8~-cRmY~<>loaJW2}>4^K}||Ni~^tWTQ6<0f>F z!35fc=FJD=|6-ENr(9+w3tStteMSF+niNzM6{RDOSz2CPepv8TT-tgUUdJQG&JL4@ z6>fLU)aEWU7jydvrinS>?@Of$VI;DNNr<*H@@q+HB~7N{;^A?5)O^d^_}wZ}QE_Cd zhC;|;v^R^7fN($f7Ce6EQ}V1@{a+_qwXVAza%qB9)iLraI;x7l{RV#Dx=#94Zx5f>LXF)?xfXW$wb_~JS%6;+RBA{`%JK_WpfxX{$3dpIZ3p`fr)P_!;IAKB)Y zm)B=iRs8r-^rP(G@#AgFk1Fs_@WtY=IX6!?H@DZXUq62Qm|=Hwd)v~&0vj1-t5^Ty zOGqW;pg>ujF zIvOvp`r=PnsZ~V84IbWSFM{-xKYeoL5s{eb$@jW?hrG$dFTK6Nv9kI~$cwLkpqQWD zACv87Kg=GkWG_xUJJL+GOwhiISC2z-?!~4 zOZ4@MAomauLWzXQx(NumS5`;Z*c&SqbzVFD-9= z5Bw$;P;V5RoBkn0&&c@k;)Axfc8AZs+Dj~~iE)L|aTRX1F;*@D1EV~CixrkPZ`gFl z(HX!5tDo%->#9wDON>p5O-)Kti%g7-ij7T*yFYJf4I|_(vj?d_=Hr7gGBVQ0#FLF| zdTabd0?^?KW|q6&9ZyB|snVpHE#Wn{&6r+8bVe=>9hDd+Hl5oUgV~m{tfeK?LConL0H1mm4*T^V~kx^VrGjy$b*z6><|0a4Yx&3_e@Y$vhm1#^&j6XmV zFc=vO=I;;Ya-jdg9ztzcm_KZ>xZp+@{&@lx>}E2>rx?e z=gXIA0z!HNL+Q*+q4{Q=sN|dOd2ernjL`2`Y0t_76?~Mg zft+5$j8PXio}imGFB5|^Bkipto=#>Vo&_)Yrp0^L)9_bn2p8=Jm{DKjwg zSE<20&QIBK$)m=Lior2(w&P}GtA|IDy1H)aeZi6@nb-D}9A=@U#E-t{U^)65Q$*S8 zwv>6Nve~NA>H5b^uH~d(F`6AfWx7r7uZaH{F7D*S#MkPOK;#HQ%eOra{p#$7>`IyB z4O`GO&7=v~_XEVF#-gR%LvN>8?T0$aFF|x;x+U@culZU`I|S$Ez3Sm0|mU| zUmL2ctMBgaP;r@}jvi$qlY}fOyO>`Xr2A?)1hoFP*8fl1|^NGTw3!? z6aV?$?bVJ|CJrqmo(7!xVuGCnmbm~fcM?aWwqtx-a^Ze5nH*q4lyUvwPg62YE-d|nAqP9EQ8oOxd?&xTpyUoApBT5Rmm(mCXM zH+pzO;#W*;9Gsf+a*Yb39=O|ax6!-CK#W6l2t-(@W7Xj`1;t=8?+XHg-oJL3BEi8G zsJQ*=OD47!kM>a!1V(22-SM!!=JpjXmhpDH>c9%4S1Zx3wMhvNN1q=*CHT+t5c8#Y zulB}Nnhu#58DJVjr&cc|=suNcW-k!VS5=+<5Vc&o?H8lkU zbXA#;9xxT-f*1~g3`Z!dsipBccFxQ+*3{sTXBA|WxsUIVHm8;TAoGKo3$svB=IGTq z-FFTQcXpbAY?#6oa_0-rA;IsKz0HgJ3U`kLTyCY=VDz;jE^9;4AtF8|9XY->eVaf ze+DjCH@+Z1$kZ(?EdlVmz20vb-E@L|+f_dH@|e(+A@Yan=nsD?*R%x?t-X(iy%0j4 zRa)9&ImyJ$U5kKwL^gjKJ~1&79Uc8I<@JM@4ANc%sSp~sB$s1Pk-qp69lfn;JbCJn8 zO#0)6?k?JTdr|fqnj!6tBuftU`T6;*tgO$TJp+lmr>BPjr?8EOGP15AF|wfG%hv`_ zZ5BOONtBAoP|VJI`NrN}fldXb&j=fvl9hENCueQV1V<#VIP7CCJAOYkL6~gji23PB zL&Mj|$byQat=86~;NHZEi5hg&40+m|`?9JkWhFlwKz2M91}Gpm*HjZM$8MK`%kO?d zp`7fUjkJ)viRtMzAAZjTUsShCDr9mbq=3;}IgIFBOY(WIgq@uo8o5+au?JI8Q8}Cj zVBzbQ`E%|GLM|C402_UqYvwTlW|b<%{rT5Us;{7;0)@R2g{|_4o$Xjj(LqXzekOw5 zYKjFUXhOmy^U)me)~D`h5XeCcD6l7rwQz}uLNVF62#&gf7;BUU4w+CsGjVWNdSBlr zPTK2HR|d&Y?=Q6Y9Ip-B-fJ?pHx4b^@z~qj`}+F6d-ra0a}(}@=1f&6Nu5Le6&!}* zgo_s@ZAV9mAmf5#>LNO>be@~z<~EoFI30lerl#u}l_qG>LOc-2m$1H7-3BM~nHp<= zWR(lXe47?ZwYDF5rF`}-smn6x8XV=e^?wcP3@7%uJX*ziExxGpQV4VZqGwl=Oel6V#tKsA z72@CVnCxD)`HQVCEiD1eJy&OM*wS=JoXWNTD4?w#x}O>r7M7Yi|H}^v6&1C*T3J8< zM=*p(Pl0F?x_eOYs`ART<~{N=RMap+OSs|8QCGyEYOLsd^JaCoGqpbjJ|SVF%^V+~ zK>)h%>grn7p@!%W2Ze`|u$#!3ndK!Dt%l!^AR*9PY1K43ud}}E=UDWnocCX(=3;VQ z_;vhT+%Qd+&2Au>m6d99uc7)_ona#9V^VTT3Mh#Vml-D;U#Hl8hg9ha{H#cA+ z_>Fs`%gR`Ips0`wE+*|d7VGJ%$VhB}X_gn}?LaPsiv2(>w|{eup{vi5*z6EFPQT8< z2_N~byt(`6kcLW3aJ`BBVE!5KSpbNp$_)XPaL81E3ZAa>ubrotR{%P31IV5r5Nx51 z@T@mg7O}LRAKmq+=G>m`SaN@tSPIcL6^Etv^`Xy~Tl4x;T;5zd^7A(ay`brAZ(r0Q zhCHI*?hJ#q1!!$L!BKxHX=%-TMI)Rj(U}2D(=p(>kd_poQ6Gu#1r81ccE{7J^e7Av z&x6Xj2fEOP`uZx%%3N)E;LtHRV54gc-z~v&SxW#eNMErT-crW`l!VZ_=Z>? zcQ#UGO)V{4CT-WV9SsVFo6hm~AJA>^geQgJ;g{I$GN>qhszvk6g+{Lnjg~K$4*~A> z5@_=p7vwc242F-pN9fH!RsBC63BGZhm}UI!5Jh{WDjmBI0^53JbYh}=#K$fUr=51n ze&+yQVjd?fk0Gxil#RjXARf%c-Z5mFF}^Y6?J~ABHfH2<+76E*NeU;2DRbn$XqS0r zkW;ElLk=v$gYOI>Epo+b9NgUdGqwA* z3*Ls6f3_^7JiK+QEjk#;$r0q56ctw(lWRsu8?N~Hn{)hXOzg)Pt zTjBo@5s$0Z&|iIe`aGm(?^R5-rP|Q=xPr82n*HK||18{Kq3_y5RTyfr!DAUUld<2* z&CuV&IKSxT1mXk6BUv)oM6t8EwKc!j+C&q7m$5M|GI^2DW>!{FAdT&Mf6d5&7pP<*(SXb8v5s^pxzaf~yevB*j_1aMAIT8j*caH*v$WTHk z>(9mv5;nH6Ulk)Ja@^9}uRg#%W0{>#>g#X`H5E184v+lM4+ncjEVd)0F-6?pb1)(A z)S-IKqJRvw(lZxsODB|9qa$t$P=!#HOy{jD>d&6bOuDEwtQq{l=Wg}vpyx!Rz zrK$C@h(tdlu9MgK=yCiT3co~#4Ns3d4lu^rTyI8*m9Y01QQQ{@9uN6(Kk~I(S$t~G zTJD83#HcrO708*T> zo7SL-(9&Hk+@Uq+ectQ0yMu4Sho}vo*K6C@khEMob{kQ|?$&ABNTW*2##*p-vIvrg z4N(%qV9oJX#=*w?FihYYhko>7;$0;xXGI0x#`~$9EjzklDNWL{vYm}Yu&35=kd!K` ztBdpV?H%HY&es|e^07dWBR}}`@?HPQZX?DVe*JM6x}MRcV%Jo>C74n`San5^>M1La zRbE0M4euA<>+0(-g7hXP3bVa-3nR&nfb!~P-};d$2P?0~0f1-#w6@-Ptt8f2H8)&OmplFdF6HugotvB6R=s60;)RyKzelP)z@TuuLnhepoYsf+fy*JsI~Q5P zwpKl9iEnt$rOh=8pB|Vr0GGwiR7_pA!~hMV-{sD~0;(ne`v9KA)n&SFSy9Q-1@`8hS;)Q+b z@>6FQ@XB8W-wO1Y7=s2%VWFkEI^O&%1hNZ6<`p+rS7lYzX<5$m6ZJqS<3)FO_vDCb zn;d~2YUO&TbD$}ldA35~+Y39iMU_~D*ZhxBhQMBIA+wLIiebd!t!srXZ$Bn3!+5W3uXE-r* z#^$V7A(Lf3gj~wo2fn0SwgTm#q)lKqML}JjKpS2RhT6`<>)lW3f+)Q=Z$dmod$ zdbw=7Zy?m&Em5kz_tt%^3_WUcY;2$3Rgi_YAfrND=c74Tv^qk?8>g~a9Ah!EL^JTQ z+c-w8ntqTxzrB^15y>3)xe0{6(l4_t$#<*ufd1ZZ!I))tYjoKKRZ$Wb({FjT)<&G! z=vdW1yw=I9Mk%S^p=-0&QLImQNo&k(_xCs>Ue7bAS2-SL!~w2~o3lDAXBBZaA~dYt z=11wApP0|;^N$~&V~NZ_Qymg4>8YtL_&c<9Q?~#GuuMov^MRF}Q%Z8+@DOduxKZxo z@A3ix%P(Ita|SQwmjj+SR4Bi;c_aN_S^%N@vK5R!z-N-qr;5ll?wk4&9BTniw4JRh zx6L2&v3g%-U(GJUPC@8YG21&V1=BLlEde3xU`_})bPz0Mavn^O?)>Gm*V+m<3D~s*OAb5tb}+cl19Rk z(rrST`5i5~PRy4vh?>hRc71iVu~IuicBn&1H53#MK^$z37lM4o*pW$1OP&Ahu`DJo z-U&DY+Lt}nLQJSQo5c#rd2+TOhE0q~;cu5QIy=J#4L z4Ln>=QhI2v-b*Z^?NDvduI})gVT(I8jcKWRlh5BJohhoZs1|FDN{hiJBsrg{jng%2 zhvB9Lv=iqGx!=BD8x;FP=#{KH-O`$x3@6RGlDw{SaQ9(>pRr!NxHUevfDP9>uG=yA zv6R{9+z`l6D`{vX^cby~2<#MZ-%e$|`t)l)?Bl>OjumsaTUL5W)%njfAKf~&NYcHn z8uqsoU(d}t3aXKq^`5Ob-;9op8Q7Fp<<(_S3MI=>muNdKZk;Y-?Cj4?8Y~SlIN)`)V^6uuLTyoa;CBX@@0GNOikBp?hZ~g`pXW zNL#DU2d9aNn#$ECfLM=?ehIiqZ3{e6(|tf#;63k*AGz|fXU@Ha#=Z>Bx-YhaeOnk{ z0fCJFzPPhxIqlnU9D9!3q8K-wibaRR`dJh-mpfCJW9H9O@)MBPo8x&QKa!qKB)}IJ z^4486MI&(J z#SNn9P&uUtramUg}<7Z_>gIZ z9WWg{MBzPnk6Bq2;Fbsw)2Wz-_I6P?3ZCep?8lF2J$Nj@q9thD<4@mNmO>*=G_;v&v#KJ6$@FK?AP2i>(fR@TMMa{>`GsinNG4b! zLe_eBqi3tGY6u4bO|Z<03cwmK{eC}8*1!XJrx47m?b01|W~3cP#7Dob$IhBOCW`E! zdk%<5{DpZNu=aEOsY!I=`zaq&P<~Sb5{Xb#Z>Y}U^wV_@h~^}OaRhck6<&t#A6Gh_ z(>GBt3e?soWET`jQKBsRZ9`5R>2Pquv9KHs44z7X;(L62oE+vl=ktgqJ}4waQYun| z0Vk@bJ^S-Jr?bJI4@L%BiFACQf(NFW)nS#H)s>m2xnGa=FHDDq3ipr%lioVVtbY|V zVmn+~MM61Z1O3{2+4-5d*N4z$6Izk(KlR&rD3FcU;I<|n=N2+aU!mlBp`sMzFwiDH zWI}}8071ms8V)%*Ib8NT@Sp%pO}Ojf-dtnE-P+8D!*HRZ<+K!`v_nCU#{B$_DT(v5 zkENH#ck@BpW`zPi4xdJ27tTl<$mr>JoBPfC&Af0YiQzrv^P%BHr}fbL&0_wD>};y9 z8wEZe&m}y^Cb+blv0<2+6-JV!LvSB9^%|M&#&Dfij}BtkN_3=oobr-hW6bIYe2}IY58}G36(3I8H}PEVuTMNseAhm^e9Z#wP}(%b-5aqw(b-8%}FO{AyB?-)S`BY2Tb4 z9M+{W5|hC)GG18a6tl9khlGT*Jxtp^v517M>>l6|kkd~|bU`!+Y9YC~I(+vYnr{-6 zOEb${5I^4|*fSRlQuHE^9l?&DKZR9QYd{Fgt9!Jsc~uHBuyfUTZ*M`GV94&^#eY*5 z4K2t7VW}r-YhO=MXXAJWk_=~-ttKn8AItP7wP1?8pjmR6ce3l?hYcUC_O16P0G`2i zy{^2dhyaX4O74(>S_$vZRR^E@TPRQj!21w{^`9x0wP7M70xSs|2HD1S^0%Cd%DBH! z_@8Fy&2FssrPl&WLToAXQ3J%Kgo{G9J<`?<5Vpu$qQt} zxcX5Xrua*;4PL*)G|0Mhe;g?1Z^&mloCAs?!-CgNiuq;Tt@yrTDvl(}VzN^OCK%ZA ziXe}Vjd@t{<)juOT{>Q-DiixWz0_(Ou}1*=cKK3$95r2$+8!2GoNa+NhY$CO8NwNsvtyYzZA zo&{|>I5@bt5HHvt3_LISK+hsd!AeWpJu-4Qki?A>rFNkw^r$w)fhQT%4lO(PQGKg6 zQ)R#U`cU_SL1FvFK7yDO9UUF$h$MZC1;bt04X+U4eVfpdYyZJ`!FRIZ6~oS*B?6`- zhywdJkGPRchc1~$NoH@uROLu*iYBM0U9S3zJ)q%zz4DkMufJ}S!?w2ZaiZqv=`1Hp zQUPrqdm*^|^Dk<>TSs%;x$R8Fn8ojSWBRkbsT$9vy3PtUuUT7g(K@sI5TPfATwh-gLfNuPn|>%1nVgrmetjsdv9a;` z`g(@fTD!^NEXXhkX}37@@=5ky;hC5i4JISVUuNV(w#PNu9hsD6afFBSo6~=vX zLLPFJoVeHoPPl;=-TicdA#zP_w=5zO(n`jy7vCpuNu0x>mC4rL{0#}`ucY<=mFcm| zoFxBM?nj(wNQ3_I5NU+%t^KCmGWpbtsHa!cfS4^$SF-9f$(mhuF4=CL?Xhdu-mk2c zOPl?QIqkC{0sz}0k`K?6T&wtn+qzT{`#e(|3HFu4@>l;BlB11|u-6jvG{*DIgzqS^ zYi;I&4e|ZXp>o>VH=SXGy1KgH4RD#}NZDN!KzZScdsRD~T7Ac^imekparG z+XZsMgwXtQCi`@I5^$o_w=tVuXI%5uC(PizBqhEj6Hy!L;noj&UNMwZ6&19ZNzV%U z@a_-J(SRr4GArcdt}IIf6NxFJFmk99E=T>M+^TEUK}%B|;MXYDuZPdfr-na!$kBw7 z_Vl^n2{LQ`kdST$rOm!B0_TtF>hhNRzbpZ5f66}jeHBlGFE=MWwS@yl_}R1Fsq)uc zTrOjI3Z#y~$tJd`Y+lx&)jsd+g-V3J4#H&{)^W}42~x_Sle6>f!QZw}eD;G9REV!Z zndjx=GZ#FH?;E?jVVKkPGlYD!i+>&Jy}8?{wGxz7CRcHz*Kni5Ioa17>bY;*_(Sva z(_4L18B{IbefpC*tVX%{3{Hwh%ny@San^~8s;VxJaJ|F}kEfR+`4F8b9GQxFOW`Y? z`5LCFsSe7*DV0eZKJPL1L$8Lf;VFMEI)v^WaBM!=?hlv787wOT@)Jn4!fdJhPL`}Z zUVjJ=4GC#Vx_gG&;2a!y#16Dr|@(lrK`)kF*Y&Q50j09 za(3X3u)yjDQ=4Aolh|(JU`5MFNEuj*ZVtCrxFiGE&QuYk>@TN-ySp z+l7m>xq!?ruP7m-2qM-Kr57&fx}q8J1;HYc=Buv9SaW&}+c%pu;kO>rdOA9f&)#Wk z%jkUEeBaw;!$h2!LD6#O5qG-KI5x=+lIEYr`?u|l7;i{*aQBTWd9Tm+)84wV&96S+ z3#lZQr+vxHTneOwZ2=hcZ{C1LWT^&JLd@|BRBNOk;DF0)Yy3%4P-t1_F3@f=ok)H) zc#WRQ%veYu;9ixMwg7k{&^Uee2OToJ4TP~@{QOjul~YBV9ks5Gf6n=w1;^q{%z1oY z7$}QhHJZCKor#e4_xHbmehv^gR{LOSwos>kcQREs_WAnzE+HX7Jka~-42nuf1P-hn zG=mUe<1;sFoN5g+FPM$mG(-=<%;VoP(^I?Gj_LB0pcDc+MNidFEZyDxY342I>Av-5 zBN<>$7In}??9NKq@$nNt8}#;KIRXIz0q`k9X+r167{|vLK;*JxqS^0IlfY{IrK$>X z-q>6BlY*OFcgW8G1<*Ju^P*3XNo6+;2O%~3jnY90I)rSIgOl^Uh)9lXiu<`PWzsiPB$fq-+C6)`~7_ly+0Z%igKUV?LEW#sfzX3L4ei-oD{%_qkIZThG z&NU3hwp6cCJ&2Fz>Sr2D*g(APlGEmQ+;fpMr%D=d zyS%B$?l6PN10{C1LYl{U8qO;<32Eu)BPvjrs`gp1pE1Qu2JwGTN9N*Iix#!(tqE$gPPeYm0MUw^2 zxN$ev1s_oS4S;6Ka)JSnWxzXaHC}<9EYMT^`SS;iDgK5f64G5dH{#Gd1!O}^twiwV zF5oqT>UNPv<<0GFkSN9ct6S8iIb1`wgi_rm0C0dwNk}Y;2>{thk#F-^S$ZNM(#OYM za&ktisJt3eepO!5=26s~s-Uf?pslT;s+*!GpBSSOAEWavMrZhMHVmjPfR3Guiwkt+ z4Ld`9ueX3o|DCycepHl_hzM95?P;b^Ms1cC05@FF4Ga_!H_E06I--(S*)MlS(a4?E z%ECd@ItF~m%F4=vs0{`rg6;kNGC)nd8V`!_qUZinFnLK1GBPj8MX6tObll5& zKNo-P5=9jCXKeUq*7&G72Va=P0aK>u<${r&aK{U;zf z!8BmO>x*M^YcK~(cYNBBn;m+ z2Ca0U`U0QD%gdXco!#-zzy$-&wxtO@Ie9v0r2)BmPEHPJ3xl4$zW$HWQVca61jyrV z&^rMw^U0~Hyv$;kzdk}Uvi`U+UwnbbcrC4*HX#kxR+T+}{@iA+fzx7)79O%i(B5d9 zRq|lrKv{90J-VsB2-J60=9kwBE^G;*P2TaM6biI2>0+d^6+zXX2V~pIU4#w@K$rJ<;Z?JKO_7QTaS5$0)UWne&vlTm@hK2@QX5F3p z+Yq4J14HU}a^i%65s@pGMgbEK$8$gF?o42(Ueb99x&Nilac6(EHnLE{h8HGEVc!?a zD0F}0c)xiI!}zC@v3o&81iH#=$;m{pVc6ko4AP5Vozu_vGa$kYs)hU2i%m#(49unP zka>A{lKGsa)YNeI8yZmm?Y?=-$<3X{4;}3511)(JawGonn_TO@Tv_}FVaGQEwj?H9 zZ@Z-xv?BUHpwCOf>yRY`7e5R6r>pra#Fui{Me38xW1rF7OhV2v(eK(-V_cbH{iBlR zU_e=Ibns^X3^0h67F$>%fKL*1+5qw#fqCasL?9#uPW~iC_WbaW*JVfD-29D*#77nT z@m>wW3C3@6xl1|(m`3|iZ1-?XyJZtILqm3vZs63TqoV@@){D)=kcY?re3uOzvp0qw zh&6654quA|%1|>oq-=r`eF^40-GztuBfdZ9+IMJB4}Q+K#{5qpl#()cwmU=fF%bqe z*ZVgLpYHP{5_YxX_$SOIPxSoS{2f+V0Oxm>M1s<1 zlD9wS_dZet@$+joGQ|s8Z@IeqF)n77<-OhbGzJJ$(5z4oDJj{Dq>_$h&|m|i9Z$>c z*Z*AdIVDi=0?q@pP(T-|jcFRR8Den^iFT+5QrN|GK0e!j^v>sdV(g2f4PyY{S#2ZB ztKO%}1LPOWq{HXDrTobEGt}1$`9IH;51%A|y@EpLuDhs)hmfS#ltr)o>o}1{y}9OFwuYx5s)~vq z%yck0zv%fhl79=%x6`CDDl+mxV|R7B4g7Z4jANec)hjop7w>mWi}G2u+javSj-_;) zywkqLr+$mS6MXZ+qYzPCOsoSW3XmcISe%-|>!P?O|M$*MLuzVjK*ZnJ*Z{DA+jhPx z!X23$XoJ89vMap?2e@#3F%D*f{u&E3I-a9BKSy(VI8Lg=!oCVGZtGZa z(J;4AG74}D2rvsQ@00FuV!s8*8|dSKfuIh~Y;0_t1{Z=E(AG0J7#IsnMzKsGEdXFbyc zd^eEcY4_qh=$1hgvUx*K4-{5?Ame`gH~^Y^{rwD#yA&1r%E~L%94Z`~KvTE+a>W>I zvwHc;7+k!3X%ro^lAZO`;sU6;R8*?KW|Q9D>7(GpEelOh4!XHHyNP}D_BIEI7%;4T z&j6zVW*Ou~u=di^$A=1uvZy@eH*ellWKn8-kpTq{;4LYsx+5c3nnV1E&~uwpM}$q; z5NrFU{*z)KO6(zFz@aC7@e;FyP|goSz@$<$ovD zO!dzzg_(iU#Ms#Q^70boeK7ohuLK=QZ~^3W;0(qu#dhbK0l*On2??pl{>GUIshHM= zT`Eju<${+JvEgr4fXf$^UqTF?YtEO2MAWd)pp0jB+7#~~h2{sWsb%~XmZ#FaFl&qDhW3LLI6#_%YP8b z-xnPn(Qg7Udw3KIQ$zcP*Rj35IW%%ofuf(_Qd{7cRIbm@Pi>vkn8AI7BYyen4->!- z2j_L!IjYJ^O8h4swpGLH>b_N1TSTl&=3DQ=vE#-BpU-^NO#*UN~1e} z4>jMn$;s?QmXzH4J`S?BPG;((WioMhg>$hrye9wqn$gSn>SVaCt^j>mS&h4~ULaG^ z>&?prD(Te8F^=P>oE&8}R&Jntl%v#DRcx@aCcasbWEC;no~R`uDa8_@qvI~4A1T$1 z@hMmwnve%~+{Di;_EOTmiA>d31^nDXyCH;^#lv()ha{=$TAp<1xDp?BBi(U0n_G_9k5)ih#S0 zSd7y>p65YF|9iZ?E$GUUB5wH(d3>^xfq_I-nWIF&0d7UjX z(t?5_c)cIMfbRuGR(w8S4-_BI8}q&4^q2EIj_cxi`I4?~VSU{{Qh1{h6C^`|>~XNL zM39ShuGwhwevUfU`65)8lu$91Y~5Zbnvaf67PDJeuOheMg;gn9JTCDtA4TW+v(^IVIoV+5c!pgJ?2@1|E1f9-TPkc6^hX=u0|hy~3b zqn9zEkL$ZVojgZQIX`fn^S+y@X`=ehl$$+%s41Ir^?CRbgVcf#x6P==f#=?vk;z0t z^76nWaA09xFqC_+-Z3Bi-swPlvy{};&eUN^-}uRy?7Iz54g5+k!?-8MrN2gxIYrj} z{7|RmzJx72?9JEz`70b1y1(W`((V&CIP5><^

5Q<{ELc_grcnrseqlf{t#%vdVY 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 PKsAe}tDnm{r-UW|PVcMX literal 0 HcmV?d00001 diff --git a/assets/images/ac_mdsd_mde_application.png b/assets/images/ac_mdsd_mde_application.png new file mode 100644 index 0000000000000000000000000000000000000000..d83037ce5b0ca07ea286cead07edeeee581d7178 GIT binary patch literal 58701 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 Rd~DHMuq|?X#N{xR`hSNbU0nbG literal 0 HcmV?d00001 diff --git a/assets/images/ac_mdsd_problem_domain_decoupling.png b/assets/images/ac_mdsd_problem_domain_decoupling.png new file mode 100644 index 0000000000000000000000000000000000000000..4b64062d86b85ab5fc095ddecbf484e272622f49 GIT binary patch literal 18583 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 literal 0 HcmV?d00001 diff --git a/assets/images/cooperative_tool_development.png b/assets/images/cooperative_tool_development.png new file mode 100644 index 0000000000000000000000000000000000000000..6b03b040eee506451965abb7ea51d65ee531865f GIT binary patch literal 23880 zcmb@u1z1$?x;{K65`ut~h$u+6lr+d7B`KZKT>?XcsI-7|hjceXgMf55Lw9%Q@V)H4 zf9IU=B>e(rnu$x4epMtg<^fj}OMi$Ucfkb4mj$Q|uR zcfoJuC_OyD%R^mBQ7Gi*_Fr;cW*7wW5+V*2QgDplns(6mIChD$w_1Xm;rk&*S4d8- zpIf%EP82WSe{xi+#dNGfE&teP^9&vY$3Goan^GxHxlf?e;xK5{5XQrB+KHGj~A`cOJ1il~gg}jW7u-v7?K|N0i{#IS+qFQVZa)bQMj_HA_odnz`QQHd|L5$2`Ph%{1Cxj3AP~0C|HpRyyRRnngQlz# z-r5Tp_B#Cky6S&*cGEy`c^}=64Y~_S4iWy3>s2nkcX+5rxN>!V7>juyd~I^ZGYw=X z^N$SSEa8@x7K~FJ;Iz|3!u*QdL)Hya~#tgNhVZr9`E z<2`Yl4r~27%bgLim_;TgbE>M}+O>(#_`x0i!cBo6;Dbrxe063+PM-Rhm_y&tFe5Fk z*6EP))vH&`%td*5Ta#7|*9!qmY$S$ZL!VgL96jit{zTzBrCz(jGOAmQuLaJ<1l@!13E{;1dxM5er6GWF+ix zrRSHhPi$P=;rUg8X3Yx$ca7rDpFbaT$FSz-=R5Ig#c^2F-ymIzRWx);4GauwVA}_W zhpe2OV`F0uHa4gj7$3yN<=`iD$^{rC++`vG_!!OKy}U+{u)7e!Fa=rJy&)L^?13n4 zcSN0wLkpUxrzfx|Ozicn+bN0q!O{9hZyk)skI~W5@it`=xFd9;@#vJqB$<~+G`@9C zvHfh|$l6~0+27wkQ|BTIg{r8j;SA)fSF{F^xXk^&gW&E<5;#3M0e^IGcdw6%ii(UJ z^*|mb4Wx=nzQ(B<1-7DKK7VUAn&<2L=tc1A&Q4-%?8RZ9fQyq8pYxHJ%{I8mZkH!@ zj{9W6ZHtHJ%gf9573mO2e_FhN2R{{+sHmtB^6I>EgI=x7*Z2NiAvLvU*i}_k_B&Hm zSy^jK9buo@z23c2e`_-M8h&3`i@}syH9qYH`|qC{F|yS975gXKlXyymJTQ7}2DLIV zI9SO~UvRsW@>E_uMWetG7Z>knBlY+I<>27ZEsoAt($bnKH&Z5i#_MPegK?-+KY8@w z!-ul+a=*2yD%(Mhdw1{pW_`?*W?^A57Z(z0JX#;}Yj18&&CB~>xqWeQfsRk#-q8^v z_L?k&nu)1!6ow{9j`QO7C|IY4yfxfkXxaLimLjdC^&*agM8G|sK}QCGN%RIYD{N!XOTYlj6u8F5FqIB9`afVohqn$ZHQ0uFq-aIyySPz~aq6&d<+7|EwMY4>vGF zo;KVVDAV?6lkz$WLJbWK!J10gTXc&vGpVq>yuCZ~-TIS-My8E{$0}Z3U;7zPRodj_ zs;aBw4y^RVAu_YGvnM7dxVgE3SC)*t4|*;R6}Uday?iRH#m;tBmfyRI#TI_pJ;iA? z!;8ptqc9cn23PTKpT>jBm*_y$-1ll ziis)M&D6qTy247kSjF{dP0l1?YisLpwGW(9CYsrkq4B5k7+dK2`mpAZn7Ub1Zf>py z>ZN#Da`G3q3*gmcrb8Kl8tmlcmebP6YX@(0)Zk1#E35I$;O)Wm#DW6KShPH8KG!qYSV87pp^aSS2US%Rt*zC) zy{*$V>Vc%YgEbX_8L30BTNZ^z%S?8+5sS*f^MXUV=H?%uct{*ceD%gZOS28qckbLF zVAA5XTkHS&0DU}E0C|?0mZtyv%bl$!;)Dkq=yAu2$5R&NBjQN^Zbc&43tDWN8cIPE z6B_LGHHE!;LL#D$2xAkIknZ9p%95?Znk5xg)sB@yE-o(UQ@qC@CnVY3bvg zR(qpQwtKwZ?TeCX4%iu&XXkx*qx;8edopQl!<0d53fXw?rl~2Wqa*C_&?qfKdZxUq zLa%KlBxK#s??G&kLbFogPG}65;{I$T1Ai>$<7cHW_?({%d_%#SsdY-t3le1Ct@UTG*s0Ojk>J^{D^Ao&1Co+Ff$eIe0c**Rz5REhheF(T_aZ?Ye5j zyL=x{gv2{|qIg};_O?4C3Y{=7kA)bS&NoZq&r~}E{tMZ^^W~sq~$?R91-{qR?gY3)!mJW z_`o0BhIc z8%HfH@VO*LT9)T27oufI;i{-^ukOR(7A|(%6E(UvRY|i%-Ut}dHB^^p<2%|jeRK2Y zPoF}evmQ5YUVbYel#RzdqF0B1*hzmS>>V8!*Vft!Ql7HS0Ys;LsEoT4$1J>o%r@WK z3!NY~I-1wz#QbP&z{bYL{Fm74i3Se=7cWmlsZoXTK*}?Q%ky*l^}+P4EaQWv4g>;W zuH)!<))_&!OgRkO7^ZpoGC42Ld~3Y84AX(At9mDo$1__l{=>*qDD9&_4V-7 zMIP4QU%!$yTytz7uPa(xok_T(SuqY*lL{YVA#IzzFY(~GI5@KvR>18#coQ*`3O{Nw zcJwikyxrT%Q^m%{&gM;o*VL$*nhx{{2pk-6pRCEj{eNm`O1ZjO1o;0E4XzJ&pF}=jM_N3;Xy<-snGa@wuzIg(ock@#AtQA~^bXYee!o9elsO z#t&}WoG7Q`N&WQ47rV~oG{a$6TUJHot?QXJEL}-SX}96Vy)B4DO6rDdAD@Uwb$!Bf zvl_-H^z>>-<}{sxh^PsdYJr3V3+Dlo<}(^)j~isAdc{mt`+^s`_{xe)S$RcE%W``p z@w1)RXrp7Z#h)6>$*}!84-O>m-etso;ILswPq~sL`IO*kxOCDB>8D%sHf4Ev z8WVSkn-|*l=FH8hq|CWrzoY16P_s**9-q8aNxy^!UEC>+Gyhbi z*W%Cf?w1N#NO*X-+m+3IxuU=x_u|UhiQ6qDt~i6_A)4)wcRnZm%VvFr8v~8OLf@586mBn%LKa zSL`)bn8|Ji2Q?gz++LM!VGcGe+x_$N^VIi&x<0QgEG*R3)z=ZvEiASR8<1*QwY?6|aAksNFoU)sZhDSz%x@@rKJQqqv!^DJzib}-qS{V@$ zQBY8jo}L~RH3k}!=BB2!(;9w%pa~ob}#n5@}>EXUWagp>WC^9^Fnmeu;Q< zvXGGhIw@~E85#%cWJ0*YOLa#4C>Lk%Cl7qQDJ9VHN*RC2nj6C7sL$4i91coBUGd}r zDeu__k)KE;f#28bYo?rX@e#D>>7@|zzOGSvdU|%wS>dOym$3Kcli`zrvjyEwmxr-*ug&02aklKU0J=+kYpv5degd*<)&_LDp)LA0uOBG=Dk&d9*W z9+YeMalLZ9iycTfKVGuT6Gc5XYS%YEP-RVu>)U1yG$$rGt>oK{9>8yH`ICjoVSkB~t_MM8z&*V??v8jF4=ijwi^MQrd2LU*VdDm1C4V_~t#|Q0-otX?NzVU;lrKW*Yrlfh|E}gi`{Y6p90u7^?K}(cU7A?oRzCc)ec9Cp??44xy;f3z+&w5A&@zMLwm@&>T zCZO*#W^2!P>zFa0J1VJAzhG@ujU6bNsaHHTC%v@Toha87xS1-QDDH_}enH}9(U(}+ z_-*^Rv(yFvnq$hTL%;>lMfML&Uz(wOsNp4fv zpY?T-*S0cDFbtYP>U||%kl7bW6p6K=#b-Ybz)&#oCAG{ z%h+;#iKCy{Z;&-#FY6S2uU~Mzc~dtSOMCx*<$)tNl?{E#q~u;24D6DU zI+l>^s;~@H^w2EFvDPe8Jv>cuFCxHEs-=#GzAG-~f-bF`^xZcT7S<%gL2LPpFmT54>6WVF!U~uY$*BJa@ShTx!QWB zHg_wgwj=E3+M+Tzm>v82WKz#$AtGMmt?BTCV~;yS*ETA++*`tqf#s_NzgVI_>gVt+wQb6V}i03_M@ zwhal}G}6(chbZT%;nmqJ-aE0;(lUX;ecgEVyeGqHZjg+oQ*Wb^+?}mgd*eX8ZRk+*U-1hONNeMfVH|F!T$(qyk zp-fy03#>9LtHdbfgEO06U+f@IpDGumnVRXX-RX~Z=J8YYNm8<5#7~~@>cyv^#4ox* zLzA#DKLas7ft%fUj8PjQlMD*lD8|R=80JQL%^oN8ob2VsP2ZK|80IGDzv>g zn)~_lPO}fs6S)r`48c~d~R0lOuC}2g}L5z4;0&kGW+7If6T5mT~0=TGSs^sCzqUm9D6+ zKYgT-mTm>#3;;CgeDye9r_iu)h4CuefIwoG?_Q6iYMgVweFHlnwe^P$2m6T2b#?zl zEa~$pv(3>&JdVkXKvjj|Xqt~|#LqUS>f#i&q;r)WxZGVKJRZOQq%Gt=fe0q#tmXx0 zCq*c(YtWZyL1gE{WGu}Q2i6^-n8X}*Lw58B`n%eY67T+Ar z5YrMuTl}Os^a-Y1SUSxf*TN54N&rb79~_hv74?sduyb+(08y*bdLH1YY>t z;KzD5^~P%}h-nv=z?9pi(r{+5#U%WI6ZVyI0i+=mOkP~S&NPad} zTJ8{{Y^n_rp|HDal}Nicq^n)uR0A0D!NZ3;CAsih1BtUOgtB`18-S;XiBUVAzX|sBer&5!`Q+TJg&DJi z8FN(Q-Z{7Cy>q(UnUe96k`iq4_Zqd1axyYjjb9(I8ucFS?R^@H1E4U#HUVTU`u;s7 zB_+p&`z5$u?2U@Ti$9~3pJ9jOWM+>1`gUG13)>mZ4|TB=A|EZ#ETxd-)~JsU4OiF$ zmW6~!7ix`u%&6tG%^+svmwol)n>-hV4C)rEqv6 z3qU!DSlutTIl-Pzy94R3wVbA>2t@!i|Ji*rGxvK}>srFzHcw2mgbWJu9@>z3| z!0u-D1{viW$)sJdAc_aj%kBR8giZd)h=}cp@~*zVJ^(ssYtOc{P%twyQ&5NiYstyI zbpUE&IaAAJw>&1GerKKhBi{QRh9&T<-Lgr7?)%GQl*`=){ zJTPXAu*5`ZD1faEk*feP?o^V30w31)xGwkcLHXNg!3n@4;5-`gWF9DoIXn6g$j_#? z)aZ+!6ir+cbLB%HX268GosX!o*Eco{4Ggjy6tuLoX6xM$*Lr4VlfQ&f?%lgb25u>^ z^_RJnu&^-MM7>*0K>=e@pAiqFW)69MX*RwEfCPXf+uPY~ZEv5uA^}?P8b`dr{o1!3 z96dcflarH!2T4|PV};sG72E*&CIe%M;*!uGKQK^GP{`geGp`M2hXn@*r>3UD;qWQ- z&9AUJ32E3sDub~X?t5UJ^k*#N4M3&_|pC@ZeB^*v$46!q*C+}AogS- zzR;A~T3$bB321ZyZq>oz0&W(#(V)+(tbB_&kN{pb>naSrzC1NjZtQGtA1^ZrGw0bT z9O&%y_f6z;$*7dX`?fw)$AfLZJ#jpet8Cr@+CD_KGH|d6O}GRP5d@;I^Zd`-accI1 ztC88+Bwqk*k7zG7enWwR0ZwFi_-oLa1@Q6l`BAg6DX6u-kS7-n3eQ(nQE5l+?SY{H zy9o>cWTvfGU>Jcr;EzYAk50E;0nqGM*w@I*UDJZ}LH3+kD<U7{@I#rv^8t zsquxwPeA*$?r}O6!u}sPx$Zs-9{MTT> z0JQ`7kN@dcoRgCi=u;dVc@2%cYD0^Bxed^{LfJkqiBVBeAr9m~TI1mX6Bw;(J8?^F zd)ONYq`mQN*4CERmO=zdWiQXteZV$zALpiw+4Znp| zH3kL-=Tm3g@nZ;0_vmJb2!Z+*~t# z{UzXYwqTaj4Dech*JxjW9qcUz3zXQ7n7IYYZ;?uzxZrb{|Ju@)j|4_SAWNT~E8JOp z>A-$)evhA@A8H2>rmZb=b^@K?U=Xip<37Kt!+#$!EKv$ZT(`qVR>N+v6>ID2q@<(} zdKD8DIfq9_y!IOkFc|Fb7~f=>i7hw_$Z##Kt)m0aRJYE*pb2!9c$tGCa~6owIXcgm zvfd{)01$nAc(|;r%x-fu-;}W_u{-$3kGyFy({uzFrQ9|He9N6Tz)xe@x>gUbudcv6 zYkzOP8TfwyGzEahN_v4Cvpx%Tr!(X!qQNgZB0wHIk@1d;Q&)t8IS{S4jVuWv3Rh;x zYGG?@YXAWgWr||1l4jLskpz)()g`0e_$u2~X@>XmbhkSjS58eW)?5b$I{};16n|O( zST-)R0R~4SD&#I)+`nX1*8ROPh~7bg&qlhtv~YtVOji_>y}f<9_7oVDN_~2shx6l` z#y~qSMndIZT!2GmGO#&RK^zq!8vuPY|K%3zI_F(zcvO_b-keaCy0P7VMMSrj8B}om zUV}juHT4?6Uq>FLD#aS`jDYDZ<@QxaM+bnFa%QHs!4Q;$-&F;M05g}Z$%Ar#V}*#OwY9bL!&TgYJk`>1u5}1R)|L<@qVa9J zPK4&CT$U$jULZM#CyuNho`a~nH8QM{z~c}(^GcX3Ms1zT104QC;%RDLn0%UCgB!!b#)*Wfa&76)2U_+ zEFxcH-F~+kwk-h#D+JyTHiXGg#^ag*XE6TK(9j5E->kLg zqM{;3&1wavAF-TZ=H>#B?BBlyLHz{WGCddZ|ezyxSf&^iDad8o3GH|?MWsS(6?&zSQrQHy?IhO(c zp9Biw@bF>akb%UU-di(m@3IjB!@~M&U>v z_jdw~LX5dVat4R} z{MG+0atb*67d3J~%DC%!%aSl&`d`yp{<7=e@nV>9{GdZDf3r6W{qI-&pGh+V19lMm z03AXpAIRfpD;{HHcAT=0r}HQJs|3p_$E*IL%cO-Qc^E8c z5W8AEUvTxVh!ouR|LPS1M*l0mk7=uH!>d^a_4MlAZ!TEX4r?n@O(soQSY{=RNkM$? zg1!&mlt7*-n~3J-YrQX@Q0?DMo?q;wR&tQ?G+a04hRB-E_PTBJPKwSnWS@nq(2ow7 zB=2ep2R#;)zCJ2(UVFOc&<~;6)Lzq&wS9Y&<219QHCw2`n%CEV%2$1~Gj%!eO%z)8 zY4qw|&FPKPMV?Ps8&dNUVVWD|!I?EC$W$R6GDhZsv4 zrxzq_x*JDKc8pn?XJP{{;{{yik6MN@3^N4suT46>%JgYh?RE8P6M3_+vtBklzM;y; zcYbpu)5vwWvI0G#TwR>2;PIkpaNv(X4s%5EO3CNqKvEWIW#v<~ zZu|OIH(kk0E7D1aqSW<;cOK`~XuXHx!SE3o;X)1HT7L~9%WbA*z|{``td>WttKDqu ztQ0A~$bFD|+ouw_JqZ-s1$wQ)I;4)UgLpOz`9BnmS;eV#c6Oazox3elrDY{-EbRM7 z8(D@BR3_Y}UTxRd=SF&F!q6And^xqKHvtSR{QFG^bf!UVjtXOGXztjJwj^s!?G!KW z$FLkYs%*eULsSQc;;SPbW47V-TR#Y3_DB}`8>aqCG|l} zpRlzepwK7G$0tm*0(1Jq2Pyf`k2%wC1oN|Qw3JMI-ZgxCFPwn%>U~iDXjQxFyAI)r zkeVq-H6Mc$cy=boqI9AowDTSJw;o&$8s7}0UW=l8HEDAqx!1q>`KcC`mCc-o>l*8; zXlQivM@lc)Sld0p$4gJoP@PoiQc^Nfts37V*&_1xt0nO3%lIuavT1eSkUIQFhEaG=Q<@B-wi`}nq-@RYT!i2T+K8#wyRSoPVH>qF5Ih| zGloi7dbE)rlBKS=VUX6Zx|BS7N9>oaP|qum<=11U8VwrzBakHIJ=Y5l{7SpE_Fv{z zveX*;%bbjny_hQ}E)H7=($8OXqFc1-`JMM1E)5wn&txc5tUOfg1y;1M`gRt5f;ZPE zKTfP9lDp(tn+Kn;!##ukY12mu=;0`;T0h8LVKoD1fiu$5=M=m=Kvr3G#(MMQpXmHdkk%4WSDHcplFfbrP+Aez-eT660IghqK&X>d}uWy&wo zy>!1zM!@B*QyE*SOCS8WdSr9FDR7hH{d9FRf5F}wMM~Nq<JAEL zihd>BiW@XJn}u4)>13^YbyM6TS^?qS32|YU>sKunB$E@d<3|TO=?jK%St}4<=s&he z6`Pq{@@}^j3j}XpSY(#DD*f*MarDECWlT?-kAsChhQ|#P+wHAW({xr%-(q5^J?1vw z+X)Z0*`L}v23%on57*Wy8p$N^*)3TA+4haGHN3z&B=CcF z-j&5?5NwvCbCXbYQ&rsl2uL5R^??l*{vKhUbWOR3t;B@fk>8@Qu%7c&E_C7TGc70< z9$g{OeWah)AFrLDEb^-8uvJg+lxPu zRIOB6Z(Vdg?yaog_c-y+Y#iU5jwN|4FR!SU6%jJ)|Nd2n;wSbRhvf2F<@ZrXCv8{$ zn$l9fecUJ!5wWVOI)nCg&#yWkFzrMr8}-JRm>NnzaWkc9ndoXLE7f%3o$(?CMOUT{RFWV2KEVNvj7j-r=3p*mSn&l@vU<6I99w(B-Ag>{z znvio6F0s*B%kBp2Ib-@B}RYPdX;zr+0e0kj<&0%F}Iokch zZ6c?f?(!wes}LQ+S;qRoSjr4aun)lhcZR4uiq{SeW*G!rHuAD#vSqB2a=+$+i&4CO~!Yg1*xrnq}}K$ z$dYjLccUkHaPIA`G^zw;|GM{Xd@;N3gd=TVU>ma*AgshU%XS5 zF2Xl1@^VgS?7u2!GIfO*{)X81^tTsPRz|zg^N_ff-K-5DQ@!5J7ZQ6U95w#=lc#J> zCEqjJ%W-J|1F0%5k+M!gzCl{i#ed_%e}MZf_oD#+LHQvN_eV@fH&Bq{>@Rn#8peKw ztuhH*zk`A@eltTG@p)CL*A3-F{cPZC*)SVfr)!wgo2A#6p#=pymEwz>1(SsC`v+;+ zVG7ETrrV>{k`;{FjL4FrWM*}5e4 z@DIlSr5wS?~HxpP#?ig_A|9l~C84z$FR=wCV=SiB9}hKEE0qcahgPpuh;g z#|Q9;DSUJy-`+<$an`k1<26otMw+EsgZMSK;x^4l?oG$mZ(yz;6z7sTQu7HL`ng$i z$xW~ucGUfPP1iOoQck-iS(Edf=9+v9i;L4WBR%u!3U$);LViEvgC8C91WXQx>nm$p zDkjSw%1=KFswfQiB2ta0l3*kgZa0fqgHimkrvq0phtIpWn;E}fyRT5YEaWtCMEn)_ zHE)ve6pLlDg%j%O&Grcbf?r%s*Q<8XAj3v99ta-0UN+}kvYa|Q!bk;Nc`W94*4pX1`fHt$y@6(S60rnUogaQ#Hl#Pl7}NRhq%vi)zw9Up zOXb^oJxA&-RtJvh7K{~1f9%)iA?Ur84t((znGKR~j1h!_z0Q$`V1|A5INlJ%^_;Z= z-1aZt6b;fbTLKhJoMV56hdr9c9|RC66k@VrM+-ot6vD21(|3|X5;%)8pT-{C!S~XM>OTwtDL?5L8Jq zn;d#p#fNRbQr&kiLk_+*G##XSN+$i`Kc~0O23=9SiS01z@5yPiWo0_=W1@}87Kbk~ zH{(9V<~?XGmg(E~*!2BTib}90RIBLMsk6;}KS;Q;o6coL8p5V|>?Vutee9y|Ned%8 zSyubB-r6nf<%?Db5S})MK1fnhF;du&FfofyKH$h zeH&O>)DqkHK#tj9)iDA&ZPw{IyYZSJ{GSs%$vrA-884p-ZGi@0UX0ZnKk9|h-;Evf zYJb?ta5Qkvjt?o8Q9QhsiQ(qfR-5(iUEZRo!Cy}w=Hf!I6Zq^;`u&=*E65FdW7Y+_ zwO`|egeK-zyM1{my$@01c&BKxL`EUJq<=$`uc4`x*1+qI`~y11O}nAwnU@~R(V#?# zjg7$>=noOr+xerQVkA8`g-OD*=UA(H$gjJ}>vFO6ud`-Ez6cl{)aG4jb=Q5px{Lb} zSEeus8cvwxIKSm3)d)aDw$*({(BI5zdmtmC;*>dw(PWird27KRPK|f5ZMewz82G4o zR#TlwQ5jKv#jI(XDw2{)zBM=}q%=XqG8|;$xwC8YwqoZ@6qfdY_s^Ms|b4)6Eg_zd*ppN$As z7Z!B!W|2HqZy)SV!WYN3^Yhdn@9_EZVMj#&Y-j#qMWBsEg#|ifOOooC=-9N^nZxs= zcZWUEu&l@qHfKej;4?l#-<=+da=SV>@A^@8WXV4rPI6@mL#vX`p@&FrdNhodmBA&% zrSnbu9?X#$v^lW{d9=KG^Y_$8u15}^nrW=>h2Pu2b8l#Ix-)d|ZU#zLf!^3)0SNPS ztO47TsQah@#@o^pCT|AT!eh5)y+AG!y$r@j^J=iXvL8gj#VyrB@Qedhj1$w~pW(D# z_`_s=>K8K@&A@f8?HV(6iz{Vr_(2CcqhHJAykbHycSl|k>D>^#jhREzD(iDD_CKcG8>;t{$jGMF7`L5xtyL;Nz zobmt-$ZCmvZc6Epe@=u^{)xFMZeP4*P9RFK_}sV1k+FYHYuT9ahis5@vya6BOJ9nz zvJy%~`=t4|xyvq*ZKUG||Gl9LV|a?@MOS~-+A@e}oO0g{;=2^aEOMBgadWIF&zHJ+ zac%x1{}Q%IUT1v=;zP|-d+vS3I9;uxs$O1ZB@V5>zB)KOaJ#%Hk)+`{i-=%C>h2GG zYnbFT<7)9JiM`{>wwrp+y2=$j>7)7R^153N)Q9pjwu)s~{d*lGzdM6$4VE{6PD-%d zbJeC#lRiNd>-n+HZ%4S%ow2{VMVLbSKf1;77~jClvqB?~A?CMtj<>OLy@P?qL~!GN zwff^|B84Jv7HhuR^fx%vxGcp=l%n>-%ard?sKle@gglMfL)bzL zzjrGDE|xqX;hyjY;US@AS>TtQee=B-9iOS+4l0Yz>;Z|*qP$FyoEG|jx2K0Fw;iS{y!2c(B!cl-0Iej-@knF1Wcfl zycYqox%C&A_#eW&zYxssf1tmOf5E~34$}M|rG9^%@%9Ae!naztyHcWHRDSmA{}#Zk z^BTu5L+|#2LS+A5NBnOji2v2Df2U#0BKc4CV=LBQ;>G{@llfQ;*Z5t`lQ=j4p1svo zT90&up#lvLpkqp*q&RWMVkTSSJq>?GysIRqb9pjD>b9h1wLe^{UhxKb#cHxXi243~ zb!-r*G?KG}yJXeDyf3G)@Os)IAzdc;xzqld+zFsEj9$zFl}CcQF=dIf&E{yFRYPDb zPsQU~`-~sOo>gL$r-M-y;OcZmI*BKNImj{ioCk79P80=~3Rtxfm(jX>btSK-7vE{Z z8|(b+^vY?b(nbfctDR~SW@g%M&KA=z3TZn#X|>AMyu*fGxm}aMU?`LyD#ODSWJiuy zmLup@KM%Dm7kM^H)8$^fyBjfTxiZxF|Ngysa)NSv1gorku2oK}M$cGijVBp3gMm>i z4OC+&goeb;<~1;e{Aa`uAf`a@296;x9C)s@{wN*!qcfeJ5!qjt_Va{fR^M}4$Jq)r0(ulj#0Q&4_B6a#p-nIrYZv> zBWstt>d454zz2=Z^XQ(WahPRPn8%Fu#H|C7AvX`P$4QJ)`m4vJJI1;x4rhCZI?d11 z0!g_Jn)+pp{yY-3|0)i|1&2JTnVEI2RRl?erEZsDfEZ@xkYpR3MnlAN!jv*MIQZsd z9jG3ljX)5zHI$Mvc(Q%N%sQ#5qN28*>koto(obDiKBSoII8}lE&3yX8m-;O~zf8h0 zP^Voi1T@fTv;dyp(mt%U)lgCruuTP@Ud;(9c^y}nJBdAwk5!{)$liDl%KBjvgiX~T zc8-Mb_~~rhlLsgdwW1gl_V@6To zNX8MUvPunID5a{?q``1Sf8~QG{Di~AYs)+&VuT+t!fqhtj1)9BPAM#us<4dQ`uIYI zin&NrS{n6|uVzCT&+Gdihh0l{*UE3^ubLH{>M}B%l?yW{sR(Ep9go%m>fJ075&{DP zy2d^9THoS^2>w)~ivuKvWSWQ|*%88~j1MLZmkJ3wY|KRoM>c?Lii66aGWSXyhcroB zi&2g$%@0?7c{NHR^NB{~&+r6>*tY|UJ)hnQYd?ObKbsLqbUEDp!D{6L=kbZb;+Wkk zmM_#`eZ2{=wIdk-jQztG&8D~7a} zp>c6BB@7m(v6etJ@PsCwGy*@zU6BZnDZ2_FTW<$O`ua}(_+gGC2;xy7cyu)r+4?>RG1G71YB-11hKbMhH(M#^+iYi1;b z2L}cYP8|?+mnQD+*+H1L7j_HZQS?ki4UeivNEdPp$(E_dzQJ-TB=%mD)gMA5-p$y?-IdCl?7)ef6 zP#YRn=$oFV=dAedb}{dh4-`O;P@PskzjAV-c=xNa>F4+)zP?dZR#gYMO0n|b_8q>; z%V{?5(L32MhQ&*dMnNFYmv5g7V9m_^d8q}cBJ%Uk-Q77hP*}~Qn}OtLFrJ;WLjQE9 za-#)t#x{Le2rbj~8q5BO3OK6|AHvOMrsn1vjZSwPrs4UVK;{HCbR^R$+G98N&r4q5 zmT}vcwD;mC@I)N}QQ`FkBD-OxyIYqasu_u7Oib(nENRQx-m~jd0>H_=wi4O}(l(E? z`Sgx3ZToFgny3Dxe4Uu6PEMPnC_6iN-G2Kg@Ruol0u5Z2@d1g6FyL&8)6}5+xwv)B zzt(0*c(K>4M9j(GKWezrZIYVa(oU}~&fFE{LL%^DchkjiAmzlhzV~E1SiOu{Op-3= zeSDxySg+dFcA(`H;qi!a1>D?;`e~$-BirTmDRQx`ChIUK#jxkdYKpL2w};7|HDm3fJSaCJU}GPtvC$ijWoKy% zY5}2h>JPL~kuI#Tek0A%PgSV~wz4^De|^3xy4p(-5g}fnMS>{Jw2$Bb&pSwVSK!`K zve!^j7||(PVZj~vY36#ZGq^y zT3LY@R_agXl3+Zl^b%I`HY*m|yFHmGc#| zx4A#HgwGM zCbPr5GMY_*l%ezNurDoLlBej@6Gi0h4chTMxOk7eN&y4&4WV*3Rv`zx;$~ifC>$25y#pDI2~rw-=H zohc__DA;d+KW=Bk1q5D0ou&;*voQe#+R8K&m#4Eq!~}+x^<%Au9uXX>uW8N3cCdg9 z8+^jNCp7f4Oy3ii%Wqs<6oV&vx^F~-kzIfEE3(%UX+AaqV{@wo49FGYZ`2MQUeo0| z4x|uEOZyxhJB%YpqM7FbEyR;M@E%0a?P4vJ&eF00ci;!nU2nw7lAUk(4}-p>)nb|d zEWgZow#a}Um(}P!5QhTYQw?CD7gzFv?cItYbhzRoC3V`J^j)>4P!PndzlewD%)I-~9u^S?>$&@xo5FP%st=c&|55#j>Xlncb6no`- zf9LZzR(&r75T@ksT>Zbzw#t`+_ z9YA@&j%v~ypPMO7!KgOe3*s7&y4~eTTy%8aoqK9Iq}zM*t8Kv!TsFF&q=T{~;_?a$ z>pVP?0KeY-pyM&TXSvHtz;W-Su)#YfX1!x85FIFgIL+5imc)Cfs+4^&xEvN+sYyuk zH$!0VgJjvk`AWQ4!q7zu8|? zaa?Bdm8pL1t)sQ%y>A}2Scs5?f`*`u1Wm&ABgm9Y`&Sa%k zrl);=9?w|_RQcyCJy^jc#Gfn+WT4xVak*M)O0$eXKiTdixxvEPCW(mS7#I*`>v!b# zzM-gY4ed4rze3Zhzk-)FVF~Cw2_+OB zSNmV7&rY^6{Ght}Wt#y^$O7>)PtP&4l8#w70+FY#3(%`_vuriBNpSZl^E==IRx^qw z9f(ptXye}`Z{O7`_{q?Mg8Opi(P?KwL;?zMA0%;wQP+$tFPpMsffo&t=2#Ca@hMm! z4t`RSe4Cko3#KtvwSk6Q*T@(gLb z%IerW%}K=qFQ8qq@MwSHgU^5gs;v>F@9Z9;@7^ucI8;32pAv%eH!J+I0nf{LiwGfO zV;dM7%TVW(JfR8B#3dYOq{@U|Y;)25>yl0*%HLDCr(D@eL4Ha;XH?c}KuT#bNkCR! zJ~3M5XSB-i#qDsH^`1Bf!-8=Hkpw9*@h0}bWChtR;M3Lqq`E4mQwe6v8phAaz!22~ z&Che>)uP~mU0)P{9X>uudUQ}i$kxvP@^`t#q@kk!Xk(+8>f#1lN`BAQ^kk+~T&mT~ z)7e_C*uE&N@s9Obvj@x=T-?t}OO?%D==98Dhh))nRauWSqsS+_g9bm@W-#R4Yg$Pe z0{1=7(yd&J$yjVT*DIbeOoz`G4%RxEbsZ7DEz2MrgTfauzX{(CYrC+&r)XhFH+`%~ zIK9M%yo$Jfa?*$*o#Zhix04PkD}$srC8XiLzG7rLH&F^_Im1JlT-%dAVo8ZSocep8 zTv{%4_Zvu2sHE+V4@>!M$X?NJ9Y-=?jTO`p1JT7Oy~Aq2>9!)AoHz&z3rN#OQ^5O2t;Qw_mp#c&O)a*2$cgRb zr20e-JnTV4WC6r+zB-SKh$$*DVq(B?wOH-50x<1hrp%f@9(YgH7_XYVRTvQYHC!Ex zwuc0@v={^sh@Na3QMoil_=39A28PT`0|hcazXw=3J8_|tW6t`fS%taD*<9mfwefS1 zO_Mx5;SqSd9bpdMYA4xKdkTEC4})S0HSHJi3Z#!^)1%S!?81g#uQY&Xg5-k!|J}Qp zDhyFAEk9XmrBW}@y7eZ>gs$WPl}?RAo47VR$0!Nkg!o0@V5le*JZ%F9RkJ?6dz6O$ zsnskJOy}^Uy0pT_|0*!k;3@fKA>jD}!`buR-rSQFr{F0M%Ia}3EadNYhBm-`NeAA? zOG8Z^;m#_5_{eOgsnUj#(=siI=d_pP5#kG-g$CI#Aa?S&33R#nf6BS;uO`-R4R!%V zMNvUOK%_}0;*oX;h)9=WkPZPt3(?RMid03UiF5%0>4Y8-LXqA(gx-sRP&5QW3w+}_ ze!tvx?_Y3#nOSRAX0Mr@dH3@^yF908B<}(vJ#=UI2L=+>b)#||yJAleTQeDnkA~#m z)cZ-^n-ZbTdv_|GuTh``Hh>p+zvH7&Y3u$>U&&#TyRi@>3=1t7S=7Nzb~dKmxKgZN znF)^Sd`Lj0Wpeqy*XQG-sr;1N8P`8T$BXe?cc{PU%OuY>SY8Q#b z{+SsQ9WE`kd_Fz{F$;g}?hmGGxB2&XCp%x3g})8*OiCm%F{y2A1W`7zB{D$*R+)ok z78a(;$~8@IyV&k14fBt+wrWaM7R`7K!AVxqf`SSb7AE#$|D0-`56I)#&yp*FpD6ioE8K^}?${#V2qP9`jh zmzS2VOa;-KfBBr;vrUS9s&u`%mASG~kXNJhnMQI~&61hcgVS%1(J;mtrbF%JWow*! z5yIFwMEwOuFVERIt|$IisX}J}XF#^iU${$6IxggxckfPBd9iJ~ol|^fXxPGW{3@&F z2#{0=UYwO-U>^o@n0>9q@h5cOKP92H1lZm#0NQ15GJ;!;vgjJp|UbF1@Euu(}%`+c{Nuee1`z$BfmYaL4r;WTwSz9V8%t zV|Hlg=RB!Ucm$TJ;qG4f72j?}f1W$q-~S+4TBP=HQ^|&!7nPF6pkwgHf*#^T%b<8m zJvG$gvG3mjC1P59k}JR1Merk7CU8MP%9Qte!=@UJ7?tLmAt}#yilSyhZ|@Fd2sfQU zu|G3^fVpEzC{dF$tw?Fg^GCAJWWpDKTN7EO8(g?8Pxk%&oB`6TJOR{1pIg{_9^=`M>* z8PxE8ueAKcxc5L=mA$>8qGF#X$_Hu_>u8rCj+mhY1!;wU6UKP24hD>xooL=uWdW_J z=nc1!$*N(`?5OZ7G`CP=hqNZuEI{&r*Bga2DILj#ZGzr`)5xU9YYU{*m6bNgeHXX9 z`&ydLZgOCg{J&d71W;G5yaG~yEuCv~lZaHnc?1O7-YQ2de$7|OAei0du-pRJ%#tdup*=B_x+$UaVvtx0QD=vDd`tE8)D-+wa}oa;Zw%gH9gCP?n|uq$uTwOOfEYBanZq{!R&a! znfPM+n3`!1N=qVk#so+6I=mU}iGF!|DKUnK*&}p+Vs1%5rUUgBM8yz3hj-Liv6BH^> zuJ4Ez`*??!ylxb!Z_j;FWjs&VQ*xwqJsA1|$+J50_16w|ujhO^f`QSkzhu&=hQm6_?9 zFU3jF868HJI}$a!r$OHGU%lgFxbbOeW9X47_pUs$Ma(_Cf+Z(AnUKIdX!!Psflp!+(Iq&iQ5aw*|REZFs6+rX7KLaZNeQ<=K zb#Dx!RS2zEmo3BJy?Rw{DC@79?cN9n{L(j^kq;@PNcl`I`Poqr{nN=w`m)l^TLOyI zhzni)0ZyrQggy=eK^utSXb%H1$e^{~@pU?DIGni9l7U44O}NQS~_+gE`*LV@%reR%|@kinA_(i6o+<2`y{n-Lt72Bbs;-_ z+9%wN;^Z%rqoQOY1Z${qVg3>+#_z#Adb1j5Bs<5Jt7i{xe}6-GvO;6P!*-ZY0^ANr zb#4BT66apr&D8~!l(eLJA$jDEcOoM%);13c8G#&1yAccniAne@f}kfR3f=P(ijala zQ>&RUTP#p$kCrH5WujsOtgimr;~QmtoEr|;`0&BQs4@j%>#>$fyNkzreA?IcWj#X^ z%szeSS62;u<%>JSu$dV4m+Up%Rgo@>Bg8XxtKjw(Ra zg21^YDjUx!K-CQRpW9F5^B_MhED57UTvuls6kMn%Zs*L_bUAhP4^P9y0Yyyap0WyB`-PHBe8fRG={@4AgV4Q;3igm7JDl0_k@Xdx3*QW&d-@3C`3 zsWtTR<4?Xvi=Mu|ykSoD1qD&Zgn|skmoN8$;ddBY05O$aIyUY6bX~B8*oo_}g@N($ z5%R2+t}aZq^U~>7Mh2IzE}TfTz650OM6C*ElsB@}onUBRg2hUUm6R8055wt!$HRRr zG?lIR@43d`Uw+jl+Fx@wh0?FdgpG%jN%RvCvuScN`ORdy3 zdy4?@`oesJ&f3utFlpZUA56loeN`%WjL()$)y>gStajzQUukTt@WD2UDlsg7>d%5s_2mgvQdX^_Rv_^Oixw6$Sy@NT z%{plGd@UM&?n7#fD{Q=!iIbCEPR_E*m@`^`YmD<3#hoiq+jm=Mb-Y+qgqwS2zG?aL z<@7qu2F?G4f`BSQ-Y23KlzP@ivNH#z>*_9VY)td;kjl&7`}^OpEa~sr$d{URNs<}w z?NkMX!r~H9g7=yuZ|0XkJK&9H9Cov89oMa%rN|-?2`b_eh{HozP%vtI{9?o%{(97o z1-P+0#X0Su(Z>L5SnZ;YL?$FBcL)}Z-MrZq9o=;RA|7N!c;!gJZFAxP$MEN>KVZh= zD+XZ%z?nZ8fH}M0R3e2F=n16#5CMS0r9p?1^FUUg&=^$x;e)4MF568hMFCkRCTAg; zsig3q#3FbobH}Mu#;R(|uV3?A3o#IImC{4AEWIOxfY1PAVcr3T{aVJ$)Eb-mwx&Eg z@c4U=#+usNghhXTN?Vv5iwBrk#QW;_gqJZNk<&A#lFlm^stv?I%P^bX+0x~y&FMHc zHVr96%F>#BiM{?7nnEg_#*In|7b@M)e<3hZRn>(`5h?$_7~N~Phf)t$;8Tx&kyj_k z&C^U&1Eo1`q{w7&u?FS{{1LC zsJvXtZT;If@58e(syrUyhb5kTmu zwO4cdlT6KBppRwl2{W5F4_Er%!e(tX$+WMA|DkD5xzzMSi)()xe122R-|Z+leHWT=k42qoChDdGtdgp3FlaaCS(Du%DnV z4uQX(+KIeZMgkvqq|ZU%-$eG}YW7N2U+kUqZH*wtmR1%Q;@*OjvXT=8;!$9u5j8^yns7%R&+w=GPlY~{d6XgWJ7$F%=KJ#blZ}NQ zyI;vFQ7|YiZHD-m4g}<}u&{8kjC#;q9#c~pOx{H$_-)zAeT=Z~j<&WtM^7aFM_Yrd9utqEV|bA?tg#k;YHl8?*#FshYjsG-_qENc)vq@j z=H5}yu_M!9OMQku$u#52S?ljKmRXP~QX053uS)hAmU0HPyIXFmaq;!l1 ztQ*(Y>0pQ5s`iBiJRCYSx2+RPOS$2Zkyz0;R8)#|FpKq3MoO_64>Cbo5_y+|weJ_Q z`;GdueqNvM?P<}_(TP$;HaOgeg%v~@+1j1{h`&zr$pyE^hB*jRd#+L(7EUw-a&&Z+ zsyN5vex+-_!|{}kj=ZFN_o>p@r(c}A5sLl5MuuHscqUVW6rAQ&;;ydv4_DNLv9T6< zrq|dy4LvT0QzBwwZLrxX2LuI~K;G@oaw?<;==)D$qRf7eXIC|74{(use@zgGQRrV- z$oXa92EIEYg;iaS`ITR0Cegusu!yiXp|EiMQ8z_vNo652Iy(CH?(U}-L`K5#*&nrxW=6w7>K(~g)Qj{*CBuj(C@d|{;UL^r zi`|vx{MM(NmUm}k!d#h;#LR-7#fT5{6eEV@2D;a;i7+VyMHcERnHs)dUD14< zCk!|`%7;KCyZIpBwuadIw7X|#%buHp#f~g}4;xYNIs@RAJgjTr3Q|qKZ8JGnUOnUUOHvya5FL@q)QHo zlz%~g?Qz2m9QB9F2jB`%{<;3O=_nG1<=&Ih8mxy09P70%f!xV@hnLS?T&{Ce^1tM! zQ1Ckz%{zp2FL_R>Er7Lfhed;!_F;JneSNRx(;@!V#YVyk%l$ypvDlT~=rEQ=6BD(Fnwdc4 z;pRlP%EnUQELW68*WJ`E9_D+7ncRAH+`KxN!~hnxb)*!-Y?7n9+?dGuh!TUseL3uf zXv6ETzc3-oTPa@cR?QaQfJwf8r~Oo%9E{I0uV*-h!N)gybo|%H<+SU?+dJaP;w5j< zz`=LSuf%|bO{Ryj$Fd_NlK8k3jWp922-BUJz)GrtmC2dS{m`n-%*RJQRkR>3-N$ZX zZr(aMNqoLL#Zt~AC*>Rlwz;*PoevZ$Nb?-o*7hVdKmU7T;@j zF?$XIr9BcAl@Z-wukhZ(ea-FVk~6Rkq$SP9@N;$sB|R;I+3(+MR^v$L_jk*~*_dbM zlej#uK{CNf_=$zB;v>c^vHEw6=e5DphpMWs+>!K1>pjAGiLjO*9bz2!f9c21j#{!4 zxJ8vDpK)2tQEl8fe6?}t46m}V@#ua2S;&Rzte=vKidQfCITaP-dlb~jv%}_~=fT!O zJcNi`T*IX$-+tHek$QNHd>ze*s-H63+4+HspQaN*zU^>Ab8&fqo=|0hjYSgbheMA= z`+ViD!W8zfui)UUPfmRuzY{-c76G1#u((1;2LIokCZSFfCpMUq)TTL1hFWb6^IkkGw>SFfgTXN(zodWA1b*v=_{K-oTL&KV;f9 zbJLb(p}B7Sd3m!hrl!vM^^U7++Q!-6oRwwD2}i@WHfy&DCi}Va>_1D!g6=`^f`V)| zHo}1u`Ow^A-A!BG+}xmrdID@=VX0bM1jmKC){!X!hsK7~qFzfLF|j__Bvtt1F)3DC z!^wbG{2<4Hm!wEZqpFuBc_+L7U8KGf*xS**U|7)La=(25@8z(^;i7FE_SX7xibDDi z+YOYr)mD<|ZnxE2;St@w7IVNyUa(L-an#YV2F9_-mizWw!~X=pr#p~w(#&4Gd;zDR zS&fgE?{paJlFcK;j>D~5&=MmaDqn9XS&__7&?P4qGrQF8`^@Iv>#^PV8AgNM%v`?e z8gRVr3Vrw;`@d8Z7wiUx*o}7dz-*s8y4qUj>c`^{LBu8nn^($cL(n7SR|%U~u$UAI zW?)jBszT)cUt|ZC!l;dt@-l1VeGM(05(wBVX%l-hY&MRb#U9;cf?@fg_|R^ss3J>> z^9={axQ1_1Xt!-mUT7jz5wwNQ@@ zHpfVBbk0N(nbwmhdQ0W>%ESg8F2$sd_zAsS;+UjIUDt>dK(!F}65=H&6t)P|6 zjhRBhOLfkt9znjMmm)Y^Ss}L7^3H^WMAf*~B#BAF05CMLPx)WtrV#dOIiQSxG)e^4sr zJSvJ$RWNd*yT{5~6Zy=9UVu6`V89`h21K*@m3H7USmjQvUj=V+a(WIHNWe}rDpL9t z7g)bL)y!OBJm}|NU;p7m;AV>=F@+1gQ7$oO{02DV)nzxu$U}tC^78(@j=E0L3-&iO zPx&@CO|Y;a#$J!r7#31uVk*ACIT_JyEMKi+kTEfpUG90uCy;9*;dzxtzXRd zugcATDVQik5j&93&tblrtAv#Dw)QjHVIR!jpSim)Pgk>Q3?-p*o?oW$2~*)y|J|F3 zTAiEjMGk-D+|w{L6sJw58xWgmPf)nT!L8w;{hLq zMpqL7V~m2gZ`Xg^Wp=Nu@CaCvx(_CM99q2ZF!1}B9M-d}=WIDg7hQiEW11!^CN}!d zE!I5vuR*Ln)|=x37omB)eChlr`THyxUk{f(Z*rngM6_X7>QJqnO4UHm53IzyO%nGC z6KrBMaxJ4d4{dRN=yU9mIT#!jj^PZ`zJIuX$?;a#2I_GTr<-c54;K;7t^l?hQI=;l zJpt?LdQarG-HJ$zCHMY;HtEqtz(6-e`ohUZW*1JJe+XJRFouyKn3=7r3Qi@M*;clk ze|S96+b@5J7E;BB_y5IFJ!$W=wb;^4bVyJ4X-ZTj3}u&YC?mU)}Z({pmQ?Z$Enb=6Uj5 zb$idC+^buUgjI~v%j&P*Jgk^<_czd10^OGJ36*UVF)`atFc~J=!)rUS!&w!xGZa`5 zx%dk&>v4a%=m|p~+(sz2ii*pEo^KPMq31=#<8N%Ji#@$K-wTFwI_z_3u2wDXy8b&h z!pneEmBiQUuwC#m!ABPT?B-Jht2%Qg;=P&QK*WZ(pvq8Rhhk4)n zA=@rJ*3;^6jm{uvxun1+!Y*nfTkB?sOR7k}d&DNYN=2 z73SkPW%o46yuPSoSugHe;bCJIwFfX7LACc>lyTeY96MWjq=YY0h$td_J#JD18U^?Y zwDW)9Og8YPZ{IKL5l-g96L@*?obRK0kdQ#vKsY7>;rI+OSS>80+!z}h*AKYM7j%-g z<7Q;jvx0&=d)@cOL#rqAwNi~PI0L{(&;u}3g7r5>)6+}qmFUr2kKUD_!6Na^Cdpet zFLIdGrbiS?m=CFj48wz@7GazMa=m2XPD&mwW4B3p-i6MQ!tve+W#53Pv~+r=N#M@V zz%SefWJ+rHlh5vDU(om5&Y$xQ^2gjNXX*-pl!8hY5tP#gZlq#&V)-$_^`7t5VDk6w ztwHGD%cb`H-C`&-ojTeBnUVb!#@t+ma7%ljh$Ni+nUf$urHMD^qPw+rF#-g)yt1~-jd3CUBOvWOS}_RRsC{{qcNE-IXzoO+ax80#U~xS zxBi(FB(SVxaz3khBr+TvD78vZfn?VUswh0LcoQA@hExQbTkWM*y0u}!cVOFS{o=(5 zrvI4MTVrGL*0Deuc)1P@?ThgRGG81V|8PZVePOsk*?6C4V6n_^9e;6}(b#85M{Z0X zg5>cXfjbgKCL&xy*(8Uu{2_Cp>3jd_7WKjK3l1V~z>IDSQ`sr|G%up*ksg-e(OmA- zwi%4-nvGE9ye`RRS#&YL9)PYj#3ha^cN{E)f^0~m+Z5)yP_Np%mj&+c5AGk*>wblW z>A3d}r0KI?ggiG_xOg)bvpq%uT^0OJ)-H<;asC&-UQe9Zc*#klaMjltnAnyLEA++K z?h|9&T(uOrIk{IjmrCPi#~&X%mspShJd+_V)-u?S3h=dfG=#AgEmJJxH?Udmw*tSX zVipS;%Ae;OHBX!uiZr=vzZ)fyll?QTFH^5-JnlJvyFYrwgpU<|wM`N1?7BIB&CIE? z&0rOCd&Y=?N%+ktk<=a;+1qpAw}@ok8{juVi?ui)jJ`22Tv^^{nPN>56YB(nG3L%^ zf5gVY|1=)J`IZzwIq`@Q0Rd=HCT%q-(d*YW99HCMP6uM?k<=rf=Xo#|5GgNb*uPd( zcb8OfK+_u%#C!nSS?%hJ0kB(dW95Z?8dIF(EfbPA9=y^%Vm3%xgF!-PPa4m7@Xp<8j4sFAyuEjdK+e;X&0_c+2nHExuxZt- z+5}Pm1C{i8<~Kit0GQS4aAnPrzy`;cm1R2w-3C~(r0I*Sdwe{j z{ZAAZ$3t=qkVs${PP6L6hUA^I>n=V3Ue>G(NV9Zw)+guwr>Vkhj<(PFh_Q3AfJ>uD zB}V(!v2(P+*d=vkR9o_=5E)VCU{uWz|6<%WOMg zXNRS~&jPM~MO4^mW)si(qW(1UjhTHmVX*)6XPA-_GWhT?v3iaZ`4wb3MXX{uW3qB% z%s=z<%U4T&9ImmkJ{x_WCr?$qZqc14i~LVpyiK@Fqof@QqVWKhnj|JM6q5@dR$$s{ zc3hb9d?ZV;Tnw8{ai_AUs*Mcll;U%%%DKWo_AZUa0a$BgyqMywu+TqTQcM~!;>d40 zjU`K%7y<9^Z^Q{4g@jr|XTiqS(rzHERxR`~TxvS{B}fLSm(LePI{)iyH4D9O#iu8J z;U_xJk15i}#DI(K2fj*VuE8q?51>@VOp0lzyG*7jfHBCLAwfv1i_(jnvBw zK$O74M@h<%4zjbgwmmZe`yFj)e@>x&QD7 zUtOiLuXuhc8LVz3z zSE^jxE0Jymq!11*dTd5I;4LZz&OYC7TU)WV)*1Gmk`xonvSi8nmZqlTT^!X`^WvIcTJDkyP5x)P$t5o%WSLXZ{ za%%)rw+HxN+u#;RB}29nVMxrZ9&R;akT z5+=tYqHAkI(|g4J9j>>@_?IgUpM4kA8Q_uZcZ?CFI79b&kkAj)lKVo)AA z7!IZ9y=*6pQeqS4a5xp9=rpwKbDF~dp<1=6@2B!FjLIaoDpj*B5Ygyp6;I^|HxlmE zKbS(P3w<#FsA2PkxAg}F3!fEf2O*(}IoiG6c=HFa+e4i@Ix_Xd6+R5+C!DCb{T7H)z zXnl4rzRPQ;T(nSEfa_Gy1ae1*i%ZGlon4LlF#>Y}Ck_Y%DzIXKQIFdL=}5g}46#EC z;NLJ{c(>38$p5@{^Meso0E{)i;2*BSQpm|A@lH#tk|>>*o)a(d_A>By0HWYR1v1~4 zFCvnPOtk657V}6BWJzfX-x1OD##pKFT6_|=g*w-EB!b0)X6gyJC_FNh*LIpTOcLtq zR@<*n^=BGthfDJ+n?K0DX5b^{qoWg%j3fa-<)}9rn}{^5NVB>vPaG9W&6o+q8<^Z8 z6^R5Qp!nLw?X4Zn3o2Rw4)Zww&BEe&2OAWqft=COJM_`?KpKB@YwaPHrH0KA5qNv* z`Fw4O*^J`0+S6rLJ3F*GuV#(Kzuy-tQ6Iwyy(dq%(p#5Xf!Avk4}Ne1`cr_zPD|$! zg`CH&$WoWYwzC)wE&janzEp<+O_BgC3yxafVd^2WTlGFjGt&s`A~<_7|f zUaKrqPEEF#m^>DTy+ce>wimdm=Z^CBulQEO%@5O#J2dvpQEiBtnrFOD7>JeTsAS?V zIu7On*V+SM$rFa3hHaD;U8tFP|4|3tfz_VCN3~Q$E)F-+{FQ>)-Q+Q{9LlPPef9I@PE-69KNVN#Yx_$ zLCPRrC~Ev283{r`?_5A9`H>QX5UA6r{H3buidxdzvF&M&xheE|y_dNnMp?emb^Cls zh^?#~hc85gv1hPLh+1;>?{|`;`6_gY^BrWe_Zu4-SyYaPI$}=|UR<9TjqfgMuNe2z zD$+97ywCj%l&@#}j+D|gBCa3MNIl#`LiV^UK%oJ;)>sXO!+JO!!rIz^cK&3v-W!vo z)lqe*9BGA1p%4fmzPJDrk@`>m!iH6q#E(jrJ=^oIQ1{>DEC#c@u2b~L4?qI(kBj;7 zEvHa3^c4mWvfkoX?oP@YWkrMw**;x~rh`)QldxpV89@uFxF(7thAs{ROQWNQ6>ulh zqv>s&TOb_d?1%?z-KRBiCR+yp|g5FZ3?#*F_!VHa%wMqxq% z0xD+AOC4j`HkN(3>lqm>9(T?>n8Z&x9UP#B3V1Vnt3H-)7Yr7G+Ah7)QZ0ZG5>Dg? zetftIO}c#=^*=FK?wf(LAipl31YC)KV=(1I*SK#G0MBx5$=siROzFDLRXV0(L>{1% z^8-MF$*wwCXLfZ5Wr&PlZ#LB%%qW?Mn;^R@Oc+Qn?nAimY$VVAn_#uJU7GcxCuj3iofXG^<()6sV!;3^6dJI`tz3&-rd3ka^1DV|*Am$2!zsvExSZ#~s)xhvhx8b^DOV9&kZKQf;q^bPy>bk zI150otP(TFxHw0m5fC8KO&#?TWDip#bP|YF<~+VFl&D|71Yh z#Ke89?9w@PAHGVQG2zdj$z^6ecwAv&G`gwI<$8^!r`xzZxOeQ$B2*VQOGFN-)2?a^X%Z<}lj#fmvq0)WQQt!qm3t@7-R~P}d_H`} z8nXRa=y@V<$@P^XG(9I{>+;ah>u|Beatv`lmc?-FDedKs1O30i*~G;rMlLxRg$m#k z%qj~}F+Ivdjyw9(6;Z83_Gf@g5__KG{gzGqhu|AVMorH^;ek&0uJB^tKRm7MKiEx2 zM~mGY7vW^#OM9BUCxBB10g!<0?cF0M=Xw3P@;9e0%|xqD{qKHR8PPw<0^$~bfo7`y zS@pEaKHkQr=4Q9JrrH!oD-ct%92tk_7*S=qNG@sE;Nv^V(jZ5nj z_c|NuB`Z9oQ74mr{Gihly~pb<>+4liH7;{HAV}qwE*AxyBnwFbl$hxn3ftqQA5+Yh zj#>W)Qv+6xn!W#(!^>Xrw`1OP;8g$T)uCqHpBi@J)7om!BG8 zBqlR&f&AhDx#atHp_;WSPUjl*|HNn=$MU+7_v^?-4;Lf{1=^@vfEaxprNQ8pIJEdU zRb+D0j+rx-89JWkI7z0B@l8VUHAz%#_l?s%ey?S`C-kFQrvQs2vu2BgC)ydJB z@*oh|e@Z3+ex%=rTs56t9fr}`EMqyIBfqR;~8W`^ty%fk>AkPZNJb9dJW0H|+XtM)lqISK8LA1e|ClMZou z=bMrRMy#jV#&7TJpy|ryGar+e<(oZ+-@FmoN~OftoRF`*|K)la5E~gee4In9*IM{F z#LeX2YG_V$Pm4EOk*@Bx3CiE|f9h*{@}jnOKothO-g z?@ZA7@s>3#DG{LNiSKoMH2(e~*_4nSz%H#H+<$o;!8tnY1v$P{Z5!#9+*YH300lS= zYVF}6Gaznb_J?r%?<^j0fSkF?m&UI$nL7FBQJ4hyh!vpFntFYBAebx<=MxyuM2UEQ z!Ut|0+K-Cg0?L;azXcN3%A@o!F7{EgA7AZd@F*7Pbb3E#p<99C$T$ZFm>miwJ!j?i zpp!gS6sxX8ZLP)pUhLsAGTZal?m0EH-Lf#J?T~B0iws6?`${Lz3k03DL zOaXiLvBTy-P=f#~PD_Iw8fky=RpFTI`4dBWdRWOmS666TQxgd8>tP5^w2e2ybrhs% z(KqLzf>NHI!^P@K+s@MYHN%3J{j9^~CEvRL#OExO0-+~}X`>?uyTojf6utRIdYeHR zc_=;28ia<;?Gaq0TiS%1p5F7)3ya;~!T3??B+#3+n z5%*D=@!b*8ZDlc))%EQWHak1fbcJ-kaFN5m7dsO?LLPj4&k)it z3zj?pEnt173KXSSC=|p@6mYbN1t>8)mF7Ki@4dkh59Z$--dRnanboS3)0R6`=P+2Bg5TT5_zWWL%@mW6} zOA^k^Ad>|zDgna6Gu|vj3_#rF@tRE1R`Oy)Fev^~Uiaax)6k0+e~}&kI)MTkYk(-K zZ@2x~l-U%^4sK zuIriEad%oux)k6>fxys;+?NdhfhODG_Lo+UYwdWrUEVworwGg_DOukFqDboB2%)r* z90j1gxf?eAF9I7_?hx4r!j`qoBy+}Mjl#|r{=orEcRd$;)JpxVj92#jIgHzEPZb2q zd3(!`4Y%};q+@$sv4H|HT0(?S01*8^C1qtK7zeiaK*Ky9Y4azYOUSrr!dVZtvx6NS z(z?BOYLNQCd|eA5J?zxU1b~PpqhhhF-a6^y2u`y}{79!KA`)M}*7k3!t3z*-1vW5f zRn7V)12I>I>$$VP#dlsFkE~2P zC~*Eri4Q(-yR_xf&nx*?eIx|%Xy6lVK-NlIo$Js4lb`_#sMAyF&z=t@GCCyy*0fz? zNd|ZjW&idWN+wHhqXN~SeKtO?qyjfd4(!0G#^W~;`g0Z-0 zeSB#g$&v{w#3jX&5sFTg{cFo>zI00-fp$t+uwz_+&$qh_QvyM@{{>^@9V`ZdV@h#m zGZFYKB4ZR@KP@PuYLm$LT5{yb>`_o$cWpt`fmPds%h?6BYUJhqO5rtXG-q^ow2X9T zpUH{@KXt2f6bHvF4(DU*V)0$c1yF$TVnuBgXMJw>I)ZD;^t{LWrw*4WfMoSfOfOY= z2`l$2P~E3jcS5!l6cmdMfn1|8@EZZZOK2AKMZ3LNTTf7MD;)s=?&ik(%7&~aK}2y0 zTRKtNSWpgZt8-{?al6deVf~qu7{-E5l6JV!4=|r32J-s}qmB+r*Qr-PtfvA{63`dX zskSGeXdC1DPjFhA$ZwcocqZ+VprEK06ogK~R3Z1-nhoaFAWRY_{t5z~m;=lZx{o5w zW0NM*$prx?*S^WTgM?Zrs)I8jiUe~Id63NytY)a%#c0egxvTOb{9uY*slZ{5b(8GOIH)Fq;M;qt!89=Vd~ilOOK zy(6=w6deFv!?rhP(hFkiwNiq41@C*M1;d@&bC{gXubcWLRPHRKc$F`QW722eC9r5)1P{sn1q+AH@-Z6 z9NRi8=dOvO74aD+SmtLBNTZl;aPftl9trUsE+!f6e|7GKdf(#kd}*VQjJ zD0hd3p^JuC^_M9qg@%V?2uamhCeRd~e5Ws%TJiQF3+6G#GVn?KBl+#S(YmYERt92;)Z zg2_{-)U@Bc;w^(wD>^492jPx3RAmQq4^GxYn+PFK@arsB;CuK$l)^E+UlC!WSd55U z!UCze+0^GJvz%xv!&5Q=!BUf?_YKxg_e+^{T5bsik`Y)S{p>Xg!E8TBjCQC5-C)t= z@NvNzOl86BQ@4h{(wiqxB=EecEEsm5H6fzUBOm7&ANlf^CdXWwdsXUQSU_*A$UjU8 z8#zC1>sPE@lW%fnE*ef`K|F``w}q{g<&@&)CyOH&4B94@qyU$M-VE@8nOk z!jnx7cn1v5WiwXYHc-zN{qTG%Ph~WDb=zukvi75zH6ttFi&B$BJGRFLPRQq-c3m&A zFL&^yC%d8Z6%}vdTq1u3H7>k`LW>bE-|P1BzEF`&DM&$``zYkP`$hxNb-Tj!1+ykc zloAsN10;~JJ&Tdur2!MJzxmuKW@PM!?nnES&bmncGtUN}&?;+(doB#$Y9Z~M@104k zSd6y7?N1Gg5R5!Bo&8FZnsNC<_N=(kD{V7SR%U@yQAss$pnG8Cewmmfg-^Q0PdNr8 z_2tS#%x#Uo26phqi8qdDU>l0Jl^O=2A-4u&>r&O&P^(qhN^C9bf(SDnr=|E@LjrNT z&KzO(Rf-RBxP#2SoYKc<;T{4j9>O%|N!EG9(n7nTv5|1UKRzN3WQDh#y1jNj=D~Bt z&th{djjNl1R|z*2m2_vip*UeLJG%2^M$uVs=@~>sbl`C#SJ4IV^eI>i5l36%QEEdt zPENw9YTu&T;NcM|L=O9k;}xs55tBabkD^lK0JA|7L{u8`5W>1eyUL_y?uk(`@g6M2H+elo9VLr3WmqoLq!;x z-bev-_;nC&NOC6QoT)0c#6^_}pJxvE(W0JmF&BtQ_m+y48vt*z~;qhqDMfdP#@N8Y!J3VW>@ zYn^iu8g2WzEa%;DOryIAD<`FGZPZUI!SD{ z85Ch*Xg^o&=s(&D7&J5pb~SnA50@I6zjZmm6%BBv=DJ`=OUGOrNss=;b1XwDY_L-gtHCs;C+VM8sjS@sqWT%OTN;n@avmGo6eVd+62Pa2K ztE~d{FZK@g^j|a|e=9F5D|K~XsQNk+8i{CwK#+WhS4bfJ5ZmbCV=^dy`9qZKHZUCW9G?N%eTf?`cjnYfluIVn9GU zO+eSn^540+xlqUb-{43a&Yuk)xIpkbRTi2d0|^9B@@_au=uJ-*4wMe`Rb z>L+}GPJiE!lJU8FpPl`=T#S9=I`>)wU#CB0{MyQZpN!1H#I*4%&C2Gc-|+Bb>-_xF zt)ZosCJ%ZUPgT4Weia@a1k?7yssZ-2?6X^3nLFrIrkvZe?_xJzx#)uK3xB15^ zQzKiBj0Dy&weg@cyT;DXPY@j3yWuGq(s)DEH!vXjWfL{mmMO%jpG$wSVS>l@v$lVT zg^Sl<=FHMscdqlz*)@MP?Y=FZg36XPSZL5*6g!8nJ`=&M?lM=2#=sW`x}}=S7oDeU zKF#c=RSz8Cte}6YXq@aUCH{Z(g%a%)pNCKOA@(cG@m5xLZ?@cMVF;{LsO%73yO-#D{;E9%d?e8HFbQ;2Mf=f zuh_8Hx-q)}Z;`12MvVbRJpzwG>%Uf{Eg2aTgU-St3p$}r2G=b9j(%tIDsmX}-E)#@GbCkx_(@9v)L zEqb6u)5R>9+OBr2u(9WRTQ$X_J2|P|-Crg~Epb{MAVzL`v2j0QL7|WB*(shh3EUYd z8|&*-yu9eMvl{ZMs<2%^D&UGwPX1jcc4T$cD$1_PK6o zNI^UaFt+;K*P-||Ro<@p$wa~`B^rs7~M5@Ky=G8h5Cghu%mf8+G zE^Y;CzG|qRxh4)K1s#)ksesiYae;0#JV+g}dF3e_hlVQ2#hLf@=!8eqzqze~ydD>{ z$_}Dvg@eMvSSkffm3O~fcnfeqpg*dYU-VcpXsYT8BYOGpk|8ui+Y~s)-M<{eSVMy^03!(v9o^yS zGgi;7+V`_|%X8tXy1E}T^H85!D2^6squ!nLOa1wEjQ()h9Bl32(2**UoDGT3BI@Y=|~Bb8uCs?=CoO- z>Sg}`yR)^GntJ@o%{dYcZRXFL1*qs_nk zz{P0$on1V%PNd$_(ZR{Y$#nrPW-^iY+Vjo^iB9hBIf$*(Rr~V2d@ofkg`KZB(I^(P z*Np*+W3x9=NSHDmlUV7C*(ZEk!%fU(-;twmzq0x1@w%;h&YArVPQRQ4}njMwr0 z{>TC7r^5F3Z=b+Bsf^T1PRN2L+iz*%3Nb2?Yh$3Zu-rHT*7FGv%`nvWS?sGMG{|)2 zu1T+Lu~&fQVnc-al;iT|z{1tvY-r3N6RYu{R#$~-KWIz+HZ1>_uTADw@YBS##_xMt z+RWvS;8Ux_{wGgd+a@RL)|WdJWM81jslnW+CQNgFb~815q0pyn{@qmp{3DnTt~5 z<5`E(yQS<8A2@F=$N~}3_iT1QspYc5Z$w^@URABBd@7dt^pvHBh53WNl~pL%KEsV} zZeWv=-d)Uz&DY}iCkseY(`M!jD1xrm{y3|Ea=XSiB!42v7bqYlE_Q?+t0Le^*P8nJ zSo;?Dm{ObTXcf?ss1HC+P^bTN18>3j;iqDZ&dViCmz21dstfhilJ;l%Vq$ykjc&J* zznq_+Zh1X+Rolr9qy>_KjL!78QoBGVE)D04y}d~95Xdn|5YQXSP+3rJCjj{t8#_s& zu4A>M6z`!65)0UnEOyS&RaO=7jnPg>?9f0@e*8T@(~f@T?4!!r)!stAU9RJw=fO`m zH@hH55^(ShcW54$+K}<_@zkQCaNr!OJlPGErekO_u^*m5V7mw8h>OC0)pd`8kkiVF z+p*D6zq&fUFGCMFZkG?fpcxq=p46ekB9^HwM_k4iD6^*hk8NJAo|~)N+7idI%mp1R z%r)CcP65Y)u7u!{4sg-^N)#hm>;=a+`)2P$4a{wNbrZ5$yfzxTPFzOmdrf&9cBou055n9o4Spmfs9GM5XUS^A;R=-1I_|$B7n19gq^MOj zd(`!qAPB`TY!5)MKf1s4g@YU)zYhwPVJc4#d1E?1ojD&)V01pt#r~4->h$D9#`BZb zuS5Yiyd-`vwUbj2`2grG81I1}-Mbx3dItFhI#E+SZXtw3e?>(_;X$LQl#EPZVKzB(crE29jF27oX*FluyGcjugPvl%#pbulo1|Av zM)|0?Ma!R*lzfx4SwP`PeYBn*^hLiL;jS$sBq2$YKoCg$ceJ>S^}T+B2Bqqx(-OjRi?%*4wp?iA9{Fsnb2_m@_PwJBZfOmMdP@>_T~7wB;>aXJ**z@J}o zXUBs5*&5XD?xw&LDb)CMb=>^|WZRdJzY#;A`+9ZGYD;gvh8475r>+N&fF!;6TPfM_ zlWHb_ZJ;mU8OWGjAS}NS5WoR$?z(oad}jC1w6zJU_)m0|auOjhZ*EA+J7Gv4yyCS)|PIE?YYS7eBUoyOIW>E321@5az zfR#bQg}m#J6*rvcamj+>jF!%P{5utDy~TaP$qGHv3;OJRGs zF@FiL@^tN~No}J~%n0bT2Tk9N(uH$X7VL=v^$4KBxid~zt`j7Bn@3OPSGtQ#D#h!4 zOb4cG!1XENu?H&ZT%uO#<)zpGOYxvRG*HCnl z%@?l@cm|VDg#$6jrR3z=0eEGqn7?&Rv2#{YJU2Ij?R;irrpwDt-9N?J^|zDzJtsG` zvWVjKo}VUoXD*$EDTvJ=WCvUxD1-`Oy9TP@;Q9fGgd_%N-;LLJTSB>umkxN zL{226ZDha)IlgWOWq(YGn|E-XIBb5_#4egGR|wv$K#;(F*qP#mnC^CYfil*Au8o4a zBpAyI@$=hz>B6jjC)lum?|knBf}*&kCHX5Yh8_L81t+*1h4zxf%Kjxu@r#8te-hBb zZ+)>h5rs_~ls5_%rKPizoQO!Bkk=NmtgNhG`{G=*imH37P%{!hZOKB7ObR&Ac7MQf z>vm}@9*LV0s3SyizB55YHF7vSF#$@HZp&MjqPg8`G1rNz>+bhAw+#Ca&!3YU9?Yv` zdTt&Zgybqo!o7PRCq}WU|##Jv(HS4ajTojJ=%kOqkMDG8*)5N$Acmn?UfvozKm+l6(3iCgyvl z47b7Fbgjuu8TP}2n`Q12tB%$R=zukK-`2-!{{RwCk52!#;YHRX%T%NDpg}rkCFe7i7ILjDbA_YfBxm*vt z{GO(P0a-T30wK_(U*~X(^7!DE`8nR_$!qY$wIcdK7)ikS}CGjc)_;04`cAG!`Y zgLZv*nrg9?^dQN9H4reh&CS^cHy?8{ztjEW{(_71hbi!)7bm*j&r4!hRM<4aKjbqr znL<9vXquS@e`2icd=9-*(PYVEQTRS>mOmS6nG+j3%Sao{GO0$QDR%M4)zix)i)xPM zi>)!;;g-vZ^Pl;RB)h}J>%k#5){jl5af@V4K{kZ_+Y*LUyhZX9p;^hQ=GA^@AylexAEIErwHJ66w4x~ z1v>ZsIqK!VA(Rj#NlCX-$9-m-^Bp<3chj@8L9euDgAbb{SZuYqtq$-mE>K3ww@?uq zizFX6iE>TREv9hjJ)Z-a2tPU5@}}zi_!$3u_cplB!8}x>G7l9KQ`N(5zSizt7=@5L zhb5_6s(|N%OOt2(`}dj%5UBigu&R!W+}={NL`EhVzP>*CS-;EK(4x+ZSmt;p!Q>Hkd59^eZg<4xwyl6cFE?9Pmrgl?9%z zNkzZq>~Bd@h8EBic=A|Q9s!895N>NLoCsZXa7hWG!E_0CM<4|T!N`bJXtIDV793nt zn)#GOGT@FF+wPffyvHPVhz`u zFIQJPmzdmjxiiSPzg{Vx?OppcQAG7`tY*d~<576>Gz?eNI~HPDTE2Sn?dY=s!50nokjLLT}FR#r9_f+ZGnY zmj*Sf|Bu$*Ix5SpdmBZOE`cwy1N_c z{O05DeaAP(IcJ~3(d%H1_6EYN$z`Jj2h)je*h*1Y4qw@;`j<8tV3VHe@KzO|9)-4*U%ryQiHc?5Dv zZ0rgcpP!@pHQ{RIqTSWZWVUp>svCQ0& z(KaM@8$y*@s_0%d0z?!PgfH{BZi_Zd>nbi@Q1aup4CbWo9t`NCzHu2fkWj|v79AiP zFCYseW{L%F1?K2zN9xe}*M8H3Ys|gbToZnN?a{HZ#x}`s_rQJ=pGh46hZ1PeqRwd6_cz$>-)+yExr{6qn;@qKeIk zNmRL>q7o29Tb&;XG7{SF?&bLN*}bEA)K@=>^$UAS*mAPcZ)3#r{(}r59i2qXgBMOt zOrsMMBKgD5vhNgCu%A%bSQW8b3471q{eZBUSXm<9+h;^`BnDB4bgi_54-QytH=c@mtfc+OUG=V}SzKJa&sj>oKA7WYK2gVJ zh3xMt=p5R%+*56}J^6GnM_JDMW2Rx_tEx`}F5l8*6uYJ8tk2Dugg=~qzt!zRP4`y~ z-_FZP_t#rgC_Q`u@ySp&e}|(J0`-CmA1c9Q_8+6DkV|vZ-l;~=)Q{c4|9tb@Y^`W3 z2;0zp!79P0+F{3VYdn9n;`i>}J!W9`QR@gOO@@)|?|(d5h!AsJNlGT>*L{SqNqjW& zM}OiDX}DD7b!<#b0NX2ngGO(=)k&vEG_baiBI>oWJtYU{ zb}@a>&qC;mM=8x$T!pl#J`Q&x`J1bw@3~$89)rP3uh?kqIXeCGyS^3E&Z_Iu#&0{L zb2KWgD4}MJ_-W?`@Es>3+XR7LebA0YBUk?Oy=e{nC%`wqY`w5hpFxM*OR=HyzUe@XgHz<@4pXP z2X;46BcndcQxnTmTlnoT6U&E-k1qq$7A!ycbk`S~+~0ViZEiD|=w)WM9A%KS5(&3? zQ+{*6eNM8~!FLxRUu1(@e>;}{4iN3Kf;)T*B~?L*ATd|HJv2px*jT;?uFIaagK^8duT;4yaq(rN6Vd=_QDz5inObRRuChmNtAmtF^`?lS8FAb;REVb6%O=q%F zvB^mMkF=omO_{DZk(e0eRbD%JT>0*lh|+;>ZoQQFvpf}I{;;R)c>HIF$d2^X_==fL-U+{?&>wVv_UWVP9V!^e z#Ny=TJux}9!0?7yE_$PMNXz^8tpz7ZuG&fqdr-;DxGGyW!W-JKROaXuT!$B(A9y+IJk;`dgG1ZhBbSJg<7n7Zqof`2`1gXy?zXQ`fQm_mlhpDjbJ$_6V zE>196FKhwgm(nLDOpl17IFGQ&)v~bsxMb;$!l=x_M#YWfHLR3BXVTNtTwXX0ZVcs( zzJ0&Bg}=XDEq$?`hxuGmW$$XNmK-#u`7IwRs54cWqAms$D)&}Wvan!LjC~g1@yqE# z>Rf-n`|l?!39?;mLoH~`(p8y?`5xWY94Ux3bFbjD>pPz0?bzB3O$-eT?8bn@eX(!i*SqEJ8LGYBqmDjQt6vWb5rJ5J%Jb%kq?R>QB z&s)w)m(9Cu=Ho`bh!Mj<6C>iQ7IFuKDx6HY-G7IHABoA$t#f&(e&+#gu10Ps_9i9Q zudk0QaCD8;i0yHxuvMLZ_Q%PHi!VcC6w<}{tQS@Vs#rtXWlSR%FQg)t!>l@(Hp!o$ zj@JmJv#Te>2Z&vtr}W1|XRJTabOBZ7WWS5R(pLG)S*;80WfRJzp!;NCP9W3p7U;3` zFP%+oK7`f1e__EEU3coggHJ=l48cV<_J<|)zLK)y%2Iq+EjG}XzKBcGOgHqu2<#5) zdsj?L)AXR#UI?DD7Z=}kMuVrC;VB~OJ3f8i7&{gtDyn_4NxkzX%45&z?~5zRetLoi zv~bUdQc6TO!3yREoBXo0(V&3>Pk8eSx?h#H7zxSFn3vHp`YW3kqg@l!L?~6FUfIIe zljv)KOp+j@S3^S~JrwPX9_8atpE><&wZE4Wc?kW5-tM7u$1)1hquv+uznckpCd;sG z_8^+>3K-NZ=t*YeW5c` z23*MJ&uWteUtGur{@Urwkm>kok3*@R&$L_F_s-gIge~#%NL%M@F2E*b!hB;D{kq^4 z{>5^_?#3jk4S)5`-`C^mXf=%yV<;FgK67Sco_|A5iH3TUh_VJyTqw+F_m09UHHG0|UdVK(l0YjkBt%(&d83 z0(hPiQW5jhIm(a;{Pw2>-R@hgtYf+;DDbG|2QvX-Rx5<~+tFgoH!@;Wa&joj(eV>h*hJvr?!MYXIC`{;Ha=|1NzGa{x!?39zkb8&T! zu2;HRYB- z&wg8{gt`32v$ zhd>E{eL6V?w+At7w6zh;+)j>{OSaYn^kAgEz+%Y^Hz-<;p`V-XjH#?~Dj8IS(1yfP ziP0&1c?&$EQ%VS(@(C)&E-C6Ks2XleO6=8K`!{_OQkU8Tbr=QjNVX-Yq)pn9Q;+hux=H_DotGsBgPxhBfQ z!k(J%9v`eJN&U~W1&avx-1N8-nX;J52)_w=gA9+njePEdxN2*N>UFi zo|c#_bVt*{UqAj^bWh;RJGd@C_mz|oF*c;NBSd=E(U&THwZ;HyR~Y^Kr@pl!m(`a7 zT!yF=wY6Y17V<-R3!M*@i%eS3b*-L@8?}Mj%HT6Jq-ra8W%}r~=b+-jrl27HUhJAaq&4~FijsHfYR@u(K|lDkCqo5sp+Qt=U*FU)`6SE1uq zS1&!?m)oS|CEzR50@N>l0DVhh`}__!=AegBuD(8Ok>cuTao`Go3+eElPd8wuFSE_m zbJ9OO2TAy>S_Rt-H{d;g*fv68m-37XYi^aP?WrgTwb}u=V8tvtXQzL8cs+#1T~9Ly z6`ya9Rq{N5US^?k@fnCnac$7}s&jI*>dyG2&PnaA_n@LIT}iP>3^W&fi4pvOBY&zn zU?J#uhI_({IJC3%H(sh?yU^VP=+M}WSS5N$`1%X&$Q+*s6|w*9COKF^GNZ~*x8bjF z=CZMzdD?~V^qlVfBoCO+?4RQqIfP#|cvmY`c^t89Q}FwLt#bqCdBkr5LSdfU49mT- ze3+W|AnwCv1nx?N+^Z-9ul9?Y7*8|Tp*RYszyKHq6;B|O;Pgor!Rd$H*PyUWZ(Zz! zwTc0gZ#>I-fp0x`b5l?tBV3Hw=(tEfa%^-KUOOjU+F*o#=h@tLIG8Uva*-DJ);+!sQR!s5zz&#j znD8|Oh0n!;QBkG@q!=(6FuO3O`}Yxv2)FJy8DZ{B&@w`8dq0k~=!3mKxEGA<3Kda$ zn&ZSfrr{y;2?PZHQe4E6(TYYryWHr5z-)*(m20bErCo(6PqiBRw_HUo&*plI4W;?r zwBU7(p&A>#LmC87t)Z<^WSz&jeYhY0cW*+#RI|TGLOcWH$utmKR}fYIJ)Y^Pbi_Y& zK8WNC?jMC%3II*|(-SGg&xE_~W4tT1z?s3N%m_Cqzu48uZc-DSFWT9BJuH~Ez^@;ekG~Le6Yta>($v4wJKl2RB(M8raPod zzwpJjmfuKpb?pPG4upb_v{%q%7Q9}K394jH$8+<4x!8aJ+-x2q5ERR@lztEFjmJ2? zm6Y_aPC0K8RAu%tQRbVl8G_R+g41@vRU$}k8QM!=tElNEmg71 zfCmVE$-O{81N=Hud?Oos6aVP3(XUf!5-5Q_=b~0 zAdkr#E1)E#qN?2QVu$U<$k?0;+2D7WhfD!GQJnncF>*Y&Wm}IA8UnBw4S_Ly2H?>E z5e6pykx$m|U&gG#m(NUB&e>h*OLa8vr5LTMg!MOgI61j{u##eU9C^PlXXxMjwOA_i zpU)@qs#%jehz)HFVXeip%^m4^KnP^&+tVxoSQqhgs#=b+bshy|kS2P1{{b3NLk5lJ z5?5m-XunE1PaM{0>^@@BR+LE$Km^^_XITDd!U!iNmt>4v~a8bkeFZv5eq+$wuX^MMJ0wp zJ(rWNk;Fj%LUcSw`M)URJ1z{4FYNM^438QYf+)lWsAn-{y5hxRliBPDIq<_>KTYBjOtYqUbqd zeG9yNc1%ACbR|yaTj2)>lj^VA3I(0-%{QSyosk(XCi(Hpr@)@y!V%o^$-ZJkxiGhP zycHJuZZY(ZPVKlVI5-IK7Nt6iZ-JGq%4BWRcr$qbv*8?$d0;Q)5}v}uLZw%2Pd;?q z7C0O;VJT@)yh%?q zA1Y~o4hq)2iV`uOt4jb z9}a~8AJ7qJJy8lmA}39La7JgBD2pf;5I%KLe|`VBmojJJHom3+@g(u)dSSh&v7wLF z)&v-zYlo33-#fy2r)r11B4H-XFjTx{b{>M=cYkhq;p6jgTBjjQiUrD9EMhPzW9U)R zF+=Npe%ub80#(}sJ3?n{M19$VjD`pyU@uzvS@NxiN&JX1GAA8I<%Ch04qGrX=;%`2 zccvj0@t22(qmy#nVlV)tD!P;br$7#i(xqV`d8LM33CP+E45dLqjobRoUsai4XT*() z!5zPye16hzJIL5Ugb8s!lRhenr`}y~e|s9NGPZdJWU7T(FBJcQ5fx`UJr^7*=yLo? z5Fj0Z{*VPL?XUmGY;0I=k3)8A1dg4c!Uo?UMbxZ2(CTn!p?yv#FK*Bp{n;>_b@ip8 zI8*T5s`zR5Z!*@7z7sd;+S+KqKZqwXO`p08$oD3ond?FV`i5)3-IX)u#b!#d7y@l;R}{Phj4h&{kg_483m3}7l5|~H5@wB z133$Qw2S5CrsO06Zt0RD2)~0WE~LqO!W(cctU3Nu`|pE_EdG`OxJA~sEkiTzP~pVR z&-!9~o2cc_6+Zk3FLGDtw*YcIiC#+-B0@q)RD>x+$_ZZ}Ws`AfM1E8>RUx$WHC#qu zk*);p^rgWZh)qhRSMykjdi7Ke;gpE7DXJALUWCB-wBB*xVwt2&+ zU&_Nd+V@;-lG=rZe`nYfXX?XcW+w%jPio3NgrSy)9e!g4)&50aIjeJfdvlfX3&c!5 zb3sN$BJJ#yhNfDLm*?O*h^UXqKrx6Y>__#(^1zgnQt(S_Im$jdu4J=_kJal7M}z}> z7KFFBr+@UGlT6^QJsX>nRIzEQq9RYN5yqgVCipgzdWE^zdS{Gjn|F^v*~u*OB%duh z{O#WYY8p10FGE)3sW8TY!!}t+7*)eLK3a2g(pq&o>x{9O#~9xThV>I8bK>w3jRL<}l^7cDuS7Hf*vv#~`9qJ%~tC#7$Z z|A7+Gh|V29l9ya8*zH2+&k??39D-6oI*>EOQ}z1Bmw&l5PjRc0VQz83M^5;P(e9({ z1{}KZl)NWRzPk93lO7p`NJyQhfBz>u(9o2$cu#~T>6M@+gM{#%={Fc&7J^=Q$!LuK zZA3a!8_3#ICug3AUxXrt+8&P*(`uHPCQVesDxugHx<0m%Pu+d>tis}DR^}W)HYKSX zTY2_Zn0EG0;Rt{QvdWJvS}DXm!2kGBV8>?B>{De3OP=!SA^;#D!`m6z@O}xW>Y1oj zFRB?-xj1Y@L%0hEZ#9(}Efg5l5+PQ*wZ~td%f%p~yyjeX@@Lt=ASWwZZF=xF)ptBr z_mqydCC*wyV0cbkXdVLuvzKL>PvDJ%{s(?kFZ>sNe24MHz`6@=+(3s8Q|pXsUBjIi z3i6-5CnqW(wm*dXhmQB}cNe9o5$S9*XKf%=Iggj%Hh#YtQ&0ZX%3tZ?P8{w(1x7s+ zzwVkF^=ugyR8D<+(6)Xa*x@`TOZk-sM~zOFvhf|O8YkEK{&#C_(vq<6#cth1738rk zqi)prnheR%LmqK<|Nqau(f_`Ds=&|4d;>~YWT20s!d0A7dk%CK^r+>Jf51)t-OP4$Z&UGlTLTCSEZd5w`W%Kr4{|Y47lY;@qoP{rw zlT~@eZs$TR?F=HBO6khk!y0AlSU$_Iei+fx%O~QXp`ok~=Z68!0AyJ+EkQ53{!C{} zRKc}sQ`66di&MS1g#}hSiV(wm#6qJU@!>fwgvIYJL|6ltm&9U9Rw9Hr3}gzpiNe>+ z1v;n5$J>-mYXjPk%*XGlL-@76&)GWo8vO9e1&OWiy|i@lj=4J|=0cMK#+5w}8$}Y)#D)_KK5} zI**(Ww23}ueO+AKi0oSWrj{>TwY)QVN{V22L@CP{91SO@`+*N{q1z^y)R|5A49s$*d zCZ(%Km4d?XE{U3}^w5T#kYbvVoh({{H=<Pn?-) zf}m^Z-qq#vjI3#H$Fm;->T%|#GQPJz@jGz&9PE%#_Eue-i6Z~t=^=c=j6 zi%N;&;rL~9bCTwq@cu0zkz=PRL9%#=XxHq5Onj+)nb&`-*j-(e+zOWiHNYz4=B{Ly<`#o=?)RFKV8@_eq>1y$=zUAa3J6RRu4+IY* zV`EynCETl%g?sPKamXi^n*8!i`_o7WG5I&g%Wg8Ob%Pcz&-&to)OPa(*XF}D`IqPU z!>{3|Pgc{bP8MULq-DlJ>aWglfmu^**nR_~7*q#4!WeJglEUCXju2EUxF7}kgeZug zC#o@f6RXf+?y<}sP2MOQvm4r!PoF*o77rt5PqVCc1#fVK!cC-;vtiE|<Uf#eFenWX3Z_2dDAkj5-uYE2GoTCNz;i?;+=Q_k-_)Ev)wA+~xg2o%K9O zEC3hz!0lJ_#)v5#EAG0ToTxNI=l<95(W^>3W+JyUal`(!okxakBcHg;1l-TfG03=a z5!A!oRuVZZqbIiKahV>jpXiR<#Em{{SjEqR<}vk6*EBFmxxvC1zHsk&jgG3K>PZh* z?C=0zX>K7xYMnYyYY2I#W&pXfb7XI;LU@fjMc|Yf0dv?_{0+JkrLMB(Y zyaiyqweHljiyf}(T3K5+m7D7sPLvluHXC*^9sEXxh!l~L&yX5AV^*Rfcai0jFGxWj zcFR+AK;V0+T|zo&^(Zp!?Cn{OIeu==_4ot62e_=$ATb!t@Ye?aQn!8^sC zLc~aFp_%(kV&U0ujPEqu&am^9@>yJOf^g94PdDxL5MAu`29&ePDc?cn9j z&09#7j(fR{E3Lx0F2~`fBik~U*M7Hm_ifO2zjpMRn3!O}BX0+Y4K{|S&h+RZvmWS~ zvWQgME2OFBWmS3z-w7eU-*o}C}DVhK!Vz4(CiY^B#6i*U!w>uUGt2*k%I z$7qHYdS+{oN;&r0xZezxzO~9Bal6p~`-y}!QL!UcZEx8)G=u@s1XzjEa$N|D*Sq2G zs7RoEK<6X_Q3%snpzK1MUqtuE3`v}3%V7OYJN1tZ&xDci+zIMz*T?`B67s&%nSA$t zrjEM8a>hq8-A^)Iq~5&{Gz&M7Jb?&kFqF&6W6MZ|^s-Rb9O;?!nTJEx!Tx?jUuvP@ z)kWFrwA%xSoWB033#Tg+uNOPqzbUm&`4$dVB1mH+y5xR9I70w3T->8iydOy0LY=TM z{gOnw9%b}UsSTPkoSGYl&Takr(yj!_xqW>oK`~G5P*lqO@A=o(5boDaz9MwQqY(>} zRb3EVTf=n-h=*@C_zbN4DEWYOF|RUMNC&X#T1ee71-`8&VQf4XQuCtBjkWAQfj^Yb z-gW%z+P)>_<$TC*gZ{LKXYGF@;)GaOS&=>WEGBfuB`mXa93jU1*0owBS$xOXD?J;T>P#IzoiSEwi<|vM$7z&6aQr=jO*Y) zf=zbtI>QhAAnq)6Z9$o+!9$pN20{|8@l~_*Byb021^k%4;Q^RkIjkIuEiNyT6oSr+C!e67#PCO>wr;3aea#V0c=%vl-{O zXoR{7)x&Q?WB_1@#RBSZfuc%ty?=Z??~l$|N-0M`xQK^TX|p65CARdIQwu(4dGA3+ zUB6|t(fXEI&VPc3MBkb$b-TmmnI2}MR>SHo>F*_55a#ZZsi^Rg&15@3c?X=$mpOwd<%XJn?|$i|ct2iBNkwG= z%E-6H0|3Eq0z$XieJv19#mXc8T626)KjMhB%MS+I5m-7(}sCk-o-xvNXG6;$HmRFKS)J+-_lX?T09 zs>%uJia)jmVrRNkJ;wc8y3T8_D0r-Ng!6&fyuUQFA^c!!>eVAdNkXKr9@jyBLN9w$ zt}R!26%@FEfL!djhYJ69O+%kXgfZi<^nZZ74NS29vivTq_R~i8`c09)%YsEFzx!#j zYd@^$dR?EN3Z9@Cbj7^_)id^wA2zp1Dzt?68=DQWOiWe`X6g+6*m~hEAOHUS!~XKE zJ8iC-l6E_~Kd-X?x|Wwey~}?D(M7za3rb(c-HXd}ysY0H9W1+4jB*J#uD1-Goc!9= zdXHE8hcEsb18NL^V!{Rtb2ESoyZ};~8XKvYhCI5M%%~cQjspjwm=ijG|5(?x*gR-} zmzQ^TNS!)Vm&47uk=^&r+jiI1L)OQS@g$i~cbh9kv*WrGtFQshJ$^q5vHf>X&v``= zNrZszz7SB24_a-U$}Kg|q~x|C6yFSzHK4kulG{RXEuVNIbFe<7>FE3u0|{997}V63 ziuH9V-?S^r;RAR-0i_Wk-9oZn>AmrPsR20XO61xQg!+ya3Ek3Cq5r4dleraj?{%x$Hg@?kP+`X-;5U! zvbtI!0XZws6G;ympj5(lW`o`9;E#UK>F*%;yxvWxk6 zJ>s<#1qET6T(~?9r<};}U}0z16&J5zxwtf2KiQr!9h-5s)Au z5<(*ZC?e_PbmjESj*iZp2+3DepF!7YiMQC}n(Wf0$YN^z?2wJ5WPwzP{EhnuSVl zoDCm;?*~G|f^?gTs$l+bM2|3A!Lt9ic42Y~(!FG7CY9$&e7VmN)k!)p!hvgzL_eKc z=1Fqs(Ko+VH3%A5OqnsYEc6TuqtMEi_h^ww?|&AEram$;HrCYJi~IDc4Pz`5`u(pj zM@8sk5TyM4VZur+VQ5s*9-h=TR?@kPNue z7j3GpE}Wsz3Lz<^f%60$vcaK3eg+1-@bIHP)6#zm3({z*{Nay3uSv4gDiXqae9Aj4 zU0hrwQvU)EmkSURAQ`aL)$AV24_`O8&BA}c!$86Q)!oelYVBKicq5{x ze~+s#5>L016Y>V@iSyM0Y6RYR39UE |5ErwJ(+JYbX85Qd`mxdA?BMpZDMb)p0 zaB}%O4Hh>Cl?68w;%jCcw|>w4KWDK2?~_RQTre;_|6kGI|NA2yK)EA&Tb!0Nh~M#S zQjN~=T!Y?%n>Qe8(#f?fAIekIsgCkBbU^5+A_xs4DJG)m7`rg+q^a0*EVR;xU&G=XT}*c$jr##=D|Mr14r-74w<>>Ic!}QD@_B&Xw zYI^$CS63bnO%2(!3CzShwGX*`lM=%gJ9(W=w719cJ$W^~#W+WZzHSm@k<+3tc_ti= zlXoSmlAGSzTIheJ?Qyv2KJ9h#{)U$3+m-&w@y<=-ylEJ%ZE<|8dUgJ1n=hYSaP`0SLeXypg)J;tl)q`d8TB}(BqJj;?oB6i-kkHY zUmPGSq zDUVcDPm_?4@UJyob6l+@>HHvql{P!K>1;MsL?{tR@x3vW;qhnjbFW{&{vE(IBK%oA zprv3mTMzd<1vjFiqVl!J#P_r;hR4N=7qdK$-6xzlex@m>dHGfi z4^zs-aNf_2 zsHuaf-FGmSmX@B|*svEQ4Gn23rpTXyH;KZ9;GuL|BCoX-`qHqmU4%DYjd$OBmNw|N zJ?y~ke!z`BU-xXsX9-2E_32jj=_i?eqRHJlYm<#rycRGH7cX5J8z09E z5XZ__H(!uAb?Vd&CZ^X~ne`t;UUk4&_}P8xn*6<+6A;*S5rNp8nhw&M<#} z{E3{FmWMpHe}ZinemzEfeSCbbGcahh)Nd^gp7KP3;rSa9JdSQUmurcMv9YmD{{H@| ztIWv;gC@a!FXdpho_cMuaJ1=K5I?Pjg+<8w_r|QlKYoZk>(5E@r{q(Xjpx5vTwJ_1 zli<-*x?FJ!hL7!8*Y#XCc?AVJR@TSyZd+;?G?rzn-V}WH582q+&A+Lz8GY@OjpHSo zw;Qc+%Q0%F>d!IoJ6KOR4ts%xOI`@SEG;|QoBt%Ag6+wqp4U+H&8R)TtHRA?cPdi* zx{%Ol5xwZY|owj{pJjfLjQR?-ni>@bd3xBxu-l2_D7E+6q04b_lqX#gCe;` zT@@-0w>0|8oO1bBe_X;87WXH;8pCB7u{qx-{q*UFSV6aeL|HATDIyFSIlFndZIYKno z&cUP6IOne4z1uU#I^uEchC$ODd7Dd3tJ2-=af)I{c(_4< zoKxGj-|dPU@$vDWI*ljclSvjr#vL?PR#t?_+QE9epKLO_n#V-lxfJ#M)S5s((_W_C z!|l-k4+(Mc=*@}k5f`~{+LabLqak$C*q*LCV?M;)%&@o>PZsx-vQB%4?`ij=T_a+`2)gBdXkql+MgS3ENSM0N-DyF{H{sW=qNSvdwSZCHO|HI65E~0;jRpk<;r70i=m*uGH%W93PKcsHR&%Wba>ghoT@p3`Ia3u7Z(@o65_k2 zy+1sT_qF}01P08?)6&vlh@Srz&NJ)p+9|wh?%?1skpqEmqEmwUZgYM4Ac@L|;IywZ z)-`+DbV`@tfA|T8rSIjf*I}ahUdUt&$+qjd~Y_x*X z%gbwLXCg?NUv_h@hgHAf!ce&j2_7-i9W^1BEwj)=CC2a`ThC833@ln@zSJHEgfN&j zFr%Fr8eF-H4vPb)!levWsoW9c&QGU?hKH^8x6Cz*o`0WPZOCTona8DeMaP4G>z5w! zb`+;MIX^#t*7LD@uYG*3F)_6)>BaKc;6$=KsV=gbVET4@epf5&DF$qw7b354zSq=X z-BS6+fwNCH)ebWh!)g9f{PTBM6IsriCZ%h-?N(`!a4wdSc2#b3!=Q2CVM{mrT-#H1 zntuVAl(F*cq0`fmGN-TV`HafxsxKNE9&niaJbl;XXVtH4y^nqK%uDQcbBfs5*iQ%Y zp6x(_$TI0+jH&3M;dJ59`y)1I^2gTBX^t#;Cepa%M6LH z^UEQh-Q4S9n;A^R``i_8EZp-$krTWxukEX=(&p69fZDv|R}ibj8GUld|e!!~Q}tl>J~PHB0RmD<}%f zD2D5sQGZcM$-N|bbcI5QUD@2sFIn^@yw>sU2_Fh%K72p`4mG;9q!{qVorgj9 zf_2*x#m;Io{cvF*AMYGFN7Y!3&*EOV&hFZj@n8Y7yuAF%fNADcF0O5OD1OFILH!CR z4@E&l-eK0CQ)||r+b)P#wf1TY2T%ZFR(hD6m30AjFXCAjaOJZ~rq%-)nOcatzOZOU z^-EojHDZ(Wk`fbzle@28zy4!EXC1;S0peeYLsV$m$MVOP*A)O2C-w43-nmi!P&cNy zQCNLMkXNcTEXxfFSXfxjudc4D<{1;}>gxWUnel<>dEVzdWsWm`O>u5-gw#O&Md_J+ zbm{_!sXeQCnJkbVARTlDj>3-YYnDXR8jGAT@ZB; zY_00{_I6Ti0x~viCnqQ3pm(96SV%)dLl%$rR;(o~LqNKpP5ZtX&XNvClP^|`-be|tGHUclvT zWMm}lLrHkFfaTQLf&4UBD^QgH#!ZAxR7Yako2DW+;ylmHVta&vO`>?AC*P)4QH2ZIIX20JTbY)`9@GkAERfMCDRxdY(2ThY-u zIH*C+Wx*sOA|jtGOZhmh=OP)|Glj#hV~4d#NvFfjzS{bF3B(uj7WS!Al8+t*|NQz` z6nS5EYz#Are&o#g^PEmjhRVtjt8w=MdWXM$jXhDqtWoe_d89mGF;_j`1b~?3E=-|R zON_wGzQ@swhyU%Uj3=c9V)yTp^_dUkH6}8vq$$hL%f*{%RvNaF@74<)U4_^p4>=aS z2Ls4c^iC-FT`lL^W^A`QH{B9-ZMejaJz^8`W;le$_dP)$snV3v47=K4IXsInRD;Yh zhh~m22|C@GJX!k^$5mPu%_4-Fni>X7)m6ghg>u?`9i6Ly-vO7ueEAX+_R&{G#$2^j zs4_O31t0@nr3LWe1Ca#Y^e#5mA8@8;YX&=k~Y&z$v<*lu){hph9TU~uG^jY2d z`g(wQV~1eAIx`2k%$v%u{WcZL=6>F6WP11ExAm^3iXArDdg!(7RPX_jied zEbVc$o7|{RGR5;vL{|1Z2l+Yp^V1~1XYZy~5X7O5SzEL=Nls3#<;_bD3QwkjfqdY^ z$p23Xn|i}lM&P85{+|`&|JBkrAfHI+Xy+PKrFKH=_x_gU)A@Z`HL##ft>St-r}sAJ zxveK3cp1DsDY6@g+xgf1d+Znq-|fFAIVrMfea6`TB?tbi_wyet!~f9>DLuoC7NVE2 zwkJM$#s@lzw6tw)*a(wS%AGuG{l6r~}B}NH`XFZQ*4y#Vqp_uHKl&`OGpB*#W#bD_f zU46ESlRLGkz2Ipf#B|&4SjmF9DU9pntDWy~Z${)Y2vVHRC6AA0?d|XX zOGTZs-g7ZNSrxwjGgd5FK=c}|@7rj9>Bw(aZ_YCPG`TB=4FQKd04FL+tz&lM&rmU? zt{w@`t(cRCQhdY1`~m7c)ok61A)%JvM~_d5iP=_vky-!HS%e@Eb5^G!N5_VWo7K;>l?qP4*bv`7R!gXI&RqSY+GJ0zr~gXg9C?GerT{ZtkZDWSzJ;N~8*~rcO&Y zR3fo)l(fzb+;`tLw3PYXQVF?=$@FCJ9P#ZD&)xMto!<1G_uN*50NLWA1mwR$d9yHB zNO0!N8E&Vw>tcyR&qj)EaN$Q3ufjl31UEM^b8(SeVvrTn*S`)mJAB!_PQ`5!7R@S1 z4y=|V{6ekYt<5u<3lc% zCnb|v8&o*q*+M*c^*KI13RuyX7>-DgN0si(`uaon4GlSSa&q29IgvQKVVLx!jqbrqFWVHAvSizKGruRGyEab{CV7h~ycD9Q;8pK@jGmYP{C(U4kX=`bfjO zYbarNnV2}D@O1b+dwWil$3Pz$07UibM15Rb5^jWmxlzk|R$qVrAAHMYuPFKKhkS;H zg_6P--M3kjws)Zz{_LWZCCy@6eh;~Ids5GSZfDve{c-WB-;9|x)uEHY!>!~ zjIB)hV`dG`$H)WM1NoSO+eem?wfYH{jRBmE&&@H8x^2fbuEoYuIL&7iCPH~WB`6NX z0Jdjha`KhP;c^!h$h@aKV*&S@C5*c7%jD$dHoGnCr$_`*1%#wN(?x&`^9SI%p2BAf`z8Wwe>FW7XytaR6fIA^U zfVE1rrfwdw<+2=Mf`_}kZFOG^Ww%E}yqXI~1qY|-%WkZEZ(y?5uodKCj0m7Rs$cI0w+zkD&J9W8`b-z zQW=aUQ*yR;-@hj{&R1vBuAqR5hrN_oxxm)EGg0yq&{@NU69Nw?>@ptBZAR(!*VH#+ zw5kE1{GDAt$IX5v@i{I5)sKKHTpd8C`ORZtVy@I(u~huET530MXtfJf@CW6z)jywu zlz(MYngilO-U{Xo-ekZ=kfkiDOyEY~Ja);{=_=$8Mn$I-#AR07M*SMr(nDVnJS zW!=2#A<{&1oOvykWNpa#U<`ls_mfKZ;c@5Nw{QECvVQu(u{2Wd*V59$Hggr~0<$#? zKsIo9A{hlEt=2X+fUY#>ew^C=l8}%P1k7CoPbOWl_0(BJ`18%((!j8=%YQca#l&tpr+bjp1@&a@4>HuFXoh@JP~Tj{dH_~)&ol02fMe5?B>sp z3W-iBXKD$Yl-|L?!B5xSp>|aG@=#=ZX_ysQJO1q=lPEh)>pQ+!~y(1PLd*e7|&n)b0d;T z4O2)+XlHl#Dgy&96zdX?9$f%HdjZH~_rtw0h>eIRFt;0jICCv)gekNv(CKY)BN4BPhE)X> zE;<6CZia2KZ_ZQl(%iUl8fet(_P|kpgDH%Q3jhlC64d@Rz&yVMeFApOxul4XMXzuP zKDlf!t*ow!z~hh2&-=k<2sM}DODO0q{|*ay1u8#0SmEM8YCZxb0p0FQmc4T~1qG?# z!{TtARao=Clt>B+WTcy{M=1IwsEMPZqDc82@7%k0?+$R6G24Ct0kyz{qx-dNy^YU! zxFmnLp2dB!bAFRl(3Kmw$;U9YC=0eTo1B0kpic@$fJwZqtc>r7WesXuz zLU)P+Ln!X+(2x-Q&QJHz+9`AjO21Ix=e3|t6#LxyKvnhqYcDS{>T!r_8T^ME-PXHn z28}H(VITwazds%>b+{6w!hd)QkNClZ2fiE@L#j~E_zyxRd5Aoi@6Bj!QhW4>W@Ka} zBslnyE~Qqvvl1#gq(Ci)1Oo&>>sx;^c5yMWwpgBPM@L6&?gx$&f`t~tAux}UK%T?X zkwy-xSA@*Xc6=0F+nq^(;>QovmfGu?Ft_1Ag2mu1E0l14FH8rA8(17xg{*%qu z7eXc(o4zkRd?TuO@bK_hgOc^e*Eg7$S)H^ncgl5OKpF4sS^etQXSxc^H6*2^*rxTm zzsOu9B{kl@SzpGxztEw7P{J>vZU!Q_1oCu^nNm*IW{%s&g!@fN!jZS)o${%ij4 zrztb%k~yJD6adJbLV=mwyn;P+wTXXz2Xx~5sTp`!Wg~+eMLFOLvP)SO%wq!Q)&mzl z(-PPV>jl4m53&nj$s~(X_d{n?+GzACf@lR>NHr>G8E%=i!)?8l>y)SM+|S0zR|h~J zo$}-`?QPL_aT$m$H!op2Y<%1|ljHx9qM5Nzb?bvw6SI+^;0P#;UQ$Uf{rt#BM&ei2 z)}D(i|G{`%?rhhRAVduS9+JauM>)p})iBAI=9W7S@#&z~>Y zS&1KWiUI60Xln+-XzAKOu8|yiA3KG^EZfEugKIVIR!Ek&;1U!GDecfJb*!pZcsL-2m}?wZ7aQbkCf`5-ZH zkZfwb`KBt!{lbK>X$W7cpbC^YEL(71k%MG(2WZrZ(XH6_kO31B5e#_NSMZ+CRugrG zPO!3aqqU_s^;He!o^Yp{54emlmIMj<+AoislarGJ1?1aL^JKY%Kq>*}s_yPfkYmv> z51dW~u-a_Yqd?keX=(lGO7d%5Gm3Y@K`u~HoriTgv4)cPpfWJ2#N;N+MCJ?ed?E<5 z!=F+$jLNOc!3|I_;<;wc5iaHB>4|`(@H<>Z>$?QC+iTFLbpX5nDloqyxI1|Xq(E}u zaFmT`pY@~?A-`eQH?*~V3s#f=rdj+F6a{kN_HYrP&M<`E5QO!m=(%xL0SDg_eHYKP zH~stma-}7I9n8jRHQw#8TbT^9vB)D1(}$q;j7>~n!JPsnH3SvNix)4x0{vLrJY!rt zpT;zm^#y|EuOh2!;}a8|IR?@IQ7C8H6C{8-%{FKz24QdfPv>W2xT%nkkl)M8L7+PD zq?<)h@n&e1^CG}nMU)%^NX9JJvUEL4FPd(Ri8(M|-p%`|4D_QPAZk*f3%qa3?Z(mz z)ZV#mh~xqGu>I440nvlb!eQ>`%~)fk@K@46{xQ9 z5)j>Ur?v`sGzM&)_7t4024}Y#4g@kc%3qb-#Ya3WCRv>TkZ~jz(b(r6e zHD~ZHG7=YYoC;S#wWSGb*dl&dmTD(s*F0h!cAcM}0%~F4Nq087!lInk(y5 zyLCWj`&~HdUi13QC8^=wJ9z3K_*z-}H6?x;&{W$Gy|$(>!WyO*<;G~u!p?O3|+n%Z6j7!d|Hq<@qz+?05h zs+8s(NXa)2g&;Q=KE}t#SN7&Jv2K*yO@z<>%F@9C)#%;(_r9RF47&Nhy-Y!YkI)yk zsEs$QlU=-snXeuI+SV1^Nf)IJu6UyUZ8N3Eusm`dmbE5lW(I#+9v$slBEtIm`bl_( zj5)30NkTk~LPP@I)=ameuGQz@Hr70GcBX+sNC)Z{i(T0qah{%i8<;2A6kk)fG+#np7-#w;F z^2h{X3_uI%d|zfg6c7V*kQIhmzH@?tOLsAjk%s?M^k_Gj5>&%@1mmKpkO*FQY$CgTfjUyZ_&?E zAtZuXqq?t;1TCK-=cQX1E$=ej^ZKNyX+KLe?z-;RynL9Mzv-#BFSlym)RjPC=Vre_s!mbQHgAws zNI`H3ha=HZO-=0=ST1S_4BxzYL&|G=1GNJIYM)qhTA#*1(4dx^&}sy-C@g@O!yo33 zk{YX)HR;Tm${FN9fMn^`o<->bq2q(x)tK;|9Y>Uh05+hu+6#~H$`w3>7+2GDmLyp| z?P3O=#Fl_dd(4Y#dtaIHMI_bLqiZ+O$c=i-Ao^U4?2oaK zM5}pNTUQcJ-E4%^_j`8s4XmlBO<_0doT)gBFC2l2`4pgdo%xl!CfJ1E!SjJ!j$2QX zj?{%Zy6((vrbU%#Fdg|(b4Z&yIG2y?yy)#btbZhk71bf}wK5Lm>NvgP76?yBaRa(p79@gxY>;4|~5oxdm$J#mkqkvm3Sq z!(E}WjKRUqD*ZCcFL1bkc8>yZBpB9l6C_15yW;OT2F+p_%6LeMR(T19kh`YX+b^Yx zDTjl!QtUlEs1v6hYvKNHkQr1 znt8_WTFp06vgl`;O1q=1fPjDj)Bz!}v1Uvf0B6mHOL|NM!t+_02DY09XO@+E1=Y*W zGs_I}J8u}zc7FC*JtP9@stYU?PGAs|8Q22k{G+*98i#;N6W!!Q+5F}DugB;R=)ttX(c7lX##-F*#`W%R=+3Yd4{PCnHyatSQ71%<^q1q5S>{NH zR@bmuTE3LFfKKIG1yUAc_*np6@P|C0ZhXzf$QGq-fYW^a`}flcE<@o?4KHxfy@eoy zn(Am#gCJmin%lPt0M!4ZG=bnHxkp7sMc?g3+y`~+!vw+Mot9u`K!5@D@@YLFV;LG? zyd9DCfcuE$wL6Pay)Xn!ZJ0*VyG!Mxed+=j_eZ(o_#Dndh&z4ej7T`65^{N1e0+BH z41k<6y4qfJ*(4RaAM!$6Ws-dt9T9;OCu_uc$oRBeCj6&8hxwC*4d{4vof&?8v zFicEL4CWAWOLIWcoHDm#!DsPVB4`{U($^=YoY7pCfq)QCI0&4A0wu`Bek8YP0nMO* zO(ip4GMYE8ZPMOvd=vXai=B??sEutxrHb0#pK@Syd|_t{?=TmChjsdoGZ4O9PXMwS zh{Vxmrn4{1O$n?9Lzf&z-F&p&cTd5{v$5>M+^+O$SfUB^G#=iqeAkqe6ySt7OIsg^ zedwES9moeB3oyd(u`!)kucnAYrpDG*FZB%0k$WaP;dL-&VB13-oZ_EB_kEE)Ogd1c z;|8h7mN$;|xFD|>ihj1jXBzvVSD7WW5>6;Cr6mAuRi55|FhXDme0@(J0BmS$J4>kc z+gH$p`9li+TU-uM4pHY2N*tj~Qe*M8q~EIITjQX_5d`<7spvHXUu|o{Ayiw<+Ux{I z94seE@;KUxP6B3!ubYCFKVEefhS;JDJk1VR$l~INXmft+EPQ5G&#QvSex87U0Ca%M z<2nlritYzq-VeT8TU&QPZNa3LgRP^ZL&{^VpJLfd|7kz@)7~G5?%9BnrP$5q(VEI- z+u~rePn*6OtVils6%@K(dFhdblX!f*DxU=tK?!ws9U$VDu zQT5Bom3+;zpMJ;mr{L)Vk8?MtcDXYV@akzD{wEp=VK_Yv4FUyNPEjC??TMgNJD!M~ zh(3v`|3}r#|Efxu%7M{J9ZJu`hxhmH?=TV)8W~|C5vhu#>O47rRpPUcpSl0@oH-=_ zqe=Y#R}cLE(rq3~)e);+N<7M8em2|>uNN0*yrCuP#?Sers; z-VD(&Wk27=K`Zliss*=Y0V6}dlZAEp9v$ttKb9#wd$!=63*|wSqTzd+0nK*({X25T zH>wLQ?gtPv$G*G!uSj`#FVuN~G?mNL@L~(%nO4X}yDxx?gBK%)%zZlk2m2~-=JD*DT?fl>zb*WFQLp9P zSai^qqVPZ<#JBMFF@EMiP}uuAMy`<%pc=)*HtwWld4AzAQ8^cXY|UuDJ?lq*Ozx|` zIB@mw=gk8i50?1&b@!C-_g(4TMqgGQX_q*Etj1)KXf=eaNt^8pTa9Cid^d|+~dJ7#h5Zd()i$peBo zOJEH06#;Vk+&MOlzM^cQRK?YjQMHpx(0V<07PcAx!Gj3r8V0oX?(QkS$g~XKkE8o{ zF59i`4|aGQ9g9Be)a;=l9(~>P@5YKwOtb;ibrp<{@kHQHm9hj%_^U$ld6fDFtjC86 zoVP1>s^2F=5CyqYY$MppU8kq#<>Pz( zDP`%lW|1eDHFW_{wzUO{D%IsEO$#POMxvHXR9%B$Z*6anAV45Ikd>`Nh0yTusVrO2 zH7qqtY#ViE-|2-FdOY{PDq&-Sj>|D7GS`>s5l(+gQ}nKnV>&^{;(yN0{yZv+l>ojrdsC6y0$K3G;)Q<`ug71 zqF;4&^&0Up12#RuZH>z@y7lAv+0V}8DOq@fOUVY$xaOr+> zUe55c;Fn3kN~d*0&*ZbWP-lRz{{htV zQu8WfXwy)g)I4?47^x`HJ;thw!g&LgQip|R{bCq2tEJ@bb!d27;+93I2dzKxnHE-XF*$&9h30IaQLY2(pgBc+< z0L{5mfUiSQ<2(3P>A(S%1IkOMF-KRXb|oA2t!vjrA@9q zWCtteS#Nq2m@%8L&MI;C4!mU_EE8bbB+wXIW}Vid(54cXjhkB7S^Y%T7R`Ci7L_MK zPhZ&@wA8Ee!~mU}Lv03XHjuydR(^k<5)1@lzMsv~(h|Tv5x_~~Us)d;O90Y71#%3Q zk#}Sy+ZSrN2M>h7+$gxez>eHEC{VPJkk=L9xu*tNX#$>6j&ecBTqBtiNYCyd`hm%S z7We^g2`VRSWCa)oT_9)Q3%GECj}jGROS=Q!ya7X6?b=kc)zT18uBq956A<2jzFQhx zT}lr5`%q2R0wtq*Ej7Fq{Qj{N9kE`(bWypa2eRjioOM|FEdo+Q&D>MU3l}`OMjSs^ z2aZA+;@1qD1Oeg(2+X|dz(r$F1aKd5d>Hv3wO!QW4uky>{-bXOwcQ+QuPfT1{Y7C$ zgO``|`1oLVeX5Ot=w?QSVgcv!jcphIvHXp(v7bi9At7y_BtwOvtT8ftb-8Wj+z3>L z%-^=x)~dlxEA?<Y7&*Xqh#5*YKZG^L2~#2AEYO#1Qmsro&6H+OJMub zwJWKBqviO9wnxQ#963QJ!e`h$U*(g|f{RkqWKTMR=|w^UH8i;ehlaiaapD@ttbq1G zJ`e|U_H$rx5n)|jTIY>FFMyM|%E58jX1e8OHa|q-B5+C~Pl1v{{ldTt7-}Yfu1+Ah zgR~3oGogJV;J(4mtk`3OrU$c#2p21^v;tfR-R~xc8;c7rI=Cpi~kEu{qvx z{7mT_P_LIsE?s&R9DD%?@sDb`hNO3%dS+K(JO#@!DW}={MnRxv#DGb=aQX6Uh6LA( zeD(`BR0dhmco}0^@dkCifQp4$a_`!AbAQPfdy8{fk zY%|{@R&{{Fhi4*v`RY|C6ezx@A#U$Hqfe*Vo@29lA6O6;oTwBaETonK^Tw z#Y7IdPD3LM34j@mq7eBTK&@k5>MpS}ogJ;L1l#Du8t}}(5sg-qgPIWP#%njHzlP|` z%ZEUR)dQgFO>$g;oI2^{ffg}i4sz5bjP@9amVv?&4$Dv-?YIJ+d~Lm5=*oH}Y|n|+ zx5<@IdjLW44u;n+CML!TQeVUwRZb{Wf|8KB(dL0Uh9j~@n4H({;OjCu`tZ6638AJ~9B<{jwk z?2nt@PmFXW%Tedrp_vK{Cm?BasKo~d(?IctO5A>^RtQ*w zwA~IOxB)Qy*1xMTqVAeT02AS>o)H1bHe4NtkT65}7KpU(;Nf@SQRx^Mpf8aJ^}Ka` zx{o(u4^|S5L6E6lfDK(_puqeV5HEGEW&?SWm{?e?^ry0v<%AAaUI7)?{{;0IU`cE` zNo;hw5G7px-KXtAgrI`A#!v+e6mZ} z5Jr{(D4x4V0?^EZc4S3H8aYszQBvD44c!DtgDDJhz%}sle?wJwP>HXDC>{x%8aT|i zw+o9iR894^CZ!Y2+!D(UKVJ_d*Q454^=fLniP5?^h&#D7ToaOToIE*A6$-qGl=I$I z91cZ8XjX{;;iD1U7rOXn_{YEo0NxVMQ_ry42g3yrdxhMkQu_LdNHCBL(M*N*tDN}i zwUM~k*x+SIP}@U$<-pwZo@p@OG!n_$5vdA3f`FQomDREHv4aL0_^8}A9;5R)IjJA& z2HgY_sM}pFx))IPX{6YBGqrIIQc&YWkdQ^eVWMOxGy^^<$!nR)RhFZr1zUk3R^SU* zs*Rp{kL2C@70#Q2fe1CK0}8XuIRNv<_|g&!qCeFXPCpOK8XbVPyl54T!N98@Qj{|Q z$0oi{kKwgTMedM2l)gww$&9L$F^3Fy? z4wv+%?Nk#{>3sD_!R%MTUJVwl-=?m1HAHiAj_(HWx_i~wfdpo=QTbVFt zVvu+IJ^W5X51jLiJjm)j8xY9w!lh0@&+3{M4m7plQ*d8^g=^@f1%CYgMbRy(hYx>% zY~1-p=1Q&|usWv@3IXSzMJ*$1;faYQ`St__`FlBq6ul_v2g(~*n`)s+$G@3`N!1f> z85sDd=tS+if}9QvPU4fPTas|^tyD)#1NpZ+KMfX3*+9P$lWGX7iZZagS_dGUV zRxMrHj3mwT!2t%jO9Vo2XOWd&EBEe-Xo1E9 z=F6eMYRLyKR@2?xJ#HgXE0Z8dDd4=}3C2CJ{sU9%4-R`*=sd8e?i*SC-a)KhVD_x5 z01?hmzGAdKQ0`LrWcS8MT@#x{|DXhg(_(>-K;Ja3o9o9Mn>i*UvA{2&egFmoYOrjr z>DCUI>h8dZLhVC}P70(pw4>@8w6o5oGi0deV{4Vnx`iiE^a5Q@3D^Pc%!a3W16tVxESf)qg|`dL`cZHJ zvv(P8>Ylv(MPSD}zdpX^6W-c|^$q3<7ctHskl#L@GTLX0{MQQ*sSTuKKzjmFAM_4~ zRxS!8L=4RJ=Nh5>HUD}Gd(w0}6$oFs1BUmv9@pfu1E41EGcqu^X%UeO-qH`SAHbY& z%c>MwQpVsp{`91gz+UnLA!E#oM5_u6hfN$~!Q~UL#$ILm_)Oh4h=FD<0)ilGxuM7L zR?YE(PT2~euq0$S$lC!pEL*5H~ef9|4P{66u3JF!-tLW5( zo;9@D4$Qddq60%2#-ojM9+FbzvD7XLtPq8s!eZjK{c{059w1$-d|&}%GpC`s8S7*| zRY7L9Du!CA_C-$mluh3Frhz4o6y&w@fE7RybKRRwR?X2r<4r()9w7z&M^{fT8=4Uz zhFym1)&LG^QX{V~feP32c$7p+K4Se@N(Q+hX3p00y+g-qCG3OfP>BlbEnb;J+qiuM z=^7dvzeB^1H#9tlm1O7;=b_~KB=MBa^3Ef8={f`V3XL8&`mj$KG^(g^r+NIcF?T1e zBVoMK%XV|*f2K57L3lln0NDFfOYj()QDFT6VZdx>BIyG55%95{1uXX+Y%I)J_XsXyA$9_57s4L(XCB32GD#G|Ph!35N9C;rg!+zJLFYJhg6)r3>Uw z0L=q7D_R^|tyHSq_b63==hm)F)FUz9lZFdCIogJ8_5>Wv;ES7G(XM0c0t(_?LV~42 z03Y|)-E745LkoH6Pr;exNB6V#>G&Ig%b~CkE=5hoOfa(*4 zdttU7c9OHBx0smlK_{t0O_k7#4a@1*A&#MRy$SRN@(T!LgH9&DjKLzki>y1dp**~D z+TDFR)a3}5A)f!Cj;1t?vc0*q3xpesgCu~K*ha`dE2ptS<1qBFe$uXVcbrX%O#h-I zH+a*0e|#`35fBBS-`bC&K3UKZm^Rq&A}HOI0L`H&Zw-QRu8}|T6k4{FxAVikfvuyV z!f4rv{ka%*{tqzDK>G|nc(Vv{9dw~9of;HK(&t$BE6J~4zfN=aZvGF0+J0x|oJqiE zs)ZJDGVSzmrAvUVjNyquHVL5q4TJ$4qhPs~{zzS&T#+$ctyn=pA)r!BeV{!$Cy=1G zZ5I`B!ES*%#|`JDOm5ZAmoV+-BnK%@{!$zeEYOOf{<7+|Q19t|`Sz__cp3#}**o8v zSXl`nJk&OY-vS$iiKZaf>yavmpSoL@j=<&D0YYc4h6w)cXSa?PbMmKPg^EHS7TO<- zk}IGYbGrLo0;rF&Hc)@67CpZTn-N3R{cE54UTumZBS5vQkUv>jSsjmkJkbW`$;TG(~`HDGqH1 z=z@k!3_4NTz*AGcbhIKt=m?y>eSEI8x<;FtW2`v0QV(mRhU`jLbpK0;3bC!5wwK>EG96yui&3_p$DJ{mOk@0Q;X7q z>FW5I_>4p4CaRgQbfFA#-mqw$s3qX--sdSzY@545HNFGu^R>6PGIvH;WGD2Up^Uzcv8BGPbl72zg`zT1DTRHrZ*q$8JA42mY-9K3 zDZG_du2E8)vO9%Z_fyxl$3WXYO+dgkc>^rY=ph_XiDkR(+lOj|G4d(5Q0f)b88q|A zhkC>?YSa&mwr+QglB8nt1->`DL;W@1Lkwp4@7We05k`Pj74?3CokJ2FQ*P62#0uaLh zXNI6PmMaUNHjjI3GD~J$)szGz znrE^WvRVz2T^t=7fcvC{;$>~froB-?PJj+r8}VkKHRZsiJPDJY{#-o;z(XS(P=dew z`#IDJ;N25PjmDuibwgRLKv9fOPF{x_&P#QJ&qYGG*M>c>!{G)3Bc@7d3d58Tsnc1JW30 z9@w=9z5O+B*;2l-?PWG`UEa&IUd+zl_xH}~1o)$c4GrlbOMuDVY>oK$8XTbV9E3r@ z{GR}DLFe+T#+7XK3}RYLNLJiDJR-^6=${Pbm^dwa+bF24#~>NrgO=K{E5;ut&(#54 z1-kVM;Kam$A2|h>NE8f_ARYiD1&=YDq2ph$JUxwLWMt%LKG&U0P_Z+PSHmva3t7Y4 z4PqH|^+e~Lx=~Dh3@0LRdmQmY3;$bK2~m`%+M>6@%L{+W$9slY7NU+LaM?q-Sk>H& zC){X$9Tno|H@!9F(_3M|d~E^d4&28&_6=i@I#AMJOdg}TUh#gtEO79enwluSBm}nd zF8SNSq9Rhj9^QjDAnGgC;29Yj0wsQ_$aeN3*au#M#iwR;bksPiX)iY{zdltfQvz5g zSSf&y5#U2Uo6p(ue%9b?nmHpJZlkkUY_x1sk)9g+*#H*NdFX!dwp?g#0z1OPhxj3( zq0rthfu0{^Sg5l!W+hD!2Ck^8{(dqDUeM$2eE@R(Cvc^UHv#1Du@km%~pWAM!6np^uV`a-Nw#_6cDr!rj z2G&Eg$6LZjM2vXIbmk8P4G8C&41Tw1OI%h2IK&*@{QRj1pp+a&C-A(NZ%YwLdnejR z!O7V>?#B==%jEBTUo78G#n|^U6XZ559Q-PHy3R@u4}c|AuHH)oJL8FF^EqA`|-o~u=_QOMs^cf#uF@RXtG^eIG&x5+p8Rh9%X^}&a2R&sakw72HerYjW#T}BW@&DT(&i4Fk5e>u5GsuO?=U3(B z;@Hv^_H43ceb9>xX2OX@bst4nJhs$otQ*0EvR`WZ9cJG&`|qiAidWE)oo^ugiFex5 zFOmeInQtQcV{Kz)H^}LjZ;XL(?{4LukyYQm$9~Xh{|H{UT(8Y_s*8PQt7yCrfw!Tw)ez2^n@r+&=8Slxx z^uN)~{JWD0|5vW}zqgV9lgRY{nF~p0pOPt*6ST5DeKH}FPi1Lo1M#1}2vx{fvh>%B zkv{pgeIh!iE8=4b`8f%6-zZHCgie01$amSLne1dF3I7coO#ex+?0NIJjqw`oX@Z16 zXcN4$x*7>*0n*U^?M#6#Xm8nM=vx@hcCrckTyx?=_@w^H_a)$=Gk(M}qEb!fJG%nl zQ5ICKbZ7Z#VuT2bydWO+s3bgdM)G`M*x&6QN_#e1zAtkW6X8F2&L_%>g;-dSL;fb* z-Bp+HI&q1Jo&WIl<@8YTEyOc8SUA)vLu3DYbMxl{(UWCDiz}}vVzXt2iGUK`OTRwX zvwpAKSu3CNuit|w_>(vfpA9`UK#=qAJheeHJNmNo{B$;YX9pV_SLn2n(S0w7zWQ9y zsc|3Fm`>=Zf#!vl&M{R3IGxh_ee%Po@juTY%6)#X(Uy~A{d`gVtgGvs-uIVxZvcAH z(#FmxxZvcp3r6M0j>JZ{!1JMV=!shZ^3Oxd8tO9uJ!x!mQZd8)OLFox;8P&W)k7hS z9#)lXJpbk3z||G%KW?`@4(P{z35qi>Z=y@QFAWsZm4{nbz{$x9EqM|?`doI|=61WW zw{P62f|HqIRGCN50zz9lz|yDg z`)y0Hw_rf9ektGPNXrhsfPDA}7`;1SCxD}OE}@VI_=c;rcT40XzRvQ8973^x59M49 zDBQDu9xX^vmO>QKkXpmw+!bQ&Wv# z2bObM`Hq`b9t11`9@5y*aOYujVlpGvHqj1{h7yZdv5NA~}Zi~H1HkNKah~P@x zvy%ZH4Lzw1hKCFloT6u-P>0g@6Y$MFBSBE$HF7}573zmT8O&D%g2o(R&v18yLp8xr zqqOMO7Xbzm9XNpCPk%0hX9%azN);B2KHYR9RjT#Edp?|H;)ns|$MF<|-NW{6qiNua zf=BfPwtE}|#(ThvqYcQRX;wrtJkPt{HN5Ls-?8_xzi;pNSkL=D ziyQZSUFUV4|Nn3L17_v{NfZzq2r-G{yqY&|5I-@Z7hgAzHpxo% zy6`yH69@%x_ zjy2dM5;0|9xI{8!n%0=(TCMjLlkZt|S8xIGh7_^Wsr9t@80tSFHKW+BmU@T3?)bq3 zRY_SZA zlCh5j8eU}wT|x2`2)`S6As*UPwT!oa+ORjGuXPcN2=H7|kd<)l?m4pe@8|sz^Ae?ETTii(Fk^*i94@iw$Ys?RAsngxEUO13|m zwt8|dD0o9>{}A@Va6OoR-;*m3mX+B60JX9P|AF3DQ`H1w)#KrgE%ECkAK z8{V*XZ2@tTKqo-h3l^4@yX_~ajXUy;YORR<1dkI4j5aNGEEuS@^~Y&~@K=Zr4~mC# z;4~7|-|E-So*kYHemkc0TyQS;aKCJLO($S%(s(Q_{#;@PJPVOQGGCtUQ=A$QnIJ#X zBG1ved~9-Z6@_^7kU)`aBM8ixxblgx7#V_0j`O#O6%aer{mW5t77OG3RXu>vMMy+! zPmkurJ9g;JKyGZIHf+zOgBSTd5SWeQz&qVZG#_#xh$RTx^P_O6h-I8{T(slXt)?J9 z?kq4%(#!*2VFq6VnZ`~Y{p}>^k#Z8zH6(!#bSRSFRsvOueJuz8#95;nf8jjfH_&;y z0il4ZNs8o~Vx~e|SWmD6|K%Cowr|q-Dl8j3H zIfq|s4SbGReil@kF&7C4=9wB4=SMY zXMD0akA)&+O7LWG7~Ow(>H76B;ytfKwN>!TvMtHT1=f%;$&y{ zLSSnLaqv9y^gQw54GiGx)~-EDx4l5-`69xC#h{I?$a+2X<&bugc{@|T?$y54tH2gM zA%D{0SJ#?ldx$*_hR{#Q&)J7+&=;E3WqTlJdTn#YFa0eT8ooOtFNkN;4A#|Udy?Kx z1z~S3L(QTMc9#prYi@|IFgL53Q_*!Pe;AO?wvHY!@*%@PD!TDAuQtF)$>kW-dh zfe0RCXHV8&f<)&t+`vE*0c9Y$M6c%M0}w_E*@=R43E74f;aR_iYx>11`jNIw?$l>k zZ2)^3rLEC`E3i!M!~v(mGhK=b)u4Cw@$nT4#R;;`%9>&W1E~Bby_)AJjEUvzE1(m>_%F0T}A8(}ofS^T-aBnTC z1RbYbGBZoAnSejB>;jdbR`NWSCy!%F)Qlp$09BM(?|;E!quiXv*77n@i>7j3Ho3TMXc+-%)qi*$eau-A0!k< zzOA&jeICwC<7qY(x-@?g0BLKkwJd)5&0pvH5%0NW|Ni}=l9Fk98oe0_3UR#<$&f6F zM-M*%fL%p2FLJ2jnc;A!ed;Bh2jF$%ZU%Ar+de5lhM}w^RRfBW{d%4Ja%+hvM%=Mez#=3|4Naj5Y>a{*HM3v8=oB zr@!P`CH%4XZ!Lg5KapysnshK>K?Lv^&?4kz9R)>3zzGv3B+`_h&Q+Pst$+(TzBvQF zL&-OI{rI=qD9^5&)aSxQSbs`q-|BHL8oq*@&&!uDqe&zl?M>rqYHFi!9EF43VCe&I z@7>~JXgTpsn%K~(&dk3q$pt#Q{HO!f-Gt$|OTt-c6VE&&?3$W4i(?NU&Tgb`kqBGo z0c>iVD9+bI5DT02t^^#Z^l0S1)a5<4_})HDCDc9B;@woR;5+(|f~ zenGms@l4C-P#VTKVPRqN5sCW~M`ZAaIxKG2(V#Nf0d5tu>q(lm4GwVw=Be?J1duDz zVK=^sO(MVv=kspL7NDs(V(FSy>Wv_rx>odtfwmbXu-R zb9sTw7OTY2W>R0GsW(6MZ9HdhXvF;^kRY#syypUrd?GmsZf&qV68oz}gZaTNGqZb0 z$c6sn_fe^_G`pkS_NO2bhkwb#O`iR>k4TK*pYFaSgc^7?h3L*YYih?Q2gsxCLgude=Xm#KuPv6FK|6E$0NH zvVeDQMDaB-VS$1xV56&=?^Kh@jGcT0qaP@&>$oB$fPu7^M7@Hh0J0$#6as%h`q)Dh zB&ff;dwRN%bBnsEDZ!|Z>C`kt9uzPn3fYS|{g4;EsVdaB5z6cEP@~~1=EZ|B&YD6w zB{2If-1pOFlrMsj8A#X>LM=&9>`A1ziguZZ4x}9S6PYfptW3Ar zo{Kt~WE-(nQA35ZRV~}%9qJg83L%%xcyUt2a!l#8gY87t=kcowXU|glszN>Cd&b5@ z4dU?*I{x9j-K;U=fc#^_hfaKm==c`(>J=iXr4@-W0Rm!J?TTVeY7Em1o4D{v_MSPj zo7kAK3y*?vlgm~Y-Z!77TeBQFrGMoDP$)R(d92UAWrxI?@>}}rurR4eT0pFq_arBa zuk$XhB27|M+$wK>`o=ubjq}dpdGEbtop4oL zx^kr$CAa#pQU0%P*OBq@;}ZO4U)PdH9D>loRH!wes0%ac$g6J-jo7IlYY&wnv62%9 z_6vL&*Pa1zkKybVb>(WM>~8|UZs zndQi$3x9*;3pAviC=hwZ-X)&G-b*R?=Er9~)D#L?&t0*I_mJLhEYiNpWB=e4Ta}!Gi^UW;scvhvNJg>Pq&ut%KjcZvad}a^$ttK_8OhwO+myAkX>mnirr!b^77U zUcr3hfCpzxg+t0srm|vdt&zU`D<>*16k}+ zQ+ch}nh9&#I!FR6Tt^jC7m`5`dSW}*gqDOP)qu$}a!AR|vInWV2|Ow4JgJDP0J#Wz zC%xxldffEn=T$`sSb@m7ioOprd4_r}JkStsq<#m|pFG0_$e}q~BL5B&U`77o`<&qq2&SDWP3eroyK5d-vP zkS8XUBx8CRHE3lGNCP1G*S74wM&S!^i!j zWFn@SJ>kp3c!(lcimB=79^qz@^@h_gmiJ5ZW&@wa(Nnj&R}$%P-&@GGOs%Xw;z5z? z5^PUr;HTl#@XLDUqey}|MMRb#u(q|Hp_<%rM1AEoTSo<24GRlyfMLYhhAkcD`!)F1 z2V8}XRI@=UjjdKj6%Pcf1Xbn|d;}|N9?!$Iq>F%qF24IRE>ydnQ&Ns2|Nj`~J6w22 zHh1*9)!zzVX6Z$=7&j&|qC&eFpfJlI)8v1NcE^rgiSre(^pHq~`qAm{ja1mkcm-C- zw@t~v!qq{D+Pjy+u0%qXqb?i*ya1~2k~w$ukw>xaG0`OA{bUlNjUZnQwmW;61hgZF z`C-?CPknV3`Sn^%%jPD?eOG|+l0;ylM;KcC+K`!2WfcHqjuF zfdXmVhmp-eGDv3UDbGh85CNcv^t!+)kJ{YyOdF0n1hG0kjW=o#I_J)*KO^7KsBsO2 zKDDSK{aW*|+UF-9n59Ed5Y+sWXYWqb6~lu?1Ywda!{$(@mQcpl9V z=PuUc>ES^O#nPXF4|TFvNWPwQhe~azw6wIs?l^3%G*DPv2+hvPDT9iD6*+m;>4;%y z%C?Lv5|HQFAul)`Yg_3rUvHjjx4B|d3%V2YlwwVEKoO{Pl7Yd54?rTc4ZeG8=wvyb zDP#|i6>@rF_zy(JZtahr!d8sSOPml;@w=z@COPl?WZp)1Ko!9 z`@fR?_$Kljx1J0O@m9dVXT-FCKcAd>imoELT^A##DC$k`kw zh}V-Ozb-Xp2tLNjk5_$yvqWdSBR~72=-0#9?a)zBzr!j1^vM$^Og};ax##4`FIwE* z|7!vrGG6813v`10;Z}g}hiGP)ahxs(mJ)_%21!!LzQC@FIz^=Awz>KJl$4Yr-br{s zHS9(obOr7;fKab658?1QAS9cY`?RibfKUjLwoFjVlTjJv9?Ne^&Xu0dxpDBy*^+v1 z7{rkI6OQjX+xmfqd@WSVq?DJJpSxeKqZ!G}iVHb)`xBqyt_yM(M;Ta|W3T>0 z88cXUtp`ms{=@q}BEVgLhCOm~gV){x`{V{zo6~zvIFK@AZ93)$`a)CR03oxc#H3(1)6Hl!E2^_q)aH z3i~s8{(M~^$Di6Gq4fW|fAIfP0*5kDp;zg*vkOW}2DOXp9Pa#HP_MS=UmX4tbiT;% zz02>5_CqkY_qST;;da-*MPL7rR>ad=JAZs$l_!Tjjs7h81r|SJ-<(_4eqg?~JC~>! z?D>EHT8rtfzw{{oB=BOGVxrH}{8LdDTef$Vq;OTy?|VXh)%8DXP|Us@=Vrb)GBWV% zds062ZpU>95_(jJ@@kj^WMEB(tCf)4x}0TU*C(YoBW=Ej`B=vr4+(7f`eBJ z+E@rVuHk{{o&QGHaPW`9i~p6bVSUfYJ+{-Qm%V#O^}ea8i>%Bx z`E=v9$6%0OLNH7Gy5WV(C@_e(Y^lX|!oawhx@{GMP1#iih0Td-;&(l-*aMSYO%BHI zt}p6onU5UV4F?NUp;=W=_j6q_G(k<7`2OFqDkKDAP1rPNRT%8CxbmQ$$o;fsfn?!M&ehlT!a}v-K4_!8iKR#Yn>t;VD z7p<|erv~Wz_0!0uFc{WJGlYEYFq~1uwNKKU2sa40M7J)Q8U>Impjf>1hIM507g8NY zOF5FR!T8Uc6dD}t3f7($@#~lw#sD9l>E*&Ha7ldNpw!yf19jT4K#>$QiZ(*gDE@H5GfPTqq*)oVog*P(% zir#l2EaxnQrznLVqATx##{47LJkt*QNX1_mh~q>!e{fPCfP*t`(Q6w69z^6K_&nEq z8+HR(Bf@}2b=yribYaC#H~-@!Y2$#u7Z&!k(=9s&_dev@Nb*9{;w-A+TP12amwGrZ z+Q_#zhK}0rqKktN^+G@NWO-QpX8bo^6d@s1%osEeSIGQ z0@uWJ$V*~k=g~|+F{-%Y={9P*xNWN>Thf<#Y`p(tE0z;4naBqGqZ{*KQZiMM!%dJj zw4`-6EG&a_a%_DY;6mL&tZhK7T3?668kf<-+Fpq0x+h*;vqLCk*1w&Z}1Me_7^ zl~Pg3sr%tq^;Lwe&4eW62Qr$I|I#D;LSMK^WBxBK!ddt*(D2nDc{ezn4|6Yp12Drz zL1smqve1?M0|O%7zgtzo3bF{eVI+CO%V7>)LEbPpIeDdWpRwubi$L-9_a^7G;N5L} z@%6rnQKro#J8DIyJDqoxn>5r&i5n2&aHRhOgSfSsPj<5jnm0i*YYjlsF3H`PO99pY z@5{C!2vs}Xq9ZY=eh?MX+T?Qj!ZvJ6@7^slMNpR3&R3>*8l9h-i6w29i-cn+02bIL zYqa0awx7_`;5Frk{Sg-sA0IC^Enmas*XJ9OSUZ60bYs$fm`qJmPfD`j`_1~tTAC~Y z=%rBfEsHwbmA1*k)gCcir^}6}*-1=$QBhIe%*e=5C0NmbhK6SEzI}y}mZcw+W0Rlx z_=2p)g8Pzs#TmK8!8BzN*5PqtSHE>J&ov>uI4IK$(s`7EY+m^36oLJ&Ia_%v2+}@d^sG z1Up5mh@q>iiK9)!Gk4QP0(L=gIgDdwuYqnlEH>3^iue4Vs`|Wxsrl;73_#LusdAVVff(ygtOFeHB3aM&8&$(qt4l@2e$nVddJbu`&8YC ztVun%qk$>7PcE(FKM5Xux-$9xliDGf-EWLU%3>>jfqsQ;98d}I6`;S6*J}|H^5}eW zPiO3F5=IKFq!hHjJ%%&~&(XHq=}Wg*mpj4GM4>3B>Pq+8*0?@?3`r6d$!G>2g{

    #v=Ps~J3$f2*ceJDSd?Pq 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 literal 0 HcmV?d00001 diff --git a/assets/images/negative_positive_variability.png b/assets/images/negative_positive_variability.png new file mode 100644 index 0000000000000000000000000000000000000000..19f946ea5fc1c786ab73b9e4a173f45547483bdc GIT binary patch literal 8189 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 Zm?~Dek*IYuAgly|bTsrKr4MX_{{#Bk$UOi6 literal 0 HcmV?d00001 diff --git a/assets/images/typical_mde_application.png b/assets/images/typical_mde_application.png new file mode 100644 index 0000000000000000000000000000000000000000..2f4dc67250ae48a0e16b22a15952f572bc27cea3 GIT binary patch literal 18902 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 literal 0 HcmV?d00001 diff --git a/assets/images/variability_domain_application_engineering.png b/assets/images/variability_domain_application_engineering.png new file mode 100644 index 0000000000000000000000000000000000000000..fb571983cc1e06f5e56dd3f1845babe9349f1b77 GIT binary patch literal 25148 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 literal 0 HcmV?d00001 diff --git a/bibliography.bib b/bibliography.bib index e49d1b3..8b721a0 100644 --- a/bibliography.bib +++ b/bibliography.bib @@ -659,3 +659,370 @@ @book{czarnecki1998generative year={1998}, publisher={Computer Science Department, Technical University of Ilmenau} } + +@article{despa2014comparative, + title={Comparative study on software development methodologies}, + author={Despa, Mihai Liviu}, + journal={Database Systems Journal}, + volume={5}, + number={3}, + pages={37--56}, + year={2014}, + publisher={Directory of Open Access Journals} +} + +@article{awad2005comparison, + title={A comparison between agile and traditional software development methodologies}, + author={Awad, MA}, + journal={University of Western Australia}, + year={2005} +} + +@article{svits2012comparative, + title={A Comparative Analysis of Different types of Models in Software Development Life Cycle}, + author={SVITS, IM}, + journal={International Journal}, + volume={2}, + number={5}, + year={2012} +} + +@article{davis1988strategy, + title={A strategy for comparing alternative software development life cycle models}, + author={Davis, Alan M. and Bersoff, Edward H. and Comer, Edward R.}, + journal={IEEE Transactions on software Engineering}, + volume={14}, + number={10}, + pages={1453--1461}, + year={1988}, + publisher={IEEE} +} + +@book{elliott2004global, + title={Global business information technology: an integrated systems approach}, + author={Elliott, Geoffrey}, + year={2004}, + publisher={Pearson Education} +} + +@article{ramsin2008process, + title={Process-centered review of object oriented software development methodologies}, + author={Ramsin, Raman and Paige, Richard F}, + journal={ACM Computing Surveys (CSUR)}, + volume={40}, + number={1}, + pages={3}, + year={2008}, + publisher={ACM} +} + +@article{avison2003now, + title={Where now for development methodologies?}, + author={Avison, David E and Fitzgerald, Guy}, + journal={Communications of the ACM}, + volume={46}, + number={1}, + pages={78--82}, + year={2003}, + publisher={ACM} +} + +@article{omg2017uml, + title={Unified Modeling Language (UML) 2.5.1 Specification}, + author={Object Management Group - OMG}, + journal={Final Adopted Specification (December 2017)}, + year={2017} +} + +@article{brinkkemper1996method, + title={Method engineering: engineering of information systems development methods and tools}, + author={Brinkkemper, Sjaak}, + journal={Information and software technology}, + volume={38}, + number={4}, + pages={275--280}, + year={1996}, + publisher={Elsevier} +} + +@incollection{ambler2008agile, + title={Agile software development at scale}, + author={Ambler, Scott W}, + booktitle={Balancing agility and formalism in software engineering}, + pages={1--12}, + year={2008}, + publisher={Springer} +} + +@inproceedings{guta2009lightweight, + title={A lightweight mdsd process applied in small projects}, + author={Guta, G{\'a}bor and Schreiner, Wolfgang and Draheim, Dirk}, + booktitle={Software Engineering and Advanced Applications, 2009. SEAA'09. 35th Euromicro Conference on}, + pages={255--258}, + year={2009}, + organization={IEEE} +} + +@inproceedings{madsen2010unified, + title={A unified approach to modeling and programming}, + author={Madsen, Ole Lehrmann and M{\o}ller-Pedersen, Birger}, + booktitle={International Conference on Model Driven Engineering Languages and Systems}, + pages={1--15}, + year={2010}, + organization={Springer} +} + +@article{ambler2007agile, + title={Agile Model driven development (AMDD)}, + author={Ambler, Scott W}, + journal={XOOTIC MAGAZINE, February}, + year={2007} +} + +@inproceedings{groher2007expressing, + title={Expressing feature-based variability in structural models}, + author={Groher, Iris and Voelter, Markus}, + booktitle={In Workshop on Managing Variability for Software Product Lines}, + year={2007}, + organization={Citeseer} +} + +@misc{schaefer2012software, + title={Software diversity: state of the art and perspectives}, + author={Schaefer, Ina and Rabiser, Rick and Clarke, Dave and Bettini, Lorenzo and Benavides, David and Botterweck, Goetz and Pathak, Animesh and Trujillo, Salvador and Villela, Karina}, + year={2012}, + publisher={Springer} +} + +@inproceedings{roth2015towards, + title={Towards product lining model-driven development code generators}, + author={Roth, Alexander and Rumpe, Bernhard}, + booktitle={Model-Driven Engineering and Software Development (MODELSWARD), 2015 3rd International Conference on}, + pages={539--545}, + year={2015}, + organization={IEEE} +} + +@misc{dijkstra1970notes, + title={Notes on structured programming}, + author={Dijkstra, Edsger Wybe}, + year={1970}, + publisher={Technological University Eindhoven Netherlands} +} + +@book{clements2002software, + title={Software product lines: practices and patterns}, + author={Clements, Paul and Northrop, Linda}, + volume={3}, + year={2002}, + publisher={Addison-Wesley Reading} +} + +@article{czarnecki2002domain, + title={Domain engineering}, + author={Czarnecki, Krzysztof}, + journal={Encyclopedia of Software Engineering}, + year={2002}, + publisher={Wiley Online Library} +} + +@inproceedings{bosch2001variability, + title={Variability issues in software product lines}, + author={Bosch, Jan and Florijn, Gert and Greefhorst, Danny and Kuusela, Juha and Obbink, J Henk and Pohl, Klaus}, + booktitle={International Workshop on Software Product-Family Engineering}, + pages={13--21}, + year={2001}, + organization={Springer} +} + +@phdthesis{stoiber2012new, + title={A new approach to product line engineering in model-based requirements engineering}, + author={Stoiber, Reinhard}, + year={2012}, + school={Ph. D. thesis, University of Zurich} +} + +@article{sinnema2007classifying, + title={Classifying variability modeling techniques}, + author={Sinnema, Marco and Deelstra, Sybren}, + journal={Information and Software Technology}, + volume={49}, + number={7}, + pages={717--739}, + year={2007}, + publisher={Elsevier} +} + +@inproceedings{chen2009variability, + title={Variability management in software product lines: a systematic review}, + author={Chen, Lianping and Ali Babar, Muhammad and Ali, Nour}, + booktitle={Proceedings of the 13th International Software Product Line Conference}, + pages={81--90}, + year={2009}, + organization={Carnegie Mellon University} +} + +@article{muthig2004gophone, + title={GoPhone-a software product line in the mobile phone domain}, + author={Muthig, Dirk and John, Isabel and Anastasopoulos, Michalis and Forster, Thomas and D{\"o}rr, J{\"o}rg and Schmid, Klaus}, + journal={IESE-Report No}, + volume={25}, + pages={1--104}, + year={2004}, + publisher={Citeseer} +} + +@inproceedings{schmid2011comparison, + title={A comparison of decision modeling approaches in product lines}, + author={Schmid, Klaus and Rabiser, Rick and Gr{\"u}nbacher, Paul}, + booktitle={Proceedings of the 5th Workshop on Variability Modeling of Software-Intensive Systems}, + pages={119--126}, + year={2011}, + organization={ACM} +} + +@inproceedings{haugen2013cvl, + title={CVL: common variability language.}, + author={Haugen, {\O}ystein and Wasowski, Andrzej and Czarnecki, Krzysztof}, + booktitle={SPLC}, + pages={277}, + year={2013} +} + +@techreport{kang1990feature, + title={Feature-oriented domain analysis (FODA) feasibility study}, + author={Kang, Kyo C and Cohen, Sholom G and Hess, James A and Novak, William E and Peterson, A Spencer}, + year={1990}, + institution={Carnegie-Mellon Univ Pittsburgh Pa Software Engineering Inst} +} + +@inproceedings{batory2003tutorial, + title={A tutorial on feature oriented programming and product-lines}, + author={Batory, Don}, + booktitle={Software Engineering, 2003. Proceedings. 25th International Conference on}, + pages={753--754}, + year={2003}, + organization={IEEE} +} + +@article{czarnecki2005formalizing, + title={Formalizing cardinality-based feature models and their specialization}, + author={Czarnecki, Krzysztof and Helsen, Simon and Eisenecker, Ulrich}, + journal={Software process: Improvement and practice}, + volume={10}, + number={1}, + pages={7--29}, + year={2005}, + publisher={Wiley Online Library} +} + +@article{czarnecki2005staged, + title={Staged configuration through specialization and multilevel configuration of feature models}, + author={Czarnecki, Krzysztof and Helsen, Simon and Eisenecker, Ulrich}, + journal={Software Process: Improvement and Practice}, + volume={10}, + number={2}, + pages={143--169}, + year={2005}, + publisher={Wiley Online Library} +} + +@inproceedings{czarnecki2007feature, + title={Feature diagrams and logics: There and back again}, + author={Czarnecki, Krzysztof and Wasowski, Andrzej}, + booktitle={Software Product Line Conference, 2007. SPLC 2007. 11th International}, + pages={23--34}, + year={2007}, + organization={IEEE} +} + +@inproceedings{batory2005feature, + title={Feature models, grammars, and propositional formulas}, + author={Batory, Don}, + booktitle={International Conference on Software Product Lines}, + pages={7--20}, + year={2005}, + organization={Springer} +} + +@inproceedings{czarnecki2005mapping, + title={Mapping features to models: A template approach based on superimposed variants}, + author={Czarnecki, Krzysztof and Antkiewicz, Micha{\l}}, + booktitle={International conference on generative programming and component engineering}, + pages={422--437}, + year={2005}, + organization={Springer} +} + +@inproceedings{groher2008using, + title={Using Aspects to Model Product Line Variability.}, + author={Groher, Iris and Voelter, Markus}, + booktitle={SPLC (2)}, + pages={89--95}, + year={2008} +} + +@book{filman2004aspect, + title={Aspect-oriented software development}, + author={Filman, Robert and Elrad, Tzilla and Clarke, Siobh{\'a}n and Ak{\c{s}}it, Mehmet}, + year={2004}, + publisher={Addison-Wesley Professional} +} + +@inproceedings{constantinides2004aop, + title={AOP considered harmful}, + author={Constantinides, Constantinos and Skotiniotis, Therapon and Stoerzer, Maximilian}, + booktitle={1st European Interactive Workshop on Aspect Systems (EIWAS)}, + year={2004} +} + +@inproceedings{steimann2006paradoxical, + title={The paradoxical success of aspect-oriented programming}, + author={Steimann, Friedrich}, + booktitle={ACM Sigplan Notices}, + volume={41}, + number={10}, + pages={481--497}, + year={2006}, + organization={ACM} +} + +@inproceedings{clauss2001generic, + title={Generic modeling using UML extensions for variability}, + author={Clau{\ss}, Matthias}, + booktitle={Workshop on Domain Specific Visual Languages at OOPSLA}, + volume={2001}, + year={2001} +} + +@inproceedings{ziadi2003towards, + title={Towards a UML profile for software product lines}, + author={Ziadi, Tewfik and H{\'e}lou{\"e}t, Lo{\"\i}c and J{\'e}z{\'e}quel, Jean-Marc}, + booktitle={International Workshop on Software Product-Family Engineering}, + pages={129--139}, + year={2003}, + organization={Springer} +} + +@inproceedings{possompes2010uml, + title={A UML Profile for Feature Diagrams: Initiating a Model Driven Engineering Approach for Software Product Lines}, + author={Possomp{\`e}s, Thibaut and Dony, Christophe and Huchard, Marianne and Rey, Herv{\'e} and Tibermacine, Chouki and Vasques, Xavier}, + booktitle={Journ{\'e}e Lignes de Produits}, + pages={59--70}, + year={2010} +} + +@inproceedings{possompes2011design, + title={Design of a UML profile for feature diagrams and its tooling implementation}, + author={Possomp{\`e}s, Thibaut and Dony, Christophe and Huchard, Marianne and Tibermacine, Chouki}, + booktitle={Software Engineering \& Knowledge Engineering}, + pages={693--698}, + year={2011} +} + +@article{greifenberg2016modeling, + title={Modeling variability in template-based code generators for product line engineering}, + author={Greifenberg, Timo and M{\"u}ller, Klaus and Roth, Alexander and Rumpe, Bernhard and Schulze, Christoph and Wortmann, Andreas}, + journal={arXiv preprint arXiv:1606.02903}, + year={2016} +} diff --git a/docs/acronyms.org b/docs/acronyms.org index 874b315..8853912 100644 --- a/docs/acronyms.org +++ b/docs/acronyms.org @@ -49,7 +49,7 @@ | MT | [[id:707BD590-1E59-56B4-D333-33525E43A78A][Model Transformation]] | | OMG | Object Management Group | | OO | Object-Oriented | -| OVM | Orthogonal Variability Modeling | +| OVM | [[id:76DC5C70-AAC0-86A4-3EEB-4187367002BA][Orthogonal Variability Modeling]] | | PCL | Product Configuration Language | | PDM | Platform Description Model | | PIM | Platform Independent Model | diff --git a/docs/mde_and_the_software_development_process.org b/docs/mde_and_the_software_development_process.org new file mode 100644 index 0000000..cd96b2c --- /dev/null +++ b/docs/mde_and_the_software_development_process.org @@ -0,0 +1,387 @@ +:properties: +:id: E5EA2B40-5526-0E44-B6D3-8F817E21C984 +:end: +#+title: MDE and the Software Development Process +#+options: <:nil c:nil todo:nil ^:nil d:nil date:nil author:nil toc:nil html-postamble:nil +#+startup: inlineimages +#+cite_export: csl +#+bibliography: ../bibliography.bib + +/[[id:11F938FF-2A01-4424-DBE3-16527251E747][Back to home page]]/ + +#+begin_quote +One of the more controversial concepts in Agile Modeling is that agile models +and agile documents are sufficient for the task at hand, or as I like to say +they are "just barely good enough". For some reason people think that just +barely good enough implies that the artifact isn't very good, when in fact +nothing could be further from the truth. When you stop and think about it, if an +artifact is just barely good enough then by definition it is at the most +effective point that it could possibly be at. --- Ambler [cite:@ambler2007agile] +#+end_quote + +[[id:C29C6088-B396-A404-9183-09FE5AD2D105][Model Driven Engineering]] is deeply intertwined with the software development +lifecycle; and the shape of the software development lifecycle is a function of +the prevailing [[id:8E4D171C-1FAE-FA74-0EA3-97F1125B8A2A][Software Development Methodology (SDM)]].[fn:sdlc] The present +document provides and overview of this complex relationship, pointing out +implications of this interleaving. [[id:8E4D171C-1FAE-FA74-0EA3-97F1125B8A2A][SDM]] and related processes have themselves +been treated extensively in the software engineering literature, including +numerous comparative studies and surveys [cite:@despa2014comparative] +[cite:@awad2005comparison] [cite:@svits2012comparative] +[cite:@davis1988strategy] [cite:@estefan2007survey]. In the interest of +maintaining focus, the objective of the present section is not to perform an +exhaustive review across this vast field but to: a) supply a set of conceptual +building blocks to be used within our research; and b) to investigate the +relationship between [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] and [[id:8E4D171C-1FAE-FA74-0EA3-97F1125B8A2A][SDM]]s --- including a characterisation of the +general challenges posed by [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] to the development process and vice-versa. + +The document is organised as follows. It begins by defining more precisely what +is meant by an [[id:8E4D171C-1FAE-FA74-0EA3-97F1125B8A2A][SDM]] (Section [[id:8E4D171C-1FAE-FA74-0EA3-97F1125B8A2A][Software Development Methodologies]]). We then attempt +to determine if [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] has a "preference" towards certain types of [[id:8E4D171C-1FAE-FA74-0EA3-97F1125B8A2A][SDM]]s on Section +"[[id:9A171CD4-61C9-07E4-8D63-221C63B374B5][Iterative or Structured?]]". The document concludes by looking at /[[id:CA10BF3B-5F12-D0B4-5C4B-32E4B0B87BBC][two-track +development]]/, an approach commonly employed when in the presence of [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]]. + +[fn:sdlc] A distinction has been preserved in this document between the +"software development lifecycle" and "SDLC (Software Development Life-Cycle)". +The SDLC is considered a [[id:8E4D171C-1FAE-FA74-0EA3-97F1125B8A2A][SDM]] by many authors such as Elliot +[cite:@elliott2004global] (p. 86-87), who calls it the "oldest formalised +methodology for building information systems". He states (/emphasis his/): + +#+begin_quote +The traditional approach to information systems development was known as the +/waterfall/ approach or /systems development life cycle/ approach --- the SDLC +approach. [...] This methodology pursues the development of information systems +in a very deliberate, structured and methodical way, requiring each stage of the +life cycle, from inception of the idea to the delivery of the final system, to +be carried out rigidly and sequentially." +#+end_quote + +Conversely, this document employs "software development lifecycle" in a more +informal manner, meaning /any/ lifecycle model --- often a property of the +underlying [[id:8E4D171C-1FAE-FA74-0EA3-97F1125B8A2A][SDM]]. For those interested in a more rigorous approach, Estefan /et +al./ [cite:@estefan2007survey] provide a detailed discussion on the subject, +defining these and other related terms. In particular, see Section 2 --- +"Differentiating Methodologies from Processes, Methods, and Lifecycle Models". + + +* Software Development Methodologies + :properties: + :id: 8E4D171C-1FAE-FA74-0EA3-97F1125B8A2A + :custom_id: ID-8E4D171C-1FAE-FA74-0EA3-97F1125B8A2A + :roam_aliases: SDM + :end: + +[[id:8E4D171C-1FAE-FA74-0EA3-97F1125B8A2A][SDM]]s have had a important role to play in the development of software systems +from as early as the 1960's [cite:@elliott2004global] (p. 86). According to +Ramsin and Paige, "[an] [[id:8E4D171C-1FAE-FA74-0EA3-97F1125B8A2A][SDM]] is a framework for applying software engineering +practices with the specific aim of providing the necessary means for developing +software-intensive systems." [cite:@ramsin2008process] For their part, Avison +and Fitzgerald see it as "a recommended collection of phases, procedures, rules, +techniques, tools, documentation, management, and training used to develop a +system." [cite:@avison2003now] Based on their analysis of earlier work, +including that of OMG [cite:@omg2017uml], as well as Avison and Fitzgerald +themselves [cite:@avison2003now], Ramsin and Paige decomposed an [[id:8E4D171C-1FAE-FA74-0EA3-97F1125B8A2A][SDM]] into three +main parts: + +- *Philosophy*: a set of assumptions and beliefs made by the authors of the + methodology, as part of its motivation or with the intent of supporting and + rationalising it. +- *Modeling conventions*: a set of modeling conventions designed to work + together as a modeling language. Within this dissertation, we choose to + interpret /modeling language/ in the sense defined by [[id:C807836B-B1D6-1024-86E3-7D49BCF20D74][Models and + Transformations]] --- though perhaps Ramsin and Paige's intention is to use the + term in a less formal manner. +- *Processes*: a set of processes that provide guidance as to the activities to + take place, their order, the role played by different actors in those + activities and ways in which to monitor and evaluate the results of performing + them. + +Within this framework, the modeling language contains the vocabulary with which +to model aspects of the development of the system, the processes cater for the +temporal characteristics of how entities interact --- /i.e./ /who/ performs what +activities /when/ --- and the philosophy supplies a overarching narrative that +harmonises and justifies both. These three components come together as a +/methodology/, providing a unified perspective from which to accomplish +prescribed objectives.[fn:methodology_term] Therefore, an [[id:8E4D171C-1FAE-FA74-0EA3-97F1125B8A2A][SDM]] can be thought of +as an /abstraction/ that orchestrates activities related to the development of +software systems; and does so with the objective of making them easier to +understand for all involved. + +[fn:methodology_term] There are those like as Brinkkemper +[cite:@brinkkemper1996method] who vehemently disagree with how software +engineers employ the terms /method/ and /methodology/. Though the points +presented by Brinkkemper and others are valid, we have decided to remain aligned +with the traditional software engineering usage, given that the meaning is now +widely understood amongst practitioners. See also Estefan /et al./ +[cite:@estefan2007survey] for a thorough discussion of these and related terms. + + +It is difficult to overestimate the importance of [[id:8E4D171C-1FAE-FA74-0EA3-97F1125B8A2A][SDM]]s in modern software +development. Ramsin and Paige [cite:@ramsin2008process] go as far as considering +them an enabler of the software engineering discipline /itself/ (/emphasis +ours/): + +#+begin_quote +Software development methodologies are therefore considered an integral part of +the software engineering discipline, since methodologies provide /the means for +timely and orderly execution/ of the various finer-grained techniques and +methods of software engineering. +#+end_quote + +Whilst [[id:8E4D171C-1FAE-FA74-0EA3-97F1125B8A2A][SDM]]s exact importance may be argued, what should nonetheless be clear +from this exposition is that their organisational properties are simultaneously +orthogonal and complementary to the characteristics of [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] described thus far. +It is for this reason that we sided earlier on with those that argue that [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] +/by itself/ cannot be considered a methodology, but methodologies can be +developed with model-driven characteristics for particular purposes. Asadi and +Ramsin [cite:@asadi2008mda] tackled this subject in an MDA context, but +presented an argument which, in our opinion, is directly applicable to [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] +(/emphasis ours/): + +#+begin_quote +[...] /MDA is not a methodology/, but rather an approach to software +development. This fact forces organizations willing to adopt the MDA to either +transform their software development methodologies into Model-Driven Development +(MDD) methodologies, or use new methodologies that utilize MDA principles and +tools towards the realization of MDA standards. +#+end_quote + +It is for this reason that one finds numerous examples of model-driven +methodologies in the literature, with differing characteristics +[cite:@matinnejad2011agile] [cite:@ambler2008agile] [cite:@ambler2007agile] +[cite:@guta2009lightweight] [cite:@estefan2007survey]. However, rather than +delve into the specifics of each of these, the more pertinent question --- at +least for the purposes of this dissertation --- is to determine whether [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] +/demands/ a particular type of software development methodology, or has no +sensitivity to it. + +* Iterative or Structured? + :properties: + :id: 9A171CD4-61C9-07E4-8D63-221C63B374B5 + :custom_id: 9A171CD4-61C9-07E4-8D63-221C63B374B5 + :end: + +The literature reveals a range of views with regards to the relationship between +[[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] and [[id:8E4D171C-1FAE-FA74-0EA3-97F1125B8A2A][SDM]]. Ambler appears to suggest [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] is more amenable to a structured +environment, declaring that (/emphasis ours/) "MDD is an approach to software +development where extensive models are created /before/ source code is written. +With traditional MDD a serial approach to development is often taken where +comprehensive models are created early in the lifecycle." +[cite:@ambler2008agile] Stahl /et al./ are instead of the view that [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] +requires, by its very nature, an iterative process: + +#+begin_quote +The iterative, dual-track process of [[id:7FCC54A3-D2C3-0254-1C0B-103976AA8D87][MDSD]] [...], in which the infrastructure is +developed in parallel to the application(s), must be clearly distinguished from +traditional waterfall methods that are based on a 'big design up-front' +philosophy. [cite:@volter2013model] (p. 375) +#+end_quote + +Unfortunately, the disagreement may stem, at least in part, from imprecise +definitions rather than due to profound ideological differences. + +A third view, and one which we align ourselves with, is that of Brambilia /et +al./, who declare [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] to be /process-agnostic/, claiming "it neither provides +nor enforces any specific development process but it can be integrated in any of +them." [cite:@brambilla2012model] (p. 53) To be clear, Brambilia /et al./ are +not suggesting that [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] does not have a significant impact on a project's +software development methodology and vice-versa. Instead, their argument is that +the principles in the [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] body of knowledge are compatible with /all/ [[id:8E4D171C-1FAE-FA74-0EA3-97F1125B8A2A][SDM]] --- +"traditional development processes" in their parlance --- and the onus is +therefore on the [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] practitioner to unify them into a whole, for any particular +application. + +These integration efforts are not insignificant, so the literature has been +active in developing specific strategies --- especially for iterative +methodologies [cite:@matinnejad2011agile] [cite:@ambler2008agile] +[cite:@ambler2007agile] [cite:@guta2009lightweight]. It is also important to +understand that this stance does not have any implications with regards to the +merits (or demerits) of structured versus iterative development methodologies, +as these can be analysed independently of [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]]. However, since models "are +considered equal to code" [cite:@volter2013model] and, somewhat more arguably, +since "programming is a modeling activity" [cite:@madsen2010unified], it is not +surprising that many of the engineering practices that foster the development of +high-quality code are equally desirable when the engineering is driven by +modeling. + +It is then for these reasons that iterative methodologies should be preferred to +structured methodologies, rather than due to any intrinsic property or +requirement of [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]]. The idea can be neatly summarised with the following dictum: +"what is good for code is (generally) also good for models". Nonetheless, +regardless of whether the approach is iterative or structured, there are +specific factors related to model-driven software engineering that must be +catered for, as the next section will explain. + +* Two-Track Development + :properties: + :id: CA10BF3B-5F12-D0B4-5C4B-32E4B0B87BBC + :custom_id: CA10BF3B-5F12-D0B4-5C4B-32E4B0B87BBC + :end: + +One of the most striking differences between traditional software development +and the model-driven approach is the additional work required to develop the +modeling infrastructure --- that which Stahl /et al./ call the /domain +architecture/ [cite:@volter2013model] (p. 253); /i.e./ the set of modeling +languages and their associated [[id:707BD590-1E59-56B4-D333-33525E43A78A][MT]]s, as well as the platforms upon which they +depend on, in order to translate a set of instance models into a software +system. The development of the domain architecture poses a challenge which +straddles theory and application because there is a circular dependency between +exploring problem and solution spaces /and/ creating the vocabulary with which +to perform that exploration. + +Stahl /et al./ tackled the issue by proposing a two-track development process, +composed of the following +threads:[fn:two_track_stahl]^{,}[fn:analysis_simplicity] + +[fn:two_track_stahl] Interestingly, Stahl /et al./ first introduce the approach +in the context of AC-MDSD [cite:@volter2013model] (p. 21) but later on +generalise it to make it widely applicable to [[id:7FCC54A3-D2C3-0254-1C0B-103976AA8D87][MDSD]] [cite:@volter2013model] +(Chapter 13, p. 253). + +[fn:analysis_simplicity] For simplicity, we are not making the customary Domain +Engineering separation between analysis and development (/cf./ Section FIXME +ssec:sple). We do so partially because we take the iterative approach --- fusing +development and analysis together --- but also because we believe the same +argument applies to analysis and development. + + +- *Domain Architecture Development Thread*: Responsible for developing all of + the modeling infrastructure that makes up the domain architecture. Abstracts + and generalises the requirements produced by the application thread into + infrastructure that can be reused for a number of similar applications. +- *Application Development Thread*: Concerned with producing a concrete product + to satisfy the requirements of end users. Provides exemplars of needed + functionality to the domain architecture development thread to help shape its + direction and consumes the tooling it produces to implement the product. + +#+caption[Two-track development.]: Two-track development. /Source/: Author's drawing based on Stahl /et al./'s image [cite:@volter2013model] (p. 262). +#+name: fig-application_development_domain_architecture_development +#+attr_latex: :scale 0.3 +[[../assets/images/application_development_domain_architecture_development.png]] + +The relationship between these two threads is illustrated in Figure +[[fig-application_development_domain_architecture_development]]. Two-track +development is very useful as an idealised model because the approach evokes a +clear separation of concerns. Nonetheless, our own personal experience has +taught us that matters are not quite as clear cut in practice. On one hand, the +basic principles are very easy to convey to experienced engineering teams --- +even where [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] knowledge is lacking. On the other hand, many dangers +lie in wait of a naïve application: + +- the before-mentioned circular nature of the problem is extremely challenging + --- and never more so than during the initial stages of development; +- the development of the domain architecture ultimately demands a + /multidisciplinary skill-set/, entailing both good software engineering skills + as well as a mastery of the [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] cannon; +- there is great difficulty in demonstrating to management the need for + continued investment in domain architecture development and maintenance as the + project reaches maturity, and the lack of investment has severe consequences + for the long term; +- there is a great difficulty in avoiding a disconnect between domain and + architecture development teams, and there are far-reaching repercussions when + such a disconnect occurs. + +The last factor is of great importance because it may lead to a phenomena we +named /problem domain decoupling/, and which happens as the disconnect grows in +size. In our opinion, this problem manifests itself more evidently with the +application of AC-MDSD, but we do not believe it is solely limited to this use +case. Figure [[fig-ac_mdsd_problem_domain_decoupling]] illustrates the issue by +looking at four hypothetical /scenarios/ covering the application of [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] to +infrastructural code, which we shall now enunciate. + +#+caption: Problem domain decoupling. +#+name: fig-ac_mdsd_problem_domain_decoupling +#+attr_latex: :scale 0.3 +[[../assets/images/ac_mdsd_problem_domain_decoupling.png]] + +Scenario 1 typically happens at the first brush with [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]], where developers +create a solution hard-wired to the core problem domain they are exploring, and +is closely related to our own personal experiences [cite:@marco_craveiro_2021]. +From Scenario 2 to Scenario 4 there is a quest for /generalisation/, accompanied +by a corresponding /growth in scope/ of the infrastructure problem domain. +Scenario 2 represents a small decoupling of the infrastructure domain to make it +useful to more than one product, though still fairly hard-wired. With Scenario 3 +we are now looking at providing infrastructure for a larger grouping of software +products and their diverse needs, with a resulting ballooning in infrastructural +scope. Finally, with Scenario 4, the infrastructure domain becomes a product on +its own right, much larger than any one core problem domain; at this stage we +are now considering products supplied by external vendors rather than in-house +development. + +The /quantitative change/ in the size of the infrastructure problem domain +produces /qualitative changes/ that may not be readily apparent to engineers, as +they develop a system with a dual-track approach. This /phase transition/ is +particularly problematic as one transitions from Scenario 1 through to +Scenario 3. Let us perform a comparison between these two scenarios at the [[id:8E4D171C-1FAE-FA74-0EA3-97F1125B8A2A][SDM]] +level to better understand the problem. Figure [[fig-typical_mde_application]] +illustrates the /state of the world/ for Scenario 1 via a two-track approach; +the bold arched arrows represent the understanding of the problem as it +materialises onto the domain and application development tracks and the dashed +line represents the /synchronisation points/ between the two tracks. Though not +obvious, the most noteworthy aspect of this diagram is the /natural alignment/ +between the two tracks and the problem domain. + +#+caption: Typical [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] application. +#+name: fig-typical_mde_application +#+attr_latex: :scale 0.3 +[[../assets/images/typical_mde_application.png]] + +This property is made clearer by performing a similar exercise for Scenario 3, +as does Figure [[fig-ac_mdsd_mde_application]]. Even without a detailed analysis, it +should be noticeable that the picture becomes /considerably more complex/; the +previous natural alignment now gives way to a far more intricate set of +relationships --- many of which bidirectional. The figure depicts the separation +between the infrastructure problem domain and the /core/ problem domain, and the +effect each of these have on each other as the exploration of both domains takes +place. In hindsight, the increase in complexity should not be surprising +because, as the scope of the infrastructural domain grows, it becomes a software +product in its own right. Thus, there is an attempt to simultaneously engineer +/two tightly interlocked/ software products, each already a non-trivial entity +to start off with. + +#+caption: [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] application with AC-MDSD. +#+name: fig-ac_mdsd_mde_application +#+attr_latex: :scale 0.2 +[[../assets/images/ac_mdsd_mde_application.png]] + +At this juncture one may consider the ideal solution to be the use of vendor +products as a way to insulate the problem domains. Unfortunately, experimental +evidence emphatically says otherwise, revealing that isolation may be necessary +/but only up to a point/, beyond which it starts to become detrimental. We name +this problem /over-generalisation/. In our opinion, what is lacking is the /deep +synchronisation/ needed between the two development tracks --- an ingredient +that Stahl /et al./ had already identified as being crucial to the success of +the entire endeavour. On the other hand, adoption literature shows that this +close collaboration can be found in abundance within in-house development, but +there we suffer from the opposite problem of /under-generalisation/. That is, +solutions are /too specific/, catering only for internal use cases. + +What is called for is a highly cooperative relationship between infrastructure +developers and end-users, in order to foster feature suitability --- a +relationship which is not directly aligned with traditional customer-supplier +roles; but one which must also maintain a clear separation of roles and +responsibilities --- not the strong point of relationships between internal +teams within a single organisation, striving towards a fixed goal. Any proposed +approach must therefore aim to establish an /adequate/ level of generalisation +by mediating between these actors and their diverse and often conflicting +agendas. We named this generalisation sweet-spot /barely general enough/, +following on from Ambler's footsteps [cite:@ambler2007agile][fn:barely_general], +and created Figure [[fig-cooperative-tool-development]] to place the dilemma in +diagrammatic form. + +[fn:barely_general] Ambler states that (/emphasis ours/) "[...] if an artifact +is just /barely good enough/ then by definition it is at the most effective +point that it could possibly be at." [cite:@ambler2007agile] + + +#+caption: Different approaches to infrastructure development. +#+name: fig-cooperative-tool-development +#+attr_latex: :scale 0.3 +[[../assets/images/cooperative_tool_development.png]] + +and now that the need for the generalisation has been made clear, we must change +our focus towards the machinery needed to implement it. and, at this juncture, +the /management of variability/ takes centre stage. + +* bibliography + +#+print_bibliography: diff --git a/docs/mde_and_variability_modeling.org b/docs/mde_and_variability_modeling.org new file mode 100644 index 0000000..c305c11 --- /dev/null +++ b/docs/mde_and_variability_modeling.org @@ -0,0 +1,488 @@ +:properties: +:id: 3DD5C3FF-5BC2-F8A4-2A6B-4F037A78D8E6 +:end: +#+title: MDE and Variability Modeling +#+options: <:nil c:nil todo:nil ^:nil d:nil date:nil author:nil toc:nil html-postamble:nil +#+startup: inlineimages +#+cite_export: csl +#+bibliography: ../bibliography.bib + +/[[id:11F938FF-2A01-4424-DBE3-16527251E747][Back to home page]]/ + +#+begin_quote +Despite their crucial importance, features are rarely modularized and there is +only little support for incremental variation of feature functionality. --- +Groher and Völter [cite:@groher2007expressing] +#+end_quote + +The employment of model-driven techniques for the engineering of software +systems is often accompanied by a shift in focus from /individual/ software +products to /groups/ of products with similar characteristics. This may happen +tacitly --- because the modeling process reveals these commonalities as +abstractions (/cf./ [[id:7D92A620-ED3E-D264-46A3-2A2597C59DC7][Why Model?]]) and good software engineering practices such as +modularity and reuse create the conditions for their sharing across products --- +or by explicit design. + +Whichever its origins, this type of engineering presents challenges of a +/different kind/, as Stahl /et al./ note: + +#+begin_quote +[...] [[id:7FCC54A3-D2C3-0254-1C0B-103976AA8D87][MDSD]] often takes place not only as part of developing an entire +application, but in the context of creating entire product lines and software +system families. These possess very specific architectural requirements of their +own that the architects must address. [cite:@volter2013model] (p. 5) +#+end_quote + +Thus, much stands to be gained by making the approach systematic, an aim often +achieved in the literature by recourse to software diversity techniques such as +variability modeling.[fn:software_diversity] + +The chapter is organised as follows. Section [[id:C1172AEA-F94B-73D4-FDAB-A105D7FEA389][Software Product Line Engineering]] +introduces the notion of /product lines/ and connects it to domain engineering. +Variability proper is then tackled ([[id:C9E5C482-E37B-AF14-4E3B-4FF92BB86C50][Variability Management and Variability +Models]]), followed by a brief introduction on feature modeling ([[id:76DC5C70-AAC0-86A4-3EEB-4187367002BA][Feature +Modeling]]). The chapter then concludes with Section [[id:7D780B3E-2821-2674-8F4B-AE29097B739D][Integrating Feature Modeling +with MDE]], where feature modeling is then integrated with [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]]. + +[fn:software_diversity] For a comprehensive analysis on the state of the art in +software diversity, see Schaefer /et al./ [cite:@schaefer2012software]. There, +they defined software diversity as follows: "In today’s software systems, +typically different system variants are developed simultaneously to address a +wide range of application contexts or customer requirements. This variation is +referred to as software diversity." + + +* Software Product Line Engineering + :properties: + :id: C1172AEA-F94B-73D4-FDAB-A105D7FEA389 + :custom_id: ID-C1172AEA-F94B-73D4-FDAB-A105D7FEA389 + :roam_aliases: SPLE + :end: + +The idea of abstracting commonalities between sets of programs has had a long +history within computer science, starting as early as the 1970s with Dijkstra's +notion of /program families/.[fn:program_families] A modern and systematised +embodiment of Dijkstra's original insights can be found in [[id:C1172AEA-F94B-73D4-FDAB-A105D7FEA389][SPLE]] +[cite:@pohl2005software] [cite:@clements2002software], which is of particular +significance to the present work because its principles and techniques are often +employed in an [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] context [cite:@groher2007expressing] [cite:@roth2015towards] +[cite:@groher2009aspect]. + +[fn:program_families] In [cite:@dijkstra1970notes], Dijkstra states: "If a +program has to exist in two different versions, I would rather not regard (the +text of) the one program as a modification of (the text of) the other. It would +be much more attractive if the two different programs could, in some sense or +another, be viewed as, say, different children from a common ancestor, where the +ancestor represents a more or less abstract program, embodying what the two +versions have in common." + + +Pohl /et al./ define [[id:C1172AEA-F94B-73D4-FDAB-A105D7FEA389][SPLE]] as "a paradigm to develop software applications +(software-intensive systems and software products) using platforms and mass +customization." [cite:@pohl2005software] Roth and Rumpe add that "SPLE focuses +on identifying commonalities and variability (the ability to change or customize +a system in a predefined way) to create components that are used to develop +software products for an area of application." [cite:@roth2015towards] + +The mechanics of [[id:C1172AEA-F94B-73D4-FDAB-A105D7FEA389][SPLE]] bring to mind Stahl /et al./'s dual track process (/cf./ +[[id:CA10BF3B-5F12-D0B4-5C4B-32E4B0B87BBC][Two-Track Development]]), in that /Domain Engineering/ is used to create a set of +/core assets/ and /Application Engineering/ is applied to those core assets in +order to develop a family of related products, called a /product line/ or a +system family.[fn:domain_engineering] In this light, Domain Engineering defines +the variation space available to all products within the product line, opening +up possibilities in terms of variability, whereas the role of Application +Engineering is to create specific /configurations/ or /variants/ for each +product, reducing or eliminating variability. Figure +[[fig-variability_domain_application_engineering]] illustrates this idea. + +[fn:domain_engineering] In Czarnecki's words (/emphasis his/) +[cite:@czarnecki2002domain]: + +#+begin_quote +/Domain engineering/ (DE) is the systematic process of collecting, organizing, +and storing past experience in building systems in a particular domain. This +experience is captured in the form of reusable assets (/i.e./, reusable work +products), such as documents, patterns, reusable models, components, generators, +and domain-specific languages. An additional goal of DE is to provide an +infrastructure for reusing these assets (/e.g./, retrieval, qualification, +dissemination, adaptation, and assembly) during application engineering, /i.e./, +the process of building new systems. [...] Similar to the traditional +single-system software engineering, DE also encompasses the three main process +components of analysis, design, and implementation. In this context, however, +they are referred to as /domain analysis/, /domain design/, and /domain +implementation/." +#+end_quote + + +#+caption[Variability management in time.]: Variability management in time. /Source/: Author's drawing based on Bosch /et al./'s image [cite:@bosch2001variability] +#+name: fig-variability_domain_application_engineering +#+attr_latex: :scale 0.3 +[[../assets/images/variability_domain_application_engineering.png]] + +The importance of managing variability within [[id:C1172AEA-F94B-73D4-FDAB-A105D7FEA389][SPLE]] cannot be overstated, nor can +the challenges of its management, as Groher and Völter make clear (/emphasis +ours/): "The effectiveness of a software product line approach directly depends +on /how well feature variability within the portfolio is managed/ from early +analysis to implementation and through maintenance and evolution." +[cite:@groher2007expressing] The central question is then how to integrate a +model-driven approach with the management of variability. + +* Variability Management and Variability Models + :properties: + :id: C9E5C482-E37B-AF14-4E3B-4FF92BB86C50 + :custom_id: ID-C9E5C482-E37B-AF14-4E3B-4FF92BB86C50 + :end: + +Like the /program families/ described in the previous section, variation itself +has long been a going concern in software development; but, traditionally, it +has been handled by programmatic means via techniques such as configuration +files, design patterns, frameworks and polymorphism --- that is, at a low-level +of abstraction --- and scattered across engineering +artefacts.[fn:inadequate_variability_modeling] [[id:C1172AEA-F94B-73D4-FDAB-A105D7FEA389][SPLE]] promotes instead /explicit +variability management/, which Groher and Völter define as "the activity +concerned with identifying, designing, implementing, and tracing flexibility in +software product lines (SPLs)." [cite:@groher2007expressing] The idea is to +promote variability to a first-class citizen within the engineering process. + +[fn:inadequate_variability_modeling] Czarnecki denounced this historically +"inadequate modeling of variability", stating that "[the] only kind of +variability modeled in current OOA/D is intra-application variability, /e.g./ +variability of certain objects over time and the use of different variants of an +object at different locations within an application." + + +A variability management approach that resonates particularly with [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] is +/variability modeling/ --- that is, the use of [[id:1D15099E-7294-6724-3343-A6C71CB05BF9][DSL]] designed for expressing +variability --- for much the same reasons [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] promotes model use in general +(/cf./ [[id:7D92A620-ED3E-D264-46A3-2A2597C59DC7][Why Model?]]). Stoiber puts variability modeling in context: + +#+begin_quote +[[id:76DC5C70-AAC0-86A4-3EEB-4187367002BA][SPLE]] allows maximizing the reuse of commonality (/i.e./, by developing all +products on a common product platform) and of variability (/i.e./, by a more +modular development of variable functionality that can be added to or removed +from the product more easily). This requires a variability model, though, to +support an efficient specification and development of both the software product +line as a whole and of individual application products. [cite:@stoiber2012new] +#+end_quote + +The benefits alluded to by Stoiber are more clearly identified by Czarnecki, +who, in [cite:@czarnecki1998generative] (p. 68), sees three main advantages +resulting from the explicit modeling of variability: + +- *Variability Abstraction*: By having a model of variability across the system + --- "a more abstract representation", in Czarnecki's words --- it is now + possible to reason about it independently of implementation mechanisms, which + facilitates the work of Domain Engineering. +- *Variability Documentation*: From the perspective of Application Engineering, + the variability space is made explicit and concise, therefore simplifying + decisions around use and reuse. +- *Variability Traceability*: Engineers can also have a better understanding of + the inclusion or exclusion of functionality because the variability model can + answer those questions independently of the implementation. + +These benefits help explain the abundance of variability modeling languages and +notations in the literature, including AND/OR Tables [cite:@muthig2004gophone], +Decision Modeling [cite:@schmid2011comparison], OVM (Orthogonal Variability +Modeling) [cite:@pohl2005software], the CVL (Common Variability Language) +[cite:@haugen2013cvl] and many others. A survey of all of these approaches lies +beyond the scope of our work, given our needs --- which only makes use of a set +of high-level concepts in the variability domain --- so we shall focus instead +on only one approach: /feature modeling/.[fn:chen_variability] + +[fn:chen_variability] The interested reader is directed to Chen /et al./'s +[cite:@chen2009variability] systematic literature review of 34 approaches to +variability management, which also provides a chronological background. In +addition, Sinnema and Deelstra [cite:@sinnema2007classifying] authored a broad +overview of the field, including surveys of [[id:1D15099E-7294-6724-3343-A6C71CB05BF9][DSL]] and tooling, as well +as performing a detailed analysis of six variability modeling approaches. + + +* Feature Modeling + :properties: + :id: 76DC5C70-AAC0-86A4-3EEB-4187367002BA + :custom_id: ID-76DC5C70-AAC0-86A4-3EEB-4187367002BA + :roam_aliases: SPLE + :end: + +Feature modeling was originally introduced by Kang /et al./'s work on FODA +(Feature-Oriented Domain Analysis) [cite:@kang1990feature] and subsequently +extended by Czarnecki and Eisenecker [cite:@czarnecki2000generative], amongst +many others.[fn:feature_orientation] As the name indicates, the concept central +to their approach is the /feature/, which Groher and Völter define in the +following manner: "[products] usually differ by the set of features they include +in order to fulfill /(sic.)/ customer requirements. A feature is defined as an +increment in functionality provided by one or more members of a product line." +[cite:@groher2009aspect] Features are thus are associated with product lines --- +each feature a cohesive unit of functionality with distinguishable +characteristics relevant to a stakeholder[fn:stakeholder] --- and the interplay +between features then becomes /itself/ a major source of variability, as Groher +and Völter go on to explain: "Variability of features often has widespread +impact on multiple artifacts in multiple lifecycle stages, making it a +pre-dominant (/sic./) engineering challenge in software product line +engineering." + +[fn:feature_orientation] Feature orientation attracted interest even outside the +traditional modeling community, giving rise to approaches such as FOP +(Feature-Oriented Programming), which is "[...] the study of feature modularity +and programming models that support feature modularity." +[cite:@batory2003tutorial] + +[fn:stakeholder] Note that we use the term /stakeholder/ rather than customer or +end user, taking the same view as Czarnecki /et al./ +[cite:@czarnecki2005formalizing] (/emphasis ours/): "[...] we allow features +with respect to /any stakeholder/, including customers, analysts, architects, +developers, system administrators, etc. Consequently, a feature may denote /any/ +functional or non-functional characteristic at the requirements, architectural, +component, platform, or any other level." + + +#+caption[Symbols used in cardinality-based feature modeling.]: Symbols used in cardinality-based feature modeling. /Source:/ Author's drawing, based on Czarnecki and Helsen [cite:@czarnecki2006feature] +#+name: tab-cardinality_fm +#+attr_latex: :scale 0.3 +[[../assets/images/feature_modeling_symbols.png]] + +Features and their relationships are captured by /feature diagrams/ and /feature +models/, as Czarnecki /et al./ tell us [cite:@czarnecki2005formalizing]: "A +feature diagram is a tree of features with the root representing a concept +(/e.g./, a software system). Feature models are feature diagrams plus additional +information such as feature descriptions, binding times, priorities, +stakeholders, /etc./" Feature diagrams have found widespread use in the +literature since their introduction, resulting on the emergence of several +different extensions and variations.[fn:feature_variations] For the purposes of +the present chapter we shall make use of cardinality-based feature models, as +described by Czarnecki /et al./ in [cite:@czarnecki2005formalizing] and whose +notation Figure [[tab-cardinality_fm]] summarises. + +[fn:feature_variations] An in-depth analysis of these variants would take too +far afield with regards to the scope of the present work. The interested reader +is directed to Czarnecki /et al./ [cite:@czarnecki2005staged], Section 2.2 +(Summary of Existing Extensions), where a conceptual analysis of the main +variants is provided. + + +The notation is perhaps made clearer by means of an example (Figure [[tab-car_fm]]), +which builds on from the example in [[id:1405A531-73F5-E094-04A3-F08451EC02BC][Metamodelling Hierarchy]]. The top-most node +of the feature diagram (/i.e./ =Car=) is called the /root feature/. Nodes +=Body=, =Engine=, =Gear= and =Licence Plate= describe mandatory features whereas +node =Keyless Entry= describes an optional feature. =Engine= contains a set of +grouped features that are part of a /xor-group/, whereas =Gear= contains a set +of features in a /or-group/. Or-groups differ from xor-groups in that they +require that at least one feature from the group needs to be selected whereas +xor-groups allow one and only one feature to be selected. + +#+caption[Sample feature model.]: Sample feature model. /Source:/ Author's drawing, modified from a Czarnecki and Wasowski diagram [cite:@czarnecki2007feature]. +#+name: tab-car_fm +#+attr_latex: :scale 0.3 +[[../assets/images/example_feature_model.png]] + +Feature diagrams have the significant property of being trivially convertible +into Boolean logic formulas or to a CNF (Conjunctive Normal Form) +representation, making them amenable to solving using established solvers such +as BDD (Binary Decision Diagram) [cite:@czarnecki2007feature] and SAT +[cite:@batory2005feature]. + +Importantly, feature modeling also has known shortcomings, and these were +considered during our review of the literature. Most significant were those +identified by Pohl /et al./ [cite:@pohl2005software], namely that feature models +mix the modeling of features with the modeling of variability and do not provide +a way to segment features by intended destinatary --- /i.e./ it is not possible +to distinguish between features meant for internal purposes from those meant for +end-users. With OVM, Pohl /et al./ propose instead a decomposition of +responsibilities. Clearly, there is validity to their concerns, as demonstrated +by the fact that concepts that OVM brought into attention such as /variation +points/ --- "delayed design decision[s]" [cite:@bosch2001variability] that +"[...] allow us to provide alternative implementations of functional or +non-functional features" as well as documentation --- are now commonly used in +the literature, even in the context of feature modeling. Nonetheless, since +features provide an adequate level of granularity for our needs, we need not +concern ourselves with Pohl /et al./'s criticism. We do, however, require a +clearer pictured of the relationship between feature models and the kinds of +models that are typically found within acrshort:mde. + +* Integrating Feature Modeling with MDE + :properties: + :id: 7D780B3E-2821-2674-8F4B-AE29097B739D + :custom_id: ID-7D780B3E-2821-2674-8F4B-AE29097B739D + :end: + +The crux of the problem is then on how to integrate ACRshortpl:mde modeling +techniques with variability management --- or, more specifically for our +purposes, with feature modeling. Clearly, having a feature model simply as a +stand-alone artefact, entirely disconnected from the remaining engineering +activities is just a form of acrshort:mbe, as Czarnecki and Antkiewicz explain +(/emphasis ours/): "Although a feature model can represent commonalities and +variabilities in a very concise taxonomic form, /features in a feature model are +merely symbols/. Mapping features to other models, such as behavioral or data +specifications, gives them semantics." [cite:@czarnecki2005mapping] + +Therefore, the availability of concise and interlinked representations of +variability across models is a prerequisite to attain this semantically rich +view of features. For their part, Groher and Völter argue that integrating +variability directly within models has important advantages: "[...] due to the +fact that models are more abstract and hence less detailed than code, +variability on model level is inherently less scattered and therefore simpler to +manage." [cite:@groher2008using] (/cf./ Figure +[[fig-abstract_models_detailed_representations]]). + +#+caption[ Mapping abstract models to detailed representations.]: Mapping abstract models to detailed representations. /Source:/ Author's drawing from Groher and Völter's image [cite:@groher2008using] +#+name: fig-abstract_models_detailed_representations +#+attr_latex: :scale 0.3 +[[../assets/images/abstract_models_detailed_representations.png]] + +Whilst delving into the conceptual machinery of this integration, Groher and +Völter [cite:@groher2007expressing] [cite:@groher2009aspect] analysed the types +of variability found in models and proposed dividing it into two kinds, +/structural/ and /non-structural/, defined as follows: "Structural variability +is described using creative construction DSLs, whereas non-structural +variability can be described using configuration languages." We name these two +kinds /input variability/ since they reflect variation within the input models. +In their view, the feature model becomes a metamodel for the product +line[fn:feature_model_as_meta_model], and their instances are the configuration +models for products, with the final aim being to "[...] use a configuration +model to define variants of a structural model." According to them, these +variants can be generated in two ways: + +[fn:feature_model_as_meta_model] A view that aligns well with Czarnecki /et +al./'s idea of a feature model as the description of the set of all possible +valid configurations within a system family [cite:@czarnecki2005formalizing]. + + +- *Positive Variability*: The assembly of the variant starts with a small core, + and additional parts are added depending on the presence or absence of + features in the configuration model. The core contains parts of the model that + are used by all products in the product line. +- *Negative Variability*: The assembly process starts by first manually building + the "overall" model with all features selected. Features are then removed + based on their absence from the configuration model. + +Since these two types of variability are related to generation, we classify them +as /generational variability/. Figure [[fig-negative_positive_variability]] +illustrates these two techniques, applied to sample features =A=, =B= and =C=. + +#+caption[Positive and negative variability techniques.]: Positive and negative variability techniques. /Source:/ Author's drawing based on images from Groher and Völter [cite:@groher2009aspect] +#+name: fig-negative_positive_variability +#+attr_latex: :scale 0.3 +[[../assets/images/negative_positive_variability.png]] + +Given the cross-cutting nature of feature related concerns, Groher and Völter +proposed using AOP (Aspect Oriented Programming) [cite:@filman2004aspect] +techniques to implement positive and negative variability, to which they gave +the perhaps overly-descriptive name of AO-MD-PLE (Aspect-Oriented Model Driven +PLE). AO-MD-PLE has the advantage of considering all stages of software +engineering, from problem space to solution space, including models, +transformations (both [[id:93400D0B-2E1E-7244-D07B-DD8BCA98277A][M2M]] and [[id:93400D0B-2E1E-7244-D07B-DD8BCA98277A][M2T]]) and manually crafted code. In our opinion, +its main downside is complexity, not only due to challenges inherent to AOP +itself [cite:@constantinides2004aop] [cite:@steimann2006paradoxical], but also +because it uses several different tools to implement the described functionality +and, understandably, requires changes at all levels of the stack. + +Undertakings of a less ambitious nature are also present in the literature. The +simplest approach is arguably to integrate variability modeling directly with +UML via a UML Profile, as suggested by Clauß's early work +[cite:@clauss2001generic], which focused on concepts such as variation points +and variants. Ziadi /et al./ [cite:@ziadi2003towards] build on from this idea, +expanding the focus to product line concepts. More recently, in +[cite:@possompes2010uml] [cite:@possompes2011design], Thibaut /et al./ created a +UML Profile for feature modeling concepts. Extending acrshort:uml is +advantageous due to its universal nature, but alas, it also inherits all of the +challenges associated with the modeling suite. + +Others have looked elsewhere. In [cite:@czarnecki2005mapping], Czarnecki and +Antkiewicz propose a template-based approach to map feature models to different +kinds of models. There, they outline a technique of /superimposed variants/, in +which a /model template/ is associated with a feature model to form a /model +family/. The model template is written in the [[id:1D15099E-7294-6724-3343-A6C71CB05BF9][DSL]] of the target model, and can +be thought of as a superset of all possible models, containing model elements +that are associated with features by means of /presence conditions/. Model +templates can be instantiated given a feature configuration: "The instantiation +process is a model-to-model transformation with both the input and output +expressed in the target notation." The approach is reminiscent of Groher and +Völter's positive variability, in that the template provides the overall model +and [[id:707BD590-1E59-56B4-D333-33525E43A78A][MT]] are then responsible for pruning unwanted model elements on the basis of +the evaluation of presence conditions. + +An interesting feature of superimposed variants are IPC (Implicit Presence +Conditions): + +#+begin_quote +When an element has not been explicitly assigned a PC by the user, an implicit +PC (IPC) is assumed. In general, assuming a PC of true is a simple choice which +is mostly adequate in practice; however, sometimes a more useful IPC for an +element of a given type can be provided based on the presence conditions of +other elements and the syntax and semantics of the target notation. +#+end_quote + +IPC facilitate the job of the modeler because they infer relationships between +features and model elements based on a deep understanding of the underlying +modeling language. For example, if two UML model elements are linked by an +association and each element has a presence condition, a possible IPC is to +remove both modeling elements if either of their presence conditions evaluates +to false. Overall, Czarnecki and Antkiewicz's approach is extremely promising, +as demonstrated by their prototype implementation, but in our opinion it hinges +largely on the availability of good tooling. Asking individual [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] practitioners +to extend their tools to support superimposed variants is not feasible due to +the engineering effort required. + +As part of our review of the literature we also investigated the application of +variability management techniques to code generators. In +[cite:@roth2015towards], Roth and Rumpe motivate the need for the application of +product line engineering techniques to code generation. Their paper provides a +set of conceptual mechanisms to facilitate the product-lining of code +generators, and outlines a useful set of requirements: "The main requirements +for a code generator product line infrastructure are support for incremental +code generation, specification of code generator component interfaces, support +for validation of generated code, and support for individual semantics of a +composition operator." + +For their part, Greifenberg /et al./ [cite:@greifenberg2016modeling] reflected +on the role of code generators within [[id:76DC5C70-AAC0-86A4-3EEB-4187367002BA][SPLE]] --- particularly those that are +implemented as product lines /themselves/: "[...] a code generator product is a +SPL on its own, since it generates a variety of software products that are +similar, and thus shares generator components potentially in different +variants". Their work also introduces the concept of /variability regions/: + +#+begin_quote +Variability regions (VRs) provide a template language independent approach to +apply concepts of FOP to code generators. A VR represents an explicitly +designated region in an artifact that has to be uniquely addressable by an +appropriate signature. +#+end_quote + +Variability regions are accompanied by two [[id:1D15099E-7294-6724-3343-A6C71CB05BF9][DSL]]: LDL (Layer Definition Language) +and PCL (Product Configuration Language). The LDL is used to define +relationships between variability regions, whereas the PCL defines individual +configurations to instantiate variants. Variability regions and their modeling +is certainly an interesting idea, but it is somewhat unfortunate that +Greifenberg /et al./ did not link them back to feature models or to higher-level +modeling in general. + +Finally, Jörges' [cite:@jorges2013construction] take on code generation, +modeling and product lines is arguably the most comprehensive of all those +analysed, given he advocates the development of code generators that take into +account variant management and product lines as one of its core requirements +[cite:@jorges2013construction] (p. 8). /Genesys/, the approach put forward by +Jörges in his dissertation, hinges on a service-oriented approach to the +construction and evolution of code generators, anchored on the basis of models: +"Both models and services are reusable and thus form a growing repository for +the fast creation and evolution of code generators." + +Unfortunately, there were several disadvantages with his approach with regards +to own purposes; namely, the reliance on a graphical notation for the design of +code generators and, more significantly, the tool-specific nature of Genesys +which cannot be considered outside of jABC.[fn:jabc] As we have seen, these are +in direct conflict with our own views on fitting with existing developer +workflows rather than imposing new ones. Nonetheless, Jörges' work was very +influential to our own, and we've carried across several features of his +argument such as a clear outline of a set of requirements in order to guide the +model-driven solution. + +[fn:jabc] As per Jörges' [cite:@jorges2013construction] (p. 43): "jABC is a +highly customizable Java-based framework that realizes the tenets of XMDD +[Extreme Model-Driven Development] [...] jABC provides a tool that allows users +to graphically develop systems in a behavior-oriented manner by means of models +called Service Logic Graphs (SLGs)." + + +* bibliography + +#+print_bibliography: diff --git a/docs/models_and_transformations.org b/docs/models_and_transformations.org index 1616f13..6513a2e 100644 --- a/docs/models_and_transformations.org +++ b/docs/models_and_transformations.org @@ -240,8 +240,7 @@ exception: it too must conform to a /metametamodel/. The metametamodel provides a generalised way to talk about metamodels and exists at a layer above that of the metamodel. Though in theory infinite, the layering process is typically curtailed at the metametamodel layer, since it is possible to create a -metametamodel that conforms to -itself.[fn:reflexive_metamodel],[fn:metalevels] +metametamodel that conforms to itself.[fn:reflexive_metamodel],[fn:metalevels] #+caption[OMG four-layer metamodel architecture]: OMG four-layer metamodel architecture. /Source/: Author's drawing based on a diagram by Bézivin [cite:@bezivin2004search]. #+name: fig-metamodel_archecture @@ -344,6 +343,7 @@ operations performed on models have become key to the modeling approach. :properties: :id: 707BD590-1E59-56B4-D333-33525E43A78A :custom_id: ID-707BD590-1E59-56B4-D333-33525E43A78A + :roam_aliases: MT :end: The second most significant component of [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] , after models, are Model @@ -371,6 +371,7 @@ only type of [[id:707BD590-1E59-56B4-D333-33525E43A78A][MT]] found in the litera :properties: :id: 93400D0B-2E1E-7244-D07B-DD8BCA98277A :custom_id: ID-93400D0B-2E1E-7244-D07B-DD8BCA98277A + :roam_aliases: M2M M2T :end: The taxonomy of [[id:707BD590-1E59-56B4-D333-33525E43A78A][MT]] has been investigated in great detail in the literature, @@ -465,6 +466,7 @@ with traditional programming languages. :properties: :id: 1D15099E-7294-6724-3343-A6C71CB05BF9 :custom_id: ID-1D15099E-7294-6724-3343-A6C71CB05BF9 + :roam_aliases: GPML DSL :end: The literature commonly distinguishes between two classes of modeling languages, @@ -526,8 +528,8 @@ Engineering (MBE). :end: One of the first decisions faced by practitioners when when modeling a problem -is the choice between using GPML or DSL. Mohagheghi and -Aagedal's analysis highlights the kinds of trade-offs that must be considered +is the choice between using GPML or DSL. Mohagheghi and Aagedal's analysis +highlights the kinds of trade-offs that must be considered [cite:@mohagheghi2007evaluating]: #+begin_quote diff --git a/docs/towards_a_definition_of_mde.org b/docs/towards_a_definition_of_mde.org index 322ecb7..c522973 100644 --- a/docs/towards_a_definition_of_mde.org +++ b/docs/towards_a_definition_of_mde.org @@ -64,8 +64,7 @@ models/.[fn:translation], [fn:nature_of_model] author. The reader is advised to consult the primary source. [fn:nature_of_model] The nature of models within [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]], as well as that of -transformations, is analysed in greater detail on FIXME Chapter -models-transformations. +transformations, is analysed in greater detail in [[id:C807836B-B1D6-1024-86E3-7D49BCF20D74][Models and Transformations]]. On the other hand, formal definitions are found wanting. To make matters worse, @@ -109,8 +108,8 @@ the term paradigm altogether; and, whilst agreeing with the notion of [[id:C29C6 The matter does not rest here, though, for there are additional viewpoints that must be taken into account when attempting to characterise [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]]. -[fn:mde_as_methodology] This matter is argued further on Section FIXME -soft-methodology, where we address the relationship between [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] and the software +[fn:mde_as_methodology] This matter is argued further in [[id:8E4D171C-1FAE-FA74-0EA3-97F1125B8A2A][Software Development +Methodologies]], where we address the relationship between [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] and the software development process, and articulate a stronger argument as to why [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] should not be considered to be a methodology. Furthermore, we also provide additional context on software development methodologies. @@ -152,6 +151,7 @@ structure. :properties: :id: 79EC741E-8818-3494-8B1B-2B27C182B160 :custom_id: ID-79EC741E-8818-3494-8B1B-2B27C182B160 + :roam_aliases: MBE MDD :end: One common method of overlaying structure into [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] is by way of classifying the @@ -216,6 +216,7 @@ role: they are at least as important as source code." [cite:@volter2013model] :PROPERTIES: :id: 7FCC54A3-D2C3-0254-1C0B-103976AA8D87 :custom_id: ID-7FCC54A3-D2C3-0254-1C0B-103976AA8D87 + :roam_aliases: MDSE MDSD MD* MIC MOP MBSE "MDE Variant" :end: Matters are further complicated by the existence of a number of additional @@ -275,9 +276,9 @@ Our review of the literature did not uncover any adequate solutions to this thorny problem. Though by no means authoritative, our approach was to include in the present analysis all of the concepts that are relevant to our purposes and to use the notion of /integrations/ where the concepts are more obviously -external to [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] --- /e.g./, "Agile integration" (/cf./ Part FIXME integrations). -But all the difficulties discussed thus far point out there may be a deeper -malaise with the discipline itself. +external to [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] --- /e.g./, "Agile integration" (/cf./ [[id:8E4D171C-1FAE-FA74-0EA3-97F1125B8A2A][Software Development +Methodologies]]). But all the difficulties discussed thus far point out there may +be a deeper malaise with the discipline itself. * Pragmatism in a Fuzzy Discipline :PROPERTIES: @@ -310,10 +311,9 @@ to it as the /Pragmatism Principle/, albeit restated in a slightly different form:[fn:pragmatism] [fn:pragmatism] The term /pragmatism/ was chosen as an allusion to one of -Stachowiak's fundamental model properties (/cf./ Section FIXME why model) -because we see [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] /as a model too/. Alas, a detailed discussion of the topic -would take us too far afield, befitting the philosophy of modeling in software -development. +Stachowiak's fundamental model properties (/cf./ [[id:7D92A620-ED3E-D264-46A3-2A2597C59DC7][Why Model?]]) because we see [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] +/as a model too/. Alas, a detailed discussion of the topic would take us too far +afield, befitting the philosophy of modeling in software development. #+begin_quote @@ -360,12 +360,12 @@ requiring a /high-level of mastery/ of a large and complex cannon.[fn:when_to_model] [fn:when_to_model] Take the decision to use modeling in the first place. Whilst -the enumeration of choices presented in Section FIXME modeling-approach appears -to convey simplicity, experience says otherwise. In order to make an informed -decision, one must first master /both/ the theory of [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] /as well as/ the thorny -practical aspects of its application, and these only reveal themselves when -applied to a /sufficiently large/ project during /sufficiently long/ timescales ---- as we ourselves discovered. +the enumeration of choices presented in [[id:774F10EF-88EA-8054-A5E3-FB2FBCACA2D2][Determining the Modeling Approach]] +appears to convey simplicity, experience says otherwise. In order to make an +informed decision, one must first master /both/ the theory of [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] /as well as/ +the thorny practical aspects of its application, and these only reveal +themselves when applied to a /sufficiently large/ project during /sufficiently +long/ timescales --- as we ourselves discovered. At this juncture we can now sketch out our understanding of the discipline, @@ -376,8 +376,8 @@ which is as follows: - [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] promotes the /[[id:EF8AB73B-F189-7AE4-CD4B-9713E34AC63E][pragmatic]] application/ of a /family of related approaches/ to the development of software systems, with the intent of /generating automatically/ a part or the totality of a software product, from one or more - /formal models/ and associated /transformations/ (/cf./ Section FIXME - models-transformations). + /formal models/ and associated /transformations/ (/cf./ [[id:C807836B-B1D6-1024-86E3-7D49BCF20D74][Models and + Transformations]]). - [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] is best understood as a /vision/ rather than a /concrete destination/. A vision /guides/ the general direction of the approach, but does not dictate the solution, nor does it outline the series of steps required to reach diff --git a/index.org b/index.org index 5a70873..efecc89 100644 --- a/index.org +++ b/index.org @@ -43,12 +43,14 @@ Academic Papers]]. MASD is based on [[id:C29C6088-B396-A404-9183-09FE5AD2D105][Model Driven Engineering (MDE)]], so its important to understand the basic concepts of this field and why we found it necessary to extend it. -| Page | Description | -|--------------------------------------+----------------------------------------------------------------------------| -| [[id:4B0DC013-F222-5BB4-33DB-C53414604801][Acronyms]] | List of commonly used TLAs. | -| [[id:C29C6088-B396-A404-9183-09FE5AD2D105][Towards a Definition of (MDE)]] | Exploration of the literature towards attaining a definition of this term. | -| [[id:C807836B-B1D6-1024-86E3-7D49BCF20D74][Models and Transformations]] | Definition of [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]]'s core concepts, and rationale for their usage. | -| [[id:CA232302-65F9-6DE4-AD4B-6D24EE3E9D39][From Problem Space to Solution Space]] | Characterisation of problem space and solution space. | +| Page | Description | +|------------------------------------------+----------------------------------------------------------------------------| +| [[id:4B0DC013-F222-5BB4-33DB-C53414604801][Acronyms]] | List of commonly used TLAs. | +| [[id:C29C6088-B396-A404-9183-09FE5AD2D105][Towards a Definition of (MDE)]] | Exploration of the literature towards attaining a definition of this term. | +| [[id:C807836B-B1D6-1024-86E3-7D49BCF20D74][Models and Transformations]] | Definition of [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]]'s core concepts, and rationale for their usage. | +| [[id:CA232302-65F9-6DE4-AD4B-6D24EE3E9D39][From Problem Space to Solution Space]] | Characterisation of problem space and solution space. | +| [[id:E5EA2B40-5526-0E44-B6D3-8F817E21C984][MDE and the Software Development Process]] | How [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] integrates with [[id:8E4D171C-1FAE-FA74-0EA3-97F1125B8A2A][SDM]]s. | +| [[id:3DD5C3FF-5BC2-F8A4-2A6B-4F037A78D8E6][MDE and Variability Modeling]] | How [[id:C29C6088-B396-A404-9183-09FE5AD2D105][MDE]] integrates with variability modeling approaches. | ** Models