From 895172baad307f44f41c8dd02b6510fd33b87029 Mon Sep 17 00:00:00 2001 From: Yorick Barbanneau Date: Wed, 1 Feb 2023 00:49:41 +0100 Subject: [PATCH] Add introduction lecture --- .../1_introduction/imgs/schema_v.png | Bin 0 -> 82781 bytes .../1_introduction/index.md | 171 ++++++++++++++++++ 2 files changed, 171 insertions(+) create mode 100644 content/conception_formelle/1_introduction/imgs/schema_v.png create mode 100644 content/conception_formelle/1_introduction/index.md diff --git a/content/conception_formelle/1_introduction/imgs/schema_v.png b/content/conception_formelle/1_introduction/imgs/schema_v.png new file mode 100644 index 0000000000000000000000000000000000000000..b8d90539849e8957e12c863289bcadcd7a743710 GIT binary patch literal 82781 zcmeFYWkZ!+7cGo>W1?6{NJw{=AR#T?DIqP5bfdI%r=)auhk`VSw6sXG3F(G2H~PHs z9}a$Sv$%5SM-&j9105RV-%EYVmGhDHz%ddityic9dQvs zlndm)l!mMb6qIKuqJn%14&!T6_Ab4K7wuaI*s2f1u}YLF8P$x7;)Nn{gmP@D&lC%! zIJ4_G6<(_q&~eJ-c~Xt1W#k(4`e*;R|C+?_+1#i3PdjI4VVqGD%anwjorojl?+5Bj zILX$D5h6S_jidTZXf5~Q{m37OFA_KZenN5Z_agfDF(gdpzrP=UF+TMF_a&Dw|AW6D z-?zV_xcc|wAFNwK|Nf3oocixkUvxU^)-E&+jrTkbAPfv`;kJGmo zx~W-M6f(r3NC>BMP!{6#Zf1{AR&_^4~Yu3U? z`|ZW~+3`l*=58yd)^bM}vGLF1)YYM!&o4Hr1qcZVbG4cpPtVSxl9CFq-MDwZTs_z2 zXq!qV<$ZW~_+t!=j0kdRDl#(Rr|jlK(X_7>@|0-z5Tnu$9z39WT}gB08gk6l*4KQ| z@kUmYl~?LA#BF~c-WsmWt27?T&!JMx%auvxuPsxeJvurP4VRObxBdO?*43ChaS~*T zxeB7;Hs_~~>l1a#SyG7uvjV>5x+iu*8-WTA6~?RM1qtz0rm5ki;tyG*e~a-mMhvbD z`D0MCIBx5al9A{%I34I9~vom&1%1)UZ7IKub8JaT-L{vMv3J-oG45G{Wl2^|q?i>K2t1^KBA*xQ??| zhYG~qe&KAp^7k)T8Fhw}#xrPpnAfed1>vxY-Nj*fV=&L0r&KVIV9`ifH&qy;=_E?~ zx{`zf`LfUut7~~mg+soZ?kS}UU8}Pq__76R6*nb#%C*m~yE3`PukG7#Zw*Bl|IB{C zSL5N5C==-KKY$$Zj~_A(hra`Io857@8`dYP5U^(osr=q7+Rgtd=BtFIAfNvpbE3*V zdD`X77WKvrlley>JNC~=MC(4M?QTTcKL+c{5($yRt`zGg(jt3o#+H!ec5EahENuMy z+sE3Ijk>s7mdt1Z;xTl?-SkcQg&K9nJ+X|YKalASMYGMk3Q?g<{?@{#T$p<&aFsn< zTEv!Ejb`=6s8)nnUUoQA#ck1^=fV^e-#CC7wl%Yde(^1HIf31HYLwo^&=w54YQYz6AIy>FzTb-;a3y+8x zZgO|``1{z76Zx6J^H?m`)3L1Wtu4Z5)pYt@(ZipPcJ?}c`9{Tu=N29;^$Ce+Ht}zb z872>Zd_>M-GD5@l{oCELG1Jw7i~vsC)$}l8k%yPrzT+Bl`&--F5xt!eop+zT{<&^< z*YWUTs8;gnU97`o7k0NIp2&r>gBfKVoiu~Kq+ZPHrQS_VO^p}l&S$%W(rTr8x2_m zdODfJ6NiU~Z@+)ySp8Y@86r`E)86WXOIPdgRw_DHZOYdy2;n`6oJ1*295x=Frs;B_>tl!fjXY7!DJ?BImoe`Z@&`#<}-9j}mk`}q8u ztI$0>u5?*x?hNeYJ~?oPn>Wql=h{O|zWqpzXEh9lkh;?v+prOBn9!R^DB!c)a4=0A z=a+ztV>mDD^6_1FWfweK29UFT)>k~S?xfv=)o?fkR@5I=bLD$opU3o4~`!=tz7qe8GD` zh*h1DgwL&JZP=&8&+joBGHmkDe`RF_huf(fLKg`E0f7Odd7KC8oz;aHt&wcm&+}F_ zH!th5`Ov^Xw1)F>L2mX%N7VwQs~)eZ7#L)vxy~XrlmEnzF5RdnOFismpIL^fC_&7M z{aU>+US&Za(3%Eu>OLBBFdc-{(e%n^*Y|9lqp1G7#_@Y&u~)w`wt|{zAg_G|Ba165 zJv|#@>G7;DfkM6tqXE6uw?@~K-Q~|A#tU6hr{tGUF)t|}QrL6-!{^Frop~FRPU2;# zu8yuQt9g$~Z_*3pCwZ;Z?aLU{j}7~h3a(tc9x5RioU2xmi_Adq><5?6sBV2itCntl zU{444&5P)Z4i@@}wT_^zr8Ld0xML`?gLcQ9Cl<@bK{X2M3c~ zZl+~`>3FrQ{YY-c)eorkZuvgi9T5FeuUyD_a@yK%Omd8^+a(6R$f+WeRLWbVEw}9+ zF*Vy6ll{!P8%D@!zkwUkE3nWN6EobNd+p@FdEs!|g@3CBop-2MyCpWKgVpCAUM@QC zY3NJjVt=7!vfszuL(K4M1rF;mb%K{EHnySqEtMAMHdE#BTl=634#=&VQnC;RIWtva%>4{;eCtZLBOqbUd1TOLBP@W&JOXH3w}?ZyA|wC zMevqiwz}Pew^~~RF!M}C3wvbdsh$J~nT?nCcSTX(LLwcMNj+-!Q&F>t3gY`0Ei)m* zUL3tTCE22bnd8OZPwp9Z!rjOa0YP8KhiG(VtSsvZjmpbs$XkDrz250It}q^qfBDLa z^OM>Mq9|9TBu%Z{c%^Z}s%G~j7;n7Pv5f6vKf!ILWUh3y?er+iO{1($gN~4pFT9-E zDh3&UpGYQ9($PtUM?$dz5gqy2C?`iuLPCMxrT%;33-T6*bH%#pjp^V63x$tx)5uF`wR%~*+hR5rsF6G;D7VoX)UQqXxy+56OM&Zqy z6b}J@7M*2=yRLeEbv^BaSz2XNrzvs^UH&f~#1uHIEnbHSR2vUdOv>Kjd4sp5|aUbpF0?~-!)VT&KmEshVm9LGiET-RXiiQ^z75T?dBxPu5 zX=zO<<%E+M{SrV&8mya}8xEUJwVP&zSXfwCc)I?~g=MQW*9_VgrS-bWz0(A4O8Q<}g*;6Sc>Q>#et_|CE@{k8 z*ZR0A8|wAziwOrgO6zL=fq@DMmD6PmbbSVq`)gyLSBLYK{2QO+-fQ^Ndb zJFmOfIWp`4-MiYP z-yJO)-gvb56l!aZM5(>?31wMX*{XVaDA<)+zmqf0__IwTYd}6@6ihQ| z?abe9U0!|*%R)Q4YdBV_@3fritH%^aqK|*)e7l?8a13Qn>7$>YOaz(aq1yfMilDYOT5P9ACXJdo3iQ*W=hf{uriP^j}8whjFsp0`?S=jmUDjoye1|krIgXM zugs#6q0vt2TQ`r1L8bI#OSiq=fD3#u_O-cvbUGl8&Y2nB?g}VjvrWfJVQmMqq({L< z%66B2mu&Fy@okut8T85}^SG8aoKa8xeqlaY-F+OXrBI})adNP^RE3RPLp|oYUKpSS z`Tdxix9$RXD-OoxAQI)Y{PljHz^|X%Y{H=C?l>f)fSMgWwgd>}NYA8ItrtXk4U^XQ zgiXyz8(Q~`lfknc%$=n?NSDTT2UFqc!a+D16;r2~Rtpmi#xJV5j_%<@l)Ua&&Tn=*&tUSdq^vx9NOHt5L6#Ar><-Up1rTLoDEV&McEGaiKET7N|ILel~Th zWtLdvvR;XiO5E+-4cR;N3v(*A&;k=ZYt;3fcCrp9S=o9(92FWGn!(#0LqGWKR*}(U zY{_`}yNFEp?T=TlUL_Hg4#Kx>wcF9^@*RK-w$v*#ZtXa z_5S3G^Mj^%F2_MohXMZ?zL3Zy7UXvws0jpb*ET&*HTEmR6}~&a;HAxptHG zU_2`M%)tH4nIZrZ$f<2$ah?8Y@&EX-e{HO+!g7}XY=6QcS1!XJX12uBr5R2p5t}mO zb|MM+fAp*84aEv$Mc2bw-x?irQ^0bt*rU`%_01N}$er&HW^_N#`4xKK+uM5~@12(V znl)uvCr!ZKX2Vh1!CHS;vYXtL)825os=R329jE>EiLA1ZAAxs}jo#iE6%x_fITAms z*6~IrOp}oUMPuW5AO>vO6YVuCMN-Ju7jL|%v=}Wi8CeGF*^mDiy98LM=Q*JJ!j(Rl zP+*!+08TiXsPNmj*^G8;DlM~?)!jc$*>sz|ZuyYt!bS@tA;wMZN4+&ZVN*o1jeTji&%l`K!acX{B9C+aZNIywRCiJFl0(48oy$K zN(y-;a6Gz;J#p}Kz`Mdwt-t&8i|?~qg|YBxp~jS%dY&d+# z5pwXdh3Yjl>ttkPI8d&$K#dE}EOFX1*8TJAYmI^V+GNcj7OQdOC9v+$?CGs{7mb?nRT_#by%JZ4ZtjQ7sthHb*@;I8X+}Mj{HM1904mtyy4#esT+>OIkqbULRv0ct*jF@hgu)0&#IOYMNK1fA-o%O@{lW#843_z3<-n+ z`+BE?je_E028b?s0P)n^J7p1~qN1Gc=k+Hee}JP}%$0QPj-t+jJ9df$E)8}ARgO-% zaWap$s=8WiVAk>>8hRv^qSzLBgQ0jiSDZ{wM@MK#h;-qqd~ZA}tMk5TBA25a>@*aa zi7fhEkIklP_qJ2CN|j%(k5?eebz8)UXn0y$+Pvj+o8w)h0`(d>YURQqa6a4ljtAI2 zsSq6w%)W*Xfv0`nX# z0{Q|OSPQizXPdn-fPsT#^LF`1>UgDDLXz`FjXED6vjGJ>0HUG1=k>egzrr7-BNrd#<$kVmQ_>UnDx|XykIv92 zl+`6Xh;$*7&fK;hT>lvt_rOI zOG$&d*YDv{WDVv3htn}Ss@!yOe!|-Q)F+ixJUSat%SA3;KBd?!jWS{G(fmED5X#Dyw}A#ALnW4(kM$!=GRJA)D26!QK1z_0bT&m+Lkgni}|MoijTX#2+AfPsQh zypA?`_wF61%i$k=YD`k2gN><;IJ53^4fqX@yR=Y>dThoJCX) zG6bu|bUn=p8YJ(tQr)o&TItn>YQr>btPM|D+5yBMzAoFXJ1|RjhdP^{VUH-l)Hy zU#K<~4zF81;CTDiVY@q+bVEo(pP$z&&}!0z!rF3Xl}5A-m=GwPhEfG?RG3exxu0(N zLfj@41+pL_nqI50))ry><^7fMM%OwdsR_kCP~)$3+XBNP9htTvw?{!FUl<3*s0~ouMTE~EcPY4_d1d0K$vox^~SV0J$#3}6POzLv*SH*JNgD-M#IyAc6kdgh=2Yr z4e~UC2Y2E3t>FgegAtRWhD>nZw*%>-NY45CU7U0P6Gi|Rkk`Vv$S8M|7R67_#!ZS= zPBxpG@@M20%?1u;+?!yP@*&Br0Nbi3_qWwHNkZ1r;mmG1ny<>-P1W=%8t6ALeb{rO z&FO~iy*)*sY@q%P&zOW%H`L&4-`dtjMM^5v+1Uwv{W*p*CXP=kES|oe9t8`_Zs|2u zK=78sOXlAyRwX4Rqo&N2U%m2^Ad8TblY;`XY|Y3B%LgD<*8BG;K*Vd56^OU16uLn87e*T&ntFtf4bUzHslyHp!PZ5_C zRlI0)-Ru2r(V)YXFVk}!^N}z3paKx(+)k1ZLyL~;JN2vxhO9_Ooi>Ek^QNz&-quqU z#m2&NXmz`=Alh?kU;Y?CO>t3WfqVnXJf{!gXuqzq+jpHXN*0C8t5?3=s=;@rnC8bs ze-6Eq|1KL1?@!zG!gCyA!;@Wvm(=V-b7TnP{CztWxFmvSh;18n*)sz1q(6ls!er`& zD$OP`Ypj=YRm%*Vppt@0fb%aG`;td@dnY32O{gAY_v443j(+w@Hzsms|7boEyKsv$ zC2)_X*VVl^ep>TTicxeM#oVz`2nzhH&Bl}9mzQIGPtAluNpr!|5Xp9=akRHeC~s-m zh|_cyP_!^uP56iq{f#%#<%KWlW(O;S0?S!4+^e{>f?l{DNn5Q2>Rp|GkpHhI+d)b* z+(Igf-DDQ6)ifQ4nJATUv0J9z9tQyOI3eM)$qmxw^6OX8P zC!lIxL_@rlk6U*U`tIDrMXf3_=jD6cgsQHnND}MW=F*WO>KgSfl_thAiJeRVI;+u(|le>ERhlF*m(xlFrAEDMa)l!+m+k=6bM2!)t6PGaAmLO$RT=i~9AfVnkif zXye4A!uzIr^-kW@h7%BwPLMO}7ufpd_u?R$ubt^7?+8VoX9g!fYxj}de)>cC{Mre% z>y~|~D-*Fbje8q~ z+`m$JzyF^W0D~!VzwPz*`cJ-04^&c7w=*Z|H}l0kORlc^IqH<+4U0?}`c$~b2dEL9 z8f{s!u5kfR!t$S}=K4~*wu&81%?NGpMRm?-MNd#u>kb+mh-+j?ceB|yx;Rg7HZBfs zn~xdjk)ieKckAuvSd$}f?(CCZ9LSjeS$ej)=;^`K?c>#yvw=a115*bbS&G(37rK}gh<(Nph~dxP0h}V>Oe8U&P-Y+rZGc?( z6=LEr^xB{r5i^4D!ZFeW;Wy`17!eYW_FhKSXEDs*6JtnJH*=$oo|7)D>Obo1dLku4bILSI!rRZ4oOz2z0ESz`%6t(!L}9r5Co!#|PbU6o1D7 zB<;+M7DU8w;8~#*BNYXLWf+iyEtLLy%l!gS11WrMipHA}>rG%+hGvFG!>{b4IA%jC zA|if>hI+p*%k%p1xr4-Tk{PK315E}kUE0{z@VMe`pY*992Gm3G@Y7>n3hVwfcFk06 zinED~?S`fRlFlqm4b-C7q)QvTddVjl17y-+n+@wlcuyx41kcIx1u*;yXA&#=VNJR z74;wxb{a>yxXk-aMr8!*F3}xKdn)Tm_eGn(hWHZKYqb$rTYrYIS-}s&e#+LVUhe0j z#-{x1X;GKsuatSFSb7dWuivx}@85rU-~0=ts&f7ACs!|L{YMNC3DUXL+odU%6Gb-= zi(pa(&M|9Rbe3AyiGK2J<9oLqTm%L;_%L)6`eRAEv+!zj6O!F=)Uz#MK zUOGP;8?d)tk=r)24_VWqKXvA^t6Q^Pbk=OwI>6uwQo<q)?+yhe4wvbL~1>=t?+g7rAtj zf`URMT8m7pKL#)aqC!GKIq&A$tZLK&m1tB9V)brux zwg@H3coxyum8Shr2PjmUswVQds=csV3+*+Khhn$_F2JCWc?m|+WY9!sR%SL)Io{;n zB$dcXnm3#aoe${vQ&LfhL2;r8r63N=+t9s$RUBK3@p4h9)2v6Gx93HXegOCo{2*#@ zMFGmh1`Qd_2nbwq7PvHjQQOmsFuOD4n*u)%muYa;X`2^lEJ;m?A{^2qYD|<~~Pm?^>5m zYO3yg&rtoUk=+hDJoy#%zTKxY%2I5J(J-%AE^bzred1Ak=xmu0B$0PYF>6y2W%=FP2z{(UB0V5FrmM z8U$64E;LZufSCvaD1il>ZnA8ZxrQzv1l2B}lKYnd8=t%b02J66L0(57A}ovpWNaH0 z0!TK1zVWd6?Nn_AvOm}YbislZ_9HS01`_O&k`e&(Z9t#|L42y|#`4id@)A(Ls&)Zo zgCr;}Nef_X{?ZA=92`gSXSL<{D;n32gGbfy{FLI^D2c4Ai6VG3ZLw)#Z~ z^s#sR9uOC*9grux=)7V&-a{CEYj1yQWMm{~ZUN7#pW;>4kKpWD%OSF^?TxaR_`OZ&O>H~nC44pQkxSISPx zwlj@dr(T<$h?U7mlTVhB5r8J1(5Ytw1z`Nu168fbt%2uwnHb3di`M`MPy^YC4X^o3 zV*@ZQR7+Y}Om_)*)Te4~0r?k@h$5@+mBB3fqa`oV+1Xju)qI&$5C8MNwk&8zP-)ce z>W?N|Iwa+l*r1FCqpRCVL^96fYLVKS z4z?=IXube^8%5P6SK^^pq329c^s|w?2)$@^ntgkdPgRdjmB@PS1M2qtgdtNxWW4x} z>L{`F^!BIM(lq;!0Re?90-Gy_VY@mc3RAP2Nut)DK6n1dK!ji78V)PLoSYnFPY3Wi zU7h}cL0}CqfY5kB_A*4yYIkj8Zr`~h58|W3aVZFTxcAyI5Nv@>?6L)#4ac@Yx)5EE z)F5C|mbX8iK_A1qX6c$i#bWM%IW{uXU|@OkYO)=%d+K2awtoh zfRu#fEyUOuZcIG90>Ga}K#&205lJSUM8nI=d$0qUu_uh@LcXc6{b*;YNUe(UX>g_c zTo8L?Y-~0(c5?uEs1?7t5`lhcpTEdDBd8zKJ_*3RClWoOX)U(if6Y-I^OG^oUDN7AxY0*ycaC4$2LJv*`=oH>|;1E zO@BDeHlsolXj}3US&a2Sx?i#E3fHJYTxFLP6Z5}%&iTIm>3k=KKkDtrGRDTnNh?TX zKgs(7_Z|RGV1!u3^v}~E+Y_mzz3<%^bra9 z1K1l%l$iuH2Hew7seU(272kv@n`8o;WONf7%{pu_xY{!QT>od03fGf;8e3m)Z+*vl z`%O(D5s?`g_X}92JoOqYP?U6IAohn^x5zFbK4JG^44ua6`PhOLB^MW$a=uh#I<(WE zP4ee|EQBc&H8D4_1$y&>+_*Eric1KO7~Vzh0GXuhDs@peWCbJn=?KJboT#;rnmVJDw_rOi%s6^L}aJVmxn zOWzZLMjSD#nu?xt{TLFW3~WF-(4H9?8AiZJAvr!AHd6{<3{g>0ji4yYRj(;kD$*bAmSMpMiEtOC?71wgI!e&Uda7M*=^$7BlMwF1>LVc=aAp-Kax7&%C`fF#JZ-<%Fl zhkhckYXZmTC!0v_4z?6YzdGwB1P#lW3&bqtmQc@x6yPurXB!?1TM*gK~jd2DAu}eCh35x57wh zRZ9gyl+q7^pxu$z7Df=}IVx`~T&Oj=)c9l47edXlwf>hqqF`kex^WLzW~|;xSw+}~ z4$VQOElv>C^)T3lc)T;qNLSTFDQ0~NT`%E0=ac}OM4rv!a}?Jv?M{7)<;3YUSCvibabUbBx$A_+<$q z_2JUVR5R0%4zB4_tb_tnv$>i${{ zx|s9BIrJzBSr9;CSZmpHCi({i$OC1at5lGil9Hm%tV|9~4(Pe$>54R3B7^m_7f5{v z?Q6C?>lix6(u*AW#Kv<;hQiGOY&((+Fg5z?nh`dgeX{cX~{K#spIP z@V`Yy=qj+&^4&p3;iEYBm+$Yb^(EYD4U|kE^_A!8jaRP-+$$Wf@6^--fhm<%WBq6# zIS{A$kU4;Ng=Po1k+Ssj76v4p2U!8x@?QNb3i(3Lhz>$5P{xiqO*}`w;8_GT8=yfQ zOKyGbyQ_N_K>r=q{fmQ!tSE`|^Eh-|sWF3|aO=%vCU1-g#LsuAXs&|MIB_Ri*rH2% z7semdx3cDW^@?#{S9Ur+Q(6osou9~%H{h1aGEMFcC&_5sjeo52tc>1yze_Ev^6HEO ztN00a0vom2_6sJ||2md7$OfY9daR#EaXR`3-sudV4d-~Sa;1-pltZJ`m2GGItY&v} z=}3!Gcil;qN+}d^ih5+*AU$$yTcqiZ@7y#vIM_hP`=&P!4;>wS6f{zg@$ol?wL&3| z0Q~sHE`(nW8jgdcIOJ5{ui3xO5CgTaB4prgg(i)5saI}pOlMI;bq`HGU*AYJ8{~}w z^5ypN{IyPh8_EzXf@wI$$og(*PW&DG|{AAs;$O) z+g-0%ucV_$8J&a8BI;tUMUPTZOjs?RZkGVqAD!sR#D3?f?V&QN=LlWZT%|DGcBza8 zUdctDyQPuhu0|e#cQBDL>Roi6NYZ6DXaX*u3A9?#EFcHQrBteCs|lx+wi;L*NdVTI$40aC;H z5;^@Zl5%x+WV0?oASIo)^St70tbJ-0CAQHf6>qQt|dguSgpFrL}^<#3P)W)gYp)5)u4HmAl^#4zoX9toF6Wf({GtRjY@GrHDQ zyQ-yHbY2zgD_e7+!2Bsav8}VLrC=|ajIC5*iV6cjHo>b1C zS?Q7A)SCaEn5#HZXRh5>cB>W2!ex-LEKWSC8Hr~#8Ol|p{)=weMI!*%y=(E|8nuvr z`)ZN)n{sW?AyL-O=29Y^YOaCgvTCk^Qk%u=^uWOG!Wjx>eh-&;wi*L$!`$JMjx(+LaX zq3RM?+ig?+t?w^3hX7+-_JH`p5V+7G28v$x?OTek$R&QCkZ$Zy9gN2f{Q5lCutm2S zhCWGB6yoPrUUW&{g;?QWR*`B*n1fQGHAe&{3Y* z7&=VZ^4>*|sWq7=5^>seFrQVjWmAhR9Zrb#X(VPHp#?YHRDLorqn*o$e2awsSyrJAE+L-JJ;hcpXyX(#RKTQA!N*J2_u4m3El)Y3!i{^ZNz-BB>b&M?UlBym(q&Yh5cu<4rvW=BgE}WU|U_SbwrBtMpH!@v? zrNprnptZ(|o4fTDR1LfCv1?nW*l2l=q$ShtCgI&qg8Gmx64Rz=Wxk8|(S&Enl#7 zA3{rVY2nIa;5x*kX=D@F%nqLj75)K{G6MQd%0Srv6Zc&O@rv5fpcw0sucx5ZBl%aw zF5~42tKT}UPAe5NJ@}ZU+Pc}!m{s$9yR&S??Nv=0IK`3=qHvqc!Vtd*Go&2k&jkp= zwEE1$J4r@M=ENM2RRQ47|2(hjS?KEGv926Y&W}X=WaKzFqnz=x1BN%YE>Jq4E{aXx zc!cRdSg%s~L@EOULU6^?c}|B{E4+o_1A|dp6HkzqdC=%gD#~M~MtSDDAf{EVBHT=w z;eHl$dVN2FgGHe;B)Hnn{oJ@ai;tTF9amvI!9qO82i~V%kOi8iCWR*5>B=4Q4~8KodO5$P*6Sdmu29fXXkdsfl+ctwXjwgkTf|o%x_p z{wGco`gAV~AGp7rreit4pN@GubTPQ@g5BUbWO<4sZFlwQ9KF5bwDs@@!sE&0w;1Bg z?e5L%IN!_aA@xTV$xLy2baE=CDuqAkt;d)~8=QUsmWx7kWFA{o97d4uotE_(wJnv^ zZ!^a%J@OCV1(`-3U{9Rqmd}tQ0_GtNs)pVVG)O124Cp=Fl}GjU%61OH2L!Zqd8jt7OkuFem*##O{V0U<;^JEJJJXwLK^r%l-f%y$U%{r7ObjRZo zEpw#HFMU6L*BZiUw}$ogW$>YE`@O{H@6_+&uii_4W0=ETpCg9-ISsz(=lk_zl+oI@s2%yR(0>^T>QOvi6mc12S! z4ePQx557^WG|jPE=vo13u;G)rXve)_<-K2?=;0EVAWS_4RGolU%b&RJ-2M86cJHh6 z=1SxD#0H)?3P)9b+3@p|nG0ipw*UaxnX%cYApGq?yU(N}l<;qh%IafS2ydpv6Ph2% zC+8$s)uhmbFXDDz>-Tg$nGe`<8m8^Tgu@uCAIXz`0DgOX|NfW!Hpwv16G8)08tI}R zACmqPc@see=Cqd)vp1F>w|#Ix{;b*vi9tlJ-yJEJ=9L9K#dd3K@AUI*DEEy(7y^P0 z-ZC6^Z{Qt^G#hr05k(RIriHx1DMgt+$Z4C><3j@Slt;-dG0Sm{;f^Ge?Dl|H8VT}L z53<9{+{e|jCR_;+6>KgA-)Wf;zV&~PT;i8>!x^uYy_NGa*~z3xusZBOMcT*3EynG% zukg7oXlM9m?=)96u%;^@3P7Tn1#f#h;v3M-2JT55$QvAnHz@x*b?{A>*p_W8pRE4$ zcFh&Nr&%pI?ZSaF8C_9B1t({4>cGH);8!3vGt`m7!MK!JgPnoxw&LRA$R_?Uv`vEu zc$5AP3V-W3on616n;PA&0QR>?YHCDG%hYGU^CD3pv+1Rioqd1sCKN)%SBgx_SE$;0O;{T8~g|huD zU^uNk$$?*T(>zn;I&VIR#UDLBr4D;xZwzNY;F-_%Hg?{epK}HEksp}HgCMg|<244A z!Vhp7MQ|{fZiMu;!j(k(>HZ0erUGEY@*H;-|2^HoJO#7}RPvR9Z9%Sle5jrZ8ODlN zJ>6NX+t6J1JF}ehf14QpNa1S?@#Sc`TMbQvV>nGv{1)xMU0tFo~O}fJK)<`rPK;M{+lsptvO%K3aL}id~_!3|? zRjOFjv>(5bYaQbQB5$BM?mu4sS)vQ->c=4FMI2#j$~ZVY=c^HHl%fy|Z<+l8c7bg0 zBQ*ljJV)t(GkbbE42g(|_ZAZ@j6nebJ@-#eyUTo+uXvVh36k?ad!zA3V}`~<=^wA( z#n0cy=z0|ELcz(YmMoD_$a}Cp=+}-f|E&SQLj4&=cq zlpb)@Mbfff0oDm51w}|13IkdYoZ$evJ$%@h^b*U2q5~D+dNE}m&yBE#BU*XA+y@kC z0$w1hhJ$K9`-w$B4JlUu>kK-fi>KRuuw=vm!~B+o9$vpMET7|o@G<~Q^92&+gNp&@ zpa{>m0SHJzLLvx$1YH196-PlUt5T4s*+O>!DOUuA3mlp71Q|P0&mbfyxLjDb5#Fgs zq=H;$6b?KoA>oaoRYhJCI5fbdPB&bjEX`^>A~XEQ5`#wJ74%5LLqgEMb_vMI%h}E^ zKS<=U74yA^KNP(FqTF?Y4cRTh+eD-<(yC=U1>wx!;Cjiwg#+9!u#Dx}E!Wq7mI#2{ z7&6Vk`PoTSSQsHFOOYoR#tV|l0q?fw+V~16Cp5x@U}@oO0rXOk1c6v2MJiae2J}#n z(jmq4R}X+*yLx#Xt(pqLf|vZQ@kXkuyxW5!R*6MN&bhb z$p?r9^n;|GPfIQvPTSmbgg~qk5v56h_S$b0@rawu>kF^@MGzygNUDqXZIwo2QqQid zw<+G}nzTG);#7X}m@;d;a_$F(#Q!r@E!(Z3T;GTVH#qk>q0#(na zGg`OFnmg`^oUJcGTMIuF;&*YmZo&;HD3MeexAE~6v2Oo;vZ0w-kdXKj-4XVgUw{hH zy#C%$DyVKs11CE^kX{kr0#{4b7NE}_qC&ofTt8KP4!AljZk_*>3N*S;#I&Yz)hcspFniqGZnzE~tg1_H9r-@)a5I!Dmcd}>0W9?chSbUDJhd3oaleNMvv zGNqD`>QU`4FDSV!0(!9GsUY&q;q+q3U%3X z+N}DOnw!TiZT2zz9Xy3R-p?ii@?e6N^c;Dt>kHVhgoP|?cL+fEsf}2qMf3c79h1-x z?`Qey-&kIh|4$3hc=dc|NuWT9`Fx{2S7g4JV$94_a$E zHZyYM9}Qth_6OhbTo`+9bSoEl!R6Qf*PO|-`4}E*!2fgtBEptPO z{*@~~)QtM;EC_t~F0V8!KUpSL*v}4Bg<|`kVL1^yADsH9>|ioXZ<@e$`0&Im2XvhO z66vl#9Vsxx`nv>?WQG?x(1O9Od9=8qLjT#nNBiBs+I=lLb>JlG z*Qy%U0(GPzg<#)SxM5es_EKNSKHiHr#Ro63(60Y)J3jUt8<0tmJ*vlH)nN=oax=hoO5svq~^uZ=!Hc{A7+QZb;w+#M}m-a|BOf1us}cV)mWLI&4Wg`vW^ zk4govneV5u=Z7ji7tKrb7qB0BC7LmBWi~J`WnNV6!w;9PSk0#PEu+nkXEd6%kAX?nh5J7kQasFfnK!J{A5I$k!jP>{qhWvlE_RULMn8JkFoIuD zh;MoC)`gCZpH|8B2a3i5g2MU}xQ~^T81QcjD(s*W^1A3b@)17UJ=QxI{&RAL%VgqK ziM*kKN|Vj!Hp0w{`+nIJjjC|&1w!av6QK};YwM}SrDBJMhIbHGTvLqJP>+lp*v>O$_*J>?@>bqPg+X*~ zcjtEqb#w-%lGgK$Ixbp# zyoksyV{I5J|4oUw=eL4z*o6lTB*CgUOHy7%3bUFFH!n@q&2}^DK8s7YsUqifygfI| zi-NL>GyJS{2iqU})nFR7pgL}#@5Ouq$VTC3`s4pMoDz;Tk!pg69uQEP zEt*GHjK#TJZx6c1q#UI%4h`p#aZz-K(rJ9aeQ?WLlE*I=E1R22V0J#XSW1w@OA|e# z?9qJ3D~d=eicg7}JeZg_GQ@%kXTTx!de5KdU2CxCm4(maVKZmI zKcl0YT3qH?E6n=ktzZx4XKhaVE2wtnA4=bbeZ%(gy>^>aVMCvArr`z$*VXtoO_{e9 zp~THsKCkF2IdMP6k>sZn!#BJP*IknP8%G#?OZ0F0f44$J@%%$?n8rTO{r0|1EtaWD z)p@USG^zw2ruOYxziP*Ta4x(TMx4JFX+1I<$%k0;1XQ!{6D5>;?Yi(|wKSgj8J`pC z81{K?b;yEwdf6=G9@V_+6aFFj>AE%(-^%=diG6Rsp*{Ury&27~ZFtAq^@`xgmWNwQ zwBSV07Pj}#Tk@%es(A6owhsnPUbamw{g8Y7)&Ajnm0OEJHe%#MW)eBPn#p43&!G9+ z)lu(SrMoW+eB8P#y`qMUvk^lcxK;$A>4Ijh7UNeXJ)LBttOXPzqGg`{6c7|ipr;4F^QJv)_|hejGmY)CzPG% z5E~HE^{|yNEiGl=fj|k5*JtYBPD-xI*Hc`Sx2q#Qr76rQN_>hrL}(}XzU0oezgN2B zUBRlbFsaRTq?~5<+WElKc1H8og=}7`(HO2z@_u~;*8;ip{ib)!<%uui2?klV_)k~8 zJPLjwuBb{m)F+WEWQdc}q|3Zit^Q*Y)af@bNfu@<;@Ose4>Fo4i*9y55*YiH{3QU3vAvf5)U8y$Fz$* z7Q+y<*?#l|Uc1vPfs8tlcWx0DbG^Zae)F&64xEV#1TBC3yqt*)9&+qn(Qy$b%p67Ou;1iM?bn+|cOGI!d4JsC zGp<`Ac;|iec@j*J_RmW5^cq zW%rcHGFBqg!=hz%Q2Nk^6qyRT1Pol6ACX1eqE)NV!xD^pkIVuB-u@Ur;Mo7+(edvI z4(k*b&s*G)r2Z{VU#OV_Gs+9a;5Bh&k4giV%^Ol_)Ul4(3$L@_#L{VYmG?+oBwa&! zi{pF+5q)>(DK}G7?di^K5n(uWyI;%L z7%D*U#bDsji<#kXj*$LY{*E|}hOJ7V3$+|)aT8d9b11Dlh_?q09Vb|FD_VcNh?omXA zen%x$8?xEpZ>EYVe5v{aJDx1)&B?mWD|XLElFi$kEz)&i?zSk~u8jZL1uV7Xniw{U zUXEz(V)H1Izmec}9jdkFhJ8uek4n>f zXO%Hyw;J$|?~iro=Cy>ZVVN`^%;i<>jhPkDDRC5+W}h zCZ^71ctkOAGx&l@d*t}QpE#i9U5?FAKZsm zkCYh73)EhwDhb?kMLEkXxWBc%}tAl?hUEL#V2pu7LXdfTo{=TNff6w*(p?=<*7bcvMblxbQR~S8g;!e`R5cEsZ z?w7!da-+9>;eB|1=63&>b|M9!VD9!tsKAB*yVEDf2254#eZ2QDjg?i_w-e=y3GtW9 zeZz70520`n)(6ypC(XmdQ6KK>GkM?VXSkjg_y8Y2*sa02#r@o+x~8Tr@9^Jdab$GZ(a5Ky8oYh5=hYjQ;vX1jNU;?rmiCTuh02?St8YFNHwyyH>}34L-w)aH#=bI;CI4uH zFOiw~H*7 zOJUYQ`z3P+IWM~L&pQ`yLkFSlklelDs4H3&QJ1E^34)+1N7Kd88cZ4p!_Snp(nR_EB7~}UYSfo(bm>h1hop^zlHC<@Bb`gX*vxMae=hbWf`-M zaLH@&i)vF#i_gDL&-l<`_}d_^O>Uq_pyGUJhw27C0xHv$4_hSQbDgW+#9=*1O#?$p2$$@~oM^3|R&6nwXK zFdn5cM+$qmKQJA~yH$Hv|8F7tZ+V@@bFE%98F3Urc@d1r%Wpl{H}fys7;o$yAt+|% z{QHzUBe*Pn`e(O4#yB8qW%Dm)M_lfEg=&X)Ujmuxv?{{%{~BGQEe{*EA12ASuU0Rh zEHe)QyD>Lf_}EuL>PpQ2X8rl!Nsrlk^rb<7qM@6Az%G{*z)$B*N-1xDF3!|Qb}n4?^aQy z*UoDsCCro|v!a(BxA!;uuClPOFzBTSi2tc5Qb|O!1{zJ;73JdCy;>wvwGrvfBHNp- zpN#~~u7$2cG8GjSZ2wGQ7}51OJ&-y|6zl_5H!K4>!qf4}btq@B>Gw-ukS}?u>oEVj z7IRtDcZ|67DN6IL;L;YUU`H&9{IAlF=HF8u>o0zb^fK@3%49iKGezekbw!%alySFx zoO>=Rt+}zBL^uAFlg9l2t5+1+g?M0IPXBkaDAFSSe3{%_y&kh<`L}q6Dm!+nwr@l+ z_Tp>FG@PmP--bUO^+3qz!@tKB4Mp#9y0{dxRuM_Q4?5V4wm)JGUf&JAQF6ZgeB<-8 zAFFo%452vaPqRq>?U4vR?t2@=X0UlD#=`RQw6BeDT@W4$m?+|6m7+f$bjzVqZtGWL z5#3N?Y4xO1V(EhiHD2}#MOaU-z4-gz-pfh?=oTQdIQBskLb&-w#LYhv+8Do{&ys&^ zIV<+h4z|AkuP)Ip65^|4|DQIIQs)0ma3s_8DI}bbz-Ltk$z(KrADfl4i^t?{U zX+r}*?0@}2V?yb0wx4Y%=Qs9E*gr5}A#9w02^0fe&(CH!jTm5P@Nes8#Qj(NL$q@t zlz1T)V)2)w^ISwv!tCiH&*SiKf0v9wXE;v-J)+MW`D!h!Em;e!E!mHhr&5vjw#@<_ z9{*O%YNO%eoX7f%knTwWbcJ@=V8wR*_4SS^n3*xOxUImQBmV5Sda_*8U);U3og_?d zR{9BCj6TA}V6hWo5dJ7X(*OT3NO?J?7eHTU5|v^QyFUBzo}2ay2psRuT7`+5NH6fC>kB2Jw#mgo*OLo%uum zfB?_9YW_pgQ7j*^#^;E<$)5oyqT||@`*~ljiNXVm;YctlB*Ze)TU_cB1LzkCiQDRD zgNNuPJKmpIEF5)u+Z%s*GJzm=%Bvz92R{?(CP#q7>i%2Wx& zvuUQ0Zn~KEXj9V*5kLQZtI*B~>90@eobS2V!&-7Zy|0?DaTP)rY;$SEUX}gU(mH1$ z+|AC;zA{$JUl;oj9i}oyAIHKp(|lFG7-PdFMw&bhzvfnxC|Y9(HP@u@B?%0{Fj?~R z@ncGgO7+zxoCv|3c_ngL@Gs8^yk!YkXIq2U{N3?`FE7wNb(7fIi_3caOnT`xoruLy z+lw)x0%ACgq-TxF7)al0gS`XR@5YtSp#k8vzoXu7FPCD$RnvjI5=+ z^`taL29?UQY6>nc{KLaThUZqjMT~z9jf>X1Az|VTw&Mzg!{siz*p^?a*@0QMb|pur zS~iTD(2`|_J{J}jUqO2L;I40U9Ev^N&El{fn73%x+FS>Kb1OV{>%%0E*B3vXR9v?N zzi$0N4*v8&61aARgs|S$L9!%qx0N#WVXsu5^T^)5IGe}H)vmju^x?zH;Z$C5AbvKB zU7RGvD@`Zp$0u3jJIf!06m54qEIC3%FH&0z4c<8WTrpCN*w_S|TsKL-Y^^;p9Y zlN!6rF!SidM6=1a*O81*eNz;x&I$0mef9_%dU`O^+CoHkZqpK?{rBZpArcCoeP_YC zSfQ(GEPAaUS?eV>_)3Y;j2S4efs~*B7Cws@4Aa>iSFq)45XMO|f4ePHB9cW$QY7*r zi(Zwt?qqdyclWKhGRs+!Kn@?V6p=mr`-N^J@+$|<7%LN4N1Ic|Z1Bc!>@3#iG7?so zPD`+_wx+;QGV4~L;%3Q74w(%RqSkVHT88A6Z`N2I(@GoibG?gL8jXsh^E#E6q|lirxp8HFoXD-_V)$GvfF@9>R@RaI5hD_=Ye zAw9=M!6JE%$PoYCxM}K(YZ9?c+cT6Tm>A!7pE0ED-h}~EnnzOIYy0~c zq4&rze89K-yQoJs3$YBilQ8FFPm|O?s4D%F!l#(8!Q7UR%aLu^aumtM#pQq8xe*Rn zL##x>NSYp$n9FNj)UP6`NnrR@?QwD)`qCjLcM-Ag?@efYbAiMw+*tPNk6b5C%&!b> zFZ+sV(eRo5lN`?5|1|0U+88q;DBzxfHSI0;q)4&$$V>8etrQs+S)V(@2#p<)F8woQ zBZN^k21!yQIx>2}M?RX}PN57YMWv-J{(Wg|uUfhPGkp1b4YZKgE8Unlny|{&$>Qpa zV(n#PklHmHM3srUP0*9{XSnol4gdJ3cXI}YMK6Xv%T;24dJJ{8dJz@I4RPPHQ`o)c z({-fC$jJU7AxnWDZ&bh8YK3ZO8$dtH<8CAz=7dYG{KVnXbLjGj$6}coZ2cZKUuP`B zQHlVdUCb{eVP;_=a@JyNvYJ4xK(_@{E8dd&FtDx!GFtQ47!e@4 zJNF7~L6(5sYD(bRwQEL?UB=ia04p?i-Wg?mcFgWx2zftGYxh@n797|&ytwdih$O;k z&UOcSSN1#TWBV@>1zo;htqMw4WKaZgVU-vF+tUFI9?iw&R3fxMqvQq_nLzvYd3UY@ zr)NnCCkZJjXRe^^*o)Fl!79VO)+cALq19>~6lZFvO$ByrLkAI*qrC%{UJ<}0qodB+5BN-XsR9A_Ki658^w%2?I-1cjrk>N3^V(=wk0v}V>qgjXr|%$GiA_w5t`YqK3bOt6FN=Zo#=Ian^=5dKnxxmD(=w+jrgp?FD$QYd!{xJ;MNMnSN zOJ2jt&}ul6Z3*RnV=OZPWm76V1Tj=f5FKOA&CQhnl1l_L0XaGAi|-#P!OB`-*;-)x zTtmXa#ijPfHUKVns+bQN6$ghhDy78QaNZ*rxj~-@1dg5}VFOo-0QSRe#0ML7gf~r3 zPyf6C_`r1}>$TzgdxorKJD{);2n0X<2Y0)B0dg+4ztY!yb_ps#bY`p>7wTpsFCPSe zFb&NwDS$3J0xd@ZY@yqt0Cu=ECIO2!wiqfqFlq2kqvC-zs|0Wn96UT4Z|phf3^sLi zF!pghomhqmXkWTCE~RuhwwQlIgGgV2o^aq87|&A-5+22ma&$PiZ&R6DSUgfx3{wXV zE-EG_elc@g$>UY~F4RDLX1x0Isu*&+zXn@O(w5n^U~c&zEP%w=RaPguP9!NzlsT^# zPdGC+;2Q>Wo}wTr7CskM$7F#{>s8vt*52LSA*;bHu6n#SH< zEWn|0C0X;lo)I}dIiWR613jGA*4FPzOCN$NxQ}6*Zcpmc++29N)gOEY4=-;DD03@* z!IgIo2?>!D5kUf7B@5j$$PU!MzQpmy&N*yTt~M*Zi-6Az`hkd6+Ve)w_hd{!J_#p* zo;?y0=+DTO>4np1xZXnO3WMeiauk!=4J43LCfKUKbWb%_o>+!JCg5`Ty(R(BqYaaj zlLlq*HgN!gCM)MC0;VC7NevTVkD|czQmnEwWxzwT#b>OwBueS_vnYJCRdAO4&*Byl z7DwjT!KuWjQ}1w#g(W|hOMDA>vojkT7AzE?_kj=SvTwk@pIKatTIWklOjOKK0qGlb zq!|D~qu#pZla-a_6bpWqUSn&hD`{XJF!XG(a*n$TH!(>7x>ezEDYQ9NiyqP84WPfw z9O2aiXH1c%jBgzWOk7;UbH*?|naw$5Ep>CSu@O^L#O{n?4F!lw8j!Y*L0ONvj9&V7 zWM@p9tIEAQ;DV#qi-`_EHfd=y1SJJ4d0_SVt5;oEf`1~Vgodx-(^TMkK1#LYb6@AV z`@sAoqXjzU>!t5RAQm)mrmn3`f;0o>U9PU^IvHp`6-Cg}3p#Agkai&{etoHQe0nOL zpzn%iWV7nV! z;eO7Ckb5+absEkKd`d5$su8$!_T%45XCPME88W1dffL(hwwLW;a;B%iQvxwyeAs;^ z?%!WNNCh6!G59KWx8M5@N+XnT?b4wV0jOFEu;P|BKq4JAKRX%c(D>*9K(K2Bz9eE-0ksheP?X|(OB&qIKWpaQgBZ{&O8jrh zLSV^q+aSHj7zkb)nbqwPd^#@VxJ?1q7PG=0Ea?RgV;&&6s5fs)Kjnwk&kwUw9@{0k z)Ha1Ap@fukL2#T%4MRhBWHLC$Had#WTF;&O@@WgE6*yX01<}tr?grzJD18~K0M8z< zky+N8l9DnCNMCT1KY*0YtXD?@0lai{3W}>8(DP}4Z3iw_5;(=h`)*UoqT(dIGcKIB zp$jktIV0qzk$Z^D1rvaA44O5BD)*lGmRmfyTLi>5qh5zsQ#HI0GTebT@t_p=#zL@h z^#KD1Q?I4AnEP7M`9gIcSqq}>0XWo>sClYP;E!8Cu8IzPc^Yt4 zzkUzo0<x1SijhmYwN`ichK|OOV8PHO3VGpod0SS!rPqcs#_#U=NAkf+T z$4X3~)X@rnJ*e^B0g}2aBB>tWZw(B8RYL!@y zRyQ}-p)3{bHa*vaK=Iyi>~k44CRAvVaGKK!L=XP9RiocG*WrIOz0%G20Is-X4co^R}Fu{ zEMgWSDQcD7PTue(G?#1Ca&DsuTyA!=FdwX~?aU*_k^nB;>uH6Knvz3D0>Z(xNNf1_ zBbuY7g|9+>l~lX5PN7TXs6cb8dCoS+qPKs~s^1cHVWuj2tv-osmYe2m5O}rDwFIU) z?hIaH=Rl|iY_}dahuCLiId*407e7d*N_Ke-C@yuLJ@#|p0>a=SF6GtaY zr7ifEQb?a={2)OY%u@>$RrIa4TfGhR%i9Spj>p^jj*gBryoP%^)~w4RI{a^TTT%p` zXnaMDd=!{&ssYHAx6IA^TTTrxVFrbkhyUx-&Fj)9v(zvo7Sp%5g+q+)lR!H7@Utjd z-K~UPh6Wl+hfeOddAH14L%fR}*^%DbouDmb%}NiKJdUQ+sk*`|K%&TyV#A7lvMJa; zi}M4J15G_FE$&S;q9Ld#L39i{XrkX%DE6Hh9^7RhSx3(3uSrmu2s2_xNT86C6iZPN zon60%g#AH@O{XTZP=SvW5A#q_&B;koy51evAgf0%^8E&lFvIQyV*`b7vKvTb z2J}z-{6l;L>Q_)cNycQ|{c_(>LN~ps*`WvebG9%5kvH^N=_p@tC!CJ`;to#(4KYjdz zJpU}-mACF|nBTe+Q7m9$z}ZNEhTCsY32k#X7>OBe_!g20G}PpmJw>6=tNRwqGkO*6`k=j8W8pHl zNcinVmT4@X$pG57GS^r8??`Z&zP~cTE&43Q_0!RN21KOjE@rnhlDIZEH?IVwgm2%z zH6)LSr}Z^WHIj8Mw_H3S=9-CH<)nzE`TmiMl&g&E*tto9hmTh*+BjbL4QA^y3insd z`=3X$^)2jW3 zD$^)=K+>&m7=Z(_|+HceCwYkfi^|j|(FuBK0P$51zy!-MbU%qm#n?^zP0YSJSTn`I{z! zGU1Evog9EmTHL&WRQNmlek7oE3X469)s;TVUq-y-?+eTHUJbaF*m2{u{w-o29tcy@sllUtFm>|ZlK}c^TzM~G&?@@ z%Cv`?m+^qMG~WH>gaEuI7LXvkHS=1rv^*Y{K7ridG$MIxf&Lq2DQn3B5 zhygwd`-5(G3b8OwCc0=L*{9!&K4`%=GP~5K%>|`>#dd7kvlKs5q#Ay|B%q6EaYyr_ zRC)>!3r0)&F|N5e-20jNy0;W_k}Zx>PS}Ih+|=#2&~V6;3N6(MCG7SmE_kle-TaKU z7`{L0`0K&*@cudl38%=8mz}U*ca|eqN&%hR)6)Z;X|bZYmhGe1`tB}h;e510pP!jQ zqNk?^@C(3tyCHQSpilZ3V=-8PgBY`DMB|W?ha!I6fkG|<`>^!2ek6;|UC3415Tnn= zMr6%AeB;TV*mv&u95Ja$o??;~zTSD$Zen*8u-)wOpR$UiAIK)0j!tdWFHy zH0R2K!W8L4W)VMK&Y`n0T4Rdqe6(tq*bbHXl$W0$3jTfduqA=;2xUE8bMDIcx89z` zXJ-vjCX-bR2WJh>WGwCmOM>tD&jVtjgjSM7tjISSyp42X?v%nO6?Tdmqu04`>#pFT zsk@Ee^i4VvsnR4*qoIi6-{-m0!FN#2W#Upg3kcCXoP(X1(GfDSi(W}cFd>znkjVOXUTpo)6a@aF-})5_rF3)>dgxpKp;(i7 zy3}=qs)|)j2!Iic!m)A4-Wf`TA|pXJ#T&p6fFW-W$LOFD-RaC|g3Jh<5maP(nh z?zxVZ-A8Ju)#j~;Ve&gZc06-ivJ${V7q{ClDW7VaXe_6UrHN$H6Y87aTDC+Yw#ntm8B8tVEhu7Dw&ql2uyc~V2kDVd*fpykK z^b1*%s7B%Q@a1QVllmU}6zP{NV)fQcb7#xq6PeHYZ;E=qoo&-g-Z*Bb=u+f13$v@m z(z=TFXxC%mp~aPREdFHTd2|5knbQUPwSKwix}Ip&t1LYIO{?!CH$7!!^UF})nmWrR}75(NbTbul#)=HR&fl>Uh%K*JGp*I+s~wNL@K-{0nJ zab|Ir&O2VRv-jcKDl_06r`wvWpBQs~=lYM7p-R;+LI`c;1h2^cHbm zjINJP;B(+~to%MPIorNnYsk!y*-9gddCQG=iA9;P@b#d!x75d8$+wybOBxhhDavU)1u%9zR9}I)lmAtx=qj0v$tWpWgy3Dssl{ z{z?jlIFD_cm)4tC28TY2RM}ns#aEha-j8Y)+UcLY6#Kf;lH)q-d`CUvSpfoi{vE*C z4o&9{ybIMIbKW2my%<6UX9Z~ABb&_mWxRW(i|)=fR&`kVpCbbnCbG3}KA!ED)@Ku` zvPM5?4Uyq!4JQ}&T^(GNh>@zNm_(B=OU`zzyMJQ&ICU=5mHXP~fW_`31DezYm>Q=% zr;H&PGNHWIbADRjBzNI-WXbSycBZv$V`3f#wFoW%nE2C?lIb4fLa&K)T9jCwK|Il>wMJB_OD&s1R)rY>ox&`Qnw8a1HifT>~4w;$r zxYX~0Q7d3)G|vm{!=<0=T0D(5ez0x!(WrLV;vy#Hbf=27&BModn$;Lq4}BZk;_qCB5N;fD!uazvLg)9Z!U?zy$@>RNM9=Y$29lv#JU2C2dPM$tz+MjqM>RrD}oU5v_ zxlA12ot3kE;$R`LReh59UaTgbu!Sae>*&~-4owRkg?7m7F9`E6WoFnw`$k69|a&3@YM2}c-5 z2yIQ>`UC_R0rxY)FKYR64hbNTq+wnF)gjW`Fqfm-f@CmKgBfYq9CMG={3AVhS|uNG zkpK=v1aax*UHR9W56$uuy+lX;t`w}dYA>Q>4-cH&=a<(RN_vys*4%4bG+M^& z_52wu0Do%W8;b1xb|=*PR6+1Goj9^3P;BD!_1r3&pDR-ijU?ZWgCy)i-G4mDMuAIG zKiIUq*a#tF!~6AV2$2Ce$l`wrwEFew;qwD&ly9tA10zsV|ZW&sQjDNEqfof zx|IBh_^3>YWsJkYJYO}wNVRHG2#vavTjlCmF}6n`?0W4)7j?ZZE-)L5pXx>X>(QRr zSaZ4)NjGFdjQ8WEu{>nI#vkgJ+u_(Xw~287W`gw;ub-D%I5orgnx{o`MwV%vvdvI*sDVNVPeV9kMo^>Qi|I1JMvncbhRJZ7-77^}F+Y2p#LeNOPD8Q_MBP#qwN z2*GT^VjLr+AfeVmdVkN0TnzQ>{3zDD{`!;KRMctV8!;s%i?~lZBku?PdT9210!uhq z^T3-kpB(6X5IUPc=?kNG<&j!`-f2#xkczUA@Bd z1Nl0)^I~F6=x;0G$8=r8B1(U6xv%yEp!eT@e0a@sAQj#fYiM#JK2Ru>D!k@%My!@q znf<(@L_SG$bp^FLYC6k_wAtzuXI>BwlOD6)Ua8%2{TjS7DxYiWkuYZyXbR3A4XLS@ zI#>k65T_em{H%1Ww=w=|K6KBd=EJQU0;jnI>3gEDk575F&n|S??xyIK-z>U7pK&~- z!3)70D?SC@jVQN)d361oa6Eh}s-0Y0?rfPDnLQJ(>P=ZQ_tD}zFyTO8pgaiu`(>b( zuDk)Y^rx!ChCL#7O6jmo9}&z-Ec<7n=_q|hLZD#5T2bw+`4J zEn609tza3acne?opU~G?H&!f9&0i*x>#siRrC;e!s173+@XnOKFOmTq6?{C+TamP~ z>G9Hcf2RTm0!D;&1n>K2X1)BjNx3m!4HtBMqs&2W_Qh!In5V~vjIiq9SBmzD%|{+5 zjvJVSZ^cnCQ$eeW@O)97LbC|Qc5&ZxmRho* zu@9%HNe0HQ+ zRr9d2f_WaZbhWG+vmcNj$%GvJfq)G~!|m6$Z`wku9a3dSdViF>VP(Jzc(DB8Y~=Z_ z8*-R|Jb1Ei(^2X`O7J{x5ZBHju-nsQ-n;hLYDV|&?vG&(*`Tdn&7M7z+U-Rd8- zkoYs$Zez4?C-0b{W~;D~U0hY2tfISnEs$QJ`>K5>k^A@owa`ZYL0;f{-f&g)NAA_$ zvL~dvC(WImXv5+tP0&AG*hbARHWg(b05>FSWvgoKFiAkw8N|v;s}gmOs-qxS=K8Z$ zWyL5KV{1YCjZf0U$YHzA1z3jyQwnwzD$v%+^}FSH;YS)qO{M2fuJNBI9zb)NZo?W^ zCdX05DzT60o36=R{`&oP@g1hy=k@MhH@4$=C}Tq_ZUeX2%cD2(5rE%kXFk66O$pAs zbtRg$4cb>YIAkGp=f6b{&SoTyjA)`+PROJb64|Etw;_jDf8c>!m+%n%zGj&OtX84$ zwqmi{+Gq|gSVb@>NXD!EmM^G<(-0n#BdA8uF#+6t%6XyvT-wItiZSQ- z%PS1Ki?Sb`*eh|RXm9@35x#0|ja`i4lXpK?XfjLvuqB+KL$#&P*~h&@gl)PaYc}y1q^-U)#po{*{~&<>!rp6n`LRbwT(76RM}siNxR}65yVc{UCn+5@dIl>_)@Iu4HlQ7 z8MmUZI#DuFM#4{D?X^hXWz2&WUg!UaQ$u7C_<}7_=<3cH84=QR z0Y}15%SVZhI<5^egk@Wv_S1=lzkcEXfz97+0;hlI)spc-*y)epyC@S@nG~0;Ly9B$ z*P%~EW6>g?h&-?pQTS`@)^M#$1MtJX6{w%Lo<1KvK9kyrSAXg(38r|NuS7*lpBZZ|>(1kby_NrlC@H(#xk zTl(oVykYFAlar{_g5J59nAq;15I-;9TzxVHP^WPP-G41et7NM;3Y@az;ADiPwU-k{ zuC=<|YTiQm&aE9|IptaEGA8k;iD2L5uxV+nKvy>vj)ES1CV=2AtViF!f%L6l0@Y#- zU-213(st@#_KjyJHt&f6>XB5-A6k-gG0$^RcM574h8<)Y#b3iyy=4OMqry6Gw?;pd zmAmTMyp!`6l+WfFO{M0NO+hM0pothysl6RZ0rNu0-pnG+6E zepPNweI=sZSnSH^DH|2!FtI3NrVVy`mROcoGU-c0#P1*@9}@t{$EIxXdF1SIxH7BH zXVrrsi;@s>wcVPdJHLk?bj*g;%9)Na>18gA?cwe2w(p;=?7WV6EORM@U^1e?4 z4%b$)4Ul-$68$FH-AtZl zVK0U2Bz&O)s}zzX!}T95fU)`M(~wUOi`_l-JC&&2tbZugeyTwiicwakiIG)ZXRnN# z{IKD0zg};bxY!`%p7GFKI2PeD`MaA^v8&LSr>9K~*3vAs&2Ub_q3w$a2bBVc9*d&6 zIU}+lp?R+F)a){jzcqZ^&Zabi!`jO%>hLWR45_=(t1Ho=JNd zJxwd!@pL+D{xj3SIp2-I6Ma?Hqm!mM_PXV== zi2(xKDv6k(@vcu2-Q}0+7<>wjHFr<%xQL6#o?>J&)@TP zE8NI@GSmB=xXS)y`9ijm&V?S=J=0%yV{0Q_VQF^=vcjYb9*573+eh2)uV`#xA;rJB z%y49{+^UM8Kr-6y^1bC;n*l3b)`kOr9z_Z&nlGN)$fnw1@}6Ws(x3BZ41c?{>o215J^KcaVcGm z5?(9Ec*kkebSyp}ow$K$+~Wfx8Np65U4)-Cpq=N^vmm`JjD zSo>u6)Oh`8#!QNW%}k>6*~z(###t~;$K_h4-StO%+p`hWiY0^^uj;>g<{Gvw)co!o z?8_HT{Mz)}gA>2nvW9Zw*g;$AX~$O2({Ev-Ik?S_ZM1ctFkWgU54KE5ZQalP;z;eUn92qT! zhjiVe>GtEjEn8xXh1cy4_%V!^Z=_4InyHIpzAulZ_YUH#^`ON!Uj5zfbZ#%>Y@DiH z{;;R?eD`aOLY-9%qyDyHtkUT-qhrpTm~^V(?hWN_xFuFt@2K7RUV8o*{x{O@)N3C~ zv$V(8a-VA1@GMwbE3`&*F;c5!3>p;FDz}(VESe39z>lg;@tLqi7!j%4RK&OVXZ#q{ zr*22Y;RBSMe46=jCBm8CS5}y%c7H{>IN?huU=pRu>+tPKUO`Gmn%Lg!HJhkHXt-zO z3s$Xdx@>;vTI_#!4hK86V_&&~WE3c^(eo}(-8+6{DEi1N)R@&{3C?eEIec+Erc_d8 z-V&H0G-KD!(|qfL1!k5}dDmzK?d1GLa9nQ{kG?JM;`G;(_z~O8vQerg+8Cxii}qBP%or>6DRcKk2N=p|%g+xNIM- zdeS;3U7H$Ti-Xqps0Xt)@CZYAM)foo)(;;)@AtgOPC41MXaDhfIrpLui}R^c(DIwZsd0)hv@7OCbqadBDp{ zc(QoD67kiKxj=2Iax2N+x@n*&p(e>K))}h}w`Ol?*;UZwW#D~=$BpOC#&y91qXJ~t zv50aPDz~~utM04mvM^C9N#ka=m+!hb)oaphwIyZZH_1oL$nz)P^rAtJiof_?^z|4c`7A} z11AoZGv(JP!vR`R3GO$MX0*+2N`wjSZR?X(m-w6sU*yhrZ^gW^G*kNSc4}dx^5tIJ zVh*l1jS#o;&8y0+w;q%5YToqnlL_}sBBin&v82Ut*6bKCVaPXByDluKzPUtC&uBe8 zpdCG(R3_ISIbsZ(*R@OSUR_&9lVN+hn$gL5z#4YW!YXGZ&%Tor*{c|?63hP4o$&Ny z-E(6}@=lv1PqJ66YV*E)4kK4(5{1NfY7-yVdc=3rZRPTsu07VMReet_2|j`@BUdx; zSm>(FAigx(<_Ob(#YdN;j8`U|ze;!AN*{AzkXjvNhtnxUxYpTq9ea$2%@(bXFS#fC zglE>|e>0I{*cro-A>@%L3f>B{>f>IuL7YhH>MDS8VoLJtUKZJ@Mo@0|7lV(BdmW>7 z;^3-ZRG3c**fAXNbQqT5MqD-K{mk>=fjw``UQk-VMoeV8GmRBl$nGEMGl~LhtQO9~ z80J{M`SsOMHHL!iD0+02N4l;;UCRXL&qIO)FFOMQBeKq^i+z04_1ZU7`-rUCNB0UM z!&8$#KQmhYd4J5pM%&qR+@LIs%Ct+v+Bzq#Q(lf_Hdjk(cKUwDto+!W-Cb0oY6lZ_ zg_YdZRebx0=E+n*C{};uV8J`UC2y7WMgQvRLB}dtm$@E?%haj`=h5cV{;#V6>X%;Y zG3iqgeFApsU}p?Fi`F@u+KCMQlY`0chVwPj_~RbViwOIq$r$sl4SxWOU#wv{xbV6R z&b<{YAhgBhno5}9&@0gue%W>_=kkacVyH0`o1wk_JtP~|)h&WKX#xE9kF{EV7Ck+z zqMtB9$5J5fSTl3h`o)q!*s(?;{ORf~2>n>;xyLLM6Qk*FF%>!PqOSc{K!MJmnt$1Gmj+op_d7?wXA>3g--C1B@oh}3Ys8TAp~y^yYZo%M@vG;Y2x z_Q8{O`C0FfK=SZadfdW%ac2x8Gqc=uo_Y@56RTdE1owJ9geE$GIM7^$C=KokH*Rtk%K3Q25EoZdPwbp4Pc29JVzDW*+VY5JYs(f7tuQ^vq}* zw^+VX_@eT$vwg7uR%!To|Jh~8OjT*o_k?OAbaeDlt}6_#3=FA?)`OoJ6{`L29KA+C zIN&mamW4}Gub{jMJihZ%jH64JrAm{bJlS*sQPHZ(+3whUP9YZgaxU}q|CyWev3i#G zyvNBVi0r0w8RJkM;nbsu zth!7SUyQzyK!Vjq)jXBusx_l7qq1o|F7qGrlP*A(u`#p0bgSCBKtV+uRga1tt>5mX zlfcQcTu~hD%2Y4Bym4HoOLf`$1Ucc6=u7IiAR4a`{RpFCl*nBiz5cgM63ekfy~W8B zHEnAjht2WWad!46qymI)oz;@X9du(BXjp+iejY7-9=@Z7O~r!d2B(LlZH%vG-nfN& z73rr&kB) z(B<6U_v14{=#JY|VTi6mhT&w{rGSR;!abbc=j z@KSUgX5{M7PiN^FRn;6t^ctNNJ%K3Kflo%a>yAvinxLGgl0~sVF*T?N%@r=4?F&-T4|!zU9pk5AWS zJ7yI>^ifB#z4rI~eH5Oi%{$iAJTSbfby6!vAF6N}Z%!EJ@wB}{DV8-UJbXN{htwz# zH3lk22y%>4L-$OtKXO^^he}Pi&PPv{{zbXNlsc;+F}3o<$Fn624HV25RlV2yTJ=1J zx(r*lTd(gTUw=e_`$#MxyZybi&N`-_WGHExs>OJ_`?w%sps(+3#7UEi4eC2LWfG6- z0(x8^|9~7ZQoy#%v&#O1y@0%`YmL#T@JW`DCkMt*FWxNL`1S_LMZ(*hHXuvSTFfA` zx1*R;*DAUzNhmg;R?KNEfPjC4xK{j-!?<72XwR|OJnhY_!5yc=)u2<7F-D7B5v2B; zXaNmGz)Ugb^`5dU@7gA|;jvwA9tj#}Jvm?HzXl@BOFMWUYrc#7E$CgARuu0=h#fOCClQ22kJ|tu*a;TA( zMq5wGw3Mx^nkVgMekmGzno83gcArZ7BG2PqnbOlr%U8?_6T@h~Cg+3J;Cx=5FUucK zvEmQ7dII%fB~_Je-mR4na9`g&De**oYrFiKFETPd(#5JhoEA@bhLQA@O^i`_7CtT~ zoTppu8?fhs8T#Mt152VO zb?WKqH=pj7K6&>XsD_`_bEvF96b7wwW+qvCWBvw>)vt}d{#}oUWf$ zgNx1D&Ojfql;6nK(8+JTWm`{v+IOYW(t_C~N4D7FY4YQpjP?ziy;c;Y-Y7yHE5EKnOYsaKM}{IE80)N{$OQ7}JN%BW~Q zQS}Vy({sUCNFtPKaK8MN$+qr3f>~La#}3s&!CL)-o6{8<98Y3V(xQs(eAa1Y+wET& z`UJU2w+i!f>Zo;I4kw*me!4Vv4KXzy!<-MbAc_%YuasFLeLT&(QE*xB!Z~gcyR~Op zu5%A{CGN_JD;e#TnV(Q?ti49k{S?r!eCqrjeAJz6E^;B)$FwrhGc8wP-I%PUJH)2j zN`3sgpjYA~{F`Qjy=yJ%4MY~ToMWNOUkh8zPeaU}Dc4KH$R#X%6M)m+K2R4Y^$YLb z*Gb#~+lt=UzN})O-=(LMDw2{&*BXWt6HevgJx%p+CJxNV@3Mb-{{3i7cU$J_{*!lS zEwsH2P7JCw6?KWu9E$yP|r1HhB`p%yoB0aAPqKQiN zRJCi&Ggv=>n#Ag0oENcgO_Dn$Eo}$KlQA)|1=C3m9j)SVg3HWqL^=<(;K1SZ=`8)O z`&kYRqxHA0{`awU!NPEUg^mS0Iz}~)-5w`}_ta9d?$j3il+At}st;6l&TnMAdMdB` ziiutNB8j`5kBnYzKF%1D*LAgM}c+$Eo z-+I8-uvSl%ePpp&uvpd;`SaU4M|@72_t5A)8NhbSXI#I?;LX;GtQ`BSGYva^* z=OJQ!-m`{8?^W?}IBZ0xsXjT0E>MAEgV5Y;Kf^RW4dSO#+Ut@v7 zlrQ@`HzHHMeC`xWXsk?%KjT&4n?7!ht-z62wB4T)@)KUTdPbe~U0HkVW2V}H1-a`iDS=joL3OXM2InAwDBjR@yN6hz7{K5d8bJ}<&;l%My$e&N%+iT zJ35B@eg|{ba4n~`OdhFU;0gcr$#6Qtf-^by^Vm#d2`R1C{7KXE{>$HL(bHD3>{9m) zM=ZPK^5JdQM9Xlws&yG6aWY_ufTl{79i@HOZv%KiE0cAE9uL8s9g#3kd)SA6Rj z!|E#*hiz@SXo%=0lByxu}fL{|*L;a6!GcIPJ zm22|!L`cu^@bvY6qPj9`{cCMi#sjR<7}dvX$GJiBPJ#7L$pO>CSB%9 zo3VUu6e8m?(y@*3?&y>!96_9Q!{AJ^RUek#KbmB6>9~#fwis6W%TQvQ#gBU@uEk^K zHt~F7AbN`@18v2g7$M8L!ZD-zh1+9H&*X${>w4Q2BnCF~-!*#2A z;NUXc+wna%TDa7WD{ehQHbZ`8`SpVNG{-AL)l==aKfw6OV+5`)=K!yKyvWcG2%Mjm zCpa#CYlZxZ=?ZxN;mnuhA&bJ13ncElEXUd$Pc;5@bjPF%|8#Vr0S^sJZSKhrhkG6+ zjpuDc+3yCk-{meCop_8>KpRX|`{&rvBvsSm^zSSK;)hXdWv#nkEfO3UTXRTrzeWs2 zskJXTbd|5Xskf6xS{g@`BQ7Rb@IRb;NUSw{%(U_RH5t$Hl=f^cRyDIqxoNbxX z2HhSMd*q!${{7+b8BS zxSoe>xDhRlQDx8_Tb1ZudRS?jDRqSl3y;i;rmdJF+Zd>ogbKJmDxKb$ev>>$zD8#Y zTRCC={KWiG;Jy7J_F{w34*oZFA=48wkY<|Hx=K_m?4)-$osk=!3UicMMikk{fxFLX zw^is`vR+4o>|5aD7>pG9~Jl69#&f^J4u0hxtDvLB2 zd6R2vJ3L1Sv5>J^RW%k2F9T zHQ!HVgfD&7RScGXChoavl$Z?wbS(I!@ZOi_AceEMGMqT%EhR=bS@=u0TgPSfI#}I| ztaY+-lL?1w*@?GqN<0RTG%tZVZG*3hgQey+jX^wkub!iaBWi9x9F0o4b%04Aht8ok zOa!jpZ8-&aD@~Gj_>q$bZ0clMsjVFEn!-r?`31Kp#&wnqk{6Wk?MeylE~`~Nsj)7m zzg&gd81zro9=`Z?(MlG&~}4lom8{$KWBg0 zow(m1FwTZsQxEnVH7&m)grU~Ec@LN$nj&^k( zAZ~JMI}}Xq1u<}r+9U$17rVOKR@tO}uLZ~1#OJldeZ$w1bG3Pm^-Mm_&I~5S^$#XB z=qlzHzVa^lh!KNj2%#BKP36L4l49NLAO){3F!^FI5$rJ^&%RsOs@<0-B3J(18(e}Y zDiilPR~4vxZ^N*}37fkr+T@QkOXG#nWKZS(|U{gXW1y=>r^i zmq@q8)fN4Xmx2@mbLU3*&YuS@+~C8M(NfYka?Wx)*KGagQZsIvSFQ|QGX_9&J zeJi}7rtqiyhR<7>RP~iXD-|~ruZkyrZdPLn0+utAzifluvLR;A>Mu_AUXH)2k|e6w z=n&sER;NEV;p05n&px_6$Ij-pZeEta!}efJYG41&^Y!-1&xutGZmqk^&nkT&g0SE- zU42qqQS&hEEHpzBIG&L3$&ZgC$L+F4U z!j|7SL-YR9*!rbN#w&WjYFXn*cUcX>gy$4goJzA@Wsg(2#}d7E7rr(SU+`X^FEhO% zuw5!2@?6L){KiR@328yR<&_(K0GaC>c)fvNTVgZj^ zxFP0H*T*@+AOK3{u~$N`o8LisLm@V<%=686Mvv>Hw)%kE$32hXny=8$aZuu*vADaG zxHBt}^6+Z*c_^(}HqFGo?f%*~ThXgZ=Xb2j%|}FEKpQ)^bwM$ev~2L-0313&- zfZ)Lva>&~6;TJcWBopG|o+lS(mHx0i$KLU^Ms;Fj?L5TkSOsbvX25%^UANR!x4nua=Z+Q(+SXP!_!9=f7|16pV?8f@Z*|m2bAaUYq2Ul$0d* z0pED$H%QsJghan$`MS^1JzQAP-@~1b&rKSpJ*PkAYeY>@sPt&M+df9%hGUwzxX^2s ze-KN5hKs}$BX8);(wjY}_ot!$l?W({KR=)mf1V`T)x>ljY1kdlacJ7tgR8LT2*|HB zooqzBdbN{ha(sY%;P0>VC!o&2oe9`p`f_hISuE-3o2|1bJ!T+!%lu~EFxHfrm{C4U` z^!9L?A1O9o5ZKhE=*iPhY%5Tr10EM9sx37%i!jyH011S?x z24E~soVzh-UH?XvwrYGD)TYhzD!NQT+2-7^lmF%-}`F5nTj0uJCje=L#y7;k%Y9lsuo!njP=59JASFOAJ4DKY07IlInwqy z*w)^xTVsXT_Rpc2p#`JjzwX&^Yi~$DX>-*MeEHH&w%X89(cA^&Y=UWK)zj6HOunYQ z8`9pV4cy%~phaRRt8>L!lpzRA$sdUsDZ&?M!WU$#(N&m_IP)0S>crp6U)>&F>MAJG ziA=hzE5v;rCJ{XEo@FhJxMnW*YUijO(t*;y=*km8p;*q zsZvFgYYBr3A1kA0ooXx}@-ME)sj92%!B_wv?I~7}F&F!hZDXmq>R z1%Q=fbr#B0Y7Z7|aj{Svq*#imYJV^)LYCijB0cskkKvjeqBf4$%3)!&pH9!Hy*vp< zYV0r}rE}V%OdQpralH#2wSOB(+G)2wkR|P}){ULwfJWd4oBdp09Usb9qq}T7VRX2= zroZ*>QEjE$ePqF4ZcrPY&`D~$@j*Fhy_XxHD>6`|=JVX$106sg1Z|o_z+Qrm=8t-R zt`8NX0gb1{U+#aq`%_!qf*KoHL$dkKm9?(4?>R4UQD~uotf-mH_&1C?a6#s>*^&Eu zctX@{A@(`SE+YENd*RHPGmE1IRVMV8!_8Syn4(}tWKbjJUR4L%3k6kH zy_&!qjSIC`BXT%qm}=B87*cG-Wj5JfO6950h0Gl2j6a`5sO(3SzSy?}$x6h?H!BOe)Hm6VN5OrLA1nqV`ww+;t9-TzfO zY(UZ7{#T2i&)qoo+H^3R#fM6^NmN2^sQ%mE{5}YoH83uO$ZYmZTUca&EXv7QXyh`3I-E z4zPBefvv|(&ibGr`6VMW)x+(D&2SzftWZQ)cOI4 zH`y4z{N*_uC~`Su@&5V1;Tudum)+Rl3596HSIfwhaI5k~(&y1F4(XTA^}vhpSim@G z`UB6o>6_8F{hxAzfeQ;cPW$$MG)W&!Kd1!WdE~j~3cGFKOn8%j=0`hnN;>qx1oeNr zTyWWY2KPN|@e@!va&&Mwx^M+l%H2;2IVIkumYbA4aLXn#O;k%g=NT-WT+4i~n{VrO~cjjzwa;+sT4DF$)a)JPm{E>Trx;;X9Xf?N%6)`>CdY?cy5@4M0r1TdW(M(BC8Uia9cmtfNR2EY za6>)*tZ(X@=g@R=^_i)c8c`0LwT1uz;GrM4^mocEkN>Z7cTKzeS}Qv)bI%zZ~!0IWS$-@i954jZAtYKZtp9t zH))mprregz6TasWNlwoWh3i=B-uSh_K8lS4iyHfUKfRSu+fi9)ilh*C4YVj<*c<1W zg(?XPS=$CH8cGwzV^V!Bf|B=hT%PuWlMq!<`*&b7HADYLgVm$b?rgdvjg(@`Wr{)F zbL$-@MTOxKyKj?4KI;O+TlSsIxn2r#$LD2kDS?MOkk2Z|W?H${&{8!f<~}n?;oh8V zpm&FDzYmn}Nmr~Z+Zx1E5ou*1T3{yCIl4l-{ypMWsdr7IVa-PU@O<@wihLo#0l9U2wg=55Txm-MQ3Qf9YaZp@aQii{v%AfcuMq6qW4MjEbP>mJk|GsC| z`CixCyn~&kVhTFCmsc(l;<0`m{HNB8i3V2d`rzlO01RE2R`HxyJ6Hxa#X851j^a9k z8z}ke#;ild51D%0t>ee+cSnjpIB;3cUJ%RIi9f6~6gc8_I#MujT938tVq`3u%E4C2 z&YMYGQ;9vRRL}jG{3$z)pWU;~+HZI?hq3IP;gTF{Axzy8?$=}`S!Ykzt!Yk|V<021 zS!>d-JjHuqaKGKE+Z%c;0eb6%j;X>u_t)H~>Q@*L#be+ z_*7Z;*sD{k2$D5+q+a04&atvz`AHKH$a77Ss!-;+ura1tvs!Q5ZeOGQrSuN+FO^k% z9|RX-;0TWQ<}H=PKBJH*NgI23S=;Eacf(K`s)TQB6n+l7ZI_Xe$0Q0d z-g7Qqq)to07w>yVUFn;ryh9t=T2+t8H-5^#@&H&u-xr&*z%El<4WCL`VYz); zre{T=-@O-!_U$Sv@jP2Ik<%%zHaT8NfZG8OEwQ$3H42T!co}c}jxvUG)CWh)t-5BN zNpVrk+gB(_QO&Kb{}I_4N2Sd}o7l$|rJ3Vj&s?Gn*Vkj&{|iV>t5-7P?XtTf9DU{X zFg{8~*7a928X=vy4jG4P{6@OIOZCsK$ciEEvUN#m__Z zjrGLR!1LbBwQdYwr>tcWoKBfvqL-Cr-Uet*hw;KLfW&Ja1)LvIET56-% zfb*i5!O6BX=-{*R-ik7@6liOD3N3ohMtaI8mrtK9MU7hG6Fy(s8J#iQs_;(p=Dm0j z{{!xU{wu9yonMT*?k3QrFYVPEW^{jTd zHEisYPnP%5j9T%%{Dys+UmyR*Hcds2;ahOB7a15qCkNZJmazu5xG)m;7fmff8$jXhH@XfxMffe73)Q zq=BIkqD1sCWlp=*ITP5^D&}9M!?wqRNI~*7P~{54NkzVi2*) zpjADXSMNy?H2h)0z!x$o3upC#97Ost$2gD2i%5aRm7+UgsqXnjks=3Bb1H5K)Vzm)32uT+j?HCyE=fEv?L`JAfYTA!*h;*RuPN()d4SaVp)k{kQ z%1hAwXS1C@P9)##FF;_X3h2CpN8u)J9e zF}iLmW3R#J%7J_^)BoDWpw4GA&Nax^*dik84FlHMpH6qSM*=k}e8oGG8q5Ovt(qM9qK7UzTXve-`si*;d6&I7%Sm}7YnvO{lyDvO%7xu*G@IslPKBQy*67nE?#|aqZ`YNL(IM1PY z0!UU7ENLU)zl_T7XJan@S9E{(#{{}g%U#95Z$Re;?-O?p%i{=C? z#hdw0Py(V`P}Hb$=V~+p zru4Rae;o1Fa?naraM=Kk<_sP3bNH{k`chS{g$|F6JV3e)ACw^3%YP`6_wT(llX6^k zi*#RCd~>tW2*zO|xoGde2Yu6_tn=FBXV1b}^glZGg}A^UzZC-4_cO|#I|~`%k&)-% zN#|xEH9|&F&7QRy!`Iz$EF>tIM#L;sr-xHq%;v-w4|)K#Hq=z0?bqCl|Hy7-C?{TuXg~uYQW}8;VG5EqAuT}HAd$lr6^6bF za}a6{=!2r$B2-B^^8qG;zpK7`?i|NrDG|f=$MO~(pxy*^!DL6w!iF*2TissFQl^!- z?GFRcVDXMxfRY^_?&w-n6+wQ7Li=qKnRW7RD9VQrYD4DtJT6WF4rE05f9a7w;CCnz z{{PY=URuPZ0eT3xGa(1__ebs$kZ9hj^wiYN*BgS`5@J@hZq`~LRgyQ;Y)X*sr^}?n z_TY;CXL5^I!Sk}}ZkwTl?a_xYXYmwR9v2BBCiJzIPW$29{><&|?~1n?Y%170f6;At zHUNIgB?J@zTSw(BLS`H6j~_pV;4OX1+nNm>CBy9e2Qo78u}tY>03Pm=Kx6sHhZp;|57k6 zM?@QO?}ER53Nz9;ln-E($#LbZh#YX5-Hf-q_hGYTXfNK7ivt~n$Bi5z|L3u>uV9v7 zj@NSLJ`)K63Mwc6;i<4Fp~nG*eoI9qT<^F<1}nNs%$bm_{%-Z7VHKAw?eD> z%_vwsoCeKwNP$4_2ZdnQvu0*2&T(>f3lW^-;OLA!*TSz;WH)l1(=;qPTHj*6msa#{ z%;Kawo2<$0;7QG`X?di_t~h;zrcu zn*Myd_`UZZ&eUe<}^!?dS;18Lg9jou;?=pTirI10p1z^eaX%%R8l|wZ~D}wN;Av#wHEo)8sb*W&T2y=9kUX zcxdvxKu;?=RnpaXy!J^UnrKtt=0$*_kh9%EmVM7=WZ<=@&!Uj=t@RtOD-*`UCSE-6 zj4Zwsnq*c@Ci4~#=Wt>ZO$oUAZ(bB_g5!aP2*hX?KzZO|qJ}y`!5Z1IE(}$ZtLZqd zw2a`;NX~-UNraxxB^Qi5&u5^LP2cTP06O`5A8Ct+3ldCeU&HN6n_t=*3&EZuBzOZi z<6qBq$1hZLYP+S%(6kG!Tt})$b2gzX^8}*8AX5>A~`MFQZ_w(DgiZhsE z8!fw&w(s}!FMn@+N-u(%*LQ@?{tbDe=0BEkBVHGwg70#N5TvkK%}O;(TZRdF}7}q{2YMir?Lz~x!ZACGooH_+j%1$N!$%ko1C zN=o=gWH3lkJFT5*xbDIH1qq2{8Cdi0HSi;A5c|IENimXF9!$W{)qy=z13}2o0=}lt zGs7l#vMAxOAmTv_2KXA~JkukR4F#vFO-m}O4-5|{@?c`@;--c)8vzI&IalZeh!|;* z6NFUkh@vlDVdqVj)sV{bcreE$E}q2y_uU9CjT%u=R_=e1ptQ7L9o)5G!OLeP3ShIR z`6ro3n(ZUm`E&C*|>jTJFdBgji`qiIMUD6rOQNhFg;3v8Wx0XJ|-@5u(=UO zm69k}Lr%P(ub(F6X}K&4DEhxIMV!;lBIHtuYpsI`>KUs_oGPBL^ z+?n0>g#WjmV zsmJDILi>;NTkWq~rZpeEboi2_dz}%K3zQf*O%eCfF$GzU%jk+4p55WgiGCeG18&vd z?KhBIgNkiG6feb4=wHWo$KHU0`*$z)I}pXuK0Y2cg^bUo$Ryq?1NrpWtsk}9o-_SQ z=aiu=ySUV9T5$KK7K50#!faQmA$aeY<;lEW*kLETl^j zSs&QrxU|q$#NR3b8w!U;QqVKb_oZ{~u3WnLae@sDqg6jPUUz?5V3!zwdmfl)f^!S> z`~9Y5z7`56OC1vr3=Z_a^$b3uvfM3odt$-*0~1>gJgD&Fsfz zVq$_qjtmMN0|TfG9{3ecG(3=$zLJ!k0Tm$k=~gPOH=dVKGAXsLS{1i+6Mpy}x(bTd zuLp0s!VK#Ym(E>HaxB#CE+JW6-TCN-ml0yu#Lv8AdB=OtfSa=LR?XQrsUFy|>@1?} zm=qUun!_!-e_d^l!o|h)e|KBvb=Pw=6x_B2iUbniae=u{kJv(@t9=Zm4Ca-Cpdrxw z+)lB=vT0aoZj7VM)6h_(9p*AtbX3?5X7`jh@KF&l|NX3z z-=CFSWKt72VA);$@#Dqt0sF#L@1^VMzA=OrN%+v7sr2r)o9x|JAW=v03-rr1SOm?ooU~ zy36mIMC^CtEol;XO%y_+7?=`w^Af74mfh+eU~`fl>a)T(DQr2e1L={%j0^laIF2pr zzGTtqn|b@sg^NY2BB_Px^YhI+%U*w4+7^X?yXfBCq+mo1_o+<$xx0V%UnY3R!m=;L zB-2P~SCjW(n3v0>-o5e==I}?S_^q}r_?^64d|tr6+0D29y_-*#y!^Co%C@*EYGt%? z`Ufc+DIMLT{xsh}7y>4BV{HhJ;v%#71-w~#d5`I{e?KtBDVUX%R4hgMA){`-4$puq zoSy={LYZ#8H<~&2#`8ND^^4Ns%?}H2)5Bn?R(vX}mwJ0n?aedWOT$hlNBi`B(w^*x z^F)i=p1}O1prkl^%Sx8qN#H2Uc4B(EmnQ1)^n?y@WrSb|N+U>_e#I^+$w1Z? zCGVp1_Cf2+=q^UoNQhDtJvNG~EHI9|oo7H+Hi{-NEG+EW_3H{UrRJz9dWDY*-Vv=y z_dS3V%`ioL8YUXT%#G60YR8knZYN+}X#-oGTnq#0^@?vUBnMPKXeXMN($z)g*W;S^ zmNN+os_of);XbPI5)nSFJ+tI@L<+|@`m@(%c6Q7&>u2ikh8@d$^MhBWN7 z!UKztR`|nQPm_7eK^h4aRS45?k^HdzILXug3?3-a$X8eKUM|v0%nu6 zU!LP`QuZG)Iy_tseXJTkBPyyFcP}XzhLN$IKTnE`1m+3{%BNtH9Qn?vLIe5y{O?VE zr}AO3=SZlj-G}F`m2`E1*Nwuhj_~;f{WjqGVa8(x>IocW&Kmk>sj0z96*e{8W9eLY z-+z368bcBdBrGl6qZixjp}*nR`|`f&`JN{6w9XeXG5*C?z3&4sa7ykB^IE4W8o=)Q zPL!ZAMbft7C;T<@Ax|R8NJyVP8?u2+sh!P0M3#i)#sy5+u;fu_T6)m#^or{hw2AC` z`?@J;DcpTr7&594gR>j^7B7p$~RJ2btpuz&6I z;N&C|4GoQ*BRJ*{C(lDe@z9!vfDlYlP6Zn$Q#+v-cWI2K`0f2i=B?;XGaY6MR~5{A zt0rs5RQ@nByYT(d!q>nELc$0``?uwDc#R!lcoKvMK|uEea=oHo;Hwiyz}wlz@z)@e z{5Hq{^eZd>+SoE@W+Xj1Il23#exJ>_9m0!|Pde;h?Syl~yJR$v5FDXYirTw0j>P^HY{)hHFGTo zga|i*#}Hu9T%*@`6AL4Plk*%L9Oj+x6+;^+Bfy4+H#f^PdVu4*_8s{$R@PUntL5ut zw<}-t7b-pwvhAmT>AR1$w!Ip8LAL-QYQa5E5vWYY`Tf^BdBtpX{bHkcQvr|oExz){ z@oLjH*?+@S)WT~p3S^#IQBQGP{;5ST?)a;ymym!!L35q?sNRfCK#il(30~Oo`-RTZ zWdxfK@tsd)f%D+U@r1o0)?jXF$>}=hk?$>xQk_sQa+SfDOLwW`%1>o?br{?=_6vW0 zc^qo=_U;HexOCUXMlt--o3}4fM_!fK+515aRK`U>(PO#~eClKj6Ydz6-On%n62E^i zOXcq6l_}eTox6RL$7N{(Lp;Un$omYJ9s%s!L!VS;TrT6_i@s!}TK(<651+4#xck<^ znZwnl+lj}767R)ZGBq^Xn;yPr4rLW+dV$8n*5Xs3S=25;_W@ve=14+t)75q+y{rebt-n1X4o8!M8{#Nu* z*X9dQbe3%?Y;wQJT8imuPHH>Y!S6hM3JN+3(#?w!XL{_cm_tKR5+-$SjZuepKXZXE zNi_8h+j>H9Hy=;h&yV2HvHC&jvsu*ygoG2908hd0IyYj_V3zZppE!>)I`BArgh@>% zOsIiwt}C7gAGPPvauxXZCTEjbT7qY9Q7Y>FI*x7K+g)zr(t3pn?P&cuYhJkq1(f89 z?|M_NmO@`>JV8R`k? z>dFkElrb5<;H4*Fb6sG@^S>GT?1af;+=17fS=qaVRPq&vuQ1xe!omxwJAkAr-4x+A zsU~Ug+`VdJa{=*lzy>Zyu85EkN;@3U#Il>c&kCa!JCfgG5=8+z9?)d^MG*6JtbuOO zy4O*RQ+hTuEbJXrxa4BlVRATg;RC9|TjkgYALz4eHDtaeXe8eG1S#b>g|92Z$jkI1 zupR{yv_6Pa&I4stav zH1Q5|ESZxy{Dd@UJS~`)FVH4F%Vy2AHhp332Rd5+*jXH%rePvv;hEF5wGAQx>6gy! zm-aIh6ehgHHgfAWl~zw4U0eEeX2IC&y?}$+&TO3Ji>tnYPtfFJ)=!vUNF8jYF3Kyc z_E-p*4Rt;L`Kyht_dd*kY#ul_DL*KbmGc@oO!@ifDBxOO_IAsNjwVJi!^#5!0%BYY z9(iY9*RGtOVP|1ME6^)ah<-TXL_`U|2N_%mYlBP9XebFu2^KtbNLC&gqZCOnb@Gj9 zP@mGZW8zi-frY(9d$}? z<3iw_@DYRkOjqKytOf?`CfAEBy2aR~b~GKT`tNI3Ie!{n4!QU98ugWig|GT~tcB9{ z{+1`^?nDfj(f+8chdwyjq?ydRZ_ta0Lu9mdvn2XS%x^P4F-s}iND*LwUq7Pi!?K_` zPnaZ2z>5|w)v%iHd1F>(*C?ufk!Xy%gkJn?<78imP6O@C9nRY)p1dEf60U`^73%GI z?^2+c8@jKQaNqPE-ezIlrKF<5QPhh`j(gJJwS$f-GOmk)$_ZCE`l&w(@(zV1y}oqC z?s)efJtF5&;na9bH7uOJSZH_d(%xVnpS^Cypg?beEh~QtV7tPFy-vSG(qK*?NK6%k|;J ztBXVVXyarRW~tNE)MVYyAIB%*8Lzb8wmYTuZcM?-yXq=K!mR7`@ov9}J*w25B>fpP z{DaXiEBuvyg#6UZ?(Q=Ax3G4Oaf~;1eh%U@O4eO5`RVeh=@V^bBviJr2!p*YhP;|F zc!&ahAZ}6ZyMjaQsxcJcGFq7Q(n-k0Zfz{vVTeAywR;bn-SY!PfKZl(Aqc_(=+QN{SQ?hfP}IdzxkwS3{$vYYQGg71wzzAvtb2Ia2@A zhBi@+zkW4et}u|NU$~Z>0a=5+8voB}v4Qm|51#_c5+?EQV>u@Em>qaoi$xd~H!3ca z6ixng?k*~_XOM}#efO{{g(=w8*!pc~>m%mi_`V9GgE=+-Ikj{H?igaG$Fx-Q2iM!Z z_B9({I&-P4x+YM_aLPtTJZil6%xF`W^#scT>(&i{Wv?AEb2=~N_&9iRcz%Ga2qiOL zWUN{5zJ6tA)J|CF{sh65)3M0G)1ya27xm5N5=_6(>YvOzCuiT=v;5KL{$_j$1ppb z9PG31h4FFAHw&};b1#*4P>Yh&jC;vL6#PDtDTp}2?ZJ8+{bG@2(ngxzRcw@u*h5AY z1@^emYoRRXrneWAh#dmxSUtI*Wrs-XcNW*Z1H?tS`Qg<|!=<+E>Y&&ea86$cSqktP zRma@Fg+pW^8R2+3={M;Vl|6Ta69xrNbQGl6t|N@D+ZTX_JoSgn%%k`;XAs1n3~}7` zK*X9!su0;H&$~@M)abBZ0!+7NyWVH+UNNA{GLmXz&zr(-v7lKn_LNb*7PJ=L%I^l0 z(d+3UbWg?>Ig}q(EWVvupw7A+?CLz$<iHJP_A<9O`|cdqy7u1JE1)RQFLdes za5y_(ND-u~t2j%CpNfekX4MDfB-TrpNM&UWjwgB9VP11eoxgW z_=A*UwA%+yXiB=>ww5O_@aKBkb26`Hs@{C@;Fn6Q!j@MtALYlF(bMw5=3j;%pimk^ zUU-20wLhHnj&PX!D4WBZQtqo`@j%_aoIp|QL$X8TI|y&q`$O1DZclh`E%sxyC_QNg z`;4oo_3KBi>os-ttI;L=03r#rzqJ#lYdkWiMNK_I!&u*K^m!pPEeKI7#`mK34DkQJ zM4H)GxAy(xf*@psOw^a`+#9=`21B2+nI)|B-f2t}#DRFTg{jWXtoiU5g@Rm8p^j+f zlE=XOO@0TdcxN+m6{oO;nnI>YCW{`ya}Un->KCJ$(oo)_xfOehX4>Lv5eB&8s2Y;1hd!vLX>>Q;ahKovR=Q=FpORWwyLN`Ir8<^tp$i-0-Bnn zz3q>t(NWpzFN5EH{(PmkQ|($FN#V_gE`z9&)$u8(AEiJII^F!VWq&!A@N1=QPIo1T z+Dr4T7aGQuv*a(wx}F+;BsY+Cyv7eXDoWO|_j5f>+RFuC8##%(197I8lEGTeZ$G(G z_4P0E5SN%3cHhuX2}FwD#4k)Y;I;dxehnoQfwf~?XEs`j-==Tkmg35V`>D!~Xf(++ zhL}FkbN#FUrw>~6?qT!SQU+#R{^*yOv+or0}X=hy(^_&!#&JvG&zs_`@cY93Rll zH0{VXxSy$G%`ⅈ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 literal 0 HcmV?d00001 diff --git a/content/conception_formelle/1_introduction/index.md b/content/conception_formelle/1_introduction/index.md new file mode 100644 index 0000000..55ad85f --- /dev/null +++ b/content/conception_formelle/1_introduction/index.md @@ -0,0 +1,171 @@ +--- +title: "Conception formelle : introduction" +date: 2023-01-06 +tags: ["Bugs", model-checking"] +categories: ["Conception formelle", "Cours"] +mathjax: true +--- + +## Pourquoi? + +### Un peu d'histoire: les bugs célèbre + +### 1985 : Banque de New-York + +Un entier passe de 32768 à 0, conséquence : 2 jours d'interruption de service et +24 milliards de dollars d'emprunt et plus de 5 millions de perte. + +### 1990: AT&T + +Un `break` est oublié dans un `case` comme dans l'exemple ci-dessous: + +```c +switch(i) { + case 1 : function1(); break; + case 2 : function2(); // a forgotten break; + default: defaultfunction(); +} +``` + +75 millions d'appels téléphonique dans le vide, pour *American Airline*, 200 000 +réservations en moins. Heureusement AT&T utilisait déjà le réseau pour les +déploiement. Si la propagation du bug a été accélérée, le **déploiement du +patch** aussi. + +### 1994 : bug du Pentium + +Une erreur de calcul dans une fonction très particulière de processeur +entrainait une erreur de calcul. La réponse d'*Intel* fut peu sympathique à +l'époque qui assurait que peu de personnes utilisaient cette fonction etdonc +**qu'ils ne fixeraient pas** le problème. + +Depuis, *Intel* publie les preuves de calculs de leurs processeurs, tout +comme *AMD*. + +### 1996 : Ariane 5 + +Destruction de la fusée après 39 secondes de vol suite à deux grandes erreurs : + + 1. conversion d'un entier 64 bits vers 16 bits avec overflow + 2. les deux ordinateurs utilisés pour la redondance partageaient le même code. + Le bug était donc présent sur les deux machines. + +### 1985 - 1987 : Thernac 25 + +Nous sommes ici en présence du premier bug ayant tué un humain. Le Thernac +25][l_thernac] était une machine utilisée en radiothérapie pour le traitement +des cancers. Des patient se sont plaint de sensation de forte brulure lors de +séances. Il a fallut attendre trois ans et au moins **4 morts** pour que le +fabricant rappelle ce modèle et mène l'investigation + +[l_thernac 25]: https://fr.wikipedia.org/wiki/Therac-25 + +## Besoin de fiabilité + +Dès les années 1990, il y a une prise de conscience générale de la **nécessité** +de garanties pour le développement logiciel. Ce qui comprend ben entendu **les +test** effectués sur le code, l'**uniformisation** de la sémantique utilisée(UML +-- *Universal Modelisation Laguage*), les **design patterns**. + +## Panorama des méthodes formelles + +Le but des méthodes formelles est de raisonner autour des logiciels pour +déterminer les contrôles et comportements par les **méthodes mathématiques**. + +Il faut pour cela obtenir un modèle former par l'analyse et le tester. + + * est-ce que le modèle est le bon, est-il correct? : **la validation** + * pouvons nous vérifier le modèle? : **la décidabilité**[^n_decidabilite] + * pouvons nous traduire les résultats? : **l'abstraction** + +[^n_decidabilite] ne proposition (on dit aussi énoncé) est dite décidable dans +une théorie axiomatique si on peut la démontrer ou démontrer sa négation dans le +cadre de cette théorie. Un énoncé mathématique est donc indécidable dans une +théorie s'il est impossible de le déduire, ou de déduire sa négation, à partir +des axiomes de cette théorie. Source [Wikipedia](https://fr.wikipedia.org/wiki/D%C3%A9cidabilit%C3%A9) + +### Pour qui? + +Les méthodes coûtent cher et le personnel qualifié manque. Par conséquent seul +les entreprises développant des systèmes complexes et/ou critiques les +utilisent. + +Quelques précisions : + + * **complexes** : beaucoup d'interactions entre les composants + * **critiques** : important, que se soit économiquement, humainement ou les + deux. + +### Les outils + +L'idée derrière ce type d'outils: **manipuler les preuves** : un programme est +un théorème, est-il adapté? C'est**un autre problème**. + +Ces outils ne sont pas entièrement automatiques. + +#### Interprération abstraite + +Transformer une problème concret en un problème abstrait plus simple, rendant la +preuve plus facile à produite + +\\( \(M_{\text{concret}} \models \phi\) \implies \( M_{\text{abstrait}} \models \phi \) \\) + +#### Vérification du modèle + +Prendre en entrée un modèle \\(M\\), une spécification \\(\phi\\). ON vérifie +alors que \\(M\ \models \phi \). + +#### Raffinement et implémentation + +Autoriser la transformation d'une spécification en implémentation tout en +préservant à chaque étapes les propriétés essentielles à notre système. + +#### Gestion des tests + +Génération de séquences de tests sur le modèle d'après la spécification. Ces +tests dépendent du but recherchés. + +Les test de **conformités** sont utilisés pour valider le vrai système. Les +tests **d'interopérabilité** valident le système dans un contexte ouvert. + +#### Système Stochastique + +Utiliser les chaines de [Markov][l_markov] et les [processus stochastique] +[l_stockas] pour étudier la probabilité qu'un évènements se produise. + +## Choix de la méthode + +![Schéma en V, source Alain Griffault](./imgs/schema_v.png) + +Il n'y a pas une méthode à choisir, plusieurs méthodes formelles à appliquer en +fonction de la position dans le cycle. + +### model checking + +N'utilisons pas les données mais prouvons les interaction inter-modules : + + * pour clarifier le *cahier des charges* + * pour aboutir un *cahier des charges* + +### Preuve de théorème + +Ici nous validons l'algorithme afin de prouver qu'il fonctionne. Nous pouvons +alors implémenter soir dans un langage généraliste, soir dans un langage dédié +(donc spécifique). On obtient alors **un code certifié**. + +### Analyse de code binaire + +Obtenir des garanties sur le code binaire -- qu'ils ne perturbent pas le +système -- sans pour autant avoir le code source. + +``` +code source -> décompilation -> modèle -> analyse +``` + +### Génération de tests + +Génération de tests pertinents pour notre application partir du modèle et du +cahier des charges. + +[l_markov]:https://fr.wikipedia.org/wiki/Processus_de_Markov +[l_stockas]:https://fr.wikipedia.org/wiki/Processus_stochastique